อะไรจะดีกว่าสำหรับปุ่ม GPG - RSA หรือ DSA


58

ssh-keygenค่าเริ่มต้นของการสร้างคีย์ RSA แต่gpg --gen-keyชอบ DSA / ElGamal มากกว่า

อันไหน - RSA หรือ DSA - ดีกว่าสำหรับ GPG?


1
ดูคำถาม StackOverflow นี้รวมทั้งคำตอบของฉันต่อคำถามที่ซ้ำกันซึ่งกล่าวถึงสาเหตุที่ RSA มีความปลอดภัยมากกว่า DSA อย่างมากทั้งในปี 2010 และช่องโหว่ที่รู้จักกันในปัจจุบัน
Adam Katz

คำตอบ:


37

ผู้ดูแล GPG กำลังคิดที่จะเปลี่ยนค่าเริ่มต้นเป็น RSA (ที่มา: การจัดการกับจุดอ่อนใน SHA-1 [LWN.net] ) ดังนั้นดูเหมือนว่าพวกเขาคิดว่า RSA เป็นตัวเลือกที่ดีกว่าในปัจจุบัน (และพวกเขาควรรู้มากกว่าคุณหรือฉัน)


25

RSA และ DSA - ความเข้าใจผิดและข้อมูลที่เป็นประโยชน์
มีการอ้างอิง RSA ที่เก่ากว่าและการอ้างอิง DSAล่าสุด


ในปี 2003 อาร์เอส VS DSA ลายเซ็น - ผู้ชนะคือ ... - อาร์เอส

การสร้างคีย์โดยทั่วไปนั้นเร็วกว่าสำหรับ DSA อย่างไม่น่าเชื่อซึ่งสมเหตุสมผลถ้าคุณเข้าใจอัลกอริธึม การลงชื่อยังเร็วกว่าสำหรับ DSA แต่ไม่ใช่ปัจจัยใหญ่ กำลังที่แข็งแกร่งของ RSA กำลังตรวจสอบซึ่งเร็วกว่า DSAมาก

ร่าง IETFล่าสุด: DSA กับ SHA-2 สำหรับ DNSSECซึ่งหมดอายุในวันที่ 7 มกราคม 2010
มีเหตุผลบางประการในการส่งเสริม DSA ผ่าน RSA ในวันนี้

การใช้ DSA กับ SHA-256 ใน DNSSEC มีข้อดีและ ข้อเสียบางประการที่เกี่ยวข้องกับการใช้ RSA กับ SHA-256 เมื่อใช้คีย์ 2048 บิต ลายเซ็น DSA สั้นกว่าลายเซ็น RSAมาก ที่ขนาดนี้ความแตกต่างคือ 512 บิต verus 2048 บิต บนแพลตฟอร์มทั่วไปโดยใช้ปุ่ม 2048 บิตเซ็น DSA เป็นเรื่องเกี่ยวกับสามครั้งเร็วกว่าสำหรับอาร์เอส แต่การตรวจสอบลายเซ็นอาร์เอสเป็นมากกว่าสิบครั้งเร็วกว่าสำหรับ DSA

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

ขณะนี้ยังไม่มีการโจมตีที่รู้จักในชุดของพารามิเตอร์ DSA ที่เลือกสำหรับเอกสารนี้ แน่นอนว่าการประเมินดังกล่าวสามารถเปลี่ยนแปลงได้ในอนาคต

แต่นี่เป็นเพียงร่างในขณะนี้

ทุกคนชอบความเร็วในการตรวจสอบของ RSA (!)



6

การอ้างถึงการอภิปรายในฟอรัม :

คำแนะนำของฉันคือการใช้คีย์การลงนาม RSA (คีย์ "หลัก" หรือ "หลัก") และคีย์ย่อย RSA สำหรับการเข้ารหัส เหตุผลในการใช้ RSA สำหรับการลงนามส่วนใหญ่เป็นเพราะ RSA ช่วยให้คุณสามารถใช้แฮชที่มีขนาดใหญ่กว่า DSA DSA2 ยังช่วยให้คุณใช้แฮชที่ใหญ่ขึ้น แต่ RSA ได้รับการสนับสนุนมานานกว่า DSA2 เป็นเวลาหลายปี

ฉันคิดว่าหากคุณใช้งานด้วยวิธีมาตรฐาน (เช่นคุณไม่ได้เข้ารหัสข้อมูลจำนวนมาก) พวกเขาจะทำได้ดี

ฉันจะเลือก RSA เป็นการส่วนตัวเพราะฉันได้เรียนรู้อัลกอริธึมและเป็นหนึ่งในอัลกอริธึมที่สวยที่สุดที่ฉันเคยเห็น


4

การใช้อัลกอริทึม SHA-2 นั้นเป็นไปได้และอนุญาตตั้งแต่การแก้ไข DSS ปัจจุบัน; แต่ฉันไม่สามารถค้นหาว่าการแก้ไขใดที่ GPG ติดตาม

เกี่ยวกับข้อมูลจำเพาะ DSS ปัจจุบัน ( FIPS-186-3 , p. i) ฟังก์ชันแฮชใด ๆ ที่ระบุใน SHS (FIPS-180-3, p. iv) อาจถูกนำมาใช้:

DSS:

อัลกอริทึมลายเซ็นดิจิทัลที่อนุมัติโดย FIPS จะต้องใช้กับฟังก์ชันแฮชที่เหมาะสมซึ่งระบุไว้ใน SHS

SHS:

มาตรฐานนี้ระบุอัลกอริทึมแฮชที่ปลอดภัยห้ารายการ ได้แก่ SHA-1, SHA-224, SHA-256, SHA-384 และ SHA-512 - สำหรับการคำนวณการแสดงข้อมูลอิเล็กทรอนิกส์แบบย่อ (ข้อความ)


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

แต่ด้วยการใช้ DSA กับ SHA-1 คุณอาจจะมีปัญหาด้านความปลอดภัยตามที่กล่าวแล้วโดยpgs


1

ความจริงก็คือมันอาจไม่สำคัญกับคุณมากนัก :) เนื่องจากเป็นส่วนหนึ่งของการเตรียมสร้าง key-pair และเป็นส่วนหนึ่งของการรักษา key-pair ที่มีอยู่โดยไม่คำนึงถึง crypto แบบอสมมาตรที่คุณเลือกคุณควรจะเป็น: 1) ความยาวคีย์ 2) เลือก base / modulo เพื่อปรับให้เหมาะสมสำหรับการเซ็นชื่อหรือการตรวจสอบ - ขึ้นอยู่กับสิ่งที่จะทำบ่อยขึ้น (คีย์ที่ใช้ในการออกใบรับรองเซิร์ฟเวอร์ TLS / SSL ควรปรับให้เหมาะสมสำหรับการตรวจสอบเนื่องจากเว็บเบราเซอร์ทุกตัวจะตรวจสอบลายเซ็น ... คีย์ที่ใช้ในการลงชื่อซอฟต์แวร์ควรได้รับการปรับให้เหมาะสมในทำนองเดียวกัน) 3) ตรวจสอบให้แน่ใจว่าคุณอายุคีย์ของคุณ - ใช้คีย์เดียวกันสำหรับ ssh-auth เป็นเวลาสองสามปีอาจถึงเวลาที่จะลงทะเบียนแม้ว่าคุณจะเลือกคีย์ ขนาดที่เหมาะสมสำหรับแอปพลิเคชันในวันนี้

ทั้ง RSA และ DSA ได้รับการประเมินอย่างมีนัยสำคัญ ถ้าคุณใช้ฐานรหัสที่ใช้งานได้จริง (RSAREF, RSA commercial, Mozilla / Netscape, Microsoft, OpenSSL, ... ) คุณคงไม่สนใจว่า cryptosystem ใดที่คุณใช้ตราบใดที่คุณใช้อย่างถูกต้องและใช้แนวทางปฏิบัติที่ดีที่สุดในปัจจุบัน

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