Sẽ mất bao lâu để phá vỡ một email được mã hóa OpenPGP 1024 bit?


9

Đối với WPA, có các máy tính để xác định thời gian cần thiết để bẻ khóa cụm mật khẩu, nhưng tôi không tìm thấy gì cho OpenPGP.

Sẽ mất bao lâu để phá vỡ một email được mã hóa OpenPGP 1024 bit (tùy thuộc vào sức mạnh của CPU)?

Tôi cũng quan tâm đến các phím khác như 2048 và 4096.

Câu trả lời:


7

Trong khi câu trả lời của @Jens Erat khá toàn diện, tôi đã nghiên cứu phá vỡ RSA (thuật toán đằng sau OpenPGP), vì vậy tôi muốn phản đối:

Tôi sẽ phá vỡ định mức và đưa ra TL; DR trước: Bạn không thể phá khóa đó. Nếu chúng tôi đang xem xét điều này một cách thực tế, không có cách nào để bạn tính được số nguyên 1024 bit. Đặt cược tốt nhất có thể của bạn sẽ là cố gắng phá vỡ một phần khác của chuỗi bảo mật (ví dụ: máy tính để bàn nơi người nhận kiểm tra email của anh ta).

Với chủ nghĩa hiện thực, hãy xem xét các chiến lược có thể:

  • Đoán mù / Buộc vũ phu. Với một semiprime 1024 bit, rất ít khả năng điều này sẽ hoạt động. Nó sẽ được sử dụng tốt hơn thời gian của bạn ngẫu nhiên cố gắng đoán số xổ số.

  • Tạo bảng cầu vồng. Loại bỏ phỏng đoán ra khỏi bao thanh toán bằng cách lấy mọi số nguyên tố dưới 2 ^ 1024 và nhân nó với mọi số nguyên tố khác, lưu trữ kết quả vào một bảng. Sau đó, tất cả những gì bạn sẽ phải làm là tìm kiếm cặp chính xác. Như bạn có thể tưởng tượng, điều này cũng là không thể. Điều này sẽ liên quan đến x! cặp cho x số nguyên tố. Theo chức năng đếm số nguyên tố , bạn đang xem xét khoảng 2,95 * 10 ^ 307 số nguyên tố - để so sánh, ước tính số lượng nguyên tử trong vũ trụ quan sát được ở cường độ 10 ^ 83, vì vậy ngay cả khi chúng ta có thể làm cho mỗi nguyên tử lưu trữ hai số nguyên tố và sản phẩm của chúng theo cách mà máy tính của chúng ta có thể lập chỉ mục là không thể.

  • Sử dụng sàng số trường chung . GNFS là đặt cược tốt nhất của bạn để bao thanh toán một bán kết lớn. Nó được sử dụng bởi Kleinjung và nhóm của anh ấy để nhân tố RSA-768, một bán kết 768 bit. Thật không may, điều đó đã khiến nhóm của anh mất hơn ba năm để hoàn thành và đó là những mệnh lệnh có độ lớn nhỏ hơn con số bạn muốn tính. Ngay cả khi bạn đã chi hàng triệu đô la (mỗi ngày) để thuê những siêu máy tính hàng đầu với công suất tối đa, thì gần như không thể tính được con số này. Bước đầu tiên của GNFS là tìm đủ "quan hệ" cho phép giải các bài toán con và điều này có thể mất rất nhiều thời gian.

Phương án cuối cùng của bạn là sử dụng máy tính lượng tử, cho phép bạn tính các con số trong một khoảng thời gian khả thi. Thật không may, những điều này vẫn chưa được phát triển đến mức có ích. Vì vậy, hiện tại, chúng ta không thể tính hệ số semiprimes 1024 bit và lớn hơn (và do đó, các thuật toán dựa vào chúng).


20

Đầu tiên, tôi giả sử bạn đang nói về mã hóa RSA 1024 bit.

Nói chung, chủ đề quá phức tạp để cung cấp một số đơn giản.

tl; dr : Việc bẻ khóa một tin nhắn được mã hóa OpenPGP trên một CPU là không khả thi và có thể mất nhiều năm ngay cả với các cụm máy tính lớn. Các lỗ hổng toán học chưa được biết đến (công khai) có thể thay đổi điều này theo mức độ lớn, vì máy tính lượng tử có thể sẽ xảy ra vào một lúc nào đó trong tương lai (từ quan điểm "thời đại internet").

Phiên bản dài hơn một chút:

Bẻ khóa mã hóa bất đối xứng (khóa RSA 1024 bit)

Ngoài các khóa RSA 1024 bit, điều này cũng áp dụng cho các kích thước khóa lớn hơn. Các khóa lớn hơn cung cấp bảo mật nhiều hơn (dưới dạng sức mạnh tính toán để bẻ khóa chúng), nhưng hãy nhớ rằng bảo mật không tăng tuyến tính với kích thước khóa.

Có một bài viết hay trên Sàn giao dịch bảo mật thông tin, "Làm thế nào để ước tính thời gian cần thiết để bẻ khóa mã hóa RSA?" , không hoàn thành với ước tính như "Sử dụng mô hình Core i7 xy, bạn sẽ có thể bẻ khóa khóa RSA 1024 trong z giờ ước tính", nhưng các câu trả lời đồng ý về "Các khóa RSA 1024 bit không thể bị bẻ khóa bởi các cá nhân với sức mạnh tính toán thường có sẵn (ví dụ, một số ít máy móc cao cấp) trong một thời gian hợp lý.

Việc thảo luận về việc phá khóa 1024 bit với khả năng tính toán cao hơn nhiều chỉ được xem xét theo quan điểm học thuật:

Gần đây tôi đã biết rằng việc lựa chọn các tham số cho hệ số hóa 1024 bit đã bắt đầu (đó là phần "cân não"); Việc sàng là khả thi về mặt kỹ thuật (sẽ tốn kém và liên quan đến nhiều năm tính toán trên nhiều cụm trường đại học), nhưng hiện tại, không ai biết cách thực hiện phần giảm tuyến tính cho số nguyên 1024 bit. Vì vậy, đừng mong đợi một sự phá vỡ 1024 bit bất cứ lúc nào sớm.

Điều này có lẽ cũng áp dụng cho các tổ chức lớn, được tài trợ tốt với nhiều sức mạnh tính toán như NSA.

Mọi thứ có thể thay đổi nhanh chóng nếu

  • ai đó tìm thấy một lỗ hổng toán học, làm giảm độ phức tạp của RSA bằng các bậc độ lớn (một số tổ chức như NSA sử dụng một số lượng lớn các nhà toán học vĩ đại), hoặc
  • máy tính lượng tử cuối cùng cũng hoạt động và có đủ mạnh và có khả năng chạy các thuật toán nhất định. Dự kiến ​​sẽ không xảy ra trong vòng vài năm tới.

Đối với DSA / ElGamal, mọi thứ hơi khác một chút. Khóa DSA có cùng kích thước của khóa RSA cung cấp bảo mật cao hơn, nhưng đồng thời DSA dễ bị tổn thương hơn với các số ngẫu nhiên xấu (so với lỗ hổng của trình tạo số ngẫu nhiên Debian ). Mã hóa đường cong Elliptic sắp ra mắt cho OpenPGP hiện tại chưa có các cuộc tấn công được biết đến đối với các thuật toán được hỗ trợ và thường được coi là an toàn, nhưng có một số nghi ngờ đặc biệt là trên các đường cong được NIST đề xuất (NIST đã mất khá nhiều tiếng tăm vì đã tạo ra một sự ngẫu nhiên bị phá vỡ trình tạo số một tiêu chuẩn) và một số nitpicks thực hiện.

Bẻ khóa mã hóa đối xứng

Đối với các rasons hiệu suất, OpenPGP sử dụng mã hóa lai, do đó tin nhắn được mã hóa bằng mã hóa đối xứng và khóa đối xứng ngẫu nhiên (trong OpenPGP, thường được gọi là "khóa phiên"). Khóa phiên này một lần nữa được mã hóa bằng thuật toán mã hóa bất đối xứng, ví dụ. RSA.

Nếu bạn có thể bẻ khóa mã hóa đối xứng của tin nhắn, bạn cũng có thể đọc tin nhắn (không giống như bẻ khóa không đối xứng, nơi bạn có thể đọc tất cả các tin nhắn được mã hóa vào khóa này).

Không giống như các phiên bản đầu tiên của PGP (sử dụng thuật toán mã hóa đối xứng do chính Zimmermann thiết kế có tên là BassOmatic , được coi là bị hỏng), tất cả các thuật toán đối xứng được xác định cho OpenPGP không có các cuộc tấn công đã biết có liên quan.

Trừ khi ai đó chọn không sử dụng mã hóa đối xứng (điều này thực sự có thể!), Việc phá vỡ một thông điệp bằng thuật toán mã hóa đối xứng sẽ không được coi là khả thi tại thời điểm hiện tại.


Tôi phải hỏi ... là lỗi chính tả của "không đối xứng" có chủ ý?
David Z

Không, tất nhiên là không; cũng không phải là "copmuting". Cảm ơn bạn đã thông báo cho tôi.
Jens Erat

Không có thứ gọi là "khóa DES có cùng kích thước với khóa RSA." DES sử dụng khóa 56 bit, thời gian . Nó chỉ được xác định với các khóa 56 bit; bạn không thể chạy DES với bất kỳ kích thước khóa nào khác. Nó cũng không dễ bị tổn thương bởi các số ngẫu nhiên xấu, bởi vì DES không sử dụng các số ngẫu nhiên tại bất kỳ điểm nào trong thuật toán (cũng không có bất kỳ khối mã hóa nguyên thủy nào khác); việc sử dụng cụ thể của nó có thể bao gồm một khía cạnh ngẫu nhiên (ví dụ IV cho chế độ CBC phải là ngẫu nhiên), nhưng bản thân DES là hoàn toàn xác định. DES cũng không còn được sử dụng (thỉnh thoảng ba DES, nhưng bản thân DES không bao giờ). Bạn có chắc là bạn muốn nói về DES?
cpast

Tất nhiên tôi không muốn. Việc nhầm lẫn DES với DSA không nên xảy ra. DES, PGP, RSA, NSA, DSA: Chúng tôi cần ít hơn ba từ viết tắt!
Jens Erat

Hầu hết các khóa openpgp 1024 bit (không giống như các khóa ssl / tls) là DSA không phải RSA. Tôi tìm thấy vô số cuộc thảo luận trực tuyến về việc bẻ khóa RSA 1024 bit nhưng rất ít về việc bẻ khóa DSA 1024 bit.
cắm vào
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.