KỸ THUẬT PHÂN TÍCH RA THỪA số TRÊN nền TÍNH TOÁN SONG SONG

7 501 7
KỸ THUẬT PHÂN TÍCH RA THỪA số TRÊN nền TÍNH TOÁN SONG SONG

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

Thông tin tài liệu

Báo cáo toàn văn Kỷ yếu hội nghị khoa học lần IX Trường Đại học Khoa học Tự nhiên, ĐHQG-HCM VII-O-11 KỸ THUẬT PHÂN TÍCH RA THỪA SỐ TRÊN NỀN TÍNH TOÁN SONG SONG Vũ Anh Tuấn1, Nguyễn Cao Đạt2 1 Trường Đại học Tây Nguyên Trường Đại học Bách khoa, ĐHQG-HCM Email:1toibantang@gmail.com, 2dat@cse.hcmut.edu.vn 2 TÓM TẮT Mặc dù chuẩn mã hoá khoá công khai RSA được giới thiệu cách đây hơn 35 năm nhưng hiện tại vẫn còn an toàn. Bởi vì nó dựa trên bài toán khó phân tích ra thừa số nguyên tố.Bài viết này sẽ tìm hiểu một số phương pháp phân tích ra thừa số nguyên tố và thử nghiệm với phương pháp mạnh nhất hiện nay là sàng trường số trên nền tính toán song song. Từ khóa: phân tích ra thừa số, tính toán song song, sàng trường số GIỚI THIỆU Cùng với bài toán logarith rời rạc (Discrete Logarithm Problem - DLP), bài toán phân tích ra thừa số nguyên tố (Prime Factorization Problem – PFP) là cơ sở của mã hoá khoá công khai. Chuẩn RSA ra đời năm 1977, dựa trên độ khó của bài toán phân tích ra thừa số nguyên tố, lấy theo tên của ba tác giả R. Rivest, A. Shamir, và L. Adleman được mô tả như sau [1]: (1) Chọn 𝑝, 𝑞 là hai số nguyên tố rất lớn và phân biệt (2) Tính 𝑛 = 𝑝𝑞 và 𝜙(𝑛) = (𝑝 − 1)(𝑞 − 1) (3) Chọn ngẫu nhiên một số nguyên 𝑒 (1 < 𝑒 < 𝜙(𝑛)) thỏa gcd(𝑒, 𝜙(𝑛)) = 1 (4) Tính 𝑑 = 𝑒 −1 (mod 𝜙 𝑛 ) (5) Công bố (𝑛, 𝑒) và giữ bí mật (𝑝, 𝑞, 𝑑). Trong đó, 𝑛 được gọi là modulo, 𝑒 là số mũ công khai (hay còn gọi là số mũ mã hóa) và 𝑑 là số mũ bí mật (hay còn gọi là số mũ giải mã). Bộ (𝑛, 𝑒) gọi là khóa công khai, còn (𝑝, 𝑞, 𝑑) là khóa bí mật. Khi B mã hóa thông điệp 𝑚 cho A thì B phải tính giá trị 𝑦 = 𝑒𝑘 (𝑚) = 𝑚𝑒 (mod 𝑛), với 𝑘 = (𝑛, 𝑒) Khi A muốn giải mã tìm 𝑚 từ 𝑦 thì A tính 𝑚 = 𝑑𝑘 ′ 𝑦 = 𝑦 𝑑 mod 𝑛 với 𝑘 ′ = 𝑑 hay 𝑘 ′ = (𝑑, 𝑝, 𝑞)nếu sử dụng định lý Số dư Trung Hoa để giải mã nhanh. RSA được sử dụng trong rất nhiều lĩnh vực đòi hỏi dữ liệu số cần được bảo mật. Nó được sử dụng trong các máy chủ, trình duyệt để bảo vệ dữ liệu mạng, trong quá trình xác thực, bảo vệ tính riêng tư, … và là thành phần cốt lõi của các hệ thống thanh toán điện tử. Do RSA là một chuẩn được công khai rộng rãi nên được rất nhiều nhà nghiên cứu phân tích cách tấn công. Tuy vậy, sau hơn 35 năm tồn tại, RSA vẫn được tin tưởng, do hiện tại bài toán phân tích số𝑛 ra thừa số nguyên tố chưa được giải quyết triệt để. Độ khó của nó không phải do không có cách giải, mà do thời gian thực hiện bằng máy tính là quá lâu, không thể chấp nhận được. Các thuật toán phân tích ra thừa số nguyên tố có thể được chia làm hai nhóm: Nhóm các thuật toán phân tích đặc biệt: bao gồm các phương pháp như phương pháp chia thử, phương pháp 𝑝 − 1, ―rho‖ 𝜌 của Pollard, phương pháp 𝑝 + 1 của Williams, đường cong elliptic (Elliptic Curve Method – ECM) của Lenstra... Nhóm thuật toán phân tích này hiệu quả khi các thừa số nguyên tố được chọn để lập mã là nhỏ, và có một số điểm đặc biệt. Nhóm các thuật toán phân tích tổng quát: bao gồm các phương pháp sàng bậc hai (Quadratic Sieve – QS), các biến thể của nó và phương pháp sàng trường số tổng quát (General Number Field Sieve – GNFS). Sự hiệu quả của nhóm này phụ thuộc vào chính kích thước số cần phân tích chứ không phụ thuộc vào tính chất cụ thể nào đó của nó. Trong thực tế, các số nguyên tố RSA được đề xuất là các số nguyên tố mạnh, có giá trị rất lớn do đó nhóm thuật toán phân tích đặc biệt không khả thi. Nhóm thuật toán tổng quát đang là hướng chính để giải quyết bài toán phân tích ra thừa số nguyên tố. Tuy nhiên, hạn chế về tốc độ của máy tính làm cho thời gian thực thi là không chấp nhận được. Để giải quyết vấn đề này, ngoài việc nghiên cứu cải thiện thuật toán, còn phải tăng tốc độ tính toán. Việc tận dụng môi trường song song là một giải pháp hiệu quả, do các yếu tố sau: Tốc độ của các bộ xử lý theo kiểu von Neumann đã dần tiến tới giới hạn. Giá thành của các bộ xử lý phần cứng giảm mạnh, tạo điều kiện để xây dựng những hệ thống nhiều bộ xử lý. Sự phát triển của công nghệ mạch tích hợp cho phép tạo ra những hệ thống đa nhân trên một chip. ISBN: 978-604-82-1375-6 67 Báo cáo toàn văn Kỷ yếu hội nghị khoa học lần IX Trường Đại học Khoa học Tự nhiên, ĐHQG-HCM Bài viết sau khi nhắc lại một số phương pháp sẽ tập trung vào phương pháp sàng trường số, và các kỹ thuật tận dụng môi trường tính toán song song nhằm làm giảm thời gian phân tích. CÁC PHƢƠNG PHÁP PHÂN TÍCH ĐẶC BIỆT Phƣơng pháp chia thử (Trivial Division) Thông thường khi cần phân tích số nguyên 𝑛 ra thừa số nguyên tố, trước khi phải thực hiện với các kĩ thuật mạnh hơn, chúng ta dùng phương pháp chia thử với các số nguyên tố ―nhỏ‖. Ở đây ―nhỏ‖ so với giá trị của 𝑛.Các số nguyên tố ―nhỏ‖ này có giá trị từ 2 đến 𝑛 [1]. Tuy nhiên thay vì chia thử từ 2 đến 𝑛 , ta chỉ cần chia thử cho 2, 3 và các số có dạng 𝑝 = 6𝑘 ± 1 với 𝑘 ∈ ℤ+ , 𝑝 ≤ 𝑛 (do các số dạng 6𝑘, 6𝑘 + 2, 6𝑘 + 3, 6𝑘 + 4 không thể là số nguyên tố). Thuật toán của phương pháp chia thử như sau: input: số nguyên n cần phân tích output: một thừa số nguyên tố của n 1. if𝑛 ≡ 0 (mod 2)return𝑝 = 2 2. if𝑛 ≡ 0 (mod 3)return𝑝 = 3 3. set 𝑝 = 3 𝑏 = 2 4. while𝑝 < 𝑛 set𝑝 = 𝑝 + 𝑏 if𝑛 ≡ 0 (mod 𝑝)return𝑝 set𝑏 = 6 – 𝑏 5. return 0 Thuật toán 1. Thuật toán chia thử (Trivial Division) Ưu điểm của phương pháp này là đơn giản, tuy nhiên nhược điểm là thời gian thực thi rất lớn khi 𝑛 là tích của hai số nguyên tố gần bằng nhau. Do đó, phương pháp này chỉ thích hợp khi 𝑛 có thừa số nguyên tố nhỏ. Phƣơng pháp 𝝆 Phương pháp phân tích thừa số nguyên tố mang tên 𝜌 do Pollard công bố năm 1975. Ý tưởng của phương pháp này dựa trên thuật toán tìm chu trình của Floyd. Bài toán tìm chu trình: Giả sử có hàm bất kỳ 𝑓 ∶ 𝑆 → 𝑆, với 𝑆 là một tập hữu hạn. Lấy 𝑥0 là một phần tử bất kỳ của 𝑆, ta luôn có một dãy các số 𝑥0 , 𝑥1 , 𝑥2 , … định nghĩa bởi 𝑥𝑖+1 = 𝑓(𝑥𝑖 )∀𝑖 ≥ 0. Vì 𝑆 là hữu hạn do đó chắc chắn tồn tại một chu trình. Thuật toán Floyd tìm chu trình: Floyd nhận thấy với bất kỳ số nguyên 𝑖 ≥ 𝜇 và 𝑘 ≥ 0, 𝑥𝑖 = 𝑥𝑖+ 𝑘𝜆 , trong đó λ là chiều dài của chu trình được tìm thấy. Đặc biệt, với 𝑖 = 𝑘𝜆 ≥ 𝜇, thì luôn có 𝑥𝑖 = 𝑥2𝑖 . Do đó, thuật toán bắt đầu với cặp (𝑥1 , 𝑥2 ) và tính toán tuần tự cặp (𝑥𝑖 , 𝑥2𝑖 ) từ các cặp(𝑥𝑖−1 , 𝑥2(𝑖−1) ) cho tới khi 𝑥𝑖 = 𝑥2𝑖 . Sau đó thuật toán sẽ lần lượt tìm giá trị được lặp lại đầu tiên 𝑥𝜇 và chiều dài ngắn nhất của chu trình 𝜆. Phương pháp 𝜌 áp dụng thuật toán Floyd với dãy số 𝑥0 , 𝑥1 , 𝑥2 , … với 𝑥0 = 2, 𝑥𝑖+1 = 𝑓 𝑥𝑖 = 𝑥𝑖 2 + 1 (mod 𝑝)∀𝑖 ≥ 0 để tìm𝑥𝑚 ≡ 𝑥2𝑚 (mod 𝑝) [1]. input: số nguyên 𝑛 cần phân tích output: một thừa số nguyên tố của 𝑛 1. Set𝑎 = 2, 𝑏 = 2 2. For𝑖 = 1, 2, …do: 2.1 Tính 𝑎 = 𝑎2 + 1 (mod 𝑛), 𝑏 = 𝑏 2 + 1 (mod 𝑛), 𝑏 = 𝑏 2 + 1 (mod 𝑛) 2.2 Tính 𝑑 = gcd(𝑎 − 𝑏, 𝑛) 2.3 If1 < 𝑑 < 𝑛then return𝑑 2.4 If𝑑 = 𝑛then Kết thúc mà không tìm được kết quả Thuật toán 2. Thuật toán 𝝆 Pollard Phương pháp phân tích thừa số nguyên tố 𝜌 của Pollard áp dụng thuật toán Floyd với tập 𝑆 gồm 𝑝 phần tử (là ước của 𝑛 và chưa biết) do đó tốc độ thuật toán phụ thuộc vào 𝑝. Vì vậy phương pháp này chỉ dùng được với những số 𝑛 có thừa số nguyên tố nhỏ. ISBN: 978-604-82-1375-6 68 Báo cáo toàn văn Kỷ yếu hội nghị khoa học lần IX Trường Đại học Khoa học Tự nhiên, ĐHQG-HCM Phƣơng pháp 𝒑 − 𝟏 Phương pháp 𝑝 − 1 của Pollard dựa vào định lý Fermat nhỏ (Little Theorem of Fermat) và khái niệm thừa số trơn - smooth. Định lý Fermat nhỏ: Nếu gcd(𝑎, 𝑝) = 1 thì 𝑎𝑝−1 ≡ 1 (mod 𝑝) Khái niệm smooth: Gọi 𝐵 là một số dương bất kỳ, khi đó số nguyên 𝑄 được gọi là 𝐵-smooth nếu tất cả các thừa số nguyên tố của 𝑄 nhỏ hơn hoặc bằng 𝐵. Ý tưởng của phương pháp 𝑝 − 1 là chọn một giá trị 𝐵 làm biên xét smooth. Tính giá trị 𝑄 là bội chung nhỏ nhất của tất cả các luỹ thừa cơ số nguyên tố nhỏ hơn 𝐵 mà nhỏ hơn n. Do đó: 𝑄 = 𝑞 ≤𝐵 𝑞 𝑙𝑛 𝑛/ 𝑙𝑛 𝑞 (vì 𝑞 𝑙 ≤ 𝑙𝑛 𝑛 𝑛 ⟹ 𝑙 𝑙𝑛 𝑞 ≤ 𝑙𝑛 𝑛 ⟹ 𝑙 ≤ 𝑙𝑛 𝑞 ). Nếu 𝑝 là một thừa số nguyên tố của 𝑛 mà 𝑝 − 1 là một số B-smooth thì 𝑝 − 1|𝑄, nên theo định lý Fermat nhỏ ta có 𝑎𝑄 ≡ 1 (mod p). Do đó nếu 𝑑 = gcd(𝑎𝑄 − 1, 𝑛) thì 𝑝|𝑑 [1]. Input: số 𝑛 cần phân tích Output: thừa số nguyên tố 𝑑 của 𝑛 1. Chọn ngưỡng smooth 𝐵. 2. Chọn số nguyên ngẫu nhiên 𝑎 (2 ≤ 𝑎 ≤ 𝑛 − 1), và tính 𝑑 = gcd(𝑎, 𝑛). If𝑑 ≥ 2then Return 𝑑 3. For each số nguyên tố 𝑞 ≤ 𝐵do: 3.1 Tính = ln 𝑛 ln 𝑞 𝑞𝑙 . 3.2 Tính 𝑎 ← 𝑎 (mod 𝑛) 4. Tính 𝑑 = gcd(𝑎 − 1, 𝑛) 5. If𝑑 = 1 hoặc 𝑑 = 𝑛then Kết thúc mà không tìm được kết quả Elsereturn𝑑 Thuật toán 3. Thuật toán 𝒑 − 𝟏 của Pollard Phương pháp phân tích thừa số nguyên tố 𝑝 − 1 của Pollard dựa vào điều kiện 𝑝 − 1 là một số 𝐵-smooth. Vì vậy phương pháp này chỉ dùng được với những số 𝑛 có thừa số nguyên tố 𝑝, mà 𝑝 − 1 thoả 𝐵-smooth. Phƣơng pháp đƣờng cong Elliptic (Elliptic Curve Method – ECM) Phương pháp 𝑝 − 1 của Pollard thành công khi 𝑝 − 1 là một số B-smooth với 𝑝 là một thừa số nguyên tố của 𝑛. Nhận thấy 𝑝 − 1 cũng là cấp của nhóm ℤ𝑝 ∗ , do đó phương pháp ECM tổng quát hoá thuật toán 𝑝 − 1 bằng cách thay nhóm ℤ𝑝 ∗ bằng một nhóm đường cong Elliptic bất kỳ trên ℤ𝑝 . Nếu cấp của nhóm được chọn smooth trong phạm vi 𝐵 thì khả năng cho kết quả là rất cao, ngược lại thì cần phải chọn một nhóm đường cong Elliptic khác. Mặc dù ECM khá mạnh, tuy nhiên nó vẫn thuộc nhóm các phương pháp phân tích đặc biệt nên không thể giải quyết bài toán một cách tổng quát. Bài viết không tập trung vào phương pháp này, chi tiết được trình bày trong tài liệu tham khảo [2]. CÁC PHƢƠNG PHÁP SÀNG Phƣơng pháp Fermat Phương pháp Fermat dựa trên ý tưởng sai biệt bình phương. Gọi 𝑛 là số lẻ cần phân tích, tìm các cặp số nguyên 𝑥 và 𝑦 sao cho 𝑥 2 ≡ 𝑦 2 mod n và 𝑥 ≢ ± 𝑦 (mod 𝑛) Khi đó gcd 𝑥 − 𝑦, 𝑛 và gcd⁡(𝑥 + 𝑦, 𝑛) là những thừa số không tầm thường của 𝑛 [1]. 1. If𝑛 ≡ 0 (mod 2) return2 2.𝑥 = 𝑛 𝑧=𝑥∗𝑥−𝑛 3. Trong khi 𝑧 không là thặng dư bậc hai mod 𝑛 và 𝑥 < (𝑛 + 1)/2 3.1. Tính 𝑧 = 𝑧 + 2 ∗ 𝑥 + 1 3.2. Tính 𝑥 = 𝑥 + 1 4. If𝑥 < (𝑛 + 1)/2 return𝑥 − 𝑧 Else return0 Thuật toán 4. Thuật toán Fermat Trong trường hợp tổng quát, 𝑛 rất lớn thì rất khó để tìm được 𝑥, 𝑦 sao cho 𝑥 2 ≡ 𝑦 2 mod n . ISBN: 978-604-82-1375-6 69 Báo cáo toàn văn Kỷ yếu hội nghị khoa học lần IX Trường Đại học Khoa học Tự nhiên, ĐHQG-HCM Phương pháp sàng bậc hai Ý tưởng dựa trên khái niệm thừa số trơn – smooth đã được nhắc tới trong phương pháp 𝑝 − 1. Dùng kĩ thuật sàng để tìm ra các giá trị 𝑥 2 mod 𝑛 thoả 𝐵-smooth. Tích một phần các giá trị tìm được có khả năng dạng 𝑦 2 mod 𝑛 [3]. Lấy 𝑄 𝑥 = (𝑥 + 𝑛 )2 − 𝑛 1. Tính toán dữ liệu khởi động Chọn cận trên cho cơ sở thừa số nguyên tố 𝐵. Khởi tạo cơ sở thừa số nguyên tố (𝑝1 , 𝑝2 , … , 𝑝𝑡 ) với 𝑝1 = −1; ∀𝑖 ∈ 2, 𝑡 : 𝑝𝑖 < 𝐵 và 2 Với mỗi 𝑝𝑖 giải phương trình 𝑚 = 𝑛 (mod 𝑝𝑖 ) bằng thuật toán Shank-Tonelli lưu lại 𝑆𝑖1 = 𝑚 − 𝑛 , 𝑆𝑖2 = −𝑚 − 𝑛 2. Sàng tìm tập 𝑈 gồm 𝑡 + 1 phần tử ˗ Với mỗi 𝑥 ∈ −𝑀, 𝑀 , tính 𝑞 𝑥 = 𝑄 𝑥 ˗ Với mỗi 𝑝𝑖 xem xét tất cả𝑥 = 𝑆𝑖1 + 𝑘 ∗ 𝑝𝑖 và 𝑥 = 𝑆𝑖2 + 𝑘 ∗ 𝑝𝑖 với 𝑘 ∈ ℤ Tính 𝑞 𝑥 = 𝑞(𝑥)/(𝑝𝑖 )𝑘 với k là bậc cao nhất có thể có của 𝑞(𝑥) đối với 𝑝𝑖 ˗ 𝑞 𝑥 = 1 𝑡𝑕ì 𝑄 𝑥 là 𝐵-smooth và đưa 𝑄 𝑥 vào trong 𝑈 3. Đại số tuyến tính Tìm ra trong tập 𝑈, tập 𝑇 gồm các 𝑄(𝑥) mà tích là một bình phương 𝑟 2 𝑗 =1 𝑄 𝑥𝑗 = 𝑣 4. Tính 𝑢= 𝑟 𝑗 =1 (𝑥 + 𝑛) 𝑣= 𝑟 𝑗 =1 𝑄 𝑛 𝑝𝑖 =1 𝑥𝑗 Kết quả rả về là gcd 𝑢 + 𝑣, 𝑛 Thuật toán 5. Thuật toán sàng bậc hai Với thuật toán sàng bậc hai như trên thì ta thấy giá trị 𝑄(𝑥) tăng rất nhanh, do đó khả năng thoả 𝐵-smooth rất thấp, nên khi 𝑄(𝑥) tăng tới một giá trị nào đó thì có thể thay đa thức bởi một đa thức khác, từ đó ta có phương pháp sàng bậc hai nhiều đa thức với 𝑄 𝑥 = (𝑎𝑥 + 𝑏)2 − 𝑛 (Multiple Polynomial Quadratic Sieve – MPQS).Tuy nhiên phương pháp MPQS phải tốn chi phí khá lớn ở mỗi bước khởi tạo lại đa thức. Theo [4], chi phí chuyển đổi đa thức chiếm khoảng 25%–30% tổng chi phí chương trình. Phương pháp sàng bậc hai tự khởi tạo (Self-Initializing Quadratic Sieve – SIQS) giúp làm giảm chi phí chuyển đổi đa thức bằng cách vẫn sử dụng đa thức dạng 𝑄 𝑥 = (𝑎𝑥 + 𝑏)2 − 𝑛 nhưng giá trị 𝑎 được cố định trong nhiều đa thức và có giá trị bằng tích của 𝑘số nguyên tố lẻ thuộc cơ sở thừa số. Khi đó sẽ có 2𝑘−1 giá trị 𝑏 là nghiệm của 𝑏 2 = 𝑛 (mod 𝑎). Phƣơng pháp sàng trƣờng số Phương pháp sàng trường số trong bài viết này là phương pháp sàng trường số tổng quát (General Number Field Sieve – GNFS), phân biệt với phương pháp sàng trường số đặc biệt (Special Number Field Sieve – SNFS). Trong phương pháp sàng bậc hai, việc tìm 𝑥, 𝑦 sao cho 𝑥 2 ≡ 𝑦 2 (mod 𝑛) dựa trên một đồng cấu vành 𝑓: ℤ → ℤ/𝑛ℤ với 𝑓 𝑥 = 𝑥 2 − 𝑛, ánh xạ một bình phương trong ℤ tới một bình phương trong ℤ/𝑛ℤ. Tổng quát hơn ta có tồn tại một vành ℛ và một đồng cấu vành 𝜙: ℛ → ℤ/𝑛ℤ. Nếu 𝛽 ∈ ℛ và 𝜙 𝛽 2 = 𝑦 2 (mod 𝑛) và 𝑥 = 𝜙 𝛽 (mod 𝑛) thì ta có: 𝑥 2 ≡ 𝜙 𝛽 2 ≡ 𝜙 𝛽 2 ≡ 𝑦 2 (mod 𝑛) - - - - 1. Chọn đa thức (Polynomial Selection) Chọn số nguyên 𝑚, chọn đa thức bất khả quy 𝑓(𝑥) ∈ ℤ[𝑥] có bậc 𝑑 thoả 𝑓(𝑚) ≡ 0 (mod 𝑛). Gọi 𝜃 ∈ ℂ là một nghiệm của 𝑓(𝑥) = 0. 2. Khởi tạo cơ sở thừa số (Set up Factor Base) Cơ sở thừa số RFB được lưu trữ là các cặp (𝑟, 𝑝) với 𝑝 nguyên tố và 𝑟 ≡ 𝑚 (mod 𝑝) Cơ sở thừa số đại số AFBsẽ được lưu trữ là các cặp (𝑟, 𝑝) với 𝑝 nguyên tố và 𝑟 ∈ ℤ/nℤ sao cho 𝑓 𝑟 ≡ 0 (mod 𝑝). 3. Sàng tuyến tính (Line Sieving) Tìm một lượng cần thiết các cặp số nguyên (𝑎, 𝑏)nguyên tố cùng nhau sao cho các giá trị (𝑎 + 𝑏𝑚) mịn trên RFB và 𝑁 𝑎 + 𝑏𝜃 mịn trên AFB. 4. Đại số tuyến tính (Linear Algebra) Xây dựng ma trận trong đó mỗi cột của ma trận tương ứng với một số nguyên tố trong các cơ sở RFB, AFB. Mỗi dòng tương ứng với một cặp (𝑎, 𝑏). Giá trị các phần tử trong ma trận là số mũ của các thừa số nguyên tố trong cơ sở khi phân tích giá trị (𝑎 + 𝑏𝑚), 𝑁(𝑎 + 𝑏𝜃). Áp dụng thuật toán Lanczos để tìm ra một quan hệ phụ thuộc tuyến tính trên các dòng của ma trận. ISBN: 978-604-82-1375-6 70 Báo cáo toàn văn Kỷ yếu hội nghị khoa học lần IX Trường Đại học Khoa học Tự nhiên, ĐHQG-HCM - 5. Tính căn bậc hai (Square Root) Tính 𝑥 với 𝑥 2 ≡ 𝜙 𝑓 ′ 𝜃 2 . 𝑎,𝑏 ∈𝑇(𝑎 + 𝑏 𝜃) bằng thuật toán của Shanks - Tonelli và định lý số dư Trung Hoa (Chinese Remainder Theorem – CRT) Tính 𝑦 với 𝑦 2 ≡ 𝑓 ′ 𝑚 2 . 𝑎,𝑏 ∈𝑇(𝑎 + 𝑏 𝑚) Thừa số của 𝑛 sẽ là: 𝑔𝑐𝑑(𝑥 ± 𝑦 , 𝑛) Thuật toán 6. Thuật toán sàng trường số Sàng trường số là thuật toán phân tích ra thừa số nguyên tố mạnh nhất hiện nay, nhưng được dùng để phân tích các số rất lớn, nên việc cải tiến, tối ưu cài đặt là một yêu cầu bắt buộc. Trong phần tiếp theo sẽ trình bày một số kỹ thuật được sử dụng trong quá trình hiện thực bước sàng, là bước có thời gian tính toán lớn nhất. KỸ THUẬT TĂNG TỐC BƢỚC SÀNG TRÊN NỀN TÍNH TOÁN SONG SONG Lattice Sieve Hiện nay, trong bước sàng, Lattice Sieve (sàng lưới) được công nhận là phương pháp hiệu quả nhất. Các số RSA được phân tích gần đây đều sử dụng phương pháp này [5]. Lattice Sieve được giới thiệu trong tài liệu [6], chia cơ sở thừa số thành 3 phần: S : các số nguyên tố nhỏ p ≤ B0 M : các số nguyên tố trung bình B0 < 𝑝 ≤ B1 L : các số nguyên tố lớn B1 < 𝑝 ≤ B2 (B2 lớn hơn B1 rất nhiều) 1. Chọn vùng 𝑅 các cặp (𝑎, 𝑏) được sàng 2. Với một số 𝑞 trong M, chỉ sàng những cặp (𝑎, 𝑏) trong 𝑅 với𝑎 + 𝑏𝑚 ≡ 0 (mod 𝑞) ˗ Sàng giá trị 𝑎 + 𝑏𝑚 với các số 𝑝 < 𝑞 ˗ Sàng giá trị 𝑁(𝑎, 𝑏) với tất cả các số nguyên tố trong S và M Thuật toán 7. Thuật toán Lattice Sieve Các cặp (𝑎, 𝑏) thoả 𝑎 + 𝑏𝑚 ≡ 0 (mod 𝑞) sẽ tạo nên một lưới 𝐿𝑞 trong mặt phẳng(𝑎, 𝑏). Dễ dàng tìm được hai vector cơ sở của lưới này là: 𝑉1 = (𝑎1 , 𝑏1 ) và 𝑉2 = (𝑎2 , 𝑏2 ) Khi đó một một điểm (𝑐, 𝑑) của lưới có dạng 𝑐 ∙ 𝑉1 + 𝑑 ∙ 𝑉2 tương ứng 𝑎, 𝑏 = (𝑐 ∙ 𝑎1 + 𝑑 ∙ 𝑎2 , 𝑐 ∙ 𝑏1 + 𝑑 ∙ 𝑏2 ) Phương pháp Lattice Sieve hiệu quả hơn phương pháp sàng tuyến tính (Line Sieving) do phương pháp sàng tuyến tính dựa trên mảng một chiều để duyệt qua tất cả các giá trị của cặp (a, b) trong khi Lattice sieve sàng một cách rất chủ động trên sàng hai chiều. Tăng tốc sàng dựa trên tính toán song song Bước sàng có thời gian thực thi rất lớn, nên việc hiện thực song song trên nhiều máy tính là cần thiết. Việc song song đối với bước sàng có thể theo hai cách: Cách 1: Nhiều máy tính sàng một giá trị 𝑞 Cách 2: Mỗi máy tính sàng một giá trị 𝑞 Với cách 1 thì các máy tính phải chia sẻ vùng nhớ, mỗi máy sẽ sàng một phần lưới 𝐿𝑞 tương ứng với kích thước bộ nhớ L1-cache. Tuy nhiên với cách này thì việc quản lý phức tạp và thời gian trao đổi dữ liệu giữa các máy lớn do đó rất ít khi được sử dụng. Song song hoá bước sàng theo cách 2 hiệu quả hơn cách 1, và được sử dụng trong hầu hết các hệ thống thực nghiệm. Với cách song song hoá này thì mỗi máy trạm (client) sẽ được giao sàng một số lượng thích hợp giá trị 𝑞, sau khi sàng xong các số 𝑞 được giao, gửi kết quả cho máy chủ (master) và master sẽ tổng hợp các kết quả sàng (Bảng 1). Nếu số lượng kết quả sàng chưa đủ thì master tiếp tục giao các giá trị 𝑞 cho các client. Bảng 1. Mô hình sàng trên một máy và ba máy Số máy 𝑞 cần sàng [𝑞0 , 𝑞1 ] Thời gian sàng 𝑡 ISBN: 978-604-82-1375-6 [𝑞0 , 𝑞1 3 ] 𝑞1 𝑞1∗2 [ , 3 3 ≈ ] 𝑞1∗2 [ 3 , 𝑞1 ] 𝑡 3 71 Báo cáo toàn văn Kỷ yếu hội nghị khoa học lần IX Trường Đại học Khoa học Tự nhiên, ĐHQG-HCM Thực nghiệm song song bằng chương trình mã nguồn mở MSIEVE và GGNFS với 32 core CPU 2.20GHz, hệ điều hành Linux 64 bit với các trường hợp như trong Bảng 2 được kết quả về mặt thời gian thực thi và dung lượng lưu trữ như trong Hình 1 và Hình 2. Bảng 2. Các trường hợp thực nghiệm phân tích ra thừa số nguyên tố Số kí tự của 𝑛 = 𝑝 × 𝑞 Số kí tự của 𝑝 Số kí tự của 𝑞 100 45 55 105 47 58 110 50 60 115 53 62 120 56 64 126 51 76 129 (RSA-129) 64 65 giờ 6 5 Tổng thời gian 4 3 Thời gian sàng 2 1 0 95 100 105 110 115 120 125 130 135 số kí tự của n Hình 1. So sánh thời gian phân tích ra thừa số theo độ lớn của n ISBN: 978-604-82-1375-6 72 Báo cáo toàn văn Kỷ yếu hội nghị khoa học lần IX Trường Đại học Khoa học Tự nhiên, ĐHQG-HCM MB 5000 4500 4000 3500 Dung lượng lưu trữ 3000 2500 2000 1500 1000 500 số kí tự của n 0 95 100 105 110 115 120 125 130 135 Hình 2. So sánh dung lượng lưu trữ trong phân tích thừa số theo độ lớn của n KẾT LUẬN Kết quả thực nghiệm ta thấy thời gian của bước sàng chiếm phần lớn thời gian phân tích và tăng nhanh khi kích thước n tăng lên. Với số RSA-129, có 129 kí tự thập phân (426 bit), hệ thống 32 core đã phải phân tích trong 5.11 giờ, thời gian sàng là 4.16 giờ và dung lượng đĩa cứng cần thiết là 4.5GB. Do đó để thực hiện với các số lớn hơn nhiều thì cần phải song song hoá với những hệ thống có số lượng máy lớn hơn rất nhiều. Và với các số RSA-1024 thì hệ thống mã hoá khoá công khai RSA vẫn an toàn. Việc song song trên các máy trạm làm cho tốc độ tính toán tăng lên. Tuy nhiên vẫn có thể làm tăng hơn nữa tốc độ tính toán bằng cách tận dụng thêm sức mạnh của GPU. Do đó hướng phát triển là chúng ta cần cài đặt thư viện tương tự GMP trên GPU, sau đó song song hoá thuật toán sàng trường số trên GPU để tăng hiệu quả thực hiện. INTEGER FACTORIZATION TECHNIQUE BASED ON PARALLEL COMPUTING Vu Anh Tuan1, Nguyen Cao Đat2 1 Tay Nguyen University University of Technology, VNU-HCM 2 ABSTRACT RSA Public-Key Cryptography Standard is described more than 35 years ago, but it is still secure. Because it is based on Prime Factorization Problem (PFP). This paper will survey some methods for this problem and implement parallel computing the Number Field Sieve Algorithm. Key words: prime factorization, parallel computin, number filed sieve. TÀI LIỆU THAM KHẢO [1] Menezes, P.V. Oorschot and S.Vanstone, Handbook of Applied Cryptography, CRC Press, Florida, 1997, pp. 286 90-94 . [2] H.W. Lenstra Jr, Factoring integers with elliptic curves, The Annals of Mathematics 126(1987) 649-673. [3] J. Buchmann,V. Muller, Algorithms for Factoring Integers, Technische Universität Darmstadt, Darmstadt, 2005, pp. 40. [4] S.Contini, Factoring Large Integers with the Self-Initializing Quadratic Sieve, Master Thesis, University of Georgia, Georgia, 1997, pp.6-9. [5] Thorsten Kleinjung, Kazumaro Aoki, Jens Franke, Arjen K. Lenstra, Emmanuel Thomé, Joppe W. Bos, Pierrick Gaudry, Alexander Kruppa, Peter L. Montgomery, Dag Arne Osvik, Herman te Riele, Andrey Timofeev, Paul Zimmermann, Factorization of a 768-Bit RSA Modulus, Advances in Cryptology6223(2010) 333-350. [6] J. M. Pollard, The lattice sieve, Lecture Notes in Mathematics 1554(1993) 43-49. ISBN: 978-604-82-1375-6 73 ... +

Ngày đăng: 09/10/2015, 06:39

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan