Sinh số nguyên tố lớn dùng trong mật mã

6 128 0
Sinh số nguyên tố lớn dùng trong mật mã

Đang tải... (xem toàn văn)

Thông tin tài liệu

Bài báo này mô tả phương pháp sinh ngẫu nhiên các số nguyên tố mạnh để sử dụng trong các hệ mật mã công khai và chữ ký số dựa trên RSA. Cụ thể, thuật toán Rabin-Miller và thuật toán Gordon sẽ được trình bày một cách chi tiết.

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 RabinMiller thuật tốn Gordon trình bày cách chi tiết Từ khóa:RSA, chữ ký số, mật mã 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: Số sinh phải có độ dài 3072 bit, Số sinh phải ngẫu nhiên (khó dự đoán), 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 > nguyên tố p khơng chia hết cho số ngun dương ngồi p Ngược lại p hợp số Ta định nghĩa hàm phân phối số nguyên tố n Ví dụ: số lượng số nguyên tố nhỏ = có bốn số ngun tố nhỏ 10 2, 3, 5, Định lý sau cho ta ước lượng xấp xỉ hàm Định lý Nói cách khác, giá trị Ví dụ:Với xấp xỉ với n lớn ta có Sai số 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ố ngun tố k bit Ví dụ:Nếu thì,về trung bình, lấy ngẫu nhiên số nguyên tố k bit Trường Đại học Thăng Long số, ta có 106 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ố: độ dài Chọn ngẫu nhiên số nhị phân Đặt hai bit cao bit thấp Kiểm tra xem bit lên có số nguyên tố 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 • Và ta đặt bit cao đảm bảo lên lên số lẻ; để đả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 phân tích mục mục 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 Thuật tốn kiểm tra số ngun tố Thuật toán đơn định AKS cho phép kiểm tra xem liệu số nguyên dương nguyên tố thời gian mã thời gian chạy chậm có Tuy nhiên, khơng sử dụng nhiều mật 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 Thuật toán Rabin-Miller thuật toán kiểu Monte Carlo Nó cho phép kiểm tra số nguyên có ngun tố hay khơng với xác suất sai làm nhỏ tuỳ ý Chúng tơi chọn xác suất sai số Cụ thể, thuật tốn thơng báo chắn hợp số Còn thuật tốn thơng báo là hợp số, ngun tố xác suất hợp số Trường Đại học Thăng Long 107 Kỷ yếu cơng trình khoa học 2015 – Phần I Phầ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ố ngun 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 Ví dụ:Với bốn số chắn hợp số , thuật tố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 tốn cho kết sai có nhiều không? Thật ngạc nhiên số trường hợp sai Trong toán nhầm số nguyên dương đầu tiên, thuật số sau cải tiến thuật tốn trước dựa hai ý tưởng Thuật tốn • Thay sở thuật tốn số • 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ẻ có hai nghiệm Trường Đại học Thăng Long bất kỳ; phương trình 108 Kỷ yếu cơng trình khoa học 2015 – Phần I cách lặp lại việc tính Thuật tốn thực tính Nếu ta kết luận số ngun tố.Vòng lặp kết thúc sớm hợp số theo theo Định lý lặp lại lần tính Thuật tốn để giảm xác suất sai định lý sau Xác suất sai thuật toán Định lý 4.Với số nguyên lẻ nhiều số nguyên dương , sai số thuật toán 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 Bước nhằm loại nhanh số chia hết cho 400 số nguyên tố Bước 3loại nhanh số lượng lớn hợp số nhờ Định lý Fermat Chúng chọn sở để việc tính tốn nhanh bit Cuối ta kiểm tra số lại thuật tốn Bước cần nhiều tính tốn Trường Đại học Thăng Long 109 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 thông báo “ số nguyên tố”, xác suất hợp hợp số Còn Thuật tốn sinh số nguyên tố mạnh Thuật toán p−1 Pollard thuật toán hiệu để phân tích thừa số nguyên 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 gọi số nguyên tố mạnh thỏa mãn ba điều kiện sau: 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ố Thử nghiệm Chúng cài đặt chạy thử nghiệm thuật tốn mơ tả mục trước để sinh 100 số nguyên tố ngẫu nhiên độ dài 3072 bit Chương trình chạy máy laptop với xử lý Intel Core i7 Haswell (4500U, 1.80 GHz), Ram GB, 1600 MHz, chạy hệ điều hành GNU/Ubuntu 15.04 Thời gian trung bình để sinh số nguyên tố khoảng 2.09 giây khoảng 2.75 giây số nguyên tố mạnh Trường Đại học Thăng Long 110 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 bảng mô tả số lượng số nguyên tố chạy thời gian (tính theo giây) hàng 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 tố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 Abstract: This paper describes the classical method to generate random strong primes used in cryptography Specifically, the Rabin-Miller and Gordon algorithmsare presented in detail Trường Đại học Thăng Long 111 ... RSA Định nghĩa Số nguyên tố p gọi số nguyên tố mạnh thỏa mãn ba điều kiện sau: 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... thuật tốn thơng báo “ hợp số , chắn thông báo “ số nguyên tố , xác suất hợp hợp số Còn Thuật tốn sinh số nguyên tố mạnh Thuật toán p−1 Pollard thuật toán hiệu để phân tích thừa số nguyên tố n... số nguyên tố Định lý (Fermat) Nếu số ngun 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 Ví dụ:Với bốn số chắn hợp số , thuật tốn

Ngày đăng: 30/01/2020, 12:03

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan