EP 19: Vigenère cipher

EP 19:Vigenère Cipher

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

ใน EP สุดท้ายนี้เราจะพาทุกคนไปรู้จักกับการเข้ารหัสที่มีชื่อว่า “Vigenère Cipher” (วิจเญอแนร์) ถูกคิดค้นโดย Giovan Battista Bellaso นักเข้ารหัสชาวอิตาลี แต่ตั้งชื่อตาม Blaise de Vigenere นักการทูตชาวฝรั่งเศส ที่เป็นคนพัฒนาให้รหัสลับนี้เป็นที่ยอมรับอย่างแพร่หลาย ในเวลาต่อมา

Vigenère cipher-7

Vigenère cipher เป็นการเข้ารหัสเเบบ Substitution Ciphers (การเข้ารหัสโดยการแทนที่ตัวอักษร) ที่ใช้พื้นฐานมาจากการเข้ารหัสเเบบ Caesar Cipher และการเเทนที่ตัวอักษรแบบ Polyalphabetic Substitution Cipher (การเเทนที่ตัวอักษรหนึ่งตัวด้วยตัวอักษรหรือสัญลักษณ์หลายตัว) ร่วมกับการใช้ ตาราง Vigenère หรือที่เรียกว่า “Tabula Recta” (ตารางตัวอักษรภาษาอังกฤษแบบ 26 x 26 ตัวอักษร)

ทุกคนสามารถ คลิกรูปภาพด้านล่าง เพื่อศึกษาวิธีการเข้ารหัสแบบ Vigenère cipher

  1. กำหนดข้อความที่ต้องการเข้ารหัส คือ “I LOVE YOU”

  2. กำหนดคีย์ที่ใช้ในการเข้ารหัส คือ “MORE”

  3. นำคีย์ที่กำหนดมาเขียนให้ความยาวเท่ากับข้อความที่ต้องการเข้ารหัส ดังรูปที่ 1

    Vigenère Cipher

  4. นำตัวอักษรของคีย์และข้อความธรรมดาที่ตรงกันไปหาจุดตัดบนตาราง โดยการหาจุดตัดของตัวคีย์ (แกนเเนวตั้งของตาราง) และข้อความธรรมดา (แกนเเนวนอนของตาราง) ให้ครบทุกตัว ดังรูปที่ 2

  5. จะเข้ารหัสได้เป็น ดังรูปที่ 3 ซึ่งโดยปกติแล้วเราจะไม่เขียนรหัสแบบเว้นช่องว่างตามตัวอักษรในข้อความเดิม แต่เราสามารถเขียนรหัสเรียงติดกัน โดยไม่ต้องเว้นช่องว่างได้ และเพื่อให้ง่ายต่อการจำและการเขียน ส่วนใหญ่ จึงนิยมเขียนเป็นกลุ่มตัวอักษร กลุ่มละ 5 ตัว โดยที่จำนวนกลุ่มตัวอักษรจะขึ้นอยู่กับจำนวนตัวอักษรทั้งหมด (n/5) ในตัวอย่างข้อความที่นำมาเข้ารหัสนั้นค่อนข้างสั้น จึงใช้การเขียนรหัสแบบเรียงติดกันทั้งหมด ได้เป็น “UZFZQMFY”
    Vigenère Cipher-3

การถอดรหัสแบบ Vigenère Cipher ทั้งฝั่งผู้รับและผู้ส่งจะต้องมีตาราง Tabula Recta เช่นเดียวกัน จากนั้นทำตามขั้นตอน ดังต่อไปนี้

  1. เราจะต้องรหัสลับ “UZFZQMFY” และทราบคีย์ “MORE” ที่ใช้ในการเข้ารหัส

  2. นำคีย์มาเขียนให้ความเท่ากับรหัสลับที่ได้มา ดังรูปที่ 4
    Vigenère Cipher-4

  3. นำตัวอักษรในคีย์ (แกนเเนวตั้งของตาราง) ไปหาจุดตัดกับตัวอักษรในรหัส “UZFZQMFY” แล้วตัวอักษรในแกนแนวนอนจะเป็นตัวอักษรของข้อความที่ถอดได้ ดังรูปที่ 5

  4. เมื่อทำตามขั้นตอนในข้อที่ 3 จนครบจะถอดรหัสได้เป็นข้อความดังรูปที่ 6

    Vigenère Cipher-6

เป็นอย่างไรกันบ้าง สำหรับการเข้ารหัสแบบ Vigenère Cipher ที่เรานำมาเล่ากันใน EP สุดท้ายนี้
เป็นการเข้ารหัสที่เหมือนจะซับซ้อน แต่จริง ๆ แล้วง่ายมากเลยใช่มั้ยล่ะทุกคน เพียงแค่เรามีตาราง Tabula Recta กับคีย์ก็สามารถจะถอดรหัสออกมาได้เลย

References

http://pws.npru.ac.th/signal/data/files/Chapter7_Cryptography.pdf

@Namtan @Pantitas

  • เสนอไอเดียครับ อันนี้เล่าเรื่องมาในธีม หอไอเฟลเลยไหมครับ “การเข้ารหัสที่มาจากเมืองแฟชั่นระดับโลก” ตอนเกริ่นนำอาจจะเขียนแนวๆ ว่า ใครจะรู้ว่าเมืองที่ขึ้นชื่อด้านแฟชั่น จะมีต้นกำเนิดการเข้ารหัสที่เคยเป็นที่นิยม …
  • ตารางต้องอธิบายไหมครับว่ามันจะเรียง ABC…Z , BCD…A ไรงี้ไปเรื่อยๆ
  • ตอนมันตัดกันพี่แอบงงๆ แฮะ มองภาพไม่ค่อยเข้าใจ ลองพยายามสื่อสารให้เข้าใจได้ง่ายกว่านี้ไหมครับ ลองเปลี่ยนเป็น ข้อความสั้นๆ ลองเอามาเข้ารหัสดู แล้วทำภาพที่ดูเข้าใจง่ายกว่านี้

@Namtan เจอคำผิดเล็กน้อย แต่พี่แก้ไปให้แล้วครับ

  • ยังมีส่วนที่เป็นกังวลคือ การอธิบายเป็นการอ้างอิงกับภาพ (มีหลายจุดเลย) แต่ภาพกราฟฟิกยังต้องรอปันทำ ดังนั้นอาจจะต้องย้อนกลับมาแก้บทความอีกรึเปล่า ? ซึ่งน่าจะไม่มีปัญหาเพียงแค่ว่าเลขภาพที่จะอ้างอิงอาจจะเปลี่ยนไปอย่าลืมแก้แล้วกันครับ