Các số ngẫu nhiên và giả ngẫu nhiên đã và đang đóng một vai trò quan trọng trong nhiều lĩnh vực, chẳng hạn như cơ học lượng tử, lý thuyết trò chơi, mật mã… Trong mật mã, các số có tính ngẫu nhiên (gồm các số ngẫu nhiên hoặc giả ngẫu nhiên) lại càng quan trọng hơn và được sử dụng nhiều. Chẳng hạn, các hệ mật thường sử dụng các khóa được tạo ra như một đại lượng ngẫu nhiên. Nhiều giao thức mật mã cũng yêu cầu các đầu vào có tính ngẫu nhiên, ví dụ đối với các tham số bổ trợ trong việc sinh chữ ký số hoặc trong việc tạo ra các thách thức ngẫu nhiên trong các giao thức xác thực.
Hơn nữa, độ an toàn của nhiều lược đồ và giao thức mật mã phụ thuộc chủ yếu vào các thành phần (có tính) ngẫu nhiên đó.
Có hai loại bộ sinh số ngẫu nhiên (RNGs) cơ bản được sử dụng để sinh các dãy số ngẫu nhiên: các bộ sinh số ngẫu nhiên thực sự (True Random Number Generators (TRNGs)) và các bộ sinh số giả ngẫu nhiên (Pseudo/Deterministic Random Number Generators (PRNGs)). Trong các ứng dụng mật mã, cả hai loại bộ sinh này tạo ra một chuỗi các bit 0 và 1 mà có thể chia thành các chuỗi con hoặc các khối của các số ngẫu nhiên. Đối với việc kiểm tra tính ngẫu nhiên, các kiểm tra dựa trên giả thiết thống kê được sử dụng rộng rãi để đánh giá chất lượng của các bộ sinh số ngẫu nhiên, trong đó kiểm tra xem khi nào các dãy đầu ra có phù hợp với giả thiết cho trước, tức là dãy có tính ngẫu nhiên hoàn thiện (perfect randomness) hay không. Hơn nữa các kiểm tra tính ngẫu nhiên theo thống kê cũng được sử dụng để đánh giá đầu ra của các nguyên thủy mật mã, chẳng hạn như các mã khối, hàm băm để bước đầu đánh giá tính không thể phân biệt được giữa các đầu ra của chúng với đầu ra được chọn ngẫu nhiên. Một số bộ kiểm tra thống kê được sử dụng phổ biến bao gồm: bộ tiêu chuẩn kiểm tra được đề xuất bởi Knuth [1], Diehard [2] được đề xuất bởi Marsaglia và sử dụng phổ biến nhất hiện nay chính là NIST SP 800-22 [3] và được chuẩn hóa bởi Viện Tiêu chuẩn và Công nghệ quốc gia Hoa kỳ (NIST). Theo chúng tôi, một trong những lý do là bởi vì NIST công bố mã nguồn của bộ kiểm tra này. Bộ kiểm tra của NIST ban đầu gồm 16 tiêu chuẩn kiểm tra, sau đó trong bản cập nhật mới nhất năm 2010 rút xuống còn 15 tiêu chuẩn, khi loại bỏ đi tiêu chuẩn nén Lempel-Ziv. Đã có nhiều nghiên cứu chỉ ra rằng, một số tiêu chuẩn kiểm tra của NIST là chưa chính xác và cần phải chỉnh sửa hoặc thay thế bằng cách tiêu chuẩn khác.
Đối với người dùng khi tiếp cận bộ tiêu chuẩn này sẽ có 3 vấn đề chính được đặt ra. Thứ nhất, đọc hiểu và nắm được chi tiết và chính xác nội dung trong tài liệu mà NIST đã công bố. Các nội dung chính trong tài liệu này sẽ được chúng tôi trình bày sơ lược trong phần II. Vấn đề thứ hai đó là việc khai thác sử dụng chính xác mã nguồn của bộ kiểm tra, đồng thời kiểm tra tính đúng đắn, đối chiếu giữa mã nguồn và mô tả lý thuyết trong tài liệu. Ở mức cao hơn, người dùng có thể tùy chỉnh mã nguồn để chính xác hóa các công thức hoặc bổ sung các kiểm tra khác theo ý muốn. Vấn đề cuối cùng, cũng là khó khăn nhất đó chính là đảm bảo cơ sở lý thuyết cho các kiểm tra của bộ kiểm tra này. Trong tài liệu mà NIST công bố, họ không đưa ra cơ sở lý thuyết một cách rõ ràng mà chỉ liệt kê các tài liệu liên quan đến kiểm tra tương ứng. Theo đánh giá của chúng tôi, có những kiểm tra đã có cơ sở lý thuyết một cách rõ ràng như kiểm tra tần số, kiểm tra tần số trong một khối; lại có những kiểm tra có thể làm rõ được cơ sở lý thuyết theo các tài liệu công bố như kiểm tra loạt, hạng ma trận, so khớp mẫu, độ phức tạp tuyến tính, tổng tích lũy; nhưng cũng có những kiểm tra không dễ để có thể làm rõ cơ sở lý thuyết như kiểm tra DFT, Serial, phổ quát của Maurer, entropy xấp xỉ, viếng thăm ngẫu nhiên và biến thể viếng thăm ngẫu nhiên.
Như đã trình bày, vấn đề đầu tiên đối với người dùng là đọc hiểu và nắm được chi tiết tài liệu báo cáo mà NIST công bố. Tài liệu NIST SP 800-22 Revision 1a dài 131 trang, được chia làm 5 Mục và 7 Phụ lục. Mục 1 của tài liệu đưa ra một số khái niệm về tính ngẫu nhiên, độ bất định, các bộ sinh số ngẫu nhiên và giả ngẫu nhiên cùng với một số khái niệm và ký hiệu toán học. Mục 2 chiếm phần lớn nội dung khi trình bày về mục đích, cách gọi hàm, mô tả, phân phối tham chiếu, mức ý nghĩa, tham số khuyến cáo và ví dụ cho 15 kiểm tra thống kê. Trong tài liệu này, NIST không trình bày chi tiết về cơ sở lý thuyết cho các kiểm tra mà chỉ trích dẫn đến các tài liệu đã được công bố. Mục 3 liệt kê các tài liệu trên đối với mỗi kiểm tra thống kê. Mục 4 trình bày chiến lược phân tích thống kê cho một RNG (Random Number Generators). Mục 5 trình bày hướng dẫn sử dụng mã nguồn cài đặt của bộ kiểm tra này.
Ngoài ra, một số thông tin khác được trình bày trong các phụ lục: Phụ lục A trình bày về mã nguồn cài đặt của bộ kiểm tra. Phụ lục B trình bày một số kết quả thực nghiệm đối với các dữ liệu mẫu. Phụ lục C giúp người dùng có thể tùy chỉnh mã nguồn để bổ sung các kiểm tra khác. Phụ lục D mô tả của các bộ sinh số giả ngẫu nhiên có sẵn trong mã nguồn cài đặt của bộ kiểm tra. Phụ lục E trình bày một số hàm số học tính toán được sử dụng trong các kiểm tra như hàm gamma, hàm lỗi. Phụ lục F trình bày một số phần mềm hỗ trợ tính toán như Mathematica để tính toán một số hàm trung gian trong các kiểm tra.
Kính mời quý độc giả xem chi tiết bài báo tại đây
TS. Trần Duy Lai, ThS. Hoàng Đình Linh
10:00 | 14/06/2022
13:00 | 25/10/2022
07:00 | 04/11/2022
07:00 | 20/05/2022
13:00 | 12/05/2021
15:00 | 31/08/2023
Viện Tiêu chuẩn và Công nghệ Quốc gia của Bộ Thương mại Mỹ (NIST) đã bắt đầu một quy trình thu hút, đánh giá và tiêu chuẩn hóa các thuật toán mật mã hạng nhẹ phù hợp để sử dụng trong các môi trường hạn chế. Tháng 8/2018, NIST đã đưa ra lời kêu gọi xem xét các thuật toán cho các tiêu chuẩn mật mã hạng nhẹ với mã hóa xác thực dữ liệu liên kết (AEAD - Authenticated Encryption with Associated Data) và các hàm băm tùy chọn. Họ đã nhận được 57 yêu cầu gửi lên để được xem xét tiêu chuẩn hóa. Vào ngày 07/02/2023, NIST đã thông báo về việc lựa chọn dòng ASCON để tiêu chuẩn hóa mật mã hạng nhẹ.
09:00 | 09/03/2023
Cây băm Merkle là một kiến trúc dữ liệu đã được công bố từ thập niên 70 của thế kỉ trước, tuy nhiên những năm gần đây mới được đưa vào ứng dụng nhiều trong hệ thống công nghệ thông tin. Bài viết này sẽ trình bày chi tiết về cách thức xây dựng, các lợi ích chính và một số ứng dụng phổ biến của cây băm Merkle trong bảo mật thông tin.
16:00 | 19/10/2022
Theo thông tin từ Cục Quản lý mật mã dân sự và Kiểm định sản phẩm mật mã (Ban Cơ yếu Chính phủ), hoạt động cấp phép mật mã dân sự (MMDS) trong quý III/2022 tăng 82,8% so với cùng kỳ năm 2021.
14:00 | 25/07/2022
Trước nhu cầu về bảo mật an toàn thông tin trong hệ thống các cơ quan nhà nước, các tổ chức, doanh nghiệp và cá nhân ngày càng gia tăng, hoạt động kinh doanh sản phẩm, dịch vụ mật mã dân sự (MMDS) và xuất khẩu, nhập khẩu sản phẩm MMDS tăng lên nhanh chóng với quy mô rộng trên phạm vi cả nước.