Podpis cyfrowy jako przykład kodowania asymetrycznego

Download Report

Transcript Podpis cyfrowy jako przykład kodowania asymetrycznego

Slide 1

Kryptograficzne aspekty
kodowania asymetrycznego.
Podpis cyfrowy jako przykład
zastosowania.

Wykonał: mgr inż. Maksymilian Szczygielski
1


Slide 2

Kryptografia jest nauką zajmującą się
problematyką szyfrowania i deszyfrowania.
Do dziedzin matematyki, które odgrywają ważną
rolę we współczesnej kryptografii, należą: teoria
liczb, teoria grup, logika kombinatoryczna, teoria
złożoności i teoria informacji. Samą kryptografię
można także postrzegać jako gałąź matematyki
stosowanej i informatyki.
Faktycznie w zastosowaniach informatycznych
kryptografia nabiera praktycznego znaczenia w
połączeniu z zagadnieniami dostępu do systemów
operacyjnych, protokołów, sieci komputerowych i
przesyłania danych.
2


Slide 3

Szyfrowanie symetryczne
Klucz uzgodniony przez dwie strony wpływa w
kryptosystemach symetrycznych zarówno na krok
szyfrowania, jak i deszyfrowania. Wpływ ten jest
symetryczny w tym sensie, że oba procesy są
równie pracochłonne. Ponadto zazwyczaj obie
strony występują zamiennie w rolach nadawcy i
odbiorcy. Jeżeli kroki szyfrowania i deszyfrowania
komutują, każdej ze stron wystarczy tylko jeden
własny klucz prywatny. Do tej klasy należy
metoda DES. Ma ona jeden klucz, a szyfrowanie i
deszyfrowanie różnią się tylko kolejnością
przebiegów generowanych na podstawie klucza.
3


Slide 4

Szyfrowanie asymetryczne
Rezygnując z symetrii kryptosystemu, musimy
oczywiście chronić klucz deszyfrujący. Jednak
asymetria może być posunięta tak daleko, że
klucz szyfrujący nie tylko nie będzie chroniony,
ale nawet będzie powszechnie dostępny
(klucz publiczny).
Koncepcja kryptografii z kluczem publicznym
pochodzi od Diffie i Hellmana z roku 1976.
Pierwsza realizacja asymetrycznych
kryptosystemów należy do Rivesta, Shamira i
Adelmana w roku 1977 (RSA).
4


Slide 5

Porównanie algorytmów
symetrycznych i asymetrycznych
Usługa

Symetryczne

Asymetryczne

Poufność

Duże szybkości szyfrowania i
deszyfrowania

Małe szybkości szyfrowania,
deszyfrowania

Integralność
i wierzytelność

Osiągane przy użyciu tego
samego przekształcenia co
poufność

Osiągane przy użyciu innego
przekształcenia co poufność

Trudność generacji podpisu
cyfrowego

Łatwość generacji podpisu
cyfrowego

Trudna w realizacji

Łatwa w realizacji

Niezaprzeczalność
Dystrybucja kluczy

5


Slide 6

Kryptosystem klucza publicznego




Pojęcie systemu z kluczem publicznym wyraża fakt,
że klucze deszyfrujące pozostają tajne.
Każdy uczestnik wymiany informacji wytwarza
2 klucze:
Klucz szyfrujący (jawny), który udostępnia
publicznie wszystkim pozostałym uczestnikom;
Klucz deszyfrujący (tajny), który utrzymuje
w ścisłej tajemnicy.
Każdy może wysłać wiadomość, ale tylko odbiorca
może ją odebrać.

6


Slide 7

Szyfrowanie z kluczem publicznym
K lu c z s z y fru ją c y (ja w n y , p u b lic z n y )

K lu c z d e s z y fru ją c y (ta jn y , p ry w a tn y )

N adaw ca

O d b io rc a
S z y fro g ra m

S z y fra to r

D e s z y fra to r

T e k s t ja w n y

T e k s t ja w n y

7


Slide 8

Bezpieczeństwo klucza publicznego
Bezpieczeństwo kryptosystemów klucza
publicznego oparte jest na aktualnej wiedzy
teoretycznej i możliwościach technologicznych
dotyczących rozwiązania danego problemu
obliczeniowego.




Rodzaje ataków na systemy kryptograficzne:
Atak bierny
Atak czynny

8


Slide 9

Atak bierny
Przeciwnik nie będący stroną w protokole
podsłuchuje wiadomości przekazywane w czasie
realizacji protokołu i na tej podstawie próbuje
wydobyć informacje jawne. Odpowiada to
łamaniu szyfru ze znanym tylko szyfrogramem.
Bierni oszuści realizują protokół, ale jednocześnie
próbują wydobyć z niego więcej wiadomości niż
potrzebują do swego działania.

9


Slide 10

Atak czynny
Przeciwnik w celu uzyskania korzyści stara się
wprowadzić do protokołu nowe komunikaty,
usunąć istniejące komunikaty, podstawić nowe
komunikaty w miejsce istniejących, zniszczyć
kanał łączności lub zmienić informacje
przechowywane na komputerze.
Łamanie czynne jest bardziej groźne, szczególnie
w protokołach, w których odmienne strony
niekoniecznie sobie ufają. Napastnik może być
legalnym użytkownikiem systemu, może być
nawet jedną ze stron uczestniczących w
protokole.
10


Slide 11

Ogólna charakterystyka algorytmu
RSA






Kryptosystem RSA jest najpowszechniej
stosowanym systemem klucza publicznego,
stosowany jest między innymi w protokołach
kryptograficznych wymiany kluczy i podpisach
cyfrowych.
Do tej pory skutecznie opiera się atakom
kryptoanalityków.
Bezpieczeństwo algorytmu RSA opiera się na
trudności faktoryzacji dużych liczb.

11


Slide 12

Algorytm wykorzystuje parę kluczy:


publiczny - jest to para liczb (e, n), dostępna

dla każdego użytkownika kryptosystemu, służąca
do szyfrowania informacji przeznaczonych dla
posiadacza klucza prywatnego oraz do
sprawdzenia autentyczności dokumentów, które
ten posiadacz wytworzył i rozpowszechnił jako
własne,


prywatny - liczba d (utajniona) znana tylko
właścicielowi, służąca do odszyfrowania
przeznaczonych dla niego dokumentów
i opatrywania ich pieczęcią autentyczności.

12


Slide 13

Generowanie kluczy w RSA








Klucze publiczne i prywatne są funkcjami pary
dużych liczb pierwszych.
Generowanie kluczy odbywa się według
poniższego schematu:
Wybór dwóch dużych liczb pierwszych p i q
(p i q powinny być jednakowej długości).
Obliczenie iloczynu tych liczb.
Losowanie klucza szyfrującego e takiego,
że e i (p - 1)(q - 1) są względnie pierwsze.
Obliczenie klucza szyfrującego d z algorytmu
Euklidesa: e d = 1 mod (p-1)(q-1)
Liczby e i n oznaczają klucz publiczny,
a liczba d oznacza klucz tajny.
13


Slide 14

Opis działania algorytmu










Algorytm RSA można krótko zapisać w postaci:
Klucz publiczny:
n - iloczyn dwóch liczb pierwszych p i q
(p i q pozostają utajnione)
e - liczba względnie pierwsza z (p - 1)(q - 1)
Klucz prywatny:
d = e-1(mod(p-1)(q-1))
Szyfrowanie:
c = me(mod n)
Deszyfrowanie:
m = cd(mod n)
14


Slide 15

Właściwości algorytmu




Ataki na algorytm RSA
Ataki skierowane nie na algorytm lecz na
protokół, czasami okazują się skuteczne.
Są to przeważnie ataki za pomocą wybranych
szyfrogramów. Aby się przed nimi zabezpieczyć,
należy przed podpisaniem przypadkowego
dokumentu - użyć jednokierunkowej funkcji
skrótu.
Standard RSA
RSA jest standardem uznawanym w większości
krajów na świecie. RSA jest nieoficjalnym
standardem podpisu cyfrowego. Jest mimo to
opatentowany jedynie w USA.
15


Slide 16





Kryptosystem RSA jest znacznie wolniejszy od
systemów symetrycznych. Współczesne realizacje
sprzętowe RSA osiągają szybkość szyfrowania
rzędu 600 Kbitów na sekundę, przy 512 bitowym
module n, natomiast realizacje sprzętowe DES-a
osiagają szybkość rzędu 1 Gbit/sec czyli RSA jest
około 1500 razy wolniejszy od DES-a.
Często RSA wykorzystywany jest w protokołach
wymiany kluczy kryptograficznych, natomiast
systemy blokowe DES, IDEA służą do przesyłania
dużej ilości danych.

16


Slide 17

Algorytm DSA
DSA (Digital Signature Algorithm) - jeden z
najciekawszych algorytmów wykorzystywanych
w standardzie podpisu cyfrowego (Digital
Signature Standard DSS).
Kryptosystem ten został opracowany przez NSA
(National Security Agency) i został
zatwierdzony jako standard podpisu cyfrowego
w USA w 1999r.

17


Slide 18

Wprowadzenie do DSA









Zasada działania algorytmu DSA opiera się na
następujących parametrach:
p - liczba pierwsza o długości L - bitów, przy
czym L może przyjmować wartości od 512 do
1024 i jest wielokrotnością 64; parametr jawny.
q - czynnik pierwszy liczby p-1 o długości 160
bitów; parametr jawny.
g = h(p~1/q) mod p gdzie h jest dowolną liczbą
mniejszą niż p-l, taką że h(p~1/q) mod p jest liczbą
większą niż 1; parametr jawny.
x - liczba mniejsza niż q; x jest kluczem
prywatnym.
y = gx mod p. Jest to klucz publiczny.
18


Slide 19

Szyfrowanie danych w DSA



Algorytm DSA można zapisać w postaci:
Klucz publiczny:
p - liczba pierwsza o długości 512 do 1024 bitów
q - czynnik pierwszy liczby p-1 o długości 160
bitów
g = h(p-1)/qmod p
y = gx mod p Klucz prywatny: x q
Podpisywanie:
k - liczba wybierana losowo, mniejsza od q



w = s-1 mod q u1 = (H(m)*w) mod q














r - (podpis) = (gk mod p) mod q
s - (podpis) = (k-1 (H(m) + xr)) mod q
19


Slide 20

Szyfrowanie danych w DSA





Weryfikacja:
u1 = (rw) mod q
v = (( gu1 * yu2 ) mod p) mod q
Jeśli v = r, to podpis jest poprawny
Każdy podpis cyfrowy wymaga nowej liczby k.
Jej wartość wybierana jest losowo. Dobry
generator liczb losowych ma największe
znaczenie dla bezpieczeństwa algorytmu DSA.

20


Slide 21

Inne algorytmy klucza publicznego
Algorytm Diffiego-Hellmana
Algorytm Plecakowy
Algorytm Rabina
Algorytm Williamsa
Algorytm Elgamala
Probablistyczny Algorytm Bluma-Goldwassera

21


Slide 22

Kanał podprogowy
Kanały podprogowy w schematach podpisów
cyfrowych został odkryty przez G.J. Simmonsa.
Jest to kanał umożliwiający umieszczenie tajnej
wiadomości w swoim podpisie cyfrowym, która
może być odczytana tylko przez osobę znającą
dodatkowy klucz. Nikt nie wie, czy twórcy nawet
o nim wiedzieli. Może się on okazać
niebezpiecznym narzędziem w ręku twórcy
implementacji szyfru. Jest on w stanie
wyprowadzić część klucza prywatnego wraz z
każdym podpisem. Dodatkowo sytuacja taka nie
jest wykrywalna dla właściciela i osób postronnych.
22


Slide 23

Funkcje skrótu





Jednokierunkowe funkcje skrótu
wykorzystywane do zapewniania integralności
przesyłanych danych, pozwalają stwierdzić, czy
informacja przesyłana od nadawcy do odbiorcy
nie została poddana modyfikacji. Założeniami
działania takiej funkcji skrótu są:
uzyskiwany wynik jest stałej długości
(niezależnie od długości tekstu, który poddawany
jest operacji),
funkcja działa jednokierunkowo – tzn. nie ma
możliwości uzyskania tekstu źródłowego z
posiadanego wyniku operacji.
23


Slide 24

Własności protokołów
kryptograficznych








Każdy użytkownik protokołu musi go znać
i kolejno wykonywać wszystkie kroki
Każdy użytkownik musi zgodzić się na jego
stosowanie
Protokół nie może być mylący – każdy krok
powinien być dobrze zdefiniowany i nie może
wystąpić szansa na jakiekolwiek nieporozumienie
Protokół powinien być kompletny – dla każdej
możliwej sytuacji musi być podany odpowiedni
sposób postępowania.

24


Slide 25

Cele stosowania protokołów
kryptograficznych
Strony uczestniczące w protokole:





Dzielą się częścią swoich tajemnic
Wspólnie generują liczbę losową
(klucz kryptograficzny)
Przekonują się wzajemnie do swojej tożsamości
Podpisują jednocześnie umowę

Stosowanie protokołów kryptograficznych
umożliwia współpracę całkowicie nie ufających
sobie stron w obrębie sieci komputerowej.
25


Slide 26

Podpis cyfrowy
Technicznie podpis cyfrowy jest ciągiem bitów
(krótszym od przesyłanej informacji) będącym
funkcją podpisywanej informacji oraz klucza
prywatnego nadawcy. W odróżnieniu od podpisu
ręcznego zależy od zawartości dokumentu,
a dokładniej - od skompensowanej próbki
dokumentu.
Odwzorowanie informacji z dokumentu na jej
skompensowaną próbkę dokonuje się za pomocą
jednokierunkowej funkcji szyfrującej, tzw. funkcji
skrótu, inaczej haszującej (hash).

26


Slide 27

Algorytm generowania i weryfikacji
podpisu cyfrowego
1. Nadawca oblicza skrót wiadomości za pomocą
funkcji skrótu.
2. Szyfruje kluczem prywatnym nadawcy skrót
wiadomości i dołącza do wiadomości jako jej
podpis cyfrowy.
3. Odbiorca deszyfruje kluczem publicznym
nadawcy jego podpis cyfrowy oraz wylicza
z niego skrót przesłanej wiadomości.
4. Porównuje ze skrótem uzyskanym
po zaszyfrowaniu funkcją skrótu otrzymanej
wiadomości.
5. Zgodność oznacza, że podpis cyfrowy dotyczy
przesyłanej wiadomości oraz świadczy
o nienaruszalności informacji.

27


Slide 28

Wykonywanie
podpisu cyfrowego
Dane

Funkc ja sk rótu

S kró t

Klucz
Pryw atny
N ada w cy

K ryp to syste m
K lucza P u b liczne go

P od p is
C yfro w y

RSA, DSA
28


Slide 29

Wykonywanie
podpisu cyfrowego
Dane

Funkc ja sk rótu

S kró t

Klucz
Pryw atny
N ada w cy

K ryp to syste m
K lucza P u b liczne go

P od p is
C yfro w y

RSA, DSA
29


Slide 30

Cechy podpisu elektronicznego
Podpis elektroniczny ma wszystkie istotne cechy
podpisu odręcznego: potwierdza jednoznacznie
tożsamość osoby podpisującej, uniemożliwia
zaprzeczenie faktu podpisania i dokonania
transakcji, jest też powiązany z treścią, która
została podpisana. Dodatkową zaletą stosowania
podpisu elektronicznego jest możliwość
stwierdzenia na podstawie samego podpisu, czy
dokument nie był zmieniany już po podpisaniu.
Dzięki temu może być wykorzystywany do
jednoznacznej autoryzacji wszelkich dokumentów
i transakcji elektronicznych.
30


Slide 31

Certyfikacja podpisu cyfrowego
Łatwo wyobrazić sobie scenariusz, w którym intruz
podmienia klucz publiczny określonego
użytkownika, a następnie przechwytuje i swobodnie
deszyfruje wiadomości kierowane do tego
użytkownika.
Skutecznym i efektywnym rozwiązaniem tego problemu są
tzw. urzędy certyfikacji (ang. certificate authority)
odpowiadające za dystrybucję kluczy publicznych
użytkowników.
Użytkownik, aplikacja lub urządzenie, które
zamierzają prowadzić szyfrowanie w systemie
klucza publicznego najpierw powinni zarejestrować
się w urzędzie certyfikacji oraz dostarczyć swoje
klucze publiczne wraz z danymi identyfikacyjnymi.
31


Slide 32

Elementy certyfikatu cyfrowego

32