Công Cụ Mô Phỏng Máy Enigma
Thiết lập một Enigma I — ba trong năm rôto, bộ phản xạ B hoặc C, vòng chỉnh, vị trí bắt đầu và tối đa mười dây cắm trên bảng cắm — rồi gõ: các rôto quay, một đèn sáng lên và mọi lần nhấn phím đều được theo dõi. Máy tự nghịch đảo, nên cùng cài đặt sẽ giải mã được.
Tải một ví dụ
Cài đặt máy
Tối đa mười cặp chữ cái, cách nhau bằng dấu cách, chẳng hạn AV BS CG. Một chữ cái chỉ được nằm trong một cặp.
Máy chỉ có 26 phím chữ cái, nên dấu cách, chữ số và dấu câu không được gõ. Người vận hành viết số thành chữ và viết X thay cho dấu chấm câu.
Máy
Cửa sổ rôto
Trái
Cửa sổ Trái hiện A
I
Giữa
Cửa sổ Giữa hiện A
II
Phải
Cửa sổ Phải hiện F
III
Sau lần nhấn phím cuối cùng. Mỗi lần nhấn làm rôto bên phải tiến lên trước khi dòng điện chạy, nên chữ cái đầu tiên được mã hóa sau vị trí bắt đầu một bước.
Bảng đèn
Bàn phím
Đường đi của lần nhấn phím cuối
- PhímA
- Bảng cắmA
- III (Phải)G
- II (Giữa)R
- I (Trái)U
- Bộ phản xạ BC
- I (Trái)Y
- II (Giữa)V
- III (Phải)O
- ĐènO
Qua bảng cắm, các rôto từ phải sang trái, bộ phản xạ, rồi quay lại qua các rôto và bảng cắm đến một đèn.
Kết quả
BDZGO
5 chữ cái đã gõ
Để giải mã, đặt cùng rôto, vòng chỉnh, bảng cắm và vị trí bắt đầu, rồi gõ bản mã — Enigma tự nghịch đảo.
Các lần nhấn phím
| # | Cửa sổ | Phím | Đèn |
|---|---|---|---|
| 1 | AAB | A | B |
| 2 | AAC | A | D |
| 3 | AAD | A | Z |
| 4 | AAE | A | G |
| 5 | AAF | A | O |
Cách Sử Dụng Công Cụ Mô Phỏng Máy Enigma
- 1. Thiết lập máy. Chọn bộ phản xạ, rồi với từng vị trí — trái, giữa, phải — chọn rôto, vòng chỉnh và chữ cái hiện trong cửa sổ khi bắt đầu.
- 2. Cắm bảng cắm. Nhập tối đa mười cặp chữ cái, chẳng hạn AV BS CG; mỗi cặp hoán đổi hai chữ cái khi vào và lại khi ra.
- 3. Gõ thông điệp, trong ô nhập hoặc trên các phím. Máy chỉ có 26 phím chữ cái, nên dấu cách, chữ số và dấu câu bị bỏ qua — người vận hành viết số thành chữ và viết X thay cho dấu chấm câu.
- 4. Quan sát hoạt động. Các cửa sổ hiện rôto sau lần nhấn phím cuối, bảng đèn sáng lên chữ cái vừa mã hóa, còn đường tín hiệu và nhật ký ghi lại từng lần nhấn.
- 5. Giải mã với cùng cài đặt. Đặt cùng rôto, vòng chỉnh, bảng cắm và vị trí bắt đầu, rồi gõ bản mã. Ba ví dụ tải các trường hợp kiểm thử đã được công bố.
Enigma I Hoạt Động Như Thế Nào
Khi nhấn một phím, máy làm hai việc theo thứ tự này. Trước hết các rôto quay: rôto bên phải luôn tiến một vị trí, và một khía trên vòng của nó đẩy rôto giữa tiến thêm một vị trí sau mỗi vòng quay. Sau đó dòng điện đi từ phím qua bảng cắm, qua ba rôto từ phải sang trái, qua bộ phản xạ, rồi qua các rôto lần nữa từ trái sang phải và qua bảng cắm một lần nữa, làm sáng một đèn.
Mỗi rôto là một hoán vị cố định của bảng chữ cái, và việc quay làm nó lệch so với các chữ cái, nên cùng một phím lại làm sáng một đèn khác mỗi lần. Bộ phản xạ ghép các chữ cái thành từng cặp, khiến máy tự nghịch đảo và không chữ cái nào được mã hóa thành chính nó. Với rôto I, II và III, bộ phản xạ B, vòng AAA và vị trí bắt đầu AAA, gõ AAAAA sẽ làm sáng B, D, Z, G và O: đây là phép kiểm tra đầu tiên tiêu chuẩn của mọi trình mô phỏng Enigma.
| Thành phần | Đấu nối từ A → Z | Điểm chuyển | Ra mắt |
|---|---|---|---|
| Rôto I | EKMFLGDQVZNTOWYHXUSPAIBRCJ | Q → R | 1930 |
| Rôto II | AJDKSIRUXBLHWTMCQGZNPYFVOE | E → F | 1930 |
| Rôto III | BDFHJLCPRTXVZNYEIWGAKMUSQO | V → W | 1930 |
| Rôto IV | ESOVPZJAYQUIRHXLNFTGKDCMWB | J → K | Tháng 12 năm 1938 |
| Rôto V | VZBRGITYUPSDNHLXAWMJQOFECK | Z → A | Tháng 12 năm 1938 |
| Bộ phản xạ B | YRUHQSLDPXNGOKMIEBFZCWVJAT | — | Tháng 11 năm 1937 |
| Bộ phản xạ C | FVPJIAOYEDRZXWGCTKUQSBNMHL | — | 1940, trong thời gian ngắn |
Điểm chuyển: khi rôto quay từ chữ cái đầu sang chữ cái thứ hai trong cửa sổ, nó đẩy rôto bên trái tiến thêm một vị trí.
Vòng chỉnh và bước quay kép
Vòng chỉnh (Ringstellung) làm xoay dây nối so với vòng có chữ cái, còn khía vẫn đứng yên theo chữ cái. Với vòng BBB thay vì AAA, cùng năm lần nhấn phím cho ra EWTYX.
Rôto giữa có một đặc điểm nổi tiếng: khi đến đúng điểm chuyển của nó, nó quay thêm một lần ngay ở lần nhấn phím kế tiếp và kéo rôto bên trái đi theo. Bắt đầu từ ADU với rôto I, II và III, các cửa sổ lần lượt hiện ADV, AEW rồi BFX — rôto giữa đi từ D sang E rồi tiếp tục sang F. Tải ví dụ Bước quay kép để xem.
Ví Dụ Minh Họa: Một Thông Điệp Với Vòng Chỉnh và Bảng Cắm
Một thông điệp đầy đủ tải ví dụ minh họa trong bài viết về Enigma trên Wikipedia tiếng Đức: bộ phản xạ B, các rôto I IV III, vòng 16 26 08 (P Z H) và các cặp cắm AD CN ET FL GI JV KZ PU QY WX. Người vận hành chọn vị trí bắt đầu QWE, gõ khóa thông điệp RTZ, thấy EWG rồi gửi QWE EWG dưới dạng không mã hóa.
Người nhận đặt QWE, gõ EWG và đọc RTZ từ các đèn. Đặt thành RTZ, bản mã EJZLB SYEQP DWDUE EJJOU PSOFL B… cho ra XAACH ENXAA CHENX ISTGE RETTE T…: Aachen ist gerettet, “Aachen đã được cứu” — với X thay cho dấu cách và dấu chấm câu, tên địa danh được lặp đôi, và CH được viết thành Q, theo quy ước của các thông điệp quân sự Đức.
Phá Mã Enigma: Rejewski, Bletchley Park và Turing
Arthur Scherbius nộp đơn xin bằng sáng chế cho máy rôto năm 1918 và bán chiếc Enigma thương mại đầu tiên năm 1923. Hải quân Đức áp dụng một phiên bản đã cải tiến năm 1926, lục quân bổ sung bảng cắm năm 1928, và Enigma I được đưa vào sử dụng từ năm 1930. Các nhà toán học Ba Lan phá mã trước tiên: khoảng tháng 12 năm 1932, Marian Rejewski thuộc Cục Mật mã Ba Lan đã dùng lý thuyết hoán vị, cùng các khóa theo ngày mà người Pháp thu được từ một điệp viên Đức, Hans-Thilo Schmidt, để tìm ra đấu nối của các rôto. Cùng Jerzy Różycki và Henryk Zygalski, ông chế tạo các tấm Zygalski và máy bomba cơ điện để tìm cài đặt hằng ngày; và vào tháng 7 năm 1939, tại Pyry gần Warsaw, người Ba Lan đã chia sẻ tất cả với các nhà mật mã học Pháp và Anh.
Tại Bletchley Park, Alan Turing thiết kế máy bombe của Anh, máy này thử các cài đặt rôto dựa trên một crib — bản rõ mà các nhà giải mã kỳ vọng có trong thông điệp — và bảng chéo của Gordon Welchman khiến nó hiệu quả hơn nhiều; chiếc bombe đầu tiên được lắp đặt vào tháng 3 năm 1940. Vì không chữ cái nào mã hóa thành chính nó, một từ đoán trước không thể đặt ở vị trí khiến một chữ cái ánh xạ lên chính nó, và điều này giúp xác định vị trí crib. Thông tin tình báo từ Enigma và các mật mã khác, mang mật danh Ultra, là một sự trợ giúp đáng kể cho phe Đồng Minh.
Enigma Có An Toàn Không?
Trên lý thuyết, nó rất mạnh: ba trong năm rôto theo thứ tự, vị trí bắt đầu của chúng và mười cặp bảng cắm cho 158.962.555.217.826.360.000 cài đặt — khoảng 1,6 × 10²⁰, hay 67 bit — chưa kể vòng chỉnh. Nó bị phá vỡ do thiết kế và cách sử dụng: không chữ cái nào thành chính nó, người vận hành gửi các cụm từ có thể đoán trước và, cho đến tháng 5 năm 1940, gõ đôi mỗi khóa thông điệp. Ngày nay, máy tính có thể khôi phục cài đặt Enigma chỉ từ bản mã, nên trình mô phỏng này dành cho việc học tập, không phải để bảo mật.
Câu Hỏi Thường Gặp
- Máy Enigma hoạt động như thế nào?
- Mỗi lần nhấn phím, trước tiên các rôto quay, sau đó dòng điện đi qua bảng cắm, ba rôto, bộ phản xạ, các rôto theo chiều ngược lại và bảng cắm một lần nữa để làm sáng một đèn. Vì các rôto dịch chuyển sau mỗi lần nhấn, mỗi chữ cái được mã hóa bằng một bảng chữ cái khác nhau, nên một chữ cái lặp lại trong thông điệp không lặp lại trong bản mã.
- Bất thường bước quay kép của Enigma là gì?
- Rôto giữa quay hai lần liên tiếp khi nó đến điểm chuyển của chính nó: một lần khi rôto bên phải đẩy nó tới đó, và thêm một lần ở lần nhấn kế tiếp, khi nó kéo rôto bên trái đi theo. Từ ADU với rôto I, II và III, các cửa sổ hiện ADV, AEW, BFX. Nhiều trình mô phỏng làm sai điều này; trình này được kiểm thử đúng theo hành vi đó.
- Vì sao Enigma không thể mã hóa một chữ cái thành chính nó?
- Do bộ phản xạ: nó luôn ghép một chữ cái với một chữ cái khác, nên dòng điện quay lại theo một dây khác và đèn sáng không bao giờ là phím đã nhấn. Điều đó khiến máy tự nghịch đảo, nhưng cũng cho các nhà giải mã biết chỗ một từ đoán trước không thể nằm.
- Làm sao giải mã một thông điệp Enigma?
- Đặt cùng bộ phản xạ, thứ tự rôto, vòng chỉnh, bảng cắm và vị trí bắt đầu mà người gửi đã dùng, rồi gõ bản mã: các đèn sẽ đánh vần bản rõ. Thông điệp thời chiến còn mang một khóa thông điệp đã được mã hóa, nên người nhận trước tiên giải mã khóa đó rồi đặt lại các rôto theo nó.
- Ai đã phá mã Enigma?
- Lần phá mã đầu tiên là của người Ba Lan: Marian Rejewski tái dựng dây đấu của rôto khoảng tháng 12 năm 1932 và cùng Jerzy Różycki và Henryk Zygalski đọc lưu lượng Enigma trong nhiều năm trước chiến tranh. Từ năm 1939, công việc tiếp tục tại Bletchley Park, nơi Alan Turing, Gordon Welchman và hàng ngàn người khác, nhiều người trong số đó là phụ nữ vận hành các máy bombe, đã biến nó thành một hoạt động công nghiệp.