Машинний переклад, не перевірений носієм мови. Еталоном є англійська версія.

Цілісність і завадиРедагувати на GitHubДжерело: docs/INTEGRITY.md

Цілісність і безпека: що Kshana моделює, а що ні

Kshana повідомляє два показники якості (FoM): цілісність і безпеку; їх легко сплутати з однойменними величинами авіаційного класу. Ця сторінка прямо викладає, чим вони є сьогодні, чим вони не є і що додає дорожня карта. Якщо ви оцінюєте Kshana для контексту безпеки життя або сертифікації, спершу прочитайте це.

Сьогодні (v0.37.0)#

Показник цілісності: самоузгодженість фільтра#

Показник цілісності — це частка відліків під час відсутності сигналу, у яких справжня похибка часу залишається в межах власної k-сигма межі захисту фільтра Калмана:

integrity = (# outage samples with |error| <= k * phase_sigma) / (# outage samples)

Він вимірює, чи є заявлена фільтром власна невизначеність чесною щодо його власної похибки під час відсутності сигналу GNSS (глобальної навігаційної супутникової системи). Це корисна внутрішня перевірка узгодженості.

Він не є:

  • рівнем захисту за горизонталлю/вертикаллю (HPL/VPL): рівня захисту в просторі позиції немає взагалі (пакети годинників належать до області часу);
  • ризиком для цілісності / імовірністю небезпечно оманливої інформації (P_HMI);
  • порівнянням із межею сповіщення;
  • таким, що відповідає вимогам RTCA DO-229E / DO-316 чи EUROCAE ED-259A (RTCA: Radio Technical Commission for Aeronautics; EUROCAE: Європейська організація з обладнання для цивільної авіації) або будь-якого іншого стандарту сертифікації.

Показник безпеки: аналітична межа виявності спуфінгу#

Показник безпеки — це межа виявності спуфінгу, заснована на стабільності годинника: за заданого шуму годинника (білочастотна та випадкове блукання PSD (спектральної густини потужності)) і вікна моніторингу це аналітичний запас виявлення для монітора узгодженості одного годинника щодо повільно наростальної підміни часу. Тихіший годинник (наприклад, оптичний) виявляє менший і повільніший спуфінг, ніж шумніший (наприклад, CSAC (мікромасштабний атомний годинник)); саме цей контраст і є метою демонстратора.

Він не є багатосупутниковим детектором RAIM (автономного контролю цілісності приймачем). Тут немає міжсупутникових залишків псевдодальності, немає рівня захисту й немає P_HMI. Тест «інновація проти сигма» має ту саму математичну форму, що й класичне виявлення відмов RAIM (Brown), але це число є аналітичною межею для заданого годинника, а не реалізацією RAIM, і воно має сенс лише в контексті налаштованого сценарію спуфінгу (див. вид сценарію spoof, що вносить справжню атаку з наростанням).

Вихідні дані говорять про це самі. Види clock, orbit, hybrid і fusion не налаштовують жодної атаки, тому їхній однорядковий підсумок виводить security n/a (no attack) замість числа, а їхній документ результату позначає fom.security як applicable: false із зазначенням причини в блоці figure_tiers. Саме значення залишається в документі для тих, кому потрібна ця межа.

Справжній знімковий RAIM, розділення розв'язків і ARAIM RAIM (src/raim.rs)#

Справжній RAIM у просторі позиції реалізовано в src/raim.rs, окремо від наведеного вище показника самоузгодженості:

  • Моніторинг залишків за багатьма супутниками: будується матриця геометрії променів візування до видимих супутників, формується розв'язок позиції та годинника методом найменших квадратів і перевіряється сума квадратів залишків.
  • χ²-виявлення відмов: SSE/σ² (SSE: сума квадратів залишків) за гіпотези відсутності відмов має розподіл χ²(n−4); відмова оголошується вище за chi2_{1-P_fa}(n-4). Порогові значення χ² походять від безбібліотечного обчислення регуляризованої неповної гамма-функції (точного, без таблиць).
  • HPL / VPL на основі нахилу: max_i(slope_i)·pbias·σ, де slope_i — чутливість похибки позиції до кожного супутника за матрицею проєкції, а pbias — зсув нецентрального χ², що відповідає заданій імовірності пропущеного виявлення P_md.
  • RAIM із розділенням розв'язків (MHSS: розділення розв'язків за багатьма гіпотезами): для розв'язку за всіма видимими супутниками та кожного підрозв'язку з виключенням одного супутника вкладене розділення оцінювачів Δ_k = x_k − x₀ одночасно виявляє та ідентифікує несправний супутник і живить межу рівня захисту.
  • Бюджет ризику для цілісності (P_HMI) ARAIM (вдосконаленого автономного контролю цілісності приймачем): araim_raim розв'язує найменші HPL/VPL, за яких сумарна імовірність небезпечно оманливої інформації P_HMI = Σ_k p_fault,k · Q((PL − T_k)/σ_k) (Blanch et al., Baseline ARAIM) відповідає явно заданому розподілу ризику для цілісності, і повідомляє ризик, якого досягають ці рівні; отже, цілісність можна безпосередньо зіставляти з межею сповіщення, а не залишати неявною у фіксованому множнику K_md.
  • Діаграма цілісності Стенфорда–ESA (ESA: Європейське космічне агентство): накопичувач для кожної епохи класифікує (error, PL) за областями «Доступно» / «Система недоступна» / «Оманливо» / «Небезпечно оманливо» для підсумку доступності.
  • Досяжність наскрізь: вид сценарію integrity виконує наведене вище над орбітальним угрупованням SGP4 (Simplified General Perturbations 4) або кеплерівським, або над таким, що прочитане з реальних TLE (дворядкових наборів елементів) чи навігаційного файлу RINEX (Receiver Independent Exchange Format), і видає карту для кожної епохи доступності HPL/VPL щодо налаштованих меж сповіщення (scenarios/integrity-raim.toml). Той самий прогін експортує вертикальну діаграму Стенфорда: у кожну захищену епоху зерновий відтворюваний розіграш похибки дальності без відмов перетворюється через геометрію на справжню вертикальну похибку та класифікується щодо VPL і вертикальної межі сповіщення, тож результат JSON (JavaScript Object Notation) і підсумок CLI (інтерфейсу командного рядка) містять кількість у кожній області (події цілісності та HMI: небезпечно оманлива інформація), а не лише частку доступності. На вбудованому scenarios/integrity-raim.toml прогін повідомляє про 344 із 361 доступних епох (95,3 %) за межі сповіщення 40 м за горизонталлю та 50 м за вертикаллю, з 0 подій цілісності та 0 HMI.
  • Двоугрупований ARAIM із повідомленням підтримки цілісності: araim_dual_raim додає режим відмови всього угруповання: окрім гіпотез без відмов і з відмовою одного супутника, кожне угруповання вносить одну гіпотезу, що вилучає всі його супутники, з апріорною імовірністю P_const, до тієї самої суми ризику для цілісності MHSS. IntegritySupportMessage (ISM) містить точність дальності користувача для цілісності (σ_URA), середньоквадратичну точність (σ_URE), максимальний номінальний зсув b_nom, односторонньо врахований у кожному режимі, та апріорні імовірності P_sat і P_const; його еталонний набір WG-C (Робоча група C співпраці Європейського Союзу та США щодо супутникової навігації, технічна підгрупа якої з ARAIM публікує еталон) такий: σ_URA = 0,75 м, σ_URE = 0,67 м, b_nom = 0,75 м, P_sat = 1e-5 і P_const = 1e-4. P_const = 0 відтворює результат одноразової відмови araim_raim біт у біт. Вид integrity іде цим шляхом із araim_dual = true (scenarios/araim-gps-galileo.toml: GPS + Galileo, 48 супутників, 145 із 145 доступних епох за тих самих меж сповіщення).
  • Рівні захисту щодо опублікованих еталонних векторів: вид araim-reference-check запускає araim_protection_level і araim_integrity_risk рушія на власних розроблених прикладах підгрупи WG-C з ARAIM (Reference Airborne Algorithm Description Document v3.1, 2019, додаток D, і Milestone 3 Report, 2016, додаток A). Найбільша різниця вертикального/горизонтального рівня захисту на приймальному векторі становить 0,0437 м за власного допуску документів 0,05 м. Цей рядок має статус VALIDATED у VERIFICATION-MATRIX.md: він перевіряє рівняння рівня захисту, а не операційний ISM чи приймач.

Прогалина, що залишилася (дорожня карта)#

Чого raim.rs ще не робить:

  • він не інтегрований у FoM сценаріїв годинника/holdover: ці пакети досі повідомляють наведений вище показник самоузгодженості фільтра, а не HPL/VPL;
  • гіпотези відмов охоплюють випадок без відмов, окремі супутники та угруповання загалом; одночасні відмови на підмножинах із двох чи більше супутників (SV: космічний апарат, тобто супутник) не моделюються;
  • ISM є набором параметрів, що налаштовується (з еталонними значеннями WG-C), а не широкомовним операційним повідомленням чи перевіреною за еталоном моделлю загроз;
  • виявлення та виключення відмов (FDE) є лише одно-супутниковим і знімковим: розділення розв'язків називає несправний супутник, а snapshot_raim_fde повторно розв'язує кожне виключення одного супутника й повертає виключений супутник разом із тестом хі-квадрат і рівнями захисту решти підмножини, але позиція, захищена виключенням, не повідомляється, а вид сценарію integrity крок виключення не виконує.

Знімкове ядро, ядро розділення розв'язків і ядро ARAIM перевірено на реальній геометрії прецизійних орбіт IGS (Міжнародної служби ГНСС; SP3: Standard Product 3), а не лише на синтетичних угрупованнях: tests/igs_real_data.rs формує геометрію променів візування з першої епохи справжнього продукту IGS SP3 на реальній наземній станції й перевіряє, що рівні захисту скінченні та в межах сповіщення APV-I (заходження з вертикальним наведенням) 40 м за горизонталлю й 50 м за вертикаллю, що зсув псевдодальності 60 м спрацьовує в моніторі χ², що розділення розв'язків ідентифікує несправний супутник і що рівні ARAIM відповідають виділеному P_HMI. tests/araim_dual_real_data.rs запускає шлях двох угруповань на реальних каталогах Celestrak GPS і Galileo за 2026-06-07, поширених до однієї спільної епохи (див. REAL_TLE_GUIDE.md §3). Глибша перехресна перевірка, тобто порівняння рівнів захисту епоха за епохою з gLAB (GNSS-Lab Tool, набір для обробки даних ГНСС, що поширюється через ESA) на повній дузі спостережень RINEX, додала б паритет у приймальній області. Її не виконано: вид pvt обчислює кодову одноточкову позицію за реальними спостереженнями RINEX, але жоден рівень захисту за цим розв'язком із gLAB не порівнювався.

Отже, raim.rs — це справжнє ядро рівня захисту та ризику для цілісності, досяжне з видів сценаріїв integrity і araim-reference-check, перевірене на геометрії реальних еталонних орбіт і звірене з еталонними векторами WG-C. Відмови підмножин із кількох супутників, паритет gLAB у приймальній області та інтеграція з FoM годинника лишаються пунктами дорожньої карти, і ніщо з цього не є свідченням для сертифікації.

Див. також#

  • GLOSSARY.md: однорядкові визначення кожного FoM і абревіатури.
  • ARAIM_REFERENCE.md: параметри ISM та еталонні вектори WG-C.
  • SLOT-TIMING.md: рівень захисту часу (TPL) годинника в режимі вибігу, що залежить від виявлення.
  • VALIDATION.md: які величини перевірено за еталоном, а які є перевірками самоузгодженості.
  • src/security.rs: виведення межі виявності спуфінгу.

RAIM поряд із показниками якості holdover годинника (0,36, за вибором)#

Сценарій годинника може містити розділ [integrity] (src/clock_integrity.rs): майданчик (lat_deg, lon_deg, height_m), набори орбітальних угруповань (systems, типово gps-baseline), маску, сигму залишку дальності, імовірності хибної тривоги та пропущеного виявлення, горизонтальну й вертикальну межі сповіщення, інтервал епох і необов'язковий заявлений зсув на одному супутнику. Тоді прогін повідомляє окремий блок integrity_fom: за кожну епоху супутники у видимості, знімкові рівні захисту RAIM і вердикт (available, alarm, unavailable-pl-above-al, unavailable-too-few-satellites, unavailable-gnss-denied), а також кількості та доступність за прогін. Поки часова шкала каже, що GNSS відсутній, RAIM недоступний і нічого не екстраполюється; погіршене вікно оцінюється як номінальне. Показники якості holdover не змінюються, а без розділу вихідні дані побітово ідентичні. MODELLED: репрезентативне небо за наборами, синтетичні залишки та заявлені межі. Потрібно runs = 1.

Відтворення максимального URA за Milestone 3 ARAIM WG-C ЄС і США (CAP-05c)#

Раніше план обіцяв порівняння з «Table A-3» технічної записки EU-ARAIM. Публічного джерела цієї таблиці знайти не вдалося (у публічних звітах Milestone 1–3 Технічної підгрупи ARAIM Робочої групи C ЄС і США немає Table A-3), тому це порівняння відкликано, і під такою назвою нічого не обіцяється.

Натомість робиться спроба відтворити звіт, що є публічним: Milestone 3 Report (25 лютого 2016, копія GPS.gov, SHA-256 156147e1...13d8), таблиці 5, 6 і 7, які для кожної конфігурації угруповання та кожного з RNP 0,1 і RNP 0,3 друкують найбільше sigma_URA, за якого 90 % користувачів мають доступність 99,5 %. Перевіряються дванадцять надрукованих записів (рядки Depleted і Baseline двочастотних таблиць) за порогами, попередньо зареєстрованими в xval/araim-m3/PREREGISTRATION.md до будь-якого оцінюваного прогону, з відхиленнями, які не можна усунути й які там зазначено: немає файлів альманаху, оболонки Волкера замість реальних слотів, грубіша сітка й крок, а також горизонтальний шлях рушія за ADD v4.2 замість власного тексту звіту. Таблиці 8–13 (одночастотні) і рядки Optimistic не розглядаються, причини наведено там же. Результат: відтворено 8 із 12 записів, 4 NOT MET (зафіксовано): записи для двох угруповань і всі записи лише для Galileo збігаються (включно з рядками N/A), запис для двох угруповань Depleted RNP 0,1 досягає покриття 0,847 за 9 м проти надрукованих 9 м (потрібно 0,90), а три записи лише для GPS промахуються значно (покриття 0,70 за 4 м, 0,58 за 6 м, 0,65 за 10 м проти надрукованих 4 м, 6 м і «>10 м»). Промахи лише для GPS можуть походити від однорідної оболонки Волкера, що замінює реальні слоти GPS (D1); це гіпотеза, а не висновок. Результат лишається MODELLED, яким би він не був. Дослідження: src/bin/gen_araim_m3_study.rs; його виміряні покриття містяться в xval/araim-m3/results.json і оцінюються за tests/araim_m3_reproduction.rs. На сам звіт посилаються, але його не включено до репозиторію.