Mục đích nghiên cứu Nghiên cứu tổng quan nhằm nắm vững được những kiến thức về hệ thống mật mã khoá công khai RSA và các tiêu chuẩn an toàn cho tham số RSA đã được công bố trong một số
Trang 1VIỆN KHOA HỌC VÀ CÔNG NGHỆ QUÂN SỰ
Trang 2CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI VIỆN KHOA HỌC VÀ CÔNG NGHỆ QUÂN SỰ/BQP
Người hướng dẫn khoa học:
1 TS Lều Đức Tân
2 PGS.TS Bạch Nhật Hồng
Phản biện 1: PGS.TS Hoàng Văn Tảo
Ban Cơ yếu Chính phủ
Phản biện 2: TS Trần Văn Trường
Ban Cơ yếu Chính phủ
Phản biện 3: PGS.TS Đinh Thế Cường
Học viện Kỹ thuật quân sự
Luận án sẽ được bảo vệ trước Hội đồng chấm luận án tiến sĩ, họp tại Viện Khoa học và Công nghệ quân sự vào hồi giờ ngày tháng năm 2011
Có thể tìm hiểu luận án tại thư viện:
- Thư viện Viện Khoa học và Công nghệ quân sự
- Thư viện Quốc gia Việt Nam
Trang 3MỞ ĐẦU
Hệ thống mật mã khoá công khai RSA cũng như hầu hết các nguyên thuỷ mật mã khác về mô hình hệ mật, cấu trúc thuật toán là công khai Tuy nhiên, việc lựa chọn và sử dụng các tham số cho hệ thống mật mã này sao cho an toàn và hiệu quả là một vấn đề khó Việc xây dựng các tiêu chuẩn an toàn cho các tham số RSA là vấn đề được không ít các nhà khoa học trên thế giới cũng như trong nước quan tâm nghiên cứu Bởi vậy, hiện nay có khá nhiều tài liệu liên quan đến lĩnh vực này đã được công bố, ví dụ như ANSI X9.31, NIST 800-57, FIPS 186-3
Tuy nhiên, cùng với sự phát triển của khoa học lập mã thì khoa học mã thám cũng không ngừng phát triển với nhiều hình thức tấn công mới đối với hệ thống mật mã RSA Việc xem xét lại các tiêu chuẩn an toàn đã có và nghiên cứu, xây dựng thêm các tiêu chuẩn an toàn mới cho các tham số RSA là rất cần thiết
Xuất phát từ những yêu cầu thực tế trên, luận án đã chọn đề tài
"Hệ tiêu chuẩn tham số an toàn cho hệ mật RSA và ứng dụng" để
nghiên cứu là phù hợp
Mục đích nghiên cứu
Nghiên cứu tổng quan nhằm nắm vững được những kiến thức về
hệ thống mật mã khoá công khai RSA và các tiêu chuẩn an toàn cho tham số RSA đã được công bố trong một số chuẩn trên thế giới; đề xuất hệ tiêu chuẩn an toàn cho các tham số RSA (trên cơ sở bổ sung các tiêu chuẩn đã có đồng thời xây dựng các tiêu chuẩn mới); áp dụng các tham số RSA an toàn cho các giao thức bảo mật Web
Đối tượng nghiên cứu
Luận án lựa chọn hệ thống mật mã RSA và các giao thức bảo mật Web làm đối tượng nghiên cứu
Trang 4Nội dung nghiên cứu
Nghiên cứu tổng quan về hệ thống mật mã khoá công khai RSA
Nghiên cứu xây dựng hệ tiêu chuẩn an toàn cho tham số RSA
Xây dựng và cài đặt thuật toán sinh tham số RSA an toàn thoả mãn hệ tiêu chuẩn đã xây dựng
Nghiên cứu áp dụng các tham số RSA an toàn cho các giao thức bảo mật Web
Bố cục của luận án
Luận án gồm 03 chương cùng với các phần mở đầu, kết luận, danh mục các công trình, bài báo khoa học đã được công bố của tác giả và các phần phụ lục
Một số nội dung nghiên cứu mới của luận án
Đề xuất bổ sung về mặt định lượng cho một số tiêu chuẩn đã có
Đề xuất các tiêu chuẩn mới nhằm kháng lại các kiểu tấn công mã hoá liên tiếp đối với hệ thống mật mã RSA
Xây dựng, cài đặt chương trình thuật toán sinh tham số RSA an toàn và tích hợp vào bộ chương trình sinh chứng chỉ số theo chuẩn X509
Sửa đổi phần mềm trình duyệt Web để có thể áp dụng các tham
số RSA an toàn trong giao thức bảo mật giao dịch Web
Trang 5CHƯƠNG 1 TỔNG QUAN VỀ TIÊU CHUẨN THAM SỐ RSA
VÀ CÁC GIAO THỨC BẢO MẬT WEB
Để luận giải về sự cần thiết đồng thời tạo cơ sở cho việc thực hiện các nội dung nghiên cứu của đề tài luận án, chương này của luận án trình bày một số kết quả nghiên cứu có liên quan đã được công bố trong và ngoài nước
1.1 MỘT SỐ ĐỊNH NGHĨA VÀ KÝ HIỆU
Các ước tầm thường (Trivial Divisor): Các ước 1, -1, N và –N
được gọi là các ước tầm thường của số nguyên N
Số nguyên tố (Prime Number): Số nguyên N>1 là nguyên tố khi
nó chỉ có các ước tầm thường
Hợp số (Composit number): Số nguyên N>1 là hợp số nếu nó
không là nguyên tố
Chứng nhận tính nguyên tố (Primality Certificate): Chứng minh
toán học rằng một số cho trước là thực sự nguyên tố
Phép chia thử (Trial Division): Phép chia thử của một số N có
nghĩa là kiểm tra tất cả các số nguyên tố nhỏ hơn hoặc bằng N1/2 xem
có phải là ước của N không
Độ an toàn (secure_strength): Là một giá trị có liên quan đến
lượng công việc cần phải thực hiện (số lượng phép toán) để phá vỡ một thuật toán hoặc một hệ thống mật mã Cụ thể, một thuật toán mật
mã với các tham số cho trước được coi là có độ an toàn
secure_strength nếu để phá vỡ thuật toán này cần đến nỗ lực tính
toán tối thiểu cỡ 2security_strength phép tính
p , p , q , q : Được gọi là các số nguyên tố bổ trợ
Trang 61.2 HỆ MẬT MÃ KHOÁ CÔNG KHAI RSA
1.2.1 Qui trình sinh tham số khóa RSA
Bước 1: Sinh ngẫu nhiên hai số nguyên tố lớn khác nhau p và q; Bước 2: Tính N pq , ( )N lcm p( 1,q1);
Bước 3: Chọn e thỏa mãn 1 e ( )N sao cho
gcd( , ( )) 1e N ;
Bước 4: Tính số nguyên dương d thỏa mãn: 1d( )N và
1(mod ( ))
Bước 5: Khóa công khai RSA là (N, e) khóa bí mật là (N, d);
Bộ ba (N, e, d) được gọi là bộ tham số RSA
1.2.2 Hệ mật khóa công khai RSA nguyên thủy
Thông điệp mZ N* được B mã hóa và A giải mã
Qui trình mã hoá: B sử dụng khoá công khai (N, e) của A và tính
bản mãcm e(modN)
Qui trình giải mã: A sử dụng khoá bí mật (N, d) của mình để giải
mãmc d(modN)
1.2.3 Hệ chữ ký số RSA nguyên thuỷ
Thực thể A ký lên thông điệp mZ N*, thực thể B kiểm tra chữ
ký của A trên thông điệp m
Qui trình ký: A sử dụng khoá bí mật (N, d) để sinh chữ ký
(mod )
d
sm N trên m
Qui trình kiểm tra chữ ký: B sử dụng khoá công khai (N, e) của A
để kiểm tra chữ ký trên m, thông qua việc tính m ' se(mod N ), nếu
m = m' thì kết luận chữ ký của A trên m hợp lệ, ngược lại kết luận
không hợp lệ
1.2.4 Hệ thống mật mã dựa trên RSA
Hiện tại trong các ứng dụng bảo mật thông tin người ta thường
sử dụng hệ mật RSA và lược đồ chữ ký RSA có định dạng Trong hệ
Trang 7mật RSA có định dạng và lược đồ chữ ký RSA có định dạng người ta
sử dụng thêm tập các hàm chuẩn bị thông báo: G{ : g *N *N}
Khi đó thay vì tính toán trực tiếp trên thông điệp m trong các lược đồ
nguyên thuỷ thì các lược đồ có định dạng tính toán trên xg m( )
với gG
1.2.5 Độ an toàn của hệ thống mật mã RSA
Độ an toàn của hệ thống mật mã RSA dựa vào tính khó giải của
bài toán phân tích modulus N ra các thừa số nguyên tố
1.3 MỘT SỐ THUẬT TOÁN SINH SỐ NGUYÊN TỐ
1.3.1 Một số phép kiểm tra tính nguyên tố xác suất
Luận án giới thiệu hai phép kiểm tra tính nguyên tố xác suất: phép kiểm tra tính nguyên tố Miller-Rabin và phép kiểm tra tính nguyên tố Frobenius-Grantham
1.3.2 Các phương pháp sinh số nguyên tố
1.3.2.1 Sử dụng các phép kiểm tra tính nguyên tố xác suất
Luận án giới thiệu hai phương pháp sinh số nguyên tố sử dụng
phép kiểm tra tính nguyên tố xác suất T: phương pháp lựa chọn ngẫu
nhiên các ứng cử viên và phương pháp tìm kiếm tăng dần
1.3.2.2 Các thuật toán sinh số nguyên tố tất định
Luận án giới thiệu hai thuật toán sinh số nguyên tất định: thuật
toán của Shawe-Taylor và thuật toán của Maurer
1.3.3 Nhận xét
Trong hai phương pháp sinh số nguyên tố xác suất thì phương pháp lựa chọn các ứng cử viên ngẫu nhiên được đánh giá cao hơn về phân bố đầu ra, nhưng kém hiệu quả hơn trong thực hành
Các số nguyên tố đầu ra thuật toán của Maurer có tính đa dạng hơn so với thuật toán của Shawe-Taylor
Trang 81.4 TIÊU CHUẨN THAM SỐ CHO RSA
1.4.1 Tiêu chuẩn tham số RSA được đưa ra trong ANSI X9.31
Tiêu chuẩn về độ dài modulus
Chuẩn X9.31 khuyến cáo sử dụng modulus có độ dài 1024+256s, với s là số nguyên và s0
Các tiêu chuẩn về các số nguyên tố p, q
Chuẩn X9.31 đưa 07 tiêu chuẩn cho các số nguyên tố p, q dùng
để tạo RSA modulus
Tiêu chuẩn tham số cho e
e là số nguyên dương thoả mãn 2 e 2nlen 160
Tiêu chuẩn tham số cho d
d được tính bởi công thức d=e-1 (mod lcm(p-1, q-1)) và thoả mãn
Độ dài tối thiểu của RSA modulus
NIST 800-57 đưa ra tiêu chuẩn về độ dài tối thiểu của RSA modulus an toàn đến các năm 2010, 2030 và sau năm 2030
Tiêu chuẩn cho các tham số p và q
Chuẩn FIPS 186-3 đưa ra 06 tiêu chuẩn cho các số nguyên tố p,
q dùng để tạo RSA modulus
Tiêu chuẩn cho số mũ công khai e
Chuẩn FIPS 186-3 khuyến cáo nên chọn e trước khi sinh p, qvà
e cần thoả mãn: 216 < e < 2256
Tiêu chuẩn cho số mũ bí mật d
Chuẩn FIPS 186-3 khuyến cáo chọn d là giá trị nguyên dương thoả mãn d > 2 nlen/2 , và d = e-1 mod (lcm((p-1), (q-1)))
Trang 91.4.3 Một số nhận xét
Trong 03 bộ chuẩn đã giới thiệu ở trên chỉ bộ chuẩn ANSI X9.31
là đề cập đến vấn đề đảm bảo toán học cho các tiêu chuẩn được đề xuất, tuy nhiên về mặt thời gian và công nghệ hiện tại đã có nhiều thay đổi Do vậy việc nghiên cứu về cơ sở lý thuyết và từ đó đưa ra những đề xuất chính xác hơn về mặt định lượng cho từng tiêu chuẩn
1.5.1 Giới thiệu về giao thức bảo mật SSL/TLS
SSL là một giao thức cung cấp dịch vụ truyền thông có bảo mật giữa các ứng dụng client và server
1.5.2 Giao thức SSL phiên bản 3.0
Giao thức bảo mật SSL phiên bản 3.0 gồm 4 thành phần chính: giao thức bắt tay, giao thức bản ghi, giao thức báo lệnh và giao thức xác định thay đổi mã pháp
1.5.3 Cơ chế tính khoá phiên trong giao thức SSL
Khoá dùng cho phiên liên lạc sẽ được tính từ các thành phần
việc sử dụng các hàm băm mật mã Trong đó thành phần
khai RSA
1.5.4 Hệ thống mật mã RSA và bảo mật dịch vụ Web
Hệ thống mật mã khoá công khai RSA được sử dụng trong giao thức bảo mật SSL với mục đích xác thực và thiết lập khoá chung cho phiên liên lạc Tuy nhiên, để áp dụng được các tham số RSA có độ
Trang 10an toàn cao cho các giao thức bảo mật trong các ứng dụng Web ta cần sửa đổi các mô đun mật mã trong các ứng dụng này
1.6 KẾT LUẬN CHƯƠNG 1
Trong chương này của luận án đã trình bày tổng quan về các kết quả nghiên cứu đã được công bố trong và ngoài nước có liên quan đến các nội dung cần giải quyết của luận án Nhận xét, đánh giá về
ưu, nhược điểm; đề xuất giải pháp nhằm khắc phục các nhược điểm
và bổ sung những hạn chế còn tồn tại trong các kết quả đó, cụ thể:
Trên cơ sở tìm hiểu các tiêu chuẩn an toàn cho các tham số của
hệ thống mật mã RSA hiện có để thấy được sự cần thiết của việc xem xét, bổ sung về mặt định lượng cho các tiêu chuẩn đã có đồng thời xây dựng thêm những tiêu chuẩn mới nhằm nâng cao
độ an toàn cho hệ thống mật mã RSA
(Việc xây dựng và đề xuất hệ các tiêu chuẩn an toàn cho tham số
RSA sẽ được trình bày trong chương 2)
Giới thiệu một số thuật toán sinh số nguyên tố và tính chất của chúng, làm cơ sở cho việc lựa chọn một thuật toán thích hợp phục vụ cho việc xây dựng thuật toán sinh các tham số RSA
Tìm hiểu về các giao thức bảo mật SSL/TLS, vai trò của hệ thống mật mã RSA trong các giao thức bảo mật trên Khả năng
áp dụng các tham số RSA trong ứng dụng Web, từ đó đề xuất giải pháp xây dựng các ứng dụng Web có thể áp dụng được các tham số RSA an toàn
(Việc xây dựng, cài đặt thực tế thuật toán sinh tham số RSA an
toàn và sử dụng chúng cho các giao thức bảo mật Web sẽ được trình bày trong chương 3)
Trang 11CHƯƠNG 2 XÂY DỰNG HỆ TIÊU CHUẨN THAM SỐ AN TOÀN
CHO HỆ THỐNG MẬT MÃ RSA
2.1 XEM XÉT CÁC TIÊU CHUẨN ĐÃ CÓ VÀ ĐỀ XUẤT BỔ SUNG 2.1.1 Độ an toàn của hệ thống mật mã RSA với độ dài modulus cho trước
Định nghĩa 2.1 "Hệ thống mật mã RSA với độ dài modulus nlen
bít có độ an toàn là secure_strength(nlen) nếu sử dụng phương pháp NFS để phân tích modulus thì độ phức tạp sẽ là 2 secure_strength(nlen)"
Bảng 2.1: Độ an toàn của hệ thống mật mã RSA theo độ dài modulus
2.1.2 Tiêu chuẩn về độ dài RSA modulus
Luận án đề xuất độ dài tối thiểu của RSA modulus an toàn đến các năm 2015, 2020 và 2025 như bảng 2.3
Bảng 2.3: Tiêu chuẩn độ dài tối thiểu RSA modulus
Trang 12Cơ sở đề xuất:
Đảm bảo cho hệ thống mật mã RSA trước tấn công tổng quát: sử
dụng thuật toán phân tích số sàng trường số (NFS) để phân tích N
2.1.3 Các tiêu chuẩn cho các số nguyên tố p, q
2.1.3.1 Tiêu chuẩn về phương pháp sinh các số nguyên tố
2.1.3.2 Tiêu chuẩn về độ dài các số nguyên tố bổ trợ
Độ dài tối thiểu các số nguyên tố bổ trợ p 1 , p 2 , q 1 , q 2 (tương ứng với độ dài modulus) được cho như bảng 2.4:
Bảng 2.4: Độ dài tối thiểu của các số nguyên tố bổ trợ
Nhằm chống lại các kiểu tấn công dựa vào tính chất của các số
nguyên tố p, q: tấn công phân tích số p-1 của Pollard, phân tích số
p1 của Williams và tấn công phân tích số dựa trên thuật toán
Williams cải biên
2.1.3.3 Tiêu chuẩn về độ dài của các số nguyên tố p, q
p và q được chọn ngẫu nhiên từ các số nguyên tố có độ dài:
( 2)(2nlen ) p q, (2nlen 1)
Trang 13Cơ sở đề xuất:
Đảm bảo cho hệ thống mật mã RSA an toàn trước các tấn công dựa vào các thuật toán phân tích số có độ phức tạp phụ thuộc vào kích thước các nhân tử nguyên tố, đồng thời tăng tính hiệu quả của các lược đồ bảo mật và xác thực RSA
2.1.3.4 Tiêu chuẩn về độ lớn của hiệu |p-q|
Bảng 2.5: Tiêu chuẩn độ dài tối thiểu của |p-q|
nlen Độ dài tối thiểu của |p-q|
2.1.3.5 Tiêu chuẩn về độ lớn ước nguyên tố của |p-q|
Ước nguyên tố |p-q| có độ dài tối thiểu theo bít được cho như bảng 2.6:
Bảng 2.6: Tiêu chuẩn về ước nguyên tố của |p-q|
Trang 142.1.4 Tiêu chuẩn cho số mũ công khai e và số mũ bí mật d
2.1.4.1 Giới thiệu một số tấn công liên quan đến độ lớn của e
Để giảm thiểu việc tính toán trong phép mã hoá và phép kiểm tra chữ ký chúng ta có thể chọn một số mũ công khai nhỏ, ví dụ e = 3,
65537 chẳng hạn Tuy nhiên, khi đó hệ thống mật mã RSA dễ bị phá
vỡ như cách các tác giả Dan Boneh, Glenn Durfee đã chỉ ra
2.1.4.2 Một số tấn công liên quan đến độ lớn của d
Giống như đối với số mũ công khai, để giảm thiểu việc tính toán trong phép giải mã và sinh chữ ký chúng ta có thể chọn số mũ công khai nhỏ Tuy nhiên, khi đó hệ thống mật mã RSA dễ bị phá vỡ qua các tấn công như tấn công của Wiener, tấn công của Boneh và Durfee
Trong đó tấn công của Boneh và Durfee thành công khi bất đẳng thức dưới đây được thoả mãn:
2.1.4.3 Đề xuất tiêu chuẩn cho e và d
Số mũ công khai e có độ dài tối thiểu là 32 bít
2.2.1 Chu kỳ RSA và các tính chất của nó
Định nghĩa 2.3 Giá trị t>0 nhỏ nhất sao cho m e t(modN)m
gọi là chu kỳ RSA của m và ký hiệu là per(m)
Tính chất 2.1 Cho t=per(m), khi đó nếu me t'(mod N) m, thì t
Trang 152.2.2 Tiêu chuẩn mới chống lại tấn công mã hoá liên tiếp
Phép tấn công mã hoá liên tiếp
Để có thể chống được tấn công trên ta cần thiết kế được bộ tham
số RSA sao cho tập M m*N :per m( )B với B đủ nhỏ là rất
hiếm Để đạt được điều này ta dựa vào kết quả của mệnh đề 2.3
Mệnh đề 2.3 Gọi p và 1 q tương ứng là các ước nguyên tố của 1