Nếu kẻ tấn công có quyền truy cập vào 20 phiên bản được mã hóa, thời gian giải mã có thấp hơn không? Trong trường hợp chính xác này, mã hóa có thể bị phá vỡ không?
Không, nó không thấp hơn và sẽ không có mã hóa nào có thể bị phá vỡ hơn một bản mã duy nhất.
Lệnh gpg -c
theo mặc định sẽ sử dụng hàm chuỗi-to-key được lặp lại và thêm muối (đã thử nghiệm bằng gpg (GnuPG) 2.2.19).
Sau đây được tạo ra bằng cách sử dụng pgpdump
công cụ dòng lệnh sau khi tôi mã hóa một tệp văn bản nhỏ bằng cách sử dụng gpg -c
:
Cũ: Gói khóa phiên được mã hóa bằng khóa đối xứng (thẻ 3) (13 byte)
Phiên bản mới(4)
Sym alg - AES với khóa 256-bit (sym 9)
Chuỗi-to-key được lặp lại và thêm muối (s2k 3):
Hàm băm - SHA1(băm 2)
Muối - bc da bd be 72 43 43 8a
Đếm - 65011712(mã hóa đếm 255)
Mới: Gói MDC và được mã hóa đối xứng (thẻ 18) (90 byte)
phiên bản 1
Dữ liệu được mã hóa [sym alg được chỉ định trong khóa phiên được mã hóa bằng khóa sym]
(văn bản thuần + MDC SHA1(20 byte))
Hàm chuỗi-to-key được gọi là Hàm dẫn xuất khóa dựa trên mật khẩu hoặc PBKDF.
Muối 64 bit ngẫu nhiên được kết hợp với mật khẩu để tạo ra một giá trị bí mật mới, giá trị này sẽ được sử dụng để thực hiện mã hóa. Vì mỗi khóa được tạo bằng một đầu vào khác nhau và vì PBKDF không thể đảo ngược nên các khóa mã hóa không cung cấp bất kỳ vectơ tấn công nào. Thông tin về một khóa không cung cấp bất kỳ thông tin nào về các khóa khác đã được tạo.
Các khóa mã hóa thực tế cũng có thể được tạo bởi một trình tạo số ngẫu nhiên an toàn - miễn là kẻ tấn công không tìm thấy mật khẩu. Nhưng việc tìm kiếm mật khẩu hoàn toàn không tăng tốc so với một bản mã duy nhất.