Q: Nếu bạn đạp ngược lên một con cá, nó có đi ngược không?
A: ???
Một con cá không phải là một chiếc xe đạp. Tương tự, bạn không thể sử dụng khóa riêng để mã hóa tin nhắn hoặc khóa chung để giải mã tin nhắn. Họ không có thiết bị phù hợp.
Với RSA , là một hệ thống mật mã khóa công khai phổ biến nhưng không phải là duy nhất, khóa riêng và khóa chung có cùng thuộc tính toán học, do đó có thể sử dụng chúng thay thế cho nhau trong các thuật toán. (Tuy nhiên, chúng không có cùng thuộc tính bảo mật - khóa chung thường dễ đoán từ khóa riêng.) Bạn có thể sử dụng thuật toán mã hóa RSA và cung cấp khóa riêng hoặc thuật toán giải mã RSA và cung cấp cho công chúng Chìa khóa. Tuy nhiên, kết quả không có ý nghĩa theo các thuật toán tiêu chuẩn.
Sự đối xứng này giữa khóa công khai và khóa riêng không mở rộng ra hầu hết các hệ thống mật mã khóa công khai khác. Nói chung, khóa chung không phải là loại đối tượng toán học phù hợp để sử dụng cho thuật toán giải mã và khóa riêng không phải là loại đối tượng toán học phù hợp để sử dụng cho thuật toán mã hóa.
Điều này đang được nói, hệ thống mật mã khóa công khai dựa trên khái niệm về các chức năng bẫy . Hàm một chiều là một hàm dễ tính toán, nhưng có nghịch đảo thì khó tính. Hàm bẫy giống như hàm một chiều, nhưng có một giá trị ma thuật trên đường cao cấp giúp cho phép nghịch đảo dễ dàng tính toán.
Nếu bạn có chức năng bẫy, bạn có thể sử dụng nó để tạo thuật toán mã hóa khóa công khai: tiến lên (theo hướng dễ dàng), hàm mã hóa; đi lùi (theo hướng cứng), hàm giải mã. Giá trị ma thuật cần thiết để giải mã là khóa riêng.
Nếu bạn có chức năng bẫy, bạn cũng có thể sử dụng nó để tạo thuật toán chữ ký số : đi lùi (theo hướng cứng), các dấu hiệu chức năng ; đi về phía trước (theo hướng dễ dàng), hàm xác minh chữ ký. Một lần nữa, giá trị ma thuật cần thiết để ký là khóa riêng.
Các chức năng bẫy thường đến trong các gia đình; dữ liệu cần thiết để xác định một yếu tố cụ thể của gia đình là khóa chung.
Mặc dù mã hóa khóa công khai và chữ ký số dựa trên cùng một khái niệm, chúng không hoàn toàn giống nhau. Ví dụ, chức năng bẫy RSA dựa trên độ khó của việc hoàn tác phép nhân trừ khi bạn đã biết một trong các yếu tố. Có hai họ phổ biến của các chương trình mã hóa khóa công khai dựa trên RSA , được gọi là PKCS # 1 v1.5 và OAEP. Ngoài ra còn có hai họ phổ biến của các chương trình chữ ký số dựa trên RSA, được gọi là PKCS # 1 v1.5 và PSS. Hai chiếc PK PKCS # 1 v1.5 có thiết kế tương tự nhau, nhưng chúng không giống nhau. Câu trả lời này của Thomas Pornin và câu trả lời này của Maarten Bodewes đi vào một số chi tiết về sự khác biệt giữa chữ ký / xác minh và giải mã / mã hóa trong trường hợp RSA.
Xin lưu ý rằng một số bài thuyết trình của giáo dân về mật mã khóa công khai đã giả dạng chữ ký số và xác minh là giải mã và mã hóa, vì lý do lịch sử: RSA được phổ biến trước tiên và hoạt động cốt lõi của RSA là đối xứng. (Hoạt động cốt lõi của RSA, được gọi là sách giáo khoa RSA, là một trong các bước trong thuật toán chữ ký / xác minh / mã hóa / giải mã RSA, nhưng nó không tạo thành thuật toán chữ ký, xác minh, mã hóa hoặc giải mã.) là đối xứng từ chế độ xem 10000 feet, nhưng chúng không đối xứng một khi bạn đi vào chi tiết.
Xem thêm Giảm từ chữ ký sang mã hóa? , giải thích rằng bạn có thể xây dựng sơ đồ mã hóa từ sơ đồ chữ ký, nhưng chỉ trong một số điều kiện nhất định.