Hôm nay tôi trở lại với seri mật mã học, chúng ta sẽ tiếp tục đánh giá nghiêm túc những gì đã được giới thiệu.

Chúng ta đã biết đến Hệ mật mã đối xứng cổ điểnHệ mật mã đối xứng hiện đại nhìn chung, ưu điểm của hai hệ mật mã này là quá trình mã hóa, giải mã rất nhanh (thực hiện trên máy tính nhanh). Nhưng hệ mã khóa đối xứng có một nhược điểm chết người về mặt logic.

Đặc điểm quan trọng nhất của hệ mật mã khóa bí mật (hệ mật mã đối xứng) là gì nào?

.

.

.

Đấy là việc mã hóa và giải mã sử dụng chung một khóa vậy, vấn đề ở đâu? Nghĩ xíu đi các bạn.

.

.

.

.

.

+ Làm thế nào để chúng ta phân phối khóa cho nhau? Tôi ở Hà Nội, muốn mã hóa mã số ATM gửi cho mẹ ở Sài Gòn chẳng hạn? Trước đó, cả hai chưa có mật mã, chưa có công cụ mã hóa, chưa thống nhất khóa. Vậy phải làm thế nào? Gửi qua các phương tiện thông tin công cộng dễ dàng bị chặn đứng nguồn tin, nếu gửi khóa qua đó thì mất luôn khóa, nếu dùng một hệ mật mã khóa đối xứng khác mã hóa cái khóa, thế làm thế nào để trao đổi cái khóa của hệ đối xứng đó? Nếu tôi bay vào hoặc mẹ tôi bay ra, trao đổi khóa, thì thôi, tôi đưa tiền mặt cho nhanh chứ cần gì mật khẩu ATM nữa. Nhỉ?

+ Điểm yếu số 2, giả sử một lớp 40 người, dùng một hệ mật mã khóa bí mật để trao đổi thông tin. Việc dùng chung 1 khóa cho cả 40 người rõ ràng không an toàn, cơ hội để phá mã trở nên cao hơn (do cùng 1 khóa, số lượng văn bản có khả năng bị đánh cắp cao hơn). Vậy là 1 người sẽ phải giữ 39 khóa ứng với từng người còn lại. Số lượng khóa quá cồng kềnh, tưởng tượng giữ 39 cái bảng hoán vị, mỗi bảng 14-15 phần tử chắc cũng điên luôn =))).

=> Để giải quyết các vấn đề này, hệ mật mã khóa công khai ra đời.


Hệ mã chúng ta đang nghiên cứu có vấn đề chết người như thế, thế tại sao vẫn được sử dụng? Lại còn tiếp tục được nâng cấp cho an toàn hơn? Một cách tự nhiên, ta có thể kết luận hệ mật mã khóa đối xứng có ứng dụng, ứng dụng ở đâu?

.

.

.

Một cách tổng quát thì hệ mã đối xứng được dùng trong trường hợp việc mã hóa và giải mã do cùng một đối tượng thực hiện. Ví dụ: hệ mã hóa trong cây ATM (theo mình biết là sử dụng 3-DES), mã hóa mật khẩu các tài khoản mạng (thường sử dụng hàm băm) v.v....


Ở bài viết tiếp theo, ta sẽ nói cụ thể về hệ mã khóa công khai (khóa bất đối xứng). Nhưng ở đây, ta cần một chút khái niệm toán học. Một số định nghĩa, khái niệm các bạn có thể tự tìm hiểu thêm, nếu viết ở đây thì quá dài.

+ Số nguyên tố: Số chỉ chia hết cho 1 và chính nó.

+ Số nguyên tố lớn: Là số nguyên tố, nhưng rất lớn, lớn đến mức đổi ra số nhị phân ta có một chuỗi 512 số 0, 1.

+ Phép toán đồng dư, tập thặng dư thu gọn:

+ Nhóm và tính chất của nhóm:

+ Bài toán NP-đầy đủ (hoặc bài toán NP-khó): Đây là bài toán đã được chứng minh máy tính điện tử không giải được trong thời gian đa thức. Hiểu nôm na là để giải được bài toán như này, thời gian để giải vượt quá khả năng chờ đợi của con người hoặc khả năng lưu trữ của máy tính. Về mặt mật mã, mất hơn 50 năm để phá mã là vô nghĩa.


Thôi, dừng ở đây, viết về toán nhiều quá các bạn lại sốc. Trước khi kết thúc bài viết, mình xin tặng các bạn một văn bản mã hóa bằng hệ mật mã khóa công khai do chính tay mình code ra. Thanh niên nào giỏi giải mã đi :v.