RSA เป็นระบบการเข้ารหัสลับสำหรับการเข้ารหัสคีย์สาธารณะ และมีการใช้กันอย่างแพร่หลายสำหรับการรักษาความปลอดภัยข้อมูลที่ละเอียดอ่อน โดยเฉพาะอย่างยิ่งเมื่อถูกส่งผ่านเครือข่ายที่ไม่ปลอดภัยรวมทั้งอินเทอร์เน็ต
อัลกอริธึม RSA เป็นอัลกอริธึมการเข้ารหัสคีย์แบบอสมมาตรที่ได้รับความนิยมมากที่สุด ขึ้นอยู่กับข้อเท็จจริงทางคณิตศาสตร์ที่เป็นเพียงการค้นพบและคูณจำนวนเฉพาะจำนวนมากแต่ซับซ้อนในการแยกตัวประกอบผลิตภัณฑ์ ต้องใช้ทั้งคีย์ส่วนตัวและคีย์สาธารณะ
ตัวอย่างอัลกอริทึม RSA
ให้เรายกตัวอย่างของขั้นตอนนี้เพื่อเรียนรู้แนวคิด เพื่อความสะดวกในการอ่าน สามารถเขียนค่าตัวอย่างพร้อมกับขั้นตอนอัลกอริทึม
-
เลือกจำนวนเฉพาะขนาดใหญ่สองตัว P และ Q
ให้ P =47, Q =17
-
คำนวณ N =P x Q
เรามี N =7 x 17 =119
-
เลือกคีย์สาธารณะ (เช่น คีย์เข้ารหัส) E เพื่อไม่ให้เป็นองค์ประกอบของ (P -1) x (Q – 1)
-
ให้เราหา (7 - 1) x (17 -1) =6 x 16 =96
-
ตัวประกอบของ 96 คือ 2, 2, 2, 2, 2 และ 3 (เพราะ 96 =2 x 2 x 2 x 2 x 2 x 3)
-
ดังนั้นจึงสามารถเลือก E ได้ โดยที่ตัวประกอบของ E ตัวใดตัวหนึ่งไม่เป็น 2 และ 3 เราไม่สามารถเลือก E เป็น 4 ได้ (เพราะมันมีตัวประกอบ 2 ตัว), 15 (เพราะมี 3 ตัวเป็นตัวประกอบ) และ 6 (เพราะมันมีตัวประกอบอยู่ 3 ตัว) มี 2 และ 3 ทั้งคู่เป็นตัวประกอบ)
-
ให้เราเลือก E เป็น 5 (อาจเป็นตัวเลขอื่นที่ไม่ใช่ตัวประกอบเป็น 2 และ 3)
-
-
เลือกคีย์ส่วนตัว (เช่น คีย์ถอดรหัส) D รวมทั้งสมการต่อไปนี้เป็นจริง:
(D x E) mod (P – 1) x (Q – 1) =1
-
ให้เราแทนค่า E, P และ Q ในสมการ
-
เรามี (D x 5) mod (7 – 1) x (17 – 1) =1.
-
นั่นคือ (D x 5) mod (6) x (16) =1
-
นั่นคือ (D x 5) mod (96) =1
-
หลังจากคำนวณแล้ว ให้เราใช้ D =77 จากนั้นสิ่งต่อไปนี้ก็เป็นจริง:(77 x 5) mod (96) =385 mod 96 =1 ซึ่งเป็นสิ่งที่เราต้องการ
-
-
สำหรับการเข้ารหัส ให้คำนวณข้อความเข้ารหัส (CT) จากข้อความธรรมดา (PT) ดังนี้:
CT =PT E mod N
สมมติว่าเราต้องการเข้ารหัสข้อความธรรมดา 10 จากนั้นเรามี
CT =10 5 mod 119 =100000 mod 119 =40.
-
ส่ง CT เป็นข้อความรหัสไปยังผู้รับ
ส่ง 40 เป็นข้อความรหัสไปยังผู้รับ
-
สำหรับการถอดรหัส ให้คำนวณข้อความธรรมดา (PT) จากข้อความเข้ารหัส (CT) ดังนี้:
PT =CT D mod N
มันดำเนินการดังต่อไปนี้:
PT =CT D mod N
นั่นคือ
PT =40 77 mod 119 =10 ซึ่งเป็นข้อความธรรมดาดั้งเดิมของขั้นตอนที่ 5