Giới thiệu mô hình các cơ chế chữ ký số cho khôi phục thông điệp dựa trên phân tích số nguyên quy định tại TCVN 12855-2:2020

14:00 | 25/07/2024 | CÔNG NGHỆ PKI
Trong giao dịch giấy tờ truyền thống, chữ ký tay là phương tiện để xác thực nguồn gốc và nội dung của văn bản. Chữ ký tay còn có khả năng chống chối bỏ, nghĩa là người gửi sau khi đã ký vào văn bản thì không thể chối bỏ chữ ký của mình và văn bản sau khi được ký thì không thể thay đổi được nội dung. Đối với văn bản điện tử chữ ký tay không còn đảm bảo được các tính năng nói trên, vì vậy chữ ký số điện tử (gọi tắt là chữ ký số) được sử dụng để thay thế vai trò của chữ ký tay. Bài viết sau đây giới thiệu mô hình các cơ chế chữ ký số khôi phục thông điệp đựa trên phân tích số nguyên quy định tại TCVN 12855-2: 2020.

GIỚI THIỆU CHUNG

Chữ ký số được biểu diễn dưới dạng một chuỗi số nhị phân. Nó được tạo ra trên cơ sở sử dụng tập hợp các quy tắc và tập hợp các tham số để xác định danh tính người gửi (người ký) cũng như kiểm tra tính toàn vẹn của dữ liệu. Phương tiện cơ bản để thực hiện chữ ký số là kỹ thuật mật mã.

Mỗi chữ ký số được thể hiện trên một lược đồ xác định, gọi là lược đồ chữ ký số. Lược đồ này bao gồm ba thành tố: thuật toán chữ ký số, thuật toán hàm băm và thuật toán tạo số giả ngẫu nhiên. Thuật toán chữ ký số gồm thuật toán ký và thuật toán kiểm tra. Người gửi sử dụng thuật toán ký và khóa bí mật để tạo ra chữ ký số, người nhận (người kiểm tra) sử dụng thuật toán kiểm tra và khóa công khai tương ứng để kiểm tra đồng thời tính chân thực của thông điệp dữ liệu và tính chân thực của chữ ký số do người gửi tạo ra. Mỗi người sở hữu một cặp khóa bao gồm khoá công khai (giả thiết là được công bố một cách công khai) và khoá bí mật (được giữ bí mật tuyệt đối). Bất kỳ ai cũng có thể kiểm tra chữ ký số của một người nào đó bằng cách sử dụng khóa công khai của người này. Quá trình tạo chữ ký số chỉ có thể được thực hiện bởi người sở hữu khoá bí mật.

Thuật toán hàm băm là biến đổi toán học dùng để thu gọn văn bản ban đầu (còn gọi là thông điệp dữ liệu) nhằm tạo ra bản tóm lược của thông điệp. Bản tóm lược này sẽ là đầu vào của thuật toán tạo chữ ký số. Chữ ký số được đính kèm với thông điệp dữ liệu đã được ký. Trong quá trình kiểm tra chữ ký số, thuật toán hàm băm cũng được áp dụng như trong quá trình tạo chữ ký. Thuật toán tạo số giả ngẫu nhiên dùng để tạo ra các số giả ngẫu nhiên (độc lập, đồng xác suất) làm tham số trong lược đồ chữ ký số.

KHÁI NIỆM VỀ CHỮ KÝ SỐ

Chữ ký số là một chuỗi số, kết quả của phép biến đổi mật mã trên thông điệp dữliệu nhằm cung cấp một phuơng tiện để kiểm tra tính xác thực của nguồn gốc thông điệp dữ liệu, tính toàn vẹn của dữ liệu và tính không thể chối bỏ của người đã ký.

Có hai loại lược đồ chữ ký số phổ biến đó là: lược đồ chữ ký số kèm thông điệp và lược đồ chữ ký số có khôi phục thông điệp. Trong phạm vi của tiêu chuẩn này, ta chỉ đềcập đến các cơ chế sử dụng việc phân tích số nguyên của lược đồ chữ ký số có khôi phục thông điệp.

SỰ CHUYỂN ĐỔI GIỮA CÁC XÂU BIT VÀ SỐ NGUYÊN

Để biểu diễn một số nguyên không âm x dưới dạng một xâu bit có độ dài bằng l (I phải thỏa mãn 2I > x), số nguyên sẽ được viết lại dưới dạng biểu thức nhị phân duy nhất: 𝑥 = 2𝑙−1𝑥𝑙−1 + 2𝑙−2𝑥𝑙−2 + ⋯ + 2𝑥1 + 𝑥0

Trong đó 0 ≤ 𝑥𝑖 ≤ 2 (lưu ý rằng một hoặc vài chữ số đầu có thể bằng 0 nếu x < 2𝑙−1. Xâu bit sẽ là 𝑥𝑙−1𝑥𝑙−2…𝑥0.

Để biểu diễn một xâu bit 𝑥𝑙−1𝑥𝑙−2…𝑥0 (có độ dài l) thành một số nguyên x, quá trình đảo ngược sẽ như sau, x sẽ là số nguyên được định nghĩa bởi công thức 𝑥 = 2𝑙−1𝑥𝑙−1 + 2𝑙−2𝑥𝑙−2 + ⋯ + 2𝑥1 + 𝑥0.

YÊU CẦU

Người sử dụng tiêu chuẩn này, nếu có thể, được khuyến nghị áp dụng cơ chế thứ hai (Lược đồ chữ ký số 2). Tuy nhiên, trong các môi trường mà việc tạo ra các biến ngẫu nhiên bởi người ký được coi là không khả thi, thì Lược đồ chữ ký số 3 được khuyến nghị sử dụng.

Người sử dụng muốn dùng cơ chế chữ ký số theo tiêu chuẩn này phải đảm bảo các thuộc tính sau đây được thỏa mãn:

a) Thông điệp M để ký là một chuỗi nhị phân có độ dài bất kỳ, có thể rỗng.

b) Hàm ký sử dụng khóa chữ ký bí mật, trong khi hàm xác thực sử dụng khóa xác thực công khai tương ứng.

− Mỗi thực thể ký sẽ sử dụng và giữ bí mật khóa chữ ký bí mật của mình tương ứng với khóa xác thực công khai.

− Mỗi thực thể xác thực phải biết khóa xác thực công khai của thực thể ký.

c) Việc sử dụng các lược đồ chữ ký được quy định trong tiêu chuẩn này đòi hỏi phải lựa chọn một hàm băm kháng va chạm h. Hàm băm được tiêu chuẩn hóa theo TCVN 11816. Sẽ có một ràng buộc giữa cơ chế ký và hàm băm trong khi sử dụng. Nếu không có ràng buộc này, kẻ tấn công có thể yêu cầu sử dụng một hàm băm yếu (chứ không phải là một hàm băm thực) và từ đó giả mạo chữ ký.

Người sử dụng một cơ chế chữ ký số cần tiến hành một đánh giá rủi ro xem xét chi phí và lợi ích của các phương tiện thay thế khác nhau để đạt được điều kiện bắt buộc. Đánh giá này phải bao gồm một đánh giá về chi phí kết hợp với khả năng có một chữ ký giả mạo đang được sản xuất.

d) Bên xác thực chữ ký sẽ luôn luôn có một phương thức độc lập an toàn để xác định lược đồ nào trong ba lược đồ chữ ký được quy định trong tiêu chuẩn này đã được sử dụng để tạo ra chữ ký. Ngoài ra, nếu sử dụng Lược đồ chữ ký số 2 hoặc 3, bên xác thực chữ ký cũng phải có phương thức để xác định hàm tạo chữ ký nào trong hai hàm tạo chữ ký trong Phụ lục B của TCVN 12855-2:2020 đã được sử dụng. Điều này có thể thu được bằng cách quy định cơ chế và hàm tạo chữ ký trong ‘các tham số miền’ đã được đồng ý hoặc bằng cách đưa ra một mã nhận dạng rõ ràng cho lược đồ chữ ký và hàm tạo chữ ký trong chứng thư khóa công khai của người ký. Hàm tạo chữ ký cũng có thể được quy định trong một mã nhận dạng thuật toán liên kết với dữ liệu đã được ký.

e) Mỗi lược đồ chữ ký số được quy định trong tiêu chuẩn này đều có các tùy chọn cụ thể, phạm vi tùy chọn có thể của người ký phải được biết đến bởi bên xác thực bằng một phương thức độc lập an toàn. Các tùy chọn này bao gồm:

− Đối với tất cả ba lược đồ chữ ký số, bên xác thực phải biết xem trường trailer tùychọn 1 hoặc 2 có đang làm việc hay không.

− Đối với lược đồ chữ ký số 2 và 3, bên xác thực phải biết Ls, độ dài của salt S.

Ví dụ, điều này có thể thu được bằng cách quy định lựa chọn tùy chọn trong “các tham số miền” hoặc bao gồm thông tin tùy chọn trong chứng thư khóa công khai của người ký.

MÔ HÌNH CHO LƯỢC ĐỒ CHỮ KÝ SỐ CHO KHÔI PHỤC THÔNG ĐIỆP

Mô hình cho một lược đồ chữ ký cho khôi phục thông điệp được trình bày ở đây áp dụng cho cả ba lược đồ được giới thiệu trong tiêu chuẩn. Khi được áp dụng cho một thông điệp M, một lược đồ chữ ký kiểu này có thể cung cấp khôi phục hoặc toàn bộ hoặc một phần thông điệp.

− Nếu M là đủ ngắn, thì có thể khôi phục toàn bộ thông điệp vì có thể M được bao gồm toàn bộ trong chữ ký.

− Nếu M quá dài, thì có thể phục hồi thông điệp sẽ một phần. Trong trường hợp này, M sẽ được chia thành phần thể khôi phục được, một xâu bit có độ dài giới hạn được bao gồm trong chữ ký, và phần không thể khôi phục được, một xâu các xâu bộ tám có độ dài bất kỳ được lưu trữ và/hoặc được truyền cùng với chữ ký.

Mô hình được chia thành ba phần: đặc tả thủ tục ký thông điệp, đặc tả thủ tục xác thực chữ ký và chi tiết của các khía cạnh bổ sung của ký và xác thực cần được định nghĩa để hoàn chỉnh đặc tả của một lược đồ chữ ký.

Ký thông điệp

▪ Chuẩn bị ký

- Cho một thông điệp M được ký, cần phải thực hiện ba bước để tạo ra một chữ ký trên M, cụ thể là phân bổ thông điệp, tạo xâu có thể khôi phục được và tạo chữ ký.

- Phân bổ thông điệp bao gồm quá trình trong đó thông điệp được chia thành hai phần: phần có thể khôi phục được M1 và phần không thể khôi phục M2 (có thể rỗng). Độ dài của phần có thể khôi phục được được giới hạn trên bằng năng lực c của lược đồ chữ ký, một giá trị được xác định bởi việc lựa chọn lược đồ chữ ký và khóa của lược đồ. Phần có thể khôi phục sẽ được khôi phục từ chữ ký trong quá trình xác thực, trong khi phần không thể khôi phục phải được cung cấp cho bên xác thực bằng các phương thức khác (ví dụ nó có thể được gửi hoặc lưu trữ với chữ ký). Do đó, nếu thông điệp đủ ngắn, toàn bộ thông điệp có thể được phân bổ vào phần có thể khôi phục được và phần không thể khôi phục được sẽ là rỗng.

- Tạo giá trị đại diện của thông điệp lấy đầu vào là hai phần này của thông điệp và đầu ra là một xâu có định dạng, được gọi là giá trị đại diện của thông điệp, là đầu vào cho bước tạo chữ ký.

- Tạo chữ ký lấy đầu vào là giá trị đại diện của thông điệp và khóa chữ ký bí mật và đầu ra là chữ ký Σ. Quá trình này được thực hiện bằng cách sử dụng một hệ thống khoá công khai.

▪ Phân bổ thông điệp

Sự lựa chọn lược đồ chữ ký và khóa cho lược đồ xác định năng lực c của chữ ký, trong đó c phải thỏa mãn c ≥ 7. Thông điệp M cần được ký sẽ được chia thành hai phần, M1 M2 như sau:

Một độ dài thông điệp có thể khôi phục được c* sẽ được lựa chọn, trong đó 𝑐 ≤ 𝑐, 𝑐 ≤ |𝑀| và 𝑐 ≡ |𝑀| (𝑚𝑜𝑑 8) . Đối với Lược đồ chữ ký 1, c* sẽ được thiết lập bằng với giá trị nhỏ nhất của c - ∆ và |M|, trong đó ∆= (𝑐 − |𝑀|)𝑚𝑜𝑑 8.

− Nếu |M| = c* thì toàn bộ thông điệp sẽ có thể khôi phục được, có nghĩa là M1 =M2 sẽ là rỗng.

− Nếu |M| > c* thì M1 sẽ được thiết lập bằng với c* bit bên trái nhất của M, và M2 sẽ được thiết lập bằng với phần còn lại của M, có nghĩa là M2 chứa |M|-c* bit.

Trong cả hai trường hợp, 𝑀 = 𝑀1||𝑀2.

▪ Tạo giá trị đại diện của thông điệp

Bước này sẽ lấy đầu vào là phần có thể khôi phục và phần không thể khôi phục của thông điệp, M1M2, và đầu ra là giá trị đại diện của thông điệp F. Điều này sẽ đạt được bằng cách sử dụng một trong các phương pháp được quy định tại các điều 8, 9 và 10 trong tiêu chuẩn này. Các phương pháp này yêu cầu phải sử dụng hàm băm h, và trong trường hợp các cơ chế thứ hai và thứ ba, một hàm tạo mặt nạ g cũng sử dụng h. Hàm băm h được sử dụng sẽ được lựa chọn trong các hàm băm đã được tiêu chuẩn hóa theo ISO / IEC 10118; hàm tạo mặt nạ g sẽ được thiết lập bằng hàm được quy định tại Phụ lục C trong tiêu chuẩn này.

▪ Tạo chữ ký

Bước này lấy đầu vào là giá trị đại diện của thông điệp và khóa chữ ký bí mật và đầu ra là chữ ký Σ. Điều này sẽ đạt được bằng cách sử dụng hệ thống khoá công khai được quy định trong Phụ lục B trong tiêu chuẩn này.

Xác thực chữ ký

▪ Giới thiệu

Một thông điệp đã được ký bao gồm hoặc chữ ký Σ trong trường hợp khôi phục toàn bộ hoặc phần không thể khôi phục được của thông điệp M2* cùng với chữ ký Σ trong trường hợp khôi phục một phần. Một chữ ký sẽ được chấp nhận khi và chỉ khi quá trình xác thực thành công.

Cho chữ ký Σ và phần thông không thể khôi phục được M2*, cần phải thực hiện ba bước sau đây để xác thực Σ và khôi phục M*, cụ thể là mở chữ ký, khôi phục thông điệp và lắp ghép thông điệp.

− Mở chữ ký lấy đầu vào là chữ ký Σ và khóa xác thực công khai và đầu ra là một giá trị đại diện của thông điệp đã được khôi phục F* hoặc trả về báo hiệu việc xác thực đã bị lỗi. Quá trình này được thực hiện bằng cách sử dụng một hệ thống khóa công khai.

− Khôi phục thông điệp lấy đầu vào là giá trị đại diện của thông điệp đã được khôi phục F* và phần không thể khôi phục của thông điệp M2*, và đầu ra là phần có thể khôi phục (đã được khôi phục) của thông điệp M1* hoặc trả về báo hiệu việc xác thực đã bị lỗi.

− Lắp ghép thông điệp là quá trình mà thông điệp đã được phục hồi M* được khôi phục từ phần có thể khôi phục (đã được khôi phục) M1* và phần không thể khôi phục M2* (có thể rỗng).

▪ Mở chữ ký

Bước này lấy đầu vào là chữ ký Σ và khóa xác thực công khai và đầu ra hoặc là một giá trị đại diện của thông điệp đã được khôi phục F* hoặc là trả về báo hiệu việc xác thực đã bị lỗi. Điều này sẽ đạt được bằng cách sử dụng hệ thống khoá công khai được quy định trong Phụ lục B của tiêu chuẩn này.

▪ Khôi phục thông điệp

Bước này lấy đầu vào là giá trị đại diện của thông điệp đã được khôi phục F* và phần không thể khôi phục của thông điệp M2*, và đầu ra là phần có thể khôi phục (đã được khôi phục) của thông điệp M1* hoặc trả về báo hiệu việc xác thực đã bị lỗi. Điều này sẽ đạt được bằng cách sử dụng một trong các phương pháp được quy định tại các điều 8, 9 và 10 trong tiêu chuẩn này. Các phương pháp này yêu cầu phải sử dụng hàm băm, và trong trường hợp các cơ chế thứ hai và thứ ba, là một hàm tạo mặt nạ. Hàm băm được sửdụng sẽ được lựa chọn trong các hàm băm đã được tiêu chuẩn hóa theo ISO / IEC 10118; hàm tạo mặt nạ sẽ được thiết lập bằng hàm được quy định tại Phụ lục C trong tiêu chuẩn này.

▪ Lắp ghép thông điệp

Lắp ghép thông điệp là quá trình mà thông điệp đã được phục hồi M* được khôi phục từ phần có thể khôi phục (đã được khôi phục) M1* và phần không thể khôi phục M2* (có thể rỗng). Có nghĩa là, thông điệp M* được ghép lại với nhau bằng 𝑀 = 𝑀1||𝑀2.

QUY ĐỊNH LƯỢC ĐỒ CHỮ KÝ

a) Các bước phân bổ thông điệp và lắp ghép thông điệp được định nghĩa duy nhất trong tiêu chuẩn này.

b) Phải chọn một trong ba tùy chọn trong các bước tạo giá trị đại diện của thông điệp và khôi phục thông điệp. Bất kỳ lựa chọn nào trong ba lựa chọn này được chọn, một hàm băm cũng phải được chọn trong các hàm băm đã được tiêu chuẩn hóa theo ISO / IEC 10118 tùy thuộc vào điều kiện rằng mã băm đầu ra sẽ chứa ít nhất 160 bit. Trong hai trong số ba trường hợp, một hàm tạo mặt nạ được yêu cầu thêm, và hàm được sử dụng được định nghĩa trong Phụ lục C trong tiêu chuẩn này.

c) Các bước tạo chữ ký và mở chữ ký được định nghĩa duy nhất trong Phụ lục B trong tiêu chuẩn này, sự lựa chọn của khoá chữ ký bí mật được sử dụng trong quá trình tạo chữ ký, và trong trường hợp Lược đồ chữ ký 2 và 3 với số mũ lẻ, sự lựa chọn giữa chữký cơ sở và thay thế và các hàm xác thực. Phương pháp được sử dụng để tạo ra các cặp khóa chữ ký bí mật và khóa xác thực công khai được định nghĩa trong Phụ lục B trong tiêu chuẩn này.

KẾT LUẬN

Bài viết đã giới thiệu tóm tắt về mô hình lược đồ chữ ký số khôi phục thông điệp dựa trên cơ chế phân tích số nguyên quy định tại TCVN 12855-2:2020. Tiêu chuẩn TCVN 12855-2:2020 quy định ba lược đồ chữ ký số cho khôi phục thông điệp, hai trong số đó là tất định (không ngẫu nhiên) và một là ngẫu nhiên. Sự an toàn của cả ba lược đồ đều dựa trên độ phức tạp của việc phân tích các số nguyên lớn.

Tất cả ba lược đồ đều có thể cung cấp sự khôi phục toàn bộ hoặc một phần thông điệp. TCVN 12855-2:2020 quy định phương pháp sản xuất khóa cho ba lược đồ chữ ký. Tuy nhiên, các kỹ thuật quản lý khóa và tạo số ngẫu nhiên (theo yêu cầu của lược đồ chữ ký ngẫu nhiên) nằm ngoài phạm vi của tiêu chuẩn này. Chi tiết về ba cơ chế chữ ký xem thêm tại TCVN 12855-2:2020.

Hồ Văn Hương, Cục trưởng Cục Mật mã dân sự và Kiểm định sản phẩm mật mã

Tin cùng chuyên mục

Tin mới