ในทางทฤษฎีเรายังไม่ทราบวิธีที่จะแยกตัวประกอบของจำนวนขนาดใหญ่ (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) ได้
Comments
อ่านข่าวนี้ตั้งแต่วันก่อน ตรงนี้มีคนคอมเมนต์ว่าที่เราใช้กันผ่านเน็ตก็ไม่ต้องตกใจมาก เพราะมันยากมากที่จะจับเวลาอย่างแม่นยำ เนื่องจากตัวแปรอื่นๆ เช่นเน็ตช้า หรือการทำงานอื่นๆ นอกจากการถอดรหัสเยอะมาก
ตรงนี้ส่วนที่น่ากลัวตือพวก embedded ทั้งหลายเช่น smartcard เพราะมันหมายถึงว่าหากบัตรเราหายไป คนที่ได้บัตรไปก็มีโอกาสที่จะยิงรหัสเข้าบัตรเพื่อขอดูคีย์ข้างใน แต่เท่าที่อ่านมามีการให้ทางแก้ไว้แล้วด้วยการทำให้ algorithm ทำงานแบบ random ทำให้เดาค่าได้ยากขึ้น ------ LewCPE
lewcpe.com, @wasonliw