Oślepienie (kryptografia)

W kryptografii zaślepianie jest techniką , dzięki której agent może świadczyć usługi klientowi (tj. obliczać dla niego funkcję ) w zakodowanej formie, nie znając ani rzeczywistych danych wejściowych, ani rzeczywistych danych wyjściowych. Techniki oślepiania mają również zastosowanie do zapobiegania atakom typu side-channel na urządzenia szyfrujące.

Dokładniej, Alicja ma dane wejściowe x , a Oscar ma funkcję f . Alicja chciałaby, żeby Oskar obliczył y = f ( x ) bez ujawniania mu ani x , ani y . Powodem, dla którego tego chce, może być to, że nie zna funkcji f lub nie ma zasobów, aby ją obliczyć. Alicja „oślepia” wiadomość, kodując ją na jakimś innym wejściu E ( x ); kodowanie E musi być bijekcją w przestrzeni wejściowej f , najlepiej losową permutacją. Oscar daje jej f ( E ( x )), do którego stosuje dekodowanie D , aby otrzymać D ( f ( E ( x ))) = y .

Nie wszystkie funkcje pozwalają na ślepe obliczenia. W innych przypadkach zaślepienie należy stosować ostrożnie. Przykładem tego ostatniego są podpisy Rabina – Williamsa . Jeśli zaślepienie zostanie zastosowane do sformatowanej wiadomości, ale losowa wartość nie spełnia wymagań Jacobiego dla p i q , może to doprowadzić do odzyskania klucza prywatnego. Demonstrację odzyskiwania można zobaczyć w CVE - 2015-2141 odkrytym przez Evgeny Sidorov.

Najczęstszym zastosowaniem zaślepienia jest podpis ślepy . W protokole podpisu ślepego osoba podpisująca cyfrowo podpisuje wiadomość bez możliwości zapoznania się z jej treścią.

Jednorazowa podkładka ( OTP) jest z natury aplikacją zaślepiającą problem bezpiecznej komunikacji. Alice chciałaby potajemnie wysłać wiadomość do Boba, jednak Oscar może przeczytać całą ich komunikację. Dlatego Alice wysyła wiadomość po zaślepieniu jej tajnym kluczem lub hasłem OTP, które udostępnia Bobowi. Bob odwraca zaślepienie po otrzymaniu wiadomości. W tym przykładzie funkcja f jest tożsamością , a E i D są zwykle operacją XOR .

Zaślepianie może również służyć do zapobiegania niektórym atakom typu side-channel na schematy szyfrowania asymetrycznego . Ataki typu side-channel umożliwiają przeciwnikowi odzyskanie informacji o danych wejściowych do operacji kryptograficznej poprzez pomiar czegoś innego niż wynik algorytmu, np. zużycia energii, czasu obliczeń lub emanacji częstotliwości radiowych przez urządzenie. Zazwyczaj ataki te zależą od tego, czy atakujący zna charakterystykę algorytmu, a także (niektóre) dane wejściowe. W tym ustawieniu zaślepienie służy do zmiany danych wejściowych algorytmu w nieprzewidywalny stan. W zależności od charakterystyki funkcji zaślepiania, może to zapobiec częściowemu lub całościowemu wyciekowi przydatnych informacji. Należy zauważyć, że bezpieczeństwo zależy również od odporności samych funkcji oślepiających na ataki typu side-channel.

Na przykład w RSA zaślepianie polega na obliczeniu operacji zaślepiania E ( x ) = (xr) e mod N , gdzie r jest losową liczbą całkowitą z przedziału od 1 do N i względnie pierwszą względem N (tj. gcd( r , N ) = 1) , x to tekst jawny, e to publiczny wykładnik RSA, a N to moduł RSA. Jak zwykle stosowana jest funkcja deszyfrująca f ( z ) = z d mod N , co daje f ( E ( x )) = (xr) ed mod N = xr mod N . Na koniec jest odślepiony za pomocą funkcji D ( z ) = zr −1 mod N . Mnożenie xr mod N przez r −1 mod N daje x , zgodnie z życzeniem. Podczas odszyfrowywania w ten sposób przeciwnik, który jest w stanie zmierzyć czas potrzebny na tę operację, nie byłby w stanie wykorzystać tych informacji (poprzez zastosowanie ataków czasowych, na które RSA jest podatna), ponieważ nie zna stałej r i stąd nie ma wiedzy o rzeczywistych danych wejściowych dostarczanych do prymitywów RSA.

Przykłady

Linki zewnętrzne