Podpis_cyfrowy

Download Report

Transcript Podpis_cyfrowy

Techniczne aspekty realizacji
podpisu cyfrowego z
zastosowaniem algorytmu RSA
mgr inż. Wojciech Psik
Zespół Szkół Elektronicznych i
Ogólnokształcących w Przemyślu
1
Klasyfikacja systemów
kryptograficznych



rodzaj
operacji
stosowanych
do
przekształcania
informacji; większość algorytmów szyfrujących stosuje
technikę podstawiania (odwzorowania jednego elementu
tekstu na inny), technikę transpozycji, czyli przestawienia
kolejności elementów tekstu jawnego albo złożenie obu
metod (szyfry kaskadowe); zaawansowane algorytmy
szyfrowania
używają
również
przekształceń
wykładniczych, logarytmicznych czy funkcji plecakowej;
liczbę używanych kluczy szyfrowych. Jeżeli nadawca i
odbiorca używają tego samego klucza szyfrowego, to
system
nazywamy
szyfrowaniem
symetrycznym,
szyfrowaniem z jednym kluczem, szyfrowaniem z kluczem
tajnym
lub
szyfrowaniem konwencjonalnym. Jeżeli
nadawca i odbiorca używają różnych kluczy szyfrowych,
to system nazywamy
szyfrowaniem asymetrycznym,
szyfrowaniem z dwoma kluczami, lub szyfrowaniem
z kluczem jawnym;
sposób przetwarzania tekstu jawnego: szyfr blokowy
generuje jeden blok tekstu wyjściowego dla każdego
bloku tekstu wejściowego, zaś szyfr strumieniowy
przetwarza elementy wejściowe w sposób ciągły i
produkuje jednocześnie dane wyjściowe.
2
Szyfrowanie symetryczne i
asymetryczne
Źródło
komunikatu
X
X
Y
Szyfrator
Deszyfrator
Miejsce
przeznaczenia
K
Szyfrowanie
asymetryczne
Źródło klucza
Bezpieczny kanał
klucz jawny B
klucz prywatny B
tekst
jawny
A
tekst zaszyfrowany
algorytm
szyfrujący
algorytm
deszyfrujący
tekst
jawny
B
Szyfrowanie
symetryczne
3
Metody szyfrowania
symetrycznego i asymetrycznego

Metody symetryczne
– Szyfry podstawieniowe
• jednoalfabetowe (np. szyfr przesunięty, przesunięty
szyfr przerzedzony))
• homofoniczne
• Wieloliterowe (szyfr Playfair)
• wieloalfabetowe (szyfr Vigenere’a, Vernama)
– Szyfry transpozycyjne
• szyfr płotowy
• transpozycyjny szyfr stałego okresu
• maszyny rotorowe
– Algorytm DES
– Algorytm IDEA

Metody asymetryczne
–
–
–
–
RSA
ElGamal
System LUC
Inne
• Algorytm Diffie-Hellmana
• Algorytmy krzywych eliptycznych
• System DSA
4
Schemat szyfrowania DES
64-bitowy blok tekstu
jawnego
56-bitowy klucz
,,
,,
Permutacja wstępna
,,
Permutowany wybór 1
Iteracja I
,,
,,
K1
Permutowany wybór 2
K2
,,
Iteracja II
Permutowany wybór 2
,,
,,
Cykliczne przesunięcie
w lewo
,,
Cykliczne przesunięcie
w lewo
,,
K16
Iteracja XVI
Permutowany wybór 2
,,
,,
Cykliczne przesunięcie
w lewo
,,
Zamiana bloków
32-bitowych
,,
Odwrotność permutacji
wstępnej
,,
64-bitowy blok tekstu
zaszyfrowanego
5
Ochrona poufności i
uwierzytelnianie
Miejsce przeznaczenia B
Źródło A
Źródło
komunikatu
Szyfrator
X
Deszyfrator
X
Y
KUB
Miejsce
przeznaczenia
Ochrona
poufności
KRB
Źródło pary kluczy
Źródło A
Miejsce przeznaczenia B
X
Źródło
komunikatu
X
Y
Szyfrator
Deszyfrator
Miejsce
przeznaczenia
Uwierzytelnianie
KRA
KUA
Źródło pary kluczy
6
Szyfrowanie RSA




Zznajdujemy dwie liczby pierwsze p i q: p=7
oraz q=17
Oobliczamy moduł obliczeń n: n=pq=7*17=119
Oobliczamy funkcję Ф(n): Ф(n)=(p-1)*(q-1) =
6*16=96
Zznajdujemy liczbę e taką, że e i Ф(n) są
względnie pierwsze i taką, że e< Ф(n):
Powyższe warunki spełnia liczba e=5
 Wwyznaczamy odwrotność e w arytmetyce mod
Ф(n)
d=77 ponieważ zachodzi: d*e mod Ф(n)=1, czyli
5*77 mod 96 = 385 mod 96 = 1
 Ppara liczb {e, Ф(n)} czyli {5, 119}stanowi klucz
publiczny, który jest opublikowany, zaś para liczb
{d, Ф(n)}, czyli (77,119} jest kluczem prywatnym,
który musi być chroniony.
7
Podpis cyfrowy


Elektroniczne podpisanie dokumentu
polega na wygenerowaniu skrótu
oryginalnej wiadomości. Zwykle
wykorzystuje się do tego celu
jednokierunkowe funkcje haszujące,
generujące na podstawie oryginalnej
wiadomości jej wyciąg (skrót). Następnie
skrót ten poddaje się szyfrowaniu z
użyciem technik najczęściej
asymetrycznych i powstaje już cyfrowy
podpis dokumentu. Zastosowane
rozwiązania typowe
Funkcje podpisu cyfrowego
–
–
–
–

Ochrona poufności
Uwierzytelnianie
Integralność danych
Niezaprzeczalność
Funkcje skrótu
–
–
–
–
MD5
Snerfu
SHA
RSA
8
Skrót wiadomości a
uwierzytelnianie






komunikat i jego skrót są szyfrowane metodą klasyczną
(spełniona jest też poufność),
wynik haszowania szyfruje się symetrycznie, otrzymując
tzw. kryptograficzną sumę kontrolną,
skrót wiadomości podlega szyfrowaniu kluczem
prywatnym
nadawcy
(metoda
ta
zapewnia
uwierzytelnianie oraz podpis cyfrowy, bo tylko nadawca
mógł wykonać zaszyfrowania skrótu komunikatu),
komunikat szyfrujemy konwencjonalnie, zaś jego skrót –
metodą klucza jawnego (uzyskujemy w ten sposób
ochronę poufności oraz podpis cyfrowy),
zarówno komunikat, jak i jego skrót szyfrujemy kluczem
tajnym, klucz tajny szyfrujemy metodą asymetryczną i
przesyłamy do odbiorcy,
zakładając, że dwie komunikujące się strony znają pewną
wartość S, nadawca oblicza wartość funkcji haszującej
dla M+S; ponieważ odbiorca zna S, może sam obliczyć
wynik. Metoda zapewnia uwierzytelnianie, bo intruz nie
może zmodyfikować przechwyconej wiadomości i
wygenerować fałszywego komunikatu, gdyż wartość S
nie jest przesyłana. Szyfrując dodatkowo cały komunikat i
wynik haszowania, można zapewnić poufność.
9
Techniczne aspekty stosowania
RSA w podpisie cyfrowym

Szyfrowanie i deszyfrowanie
– upraszczanie obliczeń potęgowania i
dzielenia modulo
– dobór szyfrowanego bloku

Generowanie kluczy
– problem wyboru dużych liczb pierwszych
– znajdowanie odwrotności modulo

Wydajność systemu komputerowego
10
Wyniki badań algorytmu RSA
4000
3500
3000
2500
1
2000
Czas szyfrowania [s]
Czas deszyfrowania [s]
1.
Czas
szyfrowania i
deszyfrowania
w funkcji
wielkości bloku
2.
Rozmiar pliku
wynikowego w
funkcji
wielkości bloku
3.
Pojedyncza
operacja
szyfrowania i
deszyfrowania
w funkcji
wielkości bloku
1500
1000
500
0
2
5
10
20
40
60
80
100
120
140
160
180
195
198
200000
180000
160000
140000
120000
2
100000
80000
60000
40000
20000
0
2
5
10
20
40
60
80
100
120
140
160
180
195
198
14,000
12,000
10,000
3
8,000
Czas pojedynczego szyfrowania [s]
Czas pojedynczego deszyfrowania [s]
6,000
4,000
2,000
0,000
2
5
10
20
40
60
80
100
120
140
160
180
195
198
11
Wnioski z badań
1.
2.
3.
4.
Wielkość bloku podlegającego szyfrowaniu ma
decydujące znaczenie zarówno na czas, jak i rozmiar
szyfrogramu. Im większa długość bloku, tym
mniejsza liczba szyfrowań i krótszy czas
zaszyfrowania (a potem odszyfrowania) całego
komunikatu. Również mniejszy jest wtedy plik
wynikowy.
Czas
pojedynczej
operacji
szyfrowania
i
deszyfrowania nie zależy od wielkości bloku. Jest to
związane z tym, że system zawsze w taki sam
sposób dokonuje szyfrowania i deszyfrowania:
wykonuje potęgowanie modulo dla ustalonego
wykładnika i modułu obliczeń.
Czas deszyfrowania jest około dwa razy większy, niż
czas szyfrowania. Może mieć to związek z tym, że
klucz do deszyfrowania jest liczbą o prawie
dwukrotnie większej liczbie cyfr, niż klucz
szyfrujący.
Sprzęt komputerowy, na którym dokonywane są
takie operacje, musi posiadać odpowiednią moc
obliczeniową oraz zasoby pamięciowe. Wyniki
testów przeprowadzonych roboczo na stacji
trzykrotnie szybszej i o zdecydowanie większej
pojemności pamięci RAM (Duron 800 MHz, 128MB
RAM) pokazały, że czasy szyfrowań i deszyfrowań są
ok. 3-krotnie mniejsze. Nie występuje również
deficyt zasobów pamięciowych.
12