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

Asymmetric Key Cryptography ในความปลอดภัยข้อมูลคืออะไร?

การเข้ารหัสแบบอสมมาตร (Asymmetric Cryptography) เป็นรูปแบบที่สองของการเข้ารหัส เรียกว่า Public-key Cryptography (การเข้ารหัสคีย์สาธารณะ) มีคีย์สองคีย์ที่แตกต่างกัน รวมถึงคีย์หนึ่งใช้สำหรับการเข้ารหัส และเฉพาะคีย์ที่สัมพันธ์กันอีกคีย์หนึ่งควรใช้สำหรับถอดรหัส ไม่มีคีย์อื่นที่สามารถถอดรหัสข้อความได้ แม้แต่คีย์แรกที่ใช้สำหรับการเข้ารหัส รูปแบบของการออกแบบคือ ทุกฝ่ายสื่อสารต้องการคู่คีย์เพียงคู่เดียวสำหรับการสื่อสารกับจำนวนใดก็ได้ของฝ่ายสื่อสารอื่นๆ

การเข้ารหัสแบบอสมมาตรสามารถขยายได้ (Scalable) สำหรับการใช้ในสภาพแวดล้อมที่สูงและขยายตัวอยู่เสมอ ซึ่งข้อมูลโดยทั่วไปแลกเปลี่ยนระหว่างคู่สื่อสารที่ต่างกัน การเข้ารหัสแบบอสมมาตรใช้เพื่อแลกเปลี่ยนคีย์ลับเพื่อเตรียมพร้อมสำหรับการใช้การเข้ารหัสแบบสมมาตรเพื่อเข้ารหัสข้อมูล

ในกรณีของการแลกเปลี่ยนคีย์ (Key Exchange) หนึ่งฝ่ายสร้างคีย์ลับและเข้ารหัสมันด้วยคีย์สาธารณะของผู้รับ ผู้รับสามารถถอดรหัสมันด้วยคีย์ส่วนตัวของพวกเขา การสื่อสารที่เหลือจะเสร็จสิ้นด้วยคีย์ลับเป็นคีย์การเข้ารหัส การเข้ารหัสแบบอสมมาตรใช้ในการแลกเปลี่ยนคีย์ ความปลอดภัยอีเมล (Email Security) ความปลอดภัยเว็บ (Web Security) และระบบเข้ารหัสบางอย่างที่ต้องการการแลกเปลี่ยนคีย์ผ่านเครือข่ายสาธารณะ

ปัญหาหลักสำหรับการเข้ารหัสคีย์อสมมาตร (Asymmetric-key Cryptography) คือการพิสูจน์ว่าคีย์สาธารณะเป็นของแท้ (Authentic) และไม่ได้ถูกทำลายหรือฟื้นฟูโดยฝ่ายที่สามที่เป็นอันตราย (Malicious Third Party) วิธีที่มีประโยชน์ต่อปัญหานี้คือการใช้โครงสร้างพื้นฐานคีย์สาธารณะ (Public-key Infrastructure - PKI) ซึ่งหนึ่งหรือมากกว่าฝ่ายที่สาม เรียกว่า Certificate Authorities (CA) รับรองการเป็นเจ้าของคู่คีย์ อีกวิธีหนึ่ง ที่ใช้โดย PGP คือวิธี "เว็บของความไว้วางใจ" (Web of Trust) เพื่อให้ความถูกต้องของคู่คีย์

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

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

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

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