Gdybym musiał przeformułować twoje pytanie na podstawie tego, jak je rozumiem, zadajesz następujące pytania:
Jeśli kryptografia klucza publicznego zapewnia, że klucz publiczny można uzyskać z klucza prywatnego, ale klucza prywatnego nie można uzyskać z klucza publicznego, możesz się zastanawiać, w jaki sposób klucz publiczny może odszyfrować wiadomość podpisaną kluczem prywatnym bez nadawcy ujawnienie klucza prywatnego w podpisanej wiadomości odbiorcy? (przeczytaj to kilka razy, aż będzie to miało sens)
Inne odpowiedzi zostały już wyjaśnione jak asymetryczne środki kryptograficzne, które można albo :
- Szyfruj kluczem publicznym, odszyfruj pasującym kluczem prywatnym (pseudokod poniżej)
var msg = 'secret message';
var encryptedMessage = encrypt(pub_key, msg);
var decryptedMessage = decrypt(priv_key, encryptedMessage);
print(msg == decryptedMessage == 'secret message'); // True
- Szyfruj kluczem prywatnym, odszyfruj pasującym kluczem publicznym (pseudokod poniżej)
var msg = 'secret message';
var encryptedMessage = encrypt(priv_key, msg);
var decryptedMessage = decrypt(pub_key, encryptedMessage); // HOW DOES THIS WORK???
print(msg == decryptedMessage == 'secret message'); // True
Wiemy , że działają oba przykłady nr 1 i 2. Przykład nr 1 ma intuicyjny sens, podczas gdy przykład nr 2 nasuwa pierwotne pytanie .
Okazuje się, że kryptografia krzywych eliptycznych (zwana także „mnożeniem krzywych eliptycznych”) jest odpowiedzią na pierwotne pytanie. Kryptografia krzywych eliptycznych to matematyczna zależność, która umożliwia spełnienie następujących warunków:
- Klucz publiczny można wygenerować matematycznie z klucza prywatnego
- Klucz prywatny nie może zostać wygenerowany matematycznie z klucza publicznego (tj. „Funkcja zapadni”)
- Klucz prywatny może być zweryfikowane za pomocą klucza publicznego
Dla większości warunki # 1 i # 2 mają sens, ale co z # 3?
Masz dwie możliwości:
- Możesz zejść do króliczej nory i spędzić godziny na nauce, jak działa kryptografia krzywych eliptycznych ( tutaj jest świetny punkt wyjścia ) ... LUB ...
- Możesz zaakceptować powyższe właściwości - tak jak akceptujesz 3 prawa dynamiki Newtona bez konieczności samodzielnego ich wyprowadzania .
Podsumowując, para kluczy publiczny / prywatny jest tworzona za pomocą kryptografii krzywej eliptycznej, która z natury tworzy klucz publiczny i prywatny, które są matematycznie połączone w obu kierunkach, ale nie są matematycznie wyprowadzane w obu kierunkach . Dzięki temu możesz użyć czyjegoś klucza publicznego, aby sprawdzić, czy podpisał on określoną wiadomość, bez ujawniania Ci swojego klucza prywatnego.