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

เทคนิคของ Monoalphabetic Cipher มีอะไรบ้าง?

Monoalphabetic Substitution Cipher (ไซเฟอร์แทนที่แบบอักษรเดี่ยว)

แทนที่ตัวอักษรแต่ละตัวใน Plaintext ด้วยตัวอักษรตัวเดียวใน Ciphertext ตลอดข้อความ (Fixed Mapping) 26! ≈ 4×10²⁶ Keyspace

เทคนิคหลัก 3 แบบ

1. Additive Cipher (Caesar Cipher แบบขยาย)

  • เลื่อนตัวอักษรทุกตัว จำนวนคงที่ k (Key)
  • สูตร: C = (P + k) mod 26
  • ตัวอย่าง k=5: a→F, b→G, ..., u→Z, v→A, ..., z→E
  • Keyspace: 25 (k=1..25) → แตกได้ง่ายด้วย Brute-force

2. Multiplicative Cipher

  • คูณตำแหน่งตัวอักษรด้วย k แล้ว mod 26
  • สูตร: C = (P × k) mod 26
  • k ต้องเป็นจำนวนที่ gcd(k,26)=1 → k ∈ {1,3,5,7,9,11,15,17,19,21,23,25} (12 ค่า)
  • ถอดรหัส: P = (C × k⁻¹) mod 26 (k⁻¹ = Modular Inverse)
  • ตัวอย่าง: P='h'=7, k=5 → C = 7×5=35≡9='J'

3. Affine Cipher

  • รวม Additive + Multiplicative: C = (P × k₁ + k₂) mod 26
  • กุญแจคู่ (k₁, k₂): k₁ ∈ {1,3,5,7,9,11,15,17,19,21,23,25}, k₂ ∈ {0..25}
  • Keyspace: 12 × 26 = 312
  • ถอดรหัส: P = ((C - k₂) × k₁⁻¹) mod 26
  • ลำดับการถอดรหัส: ลบ k₂ ก่อน (Inverse of Add) แล้วคูณ k₁⁻¹ (Inverse of Multiply)

จุดอ่อนร่วมของ Monoalphabetic Ciphers

  • Frequency Analysis (Statistical Attack): ตัวอักษรในภาษาอังกฤษมีความถี่คงที่ (E≈12.7%, T≈9.1%, A≈8.2%...)
  • นับความถี่ใน Ciphertext → จับคู่กับความถี่ภาษา → หา Mapping
  • Bigram/Trigram Analysis (TH, HE, ING...) เพิ่มความแม่นยำ
  • Known Plaintext Attack: ถ้ารู้บางส่วน → หา Mapping ได้เร็ว

สรุป

Monoalphabetic Ciphers (Additive, Multiplicative, Affine) ไม่ปลอดภัยต่อการโจมตีทางสถิติ ใช้ได้เฉพาะการศึกษา หรือปริศนา ไม่ใช้ในระบบจริง