สำหรับ WPA มีเครื่องคิดเลขเพื่อกำหนดเวลาที่ต้องการถอดรหัสวลีรหัสผ่าน แต่ฉันไม่พบอะไรเลยสำหรับ OpenPGP
ใช้เวลานานเท่าใดในการทำลายอีเมลที่เข้ารหัส OpenPGP 1024 บิต (ขึ้นอยู่กับพลังของ CPU)
ฉันสนใจในคีย์อื่น ๆ เช่น 2048 และ 4096
สำหรับ WPA มีเครื่องคิดเลขเพื่อกำหนดเวลาที่ต้องการถอดรหัสวลีรหัสผ่าน แต่ฉันไม่พบอะไรเลยสำหรับ OpenPGP
ใช้เวลานานเท่าใดในการทำลายอีเมลที่เข้ารหัส OpenPGP 1024 บิต (ขึ้นอยู่กับพลังของ CPU)
ฉันสนใจในคีย์อื่น ๆ เช่น 2048 และ 4096
คำตอบ:
ในขณะที่คำตอบของ @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 บิตและมากกว่าได้
ก่อนอื่นฉันสมมติว่าคุณกำลังพูดถึงการเข้ารหัส RSA 1024 บิต
โดยทั่วไปแล้วหัวข้อนั้นซับซ้อนเกินไปสำหรับการให้หมายเลขอย่างง่าย
tl; dr : การถอดรหัสข้อความที่เข้ารหัสของ OpenPGP บน CPU ตัวเดียวไม่สามารถทำได้และอาจใช้เวลาหลายปีแม้จะมีกลุ่มการคำนวณขนาดใหญ่ ยังไม่ทราบข้อบกพร่องทางคณิตศาสตร์ (ต่อสาธารณะ) ที่สามารถเปลี่ยนแปลงสิ่งนี้ได้ตามลำดับความสำคัญเนื่องจากคอมพิวเตอร์ควอนตัมอาจจะทำในอนาคต (ไกลจากมุมมอง "อินเทอร์เน็ตยุค")
รุ่นที่ยาวกว่าเล็กน้อย:
นอกจากคีย์ RSA 1024 บิตแล้วยังใช้กับขนาดปุ่มที่ใหญ่กว่า ปุ่มขนาดใหญ่ให้ความปลอดภัยมากขึ้น (ในรูปแบบของพลังการคำนวณเพื่อถอดรหัสพวกเขา) แต่จำไว้ว่าความปลอดภัยไม่ได้เพิ่มขนาดเชิงเส้นเป็นเส้นตรง
มีโพสต์ที่ดีในการแลกเปลี่ยนความปลอดภัยของข้อมูลสแต็ค"วิธีการประมาณเวลาที่จำเป็นในการถอดรหัสการเข้ารหัส RSA?" ซึ่งไม่สมบูรณ์ด้วยการประมาณเช่น "การใช้ Core i7 model xy คุณจะสามารถถอดรหัสคีย์ RSA 1024 บิตในเวลาประมาณ z ชั่วโมง" แต่คำตอบที่เห็นด้วยกับ "คีย์ RSA 1024 บิตไม่สามารถถอดรหัสได้ โดยปกติแล้วจะมีพลังในการคำนวณ (เช่น. เครื่องระดับสูงจำนวนหนึ่ง) ในเวลาที่เหมาะสม
การอภิปรายเกี่ยวกับการทำลายคีย์บิตขนาด 1024 บิตที่มีพลังในการคำนวณมากกว่านั้นได้รับการพิจารณาจากมุมมองเชิงวิชาการเท่านั้น:
ฉันเพิ่งเรียนรู้ว่าการเลือกพารามิเตอร์สำหรับการแยกตัวประกอบจำนวน 1024 บิตได้เริ่มขึ้นแล้ว (นั่นคือส่วน "ฉลาด") การกรองเป็นไปได้ทางเทคนิค (จะมีราคาแพงและต้องใช้เวลาในการคำนวณหลายปีสำหรับกลุ่มมหาวิทยาลัยจำนวนมาก) แต่ในขณะนี้ไม่มีใครรู้วิธีการทำส่วนลดเชิงเส้นสำหรับจำนวนเต็ม 1024 บิต ดังนั้นอย่าคาดหวังว่าจะมีการหยุดพักระหว่าง 1024- บิตเร็ว ๆ
สิ่งนี้อาจนำไปใช้กับสถาบันขนาดใหญ่ที่ได้รับการสนับสนุนเป็นอย่างดีพร้อมด้วยพลังการคำนวณจำนวนมากเช่น NSA
สิ่งต่าง ๆ สามารถเปลี่ยนแปลงได้อย่างรวดเร็วถ้า
สำหรับ DSA / ElGamal สิ่งต่าง ๆ เล็กน้อย คีย์ DSA ที่มีขนาดเท่ากันของคีย์ RSA ให้ความปลอดภัยมากขึ้น แต่ในเวลาเดียวกัน DSA มีความเสี่ยงต่อการสุ่มตัวเลขที่ไม่ดี (เปรียบเทียบกับข้อบกพร่องของตัวสร้างตัวเลขแบบสุ่ม Debian ) การเข้ารหัสแบบวงรีรูปไข่ซึ่งกำลังจะมาถึงสำหรับ OpenPGP ในขณะนี้ยังไม่มีการโจมตีที่รู้จักสำหรับอัลกอริทึมที่สนับสนุนและโดยทั่วไปถือว่าปลอดภัย แต่มีข้อสงสัยบางอย่างเหลืออยู่โดยเฉพาะอย่างยิ่งบนเส้นโค้ง หมายเลขเครื่องกำเนิดไฟฟ้ามาตรฐาน) และการใช้งาน nitpicks
สำหรับเหตุผลด้านประสิทธิภาพ OpenPGP ใช้การเข้ารหัสแบบไฮบริดดังนั้นข้อความจึงได้รับการเข้ารหัสด้วยการเข้ารหัสแบบสมมาตรและคีย์สมมาตรแบบสุ่ม (ใน OpenPGP มักเรียกว่า "เซสชันคีย์") กุญแจเซสชั่นนี้ถูกเข้ารหัสอีกครั้งโดยใช้อัลกอริทึมการเข้ารหัสแบบอสมมาตรเช่น อาร์เอส
หากคุณสามารถถอดรหัสคีย์การเข้ารหัสแบบสมมาตรของข้อความคุณสามารถอ่านข้อความได้ (ซึ่งแตกต่างจากการถอดรหัสคีย์แบบอสมมาตรซึ่งคุณสามารถอ่านข้อความทั้งหมดที่เข้ารหัสเข้ากับคีย์นี้)
ไม่เหมือนกับรุ่นแรกๆ ของ PGP (ซึ่งใช้อัลกอริธึมการเข้ารหัสแบบสมมาตรซึ่งออกแบบโดยซิมเมอร์มันน์เองที่ชื่อว่าBassOmaticซึ่งถือว่าเสีย) อัลกอริธึมแบบสมมาตรทั้งหมดที่กำหนดไว้สำหรับ OpenPGPไม่มีการโจมตีที่เกี่ยวข้อง
หากไม่มีใครเลือกที่จะไม่ใช้การเข้ารหัสแบบสมมาตร (ซึ่งเป็นไปได้จริง ๆ !) การทำลายข้อความโดยใช้อัลกอริทึมการเข้ารหัสแบบสมมาตรไม่ควรได้รับการพิจารณาว่าเป็นไปได้ในขณะนั้น