Thuật toán sinh số nguyên tố lớn

14 2.9K 16
Thuật toán sinh số nguyên tố lớn

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bài Tập lớn cơ sở lý thuyết mật mã: sinh số nguyên tố ngẫu nhiên bao gồm cả code project java và bản .docxTỔNG QUAN VỀ SỐ NGUYÊN TỐĐịnh nghĩa số nguyên tốSố nguyên tố là số chỉ có 2 ước, đó là 1 và chính nó. Tức là nó chỉ chia hết cho số 1 và chính nó.Tính chất của số nguyên tốƯớc tự nhiên khác 1 nhỏ nhất của một số tự nhiên n là số nguyên tố.Cho p là số nguyên tố; a N; a 0. Khi đó(a,p)=p ⇔a⋮p(a,p)=1 ⇔a pNếu tích của nhiều số chia hết cho một số nguyên tố p thì có ít nhất một thừa số chia hết cho p.∏_(i=1)N▒〖a_i ⋮ p → ∃a_i ⋮p〗Ước số dương bé nhất khác 1 của một hợp số a là một số nguyên tố không vượt quá 2 là số nguyên tố nhỏ nhất và cũng là số nguyên tố chẵn duy nhấtTập hợp các số nguyên tố là vô hạn (tương đương với việc không có số nguyên tố lớn nhất).

HỌC VIỆN KỸ THUẬT MẬT MÃ KHOA AN TOÀN THÔNG TIN  BÁO CÁO BÀI TẬP LỚN MÔN HỌC CƠ SỞ LÝ THUYẾT MẬT MÃ Chủ Đề 2: TÌM HIỂU CÁC THUẬT TOÁN SINH SỐ NGUYÊN TỐ Giảng viên: Nguyễn Văn Nghị Sinh viên thực hiện: Nguyễn Thị Huyền Đinh Đăng Thống HÀ NỘI, 2015 Ý KIẾN CỦA GIẢNG VIÊN MỤC LỤC LỜI NÓI ĐẦU Mật mã học ngành có lịch sử hàng nghìn năm nay, gắn liền với nhu cầu bảo mật an toàn thông tin người từ thời cổ đại. Sự đời mạng máy tính có tác động lớn đến sinh hoạt chung loài người. Mạng máy tính đời giúp cho người dễ dàng trao đổi thông tin, chia sẻ liệu, v.v… cách nhanh chóng mà không cần quan tâm đển khoảng cách địa lý. Bên cạnh ích lợi tồn hiểm họa. Tiêu biểu hiểm họa lộ thông tin. Để phòng chống hiểm họa nhà khoa học nghiên cứu, phát triển hệ mật khác nhau. Nhằm đảm bảo an toàn thông tin, nhiều hệ mật mã đời gần có sử dụng số nguyên tố tham số thiết yếu. Vì vậy, số nguyên tố đề tài thu hút nhiều quan tâm chuyên gia mật mã. Nhận thấy tầm quan trọng số nguyên tố, tinh thần học tập cao nhóm chọn đề tài nghiên cứu “Tìm hiểu thuật toán sinh số nguyên tố”. Do kiến thức hạn chế, báo cáo tránh khỏi thiếu sót mong góp ý thầy cô bạn đọc giúp báo cáo hoàn thiện hơn. Page | Chương I. TỔNG QUAN VỀ SỐ NGUYÊN TỐ 1. Định nghĩa số nguyên tố Số nguyên tố số có ước, nó. Tức chia hết cho số nó. 2. Tính chất số nguyên tố 1. Ước tự nhiên khác nhỏ số tự nhiên n số nguyên tố. 2. Cho p số nguyên tố; a N; a 0. Khi 3. Nếu tích nhiều số chia hết cho số nguyên tố p có thừa số chia hết cho p. 4. Ước số dương bé khác hợp số a số nguyên tố không vượt 5. số nguyên tố nhỏ số nguyên tố chẵn 6. Tập hợp số nguyên tố vô hạn (tương đương với việc số nguyên tố lớn nhất). 3. Ứng dụng số nguyên tố mật mã Các số nguyên tố lớn tham số an toàn quan trọng thuật toán lược đồ mật mã đại thuật toán mã hoá khoá công khai RSA, lược đồ chữ ký số RSA, lược đồ trao đổi khoá Diffie-Hellman, lược đồ mã hoá Elgammal. Số nguyên tố lớn góp phần vào việc tăng độ an toàn hệ mật. Page | Chương II. MỘT SỐ THUẬT TOÁN SINH SỐ NGUYÊN TỐ Theo chuẩn ISO/IEC 18032, thuật toán sinh số nguyên tố chia thành hai loại: - Các thuật toán dựa phép kiểm tra tính nguyên tố xác xuất - Các thuật toán sinh số nguyên tố tất định. 1. Một số thuật toán sinh số nguyên tố xác suất Xác suất sai phụ thuộc vào phép kiểm tra dùng. Xác suất mà hợp số chấp nhận không đáng kể. Để giảm thiểu xác suất sai, người ta thường thực nhiều vòng lặp với đầu vào. 1.1. Một số phép kiểm tra tính nguyên tố 1.1.1. Phép kiểm tra tính nguyên tố Miller-Rabin a. Định lý Cho n số nguyên dương lẻ, ta viết n − = 2h m , với m số lẻ. Nếu a < n n số nguyên tố với số nguyên dương : ( am ≡ mod n ) ∨ ∃k < h ( a2 m ≡ −1 mod n ) . k Nếu n hợp số : { a: ≤ a ≤ n − 1, ( ( a m ≡ 1mod n) ∨ ∃k < h a k m ≡ −1 mod n ) } ≤ n 4− b. Thuật toán n – = 2h m Thuật toán kiểm tra số nguyên n có dạng Đầu vào: h,m,n Đầu ra: “n số nguyên tố” “n hợp số” Các bước thực hiện: với m lẻ. Page | 1. Chọn ngẫu nhiên số nguyên a thoả mãn 2. Tính d = gcd (a, n) Nếu 3. Tính d >1 “n hợp số” dừng. b = a m mod n Nếu 4. Với Nmax quay lại bước 1, không quay bước 2. Trong thuật toán có xuất tham số µ. Tham số giới hạn lượng tăng dần thực tìm kiếm số nguyên tố. Có gợi ý sử dụng tham số µ = 10ln(2k). Kết cho xác suất cao việc tìm thấy số nguyên tố khoảng phân bố số nguyên tố tìm đều. 2. Một số thuật toán sinh số nguyên tố tất định 2.1. Cơ sở lý thuyết 2.1.1. Định lý Pocklington N −1 s > N Cho s ước dương , . Giả sử có số nguyên a thoả mãn: với ước nguyên tố q s. Khi N số nguyên tố. 2.1.2. Phép chia thử kiểm tra tính nguyên tố Tính nguyên tố số nguyên N chứng minh phép chia thử. Được thực sau: 1.Với tất số nguyên tố p ≤ N 1/2, N mod p = kết luận N hợp số, kết thúc. 2.Kết luận N nguyên tố, kết thúc. Với số nguyên nhỏ, phương pháp chia thử thời gian tính toán phương pháp kiểm tra khác. Các cài đặt cho việc kiểm tra tính Page | 10 nguyên tố chuẩn định nghĩa cận cho phép chia thử L, giá trị phép chia thử sử dụng để kiểm tra tính nguyên tố số nguyên. Chuẩn không thiết lập giá trị cho L. 2.2. Thuật toán sinh số nguyên tố Maurer Đầu vào: k (độ dài số nguyên tố cần sinh). Đầu ra: Số nguyên tố p chứng nhận tính nguyên tố nó, C ( p) . Các bước thực hiện: 1. Nếu 2k < L sinh ngẫu nhiên số nguyên lẻ p có độ dài k bít, sau kiểm tra tính nguyên tố phép chia thử kiểm tra tính nguyên tố. Lặp lại p số nguyên tố. Cho đầu p chứng nhận k ≤ 2M 2. Nếu C0 ( p ) , lấy . r = 1/ . Ngược lại, thực lặp lại điều k − rk > M . Lựa chọn ngẫu nhiên số thực 3. Lấy k1 =  rk  + s, ≤ s ≤ . Gọi đệ qui thuật toán với đầu vào xác định số nguyên tố q có độ dài C ( q) , lấy r = s −1 k1 k1 , để bít chứng nhận . 4. Lấy Page | 11 5. Chọn ngẫu nhiên số nguyên R cho t < R ≤ 2t lấy p = Rq + 6. Chọn số nguyên a với < a < p – . Nếu thỏa mãn điều kiện : • • a ( p −1) (mod p ) = gcd(a R − 1, p ) = cho đầu p chứng nhận ( p, q , a ) , C ( q ) 7. Ngược lại, lặp lại bước từ đến 7. 2.3. Thuật toán sinh số nguyên tố Shawe-Taylor 2.3.1. Thuật toán Thuật toán sử dụng tham số: L, giới hạn phép chia thử. Đầu vào: số nguyên k – số bit số nguyên tố cần sinh Đầu ra: số nguyên tố N Các bước thực hiện: 1. Nếu 2k < L sinh ngẫu nhiên số nguyên lẻ k bít, N, kiểm tra tính nguyên tố cách chia thử. Lặp lại N số nguyên tố. Cho đầu N dừng. 2. Nếu k lẻ, lấy k1 = . Nếu k chẵn lấy k = . Gọi đệ qui thuật toán với đầu vào k1, để tìm số nguyên tố k1 bít q. 3. Chọn ngẫu nhiên số nguyên x, 2k-1 ≤ x < 2k 4. Lấy t = Page | 12 5. Nếu 2tq + ≥ 2k, lấy t= 6. Lấy N = 2qt + 7. Lựa chọn ngẫu nhiên số nguyên a cho < a < N – lấy x = a2t mod N. Nếu: • x≠1 • gcd(x – 1, N) = • xq  mod N cho đầu N 8. Ngược lại lấy t = t + lặp lại bước từ đến 8. 2.3.2. Tính đắn thuật toán a. Số nguyên N đầu thuật toán có độ dài k bít - Qua bước bước thuật toán thấy N = 2qt + < 2k - Qua bước thuật toán ta có t > x/2q, kết hợp với việc chọn 2k-1 ≤ x < 2k chọn bước thuật toán nên ta có: t ≥ 2k-1/2q. Thay giá trị t vào công thức tính N ta có: N = 2qt + ≥ 2(2k-1/2q)q + = 2k-1 + Như ta có 2k-1 + ≤ N < k . Nói cách khác: N có độ dài k bit b. Số N đầu thuật toán số nguyên tố Tính nguyên tố số N đảm bảo phép tính toán kiểm tra bước thuật toán. Cụ thể: - Điều kiện xq = mod N  a2tq = mod N  a(N-1) = mod N. - Điều kiện gcd(x - 1, N) =  gcd(a2t–1, N)=1  gcd(a(N-1)/q – 1, N) = 1. Page | 13 - Mặt khác, bước thuật toán q số nguyên tố có số bít làk1  k/2 + 1. Do q  N . Thỏa mãn điều kiện trên, số N thỏa mãn định lý Pocklington. Như N số nguyên tố. Page | 14 [...]... đến 7 2.3 Thuật toán sinh số nguyên tố của Shawe-Taylor 2.3.1 Thuật toán Thuật toán sử dụng duy nhất một tham số: L, giới hạn phép chia thử Đầu vào: số nguyên k – số bit của số nguyên tố cần sinh Đầu ra: số nguyên tố N Các bước thực hiện: 1 Nếu 2k < L thì sinh ngẫu nhiên một số nguyên lẻ k bít, N, và kiểm tra tính nguyên tố bằng cách chia thử Lặp lại cho đến khi N là một số nguyên tố Cho đầu ra N và.. .nguyên tố trong chuẩn 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 Chuẩn này không thiết lập giá trị cho L 2.2 Thuật toán sinh số nguyên tố của Maurer Đầu vào: k (độ dài của số nguyên tố cần sinh) Đầu ra: Số nguyên tố p và một chứng nhận tính nguyên tố của nó, C ( p) Các bước... có độ dài đúng k bit b Số N ở đầu ra thuật toán là số nguyên tố Tính nguyên tố của số N được đảm bảo bởi các phép tính toán và kiểm tra trong bước 7 của thuật toán Cụ thể: - Điều kiện 1 xq = 1 mod N  a2tq = 1 mod N  a(N-1) = 1 mod N - Điều kiện 2 gcd(x - 1, N) = 1  gcd(a2t–1, N)=1  gcd(a(N-1)/q – 1, N) = 1 Page | 13 - Mặt khác, bước 2 của thuật toán q là số nguyên tố có số bít làk1  k/2 + 1 Do... L thì sinh ngẫu nhiên một số nguyên lẻ p có độ dài k bít, sau đó kiểm tra tính nguyên tố bằng phép chia thử kiểm tra tính nguyên tố Lặp lại cho đến khi p là một số nguyên tố Cho đầu ra p và chứng nhận k ≤ 2M 2 Nếu C0 ( p ) , lấy đây cho đến khi r = 1/ 2 Ngược lại, thực hiện lặp lại điều dưới k − rk > M Lựa chọn ngẫu nhiên một số thực 3 Lấy k1 =  rk  + 1   s, 0 ≤ s ≤ 1 Gọi đệ qui thuật toán này... Ngược lại lấy t = t + 1 và lặp lại các bước từ 5 đến 8 2.3.2 Tính đúng đắn của thuật toán a Số nguyên N ở đầu ra thuật toán có độ dài đúng k bít - Qua bước 5 và bước 6 của thuật toán chúng ta thấy N = 2qt + 1 < 2k - Qua bước 4 của thuật toán ta có t > x/2q, kết hợp với việc chọn 2k-1 ≤ x < 2k được chọn tại bước 3 của thuật toán nên ta có: t ≥ 2k-1/2q Thay giá trị t vào công thức tính N ta có: N = 2qt... một số nguyên tố q có độ dài C ( q) , và lấy r = 2 s −1 k1 k1 , để bít và một chứng nhận 4 Lấy Page | 11 5 Chọn ngẫu nhiên số nguyên R sao cho t < R ≤ 2t và lấy p = 2 Rq + 1 6 Chọn một số nguyên a với 1 < a < p – 1 Nếu thỏa mãn các điều kiện : • • a ( p −1) (mod p ) = 1 gcd(a 2 R − 1, p ) = 1 thì cho đầu ra p và chứng nhận ( p, q , a ) , C ( q ) 7 Ngược lại, lặp lại các bước từ 5 đến 7 2.3 Thuật toán. .. là một số nguyên tố Cho đầu ra N và dừng 2 Nếu k lẻ, lấy k1 = Nếu k chẵn lấy k 1 = Gọi đệ qui thuật toán này với đầu vào là k1, để tìm một số nguyên tố k1 bít q 3 Chọn ngẫu nhiên số nguyên x, 2k-1 ≤ x < 2k 4 Lấy t = Page | 12 5 Nếu 2tq + 1 ≥ 2k, thì lấy t= 6 Lấy N = 2qt + 1 7 Lựa chọn ngẫu nhiên một số nguyên a sao cho 1 < a < N – 1 và lấy x = a2t mod N Nếu: • x≠1 • gcd(x – 1, N) = 1 • xq  1 mod... gcd(a2t–1, N)=1  gcd(a(N-1)/q – 1, N) = 1 Page | 13 - Mặt khác, bước 2 của thuật toán q là số nguyên tố có số bít làk1  k/2 + 1 Do đó q  N Thỏa mãn được các điều kiện trên, số N đã thỏa mãn định lý Pocklington Như vậy N là số nguyên tố Page | 14 . Ứng dụng của số nguyên tố trong mật mã Các số nguyên tố lớn là một trong các tham số an toàn quan trọng trong các thuật toán lược đồ mật mã hiện đại như thuật toán mã hoá khoá công khai RSA, lược. HỌC VIỆN KỸ THUẬT MẬT MÃ KHOA AN TOÀN THÔNG TIN  BÁO CÁO BÀI TẬP LỚN MÔN HỌC CƠ SỞ LÝ THUYẾT MẬT MÃ Chủ Đề 2: TÌM HIỂU CÁC THUẬT TOÁN SINH SỐ NGUYÊN. chống hiểm họa này các nhà khoa học đã nghiên cứu, phát triển các hệ mật khác nhau. Nhằm đảm bảo an toàn thông tin, nhiều hệ mật mã ra đời gần đây có sử dụng các số nguyên tố như là một tham số thiết

Ngày đăng: 23/09/2015, 20:13

Từ khóa liên quan

Mục lục

  • MỤC LỤC

  • LỜI NÓI ĐẦU

  • Chương I. TỔNG QUAN VỀ SỐ NGUYÊN TỐ

    • 1. Định nghĩa số nguyên tố

    • 2. Tính chất của số nguyên tố

    • 3. Ứng dụng của số nguyên tố trong mật mã

    • Chương II. MỘT SỐ THUẬT TOÁN SINH SỐ NGUYÊN TỐ

      • 1. Một số thuật toán sinh số nguyên tố xác suất

        • 1.1. Một số phép kiểm tra tính nguyên tố

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

          • 1.1.2. Phép kiểm tra tính nguyên tố Lehman

          • 1.1.3. Thuật toán sàng Eratosthenes

          • 1.1.4. Thuật toán Lucas- Lehmer kiểm định các số Mersenne

          • 1.2. Một số thuật toán sinh số nguyên tố xác suất

            • 1.2.1. Thuật toán lựa chọn ngẫu nhiên

            • 1.2.2. Thuật toán tìm kiếm tăng dần

            • 2. Một số thuật toán sinh số nguyên tố tất định

              • 2.1. Cơ sở lý thuyết

                • 2.1.1. Định lý Pocklington

                • 2.1.2. Phép chia thử kiểm tra tính nguyên tố

                • 2.2 . Thuật toán sinh số nguyên tố của Maurer

                • 2.3. Thuật toán sinh số nguyên tố của Shawe-Taylor

                  • 2.3.1. Thuật toán

                  • 2.3.2. Tính đúng đắn của thuật toán

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

Tài liệu liên quan