Aatbash, Scytal cipher, Cardano lattice - วิธีที่รู้จักกันดีในการซ่อนข้อมูลจากการสอดรู้สอดเห็น ในความหมายคลาสสิก รหัสการเรียงสับเปลี่ยนคือแอนนาแกรม สาระสำคัญของมันอยู่ในความจริงที่ว่าตัวอักษรของข้อความธรรมดาเปลี่ยนตำแหน่งตามกฎบางอย่าง กล่าวอีกนัยหนึ่ง กุญแจสำคัญในการเข้ารหัสคือการเรียงลำดับอักขระใหม่ในข้อความที่เปิดอยู่ อย่างไรก็ตาม การพึ่งพาคีย์ตามความยาวของข้อความที่เข้ารหัสทำให้เกิดความไม่สะดวกหลายประการสำหรับการใช้รหัสลับประเภทนี้ แต่สมาร์ทเฮดพบวิธีแก้ปัญหาที่น่าสนใจ ซึ่งมีอธิบายไว้ในบทความ
กลับกลุ่ม
เพื่อทำความคุ้นเคยกับการเข้ารหัสโดยวิธีการเรียงสับเปลี่ยน มาพูดถึงหนึ่งในตัวอย่างที่ง่ายที่สุด อัลกอริธึมของมันประกอบด้วยการแบ่งข้อความออกเป็น n บล็อก ซึ่งจะถูกพลิกกลับไปด้านหน้าและสลับกัน พิจารณาตัวอย่าง
"วันนี้หายไป ท้องฟ้ามืดครึ้ม"
มาแบ่งข้อความนี้ออกเป็นกลุ่มๆ ในกรณีนี้ n=6.
"Denuh odily nebav cool cool"
ตอนนี้ขยายกลุ่ม เขียนทีละกลุ่มจากตอนท้าย
"ล่า waben dzo methu yin"
มาสลับสถานที่กัน
"ilido methu yin hunned waben dzo"
สำหรับคนงมงายในแบบฟอร์มนี้ ข้อความนั้นไม่มีอะไรมากไปกว่าขยะ แต่แน่นอนว่าผู้ที่ส่งข้อความถึงนั้นเป็นผู้รับผิดชอบอัลกอริธึมการถอดรหัส
แทรกกลาง
อัลกอริธึมของการเข้ารหัสนี้ซับซ้อนกว่าวิธีการเข้ารหัสของการเรียงสับเปลี่ยนเล็กน้อย:
- แยกข้อความออกเป็นกลุ่มด้วยจำนวนอักขระที่เป็นคู่
- ใส่ตัวอักษรเพิ่มเติมตรงกลางแต่ละกลุ่ม
มาดูตัวอย่างกัน
- "เขาพาเจ้าสัตว์ประหลาดเข้านอน"
- "Earth yetv ariu ขับ lkosnu".
- "Zeamn yabtv arayu voabdi lkoasnu".
ในกรณีนี้ มีการแทรกตัวอักษร "a" และ "ab" สลับกันตรงกลางกลุ่ม เม็ดมีดอาจแตกต่างกันในจำนวนที่แตกต่างกันและไม่ซ้ำกัน นอกจากนี้ คุณสามารถขยายแต่ละกลุ่ม สับเปลี่ยนได้ เป็นต้น
การเข้ารหัส "แซนวิช"
อีกตัวอย่างที่น่าสนใจและเรียบง่ายของการเข้ารหัสเรียงสับเปลี่ยน ในการใช้งาน คุณต้องแบ่งข้อความธรรมดาออกเป็น 2 ส่วนและป้อนหนึ่งในนั้นทีละอักขระระหว่างตัวอักษรของอีกตัวหนึ่ง มาดูตัวอย่างกัน
จากพวกเขางาน; ฉันคนเดียว ไร้บ้าน
แบ่งออกเป็นสองส่วนด้วยจำนวนตัวอักษรเท่ากัน
จากการทำงานของพวกเขา ฉันเท่านั้นที่ไม่มีที่อยู่อาศัย
ตอนนี้เขียนข้อความครึ่งแรกโดยเว้นวรรคตัวอักษรมากขึ้น
"OT และ X T R U DOL และ Sh"
และในช่องว่างเหล่านี้ เราจะวางตัวอักษรของครึ่งหลัง
"Oyatoidhitnrbuedzodvolminshiy"
สุดท้ายจัดกลุ่มตัวอักษรเป็นคำต่างๆ (ตัวเลือกเสริม)
"Oyatoi dhi tnrbue dzodvol minshhy"
การเข้ารหัสข้อความด้วยวิธีนี้ง่ายมาก ผู้ที่ไม่ได้ฝึกหัดจะต้องคิดหาผลลัพธ์ของสตริงขยะในบางครั้ง
การเรียงสับเปลี่ยนตาม "เส้นทาง"
เป็นชื่อเรียกรหัสลับที่ใช้กันอย่างแพร่หลายในสมัยโบราณ เส้นทางในการก่อสร้างเป็นรูปทรงเรขาคณิต ข้อความธรรมดาถูกเขียนเป็นรูปดังกล่าวตามแบบแผนและแยกออกมาตามแบบย้อนกลับ ตัวอย่างเช่น หนึ่งในตัวเลือกอาจเป็นการเขียนลงในตารางข้อความธรรมดาตามแบบแผน: งูคลานเข้าไปในเซลล์ตามเข็มนาฬิกา และข้อความที่เข้ารหัสจะประกอบด้วยการเขียนคอลัมน์ในหนึ่งบรรทัด จากบรรทัดแรกถึงบรรทัดสุดท้าย นี่เป็นการเข้ารหัสการเรียงสับเปลี่ยน
มาดูตัวอย่างวิธีเข้ารหัสข้อความกัน ลองกำหนดเส้นทางการบันทึกและเส้นทางการรวบรวมรหัสด้วยตนเอง
-
"เตรียมทนสงคราม".
เราจะเขียนข้อความลงในตารางขนาด 3x9 เซลล์ ขนาดตารางสามารถกำหนดตามความยาวของข้อความหรือตารางคงที่บางรายการสามารถใช้ได้หลายครั้ง
p | r | และ | r | o | t | o | to | l |
r | e | d | s | to | ฉัน | c | l | ฉัน |
f | a | t | b | to | o | th | n | y |
เราจะเขียนรหัสโดยเริ่มจากมุมขวาบนของตาราง
"Launlvosoyatovvygidtaerprj"
การกลับขั้นตอนที่อธิบายไว้นั้นไม่ยาก มันง่ายพอที่จะทำสิ่งที่ตรงกันข้าม วิธีนี้สะดวกมากเพราะช่วยให้จำขั้นตอนการเข้ารหัสและถอดรหัสได้ง่าย และมันก็น่าสนใจเช่นกันเพราะคุณสามารถใช้ตัวเลขใดก็ได้สำหรับรหัส ตัวอย่างเช่น เกลียว
เรียงสับเปลี่ยนแนวตั้ง
รหัสประเภทนี้ยังเป็นตัวแปรของการเปลี่ยนเส้นทางอีกด้วย เป็นที่น่าสนใจในตอนแรกโดยการปรากฏตัวของกุญแจ วิธีนี้ใช้กันอย่างแพร่หลายในอดีตและยังใช้ตารางสำหรับการเข้ารหัสด้วย ข้อความจะถูกบันทึกในตารางตามปกติ - จากบนลงล่างและรหัสจะถูกเขียนในแนวตั้งโดยคำนึงถึงลำดับที่ระบุด้วยคีย์หรือรหัสผ่าน มาดูตัวอย่างการเข้ารหัสดังกล่าวกัน
"ทั้งทางที่เจ็บปวดและความเห็นอกเห็นใจ"
ลองใช้ตารางขนาด 4x8 เซลล์แล้วเขียนข้อความของเราตามปกติ และสำหรับการเข้ารหัสใช้คีย์ 85241673
และ | c | t | ฉัน | r | o | c | t |
n | s | m | p | y | t | e | m |
และ | c | c | o | c | t | r | a |
d | a | n | b | e | m |
รหัสแสดงอยู่ด้านล่าง
8 | 5 | 2 | 4 | 1 | 6 | 7 | 3 |
ตอนนี้ ใช้คีย์เป็นตัวบ่งชี้ลำดับ เขียนคอลัมน์เป็นแถว
"Gusetmsntmayposisaottmserinid"
โปรดทราบว่าด้วยวิธีการเข้ารหัสนี้ เซลล์ว่างในตารางไม่ควรเต็มไปด้วยตัวอักษรหรือสัญลักษณ์แบบสุ่ม โดยหวังว่าวิธีนี้จะทำให้ข้อความเข้ารหัสซับซ้อนขึ้น ในความเป็นจริง ตรงกันข้าม การกระทำดังกล่าวจะให้คำใบ้แก่ศัตรู เนื่องจากความยาวของคีย์จะเท่ากับหนึ่งในตัวหารของความยาวข้อความ
การเรียงสับเปลี่ยนแนวตั้งกลับด้าน
การเปลี่ยนแนวแนวตั้งเป็นเรื่องที่น่าสนใจเพราะการถอดรหัสข้อความไม่ใช่การกลับรายการอย่างง่ายของอัลกอริทึม ใครก็ตามที่รู้กุญแจจะรู้ว่าตารางมีกี่คอลัมน์ ในการถอดรหัสข้อความ คุณต้องกำหนดจำนวนบรรทัดที่ยาวและสั้นในตาราง สิ่งนี้จะกำหนดจุดเริ่มต้น จากตำแหน่งที่จะเริ่มเขียนข้อความเข้ารหัสไปยังตารางเพื่ออ่านข้อความธรรมดา การทำเช่นนี้เราแบ่งความยาวข้อความตามความยาวของคีย์และเราได้รับ 30/8=3 และ 6 ในส่วนที่เหลือ
ดังนั้น เราจึงได้เรียนรู้ว่าตารางมีคอลัมน์ยาว 6 คอลัมน์และคอลัมน์สั้น 2 คอลัมน์ ซึ่งเต็มไปด้วยตัวอักษรไม่ครบ ดูที่คีย์ เราจะเห็นว่าการเข้ารหัสเริ่มต้นจากคอลัมน์ที่ 5 และควรจะยาว ดังนั้นเราจึงพบว่าตัวอักษร 4 ตัวแรกของข้อความเข้ารหัสนั้นตรงกับคอลัมน์ที่ห้าของตาราง ตอนนี้คุณสามารถเขียนจดหมายทั้งหมดในสถานที่และอ่านข้อความลับ
กระจังหน้าคาร์ดาโน่
ประเภทนี้หมายถึงรหัสลับลายฉลุ แต่โดยพื้นฐานแล้วมันคือการเข้ารหัสโดยวิธีการเรียงสับเปลี่ยนอักขระ กุญแจสำคัญคือลายฉลุในรูปแบบของโต๊ะที่มีรูเจาะอยู่ ในความเป็นจริง รูปร่างใดๆ ก็สามารถเป็นลายฉลุได้ แต่ส่วนใหญ่มักจะใช้สี่เหลี่ยมหรือตาราง
ลายฉลุ Cardano ทำขึ้นตามหลักการต่อไปนี้: เซลล์ที่ตัดออกไม่ควรทับซ้อนกันเมื่อหมุน 90° นั่นคือหลังจากการหมุน 4 รอบของลายฉลุรอบแกนของมัน ช่องเสียบในนั้นไม่ควรตรงกัน
ใช้ตะแกรง Cardano อย่างง่ายเป็นตัวอย่าง (แสดงด้านล่าง)
ใช้ลายฉลุนี้เข้ารหัสวลี "O Muses ฉันจะดึงดูดคุณ"
- | O | - | M | - | - |
U | |||||
З | S | ||||
K | |||||
B | A | ||||
M |
เติมเซลล์สเตนซิลด้วยตัวอักษรตามกฎ: อันดับแรกจากขวาไปซ้าย และจากนั้นจากบนลงล่าง เมื่อเซลล์หมด ให้หมุนลายฉลุ 90 °ตามเข็มนาฬิกา ด้วยวิธีนี้เราจะได้ตารางต่อไปนี้
ฉัน | - | - | - | - | - |
O | B | R | |||
A | Sch | ||||
y | |||||
С | b |
แล้วหมุน 90° อีกครั้ง
- | - | - | - | - | С |
B | O | ||||
З | |||||
B | A | ||||
N | |||||
b | E |
และโค้งสุดท้าย
- | - | M | - | - | - |
หลังจากรวม 4 ตารางเป็นตารางเดียว เราก็จะได้รับข้อความเข้ารหัสสุดท้าย
ฉัน | O | M | M | G | С |
B | O | U | B | O | R |
G | З | A | З | Sch | S |
B | G | K | G | A | U |
G | B | G | N | G | A |
M | С | b | b | E | G |
แม้ว่าข้อความจะยังเหมือนเดิม แต่สำหรับการส่ง จะสะดวกกว่าในการรับข้อความเข้ารหัสที่ดูคุ้นเคย เมื่อต้องการทำเช่นนี้ เซลล์ว่างสามารถเติมด้วยตัวอักษรสุ่ม และคอลัมน์สามารถเขียนได้ในหนึ่งบรรทัด:
YAVGVGM OOZGVS MUAKGY MBZGN GOSCHAGE SRYUAG
ในการถอดรหัสข้อความนี้ ผู้รับต้องมีสำเนาลายฉลุที่ถูกต้องซึ่งใช้ในการเข้ารหัส รหัสนี้ถือว่าค่อนข้างเสถียรมานานแล้ว นอกจากนี้ยังมีหลายรูปแบบ ตัวอย่างเช่น การใช้ตะแกรงคาร์ดาโน 4 ชิ้นในคราวเดียว โดยแต่ละอันจะหมุนในแบบของฉัน
วิเคราะห์รหัสการเรียงสับเปลี่ยน
รหัสการเรียงสับเปลี่ยนทั้งหมดมีความเสี่ยงต่อการวิเคราะห์ความถี่ โดยเฉพาะอย่างยิ่งในกรณีที่ความยาวของข้อความเทียบได้กับความยาวของคีย์ และความจริงข้อนี้ไม่สามารถเปลี่ยนแปลงได้โดยใช้การเรียงสับเปลี่ยนซ้ำๆ ไม่ว่าจะซับซ้อนเพียงใด ดังนั้นในการเข้ารหัส เฉพาะรหัสที่ใช้กลไกหลายอย่างพร้อมกัน นอกเหนือไปจากการเปลี่ยนลำดับเท่านั้นจึงจะเสถียรได้