Hill Cipher เป็นรหัสพหุตัวอักษร (polyalphabetic cipher) ที่เลสเตอร์ เอส. ฮิลล์ (Lester S. Hill) สร้างขึ้น ใช้แนวคิดเมทริกซ์ร่วมกับสมการคงเหลือเชิงเส้น (linear congruence) ในการเข้ารหัสและถอดรหัส
ลักษณะสำคัญ
- ไม่แทนที่ตัวอักษรเดิมด้วยตัวอักษรเดียวกันเสมอ (ไม่ใช่ monoalphabetic)
- ใช้การคูณเมทริกซ์ จึงจัดเป็น Block Cipher — ข้อความถูกแบ่งเป็นบล็อกขนาดคงที่
- ตัวอักษรในบล็อกเดียวกันจะมีผลต่อกันระหว่างเข้ารหัส/ถอดรหัส ทำให้ตัวอักษรเดียวกันไม่ถูกแมปไปตัวอักษรเดียวกันซ้ำ
โครงสร้างคีย์
คีย์คือเมทริกซ์สี่เหลี่ยมจัตุรัส K ขนาด m × m (m = ขนาดบล็อก) ต้องเป็น เมทริกซ์ผกผันได้ (invertible matrix) เพราะต้องใช้ K-1 ในการถอดรหัส
$$K = \begin{bmatrix} K_{11} & K_{12} & \cdots & K_{1m} \\ K_{21} & K_{22} & \cdots & K_{2m} \\ \vdots & \vdots & \ddots & \vdots \\ K_{m1} & K_{m2} & \cdots & K_{mm} \end{bmatrix}$$
สมการเข้ารหัส/ถอดรหัส
สำหรับบล็อกขนาด m ตัวอักษร ให้ P = คอลัมน์เวกเตอร์ข้อความต้นฉบับ C = คอลัมน์เวกเตอร์ข้อความเข้ารหัส:
$$C = K \cdot P \pmod{26}$$
$$P = K^{-1} \cdot C \pmod{26}$$
ช่องโหว่: Known-Plaintext Attack (KPA)
Hill Cipher แข็งแกร่งต่อ Ciphertext-Only Attack แต่ เปราะบางมากต่อ Known-Plaintext Attack หากโจมตีมีคู่ plaintext-ciphertext เพียงพอ:
- สมมติมีคู่ (Pi, Ci) จำนวน m คู่ โดยแต่ละคู่ยาว m ตัวอักษร
- จัด Pi และ Ci ให้เป็นเมทริกซ์ m × m คือ P และ C
- จากสมการ C = K · P (mod 26) สามารถหาคีย์ K ได้โดย:
$$K = C \cdot P^{-1} \pmod{26}$$
เมื่อได้ K แล้ว สามารถถอดรหัสข้อความอื่นๆ ที่เข้ารหัสด้วยคีย์เดียวกันได้ทันที
Chosen-Plaintext Attack (CPA)
ในโจมตีแบบ Chosen-Plaintext โจมตีสามารถ เลือก plaintext เองได้ ทำให้การสร้างเมทริกซ์ P ที่ invertible ได้ง่ายขึ้น (เช่นเลือก plaintext ที่ทำให้ P เป็นเมทริกซ์เอกลักษณ์หรือเมทริกซ์ที่คำนวณผกผันง่าย) จึงทำให้การคำนวณ K = C · P-1 ง่ายและรวดเร็วกว่า KPA มาก
สรุป
Hill Cipher เป็นรหัสคลาสสิกที่น่าสนใจทางคณิตศาสตร์ แต่ ไม่ปลอดภัยสำหรับการใช้งานจริง เนื่องจากโจมตี Known-Plaintext และ Chosen-Plaintext สามารถค้นหาคีย์ได้ในเวลา polynomial (แก้ระบบสมการเชิงเส้น) รหัสสมัยใหม่ใช้การผสมผสานระหว่าง substitution และ permutation (SP-network) พร้อมกับ S-boxes ที่ไม่เชิงเส้น เพื่อป้องกันการโจมตีแบบนี้