Якщо мені довелося переформулювати ваше питання з того, наскільки я його розумію, ви запитуєте наступне:
Якщо криптографія відкритого ключа гарантує, що відкритий ключ може бути отриманий із приватного ключа, але приватний ключ не може бути отриманий із відкритого ключа, то вам може бути цікаво, як можна відкритим ключем розшифрувати повідомлення, підписане приватним ключем без відправника виставлення приватного ключа в підписаному повідомленні одержувачу? (перечитайте це кілька разів, поки це не має сенсу)
Інші відповіді вже пояснили , як асиметричні засоби шифрування , що ви можете або :
- Шифруйте відкритим ключем, розшифруйте відповідним приватним ключем (псевдокод нижче)
var msg = 'secret message';
var encryptedMessage = encrypt(pub_key, msg);
var decryptedMessage = decrypt(priv_key, encryptedMessage);
print(msg == decryptedMessage == 'secret message'); // True
- Шифруйте приватним ключем, розшифруйте відповідним відкритим ключем (псевдокод нижче)
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
Ми знаємо, що і приклад №1 і №2 працюють. Приклад №1 має інтуїтивний сенс, тоді як приклад №2 задає оригінальне запитання .
Виявляється, криптографія еліптичної кривої (її також називають "множенням еліптичної кривої") - це відповідь на початкове запитання. Криптографія еліптичної кривої - це математична залежність, яка робить можливими такі умови:
- Відкритий ключ можна математично генерувати з приватного ключа
- Приватний ключ не може бути математично згенерований із відкритого ключа (наприклад, "функція" "
- Приватний ключ може бути перевірений відкритим ключем
Для більшості умови №1 та №2 мають сенс, а як щодо №3?
Тут у вас є два варіанти:
- Ви можете спуститися в кролячу нору і витратити години на години, вивчаючи, як працює криптографія еліптичної кривої ( ось чудова відправна точка ) ... АБО ...
- Ви можете прийняти властивості, наведені вище - так само, як ви приймаєте 3 закони руху Ньютона, не потребуючи їх самостійно виводити їх.
На закінчення, публічне / приватне ключове слово створюється за допомогою еліптичної кривої криптографії, яка за своєю природою створює публічний та приватний ключ, які математично пов'язані в обох напрямках, але математично не виводяться в обох напрямках . Саме це дозволяє вам використовувати чиїсь відкриті ключі, щоб переконатися, що вони підписали певне повідомлення, не піддаючи їм свій приватний ключ.