Przedstawiono projekt ITB, rozwijający symetryczny izolator kryptograficzny, zaprojektowany do opakowywania standardowych pseudolosowych funkcji (PRF) oraz funkcji skrótu (AES, BLAKE2/3, Areion i innych) w sprzężoną barierę kombinatoryczną i topologiczną. W przeciwieństwie do klasycznych trybów szyfrowania blokowego i strumieniowego, architektura ITB koncentruje się na strukturalnej izolacji wewnętrznego prymitywu, zapobiegając rozprzestrzenieniu właściwości różnicowych i liniowych, algebrycznej liniaryzacji oraz bezpośrednim kodowaniom dla rozwiązujących SAT/SMT i MILP przez granice bariery. Kod jest napisany w języku Go z niskopoziomowymi optymalizacjami w asemblerze dla architektur x86_64 i ARM64 (Aarch64) i jest rozpowszechniany na mocy licencji Apache 2.0.
Transformacja danych w ITB jest podzielona na dwa sprzężone poziomy (Interlocked Barrier), zarządzane przez osiem izolowanych kluczy nasiennych (8-seed isolation) z lokalną ewolucją klucza poprzez kaskadę z bezpośrednim połączeniem (ChainHash). Na pierwszym poziomie bariera rangowa (Rank Barrier) wykonuje kluczową kombinatoryczną permutację każdego 48-bitowego bloku (lub 168-bitowego bloku dla prymitywów 512-bitowych), rozdzielając bity tekstu jawnego na trzy niezależne regiony na podstawie dwustopniowego znajdowania kombinacji zgodnie z jego numerem (przestrzeń zbalansowanych podziałów C(48, 16) * C(32, 16) wynosi około 2^70.20, a w trybie 168-bitowym C(168, 56) * C(112, 56) — około 2^258.60). Na drugim poziomie bariera pikselowa (Pixel Barrier) przekształca dane na siatkę 8-bajtowych elementów (8 kanałów po 7 bitów danych i 1 bit pseudolosowego szumu w każdym bajcie) z cyklicznym przesunięciem klucza 7-bitowego na poziomie piksela, maskowaniem 7-bitowych kanałów i wyborem pozycji bitu szumowego.
Główne cechy projektu:
- Eksperymentalne sprawdzenie właściwości izolacyjnych na jawnie niekryptograficznych funkcjach (test obciążeniowy z słabymi prymitywami). W skład repozytorium wchodzi laboratoryjna platforma, w której wewnątrz bariery wstawiana jest zwykła funkcja skrótu FNV-1a. Dzięki nieliniowemu kombinacyjnemu rozrzutowi, podziałowi bajtów na granicach 7-bitowych kanałów (NWD(7, 8) = 1) oraz wstrzykiwaniu bitów szumowych do każdego bajtu, praktyczne odwrotne lub budowanie rozwiązywalnego modelu SAT/SMT na podstawie tekstu jawnego i zaszyfrowanego jest blokowane już na etapie formułowania systemu równań.
- Automatycznie weryfikowana formalna weryfikacja w języku Lean 4. Wszystkie 12 podstawowych twierdzeń matematycznych, kombinatorycznych i bitowych konstrukcji (a także aplikacyjny schemat hybrydowego uzgadniania kluczy 3-do-8 z trzech niezależnych kanałów KEM w APPS.md), opisane w dokumencie PROOFS.md, zostały w pełni udowodnione w Lean 4 bez użycia aksjomatów i pominięć dowodów.
- Wbudowane narzędzie migający testy kryptograficzne, w tym zautomatyzowane kontrole: statystyczne serie testów, ocenę stopnia algebraicznego i nieliniowości, kontrolę izolacji nasion przy odrzucaniu pozycji szumów przez orakl CCA oraz poszukiwanie luk bezpieczeństwa za pomocą zewnętrznych rozwiązań.
- Dwa tryby pracy: standardowy uwierzytelniony tryb (AEAD według schematu MAC-Inside-Encrypt, gdzie wstawka uwierzytelania jest obliczana i szyfrowana wewnątrz kontenera) oraz tryb wiarygodnego zaprzeczenia (Plausible Deniability) oparty na bezwarunkowym kodowaniu COBS, w którym odszyfrowanie dowolnym nieprawidłowym kluczem daje syntaktycznie poprawne dane bez wskaźnika błędu.
- W połączeniu z nowoczesnymi szybkim PRF (AES, BLAKE2/3, Areion) konstrukcja jest odpowiednia do zabezpieczonej wymiany wiadomości, przechowywania plików i sieci VPN-tuneli (przy grupowej kolejce pakietów, dodatkowe koszty formatu wynoszą około 15%). Aby chronić przed atakami przez zewnętrzne kanały, rdzeń działa przez stały czas (constant-time) z pełnym wymuszeniem czyszczenia klatek stosu i rejestrów procesora (GPR, XMM/YMM/ZMM, NEON) po wywołaniach.
- Dla architektury x86_64 zrealizowano rdzenie asemblerowe przy użyciu instrukcji BMI2 (PEXT/PDEP), AES-NI, VAES, AVX2 i AVX-512, a dla ARM64 (Aarch64) — na bazie rozszerzeń NEON, Crypto Extensions i SVE2 (z przenośnym wycofaniem na czysty Go). Na bazie wspólnego C ABI (libitb3) przygotowano powłoki dla 33 języków programowania.
Źródło: opennet.ru
