Klucze asymetryczne
klucze asymetryczne, znane również jako pary kluczy publicznych/prywatnych , są używane do szyfrowania asymetrycznego. Szyfrowanie asymetryczne służy głównie do szyfrowania i odszyfrowania kluczy sesji i podpisów cyfrowych. Szyfrowanie asymetryczne używa algorytmów szyfrowania kluczy publicznych.
Algorytmy kluczy publicznych używają dwóch różnych kluczy: klucza publicznego i klucza prywatnego. Element członkowski klucza prywatnego pary musi być przechowywany jako prywatny i bezpieczny. Klucz publiczny można jednak dystrybuować do wszystkich osób, które go żądają. Klucz publiczny pary kluczy jest często dystrybuowany za pomocą certyfikatu cyfrowego. Gdy jeden klucz pary kluczy jest używany do szyfrowania komunikatu, drugi klucz z tej pary jest wymagany do odszyfrowania komunikatu. W związku z tym, jeśli klucz publiczny użytkownika A jest używany do szyfrowania danych, tylko użytkownik A (lub osoba, która ma dostęp do klucza prywatnego użytkownika A) może odszyfrować dane. Jeśli klucz prywatny użytkownika A jest używany do szyfrowania elementu danych, tylko klucz publiczny A użytkownika odszyfruje dane, co oznacza, że użytkownik A (lub ktoś z dostępem do klucza prywatnego użytkownika A) wykonał szyfrowanie.
Jeśli klucz prywatny jest używany do podpisywania komunikatu, klucz publiczny z tej pary musi służyć do sprawdzania poprawności podpisu. Jeśli na przykład Alicja chce wysłać komuś podpisaną cyfrowo wiadomość, podpisze wiadomość swoim kluczem prywatnym, a druga osoba może zweryfikować jej podpis przy użyciu jej klucza publicznego. Ponieważ prawdopodobnie tylko Alicja ma dostęp do swojego klucza prywatnego, fakt, że podpis można zweryfikować przy użyciu klucza publicznego Alicji wskazuje, że Alicja utworzyła podpis.
Niestety algorytmy kluczy publicznych są bardzo powolne, mniej więcej 1000 razy wolniejsze niż algorytmy symetryczne. Użycie ich do szyfrowania dużych ilości danych jest niepraktyczne. W praktyce algorytmy kluczy publicznych są używane do szyfrowania kluczy sesji . algorytmy symetryczne są używane do szyfrowania/odszyfrowywania większości danych.
Podobnie, ponieważ podpisywanie komunikatu, w efekcie, szyfruje komunikat, nie jest praktyczne używanie algorytmów podpisu klucza publicznego do podpisywania dużych komunikatów. Zamiast tego skrótu o stałej długości jest wykonany z komunikatu, a wartość skrótu jest podpisana. Aby uzyskać więcej informacji, zobacz skróty i podpisy cyfrowe.
Każdy użytkownik ma zazwyczaj dwie pary kluczy publicznych/prywatnych . Jedna para kluczy służy do szyfrowania kluczy sesji, a druga do tworzenia podpisów cyfrowych. Są one nazywane parą kluczy wymiany kluczy i parą kluczy sygnatury , odpowiednio.
Należy pamiętać, że chociaż kontenery kluczy utworzone przez większość dostawców usług kryptograficznych (CSP) zawierają dwie pary kluczy, nie jest to wymagane. Niektórzy dostawcy CSP nie przechowują żadnych par kluczy podczas gdy inni dostawcy CSP przechowują więcej niż dwie pary.
Wszystkie klucze w interfejsie CryptoAPI są przechowywane w ramach dostawców CSP. Dostawcy CSP są również odpowiedzialni za tworzenie kluczy, ich niszczenie i używanie ich do wykonywania różnych operacji kryptograficznych. Eksportowanie kluczy z dostawcy usług kryptograficznych w celu ich wysyłania do innych użytkowników omówiono w kryptograficznego magazynu kluczy i programu Exchange.