Nếu tôi phải diễn đạt lại câu hỏi của bạn từ cách tôi hiểu nó, bạn sẽ hỏi như sau:
Nếu mật mã khóa công khai đảm bảo rằng khóa công khai có thể được lấy từ khóa riêng, nhưng khóa riêng có thể được lấy từ khóa chung, thì bạn có thể tự hỏi, làm thế nào khóa công khai có thể giải mã tin nhắn được ký bằng khóa riêng mà không cần người gửi để lộ khóa riêng trong tin nhắn đã ký cho người nhận? (đọc lại một vài lần cho đến khi nó có ý nghĩa)
Các câu trả lời khác đã giải thích cách mã hóa bất đối xứng có nghĩa là bạn có thể :
- Mã hóa bằng khóa chung, giải mã bằng khóa riêng phù hợp (mã giả bên dưới)
var msg = 'secret message';
var encryptedMessage = encrypt(pub_key, msg);
var decryptedMessage = decrypt(priv_key, encryptedMessage);
print(msg == decryptedMessage == 'secret message'); // True
- Mã hóa bằng khóa riêng, giải mã bằng khóa chung phù hợp (mã giả bên dưới)
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
Chúng tôi biết rằng cả ví dụ # 1 và # 2 đều hoạt động. Ví dụ # 1 có ý nghĩa trực quan, trong khi ví dụ # 2 đặt ra câu hỏi ban đầu .
Hóa ra, mật mã đường cong elliptic (còn được gọi là "nhân đường cong elliptic") là câu trả lời cho câu hỏi ban đầu. Mật mã đường cong elip là mối quan hệ toán học làm cho các điều kiện sau có thể xảy ra:
- Khóa công khai có thể được tạo toán học từ khóa riêng
- Khóa riêng không thể được tạo một cách toán học từ khóa chung (nghĩa là "hàm bẫy")
- Khóa riêng có thể được xác minh bằng khóa chung
Đối với hầu hết, các điều kiện # 1 và # 2 có ý nghĩa, nhưng còn # 3 thì sao?
Bạn có hai lựa chọn ở đây:
- Bạn có thể đi xuống một hố thỏ và dành hàng giờ đồng hồ để tìm hiểu cách mã hóa đường cong elip hoạt động ( đây là một điểm khởi đầu tuyệt vời ) ... HOẶC ...
- Bạn có thể chấp nhận các thuộc tính ở trên - giống như bạn chấp nhận 3 định luật chuyển động của Newton mà không cần phải tự mình lấy chúng.
Tóm lại, một cặp khóa công khai / riêng được tạo bằng cách sử dụng mật mã đường cong elliptic, về bản chất, tạo ra khóa công khai và khóa riêng được liên kết về mặt toán học theo cả hai hướng, nhưng không xuất phát theo toán học theo cả hai hướng . Đây là những gì giúp bạn có thể sử dụng khóa chung của ai đó để xác minh rằng họ đã ký một tin nhắn cụ thể mà không để lộ khóa riêng của họ cho bạn.