# EP 5: Route Cipher

**URL:** <https://discuss.hashpire.io/t/ep-5-route-cipher/273>\
**Category:** กระดานเนื้อหา 📄\
**Tags:** published\
**Created:** [July 12, 2022, 11:45am UTC](https://discuss.hashpire.io/t/ep-5-route-cipher/273 "2022-07-12T11:45:03Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Namtan](https://discuss.hashpire.io/user_avatar/discuss.hashpire.io/namtan/32/23_2.png) [@Namtan](https://discuss.hashpire.io/u/Namtan)\
**Post date:** [July 12, 2022, 11:45am UTC](https://discuss.hashpire.io/t/ep-5-route-cipher/273/1 "2022-07-12T11:45:04Z")

</div>

EP 5: Route Cipher

 ![Cryptographic-series-ep5-1](https://discuss.hashpire.io/uploads/default/original/1X/c673ae67d4266ea87e4697a239e69908e5a6527c.png)

 ![Cryptographic-series-ep5-2](https://discuss.hashpire.io/uploads/default/original/1X/efccc3361bf182d119dc71a4097c176af921b8b4.png)

 ![Cryptographic-series-ep5-3](https://discuss.hashpire.io/uploads/default/original/1X/c0f0f8de2b8dcf4158ea8c96a628381b4e013338.png)

 ![Cryptographic-series-ep5-4](https://discuss.hashpire.io/uploads/default/original/1X/0f2bf559d0faacafb59e9ba122941843fe1d1c0b.png)

 ![Cryptographic-series-ep5-5](https://discuss.hashpire.io/uploads/default/original/1X/60152a3e40fd1ce38a1b6fb8c2b62fda49850be8.png)

 ![Cryptographic-series-ep5-6](https://discuss.hashpire.io/uploads/default/original/1X/615dbc496c021f75de9afe7e4b5d3a134c149001.png)

 ![Cryptographic-series-ep5-7](https://discuss.hashpire.io/uploads/default/original/1X/1e861fc292d68ac94f13b933959201f2efe2a484.png)

 ![Cryptographic-series-ep5-8](https://discuss.hashpire.io/uploads/default/original/1X/8fc2ba435838fa24e77f7230ee2be2ce53503d9e.png)

เชื่อว่าหลายๆ คนคงต้องเคยได้ยิน หรืออาจจะเคยดูภาพยนตร์เกี่ยวกับเรื่องราวของการเกิดสงครามกลางเมืองอเมริกา (The American Civil War) สงครามที่เกิดจากความขัดแย้ง ระหว่างรัฐอุตสาหกรรมทางเหนือ ที่ต้องการยกเลิกแรงงานทาสเพื่อสิทธิมนุษยชน กับรัฐเกษตรกรรมทางใต้ที่ต้องการให้มีแรงงานทาสเพื่ออุตสาหกรรมฝ้าย  
ในสงครามที่กินเวลายาวนานถึง 4 ปี ก่อนอเมริกาจะได้มาซึ่งอิสรภาพของแรงงานและความเท่าเทียมของคนทั้ง ประเทศ มีเรื่องราวที่คุณอาจจะยังไม่เคยรู้มาก่อน นั่นก็คือ ในสงครามครั้งนี้ มีการใช้ศาสตร์ “Cryptography” เกิดขึ้นด้วย

ศาสตร์ Cryptography ที่ใช้ในสงครามกลางเมืองอเมริกา คือการเข้ารหัสที่มีชื่อว่า “Route Cipher” ถูกคิดค้นโดย Anton Stager ผู้อำนวยการทั่วไปของ Western Union Telegraph Company (ฝ่ายสหภาพหรือรัฐอุตสาหกรรมทางเหนือ) เป็นการเข้ารหัสแบบ Transposition Cipher (การเข้ารหัสโดยการย้ายตำแหน่งของของตัวอักษร) โดยการเขียนข้อความธรรมดาลงในตาราง แล้วกำหนดรูปแบบเส้นทางการเข้ารหัสข้อความตามที่ต้องการ เช่น หมุนวนเข้าด้านในจากมุมบนขวามือ ทิศทางตามเข็มนาฬิกา เป็นต้น

แต่ต้องบอกก่อนว่า การเข้ารหัสแบบ “Route Cipher” ที่ใช้ในสงครามกลางเมืองอเมริกา ทางผู้คิดค้น Anton Stager ได้มีการนำคำที่ตลกขบขันมาแทนที่คำสำคัญบางคำในข้อความเดิมก่อนที่จะนำไปเข้ารหัสด้วย “Route Cipher” เพื่อเพิ่มความปลอดภัยในการเข้ารหัสมากยิ่งขึ้น

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

อันดับแรก ! เราต้องทำการเข้ารหัสข้อความลับของเราก่อน ซึ่งในสถานการณ์ที่อันตราย เราต้องเขียนข้อความให้สั้น กระชับ และเข้าใจง่ายที่สุด นอกจากนั้น สิ่งที่สำคัญที่สุด !!! ในการเข้ารหัสแบบ Route Cipher ก็คือ เราควรที่จะตกลงรูปแบบการเข้ารหัสกับคู่สนทนาของเราให้ชัดเจนก่อนแยกย้ายกันไปปฏิบัติภารกิจ เพื่อป้องกันข้อผิดพลาดที่อาจเกิดขึ้นจากความเข้าใจที่ไม่ตรงกันได้

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

1. ให้คุณกำหนดข้อความที่ต้องการจะเข้ารหัส คือ “THERE IS A BOMB. FLEE AT ONCE”  
(มีจำนวนตัวอักษรทั้งหมด 22 ตัวอักษร )

2. ออกแบบตารางให้เหมาะสมกับข้อความที่กำหนดไว้ โดยที่สามารถคำนวณจากจำนวนตัวอักษรในข้อความได้ เช่น ข้อความมี 22 ตัวอักษร กำหนดให้ 22/4 = 5.5 (ปัดเศษขึ้นเป็น 6) ก็จะทำให้ได้ตารางแบบ 6x4 (6 คอลัมน์ได้มาจากผลลัพธ์การหาร และ 4 แถวได้มาจากจำนวนที่นำไปหาร) หรืออาจจะกำหนดเป็น 22/2 = 11 ก็จะได้ตารางแบบ 11x2 ก็ได้เช่นกัน และถ้าหากข้อความไม่สามารถคำนวณได้ลงตัว สามารถเว้นว่างไว้ หรือใส่ตัวอักษรอื่นที่ไม่ส่งผลทำให้ความหมายของข้อความเดิมผิดเพี้ยนไป เช่น X เป็นต้น

โดยการเข้ารหัสแบบ Route Cipher นั้นจะใช้รูปแบบเส้นทางการเข้ารหัสเป็นคีย์ในการถอดรหัส เช่น หมุนวนตามเข็มนาฬิกา, หมุนวนทวนเข็มนาฬิกา, จากด้านนอกเข้าด้านใน หรือ จากด้านในออกด้านนอก เป็นต้น ซึ่งการออกแบบตารางจะมีผลกับการกำหนดรูปแบบเส้นทางการเข้ารหัส ดังนั้นควรออกแบบตารางให้เหมาะสม จะไม่ทำให้การกำหนดรูปแบบเส้นทางการเข้ารหัสของคุณยากหรือง่ายจนเกินไป

1. นำข้อความธรรมดามาเขียนลงในตาราง โดยเริ่มเขียนจากคอลัมน์ซ้ายจากบนลงล่างจนครบทั้งแถว และทำเหมือนกันจนครบทุกคอลัมน์ จากนั้นกำหนดรูปแบบเส้นทางการเข้ารหัส คือเริ่มจากมุมบนขวามือวนเข้าด้านในทิศตามเข็มนาฬิกา ดังรูปที่ 1

2. นำตัวอักษรที่ได้จากรูปแบบการเข้ารหัสในตารางรูปที่ 1 ออกมาเขียนเป็นรหัสได้ “CEXXN EBARE HTEBF ATOEM SIOL”

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

รีบส่งรหัสลับพร้อมกับคีย์ให้กับกองทัพของคุณโดยเร็ว ที่สำคัญอย่าลืมส่ง ขนาดตารางที่คุณใช้ในการเข้ารหัสให้กับ กองทัพของคุณด้วย ถ้าหากกองทัพของคุณไม่รู้ตารางที่ใช้ เขาจะถอดรหัสออกมาไม่ได้ !!

อ่ะ อ่ะ อ่ะ แต่ในสงครามจริง เขาคงไม่เขียนเงื่อนไขกันไปแบบโต้ง ๆ บอกหมดหรอกนะ แต่อาจจะมีการส่งไปในรูปแบบของรหัสมอร์ส หรือคลื่นวิทยุ ไปนั่นเอง

เมื่อกองทัพของคุณรับข้อความลับ “CEXXN EBARE HTEBF ATOEM SIOL” พร้อมกับคีย์เรียบร้อยแล้ว ให้ทำตามขั้นตอนด้านล่าง เพื่อถอดรหัสข้อความดังนี้

1. เราจะต้องทราบขนาดของตารางที่ผู้ส่งใช้ในการเข้ารหัสว่ากำหนดจำนวนคอลัมน์และแถวเท่าใด รวมทั้งรูปแบบเส้นทางการเข้ารหัสที่กำหนด

2. นำรหัส CEXXN EBARE HTEBF ATOEM SIOL เขียนลงในตาราง โดยเรียงจากรูปแบบเส้นทางการเข้ารหัส คือ เริ่มจากมุมบนขวามือวนเข้าด้านในตามเข็มนาฬิกา ดังรูปที่ 2

 ![Route cipher-2](https://discuss.hashpire.io/uploads/default/original/1X/3ad7b735ce0f4ae7be9320be9afd209ac7b80460.png)

1. เมื่อเขียนรหัสลงในตารางจนครบ เราก็จะสามารถถอดข้อความที่เข้ารหัสไว้ออกมาได้ โดยการเริ่มอ่านจากคอลัมน์ซ้ายมือจากบนลงล่าง ดังรูปที่ 2 กรอบที่ 3 จะได้ข้อความว่า “THERE IS A BOMB. FLEE AT ONCE” (มีระเบิด รีบหนีไป)

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

> รหัสลับจาก Hashpire ในวันนี้คือ XXX XXX XXX

References  
[https://en.wikipedia.org/wiki/Transposition\_cipher#Route\_cipher](https://en.wikipedia.org/wiki/Transposition_cipher#Route_cipher)

> **[Route Cipher](https://crypto.interactive-maths.com/route-cipher.html)**
>
> The Route Cipher is a transposition cipher where the key is the pattern with which you read of the ciphertext.

---

<div class="post-metadata">

**Author:** ![parinyar](https://discuss.hashpire.io/user_avatar/discuss.hashpire.io/parinyar/32/127_2.png) [@parinyar](https://discuss.hashpire.io/u/parinyar)\
**Post date:** [July 13, 2022, 4:37am UTC](https://discuss.hashpire.io/t/ep-5-route-cipher/273/2 "2022-07-13T04:37:46Z")

</div>

> [@Namtan](#):
>
> มีรูปแบบเหมือนกับการเข้ารหัสแบบ “Route Cipher”

ประโยคนี้จะหมายถึงเค้ากำหนดชื่อว่า “Route Cipher” หรือเปล่าครับพี่น้ำตาล @Namtan

> [@Namtan](#):
>
> แต่มีการเข้ารหัสที่ใช้จริงในสงครามกลางเมืองอเมริกา มีการใช้คำแทนที่มีอารมณ์ขันมาแทนที่ คำบางคำที่สำคัญและละเอียดอ่อนก่อนเข้ารหัส เพื่อความปลอดภัยมากยิ่งขึ้น

ประโยคนี้ดู งงๆ ครับ และอีกอย่างก่อนที่จะถึงประโยคนี้มีการพูดถึง รูปแบบเส้นทางการเข้ารหัสมาก่อน ประโยคนี้ผมคิดว่าควรจะเรียบเรียงคำใหม่ครับ

---

<div class="post-metadata">

**Author:** ![parinyar](https://discuss.hashpire.io/user_avatar/discuss.hashpire.io/parinyar/32/127_2.png) [@parinyar](https://discuss.hashpire.io/u/parinyar)\
**Post date:** [July 13, 2022, 4:44am UTC](https://discuss.hashpire.io/t/ep-5-route-cipher/273/3 "2022-07-13T04:44:29Z")

</div>

> [@Namtan](#):
>
> (หากข้อความไม่สามารถคำนวณได้ลงตัวตารางที่ว่างสามารถใส่ค่า null ลงไปได้ )

สามารถใช้คำอื่นแทนคำว่า null ได้ไหมครับ อย่างเช่น เว้นว่างไว้ได้ อะไรประมาณนี้อะครับ กลัวคนเค้าจะเอาคำว่า “null” ไปเขียนลงในตารางแทน

---

<div class="post-metadata">

**Author:** ![parinyar](https://discuss.hashpire.io/user_avatar/discuss.hashpire.io/parinyar/32/127_2.png) [@parinyar](https://discuss.hashpire.io/u/parinyar)\
**Post date:** [July 13, 2022, 6:18am UTC](https://discuss.hashpire.io/t/ep-5-route-cipher/273/4 "2022-07-13T06:18:48Z")

</div>

> [@Namtan](#):
>
> รหัสลับมี 22 ตัวอักษร จะได้ 22/5 จะได้ 5.5 ให้ทำเป็น ตาราง 6 คอลัมน์ 4 แถว

ตรงส่วนนี้พี่น้ำตาลมีการคำนวณยังไงครับ ทำไมถึงเอา 22 ไปหาร 5 แล้วก็ 22/5 มันได้ 4.4 ทำไมพี่น้ำตาลเขียน 5.5 ครับ

---

<div class="post-metadata">

**Author:** ![Namtan](https://discuss.hashpire.io/user_avatar/discuss.hashpire.io/namtan/32/23_2.png) [@Namtan](https://discuss.hashpire.io/u/Namtan)\
**Post date:** [July 13, 2022, 6:23am UTC](https://discuss.hashpire.io/t/ep-5-route-cipher/273/5 "2022-07-13T06:23:47Z")

</div>

โอเครพี่น่าจะใส่เลขสลับกันจ้า

---

<div class="post-metadata">

**Author:** ![supanut](https://discuss.hashpire.io/user_avatar/discuss.hashpire.io/supanut/32/22_2.png) [@supanut](https://discuss.hashpire.io/u/supanut)\
**Post date:** [July 17, 2022, 8:25am UTC](https://discuss.hashpire.io/t/ep-5-route-cipher/273/6 "2022-07-17T08:25:08Z")

</div>

@Pantitas

1. ภาพ 6/8 สะก่อน =\> เสียก่อน ?

@Namtan เขียนได้ดีครับชอบการเขียนที่เหมือนพาคนอ่านไปเป็นตัวละครนึง อ่านไปเหมือนได้ผจญไพรไปด้วยเลย
