อัลกอริทึมการเข้ารหัสและการเซ็นชื่อที่ดีที่สุดสำหรับ GnuPG: RSA / RSA หรือ DSA / Elgamal [ปิด]


46

ฉันพบคำถามที่ค่อนข้างเก่าเกี่ยวกับว่า RSA หรือ DSA เป็นอัลกอริทึมที่ต้องการสำหรับการลงชื่อและเข้ารหัสด้วย GnuPG

เมื่อใช้gpg --gen-keyงานตัวเลือกที่เกี่ยวข้องสองตัวเลือกคือ "RSA และ RSA" หรือ "DSA และ Elgamal" ไหนดีกว่ากัน ข้อดีและข้อเสียของแต่ละข้อคืออะไร มีอะไรเปลี่ยนแปลงไปบ้างตั้งแต่ปี 2009?


พบว่ากระทู้เหล่านี้มีประโยชน์เช่นกัน: linuxquestions.org/565242#2986414และlists.gnupg.org/022764
RubyTuesdayDONO

คำตอบ:


73

คำแนะนำที่น่าเชื่อถือ

เมื่อเวลาโพสต์ล่าสุดยังคงมีการถกเถียงกันเกี่ยวกับการเปลี่ยนอัลกอริธึมเริ่มต้นที่ยังพบในไฟล์เก็บถาวรของเว็บซึ่งมีฉันทามติคร่าวๆสลับไปยังคีย์ RSA 2kตามค่าเริ่มต้น

Debianแนะนำให้ใช้คีย์ RSA 4k ในเอกสารเกี่ยวกับการใช้คีย์ย่อยและไฟล์debian-keys readme ส่วนใหญ่ประมาณสามในสี่ของคีย์ในกลุ่มผู้พัฒนาเดเบียนคือ (ยัง) DSA / Elgamal (นับจากการส่งผ่านการส่งออกของ gpg)

ในการสัมภาษณ์กับ iX (นิตยสารวิทยาศาสตร์คอมพิวเตอร์ของเยอรมันฉบับที่ 11/2013 พร้อมให้บริการออนไลน์ฟรี ) ผู้ประดิษฐ์ของ PGP Phil Zimmermannขอแนะนำ "อย่างน้อย 3k ความยาวเมื่อใช้ RSA" แม้ว่าจะยังไม่ได้คีย์ 1k ก็ตาม แต่พวกเขา "เข้าถึงผู้โจมตีที่เต็มไปด้วยทรัพยากร"

เกี่ยวกับความปลอดภัย

ตอนนี้ทั้งสองถูกกล่าวว่าปลอดภัยสำหรับขนาดคีย์ที่เพียงพอ (4k แนะนำสำหรับ RSA, 2k จำเป็นสำหรับ DSA2 มิฉะนั้นคุณจะใช้DSA1 ซึ่งใช้ SHA-1 )

สำหรับการเลือกความยาวของคีย์ RSAให้ดูที่ภาพรวมเกี่ยวกับความแข็งแรงที่แท้จริงของ NIST (หน้า 64) มันง่ายที่จะเห็นว่าจุดแข็งไม่ได้เติบโตเป็นเส้นตรงตามความยาวของกุญแจ (และเวลาในการคำนวณ) ดังนั้นขนาดสองเท่าจึงไม่ได้หมายถึง "ความปลอดภัยสองชั้น"

มีปัญหากับการใช้งาน DSA ของ OpenSSL บนเดเบียนแต่เกิดจากการใช้ข้อมูลสุ่มที่ไม่ดีและอาจเกิดขึ้นกับ RSA ได้เช่นกัน

การเลือกระหว่าง RSA และ DSA2

โปร RSA

  • RSA เป็นที่แพร่หลายมากขึ้นแม้ว่าจะไม่จำเป็นในมาตรฐาน OpenPGP แต่การใช้งานที่สำคัญทั้งหมดสามารถจัดการได้ DSA2 ยังไม่ (ยัง)
  • RSA ให้การตรวจสอบลายเซ็นที่เร็วกว่ามาก

โปร DSA2

  • ลายเซ็นเล็ก ๆ แต่ก็เล็ก สำหรับอีเมลและการลงรหัสอาจไม่สำคัญ
  • การสร้างคีย์ที่เร็วขึ้น (สามารถเกี่ยวข้องกับพลังงานต่ำและอุปกรณ์ฝังตัวเช่นมือถือและเราเตอร์)
  • เร็วขึ้นเล็กน้อยสำหรับการลงชื่อ

การตัดสินใจของฉันเอง

เมื่อเร็ว ๆ นี้สร้างคีย์ OpenPGP ใหม่ฉันตัดสินใจเลือก 8k RSA สำหรับคีย์หลักและ 4k RSA เป็นคีย์ย่อยสำหรับใช้ประจำวัน ลายเซ็น RSA นั้นรวดเร็วในการตรวจสอบต่อไปและลายเซ็นขนาดใหญ่ 8k นั้นใช้สำหรับการลงชื่อคีย์อื่น ๆ เท่านั้น แต่ควรถือว่า 8k นั้นเพียงพอแล้วเป็นเวลานาน 4k ใช้ได้กับคีย์ย่อยปัจจุบันเนื่องจากมีราคาถูกที่จะเพิกถอนได้โดยไม่สูญเสียลายเซ็นทั้งหมดของคุณ

การสร้างคีย์ 8k นั้นใช้เวลาประมาณ 20 นาทีใน Core 2 Duo T9300 ของฉันดังนั้นใช้เวลาของคุณและทำงาน (สำหรับการให้อาหารแหล่งสุ่ม)


0

ในขณะที่ฉันเลือกคีย์หลัก 4K RSA พร้อมคีย์ย่อยการลงนาม 3K RSA และคีย์ย่อยการเข้ารหัส 4K El-Gamal เหตุผลเดียวที่ฉันไม่ได้ไปหามาสเตอร์คีย์ที่สูงกว่าในตอนนี้ก็เพราะความชุกของผู้ใช้ที่มีอุปกรณ์พกพาซึ่งต้องต่อสู้กับกุญแจที่ใหญ่กว่า

แน่นอนว่าฉันมีกุญแจที่ใหญ่กว่าสำหรับวัตถุประสงค์เฉพาะบางอย่าง แต่นั่นก็ไม่ได้มีไว้สำหรับการสื่อสารกับผู้อื่น


1
ทำไม El-Gamal สำหรับการเข้ารหัส?
code_monk
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.