Tiểu luận MẬT MÃ VÀ AN TOÀN DỮ LIỆU Phương pháp “Xác Suất” kiểm tra số nguyên tố lớn Thuật toán SolowayStrassen

9 627 2
Tiểu luận MẬT MÃ VÀ AN TOÀN DỮ LIỆU Phương pháp “Xác Suất” kiểm tra số nguyên tố lớn Thuật toán SolowayStrassen

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

Thông tin tài liệu

Tiểu luận MẬT MÃ VÀ AN TOÀN DỮ LIỆU Phương pháp “Xác Suất” kiểm tra số nguyên tố lớn Thuật toán SolowayStrassen. Về cơ bản a ≡ b(mod n) nếu a = b+kn trong đó k là một số nguyên. Nếu a và b dương và a nhỏ hơn n, ta có thể nghĩ rằng a là phần dư của b khi chia cho n. Nói chung a và b đều là phần dư khi chia cho n. Đôi khi b gọi là thặng dư của a, modulo n, đôi khi a gọi là đồng dư của b, modulo n. Tập hợp các số nguyên từ 0 đến n1 còn được gọi là tập hợp thặng dư hoàn toàn modulo n. Điều này có nghĩa là, với mỗi số nguyên a, thì thặng dư modulo n là một số từ 0 đến n1.

2 ĐẠI HỌC CÔNG NGHỆ ĐẠI HỌC QUỐC GIA HÀ NỘI MẬT MÃ VÀ AN TOÀN DỮ LIỆU Phương pháp “Xác Suất” kiểm tra số nguyên tố lớn Thuật toán Soloway-Strassen Giảng viên: PGS.TS Trịnh Nhật Tiến Thực hiện: Nguyễn Thị Dung Hà Nội, 2014 4 Thuật toán Soloway-Strassen 1 Thuật toán Soloway-Strassen 1.1. Modulo số học Về cơ bản a ≡ b(mod n) nếu a = b+kn trong đó k là một số nguyên. Nếu a và b dương và a nhỏ hơn n, ta có thể nghĩ rằng a là phần dư của b khi chia cho n. Nói chung a và b đều là phần dư khi chia cho n. Đôi khi b gọi là thặng dư của a, modulo n, đôi khi a gọi là đồng dư của b, modulo n. Tập hợp các số nguyên từ 0 đến n-1 còn được gọi là tập hợp thặng dư hoàn toàn modulo n. Điều này có nghĩa là, với mỗi số nguyên a, thì thặng dư modulo n là một số từ 0 đến n-1. Modulo số học cũng giống như số học bình thường, bao gồm các phép giao hoán, kết hợp và phân phối. Mặt khác giảm mỗi giá trị trung gian trong suốt quá trình tính toán. (a+b) mod n = ((a mod n) + (b mod n)) mod n (a-b) mod n = ((a mod n) - (b mod n)) mod n (a×b) mod n = ((a mod n) × (b mod n)) mod n (a×(b + c)) mod n = (((a × b) mod n) + ((a × c) mod n)) mod n Hệ thống mã hoá sự dụng nhiều sự tính toán modulo n, bởi vì vấn đề này giống như tính toán logarithm rời rạc và diện tích hình vuông là khó khăn. Mặt khác nó làm việc dễ hơn, bởi vì nó bị giới hạn trong tất cả giá trị trung gian và kết quả. Ví dụ : a là một số k bits, n là kết quả trung gian của phép cộng, trừ, nhân sẽ không vượt quá 24 bits. Như vậy chúng ta có thể thực hiện hàm mũ trong modulo số học mà không cần sinh ra kết quả trung gian đồ sộ. 5 1.2. Thặng dư bậc hai Modulo Định nghĩa: Thặng dư bậc hai (quadratic residue) mod n là một số nguyên a, với a Z n * , thoả mãn phương trình x 2 = a mod n có nghiệm x Z n * . Ngược lại a là bất thăng dư bậc hai mod n. Ví dụ: 4 là thặng dư mod 5 vì 3 2 = 9 = 4 mod 5. Trong trường hợp khác, 3 là bất thặng dự bởi vì không có số nguyên nào trong tập hợp {0, 1, 2, 3, 4} bình phương bằng 3 mod 5. 1.3. Ký hiệu Lagrăng Định nghĩa: nếu p là một số nguyên tố lẻ. Với mọi a ≥ 0 ta định nghĩa ký hiệu Legendre         p a như sau: = Kí hiệu Lagrăng được sử dụng trong tiêu chuẩn Euler do Euler chứng minh: = a (p-1)/2 (mod p) 1.4. Ký hiệu Jacobi Định nghĩa: với n ≥ 1 lẻ và mọi số nguyên a ≥ 0. Giả sử n có triển khai chính tắc thành thừa số nguyên tố là n = p 1 e1 p 2 e2 p 3 e3 … p k ek , thì ký hiệu Jacobi được định nghĩa như sau: = Khi n = p là số nguyên tố thì giá trị của ký hiệu Legendre và Jacobi là như nhau. Định lý: Với m, n >1 là số nguyên lẻ và với a, b là số nguyên bất kỳ. Thì ký hiệu Jacobi có các tính chất sau: (i) =0, 1, hoặc -1. Hơn nữa, =0 nếu và chỉ nếu gcd(a, n) ≠ 1 (ii) = 6 (iii) = (iv) Nếu a=b mod n thì = (v) =1 (vi) = = (vii) = = (viii) = Các tính chất này cho phép chúng ta định nghĩa đệ quy ký hiệu Jacobi. Nếu n là số lẻ, và a=2 k a 1 , và a 1 cũng là số lẻ, thì: = = Định nghĩa đệ quy này được diễn giải bởi thuật toán sau, thuật toán hiệu quả để tính       n a mà không cần phải phân tích n thành thừa số nguyên tố: BigInteger jacobi(BigInteger a, BigInteger b) { if (a == 0) return 0; if (a == 1) return 1; if (a == 2) { BigInteger b8 = b % 8; if (b8 == 3 || b8 == 5) return -1; else return 1; } if ((a % 2) == 0) return jacobi(2, b) * jacobi(a / 2, b); if (a >= b) return jacobi(a % b, b); if ((a % 4) == 3 && (b % 4) == 3) return -jacobi(b, a); else return jacobi(b, a); } 7 1.5. Thuật toán Soloway-Strassen INPUT: n là một số tự nhiên lẻ OUTPUT: FALSE nếu n là hợp số TRUE nếu n không phải hợp số int SolowayStrassen(BigInteger n, int k) { if (n % 2 == 0) return 0; int i = 0; do { BigInteger a = RandomNumber(2, n); if (gcd(a, n) != 1) return 0; BigInteger numjacobi = jacobi(a, n); BigInteger numlegenged = BigInteger.ModPow(a,(n - 1)/2,n); if (numlegenged != (n - 1) || numjacobi != -1) if (numlegenged != numjacobi) { return 0; } i++; } while (i < k); return 1; } Thời gian chạy Thời gian chạy của thuật toán tính Jacobi là O(log 2 n). Thuật toán Euler- witness thực hiện với hai phép tính chính: a (n-1)/2 mod n và       n a . Sử dụng phương pháp bình phương liên tiếp, phép tính thứ nhất thực hiện trong thời gian O(log n), và phép tính thứ hai được xác định thực hiện trong thời gian là O(log 2 n). Các toán tử so sánh có thời gian chạy coi như không đáng kể, vì vậy độ phức tạp thời gian của thuật toán euler-witness là O(log 2 n). Kiểm tra Solovay-Strassen thực hiện thuật toán k lần nên có thời gian thực hiện là O(k. log 2 n). Với thuật toán Solovay-Strassen, chúng ta có (1/2) k khả năng phân loại sai cho thời gian thực hiện O(k. log 2 n). 8 1.6. Xác suất sai Định lý: Nếu n là hợp số lẻ thì tồn tại không quá số tự nhiên dương a nhỏ hơn n, nguyên tố cùng nhau với n sao cho n là số giả nguyên tố Euler cơ sở a. Định lý: nếu n là hợp số dương lẻ thì trong các số a {2, ,n-1} tồn tại không quá (n-1)/4 cơ sở a để n là số giả nguyên tố mạnh Fermat. Gọi A là biến cố "Số nguyên lẻ n là hợp số"; B là biến cố: "Thuật toán Soloway- Strassen trả lời TRUE". Xác suất điều kiện P(B|A) . Theo định lý trên nếu n là hợp số thì khả năng kiểm tra này trả lời TRUE xảy ra với xác suất không vượt quá , nghĩa là P(B|A) . Tuy nhiên để tính xác suất sai của kiểm tra Soloway-Strassen cần tính xác suất diều kiện P(A|B). Dựa trên định lý về ước lượng số các số nguyên tố ta đưa ra ước lượng P(A) 1- Theo định lý Bayes trong lý thuyết xác suất ta có công thức để tính xác suất sai của kiểm tra Soloway-Strassen là: P(A|B) = = Trong công thức này P(A) đã biết ở trên, P(B|A), còn = 1 vì khi n là số nguyên tố thì chắc chắn mệnh đề Q(n, a) là đúng và . Từ đó P P Sau n lần lặp thì xác suất sai sẽ trở nên còn rất bé độ khoảng . 2 Ví dụ minh họa Giả sử chúng ta muốn xác định nếu n =221 là một số nguyên tố. Ta có (n- 1)/2 = 110. Chọn ngẫu nhiên một số a = 47. Chúng ta tính toán: 9 a (n-1)/2 mod n = 47 110 mod 221 = -1 mod 221 (a/n) mod n = (47/221) mod 221 = -1 mod 221 Điều này chỉ ra rằng hoặc là 221 là số nguyên tố, hoặc 47 là một số nguyên tố giả Euler đối với 221. Chúng ta thử với một số a ngẫu nhiên khác, lần này, chọn a =2: a (n-1)/2 mod n = 2 110 mod 221 = 30 mod 221 (a/n)mod n = (2/221) mod 221 = -1 mod 221 3 Chứng minh tinh đúng đắn của thuật toán Có thể, thuật toán sẽ trả về một kết quả không chính xác. Nếu đầu vào là n là một số nguyên tố, thì đầu ra hầu như chắc chắn là số nguyên tố. Tuy nhiên, nếu đầu vào là hợp số thì có thể đầu ra có thể là nguyên tố. Số n được gọi là giả nguyên tố. Với n lẻ và là hợp số, ít nhất, một nửa các số a (a thỏa mãn gcd(a,n) = 1) là bằng chứng Euler. Chúng ta có thể chứng minh điều này như sau: cho {a 1 , a 2 , …, a m } là các giả mạo Euler và a là một bằng chứng Euler. Thì với i = 1, 2, …, m: (a.a i ) (n-1)/2 = a (n-1)/2 . a i (n-1)/2 = a (n-1)/2 . (mod n). Vì = , nên (a.a i ) (n-1)/2 (mod n). Như vậy mỗi số a i cho một a.a i , là một bằng chứng Euler. Nên mỗi giả mạo Euler cho một bằng chứng Euler và số các số bằng chứng Euler lớn hơn hoặc bằng số các số giả mạo Euler. Do đó, nếu n là hợp số, ít nhất một nửa của a với gcd(a, n)=1 là một bằng chứng Euler. Vì thế, xác suất thất bại là nhiều nhất 2 -k 4 Chương trình 10 Kết quả test Đầu vào Đầu ra 3241234143123411732 This is Composite number 3241234143123411733 This is Prime number 423424234242343 This is Prime number 21343534534797234723427 This is Prime number 98794712641768548325265829167413913539 This is Prime number 9347123418648163941643816843568176481649 1734618734691471658194174618491841983471 8347618418346182473189471834618471946189 3471846183461841483 This is Prime number 2417461946184187418681518718461841946182 4619824618418461824618461849146184816481 7634816348164816481547164517547147154715 4718471648174517465178346716354764571457 8145716547254754712572451785471634735472 5472645763471841746173647135473547153747 1354716354754754716761741355509 This is Prime number F2fafadfa3 Not is number 11 [...]... decision, and what to do after a decision is made Chapter 6: Arrays Visitors to your web site want information and they want it fast Developers meet this demand by placing large amounts of information in memory in an array so the information can be retrieved at nearly the speed of light In this chapter, you'll learn about arrays and how to use them in your ASP.NET application to store and manipulate... Grouping and Ordering Data Looking Ahead Quiz Answers Binding Data to Controls Data Binding Basics The Repeater Control A Closer Look a t Templates Drop-Down List Radio Button Check Box List Box Hyperlinks Quiz Answers Final Exam Answers to Final Exam Index This page intentionally left blank Most of us have gone online to check our bank account, pay bills, or place an order from an e-commerce web site, and... languages and Framework classes A NET programming language is a language developers use to write instructions telling the ASP.NET engine what to do VB.NET and C# are each a NET prograrnming language Framework classes are like building blocks used to write ASPNET web pages You'll learn more about Framework classes in the next chapter Building an ASP.NET Web Page An ASPNET web page can be built using an editor... tojnd out what domains are still available There are thousands of web hosting companies Visit www.hostindex.com or www.tophosts.com for a listing of web hosting companies and their offerings When selecting a web hosting company, make sure that the company supports ASP.NET If it doesn't, then their web servers cannot handle your ASP.NET web pages You can get your feet wet with ASPNET without spending money... (Appendix A) and final exam answers (Appendix B) The questions in the final exam are practical and are drawn from all chapters in the book Take the exam when you have finished all the chapters and have completed all the quizzes CHAPTER An Inside Look a t AS P N ET Scratch the surface of an e-commerce web site and you’ll be surprised at what you won’t find-web pages Few web pages are stored in files on an e-commerce... browser An Inside Look a t ASP.NET They give you access from any place with an Internet connection A webbased application is never out of reach from anyone who is authorized to access it They increase customer satisfaction Customers go online rather than wait in line registering for class, placing an order, paying a bill, or checking their account status You can't do this with a static web page And there... in every chapter Like many developers, you probably learn by doing You'll like reading ASRNET 2.0 Demyst@ed because it uses a hands-on approach to teaching ASP.NET You can copy examples illustrated in this book from our web site and experiment with each ASPNET concept presented in this book Load the web page and see the effect of ASP.NET Copy the ASP-NET and reload the web page and see how the web page... Quiz Answers CHAPTER 6 Arrays What Is an Array? Declaring an Array Initializing an Array Array Elements Looping the Array Adding an Array Element Multidimensional Arrays Declaring a Multidimensional Array Referencing a Multidimensional Array Arrays and the Array Class How Many Elements Are There i n the Array? There Are Methods t o Our Madness Array Using Different Data Types Looking Ahead Quiz Answers... the above 7 You can write an ASP.NET web page using any editor a True b False 8 All dynamic web pages must be generated by ASPNET web pages a True b False 9 There is a visible difference between HTML markup code in a static web page and a dynamic one a True b False 10 A dynamic web page cannot contain images or audio a True b False CHAPTER 1 An Inside Look a t ASP.NET Answers 1 a VB.NET and b C# 2 b .NETFramework... commonly used in many commercial web sites Chapter 11: SQL Real world ASP.NET web applications require sophisticated queries to retrieve information from multiple tables, perform complex calculations, and efficiently organize information so it can be displayed on a web page In the previous chapter you learned how to connect your application to database management software and how to request and store data

Ngày đăng: 19/10/2014, 23:49

Từ khóa liên quan

Mục lục

  • Thuật toán Soloway-Strassen

    • 1 Thuật toán Soloway-Strassen

      • 1.1. Modulo số học

      • 1.2. Thặng dư bậc hai Modulo

      • 1.3. Ký hiệu Lagrăng

      • Kí hiệu Lagrăng được sử dụng trong tiêu chuẩn Euler do Euler chứng minh:

      • = a (p-1)/2 (mod p)

      • 1.4. Ký hiệu Jacobi

      • 1.5. Thuật toán Soloway-Strassen

      • INPUT: n là một số tự nhiên lẻ

      • OUTPUT: FALSE nếu n là hợp số

      • TRUE nếu n không phải hợp số

      • 1.6. Xác suất sai

      • Sau n lần lặp thì xác suất sai sẽ trở nên còn rất bé độ khoảng .

      • 2 Ví dụ minh họa

      • 3 Chứng minh tinh đúng đắn của thuật toán

      • 4 Chương trình

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

Tài liệu liên quan