COE2011-27 การแบ่งปันความลับเหนืออาร์เอ็สเอ ระยะที่ 2 (Secret Sharing over RSA : Phase 2) อาจารย์ที่ปรึกษา ผศ. พิเชษฐ เชี่ยวธนะกุล อาจารย์ผู้ร่วมประเมิน โดย ดร. ภัทรวิทย์ พลพินิจ นาย กฤษณะ แก้วคง รหัส 513040468-3 ดร. วสุ เชาว์พานนท์ นาย อโนชา อุพลเถียร รหัส 513040544-3
รายละเอียดการนำเสนอ ที่มาและความสำคัญของโครงการ เป้าหมายและขอบเขตของโครงการ ภาพรวมของระบบ ผลการทำงาน บทสรุป
ที่มาและความสำคัญของโครงการ กลวิธีแบ่งปันความลับสามารถอำนวยความสะดวกในการเผยแพร่หรือแบ่งปันกระบวนการสำคัญ โดยอาศัยความร่วมมือของผู้เกี่ยวข้อง ข้อเสียของกลวิธีนี้คือการจัดการกุญแจที่ไม่มีประสิทธิภาพ และการสื่อสารของผู้ที่เกี่ยวข้อง โครงการการแบ่งปันความลับเหนืออาร์เอ็สเอ ระยะที่ 2 เป็นการพัฒนาอัลกอริทึม และโปรแกรมในส่วนของการสร้างข้อมูลลับกลับจากกุญแจลับร่วม ( 𝑥 𝑖, 𝑦 𝑖 ) ด้วยวิธีพหุนามการประมาณค่าในช่วงของลากรานจ์ เพื่อลดความซับซ้อนเชิงเวลาและพื้นที่ว่าง และเพิ่มประสิทธิผลการแบ่งปันความลับเหนืออาร์เอ็สเอให้สูงขึ้น กลวิธีแบ่งปันความลับสามารถอำนวยความสะดวกในการเผยแพร่หรือแบ่งปันกระบวนการสำคัญ อาทิเช่น การสั่งจ่ายเช็ค การเปิดตู้เซฟธนาคาร เป็นต้น โดยอาศัยความร่วมมือของผู้เกี่ยวข้อง 𝑡 จาก 𝑤 คน ข้อเสียของกลวิธีนี้คือการจัดการกุญแจที่ไม่มีประสิทธิภาพ และการสื่อสารของผู้ที่เกี่ยวข้อง กลวิธีแบ่งปันความลับหมายถึงการกระจายความลับท่ามกลางกลุ่มผู้เกี่ยวข้อง โดยสามารถสร้างข้อมูลลับนั้นขึ้นมาใหม่ได้ หากว่ามีจำนวนคนที่ได้สิทธิเพียงพอกับจำนวนที่ตั้งไว้ให้สามารถสร้างข้อมูลลับกลับได้ แต่ทว่าการแบ่งปันความลับดังกล่าวไม่เหมาะกับข่าวสารปริมาณมากเพราะต้องใช้จำนวนเต็มขนาดใหญ่ในการคำนวณซึ่งทำให้เกิดความล่าช้า และไม่สะดวกต่อการส่งข้อมูลในระยะไกล การแบ่งปันความลับเหนืออาร์เอ็สเอ ระยะที่ 2 เป็นการพัฒนาอัลกอริทึม และโปรแกรมในส่วนของการสร้างกุญแจลับกลับจากกุญแจลับร่วม เพื่อลดความซับซ้อนเชิงเวลาและพื้นที่ว่าง และเพิ่มประสิทธิผลการแบ่งปันความลับเหนืออาร์เอ็สเอให้สูงขึ้น
เป้าหมายและขอบเขตของโครงการ เป้าหมายของโครงการ ได้โปรแกรมต้นแบบสำหรับแบ่งปันข้อมูลลับที่มีประสิทธิภาพสูงขึ้น สะดวก และความปลอดภัยสูง ขอบเขตของโครงการ พัฒนาโปรแกรมที่ใช้ในการแบ่งปันข้อมูลลับด้วยภาษา Python
ภาพรวมของระบบ
การเข้ารหัส
การถอดรหัส
การออกแบบ
การผลิตกุญแจลับร่วม ตัวอย่าง สุ่มจำนวนเฉพาะ สร้างฟิลด์ 𝔽 𝑝 กำหนดจำนวนกุญแจลับร่วม 𝑤 และ จำนวนกุญแจที่จะสามารถสร้างกุญแจลับกลับได้ 𝑡 ในที่นี้ 𝑝 = 90761332380149185999
การผลิตกุญแจลับร่วม ตัวอย่าง สุ่ม 𝑆 𝑖 เหนือฟิลด์ 𝔽 𝑝 เมื่อ 1≤𝑖≤𝑡−1 เพื่อสร้างกุญแจลับร่วม
การผลิตกุญแจลับร่วม ตัวอย่าง กุญแจลับร่วม ( 𝑥 𝑖, 𝑦 𝑖 ) ที่ได้จากการแทนค่า 𝑥 𝑖 ลงในสมภาค (1)
การออกแบบ
การถอดรหัสข้อมูลลับร่วม ตัวอย่าง การนำกุญแจลับจำนวน 3 ชุด เพื่อสร้างข้อมูลลับกลับด้วยวิธีพหุนามการประมาณค่าในช่วงของลากรานจ์
การถอดรหัสข้อมูลลับร่วม ตัวอย่าง นำกุญแจ 𝑥 1, 𝑦 1 ,… , 𝑥 𝑡, 𝑦 𝑡 ตามจำนวน 𝑡 แทนในสมการ (3) จะได้ข้อมูลลับ 𝑚=12678965446789980
ทฤษฎีที่เกี่ยวข้อง การผลิตกุญแจลับร่วม การถอดรหัสข้อมูลลับร่วม วิธี Vandermonde Matrix วิธีพหุนามการประมาณค่าในช่วงของลากรานจ์ การเข้ารหัสแบบ DES การเข้ารหัสแบบ RSA
การผลิตกุญแจลับร่วม การผลิตกุญแจลับร่วม 1. สุ่มจำนวนเฉพาะ 𝑝 1. สุ่มจำนวนเฉพาะ 𝑝 2. สร้างฟิลด์บนจำนวนเฉพาะ 𝔽 𝑝 3. กุญแจลับที่ต้องการสร้างกุญแจลับร่วม 𝑚 ต้องอยู่ เหนือฟิลด์ 𝔽 𝑝
การผลิตกุญแจลับร่วม 4. กำหนดจำนวนกุญแจลับร่วม 𝑤 และ จำนวนกุญแจที่จะสามารถสร้างกุญแจลับกลับได้ 𝑡 5. สุ่ม 𝑆 𝑖 ∈ 𝔽 𝑝 เมื่อ 1≤𝑖≤𝑡−1 และใช้สมภาค (1) เพื่อสร้างกุญแจลับร่วม (1)
การถอดรหัสข้อมูลลับร่วม วิธี Vandermonde Matrix 1. เมื่อทราบค่า 𝑝 แล้วนำมาสร้างฟิลด์ 𝔽 𝑝 2. นำกุญแจ 𝑥 1, 𝑦 1 ,… , 𝑥 𝑡, 𝑦 𝑡 ตามจำนวน 𝑡 แทนในสมการ (2) ในรูปของเมตริกซ์ (2)
การถอดรหัสข้อมูลลับร่วม วิธีพหุนามการประมาณค่าในช่วงของลากรานจ์ 1. เมื่อทราบค่า 𝑝 แล้วนำมาสร้างฟิลด์ 𝔽 𝑝 2. นำกุญแจ 𝑥 1, 𝑦 1 ,… , 𝑥 𝑡, 𝑦 𝑡 ตามจำนวน 𝑡 แทนในสมการ (3) (3)
การเข้ารหัสแบบ DES การเข้ารหัสแบบ DES เป็นอัลกอริทึมการเข้ารหัสแบบสมมาตร ทั้งผู้ส่งและผู้รับจะใช้ Key ตัวเดียวกันในการเข้ารหัสและถอดรหัส เป็นการเข้ารหัสแบบบล็อกขนาด 64 บิต โดยใช้กุญแจขนาด 56 บิต + 8 parity บิต ในการเข้ารหัสข้อความ
การเข้ารหัสแบบ DES ใช้เข้ารหัสข้อมูลขนาดใหญ่ เนื่องจากมีความรวดเร็วในการประมวลผลสูง มีการคำนวณซ้ำๆ 16 รอบต่อข้อมูลหนึ่งบล็อก ทำให้การถอดรหัสข้อมูลโดยไม่มีคีย์เป็นไปได้ยาก สามารถประมวลผลได้ในหลายระบบปฏิบัติการ
การเข้ารหัสแบบ RSA การเข้ารหัสแบบ RSA เป็นอัลกอริทึมการเข้ารหัสแบบอสมมาตร ในการเข้ารหัสโดยใช้ความรู้เรื่องเลขคณิตมอดุลาร์เข้ามาช่วยในการคำนวณ (modular arithmetic) RSA นั้น จะมีการสร้าง Public Key และ Private Key เพื่อใช้ในการเข้ารหัสและถอดรหัสโดยที่ ฝั่งผู้ส่งจะใช้ Public Key ในการเข้ารหัส และฝั่งผู้รับจะใช้ Private Key ในการถอดรหัส
ความปลอดภัยของการเข้ารหัสแบบ RSA
ผลการทำงาน
ผลการทำงาน
ผลการทำงาน
ผลการทำงาน
สรุป ได้โปรแกรมต้นแบบสามารถแบ่งปันความลับได้อย่างถูกต้อง มีประสิทธิภาพสูง สะดวก และความปลอดภัยสูง สามารถนำอัลกอริทึมนี้ไปต่อยอดในด้านความปลอดภัยอื่นๆได้
ถาม-ตอบ
ขอบคุณครับ