Tải bản đầy đủ (.pdf) (7 trang)

Về một backdoor trong sinh khóa RSA tuân thủ điều kiện “chặt” theo chuẩn FIPS 186-4

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (276.27 KB, 7 trang )

Nghiên cứu khoa học công nghệ

VỀ MỘT BACKDOOR TRONG SINH KHÓA RSA TUÂN THỦ
ĐIỀU KIỆN “CHẶT” THEO CHUẨN FIPS 186-4
Lê Quang Huy*
Tóm tắt: Bài báo trình bày đề xuất về một thuật toán sinh khóa RSA chứa
backdoor tuân thủ điều kiện “chặt” về tham số khóa theo chuẩn FIPS 186-4 [1].
Thuật toán đề xuất dựa trên cơ sở thuật toán tìm số nguyên tố của John Gordon [2]
để tạo số nguyên tố mạnh và tấn công phân tích nhân tử của Coppersmith [3] để
giảm lượng thông tin backdoor cần nhúng.
Từ khóa: Mật mã, Sinh khóa, RSA, Backdoor.

1. ĐẶT VẤN ĐỀ
Hiện nay, Backdoor trong các hệ mật mã được nghiên cứu và công bố rộng rãi.
Backdoor trong các hệ mật được nghiên cứu chủ yếu tập trung vào phần sinh khóa (key
generation) và phần mã mật (encryption). Tuy nhiên, các nghiên cứu đã công bố về
backdoor đối với một hệ mật xác định chỉ đề xuất các giải pháp chung trên hệ mật đó chứ
chưa đề xuất giải pháp tuân thủ một chuẩn nhất định. Với hệ mật RSA, nhiều tổ chức định
chuẩn đã công bố các chuẩn ứng dụng trong thực tế. Do vậy, để các thuật toán backdoor
cho hệ mật RSA có thể ứng dụng được trong thực tế cũng cần thỏa mãn một chuẩn nhất
định. Hiện tại, chuẩn FIPS 186-4 về chữ ký số là chuẩn mới nhất có bao gồm hệ mật RSA,
được nhiều nhà sản xuất các sản phẩm mật mã tuân thủ.
Thuật toán sinh khóa chứa backdoor nhằm đảm bảo an ninh, an toàn cho cộng đồng. Đối
tượng áp dụng là các module mật mã dạng hộp đen. Để có thể ứng dụng được vào các
module mật mã dạng hộp đen hiện có, bài báo tập trung nghiên cứu các thuật toán sinh khóa
RSA chứa backdoor và đề xuất một thuật toán sinh khóa RSA chứa backdoor mới tuân thủ
điều kiện “chặt” về tham số khóa tại Appendix B.3.1. FIPS 186-4 [1]. Thực hiện mục tiêu
trên, bài báo được tổ chức thành 4 phần: Mục 1 - Đặt vấn đề, nêu lên sự cần thiết nghiên
cứu; Mục 2 - Các định nghĩa và cơ sở phục vụ cho việc phân tích backdoor; Mục 3 - Đề xuất
backdoor mới; Mục 4 - Kết luận tóm tắt các kết quả nghiên cứu và hướng phát triển.
2. CÁC ĐỊNH NGHĨA VÀ CƠ SỞ


2.1. Thuật toán sinh khóa chứa backdoor
Định nghĩa về thuật toán sinh khóa chứa backdoor và các thuộc tính có liên quan (tiêu
chuẩn đánh giá) trình bày trong phần này sử dụng các kết quả trong [4].
2.1.1. Định nghĩa thuật toán sinh khóa chứa backdoor
Ký hiệu G0, G1 lần lượt là thuật toán sinh khóa trung thực (chuẩn) và thuật toán sinh
khóa chứa backdoor. Ký hiệu (kpriv , kpub) lần lượt là khóa riêng và khóa công khai được tạo
bởi G0 hoặc G1. Ký hiệu kpub* là khóa công khai hoặc một phần của khóa công khai. Ký
hiệu  là tham số an toàn của hệ mật. Ký hiệu B0 , B1 lần lượt là sản phẩm hộp đen được
cài đặt thuật toán sinh khóa G0, G1. Ký hiệu R1 là thuật toán khôi phục cặp khóa được tạo
bởi G1.
Định nghĩa: Các cặp khóa được tạo ra bởi G1 là các cặp khóa chứa backdoor an toàn nếu
G1 tạo ra cặp khóa (kpub, kpriv) với các thuộc tính sau được thỏa mãn:
1. Tính bảo mật:
a) người thiết kế nhúng một phần khóa riêng vào trong khóa công khai tương ứng, kpub*
= M ◦ E ◦ I (kpriv)
(1)

Tạp chí Nghiên cứu KH&CN quân sự, Số 52, 12 - 2017

131


Công nghệ thông tin & Cơ sở toán học cho tin học

b) Người dùng, kẻ tấn công không thể tính toán được khóa riêng từ khóa công khai
tương ứng, kpriv ≠ 2). 2
/

Nên #{q} = #{p} - #{u} =




≈ 0,6. 2
/

>

/

.

/

(13)

Vậy lực lượng khóa của thuật toán là, #{(p, q, d, e)} = #{e}.#{(p}.#{q)}

134

Lê Quang Huy, “Về một backdoor trong sinh khóa RSA… theo chuẩn FIPS 186-4.”


Nghiên cứu khoa học công nghệ

= 2254 .

/

.


/

= 2254 .

(14)

3. ĐỀ XUẤT THUẬT TOÁN SINH KHÓA RSA CHỨA BACKDOOR MỚI
3.1. Giới thiệu thuật toán đề xuất
Thuật toán đề xuất sử dụng ý tưởng của thuật toán tìm số nguyên tố mạnh của John
Gordon [2] thỏa mãn các điều kiện tại 2.3.3, để cài thông tin backdoor vào một nửa các bit
thấp của p. Thông tin backdoor được mã mật hóa (hoặc băm) bởi hàm FK. Giá trị p được
khôi phục thông qua thuật toán của Coppersmith [3].
Các tham số thuật toán:
+ G1 = Thuật toán đề xuất; I(kpriv) = ((p⌋k/2)⌋); E = FK = AES,
E = log2 n = nlen, k(E) = (K); M = n; log2 p = log2 q = nlen/2.
+ Hàm G: {0, 1}2k x {0, 1}k/2 x {0, 1}k/2 → {0, 1}k, hàm này thực hiện kết quả của định
lý Coppersmith (mục 2.3.2), ví dụ: p = G(n, 2k/2, p mod 2k/2); (nlen = 2k)
+ Giá trị Bp, Bq: có thể đượ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.
Thuật toán đề xuất: Sinh khóa RSA
Input: nlen, n1, n2, n3, n4, m
// generate q
Output: p, q, n, e, d
11. q1 = RandomProvablePrime(2
,2 )
// generate e
12. q2 = RandomProvablePrime(2
,2 )
1. e = RandomOddInteger(216, 2256)

13. Aq = q1.q2.
2. u = FK(e)
//encryption or hash with
1
14.
=
//using CRT
key
−1
3. t = Random(m)
// t < m
15. Sq ={ Aq.j + Bq } (i = 1, 2, 3, …)
4. C = ut mod 2nlen/4
16. =
// generate p
/
/
∩ √2. 2
,2
−1
5. p1 = RandomProvablePrime(2
,2 )
6. p2 = RandomProvablePrime (2
,2 )
such that gcd(q - 1, e) = 1
nlen/2 – 100
7. Ap = p1.p2. 2nlen/4
17. if ( |p – q| ≤ 2
) then go to step
1

11.
−1
8.
=
// using CRT // compute n, d
/
18. n = p.q
2
19. d = e–1 mod (LCM(p - 1, q - 1))
9. Sp = { Ap.i + Bp } (i = 1, 2, 3, …)
nlen/ 2
10. =
17. if ( d < 2
) then go to step 11.
/
/
18. return (p, q, n, e, d).
∩ √2. 2
,2
−1
such that gcd(p - 1, e) = 1
Thuật toán đề xuất: khôi phục khóa RSA
Input: n, e, m
5.
if C mod 2 = 1 then
Output: p, q, d
6.
p = G(n, 2nlen/4, C) //Coppersmith (2.3.2)
1. t = 1, C = 1
7.

t=t+1
2. u = FK(e)
8. until (p mod 2nlen/4 = C) and (p is prime) and (t < m)
3. repeat
9. q =n / p;
4.
C = C.u mod 2nlen/4
10. d = e–1 mod (LCM(p - 1, q - 1))
t
nlen/4
//(C = u mod 2
)
11. return (p, q, d)
3.2. Đánh giá thuật toán đề xuất

Tạp chí Nghiên cứu KH&CN quân sự, Số 52, 12 - 2017

135


Công nghệ thông tin & Cơ sở toán học cho tin học

Tính bảo mật: Tính bảo mật được đánh giá ở mức tốt vì người thiết kế sử dụng hệ mật đối
xứng, hoặc hàm băm có khóa với độ dài tham số an toàn tương đương với độ dài tham số
an toàn của người dùng.
Tính hoàn chỉnh: Tính hoàn chỉnh được đánh giá ở mức tốt. Với thuật toán đề xuất người
thiết kế luôn tính được khóa riêng từ khóa công khai tương ứng và kẻ tấn công không thể
tính toán được khóa riêng, từ khóa công khai của người dùng.
Lực lượng khóa:
/


Xét việc tạo p (bước 5 đến 10). Theo (9), ta có #{ } = #{ } ≈
Ký hiệu s ∈ Sp , ta có s = Ap.i + Bp , (bước 9) và #{ s } = #{ i }
/

√ .
/

√ .
/

.

⇒#{ } =

/



/

√ .

/

/

=

/


/

√ .
/

/

≤ ≤

/



.

/

√ .



/

.
(

(

=


/

/

≤ ≤

/

/

√ ).

/

≤ ≤

.

.

/
/

.
/

√ ).

.


= 2 . 0,6 ≈ 2

/

Vậy số lượng các số nguyên của bởi tập Sp,
/

# Sp = #{p1}. #{p2}.#{i } =
Theo (6), ta có Pr[ ố

à

ê

ố] =

/

.

.2

/

=

,
/


Vậy số lượng p, #{p}= # Sp . Pr[số k bit là nguyên tố] =

.

.
/

=

/

(15)

Xét cách tạo q, vì q được tạo giống như q trong thuật toán mục 2.3.4, độc lập với p và
thỏa mãn điều kiện (8). Theo (13), vậy #{ } ≈

/

(16)

Cách tạo d, cũng giống như trong thuật toán mục 2.3.4.
Xét tỷ lệ giữa lực lượng của G1 và G0, vì e, q, d được sinh trong G1 giống như trong G0
nên hạng tử #{e}, #{q} có thể bỏ qua, nên tỷ lệ lực lượng giữa G1 và G0 là:
=

,
,




/
/

/
/

=2

/

=2

.

(17)

Vì hằng số c = -1/2 trong tỷ lệ giữa hai lực lượng,
, nên theo bảng 1, lực lượng của
G1 được đánh giá ở mức tốt.
Tính chất 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 có thể 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. Vậy tính
chất phân phối của G1 được đánh giá là tốt.
Tương quan giữa các thành phần khóa: 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ì có thể thực hiện được. Do vậy, 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 (chỉ khác A, B) nên ta có tp(G0) = tp(G1).

Việc tạo e, q, d giống như trong G0 nên độ phức tạp tạo n là: tn(G1) = tp + tq = tn và độ
phức tạp tạo e là: te (G1) = te (G0).

136

Lê Quang Huy, “Về một backdoor trong sinh khóa RSA… theo chuẩn FIPS 186-4.”


Nghiên cứu khoa học công nghệ

Vậy độ phức tạp của thuật toán là: T(G1) = tn + te . Nên độ phức tạp của G1 được đánh giá
là “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 nó có thuộc tính bộ
nhớ sử dụng được đánh giá là tốt.
4. KẾT LUẬN
Dựa trên thuật toán sinh số nguyên tố chứng minh được của Maurer và thuật toán tìm
số nguyên tố mạnh của John Gordon và tấn công phân tích nhân tử của Coppersmith, một
thuật toán sinh khóa RSA chứa backdoor mới thỏa mãn các điều kiện chặt theo chuẩn
FIPS 186-4 được đề xuất. Thuật toán đề xuất được đánh giá tốt trên 7 thuộc tính và có thể
ứng dụng tốt trong phần sinh khóa của thiết bị PKI Token hoặc HSM (Hardware Security
Module). Ngoài ra, thuật toán có thể được xem xét cải tiến theo hướng tăng lực lượng
khóa hoặc rút bớt thông tin backdoor.
TÀI LIỆU THAM KHẢO
[1]. FIPS, 2013, FIPS PUB 186-4; Digital Signature Standard,
http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf
[2]. John Gordon, 1985, Strong Primes are Easy to Find. In: Beth T., Cot N., Ingemarsson
I. (eds) Advances in Cryptology
[3]. D Coppersmith, 1995, Small Solutions to Polynomial Equations, and Low Exponent
RSA Vulnerabilities, https://www.di.ens.fr/~fouque/ens-rennes/coppersmith.pdf
[4]. G.Arboit, 2008, Two mathematical security aspects of the rsa cryptosystem,

http://crypto.cs.mcgill.ca/~crepeau/PDF/these-Genevieve.pdf
[5]. A. Menezes, P. van Oorschot, and S. Vanstone, 2001, Handbook of Applied
Cryptography, CRC Press.
[6]. U. Maurer, 1994, Fast Generation of Prime Numbers and Secure Public Key
Cryptographic Parameters, https://pdfs.semanticscholar.org/e
[7]. Alexander May, 2007, Using LLL-Reduction for Solving RSA and Factorization
Problems, https://pdfs.
ABSTRACT
A BACKDOOR IN RSA KEY GENERATION STRICTLY COMPLY WITH FIPS 186-4
In this paper, a proposal of backdoored RSA key generation algorithm strictly
comply with conditions of key parameter in FIPS 186-4 [1] is presented. The
proposed algorithm use John Gordon’s strong prime finding algorithm [2] and using
Coppersmith’s factoring attack [3] to reduce backdoor information for embedding.
Keywords: Cryptography, Key generation, RSA, Backdoor.

Nhận bài ngày 24 tháng 7 năm 2017
Hoàn thiện ngày 13 tháng 10 năm 2017
Chấp nhận đăng ngày 20 tháng 12 năm 2017

Địa chỉ: Cục Chứng thực số và Bảo mật thông tin - Ban Cơ yếu Chính phủ.
*
Email : lequanghuyabc@gmail.com.

Tạp chí Nghiên cứu KH&CN quân sự, Số 52, 12 - 2017

137




×