วันพุธที่ 26 กุมภาพันธ์ พ.ศ. 2557



เรื่อง asymmetric-key


วิทยาการเข้ารหัสลับ (อังกฤษ: cryptography/cryptology) วิชาเกี่ยวกับการเข้ารหัสลับคือการแปลงข้อความปกติให้กลายเป็นข้อความลับ โดยข้อความลับคือข้อความที่ผู้อื่น นอกเหนือจากคู่สนทนาที่ต้องการ ไม่สามารถเข้าใจได้

มนุษย์ได้คิดค้นวิธีการรักษาความลับของเรามาตั้งนาน นับตั้งแต่สมัยจูเลียส ซีซาร์ จนกระทั่งถึงปัจจุบันที่ใช้คอมพิวเตอร์มาช่วยเข้ารหัสลับและถอดรหัสลับ การเข้ารหัสแบบซีซ่าร์ทำได้โดยการนำตัวอักษรที่อยู่ถัดไปอีกสองตำแหน่งมาแทนที่ ยกตัวอย่างเช่น ถ้าต้องการเข้ารหัสคำว่า HELLO เราก็นำตัวอักษรที่ถัดจากตัว H ไปอีกสองตัวนั่นคือตัว J มาแทน ตัว E แทนด้วย G ตัว L แทนด้วย N ตัว O แทนด้วย Q ดังนั้นข้อความ HELLO จึงถูกแปลงให้เป็นคำว่า JGNNQ

การเข้ารหัสลับแตกต่างกับวิทยาการอำพรางข้อมูล ข้อมูลที่ถูกอำพรางนั้นจะไม่ถูกเปลี่ยนแปลง ในขณะที่การเข้ารหัสลับจะเปลี่ยนแปลงข้อมูล

วิทยาการเข้ารหัสลับสมัยใหม่ (Modern Cryptography) เป็นวิชาการที่ใช้แนวทางคณิตศาสตร์เพื่อแปลงข้อความปกติให้กลายเป็นข้อความลับ โดยให้เฉพาะคู่สนทนาที่ต้องการสามารถอ่านเข้าใจได้เท่านั้น ขั้นตอนวิธีของการเข้ารหัสลับสมัยใหม่ ได้แก่ Data Encryption Standard, Advanced Encryption Standard หรือ One-Time Padding ฯลฯ

หลักการเบื้องต้นของการเข้ารหัสลับ ประการแรกคือ ขั้นตอนวิธีต้องเป็นที่รู้โดยทั่วไป และประการต่อมา รหัสจะต้องใหม่เสมอ


ระบบการเข้ารหัสข้อมูล

                 เป็นกระบวนการสำหรับการแปรรูปข้อมูลเล็กทรอนิกส์ธรรมดาให้อยู่ในรูปที่บุคคลทั่วไปไม่สามารถอ่านเข้าใจได้ ซึ่งโดยทั่วไปแล้วการเข้ารหัสจะกระทำก่อนการจัดเก็บข้อมูลหรือก่อนการส่งข้อมูล โดยการนำข้อมูลอิเล็กทรอนิกส์ธรรมดากับกุญแจ (key) ซึ่งเป็นตัวเลขสุ่มใดๆ มาผ่านกระบวนการทางคณิตศาสตร์ ผลที่ได้ก็คือข้อมูลที่เข้ารหัส ขั้นตอนที่กล่าวมานี้จะเรียกว่า “การเข้ารหัส” (encryption) และเมื่อต้องการอ่านข้อมูล ก็นำเอาข้อมูลที่เข้ารหัสกับกุญแจมาผ่านกระบวนการทางคณิตศาสตร์ ผลลัพธ์ที่ได้ก็คือข้อมูลดั้งเดิม ซึ่งขั้นตอนนี้จะเรียกว่า “การถอดรหัส” (decryption) ระบบเข้ารหัสสามารถแบ่งตามวิธีการใช้กุญแจได้เป็น 2 วิธีดังนี้

  • ระบบเข้ารหัสแบบกุญแจสมมาตร (symmetric-key cryptography) คือการเข้ารหัสข้อมูลด้วยกุญแจเดี่ยว ทั้งผู้ส่งและผู้รับ โดยวิธีการนี้ผู้รับกับผู้ส่งต้องตกลงกันก่อนว่าจะใช้รูปแบบไหนในการเข้ารหัสข้อมูล ซึ่งรูปแบบไหนในการเข้ารหัสข้อมูลที่ผู้รับกับผู้ส่งตกลงกันแท้ที่จริงก็คือ กุญแจลับ นั่นเอง เช่น ผู้ส่งกับผู้รับตกลงจะใช้เทคนิดการแทนที่ตัวอักษรที่อยู่ถัดไป 1 ตำแหน่ง เช่น ถ้าเห็นตัวอักษร A ก็ให้เปลี่ยนไปเป็น B หรือเห็นตัวอักษร B ก็ให้เปลี่ยนไปเป็น C เป็นต้น นั้นก็คือผู้ส่งกับผู้รับตกลงใช้รูปแบบนี้เป็นกุญแจลับ
  • ระบบเข้ารหัสแบบกุญแจอสมมาตร (asymmetric-key cryptography หรือ Public Key Technology) ระบบการเข้ารหัสแบบนี้ได้ถูกคิดค้นโดย นายวิทฟิลด์ ดิฟฟี (Whitfield Diffie) ซึ่งเป็นนักวิจัยแห่งมหาวิทยาลัยสแตนฟอร์ด สหรัฐอเมริกา ในปี พ.ศ. 2518 โดยการเข้ารหัสแบบนี้จะใช้หลักกุญแจคู่ทำการเข้ารหัสและถอดรหัส โดยกุญแจคู่ที่ว่านี้จะประกอบไปด้วย กุญแจส่วนตัว (private key) และกุญแจสาธารณะ (public key) โดยหลักการทำงานจะทำดังนี้ ถ้าใช้กุญแจลูกใดเข้ารหัส ก็ต้องใช้กุญแจอีกลูกหนึ่งถอดรหัส สำหรับการเข้ารหัสและถอดรหัสด้วยกุญแจคู่นี้จะใช้ฟังก์ชันทางคณิตศาสตร์เข้ามาช่วยโดยที่ฟังก์ชันทางคณิตศาสตร์ที่นำมาใช้ ได้รับการพิสูจน์แล้วว่าจะมีเฉพาะกุญแจคู่ของมันเท่านั้นที่จะสามารถถอดรหัสได้ ไม่สามารถนำกุญแจคู่อื่นมาถอดรหัสได้อย่างเด็ดขาด


              การเข้ารหัสลับแบบกุญแจอสมมาตร (อังกฤษ: Public-key cryptography) หรือ การเข้ารหัสกุญแจสาธารณะ คือ "การเข้ารหัส"โดยกุญแจที่ใช้เข้ารหัสจะแตกต่างกับกุญแจที่ใช้ถอดรหัส นั่นคือการเข้ารหัสและการถอดรหัสจำเป็นต้องใช้กุญแจเป็นคู่ โดยที่บุคคลที่จะเข้ารหัสข้อมูลจะได้รับ กุญแจสาธารณะ (public key) ในการเข้ารหัส ส่วนบุคคลที่สามารถถอดรหัสได้คือบุคคลที่มี กุญแจส่วนตัว (private key) เท่านั้น กล่าวคือใคร ๆ ก็สามารถเข้ารหัสได้เพราะทุกคนมีกุญแกสาธารณะ แต่จะมีคนเดียวเท่านั้นที่ถอดรหัสได้คือคนที่มีกุญแกส่วนตัวซึ่งต้องถูกเก็บไว้อย่างรัดกุม

ขั้นตอนวิธีที่เป็นที่รู้จักสำหรับการเข้ารหัสลับแบบกุญแจอสมมาตรคือ อาร์เอสเอ (RSA)

Symmetric encryption กับ Asymmetric encryption แตกต่างกันอย่างไร

            การเข้ารหัสข้อมูลในปัจจุบันแบ่งเป็น 2 ประเภทคือ Symmetric encryption กับ Asymmetric encryption ซึ่งการเข้ารหัสทั้ง 2 ประเภทมีความเหมาะสมในการใช้งานที่แตกต่างกัน ซึ่งก่อนที่จะแสดงถึงความแตกต่างของการเข้ารหัสทั้ง 2 ประเภทนั้น ผู้ใช้งานควรทราบถึงกระบวนการทำงานของการเข้ารหัสทั้ง 2 แบบก่อน Symmetric encryption เป็นการเข้ารหัสข้อมูลโดยการใช้ Secret key เดียวกันในการเข้ารหัสข้อมูลและถอดรหัสข้อมูล โดยผู้ส่งข้อมูลจะต้องทำการส่ง Secret key ผ่านช่องทางที่มั่นคงปลอดภัยให้กับผู้รับข้อมูล หาก Secret key ดังกล่าวถูกดักจับไประหว่างทางโดยผู้ไม่ประสงค์ดี ก็จะทำให้ถูกถอดรหัสได้โดยทันที Algorithm ที่เป็น Symmetric encryption ได้แก่ DES, 3DES, RC, Blowfish, IDEA, AES เป็นต้น

Symmetric encryption algorithms

Asymmetric encryption เป็นการเข้ารหัสข้อมูลด้วยการใช้หลัก Key pair โดยการเข้ารหัสข้อมูลกับการถอดรหัสข้อมูลจะใช้เป็นคนละ key กัน ซึ่งทั่วไปจะใช้ Private key และ Public key โดย key ทั้งคู่จะถูกสร้างขึ้นมาพร้อมกัน หากเข้ารหัสข้อมูลด้วย Private key ก็จะถอดรหัสข้อมูลได้ด้วย Public key เท่านั้น และหากเข้ารหัสข้อมูลด้วย Public key ก็จะถอดรหัสข้อมูลได้ด้วย Private key เท่านั้น ซึ่งในการส่ง Public key ให้กับผู้รับไม่จำเป็นต้องกังวลในกรณีถูกดักจับระหว่างทาง เนื่องจากว่าผู้ที่จะถอดรหัสข้อมูลได้มีแต่ผู้ที่ถือ Private key เท่านั้น Algorithm ที่เป็น Asymmetric encryption ได้แก่ RSA, Diffie-Hellman, E1Gamal เป็นต้น

Asymmetric encryption algorithms

ความแตกต่างระหว่าง Symmetric encryption กับ Asymmetric encryption

 Symmetric encryption Asymmetric encryption
1. Key ใช้ Secret key เดียวกันระหว่างผู้ส่งกับผู้รับ ใช้หลัก Key pair ได้แก่ Private key และ Public key
2. การแลกเปลี่ยน Key ต้องส่ง Secret key ผ่านช่องทางมั่นคงปลอดภัยเท่านั้น ต้องทำการเปลี่ยน Secret key บ่อยๆ เพื่อความมั่นคงปลอดภัยการส่ง Public key สามารถเปิดเผยให้กับผู้ใดก็ได้ แต่ Private key ต้องเก็บรักษาไว้กับตนเอง
3. ความเร็ว ความซับซ้อนน้อย
มีความเร็วในการทำงานสูง
ความซับซ้อนมาก มีความเร็วในการทำงานช้ากว่า Symmetric encryption 100-1000 เท่า
4. เหมาะกับใช้ในด้าน การรักษาความลับข้อมูลการรักษาความลับข้อมูลการยืนยันตัวตน การปฏิเสธการรับผิดชอบ



         จากตารางข้างต้นจะเห็นว่าการใช้ Asymmetric encryption นั้นจะสามารถใช้งานได้หลากหลายด้านมากกว่า แก้ปัญหาการส่งผ่าน key ระหว่างผู้ส่งกับผู้รับที่เป็นปัญหาใน Symmetric encryption แต่ก็ยังคงพบปัญหาในเรื่องการใช้งานที่ยาก ซับซ้อน และมีความเร็วการทำงานที่ช้ากว่า Symmetric encryption มาก ดั้งนั้นในการเลือกใช้งานผู้ใช้งานควรคำนึงถึงข้อจำกัดเหล่านี้ เพื่อเลือกใช้งานการเข้ารหัสข้อมูลให้เหมาะสมกับระบบ งานของตนเอง

________________________________