แคร็ก RSA ด้วยการวิเคราะห์การทำงานของซีพียู

by jittat
1 December 2006 - 10:03

ในทางทฤษฎีเรายังไม่ทราบวิธีที่จะแยกตัวประกอบของจำนวนขนาดใหญ่ (1024 บิต) ได้อย่างมีประสิทธิภาพ และนั่นก็เป็นเหตุผลที่ทำให้หลาย ๆ คนเชื่อว่าการแคร็กการเข้ารหัสด้วย RSA นั้นทำได้ยากเย็นด้วยเช่นกัน

อย่างไรก็ตาม ล่าสุดได้มีงานวิจัยแสดงให้เห็นว่า การวิเคราะห์การทำงานจากการสั่งให้เข้ารหัส RSA ในซีพียู เพื่อเก็บข้อมูลเกี่ยวกับกุญแจรหัสที่ใช้ได้ หลักการพื้นฐานของกระบวนการดังกล่าวไม่ใช่เรื่องใหม่เสียทีเดียว เพราะว่าก่อนหน้านี้มีการพยายามแกะ RSA โดยการจับเวลาการทำงานของซีพียูในการเข้ารหัสซ้ำ ๆ หลายที อย่างไรก็ตามวิธีใหม่ที่เรียกว่า Simple Branch Prediction Analysis สามารถเก็บข้อมูลของกุญแจที่ใช้โดยใช้ข้อมูลที่เก็บจากการเรียกให้เข้ารหัสเพียงครั้งเดียว

การเก็บข้อมูลดังกล่าวกระทำโดยโปรเซสลับที่ต้องทำงานอยู่บนเครื่องเดียวกันกับที่เครื่องที่เข้ารหัส งานวิจัยดังกล่าวระบุว่าสามารถถอดรหัสได้ 508 บิตจากทั้งสิ้น 512 บิต จากการสั่งเข้ารหัส 10 ครั้ง

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

หมายเหตุ: การเข้ารหัสแบบ RSA เป็นวิธีที่ใช้อย่างแพร่หลายในอินเทอร์เน็ต เพราะเป็นเข้ารหัสแบบกุญแจสาธารณะ ตัวอย่างซอฟต์แวร์ที่ implement RSA เช่น OpenSSL

จาก Wired News คอลัมน์ Security Matters, NewScientist อ้างอิงเพิ่มเติม: wikipedia ใครสนใจอ่าน paper (.pdf) ได้

Blognone Jobs Premium