Kryptografia klucza publicznego: Różnice pomiędzy wersjami

[wersja przejrzana][wersja przejrzana]
Usunięta treść Dodana treść
drobne merytoryczne, jęz.
Linia 5:
Najważniejsze zastosowania kryptografii asymetrycznej – [[szyfr]]owanie i [[podpis cyfrowy|podpisy cyfrowe]] – zakładają istnienie 2 kluczy – '''prywatnego''' i '''publicznego''', przy czym klucza prywatnego nie da się łatwo odtworzyć na podstawie publicznego. W niektórych innych zastosowaniach kluczy może być więcej.
 
[[Algorytm]]y mające zastosowanie w kryptografii asymetrycznej wykorzystują [[funkcja jednokierunkowa|operacje jednokierunkowe]] - takie, które da się łatwo przeprowadzić w jedną stronę a bardzo trudno w drugą. Np. [[mnożenie]] jest łatwe, a [[Rozkład na czynniki|rozkład na czynniki (z ang. faktoryzacja)]] trudny (na czym przykładowo opiera się [[RSA (kryptografia)|RSA]]). [[Arytmetyka modularna|Potęgowanie modulo]] jest łatwe, a [[logarytm dyskretny|logarytmowanie dyskretne]] jest trudne (na czym opierają się [[ElGamal]], [[Digital Signature Algorithm|DSA]] i [[kryptografia krzywych eliptycznych|ECC]]).
 
== Historia ==
Kryptografia asymetryczna została oficjalnie wynaleziona przez cywilnych badaczy [[Martin Hellman|Martina Hellmana]], [[Whitfield Diffie|Whitfielda Diffie]] w [[1976]] roku. Prawie równolegle prototyp podobnego systemu stworzył [[Ralph Merkle]] – w 1974 roku zaproponował algorytm wymiany kluczy, nazwany [[Puzzle Merkle'aMerkle’a|puzzlami Merkle'aMerkle’a]]<ref>{{cytuj książkę |nazwisko=Schneier |imię=Bruce |autor link=Bruce Schneier |tytuł=Kryptografia dla praktyków. Protokoły, algorytmy i programy źródłowe w języku C |wydanie=2 |wydawca=Wydawnictwa Naukowo -Techniczne |miejsce=Warszawa |rok=2002 |strony=51-8151–81 |rozdział=Elementy budowy protokołów |isbn=83-204-2678-2 |język=pl}}</ref>. Dopiero pod koniec XX wieku [[Wielka Brytania|brytyjska]] służba wywiadu elektronicznego [[Government Communications Headquarters|GCHQ]] ujawniła, że pierwsza koncepcja systemu szyfrowania z kluczem publicznym została opracowana przez jej pracownika [[James Ellis|Jamesa Ellisa]] już w 1965 roku, a działający system stworzył w 1973 roku [[Clifford Cocks]], również pracownik GCHQ<ref name="Levy1">{{Cytuj książkę |nazwisko=Levy |imię=Steven |tytuł=Rewolucja w kryptografii |data=2002 |wydawca=Wydawnictwa Naukowo-Techniczne |miejsce=Warszawa |isbn=83-204-2757-6 |strony=314-331314–331}}</ref>. Odkrycia te były jednak objęte klauzulą tajności do 1997 roku. Obecnie kryptografia asymetryczna jest szeroko stosowana do wymiany informacji poprzez kanały o niskiej poufności jak np. [[Internet]]. Stosowana jest także w systemach elektronicznego uwierzytelniania, obsługi [[Podpis cyfrowy|podpisów cyfrowych]], do szyfrowania poczty ([[OpenPGP]]) itd.
 
== Szyfrowanie ==
Linia 22:
W innych kryptosystemach (np. w [[ElGamal]]), podpisywanie cyfrowe jest zupełnie niezależne od szyfrowania. Niektóre, jak [[Digital Signature Algorithm|DSA]], umożliwiają tylko podpisywanie, nie da się w nich zaś w oczywisty sposób szyfrować. Podpis tej samej wiadomości w RSA jest zawsze identyczny. W ElGamalu i DSA każdy kolejny podpis tej samej wiadomości zwykle jest inny – co ma znaczenie w niektórych zastosowaniach.
 
Rząd [[Stany Zjednoczone|Stanów Zjednoczonych]] usiłował swego czasu ograniczyć stosowanie silnej kryptografii do szyfrowania, jednak musiał pozwolić na silne podpisy cyfrowe. [[RSA (kryptografia)|RSA]] nie dawała możliwości udostępnienia tylko jednej z tych funkcji, dlatego promowany był system podpisów cyfrowych [[Digital Signature Algorithm|DSA]]. Jak się jednak okazało, losowość tych podpisów można wykorzystać do implementacji "[[steganografia|ukrytego kanału komunikacji]]", i silnego szyfrowania za pomocą DSA (jak również w podpisach ElGamala, ale ElGamal udostępnia też normalne szyfrowanie). Jest to jednak metoda bardzo powolna, i nie jest stosowana ze względu na dostępność szybszych "pośrednich"„pośrednich” metod takich jak [[RSA (kryptografia)|RSA]] i [[ElGamal]].
 
== Zależności między kluczem publicznym i prywatnym ==
Linia 28:
 
W [[RSA (kryptografia)|RSA]] zależność między kluczem publicznym i prywatnym jest symetryczna – uzyskanie klucza publicznego na podstawie prywatnego jest równie trudne jak uzyskanie prywatnego na podstawie publicznego. Składowe kluczy <math>d</math> i <math>e</math> obliczane są przy użyciu dwóch dużych i zbliżonych długością liczb pierwszych (<math>p</math> i <math>q</math>) generowanych w sposób możliwie przypadkowy. <math>d</math> i <math>e</math> otrzymuje się na podstawie równania (<math>d</math> jest losowane, <math>e</math> obliczane lub odwrotnie):
: <math>d\cdot e \equiv 1 \pmod{ (p-1)(q-1) }</math>.
 
Iloczyn <math>p</math> i <math>q</math> jest częścią klucza oznaczaną przez <math>n.</math>.
 
Klucz publiczny i prywatny tworzą odpowiednio pary <math>(e, n)</math> i <math>(d, n).</math>. Liczby <math>p</math> i <math>q,</math>, poza procesem generowania kluczy nie są potrzebne i zwykle są kasowane, jednakże istnieje wariant algorytmu w którym wchodzą one w skład klucza prywatnego (są wykorzystywane w celu zwiększenia szybkości działania kryptosystemu).
 
W systemie [[ElGamal]] wybierana jest [[liczba pierwsza]] <math>p,</math>, generator <math>g,</math>, następnie losowana jest liczba <math>x.</math>. Kluczem prywatnym jest <math>(p, g, x),</math>, kluczem publicznym zaś <math>(p, g, g^x),</math>, w [[Arytmetyka modularna#Definicja formalna|grupie multiplikatywnej liczb całkowitych modulo p]].
Klucz publiczny może być obliczony na podstawie prywatnego, co zresztą ma miejsce podczas generacji kluczy.
 
Bardzo podobnie wygląda sytuacja w innych systemach opartych o [[logarytm dyskretny]], takich jak [[kryptografia krzywych eliptycznych]]. W tych metodach grupę Zp zastępuje się inną [[grupa (matematyka)|grupą]], np. utworzoną z punktów leżących na [[krzywa eliptyczna|krzywej eliptycznej]].
 
== Przypisy ==
{{Przypisy}}
 
== Zobacz też ==
* [[Algorytmalgorytm symetryczny]]
* [[Kryptologiakryptologia kwantowa]]
* [[Infrastruktura klucza publicznego|PKI]]
* [[Secure Shell|SSH]]
* [[Transport Layer Security]]
 
* [[Kryptologia kwantowa]]
== Przypisy ==
{{Przypisy}}
 
{{Kontrola autorytatywna}}