EP 19:Vigenère Cipher
และแล้ว พวกเราก็เดินทางมาถึงการเข้ารหัสใน EP สุดท้ายของเรากันแล้ว ต้องบอกเลยว่าการย้อนอดีต ไปค้นหาวิธีการเข้ารหัสแบบต่าง ๆ รวมถึงเรื่องเล่ามากมายที่เรานำมาเล่าถึง 18 EP นั้น ทุกคนน่าจะเห็นกันแล้วว่าการเข้ารหัสเนี่ยมีอยู่ในเหตุการณ์สำคัญหลาย ๆ เหตุการณ์เลยทีเดียว ซึ่งก็มีทั้งเหตุการณ์ที่น่าเศร้าและน่ายินดีปะปนกันไป แต่สุดท้ายแล้วหลายเรื่องราวก็นำพาไปสู่การพัฒนาที่เกิดขึ้นมากมายในปัจจุบันนั่นเอง
ใน EP สุดท้ายนี้เราจะพาทุกคนไปรู้จักกับการเข้ารหัสที่มีชื่อว่า “Vigenère Cipher” (วิจเญอแนร์) ถูกคิดค้นโดย Giovan Battista Bellaso นักเข้ารหัสชาวอิตาลี แต่ตั้งชื่อตาม Blaise de Vigenere นักการทูตชาวฝรั่งเศส ที่เป็นคนพัฒนาให้รหัสลับนี้เป็นที่ยอมรับอย่างแพร่หลาย ในเวลาต่อมา
Vigenère cipher เป็นการเข้ารหัสเเบบ Substitution Ciphers (การเข้ารหัสโดยการแทนที่ตัวอักษร) ที่ใช้พื้นฐานมาจากการเข้ารหัสเเบบ Caesar Cipher และการเเทนที่ตัวอักษรแบบ Polyalphabetic Substitution Cipher (การเเทนที่ตัวอักษรหนึ่งตัวด้วยตัวอักษรหรือสัญลักษณ์หลายตัว) ร่วมกับการใช้ ตาราง Vigenère หรือที่เรียกว่า “Tabula Recta” (ตารางตัวอักษรภาษาอังกฤษแบบ 26 x 26 ตัวอักษร)
ทุกคนสามารถ คลิกรูปภาพด้านล่าง เพื่อศึกษาวิธีการเข้ารหัสแบบ Vigenère cipher
-
กำหนดข้อความที่ต้องการเข้ารหัส คือ “I LOVE YOU”
-
กำหนดคีย์ที่ใช้ในการเข้ารหัส คือ “MORE”
-
นำคีย์ที่กำหนดมาเขียนให้ความยาวเท่ากับข้อความที่ต้องการเข้ารหัส ดังรูปที่ 1
-
นำตัวอักษรของคีย์และข้อความธรรมดาที่ตรงกันไปหาจุดตัดบนตาราง โดยการหาจุดตัดของตัวคีย์ (แกนเเนวตั้งของตาราง) และข้อความธรรมดา (แกนเเนวนอนของตาราง) ให้ครบทุกตัว ดังรูปที่ 2
-
จะเข้ารหัสได้เป็น ดังรูปที่ 3 ซึ่งโดยปกติแล้วเราจะไม่เขียนรหัสแบบเว้นช่องว่างตามตัวอักษรในข้อความเดิม แต่เราสามารถเขียนรหัสเรียงติดกัน โดยไม่ต้องเว้นช่องว่างได้ และเพื่อให้ง่ายต่อการจำและการเขียน ส่วนใหญ่ จึงนิยมเขียนเป็นกลุ่มตัวอักษร กลุ่มละ 5 ตัว โดยที่จำนวนกลุ่มตัวอักษรจะขึ้นอยู่กับจำนวนตัวอักษรทั้งหมด (n/5) ในตัวอย่างข้อความที่นำมาเข้ารหัสนั้นค่อนข้างสั้น จึงใช้การเขียนรหัสแบบเรียงติดกันทั้งหมด ได้เป็น “UZFZQMFY”
การถอดรหัสแบบ Vigenère Cipher ทั้งฝั่งผู้รับและผู้ส่งจะต้องมีตาราง Tabula Recta เช่นเดียวกัน จากนั้นทำตามขั้นตอน ดังต่อไปนี้
-
เราจะต้องรหัสลับ “UZFZQMFY” และทราบคีย์ “MORE” ที่ใช้ในการเข้ารหัส
-
นำคีย์มาเขียนให้ความเท่ากับรหัสลับที่ได้มา ดังรูปที่ 4
-
นำตัวอักษรในคีย์ (แกนเเนวตั้งของตาราง) ไปหาจุดตัดกับตัวอักษรในรหัส “UZFZQMFY” แล้วตัวอักษรในแกนแนวนอนจะเป็นตัวอักษรของข้อความที่ถอดได้ ดังรูปที่ 5
-
เมื่อทำตามขั้นตอนในข้อที่ 3 จนครบจะถอดรหัสได้เป็นข้อความดังรูปที่ 6
เป็นอย่างไรกันบ้าง สำหรับการเข้ารหัสแบบ Vigenère Cipher ที่เรานำมาเล่ากันใน EP สุดท้ายนี้
เป็นการเข้ารหัสที่เหมือนจะซับซ้อน แต่จริง ๆ แล้วง่ายมากเลยใช่มั้ยล่ะทุกคน เพียงแค่เรามีตาราง Tabula Recta กับคีย์ก็สามารถจะถอดรหัสออกมาได้เลย
References
http://pws.npru.ac.th/signal/data/files/Chapter7_Cryptography.pdf