เคยรู้สึกกันไหมว่า? ในยุคนี้ ความลับมันรักษาได้ยากจริง ๆ ไม่ว่าจะใช้ระบบรหัสผ่าน 2 ขั้นตอน สแกนลายนิ้วมือ สแกนม่านตา หรือสแกนใบหน้า ก็ยังรู้สึกว่า “ไม่ปลอดภัย” วันนี้เรามีอีกทางเลือกมาเสนอ
บทความเก่าที่เกี่ยวข้อง:
Advertisement Advertisement Advertisement[TIP] สำคัญมาก: วิธีเพิ่มความปลอดภัยให้กับ Google Account ด้วยการยืนยันรหัส 2 ขั้นตอน
Vigenere Cipher : ภาคความรู้
ถ้าไม่อยากรู้ก็ข้ามไปที่ภาคแนะนำแอปฯ ได้เลย
Vigenere Cipher หรือ รหัสลับ Vigenere ตั้งชื่อตาม Blaise de Vigenere นักการทูตชาวฝรั่งเศส ที่แม้ว่าผู้คิดค้นจะเป็น Giovan Battista Bellaso แต่คนที่พัฒนาให้รหัสลับนี้เป็นที่ยอมรับและแพร่หลาย ก็คือ Vigenere นั่นเอง
หลักการของ Vigenere Cipher มีพื้นฐานมาจากรหัสซีซาร์ นั่นคือ เมื่อเรามีข้อความจริง(Plaintext) เช่น ABC เราจะทำการเลื่อนตัวอักษรให้ต่างจากเดิม เช่น เลื่อนไป 3 อันดับจาก ABC กลายเป็น DEF ทำเช่นนี้ไปเรื่อย ๆ เป็นข้อความใหม่ที่เป็นรหัสลับ(Ciphertext) แล้วทำการส่งข้อความรหัสลับนั้นออกไป วิธีการสร้างรหัสลับแบบนี้เรามีชื่อเฉพาะว่า รหัสซีซาร์ ซึ่งจะทำการเลื่อนตัวอักษรทุกตัวดังภาพ เมื่อมีคนดักข้อมูลได้ระหว่างทางก็จะไม่สามารถอ่านมันได้(วิธีนี้ใช้มาตั้งแต่สมัยจูเลียส ซีซาร์)
นานวันเข้าการสร้างรหัสลับแบบเดิม ๆ และถือว่าง่ายเกินไปแล้ว ก็ถูกพัฒนาให้ดีมากขึ้นเรื่อย ๆ ปัจจุบันยากจนถึงขั้นว่าแม้แค่คอมพิวเตอร์ยังต้องใช้เวลานานมากในการสุ่มหาคำตอบ แต่บทความนี้เราจะยังไม่ไปไกลถึงขั้นนั้น เพราะเราจะแนะนำรหัสลับที่สร้างได้ไม่ยาก ถอดรหัสได้ง่ายถ้ามี Key word และถอดรหัสได้ยากจนไม่ได้เลยหากไม่มี Key word ที่ผู้รับและผู้ส่งตกลงกันเอาไว้ก่อนแล้ว ซึ่งจากวิธีการสร้างรหัสซีซาร์(ภาษาทางการเขาใช้คำว่า เข้ารหัส แต่บทความนี้เราขอใช้ภาษาที่คนทั่วไปน่าจะเข้าใจได้มากกว่านะครับ) จะเป็นว่าตัวอักษรตัวแรกในแถบรหัสที่อักษรที่แท้จริง “A” เลื่อนไปหาคือ “D” ซึ่งตัวอักษร D ตัวนี้เราจะเรียกมันว่าอักษรนำ
สรุป Vigenere Cipher คือ? การนำ Key word แต่ละตัวมาเป็นอักษรนำของแต่ละแถบรหัส นั่นแสดงว่าแถบรหัสจะมีจำนวนแถบตามจำนวนอักษรใน Key word ส่วนการส่งข้อความจริงลำดับตัวอักษรในข้อความจริงจะเป็นตัวระบุว่าอักษรตัวไหนจะใช้แถบรหัสตัวใด นั่นคือ ตัวอักษรตัวแรกใช้แถบที่ 1 ตัวอักษรตัวที่สองใช้แถบที่ 2 เช่นนี้ไปเรื่อย ๆ (รหัสซีซาร์ทุกตัวอักษรใช้แถบรหัสเดียวกัน)
ตัวอย่าง Vigenere Cipher
หากเราบอกกลุ่มเพื่อนในห้อง Line ว่า Key word จะใช้ชื่อวันในภาษาอังกฤษ เปลี่ยนไปตามวันที่ส่ง หากวันนี้วันอาทิตย์ ก็แสดงว่า Key word คือ SUNDAY ดังนั้นเราจะได้แถบรหัสลับคือ
STUVWXYZABCDEFGHIJKLMNOPQR
UVWXYZABCDEFGHIJKLMNOPQRST
NOPQRSTUVWXYZABCDEFGHIJKLM
DEFGHIJKLMNOPQRSTUVWXYZABC
ABCDEFGHIJKLMNOPQRSTUVWXYZ
YZABCDEFGHIJKLMNOPQRSTUVWX
หากข้อความที่เราต้องการส่งคือ Have a drink at Victory Monument การสร้างรหัสลับจะทำโดยเทียบ H ตัวแรกกับแถบรหัสชุดแรก จะเห็นว่าตรงกับอักษร Z ส่วน a ตัวที่สองให้เทียบกับแถบรหัสชุดที่สอง จะเห็นว่าตรงกับอักษร U ทำเช่นนี้ไปเรื่อย ๆ จนถึงตัวอักษรลำดับที่ 6 ก็ใช้แถบรหัสชุดที่หก ส่วนตัวอักษรลำดับที่ 7 จะวนกลับไปใช้แถบรหัสชุดแรกอีกรอบ วนเช่นนี้ไปจนครบทุกตัวอักษรที่เราต้องการส่ง ด้วยเหตุนี้ข้อความที่เป็นรหัสของ Have a drink at Victory Monument ก็คือ zuih a bjcan ar ncpwopq gbqukwhg
แอปฯ สร้างและถอดรหัสลับ Vigenere Cipher สำหรับ iOS Android และเว็บไซต์
ก่อนอื่นขอแนะนำวิธีใช้งานที่จะมีไม่กี่ปุ่มนะครับ ใช้คำแนะนำนี้ได้ทั้งแอปบน iOS Android และเว็บไซต์
- แอปฯ เหล่านี้ใช้ได้เฉพาะภาษาอังกฤษเท่านั้น(สำหรับภาษาไทย เพื่อน ๆ สามารถนำหลักการเดียวกันนี้ไปสร้างตารางแถบรหัสกันเองได้ครับ)
- ข้อความจริงที่ส่งได้ห้ามมีอักขระพิเศษ
- ข้อความจริงที่เราต้องการส่งเรียกว่า plaintext
- รหัสลับที่เราจะใช้ส่งเรียกว่า ciphertext
- ปุ่มสร้างรหัสลับหรือเข้ารหัสลับ คือ Encrypt หรือ Encode
- ปุ่มถอดรหัสลับเป็นข้อความจริง คือ Decrypt หรือ Decode
เมื่อใช้เครื่องมือเหล่านี้แล้ว ทีนี้เราเพียงตกลง Key word กับมิตรสหายกันให้เรียบร้อย ตอนสร้างรหัสลับก็เข้าไปที่แอปฯ ใส่ข้อความจริงที่ต้องการส่งในช่อง plaintext ใส่ Key word แล้วกดปุ่ม Encrypt หรือ Encode แล้วจะได้รหัสลับออกมา เราก็ทำการคัดลอกไปใช้ได้เลย ส่วนในแอปฯ จะสร้างแชร์ไปยังแอปฯ อื่น หรือสังคมออนไลน์ได้ด้วย
1. เครื่องมือบนเว็บไซต์ >> http://www.cs.du.edu
2. แอปฯ บน Google Play Store >> ดาวน์โหลด
3. แอปฯ บน Apps Store >> ดาวน์โหลด
สำหรับคนที่ได้รับรหัสลับมา ก็นำรหัสลับไปใส่ในช่อง ciphertext ใส่ Key word แล้วกดปุ่ม Decrypt หรือ Decode ก็จะสามารถอ่านข้อความได้เลยครับ
ที่มา:
- https://en.wikipedia.org/wiki/Vigen%C3%A8re_cipher
- http://www.cryptomuseum.com/crypto/vigenere/
- https://itunes.apple.com/th/app/vigenere-cipher/id633064422?l=th&mt=8
- http://www.cs.du.edu/~snarayan/crypt/vigenere.html
- https://play.google.com/store/apps/details?id=com.ndroidstudios.android.vigenerecipher