ใช้เวลานานเท่าใดในการทำลายอีเมลที่เข้ารหัส OpenPGP 1024 บิต


9

สำหรับ WPA มีเครื่องคิดเลขเพื่อกำหนดเวลาที่ต้องการถอดรหัสวลีรหัสผ่าน แต่ฉันไม่พบอะไรเลยสำหรับ OpenPGP

ใช้เวลานานเท่าใดในการทำลายอีเมลที่เข้ารหัส OpenPGP 1024 บิต (ขึ้นอยู่กับพลังของ CPU)

ฉันสนใจในคีย์อื่น ๆ เช่น 2048 และ 4096

คำตอบ:


7

ในขณะที่คำตอบของ @Jens Erat นั้นค่อนข้างครอบคลุม แต่ฉันได้ทำการวิจัยเพื่อทำลาย RSA (อัลกอริทึมที่อยู่เบื้องหลัง OpenPGP) ดังนั้นฉันจึงต้องการที่จะเข้าใจ:

ฉันจะทำลายมันด้วยกฎเกณฑ์และให้ TL; DR ก่อน: มันเป็นไปไม่ได้ที่คุณจะทำลายคีย์นั้น หากเรากำลังดูสิ่งนี้แนบเนียนไม่มีทางที่คุณจะคำนึงถึงจำนวนเต็ม 1024 บิต ทางออกที่ดีที่สุดของคุณคือพยายามแบ่งส่วนอื่น ๆ ของห่วงโซ่ความปลอดภัย (เช่นเดสก์ท็อปที่ผู้รับตรวจสอบอีเมล)

ด้วยความสมจริงให้ออกไปลองพิจารณากลยุทธ์ที่เป็นไปได้:

  • การคาดเดาคนตาบอด / การบังคับให้เดรัจฉาน ด้วย semiprime 1024 บิตมีโอกาสน้อยที่จะได้ผล มันจะเป็นการดีกว่าถ้าคุณใช้เวลาแบบสุ่มพยายามทายตัวเลขลอตเตอรี่

  • การสร้างโต๊ะสายรุ้ง ถอดการคาดเดาออกจากแฟคตอริ่งโดยนำไพรม์ทุกอันที่ต่ำกว่า 2 ^ 1024 และคูณด้วยไพร์มอื่น ๆ เพื่อเก็บผลลัพธ์ไว้ในตาราง จากนั้นทั้งหมดที่คุณต้องทำคือค้นหาคู่ที่ถูกต้อง อย่างที่คุณจินตนาการได้มันเป็นไปไม่ได้เช่นกัน นี่จะเกี่ยวข้องกับ x! คู่สำหรับจำนวน x ของจำนวนเฉพาะ โดยฟังก์ชั่นการนับจำนวนเฉพาะคุณกำลังดูค่าประมาณ 2.95 * 10 ^ 307 - สำหรับการเปรียบเทียบคาดว่าจำนวนอะตอมในเอกภพที่สังเกตได้นั้นมีขนาด 10 ^ 83 ดังนั้นแม้ว่าเราจะทำได้ ทำให้ทุกอะตอมเก็บสองช่วงเวลาและผลิตภัณฑ์ของพวกเขาในแบบที่คอมพิวเตอร์ของเราสามารถจัดทำดัชนีมันจะเป็นไปไม่ได้

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

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


20

ก่อนอื่นฉันสมมติว่าคุณกำลังพูดถึงการเข้ารหัส RSA 1024 บิต

โดยทั่วไปแล้วหัวข้อนั้นซับซ้อนเกินไปสำหรับการให้หมายเลขอย่างง่าย

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

รุ่นที่ยาวกว่าเล็กน้อย:

ถอดรหัสแคร็ก Asymmetric (คีย์ RSA 1024 บิต)

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

มีโพสต์ที่ดีในการแลกเปลี่ยนความปลอดภัยของข้อมูลสแต็ค"วิธีการประมาณเวลาที่จำเป็นในการถอดรหัสการเข้ารหัส RSA?" ซึ่งไม่สมบูรณ์ด้วยการประมาณเช่น "การใช้ Core i7 model xy คุณจะสามารถถอดรหัสคีย์ RSA 1024 บิตในเวลาประมาณ z ชั่วโมง" แต่คำตอบที่เห็นด้วยกับ "คีย์ RSA 1024 บิตไม่สามารถถอดรหัสได้ โดยปกติแล้วจะมีพลังในการคำนวณ (เช่น. เครื่องระดับสูงจำนวนหนึ่ง) ในเวลาที่เหมาะสม

การอภิปรายเกี่ยวกับการทำลายคีย์บิตขนาด 1024 บิตที่มีพลังในการคำนวณมากกว่านั้นได้รับการพิจารณาจากมุมมองเชิงวิชาการเท่านั้น:

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

สิ่งนี้อาจนำไปใช้กับสถาบันขนาดใหญ่ที่ได้รับการสนับสนุนเป็นอย่างดีพร้อมด้วยพลังการคำนวณจำนวนมากเช่น NSA

สิ่งต่าง ๆ สามารถเปลี่ยนแปลงได้อย่างรวดเร็วถ้า

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

สำหรับ DSA / ElGamal สิ่งต่าง ๆ เล็กน้อย คีย์ DSA ที่มีขนาดเท่ากันของคีย์ RSA ให้ความปลอดภัยมากขึ้น แต่ในเวลาเดียวกัน DSA มีความเสี่ยงต่อการสุ่มตัวเลขที่ไม่ดี (เปรียบเทียบกับข้อบกพร่องของตัวสร้างตัวเลขแบบสุ่ม Debian ) การเข้ารหัสแบบวงรีรูปไข่ซึ่งกำลังจะมาถึงสำหรับ OpenPGP ในขณะนี้ยังไม่มีการโจมตีที่รู้จักสำหรับอัลกอริทึมที่สนับสนุนและโดยทั่วไปถือว่าปลอดภัย แต่มีข้อสงสัยบางอย่างเหลืออยู่โดยเฉพาะอย่างยิ่งบนเส้นโค้ง หมายเลขเครื่องกำเนิดไฟฟ้ามาตรฐาน) และการใช้งาน nitpicks

แคร็กการเข้ารหัสแบบสมมาตร

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

หากคุณสามารถถอดรหัสคีย์การเข้ารหัสแบบสมมาตรของข้อความคุณสามารถอ่านข้อความได้ (ซึ่งแตกต่างจากการถอดรหัสคีย์แบบอสมมาตรซึ่งคุณสามารถอ่านข้อความทั้งหมดที่เข้ารหัสเข้ากับคีย์นี้)

ไม่เหมือนกับรุ่นแรกๆ ของ PGP (ซึ่งใช้อัลกอริธึมการเข้ารหัสแบบสมมาตรซึ่งออกแบบโดยซิมเมอร์มันน์เองที่ชื่อว่าBassOmaticซึ่งถือว่าเสีย) อัลกอริธึมแบบสมมาตรทั้งหมดที่กำหนดไว้สำหรับ OpenPGPไม่มีการโจมตีที่เกี่ยวข้อง

หากไม่มีใครเลือกที่จะไม่ใช้การเข้ารหัสแบบสมมาตร (ซึ่งเป็นไปได้จริง ๆ !) การทำลายข้อความโดยใช้อัลกอริทึมการเข้ารหัสแบบสมมาตรไม่ควรได้รับการพิจารณาว่าเป็นไปได้ในขณะนั้น


ฉันต้องถาม ... การสะกดคำว่า "ไม่สมมาตร" โดยเจตนาคืออะไร?
David Z

ไม่แน่นอนไม่; ไม่ใช่ "copmuting" ขอบคุณที่แจ้งให้ฉันทราบ
Jens Erat

ไม่มีสิ่งเช่น "คีย์ DES ที่มีขนาดเดียวกันกับคีย์ RSA" DES ใช้คีย์ 56 บิตระยะเวลา มันถูกกำหนดด้วยคีย์ 56 บิตเท่านั้น คุณไม่สามารถเรียกใช้ DES ด้วยขนาดแป้นอื่น ๆ ได้ นอกจากนี้ยังไม่เสี่ยงต่อการสุ่มตัวเลขที่ไม่ดีเพราะ DES ไม่ได้ใช้ตัวเลขสุ่มที่จุดใด ๆ ในอัลกอริทึม การใช้งานเฉพาะของมันอาจรวมถึงการสุ่มด้าน (เช่น IV สำหรับโหมด CBC ต้องสุ่ม) แต่ DES เองเป็นตัวกำหนดอย่างสมบูรณ์ DES ไม่ได้ใช้อีกต่อไป (DES สามครั้งเป็นครั้งคราว แต่ DES ไม่เคยทำ) คุณแน่ใจหรือว่าต้องการพูดคุยเกี่ยวกับ DES?
cpast

แน่นอนฉันไม่ต้องการ DES ที่สับสนกับ DSA ไม่ควรเกิดขึ้น DES, PGP, RSA, NSA, DSA: เราต้องการอักษรย่อสามตัว!
Jens Erat

กดแป้น openpgp 1024 บิตที่มากที่สุด (ไม่เหมือนกับปุ่ม ssl / tls) คือ DSA ไม่ใช่ RSA ฉันพบการสนทนาออนไลน์มากมายเกี่ยวกับการถอดรหัส 1024 บิต RSA แต่เพียงเล็กน้อยเกี่ยวกับการถอดรหัส 1024 บิต DSA
plugwash
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.