T

Text Machine

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

Máy Enigma

Mô phỏng, mã hóa và giải mã bằng máy mật mã Enigma của Đức trong Thế chiến II. Chọn bộ phản xạ, ba rôto, thiết lập vòng và vị trí khởi đầu của chúng, cùng bảng cắm, rồi gõ thông điệp của bạn và xem các rôto bước. Enigma có tính nghịch đảo: cùng một thiết lập vừa mã hóa vừa giải mã, nên không có chế độ giải mã riêng. Mọi thứ chạy ngay trong trình duyệt của bạn.

Enigma có tính nghịch đảo: cùng một cách thiết lập máy vừa mã hóa vừa giải mã. Để đọc một thông điệp, hãy đặt rôto, vòng, vị trí và bảng cắm đúng y các thiết lập đã dùng để mã hóa nó, dán bản mã vào, và kết quả chính là văn bản gốc. Không có nút giải mã riêng.

Thiết lập máy

Bộ phản xạ

Rôto

Trái (chậm)

Giữa

Phải (nhanh)

Thiết lập vòng

Vị trí khởi đầu

Bảng cắm

Bảng cắm hoán đổi các chữ cái theo từng cặp trước và sau các rôto. Nhập các cặp như AB CD EF; mỗi chữ cái chỉ được dùng một lần. Để trống nếu không hoán đổi. Khoảng trắng và các ký tự khác sẽ bị bỏ qua.

Văn bản
Kết quả

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

Cách sử dụng Máy Enigma

  1. 1

    Chọn bộ phản xạ và các rôto

    Chọn bộ phản xạ, B hoặc C, và chọn ba rôto từ I đến V cho các khe trái, giữa và phải. Bộ thiết lập tham chiếu tiêu chuẩn là bộ phản xạ B với các rôto I, II và III.

  2. 2

    Đặt thiết lập vòng

    Nhập ba thiết lập vòng dưới dạng chữ cái, chẳng hạn AAA. Thiết lập vòng, hay Ringstellung, xoay hệ thống dây của mỗi rôto so với vòng chữ cái của nó và làm thay đổi kết quả.

  3. 3

    Đặt vị trí khởi đầu

    Nhập ba vị trí khởi đầu dưới dạng chữ cái, chẳng hạn AAA. Đó là các điểm mà rôto được quay tới trước khi bạn bắt đầu gõ, hiển thị trong các cửa sổ rôto. Để giải mã, hãy dùng đúng các vị trí khởi đầu đã được dùng để mã hóa.

  4. 4

    Thêm các cặp bảng cắm

    Tùy chọn, nhập các cặp bảng cắm như AB CD EF. Mỗi cặp hoán đổi hai chữ cái trước và sau các rôto, và mỗi chữ cái chỉ được dùng một lần. Để trống ô này nếu không dùng bảng cắm.

  5. 5

    Gõ và đọc kết quả

    Gõ hoặc dán thông điệp của bạn và kết quả hiện ngay lập tức, với các cửa sổ rôto bước trong phần tính toán trực tiếp. Vì Enigma có tính nghịch đảo, cùng một thiết lập vừa mã hóa vừa giải mã, nên bạn có thể sao chép, tải xuống hoặc chia sẻ một liên kết mở lại công cụ với đúng cách thiết lập máy và văn bản của bạn.

Tìm hiểu về máy Enigma

Máy Enigma là gì?

Máy Enigma là một thiết bị mật mã rôto cơ điện do kỹ sư người Đức Arthur Scherbius phát minh vào khoảng năm 1918. Trông nó như một chiếc máy đánh chữ đặt trong hộp gỗ: một bàn phím, một bảng đèn gồm 26 chữ cái phát sáng ở phía trên, một bộ bánh xe quay gọi là rôto, và một bảng cắm dây ở mặt trước. Khi bạn nhấn một chữ cái, dòng điện chạy qua bảng cắm, băng qua các rôto và một bộ phản xạ, rồi quay lại thắp sáng một chữ cái khác trên bảng đèn. Chữ cái sáng đó chính là bản mã. Mỗi lần nhấn phím cũng làm các rôto quay, nên cùng một chữ cái của văn bản được mã hóa khác nhau mỗi lần xuất hiện, và đó là điều khiến Enigma trở thành mật mã đa bảng chứ không phải phép thay thế đơn giản.

Được quân đội Đức tiếp nhận và liên tục cải tiến, Enigma trở thành xương sống của hệ thống liên lạc bí mật của Đức Quốc xã suốt Thế chiến II. Người Đức tin nó không thể bị phá vì số lượng thiết lập khả dĩ khổng lồ. Họ đã lầm: các nhà toán học Ba Lan do Marian Rejewski dẫn dắt đã tái dựng cỗ máy và hệ thống dây của nó vào đầu thập niên 1930, và công trình của họ được mở rộng tại Bletchley Park ở Anh bởi Alan Turing, Gordon Welchman và nhiều người khác, mà công cuộc phá mã của họ được nhìn nhận rộng rãi là đã rút ngắn cuộc chiến. Công cụ này tái hiện máy Enigma I ba rôto tiêu chuẩn mà Lục quân và Không quân Đức sử dụng.

Máy Enigma hoạt động thế nào

Một bộ thiết lập Enigma có bốn bộ phận làm việc. Bảng cắm, hay Steckerbrett, hoán đổi các cặp chữ cái bằng dây trước và sau cụm rôto. Các rôto, hay Walzen, là những bánh xe được đấu dây sao cho mỗi tiếp điểm trong số 26 tiếp điểm đầu vào nối tới một tiếp điểm đầu ra bị xáo trộn; máy này dùng ba rôto cùng lúc, chọn và sắp xếp từ một bộ năm chiếc. Bộ phản xạ, hay Umkehrwalze, nằm ở đầu cuối và đẩy dòng điện quay ngược qua các rôto theo một cách ghép cặp cố định. Bảng đèn sau đó hiển thị kết quả. Vì vậy tín hiệu thực hiện một hành trình khứ hồi: bảng cắm, rôto phải, rôto giữa, rôto trái, bộ phản xạ, rôto trái, rôto giữa, rôto phải, bảng cắm, và cuối cùng là bóng đèn.

Ba thiết lập cá nhân hóa cỗ máy cho một ngày hoặc một thông điệp cụ thể. Thiết lập vòng, hay Ringstellung, xoay hệ thống dây của mỗi rôto so với vòng chữ cái của nó. Vị trí khởi đầu, hay Grundstellung, là điểm mà mỗi rôto được quay tới trước khi bạn bắt đầu gõ, hiển thị qua các cửa sổ nhỏ. Các cặp bảng cắm thêm một lớp hoán đổi cuối cùng. Trước mỗi lần nhấn phím, các rôto tiến lên như đồng hồ đo quãng đường, nên hệ thống dây mà dòng điện đi qua không bao giờ giống nhau hai lần liên tiếp. Phần tính toán trực tiếp bên dưới công cụ cho thấy ba cửa sổ rôto bước theo từng chữ cái trong thông điệp của bạn.

Ví dụ minh họa

Đặt máy về cấu hình tham chiếu thường được trích dẫn nhất: bộ phản xạ B, các rôto I, II và III từ trái sang phải, cả ba thiết lập vòng ở A, cả ba vị trí khởi đầu ở A, và bảng cắm trống. Bây giờ gõ năm chữ A. Lần nhấn đầu tiên làm rôto phải bước, và dòng điện đi hết hành trình khứ hồi để thắp đèn B. Khi gõ những chữ A còn lại, với rôto bước mỗi lần, đèn sáng D, rồi Z, rồi G, rồi O. Vậy văn bản AAAAA mã hóa thành BDZGO, một phép thử kinh điển khẳng định các rôto được đấu dây đúng.

Vì Enigma có tính nghịch đảo, việc giải mã dùng đúng các thiết lập đó. Đưa cả ba rôto về vị trí khởi đầu A, giữ nguyên mọi thứ khác, và gõ bản mã BDZGO. Hiện ra AAAAA, thông điệp gốc. Cùng một cách thiết lập đã khôi phục văn bản, và đó là lý do công cụ này không có chế độ giải mã riêng: bạn chỉ cần khôi phục các thiết lập đã dùng để mã hóa rồi gõ lại bản mã.

Bộ phản xạ và tính nghịch đảo

Bộ phản xạ là thứ làm cho Enigma có tính nghịch đảo. Vì nó ghép cặp 26 sợi dây một cách đối xứng, đường mà dòng điện đi từ một phím đến một bóng đèn hoàn toàn có thể đảo ngược: nếu nhấn A ở một cấu hình rôto nhất định thắp sáng G, thì ở chính cấu hình đó nhấn G sẽ thắp sáng A. Vì bước của rôto chỉ phụ thuộc vào thiết lập và vị trí của chữ cái trong thông điệp, không bao giờ phụ thuộc vào bản thân các chữ cái, nên giải mã giống hệt mã hóa một khi máy được đặt lại về cùng điểm khởi đầu. Một quy trình, một cách thiết lập, cả hai chiều.

Bộ phản xạ cũng tạo ra khiếm khuyết nổi tiếng nhất của Enigma: một chữ cái không bao giờ có thể mã hóa thành chính nó. Vì dòng điện luôn quay lại trên một sợi dây khác với sợi nó đã rời đi, A có thể trở thành bất kỳ chữ cái nào trừ A. Điều đó nghe vô hại, nhưng nó trao cho những người phá mã một công cụ mạnh mẽ. Nếu họ đoán rằng một đoạn văn bản rõ, một crib, nằm đâu đó trong thông điệp, họ có thể trượt nó dọc theo bản mã và lập tức loại bỏ mọi vị trí mà một chữ cái trùng với chính nó, thu hẹp đáng kể phạm vi tìm kiếm. Một thiết kế nhằm thêm sự tiện lợi lại trao cho phe Đồng minh một chỗ bám.

Bước rôto và hiện tượng bước kép

Các rôto quay như bánh xe của đồng hồ đo quãng đường, nhưng có một điểm lắt léo. Rôto phải bước ở mỗi lần nhấn phím. Mỗi rôto có một khấc lật, và khi một rôto bước qua khỏi khấc đó, nó đẩy rôto bên trái của nó tiến lên một nấc. Vậy sau khi rôto phải hoàn thành một vòng đầy đủ và tới khấc của nó, rôto giữa tiến lên; sau khi rôto giữa cuối cùng tới khấc của nó, rôto trái tiến lên. Đó là lý do cỗ máy lâu mới lặp lại: với ba rôto, chu kỳ đầy đủ dài tới hàng nghìn chữ cái.

Có một bất thường nổi tiếng gọi là bước kép. Do cách các cần bước ăn khớp với nhau, khi rôto giữa nằm đúng vị trí lật của chính nó, nó tiến lên ở lần nhấn kế tiếp cùng với rôto trái, và nó cũng đã được rôto phải đẩy tiến ở lần nhấn trước đó, nên trông như nó di chuyển hai lần liên tiếp nhanh chóng. Bất kỳ trình mô phỏng Enigma trung thực nào cũng phải tái hiện sự bất thường này, và công cụ này làm được; bạn có thể chứng kiến nó xảy ra trong phần tính toán trực tiếp khi rôto giữa gần khấc của nó. Đặt bước cho thật chính xác là điều thiết yếu, vì chỉ một bước sai cũng làm sai lệch mọi chữ cái theo sau.

Mã Enigma đã bị phá thế nào

Đột phá đầu tiên đến từ Ba Lan. Năm 1932, nhà toán học Marian Rejewski, làm việc cùng Jerzy Rozycki và Henryk Zygalski tại Cục Mật mã Ba Lan, đã dùng lý thuyết hoán vị và một danh sách thiết lập bị đánh cắp để tái dựng hệ thống dây bên trong của Enigma quân sự, một thành tựu lâu nay bị cho là bất khả. Người Ba Lan chế tạo các thiết bị hỗ trợ cơ điện và đọc lưu lượng liên lạc của Đức trong nhiều năm, rồi chia sẻ toàn bộ với Anh và Pháp ngay trước chiến tranh. Món quà đó là nền tảng để Bletchley Park dựng nên.

Tại Bletchley Park, Alan Turing và Gordon Welchman đã thiết kế chiếc Bombe, một cỗ máy nhanh chóng thử số lượng khổng lồ các thiết lập rôto để tìm khóa của ngày. Đòn tấn công của họ dựa vào khiếm khuyết không-tự-mã-hóa, vào các crib văn bản rõ có thể đoán trước như bản tin thời tiết và những cụm từ rập khuôn, cùng những sai sót của điện báo viên như khóa thông điệp bị dùng lại hay chọn cẩu thả. Khi Đức thêm rôto và phích cắm, công việc trở nên khó hơn, nhưng việc phá mã chưa bao giờ ngừng. Tình báo mà nó tạo ra, mang mật danh Ultra, được nhìn nhận rộng rãi là đã rút ngắn Thế chiến II và cứu nhiều mạng sống, đồng thời góp phần đặt nền móng cho máy tính hiện đại.

Mật mã Enigma có an toàn không?

Theo tiêu chuẩn thời bấy giờ, Enigma rất đáng gờm, với khoảng 159 tỷ tỷ thiết lập khả dĩ một khi đã tính cả lựa chọn rôto, thiết lập vòng, vị trí khởi đầu và mười dây bảng cắm. Nhưng số lượng khóa thô không đồng nghĩa với sự an toàn. Những khiếm khuyết về cấu trúc, nhất là việc không chữ cái nào mã hóa thành chính nó, nội dung thông điệp đoán được, và sai lầm của con người đã cho phép các nhà phân tích có máy móc và phương pháp phù hợp khôi phục khóa hằng ngày hết lần này đến lần khác. Trước một máy tính hiện đại, ngay cả một chiếc Enigma vận hành hoàn hảo cũng không cho bất kỳ sự bảo vệ nào.

Ngày nay mật mã Enigma được nghiên cứu và yêu thích vì những gì nó dạy và vì lịch sử phi thường của nó. Đây là một trong những cách tốt nhất để hiểu các máy rôto, phép thay thế đa bảng, và cách một công cuộc phân tích mật mã cẩn trọng đánh bại một mật mã, và nó liên tục xuất hiện trong bảo tàng, phim ảnh, các câu đố và những thử thách capture the flag. Để bảo vệ thông tin thật sự, bạn nên luôn dựa vào các thuật toán hiện đại đã được kiểm chứng kỹ như AES.

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

Máy Enigma là gì?
Máy Enigma là một mật mã rôto cơ điện do Arthur Scherbius phát minh vào khoảng năm 1918 và được Đức Quốc xã sử dụng suốt Thế chiến II. Nhấn một phím gửi dòng điện qua bảng cắm, ba rôto quay và một bộ phản xạ để thắp một chữ cái mã hóa, trong khi các rôto bước ở mỗi lần nhấn nên cùng một chữ cái được mã hóa khác nhau mỗi lần. Công cụ này mô phỏng máy Enigma I ba rôto tiêu chuẩn.
Máy Enigma hoạt động như thế nào?
Tín hiệu thực hiện một hành trình khứ hồi: nó đi qua bảng cắm, rồi các rôto phải, giữa và trái, dội lại từ bộ phản xạ, quay trở lại qua các rôto, và đi qua bảng cắm một lần nữa để thắp một bóng đèn. Trước mỗi lần nhấn phím, các rôto tiến lên như đồng hồ đo quãng đường. Bộ phản xạ ghép cặp các sợi dây một cách đối xứng, khiến mật mã có tính nghịch đảo nên cùng một cách thiết lập vừa mã hóa vừa giải mã.
Làm thế nào để giải mã một thông điệp Enigma?
Đặt bộ phản xạ, các rôto, thiết lập vòng, vị trí khởi đầu và bảng cắm đúng y các giá trị đã được dùng để mã hóa thông điệp, rồi dán bản mã vào. Vì Enigma có tính nghịch đảo nên không có chế độ giải mã riêng: với thiết lập đúng, đầu ra chính là văn bản gốc. Nếu bạn không biết các thiết lập, bạn phải khôi phục chúng bằng phân tích mật mã.
Bạn có thể cho một ví dụ Enigma không?
Với bộ phản xạ B, các rôto I, II và III, tất cả thiết lập vòng ở A, tất cả vị trí khởi đầu ở A, và bảng cắm trống, gõ AAAAA tạo ra BDZGO. Đặt lại cùng cỗ máy và gõ BDZGO sẽ trả về AAAAA, vì Enigma có tính nghịch đảo. Kết quả AAAAA thành BDZGO này là một phép thử kinh điển cho thấy một trình mô phỏng Enigma được đấu dây đúng.
Vì sao Enigma không có nút giải mã riêng?
Enigma có tính nghịch đảo nhờ bộ phản xạ. Ở bất kỳ cấu hình rôto nào, nếu A thắp sáng G thì G thắp sáng A, và bước của rôto chỉ phụ thuộc vào thiết lập và vị trí của chữ cái, không phụ thuộc vào các chữ cái. Vậy nên giải mã chính là thao tác y hệt như mã hóa, thực hiện với cỗ máy được đặt lại về cùng điểm khởi đầu. Một cách thiết lập xử lý cả hai chiều, đó là lý do không cần chế độ giải mã.
Rôto, thiết lập vòng và vị trí khởi đầu là gì?
Rôto là những bánh xe được đấu dây để xáo trộn 26 chữ cái; máy này dùng ba chiếc chọn từ năm chiếc, theo một thứ tự nhất định. Thiết lập vòng, hay Ringstellung, xoay hệ thống dây bên trong của một rôto so với vòng chữ cái của nó. Vị trí khởi đầu, hay Grundstellung, là điểm mỗi rôto được quay tới trước khi bắt đầu gõ. Cùng nhau chúng tạo thành phần lớn khóa hằng ngày.
Bảng cắm là gì?
Bảng cắm, hay Steckerbrett, là một bảng ổ cắm dây hoán đổi các cặp chữ cái trước khi tín hiệu vào các rôto và một lần nữa sau khi nó quay lại. Ví dụ, cắm A với B làm cho mỗi A được coi là B và mỗi B là A. Mỗi chữ cái chỉ được cắm một lần, và bảng cắm đã làm tăng rất nhiều số lượng thiết lập khả dĩ của Enigma.
Vì sao một chữ cái không bao giờ có thể mã hóa thành chính nó?
Vì bộ phản xạ luôn đưa dòng điện trở lại trên một sợi dây khác với sợi nó đã rời đi, một chữ cái không bao giờ có thể thắp sáng bóng đèn của chính nó: A có thể trở thành bất cứ gì trừ A. Đây là một điểm yếu nghiêm trọng. Những người phá mã có thể lấy một đoạn văn bản rõ phỏng đoán, trượt nó dọc theo bản mã, và loại bỏ mọi cách căn chỉnh khiến một chữ cái trùng với chính nó, điều này giảm mạnh công sức tìm khóa.
Ai đã phá mã Enigma?
Các nhà toán học Ba Lan Marian Rejewski, Jerzy Rozycki và Henryk Zygalski lần đầu tái dựng Enigma quân sự và đọc lưu lượng của nó trong thập niên 1930, rồi chia sẻ công trình với Anh và Pháp. Tại Bletchley Park, Alan Turing và Gordon Welchman chế tạo chiếc Bombe và, cùng nhiều đồng nghiệp, phá Enigma một cách thường xuyên. Tình báo của họ, mang mật danh Ultra, được nhìn nhận rộng rãi là đã rút ngắn Thế chiến II.
Mật mã Enigma an toàn đến mức nào?
Vào thời của nó, Enigma rất mạnh, với khoảng 159 tỷ tỷ thiết lập khả dĩ. Nhưng số lượng khóa khổng lồ không bảo đảm sự an toàn. Khiếm khuyết không-tự-mã-hóa, nội dung thông điệp đoán được, khóa bị dùng lại và sai sót của điện báo viên đã cho phép các nhà phân tích khôi phục các thiết lập hằng ngày hết lần này đến lần khác. Trước máy tính hiện đại, ngay cả một chiếc Enigma vận hành hoàn hảo cũng không cho sự bảo vệ thực sự nào.
Văn bản của tôi có được tải lên 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, nên văn bản và các thiết lập máy 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ữ dữ liệu của bạn ở phần URL sau dấu thăng, phần mà trình duyệt không bao giờ gửi tới máy chủ, nên nó vẫn riêng tư cho đến khi bạn chọn chia sẻ.

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ã Caesar

Mật mã Vigenère

Mật mã Atbash

Mật mã Rail Fence

Mật mã Playfair

Mật mã Affine