สามารถใช้พับลิกคีย์เพื่อถอดรหัสข้อความที่เข้ารหัสโดยไพรเวตคีย์ที่เกี่ยวข้องได้หรือไม่?


21

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

หากข้อความถูกเข้ารหัสโดยไพรเวตคีย์มันจะถูกถอดรหัสโดยคีย์สาธารณะที่เกี่ยวข้องหรือไม่?

ถ้าใช่คุณสามารถยกตัวอย่างบางส่วนของกรณีที่ใช้ในกรณีนี้

ขอบคุณ


3
crypto.stackexchange.com/q/29030/351 , crypto.stackexchange.com/q/2123/351 , crypto.stackexchange.com/q/15997/351 , crypto.stackexchange.com/q/679/351 กรุณาค้นหาอย่างละเอียดก่อนถาม
DW

ทำไมคุณถึงเข้ารหัสมันทั้งหมดหากคีย์ถอดรหัสเป็นสาธารณะ
Bergi

5
@Bergi Digital Signature?
11153

6
@Bergi: คำตอบยาว ๆ : ด้วยการเข้ารหัสข้อความด้วยกุญแจส่วนตัวของคุณในแบบที่สามารถถอดรหัสด้วยกุญแจสาธารณะของคุณคุณสามารถส่งข้อความที่ทุกคนสามารถอ่านได้ แต่เขียนโดยคุณเท่านั้น โดยการเข้ารหัสด้วยไพรเวตคีย์ของคุณก่อนแล้วใช้ไพรเวตคีย์ของผู้รับคุณสร้างข้อความที่สามารถถอดรหัสโดยผู้รับที่ต้องการเท่านั้นและคุณเท่านั้นที่สามารถเขียนได้
gnasher729

2
@ gnasher729 ฉันคิดว่าคุณหมายถึงการเข้ารหัสด้วยกุญแจส่วนตัวของคุณครั้งแรกแล้วกับคีย์สาธารณะของผู้รับ คุณไม่ควรจะมีกุญแจส่วนตัวของคนอื่น
kiamlaluno

คำตอบ:


49

ถ: ถ้าคุณเหยียบปลาลงไปมันจะถอยหลังหรือไม่?
A: ???

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

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

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

นี้ถูกกล่าวว่า, cryptosystems คีย์สาธารณะจะขึ้นอยู่กับแนวคิดของฟังก์ชั่นประตูกล ฟังก์ชั่นทางเดียวคือฟังก์ชั่นที่ง่ายต่อการคำนวณ แต่มีผกผันยากที่จะคำนวณ ฟังก์ชั่น trapdoor เปรียบเสมือนฟังก์ชั่นทางเดียว แต่มีค่า“ เวทมนต์” ที่ทำให้การคำนวณกลับด้านง่าย

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

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

ฟังก์ชั่นประตูกลโดยทั่วไปมาในครอบครัว; ข้อมูลที่จำเป็นในการระบุองค์ประกอบหนึ่งของครอบครัวคือกุญแจสาธารณะ

แม้ว่าการเข้ารหัสคีย์สาธารณะและลายเซ็นดิจิทัลนั้นใช้แนวคิดเดียวกัน แต่ก็ไม่เหมือนกัน ตัวอย่างเช่นฟังก์ชั่นประตูกล RSA ขึ้นอยู่กับความยากลำบากในการยกเลิกการคูณหากคุณไม่ทราบปัจจัยอย่างใดอย่างหนึ่งแล้ว มีโครงร่างการเข้ารหัสลับพับลิกคีย์สองตระกูลที่ใช้พื้นฐานจาก RSAหรือที่รู้จักกันในชื่อ PKCS # 1 v1.5 และ OAEP นอกจากนี้ยังมีตระกูลที่พบบ่อยสองแบบของลายเซ็นดิจิทัลที่ใช้ RSA ซึ่งรู้จักกันในชื่อ PKCS # 1 v1.5 และ PSS “ PKCS # 1 v1.5” สองรายการมีการออกแบบที่คล้ายกัน แต่ไม่เหมือนกัน คำตอบโดย Thomas Porninและคำตอบนี้โดย Maarten Bodewesมีรายละเอียดเกี่ยวกับความแตกต่างระหว่างลายเซ็น / การตรวจสอบและการถอดรหัส / การเข้ารหัสในกรณีของ RSA

ระวังการนำเสนอของคนธรรมดาบางคนในการเข้ารหัสคีย์สาธารณะปลอมแปลงลายเซ็นดิจิทัลและการตรวจสอบว่าเป็นการถอดรหัสและการเข้ารหัสด้วยเหตุผลทางประวัติศาสตร์: RSA ได้รับความนิยมเป็นอันดับแรกและการทำงานหลักของ RSA นั้นสมมาตร (การทำงานหลักของ RSA หรือที่เรียกว่า“ ตำรา RSA” เป็นหนึ่งในขั้นตอนในอัลกอริทึมลายเซ็น / การตรวจสอบ / การเข้ารหัส / ถอดรหัส / RSA แต่มันไม่ได้ประกอบด้วยอัลกอริทึมลายเซ็นการตรวจสอบการเข้ารหัสหรือถอดรหัส) มีความสมมาตรจากมุมมอง 10,000 ฟุต แต่ไม่สมมาตรเมื่อคุณเข้าไปดูรายละเอียด

ดูลดจากลายเซ็นการเข้ารหัส? ซึ่งอธิบายว่าคุณสามารถสร้างรูปแบบการเข้ารหัสจากแบบแผนลายเซ็น แต่ภายใต้เงื่อนไขบางประการเท่านั้น


2
+1 สำหรับการอธิบายความเข้าใจผิดอย่างชัดเจนฉันไม่รู้ด้วยซ้ำว่าฉันมีเมื่อฉันคลิกที่คำถามนี้
Ixrec

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

2
จะตัดออกสองย่อหน้าแรก แต่อย่างอื่นนี่คือคำตอบที่ลึกซึ้งมาก ฉันมาที่นี่จากคำอธิบายของคนธรรมดาของการเข้ารหัส / ถอดรหัสและลายเซ็น / การตรวจสอบและวิธีการที่คีย์ส่วนตัวสามารถใช้ในการ "เข้ารหัส" และคำตอบของคุณชี้แจงอย่างชัดเจนในสิ่งที่ฉันสงสัย
Kyle Chadha

ดังนั้นบทความนี้ไม่ถูกต้อง: globalsign.com/en/blog/how-do-digital-signatures-work ? มันกล่าวว่ามีการใช้กุญแจสาธารณะสำหรับการถอดรหัสและใช้กุญแจส่วนตัวสำหรับการเข้ารหัส
Kenneth Worden

@KennethWorden มันถูกต้องส่วนใหญ่ แต่ได้รับรายละเอียดบางอย่างผิดปกติ ภายใต้“ การใช้ลายเซ็น”,“ แฮชถูกเข้ารหัส” ควรเป็น“ แฮชถูกเซ็นชื่อ ”, และนั่นทำให้ลายเซ็นดิจิทัลเพียงอย่างเดียว และภายใต้“ การตรวจสอบลายเซ็น” ไม่มีสิ่งใดที่เป็น“ แฮ็คถอดรหัส”: สำหรับแผนการลายเซ็นส่วนใหญ่คุณไม่สามารถรับแฮชกลับจากลายเซ็นได้สิ่งที่เกิดขึ้นแทนคือมีการดำเนินการทางคณิตศาสตร์ที่แตกต่างกัน ซึ่งใช้แฮชและลายเซ็นเป็นอินพุตและเอาต์พุต“ ok” หรือ“ bad”
Gilles 'หยุดความชั่วร้าย'

6

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

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


4
ไม่คุณกำลังสานต่อความเชื่อที่ว่าตำราเรียน RSA นั้นเป็นระบบเข้ารหัสของกุญแจสาธารณะเท่านั้นและลายเซ็นนั้นก็เหมือนกับการถอดรหัส
Gilles 'ดังนั้น - หยุดความชั่วร้าย'

อดีตเป็นจุดที่ยอดเยี่ยมซึ่งฉันจะแก้ไข ส่วนหลังของความคิดเห็นของคุณเป็นเพราะประโยคยาวของฉันไม่ชัดเจนเพียงพอหรือไม่?

4
ฉันไม่เข้าใจความหมายของ“ เมื่อคนคิดว่าเป็นลายเซ็นดิจิทัล” ดูเหมือนว่าคุณกำลังบอกว่าคนเข้าใจผิดว่าลายเซ็นดิจิทัลแตกต่างจากการเข้ารหัสรหัสสาธารณะ มาจากคุณฉันแน่ใจว่านี่ไม่ใช่สิ่งที่คุณหมายถึง แต่คำตอบของคุณสับสนจริงๆแม้หลังจากเพิ่มย่อหน้าแรก
Gilles 'ดังนั้น - หยุดความชั่วร้าย'

2

ใช่ข้อความที่เข้ารหัสโดยใช้กุญแจส่วนตัวสามารถถอดรหัสได้โดยใช้กุญแจสาธารณะ

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


2
คุณสามารถทำสิ่งนี้ได้ด้วย RSA cryptosystem แต่ไม่สามารถใช้ได้กับกุญแจสาธารณะทั้งหมดของ cryptosystem El-Gamal crypto-system นั้นแตกต่างจาก El-Gamal signature scheme ดูคำตอบของกิลส์
จิ้งจกไม่ต่อเนื่อง

จริงที่ ฉันพยายามที่จะให้คำตอบตรงไปข้างหน้าโดยไม่คำนึงถึงอัลกอริทึมเฉพาะ @Discretelizard
Kevin Amipara

ขอบคุณที่ให้คำตอบตรงไปตรงมา
jrahhali

0

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

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

นี่คือวิดีโอที่ดีที่อธิบายว่าอัลกอริทึม RSA ทำงานอย่างไรhttps://www.youtube.com/watch?v=wXB-V_Keiu8


0

คำถามนี้ถูกต้องในแง่ของ eMRTD โดยที่ AA Public Key ถูกใช้เพื่อยกเลิกการเข้ารหัสลับการตอบสนองภายในรับรองความถูกต้องที่เข้ารหัสโดย eMRTD ไพรเวตคีย์ เป็นส่วนหนึ่งของมาตรฐาน ICAO 9303

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