Sunday, October 27, 2013

Mật mã – thật là đơn giản! (2)

* Phần 1: Mật mã – thật là đơn giản! (1)
* Phần 3: Mật mã – thật là đơn giản! (3)

Thế kỷ 20 đánh dấu nhiều tiến bộ nhanh chóng của khoa học mật mã. Bắt đầu từ những năm 20, khi người Đức phát minh ra máy Enigma, công cụ mã hóa điện cơ lừng danh và được thương mại hóa đến công chúng. Rồi máy tính điện tử ra đời, người ta liền nghĩ đến việc ứng dụng chúng cho nhiệm vụ mã hóa và giải mã. Do cuộc xâm lăng của máy tính vào lĩnh vực này mà giờ đây người ta chuyển sang đo lường độ phức tạp của mã theo đơn vị bit. Chìa khóa càng dài (càng lắm bit) thì được coi là càng an toàn.
 

 Các phương pháp mã hóa truyền thống, tính đến giữa thế kỷ 20, vẫn dựa trên nguyên tắc cơ bản dùng cùng một chìa khóa để mã hóa và giải mã – mà về sau được xếp vào loại mã đối xứng. Mã chuyển vị mà chúng tôi nhắc đến ở phần 1 chính là dạng đối xứng đơn giản, ánh xạ 1-1 của hai chữ cái. Nguyên lý chung của mã đối xứng bắt buộc người giải mã phải biết chìa khóa mã. Khi đã biết chìa thì việc mã hóa và giải mã rất nhanh chóng, không đòi hỏi tính toán phức tạp.

Hiểu một cách đơn giản, thì mã đối xứng giống như khóa đúc đồng, ưu điểm là rẻ tiền, bền chắc, khóa và mở nhanh, nhưng phải chuyển chìa khóa cho người nhận thì họ mới mở được. Mà chìa thì bọn trộm cứ nhăm nhăm chờ bạn hở ra là cướp. Nếu chỉ có 2 người dùng chung thì còn dễ trao đổi, nếu hàng ngàn người dùng thì mỗi lần đổi khóa bạn lại phải gửi lại chìa mới cho người ta. Nếu số người dùng vượt quá mức tới hạn, đơn giản là bạn không thể phân phối chìa khóa nữa vì chi phí quá đắt đỏ.

Đến khoảng những năm 70, vài chuyên gia đã sáng chế ra một phương pháp mã mới, gọi là mã bất đối xứng. Điểm khác biệt so với mã truyền thống ở chỗ, giờ đây chìa khóa mã tách thành 2 chìa khác nhau, gọi là chìa khóa "mở" và chìa khóa "đóng". Thực ra, tên gọi này chỉ có tính ước lệ, nếu khóa bằng chìa này thì mở bằng chìa kia và ngược lại. Song vì bạn phải công bố một chìa, nên quy ước gọi nó là chìa để "đóng" còn cái kia là chìa để "mở".

Mã này giống như bán sẵn những cái hộp inox rất đẹp, có tên người nhận và dán chìa khóa "đóng" sẵn trên đó. Bạn muốn gửi cho ai chỉ việc cho đồ vào hộp, lấy chìa khóa khóa lại. Về sau người nhận dùng chìa "mở" của riêng họ để lấy đồ ra. Ưu điểm là chìa để mở luôn luôn ở nhà người nhận, không lo bị trộm, nhưng hộp này rất chậm, đóng hộp và mở hộp lâu lắc mệt mỏi. Tùy máy tính mạnh hay yếu, nhưng mở một cái hộp to có thể mất đến một vài ngày!

Thế thì bây giờ nên ứng dụng mã nào trong thực tế? Mã đối xứng hơn hay mã bất đối xứng tốt hơn? Làm sao vẫn bảo vệ được thông tin mà không phải sắm cho mỗi người một cái super-computer đời mới? Nếu chỉ huy ra lệnh "Hai giờ nữa tấn công!" mà lại giải mã đến sáng mai, thì "các thế lực phản động" nó đập chết mình (có khi cả phụ huynh mình nữa) rồi còn gì ...

(Còn tiếp)



Viết dựa theo các tài liệu từ Simon Singh – The Code Book, Wikipedia.org, nsa.gov, awesomestories.com và các trang Web khác. Biên tập và hiệu đính: oaht vu.

No comments:

Post a Comment