วันพุธที่ 14 มกราคม พ.ศ. 2552

การเข้ารหัส

การเข้าระหัส
การเข้ารหัส (encryption)การเข้ารหัส (encryption) คือ การเปลี่ยนข้อความที่สามารถอ่านได้ (plain text) ไปเป็นข้อความที่ไม่สามารถอ่านได้ (cipher text) เพื่อเหตุผลด้านความปลอดภัย ปัจจุบันการเข้ารหัสมี 2 รูปแบบคือ

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

วิธีการเข้ารหัสมีความสำคัญต่อ 3 ส่วนหลักของระบบการค้าทางอิเล็กทรอนิกส์ คือ 1. ระบบตรวจสอบว่าเป็นเอกสารจริง (Authentication) 2. การพิสูจน์หลักฐานว่าได้กระทำการรายการจริง (Non-Repudiation) 3. การรักษาสิทธิส่วนตัว (Privacy) นอกจากนี้การเข้ารหัสยังนำไปใช้ในการตรวจสอบการแสดงตัว (Identification) ซึ่งอยู่ในการทำ Authentication โดยใช้พิสูจน์ว่าคนที่ส่งหรือรับข้อมูลนั้นเป็นบุคคลที่เขาอ้างตัวจริงๆ และยังสามารถตรวจสอบไปอีกขั้นว่าข้อมูลที่ส่งมานั้นได้ถูกดัดแปลงโดยผู้อื่นก่อนถึงมือเราหรือไม่

สำหรับในเรื่องของการพิสูจน์หลักฐานว่าได้กระทำรายการจริง (Non-Repudiation) จะมีความสำคัญอย่างมากต่อการทำรายการทางธุรกิจ เนื่องจากจะใช้เป็นหลักฐานป้องกันการปฏิเสธในภายหลังว่าไม่ได้เป็นผู้ส่ง / รับ แฟ้มข้อมูล หรือไม่ได้ทำรายการทางธุรกิจนั้นๆ

การเข้ารหัสแบบสมมาตรการเข้ารหัสแบบสมมาตรจะใช้กุญแจตัวเดียวกันสำหรับการเข้าและถอดรหัส อัลกอริทึมที่ได้รับความนิยมได้แก่ DES, AES, IDEA

ยกตัวอย่างการเข้ารหัสของ Caesar cipher (รหัสของซีซาร์) เช่น ต้องการเข้ารหัสคำว่า CAT โดยมีคีย์คือ 3 วิธีเข้ารหัสทำได้โดย นับขึ้นไป 3 ตัวอักษร ดังนั้น

C กลายเป็น D E F A กลายเป็น B C D T กลายเป็น U V W ผลลัพธ์จากการเข้ารหัสคือ คำว่า FDW เมื่อจะถอดรหัส ก็ให้นับย้อนกลับ 3 ตัวอักษร

F กลายเป็น E D C D กลายเป็น C B A W กลายเป็น V U T ได้ผลลัพธ์จากการถอดรหัสคือ CAT เหมือนเดิม ซึ่งจะเห็นได้ว่าคีย์ที่ใช้เข้าและถอดรหัสคือ 3 เหมือนกัน

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

ตัวอย่าง ให้นึกถึงหน้าปัดนาฬิกาที่มีเลข 12 ตัวเรียงกันเป็นวงกลม ต้องการส่งเลข 4 ไปให้เพื่อนโดยการเข้ารหัสโดยใช้คีย์เท่ากับ 7

ให้นับตามเข็มนาฬิกาไป 7 ครั้ง -- จาก 4 นับ 5, 6, 7, 8, 9, 10, 1111 คือเลขที่ถูกเข้ารหัสแล้ว

เมื่อต้องการถอดรหัส ให้นำ 11 มานับตามเข็มนาฬิกา 5 ครั้ง -- จาก 11 นับ 12, 1, 2, 3, 4ก็จะได้เลข 4 กลับมาเหมือนเดิม ซึ่งคีย์ในที่นี้คือ 7 และ 5 นั่นเอง มีความสัมพันธ์กันคือ 7+5 = 12 ตามจำนวนตัวเลขในนาฬิกาเขียนแบบคณิตศาสตร์plain text = 4เข้ารหัสเลข4 ด้วยคีย์ตัวแรกคือ 7 ได้แก่ 4+7 mod 12 = 11คำนวณคีย์อีกตัว คือ 12 - 7 = 5 ถอดรหัสเลข11 ด้วยคีย์ตัวที่สองคือ 5 ได้แก่ 11+5 mod 12 = 4การเข้ารหัสข้อมูลมีจุดประสงค์เพื่อรักษาความลับของข้อมูล ข้อมูลนั้นจะถูกเปิดอ่านโดยบุคคลที่ได้รับอนุญาตเท่านั้น หลักการของการเข้ารหัสข้อมูลคือแปลงข้อมูล (encrypt) ไปอยู่ในรูปของข้อมูลที่ไม่สามารถอ่านได้โดยตรง ข้อมูลจะถูกถอดกลับด้วยกระบวนการถอดรหัส (decryption) ดังรูปที่ 1ข้อมูลที่สามารถอ่านได้ เรียกว่า plain text หรือ clear text ข้อมูลที่เข้ารหัสแล้วเราเรียกว่า cipher text ข้อมูลเมื่อเสร็จสิ้นการเข้ารหัสแล้ว ผลที่ได้ก็คือ cipher text ในการอ่านข้อความ cipher text นั้น การเข้ารหัสแบ่งออกเป็น 2 ประเภทใหญ่ๆคือ 1. Symmetric Cryptography (Secret key) หรือบางทีอาจเรียกว่า Single-key algorithm หรือ one-key algorithm คือ การเข้ารหัสและถอดรหัสโดยใช้กุญแจรหัสตัวเดียวกัน คือ ผู้ส่งและผู้รับจะต้องมีกุญแจรหัสที่เหมือนกันเพื่อใช้ในการเข้ารหัสและถอดรหัส ดังรูปที่ 2 2. Asymmetric Cryptography (Public key) การเข้ารหัสและถอดรหัสโดยใช้กุญแจรหัสคนละตัวกัน การส่งจะมีกุญแจรหัสตัวหนึ่งในการเข้ารหัส และผู้รับก็จะมีกุญแจรหัสอีกตัวหนึ่งเพื่อใช้ในการถอดรหัส ผู้ใช้รายหนึ่งๆจึงมีกุญแจรหัส 2 ค่าเสมอคือ กุญแจสาธารณะ (public key) และ กุญแจส่วนตัว (private key) ผู้ใช้จะประกาศให้ผู้อื่นทราบถึงกุญแจสาธารณะของตนเองเพื่อให้นำไปใช้ในการเข้ารหัสและส่งข้อมูลที่เข้ารหัสแล้วมาให้ ข้อมูลที่เข้ารหัสดังกล่าวจะถูกถอดออกได้โดยกุญแจส่วนตัวเท่านั้น ดังรูปที่ 3 ในทางปฏิบัติแล้วมักมีการใช้การเข้ารัหสทั้งสองระบบร่วมกันเช่นในระบบ PGP (Pretty Good Privacy) ซึ่งใช้ในการเข้ารหัส E-mail จะใช้วิธีสร้าง session key ซึ่งเป็นรหัสลับตามแบบ secret key) เมื่อข้อมูลถูกเข้ารหัสด้วย session key แล้ว จากนั้น session key จะถูกเข้ารหัสโดยใช้กุญแจสาธารณะของผู้รับ และถูกส่งไปกับข้อมูลที่เข้ารหัสแล้ว ดังรูปที่ 4 การถอดรหัสนั้นทำในทางตรงกันข้าม ผู้รับจะใช้กูญแจส่วนตัวในการได้คืนมาของ session key ซึ่งหลังจากนั้นจึงนำ session key มาถอดรหัสข้อมูลอีกขั้นหนึ่ง ดังรูปที่ 5 การรวมกันของวิธีการเข้ารหัสสองวิธีเป็นการรวมความสะดวกของการเข้ารหัสแบบสาธารณะกับความเร็วในการเข้ารหัสแบบทั่วไป เนื่องจากการเข้ารหัสแบบทั่วไปเร็วกว่าการเข้ารหัสแบบสาธารณะประมาณ 1000 เท่า แต่การเข้ารหัสแบบสาธารณะมีข้อดีในเรื่องวิธีแจกจ่ายรหัส ดังนั้นจึงนิยมใช้การเข้ารกัสข้อมูลซึ่งมีขนาดใหญ่ด้วยวิธีการเข้ารหัสแบบทั่วไป และใช้ของการเข้ารหัสแบบสาธารณะสำหรับการส่งกุญแจของการเข้ารหัสแบบทั่วไป

ไม่มีความคิดเห็น: