Koch Laboratory

Komunikacja odporna na metadane, bezkontowa

Siedem kierunków badań w kryptografii stosowanej dla komunikatora z głuchym pośrednikiem — z opublikowanym wynikiem negatywnym.

Koch Laboratory — badania nad prywatnością i kryptografią stosowaną

Koch Laboratory prowadzi badania nad odporną na metadane, bezkontową komunikacją — systemami, w których serwer pośredniczący jest „głuchy”: nie zna tożsamości, kluczy ani grafu społecznego użytkowników. Poniżej opisujemy bieżące kierunki badawcze. Każdy z nich rozwiązuje konkretny, nierozwiązany problem techniczny, dla którego nie ma gotowego rozwiązania „z półki”.

Metodyka. Każdy kierunek prowadzimy jako proces: sformułowanie problemu → hipoteza → referencyjna implementacja w dwóch niezależnych językach (Python/Dart) spięta wspólnymi wektorami testowymi → weryfikacja jako testowalna własność. Datowana dokumentacja projektowa i dyscyplina testów utrzymują wynik przez kolejne iteracje.

1. Post-Compromise Security bez serwera stanowego

Pytanie badawcze. Czy można uzyskać „samoleczenie” sesji po kompromitacji urządzenia (PCS, klasa Double Ratchet) bez serwera przechowującego klucze wstępne (prekeys) — a więc przy zachowaniu głuchego, bezstanowego pośrednika? Dlaczego to trudne. Standard branżowy (Signal X3DH/PQXDH) wymaga półzaufanego serwera kluczy. Nasza architektura tego zakazuje. Dodatkowo autentykacja rotujących kluczy DH musi obyć się bez podpisów cyfrowych, by nie złamać kryptograficznej zaprzeczalności rozmowy. Kryterium sukcesu. Odzysk poufności po kompromitacji przy zachowaniu bezstanowego pośrednika i zaprzeczalności, weryfikowany jako testowalna własność na wspólnych wektorach. Co osiągnięto (2026-07-14). Kierunek przeszedł z prac projektowych do zaimplementowanego i zweryfikowanego jako testowalna własność: referencja w dwóch niezależnych językach spięta wspólnymi wektorami + testy potwierdzają odzysk poufności po kompromitacji przy zachowaniu bezstanowego, głuchego pośrednika oraz zaprzeczalności (autentykacja bez podpisów). Uczciwie oznaczona granica: zachowana jest jawnie nazwana faza początkowa o słabszej gwarancji. Sposób osiągnięcia (konstrukcja) — nieopublikowany. Konstrukcja: wstrzymana (otwarta opcja patentowa). Status: zaimplementowane i zweryfikowane (referencja + wektory + testy); integracja z żywym transportem trwa.

2. Hybryda post-kwantowa (X25519 + ML-KEM)

Pytanie badawcze. Jak dołożyć odporność post-kwantową („zbierz dziś, odszyfruj po kwancie”) do wymiany kluczy chroniącej treść, na urządzeniu mobilnym, bez osłabiania dzisiejszej kryptografii i bez naruszenia nieodróżnialności ruchu? Dlaczego to trudne. Klucze/szyfrogramy ML-KEM są duże (~1,1 kB) — handshake i kod QR puchną, handshake może przekroczyć rozmiar komórki warstwy metadanowej. Dobór parametru, integracja przez FFI (Rust/liboqs) i parytet dwóch implementacji to otwarte problemy inżynieryjno-badawcze. Podejście. Konstrukcja hybrydowa oparta na standardowym łączeniu dwóch niezależnych sekretów (klasyczny X25519 + ML-KEM) w jednym KDF — bezpieczna, dopóki trzyma choć jeden prymityw; addytywnie, najpierw dla korzeni chroniących treść. (Sam schemat hybrydowy jest stanem techniki — publikujemy go; specyficzne dobory parametrów pod warstwę metadanową traktujemy oddzielnie.) Status: prace projektowe.

3. Warstwa odporności na metadane (mixnet / ruch pozorny / stała komórka)

Pytanie badawcze. Czy da się utrzymać nieodróżnialność ruchu (kto-z-kim, kiedy, ile) wobec globalnego pasywnego obserwatora — nie tylko w idealizowanym modelu, ale realnie na Androidzie/Tor, gdzie wyciek żyje w szczegółach implementacji? Dlaczego to trudne. Dowody sieci mieszających (Loopix/Nym) zakładają idealny proces Poissona i bit-identyczne komórki. Cały realny wyciek leży w szczelinie między idealizacją a implementacją: Android Doze, retransmisje TCP, powiadomienia. Ruch pozorny musi być niezależny od realnego — adaptacyjny zdradza dokładnie tę wielkość, którą ma ukryć. Wynik negatywny (publikowany). Pierwotny projekt „cover zależny od obciążenia” został wykazany jako błędny: pośrednik trywialnie odróżnia ruch adaptacyjny, więc włączenie ochrony samo w sobie wyróżnia użytkownika. Przeprojektowano na stałą stopę Poissona (stan techniki: Loopix/Nym). To przykład falsyfikacji własnej hipotezy — publikujemy go świadomie. Co publikujemy (już jawne w whitepaperze produktu). Wiadomości dopełniane do stałych kubełków rozmiaru (relay widzi kilka rozmiarów, nigdy dokładnej długości); opcjonalny tryb wysyłki o stałej kadencji wypełniający luki nieodróżnialnymi ramkami pozornymi; każda persona na własnym obwodzie Tor. Jawnie nazwana granica: globalny pasywny obserwator obu końców obwodu wciąż może próbować korelacji czasowej — kadencja podnosi próg, nie eliminuje go. Metodyka (publikowana). Nieodróżnialność jako testowalna własność: asercje bajtowe, pcap-diff, test rozkładu czasów, fuzz stanów platformy. Konstrukcja stałej komórki i fragmentacji (format komórki, schemat fragmentacji, jeden tor kodu real/pozorny): wstrzymana (otwarta opcja patentowa). Status: częściowo zaimplementowane; rdzeń w pracach projektowych.

4. Bezadresowy rendezvous z rotacją epokową

Pytanie badawcze. Jak dostarczać wiadomości bez kont i bez adresów, tak by pośrednik nigdy nie znał selektora sesji z góry i nie mógł łączyć aktywności w czasie? Dlaczego to trudne. Selektor musi być zdolnością (capability) znaną wyłącznie dwóm stronom, a okresowa rotacja rodzi problemy brzegowe okien nasłuchu i gwarancji odnajdywalności. Kierunek powstał jako odpowiedź na lukę linkowalności wykrytą w zewnętrznym przeglądzie. Co publikujemy (już jawne w whitepaperze produktu). Adres rozmowy nie jest stałym uchwytem — wyprowadzany na krótkim zegarze (nowy, niezgadywalny identyfikator ~co 15 min), a rotacja każdej rozmowy jest przesunięta w fazie jej własnym wspólnym kluczem, więc relay nie zbatchuje adresów w „jedno urządzenie”; serwer nie trzyma stanu per-odbiorca (kursor po stronie klienta). Skutek: pojedyncza korelacja czasowa potwierdza najwyżej jedno 15-minutowe okno, nie historię rozmowy. Kryterium sukcesu. Dostarczalność bez konta/adresu przy pośredniku, który nie zna selektora z góry i nie łączy aktywności między epokami. Konstrukcja (wyprowadzenie selektora jako zdolności z ECDH, mechanika tagu epokowego, okna nasłuchu/odnajdywalność): wstrzymana (otwarta opcja patentowa — kierunek wskazany jako wrażliwy). Status: zaimplementowane i przetestowane.

5. Deterministyczne gojenie forka epok w grupach (bez koordynatora)

Pytanie badawcze. Jak rozwiązać współbieżne zmiany składu grupy — tworzące rozgałęzienie („fork”) historii kluczy — deterministycznie i bez centralnego koordynatora? Dlaczego to trudne. To problem z rodziny konsensusu rozproszonego. Standard (MLS, RFC 9420) wymaga serwera wymuszającego globalną kolejność; nasz pośrednik jest głuchy, więc konflikt trzeba rozstrzygnąć po stronie klienta. Kryterium sukcesu. Deterministyczne, zbieżne rozstrzygnięcie forka u wszystkich klientów bez koordynatora i bez utraty własności bezpieczeństwa MLS. Konstrukcja: wstrzymana (otwarta opcja patentowa). Status: zaimplementowane i przetestowane.

6. Zaprzeczalny magazyn z ukrytym wolumenem (odporność na przymus)

prostopadła do warunkowego dostępu (kier. 7): tu chodzi o wiarygodne zaprzeczenie istnienia danych i tryb pod przymusem, nie o same warunki odblokowania. Pytanie badawcze. Jak zapewnić wiarygodną zaprzeczalność (klasa VeraCrypt) w mobilnym, bezkontowym magazynie — z automatycznym profilem-wabikiem i odpornością na przymus (duress)? Dlaczego to trudne. Istnienie ukrytego wolumenu musi być niedowodliwe (równy rozmiar, zawsze wypełnienie); nagłówek locka nie może zdradzać typu użytego warunku (wyciek forensiczny), a zmiana/wyłączenie wabika nie może złamać zaprzeczalności. Kryterium sukcesu. Niedowodliwość istnienia ukrytego wolumenu, ukrycie typu warunku w nagłówku i zachowanie zaprzeczalności pod przymusem. Konstrukcja (blob wabika/realnego slotu, trial ukrywający typ, ścieżka duress): wstrzymana (otwarta opcja patentowa). Status: mechanizm zaimplementowany; wiarygodność trybu duress niezweryfikowana (otwarte pytanie projektu).

7. Warunkowy dostęp z kworum: koperta warunków (graf dostępu)

Pytanie badawcze. Czy da się zbudować jeden mechanizm dostępu, w którym kluczem jest dowolny artefakt lub ich kombinacja (hasło, plik, obecność NFC, kworum K-z-N osób, opóźnienie czasowe), spięte w graf warunków (AND / OR / próg), przy zachowaniu braku wyroczni (zły i brakujący klucz nieodróżnialne) i głuchego pośrednika? Dlaczego to trudne. Standard wiąże treść z jednym kluczem albo z serwerem kluczy. Złożenie heterogenicznych źródeł sekretu w jeden klucz — bez ujawnienia, których warunków użyto (to metadana), bez wyroczni trafienia i bez serwera — jest otwartym problemem. Kworum jako źródło sekretu (podział klucza metodą Shamira) musi składać się z warunkiem progu tak, by K−1 udziałów nie zdradzało niczego. Co publikujemy (już jawne w whitepaperze produktu). Prymityw kworum (Shamir K-z-N nad GF(2⁸)) oraz własność „no oracle” są opisane publicznie po stronie produktu — powtarzamy je jako stan wiedzy o produkcie, nie nowe ujawnienie. Kryterium sukcesu. Jeden kontener godzący dowolne źródła sekretu w graf dostępu, bez wyroczni, bez serwera; kworum składalne z progiem; zero wycieku użytych warunków do jawnego nagłówka. Co osiągnięto (2026-07-14). Kierunek domknięty jako testowalna własność: jeden kontener godzi heterogeniczne źródła sekretu w graf dostępu z zagnieżdżonymi progami (AND / OR / próg t-z-n, dowolna głębokość), bez wyroczni na żadnym węźle (zły/brak sekretu nieodróżnialny) i bez serwera; kworum składalne jako węzeł progu. Zweryfikowane zestawem testów (m.in. dwie niezależne ścieżki dostępu, recovery przez OR, zagnieżdżone progi, brak wyroczni). Konstrukcja (format, mechanika łączenia) — nieopublikowana. Konstrukcja (format kontenera, gating udziałów nośnikiem, graf AND/OR/próg): wstrzymana (otwarta opcja patentowa — wprost §2.1: „koperta warunków RDKV”, „kworum jako źródło sekretu”). Status: zaimplementowane i przetestowane (mechanizm v1 + graf v2 z zagnieżdżonymi progami); konstrukcja wstrzymana; wpięcie w UX trwa.