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

ขั้นตอนของการสร้างคีย์โดยใช้อัลกอริธึม RSA คืออะไร?


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

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

RSA ต้องการกลุ่มการคูณ G =фn ,*, X> สำหรับการสร้างคีย์ กลุ่มนี้มีเฉพาะการคูณและการหาร ซึ่งจำเป็นสำหรับการสร้างคีย์สาธารณะและคีย์ส่วนตัว กลุ่มนี้เป็นความลับจากสาธารณะเพราะโมดูลัส ф(n) ถูกซ่อนจากสาธารณะ

อัลกอริทึมการสร้างคีย์สาธารณะและส่วนตัวเป็นองค์ประกอบที่ยากที่สุดของการเข้ารหัส RSA มีการสร้างจำนวนเฉพาะขนาดใหญ่สองจำนวนคือ p และ q โดยใช้อัลกอริธึมการทดสอบของ Rabin-Miller เป็นหลัก

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

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

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

เมื่อพิจารณาโมดูโลเลขคณิต n ให้เราบอกว่า e เป็นจำนวนเต็มที่ร่วมเฉพาะกับ totient φ(n) ของ n นอกจากนี้ยังสามารถพูดได้ว่า d เป็นตัวผกผันการคูณของ e modulo φ (n) คำจำกัดความของสัญลักษณ์ต่างๆ เหล่านี้แสดงไว้ด้านล่างเพื่อความสะดวก:

n =โมดูลัสสำหรับเลขคณิตแบบแยกส่วน

φ (n) =ผลรวมของ n

e =จำนวนเต็มที่เชื่อมโยงเฉพาะกับ φ(n)

[T เขารับประกันว่า e จะมีโมดูโลผกผันการคูณ φ(n)]

d =จำนวนเต็มที่เป็นตัวผกผันการคูณของ e modulo φ(n)

ขั้นตอนการคำนวณสำหรับการสร้างคีย์คือ

  • สร้างจำนวนเฉพาะที่แตกต่างกันสองจำนวนรวมถึง p และ q

  • คำนวณโมดูลัส n =p × q

  • คำนวณ totient φ(n) =(p − 1) × (q − 1)

  • เลือกเลขชี้กำลังสำหรับเลขชี้กำลังสาธารณะ e เช่น 1

  • คำนวณหาค่าเลขชี้กำลังไพรเวตสำหรับ d โดยที่ d =e-1 mod φ(n)

  • กุญแจสาธารณะ =[e, n]

  • คีย์ส่วนตัว =[d, n]