Jika saya harus menyusun kembali pertanyaan Anda dari bagaimana saya memahaminya, Anda mengajukan yang berikut:
Jika kriptografi kunci publik memastikan bahwa kunci publik dapat diturunkan dari kunci privat, tetapi kunci privat tidak dapat diturunkan dari kunci publik, maka Anda mungkin bertanya-tanya, bagaimana kunci publik mendekripsi pesan yang ditandatangani dengan kunci pribadi tanpa pengirim mengekspos kunci pribadi dalam pesan yang ditandatangani kepada penerima? (baca kembali itu beberapa kali sampai masuk akal)
Jawaban lain telah menjelaskan bagaimana asimetris berarti kriptografi yang dapat Anda baik :
- Enkripsi dengan kunci publik, dekripsi dengan kunci pribadi yang cocok (pseudocode di bawah)
var msg = 'secret message';
var encryptedMessage = encrypt(pub_key, msg);
var decryptedMessage = decrypt(priv_key, encryptedMessage);
print(msg == decryptedMessage == 'secret message'); // True
- Enkripsikan dengan kunci pribadi, dekripsi dengan kunci publik yang cocok (pseudocode di bawah)
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
Kita tahu bahwa kedua contoh # 1 dan # 2 berfungsi. Contoh # 1 masuk akal secara intuitif, sedangkan contoh # 2 meminta pertanyaan awal .
Ternyata, kriptografi kurva eliptik (juga disebut "perkalian kurva eliptik") adalah jawaban untuk pertanyaan awal. Kriptografi kurva elips adalah hubungan matematika yang memungkinkan kondisi berikut:
- Kunci publik dapat dihasilkan secara matematis dari kunci pribadi
- Kunci pribadi tidak dapat dibuat secara matematis dari kunci publik (yaitu "fungsi pintu jebakan")
- Kunci privat dapat dilakukan diverifikasi oleh kunci publik
Bagi sebagian besar, kondisi # 1 dan # 2 masuk akal, tetapi bagaimana dengan # 3?
Anda punya dua pilihan di sini:
- Anda bisa turun ke lubang kelinci dan menghabiskan berjam-jam mempelajari bagaimana kriptografi kurva eliptik bekerja (di sini adalah titik awal yang bagus ) ... ATAU ...
- Anda dapat menerima properti di atas - sama seperti Anda menerima 3 hukum gerak Newton tanpa harus menurunkannya sendiri.
Kesimpulannya, keypair publik / pribadi dibuat menggunakan kriptografi kurva eliptik, yang pada dasarnya, menciptakan kunci publik dan pribadi yang secara matematis terhubung di kedua arah, tetapi tidak secara matematis diturunkan di kedua arah . Inilah yang memungkinkan Anda menggunakan kunci publik seseorang untuk memverifikasi bahwa mereka menandatangani pesan tertentu, tanpa mereka membuka kunci pribadi mereka kepada Anda.