เข้ารหัสโดยวิธีการเรียงสับเปลี่ยน ประเภทและวิธีการเข้ารหัส

สารบัญ:

เข้ารหัสโดยวิธีการเรียงสับเปลี่ยน ประเภทและวิธีการเข้ารหัส
เข้ารหัสโดยวิธีการเรียงสับเปลี่ยน ประเภทและวิธีการเข้ารหัส
Anonim

Aatbash, Scytal cipher, Cardano lattice - วิธีที่รู้จักกันดีในการซ่อนข้อมูลจากการสอดรู้สอดเห็น ในความหมายคลาสสิก รหัสการเรียงสับเปลี่ยนคือแอนนาแกรม สาระสำคัญของมันอยู่ในความจริงที่ว่าตัวอักษรของข้อความธรรมดาเปลี่ยนตำแหน่งตามกฎบางอย่าง กล่าวอีกนัยหนึ่ง กุญแจสำคัญในการเข้ารหัสคือการเรียงลำดับอักขระใหม่ในข้อความที่เปิดอยู่ อย่างไรก็ตาม การพึ่งพาคีย์ตามความยาวของข้อความที่เข้ารหัสทำให้เกิดความไม่สะดวกหลายประการสำหรับการใช้รหัสลับประเภทนี้ แต่สมาร์ทเฮดพบวิธีแก้ปัญหาที่น่าสนใจ ซึ่งมีอธิบายไว้ในบทความ

กลับกลุ่ม

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

"วันนี้หายไป ท้องฟ้ามืดครึ้ม"

มาแบ่งข้อความนี้ออกเป็นกลุ่มๆ ในกรณีนี้ n=6.

"Denuh odily nebav cool cool"

ตอนนี้ขยายกลุ่ม เขียนทีละกลุ่มจากตอนท้าย

"ล่า waben dzo methu yin"

มาสลับสถานที่กัน

"ilido methu yin hunned waben dzo"

สำหรับคนงมงายในแบบฟอร์มนี้ ข้อความนั้นไม่มีอะไรมากไปกว่าขยะ แต่แน่นอนว่าผู้ที่ส่งข้อความถึงนั้นเป็นผู้รับผิดชอบอัลกอริธึมการถอดรหัส

แทรกกลาง

อัลกอริธึมของการเข้ารหัสนี้ซับซ้อนกว่าวิธีการเข้ารหัสของการเรียงสับเปลี่ยนเล็กน้อย:

  1. แยกข้อความออกเป็นกลุ่มด้วยจำนวนอักขระที่เป็นคู่
  2. ใส่ตัวอักษรเพิ่มเติมตรงกลางแต่ละกลุ่ม
วิธีการเข้ารหัสการเรียงสับเปลี่ยน
วิธีการเข้ารหัสการเรียงสับเปลี่ยน

มาดูตัวอย่างกัน

  1. "เขาพาเจ้าสัตว์ประหลาดเข้านอน"
  2. "Earth yetv ariu ขับ lkosnu".
  3. "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 ชิ้นในคราวเดียว โดยแต่ละอันจะหมุนในแบบของฉัน

การเข้ารหัสตะแกรง Gimbal
การเข้ารหัสตะแกรง Gimbal

วิเคราะห์รหัสการเรียงสับเปลี่ยน

การเข้ารหัสลับของตัวเลข
การเข้ารหัสลับของตัวเลข

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