Phát sinh số khả nguyên tố

Một phần của tài liệu Luận văn thạc sĩ nghiên cứu kiến trúc và xây dựng hệ thống chứng thực tập trung (Trang 130 - 134)

 Nội dung của chương này tập trung nghiên cứu các bài toán quan trọng cần giả

6.5.2 Phát sinh số khả nguyên tố

6.5.2.1 Mộtsốthuậttoánphátsinhsốkhảnguyêntốngẫunhiên

ln�.D o

một nửa số nguyên ≤� là chẵn, tỷ lệ của các số nguyên lẻ ≤ � là số nguyên tố xấp xỉ

2 2 1

gợiý một chiếnthuật hợp lý cho việcchọn một sốnguyên tố ngẫunhiên �-bit bằng cáchlặplạiviệcchọnsốnguyên�-bit�đếnkhinólàsốnguyêntốdovượtquakiểm traMiller-Rabinvớigiátrịthíchhợpcủathamsốantoàn�[40,tr.145-146]

Random-Search(k,t)

Đầu vào : số nguyên � > 0 và tham số an toàn � ≥ 1.

Đầura: số khả nguyên tố �-bit

(1) Chọn ngẫu nhiên một số nguyên lẻ �-bit �.

(2) Nếu Miller-Rabin(�, �) ≠ “sốnguyêntố thì trở về bước (1). (3) Xuất �.

Theo định lý số nguyên tố, tỷ lệ của các số nguyên ≤�là số nguyên tố xấp xỉ 1

512ln2 ≈

Thuậttoán6.6.Phátsinhsốkhảnguyêntốkiểutìmkiếmngẫunhiên

Thuật toán 6.6 có một biến thể tìm kiếm tăng (incremental search). Thuật toán này khác với thuật toán trên ở một điểm là khi số � không phải là số nguyên tố thì thuật toán sẽ kiểm tra số lẻ tiếp theo [40, tr.148].

Incremental-Search(k,t)

Đầu vào : số nguyên � > 0 và tham số an toàn � ≥ 1.

Đầura: số khả nguyên tố �-bit

(1) Chọn ngẫu nhiên một số nguyên lẻ �-bit �. (2)Trong khi Miller-Rabin( �, �) ≠ “sốnguyêntố

� ←�+2

(3) Xuất �.

Thuậttoán6.7.Phátsinhsốkhảnguyêntốkiểutìmkiếmtăng

Thuật toán 6.7 được cải tiến bằng cách chọn giá trị bắt đầu � là số nguyên tố cùng nhau với các số nguyên tố nhỏ [31, tr.3-4]. Thông thường, ta định nghĩa � = 2 ×

3 × 5 × 7 × … × 29 và chọn ngẫu nhiên một số � �-bit thỏa ���(�,�) = 1. Nếu�khôngphảilàsốnguyêntốthì� = � + �.

108

Improvement-Incremental-Search(k,t)

Đầu vào : số nguyên � > 0 và tham số an toàn � ≥ 1.

Đầura: số khả nguyên tố �-bit

(1) Chọn ngẫu nhiên một số nguyên lẻ �-bit n. (2) Nếu ���(�,�)≠1 thì quay lại bước (1).

(3)Trong khi Miller-Rabin(�, �) ≠ “sốnguyêntố

�←�+�

(4) Xuất n.

Thuậttoán6.8.Phátsinhsốkhảnguyêntốkiểutìmkiếmtăngcảitiến

6.5.2.2 Mộtsốthuậttoánphát sinhsốkhảnguyêntốmạnh

Trước các phương pháp phân tích trường hợp đặc biệt, hàng loạt các đề xuất liên quanđếnsốnguyêntốđượcchọnđểlậpmãcómộtsốtínhchấtđặcbiệtđãđượcđưa ra. Do những tính chất đặc biệt đó đó, cơ hội để các phương pháp phân tích như trình bàyởtrênthànhcông làrấtnhỏ.Nhữngsốnguyên tốcó nhữngtínhchấtđặc biệtđó được gọi là số “nguyên tố mạnh”. Lý do lịch sử cho sự cần thiết này là để bảo vệ trước các thuật toán phân tích đặc biệt như thuật toán “rho” và �– 1 của Pollard, � + 1 của Williams (đã được trình bày ở Chương 5).

Một số nguyên tố � được xem là một số nguyên tố mạnh nếu nó thỏa mãn các điều kiện sau:

• �làmộtsốnguyêntốlớn.

• Thừasốnguyêntốlớnnhấtcủa�– 1,gọilà�−,lớn.

Nghĩalà� = �−�−+1vớisốnguyên�−vàsốnguyêntốlớn�−. • Thừa số nguyên tố lớn nhất của �−−1, gọi là �−−, lớn.

Nghĩa là �− = �−−�−−+1 với số nguyên �−− và số nguyên tố lớn �−−. • Thừasốnguyêntốlớnnhấtcủa�+1,gọilà�+,lớn.

Nghĩa là � = �+�+–1 với số nguyên �+và số nguyên tố lớn �+.

“Lớn” ở đây tùy thuộc vào các phương pháp phân tích hiện tại. Thường thì kích thước của � trên 256 bit còn kích thước của các thừa số �−, �−−, �+ trên 100 bit.

Đôikhi, một số nguyêntố gọilà mạnhnếu nóchỉcần thỏamãn chỉ mộttậpcon của các điều kiện trên, ví dụ �−–mạnh nếu �− lớn, �−−–mạnh nếu �−− lớn, �+–mạnh nếu �+ lớn, �−,�+ –mạnh nếu cả �− và �−− đều lớn, �−,�−−,�+ –mạnh, hoặc gọn hơn là mạnh, nếu cả �−, �−− và �+ đều lớn.

109

Williams và Schmid gọi �−–siêu mạnh (hoặc �−−–siêu mạnh hoặc �+–siêu mạnh) nếu�− =2(hoặc�−− =2hoặc�+ =2)[62].

Năm 1984, Hellman và Bach còn đề nghị thêm �+−1 chứa một thừa số nguyên tố lớn (gọilà�+−).Tuynhiên,cácôngchưađưarachứngminhnàochođềxuấtđó[29]. Năm 1978, các tác giả của hệ mã RSA đã đề xuất việc sử dụng số nguyên tố �−−–mạnh [50], và được tìm dễ dàng như sau:

Simple-StrongPrime(k,t)

Đầu vào : số nguyên � > 0 và tham số an toàn � ≥ 1.

Đầura: số khả nguyên tố mạnh �-bit

(1) Tìm một số nguyên tố ngẫu nhiên lớn �−− bằng cách kiểm tra tính nguyên tố một

số nguyên ngẫu nhiên lớn.

(2) Tính �− là số nguyên tố nhỏ nhất có dạng: �− = �−−�−−+1

với số nguyên với số nguyên �−− nào đó. Có thể tính bằng cách thế �−− =2,4,6,… đến khi �− là số nguyên tố. Sử dụng phép thử tính nguyên tố bằng xác suất như phép th ử

(3) Tính � là số nguyên tố nhỏ nhất có dạng: � = �−�−+1

với số nguyên �− nào đó giống như cách tìm �−− ở bước (2).

Thuậttoán6.9.Phátsinhsốkhảnguyêntốmạnhđơngiản

Thờigiancần thiếtđểtìm� khálâu,gấpkhoảng3 lầnthờigiancầnthiếtđểtìm một số nguyên tố ngẫu nhiên có cùng kích thước (do kiếm tra tính nguyên tố 3 lần). Hơn nữa, số nguyên tố � nhận được ở thuật toán trên là chỉ là số �−−–mạnh.

Năm 1979, Williams và Schmid đề xuất thuật toán tìm số nguyên tố mạnh như sau [62]:

Williams-Schmid(k,t)

Đầu vào : số nguyên � > 0 và tham số an toàn � ≥ 1.

Đầura: số khả nguyên tố mạnh �-bit

(1) Tìm �−− và �+ là các số nguyên tố ngẫu nhiên lớn. (2) Tính � =– �−− −1����+.

(3) Tìm � nhỏ nhất sao cho: �− =2��−−�++2��−−+1

và �=4��−−�++4��−−+3=2�−+1 là số nguyên tố.

Thuậttoán6.10.PhátsinhsốkhảnguyêntốmạnhWilliams/Schmid

110

Dễ thấy rằng �+ chính là thừa số của �+1 và � là �−–siêu mạnh do �−= 2. Độ dài của � và �− khoảng gấp đôi độ dài của �−− và �+với quy trình trên. Quy trình này khônghiệu quảbằng việctìm mộtsốnguyên tốngẫu nhiên, doviệc tìm� đồngthời làmcho�−và�làsốnguyêntốtrongbước(3)phứctạphơnrấtnhiềusovớiviệctìm �− để tạo � là số nguyên tố trong bước (3) của Thuật toán 6.9. Tuy nhiên đây cũng là một cách để tìm các số nguyên tố mạnh.

Năm1984,J.Gordonđềxuấtquytrìnhkhácđểtìmcácsốnguyêntốmạnh[26],[25]. Gordonchorằngviệctìmsốnguyêntốmạnhchỉkhóhơn mộtchútsovớiviệctìmsố nguyên tố ngẫu nhiên có cùng kích thước. Thuật toán của ông hiệu quả hơn thuật toán của Williams/ Schmid nhiều bởi vì thuật toán không tạo ra số nguyên tố �−–siêu mạnh (giá trị của �− sẽ lớn hơn 2 với thuật toán của Gordon).

Gordon(k,t)

Đầu vào : số nguyên � > 0 và tham số an toàn � ≥ 1.

Đầura: số khả nguyên tố mạnh �-bit

(1) Tìm �−− và �+ là các số nguyên tố ngẫu nhiên bằng thuật toán tìm kiếm tăng.

(3)Đặt�

0 = �+ � −1−

(2) Tính �− là số nguyên tố nhỏ nhất có dạng: �−=�−−�−−+1 với số nguyên �−− =2,4,6,… nào đó.

− +

(4) Tính � là số nguyên tố nhỏ nhất có dạng: �=�

0+��−�+ với số nguyên �=2,4,6,… nào đó.

Thuậttoán6.11.PhátsinhsốkhảnguyêntốmạnhGordon

Bằng cách điều chỉnh độ dài (theo bit) của các số nguyên tố �−− và p+ và các giá trị �−− và �, chúng ta sẽ có thể điều chỉnh được kích thước mong muốn của số nguyên tố �. Lưu ý rằng độ dài theo bit của �− và �+ sẽ xấp xỉ một nửa của � trong khi độ dài theo bit của �−− sẽ ít hơn độ dài theo bit của �− một chút.

Gordon chứng minh được thuật toán của ông chỉ chậm hơn 19% so với thuật toán tìm số nguyên tố ngẫu nhiên cùng kích thước. Tuy nhiên, Gordon mô tả thuật toán tìm số nguyêntốtrongbước(1)làthuậttoántìmkiếmtăng(Thuậttoán6.7)nênkhisửdụng phiên bản cải tiến của thuật toán tìm kiếm tăng (Thuật toán 6.8) thì tốc độ tổng thể của thuật toán phát sinh số khả nguyên tố mạnh Gordon sẽ tăng lên đáng kể.

111

Một phần của tài liệu Luận văn thạc sĩ nghiên cứu kiến trúc và xây dựng hệ thống chứng thực tập trung (Trang 130 - 134)

Tải bản đầy đủ (DOCX)

(183 trang)
w