Bài viết trình bày một đề xuất về thuật toán sinh khóa RSA chứa backdoor trên cơ sở cải tiến thuật toán PAP. Thuật toán đề xuất sử dụng một hệ mật đối xứng để mã mật thông tin backdoor. Thuật toán đề xuất tốt hơn thuật toán PAP về tính bảo mật, lực lượng khóa và độ phức tạp tính toán.
Nghiên cứu khoa học công nghệ VỀ MỘT BACKDOOR TRONG SINH KHĨA RSA Bạch Nhật Hồng1, Lê Quang Huy2* Tóm tắt: Bài báo trình bày đề xuất thuật tốn sinh khóa RSA chứa backdoor sở cải tiến thuật toán PAP [1] Thuật toán đề xuất sử dụng hệ mật đối xứng để mã mật thơng tin backdoor Thuật tốn đề xuất tốt thuật tốn PAP tính bảo mật, lực lượng khóa độ phức tạp tính tốn Từ khóa: Mật mã, Sinh khóa, RSA, Backdoor ĐẶT VẤN ĐỀ Với hạ tầng mật mã khóa cơng khai (PKI), vấn đề quan tâm việc khơi phục cặp khóa (dùng để mã) người dùng có yêu cầu từ người dùng (mất khóa) từ quan nhà nước (liên quan đến an ninh) Để giải vấn đề người ta sử dụng hai cách Cách thứ sử dụng giải pháp sở liệu (CSDL) khóa biện pháp đảm bảo an toàn cho CSDL khóa giải pháp mềm (mã mật CSDL khóa) giải pháp vật lý (bảo vệ máy tính…) Giải pháp sử dụng CSDL khóa có ưu điểm tính chất khóa khơng bị giới hạn (so với thuật tốn chuẩn) có nhược điểm chi phí lớn vận hành phức tạp Cách thứ hai sử dụng thuật tốn sinh khóa chứa backdoor Ưu điểm giải pháp sử dụng backdoor chi phí thấp, sử dụng, hệ thống khơng cần lưu giữ khóa riêng người dùng (khơng trì CSDL khóa) mà cần lưu giữ bảo vệ khóa người thiết kế Nhược điểm giải pháp sử dụng thuật tốn sinh khóa chứa backdoor tính chất khóa bị thu hẹp so với thuật tốn sinh khóa chuẩn Với giải pháp thứ hai, nhiều thuật tốn sinh khóa chứa backdoor số hệ mật công bố như: RSA, Elgamal, Eliptic Curve Các thuật toán sinh khóa RSA chứa backdoor [1], [2] đánh giá an tồn độ dài khóa người thiết kế nửa so với độ dài khóa người dùng Các thuật tốn sinh khóa RSA chứa backdoor [3], [4] có độ phức tạp gần với bậc hai, có lực lượng so với thuật tốn [1] cần sử dụng nhớ khơng liệu để lưu thơng tin Các thuật tốn sinh khóa Elgamal [1] bị đánh giá an tồn độ dài khóa người thiết kế (Elgamal) khơng tương đương với độ dài khóa người dùng (RSA) Do vậy, mục tiêu nghiên cứu việc tăng thêm hiểu biết để có giải pháp phòng vệ tốt việc sử dụng sản phẩm mật mã khơng làm chủ mà có khả ứng dụng, báo tập trung nghiên cứu thuật tốn sinh khóa RSA chứa backdoor đề xuất thuật tốn sinh khóa RSA chứa backdoor sở cải tiến thuật toán PAP [1] Thực mục tiêu trên, báo tổ chức thành phần: mục 1-Đặt vấn đề, nêu lên cần thiết nghiên cứu số kết nghiên cứu tác giả trước; Mục 2-Các định nghĩa sở phục vụ cho việc phân tích thuật tốn sinh khóa chứa backdoor; Mục 3-Trình bày đánh giá thuật toán PAP; Mục 4-Đề xuất thuật toán sinh khóa chứa backdoor mới; Mục 5-Kết luận tóm tắt kết nghiên cứu hướng phát triển CÁC ĐỊNH NGHĨA VÀ CƠ SỞ 2.1 Thuật toán sinh khóa chứa backdoor 2.1.1 Một số ký hiệu Tạp chí Nghiên cứu KH&CN quân sự, Số 48, 04 - 2017 111 Cơng nghệ thơng tin & Cơ sở tốn học cho tin học Gọi người thiết kế thuật toán sinh khóa chứa backdoor người thiết kế người dùng cặp khóa thuật tốn sinh khóa chứa backdoor tạo người dùng Ký hiệu thuật toán: Ký hiệu G0 thuật tốn tạo khóa trung thực, tạo khóa hợp lệ thuộc khơng gian khóa KS Ký hiệu G1 thuật tốn tạo khóa độc hại tạo khóa chứa backdoor thuộc khơng gian khóa KSM Ký hiệu k tham số an toàn thuật tốn sinh khóa Ta có: đó: - ∈U KS, ∈U KSM nghĩa khóa chọn ngẫu nhiên KS, KSM - ký hiệu khóa riêng khóa cơng khai G0 - ký hiệu khóa riêng khóa cơng khai G1 Ký hiệu R1 thuật tốn khơi phục cặp khóa cho từ khóa cơng khai khơi phục lại khóa riêng tương ứng Ta có: Ký hiệu hàm bên KSM: Cấu trúc KSM diễn đạt hai hàm EKSM DKSM mô tả sau: , ký hiệu phần khóa cơng khai G1, hàm EKSM đưa thơng tin khóa riêng vào khóa cơng khai a) b) , hàm DKSM khơi phục khóa riêng từ khóa cơng khai Các hàm EKSM DKSM kết hợp ba hàm sau hàm nghịch đảo tương ứng: Hàm thứ nhất: Gọi hàm trích thơng tin, ký hiệu I, với mục đích trích từ khóa riêng thơng tin để nhúng khóa cơng khai cho thông tin nhúng đủ để khôi phục Hàm I cần thỏa mãn: a) ; Với độ dài tính theo bit b) ; Với độ dài tính theo bit Hàm thứ hai: Gọi hàm che giấu thông tin, ký hiệu E Hàm E dựa hệ mật đối xứng hệ mật bất đối xứng cho phân phối đầu E phân biệt với phân phối mặt tính tốn Thơng tin giấu: Hàm thứ ba: Được gọi hàm nhúng, ký hiệu f Nó xác định vị trí nhúng thơng tin backdoor (đã mã mật) gắn giá trị ngẫu nhiên thông tin backdoor (đã mã mật) vào phần (bộ phận) khóa cơng khai Vậy ta có 112 , B N Hồng, L Q Huy, “Về backdoor sinh khóa RSA.” Nghiên cứu khoa học cơng nghệ Ký hiệu kB phận khóa cơng khai chứa thơng tin backdoor mã mật hóa (nhúng).VD với sinh khóa RSA chứa backdoor, kB n e 2.1.2 Định nghĩa thuật tốn sinh khóa chứa backdoors Ký hiệu thuật tốn sinh khóa hệ mật mã khóa cơng khai G0 Một người thiết kế tạo thuật tốn sinh cặp khóa, G1, thuật tốn khơi phục cặp khóa R1 Gọi I hàm nén thông tin, gọi E hàm mã mật hóa D hàm giải mã mật E, gọi fR hàm nhúng thông tin G1 Cặp khóa khóa chứa backdoor an tồn thuộc tính sau thỏa mãn: Bảo mật: Từ khóa cơng khai , người dùng khơng thể tính tốn (khơi phục) khóa riêng tương ứng Hoàn chỉnh: Các hàm I f khả nghịch, để người thiết kế khơi phục khóa riêng từ khóa cơng khai tương ứng, Khơng thể phân biệt được: Với thuật tốn sinh khóa G1 G0 Thì: a) Các kết đầu G0, G1 phân biệt mặt thống kê, mặt tính tốn b) Các đo đạc bên ngồi G0, G1 khơng thể phân biệt cách rõ ràng với 2.2 Một số kết hệ mật RSA 2.2.1 Định lý số số nguyên tố Ký hiệu π(n) số lượng số nguyên tố nhỏ n Thì n lớn, ta có: Vậy xác suất số nguyên ngẫu nhiên k-bit số nguyên tố là: 2.2.2 Số lượng khóa sinh Số lượng số nguyên tố k-bit: Với tham số e xác định tham số d nhất, tham số e chọn ngẫu nhiên Z*φ(n) Số số nguyên số số nguyên nguyên tố với φ(n), φ(φ(n)) Từ [5, Fact 2, p102], ta có: , Trong đó, ln ln n viết tắt ln(ln(n)) Chia n cho ln n không ảnh hưởng nhiều đến kết nên ta xấp xỉ φ(n) φ(φ(n)) xấp xỉ n Với giá trị e xác định nghịch đảo d, nên ta có lực lượng khóa thuật tốn sinh khóa RSA là: # {(p,q,d,e)} = #{(p, q)} • #{e} ≈ (1,44 2k-1-log2 k)2 • φ(φ(n)) ≈ n 22k-2-2log2 k Tạp chí Nghiên cứu KH&CN quân sự, Số 48, 04 - 2017 113 Công nghệ thông tin & Cơ sở toán học cho tin học THUẬT TỐN PAP 3.1 Giới thiệu thuật tốn PAP Thuật tốn sinh khóa RSA chứa backdoor [1] gọi PAP, G1 = PAP) Thuật tốn PAP sử dụng hệ mật RSA để mã mật thông tin backdoor, E = RSA Tham số modulus người thiết kế (N) có độ dài nửa so với độ dài tham số modulus người dùng (n) Thông tin backdoor (số nguyên tố p, giấu nửa bit cao n, kB = n, f = ρ.2k + r // (ρ : r) (ρ nối với r) Các tham số thuật tốn gồm: + Ký hiệu khóa cơng khai người thiết kế (N, E1) khóa riêng D1 + Hàm giả ngẫu nhiên FK: {0, 1}k → {0, 1}k, khả nghịch xét giá trị thỏa mãn FK(x) < N + Hàm GK: {0, 1}k → {0, 1}k hàm giả ngẫu nhiên khả nghịch để đảm bảo | GK (x) | = k + Ký hiệu a : b xâu a nối với xâu b, xâu nối có giá trị a.2k + b Thuật tốn PAP [sinh khóa RSA] Thuật tốn PAP [khơi phục khóa RSA] Input (k, K, E1, N, B1, B2) Input (n, e, D1, N, K, B1, B2) Output (p, q, d, e) Output (d) repeat for m = to repeat ρ 2k + r = n Generate random prime p//| p | = k ρ=ρ+m for i = to B1 for j = to B2 ρ1 = FK+i(p) ρ2 = G-1K + j(ρ) if ρ1 < N then break until ρ1 < N for i = to B1 8 p = F-1K+i (ρ3) for j = to B2 if (p | n) then break 10 ρ = GK+j(ρ2) //| ρ | = k 10 if (p | n) then break 11 Generate a random r //| r | = k 11 if (p | n) then break 12 n1 = ρ.2k + r //(ρ : r) 12 q = n / p 13 q = [n1 / p] 13 d ≡ e-1 mod φ(n) 14 if q is prime then break 14 return (d) 15 until q is prime 16 n = p.q 17 Generate a random e // until gcd(e, φ(n)) = 1) -1 18 d ≡ e mod φ(n) 19 return (p, q, d, e) 3.2 Đánh giá thuật toán PAP Tính bảo mật: Tham số modulus người thiết kế có chiều dài nửa tham số modulus người dùng khiến cho backdoor có điểm yếu đó, tính bảo mật khơng đảm bảo 114 B N Hồng, L Q Huy, “Về backdoor sinh khóa RSA.” Nghiên cứu khoa học cơng nghệ Lực lượng: Vì p sinh ngẫu nhiên nên theo định lý số lượng số nguyên tố, ta có: #{p} = Xét cách tạo q (từ bước đến bước 12): Số lượng xâu ρ: r chia hết cho p Theo định lý số số nguyên tố: số nguyên k-bit số nguyên tố với xác xuất khoảng 2-ln k # {q} = Số lượng xâu ρ: r chia hết cho p số nguyên tố Vậy, số lượng phần tử n (#{n}) là: Xét tỷ lệ lực lượng KSM KS, hạng tử #{e} giống hai thuật tốn sinh khóa nên bỏ qua Do đó, tỷ lệ hai lực lượng: Độ phức tạp: Vì |p| = |N| FK+i(p) xem hốn vị, xác xuất FK+i(p) < N lớn ½ Do vậy, vòng lặp từ đến khơng đáng kể Tương tự, vòng lặp cố định từ bước đến bước 14 với tối đa B2 = 16 Do đó, thuật tốn có bước lặp tạo q từ bước đến bước 15, q = [(ρ.2k + r) / p] số nguyên giả ngẫu nhiên, nên độ phức tạp việc tạo q G1 giống G0; tq(G1) =B2 tq(G0) tương đương với tq(G1) = tq(G0) Cách tạo p giống G0, nhiên p tạo bên vòng lặp tạo q nên tp(G1) = tp(G0) tq(G0) Độ phức tạp tạo n là: tn (G1) = tq + tq + T (FK) + T (RSA-k) + T (GK) Việc tạo e giống G0 nên ta có te (G1) = te (G0) Vậy độ phức tạp thuật toán là: T(G1) = te + tq + tq + T (FK) + T (GK) + T (RSA-k) ĐỀ XUẤT THUẬT TỐN SINH KHĨA RSA CHỨA BACKDOOR MỚI 4.1 Giới thiệu thuật tốn Phần này, trình bày thuật tốn sinh khóa RSA chứa backdoor sở cải tiến thuật toán PAP [1] Thuật toán đề xuất (G1’=thuật toán đề xuất) sử dụng mã khối đối xứng (E = mã khối đối xứng) để mã mật thông tin backdoor (số nguyên tố p, Thông tin backdoor giấu bit thấp n, kB = n; f = s.2k + r //(s : r) (s nối với r) Thuật toán đề xuất sử dụng kết định lý sau: Định lý 4.1 Ký hiệu p số nguyên tố, r số nguyên lẻ với | p | = | r | = k Gọi u = 2k mod p; r0 = r mod p ; s0 = (r0 + u2).u-1 mod p; s = 2k – s0 ; n = r + s.2k Thì ta có p | n Tạp chí Nghiên cứu KH&CN quân sự, Số 48, 04 - 2017 115 Cơng nghệ thơng tin & Cơ sở tốn học cho tin học Chứng minh: u = 2k mod p ⇔ 2k = m.p + u với m ∈ Z r0 = r mod p ⇔ r = l.p + r0 với l ∈ Z Từ n = s.2k + r = 2k (2k – s0) + l.p + r0 = (m.p + u).( m.p + u – s0) + l.p + r0 = m2p2 + (2mu – ms0).p +u2 – us0 + l.p + r0 = m2p2 + (2mu – ms0 + l).p + u2 + r0 – u (r0 + u2).u-1 mod p = (m2p + 2mu – ms0 + l).p mod p Vậy p | n Các tham số thuật toán đề xuất: + Hàm mã khối đối xứng FK: {0, 1}l → {0, 1}l để che giấu thơng tin backdoor (số ngun tố p), ví dụ F = AES 128 (l =128) Thuật toán đề xuất [sinh khóa RSA] Thuật tốn đề xuất [khơi phục khóa RSA] Input (k, K, B1) Input (n, e, K, B1) Output (p, q, n, d) Output (p, q, d) repeat k = |n| / 2 Generate a random prime p r = n mod 2k k u = mod p for m = to for i = to B1 r=r-m r = FK+i(p); for i = to B1 if r mod = then r = r + p = F-1K+i(r) r0 = r mod p if (p | n) then break -1 s0 = (r0 + u ).u mod p; if (p | n) then break q = n / p if (s0 ≤ 2k-1) then d = e-1 mod φ(n) 10 s = 2k – s0 11 n = s.2k + r; //n is multiple of p 10 return (p, q, d) 12 q=n/p 13 if q is prime then break 14 until q is prime 15 Generate a random e//gcd(e,φ(n))=1 16 d = e-1 mod φ(n) 17 return (p, q, n, d) 4.2 Đánh giá thuật tốn đề xuất Tính bảo mật: Thuật tốn đề xuất an tồn sử dụng mã khối đối xứng có độ dài khóa phù hợp (ví dụ AES 128), để mã mật thơng tin backdoor Lực lượng: Xét lực lượng p Vì p sinh ngẫu nhiên nên theo định lý số lượng số nguyên tố (mục 2.3.), ta có #{p} = Xét lực lượng q Ở bước 5, ta có r = FK+i(p) hàm FK mã khối đối xứng nên r xem hoán vị giả ngẫu nhiên p Với giá trị p có nhiều B1 giá trị s Do đó, số lượng phần tử nhiều q =B1 Theo định lý số số nguyên tố (mục 2.3), số nguyên k-bit số nguyên tố với xác suất khoảng 2- ln k Vì vậy: #{q số nguyên tố} = B1 2-ln k 116 B N Hồng, L Q Huy, “Về backdoor sinh khóa RSA.” Nghiên cứu khoa học cơng nghệ #{n} = #{p}.#{q} = Xét tỷ lệ lực lượng KSM KS, e sinh tự nên hạng tử #{e} giống G0 G’1 nên bỏ qua, ta có: Độ phức tạp: Cách tạo p giống G0 G’1 nên tp(G0) = tp(G’1) Vì p đặt vòng lặp tạo q vòng lặp tạo q có thêm việc mã mật hóa thơng tin backdoor, đó, tq (G’1) = tq(G0) (G0)+ T (FK) Vậy độ phức tạp tạo n là: tn (G’1) = + tq + T (FK) Cách tạo e G’1 giống với G0, đó, độ phức tạp việc tạo e giống nên ta có te (G’1) = te (G0) Vậy độ phức tạp thuật toán là: T(G’1) = + tq + te + T (FK) 4.3 Tóm tắt ưu điểm thuật toán đề xuất Thuật toán đề xuất ưu điểm so với thuật toán PAP điểm sau: - Tính bảo mật: thuật tốn đề xuất sử dụng mã khối đối xứng (có độ an tồn tương đương với khóa người dùng) để mã mật thơng tin backdoor nên tính bảo mật đảm bảo Thuật tốn PAP có độ dài khóa người thiết kế nửa độ dài khóa người dùng nên tính bảo mật có điểm yếu - Lực lượng: Tỷ lệ lực lượng thuật toán đề xuất ( ) lớn (tốt hơn) chút so với tỷ lệ lực lượng thuật toán PAP ( ) - Độ phức tạp thuật toán đề xuất, T(G’1) = + tq + te + T(FK) phức tạp độ phức tạp thuật toán PAP, T(G1) = + tq + te + T(FK) + T(GK) + T(RSA-k) KẾT LUẬN Trên sở thuật toán PAP, thuật toán đề xuất với ưu điểm tính bảo mật, lực lượng khóa độ phức tạp tính tốn so với thuật tốn PAP Thuật tốn ứng dụng tốt phần sinh khóa thiết bị PKI Token HSM Ngồi ra, thuật tốn xem xét thêm theo hướng sử dụng hệ mật khác để mã mật hóa thơng tin backdoor, rút bớt thơng tin backdoor đề xuất phương pháp tìm kiếm số nguyên tố q hiệu xem xét phù hợp tham số thuật toán sinh với tiêu chuẩn tham số ứng dụng cho hạ tầng PKI cụ thể TÀI LIỆU THAM KHẢO [1] Young A and Yung M, “The Dark Side of ‘Black-Box’ Cryptography or: Should We Trust Capstone?”, http://citeseerx.ist.psu.edu/ viewdoc/download?doi=10.1.1.54.616&rep=rep1&type=pdf, 1996 [2] Young A and Yung M, “Kleptography: Using Cryptography Against Cryptography”, https://cryptome.org/2013/09/klepto-crypto.pdf, 1997 Tạp chí Nghiên cứu KH&CN quân sự, Số 48, 04 - 2017 117 Công nghệ thông tin & Cơ sở toán học cho tin học [3] Young A and Yung M, “Malicious Cryptography: Kleptographic Aspects”, https://pdfs.semanticscholar.org/6c9c/9bb21f1b52480df05ce7a9266436ff5945 35.pdf, 2005 [4] Young A and Yung M, “A Space Efficient Backdoor in RSA and Its Applications”, http://link.springer.com/chapter/10.1007%2F11693383_9#page-1, 2005 [5] A Menezes, P van Oorschot, and S Vanstone, “Handbook of Applied Cryptography”, CRC Press, 2001 ABSTRACT ASYMETRIC BACKDOOR IN RSA KEY GENERATION In this paper, a propose of a backdoored RSA key generation algorithm based on improvement of PAP algorithm in [1] is presented The proposed algorithm uses RSA cryptosystem to encrypt backdoor information The proposed algorithm is better than the PAP in security, cardinality, complexity Keywords: Cryptography, Key generation, RSA, Backdoor Nhận ngày 29 tháng 12 năm 2016 Hoàn thiện ngày 02 tháng năm 2017 Chấp nhận đăng ngày 05 tháng năm 2017 Địa chỉ: Trường Đại học Sư phạm Kỹ thuật Hưng Yên; Cục Chứng thực số Bảo mật thông tin - Ban Cơ yếu Chính phủ * Email: lequanghuyabc@gmail.com 118 B N Hồng, L Q Huy, “Về backdoor sinh khóa RSA.” ... kB phận khóa cơng khai chứa thơng tin backdoor mã mật hóa (nhúng).VD với sinh khóa RSA chứa backdoor, kB n e 2.1.2 Định nghĩa thuật tốn sinh khóa chứa backdoors Ký hiệu thuật tốn sinh khóa hệ... thuật tốn sinh khóa chứa backdoor người thiết kế người dùng cặp khóa thuật tốn sinh khóa chứa backdoor tạo người dùng Ký hiệu thuật toán: Ký hiệu G0 thuật tốn tạo khóa trung thực, tạo khóa hợp... nhúng thơng tin backdoor (đã mã mật) gắn giá trị ngẫu nhiên thông tin backdoor (đã mã mật) vào phần (bộ phận) khóa cơng khai Vậy ta có 112 , B N Hồng, L Q Huy, Về backdoor sinh khóa RSA. ” Nghiên