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

การยืนยันตัวตนด้วยคีย์อสมมาตร (Asymmetric Key Authentication) ในความปลอดภัยข้อมูลคืออะไร?

การเข้ารหัสแบบอสมมาตร (Asymmetric Encryption) เป็นประเภทของการเข้ารหัสที่ต้องการคีย์สองคีย์ที่แยกจากกันแต่เชื่อมโยงกันทางคณิตศาสตร์ เพื่อเข้ารหัสและถอดรหัสข้อมูล คีย์สาธารณะ (Public Key) เข้ารหัสข้อมูล ในขณะที่คีย์ส่วนตัว (Private Key) ที่สัมพันธ์กันถอดรหัสมัน

การยืนยันตัวตนด้วยคีย์อสมมาตร (Asymmetric Key Authentication) เป็นวิธีการเข้ารหัสที่ใช้คีย์ยืนยัน (Verification Key) ที่แตกต่างกันใน CAD จากคีย์พิสูจน์ (Proving Key) ที่ใช้โดยสมาร์ทการ์ด วิธีนี้โดยปกติถูกดำเนินการโดยใช้ฟังก์ชันหนึ่งทางแบบมีหลุมโจร (Trapdoor One-way Functions) ซึ่งสมาร์ทการ์ดสร้างลายเซ็นอิเล็กทรอนิกส์ด้วยคีย์ลับของมัน และ CAD ต้องการคีย์สาธารณะเพื่อยืนยันลายเซ็น

ระบบเข้ารหัสคีย์สาธารณะ Rivest-Shamir-Adelman (RSA) เป็นวิธีการยืนยันตัวตนด้วยคีย์อสมมาตรที่ดำเนินการบ่อยที่สุด มันวางความปลอดภัยของอัลกอริทึมไว้ที่ความซับซ้อนของการแยกตัวประกอบจำนวนเฉพาะขนาดใหญ่ (Factoring Large Prime Numbers)

ขั้นตอนการยืนยันตัวตนด้วยคีย์อสมมาตรพร้อมฟังก์ชัน Trapdoor

การยืนยันตัวตนโดยใช้คีย์อสมมาตรพร้อมฟังก์ชัน Trapdoor ถูกนิยามในขั้นตอนต่อไปนี้:

  • CAD ส่งตัวเลขสุ่ม (X) ไปยังสมาร์ทการ์ด
  • สมาร์ทการ์ดส่งคำระบุตัวตน (I) และตัวเลขสุ่มที่เข้ารหัส (Y) ด้วยคีย์ลับ (k) ในสมาร์ทการ์ด มันยังให้คีย์สาธารณะ (n) เป็นใบรับรอง (Certificate) ที่สร้างขึ้นด้วย n และ I ใบรับรองให้วิธีสำหรับ CAD เพื่อตรวจสอบความถูกต้องของคีย์สาธารณะ
  • CAD ตรวจสอบการตอบสนองของการ์ดโดยถอดรหัส Y (X') และเปรียบเทียบกับตัวเลขสุ่มต้นฉบับ

การดำเนินการ RSA และมาตรฐานอื่นๆ

การดำเนินการ RSA ต้องการโครงสร้างยกกำลัง (Exponentiation Structure) สำหรับการคำนวณลายเซ็นอิเล็กทรอนิกส์ หน่วยความจำเข้าถึงสุ่ม (RAM) ขนาดใหญ่สำหรับจัดเก็บค่ากลาง ขนาดหน่วยความจำโปรแกรมที่ใหญ่กว่าสำหรับจัดเก็บคำสั่งเพิ่มเติมที่อัลกอริทึมต้องการ และเวลามากขึ้นสำหรับการคำนวณ

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

มาตรฐานลายเซ็นดิจิทัล (DSS - Digital Signature Standard) ที่พัฒนาโดยสถาบันมาตรฐานและเทคโนโลยีแห่งชาติ (NIST) สามารถใช้สำหรับการยืนยันตัวตนสมาร์ทการ์ด วิธีนี้พัฒนาขึ้นสำหรับการสร้างลายเซ็นเอกสารในรัฐบาลสหรัฐอเมริกา และสามารถเป็นตัวเลือกที่เหมาะสมสำหรับการยืนยันตัวตนแอปพลิเคชันรัฐบาล ความแข็งแกร่งของมันอยู่ที่ความซับซ้อนในการคำนวณลอการิทึมแบบไม่ต่อเนื่อง (Discrete Logarithms) มีข้อได้เปรียบว่าค่ากลางหลายค่าสำหรับการยืนยันตัวตนสามารถ "ประเมินล่วงหน้า" (Pre-evaluated) ได้ ทำให้เวลาการยืนยันตัวตนลดลง

การแจกจ่ายคีย์ (Key Distribution)

ใจสำคัญของระบบคีย์สาธารณะ โดยเฉพาะที่ใช้สำหรับวัตถุประสงค์การยืนยันตัวตน คือการแจกจ่ายคีย์ (Key Distribution) ใบรับรอง (Certificate) ช่วยให้สมาร์ทการ์ดให้คีย์ยืนยันแก่ CAD ใบรับรองถูกสร้างเมื่อการ์ดถูกเริ่มต้น (Initialized) โดยใช้คีย์ลับระดับระบบ (System-wide Secret Key)

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