# EP 16: Playfair Cipher

**URL:** <https://discuss.hashpire.io/t/ep-16-playfair-cipher/285>\
**Category:** Content Board\
**Tags:** beginner, article\
**Created:** [July 13, 2022, 3:19am UTC](https://discuss.hashpire.io/t/ep-16-playfair-cipher/285 "2022-07-13T03:19:49Z")\
**Posts on this page:** 4\
**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 13, 2022, 3:19am UTC](https://discuss.hashpire.io/t/ep-16-playfair-cipher/285/1 "2022-07-13T03:19:49Z")

</div>

EP 16: Playfair cipher

 ![Playfair-Cipher-1](https://discuss.hashpire.io/uploads/default/original/2X/2/2738449c3559a9cb111d579fa25e2ec60f849782.jpeg)

 ![Playfair-Cipher-2](https://discuss.hashpire.io/uploads/default/original/2X/2/2e84b8691786e0bdf4b98305df661401abf8d31f.jpeg)

 ![Playfair-Cipher-3](https://discuss.hashpire.io/uploads/default/original/2X/b/be4dfdc24323a00044ec6d14a0e1e7f54838bd56.png)

 ![Playfair-Cipher-4](https://discuss.hashpire.io/uploads/default/original/2X/5/588b8344b396ee7cb437ce79e1bf53076079d2e3.png)

 ![Playfair-Cipher-5](https://discuss.hashpire.io/uploads/default/original/2X/5/5349dc50097c6df9df05cff6179988a15fd573b0.png)

 ![Playfair-Cipher-6](https://discuss.hashpire.io/uploads/default/original/2X/c/c60c9e175df3e4dd03b37157dd06883a6ab399b7.png)

 ![Playfair-Cipher-7](https://discuss.hashpire.io/uploads/default/original/2X/2/21cf52ec1c1c3a64c083aad73aa17d78286b0473.png)

 ![Playfair-Cipher-8](https://discuss.hashpire.io/uploads/default/original/2X/6/69d98477f6ad74d71e154ae6ccb6417d1213a155.png)

 ![Playfair-Cipher-9](https://discuss.hashpire.io/uploads/default/original/2X/8/8d7c0ad611fd76dc66297ded033ddcd5d1e1aaec.png)

 ![Playfair-Cipher-10](https://discuss.hashpire.io/uploads/default/original/2X/4/4c4cc1b52813cd8b27a01397a01971f1fa080c78.png)

 ![Playfair-Cipher-11](https://discuss.hashpire.io/uploads/default/original/2X/e/e7b0b44da6b8bd54d2957b9b0e595924ec883c35.png)

 ![Playfair-Cipher-12](https://discuss.hashpire.io/uploads/default/original/2X/4/402d5a5918c2ff6ebb5dfef327cfad3c6bc4f2e2.png)

การเข้ารหัสใน EP นี้ ถ้าหากเปรียบเทียบให้เห็นภาพมากที่สุด คงต้องบอกว่ามันคล้ายกับการเล่นเกมบิงโก แบบที่มีแผ่นกระดาษตัวเลขให้เรากากบาทเลขที่เรามี แต่การเข้ารหัสของเรามีกฎกติกาและเงื่อนไขที่มากกว่าเกมบิงโกที่เราเคยเล่น แต่จะเล่นยังไง? ยากแค่ไหน? ไปเริ่มกันเลย

การเข้ารหัสใน EP นี้มีชื่อว่า “Playfair Cipher” เป็นการเข้ารหัสเเบบ Substitution Ciphers (การเข้ารหัสโดยการแทนที่ตัวอักษร) ถูกพัฒนาโดย Charles Wheatstone ในปี ค.ศ. 1854 แต่ใช้ชื่อตาม Lord Playfair ซึ่งเป็นผู้ส่งเสริมให้ใช้อัลกอริทึมนี้

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

1. กำหนดคีย์ที่จะใช้ในการเข้ารหัส คือคำว่า “KEYWORD”

2. สร้างตารางแบบ 5 x 5 (5 คอลัมน์ 5 แถว) จากนั้นนำคีย์ไปใส่ไว้ในตาราง ดังรูปที่ 1

3. เมื่อเราใส่คีย์ลงในตารางเรียบร้อยแล้ว ให้ใส่ตัวอักษรภาษาอังกฤษที่เหลือลงไปในตารางตามลำดับเดิม (Alphabetical Order : A-Z) โดยที่ตัดตัวอักษรที่มีอยู่แล้วในคีย์ออก  
เนื่องจากตารางมี 25 ช่อง ดังนั้นเราจะสามารถใส่ตัวอักษรภาษาอังกฤษได้เพียง 25 ตัว จากทั้งหมด 26 ตัว ซึ่งเราสามารถทำได้ 2 วิธี คือ 1) ตัดตัว J ออกแล้วใช้ตัว I แทน 2) ตัว Q ออก (ในการเข้ารหัสครั้งนี้ทำตามเงื่อนไขข้อที่ 1) จะได้ตารางดังรูปที่ 2

4. กำหนดข้อความที่ต้องการเข้ารหัสเป็น “INSTRUMENTS”  
จากนั้นแยกข้อความออกเป็นคู่ ได้เป็น "IN ST RU ME NT SX " หากเกิดกรณีที่เราแยกแล้วข้อความไม่ครบคู่ ให้ใส่ตัวอักษรพิเศษ เช่น Q, X ลงไปให้ครบคู่ เช่นตัวอย่าง เติม X เข้าไปคู่กับ S และอีกกรณี คือ เมื่อแยกข้อความเป็นคู่แล้ว มีคู่ที่ตัวอักษรซ้ำกัน เช่น คำว่า TREE เมื่อแยกแล้ว จะได้ เป็น TR EE ให้แยก E ออกจากกัน โดยนำตัวอักษรพิเศษมาใส่เป็นคู่แทน จะได้ TR EX E… เป็นต้น

5. ทำการเข้ารหัสโดยเลือกเอา ตัวอักษรที่อยู่ในตารางที่สร้างขึ้นมาแทนตัวอักษรของข้อความธรรมดา ให้ดูตัวอักษรภายในตาราง โดยมองเป็นสี่เหลี่ยมจากตัวอักษรที่เป็นคู่กันถึงกัน แล้วเลือกเอา ตัวอักษรที่อยู่มุมสี่เหลี่ยมสองตัวมาเเทนที่ ดังรูปที่ 3

6. เข้ารหัสได้เป็น “GQ MZ DT KN MU QZ”

หมายเหตุ : เงื่อนไขในการเข้ารหัสทุกอย่าง จะต้องทำการตกลงกันภายในให้เรียบร้อยก่อนแยกย้ายกันไปทำภารกิจ ทุกครั้ง

1. เราจะต้องทราบคีย์ที่จะใช้ในการเข้ารหัส จากในตัวอย่างการเข้ารหัส คือคำว่า “KEYWORD”

2. นำคีย์ใส่ตารางขนาด 5 x 5 เเล้วใส่ตัวอักษรภาษาอังกฤษที่ไม่ซ้ำกับคีย์จนครบ (ยกเว้น J หากเจอในข้อความธรรมดาให้ใช้ตัว I แทน ตามเงื่อนไขที่กำหนดไว้)

3. นำรหัส “GQ MZ TD KN MU QZ” ไปเทียบกับตาราง เป็นการมองย้อนกลับจากขั้นตอนการเข้ารหัส ดังรูปที่ 4  

4. จากรูปที่ 4 สามารถถอดรหัสได้เป็นคำว่า “INSTRUMENTS”

เป็นอย่างไรกันบ้าง สำหรับการเข้ารหัสแบบ Playfair Cipher ที่เรานำมาเล่ากันใน EP นี้

การเข้ารหัสที่คล้ายกับเกมบิงโก ของเราใน EP จะบอกว่าคล้าย ก็อาจจะดูแล้วไม่ได้คล้ายสักเท่าไร 🤣 เพราะการเข้ารหัสแบบ Playfair Cipher นั้นมีเงื่อนไขค่อนข้างเยอะเลยทีเดียว หากเราไม่ดูเงื่อนไขต่าง ๆ ให้ละเอียด แค่นิดเดียวก็สามารถเลือกตัวอักษรแทนที่ตัวนั้นผิดไปเลย ซึ่งจริง ๆ แล้วหากเราเคยเข้ารหัสแบบ Substitution Ciphers หลาย ๆ ตัวมาแล้ว จะเห็นว่าตารางเข้ารหัสของ Playfair Cipher ก็คือการทำตาราง Cipher Text Alphabet เพียงแต่อยู่ในรูปแบบตารางที่ต่างกัน และการนำไปใช้มีเงื่อนไขที่มากกว่าเท่านั้นเอง

สรุปเนื้อหา  
[https://drive.google.com/file/d/1hGUHB\_OcyyOjyVdajMvSze81xdm3Tq7i/view?usp=sharing](https://drive.google.com/file/d/1hGUHB_OcyyOjyVdajMvSze81xdm3Tq7i/view?usp=sharing)

References  
[http://blog.bru.ac.th/wp-content/uploads/2020/09/flayfair.pdf](http://blog.bru.ac.th/wp-content/uploads/2020/09/flayfair.pdf)

> **[Substitution cipher](https://cryptography.fandom.com/wiki/Substitution_cipher#Polygraphic_substitution)**
>
> In cryptography, a substitution cipher is a method of encryption by which units of plaintext are replaced with ciphertext according to a regular system; the "units" may be single letters (the most common), pairs of letters, triplets of letters,...

---

<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, 2:57pm UTC](https://discuss.hashpire.io/t/ep-16-playfair-cipher/285/2 "2022-07-17T14:57:14Z")

</div>

@Namtan

- พี่ว่ายังอธิบานไม่ครบถ้วนปะครับ ภาพที่ 3 เหมือนจะต้องเลือกตัวล่างด้วย อาจจะต้องแจกเงื่อนไขออกมาก่อนว่ามีเงื่อนไขอะไรบ้างจะได้อธิบายให้ครบถ้วน

> [@Namtan](#):
>
> จากในรูปที่ 1 ตารางที่ 2 จะพบว่าหากตัวอักษรอยู่ในบรรทัดเดียวกันให้เลือกตัวอักษรที่อยู่ทางขวาของตัวอักษรนั้น ๆ ที่อยู่ห่างจากตัวมันมากที่สุด

- ความยากของเรื่องนี้คือหาเรื่องมาอิงเล่าให้สนุกยากมากๆ เลย ในหัวตอนนี้นึกออกแต่บิงโกแฮะ มีความคล้ายๆ ที่ เราจะได้กระดาษและมีตัวอักษรอยู่ในตาราง ถ้าเค้าบอกตัวอักษรตัวไหนเราก็วงๆ แต่ของบิงโกกฏคือถ้าวงเรียงกันได้ครบแถว หรือได้สี่มุมไรงี้ถือว่าชนะ ส่วน playfair ก็จะมีกฏอีกแบบนึง

- ประเดนต่อมาอยากให้ลองทำความเข้าใจกฏการเล่น playfair ก่อน (พูดอย่างกะเล่นเกม) จากนั้นลองอธิบายการเข้าและถอดรหัสในแบบของเราเอง พี่ว่าน่าจะกระชับกว่าต้นฉบับที่เราเรียบเรียงมานะครับ

@Namtan@Pantitas  
เสนอไอเดียสำหรับเชื่อมโยงครับ

- นึกถึงธีมงานวัดไทย ที่เค้ามีซุ้มเล่นบิงโกปะครับ แต่นี่เป็นซุ้มเล่น playfair ไรงี้ 55555
- หรือจะเป็นธีมสายลับ MI6 จากอังกฤษ​เพราะว่า playfair มาจากอังกฤษเนอะ ([Playfair Cipher | Encyclopedia.com](https://www.encyclopedia.com/politics/encyclopedias-almanacs-transcripts-and-maps/playfair-cipher#:~:text=The%20Playfair%20cipher%20is%20a,adoption%20by%20the%20British%20government.))

---

<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:** [October 31, 2022, 10:53am UTC](https://discuss.hashpire.io/t/ep-16-playfair-cipher/285/3 "2022-10-31T10:53:56Z")

</div>

@Namtan

> [@Namtan](#):
>
> การเข้ารหัสใน EP เป็นการเข้ารหัสที่ถ้าหากเปรียบให้เห็นภาพมากที่สุด ก็คงต้องบอกว่ามันคล้ายกับการเล่นเกมบิงโก

- ปรับใหม่ครับเวิ่นเว้อไป ปรับให้กระชับกว่านี้ครับ + ยังมีคำตกอยู่ด้วย “การเข้ารหัสใน EP นี้..”

@Pantitas ทำกราฟฟิกเรื่องนี้อาจจะเหนื่อยเลยครับ เบื้องต้นพี่อ่าจจบแล้วเข้าใจดีนะครับ มันค่อนข้างหลายขั้นตอนหน่อย แต่ไม่ได้ยากขนาดนั้น พี่ว่าจะยากตรงทำภาพนี่แหละ อาจจะไม่ต้องทำภาพตามขั้นตอนก็ได้นะครับ สามารถรวบหลายๆ ขั้นตอนเข้ามาในภาพเดียวเลยก็ได้ เพื่อลดงาน

---

<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:** [December 12, 2022, 9:17am UTC](https://discuss.hashpire.io/t/ep-16-playfair-cipher/285/4 "2022-12-12T09:17:53Z")

</div>

@Namtan@Pantitas

- ภาพ 6/12 อ่านแล้วแปลกๆ ลองหาคำอธิบายใหม่หน่อยครับ
- 8/12 ข้อกำหนดที่สอง (อันกลางของภาพ) ทำไมไม่มีตัวอย่างแบบข้อ 1 และ 2
