Klucz – informacja umożliwiająca wykonywanie pewnej czynności kryptograficznej – szyfrowania, deszyfrowania, podpisywania, weryfikacji podpisu itp.
Kryptografia symetryczna
W algorytmach symetrycznych klucz służy do szyfrowania i deszyfrowania wiadomości.
Do obu tych czynności używa się tego samego klucza, dlatego powinien być znany tylko uczestnikom. Taki klucz jest przypisany do danej komunikacji, nie do posiadacza, dlatego zwykle do każdego połączenia jest generowany nowy klucz.
Może do tego służyć np. (oparty na kryptografii asymetrycznej) protokół Diffiego-Hellmana.
Kryptografia asymetryczna
W kryptosystemach asymetrycznych wyróżnia się klucz publiczny oraz prywatny. Ten pierwszy może być zupełnie jawny, drugi powinien znać tylko właściciel. Matematyczna konstrukcja kluczy powinna być taka, żeby wygenerowanie prywatnego na podstawie publicznego było jak najtrudniejsze obliczeniowo. Zależnie od kryptosystemu wygenerowanie klucza publicznego na podstawie prywatnego również może być trudne (RSA) lub trywialne (ElGamal).
Dwie najważniejsze funkcje kryptografii asymetrycznej to:
- szyfrowanie – wtedy klucz publiczny służy do szyfrowania, a prywatny do deszyfrowania
- podpisy cyfrowe – klucz prywatny służy do generowania podpisów, klucz publiczny do ich weryfikacji
Klucze asymetryczne są zwykle przypisane do uczestnika (osoby, programu itp.), nie do kanału komunikacji.
Dwa najpopularniejsze systemy kryptografii asymetrycznej to RSA i ElGamal. Inne to m.in. DSA i ECC.