Crypto #6: Enigma
Trước khi đi vào cuộc chiến tiếp theo của giới mật mã trong chiến tranh thế giới thứ hai, mà tiêu biểu là cuộc chiến giữa Bletchley Park và máy Enigma, tôi muốn giới thiệu đến các bác về cấu tạo của cỗ mã hóa thần kì này, cũng như tại sao nó có thể tạo những bản mã phức tạp đến như vậy. Bác AnDanh cũng đã có một bài về Enigma nên tôi hy vọng bài này sẽ khiến các bác dễ hiểu hơn.
Tiền thân của cơ khí hóa mật mã
Máy mã hóa đầu tiên trên thế giới là một chiếc đĩa mã hóa, được phát minh vào thế kỉ 15 bởi Leon Alberti. Ông đặt 2 chiếc đĩa bằng đồng, một cái lớn hơn một chút và khắc 26 chữ cái ở viền mỗi đĩa. Bằng cách đặt đĩa nhỏ trên đĩa lớn và cố định tâm bằng 1 cái kim, hai chiếc đĩa có thể quay một cách độc lập và 2 bảng chữ cái sẽ có vị trí tương đối khác nhau. Nhờ vậy, người mã hóa có thể sử dụng mật mã Ceaser hoặc Vigenère một cách dễ dàng hơn và ít bị sai sót hơn. Đĩa mã hóa có thể được coi là một máy mã, lấy mỗi chữ cái thường rồi biến đổi nó thành thứ gì đó khác.
Một phiên bản được sử dụng trong nội chiến Mỹ
Đặc điểm của đĩa mã hóa chẳng qua chỉ là phiên bản cơ khí hóa của Vigenère và độ phức tạp của nó không tăng lên, việc giải mã cũng không thành vấn đề và phát minh cũng chỉ được coi như là một dụng cụ tiện lợi. Tuy nhiên, 500 năm sau Alberti, một phiên bản phức tạp hơn đã làm sống dậy phát minh đĩa mã hóa, một cỗ máy mang lại một thế hệ mật mã mới, thuộc hạng tầm cỡ khó hóa giải hơn bất kì loại mật mã nào trước đây.
Enigma ra đời
Năm 1918, nhà phát minh người Đức Arthur Scherbius đã phát minh ra một dạng máy mã hóa mà thực ra là đĩa mã hóa của Alberti thế hệ điện tử. Được gọi là Enigma, hệ thống của Scherbius là một trong những hệ thống cung cấp cơ chế mã hóa đáng sợ nhất trong lịch sử.
Arthur Scherbius
Khi cho ra lò sản phẩm, Scherbius tin rằng cỗ máy của ông sẽ không thể bị đánh bại và sức mạnh của nó sẽ tạo ra sức tiêu thụ rất lớn. Tuy nhiên vấn đề là giá cả lại quá đắt đỏ (30.000 đôla mức giá hiện thời/ cỗ máy) đã làm e ngại nhiều khách hàng tiềm năng. Giới kinh doanh cho rằng họ không có đủ tiền bạc để trang trải cho sự an toàn, nhưng Scherbius thì cho rằng sự nghèo nàn của họ lại bắt đầu từ việc không có cỗ máy, việc để lộ thông tin cho đối thủ có thể làm cho bất kỳ doanh nhân nào khuynh gia bại sản.
May mắn thay, vào năm 1925, giới quân sự Đức đã quan tâm đến chiếc máy và cho rằng máy Enigma là lựa chọn tốt nhất để bảo toàn thông tin liên lạc. Scherbius nhận được đơn hàng khổng lồ và cho sản xuất hàng loạt. Trong hai thập kỷ sau đó, quân đội Đức đã mua 30.000 máy. Phát minh của Scherbius là trái tim cho chiến thuật tấn công chớp nhoáng (blitzkrieg) của Hitler và cuối cùng nó lại góp phần vào sự sụp đổ của Đế chế. Tuy nhiên Scherbius đã sống không đủ lâu để nhìn thấy sự thành công lẫn thất bại của mình. Ông mất năm 1929 do đâm vào tường khi lái xe ngựa và qua đời ngày 13 tháng 5 do bị nội thương.
Cấu tạo Enigma
Máy Enigma có chứa nhiều bộ phận tinh vi và phức tạp. Tuy nhiên nếu chúng ta tháo tung các bộ phận ra rồi lắp ráp lại thì nguyên lý hoạt động của nó rất dễ hiểu. Chúng ta sẽ đơn giản hóa hệ thống bằng việc chỉ xét việc mã hóa chỉ gồm 6 chữ cái a, b, c, d, e, f.
Bộ phận đầu tiên là bàn phím, được người mã hóa gõ vào, khi một phím bất kì được gõ thì sẽ có tín hiệu điện đi tới các bộ phận mã hóa rồi cuối cùng làm sáng đèn tại một bóng đèn nào đó ở bản hiển thị.
Bàn phím ở dưới và bàn hiển thị phía trên
Tiếp theo là bàn hiển thị, chứa 26 bóng đèn, mỗi bóng đèn tương ứng với một chữ cái để hiện thị chữ cái mã hóa.
Bộ phận quan trọng nhất đó là đĩa mã hóa, là một chiếc đĩa cao su dày, chằng chịt bên trong là các dây dẫn. Từ bàn phím, các dây dẫn đi vào đĩa, sau đó qua một loạt uốn lượn rắc rối trước khi đi tới 1 trong 26 điểm đầu ra. Việc nối dây như thế nào sẽ quyết định chữ cái thường bị mã hóa như thế đó. Ví dụ như sau:
Ấn phím b sẽ làm sáng đèn chữ A Từ cafe khi đánh vào sẽ được hiển thị là DBCE.
Tuy nhiên, nếu đứng yên thì Enigma không khác gì phiên bản cơ khí hóa của mật mã thay thế dùng một bản chữ cái. Do đó, ý tưởng của Scherbius là để đĩa tự động quay 1/6 vòng (hay 1/26 vòng đối với phiên bản thực) mỗi khi người dùng gõ một phím bất kì.
Lần mã hóa đầu tiên, chưa có gì xảy ra cả, b mã hóa thành A.
Lần mã hóa tiếp theo, đĩa quay 1/6 vòng, b mã hóa thành C
Đĩa tiếp tục quay 1/6 vòng, lúc này b mã hóa thành E
Sự quay của đĩa mã hóa là đặc điểm quan trọng nhất của Enigma. Tuy nhiên, sau một chu kỳ thì điểm yếu hiện ra rõ rệt, chữ b đánh lần 1 và lần 6 sẽ hoàn toàn giống nhau, nếu tiếp tục đánh chữ b thì sẽ đến lúc bản mã vô tình tạo ra hình mẫu mã hóa và đây là một triệu chứng của một loại mật mã yếu mà các nhà tạo mã luôn phải né tránh. Do đó, Scherbius hạn chế điều này bằng cách thêm nhiều đĩa mã hóa hơn.
Cơ chế quay khi có thêm đĩa mã hóa lằng nhằng hơn một chút , nó giống như đồng hồ đo km, khi roto hàng đơn vị quay đến số 9, nó sẽ đẩy roto hàng chục quay đi một vị trí. Hay đối với Enigma, đĩa mã hóa 1 sẽ đẩy đĩa mã hóa 2 một vị trí mỗi khi quay hết một vòng, khi đĩa mã hóa 1 quay hết 36 vòng thì đĩa mã hóa 2 quay hết 1 vòng. Các đĩa mã hóa có thể được sắp xếp tùy ý, do đó mỗi cách sắp xếp cũng tạo ra một cách mã hóa khác.
Trước và sau khi gõ phím, đĩa mã hóa 1 quay nhưng đĩa mã hóa 2 chưa đến lúc phải nhúc nhích
Hãy tưởng tượng các dây dẫn là rắn săn mồi đi xuyên tường thì sẽ dễ hiểu hơn
Chi tiết quan trọng thứ 2 của bộ phận mã hóa đó là đĩa phản xạ, về cấu tạo thì giống y hệt như đĩa mã hóa nhưng lại được đặt cố định và các dây dẫn đi ra lẫn vào đều từ một phía. Thoạt đầu chúng ta tưởng rằng nó chẳng có ích lợi gì cho việc mã hóa vì bản chất cố định của nó. Tuy nhiên, lợi ích sẽ rõ ràng hơn nếu chúng ta đặt mình trong tình huống của người sử dụng.
Chữ b khi đánh vào sẽ hiện thi chữ D, và khi người giải mã có một máy Enigma y hệt đánh vào chữ D thì máy sẽ hiển thị chữ a. Do đó, đĩa phản xạ là chi tiết làm cho mật mã Enigma có tính chất đối xứng.
Để đảm bảo an toàn hơn thì Scherbius đã thêm một chi tiết mã hóa cuối cùng là bảng ổ nối, hoán đổi tín hiệu điện của phím trước khi đi vào bộ phận mã hóa.
Dây nối a và b đã hoán đổi, do đó thực chất b được mã hóa thành C chứ không phải là a.
Ngoài ra còn có một bộ phận nhỏ khác là vòng (ring) nhưng rất ít quan trọng nên tôi không nhắc đến trong phần này.
Người ta sử dụng Enigma như thế nào?
Lưu ý rằng trong phiên bản sử dụng thật thì máy Enigma sẽ bao gồm 3 đĩa mã hóa có 26 cách định hướng quay lên (và sau này là chọn 3 đĩa mã hóa từ 5 đĩa bất kỳ), 6 dây nối và sau nàu là 10 trong bảng ổ nối.
Khi một người muốn gửi các bức thư bí mật, trước đó cả 2 bên phải có một chìa khóa chung, chứa các thông tin gồm: cài đặt bảng ổ nối, sắp xếp đĩa mã hóa và định hướng của các đĩa.
Ví dụ:
(1) Cài đặt bảng ổ nối: A/L - Q/W - F/D - Z/X - T/U - O/P
(2) Sắp xếp các đĩa mã hóa: 2 - 5 - 1
(3) Đính hướng đĩa mã hóa: Q - E - V
Cả 2 bên sẽ cài đặt máy của mình đồng bộ như sau:
(1) Nối lỗ A với L để hoán đổi chúng với nhau, và tương tự với 5 dây còn lại
(2) Đặt đĩa mã hóa số 2 ở khe thứ 1, thứ 5 ở khe thứ 2 và 1 ở khe thứ 3
(3) Định hướng đĩa mã hóa: mỗi đĩa mã hóa có khắc chữ ở vành, người điều khiển sẽ quay đĩa cho đến khi trên khe hiển thị đầu tiên hiển thị Q và tương tự với 2 khe còn lại.
Vấn đề phân phối mật mã cũng có thể xem như là một trở ngại trong việc sử dụng máy. Trong chiến tranh thế giới thứ 2, giới quân đội Đức phải sử dụng sổ mã để phân phối chìa khóa, mỗi ngày dùng một khóa khác nhau và gửi sổ mới 4 tuần một lần. Việc phân phối sổ thường mất thời gian và mất an toàn, do đó đã có vài lần quân Đồng Minh đánh cắp được sổ mã của một số tháng sẽ dùng trong tương lai.
Tại sao Enigma được gọi là mật mã không thể bị phá hủy?
Những chi tiết trong bộ phận mã hóa làm số khóa mã tiềm năng tăng lên khổng lồ. Chúng ta có thể tính sơ như sau:
(1) Mỗi đĩa có thể được đặt 26 cách. Như vậy 3 đĩa sẽ có 26 x 26 x 26 = 17.576 cách cài đặt
(2) Có 6 cách sắp xếp 3 đĩa mã hóa
(3) Số cách nối dây khổng lồ ở bảng ô nối.
Nói chung khi nhân tất cả kết quả với nhau ta sẽ có 10.000 triệu triệu khóa mã tiềm năng. Cho đến năm 1939, người Đức tăng thêm 2 đĩa mã hóa nữa và tăng số dây nối lên 10 làm số mã khóa tiềm năng lên đến 159 triệu triệu triệu. Dĩ nhiên là nếu thử hết số khóa này thì toàn bộ nhân loại sẽ phải làm việc cật lực 24/7 trong thời gian suốt hàng triệu năm. Chưa nói gì đến một nhúm người tham gia thử khóa thực sự. Do đó, việc giải mã thoạt đầu được nhận định là không khả thi, lời nguyền về Enigma là không thể nào bị giải đươc cũng ra đời. Tuy nhiên Bletchley Park - Alan Turing đã phá bỏ lời nguyền đó theo cách mà quân Đức không thể nào tưởng tượng nổi.
Kết thúc bài 6, bài viết tham khảo cuốn sách Mật mã từ cổ điển đến lượng tử (Simon Singh).
Bài viết gốc: Spiderum
Tác giả
Vũ Tuấn Hải - Monadotory