Saturday, November 16, 2013

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


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




Câu trả lời là kết hợp cả hai mã với nhau!

Giống như bạn cần gửi một vạn quả táo sang cho trẻ em châu Phi, làm sao chúng không bị ăn trộm dọc đường. Bạn có thể mua 1 vạn cái hộp inox, đóng mỗi hộp một quả. Đảm bảo là chỉ có người nhận bên châu Phi mở được bằng chìa của họ, nhưng công sức đóng hộp và mở hộp thì toát mồ hôi. Thay vào đó, ta cho tất cả táo vào một container, khóa lại bằng khóa đúc đồng, gửi theo đường biển. Chìa khóa đồng này gửi riêng bằng hộp inox của người nhận. Thay vì phải mở nhiều hộp, người nhận mở một hộp lấy chìa khóa container, rồi mở container, thế là có cả đống táo ngay lập tức.

Về mặt bảo vệ thì coi như tạm được. Nhưng người nhận làm sao biết ai là người gửi táo? Nhỡ mụ phù thủy đã tẩm độc cho táo trong lúc đi đường thì sao? Ăn vào liệu có bị lùn tịt đi như bảy chú gì đấy không?

Nếu bạn chỉ gửi đi một quả táo, thì có một cách đơn giản để người ta nhận ra bạn, gọi là kiểu "hộp khóa kép". Bạn cần có 2 cái hộp, một của bạn và một của người nhận. Cho táo vào hộp của bạn (của chính bạn!), lấy chìa khóa "mở" của bạn khóa nó lại, rồi cho vào một hộp khác, khóa bằng chìa "đóng" của người nhận. Người nhận đầu tiên mở hộp ngoài bằng chìa của họ bình thường, sau đó mở hộp trong bằng chìa khóa "đóng" của bạn (nó dán sẵn trên hộp mà – bạn nhớ không). Bằng cách đó, người ta biết rằng quả táo này đúng của bạn gửi, vì chỉ bạn mới có thể khóa hộp theo cách ngược như thế.

Nhưng lần này, lô hàng của ta là một vạn quả táo thì làm sao? Chả lẽ lại phải dùng 2 vạn cái hộp, chỉ để người nhận biết bạn là người gửi hay sao? Có cách nào tốt hơn không? Nói cách khác, có cách nào triển khai một chữ ký số nhỏ gọn thuận tiện không?

Câu trả lời là có. Người ta sử dụng đến một thuật toán đặc biệt, gọi là thuật hash. Về cơ bản, nó là một kiểu ép táo lấy nước. Bình thường thì ép xong ta có nước và bã táo. Nhưng với đám táo digital của tôi, thì ép nước xong táo vẫn nguyên là táo, thế mới tài. Vài điều đặc biệt ở cốc nước táo này: cách thức ép táo được công bố công khai, dễ thực hiện, dù có bao nhiêu táo (một miếng táo hay nguyên cả một trang trại táo) thì cũng vẫn ép ra được đúng một cốc nước, không có 2 lô táo nào ép ra 2 cốc nước giống nhau về hương vị, và từ nước táo không thể biết được lô táo ban đầu như thế nào.

Người ta lợi dụng tính chất này để làm chữ ký số. Bạn nhận được một lô táo cùng với cốc nước của người gửi ép ra. Bạn ép lại lô táo một lần nữa và so với nước nhận được. Nếu chúng giống nhau có nghĩa là lô táo còn nguyên như lúc gửi. Nếu chỉ một quả bị mất, đảm bảo là nước ép của bạn sẽ có mùi vị hoàn toàn khác với nước ép gửi đi.

Sau khi có được nước táo ép rồi thì mọi việc trở nên đơn giản. Bạn chỉ việc cho táo vào container, khóa lại bằng khóa đúc đồng. Nước táo ép và chìa khóa đồng được gửi đi bằng "hộp khóa kép". Người nhận ngoài việc mở hộp kép như trên, còn thêm việc đi ép lại nước táo để đối chiếu. Song việc này rất nhanh chóng, không cần máy tính mạnh. Giờ đây họ biết táo đích xác của bạn gửi đi, giữa đường không bị thay đổi, khả năng bị đọc trộm hầu như không có.

Bạn muốn biết ai là người cung cấp hộp & container, quản lý các thể loại khóa và chìa, cho mượn máy ép và nếm thử nước táo cho bạn không? Xin thưa là có một người như vậy, tên là Phil Zimmermann. Ông là tác giả phần mềm mã hóa nổi tiếng thế giới: Pretty Good Privacy, hay PGP. Nó làm đúng những việc như bạn vừa đọc và hơn thế nữa, ví dụ như không cho phép ai dán đè chìa khóa lên một hộp có nhãn tên, để lừa mở trộm hộp của người khác. Điều mà tôi thích nhất ở phần mềm này, là nó hoàn toàn miễn phí! Bạn có thể tải thẳng xuống từ Internet để dùng mà không phải trả một xu nào.

Trong lúc bạn đăng nhập vào một trang Web, kiểm tra tài khoản ngân hàng của bạn hay mua bán đồ trên eBay, chắc chắn bạn đang dùng đến tổ hợp mã đối xứng và bất đối xứng. Nhờ chúng mà bạn có thể rút tiền ở máy ATM lúc nào tùy thích, không phải đến tận ngân hàng xuất trình giấy tờ. Những phát minh của các nhà toán học lỗi lạc trên thế giới đang hàng ngày làm cho cuộc sống của bạn trở nên dễ chịu và an toàn hơn
ví dụ thuật toán xử lý hình ảnh cho phép máy CT / MRI chụp cắt lớp bạn để bác sĩ chẩn bệnh, mà không phải thật sự cắt rời bạn ra.

Tôi hy vọng ngày nào đó bạn sẽ giúp họ một tay – suy cho cùng, cũng cần có người đẩy xe lăn cho mấy ông già đeo huy chương Field đó chứ!!!

(Hết)


* * * Dành cho các độc giả muốn đọc thêm về mã hóa: Hiện nay thuật toán mã bất đối xứng thế hệ 1 dựa trên phân tích ra thừa số nguyên tố (ví dụ RSA và Diffie-Hellman) đang mất dần vị thế do các thuật toán tấn công đã hoàn thiện hơn. Người ta cho rằng thuật toán thế hệ 2 dựa trên đường cong elip (mã hóa ECC) có hiệu năng tốt hơn và độ an toàn cao hơn. Ví dụ mã đối xứng 256 bits mạnh tương đương với ECC 521 bits, và xấp xỉ như RSA 15,360 bits, xem ở link này

No comments:

Post a Comment