• Nie Znaleziono Wyników

2.2 Algorytmy asymetryczne

2.2.3 Podpisy cyfrowe DSA

Y pi|(p−1), pi>2 µ 1 − 1 pi p − 1 2 . (2.21)

Prawdopodobieństwo, że losowo wybrana liczba k jest względnie pierwsza z p − 1 jest więc równe

P (gcd(k, p − 1) = 1) ≤ p−1 2 p − 1 = 1 2. (2.22) To kończy dowód.

Prawdopodobieństwo wylosowania właściwej liczby k można zwiększyć stosując odpowiednie proce-dury losowania. Najprostszym rozwiązaniem jest pomijanie w losowaniu liczb parzystych. Może to być zrealizowane poprzez losowanie liczb 1 ≤ k1 ≤ (p − 1)/2 i wyznaczanie k = 2k1− 1. Wylosowane w ten

sposób k na pewno nie jest podzielne przez 2. Tak więc prawdopodobieństwo, że k jest względnie pierwsze z p − 1, jest dwukrotnie większe.

Inne wersje algorytmu ElGamala posiadają podobne właściwości jednak różnią się nieznacznie złożo-nością obliczeniową. W przypadku wersji 2 i 5 (tab. 2.1) zamiast obliczania odwrotności liczby losowej

k wyznaczana jest odwrotność klucza prywatnego a. Odwrotność ta jest stała, przez co może być

wyli-czona raz i wykorzystywana we wszystkich kolejnych obliczeniach. Rozwiązanie takie upraszcza również algorytm podpisów, eliminując potrzebę obliczania odwrotności modulo p − 1 na bieżąco oraz losowania odpowiedniego k.

2.2.3 Podpisy cyfrowe DSA

Podpisy DSA (ang. Digital Signature Algorithm) są odmianą podpisów ElGamala. Różnica pomiędy tymi schematami polega na tym, że operacje generowania i weryfikacji podpisów DSA są wykonywane w podgru-pie rzędu q grupy multiplikatywnej Z

p, gdzie p i q są liczbami pierwszymi i q|(p − 1). Ponadto w podpisach DSA wykorzystywana jest funkcja skrótu H(x) : {0, 1}→ Zq. W 1994 roku odmiana schematu podpisów DSA, nazywana standardem podpisów cyfrowych DSS (ang. Digital Signature Standard), została w USA uznana za standard podpisów cyfrowych. Jedyna różnica pomiędzy DSA i DSS polega na tym, że DSS wymaga użycia funkcji skrótu SHA-1 (ang. Secure Hash Algorithm 1) podczas gdy, DSA pozwala na pełną dowolność w tym zakresie. Generacja i weryfikacja podpisów DSA przebiega w sposób bardzo zbliżony do schematów ElGamala. Zgodnie z algorytmem generacji kluczy dla schematu DSA (Alg. 2.9) liczba pierwsza p należy do przedziału ¡2511, 21024¢

a jej zalecany rozmiar to 768 bitów. Liczba q natomiast jest zawsze liczbą 160-bitową.

34 ROZDZIAŁ 2. ALGORYTMY KRYPTOGRAFICZNE

Algorytm 2.9 Generacja kluczy dla schematu podpisów DSA

Wyjście: para kluczy publiczny a — prywatny hp, q, q, yi

1: wylosuj 160-bitową liczbę pierwszą q (2159< q < 2160),

2: wylosuj 0 ≤ t ≤ 8 i liczbę pierwszą p taką, że 2511+64t< p < 2512+64t i q|(p − 1),

3: wylosuj generator g grupy cyklicznej rzędu q w Z p,

4: wylosuj klucz prywatny a, 1 ≤ a ≤ q − 1,

5: oblicz y = gamod p.

Algorytm 2.10 Generacja podpisu DSA

Wejście: wiadomość m, klucz prywatny a Wyjście: podpis hr, si

1: wylosuj liczbę pierwszą k taką, że 1 ≤ k ≤ q − 1 i gcd(k, q) = 1,

2: oblicz r =¡gkmod p¢mod q,

3: oblicz k−1mod q,

4: oblicz s = k−1(H(m) + ar) mod q.

Algorytm 2.11 Weryfikacja podpisu DSA

Wejście: wiadomość m, klucz publiczny hp, q, g, yi, podpis hr, si

Wyjście: true jeśli podpis jest poprawny, false w przeciwnym przypadku

1: if not (0 < r < q) or not (0 < s < q) then return(false),

2: oblicz w = s−1mod q i h(m),

3: oblicz v1 = wH(m) mod q i v2 = rw mod q,

4: if gv1yv2 = r then return(true),

2.2. ALGORYTMY ASYMETRYCZNE 35 Zaletą algorytmu DSA, w porównaniu do ElGamala, jest mniejsza złożoność obliczeniowa procedur składania i weryfikacji podpisu. Wynika to stąd, że większość operacji podpisywania i wszystkie operacje weryfikacji podpisu wykonywane są modulo q, którego rozmiar bitowy jest około pięciokrotnie mniejszy niż rozmiar p. Mniejszy rozmiar bitowy powoduje przyspieszenie obliczeń wykonywanych w dwóch ostat-nich krokach algorytmu a przez to skrócenie czasu działania algorytmu. Dodatkową zaletą wykonywania obliczeń w podgrupie Z

p rzędu q jest to, że wszystkie losowe liczby k są względnie pierwsze z q. Stąd w procedurze generowania podpisu nie ma żadnych warunków i ewentualnych zapętleń. Algorytm DSA nie ma też wad algorytmu ElGamala wynikających z operowania w pełnej grupie multiplikatywnej [13] zapewniając odporność na część ataków wykorzystujących tzw. boczne wejścia (ang. trap door).

Rozdział 3

Ataki typu side-channel

Ataki typu side-channel zostały zaproponowane w drugiej połowie lat 90. XX wieku. Są one przedmiotem badań nowej i ciągle rozwijanej dziedziny kryptologii, w której analizuje się algorytmy kryptograficzne zarówno z punktu widzenia matematyki jak i ich rzeczywistych implementacji programowych i sprzęto-wych. Prowadzone analizy pokazały, że wcześniejsze badania algorytmów kryptograficznych pod kątem formalnego bezpieczeństwa są niewystarczające ze względu na przyjmowany w nich wyidealizowany mo-del otoczenia. Zauważono wówczas, że matematyczna ocena bezpieczeństwa algorytmów, zakładająca istnienie określonych rodzajów zagrożeń, jest niekompletna i nie odwzorowuje istotnych elementów świata rzeczywistego. Przyczyną problemów okazało się być powszechnie przyjmowane założenie, że układy kryp-tograficzne bezbłędnie realizują zaimplementowane algorytmy, oraz, że dane nie ulegają przekłamaniu, w czasie ich wykonania.

Na przełomie 1996 i 1997 w pracach Bihama i Shamira [11], Boneha [17, 18] oraz Bao [4] pokazano konsekwencje jakie mogą wynikać z pojawienia się błędów w trakcie obliczeń. W artykułach tych po-kazano, że kryptografia jest nauką interdyscyplinarną, w której sama znajomość matematyki może być niewystarczająca do oceny uzyskiwanego poziomu bezpieczeństwa. Od tej pory algorytmy kryptograficz-ne przestały być traktowakryptograficz-ne jako czarkryptograficz-ne skrzynki (ang. black box), realizujące złożokryptograficz-ne algorytmy ściśle według ich definicji, a zaczęły być postrzegane jako urządzenia oddziałujące z otoczeniem. Ten sposób postrzegania spowodował rewolucję w kryptoanalizie. Oprócz istniejących już metod ataku (atak linio-wy, różnicolinio-wy, urodzinolinio-wy, itd.) atakujący pozyskali dodatkowe możliwości analizy przebiegu algorytmu a nawet wpływania na jego wyniki przez oddziaływanie na urządzenie. Nowe możliwości obejmują:

pomiar parametrów urządzenia w czasie wykonywania obliczeń kryptograficznych, m.in.:

pomiar czasu wykonania operacji kryptograficznej,

pomiar poboru mocy przez urządzenie, 37

38 ROZDZIAŁ 3. ATAKI TYPU SIDE-CHANNEL

pomiar pól elektromagnetycznych wytwarzanych przez urządzenie,

oddziaływanie na urządzenie w czasie wykonywania obliczeń poprzez:

zmiany napięcia zasilania,

zniekształcenia sygnału zegarowego taktującego urządzenie,

bombardowanie układu cząstkami naładowanymi i naświetlanie promieniowaniem rentgenow-skim lub podczerwonym,

oddziaływanie polem elektromagnetycznym.

Wszystkie tego typu ataki są określane w literaturze anglojęzycznej mianem side-channel attacks. Ich idea polega na wykorzystaniu w kryptoanalizie informacji na temat działania urządzenia pozyskanych z obserwacji parametrów jego pracy i/lub oddziaływania na urządzenie.

Istniejące podziały ataków side-channel uwzględniają sposoby ingerencji w urządzenie, metodę od-działywania na urządzenie oraz procedury analizy uzyskanych wyników. Ze względu na sposób ingerencji w urządzenie wyróżniamy trzy grupy ataków:

1. ataki nieinwazyjne (ang. non-invasive attacks), w których atakujący nie ma bezpośredniego, fizyczne-go dostępu do wewnętrznych elementów elektrycznych układu realizującefizyczne-go operacje kryptograficzne a jedynie może mierzyć parametry jego działania, obserwować jego wejścia i wyjścia oraz oddziały-wać za pomocą pól elektromagnetycznych czy zakłóceń napięcia zasilania lub sygnału taktującego, 2. ataki inwazyjne (ang. invasive attacks), w których atakujący ma możliwość odsłonięcia i bezpośred-niego dostępu do wewnętrznych elementów elektrycznych układu (m.in. szyn danych, linii sterują-cych, komórek pamięci),

3. ataki ”półinwazyjne” (ang. semi-invasive attacks), w których atakujący nie ma bezpośredniego do-stępu do wewnętrznych elementów elektrycznych układu, ale może usunąć z układu wszystkie war-stwy ochronne uzyskując dostęp do układu µP.

Zależnie od metody oddziaływania na urządzenie ataki typu side–channel można podzielić na dwie grupy: 1. ataki pasywne (ang. passive attacks), w których atakujący jedynie analizuje działanie układu kryp-tograficznego podając dane na wejścia i odczytując dane z wyjść, bez ingerencji w jego działanie, 2. ataki aktywne (ang. active attacks), w których atakujący oprócz zadawania danych wejściowych

oddziaływuje na urządzenie w inny sposób (np.: zakłócając napięcie zasilania, sygnał zegarowy, przykładając pola elektromagnetyczne) i analizuje jego reakcję.

3.1. PASYWNE ATAKI SIDE–CHANNEL 39 Ostatni podział różnicuje ataki z uszkodzeniami ze względu na metodę analizy wyników uzyskanych z obserwacji i ewentualnego oddziaływania na urządzenie. Wyróżniamy dwa rodzaje analizy wyników:

analiza bezpośrednia (ang. simple analysis), w której wykorzystywane są kolejno pojedyncze wyniki uzyskane z obserwacji układu. Gdy w ataku wykorzystywanych jest wiele wyników, każdy z nich jest analizowany oddzielnie, a rezultatem analizy jest uzyskanie częściowej wiedzy o działaniu urządzenia i stosowanym kluczu kryptograficznym,

analiza różnicowa (ang. differential analysis), w której jednocześnie analizowane są pary, trójki lub większe liczby uzyskanych wyników. Zależnie od algorytmu i konkretnego ataku analizie podlegają tylko wyniki błędnego działania algorytmu albo pary błędny–poprawny wynik. W algorytmach sy-metrycznych analiza różnicowa sprowadza się do takiego samego postępowania jak podczas tradycyj-nego ataku różnicowego. W algorytmach asymetrycznych natomiast, analiza polega na wyznaczaniu i porównywaniu różnic między grupami wyników w celu uzyskania informacji o działaniu algorytmu i używanym kluczu kryptograficznym.

Niezależnie od zastosowanej metody ataku, analiza układu kryptograficznego dostarcza dodatkowych in-formacji na temat działania urządzenia. Co więcej, przebieg algorytmu i parametry pracy urządzenia zależą od używanego klucza kryptograficznego i przetwarzanej wiadomości. Daje to możliwość obserwacji zmian tych parametrów dla różnych kluczy i wiadomości, dostarczając atakującemu dodatkowych informa-cji o urządzeniu, algorytmie i kluczu. W konsekweninforma-cji urządzenie kryptograficzne nie są określane mianem ”czarna skrzynka”, lecz ”szara skrzynka” (ang. grey box). Określenie to ma sugerować, że atakujący ma znacznie więcej informacji na temat algorytmu kryptograficznego niż zakładały, stosowane dotychczas, modele matematyczne. W konsekwencji atakujący zyskuje dodatkowe możliwości analizowania działania urządzenia i pozyskiwania tajnych informacji wykorzystywanych do realizacji operacji kryptograficznych.

3.1 Pasywne ataki side–channel

Do pasywnych ataków typu side–channel zaliczamy wszystkie ataki, w których atakujący kontroluje tylko i wyłącznie wejścia urządzenia, podając na nie różne dane i obserwując jego wyjście. Najczęstsze metody ataku to pomiar poboru mocy, pomiar czasu działania i pomiar ulotu elektromagnetycznego. W wyniku każdego z nich atakujący otrzymuje charakterystykę działania urządzenia, pozwalającą wyróżnić etapy jego działania i wnioskować o stosowanym kluczu.

40 ROZDZIAŁ 3. ATAKI TYPU SIDE-CHANNEL