Toán ứng dụng và Tính toán
Mật mã học
Dùng lý thuyết số và đại số để bảo mật thông tin, từ RSA đến các sơ đồ mã hóa hiện đại.
Trực giácKhoá một thông điệp sao cho chỉ đúng người mới mở được
Hãy tưởng tượng một ổ khoá mà bất kỳ ai cũng có thể khoá lại, nhưng chỉ một chiếc chìa khoá duy nhất mới mở được. Nếu mọi người đều công khai ổ khoá của mình (nhưng giữ bí mật chìa khoá), thì bất kỳ ai cũng có thể khoá một thông điệp gửi cho bạn, nhưng chỉ bạn mới đọc lại được — không cần gặp trước, không cần ám hiệu bí mật. Đây là ý tưởng cốt lõi của mật mã khoá công khai: phép "khoá" dễ tính theo một chiều, và nếu không có chìa khoá bí mật thì về mặt tính toán là bất khả thi để đảo ngược, dù thiết kế ổ khoá là công khai.
Phổ thôngSố học modulo: viên gạch nền tảng
Định nghĩa: Đồng dư và luỹ thừa modulo
Hai số nguyên và đồng dư theo modulo , viết là , khi : hiệu của chúng là bội đúng của . Luỹ thừa modulo là phép nhân lặp lại một cơ số với chính nó theo modulo , chính là phép toán mà các sơ đồ mật mã như RSA và Diffie-Hellman được xây dựng trên đó, vì nó tính xuôi nhanh nhưng đảo ngược lại khó.
Ở đây nghĩa là chia hết , nên thực chất là một phát biểu về số dư: và có cùng số dư khi chia cho . Định lý Euler dưới đây mở rộng định lý nhỏ Fermat và là động cơ giải thích vì sao giải mã RSA khôi phục lại đúng thông điệp gốc.
| Sơ đồ | Bài toán khó nó dựa vào | Kích thước khoá điển hình (2026) |
|---|---|---|
| RSA | Phân tích thành thừa số nguyên tố | 2048-4096 bit |
| Diffie-Hellman | Logarit rời rạc theo modulo số nguyên tố | 2048-3072 bit |
| Mật mã đường cong elliptic (ECC) | Logarit rời rạc trên nhóm đường cong elliptic | 256-384 bit |
Đại họcVì sao RSA hoạt động, và Diffie-Hellman tạo bí mật chung như thế nào
Cho là tích của hai số nguyên tố phân biệt, và cho và thoả mãn . Khi đó với mọi thông điệp với , mã hoá bằng rồi giải mã bằng sẽ khôi phục đúng thông điệp gốc: .
Vì sao đúng?
Đây là định lý khiến RSA thực sự dùng được: nó đảm bảo rằng bất kể người gửi mã hoá gì bằng số mũ công khai, người giữ số mũ bí mật luôn giải mã được, với mọi thông điệp có thể, không chỉ hầu hết — chứng minh phải xử lý trường hợp biên khi một thông điệp vô tình có chung thừa số với modulo.
Chứng minh
Vì , theo định nghĩa đồng dư modulo tồn tại một số nguyên không âm với .
Trường hợp 1: . Định lý Euler cho , nên nâng cả hai vế lên luỹ thừa rồi nhân với cho .
Trường hợp 2: . Vì , điều này nghĩa là chia hết hoặc chia hết (không thể cả hai, vì nhỏ hơn ). Xét theo modulo : nếu chia hết thì cả và đều đồng dư theo modulo ; nếu không thì và định lý nhỏ Fermat cho , và vì chia hết nên cùng tính toán như Trường hợp 1 cho . Lập luận giống hệt theo modulo cho .
Theo định lý số dư Trung Hoa, một đồng dư đúng theo modulo và theo modulo riêng biệt thì cũng đúng theo modulo tích của chúng , nên đúng với mọi thông điệp , không chỉ những thông điệp nguyên tố cùng nhau với .
Cố định một số nguyên tố và một cơ số . Nếu Alice chọn bí mật và gửi , còn Bob chọn bí mật và gửi , thì việc tính và đều cho cùng giá trị , dù lẫn chưa từng được truyền đi.
Vì sao đúng?
Đây là điều cho phép hai bên thoả thuận một khoá bí mật qua một kênh công khai mà kẻ nghe lén đang theo dõi: kẻ nghe lén thấy cơ số, modulo, và cả hai giá trị công khai, nhưng để khôi phục bí mật chung từ những thứ đó cần giải một bài toán logarit rời rạc, được tin là khó về mặt tính toán với các tham số được chọn tốt.
Chứng minh
Theo định nghĩa, và là kết quả của luỹ thừa modulo, nên Bob nhận được và tính , trong khi Alice nhận được và tính .
Luỹ thừa modulo tuân theo cùng quy tắc số mũ như luỹ thừa thông thường, vì phép nhân lặp lại theo modulo kết hợp giống hệt phép nhân lặp lại các số nguyên, chỉ khác là được rút gọn theo modulo ở mỗi bước: xét như số mũ của , và đẳng thức này vẫn đúng sau khi rút gọn theo modulo ở mọi giai đoạn.
Do đó : Alice và Bob độc lập tính ra cùng một giá trị từ số mũ bí mật của riêng mình và giá trị công khai của phía kia, mà không bao giờ bí mật hay xuất hiện trên kênh.
Lập luận về an toàn tách biệt với lập luận về tính đúng đắn này: tính đúng đắn chỉ cho thấy cả hai bên đi đến cùng một số; độ khó của việc tính từ , , và (bài toán logarit rời rạc) mới là điều giữ bí mật số chung đó khỏi người quan sát.
Đại họcỨng dụng thực tiễn và Ví dụ minh họa
Mọi kết nối HTTPS, ứng dụng nhắn tin bảo mật, và ví tiền mã hoá đều dựa vào các định lý ở trên: bắt tay TLS dùng Diffie-Hellman (hoặc biến thể đường cong elliptic) để thoả thuận khoá phiên, hệ thống ngân hàng và cập nhật phần mềm dùng chữ ký RSA hoặc ECDSA để đảm bảo tính xác thực, và ví blockchain dùng logarit rời rạc trên đường cong elliptic để khiến việc suy ra khoá riêng từ địa chỉ công khai là bất khả thi về mặt tính toán. Hai ví dụ dưới đây thực hiện RSA và Diffie-Hellman bằng tay trên các số nhỏ để mọi bước đều kiểm tra được.
Ví dụ: RSA thực hiện bằng tay với số nguyên tố nhỏ
Dùng các số nguyên tố và , với số mũ công khai và thông điệp , tìm bản mã và kiểm tra rằng giải mã khôi phục lại đúng thông điệp.
Lời giải
Bước 1: Tính modulo và .
Bước 2: Kiểm tra , nên là số mũ công khai hợp lệ.
Bước 3: Tìm số mũ bí mật với . Thử cho , nên thoả mãn.
Bước 4: Mã hoá : bản mã là .
Bước 5: Giải mã bằng cách tính . Dùng bình phương lặp theo modulo 55: , , , . Vì , nhân , rút gọn từng bước cho .
Bước 6: Giá trị giải mã được là , đúng bằng thông điệp gốc, xác nhận định lý về tính đúng đắn của RSA trên thể hiện cụ thể này.
Ví dụ: Trao đổi khoá Diffie-Hellman thực hiện bằng tay
Với số nguyên tố và cơ số , Alice chọn bí mật và Bob chọn bí mật . Tính bí mật chung theo cả hai cách và kiểm tra chúng khớp nhau.
Lời giải
Bước 1: Alice tính . Tính dần luỹ thừa của 5 theo modulo 23: , , , , . Vậy .
Bước 2: Bob tính . Dùng ở trên, , và . Vậy .
Bước 3: Alice tính bí mật chung là . Vì , , và , nên giá trị này bằng .
Bước 4: Bob tính bí mật chung là . Viết cho ; vì (kiểm tra trực tiếp: ), và , nên giá trị này rút gọn còn .
Bước 5: Cả hai phép tính đều cho , xác nhận Alice và Bob thống nhất cùng một bí mật chung mà không bao giờ truyền hay qua kênh.
Trong RSA với , , và số mũ công khai , giá trị nào của thoả mãn ?
Sự an toàn của trao đổi khoá Diffie-Hellman dựa trên bài toán tính toán nền tảng nào?
Nếu , định lý Euler phát biểu rằng trong đó đếm điều nào sau đây?
Một ngân hàng muốn ký các bản cập nhật phần mềm để khách hàng có thể xác minh chúng thực sự đến từ ngân hàng và không bị can thiệp. Công cụ mật mã nào trực tiếp cung cấp bảo đảm này?
Tài liệu tham khảo
- Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone (1996). Handbook of Applied Cryptography
- Peter W. Shor (1994). Algorithms for Quantum Computation: Discrete Logarithms and Factoring · arXiv:quant-ph/9508027
- National Institute of Standards and Technology (2024). Module-Lattice-Based Key-Encapsulation Mechanism Standard (FIPS 203)