Cryptology Academy · บทเรียน

รหัส Vigenère และรหัสหลายอักษร

ทำความเข้าใจว่าการใช้อักษรหลายชุดเอาชนะการวิเคราะห์ความถี่ได้อย่างไร

บทเรียน 3 จาก 413 ขั้นตอน

รหัส Vigenère และรหัสหลายอักษร เป็นบทเรียน Cryptology Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cryptology Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน

ยินดีต้อนรับ

รหัส Vigenère เอาชนะการวิเคราะห์ความถี่มาได้ถึง 300 ปี ด้วยการใช้ลำดับตัวอักษรซีซาร์หลายชุดหมุนเวียนกัน โดยมีคีย์เวิร์ดที่ใช้ซ้ำเป็นตัวกำหนด

แนวคิดหลัก

เมื่อกำหนดคีย์ 'KEY' และข้อความต้นฉบับ 'HELLO': H+K=R, E+E=I, L+Y=J, L+K=V, O+E=S → ข้อความเข้ารหัสคือ 'RIJVS' ตัวอักษรต้นฉบับเดียวกันอาจถูกเข้ารหัสเป็นตัวอักษรต่างกันได้

ตาราง Tabula Recta

Tabula Recta คือตารางขนาด 26×26 ที่ประกอบด้วยลำดับตัวอักษร โดยแต่ละแถวเลื่อนไปหนึ่งตำแหน่ง ให้ค้นหาแถวของตัวอักษรคีย์และคอลัมน์ของตัวอักษรต้นฉบับเพื่อหาตัวอักษรเข้ารหัส

เหตุผลที่เอาชนะการวิเคราะห์ความถี่ได้

หากคีย์คือ 'CAT' (ความยาว 3) ตัวอักษร 'E' อาจกลายเป็น 'G', 'E' หรือ 'Y' ขึ้นอยู่กับตำแหน่ง การกระจายความถี่จึงแบนราบลง ทำให้การวิเคราะห์แบบง่ายใช้ไม่ได้

การใช้งานด้วย Python

def vigenere(text, key, encrypt=True): result, ki = '', 0 for c in text.upper(): if c.isalpha(): shift = ord(key[ki % len(key)].upper()) - 65 if not encrypt: shift = -shift result += chr((ord(c) - 65 + shift) % 26 + 65) ki += 1 else: result += c return result

การทดสอบ Kasiski

Kasiski (1863) สังเกตว่ารูปแบบข้อความเข้ารหัสที่ซ้ำกันเผยให้เห็นความยาวกุญแจ ข้อความต้นฉบับที่ซ้ำกัน + กุญแจที่ซ้ำกัน = ข้อความเข้ารหัสที่ซ้ำกัน ความยาวกุญแจหารระยะห่างระหว่างจุดที่ซ้ำกันลงตัว

ดัชนีความบังเอิญ

IoC ใช้วัดการแจกแจงความถี่ของตัวอักษร ข้อความสุ่มมีค่า IoC ≈ 0.038 ส่วนภาษาอังกฤษมีค่า IoC ≈ 0.065 การลองใช้ความยาวกุญแจต่าง ๆ แล้ววัดค่า IoC จะเผยให้เห็นความยาวที่ถูกต้อง

การถอดรหัส Vigenère ทีละขั้นตอน

1. ค้นหาความยาวกุญแจด้วย Kasiski/IoC 2. แบ่งข้อความเข้ารหัสเป็นกลุ่มที่มีระยะห่างตามความยาวกุญแจ 3. แต่ละกลุ่มเป็นรหัส Caesar — ใช้การวิเคราะห์ความถี่กับแต่ละกลุ่ม

รหัสกุญแจต่อเนื่อง

หากกุญแจยาวเท่ากับข้อความและไม่ซ้ำกันเลย (Beaufort / กุญแจต่อเนื่อง) Kasiski จะใช้ไม่ได้ หากกุญแจสุ่มอย่างแท้จริง เราจะได้แผ่นกุญแจใช้ครั้งเดียว ซึ่งไม่สามารถถอดได้

รูปแบบ Autokey

รหัส Autokey เริ่มต้นกุญแจด้วยข้อความตั้งต้นสั้น ๆ แล้วต่อท้ายด้วยข้อความต้นฉบับเอง วิธีนี้หลีกเลี่ยงการทำซ้ำได้ แต่ยังคงถูกเจาะด้วยการโจมตีจากข้อความต้นฉบับที่ทราบ

การประเมินความปลอดภัยเชิงปฏิบัติ

Vigenère ที่ใช้กุญแจสั้นสามารถถูกเจาะได้ง่ายมากในปัจจุบัน ความสำคัญทางประวัติศาสตร์ของมันอยู่ที่การแสดงให้เห็นว่า การวิเคราะห์ความถี่มีข้อจำกัดเมื่อใช้อักษรหลายชุด

ตรวจสอบความเข้าใจ

Kasiski ใช้เทคนิคใดในการค้นหาความยาวกุญแจของรหัส Vigenère

ทบทวน

ยอดเยี่ยม! คุณเชี่ยวชาญรหัส Vigenère และวิธีถอดรหัสแล้ว ต่อไปเราจะศึกษาให้ลึกขึ้นเกี่ยวกับการวิเคราะห์ความถี่ในฐานะเครื่องมือทั่วไปสำหรับการวิเคราะห์รหัสลับ
เริ่มต้นได้ฟรี

เรียนรู้ Cryptology Academy ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
67
บทเรียน
261

คำถามที่พบบ่อย

บทเรียน “รหัส Vigenère และรหัสหลายอักษร” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “รหัส Vigenère และรหัสหลายอักษร” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cryptology Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “รหัส Vigenère และรหัสหลายอักษร”

ทำความเข้าใจว่าการใช้อักษรหลายชุดเอาชนะการวิเคราะห์ความถี่ได้อย่างไร คุณปฏิบัติ Cryptology Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cryptology Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cryptology Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “รหัส Vigenère และรหัสหลายอักษร” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Cryptology Academy นี้ได้ไหม

ได้ บทเรียน Cryptology Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. กลไกของรหัสซีซาร์
  2. รหัส Atbash และแอฟฟีน
  3. รหัส Vigenère และรหัสหลายอักษร
  4. การวิเคราะห์ความถี่และพื้นฐานการวิเคราะห์รหัสลับ
← กลับไปที่ Cryptology Academy