Câu trả lời:
Không. Đó là điểm của các khóa không đối xứng (công khai và riêng tư) vì bạn có thể dễ dàng mã hóa tin nhắn bằng khóa chung (đó là mục đích của nó) mà bạn có tin nhắn được mã hóa và khử. Nhưng việc giải mã tin nhắn được mã hóa chỉ có thể với khóa riêng. Khóa riêng không thể được tạo lại.
Vì nó đã không được đề cập: đây được gọi là một cuộc tấn công bằng văn bản đã biết và sẽ là một lỗ hổng rất xấu đối với một mật mã. Trên thực tế, trong tiền điện tử khóa công khai, cuộc tấn công này tương đương với một cuộc tấn công bằng văn bản đã chọn , vì bất kỳ ai cũng có thể mã hóa bất kỳ tin nhắn nào!
Có đã trên thực tế một số vụ tấn công nổi tiếng / chọn plaintext chống lại RSA (mật mã khóa công khai thường xuyên nhất được sử dụng bởi PGP để mã hóa đối xứng-key) , nhưng họ thường liên quan đến các cuộc tấn công bên kênh chống lại việc triển khai kém , hoặc yêu cầu một số điên của bản mã , hoặc chỉ hoạt động đối với một số khóa hiếm, nhất định .
Tuy nhiên, nói chung, câu trả lời cho câu hỏi của bạn là "không" - đó là điều làm cho mật mã an toàn.
Không, điều này sẽ rất tệ. Mã hóa PGP sử dụng kết hợp nối tiếp băm, nén dữ liệu, mã hóa khóa đối xứng và cuối cùng là mật mã khóa công khai. Băm sử dụng các chức năng một chiều . Hàm một chiều là một hàm dễ tính toán, nhưng khó đảo. Mật mã khóa công khai sử dụng các thuật toán bất đối xứng.
Các thuật toán được sử dụng cho mật mã khóa công khai dựa trên các mối quan hệ toán học (đáng chú ý nhất là hệ số nguyên và các bài toán logarit rời rạc) có lẽ không có giải pháp hiệu quả. Mặc dù người nhận dự định dễ dàng tạo ra khóa công khai và khóa riêng, để giải mã tin nhắn bằng khóa riêng và người gửi dễ dàng mã hóa tin nhắn bằng khóa chung, nhưng điều này cực kỳ khó (hoặc thực sự không thể) bất cứ ai cũng lấy được khóa riêng, chỉ dựa trên kiến thức của họ về khóa chung.
Chỉ cần có thông điệp ban đầu là không đủ để suy ra khóa riêng.
Có hai câu trả lời cho điều này.
Về mặt lý thuyết là có thể? Đúng. Bạn có thể tạo khóa giả, thử mã hóa, xem nó có khớp không. Nếu không, hãy thử một khóa giả khác, mã hóa, xem đầu ra có khớp không. Điều này thường được gọi là một cuộc tấn công vũ phu
Trong thực tế, điều này không thể được thực hiện. Phải mất một lượng thời gian và sức mạnh tính toán khác không để thử điều này. Mã hóa PGP thường sẽ sử dụng khóa có kích thước khá, có thể là 512, 1024, 2048 hoặc thậm chí nhiều bit hơn. Không gian khóa (số lượng khóa bạn có thể có) lớn đến mức bạn sẽ phải mất mãi mãi để tìm thấy sự kết hợp này.
Tôi đoán là bạn đã hỏi nếu bạn thực sự có thể làm điều này, không phải là lý thuyết. Và vì vậy, câu trả lời là không. Thế giới không có đủ sức mạnh tính toán cho việc này. Nếu bạn hỏi trên security.stackexchange.com ai đó quen thuộc hơn với các thuật toán và toán học có thể cho bạn biết điều này sẽ kéo dài bao lâu (có thể cho đến khi mặt trời di căn và làm sôi hành tinh của chúng ta). Câu trả lời ngắn gọn của tôi là "không trong vòng đời bạn"
Không có khả năng, nó có thể giúp nhưng nó không nên đưa bạn đi quá xa. Hình thức bảo mật có lẽ là một nơi tốt hơn cho việc này, nhưng:
Bạn nên có nhiều bước để mã hóa, tối thiểu ngay cả một phong nha cũng nên có hạt giống, hàm băm và muối.
Ví dụ: bạn có thể có một muối để làm cho tất cả mật khẩu dài 64 bit, và sau đó chạy nó thông qua hàm băm. Nếu nó chỉ là một hàm băm, thì nó sẽ rất dễ bị bẻ khóa.
Đây là một phiên bản rất đơn giản của nó ... nhưng nó không dễ dàng như vậy.