EP 11: Disrupted Transposition Cipher

EP 11: Disrupted Transposition Cipher

ใน EP นี้เราจะพาทุกคน ไปเพิ่มสกิลการเข้ารหัส :rofl: ถ้าหากคุณยังรู้สึกว่าการเข้ารหัสที่ผ่านนั้น ง่ายเกินไป งั้นเราลองมาเข้ารหัสด้วยวิธีการแบบ Columnar Transposition Cipher ที่เหมือนเดิมแต่ไม่เหมือนเดิมกัน จะเป็นยังไง? ไปเริ่มกันเลย แต่แอบกระซิบบอกถ้าใครจำการเข้ารหัสแบบ Columnar Transposition Cipher ไม่ได้ สามารถกลับไปดู EP 8 Columnar Transposition Cipher ก่อนได้เลยน้า

ก่อนเริ่มเข้ารหัสเราขออธิบาย กันก่อน

Disrupted Transposition Cipher คือ การเข้ารหัสแบบ “Transposition Cipher” (การเข้ารหัสโดยการย้ายตำแหน่งของตัวอักษร) ซึ่งใช้หลักการในการเข้ารหัสเหมือนกับ Columnar Transposition Cipher แต่จะมีการกำหนดคีย์ในการเข้ารหัส 2 ตัว คือ “Normal Key” ที่ใช้ในการเข้ารหัสและ “Disrupted Key” ที่ใช้ในการกำหนดช่องว่างในตารางที่ใช้เข้ารหัส

เมื่อกองทัพของคุณต้องการความปลอดภัยที่มากขึ้น เนื่องจากกองทัพของคุณพึ่งจะโดนฝ่ายตรงข้ามถอดรหัสลับ Columnar Transposition Cipher แบบเดิมได้ที่คุณใช้ได้ การกำหนดคีย์เดียวมันง่ายเกินไป แม่ทัพที่แสนฉลาดอย่างคุณเลยกำหนดคีย์ 2 ตัว แล้วส่งให้กับรองแม่ทัพของคุณเพื่อหลอกให้ฝ่ายศัตรู งงเป็นไก่ตาแตก ไม่รู้จะใช้อันไหนมาถอดรหัสกันเลยทีเดียว อ่ะ อ่ะ อ่ะ ถึงจะรู้ 2 คีย์ก็ไม่แน่ว่าจะถอดรหัสของเราได้ด้วยนะ

ทีนี้เราไปเริ่มเข้ารหัสกันเถอะ ทุกคนสามารถ คลิกรูปภาพด้านล่าง เพื่อศึกษาวิธีการเข้ารหัสแบบ Disrupted Transposition Cipher

  1. กำหนดข้อความที่ต้องการเข้ารหัส คือ “WE ARE DISCOVERED, FLEE AT ONCE” (25 ตัวอักษร)

  2. กำหนด Normal Key คือคำว่า “CRYPTO” (6 ตัวอักษร) และเรียงตามลำดับตัวอักษรภาษาอังกฤษ (Alphabetical Order) จะได้ COPRTY โดย C=1, O=2 , P=3, R=4, T=5 และ Y=6, จากนั้นสั่งให้พลทหารฝ่ายซ้ายส่ง Normal Key ออกไป

  3. กำหนด Disrupted Key คือคำว่า “SECRET” (6 ตัวอักษร) และเรียงตามลำดับตัวอักษรภาษาอังกฤษ (Alphabetical Order) จะได้ CEERST โดย C=1, E=2, E=3, R=4, S=5 และ T=6 จากนั้นสั่งให้พลทหารฝ่ายขวาส่ง Disrupted Key ออกไป

4.ทำการวาดตารางและในส่วนหัวของตารางให้นำ Normal Key ไปใส่ในแถวแรกและตัวเลขใส่ในแถวที่สองตามลำดับ

  1. นำข้อความใส่ลงในตารางเริ่มจากแถวแรกทางซ้ายไปขวา (รูปแบบตารางจะกำหนดได้เฉพาะคอลัมน์จาก Normal Key ที่ใช้ แต่แถวเราไม่สามารถกำหนดได้ ต้องทำการใส่ตัวอักษรลงไปก่อน) โดยในขณะที่ใส่ข้อความลงในตาราง จะต้องเว้นช่องว่างตามเลขลำดับของตัวอักษรใน Disrupted Key (ใส่ * ) เช่น ถ้า Disrupted Key = 5 เราจะต้องใส่ตัวอักษร 4 ตัวลงในตารางและเว้นช่องที่ 5 ไว้ จากนั้นก็ดู Disrupted Key ตัวถัดไปของเราและทำแบบเดิมไปเรื่อยจนครบตามจำนวนข้อความ

    ตัวที่ 1 คือ S=5 หมายความว่าเราจะนำตัวอักษรใส่ตารางจำนวน 4 ตัวเเล้ว และเว้น 1 ช่องว่าง
    ตัวที่ 2 คือ E=2 ให้นำตัวอักษรใส่ลงในตารางจำนวน 1 ตัวต่อจากเดิม และเว้น 1 ช่องว่าง
    ตัวที่ 3 คือ C=1 ส่วนนี้ให้เว้น 1 ช่องว่างได้เลย
    ตัวที่ 4 คือ R=4 ใส่ตัวอักษรอีก 3 ตัวต่อจากเดิม เเละเว้น 1 ช่องว่าง
    ตัวที่ 5 คือ E=3 ใส่ตัวอักษร 2 ตัวต่อจากเดิม เเละเว้น 1 ช่องว่าง
    ตัวที่ 6 คือ T=6 ใส่ตัวอักษร 5 ตัวต่อจากเดิม เเละเว้น 1 ช่องว่าง
    หลังจากทำครบ 1 ครั้งก็วนกลับไปที่ Disrupted Key ตัวที่ 1 อีกครั้ง ทำวนไปจนใส่ข้อความครบทั้งหมด ดังรูปที่ 1
    Disrupted transposition

  2. จากรูปที่ 1 เราจะเข้ารหัสโดยนำเอาตัวอักษรในแถวใต้คอลัมน์ Normal Key เรียงตามลำดับตัวอักษรใน Normal Key ออกมาเขียน จะได้เป็น “WCEEO ERETR IVFCE ODNSE LEADA”

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

เมื่อเข้ารหัสเรียบร้อยแล้ว ทำการส่งรหัสลับออกไป โดยให้พลทหารกองกลางเป็นผู้ส่งรหัสลับ นี้ ตกลงเงื่อนไขกับรองแม่ทัพ ว่าเราจะให้ คีย์จากพลทหารฝ่ายซ้ายเป็น Normal Key และคีย์ของพลทหารฝ่ายขวาจะเป็น Disrupted Key ห้าม!!! ใช้สลับกันเด็ดขาด ไม่งั้นคนที่งงเป็นไก่ตาแตกน่าจะเป็นพวกเราเอง :rofl:
เมื่อรองแม่ทัพได้ทุกอย่างครบแล้ว ทั้ง Normal Key และ Disrupted Key และรหัสลับที่ส่งมาในตอนหลัง ให้ทำตามขั้นตอนต่อไปนี้อย่างเคร่งครัด

  1. เราต้องทราบ Normal Key , Disrupted Key ที่ใช้ในการเข้ารหัส และเราจำนวนแถวของตารางที่ใช้ในการถอดรหัส

  2. นำ Normal Key ใส่บนหัวตาราง จากนั้นทำการหาตำแหน่งการเว้นช่องว่างจากลำดับตัวอักษรใน Disrupted Key ดังรูปที่ 2 เป็นคำว่า SECRET เรียงตามลำดับตัวอักษรภาษาอังกฤษ (Alphabetical Order) จะได้ CEERST โดย C=1, E=2, E=3, R=4, S=5, T=6
    ตัวที่ 1 คือ S=5 = เว้นว่างในช่องที่ 5 ของแถว
    ตัวที่ 2 คือ E=2 = นับต่อจากช่องว่างของตัวที่ 1 อีก 1 ช่องแล้วเว้นว่างในช่องถัดมา
    ตัวที่ 3 คือ C=1 = เว้นช่องว่างต่อจากช่องว่างของตัวที่ 2
    ตัวที่ 4 คือ R=4 = นับต่อจากช่องว่างของตัวที่ 3 อีก 3 ช่องแล้วเว้นว่างในช่องถัดมา
    ตัวที่ 5 คือ E=3 = นับต่อจากช่องว่างของตัวที่ 4 อีก 2 ช่องแล้วเว้นว่างในช่องถัดมา
    ตัวที่ 6 คือ T=6 = นับต่อจากช่องว่างของตัวที่ 5 อีก 5 ช่องแล้วเว้นว่างในช่องถัดมา
    หลังจากทำครบ 1 รอบ ก็วนกลับที่ Disrupted Key ตัวที่ 1 อีกครั้ง ทำวนไปจนใส่ข้อความครบทั้งหมด ดังรูปที่ 3

    Disrupted transposition-2

  3. นำรหัสที่ได้รับมาใส่ลงในตาราง โดยอย่าลืมว่าเราจะต้องใส่รหัสลับให้ตรงกับลำดับตัวอักษรใน Normal key (CRYPTO จะได้ COPRTY โดย C=1, O=2 , P=3, R=4, T=5, Y=6,) เช่น "WCEEO จะอยู่ใต้คอลัมน์ C= 1 หรือ ERETR จะอยู่ในแถวใต้คอลัมน์ O=2 เป็นต้น ห้ามสลับแถวเด็ดขาด ดังรูปที่ 3

  4. ถอดรหัสข้อความจากรูปที่ 3 เรียงจากซ้ายไปขวา จะได้ “WE ARE DISCOVERED, FLEE AT ONCE”

เป็นอย่างไรกันบ้าง สำหรับการเข้ารหัสแบบ Disrupted Transposition Cipher ที่เรานำมาเล่ากันใน EP นี้
การเข้าและถอดรหัสแบบ Disrupted Transposition Cipher นี้ค่อนข้างยากเลยใช่มั้ยล่ะ เพราะมีคีย์ตั้ง 2 ตัว แถมห้ามใช้สลับกันอีกด้วย แล้วไหนจะ จำนวนแถวของตารางที่กำหนดไม่ได้อีก แต่มันก็ทำให้มีความปลอดภัยเพิ่มมากขึ้นจากการเข้ารหัสแบบ Columnar Transposition Cipher ธรรมดาได้นั่นเอง

References

1 Like

@Namtan @Pantitas เนื่องจากบทความนี้หาอะไรเชื่อมโยงกับประวัติศาสตร์ไม่ได้เลย งั้นเราลองสร้างสถานการณ์ให้คนอ่านเป็นนักถอดรหัส (จำลองมาขำๆ ว่าเราเป็นนักถอดรหัสชาวรัสเซียที่ได้รับคำสั่งในการถอดรหัสลับที่เข้ารหัสแบบ Disrupted transposition cipher (รู้ได้จากการที่เจอตารางคีย์ตกอยู่ในถ้ำไรงี้ 555))

ตอนแรก งง อ่านแล้วยังไม่เข้าใจว่าเรียงลำดับแล้วตัวเลขมายังไง อาจจะต้องยกตัวอย่างอธิบายว่า O = 2 เพราะ ตอนเรียงตาม Alphabet แล้วได้ COPRTY ซึ่ง O คือตัวที่สอง แบบนี้จะเห็นภาพ

ควรจะอธิบายเพิ่มว่ามันยังไง ไม่ใช่ยกตัวอย่างเลย เพราะส่วนตัวต้องมานั่งอ่านดัวอย่างละแงะเอาเอง ว่าเว้นช่องวางยังไง
น่าจะพูดประมาณว่า if order = X, add a space after X-1 characters

ส่วนใหญ่กลุ่มละ 5 อันนี้เข้ามีเขียนใช่ไหม

@Namtan

  • แก้คำผิดครับ
  • ควรเขียนแบบนี้ C=1, O=2 , P=3, R=4, T=5 และ Y=6 จากนั้นสั่งให้…
  • @Namtan ถ้าแก้สองตัวข้างบนเรียบร้อย ก็โอเคแล้วครับภาพรวมอ่านแล้วสนุกดี เข้าใจง่าย แต่ว่าจะให้ดีคือภาพอาจจะต้องมีลูกศรเชื่อมโยงลำดับให้เห็นการค่อยๆ เพิ่มของข้อมูลตอนเขียนลงตาราง จะทำให้มือใหม่อ่านง่ายขึ้น (คล้ายๆ ภาพที่ 3 ครับ @Pantitas )
1 Like