T

Text Machine

Công cụ văn bản mạnh mẽ, ngay trong trình duyệt của bạn

Mật mã lưới xoay

Mã hóa và giải mã mật mã lưới xoay, còn được gọi là lưới Fleissner. Một tấm thẻ vuông với một phần tư số ô được đục thủng được đặt lên trên một lưới ô trống; bạn viết thông điệp qua các lỗ, xoay tấm thẻ chín mươi độ, rồi viết tiếp, cho đến khi bốn lần xoay đã lấp đầy lưới ô. Đọc lưới ô theo từng hàng và bạn có bản mã. Chọn kích thước lưới, đặt một từ khóa để dựng lưới, và xem sơ đồ lưới-và-ô trực quan. Mọi thứ đều chạy trong trình duyệt của bạn.

Lưới

Từ khóa

Kích thước lưới

Từ khóa dựng nên lưới: những lỗ được đục thủng trên tấm thẻ. Các ô của lưới được chia thành các nhóm bốn ô xoay lẫn vào nhau, và mỗi chữ cái từ khóa chọn ra ô nào của một nhóm bị đục — vì vậy đúng một lỗ đến từ mỗi nhóm, chính là quy tắc cho phép bốn lần xoay lấp đầy lưới ô một cách hoàn hảo. Một từ khóa khác tạo ra một mẫu lỗ khác. Chỉ các chữ cái mới được tính, và cả hai bên đều phải dùng cùng một từ khóa và cùng một kích thước lưới.

Văn bản gốc
Văn bản mã hóa

Nhập văn bản phía trên để xem kết quả ở đây.

Sơ đồ lưới

Ví dụ: một thông điệp mẫu lấp đầy lưới ô qua tấm lưới qua bốn lần xoay một phần tư. Nhập văn bản của riêng bạn phía trên để cập nhật.

Tấm lưới (các lỗ ở lần xoay 1)

Lưới ô (tô màu theo lần xoay)

T
T
M
I
D
R
E
E
H
E
N
T
M
E
E
I
E
G
T
H
O
O
A
L
D
D
T
T
O
A
B
A
Y
K
Y
M

Lần xoay 1

Lần xoay 2

Lần xoay 3

Lần xoay 4

Cách sử dụng Mật mã lưới xoay

  1. 1

    Chọn mã hóa hoặc giải mã

    Chọn Mã hóa để xáo trộn văn bản gốc bằng lưới xoay, hoặc Giải mã để biến văn bản mật mã lưới trở lại thành văn bản gốc.

  2. 2

    Đặt từ khóa

    Gõ một từ khóa để dựng tấm lưới. Mỗi chữ cái chọn ra những ô nào bị đục thủng thành lỗ. Hãy dùng cùng một từ khóa ở cả hai bên.

  3. 3

    Chọn kích thước lưới

    Chọn một lưới ô 4×4, 6×6 hoặc 8×8. Một lưới ô lớn hơn xáo trộn những đoạn văn bản dài hơn cùng một lúc. Cả hai bên phải dùng cùng một kích thước.

  4. 4

    Nhập hoặc dán văn bản của bạn

    Nhập thông điệp của bạn và nó được chuyển đổi ngay khi bạn gõ. Sơ đồ hiển thị tấm lưới và lưới ô, với mỗi ô được tô màu theo lần xoay đã lấp đầy nó.

  5. 5

    Sao chép, tải xuống hoặc chia sẻ

    Sao chép kết quả, 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 chính xác văn bản, từ khóa và kích thước lưới của bạn đã sẵn sàng.

Tìm hiểu về mật mã lưới xoay

Mật mã lưới xoay là gì?

Lưới xoay là một mật mã hoán vị: nó che giấu thông điệp không phải bằng cách thay đổi các chữ cái mà bằng cách xáo trộn thứ tự chúng được viết. Công cụ của mật mã này chính là tấm lưới — một tấm thẻ vuông cứng với một số ô được cắt đi thành các lỗ. Bạn đặt tấm lưới lên trên một lưới ô trống cùng kích thước, viết những chữ cái đầu tiên của thông điệp qua các lỗ, rồi xoay tấm thẻ một phần tư vòng và viết những chữ cái tiếp theo qua các lỗ ở vị trí mới của chúng. Sau bốn lần xoay, tấm thẻ đã che phủ mọi ô của lưới đúng một lần, và lưới ô, khi đọc theo thứ tự đọc thông thường, chính là bản mã của bạn.

Dạng nổi tiếng nhất của nó được đặt theo tên Eduard Fleissner von Wostrowitz, một đại tá người Áo đã mô tả nó vào năm 1881, và nó nổi tiếng vì được quân đội Đức áp dụng tại Mặt trận phía Tây vào năm 1916. Bởi cùng một hình vuông được đọc theo một thứ tự hoàn toàn khác với thứ tự nó được viết, các chữ cái được xáo trộn triệt để trong khi từng chữ cái đều được giữ nguyên — đó là dấu hiệu đặc trưng của một mật mã hoán vị và là điều khiến lưới xoay trở thành một ví dụ giảng dạy được ưa chuộng cho đến tận ngày nay.

Tấm lưới và lưới ô

Mọi thứ đều phụ thuộc vào các lỗ. Hãy lấy một lưới ô có số ô chẵn ở mỗi cạnh — 4×4, 6×6 hoặc 8×8 ở đây — và để ý rằng các ô của nó tập hợp thành những họ bốn ô: bất kỳ ô nào, cùng với ba ô mà nó rơi vào khi hình vuông được xoay qua chín mươi, một trăm tám mươi và hai trăm bảy mươi độ. Một lưới ô 4×4 có bốn họ như vậy, một lưới ô 6×6 có chín họ, một lưới ô 8×8 có mười sáu họ. Mỗi họ là một vị trí trong tấm lưới, và để tạo ra một tấm lưới hợp lệ bạn đục thủng đúng một ô từ mỗi họ.

Tại sao lại đúng một ô? Bởi vì khi đó, khi bạn xoay tấm lưới qua bốn vị trí của nó, bốn ô của mỗi họ đều được phơi ra một lần và chỉ một lần duy nhất. Không ô nào bị che suốt cả bốn lần xoay (điều sẽ để nó trống), và không ô nào bị phơi ra hai lần (điều sẽ ghi đè lên một chữ cái). Một lỗ trên mỗi họ chính là điều kiện chính xác cho phép bốn lần xoay lấp đầy lưới ô một cách trọn vẹn và không xung đột.

Dựng tấm lưới từ một từ khóa

Trong lịch sử, người gửi và người nhận chia sẻ một tấm lưới vật lý, hoặc một bản mô tả bằng văn bản về những ô nào là lỗ. Thay vào đó, công cụ này dựng tấm lưới từ một từ khóa, vì vậy nó dễ ghi nhớ, dễ chia sẻ, và luôn tái tạo cùng một mẫu. Mỗi chữ cái của từ khóa được đọc lần lượt và được dùng để chọn ô nào trong bốn ô của một họ bị đục thủng, lần lượt từng họ một. Nếu từ khóa ngắn hơn số họ, nó chỉ đơn giản lặp lại.

Bởi vì từ khóa chỉ luôn chọn ra một ô cho mỗi họ, mọi từ khóa đều tự động tạo ra một tấm lưới hợp lệ — không có cách nào gõ một từ khóa làm hỏng mật mã. Đổi một chữ cái và bạn đổi một lỗ; đổi kích thước lưới và toàn bộ mẫu được dựng lại theo số họ mới. Sơ đồ trên trang vẽ ra tấm lưới kết quả để bạn có thể thấy chính xác những ô nào đang mở trước khi xoay nó.

Mật mã lưới xoay hoạt động như thế nào

Việc mã hóa diễn ra theo từng lần xoay. Với tấm lưới ở vị trí khởi đầu, hãy viết những chữ cái đầu tiên của thông điệp vào các ô lộ ra qua các lỗ, lấy chúng theo thứ tự đọc — trái sang phải dọc theo mỗi hàng, trên xuống dưới. Xoay tấm lưới một phần tư vòng theo chiều kim đồng hồ và viết những chữ cái tiếp theo qua các lỗ ở vị trí mới của chúng. Xoay tiếp, viết tiếp, và một lần nữa, tổng cộng bốn vị trí, và lưới ô đã đầy. Nếu thông điệp ngắn hơn lưới ô, các ô còn lại được lấp bằng chữ cái độn X để lưới ô luôn hoàn chỉnh; nếu nó dài hơn, một lưới ô mới được bắt đầu và cùng tấm lưới đó được dùng lại.

Sơ đồ phía trên cho thấy cả hai nửa của bức tranh. Bên trái là tấm lưới ở vị trí khởi đầu, với các lỗ đã đục được đánh dấu. Bên phải là lưới ô đã hoàn thành, mỗi ô được tô màu theo lần xoay mà nó được viết — lần xoay thứ nhất, thứ hai, thứ ba, thứ tư — để bạn có thể thấy thông điệp xoắn ốc vào vị trí. Đọc lưới ô đó thẳng theo hàng ngang, từng hàng một, sẽ cho bản mã hiển thị ở phần kết quả.

Một ví dụ minh họa

Hãy lấy chính tên của mật mã, FLEISSNERGRILLE, mười lăm chữ cái, trên một lưới ô 4×4. Giả sử các lỗ của tấm lưới, trước khi xoay, nằm ở hàng 2 cột 3 và 4, hàng 3 cột 4, và hàng 4 cột 1. Viết bốn chữ cái đầu tiên F, L, E, I qua các lỗ đó theo thứ tự đọc, rồi xoay tấm thẻ theo chiều kim đồng hồ và viết S, S, N, E, rồi R, G, R, I, rồi L, L, E và một chữ cái độn, sẽ lấp đầy cả mười sáu ô.

Bây giờ đọc lưới ô đã hoàn thành thẳng theo hàng ngang, từng hàng một, và nó đánh vần thành SLLRGEFLRISEINE — một đảo chữ của bản gốc, bởi một phép hoán vị chỉ sắp xếp lại. Để giải mã, bạn đặt chính tấm lưới đó trở lại lên những chữ cái này và đọc qua các lỗ theo cùng thứ tự bốn lần xoay, và FLEISSNERGRILLE hiện ra trở lại. Đây là minh họa kinh điển của mật mã; trong công cụ, tấm lưới được dựng sẵn cho bạn từ từ khóa và kích thước lưới mà bạn chọn.

Giải mã một thông điệp lưới xoay

Giải mã là hình ảnh phản chiếu của mã hóa. Viết bản mã vào một lưới ô trống, từng hàng một, cho đến khi nó đầy. Sau đó đặt cùng tấm lưới lên trên nó và đọc các chữ cái lộ ra qua các lỗ theo thứ tự đọc, xoay tấm lưới một phần tư vòng, đọc lại, và tiếp tục cho cả bốn lần xoay. Các chữ cái hiện ra theo thứ tự ban đầu của chúng, khôi phục lại thông điệp.

Để điều này hoạt động, hai bên phải thống nhất ba điều: cùng kích thước lưới, cùng tấm lưới — ở đây là cùng từ khóa — và cùng chiều xoay. Công cụ này xoay tấm lưới theo chiều kim đồng hồ xuyên suốt, cả khi mã hóa lẫn khi giải mã, vì vậy một thông điệp tạo ra ở đây luôn giải mã được ở đây. Bởi mật mã chỉ di chuyển các chữ cái, bất cứ thứ gì không phải là chữ cái trong bản gốc — khoảng trắng, chữ số, dấu câu — đều bị loại bỏ trước khi mã hóa và sẽ không xuất hiện lại, và bất kỳ chữ X độn nào được thêm vào để hoàn thành lưới ô cuối cùng sẽ hiện ra ở cuối văn bản đã giải mã.

Lịch sử, công dụng và độ an toàn

Các mật mã lưới đã có từ lâu: Gerolamo Cardano đề xuất một tấm lưới đơn giản cho việc viết che giấu vào thế kỷ mười sáu, và lưới xoay lấp đầy cả một lưới ô được Fleissner trình bày vào thế kỷ mười chín. Đức cấp phát các tấm lưới xoay cho lực lượng của mình vào năm 1916 với các tên mã theo kích thước — loại 5×5 là Anna, loại 6×6 là Berta, loại 8×8 là Dora, và cứ thế — nhưng chúng chỉ tồn tại được vài tháng ngoài chiến trường trước khi các nhà phân tích mật mã Pháp, do Georges Painvin dẫn đầu, phá vỡ chúng. Ngày nay, lưới xoay tồn tại chủ yếu như một câu đố và một bài học sinh động về cách hoán vị hoạt động.

Theo tiêu chuẩn hiện đại, nó mang lại rất ít độ an toàn. Một phép hoán vị giữ nguyên các chữ cái gốc, vì vậy bản mã có chính xác cùng tần suất chữ cái như bản gốc, và một kẻ tấn công đoán đúng kích thước lưới chỉ có một số lượng tấm lưới hữu hạn để thử, đặc biệt trên một lưới ô nhỏ. Nhiều thông điệp cùng độ dài trên cùng một tấm lưới đặc biệt dễ làm lộ bí mật. Hãy tận hưởng lưới xoay vì lịch sử và cơ chế thú vị của nó, và dùng nó cho trò chơi và việc học — nhưng đừng bao giờ dùng để bảo vệ bí mật thực sự, nơi mà một thuật toán hiện đại, đã được giới chuyên môn thẩm định như AES mới là lựa chọn đúng đắn.

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

Mật mã lưới xoay là gì?
Đó là một mật mã hoán vị xáo trộn thứ tự các chữ cái của một thông điệp bằng một tấm lưới xoay — một tấm thẻ vuông có các lỗ cắt trên đó. Bạn viết thông điệp qua các lỗ, xoay tấm thẻ một phần tư vòng, rồi viết lại, tổng cộng bốn lần, cho đến khi lưới ô đầy. Đọc lưới ô theo từng hàng sẽ cho bản mã. Mọi chữ cái đều được giữ lại; chỉ có thứ tự thay đổi.
Lưới Fleissner là gì?
Lưới Fleissner là tấm lưới xoay phổ biến nhất, được đặt theo tên Eduard Fleissner von Wostrowitz, người đã mô tả nó vào năm 1881. Đó là một tấm lưới vuông mà, khi xoay qua bốn vị trí, lấp đầy toàn bộ một lưới ô vuông. Quân đội Đức đã dùng các tấm lưới Fleissner tại Mặt trận phía Tây vào năm 1916. Lưới xoay và lưới Fleissner thường chỉ cùng một mật mã.
Từ khóa dựng nên tấm lưới như thế nào?
Các ô của lưới tập hợp thành những họ bốn ô xoay lẫn vào nhau, và một tấm lưới hợp lệ đục đúng một lỗ từ mỗi họ. Công cụ này đọc từ khóa từng chữ cái một và dùng mỗi chữ cái để chọn ô nào của một họ là lỗ. Bởi vì nó luôn chọn một ô cho mỗi họ, mọi từ khóa đều cho một tấm lưới hoạt động được, và cùng một từ khóa và kích thước lưới luôn cho cùng một tấm lưới.
Tôi có thể dùng những kích thước lưới nào?
Bạn có thể chọn một lưới ô 4×4, 6×6 hoặc 8×8. Các cạnh phải chẵn để lưới ô không có ô trung tâm, là ô mà không phép xoay nào có thể di chuyển. Một lưới ô 4×4 xử lý mười sáu chữ cái mỗi lưới, một lưới ô 6×6 xử lý ba mươi sáu, và một lưới ô 8×8 xử lý sáu mươi tư. Những thông điệp dài hơn một lưới ô được chia thành các lưới ô liên tiếp đều dùng cùng một tấm lưới.
Bạn có thể cho xem một ví dụ minh họa không?
Trên một lưới ô 4×4 với các lỗ ở hàng 2 cột 3 và 4, hàng 3 cột 4, và hàng 4 cột 1, từ FLEISSNERGRILLE được viết bốn chữ cái mỗi lần, xoay tấm lưới theo chiều kim đồng hồ giữa mỗi lần, và lưới ô đã hoàn thành đọc thành SLLRGEFLRISEINE — một đảo chữ, vì một phép hoán vị chỉ sắp xếp lại các chữ cái. Đặt cùng tấm lưới đó trở lại lên trên nó sẽ khôi phục FLEISSNERGRILLE.
Làm thế nào để tôi giải mã một thông điệp lưới xoay?
Viết bản mã vào một lưới ô trống theo từng hàng, đặt cùng tấm lưới lên trên nó, và đọc các chữ cái qua các lỗ theo thứ tự đọc, xoay tấm lưới một phần tư vòng giữa mỗi vị trí trong bốn vị trí. Trong công cụ này, chọn Giải mã và nhập cùng từ khóa và kích thước lưới đã được dùng để mã hóa. Mật mã xoay tấm lưới theo chiều kim đồng hồ cả hai chiều, vì vậy một thông điệp tạo ra ở đây sẽ giải mã được ở đây.
Tại sao văn bản đã giải mã của tôi có thêm các chữ X?
Tấm lưới phải lấp đầy toàn bộ lưới ô ở mỗi lần xoay, vì vậy khi một thông điệp ngắn hơn lưới ô thì các ô còn dư được độn bằng chữ cái X. Phần độn đó trở thành một phần của bản mã và xuất hiện lại ở cuối thông điệp đã giải mã. Bạn có thể đơn giản bỏ qua bất kỳ chữ X nào ở cuối; phần còn lại là văn bản gốc của bạn.
Nó có xử lý khoảng trắng, chữ số và dấu câu không?
Không — lưới xoay là một mật mã chỉ dùng chữ cái, vì vậy khoảng trắng, chữ số và dấu câu bị loại bỏ trước khi mã hóa và không quay lại khi bạn giải mã. Chỉ các chữ cái từ A đến Z tham gia. Đây là quy ước thông thường của mật mã này và giữ cho lưới ô được lấp đầy bằng các chữ cái có thể được xáo trộn và gỡ xáo trộn một cách gọn gàng.
Nó khác với hoán vị theo cột hoặc scytale như thế nào?
Cả ba đều chỉ sắp xếp lại các chữ cái, nhưng chúng sắp xếp lại theo những cách khác nhau. Một phép hoán vị theo cột viết văn bản vào các hàng và đọc nó ra theo thứ tự cột được khóa; một scytale đọc một lưới ô cố định thẳng xuống theo các cột của nó. Lưới xoay rải các chữ cái khắp lưới ô qua một tập hợp lỗ xoay, điều này trộn các chữ cái lân cận nhiều hơn hẳn so với việc đọc cột đơn giản.
Mật mã lưới xoay có an toàn không?
Không. Bởi nó là một phép hoán vị, bản mã có cùng tần suất chữ cái như bản gốc, và một khi đã đoán được kích thước lưới thì số lượng tấm lưới khả dĩ là hữu hạn, đặc biệt trên các lưới ô nhỏ. Các nhà phân tích mật mã Pháp đã phá vỡ các tấm lưới của Đức chỉ trong vài tháng vào năm 1916. Nó tuyệt vời cho các câu đố và cho việc học cách hoán vị hoạt động, nhưng để bảo vệ thực sự hãy dùng một thuật toán hiện đại như AES.
Văn bản của tôi có được tải lên một máy chủ không?
Không. Mọi việc mã hóa và giải mã đều diễn ra hoàn toàn trong trình duyệt của bạn, vì vậy văn bản của bạn không bao giờ được tải lên, ghi lại hay lưu trữ. Ngay cả một liên kết chia sẻ cũng giữ văn bản, từ khóa và kích thước lưới của bạn trong phần URL nằm sau ký hiệu #, phần mà trình duyệt không bao giờ gửi đến máy chủ, vì vậy thông điệp của bạn vẫn riêng tư cho đến khi bạn chọn chia sẻ liên kết.

Công cụ liên quan

Tiếp tục với những công cụ hữu ích này

Mật mã Rail Fence

Mật mã hoán vị cột

Mật mã Scytale

Mật mã Caesar

Mật mã Vigenère

Mật mã Atbash