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

การประยุกต์ใช้ระบบเข้ารหัสคีย์สาธารณะในความปลอดภัยข้อมูล

การเข้ารหัสคีย์สาธารณะ เรียกอีกอย่างว่า การเข้ารหัสคีย์อสมิตร (Asymmetric Key Cryptography) เป็นรูปแบบการเข้ารหัสและถอดรหัสที่จำเป็นในซอฟต์แวร์ออนไลน์ ใช้คีย์สองคีย์ที่ต่างกัน คือ คีย์สาธารณะและคีย์ส่วนตัว

ในอัลกอริทึมคีย์สมมาตร (Symmetric) ใช้คีย์เดียวสำหรับเข้ารหัสและถอดรหัส แต่ในการเข้ารหัสคีย์สาธารณะ ใช้คีย์สองคีย์ หนึ่งสำหรับเข้ารหัส อีกหนึ่งสำหรับถอดรหัส (และในทางกลับกัน)

คีย์ที่สร้างในระบบคีย์สาธารณะมีขนาดใหญ่ เช่น 512, 1024, 2048 บิตขึ้นไป คีย์เหล่านี้จดจำไม่ได้ จึงเก็บไว้ในอุปกรณ์ เช่น USB Tokens หรือ Hardware Security Modules (HSM)

ระบบเข้ารหัสแบบอสมิตรต้องบรรลุบริการความปลอดภัย ได้แก่ ความลับ (Confidentiality), การยืนยันตัวตน (Authentication), ความสมบูรณ์ (Integrity) และ การปฏิเสธไม่ได้ (Non-repudiation) คีย์สาธารณะรองรับบริการ Non-repudiation และ Authentication ส่วนบริการ Confidentiality และ Integrity ถือเป็นส่วนหนึ่งของกระบวนการเข้ารหัสโดยคีย์ส่วนตัวของผู้ใช้

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

การใช้งานระบบคีย์สาธารณะแบ่งเป็นสามประเภท

  • การเข้ารหัส/ถอดรหัส (Encryption/Decryption) — ผู้ส่งเข้ารหัสข้อความด้วยคีย์สาธารณะของผู้รับ

  • ลายเซ็นดิจิทัล (Digital Signature) — ผู้ส่งลงนามข้อความด้วยคีย์ส่วนตัว การลงนามทำโดยอัลกอริทึมเข้ารหัสนำไปใช้กับข้อความ หรือบล็อกข้อมูลขนาดเล็กที่เป็นฟังก์ชันของข้อความ

  • แลกเปลี่ยนคีย์ (Key Exchange) — สองฝ่ายตกลงแลกเปลี่ยน Session Key มีหลายวิธี อาจเกี่ยวข้องกับคีย์ส่วนตัวของฝ่ายใดฝ่ายหนึ่งหรือทั้งสองฝ่าย

ขั้นตอนสำคัญของระบบคีย์สาธารณะ

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

แอปพลิเคชันหลักของระบบคีย์สาธารณะ

แอปพลิเคชันหลักคือ ลายเซ็นดิจิทัล (Digital Signatures) และ การเข้ารหัสข้อมูล (Data Encryption) ลายเซ็นดิจิทัลเป็นพรีมิทีฟคีย์สาธารณะสำหรับการยืนยันข้อความ ในทางปฏิบัติ มักใช้ลายเซ็นมือบนข้อความที่เขียนมือหรือพิมพ์

แอปพลิเคชันการเข้ารหัสรองรับบริการความลับและความสมบูรณ์ ส่วนคีย์สาธารณะรองรับบริการการยืนยันตัวตนและการปฏิเสธไม่ได้