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
Ví dụ minh họa
Kiểm tra số 221 là số nguyên tố hay không
Chọn ngẫu nhiên một số a = 47. 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)/2modn=2110mod221=30mod221
(a/n)modn=(2/221)mod221=-1mod221
221 là hợp số
11
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 :
12
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
13
Thanks for your listening!
14