Bối cảnh và vấn đề nghiên cứu
Sự bùng nổ của mạng Internet và các hình thức giao dịch điện tử đã đặt ra yêu cầu cấp thiết về việc bảo đảm an toàn, an ninh thông tin trong mọi lĩnh vực đời sống, đặc biệt là trong các hoạt động dân sự và thương mại điện tử. Các nghiệp vụ như trao đổi dữ liệu cá nhân, ký kết hợp đồng số, nộp thuế, kê khai hải quan và thanh toán qua mạng đòi hỏi các giải pháp kỹ thuật có khả năng xác thực nguồn gốc dữ liệu, kiểm tra tính toàn vẹn và chống chối bỏ trách nhiệm. Hệ mật mã khóa công khai RSA, được công bố từ năm 1977, đóng vai trò nền tảng trong việc thiết lập các giao thức bảo mật đường truyền (Web servers, trình duyệt), xác thực thư điện tử và hệ thống thanh toán điện tử. Xuất phát từ bối cảnh thực tiễn đó, đồ án tốt nghiệp "Ứng dụng Hệ mật mã RSA trong chữ ký điện tử" được thực hiện nhằm nghiên cứu chuyên sâu về lý thuyết mật mã khóa công khai, phân tích các điểm yếu bảo mật của thuật toán RSA và ứng dụng thuật toán này vào việc xây dựng chương trình tạo lập, kiểm tra chữ ký số cho văn bản điện tử.
Mục tiêu và nhiệm vụ nghiên cứu của đồ án bao gồm ba nhóm nội dung trọng tâm:
- Nghiên cứu hệ thống cơ sở lý thuyết về mật mã học, phân loại các hệ mật mã đối xứng và mật mã khóa công khai (bất đối xứng) tiêu biểu; làm rõ các khái niệm, tính chất và vai trò của hàm băm trong an toàn thông tin.
- Khảo sát nguyên lý toán học của hệ mật mã RSA, cơ chế thiết lập chữ ký số dựa trên RSA kết hợp hàm băm; đồng thời tổng hợp, phân tích các lỗ hổng bảo mật và các dạng tấn công điển hình nhằm vào hệ mật RSA được ghi nhận trong nghiên cứu chuyên ngành.
- Thiết kế và cài đặt chương trình thử nghiệm ứng dụng hệ mật mã RSA và hàm băm SHA-1 để phát sinh cặp khóa, tạo lập chữ ký số cho tập tin dữ liệu và thực hiện quy trình thẩm định, xác thực chữ ký.
Đối tượng và phạm vi nghiên cứu của đề tài được giới hạn như sau:
- Đối tượng nghiên cứu: Hệ mật mã khóa công khai RSA; giải thuật băm an toàn SHA-1; cơ chế tạo và xác thực chữ ký điện tử/chữ ký số trên dữ liệu số.
- Phạm vi không gian và thời gian: Đề tài được hoàn thành tại Khoa Công nghệ thông tin, Trường Đại học Quản lý và Công nghệ Hải Phòng vào năm 2023. Chương trình thực nghiệm được triển khai dưới dạng phần mềm độc lập chạy trên máy tính cá nhân, phục vụ mục đích kiểm chứng quy trình mã hóa, ký và xác minh tệp tin với các kích thước khóa RSA từ 512 bit đến 4096 bit.
Cơ sở lý thuyết và phương pháp nghiên cứu
Nghiên cứu được xây dựng trên nền tảng các cơ sở pháp lý và khung lý thuyết toán học mật mã sau:
- Căn cứ pháp lý: Tác giả sử dụng định nghĩa chữ ký số theo quy định tại Khoản 6 Điều 3 Nghị định số 130/2018/NĐ-CP của Chính phủ Việt Nam, xác định chữ ký số là một dạng chữ ký điện tử được tạo ra bởi sự biến đổi thông điệp dữ liệu bằng hệ thống mật mã không đối xứng.
- Khung lý thuyết mật mã:
- Mật mã đối xứng (quy ước): Cơ chế dùng chung một khóa bí mật ($k$) cho cả hai quá trình mã hóa và giải mã. Bao gồm các phương pháp cổ điển như mã hóa dịch chuyển (Caesar với bước dịch $k=3$), mã hóa thay thế (Substitution), mã hóa Affine ($e_k(x) = (ax + b) \pmod n$ với $\gcd(a, n) = 1$), mã hóa Vigenère (sử dụng từ khóa lặp chu kỳ độ dài $m$), mã hóa Hill (sử dụng ma trận khóa khả nghịch cấp $m$ trên vành $\mathbb{Z}{26}$) và mã hóa hoán vị (trường hợp đặc biệt của mã Hill thông qua ma trận hoán vị $k\pi$). Về mật mã khối hiện đại, văn bản phân tích tiêu chuẩn DES (Data Encryption Standard) theo FIPS PUB 46 (khối 64 bit, khóa thực tế 56 bit, 16 vòng lặp Feistel, mạng hoán vị IP, hàm mở rộng E, 8 hộp S-box và hoán vị nghịch đảo $IP^{-1}$) cùng việc đề cập tới chuẩn mã hóa nâng cao AES (Rijndael) được chuẩn hóa từ năm 2000.
- Mật mã khóa công khai (bất đối xứng): Sử dụng cặp khóa có quan hệ toán học là khóa công khai ($K_U$) và khóa bí mật ($K_R$). Các hệ mật được khảo sát gồm RSA (công bố năm 1977 bởi Ron Rivest, Adi Shamir, Leonard Adleman), El-gamal (dựa trên bài toán logarit rời rạc) và giao thức trao đổi khóa Diffie-Hellman (trên nhóm cyclic hữu hạn modulo số nguyên tố $p$ với phần tử sinh $g$).
- Hàm băm mật mã (Cryptographic Hash Function): Giải thuật MD5 (chuỗi kết quả 32 ký tự / 128 bit) và giải thuật băm an toàn SHA-1 (chuẩn FIPS PUB 180-1 ban hành năm 1995 với kích thước khối băm 160 bit / 20 byte). Các đặc tính cơ bản của hàm băm được viện dẫn gồm tính một chiều (kháng tiền ảnh), tính bảo mật/toàn vẹn và hiệu ứng lở tuyết (avalanche effect).
- Tài liệu phân tích lỗ hổng RSA: Nghiên cứu kế thừa hệ thống lý thuyết về các kỹ thuật tấn công giải mã RSA từ công trình "20 năm tấn công mật mã RSA" của tác giả Hồ Văn Canh (2017).
Phương pháp nghiên cứu thực tế được tác giả áp dụng gồm:
- Phương pháp phân tích - tổng hợp tài liệu: Thu thập, đối chiếu các định lý số học (định lý Euler, hàm số $\phi(n)$, thuật toán Euclid mở rộng tính phần tử nghịch đảo modulo) và các văn bản quy chuẩn kỹ thuật an toàn thông tin.
- Phương pháp so sánh logic: Lập bảng phân tích đối chiếu đặc trưng kỹ thuật giữa chữ ký số và chữ ký viết tay truyền thống, giữa mật mã đối xứng và mật mã bất đối xứng.
- Phương pháp thiết kế và thực nghiệm hệ thống: Xây dựng phần mềm ứng dụng modular hóa thành 4 khối chức năng; kiểm thử việc phát sinh khóa, mã hóa băm và xác thực tính toàn vẹn của tệp tin trên các độ dài khóa thực tế.
Nguồn dữ liệu của đồ án bao gồm: Các văn bản quy phạm pháp luật của Nhà nước (Nghị định 130/2018/NĐ-CP); các tài liệu tiêu chuẩn liên bang Hoa Kỳ (FIPS 46, FIPS 180-1); dữ liệu cảnh báo an ninh bảo mật quốc tế (lỗ hổng CVE-2017-15361 / ROCA); các công cụ phân tích số học trực tuyến (factordb, alpertron); và các tệp dữ liệu thử nghiệm được tạo lập trực tiếp trong quá trình chạy ứng dụng.
Nội dung chính theo từng chương
Chương 1: Tổng quan và hệ mật mã khoá công khai
Chương này trình bày toàn diện lịch sử phát triển, khái niệm cốt lõi và các mô hình mật mã học:
- Khái niệm chung: Mật mã học là lĩnh vực liên quan đến các kỹ thuật ngôn ngữ và toán học nhằm chuyển đổi thông tin có thể nhận thức được thành dạng không thể nhận thức được nhằm đảm bảo tính bí mật, toàn vẹn và xác thực. Tác giả minh họa sự phát triển của ngành qua máy mật mã Enigma thời Chiến tranh thế giới thứ hai đến các hạ tầng an ninh mạng hiện đại.
- Mật mã đối xứng: Phân tích chi tiết các kỹ thuật mã hóa cổ điển. Với phương pháp dịch chuyển (Caesar), không gian khóa $K$ chỉ có 26 phần tử (với bảng chữ cái 26 ký tự), độ an toàn thấp vì kẻ tấn công có thể vét cạn trung bình sau $n/2$ (khoảng 13) lần thử. Phương pháp thay thế nâng không gian khóa lên $n!$, song vẫn bị phá vỡ qua kỹ thuật phân tích tần số xuất hiện của ký tự. Phương pháp Affine sử dụng cặp khóa $(a, b) \in \mathbb{Z}_n \times \mathbb{Z}n$ với điều kiện $\gcd(a, n) = 1$. Phương pháp Vigenère mở rộng không gian khóa lên $n^m$ thông qua từ khóa độ dài $m$ (văn bản dẫn chứng ví dụ mã hóa thông điệp
ATTACKATDAWN với khóa LEMON thu được bản mã LXFOPVEFRNHR). Hệ mã Hill mã hóa từng khối $m$ ký tự bằng phép biến đổi tuyến tính qua ma trận vuông $K$, đòi hỏi $\det(K)$ phải nguyên tố cùng nhau với 26; phương pháp hoán vị được chỉ rõ là một trường hợp riêng của hệ mã Hill với ma trận hoán vị nhị phân $k\pi$. Về mã khối đối xứng hiện đại, văn bản phân tích kiến trúc giải thuật DES xử lý khối 64 bit với khóa 56 bit qua 16 vòng lặp mạng Feistel, hoán vị mở rộng $E$, 8 hộp S-box ($S_1$ đến $S_8$, kích thước $4 \times 16$), cùng việc chuyển đổi sang tiêu chuẩn AES (Rijndael) từ tháng 10 năm 2000.
- Mật mã khóa công khai (bất đối xứng): Giải quyết triệt để bài toán phân phối khóa trên kênh truyền không an toàn mà không cần thỏa thuận khóa bí mật từ trước. Ngoài thuật toán RSA, chương này trình bày thuật toán El-gamal (sử dụng số nguyên tố $p$, căn nguyên thủy $\alpha$, khóa bí mật $a$, khóa công khai $\beta = \alpha^a \pmod p$, kèm ví dụ tính toán với $p = 2579, \alpha = 2, a = 765, k = 853$ mã hóa bản rõ $M = 1299$) và giao thức trao đổi khóa Diffie-Hellman (minh họa qua phép ẩn dụ pha trộn màu sơn và mô hình toán học trên nhóm cyclic $\mathbb{Z}_p^*$).
- Tổng kết các tính chất của mật mã khóa công khai: Khóa mã hóa và khóa giải mã là khác nhau; không thể suy ra khóa bí mật từ khóa công khai; tốc độ thực thi nhìn chung thấp hơn mật mã đối xứng do phải xử lý các phép toán số học trên số nguyên lớn.
Chương 2: Chữ ký số
Chương 2 tập trung luận giải bản chất kỹ thuật và giá trị thực tiễn của chữ ký số:
- Cơ sở định nghĩa và ứng dụng: Trích dẫn định nghĩa tại Khoản 6 Điều 3 Nghị định 130/2018/NĐ-CP. Tác giả phân loại cụ thể các phạm vi ứng dụng của chữ ký số trong thực tế đời sống:
- Dành cho cá nhân: Kê khai thuế điện tử, hóa đơn điện tử, bảo hiểm xã hội điện tử, thủ tục thống kê, nộp thuế, dịch vụ công Kho bạc Nhà nước, giao dịch ngân hàng, chứng khoán, mua bán trực tuyến.
- Dành cho doanh nghiệp/tổ chức: Ký số tờ khai hải quan, thuế điện tử, đăng ký kinh doanh, giao dịch thương mại điện tử B2B, ký hợp đồng kinh tế, chứng từ kế toán nội bộ (phiếu thu, phiếu chi, tạm ứng, báo cáo quản trị).
- Dành cho cá nhân thuộc tổ chức: Ký xác nhận văn bản hành chính, email nội bộ, đăng nhập hệ thống bảo mật, thực hiện các giao dịch được ủy quyền.
- So sánh chữ ký số và chữ ký viết tay: Văn bản thiết lập sự đối chiếu chi tiết giữa hai hình thức ký kết theo các tiêu chí kỹ thuật:
| Tiêu chí đối chiếu |
Chữ ký số |
Chữ ký viết tay |
| Bản chất / Tính chất |
Dấu vân tay điện tử, được mã hóa bằng thuật toán mật mã để xác định người ký |
Ký trực tiếp trên giấy tờ vật lý bằng chữ viết tay do cá nhân tự tạo |
| Tiêu chuẩn áp dụng |
Sử dụng các phương thức và tiêu chuẩn mã hóa mật mã học |
Ký trên hàng loạt văn bản in ấn, hợp đồng, hóa đơn giấy; mất thời gian chuyển tiếp |
| Tính năng cốt lõi |
Bảo mật tài liệu, bảo đảm tính toàn vẹn và chống chối bỏ |
Xác minh tài liệu trên bản cứng |
| Cơ chế xác nhận |
Được chứng thực bởi cơ quan chứng nhận tin cậy (CA) / nhà cung cấp uy tín |
Không có quy trình xác nhận tự động hoặc cơ chế toán học cụ thể |
| Mức độ an toàn |
Độ an toàn cao, khó bị làm giả nếu độ dài khóa đủ lớn |
Dễ bị bắt chước, giả mạo chữ ký; độ xác thực và an toàn thấp |
- Hàm băm mật mã và vai trò trong chữ ký số: Trình bày nguyên lý biến đổi thông điệp đầu vào có kích thước bất kỳ thành chuỗi tóm lược dữ liệu (digest) có độ dài cố định. Minh họa qua hàm MD5 (chuỗi 32 ký tự, ví dụ từ khóa
apple luôn cho ra chuỗi hash 1f3870be274f6c49b3e31a0c6728957f) và SHA-1 (kích thước 160 bit, chuẩn FIPS PUB 180-1). Các đặc tính căn bản gồm tính một chiều, tính kháng va chạm và tính định hướng. Tác giả giải thích lý do không ký trực tiếp lên toàn bộ văn bản mà phải ký lên giá trị băm: văn bản thực tế thường có kích thước rất lớn, việc tính toán mật mã bất đối xứng trực tiếp trên toàn văn bản sẽ tiêu tốn tài nguyên và thời gian; sử dụng hàm băm giúp chuẩn hóa dữ liệu đầu vào về kích thước nhỏ, cố định, vừa tối ưu hiệu năng tính toán, vừa bảo vệ tính toàn vẹn và ngăn chặn nguy cơ cắt ghép thông điệp.
Chương 3: Hệ mật RSA
Chương 3 đi sâu vào cấu trúc thuật toán RSA, các điểm yếu an ninh và quy trình tạo - xác thực chữ ký:
- Nguyên lý toán học của hệ mật RSA: Thuật toán hoạt động dựa trên 4 bước: sinh khóa, chia sẻ khóa, mã hóa và giải mã.
- Quy trình sinh khóa: Chọn 2 số nguyên tố lớn $p, q$ ($p \neq q$); tính modulo $n = p \times q$; tính giá trị hàm số Euler $\phi(n) = (p-1)(q-1)$; chọn số tự nhiên $e$ sao cho $1 < e < \phi(n)$ và $\gcd(e, \phi(n)) = 1$; xác định khóa giải mã bí mật $d$ thỏa mãn $d \times e \equiv 1 \pmod{\phi(n)}$. Khóa công khai gồm cặp ${n, e}$; khóa bí mật gồm ${d, n}$.
- Mã hóa và giải mã: Bản tin $m < n$ được mã hóa thành bản mã $c = m^e \pmod n$. Giải mã bản mã $c$ để tìm lại $m$ theo công thức $m = c^d \pmod n$. Văn bản cung cấp ví dụ số học: với $p=7, q=11 \Rightarrow n=77, \phi(n)=60$; chọn $e=7$ thì tìm được $d=43$ (vì $43 \times 7 = 301 = 5 \times 60 + 1$); khóa công khai $K_U = {77, 7}$, khóa bí mật $K_R = {43}$.
- Độ an toàn và độ phức tạp tính toán: Độ an toàn của RSA phụ thuộc vào độ khó tính toán của bài toán phân tích một số nguyên lớn $n$ thành các thừa số nguyên tố $p, q$. Bảng số liệu trong văn bản đưa ra thời gian dự đoán để phân tích số $n$ (giả thiết mỗi thao tác vi xử lý thực hiện trong 1 micro giây): với số $n$ có 50 chữ số, số lượng thao tác tính toán đòi hỏi thời gian thực thi lên tới $1,2 \times 10^{25}$ năm. Văn bản đưa ra khuyến nghị độ dài của $n$ nên đạt tối thiểu khoảng 200 chữ số (hoặc từ 1024 bit trở lên).
- Khảo sát các lỗ hổng và kỹ thuật tấn công RSA:
- Lỗ hổng ROCA (Return of Coppersmith's Attack - CVE-2017-15361): Xuất phát từ lỗi sinh khóa trong thư viện mã hóa của chip TPM (Trusted Platform Module) do hãng Infineon sản xuất từ năm 2012. Lỗ hổng cho phép tin tặc khôi phục khóa riêng từ khóa công khai, ảnh hưởng đến thiết bị của Microsoft Windows, Google Chromebook do HP, Lenovo, Fujitsu chế tạo với ít nhất 760.000 khóa mã hóa bị xác nhận nguy cơ.
- Tấn công khi modulo $n$ nhỏ: Khi chiều dài $n < 256$ bit, $n$ dễ dàng bị phân tích thừa số thông qua các cơ sở dữ liệu có sẵn trực tuyến như
factordb hoặc alpertron.
- Lỗ hổng số mũ $e$ nhỏ và thông điệp $m$ nhỏ: Khi chọn $e = 3$ và thông điệp $m$ nhỏ khiến $m^3 < n$, phép toán modulo mất tác dụng, bản mã $c = m^3$ cho phép khôi phục bản rõ bằng cách khai căn bậc ba thông thường ($m = c^{1/3}$).
- Tấn công lặp liên tục: Mã hóa lặp lại nhiều lần bản mã cho đến khi chu kỳ lặp trả về giá trị ban đầu (minh họa với $p=3, q=5 \Rightarrow n=15, m=7$).
- Tấn công phân tích Fermat khi hiệu $|p - q|$ nhỏ: Xảy ra khi hai số nguyên tố được chọn quá gần nhau, thỏa mãn điều kiện $|p - q| < n^{1/4}$.
- Tấn công phát sóng Håstad (Hastad Broadcast Attack): Xảy ra trong mạng LAN khi nhiều máy tính sử dụng chung số mũ $e$ nhỏ ($e=3$) và nhận cùng một thông điệp quảng bá $m$; kẻ tấn công thu thập đủ $e$ bản mã độc lập để giải hệ phương trình đồng dư và khôi phục $m$.
- Tấn công dùng chung modulo (Common Modulus): Khi các thành viên trong mạng dùng chung một modulo $n$ nhưng khác cặp số mũ $(e_i, d_i)$, kẻ tấn công có thể vét cạn giá trị $k$ từ $(ed-1)/n$ để tính $\phi(n)$ và giải ngược ra khóa bí mật $d$.
- Tấn công trong quá trình phân phối khóa: Tấn công xen giữa (Man-in-the-middle) khi không có cơ chế chứng thực nguồn gốc khóa công khai.
- Quy trình ký và xác thực chữ ký số RSA:
- Bên gửi (Ký): Văn bản gốc đi qua giải thuật băm SHA-1 để tạo ra chuỗi tóm lược (Message Digest). Chuỗi này được mã hóa bằng khóa bí mật ($d, n$) của người gửi bằng giải thuật RSA để tạo ra chữ ký số (Digital Signature). Chữ ký số được gắn kèm văn bản gốc tạo thành thông điệp đã ký (Signed Message) để chuyển đi.
- Bên nhận (Xác thực): Tách văn bản gốc và chữ ký số riêng biệt. Dùng SHA-1 băm lại văn bản gốc thu được giá trị băm $MD_1$. Sử dụng khóa công khai ($e, n$) của người gửi để giải mã chữ ký số thu được giá trị băm $MD_2$. Tiến hành so sánh: nếu $MD_1 = MD_2$, chữ ký hợp lệ, thông điệp bảo đảm tính toàn vẹn và nguồn gốc xác thực; nếu $MD_1 \neq MD_2$, chữ ký không hợp lệ, dữ liệu đã bị sửa đổi hoặc khóa ký không chính xác.
Thiết kế và triển khai chương trình thử nghiệm
Chương trình thử nghiệm được xây dựng nhằm mô phỏng và thực thi đầy đủ chu trình vòng đời của chữ ký số RSA kết hợp hàm băm SHA-1 trên tệp tin máy tính. Kiến trúc phần mềm được phân chia thành 4 khối chức năng vận hành tuần tự:
| Khối chức năng |
Giao diện / Thành phần kỹ thuật |
Nhiệm vụ chi tiết |
| Khối tạo key |
Giao diện mở tập tin hoặc sinh khóa mới; hỗ trợ 4 tùy chọn độ dài: 512 bits, 1024 bits, 2048 bits, 4096 bits. |
Thực hiện giải thuật sinh cặp số nguyên tố lớn ngẫu nhiên, tính toán các tham số $n, e, d$. Kết quả cặp khóa được lưu trữ có cấu trúc dưới định dạng tập tin XML. Hiển thị bảng thông báo trạng thái khi sinh khóa thành công. |
| Khối thông tin key |
Khối hiển thị chi tiết các trường dữ liệu toán học của khóa. |
Xuất trực tiếp các giá trị thành phần lên màn hình sau khi sinh khóa hoặc tải tệp XML: Modulo ($N$), số mũ mã hóa công khai ($E$) và số mũ giải mã bí mật ($D$). |
| Khối tạo chữ ký số |
Khối chọn tệp tin, tích hợp giải thuật băm SHA-1 và thuật toán mã hóa RSA. |
Tiếp nhận một tệp tin tùy chọn bất kỳ từ người dùng. Hệ thống tự động băm tệp để lấy bản tóm lược dữ liệu, dùng khóa bí mật $D$ mã hóa chuỗi băm để sinh ra chữ ký số tương ứng gắn liền với tệp. |
| Khối thẩm định chữ ký |
Khối kiểm tra tệp tin, giải mã xác thực và thư mục output. |
Tách tệp tin và chữ ký; tự động băm lại tệp tin gốc để lấy $MD_1$; nạp khóa công khai tương ứng để giải mã chữ ký thu được $MD_2$; tiến hành đối soát logic $MD_1$ và $MD_2$, xuất thông báo kết quả kiểm tra tính toàn vẹn của tệp. Thư mục output được thiết lập để chứa các tệp mã hóa và tệp giải mã phục vụ đối chứng. |
Kết quả và đóng góp
Đồ án ghi nhận các kết quả cụ thể và đóng góp học thuật - kỹ thuật sau:
- Kết quả thực nghiệm: Xây dựng hoàn chỉnh phần mềm ứng dụng chữ ký số RSA với khả năng tạo lập cặp khóa ở 4 cấp độ an toàn (512, 1024, 2048 và 4096 bit); lưu trữ dữ liệu khóa chuẩn hóa dưới tệp tin XML; thực hiện trơn tru quy trình ký số trên tệp tin bất kỳ thông qua hàm băm SHA-1 và kiểm tra tính hợp lệ của chữ ký bằng cơ chế so sánh chuỗi băm kép ($MD_1 = MD_2$).
- Hệ thống hóa lý thuyết: Tổng hợp bức tranh toàn cảnh về tiến trình phát triển của các hệ mật mã từ cổ điển (Caesar, Affine, Vigenère, Hill, hoán vị) đến hiện đại (DES, AES, Diffie-Hellman, El-gamal, RSA); làm rõ bản chất toán học của quá trình ký số trên chuỗi tóm lược dữ liệu thay vì văn bản toàn văn.
- Phân tích nguy cơ an toàn thông tin: Khảo sát có hệ thống 8 kịch bản tấn công và điểm yếu kỹ thuật của hệ mật RSA (đặc biệt là lỗi phần cứng ROCA CVE-2017-15361 và các dạng tấn công giải tích khi chọn tham số $n, e, m, p-q$ không an toàn dựa trên nghiên cứu của TS. Hồ Văn Canh năm 2017), cung cấp căn cứ kỹ thuật cho việc lựa chọn tham số an toàn trong triển khai thực tế.
- Gắn kết quy chuẩn pháp lý: Kết nối cơ sở lý thuyết công nghệ thông tin với khung pháp lý hiện hành của Việt Nam (Khoản 6 Điều 3 Nghị định 130/2018/NĐ-CP) và chuẩn hóa bảng phân loại ứng dụng chữ ký số cho từng nhóm đối tượng (cá nhân, doanh nghiệp, cá nhân trong tổ chức).
Hạn chế và hướng nghiên cứu tiếp
Căn cứ vào nội dung và phạm vi nghiên cứu được trình bày trong tài liệu, các hạn chế và định hướng phát triển được xác định như sau:
- Hạn chế:
- Chương trình thử nghiệm được xây dựng dưới dạng ứng dụng độc lập (standalone) cục bộ trên máy đơn lẻ, chưa tích hợp với hạ tầng khóa công khai PKI (Public Key Infrastructure) hoặc kết nối trực tiếp với các nhà cung cấp dịch vụ chứng thực chữ ký số (CA) được cấp phép.
- Thuật toán băm được cài đặt trong chương trình là SHA-1 (tạo bản tóm lược 160 bit), trong khi trên thực tế SHA-1 đã được các tổ chức an ninh cảnh báo về nguy cơ va chạm và các hệ thống thương mại hiện đại đã dần chuyển dịch sang các hàm băm mạnh hơn.
- Các kỹ thuật tấn công RSA mới dừng lại ở mức mô tả lý thuyết toán học và trích dẫn kết quả nghiên cứu, chương trình chưa tích hợp các module tự động thử nghiệm tấn công đối kháng trực tiếp để kiểm chứng sức chịu đựng của các khóa 512 bit hay 1024 bit.
- Hướng nghiên cứu tiếp:
- Nâng cấp module băm dữ liệu sang các chuẩn an toàn cao hơn như họ SHA-2 (SHA-256, SHA-512) hoặc SHA-3 nhằm loại bỏ hoàn toàn nguy cơ va chạm băm.
- Mở rộng kiến trúc phần mềm từ ứng dụng desktop độc lập sang mô hình dịch vụ mạng (Client - Server), tích hợp ký số qua giao diện web hoặc ứng dụng di động.
- Nghiên cứu tích hợp chứng thư số theo chuẩn định dạng quốc tế X.509 và bổ sung cơ chế kiểm tra thu hồi chứng thư số (CRL/OCSP).
Giá trị tham khảo
Tài liệu đồ án mang lại giá trị tham khảo hữu ích cho các nhóm đối tượng sau:
- Sinh viên ngành Công nghệ thông tin và An toàn thông tin: Nguồn tài liệu học tập phù hợp để nắm bắt kiến trúc toán học của các hệ mật mã đối xứng, bất đối xứng; cơ chế vận hành của hàm băm và kỹ thuật lập trình sinh khóa, đọc/ghi khóa RSA định dạng XML.
- Lập trình viên và kỹ sư phát triển phần mềm: Tham khảo cấu trúc 4 khối chức năng (tạo key, hiển thị tham số, ký tệp, xác thực tệp) và luồng xử lý so khớp mã băm ($MD_1, MD_2$) để tích hợp module xác thực tính toàn vẹn của tệp tin trong các dự án phần mềm quản lý văn bản, tài liệu nội bộ.
- Phần nội dung đáng tham khảo nhất: Mục 1.2 Chương 1 (hệ thống các thuật toán mã hóa kinh điển và giải thuật chi tiết của DES), Mục 3.2 Chương 3 (tổng hợp chi tiết 8 dạng lỗ hổng, vector tấn công giải mã hệ mật RSA kèm điều kiện toán học) và Mục 3.3 - 3.4 Chương 3 (sơ đồ luồng thuật toán ký - xác thực cùng thiết kế cấu trúc khối chương trình thử nghiệm).
Câu hỏi thường gặp
1. Đồ án căn cứ vào văn bản pháp lý nào của Việt Nam để xác định giá trị và định nghĩa của chữ ký số?
Tác giả căn cứ vào Khoản 6 Điều 3 Nghị định số 130/2018/NĐ-CP của Chính phủ, xác định chữ ký số là dạng chữ ký điện tử được tạo ra bằng sự biến đổi thông điệp dữ liệu sử dụng hệ thống mật mã không đối xứng, cho phép người nhận xác minh chính xác khóa bí mật của người ký và tính toàn vẹn của nội dung kể từ thời điểm ký.
2. Ứng dụng thử nghiệm hỗ trợ phát sinh khóa RSA với những kích thước nào và khóa được lưu dưới định dạng tệp gì?
Khối tạo key của chương trình cung cấp 4 tùy chọn độ dài khóa bao gồm: 512 bits, 1024 bits, 2048 bits và 4096 bits. Toàn bộ thông tin cặp khóa sau khi phát sinh thành công được lưu trữ trong tập tin định dạng XML.
3. Lỗ hổng ROCA (CVE-2017-15361) được đề cập trong đồ án liên quan đến phần cứng nào và mức độ ảnh hưởng ra sao?
Lỗ hổng ROCA (Return of Coppersmith's Attack) bắt nguồn từ thư viện phần mềm tạo cặp khóa RSA tích hợp trong vi xử lý Trusted Platform Module (TPM) do công ty Infineon sản xuất từ năm 2012. Lỗ hổng cho phép tin tặc tính ngược khóa riêng tư từ khóa công khai, ảnh hưởng đến các thiết bị chạy Microsoft Windows, Chromebook của HP, Lenovo, Fujitsu với ít nhất 760.000 khóa mã hóa bị đe dọa trực tiếp.
4. Tại sao trong quy trình ký số RSA, tác giả lại thực hiện ký trên giá trị băm (Hash Digest) thay vì mã hóa trực tiếp toàn bộ nội dung tệp tin?
Văn bản chỉ rõ hai nguyên nhân kỹ thuật: thứ nhất, bản tin thực tế thường có kích thước rất dài, việc tính toán mật mã bất đối xứng trên toàn bộ dữ liệu đòi hỏi chi phí và thời gian xử lý rất lớn, do đó việc băm thông điệp thành chuỗi cố định nhỏ (như 160 bit của SHA-1) giúp giảm dung lượng xử lý và tăng tốc độ ký; thứ hai, hàm băm có tính chất một chiều và kháng va chạm, cho phép kiểm tra tính toàn vẹn tuyệt đối của văn bản và chống lại hành vi cắt dán, thay đổi dữ liệu gốc.
5. Điều kiện toán học để xảy ra cuộc tấn công phân tích thừa số Fermat đối với cặp số nguyên tố $(p, q)$ trong hệ mật RSA là gì?
Theo tài liệu viện dẫn trong đồ án, tấn công Fermat xảy ra khi hai số nguyên tố $p$ và $q$ được lựa chọn có độ dài bit tương đương nhưng giá trị quá gần nhau, thỏa mãn điều kiện hiệu số $|p - q| < n^{1/4}$, khiến kẻ tấn công dễ dàng phân tích modulo $n$ thành thừa số nguyên tố.
Kết luận
Đồ án tốt nghiệp "Ứng dụng Hệ mật mã RSA trong chữ ký điện tử" của sinh viên Phạm Nhật Hoàng đã hệ thống hóa đầy đủ cơ sở toán học của mật mã khóa công khai RSA, các tiêu chuẩn mã khối và vai trò bảo vệ toàn vẹn thông tin của hàm băm trong chữ ký số theo khuôn khổ Nghị định 130/2018/NĐ-CP. Đề tài đã phân tích sâu các vector tấn công mật mã then chốt và lỗ hổng phần cứng thực tế nhằm vào RSA, từ đó xây dựng thành công chương trình thử nghiệm 4 khối chức năng hỗ trợ tạo khóa XML từ 512 đến 4096 bit, ký và xác minh tính toàn vẹn của tệp tin dữ liệu. Kết quả nghiên cứu đóng vai trò tài liệu tham khảo có giá trị học thuật và thực tiễn kỹ thuật đối với sinh viên chuyên ngành công nghệ thông tin cũng như các nhà phát triển quan tâm đến bài toán an toàn dữ liệu số.