Một số thuật toán sinh số nguyên tố

Một phần của tài liệu Hệ tiêu chuẩn tham số an toàn cho hệ mật RSA và ứng dụng (Trang 26 - 29)

Một bước rất quan trọng trong thuật toán sinh tham số RSA là sinh các số nguyên tố p, q để tạo modulus N. Các số nguyên tố p, q có thể được sinh bởi một thuật toán sinh số nguyên tố xác suất hoặc một thuật toán sinh số

nguyên tố tất định. Trong phần này sẽ giới thiệu lại một số thuật toán sinh số nguyên tố đã được đưa ra trong [18].

Trước hết xét một phương pháp chứng minh tính nguyên tố của một số nguyên N sử dụng phép chia thử. Phương pháp này được thực hiện như sau:

Bước 1: Với tất cả các số nguyên tố p ≤ N1/2

Nếu N mod p = 0 thì kết luận N là hợp số, kết thúc Bước 2: Kết luận N là nguyên tố, kết thúc.

Với các số nguyên nhỏ, phương pháp chia thử mất ít thời gian tính toán hơn các phương pháp kiểm tra khác. Các cài đặt cho việc kiểm tra tính nguyên tố trong tài liệu này có thể định nghĩa một cận cho phép chia thử, L, dưới giá trị này phép chia thử được sử dụng để kiểm tra tính nguyên tố của các số nguyên (có thể lấy L = 232).

1.3.1. Một số phép kiểm tra tính nguyên tố xác suất

Một phương pháp kiểm tra tính nguyên tố xác suất lấy một số nguyên dương lẻ N làm đầu vào và trả về “chấp nhận” hoặc “không chấp nhận”. Nếu

N là hợp số, các phép kiểm tra trong trường hợp này cho đầu ra là “không chấp nhận”, với xác suất sai phụ thuộc vào phép kiểm tra được dùng.

Để giảm thiểu xác suất sai, người ta thường thực hiện nhiều vòng lặp với cùng một đầu vào.

1.3.1.1. Phép kiểm tra tính nguyên tố Miller-Rabin

Với đầu vào một số nguyên N, phép kiểm tra Miller-Rabin bắt đầu với bước khởi tạo như sau:

 Xác định các số nguyên dương ts thoả mãn N – 1 = 2ts với s lẻ Tiếp theo phép kiểm tra Miller-Rabin thực hiện với một hoặc nhiều các vòng lặp của thuật toán dưới đây, với đầu vào là t, sN và đầu ra là “chấp nhận” hoặc “không chấp nhận”. Với mỗi vòng lặp các cơ sở b được chọn khác nhau, 1 < b < N – 1

Thuật toán 1.9 (Thuật toán kiểm tra tính nguyên tố của Miller-Rabin)

Bước 1: Chọn ngẫu nhiên một số nguyên b thoả mãn 1 < b < N – 1

Bước 2: Tính y = bs mod N

Bước 3: Nếu y ≠ 1 và yN – 1 thì thực hiện

a. i = 1

b. Trong khi i < t và y ≠ N – 1 thực hiện

i. y = y2 mod N

ii. Nếu y = 1 thì trả về “không chấp nhận”

iii. i = i + 1

c. Nếu y ≠ N – 1 thì trả về “không chấp nhận” Bước 4: Trả về “chấp nhận”.

Phép kiểm tra chỉ chấp nhận các số mà tất cả các vòng lặp đều chấp nhận. Bởi vậy phép kiểm tra có thể dừng sớm khi một cơ sở không dẫn đến việc chấp nhận.

1.3.1.2. Phép kiểm tra tính nguyên tố Frobenius-Grantham

Phép kiểm tra này sử dụng số học trên vành N[ ]/( ( ))x f x , với f(x) là một đa thức bậc 2. Phép kiểm tra được thực hiện như sau.

Đầu vào là một số nguyên lẻ N, phép kiểm tra tính nguyên tố Frobenius-Grantham bắt đầu với các bước khởi tạo dưới đây:

Bước 1: Kiểm tra N đối với việc chia hết cho các số nguyên tố nhỏ hơn

hoặc bằng min{50000, N1/2}

Bước 2:Kiểm tra N có phải là bình phương của một số nguyên. Nếu đúng,

không chấp nhận N và dừng. (adsbygoogle = window.adsbygoogle || []).push({});

Bước 3: Xác định các số nguyên dương r và s thỏa mãn 2rs = N2 – 1

Tiếp theo, phép kiểm tra thực hiện với một hoặc nhiều các vòng lặp của thuật toán dưới đây, với đầu vào là r, s, N và đầu ra là “chấp nhận” hoặc

“không chấp nhận”. Với mỗi vòng lặp các giá trị khác nhau của bc phải được chọn.

Thuật toán 1.10 (Thuật toán kiểm tra tính nguyên tố Frobenius-Grantham)

Bước 1:Chọn ngẫu nhiên b, c Ncho đến khi một trong các điều dưới đây là đúng: Hoặc gcd(b2 + 4c, N) hoặc gcd(c, N) là một ước không tầm thường của N  2 4 1 b c N          c 1 N        

Trường hợp thứ nhất xảy ra, thì “không chấp nhận” N và dừng.

Kiểm tra bậc của đa thức x(N+1)/2 mod(N, x2 – bxc) bằng 0 trong N.

Nếu không thì “không chấp nhận” N và dừng.

Bước 2: Kiểm tra xN+1 mod (N, x2 – bxc) = -c. Nếu không thì “không chấp nhận” N và dừng.

Bước 3: Kiểm tra hoặc xsmod (N, x2 – bxc) = 1 hoặc tồn tại j (0 j

r -2) thỏa mãn x2jsmod ( ,N x2bxc) 1. Nếu không, thì “không chấp nhận” N và dừng, ngược lại “chấp nhận” N.

Một phần của tài liệu Hệ tiêu chuẩn tham số an toàn cho hệ mật RSA và ứng dụng (Trang 26 - 29)