กลับไปหน้าบทความ

อ่าน 3 นาที

ไม่มีชื่อบทความ

รหัส รั้วราง (หรือเรียกว่า รหัสซิกแซก ) เป็น รหัสสลับตำแหน่ง แบบ คลาสสิก ชนิดหนึ่งชื่อของมันมาจากวิธีการเข้ารหัส ซึ่งเปรียบเสมือนรั้วที่สร้างด้วยรางแนวนอน

รหัสรั้วรางรถไฟ

รั้วไม้

รหัสรั้วราง (หรือเรียกว่ารหัสซิกแซก ) เป็นรหัสสลับตำแหน่ง แบบ คลาสสิกชนิดหนึ่งชื่อของมันมาจากวิธีการเข้ารหัส ซึ่งเปรียบเสมือนรั้วที่สร้างด้วยรางแนวนอน

การเข้ารหัส

ในการเข้ารหัสแบบรางรั้ว (Rail Fence Cipher) ข้อความต้นฉบับจะถูกเขียนลงในแนวทแยงลงมาบน "ราง" สมมติทีละราง จากนั้นจะเลื่อนขึ้นเมื่อถึงรางล่างสุด และเลื่อนลงอีกครั้งเมื่อถึงรางบนสุด และทำเช่นนี้ไปเรื่อยๆ จนกว่าจะเขียนข้อความต้นฉบับเสร็จทั้งหมด จากนั้นจึงอ่านข้อความที่เข้ารหัสแล้วออกมาทีละแถว

ตัวอย่างเช่น หากต้องการเข้ารหัสข้อความ 'WE ARE DISCOVERED. RUN AT ONCE.' ด้วย "ราง" 3 ราง ให้เขียนข้อความดังนี้:

W . . . E . . . C . . . R . . . U . . . O . . . . E . R . D . S . O . E . E . R . N . T . N . E . . A . . . I . . . V . . . D . . . A . . . C .

(ละเว้นช่องว่างและเครื่องหมายวรรคตอน) จากนั้นอ่านข้อความในแนวนอนเพื่อรับข้อความที่เข้ารหัส:

WECRUO ERDSOEERNTNE AIVDAC

การถอดรหัส

อนุญาตเอ็น{\displaystyle N}ให้ เป็นจำนวนรางที่ใช้ในระหว่างการเข้ารหัส สังเกตว่าเมื่อเขียนข้อความธรรมดา ลำดับตำแหน่งแนวตั้งของแต่ละตัวอักษรบนรางจะเปลี่ยนแปลงขึ้นลงเป็นวงจรซ้ำๆ ในตัวอย่างข้างต้น (โดยที่เอ็น=3{\displaystyle N=3}ตำแหน่งแนวตั้งจะซ้ำกันทุกๆ 4 ครั้ง โดยทั่วไปลำดับจะซ้ำกันทุกๆ 4 ครั้ง2(เอ็น1){\displaystyle 2(N-1)}.

อนุญาตแอล{\displaystyle L}ให้ เป็นความยาวของสตริงที่จะถอดรหัส สมมติสักครู่ว่าแอล{\displaystyle L}เป็นผลคูณของ2(เอ็น1){\displaystyle 2(N-1)}และปล่อยให้เค=แอล2(เอ็น1){\displaystyle K={L \over {2(N-1)}}}เริ่มต้นด้วยการแบ่งข้อความที่เข้ารหัสออกเป็นสตริง โดยที่ความยาวของสตริงแรกและสตริงสุดท้ายคือเค{\displaystyle K}และความยาวของสตริงตัวกลางแต่ละสตริงคือ2เค{\displaystyle 2K}สำหรับตัวอย่างข้างต้นด้วยแอล=24{\displaystyle L=24}เรามีเค=6{\displaystyle K=6}ดังนั้นเราจึงแบ่งข้อความที่เข้ารหัสออกเป็นส่วนๆ ดังนี้:

WECRUO ERDSOEERNTNE AIVDAC

เขียนแต่ละข้อความลงในบรรทัดแยกกัน โดยเว้นวรรคหลังตัวอักษรแต่ละตัวในบรรทัดแรกและบรรทัดสุดท้าย:

เวครูโอ เออร์โซเอิร์นท์เน AIVDAC

จากนั้นเราสามารถอ่านข้อความต้นฉบับลงมาตามคอลัมน์แรก อ่านเฉียงขึ้น แล้วลงมาตามคอลัมน์ถัดไป และทำเช่นนี้ต่อไปเรื่อยๆ

ถ้าแอล{\displaystyle L}ไม่ใช่ผลคูณของ2(เอ็น1){\displaystyle 2(N-1)}การกำหนดวิธีการแบ่งข้อความที่เข้ารหัสมีความซับซ้อนกว่าที่อธิบายไว้ข้างต้นเล็กน้อย แต่แนวทางพื้นฐานยังคงเหมือนเดิม หรืออีกทางเลือกหนึ่ง เพื่อความง่ายในการถอดรหัส เราสามารถเติมตัวอักษรเพิ่มเติมลงในข้อความต้นฉบับเพื่อให้ความยาวเป็นจำนวนเท่าของ2(เอ็น1){\displaystyle 2(N-1)}.

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

ดังที่กล่าวมาข้างต้น ให้แอล{\displaystyle L}ให้ เป็นความยาวของสตริงที่จะถอดรหัส และให้เอ็น{\displaystyle N}คือจำนวนรางที่ใช้ในระหว่างการเข้ารหัส เราจะเพิ่มตัวแปรสองตัวx{\displaystyle x}และy{\displaystyle y}, ที่ไหนx+1{\displaystyle x+1}= จำนวนเส้นทแยงมุมใน Rail Fence ที่ถอดรหัสแล้ว และy{\displaystyle y}= จำนวนช่องว่างในแนวทแยงมุมสุดท้าย

1=แอล+yเอ็น+((เอ็น1)*x){\displaystyle 1={\frac {L+y}{N+((N-1)*x)}}}

ต่อไปให้แก้หาค่าx{\displaystyle x}และy{\displaystyle y}ในทางพีชคณิต โดยที่ทั้งสองค่าเป็นจำนวนที่น้อยที่สุดที่เป็นไปได้ วิธีนี้ทำได้ง่ายๆ โดยการเพิ่มค่าทีละหนึ่งx{\displaystyle x}ลดลงทีละ 1 จนกว่าตัวหารจะมีค่ามากกว่าแอล{\displaystyle L}จากนั้นก็แก้หาค่า ง่ายๆ เลยy{\displaystyle y}ลองพิจารณารหัสตัวอย่างที่ดัดแปลงให้ใช้ราง 6 รางแทนที่จะเป็น 3 ราง

ว.........วี.........โอ .E.......OE......TN ..A.....C...R.....A...C ...อาร์...เอส...เอ็น...อี ....EI......DU...... .....D.........R........

ข้อความเข้ารหัสที่ได้คือ:

WVO EOETN ACRAC RSENE EIDU DR

เราทราบดีว่าแอล=24{\displaystyle L=24}และถ้าเราใช้เอ็น=6{\displaystyle N=6}เราสามารถแก้สมการข้างต้นได้

1=24+y6+5x=18+y5x6+5x>24x>185x=4y=5x18=2{\displaystyle {\begin{aligned}1&={\frac {24+y}{6+5x}}&={\frac {18+y}{5x}}\\6+5x>24&\implies x>{\frac {18}{5}}&\implies x=4\\y&=5x-18&=2\end{aligned}}}

ตอนนี้เรามีเอ็น=6{\displaystyle N=6},x=4{\displaystyle x=4}, และy=2{\displaystyle y=2}หรือราง 6 ราง เส้นทแยงมุม 5 เส้น (4+1) และช่องว่าง 2 ช่องที่ปลายสุดโดยการปิดกั้นช่องว่างที่ปลายเส้นทแยงมุมสุดท้าย เราสามารถเติมเส้นรั้วรางทีละบรรทัดโดยใช้ข้อความเข้ารหัสได้

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ X _ _ X
ดับเบิลยูวีโอ อีโออีทีเอ็น เอซีอาร์เอซี _ _ _ _ _ _ _ _ _ X _ _ X

การวิเคราะห์รหัส

กุญแจของรหัสลับคือเอ็น{\displaystyle N}จำนวนราง ถ้าเอ็น{\displaystyle N}เป็นที่ทราบกันว่าสามารถถอดรหัสข้อความที่เข้ารหัสได้โดยใช้อัลกอริธึมข้างต้น ค่าของเอ็น{\displaystyle N}เท่ากับหรือมากกว่าแอล{\displaystyle L}หากความยาวของข้อความที่เข้ารหัสแล้วมากเกินไป จะไม่สามารถใช้งานได้ เนื่องจากข้อความที่เข้ารหัสแล้วจะเหมือนกับข้อความต้นฉบับ ดังนั้น จำนวนกุญแจที่ใช้งานได้จึงมีน้อย ทำให้สามารถโจมตีแบบเดาไปเรื่อยๆ โดยการลองใช้กุญแจที่เป็นไปได้ทั้งหมดได้ ส่งผลให้การเข้ารหัสแบบรางรั้ว (rail-fence cipher) ถือว่าอ่อนแอ

รหัสซิกแซก

คำว่ารหัสซิกแซกอาจหมายถึงรหัสรั้วรางรถไฟตามที่อธิบายไว้ข้างต้น อย่างไรก็ตาม มันอาจหมายถึงรหัสอีกประเภทหนึ่งที่เฟลตเชอร์ แพรตต์ อธิบายไว้ ในหนังสือSecret and Urgentก็ได้ โดย "เขียนโดยการขีดเส้นบนแผ่นกระดาษเป็นคอลัมน์แนวตั้ง โดยมีตัวอักษรอยู่ที่หัวคอลัมน์แต่ละคอลัมน์ ทำเครื่องหมายจุดสำหรับตัวอักษรแต่ละตัวของข้อความในคอลัมน์ที่ถูกต้อง โดยอ่านจากบนลงล่างของแผ่นกระดาษ จากนั้นตัดตัวอักษรที่หัวคอลัมน์ออก ลบเส้นที่ขีดไว้ และส่งข้อความที่เป็นจุดไปยังผู้รับ ซึ่งเมื่อทราบความกว้างของคอลัมน์และการจัดเรียงตัวอักษรที่ด้านบนแล้ว ก็จะประกอบแผนภาพขึ้นใหม่และอ่านสิ่งที่มันต้องการจะบอก" [ 1 ]

ดูเพิ่มเติม

  • สมาคมการเข้ารหัสลับแห่งอเมริกา
  • หน้าเว็บ Black Chamber สำหรับการเข้ารหัสและถอดรหัสรหัส Rail Fence

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ไม่มีชื่อบทความ

รหัส รั้วราง (หรือเรียกว่า รหัสซิกแซก ) เป็น รหัสสลับตำแหน่ง แบบ คลาสสิก ชนิดหนึ่งชื่อของมันมาจากวิธีการเข้ารหัส ซึ่งเปรียบเสมือนรั้วที่สร้างด้วยรางแนวนอน

การเข้ารหัส

ในการเข้ารหัสแบบรางรั้ว (Rail Fence Cipher) ข้อความต้นฉบับจะถูกเขียนลงในแนวทแยงลงมาบน "ราง" สมมติทีละราง จากนั้นจะเลื่อนขึ้นเมื่อถึงรางล่างสุด และเลื่อนลงอีกครั้งเมื่อถึงรางบนสุด และทำเช่นนี้ไปเรื่อยๆ จนกว่าจะเขียนข้อความต้นฉบับเสร็จทั้งหมด...

การถอดรหัส

อนุญาต เอ็น {\displaystyle N} ให้ เป็นจำนวนรางที่ใช้ในระหว่างการเข้ารหัส สังเกตว่าเมื่อเขียนข้อความธรรมดา ลำดับตำแหน่งแนวตั้งของแต่ละตัวอักษรบนรางจะเปลี่ยนแปลงขึ้นลงเป็นวงจรซ้ำๆ ในตัวอย่างข้างต้น (โดยที่ เอ็น = 3 {\displaystyle N=3} ตำแหน่งแนวตั้งจะซ้ำกันทุกๆ...

การวิเคราะห์รหัส

กุญแจของรหัสลับคือ เอ็น {\displaystyle N} จำนวนราง ถ้า เอ็น {\displaystyle N} เป็นที่ทราบกันว่าสามารถถอดรหัสข้อความที่เข้ารหัสได้โดยใช้อัลกอริธึมข้างต้น ค่าของ เอ็น {\displaystyle N} เท่ากับหรือมากกว่า แอล {\displaystyle L}...