Phát sinh số 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 134 - 136)

 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.3 Phát sinh số nguyên tố

Các thuật toán được giới thiệu ở trên đều sử dụng các thuật toán kiểm tra tính nguyên tốtheoxácsuất, vìvậysố nguyêntốphátsinhđược chỉlàmộtsốnguyêntố xácsuất (probable prime) hay số khả nguyên tố mạnh. Những số nguyên tố loại này vẫn có thể 2. Vì thế, người ta mong muốn có thể phát sinh được các số nguyên tố thật sự hay nói cách khác là có thể chứng minh được tính nguyên tố của các số này (provable prime). Thuật toán sau đây của Maurer cho phép phát sinh một số nguyên tố có độ dài � bit xácđịnhtrước[39].

Maurer(�)

Đầu vào : số nguyên � > 0

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

(1) Nếu �≤20 thì thực hiện lặp lại các bước sau: (1.1) Chọn một số nguyên � lẻ ngẫu nhiên �-bit.

là hợp số mặc dù với xác suất sai vô cùng thấp, chẳng hạn xác suất sai ít hơn 1

80

(1.2) Sử dụng chia thử bởi tất cả các số nguyên tố bé hơn � để xem � có phải là s ố

nguyên tố hay không.

(1.3) Nếu n là số nguyên tố thì trả về n. (2) �←0.1, �←20.

(3) �←�.�2 (B là chặn trên của chia thử).

(4) Nếu �>2� thì thực hiện lặp lại các bước sau: chọn một số ngẫu nhiên � ∈ 0,1 , đặt � ←2�−1,cho đến khi �−�� >�.Ngượclại (nghĩa là �≤2�), �←0.5.

(5) �←������ �.� +1 .

2� .

(7) ������� ←0

(8)Trong khi (�������=0)

(8.1) Chọn một số nguyên �∈ �+1,2� và đặt �=2��+1.

(8.2) Sử dụng chia thử để xem n có bị chia hết bởi bất kỳ số nguyên tố nào <� ha y

không. Nếu không thì thực hiện các bước sau:

(8.2.1) Chọn một số nguyên ngẫu nhiên � ∈ 2,�−2 . (8.2.2) �←��−1����.

(8.2.3)Nếu �=1 thì

�←�2����� và �←��� �−1,� .

Nếu � =1 thì ������� ←1. (9) Trả về n.

Thuậttoán6.12.PhátsinhsốnguyêntốMaurer

112

Trong bước (2), giá trị tối ưu của hằng số � = 0.1 để tính biên chia thử � = �.�2. Nhưđãđềcậpởmục6.4.3,giátrịnàytùythuộcvàosựthựcthisốhọccủasốnguyên dài và được chọn thông qua thực nghiệm. Ngoài ra, hằng số �= 20 để chắc chắn rằng � dài ít nhất 20 bit và do đó � được chọn trong đoạn �+1,2� đủ lớn để � =2��+1chứaítnhấtmộtsốnguyêntố�lớn.

Maurer nhận xét rằng số nguyên tố xác suất nhận được trong thuật toán tìm kiếm ngẫu nhiên (Thuật toán 6.6) với � =1 chỉ nhanh hơn một chút so với thuật toán của Maurer. Tuy nhiên, trong thực tế người ta thường sửdụng � ≥1 nên thờigian phát sinh số nguyên tố bằng thuật toán Maurer sẽ lâu hơn rất nhiều. Ngoài ra, thuật toán này đòi hỏi nhiều bộ nhớ để chạy do có sự đệ quy trong hàm.

6.5.4 Nhậnxét

sai bằng không. Tuy nhiên, xác suất sai của các số giả nguyên tố có khả năng giảm xuống mức thấp có thể chấp nhận được như đã trình bày ở trên và thời gian tìm số khảnguyêntốmạnhíthơnrấtnhiềusovớithờigiantìmsốnguyêntốnêntrongthực tế các số khả nguyên tố mạnh hay số nguyên tố xác suất thường được sử dụng.

Các thử nghiệm nhằm đánh giá tính hiệu quả của các thuật toán này sẽ được lần lượt trình bày ở Chương 7 .

6.6 Kết luận

RSA là hệ mã rất dễ hiểu và dễ triển khai nhưng để vận dụng nó đúng cách nhằm đạt độ an toàn và hiệu quả lại vô cùng khó khăn. Để giải quyết tốt các vấn đề này, người lập mã cần tuân thủ các đề nghị về tính an toàn được đưa ra ở Chương 5 và các phân tích về tính hiệu quả được trình bày ở chương này.

Hơn nữa, nhu cầu xây dựng một bộ thư viện mã hóa để hiện thực hóa các phân tích ở trên là cần thiết. Chương 7 sẽ giới thiệu bộ thư viện mã hóa được xây dựng nhằm triển khai hệ mã RSA an toàn và hiệu quả.

113

Ch ơngƣ 7

Xây dựng bộ thƣ viện “SmartRSA”, cài đặt hiệu quả hệ mã RSA

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 134 - 136)

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

(183 trang)
w