• Nie Znaleziono Wyników

Skuteczność proponowanego rozwiązania

Operacja Liczba LUT – A

Wyznaczenie parzystości 64

Porównanie parzystości 64

Predykcja parzystości 396

Generacja macierzy C 52

Tabela 5.4: Skuteczność proponowanego rozwiązania ochronnego dla różnych rodzajów błędów

Rodzaj błędów Błędów wykrytych Błędów korygowanych

wprowadzane do 100% 100%

pojedynczych bitów

wprowadzane do bajtów 100% 50%

wprowadzane do kolumn 99% 0%

5.5 Skuteczność proponowanego rozwiązania

Rozwiązanie ochronne zaproponowane dla algorytmu AES jest rozszerzeniem macierzowego kodu korek-cyjnego. Ze względu na rodzaj błędów wykorzystywanych do ataków z uszkodzeniami na AES, kod ten zapewnia znacznie lepszą ochronę niż wynika z jego ogólnych właściwości (przy założeniu dowolnych błę-dów). W atakach z uszkodzeniami wykorzystujących błędy wprowadzane do pojedynczych bitów [14, 35] proponowane rozwiązanie pozwala wykryć i skorygować wszystkie wprowadzone błędy — wynika to bezpo-średnio z właściwości kodu macierzowego, który wykrywa wszystkie błędy podwójne i koryguje wszystkie błędy pojedyncze. W przypadku modelu błędów przyjętego na początku niniejszego rozdziału (Def. 5.1), proponowane rozwiązanie pozwala wykrywać wszystkie wprowadzone błędy i korygować połowę z nich.

Twierdzenie 5.5. Niech S, Wj i si,j oznaczają odpowiednio stan algorytmu AES, j-tą kolumnę stanu i i-ty element tej kolumny, a pj i pi,j będą bajtem parzystości j-tej kolumny i bitem parzystości i-tego elementu. W razie wystąpienia błędu losowego w pojedynczym bajcie kolumny Wj prawdopodobieństwo jego wykrycia wynosi 100%.

Dowód. Zgodnie z definicją bajta parzystości (Def. 5.2) i jak pokazano w dowodzie twierdzenia 5.2, każdy

błąd losowy wprowadzony do pojedynczego bajta kolumny stanu powoduje, że suma XOR parzystości przewidywanej i rzeczywistej po transformacji jest różna od zera. Sprawdzenie wartości tej sumy daje więc informację czy błąd był wprowadzony czy nie.

110 ROZDZIAŁ 5. OCHRONA ALGORYTMU AES

i i-ty element tej kolumny a pj i pi,j będą bajtem parzystości j-tej kolumny i bitem parzystości i-tego elementu. W razie wystąpienia błędu losowego w pojedynczym bajcie kolumny Wj prawdopodobieństwo, że błąd ten może być skorygowany, wynosi co najmniej 50%.

Dowód. Zgodnie z twierdzeniem 5.2 dla każdego błędu losowego, wprowadzonego do pojedynczego bajta

kolumny stanu, przewidziany i rzeczywisty bajt parzystości pozwalają określić jaki błąd ei,j został wpro-wadzony. Jednocześnie informacja o masce wprowadzonego błędu identyfikuje kolumnę, w której błąd był wprowadzony. Dodatkowo, zgodnie z twierdzeniem 5.3, bity parzystości pi,j pozwalają określić, który bajt

si,j kolumny Wj został zmieniony przez błąd ei,j, jeśli błąd ten był błędem o nieparzystej krotności (tj.

wH(ej) = 2k + 1). Ze względu na założenie, że atakujący wprowadza błędy losowe z równym prawdopodo-bieństwem, określenie, który bajt został zmieniony przez błąd uda się w 50% przypadków. Stąd, ponieważ do korekcji błędu potrzebna jest znajomość jego maski i lokalizacji, prawdopodobieństwo korekcji błędów wynosi 50%.

W przypadku rozszerzenia modelu błędu na błędy losowe wprowadzane do dowolnej liczby bajtów (jednego lub wielu) kolumny stanu [71], zdolności detekcyjne pogarszają się pozwalając wykrywać nieco ponad 99% wprowadzanych błędów. Zdolność korekcyjna natomiast jest znacznie gorsza i wynosi 2−23

0%. Warto jednak przypomnieć, że błędy tego typu nie są wykorzystywane w atakach z uszkodzeniami, ze względu na dużą złożoność analizy uzyskiwanych wyników.

Rozdział 6

Ochrona podpisów cyfrowych ElGamala

i DSA

Analiza metod ochrony przed kryptoanalizą z uszkodzeniami (rozd. 4) pozwala zauważyć, że jedną z me-tod ochrony jest rozdzielenie obliczeń i rozpraszanie błędów. Meme-toda ta jest stosowana w celu ochrony algorytmu RSA-CRT (rozd. 4.4). Możliwość rozpraszania błędów w tym algorytmie wynika bezpośrednio z tego, że w RSA-CRT obliczenia są wykonywane oddzielnie modulo liczby pierwsze p i q, a wynik końco-wy jest końco-wyznaczany z końco-wykorzystaniem konwersji odwrotnej. Podobną metodę ochrony można zastosować w algorytmie ElGamala i DSA.

Prezentowana w rozdziale modyfikacja schematów ElGamala i DSA wprowadza do tych algorytmów rozpraszanie błędów. W algorytmie ElGamala jest ono zrealizowane z wykorzystaniem chińskiego twier-dzenia o resztach. W schemacie DSA rozpraszanie błędów jest uzyskiwane z wykorzystaniem nieliniowości operacji odwrotności multiplikatywnej. Wspólnym elementem modyfikacji obu algorytmów jest kontrola poprawności użytego klucza prywatnego a, polegająca na sprawdzeniu czy jego aktualna wartość jest taka sama jak w chwili generowania klucza publicznego y. Jeśli klucz prywatny, użyty do złożenia pod-pisu, został zmieniony, to sprawdzenie zwraca niezerową wartość pomocniczego czynnika T , nazywanego czynnikiem rozpraszania błędów (ang. error difusion term). Czynnik T jest następnie wykorzystywany do rozproszenia błędu w całym generowanym podpisie s.

6.1 Model błędów

Analiza przeprowadzona w rozdziale 3.3 pokazała, że w przypadku ataków z uszkodzeniami na schematy podpisów cyfrowych ElGamala i DSA najczęściej zakłada się, że atakujący wprowadza błąd typu zamiana pojedynczego bitu lub pojedynczego bajta klucza prywatnego a.

112 ROZDZIAŁ 6. OCHRONA PODPISÓW CYFROWYCH ELGAMALA I DSA

Definicja 6.1 (Błędy wprowadzane do algorytmu ElGamala i DSA). Niech a oznacza klucz prywatny w schemacie podpisów ElGamala/DSA, p, q będą parametrami tego schematu, a g generatorem grupy

Z

p dla podpisów ElGamala i Z

q dla podpisów DSA. Atakujący może wprowadzić uszkodzenie w trakcie generowania podpisu powodując zmianę pojedynczego bitu klucza prywatnego a.

Model błędu wprowadzanego do algorytmu ElGamala i DSA rodzaj błędu zamiana bitu

liczba zmienionych bitów 1

miejsce wprowadzenia błędu losowy bit klucz prywatny a

moment wprowadzenia w trakcie wyznaczania elementu s podpisu cyfrowego

czas trwania błędy przemijające

Zgodnie z przyjętym modelem błędów atakujący ma częściową kontrolę nad miejscem wprowadzenia błędu — błędy są wprowadzane do zmiennych przechowujących klucz prywatny a jednak atakujący nie może wybrać, który bit ma być zmieniony.

Zakładając powyższy model błędów można oszacować prawdopodobieństwo, że atakujący zdoła wpro-wadzić taki błąd.

Lemat 6.1. Niech p, g, a, y będą parametrami schematu podpisów ElGamala, przy czym p jest n-bitową liczbą pierwszą, a < p kluczem prywatnym a y = gamod p kluczem publicznym. Jeśli atakujący wprowadza losowe błędy typu zamiana pojedynczego bitu klucza a, to prawdopodobieństwo wprowadzenia błędu

e = 2i dla konkretnego i = 0, 1, . . . , n − 1 jest równe 1n.

Dowód. Dowód lematu jest natychmiastowy, ponieważ z faktu, że p jest liczbą n-bitową wynika, że

p(n−1) = 1 i że istnieje co najmniej jeden bit j = 1, 2, . . . , n − 2 taki, że p(j) = 1. W przeciwnym ra-zie p nie jest liczbą n–bitową, albo nie jest liczbą pierwszą (jeśli p(j) = 0 dla j = 1, 2, . . . , n − 2, to

p = 2n−1 i jest złożone). Oznacza to, że p > 2n−1 ≥ 2i dla i = 0, 1, . . . , n − 1, a więc atakujący może wprowadzić n różnych błędów typu zamiana bitu. Zakładając losowe wprowadzanie błędów (każdy błąd jest równie prawdopodobny), prawdopodobieństwo wprowadzenia błędu e jest równe n1.

Powyższy model błędów jest modelem powszechnie przyjmowanym w atakach na algorytmy ElGama-la i DSA, rzadko rozszerzanym na błędy o krotnościach nie większych niż 8. Taki model błędów wynika z dążenia do uproszczenia ataku z uszkodzeniami, którego złożoność obliczeniowa zależy od krotności wprowadzonego błędu. Z drugiej strony proponowane rozwiązanie zabezpieczające pozwala na ochro-nę schematów podpisów przed atakami wykorzystującymi również błędy wielokrotne i dowolne. Z tego

6.2. OCHRONA SCHEMATU PODPISÓW CYFROWYCH ELGAMALA 113