UTILS.
100% trong trình duyệt
✖️

Bộ mã hóa / giải mã Affine Cipher

Mật mã đơn bảng dùng E(x)=(a·x+b) mod 26, có kiểm tra khóa (gcd(a,26)=1) và giải mã bằng nghịch đảo modular. Mã hóa hoặc giải mã chữ cái tức thì.

Khóa a phải nguyên tố cùng nhau với 26: 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23 hoặc 25.

— kết quả hiển thị ở đây —

Về công cụ này

Bộ mã hóa / giải mã Affine Cipher là công cụ miễn phí chạy ngay trong trình duyệt cho mật mã đơn bảng xây dựng trên số học modular. Các chữ cái A–Z được đánh số 0–25 và mỗi chữ được biến đổi bằng hàm tuyến tính E(x) = (a·x + b) mod 26, trong đó a và b là hai giá trị khóa. Giải mã đảo ngược điều này bằng D(y) = a⁻¹·(y − b) mod 26, với a⁻¹ là nghịch đảo nhân modular của a modulo 26.

Để mật mã có thể đảo ngược, hệ số nhân a phải nguyên tố cùng nhau với 26 — tức là gcd(a, 26) = 1. Mười hai lựa chọn hợp lệ là 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23 và 25; bất kỳ giá trị nào khác sẽ ánh xạ hai chữ cái khác nhau tới cùng một kết quả và không thể giải mã, nên công cụ từ chối nó kèm thông báo rõ ràng. Khóa cộng b có thể là bất kỳ giá trị nào 0–25. Mọi thứ được tính cục bộ trong trình duyệt của bạn, nên không có gì bạn gõ rời khỏi thiết bị.

Chữ hoa/thường được giữ nguyên và các ký tự không phải chữ cái đi qua không thay đổi. Mật mã Affine tổng quát hóa các mật mã cổ điển đơn giản hơn: đặt a = 1 thu về mật mã Caesar dịch b, và a = 25, b = 25 tái tạo mật mã Atbash. Nó là món chủ lực của các khóa học toán rời rạc và lý thuyết số vì làm cho các ý tưởng về tính nguyên tố cùng nhau và nghịch đảo modular trở nên cụ thể, và nó thường xuất hiện trong các câu đố CTF và công cụ như CyberChef.

Câu hỏi thường gặp

Công thức của mật mã affine là gì?
Mã hóa là E(x) = (a·x + b) mod 26 và giải mã là D(y) = a⁻¹·(y − b) mod 26, với chữ cái đánh số 0–25. Ở đây a⁻¹ là nghịch đảo nhân modular của a modulo 26.
Những giá trị nào của a được cho phép?
Chỉ các giá trị nguyên tố cùng nhau với 26, tức gcd(a, 26) = 1: đó là 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23 hoặc 25. Các giá trị khác khiến mật mã không thể đảo ngược, nên công cụ từ chối chúng.
Việc giải mã được thực hiện thế nào?
Nó cần nghịch đảo modular a⁻¹ của a modulo 26, tức số mà a·a⁻¹ ≡ 1 (mod 26). Công cụ tìm nó tự động, rồi áp dụng D(y) = a⁻¹·(y − b) mod 26 cho từng chữ cái.
Nó liên quan thế nào tới Caesar và Atbash?
Nó tổng quát hóa cả hai. Với a = 1 mật mã affine trở thành Caesar dịch b, và với a = 25, b = 25 nó tái tạo mật mã Atbash. Nó là dạng tuyến tính của phép thay thế đơn bảng.

Công cụ khác