Luận án Nghiên cứu, phát triển một số thuật toán sinh khóa RSA chứa backdoor

Xét trường hợp kẻ tấn công có khóa công khai của người dùng, không có khóa bí mật của người thiết kế. Người thiết kế sử dụng hệ mật đối xứng AES có độ dài tham số an toàn AES ≥ 128 tương đương với độ dài tham số an toàn của người dùng G1 ≥ 2048 (mục 1.4.2). Vì kẻ tấn công không có khóa bí mật của người thiết kế và độ an toàn hệ mật của người thiết kế được lựa chọn tương đương với độ an toàn hệ mật người dùng nên kẻ tấn công không phá vỡ được hệ mật của người dùng thì cũng không phá vỡ được hệ mật của người thiết kế. Căn cứ vào mục 1.2.4.4, tính bảo mật được đánh giá ở mức “tốt”.

pdf126 trang | Chia sẻ: tueminh09 | Ngày: 24/01/2022 | Lượt xem: 479 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Luận án Nghiên cứu, phát triển một số thuật toán sinh khóa RSA chứa backdoor, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
en và đề xuất môi trường ứng dụng. Kết quả nghiên cứu về thuật toán backdoor BD3 được công bố tại bài báo [2] trong mục “Các công trình khoa học đã công bố”. 3.1. Thuật toán sinh khóa trung thực tuân thủ điều kiện “P2” 3.1.1. Giới thiệu thuật toán Thuật toán sinh khóa RSA trung thực (thuật toán G0) tuân thủ điều kiện “P2” là thuật toán sinh khóa RSA trung thực tuân thủ điều kiện “P2” tại mục 1.4.3 và theo mô tả thuật toán tại mục B.3.4 appendix B FIPS 186-4 [27]. Nhìn chung thuật toán sinh khóa RSA trung thực tuân thủ điều kiện “P2” dựa trên thuật toán sinh khóa RSA tổng quát. Điểm khác biệt là trong thuật toán sinh khóa trung thực tuân thủ điều kiện “P2”, các số nguyên tố p, q được tạo dựa trên cơ sở của thuật toán tìm số nguyên tố mạnh của John Gordon [31]. Sau khi được tạo, các tham số đều được kiểm tra thỏa mãn điều kiện “P2” theo chuẩn FIPS 186-4. Trong phần tạo số nguyên tố p, q theo thuật toán tìm số nguyên tố mạnh của John Gordon, các số nguyên tố phụ p1, p2, q1, q2 được tạo dựa trên thuật toán sinh số nguyên tố chứng minh được của Maurer ([41]). Các giá trị Bp , Bq được tính dựa theo định lý phần dư Trung Hoa (CRT). Hàm RandomProvablePrime() tạo số nguyên tố chứng minh được theo phương pháp của Maurer [41]. Nội dung thuật toán sinh khóa RSA trung thực tuân thủ điều kiện “P2” được mô tả dưới dạng sơ đồ khối ở hình 3.1 và mã giả thuật toán ở mục thuật toán 3.1. 82 Sơ đồ khối thuật toán sinh khóa trung thực tuân thủ điều kiện “P2”: Mã giả thuật toán sinh khóa trung thực tuân thủ điều kiện “P2”: Input: e, nlen, n1, n2, n3, n4 Output: p, q, n, d Start e, nlen, n1, n2, n3, n4 2 16 < e < 2 256 nlen 1024 Trả về mã lỗi Stop No Tạo số nguyên tố p Tạo các số nguyên tố phụ q1, q2 GCD (q - 1, e) = 1 (1,41 . 2 nlen/2-1 q < 2nlen/2) |p – q| > 2nlen/2 – 100 Yes Yes No Tính n, d 2 nlen/ 2 < d< LCM (p-1, q-1) Yes No p, q, n, d Hình 3.1. Sơ đồ khối thuật toán sinh khóa trung thực tuân thủ điều kiện P2" GCD (p - 1, e) = 1 (1,41.2 nlen/2-1 p < 2 nlen/2 ) Yes No Tạo số nguyên tố qTạo số nguyên tố q Chiều dài tối thiểu và tối đa của các số nguyên tố phụ q1, q2 No Yes Tạo các số nguyên tố phụ p1, p2 Chiều dài tối thiểu và tối đa của các số nguyên tố phụ p1, p2 No Yes Tạo số nguyên tố p 83 1: Input: e, nlen, n1, n2, n3, n4 ; 2: if (e 2256 or nlen < 1024) then return failure; // generate p 3: p1 = RandomProvablePrime(2𝑛1−1, 2𝑛1) ; 4: p2 = RandomProvablePrime (2𝑛2−1, 2𝑛2) ; 5: Ap = p1.p2 ; 6: 𝐵𝑝 = { 1 𝑚𝑜𝑑 𝑝1 −1 𝑚𝑜𝑑 𝑝2 ; // using CRT 7: Sp = { Ap.i + Bp }; (i = 1, 2, 3, ) 8: 𝑝 = 𝑃𝑟𝑖𝑚𝑒 (𝑆𝑝 ∩ (√2. 2 𝑛𝑙𝑒𝑛/2−1, 2𝑛𝑙𝑒𝑛/2 − 1));such that gcd(p - 1, e) = 1 // generate q 9: q1 = RandomProvablePrime(2𝑛3−1, 2𝑛3) ; 10: q2 = RandomProvablePrime(2𝑛4−1, 2𝑛4) ; 11: Aq = q1.q2 ; 12: 𝐵𝑞 = { 1 𝑚𝑜𝑑 𝑞1 −1 𝑚𝑜𝑑 𝑞2 ; //using CRT 13: Sq ={ Aq.j + Bq } ; (i = 1, 2, 3, ) 14: 𝑞 = 𝑃𝑟𝑖𝑚𝑒 (𝑆𝑞 ∩ (√2. 2 𝑛𝑙𝑒𝑛/2−1, 2𝑛𝑙𝑒𝑛/2 − 1));such that gcd(q - 1, e) = 1 15: if ( |p – q| ≤ 2 nlen/2 – 100 ) then go to step 9 ; // compute n, d 16: n = p.q ; 17: d = e–1 mod (LCM(p - 1, q - 1)) ; 18: if ( d < 2 nlen/ 2 ) then go to step 9 ; 19: return (p, q, n, d) ; Thuật toán 3.1. Thuật toán sinh khóa trung thực tuân thủ điều kiện “P2”. 84 3.1.2. Lực lượng khóa của thuật toán Xét cách tạo p: Vì p1 , p2 là các số nguyên tố thỏa mãn điều kiện tại bảng 1.3 (Chiều dài tối thiểu và tối đa của các số nguyên tố phụ, mục 1.4.3) nên ước lượng chiều dài theo bit của p1 , p2 : (nlen/16) ≤ log2 p1 , log2 p2 ≤ (nlen/8 - 9). Tập Sp được tạo bởi p1 và p2 theo thuật toán sinh số nguyên tố chứng minh được của Maurer. Số lượng số nguyên tố được sinh bởi thuật toán của Maurer sau vài mức đệ quy đạt khoảng 10% trong tất cả các số nguyên tố (mục 3.4 trong [41]). Vậy số lượng các số nguyên tố p1 và p2 = {10% các số nguyên tố (2nlen/16, 2nlen/8-9)}≈ 1/8 * các số nguyên tố (2nlen/16, 2nlen/8-9) #{𝑝1} = #{𝑝2} = 2 −3. (𝜋 (2 𝑛𝑙𝑒𝑛 8 −9) − 𝜋 (2 𝑛𝑙𝑒𝑛 16 )) = = 2−3. ( 2 𝑛𝑙𝑒𝑛 8 −9 ( 𝑛𝑙𝑒𝑛 8 −9).ln 2 − 2 𝑛𝑙𝑒𝑛 16 𝑛𝑙𝑒𝑛 16 .ln 2 ) = 2−3. 𝑛𝑙𝑒𝑛 16 .2 𝑛𝑙𝑒𝑛 8 −9−(𝑛𝑙𝑒𝑛−9).2 𝑛𝑙𝑒𝑛 16 ( 𝑛𝑙𝑒𝑛 8 −9). 𝑛𝑙𝑒𝑛 16 .ln 2 > 2𝑛𝑙𝑒𝑛/8−14 𝑛𝑙𝑒𝑛/8 = 2𝑛𝑙𝑒𝑛/8−11 𝑛𝑙𝑒𝑛 (3.1) Vì p là một số nguyên tố nằm trong tập Sp và nằm trong khoảng (√2. 2𝑛𝑙𝑒𝑛/2−1, 2𝑛𝑙𝑒𝑛/2 − 1 ). Ký hiệu s ∈ Sp , ta có s = Ap.i + Bp, (bước 7), Ta có √2. 2𝑛𝑙𝑒𝑛/2−1 < 𝐴𝑝. 𝑖 + 𝐵𝑝 < 2 𝑛𝑙𝑒𝑛/2 − 1 ⇔ √2.2𝑛𝑙𝑒𝑛/2 −1−𝐵 𝐴𝑝 ≤ 𝑖 ≤ 2𝑛𝑙𝑒𝑛/2 −𝐵−1 𝐴𝑝 ⇔ √2.2𝑛𝑙𝑒𝑛/2 −1−𝐵 𝑝1.𝑝2 ≤ 𝑖 ≤ 2𝑛𝑙𝑒𝑛/2 −𝐵−1 𝑝1.𝑝2 ⇔ √2.2𝑛𝑙𝑒𝑛/2 −1−𝐵 2𝑛𝑙𝑒𝑛/4 −18 ≤ 𝑖 ≤ 2𝑛𝑙𝑒𝑛/2 −𝐵−1 2𝑛𝑙𝑒𝑛/4 −18 (p1.p2 = 2nlen/4 – 18, dòng 2 bảng 1.3) 85 ⇒ #{𝑠} = #{𝑖} = 2𝑛𝑙𝑒𝑛/2 −√2.2𝑛𝑙𝑒𝑛/2 −1 2𝑛𝑙𝑒𝑛/4 −18 = (2−√2).2𝑛𝑙𝑒𝑛/2 −1 2𝑛𝑙𝑒𝑛/4 −18 ⇔ 218−1(2−√2).2𝑛𝑙𝑒𝑛/2 2𝑛𝑙𝑒𝑛/4 = 217. 0,6. 2𝑛𝑙𝑒𝑛/4 ≈ 216. 2𝑛𝑙𝑒𝑛/4 = 2𝑛𝑙𝑒𝑛/4+16 Vậy # Sp với mỗi một cặp giá trị p1, p2 là: 2𝑛𝑙𝑒𝑛/4+16 (3.2) Vậy số lượng các số nguyên có thể được tạo ra bởi tập Sp, # Sp = #{p1}. #{p2}.#{i} = 2 𝑛𝑙𝑒𝑛/8−11 𝑛𝑙𝑒𝑛 . 2𝑛𝑙𝑒𝑛/8−11 𝑛𝑙𝑒𝑛 . 2𝑛𝑙𝑒𝑛/4+16 = 2𝑛𝑙𝑒𝑛/2−6 𝑛𝑙𝑒𝑛2 Theo công thức (1.7), ta có Pr[𝑠ố 𝑘 𝑏𝑖𝑡 𝑙à 𝑛𝑔𝑢𝑦ê𝑛 𝑡ố] = 1 𝑘𝑙𝑛2 Số lượng số nguyên tố p, #{p} = 2𝑛𝑙𝑒𝑛/2−6 𝑛𝑙𝑒𝑛2.𝑛𝑙𝑒𝑛/2.𝑙𝑛2 ≈ 2𝑛𝑙𝑒𝑛/2−4 𝑛𝑙𝑒𝑛3 (3.3) Xét cách tạo q: Theo (3.1), ta có: #{𝑞1} = #{𝑞2} = 2𝑛𝑙𝑒𝑛/8−11 𝑛𝑙𝑒𝑛 Ký hiệu u là một số nguyên tố và v là một số nguyên; (u, v ∈ Sq ) và (u, v ∈ {ngoài khoảng điều kiện (1.9)} ⇔ {p - 2nlen/2 -100 ≤ u, v ≤ p + 2nlen/2 -100} (3.4) Vì v ∈ Sq, nên v = Aq.j + Bq , do vậy p - 2nlen/2 -100 ≤ Aq.j + Bq ≤ p + 2nlen/2 -100 ⇔ 𝑝−2𝑛𝑙𝑒𝑛/2−100−𝐵𝑞 𝐴𝑞=𝑞1.𝑞2 ≤ 𝑗 ≤ 𝑝+2𝑛𝑙𝑒𝑛/2−100−𝐵𝑞 𝐴𝑞=𝑞1.𝑞2 #{𝑗} = 𝑝 + 2𝑛𝑙𝑒𝑛/2 −100 − (𝑝 − 2𝑛𝑙𝑒𝑛/2 −100) 2𝑛𝑙𝑒𝑛/4 −18 = 2. 2𝑛𝑙𝑒𝑛/2 −100 2𝑛𝑙𝑒𝑛/4 −18 = 2𝑛𝑙𝑒𝑛/4−81 Vậy #{v} = #{q1}. #{q2}.#{j} = 2𝑛𝑙𝑒𝑛/8−11 𝑛𝑙𝑒𝑛 . 2𝑛𝑙𝑒𝑛/8−11 𝑛𝑙𝑒𝑛 . 2𝑛𝑙𝑒𝑛/4−81 = 2𝑛𝑙𝑒𝑛/2−103 𝑛𝑙𝑒𝑛2 86 #{u} = #{v}. Pr[số k bit là số nguyên tố] = 2𝑛𝑙𝑒𝑛/2−103 𝑛𝑙𝑒𝑛2 . 1 𝑛𝑙𝑒𝑛/2.𝑙𝑛2 ≈ 2𝑛𝑙𝑒𝑛/2−101 𝑛𝑙𝑒𝑛3 Vì q được tạo giống như p và sau p thỏa mãn điều kiện (1.9), nằm ngoài khoảng (3.4), mà giá trị khoảng (3.4) có giá trị: (p + 2nlen/2 -100 – (p - 2nlen/2 - 100) = 2nlen/2 -99) nhỏ hơn rất nhiều so với khoảng tồn tại của p và q (điều kiện (1.8)) với giá trị là : (2 − √2). 2𝑛𝑙𝑒𝑛/2 −1 ≈ 0,6. 2𝑛𝑙𝑒𝑛/2 −1. Nên #{q} = #{p} - #{u} = 2𝑛𝑙𝑒𝑛/2−4 𝑛𝑙𝑒𝑛3 − 2𝑛𝑙𝑒𝑛/2−101 𝑛𝑙𝑒𝑛3 > 2𝑛𝑙𝑒𝑛/2−5 𝑛𝑙𝑒𝑛3 (3.5) Vậy lực lượng khóa của thuật toán là, #{(p, q, e)} = #{p}.#{q}.#{e} = 2255. 2𝑛𝑙𝑒𝑛/2−4 𝑛𝑙𝑒𝑛3 . 2𝑛𝑙𝑒𝑛/2−5 𝑛𝑙𝑒𝑛3 = 2255. 2𝑛𝑙𝑒𝑛−9 𝑛𝑙𝑒𝑛6 (3.6) 3.2. Đề xuất thuật toán backdoor BD3 3.2.1. Giới thiệu thuật toán 3.2.1.1. Tổng quan thuật toán Thuật toán backdoor BD3 là thuật toán sinh khóa RSA chứa backdoor tuân thủ điều kiện “P2” theo chuẩn FIPS 186-4, có các bước thực hiện dựa trên thuật toán sinh khóa trung thực tuân thủ điều kiện G0 mục 2.1.2. Mục tiêu: xây dựng thuật toán sinh khóa chứa backdoor tạo ra các cặp khóa với các tham số mạnh để sử dụng trong các trường hợp đặc biệt. Ý tưởng thiết kế: - Dựa trên thuật toán tìm số nguyên tố mạnh của John Gordon để xây dựng các số nguyên tố chính (p, q), dựa trên thuật toán sinh số nguyên tố chứng minh được của Maurer để tạo các số nguyên tố phụ. - Tuân thủ điều kiện “P2” theo chuẩn FIPS 186-4. 87 - Khôi phục khóa theo phương pháp phân tích nhân tử của Coppersmith. Điểm độc đáo của thuật toán BD3 là kỹ thuật sử dụng thông tin backdoor được dẫn xuất từ số mũ công khai e, tham số ngẫu nhiên t và kỹ thuật nhúng thông tin backdoor vào các bit thấp của số nguyên tố p dựa theo định lý phần dư Trung Hoa (CRT). Đây là điểm khác biệt hẳn so với các thuật toán trước đó. Với thuật toán BD1, BD2 và các thuật toán của các tác giả trước đó, số nguyên tố p được tạo ngẫu nhiên, thông tin backdoor được nhúng vào số modulus n (trong quá trình tạo số nguyên tố q) nên q phụ thuộc một phần vào p dẫn tới tính tương quan của backdoor chỉ đạt mức “trung bình”. Bản thân việc nhúng thông tin backdoor vào các bit thấp mà vẫn đòi hỏi tính nguyên tố của p là việc làm khó đòi hỏi kỹ thuật đặc biệt. Việc nhúng thông tin backdoor vào số nguyên tố p làm tăng thêm tính an toàn, bảo mật cho backdoor, dẫn tới tham số q được tạo độc lập nên p và q không tương quan (độc lập). Dù thuật toán BD3 được công bố công khai, việc dò tìm tham số mật (số nguyên tố p thuộc khóa riêng), để từ đó trích ra thông tin backdoor sẽ khó hơn rất nhiều so với việc trích thông tin backdoor từ trong số modulus n (việc dò tìm tham số mật, số nguyên tố p, là một việc rất khó và đây cũng chính là vấn đề phá vỡ hệ mật RSA). Thuật toán BD3 có các bước thực hiện như sau: Phần sinh khóa: - Thông tin backdoor: một giá trị ngẫu nhiên t được chọn ngẫu nhiên kết hợp với giá trị mầm e, để tính ra thông tin backdoor, C = ut mod 2nlen/4. - Che giấu thông tin backdoor: Giá trị mầm u được hoán vị (che giấu) từ số mũ công khai, e, thông qua hàm mã mật hóa đối xứng (hoặc băm) FK với khóa K của người thiết kế. - Nhúng thông tin backdoor vào khóa: giá trị C được nhúng vào một nửa các bit thấp của số nguyên tố p , theo định lý phần dư Trung Hoa CRT. 88 Phần khôi phục khóa: - Trích (tìm) lại thông tin backdoor đã mã mật và giải mã mật thông tin backdoor: Sử dụng khóa (bí mật) của người thiết kế tính giá trị mầm u từ tham số công khai e. Giá trị t được lặp để dò tìm thỏa mãn điều kiện với t < m. - Khôi phục tham số mật: giá trị C được tính C = ut mod 2nlen/4 và sử dụng phương pháp phân tích nhân tử của Coppersmith (mục 1.3) để tìm giá trị p’. Nếu thỏa mãn điều kiện (p’ mod 2nlen/4 = C và p’ là số nguyên tố) thì p’ chính là giá trị p cần tìm. - Tính toán toàn bộ các tham số khóa riêng: từ tham số p tính các tham số q, d của khóa riêng. Điểm khác biệt của thuật toán BD3 với các backdoor khác ở chỗ: - Thông tin backdoor: được dẫn xuất từ số mũ công khai e và giá trị ngẫu nhiên t với t < m (ngưỡng do người thiết kế chọn). Việc không sử dụng thông tin backdoor là một phần của các tham số mật (p, q) dẫn đến các tham số được tạo độc lập - có tính tương quan cao (vượt qua nhược điểm của nhiều thuật toán backdoor của các tác giả khác). - Thông tin backdoor được nhúng vào các bit thấp của số nguyên tố p (tham số mật của khóa riêng). Các tham số thuật toán backdoor BD3, G1 : I(𝑘𝑝𝑟𝑖𝑣𝐺1 ,) = (p⌋k/2); E = FK = AES, E = nlen = log2 n , k(E) = (K), M = n, log2 p = log2 q = nlen/2. + Giá trị Bp, Bq: được tính thông qua định lý phần dư Trung Hoa (CRT). + Giá trị m là một ngưỡng để chọn giá trị ngẫu nhiên t không quá lớn để có thể dò tìm lại trong thuật toán khôi phục khóa. 89 + Hàm RandomProvablePrime() tạo số nguyên tố chứng minh được theo phương pháp của Maurer [41]. 3.2.1.2. Phần thuật toán sinh khóa Phần thuật toán sinh khóa được mô tả dưới dạng sơ đồ khối ở hình 3.2 và mã giả thuật toán ở mục thuật toán 3.2. 90 Sơ đồ khối của phần thuật toán sinh khóa backdoor BD3: Mã giả phần thuật toán sinh khóa backdoor BD3: Input: e, nlen, n1, n2, n3, n4, m Output: p, q, n, d 1: Input: e, nlen, n1, n2, n3, n4, m ; Start e, nlen, n1, n2, n3, n4, m 2 16 < e < 2 256 nlen 1024 Trả về mã lỗi Stop No Tạo số nguyên tố p Tạo các số nguyên tố phụ q1, q2 GCD (q - 1, e) = 1 (1,41 . 2 nlen/2-1 q < 2nlen/2) |p – q| > 2nlen/2 – 100 Yes Yes No Tính n, d 2nlen/ 2 < d< LCM (p-1, q-1) Yes No p, q, n, d Hình 3.2. Sơ đồ khối phần thuật toán sinh khóa của backdoor BD3 GCD (p - 1, e) = 1 (1,41.2 nlen/2-1 p < 2 nlen/2 ) Yes No Tạo số nguyên tố q Chiều dài tối thiểu và tối đa của các số nguyên tố phụ q1, q2 No Yes Tạo các số nguyên tố phụ p1, p2 Chiều dài tối thiểu và tối đa của các số nguyên tố phụ p1, p2 No Yes Tạo số nguyên tố p Chuẩn bị thông tin backdoor 91 2: if (e 2256 or nlen < 1024) then return failure; 3: u = FK(e); //encryption or hash with key (backdoor owner) 4: t = Random(m); // t < m 5: C = ut mod 2nlen/4 ; // generate p 6: p1 = RandomProvablePrime(2𝑛1−1, 2𝑛1) ; 7: p2 = RandomProvablePrime (2𝑛2−1, 2𝑛2) ; 8: Ap = p1.p2. 2nlen/4 ; 9: 𝐵𝑝 = { 1 𝑚𝑜𝑑 𝑝1 −1 𝑚𝑜𝑑 𝑝2 𝐶 𝑚𝑜𝑑 2𝑛𝑙𝑒𝑛/4 ; // using CRT 10: Sp = { Ap.i + Bp }; (i = 1, 2, 3, ) 11:𝑝 = 𝑃𝑟𝑖𝑚𝑒 (𝑆𝑝 ∩ (√2. 2 𝑛𝑙𝑒𝑛/2−1, 2𝑛𝑙𝑒𝑛/2 − 1)) ;such that gcd(p - 1, e) = 1 // generate q 12: q1 = RandomProvablePrime(2𝑛1−1, 2𝑛1) ; 13: q2 = RandomProvablePrime(2𝑛2−1, 2𝑛2) ; 14: Aq = q1.q2 ; 15: 𝐵𝑞 = { 1 𝑚𝑜𝑑 𝑞1 −1 𝑚𝑜𝑑 𝑞2 ; //using CRT 16: Sq ={ Aq.j + Bq }; (i = 1, 2, 3, ) 17: 𝑞 = 𝑃𝑟𝑖𝑚𝑒 (𝑆𝑞 ∩ (√2. 2 𝑛𝑙𝑒𝑛/2−1, 2𝑛𝑙𝑒𝑛/2 − 1)) ;such that gcd(q - 1, e)= 1 18: if ( |p – q| ≤ 2 nlen/2 – 100 ) then go to step 12 ; // compute n, d 19: n = p.q ; 20: d = e–1 mod (LCM(p - 1, q - 1)) ; 92 21: if ( d < 2 nlen/ 2 ) then go to step 12 ; 22: return (p, q, n, d) ; Thuật toán 3.2. Phần thuật toán sinh khóa của backdoor BD3. 3.2.1.3. Phần thuật toán khôi phục khóa Phần thuật toán khôi phục khóa được mô tả dưới dạng sơ đồ khối ở hình 3.3 và mã giả thuật toán ở mục thuật toán 3.3 Sơ đồ khối của phần thuật toán khôi phục khóa backdoor BD3: Mã giả phần thuật toán khôi phục khóa: Input: n, e, m Output: p, q, d Start e, n, m Stop Phân tích nhân tử Coppersmith Tính q, d p, q, d Hình 3.3. Sơ đồ khối phần thuật toán khôi phục khóa của backdoor BD3 p null Yes No Tính thông tin backdoor, C 93 1: Input (n, e, m) ; 2: t = 1; C = 1 ; 3: u = FK(e) ; 4: repeat 5: C = C.u mod 2nlen/4 ; //(C = ut mod 2nlen/4) 6: if C mod 2 = 1 then 7: p = CopperSmith(n, 2nlen/4, C) ; //Coppersmith method 8: t = t + 1 ; 9: until (p null) and (p mod 2nlen/4 = C) and (t < m); 10: q = n / p ; 11: d = e–1 mod (LCM(p - 1, q - 1)) ; 12: return (p, q, d) ; Thuật toán 3.3. Phần thuật toán khôi phục khóa của backdoor BD3. 3.2.2. Đánh giá thuật toán backdoor BD3 Tính bảo mật: Xét trường hợp kẻ tấn công có khóa công khai của người dùng, nhưng không có khóa bí mật của người thiết kế. Người thiết kế sử dụng hệ mật đối xứng, hoặc hàm băm với khóa có độ an toàn (độ dài khóa) tương đương với độ an toàn (độ dài tham số khóa) hệ mật RSA của người dùng (mục 1.4.2), giả sử hệ mật của người dùng an toàn, kẻ tấn công không phá vỡ được hệ mật của người dùng thì cũng không phá vỡ được hệ mật của người thiết kế. Căn cứ vào mục 1.2.4.4, tính bảo mật được đánh giá ở mức “tốt”. Tính hoàn chỉnh: Xét thuật toán sinh khóa: 94 Từ giá trị e, người thiết kế tính u = FK(e) ở (bước 3) và với giá trị t ngẫu nhiên, t < m, (bước 4) tính C = ut mod 2nlen/4. Giá trị C là thông tin backdoor được đặt vào trong giá trị Bp (bước 9) và được đặt vào trong các bit thấp của tập các số Sp và cũng là số nguyên tố p. (Thuật toán sinh khóa luôn tạo được các khóa thỏa mãn điều kiện (chuẩn FIPS 186-4) có chứa backdoor) Xét thuật toán khôi phục khóa: Người thiết kế thực hiện tương tự: tính u = FK(e), Thực hiện vòng lặp tối đa m - 1 lần tính C = ut mod 2nlen/4 tính p = S(n, 2nlen/4, C) theo phương pháp Coppersmith (1.3) vòng lặp kết thúc khi thỏa mãn điều kiện ở bước 9 (p mod 2nlen/4 = C) and (p is prime) and (t < m). Các bước trong vòng lặp luôn tất định và thuật toán kết thúc, số nguyên tố p luôn tìm được, vì giá trị t < m được chọn ngẫu nhiên trong thuật toán sinh khóa. Khi có p, sẽ tính q và d, (ở bước 10, 11). (Thuật toán khôi phục khóa luôn cho phép người thiết kế khôi phục được khóa riêng từ khóa công khai tương ứng). Theo các bước trong thuật toán sinh khóa và thuật toán khôi phục khóa, người thiết kế luôn tính được khóa riêng của người dùng từ khóa công khai tương ứng. Kẻ tấn công không có khóa riêng của người thiết kế và không phá vỡ được độ an toàn của hệ mật người thiết kế (tính bảo mật). Căn cứ vào mục 1.2.4.4, tính hoàn chỉnh được đánh giá ở mức “tốt”. Lực lượng khóa: Xét việc tạo p (bước 6 đến 11). 95 Theo (3.1), ta có #{𝑝1} = #{𝑝2} ≈ 2𝑛𝑙𝑒𝑛/8−11 𝑛𝑙𝑒𝑛 Ký hiệu s ∈ Sp , ta có s = Ap.i + Bp , (bước 10) và #{ s } = #{ i } √2.2𝑛𝑙𝑒𝑛/2 −1−𝐵 𝐴 ≤ 𝑖 2𝑛𝑙𝑒𝑛/2 −1−𝐵 𝐴 ⇔ √2.2𝑛𝑙𝑒𝑛/2 −1−𝐵 2𝑛𝑙𝑒𝑛/4.𝑝1.𝑝2 ≤ 𝑖 ≤ 2𝑛𝑙𝑒𝑛/2 −1−𝐵 2𝑛𝑙𝑒𝑛/4.𝑝1.𝑝2 ⇔ √2.2𝑛𝑙𝑒𝑛/2 −1−𝐵 2𝑛𝑙𝑒𝑛/4.2𝑛𝑙𝑒𝑛/4 −18 ≤ 𝑖 ≤ 2𝑛𝑙𝑒𝑛/2 −1−𝐵 2𝑛𝑙𝑒𝑛/4.2𝑛𝑙𝑒𝑛/4 −18 ⇔ √2.2𝑛𝑙𝑒𝑛/2 −1−𝐵 2𝑛𝑙𝑒𝑛/2 −18 ≤ 𝑖 ≤ 2𝑛𝑙𝑒𝑛/2 −1−𝐵 .2𝑛𝑙𝑒𝑛/2 −18 ⇒#{𝑖} = 2 𝑛𝑙𝑒𝑛 2 −√2.2 𝑛𝑙𝑒𝑛 2 −1 2 𝑛𝑙𝑒𝑛 2 −18 = (2−√2).2 𝑛𝑙𝑒𝑛 2 −1 2 𝑛𝑙𝑒𝑛 2 −18 = 218−1(2 − √2). 2𝑛𝑙𝑒𝑛/2 2𝑛𝑙𝑒𝑛/2 = 217. 0,6 ≈ 216 Vậy số lượng các số nguyên của bởi tập Sp, # Sp = #{p1}. #{p2}.#{i } = 2 𝑛𝑙𝑒𝑛/8−11 𝑛𝑙𝑒𝑛 . 2𝑛𝑙𝑒𝑛/8−11 𝑛𝑙𝑒𝑛 . 216 = 2𝑛𝑙𝑒𝑛/4−6 𝑛𝑙𝑒𝑛2 Theo (1.7), ta có Pr[𝑠ố 𝑘 𝑏𝑖𝑡 𝑙à 𝑛𝑔𝑢𝑦ê𝑛 𝑡ố] = 2 𝑘 , Vậy số lượng p, #{p}= # Sp . Pr[số k bit là nguyên tố] #{p} = 2𝑛𝑙𝑒𝑛/4−6.2 𝑛𝑙𝑒𝑛2.𝑛𝑙𝑒𝑛/2 = 2𝑛𝑙𝑒𝑛/4−4 𝑛𝑙𝑒𝑛3 Xét cách tạo q, vì q được tạo giống như q trong thuật toán 3.1, độc lập với p và thỏa mãn điều kiện (1.9). Theo (3.5), vậy #{𝑞} ≈ 2𝑛𝑙𝑒𝑛/2−5 𝑛𝑙𝑒𝑛3 96 Cách tạo d, cũng giống như trong thuật toán 2.1 và #{d} = #{e}. Xét tỷ lệ giữa lực lượng của G1 và G0, vì q, d được sinh trong G1 giống như trong G0 nên hạng tử #{q}, #{d} có thể bỏ qua, nên tỷ lệ lực lượng giữa G1 và G0 là: 𝑅𝐺1 = 𝑁𝐺1,𝑝 𝑁𝐺0,𝑝 ≈ 2𝑛𝑙𝑒𝑛/4−4/𝑛𝑙𝑒𝑛3 2𝑛𝑙𝑒𝑛/2−4/𝑛𝑙𝑒𝑛3 = 2−𝑛𝑙𝑒𝑛/4 = 2− 1 2 . 𝑛𝑙𝑒𝑛 2 Vì hằng số c = -1/2 trong tỷ lệ giữa hai lực lượng, 𝑅𝐺1, và căn cứ vào mục 1.2.4.4, lực lượng của G1 được đánh giá ở mức “tốt”. Tính phân phối: Thông tin backdoor được tạo ngẫu nhiên và được nhúng vào các bit thấp của p nên phần nhúng thông tin backdoor cũng có phân phối gần với phân phối đều. Việc sinh p, q ngẫu nhiên nên phân phối của n gần với phân bố đều và do vậy khoảng cách thống kê giữa thành phần n của G1 và G0 là xấp xỉ bằng 0, DG1 ≈ 0. Theo mục 1.2.4.4, tính phân phối của G1 được đánh giá là “tốt”. Tính tương quan: Thông tin backdoor đựợc nhúng vào tham số p. Theo cách thực hiện của thuật toán tham số q được tạo độc lập. Nếu người dùng cố định p hoặc q và yêu cầu sinh lại q hoặc p thì đều có thể thực hiện được (sinh lại khóa tổng quát). Theo mục 1.2.4.4, tính tương quan giữa các thành phần khóa của G1 được đánh giá đạt mức “tốt”. Độ phức tạp tính toán: Vì p được tạo gần giống như trong G0 nên ta có tp(G0) = tp(G1). Việc tạo q giống như trong G0 nên độ phức tạp tạo n là: tn(G1) = tp + tq = tn 97 Vậy độ phức tạp của thuật toán là: T(G1) = tp + tq = tn . Theo mục 1.2.4.4, độ phức tạp của G1 được đánh giá đạt mức “tốt” vì nó khác biệt không đáng kể đối với độ phức tạp của G0. Bộ nhớ sử dụng: Thuật toán không sử dụng bộ nhớ NM và VM nên căn cứ vào mục 1.2.4.4 tiêu chí bộ nhớ sử dụng của thuật toán được đánh giá đạt mức “tốt”. 3.2.3. So sánh BD3 với các thuật toán backdoor của các tác giả khác Thuật toán đề xuất backdoor BD3 so sánh với các thuật toán backdoor đã công bố của các tác giả khác (đi trước) có một số điểm sau: 3.2.3.1. Các điểm giống - Khôi phục khóa riêng: sử dụng phương pháp phân tích nhân tử của Coppersmith. - Hệ mật của người thiết kế: hệ mật đối xứng (AES). 3.2.3.2. Các điểm khác - Thông tin backdoor: được dẫn xuất từ số mũ công khai e và số nguyên ngẫu nhiên t < m, nên các tham số được tạo độc lập - có tính tương quan cao. - Kỹ thuật nhúng thông tin backdoor vào trong các bit thấp của số nguyên tố p làm cho kẻ tấn công khi khôi phục khóa dò tìm tham số mật (số nguyên tố p) khó hơn rất nhiều so với trích thông tin backdoor từ trong số modulus n (nâng cao độ an toàn cho backdoor). - Tham số vào/ra: tuân thủ điều kiện “P2” của chuẩn FIPS 186-4. 3.2.4. Tóm tắt các điểm nổi bật của thuật toán backdoor BD3 Thuật toán backdoor đề xuất BD3 đã kế thừa các ưu điểm và hạn chế các nhược điểm trong các công trình nghiên cứu về backdoor đã công bố của các 98 tác giả đi trước. Thuật toán backdoor BD3 gồm hai phần: phần thuật toán sinh khóa và phần thuật toán khôi phục khóa, có các điểm nổi bật như sau: -Thuật toán sinh khóa: các số nguyên tố chính được xây dựng dựa trên thuật toán tìm số nguyên tố mạnh của John Gordon [31], các số nguyên tố phụ được tìm theo thuật toán sinh số nguyên tố chứng minh được của Maurer [41]. - Thuật toán khôi phục khóa sử dụng phương pháp phân tích nhân tử của Coppersmith (1.3) để khôi phục lại khóa riêng từ khóa công khai tương ứng. - Các tham số đầu ra và đầu vào của thuật toán backdoor BD3 thỏa mãn các điều kiện “P2” theo chuẩn FIPS 186-4 [27]. - Kỹ thuật trích chọn thông tin backdoor và nhúng thông tin backdoor vào các bit thấp của số nguyên tố p nâng cao độ an toàn cho backdoor. - Được đánh giá “tốt” trên 07 tiêu chí. 3.3. Thử nghiệm thuật toán backdoor BD3 3.3.1. Mục tiêu, phương pháp, môi trường thử nghiệm Mục tiêu, phương pháp, môi trường thử nghiệm, cách thức cài đặt trong thiết bị T-Token và các tiêu chí được thử nghiệm của backdoor BD3 giống như với backdoor BD1, BD2 mục (2.4). 3.3.2. Kịch bản thử nghiệm Trên cơ sở mục tiêu, phương pháp và các tiêu chí thử nghiệm, kịch bản thử nghiệm backdoor BD3 được mô tả trong bảng 3.1 như sau: Bảng 3.1. Kịch bản thử nghiệm thuật toán backdoor BD3 99 Mã KB Mô tả Các bước thực hiện Dữ liệu thử nghiệm Kết quả mong muốn SK_BD3 Thử nghiệm độ phức tạp của thuật toán phần sinh cặp khóa của backdoor BD3 - Chuẩn bị dữ liệu đầu vào. - Gọi hàm sinh khóa của Token - Quan sát kết quả đầu ra: thời gian sinh khóa nlen = 1024, 2048 m= 100, 150, 200 các tham số khác chọn giá trị mặc định Thời gian sinh cặp khóa < 4 giây KP_BD3 Thử nghiệm tính hoàn chỉnh và độ phức tạp thuật toán phần khôi phục khóa của backdoor BD3 - Chuẩn bị dữ liệu đầu vào. - Gọi hàm khôi phục khóa của Token - Quan sát kết quả đầu ra: thời gian khôi phục khóa, số lần thất bại khi khôi phục khóa. nlen = 1024, 2048 m= 100, 150, 200 các tham số khác chọn giá trị mặc định Thời gian khôi phục khóa khóa trung bình < 10 giây, số lần thất bại khi khôi phục khóa = 0 TQ_BD3 Thử nghiệm tính tương quan của backdoor BD3 - Cố định từng tham số e, p, q riêng biệt. - Sinh các tham số còn lại. - Kiểm tra tính đúng đắn của các tham số được tạo ra và sự phù hợp với các tham số cố định. - Chọn ngẫu nhiên các tham số e lẻ, tham số p, q là số nguyên tố. Các tham số e, p, q được tạo độc lập, không tương quan. 3.3.3. Kết quả thử nghiệm thuật toán backdoor BD3 Kết quả thử nghiệm thuật toán backdoor BD3 cho thấy: - Độ phức tạp phần sinh khóa: Thời gian tạo khóa phụ thuộc vào các tham số độ dài số modulus (nlen) và ngưỡng giá trị ngẫu nhiên (m). Với tham số đầu vào nlen = 1024, thời gian thực hiện trung bình khoảng 1,8s chậm hơn 100 một chút so với thời gian thực hiện trung bình của thuật toán sinh khóa trung thực (khoảng 1,5s). Sự khác biệt về thời gian chạy không đủ để trong quá trình sử dụng người dùng có thể phân biệt được giữa một thiết bị chứa thuật toán sinh khóa trung thực và thiết bị chứa thuật toán sinh khóa có backdoor. - Tính tương quan: tham số e có thể chọn tự do mà không ảnh hưởng đến các tham số còn lại. Cố định tham số p, tham số q được sinh lại tự do. Đảo ngược vai trò của p và q (cố định tham số q, sinh lại tham số p) cho kết quả tương tự. Do vậy, 03 tham số được tạo độc lập với nhau và tính tương quan đạt kết quả “tốt”. - Độ phức tạp phần khôi phục khóa: Tốc độ khôi phục khóa riêng của backdoor BD3 tương đối nhanh, khoảng 2s với nlen = 1024. Việc khôi phục khóa có kết quả tất định, người thiết kế luôn khôi phục được khóa riêng từ khóa công khai tương ứng nên tính hoàn chỉnh được đảm bảo. Kết quả thử nghiệm độ phức tạp thuật toán backdoor BD3 được trình bày ở bảng 3.2 và minh họa dưới dạng biểu đồ ở hình 3.4. Bảng 3.2. Kết quả thử nghiệm độ phức tạp thuật toán backdoor BD3 Thứ tự nlen (bit) m Thời gian chạy trung bình Sinh khóa G0 Sinh khóa G1 Khôi phục khóa G1 1 1024 100 1.45 1.74 2.04 2 1024 200 1.45 1.92 2.52 3 1024 300 1.45 2.11 3.01 4 2048 100 2.04 2.42 3.13 5 2048 200 2.04 2.78 3.55 6 2048 300 2.04 3.25 3.94 101 Hình 3.4. Biểu đồ kết quả thử nghiệm độ phức tạp thuật toán backdoor BD3 3.3.4. Đánh giá kết quả thử nghiệm backdoor BD3 Kết quả thử nghiệm của thuật toán backdoor BD3 đã đạt được mục tiêu, yêu cầu đề ra với các thông tin cụ thể sau: - Tính hoàn chỉnh được đảm bảo với tất cả các lần thử nghiệm (tất định). - Tính tương quan: đạt kết quả tốt khi thử nghiệm với 03 tham số e, p, q. - Thời gian thực hiện (độ phức tạp tính toán) của phần sinh khóa có tốc độ chậm hơn một chút (tương đối nhỏ) so với thời gian thực hiện của các thuật toán sinh khóa trung thực tương ứng và cũng gần tương đương với thời gian sinh khóa của một số thiết bị PKI Token có sẵn trên thị trường với cùng độ dài khóa. Thời gian thực hiện (độ phức tạp tính toán) của phần khôi phục khóa tương đối nhanh trên máy tính. 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 Thời gian tạo khóa G0 Thời gian tạo khóa G1 Thời gian khôi phục khóa G1 Th ờ i g ia n t h ự c h iệ n ( s) Kết quả thử nghiệm độ phức tạp backdoor BD3 nlen=1024,m=100 nlen=1024,m=200 nlen=1024,m=300 nlen=2048,m=100 nlen=2048,m=200 nlen=2048,m=300 102 3.4. Ứng dụng backdoor BD3 Từ mục tiêu thiết kế của backdoor BD3 nhằm tạo ra các cặp khóa với các tham số mạnh để sử dụng trong các trường hợp đặc biệt và kết quả thuật toán BD3 có các tham số tuân thủ điều kiện “P2” theo chuẩn FIPS 186-4 nên có các tham số chất lượng cao, bền vững trước các tấn công, có thể sử dụng lâu dài. Bên cạnh đó do tuân thủ điều kiện “P2” theo chuẩn FIPS 186-4, nên thời gian tạo cặp khóa của thuật toán backdoor BD3 lâu hơn một chút so với thời gian tạo khóa của thuật toán backdoor BD1, BD2. Do vậy môi trường ứng dụng tốt nhất đối với backdoor BD3 là trong module tạo khóa của thiết bị HSM. 3.5. Đánh giá các thuật toán backdoor đề xuất Với mỗi backdoor đề xuất BD1, BD2, BD3, đều đã có những đánh giá cụ thể, chi tiết trong phần trình bày của từng thuật toán (tại các mục 2.2, 2.3, 3.2), để làm rõ hơn các ưu, nhược điểm, các backdoor đề xuất cần được phân tích, so sánh giữa các backdoor đề xuất với nhau và phân tích, so sánh giữa các backdoor đề xuất với các backdoor tương đương của tác giả khác. 3.5.1. So sánh 03 thuật toán backdoor đề xuất với nhau 3.5.1.1. Các điểm giống nhau - Tham số đầu vào/ra tuân thủ chuẩn FIPS 186-4. - Thông tin backdoor: một nửa các bit của số nguyên tố p. (BD1, BD3) - Vị trí giấu thông tin backdoor: trong số modulus n. - Khôi phục khóa riêng: sử dụng phương pháp phân tích nhân tử của Coppersmith (mục 1.3). - Không sử dụng bộ nhớ (NM, VM). 3.5.1.2. Các điểm khác nhau Các điểm khác nhau giữa 03 thuật toán đề xuất được tóm tắt trong bảng 3.3 103 Bảng 3.3. Các điểm khác nhau giữa 03 thuật toán backdoor đề xuất TT Nội dung Thuật toán BD1 Thuật toán BD2 Thuật toán BD3 1 Hệ mật của người thiết kế Hệ mật khóa công khai: ECIES 128 Hệ mật đối xứng, vd AES 128. Hệ mật đối xứng hoặc hàm băm có khóa. AES 128, HMAC_SHA 256 2 Thông tin backdoor, I(𝑘𝑝𝑟𝑖𝑣𝐺1 ) p⌉k/2, một nửa các bit cao của số nguyên tố p ((p⌉k/2)⌋s - k/2), ít hơn một nửa các bit của p, k = nlen/2, k > s ≥ k – 100 p⌋k/2, một nửa các bit thấp của số nguyên tố p 3 Vị trí nhúng thông tin backdoor Toàn bộ các bit của số modulus n Các bit cao của số modulus n Một nửa các bit thấp của số nguyên tố p 4 Tuân thủ FIPS 186-4 Điều kiện “P1” Điều kiện “P1” Điều kiện “P2” 5 Lực lượng khóa 𝑅𝐺1 “Tốt” 2− 1 2. 𝑛𝑙𝑒𝑛 2 +2 “Tốt”, 2− 1 2. 𝑛𝑙𝑒𝑛 2 “Tốt”, 2− 1 2. 𝑛𝑙𝑒𝑛 2 6 Tính tương quan “Trung bình” “Trung bình” “Tốt” 3.5.1.3. Đánh giá chung về 03 thuật toán đề xuất Cả ba thuật toán backdoor đề xuất đều có các tiêu chí phần lớn được đánh giá tốt, khả thi khi triển khai ứng dụng. Thuật toán backdoor BD1 sử dụng kỹ thuật nhúng thông tin backdoor vào toàn bộ các bit của số modulus n, nên các tham số có tính tương quan tốt nhất và nâng cao được độ an toàn. Thuật toán backdoor BD2 sử dụng lượng thông tin backdoor ít hơn một nửa các bit của số nguyên tố p, nên có lực lượng khóa lớn nhất (so với hai thuật toán còn lại), có 104 thể áp dụng vào những trường hợp cần lực lượng khóa lớn (có nhiều người dùng). Do tuân thủ điều kiện “P2” nên thuật toán backdoor BD3 có thể áp dụng trong những trường hợp có ràng buộc về kích thước số modulus nhỏ (1024 bit), nhưng lại có lực lượng nhỏ (so với hai thuật toán còn lại) và kỹ thuật nhúng thông tin backdoor vào các bit thấp của số nguyên tố p cũng nâng cao độ an toàn cho backdoor. Cả ba thuật toán có phần khôi phục khóa đều sử dụng phương pháp phân tích nhân tử của Coppersmith nên phần khôi phục khóa tương đối đơn giản và thực hiện nhanh. 3.5.2. So sánh với các thuật toán backdoor của các tác giả khác Ba thuật toán backdoor đề xuất so sánh với các thuật toán backdoor đã công bố của các tác giả khác (mục 1.5.2.) có một số điểm sau: 3.5.2.1. Các điểm giống - Vị trí giấu thông tin backdoor: vào trong số modulus n. - Thông tin backdoor: một nửa các bit của số nguyên tố p. (BD1 và BD3). - Khôi phục khóa: dùng phương pháp phân tích nhân tử của Coppersmith. - Hệ mật của người thiết kế: hệ mật khóa công khai RSA, ECIES, hoặc hệ mật đối xứng (AES). 3.5.2.2. Các điểm khác - Kỹ thuật nhúng thông tin backdoor vào trong toàn bộ các bit của số modulus n (BD1). - Kỹ thuật trích thông tin backdoor nhỏ hơn một nửa các bit của số nguyên tố p (BD2). - Kỹ thuật tạo thông tin backdoor từ số mũ công khai e và nhúng thông tin backdoor vào các bit thấp của số nguyên tố p (BD3). - Tham số đầu vào/ra: tuân thủ các điều kiện của chuẩn FIPS 186-4. 105 3.5.2.3. Đánh giá chung Cả ba thuật toán backdoor đề xuất đều kế thừa các ưu điểm và hạn chế các nhược điểm trong các công trình nghiên cứu về backdoor đã công bố của các tác giả đi trước. Ưu điểm lớn nhất và độc đáo của cả ba thuật toán backdoor đề xuất là các tham số tuân thủ các điều kiện của chuẩn FIPS 186-4. Bên cạnh đó, mỗi backdoor BD1, BD2, BD3 đều áp dụng kỹ thuật riêng khác biệt so với các thuật toán backdoor của các tác giả khác và mang lại hiệu quả rõ ràng. 3.6. Kết luận chương 3 Chương 3 giải quyết vấn đề đã đặt ra của Luận án - đề xuất được 01 thuật toán backdoor đối xứng BD3 tuân thủ điều kiện “P2” theo chuẩn FIPS 186-4 với tất cả các tiêu chí được đánh giá tốt. Điểm cốt lõi trong phần sinh khóa của thuật toán backdoor BD3 là dựa trên thuật toán tìm số nguyên tố mạnh của John Gordon để xây dựng các số nguyên tố chính (p, q), dựa trên thuật toán sinh số nguyên tố chứng minh được của Maurer để tạo các số nguyên tố phụ. Điểm độc đáo của thuật toán BD3 là kỹ thuật trích chọn thông tin backdoor từ số mũ công khai e và kỹ thuật nhúng thông tin backdoor vào trong các bit thấp của số nguyên tố p làm tăng thêm tính bảo mật của backdoor. Thuật toán BD3 được thử nghiệm trên thiết bị tự chế tạo T-Token đối với 03 tiêu chí có kết quả thử nghiệm phù hợp với các đánh giá. Backdoor BD3 được đề xuất ứng dụng tốt nhất trong phần (module) tạo khóa của thiết bị HSM. 106 KẾT LUẬN Mật mã được ứng dụng ngày càng rộng rãi để đảm bảo an toàn cho các giao dịch điện tử thì vấn đề đảm bảo an ninh cho cộng đồng khi sử dụng mật mã (PKI) cũng càng trở nên cấp thiết, nhất là trong giai đoạn hiện nay. Ứng dụng backdoor để đảm bảo an ninh cho cộng đồng khi sử dụng mật mã là một giải pháp hiệu quả với chi phí thấp, thời gian thực hiện nhanh, khó bị phát hiện, dễ dàng cài đặt. Việc nghiên cứu các thuật toán sinh khóa chứa backdoor trên hệ mật RSA với các tham số vào/ra thỏa mãn chuẩn FIPS 186-4 có tính thực tiễn cao có thể ứng dụng ngay nhằm đảm bảo an ninh cho hạ tầng PKI cụ thể. A. Kết quả đạt được của Luận án Trên cơ sở các nội dung nghiên cứu Luận án đạt được những kết quả sau: 1. Khảo sát, phân tích, đánh giá các công cụ hình hình thức và các thuật toán sinh khóa RSA chứa backdoor. Tập trung nghiên cứu công cụ hình thức của Arboit [4] và phương pháp phân tích nhân tử của Coppersmith [20] để phân tích, đánh giá backdoor và khôi phục khóa riêng từ khóa công khai tương ứng. 2. Đề xuất được 03 thuật toán sinh khóa chứa backdoor trên hệ mật RSA có các tham số đầu vào và đầu ra tuân thủ chuẩn FIPS 186-4 với các tiêu chí được đánh giá tốt. 03 thuật toán sinh khóa chứa backdoor đề xuất được thử nghiệm trên thiết bị phần cứng tự chế tạo T-Token có các kết quả phù hợp với các đánh giá về mặt lý thuyết. B. Những đóng góp mới của Luận án Với kết quả đạt được như trên, Luận án đã có những đóng góp mới sau: 1. Đề xuất thuật toán backdoor bất đối xứng BD1 tuân thủ điều kiện “P1” theo chuẩn FIPS 186-4 với 06 tiêu chí được đánh giá tốt, 01 tiêu chí (tính tương quan) được đánh giá ở mức trung bình và kỹ thuật nhúng thông tin backdoor 107 vào toàn bộ số modulus n làm tăng tính phân phối và tính bảo mật cho backdoor. 2. Đề xuất thuật toán backdoor đối xứng BD2 tuân thủ điều kiện “P1” theo chuẩn FIPS 186-4 với 06 tiêu chí được đánh giá tốt, 01 tiêu chí (tính tương quan) được đánh giá ở mức trung bình và phương pháp rút gọn thông tin backdoor nhỏ hơn một nửa số các bit của số nguyên tố p , làm tăng lực lượng khóa của backdoor. 3. Đề xuất thuật toán backdoor đối xứng BD3 tuân thủ điều kiện “P2” theo chuẩn FIPS 186-4 với 07 tiêu chí được đánh giá tốt và kỹ thuật trích thông tin backdoor từ số mũ công khai e rồi nhúng vào trong các bit thấp của số nguyên tố p, làm tăng tính bảo mật của backdoor. C. Hướng nghiên cứu tiếp theo 1. Nghiên cứu các mô hình, công cụ hình thức để phân tích và đánh giá backdoor an toàn, sâu sắc và hiệu quả hơn. 2. Nghiên cứu các phương pháp rút gọn thông tin backdoor ít hơn một nửa các bit của số nguyên tố p. Nghiên cứu các phương pháp sử dụng thông tin backdoor khác ngoài hai số nguyên tố p, q. 3. Nghiên cứu các kỹ thuật nhúng thông thông tin backdoor vào số modulus n hoặc e sao cho các tham số của thuật toán sinh khóa chứa backdoor vẫn thỏa mãn chuẩn FIPS 186-4 và các tiêu chí của thuật toán sinh khóa chứa backdoor vẫn được đánh giá là tốt. 4. Nghiên cứu thuật toán sinh khóa chứa backdoor an toàn với các hệ mật mã của người dùng khác như: Elliptic, ... 5. Trên cơ sở các kiến thức, kỹ thuật tạo backdoor an toàn, nghiên cứu các phương pháp, kỹ thuật phòng chống backdoor trong các sản phẩm mật mã hộp đen. 108 CÁC CÔNG TRÌNH KHOA HỌC ĐÃ CÔNG BỐ [1]. Bạch Nhật Hồng, Lê Quang Huy, 2017, “Về một backdoor đối xứng trong sinh khóa RSA”, Tạp chí Khoa học Công nghệ Thông tin và Truyền thông, Học viện Công nghệ Bưu chính viễn thông, số 01, 2017, tr 03-07. [2]. Lê Quang Huy, 2017, “Về một backdoor trong sinh khóa RSA tuân thủ điều kiện “chặt” theo chuẩn FIPS 186-4”, Tạp chí Nghiên cứu Khoa học và Công nghệ quân sự, Viện KH&CNQS, số 52, 12 - 2017, tr 131 - 137. [3]. Lê Quang Huy, 2017, “Về một backdoor bất đối xứng trong sinh khóa RSA tuân thủ điều kiện “lỏng” theo chuẩn FIPS 186-4”, Tạp chí Nghiên cứu Khoa học và Công nghệ quân sự, Viện KH&CNQS, số Đặc san CNTT, 12 - 2017, tr 162 - 169. [4]. Bạch Nhật Hồng, Lê Quang Huy, 2018, Về một backdoor đối xứng trong sinh khóa RSA tuân thủ điều kiện “lỏng” theo chuẩn FIPS 186-4, Tạp chí Khoa học Đại học Sư phạm Hà Nội, Trường Đại học Sư phạm Hà Nội, volume 63, số 03 - 2018, tr 99-107 . 109 TÀI LIỆU THAM KHẢO Tiếng Việt: [1]. Nguyễn Thành Trung, (2016), Báo cáo tổng hợp đề tài “Nghiên cứu thiết kế, chế tạo thiết bị PKI Token phục vụ triển khai hệ thống chứng thực điện tử chuyên dùng Chính phủ”, Ban Cơ yếu Chính phủ. Tiếng Anh: [2]. Achim Pietig, (2015), Functional Specification of the OpenPGP application on ISO Smart Card Operating Systems, Available online at https://g10code.com/docs/openpgp-card-3.0.pdf. [3]. Anderson. R, (1993), A practical rsa trapdoor, Electronics Letters, Volume: 29, Issue: 11, 27 May 1993, Available online at https://www.researchgate.net/publication/3371179_Practical_RSA_trapdoor. [4]. Arboit. G, (2008), Two mathematical security aspects of the RSA cryptosystem, PhD thesis, McGill University, Montreal, Canada, Available online at [5]. Berlekamp E. R, (1970), “Factoring polynomials over large finite fields”, Mathematics of Computation, Vol.24, No.111, pp 713–735, Available online at: 1970-0276200-X/. [6]. Bernhard Esslinger, (2013), The Dark Side of Cryptography: Kleptography in Black-Box Implementations, InfoSecurity Magazine, Available online at: https://www.infosecurity-magazine.com/magazine- features/the-dark-side-of-cryptography-kleptography-in/ [7]. Black Market Reloaded, (2016), The 3 Biggest Darknet Markets, Available online at: https://blackmarketreloaded.org/. [8]. Bleichenbacher D, (1997), On the Security of the KMOV public key cryptosystem, Advances in Cryptology – Crypto ’97, Lecture Notes in Computer Science Vol. 1294, Springer-Verlag, pp. 235–248, Available online at: https://link.springer.com/chapter/10.1007/BFb0052239. 110 [9]. Boneh. D, Durfee. G, Frankel. Y, (1998), An attack on rsa given a small fraction of the private key bits, Proceedings AsiaCrypt '98, Lecture Notes in Computer Science, Vol. 1514, pp: 25--34, Available online at: https://link.springer.com/content/pdf/10.1007%2F3-540-49649-1_3.pdf. [10]. Boneh D, Durfee G, Howgrave-Graham N, (1999), Factoring N = prq for large r, Advances in Cryptology – Crypto ’99, Lecture Notes in Computer Science Vol. 1666, Springer-Verlag, pp. 326–337, Available online at: [11]. Boneh D, Durfee G, (2000), Cryptanalysis of RSA with private key d less than N0.292, IEEE Trans. on Information Theory, Vol. 46(4), pp. 1339– 1349, Available online at: https://link.springer.com/content/pdf/10.1007/3- 540-48910-X_1.pdf. [12]. Bruce Schneier, (1996), Applied Cryptography: Second Edition, Wiley Computer Publishing, John Wiley & Sons, Inc. [13]. Bruce Schneier, (2013), Defending Against Crypto Backdoors, Schneier on Security Blog, Available online at: https://www.schneier.com/blog/archives/2013/10/defending_again_1.html. [14]. Bruce Schneier, (2015), Surreptitiously Weakening Cryptographic Systems, Available online at: https://eprint.iacr.org/2015/097.pdf [15]. Cantor David G, Zassenhaus Hans, (1981), “A new algorithm for factoring polynomials over finite fields”, Mathematics of Computation, Vol.36, No.154, pp 587–592, Available online at: birkmath/20042005spr/483/docs/cantorbaba.pdf. [16]. Carlisle Adams, Steve Lloyd, (2002), Understanding PKI: Concepts, Standards, and Deployment Considerations, Second Edition, Addison-Wesley Professional Longman Publishing Co, Inc. Boston, MA, USA [17]. Chuck Easttom, (2017), An Overview of Cryptographic Backdoors, Journal of Information System Security, Vol 13, Issue 3, p175-183, Available online at: https://dokupdf.com/download/cryptographic-backdoors- _5a01d810d64ab2b9bd783f49_pdf. 111 [18]. Claude Crepeau and Alain Slakmon, (2003), Simple Backdoors for RSA Key Generation, CT-RSA, Lecture Notes in Computer Science, Springer- Verlag Berlin Heidelberg, Available online at https://pdfs.semanticscholar.org/ 0428/db02e8c46cd4b1b8a43359503bd9509034f6.pdf. [19]. Constantinos Patsakis, (2012), Number Theoretic SETUPs for RSA Like Factoring Based Algorithms, Journal of Information Hiding and Multimedia Signal Processing, Volume 3, Number 2, 2012, Available online at: https://pdfs.semanticscholar.org/0d8e/83be56f812efc2cf00464279f24017a ebc6a.pdf. [20]. Coppersmith, (1995), Small Solutions to Polynomial Equations, and Low Exponent RSA Vulnerabilities, Journal of Cryptology: Volume 10 Issue 4, Pages 233-260, Available online at https://www.di.ens.fr/~fouque/ens- rennes/coppersmith.pdf. [21]. Dan Shumow, Niels Ferguson, (2007), On the possibility of a back door in the NIST SP800-90 DUAL EC PRNG, Available online at: https://rump2007.cr.yp.to/15-shumow.pdf. [22]. David Wong, (2015), Survey: Lattice Reduction Attacks on RSA, Available online at: https://www.davidwong.fr/papers/david_wong_rsa_lll_boneh_durfee__2015. pdf [23]. Desmedt. Y, (1988), Abuses in cryptography and how to fight them, Advances in Cryptology, CRYPTO 88 pp: 375-389, Available online at: https://static.aminer.org/pdf/PDF/000/119/960/abuses_in_cryptography_and_ how_to_fight_them.pdf. [24]. Domingo Gomez, Jaime Gutierrez, Alvar Ibeas, (2014), Integer Factoring with Extra Information, Available online at: https://pdfs.semanticscholar.org/4aac/e6c842ef7be886f1eb3caabfe3159711dc d3.pdf [25]. Dorothy E. Denning and William E. Baugh, Jr, (1999), Hiding Crimes in Cyberspace, Information, Communication and Society, Vol. 2, No 3, Available online at: https://cryptome.org/hiding-db.htm. 112 [26]. Durfee G, Nguyen P, (2000), Cryptanalysis of the RSA Schemes with Short Secret Exponent from Asiacrypt ’99, Advances in Cryptology – Asiacrypt 2000, Lecture Notes in Computer Science Vol. 1976, Springer, pp. 14–29, Available online at: [27]. FIPS, (2013), FIPS PUB 186-4; Digital Signature Standard, Available online at: 4.pdf. [28]. Hoeij Mark Van, (2002), “Factoring polynomials and the knapsack problem”, Journal of Number Theory, Vol.95, No.2, pp 167–189, Available online at: https://www.math.fsu.edu/~hoeij/knapsack/paper/knapsack.pdf. [29]. Hung-Min SUN, Mu-En WU, Cheng-Ta YANG, (2009), Simple Backdoors on RSA Modulus by Using RSA Vulnerability, Available online at: https://www.researchgate.net/publication/220238838_Simple_backdoors_on_ RSA_modulus_by_using_RSA_vulnerability. [30]. Jean-Loup Richet, (2015), Extortion on the Internet : the Rise of Crypto-Ransomware, Available online at: https://pdfs.semanticscholar.org /a21a/af1ef6b142556212f40279b745cf70db55ca.pdf. [31]. John Gordon, (1984), Strong Primes are Easy to Find, EUROCRYPT 1984: Advances in Cryptology pp 216-223, Available online at: https://link.springer.com/chapter/10.1007/3-540-39757-4_19. [32]. Kaliski Jr, B.S, (1994), Anderson’s RSA trapdoor can be broken, Available online at: download? doi=10.1.1.45.1789&rep=rep1&type=pdf. [33]. Kleinjung Thorsten, (2006), “On polynomial selection for the general number field sieve”, Mathematics of Computation. Vol 75, No 256, pp 2037–2047, Available online at: 256/S0025-5718-06-01870-9/home.html. [34]. Knuth, (1997), The Art of Computer Programming, Third Edition, Addison-Wesley. 113 [35]. Lenstra A. K, Lenstra H. W, and Lovasz L, (1982), Factoring polynomials with rational coefficients, Journal Mathematische Annalen, Volume 261, Pages 515-534, Available online at https://www.math.leidenuniv.nl/~hwl/PUBLICATIONS/1982f/art.pdf. [36]. Lenstra H W, (1987), “Factoring integers with elliptic curves”, Annals of Mathematics. Vol 126, No 3 pp 649–673, Available online at: https://wstein.org/edu/124/lenstra/lenstra.pdf. [37]. May. Alexander, (2007), Using LLL-Reduction for Solving RSA and Factorization Problems, The LLL Algorithm: Survey and Applications, pp 315-348, Available online at https://pdfs.semanticscholar.org/ 7c79/49a3c36b2cf625fd39335ff5aaedf74e73d4.pdf. [38]. May. Alexander, (2003), New RSA Vulnerabilities Using lattice Reduction Methods, PhD thesis (Dissertation), frankfurt.de/~dmst/teaching/WS2014/Vorlesung/Alex.May.pdf. [39]. Marcin Gogolewski, Marek Klonowski, Przemysław Kubiak, Mirosław Kutyłowski, Anna Lauks, Filip Zagórski, (2006), Kleptographic Attacks on E-Voting Schemes, Proceedings Conference: Emerging Trends in Information and Communication Security, pp 494-508, Available online at: https://kutylowski.im.pwr.wroc.pl/articles/wele-folie.pdf. [40]. Margaret Rouse, (2017), Backdoor, SearchSecurity, Available online at: https://searchsecurity.techtarget.com/definition/back-door. [41]. Maurer U, (1994), Fast Generation of Prime Numbers and Secure Public Key Cryptographic Parameters, Journal of Cryptology, Volume 8, Issue 3, pp 123–155 Available online at https://pdfs.semanticscholar.org/ e156/f237087fed1710c6f959f1e762432f3f38fa.pdf. [42]. Menezes A, Oorschot P van, Vanstone S, (2001), Handbook of Applied Cryptography, CRC Press. [43]. Miller, Gary L, (1976), “Riemann's Hypothesis and Tests for Primality”, Journal of Computer and System Sciences, 13 (3): 300–317, Available online at: https://www.cs.cmu.edu/~glmiller/Publications/ Papers/Mi76.pdf. 114 [44]. Nicholas Howgrave-Graham, (1997), Finding Small Roots of Univariate Modular Equations Revisited, Cryptography and Coding 1997: pp 131-142, Available online at https://link.springer.com/chapter/ 10.1007/BFb0024458. [45]. Nicholas Howgrave-Graham, (2001), Approximate integer common divisors, Cryptography and Lattices, pp 51-66, Available online at , 1&type=pdf. [46]. Nguyen. P, D. Stehl´e, (2005), Floating-Point LLL Revisited, Advances in Cryptology – Eurocrypt, Lecture Notes in Computer Science Vol. 3494, pp. 215–233, Available online at: https://iacr.org/archive/ eurocrypt2005/34940217/34940217.pdf. [47]. Rabin, Michael O, (1980), “Probabilistic algorithm for testing primality”, Journal of Number Theory, 12 (1): 128–138, Available online at: Dihub#. [48]. RSA Laboratory, (2012), PKCS #1: RSA Cryptography Standard v2.2, EMC, Available online at: labs/standards-initiatives/pkcs-rsa-cryptography-standard.htm. [49]. RSA Laboratory, (2004), PKCS #11: Cryptographic Token Interface Standard v2.2, EMC, Available online at cryptographic-token-interface-standard.htm. [50]. Russell Brandom, (2013), NSA paid $10 million to put its backdoor in RSA encryption, according to Reuters report, The Verge magazine, Available online at: https://www.theverge.com/2013/12/20/5231006/nsa-paid- 10-million-for-a-back-door-into-rsa-encryption-according-to. [51]. Ruxandra F Olimid, (2016), SETUP in Secret Sharing Schemes using Random Values, Available online at: https://eprint.iacr.org/2014/184.pdf 115 [52]. Ryan Martin, (2013), NSA May Have Backdoors Built Into Intel And AMD Processors, eTeknix Magazine, Available online at: https://www.eteknix.com/nsa-may-backdoors-built-intel-amd-processors/. [53]. SageMath, (2017), SageMath Library 8.0, Available online at: https://www.sagemath.org/download-windows.htm. [54]. Simmons. Gustavus J, (1984), The prisoner's problem and the subliminal channel, Advances in Cryptology 84, pp 51-67, Available online at: ography/Spring2009/ThePrisonerProblem.pdf. [55]. Stehlé. D, (2007), Floating-Point LLL: Theoretical and Practical Aspects, LLL+25 Conference, The LLL Algorithm, pp 179-213, Available online at: [56]. Stefan Wüller, Marián Kühnel, Ulrike Meyer, (2016), Information Hiding in the RSA Modulus, IH&MMSec '16 Proceedings of the 4th ACM Workshop on Information Hiding and Multimedia Security, Pages 159-167, Available online at: https://dl.acm.org/citation.cfm?id=2909827.2930804. [57]. Shoup V, (1998), OAEP Reconsidered, Advances in Cryptology – Crypto 2001, Lecture Notes in Computer Science Vol. 2139, Springer-Verlag, pp 239-259, Available online at: [58]. Ting-Yu Lin, Hung-Min Sun and Mu-En Wu, (2006), A Comprehensive Study of Backdoors for RSA Key Generation, Available online at: https://pdfs.semanticscholar.org/ 81ba/54b69761972e256fa67ad833d7f15 b2a1b9d.pdf. [59]. Young A and Yung M, (1996), The Dark Side of “Black-Box” Cryptography or: Should We Trust Capstone?, CRYPTO 1996: Advances in Cryptology, pp 89-103, Available online at viewdoc/download?doi=10.1.1.54.616&rep=rep1&type=pdf. [60]. Young A and Yung M, (1997), Kleptography: Using Cryptography Against Cryptography, EUROCRYPT 1997: Advances in Cryptology, pp 62- 74, Available online at: https://link.springer.com/content/pdf/10.1007/3-540- 69053-0_6.pdf. 116 [61]. Young A and Yung M, (1997), The Prevalence of Kleptographic Attacks on Discrete-Log Based Cryptosystems, CRYPTO 1997: Advances in Cryptology, pp 264-276, Available online at: https://link.springer.com/ content/pdf/10.1007/BFb0052241.pdf. [62]. Young A and Yung M, (2004), Malicious Cryptography, Exposing Cryptovirology, John Wiley & Sons, Available online at: [63]. Young A and Yung M, (2005), Malicious Cryptography Kleptographic Aspects, CT-RSA 2005: Topics in Cryptology, pp 7-18, Available online at: viewdoc/download? doi=10.1.1.120.6265&rep=rep1&type=pdf. [64]. Young A and Yung M, (2005), A Space Efficient Backdoor in RSA and Its Applications, SAC 2005: Selected Areas in Cryptography, pp 128-143, Available online at: https://link.springer.com/chapter/10.1007/11693383_9. [65]. Wiener. M, (1990), Cryptanalysis of short RSA secret exponents, EUROCRYPT 1989: Advances in Cryptology, pp 372-372, Available online at: [66]. Zbigniew Golebiewski, Miroslaw Kutylowski, and Filip Zagórski, (2006), Stealing Secrets with SSL/TLS and SSH - Kleptographic Attacks, CANS 2006: Cryptology and Network Security, pp 191-202, Available online at: https://link.springer.com/chapter/10.1007/11935070_13.

Các file đính kèm theo tài liệu này:

  • pdfluan_an_nghien_cuu_phat_trien_mot_so_thuat_toan_sinh_khoa_rs.pdf
  • docThongTin KetLuanMoi LuanAn NCS LeQuangHuy.doc
  • pdfTomTat LuanAn NCS LeQuangHuy_English.pdf
  • pdfTomTat LuanAn NCS LeQuangHuy_TiengViet.pdf
  • docTrichYeu LuanAn NCS LeQuangHuy.doc