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ã hoán vị cột

Mã hóa và giải mã mật mã hoán vị cột, một phép xáo trộn cổ điển dựa trên từ khóa. Văn bản của bạn được viết vào một lưới theo từng hàng bên dưới một từ khóa, rồi các cột được đọc lại theo thứ tự bảng chữ cái của các chữ cái trong từ khóa — không có gì bị thay thế, mỗi ký tự chỉ đơn giản được di chuyển. Chọn cột không đều hoặc đầy đủ, đặt một ký tự đệm, theo dõi lưới trực tiếp, rồi sao chép, tải xuống hoặc chia sẻ kết quả. Mọi thứ đều chạy trong trình duyệt của bạn.

Từ khóa

Từ khóa

Nhập một từ khóa. Các chữ cái của nó đặt các cột: văn bản được viết ngang qua chúng theo từng hàng, rồi các cột được đọc ra theo thứ tự bảng chữ cái của từ khóa. Các chữ cái khóa lặp lại được lấy từ trái sang phải.

Văn bản thường
Văn bản mã

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

Cách sử dụng Mật mã hoán vị cột

  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 thường thành văn bản mã hoán vị cột, hoặc Giải mã để biến văn bản mã trở lại thành thông điệp gốc.

  2. 2

    Chọn cột không đều hoặc đầy đủ

    Không đều để hàng cuối ngắn và trả về văn bản của bạn chính xác. Đầy đủ đệm lưới thành một hình chữ nhật trọn vẹn bằng một ký tự bạn chọn, nên mọi cột đều có cùng độ dài.

  3. 3

    Nhập từ khóa

    Gõ một từ khóa. Độ dài của nó đặt số cột và thứ tự bảng chữ cái của các chữ cái trong nó đặt thứ tự các cột được đọc. Cả hai bên phải dùng cùng một từ khóa; trong chế độ Đầy đủ bạn cũng có thể đặt ký tự đệm.

  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 hoán vị ngay khi bạn gõ. Lưới mã hóa hiển thị văn bản của bạn được lấp vào các cột có khóa với thứ tự đọc của mỗi cột được đánh số.

  5. 5

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

    Sao chép kết quả, tải 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 văn bản, từ khóa, chế độ và phần đệm của bạn, sẵn sàng để dùng.

Tìm hiểu về mật mã hoán vị cột

Mật mã hoán vị cột là gì?

Mật mã hoán vị cột là một trong những cách lâu đời và trực quan nhất để giấu một thông điệp. Nó là một mật mã hoán vị, nghĩa là nó không thay đổi bất kỳ chữ cái nào — nó chỉ thay đổi thứ tự của chúng. Mỗi ký tự trong văn bản mã là một ký tự vốn có trong văn bản thường; chúng chỉ đơn giản được xáo trộn theo một quy tắc cố định, có thể lặp lại. Quy tắc đó được đặt bởi một từ khóa, điều này khiến phép xáo trộn dễ chia sẻ với một đối tác tin cậy và khó đảo ngược đối với bất kỳ ai không biết nó.

Ý tưởng là viết thông điệp vào một lưới, theo từng hàng, bên dưới các chữ cái của từ khóa, rồi đọc lại lưới mỗi lần một cột. Mánh khóe nằm ở thứ tự đọc các cột: không phải từ trái sang phải, mà theo thứ tự bảng chữ cái của các chữ cái trong từ khóa. Vì từ khóa quyết định thứ tự đó, hai người cùng chia sẻ từ khóa có thể tự do mã hóa và giải mã, trong khi thứ tự cột trông tùy tiện với mọi người khác.

Mật mã hoán vị cột hoạt động ra sao

Bắt đầu bằng cách viết từ khóa ngang qua đỉnh của một lưới, mỗi chữ cái một cột. Sau đó viết thông điệp bên dưới nó, lấp đầy hàng đầu tiên từ trái sang phải, rồi hàng thứ hai, và cứ thế, cho đến khi toàn bộ thông điệp được trải ra. Số cột được cố định bởi độ dài của từ khóa, nên một từ khóa sáu chữ cái luôn tạo ra sáu cột bất kể thông điệp dài đến đâu.

Bây giờ đánh số các cột theo thứ tự bảng chữ cái của các chữ cái trong từ khóa: cột nằm dưới chữ cái sớm nhất trong bảng chữ cái của từ khóa được đọc trước, cột sớm tiếp theo đọc thứ hai, và cứ thế. Nếu từ khóa có hai chữ cái giống nhau, các cột đó được đọc từ trái sang phải, theo thứ tự chúng xuất hiện. Cuối cùng, đọc lưới mỗi lần một cột theo thứ tự đã đánh số đó, viết ra lần lượt các chữ cái của từng cột. Chuỗi bạn nhận được là văn bản mã. Để giải mã, bạn đảo ngược quá trình: dựng lại lưới rỗng, lấp các cột vào theo thứ tự đọc của chúng, rồi đọc ngang qua các hàng.

Cột không đều so với cột đầy đủ

Hầu hết các thông điệp không chia đều vào lưới, nên hàng cuối cùng bị thiếu. Trong dạng không đều (hay không đầy đủ) — phép hoán vị cột kinh điển trong sách giáo khoa — bạn chỉ đơn giản để trống các ô đó. Khi ấy các cột chênh nhau một về độ dài, và văn bản mã dài đúng bằng thông điệp gốc. Chế độ Không đều của công cụ này làm điều đó, và nó vòng lại văn bản của bạn một cách hoàn hảo: việc giải mã trả về chính xác những gì bạn đã gõ, kể cả dấu cách và dấu câu.

Trong dạng đầy đủ, thay vào đó bạn đệm thông điệp ra để lấp đầy hàng cuối, nên mọi cột đều có cùng độ dài và lưới là một hình chữ nhật hoàn hảo. Phần đệm thường là một chữ cái cố định, đã thống nhất như X hoặc Q, hoặc một dãy ký tự rỗng. Cột đầy đủ làm cho độ dài cột trở nên rõ ràng, điều mà về mặt lịch sử đã đơn giản hóa công việc bút giấy và là thiết yếu khi cùng một lưới được hoán vị lần thứ hai. Chuyển sang chế độ Đầy đủ để đệm lưới bằng ký tự bạn chọn; việc giải mã khi đó trả về văn bản của bạn kèm theo bất kỳ phần đệm nào đã được thêm vào, mà bạn có thể cắt bỏ.

Vai trò của từ khóa

Từ khóa làm hai việc cùng một lúc: độ dài của nó đặt lưới có bao nhiêu cột, và thứ hạng bảng chữ cái của các chữ cái trong nó đặt thứ tự các cột được đọc. Một từ khóa dài hơn tạo ra một lưới rộng hơn, thấp hơn và một phép xáo trộn kỹ lưỡng hơn; một từ khóa có các chữ cái vốn đã gần với thứ tự bảng chữ cái thì hầu như không sắp xếp lại gì, nên một từ khóa được trộn kỹ thì mạnh hơn. Chỉ có thứ tự tương đối của các chữ cái mới quan trọng, đó là lý do một từ khóa và bất kỳ từ nào có cùng thứ hạng chữ cái đều tạo ra cùng một phép hoán vị.

Vì từ khóa là toàn bộ bí mật, cả người gửi lẫn người nhận phải dùng đúng cùng một từ khóa. Trong công cụ này chỉ các chữ cái trong từ khóa mới được tính vào thứ tự cột — dấu cách, chữ số và dấu câu bị bỏ qua — và các chữ cái lặp lại giữ nguyên thứ tự từ trái sang phải của chúng, nên một từ khóa như BANANA vẫn cho ra một chuỗi cột xác định, có thể tái tạo. Đổi từ khóa thì văn bản mã thay đổi hoàn toàn, trong khi cùng một từ khóa luôn giải mã nó trở lại.

Một ví dụ thực hành

Lấy thông điệp WE ARE DISCOVERED FLEE AT ONCE và từ khóa ZEBRAS. Bỏ đi các dấu cách, thông điệp là WEAREDISCOVEREDFLEEATONCE, hai mươi lăm chữ cái, và ZEBRAS có sáu chữ cái, nên ta viết nó vào sáu cột: WEARED ở hàng đầu, ISCOVE ở hàng thứ hai, REDFLE ở hàng thứ ba, EATONC ở hàng thứ tư, và một hàng cuối ngắn chỉ chứa E.

Bây giờ xếp hạng các chữ cái của từ khóa theo bảng chữ cái — A, B, E, R, S, Z — điều này đánh số các cột thành 5, 3, 2, 4, 6, 1 từ trái sang phải. Đọc các cột theo thứ tự đó cho ra EVLN từ cột A, ACDT từ cột B, ESEA từ cột E, ROFO từ cột R, DEEC từ cột S, và cuối cùng WIREE từ cột Z. Ghép lại với nhau, văn bản mã là EVLNACDTESEAROFODEECWIREE. Đưa chuỗi đó cùng từ khóa ZEBRAS vào Giải mã sẽ dựng lại lưới và đọc trở lại WEAREDISCOVEREDFLEEATONCE.

Giải mã một thông điệp hoán vị cột

Việc giải mã trông khó hơn mã hóa nhưng tuân theo cùng một lưới. Từ độ dài của văn bản mã và số cột trong từ khóa, bạn có thể tính ra chính xác mỗi cột cao bao nhiêu: nếu thông điệp không chia đều, các cột bên trái nhất — những cột chứa các ký tự sớm nhất của mỗi hàng — cao hơn các cột còn lại một đơn vị. Biết được chiều cao của mỗi cột cho phép bạn cắt văn bản mã trở lại thành các cột của nó theo thứ tự đọc, thả mỗi cột trở về vị trí từ khóa của nó, và đọc ngang qua các hàng để khôi phục thông điệp.

Bí mật duy nhất bạn cần là từ khóa; mọi thứ khác đều được cố định bởi chính văn bản mã. Đó là lý do công cụ này có thể giải mã thuần túy từ văn bản mã và từ khóa, mà không cần thông tin bổ sung. Dùng cùng từ khóa đã được dùng để mã hóa, và cùng chế độ nếu có liên quan đến phần đệm, thì thông điệp gốc xuất hiện trở lại — với cột không đều nó trở lại chính xác, còn với cột đầy đủ nó trở lại kèm phần đệm, sẵn sàng để cắt bỏ.

Lịch sử và độ an toàn

Hoán vị cột đã có từ nhiều thế kỷ và là một công cụ chủ lực của mật mã chiến trường cho đến tận thế kỷ hai mươi, được coi trọng vì nó không cần gì ngoài giấy, một từ khóa và một bàn tay vững. Tự thân nó không an toàn: vì nó không bao giờ thay đổi các chữ cái, văn bản mã có tần suất chữ cái hoàn toàn giống văn bản thường, và một nhà phân tích mật mã có thể tấn công nó bằng cách đoán số cột và thử ghép các mảnh trở lại với nhau — một kỹ thuật gọi là anagramming. Các thông điệp ngắn và các từ khóa dùng lại đặc biệt sụp đổ nhanh chóng.

Sức mạnh thực sự của nó đến từ việc được kết hợp với các bước khác. Chạy phép hoán vị hai lần với hai từ khóa khác nhau — double transposition — được coi là đủ mạnh cho việc sử dụng nghiêm túc trong nhiều thập kỷ, và xếp chồng phép hoán vị lên trên một phép thay thế chính là điều khiến mật mã ADFGVX trở nên đáng gờm. Ngày nay hoán vị cột được xem là tốt nhất khi coi như một công cụ giảng dạy và một câu đố: nó là một minh họa rõ ràng, thực hành về cách sắp xếp lại các chữ cái giấu đi một thông điệp. Để bảo vệ thông tin thực sự, hãy dùng một thuật toán hiện đại, đã được giới chuyên môn bình duyệt như AES, và hãy giữ hoán vị cột cho việc học, các câu đố và các thử thách capture-the-flag.

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

Mật mã hoán vị cột là gì?
Nó là một mật mã hoán vị cổ điển giấu một thông điệp bằng cách sắp xếp lại các chữ cái thay vì thay thế chúng. Bạn viết thông điệp vào một lưới theo từng hàng bên dưới một từ khóa, rồi đọc các cột ra theo thứ tự bảng chữ cái của các chữ cái trong từ khóa. Từ khóa là bí mật chung: bất kỳ ai biết nó đều có thể mã hóa và giải mã, trong khi thứ tự cột trông tùy tiện với mọi người khác.
Mật mã hoán vị cột hoạt động như thế nào?
Viết từ khóa ngang qua đỉnh của một lưới, mỗi chữ cái một cột, rồi lấp thông điệp vào bên dưới nó theo từng hàng. Xếp hạng các chữ cái của từ khóa theo bảng chữ cái để đánh số các cột, rồi đọc lưới mỗi lần một cột theo thứ tự đã đánh số đó. Các chữ cái bạn đọc ra, ghép lại với nhau, chính là văn bản mã. Việc giải mã dựng lại cùng một lưới và đọc ngang qua các hàng.
Sự khác biệt giữa cột đầy đủ và cột không đều là gì?
Cột không đều (không đầy đủ) để hàng cuối ngắn khi thông điệp không lấp đầy lưới một cách đều đặn, nên các cột có thể chênh nhau một về độ dài và văn bản mã dài bằng thông điệp. Cột đầy đủ đệm thông điệp ra thành một hình chữ nhật trọn vẹn bằng một ký tự được chọn, nên mọi cột đều có cùng độ dài. Công cụ này hỗ trợ cả hai; Không đều vòng lại văn bản của bạn chính xác, còn Đầy đủ trả về nó kèm phần đệm mà nó đã thêm vào.
Bạn có thể cho một ví dụ hoán vị cột không?
Lấy WEAREDISCOVEREDFLEEATONCE với từ khóa ZEBRAS. Viết vào sáu cột, nó đọc là WEARED, ISCOVE, REDFLE, EATONC, rồi một hàng ngắn với E. Xếp hạng ZEBRAS theo bảng chữ cái thành A, B, E, R, S, Z và đọc các cột theo thứ tự đó cho ra EVLN, ACDT, ESEA, ROFO, DEEC, WIREE — vậy văn bản mã là EVLNACDTESEAROFODEECWIREE. Từ khóa ZEBRAS giải mã nó thẳng trở lại.
Làm thế nào để giải mã một mật mã hoán vị cột?
Từ độ dài của văn bản mã và số cột trong từ khóa, tính ra mỗi cột cao bao nhiêu — khi thông điệp không chia đều, các cột bên trái nhất cao hơn một chữ cái. Cắt văn bản mã thành các cột theo thứ tự đọc của từ khóa, đặt mỗi cột trở về vị trí từ khóa của nó, và đọc ngang qua các hàng. Trong công cụ này, chọn Giải mã và nhập cùng từ khóa đã được dùng để mã hóa.
Từ khóa làm gì?
Từ khóa làm hai việc: độ dài của nó cố định số cột, và thứ tự bảng chữ cái của các chữ cái trong nó cố định thứ tự các cột được đọc. Chỉ có thứ hạng tương đối của các chữ cái mới quan trọng, nên bất kỳ hai từ khóa nào có cùng thứ tự chữ cái đều tạo ra cùng một phép hoán vị. Một từ khóa dài hơn, được trộn kỹ xáo trộn thông điệp kỹ lưỡng hơn một từ khóa ngắn.
Điều gì xảy ra nếu từ khóa có các chữ cái lặp lại?
Các chữ cái lặp lại được đọc từ trái sang phải, theo thứ tự chúng xuất hiện trong từ khóa. Vậy một từ khóa như BANANA vẫn cho ra một thứ tự cột xác định: ba cột A được đọc trước theo thứ tự trái sang phải của chúng, rồi đến cột B, rồi hai cột N. Công cụ này tuân theo quy ước đó, nên một từ khóa có chữ cái trùng lặp hoàn toàn có thể dùng được và luôn giải mã trở lại một cách chính xác.
Mật mã có giữ lại dấu cách và dấu câu không?
Có. Vì một phép hoán vị chỉ sắp xếp lại các ký tự, công cụ này di chuyển mọi ký tự bạn nhập vào — chữ cái, chữ số, dấu cách, dấu câu, và thậm chí emoji — nên văn bản mã là một sự sắp xếp lại của chính những ký tự đó. Tuy nhiên trong từ khóa, chỉ có các chữ cái mới được tính vào thứ tự cột; dấu cách và các ký tự khác trong từ khóa bị bỏ qua.
Ký tự đệm dùng để làm gì?
Phần đệm chỉ được dùng trong chế độ Đầy đủ, nơi lưới được lấp ra thành một hình chữ nhật trọn vẹn để mọi cột đều có cùng độ dài. Ký tự đệm — X theo mặc định, nhưng bạn có thể đổi — lấp các ô trống của hàng cuối cùng. Khi bạn giải mã một thông điệp cột đầy đủ, phần đệm trở lại ở cuối văn bản, nơi nó dễ dàng được cắt bỏ.
Double transposition là gì?
Double transposition chạy một phép hoán vị cột hai lần, thường với hai từ khóa khác nhau, nên đầu ra của lần đầu trở thành đầu vào của lần thứ hai. Điều này phá vỡ cấu trúc cột đều đặn vốn khiến một phép hoán vị đơn dễ bị tấn công, và nó được coi là đủ mạnh cho việc sử dụng chiến trường nghiêm túc trong nhiều thập kỷ. Bạn có thể tái tạo nó ở đây bằng cách mã hóa một lần, rồi mã hóa kết quả lần nữa với một từ khóa thứ hai.
Mật mã hoán vị cột an toàn đến mức nào?
Tự thân nó không an toàn. Vì nó không bao giờ thay đổi các chữ cái, văn bản mã có cùng tần suất chữ cái với văn bản thường, và nó có thể bị phá bằng anagramming — đoán số cột và ghép lại lưới — đặc biệt với các thông điệp ngắn hoặc các từ khóa dùng lại. Nó trở nên mạnh hơn nhiều khi được kết hợp với các bước khác, như trong double transposition hoặc mật mã ADFGVX. Để bảo vệ thực sự hãy dùng một thuật toán hiện đại như AES, và giữ mật mã này cho việc học và các câu đố.
Văn bản của tôi có được tải lên máy chủ không?
Không. Toàn bộ việc mã hóa và giải mã diễn ra hoàn toàn trong trình duyệt của bạn, nên 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 và từ khóa của bạn trong phần URL nằm sau dấu thăng, phần mà trình duyệt không bao giờ gửi đến máy chủ, nên 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ã Scytale

Mật mã Caesar

Mật mã Vigenère

Mật mã Atbash

Mật mã Playfair