GIỚI THIỆU
RSA được đặt tên theo các chữ cái viết tắt tên ba tác giả phát minh ra hệ thống mật mã này là Ron Rivest, Adi Shamir và Leonard Adleman [1] và là hệ thống mật mã khóa công khai với hai nguyên thủy là hệ mật khóa công khai RSA và lược đồ RSA đã và đang được tích hợp trong hầu hết các sản phẩm bảo mật và hiện nay (cả sản phẩm phần cứng và phần mềm). Để triển khai sử dụng các nguyên thủy mật mã RSA, các bộ tham số RSA được sinh, phân phối dưới dạng các chứng thư số (khóa công khai) và khóa riêng thông qua các hệ thống cơ sở hạ tầng khóa công khai (PKI). Các nguyên thủy mật mã RSA cùng bộ tham số đi kèm có thể được sử dụng cho nhiều mục đích trong các hệ thống thông tin dùng trong cả lĩnh vực kinh tế xã hội cũng như an ninh quốc phòng, như: bảo mật, xác thực thư tín điện tử, bảo mật và xác thực Web, bảo mật và xác thực giao thức truyền tệp (FTP), đăng nhập mạng máy tính, bảo mật và xác thực dữ liệu được lưu trữ và xử lý trong các hệ quản trị cơ sở dữ liệu, bảo mật luồng IP,... Dưới đây là thuật toán sinh bộ tham số khóa cho các nguyên thủy mật mã RSA.
Mỗi thực thể trong hệ thống trước khi muốn sử dụng các nguyên thủy mật mã RSA sẽ tạo hoặc được tạo một bộ tham số RSA theo các bước dưới đây [1]:
Trong đó: N là RSA mô đun lô, e là khóa công khai, d là khóa bí mật (thông thường khi người ta nói bộ tham số RSA 2048 bít là bộ tham số RSA với mô đun lô N có độ dài tính theo bít là 2048 bít).
Các bộ tham số RSA sau khi sinh sẽ được sử dụng cho thuật toán mã hóa khóa công khai như RSA-OAEP, RSAES-PKCS1-V1_5 và các lược đồ chữ ký số như RSASSA-PSS, RSASSA-PKCS1-V1_5 [2].
Hệ thống mật mã khoá công khai RSA là một trong các hệ thống mật mã mà độ an toàn của nó dựa trên tính khó giải của bài toán phân tích số nguyên thành các nhân tử nguyên tố, ở đây là bài toán phân tích RSA mô đun lô N thành các nhân tử nguyên tố p và q. Do đó khi sinh bộ tham số khóa RSA đòi hỏi các số nguyên tố p, q và cặp khóa bí mật, công khai d, e phải được chọn sao cho việc phân tích mô đun lô N là không thể về mặt tính toán. Để đạt được yêu cầu trên, trước hết p, q phải là các số nguyên tố lớn, độ lớn của chúng mang tính lịch sử, phụ thuộc vào tốc độ và kỹ thuật tính toán được sử dụng khi thực hiện bài toán phân tích số.
Tóm lại để sử dụng các nguyên thủy RSA sao cho an toàn và hiệu quả cần quan tâm đến nhiều yếu tố. Trong phạm vi bài viết này chúng tôi sẽ tổng hợp và giới thiệu các kết quả nghiên cứu đã được công bố trên thế giới về việc lựa chọn độ dài RSA mô đun lô nhằm đáp ứng hai mục tiêu nêu trên. Trên cơ sở đó đưa ra những khuyến cáo về độ dài RSA mô đun lô phù hợp cho thời điểm hiện tại và tương lai để đảm bảo các bộ tham số RSA được sinh, phân phối và quản lý bởi các hệ thống PKI đủ an toàn và hiệu quả khi sử dụng để bảo mật và xác thực thông tin thuộc lĩnh vực kinh tế xã hội.
MỘT SỐ KHUYẾN CÁO TRONG CÁC BỘ CHUẨN TRÊN THẾ GIỚI
Để đảm bảo các nguyên thủy mật mã an toàn trước các tấn công đã biết, nhiều bộ chuẩn về mật mã và an toàn thông tin đã đưa ra các tiêu chuẩn về độ dài khóa cho các nguyên thủy mật mã nói chung, trong đó có độ dài khóa cho các nguyên thủy mật mã mà độ an toàn của nó dựa trên bài toán phân tích số nguyên ra các thừa số nguyên tố (trong đó các nguyên thủy RSA là ví dụ điển hình). Dưới đây, chúng tôi xin giới thiệu một số khuyến cáo về độ dài RSA mô đun lô đã được đưa ra bởi một số tổ chức ban hành tiêu chuẩn có uy tín trên thế giới.
Khuyến cáo của NIST
Viện Tiêu chuẩn và Công nghệ Mỹ (NIST) đưa ra khuyến cáo về việc sử dụng độ dài RSA mô đun lô theo thời gian trong chuẩn NIST 800-57 [3] với phiên bản được cập nhật mới nhất vào năm 2020. NIST 800-57 lấy một mốc thời gian chung từ năm 2019-2030 với các độ dài mô đun như Bảng 1.
Bảng 1. Khuyến cáo độ dài RSA mô đun lô theo thời gian của NIST
TT |
Thời gian sử dụng |
Độ dài RSA mô đun lô theo bít |
1 |
Thừa kế |
1024 |
2 |
2019-2030 (mức 1) |
2048 |
3 |
2019-2030 (mức 1) |
3072 |
4 |
2019-2030 (mức 3) |
7680 |
5 |
2019-2030 (mức 4) |
15360 |
Chú ý: “Thừa kế” theo nghĩa là đối với RSA 1024 bít được dùng để tương thích với các ứng dụng cũ, tức chỉ được dùng để xử lý dữ liệu đã được bảo vệ trước đó, không sử dụng để bảo vệ dữ liệu sau năm 2019 (mã hóa dữ liệu và ký số).
Khuyến cáo của ANSSI
Năm 2014, Cơ quan An ninh Mạng và Thông tin Pháp (ANSSI) đã đưa ra khuyến cáo về độ dài RSA mô đun lô theo thời gian [4]. Độ dài RSA mô đun lô được khuyến cáo dùng trong ba giai đoạn chính với các khoảng thời gian cụ thể như Bảng 2 dưới đây.
Bảng 2. Khuyến cáo độ dài RSA mô đun lô theo thời gian của ANSSI
TT |
Thời gian sử dụng |
Độ dài RSA mô đun lô theo bít |
1 |
2014-2020 |
2048 |
2 |
2020-2030 |
2048 |
3 |
>2030 |
3072 |
ECRYPT-CSA là cơ quan đưa ra các khuyến nghị về sử dụng an toàn mật mã của Liên minh Châu Âu. Năm 2018, ECRYPT-CSA đưa ra khuyến cáo về độ dài RSA mô đun lô sử dụng trong các khoảng thời gian như Bảng 3 [5].
Bảng 3. Khuyến cáo độ dài RSA mô đun lô theo thời gian của ECRYPT-CSA
TT |
Thời gian sử dụng |
Độ dài RSA mô đun lô theo bít |
1 |
Thừa kế |
1024 |
2 |
2022-2028 (dữ liệu sử dụng dưới 10 năm) |
3072 |
3 |
2022-2068 (dữ liệu sử dụng từ 30 đến 50 năm) |
15360 |
Khuyến cáo của BSI
BSI là cơ quan ban có trách nhiệm hành chuẩn mật mã của Đức. Theo khuyến cáo của BSI [6], độ dài RSA mô đun lô dùng theo thời gian được cho như Bảng 4.
Bảng 4. Khuyến cáo độ dài RSA mô đun lô theo thời gian của BSI
TT |
Thời gian sử dụng |
Độ dài RSA mô đun lô theo bít |
1 |
2020-2022 |
2000 |
2 |
2023-2026 |
3000 |
Khuyến cáo của RFC 3766
RFC 3766 [7] đưa ra phương pháp xác định độ dài RSA mô đun lô theo từng năm, cụ thể áp dụng phương pháp này chúng ta có các khuyến cáo cho từng năm như Bảng 5.
Bảng 5. Khuyến cáo độ dài RSA mô đun lô theo thời gian của RFC 3766
TT |
Thời gian sử dụng |
Độ dài RSA mô đun lô theo bít |
1 |
2023 |
2269 |
2 |
2025 |
2313 |
3 |
2026 |
2358 |
4 |
2028 |
2403 |
5 |
2029 |
2448 |
Mặc dù các bộ tiêu chuẩn nêu trên đã đưa ra các khuyến cáo về độ dài RSA mô đun lô cho từng mốc thời gian cụ thể, tuy nhiên đảm bảo toán học cho các tiêu chuẩn không được các tổ chức ban hành chuẩn công bố. Trong phần tiếp theo chúng tôi sẽ giới thiệu một số công trình nghiên cứu khoa học và thực tiễn liên quan đến việc xác định độ dài RSA mô đun lô nhằm đảm bảo cho các nguyên thủy mật mã RSA được sử dụng một cách an toàn và hiệu quả.
MỘT SỐ CÔNG TRÌNH NGHIÊN CỨU KHOA HỌC VÀ THỰC TIỄN KHÁC
Năm 2001, Arjen K. Lenstra và Eric R. Verheul đã đưa ra các công thức toán học cụ thể để tính mức an toàn và đưa ra các khuyến nghị về độ dài khóa cho hầu hết các hệ thống mật mã [8]. Đây là công trình đầu tiên có cách tiếp cận toán học dựa trên các tham số cụ thể. Đến năm 2004, Arjen K. Lenstra trong công trình công bố của mình [9] đã đưa ra phương pháp được xem là phiên bản cập nhật của phương pháp đã được đưa ra trong [8]. Trong phương pháp này số lượng các tham số được sử dụng để tính toán được cập nhật và giảm bớt tạo sự dễ hiểu khi xác định độ dài khóa cho các nguyên thủy mật mã.
Trong phạm bài viết này chúng tôi chỉ giới thiệu tóm lược phương pháp tính được đưa ra trong [9] đối với bài toán phân tích số nhằm đưa ra độ dài RSA mô đun lô theo các mốc thời gian. Phương pháp này dựa vào một số giả thuyết và căn cứ dưới đây:
- Một nguyên thủy mật mã được cho là an toàn cho đến một năm cho trước, nếu chi phí cho một tấn công thành công trong năm đó là xấp xỉ 40 triệu Đô la Mỹ một ngày (40M dollardays). Đây chính là chi phí được tính toán để có thể phá Chuẩn mã hoá dữ liệu (DES) vào năm 1982.
- Tại thời điểm năm 2004 (thời điểm [7] được công bố), chi phí của tấn công trên RSA 1024 bít sử dụng phần cứng chuyên dụng cùng thuật toán phân tích số nguyên “sàng trường số” (NFS – Number Field Sieve) được đánh giá với chi phí tối đa là 400M dollardays.
- Dưới tác động của luật Moore và các yếu tố khác như kinh phí đầu tư có tính đến phát triển của kinh tế, của khoa học mã thám, … tác giả [7] đưa ra giả thuyết đối với bài toán phân tích số là "Gấp đôi luật phân tích Moore" như sau: Chi phí phân tích một modulus cố định bất kỳ giảm đi 2 lần sau mỗi 9 tháng.
Trên cơ sở các giả thiết chính nêu trên, Arjen K. Lenstra đã đưa ra công thức tính độ dài RSA mô đun lô an toàn theo mốc thời gian (công thức, các khái niệm có liên quan có thể xem chi tiết trong [9]). Cụ thể theo [9] một số độ dài RSA mô đun lô được khuyến cáo sử dụng đến các mốc thời gian như sau:
Bảng 6. RSA mô đun lô và thời gian sử dụng theo cách tính trong [9]
TT |
Thời gian sử dụng |
Độ dài RSA mô đun lô theo bít |
1 |
2023 |
1708 |
2 |
2024 |
1756 |
3 |
2025 |
1805 |
4 |
2026 |
1855 |
5 |
2027 |
1906 |
6 |
2030 |
2063 |
Bên cạnh các công trình nghiên cứu cơ sở lý thuyết nhằm xác định độ dài RSA mô đun lô sử dụng an toàn theo các mốc thời gian, thì nhiều công trình nghiên cứu mang tính thực tiễn khi triển khai phân tích các RSA mô đun lô cũng đã được công bố. Dưới đây là một số là kết quả của một số nhóm nghiên cứu:
- Ngay sau khi chương trình thử thách phân tích RSA (RSA Factoring Challenge) do phòng thí nghiệm RSA đưa ra vào ngày 18 tháng 3 năm 1991 thì đến ngày 1 tháng 4 cùng năm Arjen K. Lenstra đã công bố kết quả phân tích RSA-330 (100 chữ số thập phân).
- Ngày 22/8/1999 Herman và nhóm nghiên cứu đã công bố kết quả phân tích RSA-512 (155 chữ số thập phân).
- Ngày 12/12/2009 Thorsten Kleinjung và nhóm nghiên cứu đã công bố kết quả phân tích RSA-768 (232 chữ số thập phân).
- Ngày 28/02/2020 nhóm các tác giả F. Boudot, P. Gaudry, A. Guillevic, N. Heninger, E. Thomé and P. Zimmermann đã công bố kết quả phân tích RSA-829 (250 chữ số thập phân).
Trên đây là kết quả công bố của một số nhóm nghiên cứu với tiềm lực về công nghệ và tài chính giới hạn. Hiện tại, theo dữ liệu về siêu máy tính được công bố trong [10] vào tháng 6/2022, siêu máy tính mạnh nhất thế giới hiện nay là siêu máy tính Frontier của công ty ORNL, Mỹ. Tốc độ tính toán của siêu máy tính Frontier là 1102Exaflop/s, trong đó mỗi Exaflop tương đương với 1018 phép tính. Như vậy mỗi năm siêu máy tính này có thể thực hiện được tương đương số lượng phép tính là:
(365 × 24 × 60 × 60) × 1102 × 1018 ≈ 293.
Với giả thiết dùng toàn bộ GDP của quốc gia có GDP cao nhất là Mỹ (cỡ 23.000 tỷ đô la theo [11]) đầu tư mua siêu máy tính Frontier (giá 0,6 tỷ Đô la) thì một năm hệ thống này có thể thực hiện tổng cộng cỡ 2109 phép tính. Với 293 phép tính là tương đương với việc phân tích RSA-1939 và 2109 phép tính tương đương với việc phân tích RSA-2919 (việc quy đổi này có thể tham khảo [12]).
KẾT LUẬN
Trong bài viết này tổng hợp các khuyến cáo từ các bộ chuẩn được ban hành bởi các tổ chức ban hành chuẩn về bảo mật và an toàn thông tin có uy tín trên thế giới về độ dài RSA mô đun lô sử dụng cho các khoảng thời gian cụ thể; các công trình nghiên cứu về cơ sở khoa học và thực tiễn của các nhà khoa học nhằm đánh giá độ an toàn của các nguyên thủy mật mã RSA với các độ dài mô đun lô cho trước; cập nhật sự phát triển của khoa học công nghệ có ảnh hưởng đến bài toán phân tích số cũng như là ảnh hưởng đến độ an toàn của các nguyên thủy mật mã RSA. Qua kết quả nghiên cứu phân tích, tổng hợp trên, chúng ta thấy để các nguyên thủy mật mã RSA được dùng đủ an toàn thì RSA mô đun lô tối thiểu được dùng tại thời điểm hiện tại và tương lai gần phải có độ dài tối thiểu là 2048 bít.
Tuy nhiên, trình bày trên mới chỉ dừng lại ở việc xem xét độ an toàn dựa trên các kiểu tấn công tổng quát lên các nguyên thủy mật mã RSA đó là phân tích RSA mô đun lô sử dụng thuật toán sàng trường số (NFS) và công cụ tính toán là các máy tính không-lượng tử. Đối với độ an toàn của các nguyên thủy mật mã RSA, ngoài việc chịu ảnh hưởng của các phương pháp phân tích số mà trong đó độ phức tạp phụ thuộc vào độ lớn của RSA mô đun lô thì trên thế giới cũng đã có nhiều công trình nghiên cứu nhằm đưa ra các thuật toán phân tích RSA mô đun lô chỉ phụ thuộc vào tính chất của các tham số khác như các nhân tử nguyên tố p, q; các thành phần công khai, bí mật e, d. Trong các bài viết tiếp theo chúng tôi sẽ xem xét, phân tích, tổng hợp về các khía cạnh này nhằm đưa ra các khuyến cáo để có được các bộ tham số RSA thực sự an toàn dùng cho các ứng dụng bảo mật và an toàn thông tin.
TÀI LIỆU THAM KHẢO [1] Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone "Handbook of Applied Cryptograph", CRC Press, Inc, 1997. [2] RSA Laboratories, “PKCS #1 v2.1: RSA Cryptography Standard”, 1999. [3] Special Publication 800-57 Part 1, “Recommendation for Key Management”, Rev. 5, NIST, 05/2020. [4] ANSSI, “Mécanismes cryptographiques - Règles et recommandations”, Rev. 2.03, 02/2014. [5] ECRYPT-–CSA, “Algorithms, Key Size and Protocols Report”, H2020-ICT-2014—Project 645421, 02/2018. [6] TR-02102-1 v2020-01, BSI, “Cryptographic Mechanisms: Recommendations and Key Lengths”, 03/2020. [7] H. Orman and P. Hoffman, “Determining Strengths for Public Keys Used for Exchanging Symmetric Keys”, RFC 3766, 04/2004. [8] Arjen K. Lenstra, and Eric R. Verheul. “Selecting cryptographic key sizes”. Journal of cryptology 14.4 (2001): 255-293. [9] Arjen K. Lenstra, “Key lengths”. The Handbook of Information Security, 06/2004. [10] [11] https: //tradingeconomics.com/united-states/gdp [12] //www.keylength.com |
TS. Hoàng Văn Thức, TS. Đinh Quốc Tiến (Ban Cơ yếu Chính phủ)
08:00 | 13/11/2017
10:00 | 02/01/2024
09:00 | 24/01/2022
15:00 | 10/09/2019
08:00 | 10/02/2024
13:00 | 30/07/2024
Ransomware là một loại phần mềm độc hại được thiết kế để tấn công máy tính hoặc hệ thống mạng bằng cách mã hóa dữ liệu quan trọng của người dùng và yêu cầu một khoản tiền chuộc để cung cấp khóa giải mã. Các cuộc tấn công bằng ransomware ngày càng tinh vi và có khả năng gia tăng trong thời gian tới với một trong những lo ngại từ ransomware Rhysida. Nghiên cứu cơ chế mã hóa của Rhysida là giải pháp hiệu quả để hạn chế nguy cơ từ loại ransomware này. Các nhà nghiên cứu tại Cơ quan An ninh và Internet Hàn Quốc (KISA) đã tìm thấy lỗ hổng trong cơ chế mã hóa của ransomware Rhysida, cho phép đảo ngược quá trình mã hóa dữ liệu.
10:00 | 20/05/2024
Mới đây, một công ty bảo mật có tên Hive Systems đã công bố nghiên cứu mới nhất của họ về độ mạnh của mật khẩu và khả năng bẻ khóa chúng. Theo công ty, một mật khẩu dài 8 ký tự (chỉ chứa số) có thể bị bẻ khóa trong vỏn vẹn 37 giây. Với việc hệ thống máy móc thiết bị ngày càng tiên tiến, các tin tặc có thể bẻ khóa mật khẩu một cách dễ dàng hơn.
08:00 | 04/04/2024
Có một số phương pháp để xác định mức độ an toàn của các hệ mật sử dụng độ dài khóa mã (key length) tham chiếu làm thông số để đo độ mật trong cả hệ mật đối xứng và bất đối xứng. Trong bài báo này, nhóm tác giả tổng hợp một số phương pháp xác định độ an toàn của hệ mật khóa công khai RSA, dựa trên cơ sở các thuật toán thực thi phân tích thừa số của số nguyên modulo N liên quan đến sức mạnh tính toán (mật độ tích hợp Transistor theo luật Moore và năng lực tính toán lượng tử) cần thiết để phá vỡ một bản mã (các số nguyên lớn) được mã hóa bởi khóa riêng có độ dài bit cho trước. Mối quan hệ này giúp ước lượng độ an toàn của hệ mật RSA theo độ dài khóa mã trước các viễn cảnh tấn công khác nhau.
15:00 | 24/10/2023
Mục tiêu chính của các kỹ thuật mã hóa là bảo vệ tính bí mật của dữ liệu được lưu trữ hoặc truyền đi. Thuật toán mã hóa được áp dụng vào dữ liệu (bản rõ), từ đó nhận được dữ liệu được mã hóa (bản mã), quá trình này được gọi là mã hóa. Thuật toán mã hóa cần được thiết kế sao cho bản mã không cung cấp thông tin về bản rõ. Gắn liền với thuật toán mã hóa là thuật toán giải mã, biến đổi ngược bản mã thành bản rõ gốc. Bài viết sẽ giới thiệu tóm tắt nội dung tiêu chuẩn TCVN 11367-1:2016. Nội dung của tiêu chuẩn này xác định các hệ mật nhằm mục đích bảo mật dữ liệu. Việc đưa các hệ mật vào tiêu chuẩn này nhằm đẩy mạnh việc sử dụng chúng với chất lượng tốt nhất hiện nay trong các kỹ thuật mật mã.