Tiêu chuẩn mật mã AIS 20/31 về các bộ tạo số ngẫu nhiên tiếp tục cập nhật sau hơn hai thập kỷ

 
Tiêu chuẩn AIS 20/31 của Văn phòng Liên bang về An toàn thông tin của Đức (BSI) là một tiêu chuẩn về việc phân lớp các bộ tạo số ngẫu nhiên dựa trên các tiêu chí cần đạt về độ an toàn, mô hình lý thuyết và các độ đo entropy. Trải qua gần 30 năm hình thành và cập nhật, phiên bản đầu tiên AIS 20 được công bố từ năm 1999, chuẩn AIS 20/31 tiếp tục được nghiên cứu, cập nhật và được công bố mới nhất vào ngày 10/09/2024. Trong bài viết này, nhóm tác giả sẽ trình bày các điểm cập nhật quan trọng nhất của tiêu chuẩn AIS 20/31 so với các phiên bản đã được công bố trước đây.

Tiêu chuẩn mật mã AIS 20/31 về các bộ tạo số ngẫu nhiên tiếp tục cập nhật sau hơn hai thập kỷ

CÁC PHIÊN BẢN CỦA TIÊU CHUẨN AIS 20/31

Các số ngẫu nhiên là bắt buộc đối với hầu hết các ứng dụng mật mã. Chúng được sử dụng để tạo khóa phiên, tham số chữ ký, nonce, thách thức và các giá trị mặt che (để ngăn chặn các cuộc tấn công cài đặt). Các bộ tạo số ngẫu nhiên (RNG) yếu có thể làm suy yếu đáng kể độ an toàn của các ứng dụng mật mã. Điều này dẫn đến một nhu cầu thiết yếu về đánh giá độ an toàn một cách chắc chắn và đáng tin cậy cho các RNG.

AIS 20 [1] và AIS 31 [2] đã được sử dụng để chỉ định cách RNG sẽ được đánh giá trong sơ đồ Tiêu chí chung của Đức (German Common Criteria) trong hơn hai thập kỷ. Trên hết, chúng xác định các lớp chức năng cho các loại RNG khác nhau. Để tuân thủ một lớp chức năng cụ thể, RNG phải đáp ứng tất cả các yêu cầu cụ thể của lớp đó. Hơn nữa, các tiêu chuẩn này cũng phác thảo một số phương pháp đánh giá cho RNG tất định (DRNG) trong AIS 20 và RNG thực (TRNG) trong AIS 31.

Các phiên bản đầu tiên của AIS 20/31 được xuất bản vào năm 1999 [1] và năm 2001 [2] tương ứng với AIS 20 và AIS 31 khi Các tiêu chí chung của Đức vẫn còn mới và chưa có hướng dẫn nào về việc đánh giá RNG. Kể từ đó, các tiêu chí đánh giá trong các chuẩn này đã được kiểm tra thực nghiệm và hiện đại hóa theo đó. Đến năm 2011, hai tiêu chuẩn trên được cập nhật và gộp lại thành một chuẩn chung với tên gọi AIS 20/31[3], là một tài liệu tham khảo toán học-kỹ thuật cho cả AIS 20 cũng như AIS 31 và được thiết kế để các nhà phát triển, người đánh giá và người cấp chứng chỉ sử dụng. Gần đây nhất, vào ngày 10/9/2024, bản cập nhật mới nhất của AIS 20/31 [4] được công bố và được gọi là phiên bản 3.0 sau một loạt các phiên bản dự thảo 2.35 vào tháng 9/2022 và phiên bản 2.36 vào tháng 6/2023. Bản cập nhật này (sau đây gọi tắt là AIS 3.0) đã bổ sung hàng loạt các khái niệm và chi tiết hơn rất nhiều so với các phiên bản trước đó. Đặc biệt, đây là bản chính thức đầu tiên của BSI mà trong đó liên kết đến một bộ tiêu chuẩn về các bộ tạo số ngẫu nhiên quan trọng khác là NIST SP 800-90, mặc dù trước đây hai bộ chuẩn này gần như được nghiên cứu, phát triển một cách độc lập. Mối tương quan giữa hai bộ tiêu chuẩn này đã được trình bày chi tiết trong [5].

Kế thừa cách tiếp cận của các phiên bản trước đây, AIS 3.0 phân biệt giữa DRNG, RNG thực vật lý (PTRNG) và RNG thực phi vật lý (NPTRNG). Trong Chương 3, bảy lớp chức năng được định nghĩa (DRG.2, DRG.3, DRG.4, DRT.1, PTG.2, PTG.3 và NTG.1). Mỗi lớp chức năng chỉ định các yêu cầu mà RNG (trong trường hợp lớp chức năng DRT.1: cây DRNG) phải đáp ứng để tuân thủ lớp đó. Hầu hết các lớp chức năng này được sắp xếp thứ bậc theo mức độ nghiêm ngặt các yêu cầu của chúng và do đó, theo sức mạnh bảo mật của chúng. Lớp mạnh nhất khi xem xét các bộ tạo được mô tả trong chuẩn này có tên gọi là PTG.3.

So với lớp trước đây trong AIS 20/31 [3], hai lớp chức năng đã bị xóa, cụ thể là DRG.1 và PTG.1. Tuy nhiên, định nghĩa của các lớp chức năng còn lại vẫn tương tự như trong AIS 20/31 [3]. Điều này minh chứng thông qua việc giữ nguyên tên lớp của chúng, mặc dù chúng đã được phát triển thêm và do đó khác nhau về chi tiết. Một lớp chức năng mới, DRT.1, cũng đã được thêm vào.

CÁC ĐIỂM KHÁC BIỆT CHÍNH SO VỚI CÁC PHIÊN BẢN AIS 20/31 TRƯỚC ĐÂY

Điểm khác biệt trong các lớp DRG

Tài liệu AIS 20/31 [3] đã định nghĩa thêm một lớp chức năng DRG.1 yếu hơn DRG.2 vì nó chỉ yêu cầu bảo mật về phía trước (forward security) chứ không yêu cầu bảo mật về phía sau (backward security). Lớp chức năng DRG.1 đã bị xóa vì thực ra nó không liên quan đến thực hành chứng nhận. Trong AIS 3.0 [4], một lớp chức năng xác định mới cho cây DRNG, DRT.1, được đưa vào bổ sung. Trong các điều kiện phù hợp, lớp chức năng này cho phép nạp mầm và nạp lại mầm cho DRNG bởi một DRNG khác. Phiên bản trước đó AIS 20/31 [3] phân biệt giữa các tiềm năng tấn công khác nhau (các Bảng 1, Bảng 2, Bảng 12, Bảng 13 và các đoạn tương ứng trong AIS 20/31 [3]). Trong AIS 3.0 [4], các yêu cầu không phụ thuộc vào tiềm năng tấn công. Tài liệu này đưa ra khái niệm “các yêu cầu”, khái niệm này không tồn tại trong AIS 20/31 [3]. Ở đó, chỉ có thể trả ra các số ngẫu nhiên bên trong đơn lẻ. Lưu ý rằng việc đưa khái niệm “các yêu cầu” vào AIS 3.0 là một phần của quá trình đồng điệu hoá AIS 20/31 với các chuẩn NIST SP 800-90[A, B, C]. Trong AIS 20/31 [3], việc tuân thủ các lớp chức năng DRG.2 hoặc DRG.3 yêu cầu hàm chuyển đổi trạng thái, hàm đầu ra hoặc cả hai phải là mật mã, trong khi DRG.4 yêu cầu cả hàm chuyển đổi trạng thái và hàm đầu ra phải đảm bảo mật mã, tức là bao gồm các nguyên thuỷ mật mã (ví dụ: mã khối hoặc hàm băm). Trong AIS 3.0 [4], các lớp chức năng DRG.3 và DRG.4 yêu cầu hàm chuyển đổi trạng thái và hàm đầu ra phải đảm bảo mật mã.

Các phiên bản trước của AIS 3.0, AIS 20 [1] chứa một yêu cầu bảo mật rằng trong vòng đời của DRNG, các vectơ bit ngẫu nhiên bậc cao phải phân biệt nhau với xác suất rất lớn; xem yêu cầu DRG.1.3, DRG.2.4, DRG.3.4, DRG.4.6 trong AIS 20/31 [3]. Trong phiên bản AIS 3.0, các yêu cầu này đã bị loại bỏ.

Yêu cầu về sự phân biệt nhau trong AIS 20 [1] được thúc đẩy bởi thực tế là trong quá khứ, các trạng thái bên trong của các triển khai DRNG trên các thiết bị có tài nguyên hạn chế như thẻ thông minh thường nhỏ hơn hiện nay. Hơn nữa, AIS 20 [1] cũng cho phép các DRNG không cần đảm bảo mật mã (tuân thủ các lớp chức năng K1 hoặc K2), có thể được sử dụng cho các ứng dụng không nhạy cảm. Lý do chính cho yêu cầu này là để ngăn chặn việc tạo ra quá nhiều số ngẫu nhiên trong vòng đời của DRNG so với kích thước của trạng thái bên trong. Các yêu cầu về quy trình nạp mầm, quy trình nạp lại mầm và kích thước của trạng thái bên trong (hay đúng hơn là trạng thái bên trong hiệu quả) đã tăng lên đáng kể. Vì những lý do này, yêu cầu về sự phân biệt nhau đã bị loại bỏ.

Bộ 6-thành phần được mô tả trong AIS 20/31 [3] được thay thế bằng bộ 9 thành phần. Nguyên nhân chủ yếu là do khái niệm “yêu cầu” được đưa vào. Hơn nữa, bộ 4-thành phần mô tả cho quy trình nạp mầm và quy trình nạp lại mầm đã được đưa vào.

Trong AIS 20/31 [3], các lớp chức năng DRG.2, DRG.3 và DRG.4 yêu cầu người đánh giá áp dụng bộ kiểm tra hộp đen thống kê cho các số ngẫu nhiên bên trong (các yêu cầu không được khuyến khích trong thuật ngữ của [3]: DRG.2.5, DRG.3.5, DRG.4.7). Điều này chủ yếu có “lý do lịch sử” vì AIS 20 [1] chứa hai lớp chức năng (K1 và K2) cho phép DRNG không cần đảm bảo mật mã.

Tiêu chuẩn mật mã AIS 20/31 về các bộ tạo số ngẫu nhiên tiếp tục cập nhật sau hơn hai thập kỷ

Điểm khác biệt trong các lớp PTRNG

Phiên bản AIS 20/31 trước đây [3] đã định nghĩa một lớp chức năng bổ sung PTG.1, chỉ yêu cầu các thuộc tính thống kê nhưng không có bất kỳ ràng buộc entropy nào. Lớp chức năng PTG.1 đã bị xóa vì thực ra nó không liên quan đến đánh giá thực hành chứng nhận.

So với AIS 20/31 [3] đối với PTRNG tuân thủ PTG.2, khiếm khuyết entropy được dung nạp đã trở nên nhỏ hơn đáng kể. Sự thay đổi này được thúc đẩy bởi thực tế là các PTRNG được chứng nhận cho thấy khiếm khuyết entropy nhỏ hơn đáng kể so với mức cho phép trong AIS 20/31 [3]. Hơn nữa, cần lưu ý rằng trong AIS 3.0 [4], yêu cầu entropy đề cập đến các số ngẫu nhiên bên trong, trong khi trong AIS 20/31 [3], yêu cầu entropy đề cập đến các số ngẫu nhiên thô và bộ kiểm tra A giới hạn độ lệch của các số ngẫu nhiên bên trong. Hơn nữa, tài liệu này cũng cho phép các khẳng định minentropy bổ sung hoặc thay thế cho các khẳng định về entropy Shannon.

Không giống như trong AIS 20/31 [3], lớp chức năng PTG.3 cho phép các yêu cầu entropy riêng lẻ (với các khiếm khuyết entropy nhỏ) đối với cả entropy Shannon và min-entropy. Bên cạnh đó, trong AIS 20/31 [3], lớp chức năng PTG.3 yêu cầu người đánh giá áp dụng bộ kiểm tra hộp đen thống kê cho các số ngẫu nhiên bên trong. Cũng giống như trong trường hợp của các lớp chức năng DRG.2, DRG.3 và DRG.4, yêu cầu này đã bị loại bỏ. Các sửa đổi của lớp chức năng DRG.3 cũng ảnh hưởng đến lớp chức năng PTG.3.

Điểm khác biệt trong các lớp NPTRNG

Trong AIS 20/31 [3], lớp chức năng NTG.1 yêu cầu người đánh giá áp dụng bộ kiểm tra hộp đen thống kê cho các số ngẫu nhiên bên trong. Cũng giống như trong trường hợp của các lớp chức năng DRG.2, DRG.3 và DRG.4, yêu cầu này đã bị loại bỏ trong AIS 3.0 [4].

Trong AIS 20/31 [3], entropy của các số ngẫu nhiên trong được tính theo entropy Shannon. Trong AIS 3.0 [4], min-entropy được sử dụng. Yêu cầu về sự phân biệt lẫn nhau của các vectơ ngẫu nhiên (yêu cầu NTG.1.4 trong AIS 20/31 [3]) đã bị loại bỏ (cũng như đối với các lớp chức năng DRG.2, DRG.3 và DRG.4).

KẾT LUẬN

Trải qua hơn hai thập kỷ, một tiêu chuẩn mật mã vẫn luôn được nghiên cứu, cập nhật và hoàn thiện cho thấy sự cẩn trọng và quan tâm đặc biệt đối với chủ đề ngẫu nhiên. Điều đặc biệt hơn đó là mặc dù có cách tiếp cận và định hướng phát triển khác nhau nhưng thú vị là AIS 3.0 và NIST SP 800-90 về bản chất lại hướng đến một mục tiêu chung cho việc đánh giá độ an toàn của các bộ tạo số ngẫu nhiên. Và sự đồng điệu hóa giữa hai bộ chuẩn này càng thể hiện rằng việc chuẩn hóa các tiêu chuẩn mật mã từng bước sẽ hội tụ thành các tiêu chuẩn phổ quát. Hơn nữa, việc tiếp tục nghiên cứu, cập nhật và phát triển các tiêu chuẩn mật mã hiện có thực sự là một nhiệm vụ bắt buộc và cấp thiết trong bối cảnh khoa học mật mã phát triển mạnh như hiện nay.

TÀI LIỆU THAM KHẢO

[1]. W. Schindler. AIS 20: Functionality classes and evaluation methodology for deterministic random number generators. Version 2.0 (02.12.1999), Mathematical-technical reference of [AIS20], English translation. https://www.bsi.bund.de/dok/ais- 20-appx-1999.

[2]. W. Killmann and W. Schindler. A proposal for: Functionality classes and evaluation methodology for true (physical) random number generators. Version 3.1 (25.09.2001), English translation. https://www.bsi.bund.de/dok/ais-31-appx-2001.

[3]. W. Killmann and W. Schindler. A proposal for: Functionality classes for random number generators. Version 2.0 (18.09.2011), https://www.bsi.bund.de/dok/ais-20-31-appx-2011.

[4]. W. Killmann and W. Schindler. A proposal for: Functionality classes for random number generators. Version 3.0 (10.09.2024).

[5]. E. Barker, J. Kelsey, K. McKay, J. Mittmann, M. Peter, W. Schindler, and M.S. Turan. Bridging the Gap between Standards on Random Number Generation — Comparison of SP 800-90 Series and AIS 20/31.

Cập nhật tin tức công nghệ mới nhất tại fanpage Công nghệ & Cuộc sống