BÁO CÁO MẬT MÃ VÀ AN TOÀN DỮ LIỆU Thuật toán SolowayStrassen Thuật toán Soloway Strassen Ví dụ minh hoạ Xác suất sai của thuật toán Demo chương trình kiểm tra số nguyên tố lớn Định nghĩa thặng dư bậc hai Kí hiệu Legendre Kí hiệu Jacobi Tính chất của kí hiệu Jacobi Thuật toán SolowayStrassen
MẬT MÃ VÀ AN TOÀN DỮ LIỆU Thuật toán Soloway-Strassen Giảng viên: PGS.TS Trịnh Nhật Tiến Trình bày: Nguyễn Thị Dung 1 Các nội dung chính Thuật toán Soloway - Strassen Ví dụ minh hoạ Xác suất sai của thuật toán Demo chương trình kiểm tra số nguyên tố lớn 2 Thuật toán Soloway-Strassen Định nghĩa thặng dư bậc hai Kí hiệu Legendre Kí hiệu Jacobi Tính chất của kí hiệu Jacobi Thuật toán Soloway-Strassen 3 Thặng dư bậc hai Thặng dư bậc hai mod n là a* thỏa mãn =a mod n có nghiệm x * Ngược lại thì không thặng dư Ví dụ: 4 là thặng dư bậc hai mod 5 vì 4= 3 không là thặng dư bậc hai mod 5 vì không có số nguyên nào trong tập hợp {0, 1, 2, 3, 4} bình phương bằng 3 mod 5. 4 Ký hiệu Legendre Ký hiệu Legendre với a p là số nguyên tố = KíhiệuLagrăngđượcsửdụngtrongtiêuchuẩnEuler doEulerchứngminh: = a (p-1)/2 (mod p) 5 Ký hiệu Jacobi Định nghĩa: với n 1 lẻ và mọi số nguyên a 0. Giả sử n = p1e1 p2e2 p3e3 … pkek, Với p1, p2, , pk là các số nguyên tố Ký hiệu Jacobi được định nghĩa như sau: = Khi n = p là số nguyên tố thì giá trị của ký hiệu Legendre và Jacobi là như nhau. 6 Tính chất của kí hiệuJacobi (i)=0, 1, hoặc -1. Hơn nữa, =0 nếu và chỉ nếu gcd(a, n) != 1 (ii) = (iii) = (iv) Nếu a=b mod n thì = (v) =1 (vi) = = (vii) = = (viii)= 7 Thuật toán Soloway-Strassen INPUT: n: là số tự nhiên lẻ OUTPUT: FALSE nếu n là hợp số TRUE nếu n không là hợp số Các bước thực hiện: Chọn a ngẫu nhiên trong khoảng[1,n-1] Tính ký hiệu Jacobi J=(a/n) Tính x =a (n-1)/2 mod n Nếu J ≠ x thì trả về FALSE Nếu khác trả về TRUE. 8 Thuật toán Soloway-Strassen 9 Thời gian thực hiện thuật toán Thực hiện với hai phép tính chính: a(n-1)/2 mod n và (a/n) Phép tính a(n-1)/2 mod n thực hiện trong thời gian O(logn). Phép tính (a/n) thực hiện trong thời gian O(log2 n). Solovay-Strassen thực hiện thuật toán k lần -> thời gian thực hiện thuật toán là O(k. log2 n). 10 [...]... Tính toán: a(n-1)/2 mod n = 47110 mod 221 = -1 mod 221 (a/n) mod n = (47/221) mod 221 = -1 mod 221 hoặc 221 là số nguyên tố, hoặc 47 là một số nguyên tố giả Euler đối với 221 Chọn ngẫu nhiên một số a = 2 Tính toán: a(n-1)/2 mod n = 2110 mod 221 = 30 mod 221 (a/n)mod n = (2/221) mod 221 = -1 mod 221 221 là hợp số Xác suất sai Gọi A là biến cố: "Số nguyên lẻ n là hợp số"; B là biến cố: "Thuật. .. (a/n)mod n = (2/221) mod 221 = -1 mod 221 221 là hợp số Xác suất sai Gọi A là biến cố: "Số nguyên lẻ n là hợp số"; B là biến cố: "Thuật toán Soloway-Strassen trả lời TRUE" Xác suất điều kiện P(B|A) Sau k lần lặp thì xác suất sai : Giao diện phần mềm Input loop: tùy chọn số lần lặp Number To Check: nhập số tự nhiên cần kiểm tra Thanks for your listening!