РЕАЛІЗАЦІЯ
FHSS
Ця сторінка пояснює, як FHSS захищає дроновий радіозв'язок від глушіння противника засобами РЕБ і як ELRS реалізує це в діапазоні ISM 868 МГц ЄС для споживчих FPV-радіо. Silvus StreamCaster MANET використовує військовий діапазон 140–600 МГц зі значно більшою кількістю каналів — обидві системи охоплені нижче.
Проблема — ворог глушить ваше радіо
Ваш FPV-дрон спілкується з наземною станцією на радіочастоті — 868 МГц для ELRS у діапазоні ISM ЄС. Ворог це знає. У нього є глушники, що випромінюють потужний шум на цій частоті, заглушуючи ваш сигнал. Уявіть, що ви намагаєтеся розмовляти телефоном, поки хтось тримає біля вашого вуха звуковий ріжок. Це і є глушіння.
Якщо ваше радіо залишається на одній фіксованій частоті, ворогу потрібен лише один глушник на цій частоті. Кінець гри. Ваш дрон втрачає зв'язок і або падає, або летить безконтрольно.
Рішення — стрибки між каналами
Замість того, щоб залишатися на одній частоті, FHSS швидко перемикається між багатьма каналами. О 14:32:08.001 ви на каналі 23. О 14:32:08.008 ви на каналі 71. О 14:32:08.015 ви на каналі 4. Ви змінюєте канал до 150 разів на секунду.
Патерн стрибків виглядає випадковим, але насправді визначається спільним секретом (binding-фразою). Ваш передавач і приймач знають цей патерн. Ворог — ні. Щоб заглушити FHSS, ворогу довелося б заглушувати ВСІ канали одночасно — що потребує неймовірно більшої потужності і дорожчого обладнання, ніж глушіння одного каналу.
ELRS у діапазоні 868 МГц використовує приблизно 80 каналів у смузі ISM ЄС (863–870 МГц). Silvus MANET у військовому діапазоні 140–600 МГц використовує до 4 600 каналів. Навіть якщо ворог глушить багато з цих каналів, FHSS продовжує стрибати і знаходить ті, що чисті. Ваш лінк деградує, але не помирає.
Як ELRS реалізує FHSS
ПАРАМЕТРИ FHSS ELRS 868 МГц
ELRS фактично поєднує ДВІ антиглушильні техніки. FHSS (стрибки каналу) ускладнює виявлення вашого сигналу. Модуляція LoRa (розширений спектр) змушує сигнал виглядати як шум, навіть якщо ворог знайде правильний канал. Разом вони роблять ELRS значно важчим для глушіння, ніж старіші системи як аналогове FPV-відео (яке сидить на одному фіксованому каналі і тривіально глушиться).
Компроміси: швидкість проти дальності проти стійкості до глушіння
Вища швидкість стрибків = важче заглушити, але менша дальність. На 500 Гц ви змінюєте канал 500 разів на секунду — надзвичайно важко відстежити. Але кожен пакет має дуже мало часу в ефірі, тож дальність падає приблизно до 5 км. На 50 Гц сигнал залишається на кожному каналі довше, досягає 30+ км, але складнішому глушнику легше слідувати.
Для військових FPV-операцій у середовищі глушіння на ELRS 868 МГц 150 Гц — це рекомендований баланс: дальність 10+ км, 6,67 мс на канал (занадто швидко для більшості тактичних глушників), і достатньо низька затримка для реактивного FPV-польоту.
Проти чого FHSS не захищає
Математичне виведення — чому FHSS долає вузькосмугове глушіння
Повне чотирикрокове виведення причини, чому FHSS працює, опубліковано в англійській версії. Математика — це стандартна теорія ймовірностей (Proakis & Salehi, Digital Communications, McGraw-Hill 2008, розділ 12), спеціалізована для числа каналів ELRS і Silvus. Внесок сторінки: показати конкретні наслідки втрати пакетів і необхідне співвідношення потужності для барражного глушіння.
Стисло: (1) Ймовірність того, що вузькосмуговий глушник блокує один стрибок = J/N, де J — число заглушених каналів, N — загальна кількість. (2) K послідовно заблокованих стрибків мають ймовірність (J/N)^K. (3) З M глушниками на різних частотах: P_blocked = M·J/N (лінійне масштабування). (4) Барражне глушіння потребує в N разів більше потужності, ніж вузькосмугове, щоб відповідати PSD на канал.
Опрацьований приклад 1 — ELRS насичений 10 вузькосмуговими глушниками
Російські тактичні глушники (Lesochek-клас) типово покривають 1 МГц кожен. 10 глушників × 1 МГц = 10 МГц заблокованої смуги. ELRS працює в 7-МГц ISM-смузі (863–870 МГц). 10 МГц > 7 МГц → ПОВНЕ НАСИЧЕННЯ. Оперативний висновок: ELRS НЕПРИДАТНИЙ для контестованого РЧ-середовища і має бути замінений волоконно-оптичним FPV (імунним до РЧ) або мігрувати на військову смугу. Перевірено в provable_claims.py під FHSS_ELRS_SATURATED_10JAMMERS.
Опрацьований приклад 2 — Silvus MANET виживає 100 тактичних глушників
100 вузькосмугових глушників × 40 каналів кожен = 4 000 заблокованих з 4 600. Залишається: 600 каналів = 13 % доступності. Ймовірність виживання на стрибок 13 %, втрата 3-пакетного вікна (0,87)³ = 66 %. Лінк деградує до ~1 Мбіт/с (з 34 Мбіт/с), але залишається функціональним — граціозна деградація проти катастрофічної відмови. Перевірено в FHSS_SILVUS_100JAMMERS_SURVIVAL.
Чому це виведення є операційно важливим
Чотири оперативні рішення залежать від правильності математики FHSS. Вибір смуги для тактичного проти стратегічного використання: 7-МГц смуга ELRS насичена 10 глушниками — реалістичне російське тактичне розгортання. Висновок: ELRS НЕПРИДАТНИЙ для контестованих РЧ-середовищ. FSG-A мусить використовувати волоконно-оптичний FPV або мігрувати на військові смуги. Обґрунтування Silvus MANET: 100 глушників дають лише 13 % доступності каналів — граціозна деградація є математичною причиною, чому Silvus специфікується для батальйону-і-вище. Оцінка загрози барражного глушіння: коефіцієнт потужності 4600× для Silvus означає ~230 кВт — тільки великі мобільні російські системи (Krasukha-4, Shipovnik-Aero) досягають цього. Стратегічні активи, рідкісні та легко цілеспрямовані ISR. Інтервал ротації ключа: 24 години балансують криптографічний запас проти оперативної практичності — простір ключів 2²⁵⁶ безпечний на довший час у будь-якому випадку.
Реалізація
# FHSS Channel Hopping Demonstration
import hashlib, struct
def fhss_hop_sequence(seed_key, n_channels=4600, hops_per_sec=100):
"""Generate deterministic pseudo-random hop sequence."""
channels = []
for hop_index in range(hops_per_sec * 60): # 1 minute of hops
# HMAC-based channel selection (both sides have same seed)
h = hashlib.sha256(seed_key + struct.pack(">I", hop_index)).digest()
channel = struct.unpack(">H", h[:2])[0] % n_channels
channels.append(channel)
return channels
# Silvus StreamCaster: 140-600 MHz, 100 kHz channels
# 460 MHz / 100 kHz = 4,600 channels
hops = fhss_hop_sequence(b"SECRET_KEY_256BIT", n_channels=4600)
print(f"First 10 hops: {hops[:10]}")
print(f"Unique channels in 1 min: {len(set(hops[:6000]))}")
# Narrowband jammer on one channel: misses 4599/4600 = 99.98% of hops
# Barrage jammer across ALL 4600: needs 4600× more power
Безпека послідовності стрибків
Послідовність стрибків у Silvus StreamCaster генерується зі спільного seed-ключа за допомогою HMAC-SHA256. І передавач, і приймач обчислюють одну й ту саму псевдовипадкову послідовність каналів з ключа — без ключа послідовність обчислювально непередбачувана. Противник, який намагається слідувати стрибкам, мав би виявити 256-бітний ключ, який має 2²⁵⁶ можливих значень — повний перебір неможливий з будь-якою сучасною або прогнозованою обчислювальною технологією.
Противник із широкосмуговим приймачем (SDR, що одночасно охоплює 140–600 МГц) може спостерігати патерн стрибків у реальному часі — він бачить короткі енергетичні сплески на випадкових частотах. Проте спостереження патерну не розкриває ключ, і патерн змінюється з кожною ротацією ключа. Навіть якщо противник запише повну послідовність стрибків на один період ключа, це не передбачить послідовність на наступний період. Інтервал ротації ключа в Lisa 26: кожні 24 години, ініційований бригадним офіцером зв'язку через одну команду Lisa 26, яка поширюється на всі MANET-вузли за 30 секунд.
Пов'язані розділи
Джерела
Математично верифіковані оцінки. «Вузькосмуговий глушник на одному каналі з 4 600 промахує 99,98 % стрибків» — (N − 1) / N, валідовано в provable_claims.py під FHSS_NARROWBAND_MISS. «Глушіння всього діапазону потребує у 4 600 разів більше потужності» — валідовано під FHSS_JAM_POWER_RATIO. Криптографічна стійкість HMAC-SHA256 256-бітного ключа (2²⁵⁶ значень) — валідовано під HMAC_COLLISION_YEARS.
Параметричні джерела. Діапазон ELRS 863–870 МГц — відкритий ISM-діапазон ЄС, регламентований ETSI EN 300 220. Модель LoRa — Semtech whitepaper. Частоти пакетів ELRS 50/150/500 Гц — документація ExpressLRS. Модуль RadioMaster Ranger 900 МГц з TX 1 Вт — специфікація виробника. Діапазон Silvus StreamCaster 140–600 МГц з 4 600 каналами — опубліковані дані Silvus.
Операційні оцінки — не верифіковано польовими випробуваннями FSG-A. Дальності 30+/10+/5+ км для 50/150/500 Гц — типові значення з документації ExpressLRS у умовах прямої видимості, не виміряні FSG-A. 24-годинний інтервал ротації ключа — проєктний вибір Lisa 26, не калібрований оперативно. Час поширення 30 секунд на всі MANET-вузли — оцінка на основі beacon-інтервалу Silvus, не виміряна. Ефективна дальність глушника Поле-21 «обмежена зона» — загальна характеристика з RUSI-звітів, не кількісно валідована.
Зовнішні стандарти та джерела. Документація протоколу ExpressLRS (expresslrs.org, 2024). Whitepaper модуляції LoRa від Semtech (semtech.com, 2023). Специфікації RadioMaster Ranger 900 МГц (radiomasterrc.com). «Electronic Warfare in the Ukraine Conflict» — звіт RUSI (2023). Меморандум FOI 8336 про протиглушильну стійкість дронів (2024). FSG-A не має власних вимірювань FHSS — параметри з опублікованих специфікацій ExpressLRS, Silvus і Semtech.