ทำไมการเข้ารหัส RSA จึงเป็นที่นิยมสำหรับการแลกเปลี่ยนคีย์


16

นี่เป็นคำถามที่อ่อนนุ่ม ฉันไม่รู้เรื่องการเข้ารหัสหรือประวัติของมันมากนัก แต่ดูเหมือนว่าการใช้งานทั่วไปสำหรับ RSA คือการแลกเปลี่ยนคีย์โดยการเข้ารหัสคีย์สมมาตรเพื่อส่งข้อความที่ยาวขึ้น (เช่นคำอธิบายของ iMessage ที่นี่ ) นี่ไม่ใช่สิ่งที่การแลกเปลี่ยนคีย์ Diffie-Hellman ซึ่งเก่ากว่า (และสำหรับฉันดูเหมือนง่ายกว่า) นั้นใช่หรือไม่ เมื่อมองที่ Wikipedia พวกเขาทั้งสองได้รับการจดสิทธิบัตรดังนั้นสิ่งนี้จะไม่รับผิดชอบต่อการเลือก

เพื่อความชัดเจนฉันไม่ได้ถามว่ามันมีความสำคัญทางทฤษฎีหรือไม่ที่การเข้ารหัสคีย์สาธารณะเป็นไปได้ ฉันถามว่าทำไมมันจึงกลายเป็นวิธีมาตรฐานในการฝึกเพื่อแลกเปลี่ยนคีย์ (สำหรับนักเขียนที่ไม่เข้ารหัส DH ดูจะง่ายกว่าในการนำไปใช้และยังไม่เชื่อมโยงกับรายละเอียดของกลุ่มที่ใช้)



3
RSA ยังสามารถใช้สำหรับการส่งคีย์ที่ปลอดภัยในกรณีที่โปรโตคอลการแลกเปลี่ยนคีย์แบบโต้ตอบเช่น DH เป็นไปไม่ได้เช่นเมื่อมีการเชื่อมโยงทางเดียวเท่านั้นหรือเมื่อการสื่อสารไปกลับมีมากเกินไป ใช้กรณีเช่นอีเมลที่เข้ารหัสชอบวิธีการดังกล่าวเนื่องจากคอมพิวเตอร์ของผู้รับอาจไม่ได้เชื่อมต่อกับอินเทอร์เน็ตในขณะที่คุณต้องการส่งข้อความดังนั้นจึงไม่สามารถเข้าร่วมในการแลกเปลี่ยนคีย์แบบโต้ตอบได้
Kevin Cathcart

คุณถามว่าทำไมมันถึงได้รับความนิยมในการแลกเปลี่ยนกุญแจหรือโดยทั่วไป?
OrangeDog

@KevinCathcart DH ไม่จำเป็นต้องมีการโต้ตอบ ผู้ส่งสามารถสร้างคู่คีย์แบบใช้ครั้งเดียวและส่งคีย์สาธารณะพร้อมข้อความ วิธีการดังกล่าวเป็นพื้นฐานของการเข้ารหัส ECIES / DLIES และ ElGamal ที่มีค่าใช้จ่ายขนาดเล็กน้อย (128 ไบต์สำหรับคีย์ 1024 บิต)
CodesInChaos

@CodesInChaos: แต่นั่นไม่ใช่วิธีการแลกเปลี่ยนคีย์ เมื่อคุณเปลี่ยนจากการแลกเปลี่ยนคีย์ไปเป็นการเข้ารหัสแบบพับลิกคีย์แบบเต็มตัวการเลือกปัญหาพื้นฐานที่ยากต่อการย้อนกลับไม่ส่งผลกระทบต่อข้อกังวลในการดำเนินงานเช่นทำให้มั่นใจว่าผู้ส่งมีสำเนาของคีย์สาธารณะของผู้รับ ฉันเข้าใจคำถามที่ถามว่า "ทำไมเรามักจะใช้กุญแจสาธารณะเข้ารหัสเพื่อแลกเปลี่ยนกุญแจแทนที่จะเป็นอัลกอริธึมการแลกเปลี่ยนกุญแจซึ่งมักจะง่ายกว่า" เห็นได้ชัดว่าอัลกอริทึมกุญแจสาธารณะใด ๆ สามารถใช้เพื่อสร้างความลับร่วมกันผ่านช่องทางที่ไม่ต้องมีการโต้ตอบ
Kevin Cathcart

คำตอบ:


14

ไม่มีเหตุผลทางเทคนิคที่แข็งแกร่ง เราสามารถใช้ Diffie-Hellman (พร้อมลายเซ็นที่เหมาะสม) เช่นเดียวกับ RSA

แล้วทำไม RSA เท่าที่ฉันสามารถบอกได้ว่าเหตุผลทางประวัติศาสตร์ที่ไม่ใช่ทางด้านเทคนิคครอบงำ RSA ได้รับการจดสิทธิบัตรและมี บริษัท อยู่เบื้องหลังการตลาดและการสนับสนุนสำหรับ RSA นอกจากนี้ยังมีห้องสมุดที่ดีและ RSA นั้นง่ายต่อการเข้าใจและคุ้นเคยสำหรับนักพัฒนา ด้วยเหตุผลเหล่านี้อาร์เอสเอได้รับเลือกและเมื่อเป็นตัวเลือกที่ได้รับความนิยม

ทุกวันนี้ตัวขับเคลื่อนหลักที่ทำให้การใช้งาน Diffie-Hellman เพิ่มขึ้นนั้นเป็นความปรารถนาในการรักษาความลับที่สมบูรณ์แบบซึ่งเป็นสิ่งที่ทำได้ง่ายโดยใช้ Diffie-Hellman แต่ช้ากว่า RSA

บังเอิญ: เป็นการแลกเปลี่ยนคีย์ Diffie-Hellman ไม่ใช่การแบ่งปันความลับ Diffie-Hellman การแบ่งปันความลับเป็นอย่างอื่นทั้งหมด


2
ฉันคิดว่าสิทธิบัตรเป็นเหตุผลมากกว่าที่จะหลีกเลี่ยง RSA หรือไม่
user1686

@grawity ที่ขึ้นอยู่กับว่าผู้ถือสิทธิบัตรนั้นมีพฤติกรรมอย่างไร; และรุ่นที่ผ่านมาผู้ถือสิทธิบัตรเทคโนโลยีไม่ได้ทำให้เสียชื่อเสียงโดยรวมผ่านทางกฎหมายขนาดใหญ่และระยะเวลานานในระดับที่เกิดขึ้นในช่วงสงครามสมาร์ทโฟนหรือการจดสิทธิบัตรของ บริษัท ขนาดเล็ก
Dan เล่นซอโดย Firelight

10

Diffie – Hellman ขาดคุณสมบัติที่สำคัญ: การรับรองความถูกต้อง คุณรู้ว่าคุณกำลังแบ่งปันความลับกับใครบางคน แต่คุณไม่สามารถรู้ได้ว่ามันเป็นผู้รับหรือคนที่อยู่ตรงกลาง ด้วย RSA คุณอาจมีบุคคลที่เชื่อถือได้สองสามคนที่เก็บกุญแจสาธารณะ หากคุณต้องการเชื่อมต่อกับธนาคารของคุณคุณสามารถขอให้บุคคลที่เชื่อถือได้ (สมมติว่า Verisign) เป็นรหัสสาธารณะของธนาคารเนื่องจากคุณมีรหัสสาธารณะของบุคคลที่เชื่อถือได้บนคอมพิวเตอร์ของคุณแล้ว คุณรู้ว่าคุณกำลังแบ่งปันความลับกับธนาคารของคุณ

ด้วย Diffie – Hellman เมื่อคุณสร้างความลับกับธนาคารของคุณคุณอาจสร้างความลับกับผู้ชายคนหนึ่งที่อยู่ตรงกลาง (MITM) ซึ่งสร้างด้วยธนาคารของคุณและเขาก็ต้องแปลจากคีย์เข้ารหัสหนึ่งไปเป็น อีกอันจะยังคงล่องหน (ในขณะที่สามารถอ่านการสื่อสารทั้งหมด)


แน่นอนคุณสามารถใช้ RSA สำหรับการรับรองความถูกต้องแล้วการแลกเปลี่ยนคีย์ DH
OrangeDog

4
คุณสามารถสร้างคู่ความลับและกุญแจสาธารณะได้ดังนี้: พีk=ก.skม.โอdพี. ด้วยการใช้อย่างถูกต้องคุณสามารถรู้ว่าคุณกำลังพูดคุยกับใคร สิ่งที่คุณไม่สามารถทำได้คือหลังจากข้อเท็จจริงที่พิสูจน์ให้บุคคลที่สามสิ่งที่คนอื่นพูดกับคุณ Diffie-Hellman ทำเท่าที่ฉันรู้ว่าขาดความสามารถในการสร้างลายเซ็น
kasperd

@kasperd: ฉันประหลาดใจที่มีคะแนนเสียงมากขึ้น
Louis

1
คุณสามารถใช้คีย์ Diffie-Hellman ระยะยาวสำหรับการรับรองความถูกต้อง (ดู CurveCP สำหรับโปรโตคอลตัวอย่าง) หรือคุณสามารถรวม DH กับลายเซ็น DSA / Schnorr / ElGamal (ซึ่งแบ่งปันคณิตศาสตร์พื้นฐานกับ DH มากเหมือนที่คุณสามารถทำได้ รวมการเข้ารหัส RSA กับลายเซ็น RSA
CodesInChaos

-2

อัลกอริทึม RSA ตามที่กล่าวไว้ก่อนหน้านี้ไม่ได้ดีไปกว่า Diffie – Hellman ซึ่งหลังเพิ่งขาดการรับรองความถูกต้องและอัลกอริธึมทั้งสองขึ้นอยู่กับความยากลำบากในการค้นหาลอการิทึมแบบไม่ต่อเนื่อง


2
ขอบคุณสำหรับการสนับสนุน อย่างไรก็ตามทุกสิ่งที่คุณพูดได้ถูกกล่าวถึงแล้วในคำตอบอื่น ๆ เราต้องการให้คุณตอบคำถามที่ยังไม่มีคำตอบที่ดีแทนที่จะทำซ้ำคำตอบที่มีอยู่ ยิ่งไปกว่านั้น RSA ยังขึ้นอยู่กับความยากลำบากของปัญหาแฟคตอริ่ง (และการพูดอย่างจริงจังกับปัญหาอาร์เอสเอ) มากกว่าลอการิทึมที่ไม่ต่อเนื่องในขณะที่ Diffie-Hellman เป็นระบบที่ไม่ต่อเนื่องแบบคลาสสิก )
DW

-3

มีด้านมืดของสิ่งนี้ซึ่งมองไม่เห็น
ความจริงที่ว่า RSA ได้รับการคัดเลือกจาก NSA
NSA ได้ปลูกแบ็คดอร์ใน Cypper ของ Eliptic Curve ซึ่งส่งมอบให้กับ RSA
http://www.intelligence-world.org/nsa-infiltrated-rsa-security-more-deeply-than-thought-study/


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