Playfair Cipher là mật mã thay thế digraph (cặp ký tự) do Charles Wheatstone phát minh (1854), phổ biến nhờ Lord Playfair. Sử dụng ma trận 5×5 chứa 25 chữ cái (thường gộp I/J).
Thiết lập khóa (Key Square)
- Loại bỏ trùng lặp từ khóa (ví dụ: "MONARCHY" → M O N A R C H Y).
- Điền tiếp các chữ cái còn lại theo thứ tự bảng chữ cái (bỏ I/J).
- Ma trận 5×5 kết quả dùng cho mã hóa/giải mã.
Quy tắc mã hóa Digraph
Chia plaintext thành cặp (digraph). Nếu cặp trùng ký tự → chèn 'X' (filler). Nếu lẻ → thêm 'X' cuối.
Với digraph (A, B) tại vị trí (r₁,c₁), (r₂,c₂):
- Cùng hàng: Thay bằng ký tự bên phải (xoay vòng) → (r₁,c₁+1), (r₂,c₂+1).
- Cùng cột: Thay bằng ký tự bên dưới (xoay vòng) → (r₁+1,c₁), (r₂+1,c₂).
- Khác hàng/cột (hình chữ nhật): Đổi cột cho nhau → (r₁,c₂), (r₂,c₁).
Giải mã
Ngược lại: cùng hàng → bên trái; cùng cột → bên trên; hình chữ nhật → đổi cột.
Tấn công và Điểm yếu
- Known-plaintext attack: Với ~50-100 digraph known, có thể khôi phục ma trận khóa.
- Frequency analysis digraph: Tiếng Anh: TH, HE, AN, RE... thường xuất hiện. Ciphertext giữ pattern digraph.
- Đối xứng digraph ngược: AB ↔ BA cho cùng cặp ciphertext (trừ cùng hàng/cột). Lộ cấu trúc.
- Không có chữ cái kép trong ciphertext: Do quy tắc chèn X, ciphertext không bao giờ có AA, BB... — giảm entropy.
- Brute-force key space: 25! ≈ 2⁸³ nhưng cấu trúc ma trận giảm mạnh; hill-climbing / simulated annealing phá vỡ nhanh.
Đánh giá hiện đại
Playfair là mật mã cổ điển, chỉ giá trị lịch sử/giáo dục. Không an toàn cho bất kỳ ứng dụng thực tế nào. Thay thế bằng AES-GCM, ChaCha20-Poly1305.