Thuật toán ký và mã hóa tốt nhất cho GnuPG: RSA / RSA hoặc DSA / Elgamal? [đóng cửa]


46

Tôi đã tìm thấy câu hỏi tương đối cũ này về việc liệu RSA hay DSA là thuật toán ưa thích để ký và mã hóa với GnuPG.

Khi sử dụng gpg --gen-key, hai lựa chọn có liên quan là "RSA và RSA" hoặc "DSA và Elgamal". Cái nào tốt hơn? Những ưu và nhược điểm cho mỗi là gì? Có gì thay đổi kể từ năm 2009?


tìm thấy những bài viết hữu ích cũng như: linuxquestions.org/565242#2986414lists.gnupg.org/022764
RubyTuesdayDONO

Câu trả lời:


73

Khuyến nghị đáng tin cậy

Khi tại thời điểm của bài đăng cuối cùng, vẫn còn tranh cãi về việc thay đổi thuật toán mặc định vẫn được tìm thấy trong kho lưu trữ web có sự đồng thuận thô, việc chuyển sang khóa RSA 2k như mặc định đã được thực hiện.

Debian khuyên bạn nên sử dụng khóa RSA 4k trong tài liệu của họ về việc sử dụng khóa con và tệp readme của khóa debian . Phần lớn khoảng ba phần tư các khóa trong khóa của nhà phát triển debian là (vẫn) DSA / Elgamal (được tính bằng cách chuyển qua đầu ra của gpg).

Trong một cuộc phỏng vấn với iX (một tạp chí khoa học máy tính của Đức, số 11/2013, cũng có sẵn trực tuyến miễn phí ), nhà phát minh của PGP Phil Zimmermann khuyến nghị "ít nhất 3k chiều dài khi sử dụng RSA", mặc dù các phím 1k chưa bị hỏng. Nhưng họ "trong tầm tay của những kẻ tấn công giàu tài nguyên".

Về an ninh

Ngay bây giờ cả hai được cho là an toàn cho các kích thước khóa đầy đủ (khuyến nghị 4k cho RSA, 2k cần thiết cho DSA2, nếu không, bạn sẽ sử dụng DSA1 sử dụng SHA-1 ).

Để chọn độ dài khóa RSA , hãy xem tổng quan về cường độ thực tế do NIST cung cấp (tr. 64). Dễ dàng thấy rằng sức mạnh không tăng trưởng tuyến tính với độ dài khóa (và thời gian tính toán), vì vậy kích thước gấp đôi không có nghĩa là "bảo mật kép".

Có một vấn đề với việc triển khai DSA của OpenSSL trên Debian , nhưng điều này xảy ra do sử dụng dữ liệu ngẫu nhiên xấu và cũng có thể xảy ra với RSA.

Lựa chọn giữa RSA và DSA2

RSA chuyên nghiệp

  • RSA có phạm vi rộng hơn, mặc dù không cần thiết trong tiêu chuẩn OpenPGP, tất cả các triển khai chính đều có thể đối phó với nó; DSA2 chưa (chưa)
  • RSA cung cấp kiểm tra chữ ký nhanh hơn nhiều

chuyên nghiệp DSA2

  • Chữ ký nhỏ hơn, nhưng dù sao chúng cũng nhỏ; cho e-mail và ký mã có thể không đáng kể
  • Tạo khóa nhanh hơn (có thể liên quan đến các thiết bị nhúng và năng lượng thấp như điện thoại di động và bộ định tuyến)
  • Nhanh hơn một chút để ký

Quyết định của riêng tôi

Khi gần đây tạo một khóa OpenPGP mới, tôi đã quyết định mua 8k RSA cho các khóa chính và 4k RSA làm khóa con để sử dụng hàng ngày. Chữ ký RSA rất nhanh để xác minh bằng mọi cách và chữ ký 8k khổng lồ chỉ được sử dụng để ký các khóa khác, nhưng 8k nên được coi là đủ trong một thời gian thực sự dài. 4k là tốt cho một khóa con hiện tại vì nó rẻ để thu hồi nó mà không mất tất cả chữ ký của bạn.

Việc tạo khóa 8k đó mất khoảng 20 phút trên Core 2 Duo T9300 của tôi, vì vậy hãy dành thời gian của bạn và thực hiện một số công việc (để cung cấp nguồn ngẫu nhiên).


0

Trong khi đó tôi đã chọn khóa chính 4K RSA với khóa con ký 3K RSA và khóa con mã hóa 4K El-Gamal. Lý do duy nhất tôi chưa dùng khóa chính cao hơn vào thời điểm này là do sự phổ biến của người dùng với các thiết bị di động thực sự phải vật lộn với các phím lớn hơn.

Tất nhiên tôi có các khóa lớn hơn cho các mục đích cụ thể nhất định, nhưng điều đó có xu hướng không dành cho giao tiếp với người khác.


1
Tại sao El-Gamal để mã hóa?
code_monk
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.