Khóa công khai có thể được sử dụng để giải mã tin nhắn được mã hóa bằng khóa riêng tương ứng không?


21

Từ những gì tôi đã thấy về việc sử dụng một cặp khóa chung và khóa riêng, khóa chung được sử dụng để mã hóa tin nhắn và khóa riêng được sử dụng để giải mã tin nhắn được mã hóa.

Nếu một tin nhắn được mã hóa bằng khóa riêng, nó có thể được giải mã bằng khóa chung tương ứng không?

Nếu có, bạn có thể đưa ra một số ví dụ về trường hợp này được sử dụng?

Cảm ơn.



Tại sao bạn lại mã hóa nó nếu khóa giải mã được công khai?
Bergi

5
@Bergi Chữ ký số?
dùng11153

6
@Bergi: Câu trả lời dài: Bằng cách mã hóa tin nhắn bằng khóa riêng của bạn theo cách có thể được giải mã bằng khóa chung của bạn, bạn có thể gửi tin nhắn có thể được đọc bởi bất kỳ ai nhưng chỉ có thể được bạn viết. Bằng cách mã hóa bằng khóa riêng của bạn trước và sau đó bằng khóa riêng của người nhận, bạn tạo một tin nhắn chỉ có thể được giải mã bởi người nhận dự định và chỉ có thể được bạn viết.
gnasher729

2
@ gnasher729 Tôi nghĩ rằng bạn có nghĩa là mã hóa bằng khóa riêng của bạn trước và sau đó bằng khóa chung của người nhận . Bạn không cần phải có khóa riêng của người khác
kiamlaluno

Câu trả lời:


49

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 Pornincâ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.


2
+1 để giải thích rõ ràng về một quan niệm sai lầm tôi thậm chí không biết tôi đã có khi tôi nhấp vào câu hỏi này.
Ixrec

1
Cảm ơn. "khóa công khai 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." Bạn có nghĩa là chúng vẫn có thể được sử dụng cho các mục đích đó, nhưng không phải là lựa chọn tốt, hoặc chúng không thể? Những thuộc tính toán học nào quyết định rằng chúng không phải là loại "đúng", bên cạnh các thuộc tính bảo mật (ví dụ: độ bất đối xứng về độ cứng để đoán một khóa từ khóa kia)?
Tim

2
Sẽ cắt bỏ hai đoạn đầu tiên nhưng nếu không thì đây là một câu trả lời rất sâu sắc. Tôi đến đây từ lời giải thích của một giáo dân về mã hóa / giải mã và chữ ký / xác minh và làm thế nào khóa riêng có thể được sử dụng để "mã hóa", và câu trả lời của bạn đã làm rõ chính xác những gì tôi đang tự hỏi.
Kyle Chadha

Vì vậy, bài viết này không chính xác: continalsign.com/en/blog/how-do-digital-signatures-work ? Nó đề cập rằng một khóa công khai được sử dụng để giải mã và khóa riêng được sử dụng để mã hóa
Kenneth Worden

@KennethWorden Điều đó hầu như đúng, nhưng nhận được một số chi tiết sai. Trong phần mềm áp dụng Chữ ký, thì băm được mã hóa, nên băm có chữ ký , và điều đó tạo ra chữ ký số. Và trong phần Xác minh Chữ ký, không có thứ gọi là băm được giải mã của Bỉ, đối với hầu hết các lược đồ chữ ký, bạn không thể lấy lại hàm băm từ chữ ký, thay vào đó là một phép toán khác (gọi là xác minh) trong đó lấy hàm băm và chữ ký làm đầu vào và đầu ra.
Gilles 'SO- ngừng trở thành ác quỷ'

6

Khi lược đồ PKE sử dụng hoán vị bẫy trong hộp đen , "mã hóa" bằng khóa riêng theo sau là "giải mã" bằng khóa chung sẽ mang lại thông điệp ban đầu. Đối với các chương trình PKE khác, người ta thậm chí không thể hiểu ý nghĩa của nó. (Ví dụ: cố gắng "mã hóa" bằng khóa riêng có thể là lỗi loại .)

[Mã hóa tin nhắn "bằng khóa riêng" theo sau là giải mã "bằng khóa chung tương ứng"] được sử dụng khi mọi người nghĩ rằng trường hợp đó là dành cho chữ ký số và không được sửa chữa kịp thời. Xem câu trả lời nàycâu hỏi này .


4
Không. Bạn đang tiếp tục lầm tưởng rằng sách giáo khoa RSA là hệ thống mật mã khóa công khai duy nhất và chữ ký đó giống như giải mã.
Gilles 'SO- ngừng trở nên xấu xa'

Trước đây là một điểm tuyệt vời, mà tôi sẽ sửa chữa. Là phần sau của bình luận của bạn do câu dài của tôi không đủ rõ ràng?

4
Tôi không hiểu ý của bạn là gì khi mà mọi người nghĩ rằng đó là chữ ký số. Có vẻ như bạn đang nói rằng mọi người lầm tưởng rằng chữ ký số khác với mã hóa khóa công khai. Đến từ bạn Tôi chắc chắn đây không phải là ý bạn, nhưng câu trả lời của bạn thực sự khó hiểu, ngay cả sau khi thêm đoạn đầu tiên.
Gilles 'SO- ngừng trở nên xấu xa'

2

Có, một tin nhắn được mã hóa bằng khóa riêng có thể được giải mã bằng khóa chung.

Trong thực tế, điều này được thực hiện để xác minh tính xác thực của dữ liệu. Trong chữ ký số, một người mã hóa dữ liệu băm của dữ liệu bằng khóa riêng của mình. Bất cứ ai cũng có thể giải mã tương tự với khóa công khai có sẵn của người đó và xác minh tính xác thực của dữ liệu.


2
Bạn có thể làm điều này với hệ thống mật mã RSA, nhưng không phải với tất cả các hệ thống mật mã khóa công khai. Ví dụ, hệ thống mật mã El-Gamal khác với sơ đồ chữ ký El-Gamal. Xem thêm câu trả lời của Gilles
Thằn lằn rời rạc

Đúng là. Tôi đã cố gắng đưa ra câu trả lời thẳng về phía trước bất kể thuật toán cụ thể @Discretelizard
Kevin Amipara

Cảm ơn bạn đã đưa ra một câu trả lời thẳng về phía trước.
jrahhali

0

Hãy nghĩ về khóa công khai trong mã hóa bất đối xứng là khóa thay vì khóa. Liệu hacker có khóa và hộp khóa có khóa đó, sẽ mở khóa hộp bị khóa? Tất nhiên là không, và để mở khóa chiếc hộp đó, bạn cần có khóa khóa. Mà không bao giờ được gửi ở nơi công cộng, và chỉ có người gửi có nó.

Tuy nhiên, câu trả lời là : D thực sự có thể tin tặc giải mã tin nhắn chỉ bằng khóa chung (khóa và hộp khóa). Nhưng điều đó cực kỳ khó đối với bất kỳ máy tính nào hiện nay. Bởi vì hoàn nguyên tin nhắn được mã hóa bằng khóa công khai đó là một hoạt động toán học rất khó, đặc biệt là khi khóa đó lớn tới số 2048 bit. Sức mạnh của phép toán dựa vào độ cứng của thừa số nguyên tố của một số lớn.

Đây là một video hay giải thích cách thuật toán RSA hoạt động https://www.youtube.com/watch?v=wXB-V_Keiu8


0

Câu hỏi có giá trị về mặt eMRTD trong đó Khóa công khai AA được sử dụng để giải mã phản hồi Xác thực nội bộ được mã hóa bởi Khóa riêng eMRTD. Nó là một phần của tiêu chuẩn ICAO 9303.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.