Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

Monoalphabetic Cipher ในความปลอดภัยข้อมูลคืออะไร?

Monoalphabetic Substitution Cipher

รูปแบบซิเฟอร์แทนที่ (Substitution Cipher) เก่าแก่ที่สุด ใช้ Mapping คงที่ 1-1 ระหว่าง Plaintext Alphabet และ Ciphertext Alphabet

คุณสมบัติหลัก

  • Deterministic: ตัวอักษร 'A' ใน Plaintext → ตัวอักษร 'X' ใน Ciphertext ทุกครั้ง ที่ปรากฏ
  • Reversible: Mapping เป็น Bijection (1-1, Onto) → ถอดรหัสได้
  • Key Space: 26! ≈ 4×10²⁶ (Permutations ทั้งหมดของอักษร 26 ตัว)
  • Caesar Cipher: กรณีพิเศษของ Monoalphabetic (Shift คงที่, Keyspace=25)

ตัวอย่าง

Plaintext: TREE → Ciphertext: ADOO (T→A, R→D, E→O)
สังเกต: E ปรากฏ 2 ครั้ง → O ปรากฏ 2 ครั้ง (Pattern คงที่)

การโจมตี (Cryptanalysis)

1. Brute Force

26! มากเกินไป ไม่ทำได้

2. Statistical Attack (Frequency Analysis) - โจมตีหลัก

  • นับความถี่ตัวอักษรใน Ciphertext
  • เปรียบเทียบกับความถี่มาตรฐานภาษาอังกฤษ (ETAOIN SHRDLU...)
  • จับคู่ตัวอักษรความถี่สูง → เดา Mapping
  • ใช้ Bigram (TH, HE, AN...), Trigram (THE, AND, ING...) ช่วย
  • Known Plaintext (crib) ทำให้แตกได้เร็วมาก

3. Pattern Analysis

  • คำสั้น: THE, AND, OF, TO, IN, IS, IT, BE, AS, AT...
  • Repeated Letters: EE, LL, SS, OO, TT, FF, RR, NN, PP, MM
  • Word Length Patterns

เหตุผลที่ไม่ปลอดภัย

โครงสร้างภาษาธรรมชาติ (Language Statistics) คงอยู่ แม้ Mapping จะซับซ้อนแค่ไหน กุญแจ 26! ใหญ่แค่ไหน Frequency Analysis แตกได้ในวินาทีด้วยคอมพิวเตอร์

บทเรียนสำคัญ

  • Key Space ใหญ่ ≠ ปลอดภัย (ต้องมี Confusion + Diffusion)
  • ต้องใช้ Polyalphabetic (หลาย Alphabets) หรือ Block Cipher (Permutation + Substitution หลายรอบ)
  • Kerckhoffs's Principle: ความปลอดภัยต้องพึ่งพา Key เท่านั้น