Kryptografia klucza publicznego
(
kryptografia asymetryczna
) ? rodzaj
kryptografii
, w ktorym jeden z u?ywanych
kluczy
jest udost?pniony publicznie. Ka?dy u?ytkownik mo?e u?y? tego klucza do zaszyfrowania wiadomo?ci, ale tylko posiadacz drugiego, tajnego klucza mo?e odszyfrowa? tak? wiadomo??. Istniej? rownie? bardziej zaawansowane algorytmy wykorzystuj?ce wi?cej kluczy i inne zale?no?ci mi?dzy kluczami.
Kryptografia asymetryczna opiera si? na
funkcjach jednokierunkowych
? takich, ktore da si? łatwo wyliczy? w jedn? stron?, ale bardzo trudno w drug?. Np.
mno?enie
jest łatwe, a
rozkład na czynniki (z ang. faktoryzacja)
trudny (na czym przykładowo opiera si?
RSA
).
Pot?gowanie modulo
jest łatwe, a
logarytmowanie dyskretne
jest trudne (na czym opieraj? si?
ElGamal
,
DSA
i
ECC
).
Kryptografia asymetryczna została oficjalnie wynaleziona przez cywilnych badaczy
Martina Hellmana
,
Whitfielda Diffie
w
1976
roku. Prawie rownolegle prototyp podobnego systemu stworzył
Ralph Merkle
? w 1974 roku zaproponował algorytm wymiany kluczy nazwany
puzzlami Merkle’a
[1]
. Dopiero pod koniec XX wieku
brytyjska
słu?ba wywiadu elektronicznego
GCHQ
ujawniła, ?e pierwsza koncepcja systemu szyfrowania z kluczem publicznym została opracowana przez jej pracownika
Jamesa Ellisa
ju? w 1965 roku, a działaj?cy system stworzył w 1973 roku
Clifford Cocks
, rownie? pracownik GCHQ
[2]
. 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
podpisow cyfrowych
, do szyfrowania poczty (
OpenPGP
) itd.
Klucz publiczny u?ywany jest do
zaszyfrowania
informacji, klucz prywatny do jej odczytu. Poniewa? klucz prywatny jest w wył?cznym posiadaniu adresata informacji, tylko on mo?e j? odczyta?. Natomiast klucz publiczny jest udost?pniony ka?demu, kto zechce zaszyfrowa? wiadomo??.
Poniewa? kryptografia asymetryczna jest o wiele wolniejsza od symetrycznej, prawie nigdy nie szyfruje si? wiadomo?ci za pomoc? kryptosystemow asymetrycznych. Zamiast tego szyfruje si? jedynie
klucz
jakiego?
szyfru symetrycznego
, takiego jak np.
AES
. Takie protokoły, ł?cz?ce elementy kryptografii symetrycznej i asymetrycznej, nazywa si? hybrydowymi.
Strona uwierzytelniaj?ca wylicza
skrot
(
ang.
hash
) podpisywanej wiadomo?ci. Nast?pnie szyfruje ten skrot swoim kluczem prywatnym i jako
podpis cyfrowy
doł?cza do oryginalnej wiadomo?ci. Dowolna osoba posiadaj?ca klucz publiczny mo?e sprawdzi? autentyczno?? podpisu poprzez odszyfrowanie skrotu za pomoc? klucza publicznego nadawcy i porownanie go z własnor?cznie wyliczonym na podstawie wiadomo?ci.
W przypadku
RSA
klucz prywatny i publiczny mo?na zamieni? miejscami. Podpisy cyfrowe s? implementowane na bazie szyfrowania, tylko z odwrotnym zastosowaniem kluczy ? skrot wiadomo?ci jest szyfrowany kluczem prywatnym, a ?eby zweryfikowa? wiadomo??, odszyfrowuje si? go kluczem publicznym i porownuje z wiadomo?ci?.
W innych kryptosystemach (np. w
ElGamal
) podpisywanie cyfrowe jest zupełnie niezale?ne od szyfrowania. Niektore, jak
DSA
, umo?liwiaj? tylko podpisywanie, nie da si? w nich za? w oczywisty sposob 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 niektorych zastosowaniach.
Rz?d
Stanow Zjednoczonych
usiłował swego czasu ograniczy? stosowanie silnej kryptografii do szyfrowania, jednak musiał pozwoli? na silne podpisy cyfrowe.
RSA
nie dawała mo?liwo?ci udost?pnienia tylko jednej z tych funkcji, dlatego promowany był system podpisow cyfrowych
DSA
. Jak si? jednak okazało,
losowo??
tych podpisow mo?na wykorzysta? do
implementacji
?
ukrytego kanału komunikacji
” i silnego szyfrowania za pomoc? DSA (jak rownie? 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” metod takich jak RSA i
ElGamal
.
Zale?no?ci mi?dzy kluczem publicznym i prywatnym
[
edytuj
|
edytuj kod
]
We wszystkich kryptosystemach uzyskanie klucza prywatnego na podstawie publicznego musi by?
obliczeniowo trudne
.
W
RSA
zale?no?? mi?dzy kluczem publicznym i prywatnym jest symetryczna ? uzyskanie klucza publicznego na podstawie prywatnego jest rownie trudne, jak uzyskanie prywatnego na podstawie publicznego. Składowe kluczy
i
obliczane s? przy u?yciu dwoch du?ych i zbli?onych długo?ci? liczb pierwszych (
i
), generowanych w sposob mo?liwie przypadkowy.
i
otrzymuje si? na podstawie rownania (
jest losowane,
obliczane lub odwrotnie):
Iloczyn
i
jest cz??ci? klucza oznaczan? przez
Klucz publiczny i prywatny tworz? odpowiednio pary
i
Liczby
i
nie s? potrzebne poza procesem generowania kluczy i zwykle s? kasowane, jednak?e istnieje wariant algorytmu, w ktorym 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
generator
nast?pnie losowana jest liczba
Kluczem prywatnym jest
kluczem publicznym za?
w
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 na
logarytmie dyskretnym
, takich jak
kryptografia krzywych eliptycznych
. W tych metodach grup? Zp zast?puje si? inn?
grup?
, np. utworzon? z punktow le??cych na
krzywej eliptycznej
.
- ↑
Elementy budowy protokołow. W:
Bruce Schneier
:
Kryptografia dla praktykow. Protokoły, algorytmy i programy ?rodłowe w j?zyku C
. Wyd. 2. Warszawa: Wydawnictwa Naukowo-Techniczne, 2002, s. 51?81.
ISBN
83-204-2678-2
.
- ↑
Steven Levy:
Rewolucja w kryptografii
. Warszawa: Wydawnictwa Naukowo-Techniczne, 2002, s. 314?331.
ISBN
83-204-2757-6
.