Cryptography หรือ วิทยาการเข้ารหัสลับ
รู้หรือไม่ กระบวนการสำหรับการแปรรูปข้อมูลเล็กทรอนิกส์ธรรมดาให้อยู่ในรูปที่บุคคลทั่วไปไม่สามารถอ่านเข้าใจได้ ซึ่งโดยทั่วไปแล้วการเข้ารหัสจะกระทำก่อนการจัดเก็บข้อมูลหรือก่อนการส่งข้อมูล โดยการนำข้อมูลอิเล็กทรอนิกส์ธรรมดากับกุญแจ (key) ซึ่งเป็นตัวเลขสุ่มใดๆ มาผ่านกระบวนการทางคณิตศาสตร์ ผลที่ได้ก็คือข้อมูลที่เข้ารหัส ขั้นตอนที่กล่าวมานี้จะเรียกว่า “การเข้ารหัส” และเมื่อต้องการอ่านข้อมูล ก็นำเอาข้อมูลที่เข้ารหัสกับกุญแจมาผ่านกระบวนการทางคณิตศาสตร์ ผลลัพธ์ที่ได้ก็คือข้อมูลดั้งเดิม ซึ่งขั้นตอนนี้จะเรียกว่า “การถอดรหัส” ระบบเข้ารหัสสามารถแบ่งตามวิธีการใช้กุญแจได้
วันนี้เราจะพูดกันในเรื่อง วิทยาการเข้ารหัสลับ หรือ Cryptography คือแนวทางปฏิบัติในการปกปิดข้อมูลโดยการแปลง plain text หรือ ข้อความธรรมดา ไปเป็น cipher text (รูปแบบที่อ่านไม่ได้) โดยใช้กุญแจร่วมกับแบบแผนของการเข้ารหัส เพื่อปกป้องข้อมูลที่เป็นความลับ เช่น ข้อความอีเมล ข้อความแชท ธุรกรรมบนเว็บ ข้อมูลส่วนบุคคล ข้อมูลองค์กรแอปพลิเคชัน อีคอมเมิร์ซ และการสื่อสาร ประเภทอื่น ๆ
มนุษย์ได้คิดค้นวิธีการรักษาความลับของเรามาตั้งนาน นับตั้งแต่สมัยจูเลียส ซีซาร์ จนกระทั่งถึงปัจจุบันที่ใช้คอมพิวเตอร์มาช่วยเข้ารหัสลับและถอดรหัสลับ การเข้ารหัสแบบซีซ่าร์ทำได้โดยการนำตัวอักษรที่อยู่ถัดไปอีกสองตำแหน่งมาแทนที่ ยกตัวอย่างเช่น ถ้าต้องการเข้ารหัสคำว่า HELLO เราก็นำตัวอักษรที่ถัดจากตัว H ไปอีกสองตัวนั่นคือตัว J มาแทน ตัว E แทนด้วย G ตัว L แทนด้วย N ตัว O แทนด้วย Q ดังนั้นข้อความ HELLO จึงถูกแปลงให้เป็นคำว่า JGNNQ
เป้าหมายของวิทยาการเข้ารหัสลับ มีดังนี้
- Confidentiality (การรักษาความลับ) – ใช้เพื่อรับประกันว่าผู้ที่ได้รับอนุญาตเท่านั้น ที่สามารถเข้าถึงข้อมูลได้
- Integrity (การควบคุมข้อมูลให้ความถูกต้อง) – ใช้ป้องกันการเปลี่ยนแปลงข้อมูล แบบไม่เหมาะสมและไม่ได้รับอนุญาต
- Authentication (การพิสูจน์เอกลักษณ์บุคคล) – ใช้พิสูจน์เอกลักษณ์บุคคลในการ สื่อสาร หรือใช้พิสูจน์ความถูกต้อง (ตรงกับต้นฉบับ) ของเอกสาร หรือของข้อมูลต่าง ๆ
- Nonrepudiation (ไม่สามารถปฏิเสธความรับผิดชอบได้) – ใช้เพื่อรับประกันว่าผู้ส่ง ข้อความ จะไม่สามารถปฏิเสธการส่งข้อความนั้นในภายหลังได้ และผู้รับก็ไม่สามารถ ปฏิเสธการได้ข้อความนั้นได้เช่นกัน
โดยที่ประเภทข้อความการเข้ารหัสลับนั้นสามารถแบ่งได้ 2 ประเภท ดังนี้
รหัสลับแบบดั้งเดิม (Classical Cipher)
เป็นรหัสลับแบบพื้นฐานที่สุด มักสร้างด้วยวิธีการที่ง่าย หรือใช้เครื่องมือแบบง่ายช่วยเข้ารหัส และถอดรหัส ในปัจจุบัน รหัสลับแบบนี้มักสามารถถอดรหัสโดยปราศจากกุญแจได้โดยง่าย จึงมักไม่น่าเชื่อถือ
การเข้ารหัสยุคใหม่ (Modern cipher)
การออกแบบรหัสลับยุคใหม่ซึ่งมีความคงทนต่อการโจมตี ที่หลากหลายได้นั้น ก่อให้เกิดประโยชน์อยากมาก โดยสามารถรักษาความลับในการสื่อสารได้ รักษาความถูกต้องของการสื่อสาร รวมถึงสามารถ ตรวจสอบอัตลักษณ์ของผู้ส่งได้
เทคโนโลยี และอัลกอริทึมสำหรับการเข้ารหัสลับ ทำให้เราได้เห็นการประยุกต์ใช้การเข้ารหัสลับ ถอดรหัสลับ ในระบบ คอมพิวเตอร์ต่างๆ อย่างมากมายเช่น การเข้ารหัสการสื่อสารใอินเตอร์เน็ต การเข้ารหัสข้อมูลในหน่วยจัดเก็บ/ ในระบบจัดการฐานข้อมูล การเข้ารหัสข้อมูลรหัสผ่านในระบบคอมพิวเตอร์ต่าง ๆ ได้ 2 วิธีดังนี้
1.ระบบเข้ารหัสแบบกุญแจสมมาตร (symmetric-key cryptography) คือการเข้ารหัสข้อมูลด้วยกุญแจเดี่ยว ทั้งผู้ส่งและผู้รับ โดยวิธีการนี้ผู้รับกับผู้ส่งต้องตกลงกันก่อนว่าจะใช้รูปแบบไหนในการเข้ารหัสข้อมูล ซึ่งรูปแบบไหนในการเข้ารหัสข้อมูลที่ผู้รับกับผู้ส่งตกลงกันแท้ที่จริงก็คือ กุญแจลับ นั่นเอง เช่น ผู้ส่งกับผู้รับตกลงจะใช้เทคนิดการแทนที่ตัวอักษรที่อยู่ถัดไป 1 ตำแหน่ง เช่น ถ้าเห็นตัวอักษร A ก็ให้เปลี่ยนไปเป็น B หรือเห็นตัวอักษร B ก็ให้เปลี่ยนไปเป็น C เป็นต้น นั้นก็คือผู้ส่งกับผู้รับตกลงใช้รูปแบบนี้เป็นกุญแจลับ
2. ระบบเข้ารหัสแบบกุญแจอสมมาตร (asymmetric-key cryptography หรือ Public Key Technology) การเข้ารหัสแบบนี้จะใช้หลักกุญแจคู่ทำการเข้ารหัสและถอดรหัส โดยกุญแจคู่ที่ว่านี้จะประกอบไปด้วย กุญแจส่วนตัว (private key) และกุญแจสาธารณะ (public key) โดยหลักการทำงานจะทำดังนี้ ถ้าใช้กุญแจลูกใดเข้ารหัส ก็ต้องใช้กุญแจอีกลูกหนึ่งถอดรหัส สำหรับการเข้ารหัสและถอดรหัสด้วยกุญแจคู่นี้จะใช้ฟังก์ชันทางคณิตศาสตร์เข้ามาช่วยโดยที่ฟังก์ชันทางคณิตศาสตร์ที่นำมาใช้ ได้รับการพิสูจน์แล้วว่าจะมีเฉพาะกุญแจคู่ของมันเท่านั้นที่จะสามารถถอดรหัสได้ ไม่สามารถนำกุญแจคู่อื่นมาถอดรหัสได้อย่างเด็ดขาด
ทั้งนี้ยังมีเรื่องของลายชื่อดิจิทัล หรือ Digital Signature ที่เป็นวิธีการเข้ารหัสลับในรูปแบบการพิสูจน์อัตลักษณ์ของการเข้าถึงรหัสกุญแจสาธารณะ เทคโนโลยีเข้ารหัสลับแบบกุญแจสาธารณะนี้ ประกอบด้วย กุญแจส่วนตัว (ซึ่งรู้จักกันเฉพาะผู้ลงนามและใช้ใน การสร้างลายมือชื่อดิจิทัล) และกุญแจสาธารณะ (ซึ่งเป็นที่รู้จักกันอย่าง แพร่หลายมากขึ้น และถูกใช้โดยบุคคล ที่เกี่ยวข้องเพื่อตรวจสอบความถูกต้อง ลายมือชื่อดิจิทัล)
สิ่งสำคัญอย่างหนึ่งของกระบวนการเข้ารหัสคือเกือบจะเกี่ยวข้องกับทั้งอัลกอริทึมและคีย์ คีย์เป็นเพียงข้อมูลอีกส่วนหนึ่งซึ่งมักจะเป็นตัวเลขที่ระบุว่าอัลกอริทึมถูกนำไปใช้กับข้อความธรรมดาเพื่อเข้ารหัสอย่างไร แม้ว่าคุณจะทราบวิธีการเข้ารหัสข้อความ แต่ก็ยากหรือเป็นไปไม่ได้ที่จะถอดรหัสโดยไม่มีคีย์นั้น เป็นกระบวนการสำหรับการแปรรูปข้อมูลเล็กทรอนิกส์ธรรมดาให้อยู่ในรูปที่บุคคลทั่วไปไม่สามารถอ่านเข้าใจได้
ซึ่งโดยทั่วไปแล้วการเข้ารหัสจะกระทำก่อนการจัดเก็บข้อมูลหรือก่อนการส่งข้อมูล โดยการนำข้อมูลอิเล็กทรอนิกส์ธรรมดากับกุญแจ (key) ซึ่งเป็นตัวเลขสุ่มใดๆ มาผ่านกระบวนการทางคณิตศาสตร์ ผลที่ได้ก็คือข้อมูลที่เข้ารหัส ขั้นตอนที่กล่าวมานี้จะเรียกว่า “การเข้ารหัส” นั้นเอง