Victor Shoup, A computational introduction to number theory and algebra , Cambridge University Press, 2006.. Abstract: This paper describes the classical method to generate ra[r]
(1)Kỷ yếu cơng trình khoa học 2015 – Phần I
SINH SỐ NGUYÊN TỐ LỚN DÙNG TRONG MẬT MÃ
Nguyễn Đức Thắng, Trần Vĩnh Đức Khoa Toán-Tin, Trường Đại học Thăng Long Email: thangdn.tlu@outlook.com
Email: tranvinhduc@gmail.com
Tóm tắt:Bài báo mô tả phương pháp sinh ngẫu nhiên số nguyên tố mạnhđể sử
dụng cáchệ mật mã công khai chữ ký số dựa RSA Cụ thể, thuật tốn Rabin-Miller thuật tốn Gordon sẽđược trình bày một cách chi tiết
Từ khóa:RSA, chữ ký số, mật mã 1. Giới thiệu chung
Bài báo mô tả phương pháp sinh số nguyên tố lớn dùng hệ thống chữ ký số Trường Đại Học Thăng Long Do yêu cầu hệ thống, việc sinh số phải đảm bảo:
1 Sốđược sinh phải có độ dài 3072 bit,
2 Sốđược sinh phải ngẫu nhiên (khó dựđốn),
3. Thời gian sinh số phải đủ nhanh, thời gian trung bình vài giây máy tính cấu hình khơng mạnh
Định nghĩa Số nguyên dương p > 1 nguyên tố p không chia hết cho số nguyên dương 1 p Ngược lại p hợp số
Ta định nghĩa hàm phân phối số nguyên tố số lượng số nguyên tố nhỏ n
Ví dụ: = có bốn số ngun tố nhỏ 10 2, 3, 5, 7
Định lý sau cho ta ước lượng xấp xỉ hàm Định lý
Nói cách khác, giá trị xấp xỉ với n lớn
Ví dụ:Với ta có
Sai sốởđây 6%
Vậy ta lấy ngẫu nhiên số nguyên dươngk bit, xác suất để số số nguyên tố Về trung bình, ta cần lần thửđể lấy số nguyên tố k bit
(2)Kỷ yếu cơng trình khoa học 2015 – Phần I
Từ phân tích trên, trung bình, thuật tốn ngẫu nhiên dừng sau 2130 bước lặp
Thuật toán sinh số nguyên tố:
1 Chọn ngẫu nhiên số nhị phân độ dài bit Đặt hai bit cao bit thấp lên Kiểm tra xem có số nguyên tố
4 Nếu có trả số ngun tố Cịn khơng quay lại Bước Trong Bước thuật tốn,
• Ta đặt bit thấp lên đảm bảo số lẻ;
• Và ta đặt bit cao lên đểđảm bảo số sinh thỏa mãn
điều cần thiếtvì để đảm bảo an tồn cho thuật tốn RSA số nguyên tố sinhra phải đủ lớn
Các bước bước sẽđược phân tích mục mục 2. Sinh số ngẫu nhiên
Hệ thống chữ ký điện tử dự kiến cài đặt GNU/Linux Chúng dựđịnh dùng hàm sinh dãy bit ngẫu nhiên hệđiều hành
Hệđiều hành GNU/Linux sinh dãy bit ngẫu nhiên từ nguồn ngẫu nhiên hệ thống (các thao tác chuột, thao tác bàn phím, chương trình chạy…) Các dãy bit lưu trữ tệp tin/dev/urandom Trong trường hợp dãy bit sinh chưa đủ ngẫu nhiên entropy nhỏ, hệ thống sử dụng hàm giả ngẫu nhiên an toàn Phương pháp lấy liệu ngẫu nhiên nhiều người sử dụng theo biết, chưa có báo cáo tính khơng an tồn
3. Thuật tốn kiểm tra số nguyên tố
Thuật toán đơn định AKS cho phép kiểm tra xem liệu số nguyên dương có nguyên tố thời gian Tuy nhiên, khơng sử dụng nhiều mật mã thời gian chạy chậm
Chúng tơi cài đặt thuật tốn ngẫu nhiên Rabin-Miller kết hợp với số bước tiền xử lý để tăng tốc thuật toán
(3)Kỷ yếu cơng trình khoa học 2015 – Phần I
Phần cịn lại mục mơ tả bước xây dựng cải tiến thuật toán
Trước hết định lý sau cho thuật toán đơn giản để kiểm tra số nguyên tố
Định lý (Fermat) Nếu số nguyên tố thì, với ,
Thuật tốn sau:
Tất nhiên, thuật tốn cho kết sai, có kiểu sai: Nếu trả lại có khả hợp số, trả lại chắn hợp số
Ví dụ:Với bốn số , thuật toán cho kết , dù số hợp số
Câu hỏi tự nhiên là: Số trường hợp mà thuật toán cho kết sai có nhiều khơng? Thật ngạc nhiên số trường hợp sai Trong số nguyên dương đầu tiên, thuật toán nhầm số
Thuật toán sau cải tiến thuật toán trước dựa hai ý tưởng • Thay sở thuật tốn số bất kỳ;
• Kết hợp với Định lý sau để hạn chế số trường hợp sai Định lý Nếu số nguyên tố lẻ phương trình
(4)Kỷ yếu cơng trình khoa học 2015 – Phần I
Thuật tốn thực tính cách lặp lại việc tính
bắt đầu từ Nếu số ngun tố.Vịng lặp kết thúc sớm
vì ta kết luận hợp số theo theo Định lý
Thuật toán lặp lại lần tính để giảm xác suất sai
Xác suất sai thuật toán định lý sau
Định lý 4.Với số nguyên lẻ số nguyên dương , sai số thuật toán nhiều
Thuật toán sau thêm vài bước tiền xử lý để giảm thời gian chạy thuật
toán
(5)Kỷ yếu cơng trình khoa học 2015 – Phần I
Nếu thuật tốn thơng báo “ hợp số”, chắn hợp số Cịn thơng báo “ số ngun tố”, xác suất hợp số
4. Thuật toán sinh số nguyên tố mạnh
Thuật toán p−1 Pollard thuật tốn hiệu để phân tích thừa số ngun tốn = pq, p q thỏa mãn số tính chất đặc biệt.Để tránh phương pháp cơng này, sốp q nên số nguyên tố mạnh Đây lý mà chuẩn ANSI X9.31yêu cầu sử dụng số nguyên tố mạnh để sinh khóa cho hệ chữ ký điện tử dựa RSA
Định nghĩa Số nguyên tốpđược gọi số nguyên tố mạnh thỏa mãn ba điều kiện sau:
1 p−1 có thừa số nguyên tốuđủ lớn; p+1 có thừa số nguyên tốsđủ lớn; u−1 có thừa số nguyên tốtđủ lớn
Năm 1984 John Gordon đề xuất thuật toán hiệu để sinh số nguyên tố mạnh Thuật toán Gordon thêm 19% thời gian tính tốn so với thời gian tìm số ngun tố kích thước thuật toán Rabin-Miller
Trong bước 1, 2, 4, ta sử dụng thuật toán Rabin-Miller để kiểm tra số nguyên tố 5. Thử nghiệm
(6)Kỷ yếu cơng trình khoa học 2015 – Phần I
Hình 1: Mơ tả histogram thời gian chạy cho việc sinh ngẫu nhiên 100 số nguyên tố cỡ 3072 bit Cột của bảng mô tả số lượng số nguyên tố chạy thời gian (tính
theo giây) chỉ bởi hàng
6. Tài liệu tham khảo
[1] Thomas H Cormen, Clifford Stein, Ronald L Rivest, Charles E Leiserson,
Introduction to Algorithms, McGraw-Hill Higher Education, 2001
[2] H H Khoái, P H Điển, Số học thuật toán: Cơ sở lý thuyết tính tốn thực hành, NXB Đại học Quốc Gia Hà Nội, 2003
[3] Jonathan Katz Yehuda Lindell, Introduction to Modern Cryptography, Chapman & Hall/CRC, 2007
[4] Ronald L Rivest, Robert D Silverman y, Are ‘Strong’ Primes Needed for RSA?,
November 22, 1999
[5] Victor Shoup, A computational introduction to number theory and algebra, Cambridge University Press, 2006