Mật mã Autokey
Mã hóa và giải mã mật mã autokey, biến thể Vigenère mạnh hơn trong đó một từ khóa mồi ngắn bắt đầu khóa và chính thông điệp của bạn nối tiếp nó, nên khóa không bao giờ lặp lại. Chuyển giữa mã hóa và giải mã và theo dõi quá trình tính toán hình thành trực tiếp. Mọi thứ đều chạy trong trình duyệt của bạn.
Từ khóa
Nhập một từ khóa mồi ngắn chẳng hạn QUEENLY. Nó bắt đầu luồng khóa, vốn sau đó nối tiếp bằng chính thông điệp của bạn nên khóa không bao giờ lặp lại. Chỉ các chữ cái được dùng; chữ hoa và chữ thường được xem như nhau, và mọi dấu cách, chữ số hoặc dấu câu trong từ khóa đều bị bỏ qua.
Nhập văn bản ở trên để xem kết quả autokey tại đây.
Cách sử dụng Mật mã Autokey
- 1
Chọn mã hóa hoặc giải mã
Chọn Mã hóa để biến bản rõ thành bản mã autokey, hoặc Giải mã để khôi phục bản rõ từ bản mã. Cùng một từ khóa mồi được dùng cho cả hai chiều.
- 2
Nhập từ khóa mồi
Gõ một từ khóa ngắn chẳng hạn QUEENLY. Nó bắt đầu luồng khóa, vốn sau đó nối tiếp bằng chính thông điệp của bạn. Chỉ các chữ cái được dùng, và chữ hoa chữ thường, dấu cách và dấu câu trong từ khóa đều bị bỏ qua.
- 3
Gõ hoặc dán văn bản của bạn
Nhập thông điệp bạn muốn chuyển đổi. Mật mã chạy tự động ngay khi bạn gõ, và quá trình tính toán từng chữ cái cập nhật trực tiếp bên dưới, cho thấy chữ cái khóa nào đến từ từ khóa và chữ cái nào đến từ thông điệp.
- 4
Đọc, sao chép và chia sẻ
Đọc kết quả, rồi sao chép nó, tải nó xuống dưới dạng tệp văn bản, hoặc chia sẻ một liên kết mở lại công cụ với đúng từ khóa, chiều và văn bản của bạn. Mọi thứ đều ở lại trong trình duyệt của bạn.
Tìm hiểu về mật mã Autokey
Mật mã autokey là gì?
Mật mã autokey, còn gọi là mật mã autoclave, là một mật mã thay thế đa bảng trong đó chính thông điệp trở thành một phần của khóa. Một từ khóa mồi ngắn bắt đầu luồng khóa, và một khi những chữ cái đó hết thì khóa đơn giản nối tiếp bằng các chữ cái của bản rõ. Vì khóa chạy dài bằng thông điệp và không bao giờ lặp lại, mật mã autokey tránh được mẫu hình tuần hoàn, đều đặn vốn khiến một mật mã khóa lặp thông thường dễ bị phá.
Nó được nhà ngoại giao người Pháp Blaise de Vigenère công bố năm 1586, dựa trên một ý tưởng trước đó của Giovan Battista Bellaso. Có một sự trớ trêu nổi tiếng ở đây: mật mã khóa lặp đơn giản mà thế giới nay gọi là mật mã Vigenère thực ra là của Bellaso, trong khi phát minh mạnh hơn của chính Vigenère lại là autokey này. Bằng cách đưa bản rõ trở lại vào khóa, mật mã autokey loại bỏ tính chu kỳ mà các nhà phân tích mật mã về sau như Kasiski và Friedman sẽ khai thác để bẻ gãy các khóa lặp.
Mật mã autokey hoạt động ra sao
Đánh số bảng chữ cái từ A là 0 đến Z là 25. Dựng luồng khóa bằng cách viết từ khóa mồi trước, rồi nối tiếp với các chữ cái bản rõ theo thứ tự. Xếp thẳng luồng đó dưới thông điệp sao cho một chữ cái khóa nằm dưới mỗi chữ cái bản rõ. Để mã hóa, cộng mỗi chữ cái khóa vào chữ cái phía trên nó và cuộn vòng quanh bảng chữ cái bằng phần dư cho 26, nên chữ cái bản mã là C = (P + K) mod 26.
Giải mã phải làm từ trái sang phải. Bạn biết từ khóa mồi, nên bạn có thể khôi phục vài chữ cái đầu tiên bằng P = (C − K) mod 26. Mỗi chữ cái bản rõ bạn khôi phục được sau đó được thêm vào luồng khóa và dùng để giải mã chữ cái kế tiếp, và cứ thế cho đến hết. Cũng như mật mã Vigenère, chỉ 26 chữ cái được biến đổi: dấu cách, dấu câu và chữ số đi xuyên qua không đổi và không tiêu tốn một chữ cái khóa, và chữ hoa chữ thường được giữ nguyên.
Ví dụ thực hành
Mã hóa thông điệp HELLO với từ khóa mồi KEY. Luồng khóa là từ khóa theo sau bởi bản rõ, cho ra K, E, Y, H, E cho năm chữ cái. Cộng mỗi chữ vào thông điệp cho ra H cộng K là R, E cộng E là I, L cộng Y là J, L cộng H là S, và O cộng E là S. Bản mã là RIJSS, và để ý rằng hai chữ cái khóa cuối, H và E, đơn giản là hai chữ cái đầu tiên của chính thông điệp.
Để giải mã RIJSS bạn bắt đầu với từ khóa KEY. R trừ K là H, I trừ E là E, và J trừ Y là L, phép này khôi phục HEL. Những chữ cái khôi phục được giờ mở rộng khóa, nên chữ cái khóa kế tiếp là H và S trừ H là L, rồi chữ cái khóa E cho S trừ E là O, hoàn tất HELLO. Mỗi chữ cái khôi phục được mở khóa cho chữ kế tiếp, đó là cốt lõi của cách đọc một mật mã autokey.
Autokey so với Vigenère khóa lặp
Mật mã Vigenère thông thường lặp lại từ khóa của nó hết lần này đến lần khác: với khóa KEY thì luồng là KEYKEYKEY và cứ thế. Sự lặp lại đó là nhược điểm chí mạng của nó, bởi vì độ dài khóa có thể được tìm ra bằng phép kiểm tra Kasiski hoặc chỉ số trùng hợp, sau đó mỗi cột là một phép dịch Caesar đơn giản. Mật mã autokey dùng cùng quy tắc cộng nhưng không bao giờ lặp lại khóa, nên những phép kiểm tra cổ điển đó không áp dụng được.
Bạn có thể thấy sự khác biệt trong ví dụ thực hành. Với khóa KEY, một mật mã Vigenère lặp sẽ mã hóa HELLO thành RIJVS, trong khi autokey tạo ra RIJSS — hai cái chỉ trùng nhau trong khi từ khóa còn kéo dài rồi sau đó tách ra, bởi vì autokey đã chuyển sang bản rõ. Chính thay đổi đơn lẻ đó, đưa thông điệp trở lại vào khóa, là đóng góp thực sự của Vigenère và khiến mật mã của ông mạnh hơn hẳn cái nay mang tên ông.
Autokey so với mật mã khóa chạy
Mật mã autokey có quan hệ mật thiết với mật mã khóa chạy. Cả hai đều dùng một khóa dài bằng thông điệp nên không có gì lặp lại, nhưng chúng khác nhau ở chỗ khóa dài đó đến từ đâu. Một mật mã khóa chạy lấy khóa của nó từ một văn bản bên ngoài được chia sẻ, chẳng hạn một trang sách đã thỏa thuận, trong khi mật mã autokey sinh ra khóa dài của nó từ một mồi ngắn cộng với chính bản rõ.
Mỗi cách đều có một điểm vướng. Một khóa chạy lấy từ ngôn ngữ tự nhiên mang theo cấu trúc thống kê riêng có thể bị tấn công, nhưng nó không cần phản hồi bản rõ. Autokey chỉ cần một bí mật chung tí xíu, từ khóa mồi, nhưng vì một phần khóa của nó là bản rõ, một kẻ tấn công đoán được một từ thông dụng có thể thử trượt nó qua thông điệp như thể nó là khóa, đó là cách chính các mật mã autokey bị phá.
Cách phá mật mã autokey
Vì khóa không bao giờ lặp lại, phép kiểm tra Kasiski và chỉ số trùng hợp, những công cụ tiêu chuẩn chống lại các mật mã khóa lặp, không hoạt động trực tiếp trên một thông điệp autokey. Điều đó khiến nó cứng cáp hơn Vigenère đáng kể, nhưng nó vẫn còn xa mới an toàn. Cuộc tấn công thông thường khai thác chính đặc tính định nghĩa mật mã: phần lớn khóa là bản rõ, vốn là ngôn ngữ thông thường.
Một nhà phân tích đoán một từ có khả năng, chẳng hạn THE hoặc một cái tên có thể có, và kéo lê nó qua bản mã, trừ nó đi như thể nó là khóa. Ở nơi phỏng đoán đúng thì phép toán để lộ những mảnh bản rõ thêm nữa, vốn sau đó có thể được mở rộng theo cả hai hướng. Kết hợp với việc vét cạn từ khóa mồi ngắn, phép kéo lê mẩu tin này khôi phục các thông điệp autokey bằng tay, nên mật mã tốt nhất nên được xem như một bước tiến lịch sử khôn khéo chứ không phải một lựa chọn an toàn.
Mật mã autokey có an toàn không?
Không. Mặc dù mật mã autokey mạnh hơn một mật mã Vigenère khóa lặp thuần túy, nó không cung cấp sự bảo vệ thực sự nào theo tiêu chuẩn hiện đại. Việc nó dựa vào bản rõ làm khóa mở nó ra cho phép kéo lê mẩu tin, và mồi ngắn của nó có thể bị vét cạn, nên một nhà phân tích quyết tâm có thể phá nó bằng bút và giấy. Nó thuộc về lịch sử của mật mã học cổ điển chứ không thuộc bất kỳ danh sách phương pháp an toàn nào.
Ngày nay mật mã autokey được quý trọng vì mục đích học tập và giải trí. Đó là một cách tao nhã để thấy việc đưa thông điệp trở lại vào khóa đánh bại các cuộc tấn công tính chu kỳ vốn phá vỡ những mật mã đơn giản hơn ra sao, và nó xuất hiện trong các cuộc săn câu đố, phòng trốn thoát và các thử thách cướp cờ. Để bảo vệ thông tin thực sự, bạn nên dựa vào các thuật toán hiện đại, được kiểm chứng kỹ lưỡng như AES thay vào đó.
Câu hỏi thường gặp
Mật mã autokey là gì?
Mật mã autokey hoạt động như thế nào?
Mật mã autokey khác mật mã Vigenère như thế nào?
Bạn có thể cho một ví dụ về mật mã autokey không?
Tôi nên dùng từ khóa nào?
Làm thế nào để giải mã một mật mã autokey?
Sự khác biệt giữa mật mã autokey và khóa chạy là gì?
Mật mã có thay đổi dấu cách, chữ số và dấu câu không?
Từ khóa có phân biệt chữ hoa chữ thường không?
Làm thế nào để phá mật mã autokey?
Mật mã autokey có an toàn không?
Văn bản của tôi có được tải lên máy chủ không?
Công cụ liên quan
Tiếp tục với những công cụ hữu ích này