การเข้ารหัสข้อมูลเบื้องต้น
การเข้ารหัสข้อมูล
มีจุดประสงค์เพื่อรักษาความลับของข้อมูล ข้อมูลนั้นจะถูกเปิดอ่านโดยบุคคลที่ได้รับอนุญาตเท่านั้น หลักการของการเข้ารหัสข้อมูลคือแปลงข้อมูล (encrypt) ไปอยู่ในรูปของข้อมูลที่ไม่สามารถอ่านได้โดยตรง ข้อมูลจะถูกถอดกลับด้วยกระบวนการถอดรหัส (decryption) ดังรูปที่ 1
 
- ข้อมูลที่สามารถอ่านได้ เรียกว่า plain text หรือ clear text
- ข้อมูลที่เข้ารหัสแล้วเราเรียกว่า cipher text
- ข้อมูลเมื่อเสร็จสิ้นการเข้ารหัสแล้ว ผลที่ได้ก็คือ cipher text ในการอ่านข้อความ cipher text นั้น
ระบบรหัสลับ
- ระบบรหัสลับ Cryptosystems หรือเรียกว่า Cipher มีองค์ประกอบหลายส่วน เพื่อการเข้ารหัสลับข้อมูล ประกอบด้วย อัลกอริทึ่ม เทคนิคการจัดการข้อมูล กระบวนการ และขั้นตอนการทำงาน จะถูกผสมผสานเข้าด้วยกันเพื่อเข้ารหัสข้อมูล
- มีวัตถุประสงค์เพื่อรักษาข้อมูลไว้เป็นความลับ Confidentiality และจัดเตรียม กลไกการพิสูจน์ตัวตน Authentication และการให้สิทธิ์ Authorization ในการดำเนินงานแต่ละขั้นตอนทางธุรกิจ
องค์ประกอบของรหัสลับ
- ข้อความต้นฉบับ (Plain text) คือ ข้อมูลต้นฉบับซึ่งเป็นข้อความที่สามารถอ่านแล้วเข้าใจ
- อัลกอริทึมการเข้ารหัสลับ (Encryption Algorithm) คือ กระบวนการหรือขั้นตอนที่ใช้ในการแปลงข้อมูลต้นฉบับเป็นข้อมูลที่ได้รับการเข้ารหัส
- กุญแจลับ (Key) คือ เป็นกุญแจที่ใช้ร่วมกับ อัลกอริทึมในการเข้ารหัส และถอดรหัส
- ข้อความไซเฟอร์ (Ciphertext) คือ ข้อมูลหรือข่าวสารที่ได้รับการเข้ารหัส ทำให้อ่านไม่รู้เรื่อง
- อัลกอริทึมการถอดรหัสลับ (Decryption Algorithm) คือ กระบวนการหรือขั้นตอนในการแปลงข้อความไซเฟอร์ให้กลับเป็นข้อความต้นฉบับ โดยอาศัยกุญแจลับดอกเดียวกัน
การเข้ารหัสแบ่งออกเป็น 2 ประเภทใหญ่ๆคือ
1. Symmetric Cryptography (Secret key)
2. Asymmetric Cryptography (Public key)
Symmetric Cryptography (Secret key)
เรียกอีกอย่างว่า Single-key algorithm หรือ one-key algorithm คือ การเข้ารหัสและถอดรหัสโดยใช้กุญแจรหัสตัวเดียวกัน คือ ผู้ส่งและผู้รับจะต้องมีกุญแจรหัสที่เหมือนกันเพื่อใช้ในการเข้ารหัสและถอดรหัส ดังรูป
Asymmetric Cryptography (Public key)
การเข้ารหัสและถอดรหัสโดยใช้กุญแจรหัสคนละตัวกัน การส่งจะมีกุญแจรหัสตัวหนึ่งในการเข้ารหัส และผู้รับก็จะมีกุญแจรหัสอีกตัวหนึ่งเพื่อใช้ในการถอดรหัส ผู้ใช้รายหนึ่งๆจึงมีกุญแจรหัส 2 ค่าเสมอคือ กุญแจสาธารณะ (public key) และ กุญแจส่วนตัว (private key) ผู้ใช้จะประกาศให้ผู้อื่นทราบถึงกุญแจสาธารณะของตนเองเพื่อให้นำไปใช้ในการ เข้ารหัสและส่งข้อมูลที่เข้ารหัสแล้วมาให้ ข้อมูลที่เข้ารหัสดังกล่าวจะถูกถอดออกได้โดยกุญแจส่วนตัวเท่านั้น ดังรูป
- ในทางปฏิบัติแล้วมักมีการใช้การเข้ารัหสทั้งสองระบบร่วมกันเช่นในระบบ PGP (Pretty Good Privacy) ซึ่งใช้ในการเข้ารหัส E-mail จะใช้วิธีสร้าง session key ซึ่งเป็นรหัสลับตามแบบ secret key) เมื่อข้อมูลถูกเข้ารหัสด้วย session key แล้ว จากนั้น session key จะถูกเข้ารหัสโดยใช้กุญแจสาธารณะของผู้รับ และถูกส่งไปกับข้อมูลที่เข้ารหัสแล้ว
การเข้ารหัส
อัลกอริทึมการเข้ารหัส
การเข้ารหัส เป็นการใช้ อัลกอริทึม ที่ซับซ้อนในการเปลี่ยน ข้อมูลเดิม(plaintext) ด้วยการเข้ารหัส เปลี่ยนเป็น ข้อมูลมีผ่านการเข้ารหัสแล้ว(ciphertext) อัลกอริทึม ที่ใช้ในการ เข้ารหัส และ ถอดรหัส ข้อมูลแล้วส่งผ่านกันในระบบเน็กเวิร์คนั้น
ประเภทของการเข้ารหัส
การเข้ารหัส และ ถอดรหัส ข้อมูลแล้วส่งผ่านกันในระบบเน็ตเวิร์คนั้น มี 2 แบบ คือ
- การเข้ารหัสแบบสมมาตร (Symmetric key algorithms)
- การเข้ารหัสแบบอสมมาตร (Asymmetric key algorithms)
การแบ่งประเภทขึ้นอยู่กับ กุญแจ กุญแจ ใช้ ร่วมกับ อัลกอริทึม ในการ เข้ารหัสและ ถอดรหัส
กุญแจในที่นี้ เปรียบเทียบได้กับลูกกุญแจ ต้องมีลูกกุญแจเท่านั้นจึงจะเปิดแม่กุญแจอ่านข้อมูลได้ ดังรูป
ความแข็งแกร่งของอัลกอริทึมสำหรับการเข้ารหัส
- ความแข็งแกร่งของอัลกอริทึมหมายถึงความยากในการที่ผู้บุกรุกจะสามารถอด รหัสข้อมูลได้โดยปราศจากกุญแจที่ใช้ในการเข้ารหัส ซึ่งขึ้นอยู่กับปัจจัยดังนี้
- การเก็บกุญแจเข้ารหัสไว้อย่างเป็นความลับ
- ความยาวของกุญแจเข้ารหัส ยิ่งจำนวนบิตของกุญแจยิ่งมาก ยิ่งทำให้การเดาเพื่อสุ่มหากุญแจที่ถูกต้องเป็นไปได้ยากยิ่งขึ้น
- อัลกอริทึมที่ดีต้องเปิดให้ผู้รู้ทำการศึกษาในรายละเอียดได้โดยไม่เกรงว่าผู้ศึกษาจะสามารถจับรูปแบบของการเข้ารหัสได้
- การมีประตูลับในอัลกอริทึม อัลกอริทึมที่ดีต้องไม่แฝงไว้ด้วยประตูลับที่สามารถใช้เป็นทางเข้าไปสู่อัลกอริทึม
- ความไม่เกรงกลัวต่อปัญหาการหาความสัมพันธ์ในข้อมูลที่ได้รับ
โปรโตคอลรักษาความปลอดภัยในการติดต่อสื่อสารข้อมูล
- โปรโตคอล Secure Socket Layer (SSL)การรักษาความปลอดภัยให้กับข้อมูลข่าวสารเป็นสิ่งที่จำเป็น เพื่อป้องกันความผิดพลาดที่อาจจะส่งผลให้การติดต่อสื่อสารล้มเหลว โดยทั่วไปจะใช้หลักการรักษาความปลอดภัยของข้อมูลในรูปแบบ RSA โดยใช้โปรโตคอล SSL เป็นหลัก
- เป็นการรักษาความปลอดภัย ที่ใช้อัลกอริธึมทางคณิตศาสตร์ที่มีรูปแบบการคำนวณที่เข้าใจง่ายแต่มีความปลอดภัยสูง
วิธีการเข้ารหัส แบ่งได้ 2 วิธี
- การใช้กุญแจเดียวกันในการเข้ารหัสและถอดรหัส Session key หรือ Secret key
- การใช้กุญแจคนละตัวในการเข้ารหัสและถอดรหัส ประกอบด้วยกุญแจสาธารณะและกุญแจส่วนตัวซึ่งเป็นคู่กันเสมอ เข้ารหัสด้วยกุญแจใด จะต้องถอดรหัสด้วยกุญแจที่คู่กันและตรงกันข้ามเท่านั้น
มักใช้วิธีการเข้ารหัสด้วยกุญแจคนละตัวมาใช้ในการเข้ารหัส Session key และส่งไปให้ฝั่งตรงข้ามก่อนการสื่อสารจะเกิดขึ้น เรียกว่า วิธีการแลกเปลี่ยนกุญแจในการเข้ารหัส
การโจมตีระบบรหัสลับ
การโจมตีระบบรหัสสับ สามารถแบ่งดังนี้
1. การโจมตีตัวแปลงรหัสโดยการลองถอดรหัสลับด้วยกุญแจทุกๆ รูปแบบว่า การค้นหาอย่างละเอียด หรือการโจมตีแบบตะลุย (Brute-force Attack) ในทางปฏิบัติ ถ้าเลือกใช้การโจมตีในลักษณะนี้ ฟังก์ชันการทำงานที่จำเป็นต้องใช้ในการถอดรหัสลับจะมีค่าเพิ่มมากขึ้นเป็นแบบ เลขชี้กำลัง (Exponentially Increase) เมื่อเทียบกับขนาดที่ใหญ่ขึ้นของตัวกุญแจ ฟังก์ชันการทำงานที่แสดงในรูปของระยะเวลาเฉลี่ยที่ต้องใช้ในการโจมตี แบบตะลุยที่กุญแจขนาดต่างๆ กัน
2.การโจมตีด้วยการวิเคราะห์รหัสลับ (Cryptoanalysis) แบ่งได้เป็น 4 แบบดังนี้
2.1. การโจมตีข้อความรหัสเท่านั้น (Ciphertext-only Attack) ในการโจมตีประเภทนี้ ผู้โจมตีสามารถเข้าถึงข้อความรหัสที่เกิดจากข้อความต้นฉบับหลายๆ ข้อความได้ โดยทุกๆ ข้อความต้นฉบับจะมาจากการเข้ารหัสลับโดยใช้อัลกอริทึมตัวเดียวกัน สิ่งที่ผู้โจมตีต้องการจากการโจมตีประเภทนี้ก็คือปริมาณการกู้คืน (Recover) ข้อความต้นฉบับจากข้อความรหัสที่มากที่สุด หรือการค้นหาเพื่อให้ได้มาซึ่งกุญแจที่ใช้ในการถอดรหัสลับ
2.2. การโจมตีที่รู้ข้อความต้นฉบับ (Known Plaintext Attack) ในการโจมตีประเภทนี้ ผู้โจมตีไม่เพียงแต่สามารถเข้าถึงข้อความรหัสที่เกิดจากข้อความต้นฉบับหลายๆ ข้อความได้ แต่ยังสามารถเข้าถึงข้อความต้นฉบับเหล่านั้นได้อีกด้วย สิ่งที่ผู้โจมตีต้องการจากการโจมตีประเภทนี้ก็คือ การค้นหาเพื่อให้ได้มาซึ่งกุญแจที่ใช้ในการถอดรหัสลับ หรืออัลกอริทึมตัวใหม่ที่ใช้ในการถอดรหัสลับจากข้อความรหัสที่ผ่านการ เข้ารหัสลับด้วยกุญแจตัวเดียวกัน
2.3. การโจมตีข้อความต้นฉบับแบบเลือกได้ (Chosen Plaintext Attack) ในการโจมตีประเภทนี้ ผู้โจมตีไม่เพียงแต่สามารถเข้าถึงข้อความต้นฉบับและข้อความรหัสสมนัยหลายๆ ข้อความได้ แต่ยังสามารถเลือกข้อความต้นฉบับในรูปแบบที่กำหนด เพื่อใช้ในการเข้ารหัสลับได้อีกด้วย สิ่งที่ผู้โจมตีต้องการจากการโจมตีประเภทนี้ก็คือ การค้นหาเพื่อให้ได้มาซึ่งกุญแจที่ใช้ในการถอดรหัสลับ หรืออัลกอริทึมที่ใช้ในการถอดรหัสลับจากข้อความรหัสที่ผ่านการ เข้ารหัสลับด้วยกุญแจตัวเดียวกัน
2.4. การโจมตีข้อความรหัสแบบเลือกได้ (Chosen Cipher text Attack) ในการโจมตีประเภทนี้ ผู้โจมตีสามารถเลือกข้อความรหัสใดๆ เพื่อใช้ในการถอดรหัสลับ และยังสามารถเข้าถึงข้อความต้นฉบับสมนัยภายหลังการถอดรหัสลับนั้นๆ ได้ สิ่งที่ผู้โจมตีต้องการจากการโจมตีประเภทนี้ก็คือ การค้นหาเพื่อให้ได้มาซึ่งกุญแจที่ใช้ในการถอดรหัสลับ การโจมตีประเภทนี้มีประสิทธิภาพสูง
|