Chuyển đến nội dung

Công Cụ Mã Hóa & Giải Mã Mật Mã Vigenère

Mã hóa hoặc giải mã một thông điệp bằng mật mã Vigenère với từ khóa bạn nhập. Mỗi chữ cái được dịch bởi chữ khóa tương ứng, giữ nguyên chữ hoa/thường, và mọi thứ không phải chữ cái đi qua không đổi. Bật bảng cách làm để xem chữ khóa và dịch chuyển cho từng chữ trong 20 chữ cái đầu tiên. Miễn phí, không cần đăng ký, và không có gì được tải lên.

Chế Độ

Cách Sử Dụng Công Cụ Mật Mã Vigenère

  1. 1. Chọn Mã Hóa hoặc Giải Mã. Mã Hóa chuyển văn bản thuần thành văn bản mật mã; Giải Mã đảo lại với cùng từ khóa.
  2. 2. Nhập từ khóa. Chỉ chữ cái A–Z, không có khoảng trắng hay chữ số. Từ khóa lặp lại dọc theo thông điệp. Từ khóa là a sẽ dịch chuyển bằng không và không đổi gì.
  3. 3. Gõ hoặc dán thông điệp. Kết quả cập nhật khi bạn gõ. Chữ hoa/thường được giữ nguyên, và chữ số, khoảng trắng và dấu câu đi qua mà không dùng hết một chữ khóa.
  4. 4. Đánh dấu Hiển thị cách làm để xem bảng chữ cái thuần, chữ khóa, dịch chuyển và kết quả cho 20 chữ cái đầu tiên.

Mật Mã Vigenère Hoạt Động Như Thế Nào

Đánh số chữ cái A = 0 đến Z = 25. Viết từ khóa lặp lại bên dưới thông điệp, mỗi chữ cái khóa cho một chữ cái thông điệp. Để mã hóa, cộng số của chữ khóa vào số của chữ cái thông điệp, quay vòng qua Z: C = (P + K) mod 26. Để giải mã, trừ: P = (C − K) mod 26. Mỗi chữ khóa vì vậy chọn một dịch chuyển Caesar khác nhau — A là 0, B là 1, đến Z là 25 — đó là lý do mật mã được gọi là đa bảng chữ cái: cùng một chữ cái thông điệp có thể thành các chữ cái mật mã khác nhau. Viết các phép cộng bằng tay chính là việc mà bảng Vigenère truyền thống (tableau) giúp làm nhanh hơn.

Ví Dụ Minh Họa: Từ Khóa LEMON

Mã hóa Attack at dawn với từ khóa lemon cho Lxfopv ef rnhr. Sáu chữ cái đầu tiên, như bảng cách làm hiển thị:

Chữ cái thuầnChữ khóaDịch chuyểnKết quả
Al+11L
te+4x
tm+12f
ao+14o
cn+13p
kl+11v

Hãy nhìn các chữ lặp lại. Hai chữ t của "Attack" thành x và f, vì chúng nằm dưới các chữ khóa khác nhau, và hai chữ a thành o và e. Một dịch chuyển Caesar thông thường sẽ biến mỗi cặp thành các chữ giống hệt nhau, đúng kiểu mẫu mà phân tích tần suất khai thác. Giải mã dùng cùng bảng theo chiều ngược lại: chế độ Giải Mã với lemon biến Lxfopv ef rnhr trở lại thành Attack at dawn. Các chữ khóa chạy tiếp qua khoảng trắng; bản thân khoảng trắng không dùng chữ khóa nào.

Lịch Sử Ngắn

Giovan Battista Bellaso mô tả mật mã này năm 1553. Tên gọi đến từ Blaise de Vigenère, người năm 1586 công bố một mật mã autokey liên quan nhưng mạnh hơn; mật mã này bị quy gán nhầm cho ông vào thế kỷ 19. Nó mang tên le chiffre indéchiffrable, "mật mã không thể giải", và chống lại mọi tấn công cho đến khi Friedrich Kasiski công bố một phương pháp tổng quát năm 1863. Charles Babbage đã phá được nó từ năm 1854 nhưng không công bố.

Mật Mã Vigenère Bị Phá Như Thế Nào

Mọi thứ phụ thuộc vào độ dài của từ khóa. Nếu cùng một đoạn văn bản thuần thẳng hàng với cùng một phần của từ khóa hai lần, nó tạo ra cùng văn bản mật mã hai lần. Kiểm tra Kasiski đo khoảng cách giữa các lần lặp như vậy; độ dài khóa có khả năng là ước chung của chúng. Khi đã biết độ dài n, mọi chữ thứ n được dịch bởi cùng một chữ khóa, nên mỗi cột n đó là một mật mã Caesar thông thường mà phân tích tần suất có thể giải. Một từ khóa dài và khó đoán chống lại điều này, và một khóa ngẫu nhiên dài bằng thông điệp và chỉ dùng một lần là mã một lần (one-time pad), thứ không thể phá. Công cụ này mã hóa và giải mã với từ khóa bạn cung cấp; nó không tìm khóa.

Giới Hạn Của Công Cụ Này

  • Chỉ A–Z và a–z được mã hóa. Chữ cái của hệ chữ viết khác, và chữ Latinh có dấu như é, được giữ nguyên, và công cụ cho bạn biết có bao nhiêu chữ cái đã bị bỏ qua.
  • Từ khóa chỉ được có chữ cái. Khoảng trắng, chữ số hoặc chữ có dấu trong từ khóa sẽ bị từ chối.
  • Bảng cách làm hiển thị 20 dòng, dù thông điệp dài đến đâu.
  • Không an toàn. Dùng cho câu đố, bài học và trò chơi, không dùng cho bất kỳ điều gì riêng tư.

Bạn Cần Công Cụ Nào?

Mật mãKhóa hoạt động thế nào
Mật Mã CaesarMột dịch chuyển cho toàn bộ thông điệp
Vigenère (trang này)Một từ khóa lặp lại; mỗi chữ khóa là một dịch chuyển
Mật Mã BeaufortGiống Vigenère, nhưng chữ khóa trừ đi chữ thông điệp, nên một phép toán vừa mã hóa vừa giải mã
Mật Mã AutokeyMột đoạn mồi ngắn, rồi chính thông điệp trở thành khóa
Mật Mã PortaMột từ khóa chọn trong 13 bảng chữ cái thuận nghịch

Nếu bạn không chắc mình đang xem loại mật mã nào, Công Cụ Nhận Diện Mật Mã đang được lên kế hoạch sẽ giúp thu hẹp phạm vi.

Câu Hỏi Thường Gặp

Mật mã Vigenère là gì?
Một mật mã thay thế đa bảng chữ cái, dịch chuyển mỗi chữ cái bởi một lượng do từ khóa lặp lại xác định. Chữ thông điệp đầu tiên dùng chữ khóa đầu tiên, chữ thứ hai dùng chữ khóa thứ hai, và cứ thế, nên một chữ cái thuần có thể thành nhiều chữ cái mật mã.
Mật mã Vigenère khác mật mã Caesar như thế nào?
Mật mã Caesar dùng một dịch chuyển cố định duy nhất. Mật mã Vigenère dùng một từ khóa, cho mỗi chữ cái một dịch chuyển Caesar khác nhau; về thực chất nó là nhiều mật mã Caesar đan xen, mỗi chữ khóa một cái.
Điều gì xảy ra với khoảng trắng, chữ số và dấu câu?
Chúng đi qua không đổi và không dùng hết một chữ khóa, nên từ khóa chỉ tiến lên trên A–Z và a–z.
Làm thế nào để giải mã một mật mã Vigenère?
Nếu bạn biết từ khóa, chọn Giải Mã, nhập từ khóa và dán văn bản mật mã. Mỗi chữ cái được dịch lùi bởi chữ khóa của nó. Không có từ khóa, bạn cần phân tích mật mã: kiểm tra Kasiski để tìm độ dài khóa, rồi phân tích tần suất trên từng cột.
Vì sao kết quả của tôi giống hệt đầu vào?
Một từ khóa chỉ gồm chữ A (hoặc một chữ a) dịch chuyển mọi chữ cái bằng không. Hãy chọn từ khóa có các chữ khác.
Mật mã Vigenère có an toàn không?
Không. Nó trông như không thể phá trong khoảng ba thế kỷ, nhưng Kasiski công bố một cuộc tấn công tổng quát năm 1863, và máy tính giải nó trong chớp mắt. Nó vẫn là cách tốt để học về mật mã đa bảng chữ cái.
Nó có xử lý được các bảng chữ cái không phải tiếng Anh không?
Không, như một mật mã. Bảng Vigenère là bảng chữ cái Latinh 26 chữ, nên các hệ chữ viết khác đi qua mà không được mã hóa, và công cụ báo có bao nhiêu chữ cái bị bỏ qua.

Công Cụ Liên Quan

Thêm trong Mã và mật mã