Kiến thức cơ bản về phép modulo
Phép modulo (a mod m) là phần dư khi a được chia cho m. Ví dụ: 17 mod 5 = 2. Được dùng hằng ngày trong tính toán đồng hồ (24 giờ), tính thứ trong tuần. Rất quan trọng trong lập trình để quấn chỉ số mảng, hàm băm.
Cộng, trừ, nhân, lũy thừa, nghịch đảo modulo. Tìm hiểu các phép toán mô-đun dùng trong mật mã RSA.
Phép modulo (a mod m) là phần dư khi a được chia cho m. Ví dụ: 17 mod 5 = 2. Được dùng hằng ngày trong tính toán đồng hồ (24 giờ), tính thứ trong tuần. Rất quan trọng trong lập trình để quấn chỉ số mảng, hàm băm.
Cộng modulo: (a + b) mod m. Nhân modulo: (a × b) mod m. Để tránh tràn số khi tính với số lớn, hãy lấy modulo ở mỗi bước. Ví dụ: (12 + 8) mod 5 = 20 mod 5 = 0.
Khi tính a^b mod m, phép lũy thừa trực tiếp làm số trở nên quá lớn. Dùng thuật toán lũy thừa nhanh chia để trị giúp tính trong thời gian O(log b). Đây là phép toán cốt lõi của mã hóa RSA.
Nghịch đảo modulo là x sao cho (a × x) mod m = 1. Chỉ tồn tại khi a và m nguyên tố cùng nhau. Được tính trong thời gian O(log m) bằng thuật toán Euclid mở rộng. Dùng trong giải mã, tính toán phân số.
RSA là hệ mật mã khóa công khai dựa trên lũy thừa modulo và nghịch đảo. Mã hóa: c = m^e mod n, Giải mã: m = c^d mod n. Dựa vào độ khó phân tích n, tích của hai số nguyên tố lớn.