Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

RSA ทำงานอย่างไร


Rivest-Shamir-Adleman (RSA) อัลกอริทึมการเข้ารหัสแบบอสมมาตรที่ใช้กันอย่างแพร่หลายในผลิตภัณฑ์และบริการต่างๆ การเข้ารหัสแบบอสมมาตรจำเป็นต้องมีคู่คีย์ที่เชื่อมต่อทางคณิตศาสตร์เพื่อเข้ารหัสและถอดรหัสข้อมูล

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

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

ผู้ส่งข้อมูลจะเข้ารหัสข้อมูลที่ตอบสนองด้วยกุญแจสาธารณะและส่งไปยังผู้รับ เนื่องจากคีย์สาธารณะเข้ารหัสข้อมูล มีเพียงเจ้าของคีย์ส่วนตัวเท่านั้นที่สามารถถอดรหัสข้อมูลที่ตอบสนองได้ ดังนั้นจึงเป็นเพียงผู้รับข้อมูลเท่านั้นที่สามารถถอดรหัสได้ ถึงแม้ว่าข้อมูลจะถูกโอนไปก็ตาม

แนวทางอื่นของการเข้ารหัสแบบอสมมาตรด้วย RSA คือการเข้ารหัสข้อความด้วยคีย์ส่วนตัว ในตัวอย่างนี้ ผู้ส่งข้อมูลเข้ารหัสข้อมูลด้วยคีย์ส่วนตัวและส่งข้อมูลที่เข้ารหัสและคีย์สาธารณะส่งต่อไปยังผู้รับข้อมูล

ผู้รับข้อมูลสามารถถอดรหัสข้อมูลด้วยกุญแจสาธารณะของผู้ส่ง ดังนั้นการตรวจสอบผู้ส่งคือพวกเขากล่าวว่าพวกเขาเป็นใคร ด้วยวิธีนี้ ข้อมูลอาจถูกขโมยและอ่านระหว่างทาง แต่เป้าหมายที่แท้จริงของการเข้ารหัสประเภทนี้คือการตรวจสอบตัวตนของผู้ส่ง

หากข้อมูลถูกขโมยและเปลี่ยนแปลงระหว่างการส่ง กุญแจสาธารณะจะไม่สามารถถอดรหัสข้อความใหม่ได้ ดังนั้นผู้รับจะเข้าใจว่าข้อมูลมีการเปลี่ยนแปลงในระหว่างการส่ง

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

RSA ใช้กับ Transport Layer Security (TLS) เพื่อความปลอดภัยในการเชื่อมต่อระหว่างบุคคลสองคน มีผลิตภัณฑ์และอัลกอริทึมที่มีชื่อเสียงอื่นๆ เช่น อัลกอริธึม Pretty Good Privacy ใช้ RSA ในปัจจุบันหรือก่อนหน้านี้

เครือข่ายส่วนตัวเสมือน (VPN) บริการอีเมล เว็บเบราว์เซอร์ และช่องทางการเชื่อมต่ออื่นๆ ก็ใช้ RSA เช่นกัน VPN สามารถใช้ TLS เพื่อจับมือระหว่างทั้งสองฝ่ายในการแลกเปลี่ยนข้อมูลได้