Цілісність і безпека: що 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. На сам звіт посилаються, але його не включено до репозиторію.