Tiêu chuẩn Quốc gia TCVN 12853:2020 ISO/IEC 18031:2011 Các kỹ thuật an toàn - Bộ tạo bit ngẫu nhiên

  • Thuộc tính
  • Nội dung
  • Tiêu chuẩn liên quan
  • Lược đồ
  • Tải về
Mục lục Đặt mua toàn văn TCVN
Lưu
Theo dõi văn bản

Đây là tiện ích dành cho thành viên đăng ký phần mềm.

Quý khách vui lòng Đăng nhập tài khoản LuatVietnam và đăng ký sử dụng Phần mềm tra cứu văn bản.

Báo lỗi
  • Báo lỗi
  • Gửi liên kết tới Email
  • Chia sẻ:
  • Chế độ xem: Sáng | Tối
  • Thay đổi cỡ chữ:
    17
Ghi chú

Tiêu chuẩn Việt Nam TCVN 12853:2020

Tiêu chuẩn Quốc gia TCVN 12853:2020 ISO/IEC 18031:2011 with amendment 1:2017 Công nghệ thông tin - Các kỹ thuật an toàn - Bộ tạo bit ngẫu nhiên
Số hiệu:TCVN 12853:2020Loại văn bản:Tiêu chuẩn Việt Nam
Cơ quan ban hành: Bộ Khoa học và Công nghệLĩnh vực: Khoa học-Công nghệ, Thông tin-Truyền thông
Năm ban hành:2020Hiệu lực:
Người ký:Tình trạng hiệu lực:
Đã biết

Vui lòng đăng nhập tài khoản gói Tiêu chuẩn hoặc Nâng cao để xem Tình trạng hiệu lực. Nếu chưa có tài khoản Quý khách đăng ký tại đây!

Tình trạng hiệu lực: Đã biết
Ghi chú
Ghi chú: Thêm ghi chú cá nhân cho văn bản bạn đang xem.
Hiệu lực: Đã biết
Tình trạng: Đã biết

TIÊU CHUẨN QUỐC GIA

TCVN 12853 : 2020

ISO/IEC 18031 : 2011

CÔNG NGHỆ THÔNG TIN - CÁC KỸ THUẬT AN TOÀN - BỘ TẠO BIT NGẪU NHIÊN

Information technology - Security techniques - Random bit generation

Lời nói đầu

TCVN 12853 : 2020 hoàn toàn tương đương với ISO/IEC 18031:2011, sửa đổi 1:2011 và đính chính 1:2017.

TCVN 12853 : 2020 do Cục Quản lý mật mã dân sự và Kiểm định sản phẩm mật mã biên soạn, Ban Cơ yếu Chính phủ đề nghị, Tổng cục Tiêu chuẩn Đo lường Chất lượng thẩm định, Bộ Khoa học và Công nghệ công bố.

 

CÔNG NGHỆ THÔNG TIN - CÁC KỸ THUẬT AN TOÀN - BỘ TẠO BIT NGẪU NHIÊN

Information technology - Security techniques - Random bit generation

1  Phạm vi áp dụng

Tiêu chuẩn này quy định một mô hình khái niệm cho bộ tạo bit ngẫu nhiên dùng trong mật mã cùng với các phần tử của mô hình này.

Tiêu chuẩn này

• quy định đặc tính của các phần tử chính được yêu cầu đối với một bộ tạo bit ngẫu nhiên bất định,

• quy định đặc tính của các phần tử chính được yêu cầu đối với một tạo bit ngẫu nhiên tất định,

• thiết lập các yêu cầu an toàn cho cả bộ sinh bit ngẫu nhiên bất định và tất định.

Trường hợp có yêu cầu phải tạo ra chuỗi các số ngẫu nhiên từ xâu bit ngẫu nhiên, phụ lục B sẽ trình bày hướng dẫn về cách thức thực hiện.

Các kỹ thuật kiểm tra thống kê đối với các bộ tạo bit ngẫu nhiên dùng để xác thực hoặc kiểm tra hợp lệ một cách độc lập và thiết kế chi tiết cho các bộ tạo đó nằm ngoài phạm vi của tiêu chuẩn này.

2  Tài liệu viện dẫn

Các tài liệu viện dẫn sau rất cần thiết cho việc áp dụng tiêu chuẩn này. Đối với các tài liệu viện dẫn ghi năm công b thì áp dụng phiên bản được nêu. Đối với các tài liệu viện dẫn không ghi năm công bố thì áp dụng phiên bản mới nhất, bao gồm cả các sửa đổi, bổ sung (nếu có).

TCVN 11495-2 (ISO/IEC 9797-2), Công nghệ thông tin - Các kỹ thuật an toàn - Mã xác thực thông điệp (MACs) - Phần 2: Cơ chế sử dụng một hàm băm chuyên dụng.

TCVN 12213 (ISO/IEC 10116), Công nghệ thông tin - Các kỹ thuật an toàn - Chế độ hoạt động cho mã khối n-bit

TCVN 11816-3 (ISO/IEC 10118-3), Công nghệ thông tin - Các kỹ thuật an toàn - Hàm băm - Phần 3: Hàm băm chuyên dụng.

TCVN 11367-3 (ISO/IEC 18033-3), Công nghệ thông tin - Các kỹ thuật an toàn - Thuật toán mật mã - Phần 3: Mã khối

TCVN 11295 (ISO/IEC 19790), Công nghệ thông tin - Các kỹ thuật an toàn - Các yêu cu an toàn cho mô đun mật mã

ISO/IEC 18032, Information technology - Security techniques - Prime number generation

3  Thuật ngữ và định nghĩa

Tiêu chuẩn này áp dụng các thuật ngữ và định nghĩa dưới đây:

3.1

Thuật toán (algorithm)

Quá trình tính toán được quy định rõ ràng để tính toán một bộ quy tắc, trả về một kết quả nhất định nếu tuân thủ đúng.

3.2

An toàn cho trước đây (backward secrecy)

Đảm bảo rằng các giá trị trước đó không thể xác định được từ các thông tin của giá trị hiện tại hoặc các giá trị tiếp theo.

3.3

Nguồn phân bố lệch (biased source)

Nguồn các xâu bit (hoặc số) lấy từ một không gian mẫu sao cho một số xâu bit (hoặc số) được chọn nhiều hơn so với một số xâu bit (hoặc số) khác.

CHÚ THÍCH 1 Tương tự, nếu không gian mẫu gồm r phần tử, thì một số phần tử sẽ xuất hiện với xác suất khác 1/r.

CHÚ THÍCH 2 Thuật ngữ này hoàn toàn trái ngược với nguồn không chệch (3.35).

3.4

Dòng bit (bit stream)

Đầu ra các bit liên tục từ một thiết bị hoặc một cơ chế.

3.5

Xâu bit (bit string)

Chuỗi hữu hạn các số 0 và 1.

3.6

Hộp đen (black box)

Cơ chế lý tưởng chấp nhận các giá trị đầu vào và tạo ra các giá trị đầu ra, nhưng được thiết kế sao cho người quan sát không thể thấy bên trong chiếc hộp hoặc xác định chính xác những gì đang xảy ra bên trong chiếc hộp đó.

CHÚ THÍCH Thuật ngữ này hoàn toàn trái ngược với hộp trắng (3.14).

3.7

Mã khối (block cipher)

Mã đối xứng với tính chất là thuật toán mã hóa thao tác trên các khối của bản rõ, nghĩa là trên xâu bit có độ dài xác định, kết quả cho ra khối bản mã.

[TCVN 11367-1]

3.8

Ranh giới mật mã (cryptographic boundary)

Đường bao khép kín liên tục được xác định ở dạng hiển, thiết lập các ranh giới lôgic và/hoặc vật lý của mô-đun mật mã và chứa tất cả các thành phần phần cứng, phần mềm và/hoặc phần sụn của mô-đun mật mã.

[TCVN 11295]

3.9

Thuật toán tất định (deterministic algorithm)

Đặc trưng của một thuật toán sao cho cùng một đầu vào cho trước luôn tạo ra một đầu ra giống nhau.

3.10

Bộ tạo bit ngẫu nhiên tất định (deterministic random bit generator)

DRBG

Bộ tạo bit ngẫu nhiên tạo ra một chuỗi bit xuất hiện ngẫu nhiên bằng cách sử dụng một thuật toán tất định từ một giá trị khi tạo ngẫu nhiên thích hợp được gọi là mầm và có thể thêm một số đầu vào thứ cấp mà không ảnh hưng đến độ an toàn của bộ tạo bit ngẫu nhiên.

CHÚ THÍCH Đặc biệt, các nguồn bất định cũng có thể là một phần của các đầu vào thứ cp này.

3.11

Entropy (entropy)

Độ đo sự hỗn loạn, tính ngẫu nhiên hoặc biến đổi trong một hệ thống đóng.

CHÚ THÍCH Độ bất định của một biến ngẫu nhiên X là một đại lượng toán học chỉ lượng thông tin thu được khi quan sát biến X.

3.12

Nguồn bất định (entropy source)

Thành phần, thiết bị hoặc sự kiện tạo ra đầu ra theo một số cách nhất định nào đó, tạo ra một xâu bit chứa entropy.

3.13

An toàn cho sau đó (forward secrecy)

Đảm bảo rằng thông tin của các giá trị tiếp theo (tương lai) không thể xác định được từ các giá trị hiện tại hoặc các giá trị trước đó.

3.14

Hộp trắng (glass box)

Cơ chế lý tưng chấp nhận các giá trị đầu vào và tạo ra các giá trị đầu ra và được thiết kế sao cho người quan sát có thể thấy bên trong và xác định chính xác những gì đang xảy ra.

CHÚ THÍCH Thuật ngữ này hoàn toàn trái ngược với hộp đen (3.6).

3.15

Hàm băm (hash-function)

Hàm ánh xạ các chuỗi bit thành các chuỗi bit có độ dài cố định, thỏa mãn hai đặc tính sau đây:

• Không thể tính toán để tìm ra đầu vào tương ứng với một đầu ra cho trước.

• Không thể tính toán để tìm ra đầu vào thứ hai có chung đầu ra với đầu vào đó.

CHÚ THÍCH Khả năng tính toán phụ thuộc vào các yêu cầu an toàn và môi trường cụ thể.

[TCVN 11816-1 (ISO/IEC 10118-1)]

3.16

Nguồn bất định con người (human entropy source)

Nguồn bất định có một số thành phần ngẫu nhiên có vai trò của con người.

3.17

Bộ tạo bit ngẫu nhiên tất định lai ghép (hybrid DRBG)

Bộ tạo bit ngẫu nhiên tất định sử dụng nguồn bất định không xác định như là một nguồn bất định bổ sung.

3.18

Bộ tạo bit ngẫu nhiên bất định lai ghép (hybrid NRBG)

Bộ tạo bit ngẫu nhiên bất định lấy một giá trị mầm làm một nguồn bất định bổ sung.

CHÚ THÍCH Bộ tạo bit ngẫu nhiên bất định lai có thể là vật lý hoặc phi vật lý.

3.19

Giá trị khởi tạo (initialisation value)

Giá trị được sử dụng để xác định điểm bắt đầu của thuật toán mật mã.

CHÚ THÍCH Giá trị khởi tạo được sử dụng trong hàm băm hoặc một thuật toán mã hóa là một ví dụ.

3.20

Hộp Kerckhoffs (Kerckhoffs box)

Hệ mật lý tưng mà kẻ tấn công biết được thiết kế và khóa công khai nhưng không biết khóa bí mật và/hoặc thông tin bí mật khác.

CHÚ THÍCH Đối với kẻ tn công, hộp Kerckhoffs là khái niệm lai giữa hộp đen và hộp trắng.

3.21

Kiểm tra với câu trả lời đã biết (known-answer test)

Phương pháp kiểm tra một cơ chế tất định xử lý một đầu vào nhất định và kết quả đầu ra được so sánh với một giá trị tương ứng đã biết.

CHÚ THÍCH Kiểm tra với câu tr lời đã biết của một cơ chế tất định cũng có thể bao gồm kiểm tra tính toàn vẹn của phần mềm thực thi cơ chế tất định. Ví dụ: nếu phần mềm thực thi cơ chế tất định là chữ ký số, thì chữ ký có thể được tính lại và so sánh với giá trị chữ ký đã biết.

3.22

Độ bất định nhỏ nhất (min-entropy)

Giới hạn dưới của độ bất định có hiệu quả trong việc xác định giá trị ước lượng trong trường hợp xấu nhất của độ bất định lấy mẫu.

CHÚ THÍCH Xâu bit X (hoặc chính xác hơn là biến ngẫu nhiên tương ứng mô phỏng các chuỗi bit ngẫu nhiên loại này) có độ bất định nhỏ nhất là k nếu k là giá trị lớn nhất sao cho Pr[X = x] ≤ 2-k. Tức là X bao gồm k bit của độ bất định nhỏ nhất hoặc của tính ngẫu nhiên

3.23

Bộ tạo bit ngẫu nhiên bất định (non-deterministic random bit generator)

NRBG

Bộ sinh bit ngẫu nhiên có độ an toàn phụ thuộc vào việc lấy mẫu một nguồn entropy.

CHÚ THÍCH Nguồn bất định sẽ được lấy mẫu bất cứ khi nào bộ tạo bit ngẫu nhiên tạo đầu ra và có thể với tần suất lớn hơn.

3.24

Hàm một chiều (one-way function)

Hàm có tính chất dễ dàng tính được đầu ra đối với đầu vào cho trước nhưng lại không thể tìm được đầu vào tương ứng nếu cho trước đầu ra.

[ISO/IEC 11770-3]

3.25

Hàm tạo đầu ra (output generation function)

Hàm trong một bộ tạo bit ngẫu nhiên tính toán đầu ra của bộ tạo bit ngẫu nhiên từ trạng thái bên trong của bộ tạo này.

3.26

Chuỗi bit giả ngẫu nhiên (pseudorandom sequence of bits)

Chuỗi bit hoặc một số được chọn một cách ngẫu nhiên ngay cả khi quá trình lựa chọn được thực hiện bởi một thuật toán tất định.

3.27

Bộ tạo bit ngẫu nhiên tất định thuần túy (pure DRBG)

Bộ tạo bit ngẫu nhiên tất định trong đó nguồn bất định chính là mầm.

3.28

Bộ tạo bit ngẫu nhiên bất định thuần túy (pure NRBG)

Bộ tạo bit ngẫu nhiên bất định trong đó nguồn bất định là không xác định.

3.29

Bộ tạo bit ngẫu nhiên (random bit generator)

RBG

Thiết bị hoặc thuật toán có đầu ra là một chuỗi bit xuất hiện độc lập và đồng xác suất.

3.30

Thay mầm mới (reseeding)

Chức năng chuyển đổi trạng thái bên trong chuyên biệt bằng cách cập nhật trạng thái bên trong khi một giá trị mầm mới được cung cấp.

CHÚ THÍCH Việc sử dụng thuật ngữ “Thay mầm mới” không chỉ có trong tài liệu. Một số tác giả cũng sử dụng “Thay mầm mới” để chỉ cơ chế thay thế giá trị hiện thời của trạng thái bên trong bằng một giá trị mới. Tiêu chuẩn này tuân theo định nghĩa này. Tuy nhiên, thường thì người ta phân biệt giữa “Thay mầm mới” và “Cập nhật mầm”. Thuật ngữ “Thay mầm mới” chỉ bao gồm các cơ chế thay thế trạng thái bên trong bằng một giá trị mới mà không phụ thuộc vào giá trị hiện thời (đa phần là một quá trình tạo mầm mới). Ngược lại, “Cập nhật mầm” dùng để chỉ một cơ chế tính toán trạng thái bên trong mới từ giá trị hiện thời và các dữ liệu khác (thường là bất định) (Tham khảo 9.6, mục 3).

3.31

Tham số bí mật (secret parameter)

Đầu vào của một bộ tạo bit ngẫu nhiên trong quá trình khởi tạo, cung cấp entropy bổ sung trong trường hợp nguồn entropy bị lỗi hoặc bị làm tổn hại.

3.32

Mầm (seed)

Chuỗi bit được sử dụng làm đầu vào của một bộ tạo bit ngẫu nhiên tất định.

CHÚ THÍCH Mầm sẽ xác định một phần trạng thái của bộ tạo bit ngẫu nhiên tất định.

3.33

Vòng đời của mầm (seedlife)

Khoảng thời gian từ khi khởi tạo bộ tạo bit ngẫu nhiên từ một mầm đến khi thay mầm mới (khởi tạo đầy đủ) cung cấp cho bộ tạo bit ngẫu nhiên một giá trị mầm khác.

3.34

Trạng thái (state)

Điều kiện của một bộ tạo bit ngẫu nhiên hoặc thành phần bất kỳ của bộ tạo ứng với thời gian và tình huống cụ thể.

3.35

Nguồn phân bố đều (unbiased source)

Nguồn các xâu bit (hoặc số) lấy từ một không gian mẫu sao cho tất cả các xâu bit (hoặc số) được chọn với cùng một xác suất.

CHÚ THÍCH 1 Tương tự, nếu không gian mẫu gồm r phần tử, thì tất cả các phần tử sẽ xuất hiện với xác suất 1/r.

CHÚ THÍCH 2 Thuật ngữ này hoàn toàn trái ngược với nguồn phân bố lệch (3.3).

4  Ký hiệu

Trong tiêu chuẩn này áp dụng các ký hiệu dưới đây:

Ký hiệu

Ý nghĩa

Pr[x]

Xác suất xuất hiện của x.

IV

Giá trị khởi tạo.

éXù

Làm tròn lên: số nguyên nhỏ nhất lớn hơn hoặc bằng X. Ví dụ: é5ù = 5, é5,3ù = 6.

Phép cộng bit loại trừ (hay được gọi là cộng bit theo mod 2) của hai xâu bit XY có cùng độ dài.

X || Y

Phép nối hai xâu bit XY theo thứ tự.

|α|

Độ dài bit của xâu a.

x mod n

Số dư duy nhất r, 0 r n - 1 khi số nguyên x chia cho n. Ví dụ: 23 mod 7 = 2.

Được sử dụng trong hình để minh họa bộ “chuyển đổi” giữa các nguồn đầu vào.

5  Đặc điểm và yêu cầu đối với bộ tạo bit ngẫu nhiên

5.1  Đặc điểm của bộ tạo bit ngẫu nhiên

Các tính chất ngẫu nhiên có thể được mô phỏng bằng cách tung một đồng xu lên không khí và quan sát mặt hướng lên trên khi nó rơi xuống đất, trong đó một mặt được gọi là “mặt ngửa” (H) và mặt còn lại được gọi là “mặt sp” (T). Đồng xu cũng có gờ, tuy nhiên xác suất để gờ đồng xu chạm đất hiếm khi xảy ra nên có thể bỏ qua trường hợp này.

Tung đồng xu nhiều lần tạo ra một chuỗi có thứ tự kết quả của việc tung đồng xu ký hiệu là một chuỗi H và T. Ví dụ: chuỗi “HTTHT” (đọc từ trái sang phải) nghĩa là mặt ngửa rồi đến mặt sấp, tiếp theo là mặt sấp, mặt ngửa rồi đến mặt sấp. Chuỗi kết quả tung đồng xu này có thể chuyển đổi thành một chuỗi nhị phân bằng cách gán H bằng số một nhị phân (‘1’) và T bằng số không nhị phân (‘0’); chuỗi nhị phân kết quả là10010’.

Các tính chất yêu cầu của tính ngẫu nhiên có thể được kiểm tra bằng cách sử dụng ví dụ tung đồng xu được mô tả trên. Kết quả của mỗi lần tung đồng xu là:

1. Không thể đoán trước được: Trước khi tung, không thể biết được đồng xu rơi xuống đất bằng mặt ngửa hay mặt sấp. Ngoài ra, nếu kết quả tung được giữ bí mật, thì không thể xác định được kết quả tung đồng xu là gì nếu biết một kết quả tung đồng xu sau đó bất kỳ. Tính không thể đoán trước được phụ thuộc vào việc người quan sát có thể quan sát được kết quả của việc tung đồng xu hay không. Khái niệm độ bất định định lượng số lượng kết quả không thể đoán trước được hoặc không chắc chắn liên quan đến người quan sát và sẽ được thảo luận kỹ hơn ở phần sau của tiêu chuẩn này.

2. Không chệch: mỗi kết quả thu được có cùng khả năng xảy ra;

3. Độc lập: quá trình tung đồng xu được cho là quá trình không nhớ; bất cứ điều gì xảy ra trước khi tung đồng xu hiện tại không ảnh hưởng đến nó.

Vì vậy, chuỗi kết quả của việc tung đồng xu có thể trực tiếp áp dụng cho một bộ tạo bit ngẫu nhiên. Các bộ tạo bit ngẫu nhiên được quy định trong tiêu chuẩn này mô phỏng chuỗi kết quả của việc tung đồng xu lý tưng.

Như đã nêu ở trên, tính không thể đoán trước là thuộc tính bắt buộc của một bộ tạo bit ngẫu nhiên. Do đó, không thể dự đoán đầu ra của một bộ tạo bit ngẫu nhiên được thực thi và làm việc đúng cách. Tính an toàn về phía trước liên quan đến khả năng dự đoán đầu ra tiếp theo của bộ tạo bit ngẫu nhiên dựa trên thông tin về các giá trị đầu ra trước đó và/hoặc các trạng thái bên trong. Việc không xác định được đầu ra trước đó của bộ tạo bit ngẫu nhiên khi biết thông tin về đầu ra hiện tại hoặc tương lai của bộ tạo bit được gọi là tính an toàn về phía sau.

Quyết định kết hợp tính an toàn về phía trước với an toàn về phía sau phụ thuộc vào yêu cầu của ứng dụng.

Các yếu tố sau đây cần được xem xét khi quyết định kết hợp tính an toàn về phía trước với an toàn về phía sau:

1. Trong một số trường hợp, việc đạt được tính an toàn về phía sau quan trọng hơn việc đạt được tính bí mật về phía trước. Ví dụ: nếu một hệ mật bị lộ, kẻ tấn công có thể đọc được các thông điệp cũ được xử lý bằng hệ mật đó. Tính an toàn về phía trước không được quan tâm vì hệ mật không còn được sử dụng bởi người sở hữu đầu. Việc đạt được tính an toàn về phía sau là đơn giản (ví dụ: bằng cách sử dụng hàm một chiều trong thiết kế) mặc dù có thể ảnh hưởng đến hiệu suất do thực hiện tính chất này và phụ thuộc vào thiết kế.

2. Việc đạt được tính an toàn về phía trước có thể không thích hợp đối với một số hệ mật. Ví dụ: ththông minh được khi tạo tại nơi sản xuất với giá trị mầm có độ bất định đầy đủ và sẽ hết hạn sau một khoảng thời gian nhất định (ví dụ: hai hoặc ba năm). Trong trường hợp này, có thể dễ dàng thay thế thẻ cũ bằng một thẻ mới có giá trị mầm khác thay cho việc phải đảm bảo tính an toàn về phía trước trong thiết kế bộ tạo bit ngẫu nhiên.

3. Trong một số trường hợp, việc đạt được tính an toàn về phía trước có thể quan trọng hơn việc đạt được tính an toàn về phía sau. Ví dụ: việc tạo giá trị nonce an toàn. Thuật toán tạo bit ngẫu nhiên không cần đảm bảo tính an toàn về phía sau vì tất cả các giá trị đầu ra trước đó sẽ được biết đến. Tuy nhiên, tính an toàn về phía trước cần phải đảm bảo để ngăn chặn kẻ tấn công với những thông tin đã biết về bộ tạo có thể dự đoán được các giá trị đầu ra sau này.

5.2  Yêu cầu đối với bộ tạo bit ngẫu nhiên

Các yêu cầu sau đây được áp dụng cho tất cả các bộ tạo bit ngẫu nhiên cả tất định và bất định.

Đây là các yêu cầu cơ bản nhằm đảm bảo an toàn cho các cơ chế mật mã yêu cầu đầu vào ngẫu nhiên.

Ngưỡng giữa tính khả thi và không khả thi sẽ được xác định theo yêu cầu chung đối với mức an toàn mật mã tối thiểu chấp nhận được của ứng dụng.

1. Căn cứ vào một số giả thiết nhất định, không thể phân biệt đầu ra của một bộ tạo bit ngẫu nhiên từ các bit ngẫu nhiên thực có phân bố đều. Thông thường, tất cả các đầu ra có thể xảy ra với xác suất bằng nhau và một chuỗi kết quả đầu ra xuất hiện với phân bố đều.

2. Cho trước một chuỗi các bit đầu ra, không thể tính toán hoặc dự đoán bất kỳ bit đầu ra nào đã xuất hiện hoặc sẽ xuất hiện.

3. Trong suốt thời gian có hiệu lực của bộ tạo bit ngẫu nhiên, không thể dự đoán sự lặp lại của chuỗi đầu ra.

4. Bộ tạo bit ngẫu nhiên sẽ không làm rò rỉ thông tin bí mật (ví dụ: trạng thái bên trong của một bộ tạo bit ngẫu nhiên) thông qua đầu ra của nó.

5. Bộ tạo bit ngẫu nhiên sẽ không làm rò rỉ thông tin bí mật cho kẻ tấn công.

CHÚ THÍCH 1 Tấn công thời gian là một ví dụ cho việc không thỏa mãn yêu cầu 5.

6. Bộ tạo bit ngẫu nhiên sẽ không tạo ra các bit nếu bộ tạo không được đánh giá là có độ bất định đầy đủ. Tiêu chuẩn về tính đầy đủ của độ bất định quan trọng hơn các yêu cầu của tiêu chuẩn này và yêu cầu của ứng dụng.

7. Khi phát hiện có lỗi, bộ tạo bit ngẫu nhiên phải (a) chuyển sang trạng thái lỗi vĩnh viễn hoặc (b) có thể khôi phục từ một độ bất định tổn thất hoặc thỏa hiệp nếu trạng thái lỗi vĩnh viễn không được chấp nhận trong các yêu cầu của ứng dụng. Các yêu cầu này được thỏa mãn trong thiết kế của bộ tạo.

CHÚ THÍCH 2 Xem mục 8.8 và 9.8 để có thông tin khi bị lỗi và các phép kiểm thử của bộ tạo bit ngẫu nhiên tất định và bất định.

8. Thiết kế và thực thi một bộ tạo bit ngẫu nhiên phải có một ranh giới bảo vệ xác định. Ranh giới bảo vệ được quy định trong TCVN 11295 (ISO/IEC 19790) (xem phụ lục I).

9. Xác suất để bộ tạo bit ngẫu nhiên có đầu ra không đáp ứng yêu cầu (ví dụ: đầu ra cố định hoặc có chu kỳ nhỏ tức là lặp lại cùng một đầu ra) phải đủ nhỏ. Điều đó có nghĩa là xác suất xảy ra lỗi phải phù hợp với yêu cầu tổng thể về hoạt động chính xác của bộ tạo bit ngẫu nhiên, tuy nhiên không đồng nhất với yêu cầu về độ an toàn mật mã.

10. Thiết kế của bộ tạo bit ngẫu nhiên phải bao gồm các phương pháp để ngăn chặn ảnh hưởng, thao tác có thể dự đoán được hoặc dự đoán đầu ra của bộ tạo bằng cách quan sát các đặc tính vật lý của nó (ví dụ: mức tiêu hao năng lượng, thời gian hoặc sự phát xạ).

11. Quá trình thực thi phải được thiết kế cho phép xác nhận tính hợp lệ, bao gồm những khẳng định thiết kế cụ thể về việc bộ tạo không thực hiện. Việc kiểm tra tính hợp lệ của một bộ tạo bit bất định có nghĩa là xem xét bộ tạo có hoạt động như mong đợi hay không, không chỉ trong điều kiện hoạt động bình thường mà còn ở các ranh giới của điều kiện hoạt động dự kiến. Các đoạn mã liên quan đến an toàn trong mã nguồn giúp điều chỉnh hành vi trong điều kiện đặc biệt (ví dụ: khởi tạo, kiểm thử không đạt,...) phải được xác nhận bằng cách thử tất cả các điều kiện lỗi xảy ra trong quá trình kiểm tra.

12. Phải có căn cứ thiết kế (lý thuyết, thực nghiệm hoặc cả hai) để hỗ trợ tất cả các yêu cầu an toàn cho bộ tạo bit ngẫu nhiên bao gồm việc bảo vệ trước các hành vi sai.

5.3  Yêu cầu tùy chọn đối với bộ tạo bit ngẫu nhiên

Các yêu cầu tùy chọn cho một bộ tạo bit ngẫu nhiên như sau:

1. Nếu bộ tạo bit ngẫu nhiên có khả năng hoạt động ở nhiều chế độ, thì nó phải trả về thông tin của chế độ đang hoạt động theo yêu cầu.

2. Ứng dụng có thể yêu cầu bộ tạo bit ngẫu nhiên chạy ở chế độ kiểm thử, ví dụ: khi sử dụng giá trị mầm không bí mật, do đó có khả năng tái tạo lại các bit mà nó sinh ra. Khi một bộ tạo bit ngẫu nhiên chạy ở chế độ kiểm thử, nó không được sử dụng để tạo ra các bit bí mật. Khi sử dụng một giá trị mầm bí mật, bộ tạo sẽ không hoạt động ở chế độ kiểm thử.

3. Được coi như một hộp trắng, bộ tạo bit ngẫu nhiên phải đảm bảo tính an toàn về phía sau. Nếu thuộc tính này được hỗ trợ thì nghĩa là cho trước tất cả các thông tin có thể tiếp cận được về bộ tạo bit ngẫu nhiên (bao gồm một số tập hợp các giá trị đầu vào, thuật toán và đầu ra), không thể tính toán hoặc dự đoán (tính theo độ an toàn quy định) bất kỳ bit đầu ra nào trước đó.

4. Được coi như một hộp trắng, bộ tạo bit ngẫu nhiên phải đảm bảo tính an toàn về phía trước. Nếu hỗ trợ, thì nghĩa là cho trước tất cả các thông tin có thể tiếp cận được về bộ tạo bit ngẫu nhiên (bao gồm một số tập hợp các giá trị đầu vào, thuật toán và đầu ra), không thể tính toán hoặc dự đoán (tính theo độ an toàn quy định) bất kỳ bit đầu ra sắp tới nào tính từ thời điểm yêu cầu tính an toàn về phía trước.

6  Mô hình bộ tạo bit ngẫu nhiên

6.1  Mô hình chức năng, khái niệm để tạo bit ngẫu nhiên

Hình 1 mô tả mô hình chức năng, khái niệm cho quá trình tạo bit ngẫu nhiên. Mô hình này và các yêu cầu liên quan cũng như mục tiêu mà bộ tạo bit ngẫu nhiên phải đạt được không có ràng buộc hay bắt buộc thực hiện cho dù là bộ tạo ngẫu nhiên bất định hay tất định. Vì không phải tất cả các khía cạnh quan trọng của việc tạo bit ngẫu nhiên có thể xác định theo thuật toán, do đó quan điểm chức năng của việc tạo bit ngẫu nhiên là trung tâm của định nghĩa về các bộ tạo bit ngẫu nhiên trong tiêu chuẩn này.

Mô hình chức năng bao gồm mọi thứ cần thiết để tạo các bit ngẫu nhiên. Cách tiếp cận toàn diện này là cần thiết để đảm bảo rằng đầu ra của bộ tạo bit ngẫu nhiên là ngẫu nhiên như mong muốn.

Khi một bộ tạo bit ngẫu nhiên hoặc một thành phần của hệ thống không hết hợp trực tiếp tất cả các thành phần chức năng hoặc giải quyết tất cả các yêu cầu chức năng được quy định ở đây, thì bộ tạo bit ngẫu nhiên đó có thể vẫn phù hợp với tiêu chuẩn này nếu thành phần của nó được sử dụng trong một hệ thống cung cấp các yếu tố còn thiếu và đáp ứng các yêu cầu còn lại. Một bộ tạo bit ngẫu nhiên như vậy sẽ có các yêu cầu chức năng bổ sung. Những yêu cầu đó trở thành một điều kiện tiên quyết cho việc sử dụng bộ tạo bit ngẫu nhiên.

CHÚ THÍCH Có những bộ tạo bit ngẫu nhiên không kết hợp tất cả các thành phần chức năng như được mô tả trong hình 1. Ví dụ: Các bộ tạo bit ngẫu nhiên bất định vật lý không nhất thiết cần thêm đầu vào bổ sung.

6.2  Các thành phần cơ bản của bộ tạo bit ngẫu nhiên

6.2.1  Giới thiệu về các thành phần cơ bản của bộ tạo bit ngẫu nhiên

Mô hình được mô tả trong hình 1 có 6 thành phần cơ bản, tuy nhiên đây là trường hợp đáp ứng tất cả các yêu cầu chức năng mà không cần kết hợp tất cả các thành phần cơ bản. Đó là:

a) Nguồn bất định;

b) Đầu vào bổ sung;

c) Trạng thái bên trong;

d) Hàm chuyển đổi trạng thái bên trong;

e) Hàm tạo đầu ra; và

f) Các hàm hỗ trợ.

Hình 1: Mô hình chức năng của bộ tạo bit ngẫu nhiên

6.2.2  Nguồn bất định

6.2.2.1  Giới thiệu về nguồn bất định

Nguồn bất định là nguồn các bit không thể dự đoán trước được. Các bit này có thể bị lệch và phụ thuộc vào nhau ở một mức độ nào đó; trên thực tế điều này thường xảy ra. Đối với bộ tạo bit ngẫu nhiên tất định, nguồn bất định có thể là một bộ tạo bit ngẫu nhiên bất định riêng biệt, từ xa. Tuy nhiên, đối với một bộ tạo bit ngẫu nhiên bất định, thành phần nguồn bất định là kết hợp của sự tồn tại của hoạt động tạo ra độ bất định, sự phát hiện của hoạt động này và cơ chế số hóa.

Nguồn bất định tạo ra các bit với độ bất định khác 0. Đây là thành phần duy nhất trong mô hình tạo ra độ bất định. Nguồn bất định bao gồm tất cả mọi thứ không xác định trong mô hình bộ tạo bit ngẫu nhiên, cùng với mọi yêu cầu cho nguồn tự biểu thị theo các bit (trái ngược với các tín hiệu tương tự hoặc hoạt động chưa số hóa khác). Trong một bộ tạo bit ngẫu nhiên tất định, nguồn bất định là không xác định mặc dù tính chất không thể dự đoán được của bộ tạo phụ thuộc hoàn toàn vào độ bất định của một đầu vào đặc biệt được gọi là mầm. Mô hình không giả định bất cứ điều gì về khả năng dự đoán, độ chệch hoặc tính độc lập của các bit được tạo ra bi nguồn, khác biệt so với nguồn bất định có độ bất định khác 0. Tuy nhiên, mọi thiết kế bộ tạo bit ngẫu nhiên cụ thể sẽ cần thiết lập các điều kiện xác định nhằm đảm bảo thiết kế sẽ hoạt động.

Mô hình cho phép nguồn bất định bị phá hủy theo những cách khác nhau. Một cách đó là phá hủy đệ quy. Đặc biệt, nguồn bất định cho một bộ tạo bit ngẫu nhiên có thể là một bộ tạo bit ngẫu nhiên (bên ngoài) riêng biệt khác. Thật vậy, bộ tạo bit ngẫu nhiên ngoài có thể sử dụng một bộ tạo bit ngẫu nhiên khác như một nguồn bất định. Không có giới hạn nào cho việc xây dựng đệ quy, tuy nhiên quá trình đệ quy như vậy phải kết thúc bằng một nguồn bất định (không xác định) thật sự, nếu không toàn bộ cấu trúc bị hủy bỏ. Ngoài ra, việc xây dựng phải đảm bảo độ bất định của hệ thống đầy đủ để hỗ trợ các tiêu chí đầu vào cho từng bộ tạo bit ngẫu nhiên riêng biệt.

6.2.2.2  Các yêu cầu đối với nguồn bất định

Các yêu cầu đối với nguồn bất định của một bộ tạo bit ngẫu nhiên như sau:

1. Nguồn bất định phải dựa vào các nguyên tắc được thiết lập tốt hoặc các hành vi đặc trưng phổ biến.

2. Tỷ lệ độ bất định phải được đánh giá hoặc phải tự điều chỉnh quá trình thu thập sao cho lượng độ bất định trên một đơn vị hoặc sự kiện thu thập phải đạt được hoặc vượt quá giới hạn dưới được thiết kế.

3. Nguồn bất định phải được thiết kế sao cho bất cứ thao tác nào (như khả năng kiểm soát nguồn bất định), ảnh hưởng (như khả năng tạo độ chệch cho nguồn bất định) hoặc quá trình quan sát bởi một số thực thể bên ngoài trái phép phải được giảm thiểu tối đa theo các yêu cầu của ứng dụng.

4. Phải phát hiện được việc mất mát hoặc suy giảm nghiêm trọng nguồn bất định.

6.2.3  Đầu vào bổ sung

6.2.3.1  Giới thiệu về đầu vào bổ sung

Đầu vào bổ sung có thể được sử dụng để cá nhân hóa đầu ra của bộ tạo bit ngẫu nhiên dựa trên các thông số như thời gian/ngày tháng, sử dụng dữ liệu và thông tin được người dùng khác cung cấp, và/hoặc dữ liệu cần thiết để kiểm soát chức năng bên trong của bộ tạo bit ngẫu nhiên. Các đầu vào này thường bao gồm các lệnh và/hoặc các tham số biến thiên theo thời gian như xung hoặc bộ đếm bên trong. Độ bất định của đầu ra phải không phụ thuộc vào bất cứ đặc tính nào của đầu vào bổ sung.

6.2.3.2  Các yêu cầu đối với đầu vào bổ sung

Hình thức và việc sử dụng đầu vào bổ sung phải không làm giảm độ bất định của bộ tạo bit ngẫu nhiên.

6.2.4  Trạng thái bên trong

6.2.4.1  Giới thiệu về trạng thái bên trong

Trạng thái bên trong chứa bộ nhớ của bộ tạo bit ngẫu nhiên. Có thể bao gồm mầm, bộ đếm, giá trị xung, đầu vào người dùng, độ an toàn của đầu ra... Trạng thái bên trong bao gồm tất cả các tham số, biến và các giá trị lưu trữ khác được phần tất định của bộ tạo bit ngẫu nhiên sử dụng hoặc hoạt động. Trạng thái bên trong thường chứa trong đặc tả về các hàm tất định; mô hình làm cho trạng thái trở nên rõ ràng để giải quyết tốt hơn vấn đề an toàn mà nó có thể ảnh hưởng.

Về mặt chức năng, trạng thái bên trong đóng hai vai trò khác nhau. Đầu tiên là để đảm bảo rằng đầu ra xuất hiện ngẫu nhiên ngay cả khi độ bất định của đầu vào không đủ để tạo ra một chuỗi với độ dài nhất định thực sự là ngẫu nhiên. Vì hàm chuyển đổi trạng thái bên trong và hàm tạo đầu ra là các hàm tất định và do các hàm tất định có tính chất là cho cùng một giá trị đầu ra với cùng một giá trị đầu vào, nên cần phải có một biến trạng thái được xây dựng để thay đổi từng khối đầu ra của bộ tạo bit ngẫu nhiên. Mục đích của biến này là đảm bảo rằng đầu ra xuất hiện ngẫu nhiên ngay cả khi không có hoặc có ít độ bất định thực sự được thêm vào hệ thống.

Điều này đặc biệt phù hợp với một bộ tạo bit ngẫu nhiên tất định. Đối với bộ tạo bit ngẫu nhiên tất định, nếu mầm hoặc tham số bí mật không được cập nhật bởi một thiết bị bên ngoài, thì có thể tạo ra một chuỗi lặp lại của trạng thái bên trong. Vì vậy, mầm (hoặc tham số bí mật) phải được cập nhất định kỳ hoặc thiết bị phải không hoạt động được sau một khoảng thời gian xác định trước.

Phần trạng thái bên trong hỗ trợ chức năng này được gọi là trạng thái làm việc. Phải đảm bảo rằng giá trị của trạng thái làm việc không bị ảnh hưng bởi bất kỳ sự kiện bên ngoài nào (ví dụ: bằng cách khởi động lại bộ tạo bit ngẫu nhiên).

Vai trò thứ hai của trạng thái bên trong là tham số hóa các hàm chuyển đổi trạng thái bên trong tất định và/hoặc hàm tạo đầu ra mà không biết đến tham số này, hàm tất định thể hiện các thuộc tính cần thiết của nó. Ví dụ, nó có thể tham số hóa hàm tạo đầu ra theo cách không thể suy ra trạng thái bên trong từ đầu ra khi không biết tham số bí mật. Tham số bí mật (đôi khi được gọi là khóa của bộ tạo bit ngẫu nhiên) thường là một hoặc nhiều khóa mật mã và được tạo ra một cách ngẫu nhiên. Khi tồn tại một tham số bí mật như vậy, nó sẽ có thời hạn an toàn được xác định rõ ràng bao gồm các quy định về việc tạo, phân phối, cập nhật và hủy.

CHÚ THÍCH 1 Tham số bí mật không bắt buộc cho tất cả các bộ tạo bit ngẫu nhiên.

CHÚ THÍCH 2 Vấn đề quản lý khóa được quy định trong ISO/IEC 11770-1 [6].

6.2.4.2  Các yêu cầu đối với trạng thái bên trong

Các yêu cầu đối với trạng thái bên trong của một bộ tạo bit ngẫu nhiên như sau:

1. Trạng thái bên trong phải được bảo vệ phù hợp với việc sử dụng và độ nhạy của đầu ra.

2. Trạng thái bên trong phải duy trì chức năng một cách hợp lý khi có sự cố về nguồn điện, khởi động lại... hoặc quay về một điều kiện an toàn trước khi tạo ra đầu ra (nghĩa là phải đảm bảo tính toàn vẹn của trạng thái bên trong hoặc phải khởi tạo lại trạng thái bên trong).

3. Các thành phần trạng thái tích lũy hoặc mang độ bất định cho bộ tạo bit ngẫu nhiên phải có ít nhất x bit độ bất định trong đó x là độ dài tính bằng bit của độ an toàn mong muốn. Thành phần trạng thái phải tích lũy nhiều hơn số bit tối thiểu của độ bất định nhằm đảm bảo và giảm nguy cơ sử dụng các giá trị giống hệt nhau trong hai hệ mật khác nhau. Vì vậy, nên giữ trạng thái bên trong lớn hơn x, ví dụ: x + 64 thường cung cấp một giá trị biên đ lớn, trong khi nếu kẻ tấn công có thể tính toán trước và có lượng bộ nhớ rất lớn, thì phải sử dụng kích cỡ 2x (xem ví dụ [10]).

4. Phần bí mật của trạng thái bên trong phải có một thời hạn xác định cụ thể sau khi bộ tạo bit ngẫu nhiên ngừng hoạt động hoặc được nâng cấp lại với độ bất định bổ sung đầy đủ. Các hoạt động sử dụng giá trị mầm cũ phải chấm dứt sau khi hết thời hạn quy định. Xem ISO/IEC 11770-1 để biết thêm thông tin chi tiết về vòng đời của khóa.

5. Không được sử dụng lại trạng thái bên trong, trừ trường hợp vô tình. Vì cùng một giá trị mầm giống nhau sẽ không là đầu vào cho một trường hợp khác của bộ tạo bit ngẫu nhiên tất định.

6.2.4.3  Yêu cầu tùy chọn đối với trạng thái bên trong

Trạng thái bên trong được sử dụng để tạo ra dữ liệu công khai (ví dụ: giá trị nonce và giá trị khởi tạo) phải hoàn toàn độc lập với trạng thái được sử dụng để tạo ra dữ liệu bí mật như khóa mật mã.

6.2.5  Hàm chuyển đổi trạng thái bên trong

6.2.5.1  Giới thiệu về hàm chuyển đổi trạng thái bên trong

Hàm chuyển đổi trạng thái bên trong làm thay đổi trạng thái bên trong của bộ tạo bit ngẫu nhiên. Trong một bộ tạo bit ngẫu nhiên tất định, hàm chuyển đổi trạng thái bên trong bao gồm một hoặc nhiều thuật toán mật mã, chính là một phần của bộ tạo. Hàm chuyển đổi trạng thái bên trong bao gồm mọi thứ trong bộ tạo bit ngẫu nhiên có thể thiết lập hoặc thay đổi trạng thái bên trong. Theo quy ước, nguồn bất định hoặc bất kỳ đầu vào dữ liệu của bộ tạo bit ngẫu nhiên không được hoạt động trực tiếp trên trạng thái bên trong. Thay vào đó, nguồn bất định và các đầu vào dữ liệu khác của bộ tạo bit ngẫu nhiên là đối số cho các hàm hoạt động trên trạng thái bên trong.

Vì trạng thái bên trong có thể bao gồm một số thành phần riêng biệt, các hàm chuyển đổi trạng thái bên trong có thể bao gồm nhiều tập hàm khác nhau, phân biệt bởi thành phần trạng thái mà chúng tác động. Các hàm trong tập đó có thể đơn giản như hàm định danh hoặc phức tạp như một hàm mật mã. Đối với một thanh ghi xung hoặc thanh ghi bộ đếm, hàm sắp xếp thanh ghi như một xung hoặc bộ đếm là một thành phần của hàm chuyển đổi trạng thái bên trong. Vì đầu ra của các hàm này luôn điều khiển một thành phần của trạng thái bên trong, nên đầu vào có thể là nguồn bất định, một đầu vào bộ tạo bit ngẫu nhiên bên ngoài khác, các thành phần khác nhau của trạng thái bên trong hoặc bất kỳ sự kết hợp nào.

Hàm chuyển đổi trạng thái bên trong cũng phải cho phép thao tác an toàn (ví dụ: cập nhật) đối với tham số bí mật. Việc kết nối tới các hàm này phải được kiểm soát chặt chẽ.

Trong một bộ tạo bit ngẫu nhiên tất định, hàm chuyển đổi trạng thái bên trong có chức năng an toàn nhiều hơn cho bộ tạo, bao gồm cả lượng đầu ra mà bộ tạo bit ngẫu nhiên có thể tạo ra với một đầu vào nguồn bất định cho trước.

Trong một bộ tạo bit ngẫu nhiên bất định, hàm chuyển đổi trạng thái bên trong xác định cách thức quá trình thu thập độ bất định ảnh hưởng đến trạng thái bên trong của bộ tạo bit ngẫu nhiên và có thể hoạt động theo nhiều cách: các hàm này có thể là các thuật toán đơn giản, phi trạng thái hoặc có thể kết hợp các trạng thái trước đó với độ bất định mới thu thập được để tích lũy độ bất định.

6.2.5.2  Các yêu cầu đối với hàm chuyển đổi trạng thái bên trong

Các yêu cầu đối với hàm chuyển đổi trạng thái bên trong của một bộ tạo bit ngẫu nhiên như sau:

1. Hàm chuyển đổi trạng thái bên trong phải được kiểm tra qua kiểm thử đã biết câu trả lời.

2. Hàm chuyển đổi trạng thái bên trong phải phụ thuộc hoàn toàn vào độ bất định do trạng thái bên trong mang đến.

3. Hàm chuyển đổi trạng thái bên trong phải chống lại quan sát và phân tích thông qua việc tiêu thụ điện năng, thời gian, bức xạ hoặc các kênh kề phù hợp khác.

4. Không thể (cố ý hoặc vô ý) làm cho hàm chuyển đổi trạng thái bên trong quay về trạng thái trước đó khi đang hoạt động bình thường (không bao gồm kiểm thử và xác minh có ủy quyền đầu ra của bộ tạo bit ngẫu nhiên).

6.2.5.3  Yêu cầu tùy chọn đối với hàm chuyển đổi trạng thái bên trong

Hàm chuyển đổi trạng thái bên trong có thể cho phép bộ tạo bit ngẫu nhiên khôi phục lại từ sự thỏa hiệp về trạng thái bên trong (tức là cung cấp tính an toàn về phía trước) thông qua sự kết hợp độ bất định định kỳ.

6.2.6  Hàm tạo đầu ra

6.2.6.1  Giới thiệu về hàm tạo đầu ra

Hàm tạo đầu ra (Output Generation Function - OGF) hoạt động trên trạng thái bên trong để tạo ra các bit đầu ra theo yêu cầu của ứng dụng. Một yêu cầu gửi đến OGF chứa (ít nhất) số bit đầu ra yêu cầu và độ an toàn tối thiểu cần thiết cho các bit đó. Yêu cầu như vậy có thể làm cho trạng thái bên trong được cập nhật bởi hàm chuyển đổi trạng thái bên trong. OGF chấp nhận thành phần trạng thái làm việc của trạng thái bên trong như là đầu vào và tạo ra đầu ra của bộ tạo bit ngẫu nhiên. Nó có thể đơn giản như hàm định danh hoặc phức tạp như một hàm mật mã. OGF có thể định dạng hoặc chặn đầu ra để phù hợp với quy ước về giao diện bên ngoài. Thông thường, OGF là hàm một chiều, do đó rt khó để tìm ra hàm ngược của OGF nhằm khôi phục một phần của trạng thái bên trong.

OGF là tất định và luôn luôn tạo ra cùng một đầu ra cho bất kỳ giá trị cụ thể nào của trạng thái bên trong. Vì vậy, mối quan hệ giữa OGF và hàm chuyển đổi trạng thái bên trong vô cùng quan trọng. Hàm chuyển đổi trạng thái bên trong phải được gọi ít nhất một lần để cập nhật trạng thái làm việc giữa các hoạt động liên tiếp của hàm tạo đầu ra.

6.2.6.2  Các yêu cầu đối với hàm tạo đầu ra

Các yêu cầu đối với hàm tạo đầu ra của một bộ tạo bit ngẫu nhiên như sau:

1. Hàm tạo đầu ra là tất định (với mọi đầu vào cho trước) và phải được kiểm tra bằng kiểm thử đã biết câu trả lời. Kết quả của việc kiểm thử đã biết câu trả lời được tách ra từ đầu ra hoạt động.

2. Hàm tạo đầu ra phải sử dụng thông tin từ trạng thái bên trong chứa độ bất định đủ lớn theo độ an toàn được yêu cầu.

3. Đầu ra sẽ bị chặn lại cho đến khi trạng thái bên trong nhận được độ bất định được đánh giá là phù hợp.

4. Khi một trạng thái bên trong cụ thể được sử dụng làm đầu ra, thì trạng thái bên trong phải được thay đổi để tạo ra nhiều đầu ra hơn.

5. Hàm tạo đầu ra phải chống lại quan sát và phân tích thông qua việc tiêu thụ điện năng, thời gian, bức xạ hoặc các kênh kề phù hợp khác.

6.2.6.3  Yêu cầu tùy chọn đối với hàm tạo đầu ra

Hàm tạo đầu ra phải bảo vệ trạng thái bên trong, do đó việc phân tích đầu ra của bộ tạo bit ngẫu nhiên không tiết lộ thông tin hữu ích gì về trạng thái bên trong.

6.2.7  Hàm hỗ trợ

6.2.7.1  Giới thiệu về hàm hỗ trợ

Các hàm hỗ trợ liên quan đến việc đánh giá chất lượng của bộ tạo bit ngẫu nhiên: không thay đổi trạng thái bên trong. Hàm hỗ trợ bao gồm các hàm đánh giá độ bất định của đầu vào, hàm đánh giá chất lượng thống kê của đầu ra và hàm kiểm tra xem các hàm bên trong có bị xâm nhập hay không.

Hàm bên trong (tức là “chất lượng” của phần tất định trong bộ tạo bit ngẫu nhiên) có thể được kiểm tra hiệu quả nhất bằng kiểm thử đã biết câu trả lời. “Chất lượng” của nguồn bất định và chất lượng đầu ra cần phải được kiểm tra bằng các kỹ thuật hoặc kiểm thử thống kê.

Thông tin cụ thể về việc đánh giá chất lượng của bộ tạo bit ngẫu nhiên tất định và bất định có trong mục 8 và 9.

6.2.7.2  Các yêu cầu đối với hàm hỗ trợ

Các yêu cầu đối với hàm hỗ trợ của một bộ tạo bit ngẫu nhiên như sau:

1. Bộ tạo bit ngẫu nhiên phải được thiết kế để cho phép kiểm thử nhằm đảm bảo rằng bộ tạo hoạt động chính xác.

2. Khi một bộ tạo bit ngẫu nhiên kiểm thử thất bại, bộ tạo bit ngẫu nhiên phải chuyển sang trạng thái lỗi và đưa ra cảnh báo lỗi. Bộ tạo bit ngẫu nhiên không được thực hiện bất cứ hoạt động nào khi đang trong trạng thái lỗi.

7  Phân loại bộ tạo bit ngẫu nhiên

7.1  Giới thiệu về các loại bộ tạo bit ngẫu nhiên

Mỗi bộ tạo bit ngẫu nhiên sẽ có một nguồn bất định chính. Bộ tạo bit ngẫu nhiên được chia thành hai loại cơ bản phụ thuộc vào tính chất của nguồn bất định chính. Nguồn bất định là nguồn bất định không xác định hoặc nguồn bất định xác định.

Nếu nguồn bất định là một hệ thống có thể trích xuất một lượng độ bất định bất kỳ bằng cách lấy mẫu, với điều kiện là hệ thống này hoạt động trong một khoảng thời gian đủ dài, thì nó được coi là một nguồn bất định không xác định. Cụ thể là không có thuật toán tất định nào có thể dự đoán đầu ra của một nguồn bất định không xác định.

Nếu nguồn bất định là một giá trị mầm, thì được gọi là nguồn bất định xác định. Giá trị mầm (xem 9.3) có thể được cung cấp cho bộ tạo bit ngẫu nhiên từ hệ thống bên ngoài hoặc từ bên trong bộ tạo bit ngẫu nhiên. Nếu giá trị mầm được cung cấp từ ngoài bộ tạo bit ngẫu nhiên, giả thiết rằng bộ tạo có độ bất định đầy đủ và được rút ra từ một tập cụ thể. Mặc khác, nếu giá trị mầm được cung cấp từ bên trong bộ tạo bit ngẫu nhiên, nó được đánh giá là có đủ độ bất định và được rút ra từ một tập cụ thể.

Phải đảm bảo rằng kẻ tấn công không thể kiểm soát hoàn toàn giá trị mầm nhằm làm suy giảm độ bất định của đầu ra bộ tạo bit ngẫu nhiên.

Một bộ tạo bit ngẫu nhiên được gọi là bộ tạo bit ngẫu nhiên bất định nếu nguồn bất định chính là không xác định. Một bộ tạo bit ngẫu nhiên được gọi là bộ tạo bit ngẫu nhiên tất định nếu nguồn bất định chính là xác định. Bộ tạo bit ngẫu nhiên cũng có thể sử dụng nguồn bất định bổ sung có thể là tất định hoặc bất định.

7.2  Bộ tạo bit ngẫu nhiên bất định

Bộ tạo bit ngẫu nhiên bất định có thể được phân loại dựa vào tính chất của nguồn bất định không xác định. Một nguồn bất định không xác định là nguồn vật lý hoặc phi vật lý.

Nguồn bất định không tất định vật lý là nguồn bất định mà trong đó phần cứng chuyên dụng được sử dụng để đo các đặc tính vật lý của một số sự kiện trong thế giới thực. Các thiết bị như vậy tiếp tục cung cấp đầu ra tạo nguồn điện cho thiết bị đo. Ví dụ về nguồn bất định không xác định vật lý bao gồm đo thời gian giữa những lần phân rã phóng xạ của một nguyên tử không ổn định, đo các đặc tính tiếng ồn của đi-t “nhiễu” hoặc không ổn định. Xem mục 8.3.2 để biết thêm thông tin chi tiết về các yêu cầu đối với nguồn bất định vật lý.

Một nguồn bất định không xác định phi vật lý là nguồn bất định không xác định bất kỳ không phải là một nguồn bất định không xác định vật lý. Ví dụ về nguồn bất định không xác định phi vật lý bao gồm đo thời gian giữa các lần ấn bàn phím hoặc lấy mẫu dữ liệu trong các phần bộ nhớ RAM sử dụng thường xuyên. Xem mục 8.3.3 để biết thêm thông tin chi tiết về các yêu cầu đối với nguồn bất định phi vật lý.

Bộ tạo bit ngẫu nhiên tất định vật lý là một bộ tạo bit ngẫu nhiên có nguồn bất định không xác định vật lý. Bộ tạo bit ngẫu nhiên bất định phi vật lý là một bộ tạo bit ngẫu nhiên có nguồn bất định không xác định phi vật lý.

Một bộ tạo bit ngẫu nhiên bất định (vật lý hoặc phi vật lý) được gọi là “thuần túy” nếu tất cả các nguồn bất định của nó là không xác định.

Một bộ tạo bit ngẫu nhiên bất định lai ghép phải thỏa mãn tất cả các tiêu chuẩn an toàn áp dụng cho các bộ tạo bit ngẫu nhiên bất định thuần túy và cũng phải thỏa mãn các yêu cầu an toàn bổ sung (xem 8.3.5) thường áp dụng cho các bộ tạo bit ngẫu nhiên tất định.

Ưu điểm của việc sử dụng một giá trị mầm làm nguồn bất định bổ sung cho bộ tạo bit ngẫu nhiên bất định là cho phép người dùng tham số hóa đầu ra của bộ tạo bit ngẫu nhiên bất định. Do đó, đầu ra của bộ tạo bit ngẫu nhiên bất định có thể được cá nhân hóa và thậm chí có thể cho phép những người dùng khác nhau cùng sử dụng chung một nguồn bất định không xác định mà không ảnh hưởng đến an toàn của hệ thống. Ngay cả khi không có nhiều người dùng cùng sử dụng chung một nguồn bất định, thì giá trị mầm bí mật được coi là một tính năng an toàn bổ sung.

CHÚ THÍCH 1 Thông tin thêm về việc phân loại các bộ tạo bit ngẫu nhiên có trong [5].

CHÚ THÍCH 2 Ví dụ: một giá trị mầm bí mật có thể là một chức năng an toàn điển hình của bộ tạo bit ngẫu nhiên tất định. Nếu bộ tạo bit ngẫu nhiên bất định đáp ứng các yêu cầu của tiêu chuẩn ngay cả với một hàm chuyển đổi trạng thái đơn giản và hàm đầu ra đơn giản (xem mục 8.2 và E.1). Hàm chuyển đổi trạng thái mật mã hoặc hàm đầu ra mặt mã có thể là một chức năng an toàn điển hình của bộ tạo bit ngẫu nhiên tất định.

7.3  Bộ tạo bit ngẫu nhiên tất định

Bộ tạo bit ngẫu nhiên tất định cũng được chia làm hai loại là thuần túy và lai ghép. Một bộ tạo bit ngẫu nhiên tất định được gọi là “thuần túy” nếu tất cả các nguồn bất định của nó là giá trị mầm và là “lai ghép” nếu nó sử dụng một nguồn bất định không xác định là nguồn bất định bổ sung.

Một bộ tạo bit ngẫu nhiên tất định lai ghép phải thỏa mãn tất cả các điều kiện an toàn áp dụng cho các bộ tạo bit ngẫu nhiên tất định thuần túy và cũng phải thỏa mãn các yêu cầu an toàn bổ sung nhất định (xem 9.3.4).

CHÚ THÍCH 1 Độ an toàn của một bộ tạo bit ngẫu nhiên bất định lai ghép dựa trên thành phần không xác định còn độ an toàn của các bộ tạo bit ngẫu nhiên tất định lai ghép (xem 9.3.4) về cơ bản dựa trên các thành phần xác định. Nếu một bộ tạo bit ngẫu nhiên được xem vừa là bộ tạo bit ngẫu nhiên bất định lai ghép vừa là bộ tạo bit ngẫu nhiên tất định lai ghép, thì ký hiệu nó là “bộ tạo bit ngẫu nhiên lai ghép”. Rõ ràng, các bộ tạo bit ngẫu nhiên lai ghép có hai quan điểm về an toàn.

Ưu điểm của việc sử dụng một nguồn bất định không xác định làm nguồn bất định bổ sung là cho phép đầu ra không xác định và giúp ngăn chặn việc phân tích mã và/hoặc thêm các tính năng an toàn như tính an toàn về phía trước hoặc phía sau.

CHÚ THÍCH 2 Thông tin thêm về việc phân loại các bộ tạo bit ngẫu nhiên tất định có trong [4].

7.4  Phân loại bộ tạo bit ngẫu nhiên

Việc phân loại bộ tạo bit ngẫu nhiên bất định và bộ tạo bit ngẫu nhiên tất định được mô tả trong hình 2.

Sự phân biệt giữa một bộ tạo bit ngẫu nhiên bất định và một bộ tạo bit ngẫu nhiên tất định là sự phân loại của một loạt lựa chọn thiết kế. Ở một đầu là một bộ tạo bit ngẫu nhiên tất định được thiết kế để sử dụng một giá trị mầm cho toàn bộ vòng đời của nó. Ở đầu kia là một bộ tạo bit ngẫu nhiên bất định đơn giản được thiết kế với đầu ra của một nguồn bất định không xác định, mạnh và ngẫu nhiên. Các thiết kế bộ tạo bit ngẫu nhiên trung gian cho phép thay mầm mới định kỳ cho bộ tạo bit ngẫu nhiên tất định hoặc đưa các nguồn bất định không xác định vào bộ tạo bit ngẫu nhiên tất định. Các thiết kế bộ tạo bit ngẫu nhiên trung gian cho phép các bộ tạo bit ngẫu nhiên bất định có đầu ra cũng phụ thuộc vào giá trị mầm hoặc các bộ tạo bit ngẫu nhiên bất định xử lý đầu ra của nguồn bất định một cách phức tạp tương tự như cách một bộ tạo bit ngẫu nhiên tất định xử lý giá trị mầm. Lựa chọn đúng đắn cho một bộ tạo bit ngẫu nhiên là sự đánh đổi giữa chi phí và lợi ích tùy thuộc vào yêu cầu của ứng dụng.

Hình 2: Phân loại bộ tạo bit ngẫu nhiên

8  Giới thiệu và yêu cầu đối với bộ tạo bit ngẫu nhiên bất định

8.1  Giới thiệu về bộ tạo bit ngẫu nhiên bất định

Trong phần lớn các ứng dụng, bộ tạo bit ngẫu nhiên tất định sẽ được chọn sử dụng để tạo ra bit ngẫu nhiên. Do đó, việc sử dụng một bộ tạo bit ngẫu nhiên bất định đáp ứng tiêu chuẩn này sẽ tạo ra các giá trị mầm khởi tạo ngẫu nhiên cho một bộ tạo bit ngẫu nhiên tất định. Tuy nhiên, tiêu chuẩn này không loại trừ việc sử dụng một bộ tạo bit ngẫu nhiên bất định để tạo ra tất cả các bit ngẫu nhiên cần thiết của ứng dụng.

Theo mục tiêu của tiêu chuẩn này, một bộ tạo bit ngẫu nhiên bất định phải đáp ứng các yêu cầu quy định trong mục 5 và 6. Tuy nhiên, các mục tiêu và yêu cầu duy nhất của bộ tạo bit ngẫu nhiên bất định vượt quá các điểm quy định tại mục 5 và 6 được áp dụng cho các thiết kế của bộ tạo bit ngẫu nhiên bất định, được trình bày cụ thể từ mục 8.3 đến 8.9. Các ví dụ về bộ tạo bit ngẫu nhiên bất định có trong phụ lục E.

8.2  Mô hình chức năng của bộ tạo bit ngẫu nhiên bất định

Mục này sẽ giới thiệu đặc tả về các thành phần và mô hình chung cho một bộ tạo bit ngẫu nhiên bất định. Nó sẽ mô tả hoạt động chung của một bộ tạo bit ngẫu nhiên bất định, bao gồm các mục tiêu của mỗi thành phần chức năng của bộ tạo bit ngẫu nhiên bất định cần đạt được.

Hình 3 minh họa sơ đồ khối chức năng mô tả một bộ tạo bit ngẫu nhiên bất định khái niệm đáp ứng tiêu chuẩn này. Trong sơ đồ này, các đường nét đứt chỉ ra thành phần là tùy chọn phụ thuộc vào các yếu tố khác nhau, cần lưu ý rằng các thành phần hiển thị không nhất thiết phải được thực thi như là thành phần vật lý thực tế, nhưng phải thực thi chức năng của nó.

Mỗi thành phần cũng như mục tiêu và yêu cầu của thành phần đó giúp ngăn chặn những điểm yếu an toàn liên quan đến quá trình tạo bit ngẫu nhiên trong các ứng dụng và môi trường mật mã. Nhìn chung, mỗi thành phần sau đây sẽ được yêu cầu trong một bộ tạo bit ngẫu nhiên bất định. Trong một số ứng dụng, có thể lập luận rằng không có yêu cầu nào được áp dụng đối với một thành phần nhất định. Nếu điều này được chứng minh và được ghi nhận, thì thành phần đó có thể loại bỏ khỏi bộ tạo bit ngẫu nhiên bất định, vì thành phần đó không có trong ứng dụng hoặc vì mục tiêu của thành phần đó đã được đáp ứng hoặc được giải quyết bằng các thành phần khác.

Sau đây là tổng quan về cách thức mà các thành phần này tương tác để tạo ra đầu ra ngẫu nhiên. Nguồn bất định không xác định hoạt động theo xác suất thường không tạo ra đầu ra ngẫu nhiên chấp nhận được.

Một hàm chuyển đổi trạng thái bên trong dựa trên một hoặc nhiều hàm mật mã tất định kết hợp một số lượng nhất định dữ liệu nguồn bất định với dữ liệu trạng thái làm việc để tạo ra một trạng thái làm việc mới. Hàm chuyển đổi trạng thái bên trong hoàn thành quá trình này bằng cách liên kết với mỗi kết hợp có thể của chuỗi đầu vào và trạng thái làm việc hiện tại để tạo ra một giá trị của trạng thái làm việc tiếp theo được xác định bằng giá trị hiện tại của tham số bí mật. Nếu độ dài của dữ liệu đầu vào nguồn bất định được sử dụng cho mỗi lần chuyển đổi trạng thái bên trong là n bit và kích thước của trạng thái làm việc là m bit, thì hàm chuyển đổi trạng thái bên trong là một hàm ánh xạ từ không gian của các chuỗi (n + m) bit sang không gian của các chuỗi m bit. Kích thước tham số sử dụng trong một bộ tạo bit ngẫu nhiên bất định sẽ làm cho số lượng đầu vào có thể của hàm này lớn hơn số lượng đầu ra có thể của hàm. Điều này dẫn đến một số lượng lớn các kết hợp của chuỗi đầu vào và trạng thái làm việc hiện tại được gán cho bất kỳ đầu ra cụ thể nào đối với trạng thái làm việc mới. Ngoài ra, vì các hàm mật mã dựa trên các hàm chuyển đổi trạng thái bên trong điển hình đã được phân tích mật mã kỹ lưỡng, nên có thể giả định rằng hàm chuyển đổi trạng thái bên trong sẽ ánh xạ không gian đầu vào đến không gian đầu ra một cách đồng nhất (tức là mỗi đầu ra có cùng số lượng tiền ảnh giống nhau). Những giả định này đáp ứng mục tiêu tạo ra các chuỗi nhị phân có phân bố đều trong trạng thái làm việc. Đặc điểm để phân biệt giữa bộ tạo bit ngẫu nhiên tất định và bộ tạo bit ngẫu nhiên bất định là bộ tạo bit ngẫu nhiên bất định sẽ thêm độ bất định mới vào trạng thái của nó với tốc độ lớn hơn hoặc bằng với tốc độ mà nó tạo ra độ bất định. Do đó, bất cứ khi nào ứng dụng đòi hỏi đầu ra ngẫu nhiên, bộ tạo bit ngẫu nhiên bất định đảm bảo rằng trạng thái bên trong chứa đ độ bất định chưa được sử dụng để tạo ra đầu ra ngẫu nhiên, sau đó sử dụng hàm tạo đầu ra để xử lý trạng thái làm việc hiện tại để tạo ra đầu ra ngẫu nhiên.

Hàm tạo đầu ra có trạng thái bên trong, cần phải giữ bí mật đối với kẻ tấn công và tạo ra đầu ra ngẫu nhiên. Hàm tạo đầu ra cũng thường là một hàm mật mã hoặc hàm khác có phân phối đều. Một đối số tương tự như đối với hàm chuyển đổi trạng thái bên trong dẫn đến kết luận rằng với các lựa chọn kích cỡ tham số phù hợp, hàm tạo đầu ra sẽ tạo ra đầu ra nhị phân có phân phối đều.

Đối với nhiều nguồn bất định vật lý, độ bất định của mỗi bit phải đủ lớn để các bit này có thể ứng dụng trực tiếp hoặc ứng dụng được sau một thao tác xử lý sau đơn giản (ví dụ: XOR đầu ra của nguồn bất định với trạng thái trong hiện tại). Ngoài ra, hoạt động của nguồn bất định vật lý thường có thể được mô tả bằng cách sử dụng một mô hình ngẫu nhiên (xem ví dụ [7]). Mô hình như vậy cho phép kiểm tra thống kê để phát hiện lỗi của nguồn (tức là khi nguồn tạo ra đầu ra không đủ ngẫu nhiên cho ứng dụng). Vì vậy có thể lựa chọn các hàm chuyển đổi trạng thái và hàm tạo đầu ra rất đơn giản, điều này tạo điều kiện cho việc xác định tính ngẫu nhiên của các bit đầu ra. Các tham số bí mật có thể không cần thiết trong trường hợp này.

Đối với các nguồn bất định phi vật lý, độ bất định của mỗi bit có thể thấp hơn so với các nguồn bất định vật lý và khó xác định chính xác thời điểm nguồn bất định bị lỗi. Trong những trường hợp như vật, cần phải có nhiều hoạt động xử lý sau phức tạp hơn để đảm bảo rằng đầu ra của bộ tạo bit ngẫu nhiên là hoàn toàn ngẫu nhiên và đối phó được với lỗi không xác định của nguồn bất định.

Một bộ tạo bit ngẫu nhiên bất định an toàn bao gồm các cơ chế được thiết kế để tăng khả năng hoạt động an toàn liên tục trong trường hợp lỗi hoặc thỏa hiệp. Lỗi phát hiện được giải quyết thông qua một loạt các kiểm thử chất lượng định kỳ đối với các thành phần khác nhau. Các lỗi hoặc thỏa hiệp không thể phát hiện được giải quyết theo hai cách. Thứ nhất, trạng thái bên trong của bộ tạo bit ngẫu nhiên bất định bao gồm một tham số bí mật thay đổi định kỳ dùng làm tham số cho hoạt động tất định của hàm chuyển đổi trạng thái bên trong. Do thành phần này, thông tin về phần còn lại của trạng thái nội bộ (được gọi là trạng thái làm việc) của bộ tạo bit ngẫu nhiên bất định và tất cả các đầu vào cho bộ tạo bit ngẫu nhiên bất định là không đủ để xác định đầu ra của bộ tạo bit ngẫu nhiên bất định. Cách thứ hai là xác định một biên độ an toàn trong việc duy trì độ bất định trong quá trình hoạt động của bộ tạo bit ngẫu nhiên bất định, do đó giảm độ bất định đầu vào có sẵn do các sự kiện bất thường hoặc mô hình thống kê không chính xác dẫn đến đầu ra ngẫu nhiên bị chệch. Mục tiêu của một bộ tạo bit ngẫu nhiên bất định phù hợp với tiêu chuẩn này là bộ tạo bit ngẫu nhiên bất định phải tiếp tục hoạt động an toàn như bộ tạo bit ngẫu nhiên tất định trong trường hợp nguồn bất định bị lỗi.

Yêu cầu bộ tạo bit ngẫu nhiên bất định phải tiếp tục hoạt động an toàn như bộ tạo bit ngẫu nhiên tất định trong trường hợp nguồn bất định bị lỗi có thể được bỏ qua nếu:

1. Có thể kiểm tra rằng kiểm thử chất lượng đối với nguồn bất định được thực hiện sớm để phát hiện các điểm yếu và lỗi có thể của nguồn bất định, có thể làm giảm chất lượng của các bit ngẫu nhiên vượt quá mức chấp nhận được; và

2. Các biện pháp thích hợp được thực hiện trong trường hợp đó (ví dụ: ngừng việc tạo ra các bit ngẫu nhiên).

CHÚ THÍCH Đ đáp ứng các yêu cầu này đối với nguồn bất định vật lý, có thể sử dụng phần cứng chuyên dụng. Đề xuất chung được quy định trong [13].

Tính an toàn về phía trước và phía sau là các đặc tính của một bộ tạo bit ngẫu nhiên bất định được thực thi và hoạt động tốt vì không biết đầu vào. Trên thực tế, đó là một tính năng vốn có của một bộ tạo bit ngẫu nhiên bất định vì bộ tạo bit ngẫu nhiên bất định luôn có độ bất định mới cho mỗi lần gọi. Do đó, tính an toàn về phía trước và phía sau được tự động cung cấp nếu nguồn bất định cung cấp đủ độ bất định.

Hình 3: Sơ đồ khối của một bộ tạo bit ngẫu nhiên bất định

8.3  Nguồn bất định của bộ tạo bit ngẫu nhiên bất định

8.3.1  Nguồn bất định chính của bộ tạo bit ngẫu nhiên bất định

8.3.1.1  Giới thiệu về nguồn bất định chính của bộ tạo bit ngẫu nhiên bất định

Thành phần này hoạt động như nguồn không thể dự đoán trước trong bộ tạo bit ngẫu nhiên bất định bằng cách cung cấp dữ liệu được hàm chuyển đổi trạng thái bên trong xử lý. Nguồn không thể dự đoán này khác với nguồn trong một bộ tạo bit ngẫu nhiên tất định chỉ dựa vào giá trị mầm khởi tạo chưa biết nên không thể đoán được. Trong bộ tạo bit ngẫu nhiên bất định, tính không thể đoán trước được dựa trên việc sử dụng một hoặc nhiều nguồn bất định. Những nguồn này được gọi là nguồn bất định khác xác định và được phân loại thành nguồn vật lý và phi vật lý.

Nguồn bất định vật lý là nguồn trong đó phần cứng chuyên dụng được sử dụng để đo các đặc tính vật lý của một chuỗi sự kiện trong thế giới thực. Ví dụ: nguồn bất định vật lý bao gồm đo thời gian giữa những lần phân rã của nguyên tử không ổn định và đầu ra của một đi-ốt nhiễu, nhận được mức điện áp đầu vào liên tục và phát ra mức điện áp tương tự có phân phối đều và liên tục.

Nguồn bất định phi vật lý là nguồn bất định không xác định và không phải là nguồn vật lý. Ví dụ về nguồn bất định phi vật lý là dữ liệu hệ thống hoặc nội dung RAM trong một máy tính cá nhân, tín hiệu không liên tục dựa trên sự kiện xảy ra bất thường hoặc tương tác trong một khoảng thời gian chẳng hạn như lấy mẫu bộ đếm tốc độ cao bất cứ khi nào có thao tác nhấn phím trên bàn phím.

Thông tin thêm và những yêu cầu cụ thể cho nguồn bất định vật lý và phi vật lý có trong mục 8.3.2 và 8.3.3 tương ứng.

Tùy thuộc vào nguồn bất định, đầu ra của nguồn bất định có thể không đủ để sử dụng trực tiếp cho đầu ra ngẫu nhiên vì đầu ra không ở dạng chuỗi số nhị phân hoặc bị chệch. Những hạn chế này được khắc phục trong một bộ tạo bit ngẫu nhiên bất định bằng cách xử lý đầu ra nguồn bất định với hàm chuyển đổi trạng thái bên trong để tạo ra dữ liệu đầu ra nhị phân.

Độ bất định đầu ra từ bộ tạo bit ngẫu nhiên bất định không thể lớn hơn độ bất định của đầu vào.

8.3.1.2  Yêu cầu đối với nguồn bất định chính của bộ tạo bit ngẫu nhiên bất định

Nguồn bất định chính là nền tảng của hoạt động không xác định trong bộ tạo bit ngẫu nhiên bất định. Theo định nghĩa của một bộ tạo bit ngẫu nhiên bất định, thiết kế của nó phải bao gồm thành phần này.

Yêu cầu chức năng của nguồn bất định chính như sau:

1. Mặc dù nguồn bất định không bắt buộc phải tạo ra đầu ra không chệch và độc lập, nhưng nó phải có những tính chất xác suất tức là không thể xác định được bằng bất kỳ quy tắc thuật toán đã biết.

2. Bộ tạo bit ngẫu nhiên bất định phải có thành phần đánh giá tỷ lệ độ bất định đóng góp từ nguồn bất định. Điều này đòi hỏi hoạt động của nguồn bất định phải dựa trên các nguyên tắc được thiết lập tốt hoặc hoạt động đặc trưng phổ biến để có thể xác định một mô hình thống kê phù hợp với nguồn bất định.

3. Nguồn bất định phải phù hợp với việc kiểm thử bằng một phòng kiểm thử hoặc một quy trình kiểm tra độc lập khác để đảm bảo hoạt động hợp lý. Đặc biệt có thể thu thập một mẫu dữ liệu từ nguồn bất định trong quá trình kiểm tra hợp lệ hoặc xác minh độc lập đ cho phép đánh giá mô hình thống kê đã yêu cầu, tỷ lệ độ bất định và sự phù hợp của các bài kiểm thử chất lượng đối với nguồn bất định.

4. Phải phát hiện được lỗi hoặc việc suy giảm nghiêm trọng nguồn bất định. Dựa trên tần suất thực hiện các bài kiểm thử chất lượng, việc phát hiện này có thể không phải là ngay lập tức.

5. Nguồn bất định phải được bảo vệ khỏi sự phá hoại của k tấn công. Đặc biệt, kẻ tấn công không có khả năng ảnh hưởng đến nguồn bất định bằng cách làm giảm độ bất định của nguồn xuống dưới ngưỡng.

8.3.1.3  Yêu cầu tùy chọn đối với nguồn bất định chính của bộ tạo bit ngẫu nhiên bất định

Các tính năng tùy chọn nhưng được kiến nghị của nguồn bất định chính như sau:

1. Nguồn bất định phải giữ được các tính chất toán học. Nếu không giữ được thì phải có giới hạn về xác suất biến động. Hoạt động xác suất của nguồn không được thay đổi đáng kể theo thời gian. Ví dụ: nếu nguồn bất định tạo ra đầu ra từ một bảng chữ cái nht định có phân bố thống kê, nó phải nhất quán trong độ chệch này theo thời gian. Một nguồn bất định không cố định sẽ làm phức tạp quá trình ước tính tỷ lệ đóng góp độ bất định và tăng độ khó của việc kiểm tra hợp lệ của thiết kế bộ tạo bit ngẫu nhiên bất định (trừ khi thiết kế bao gồm các nguồn bất định bổ sung đáp ứng được yêu cầu này).

2. Các bài kiểm thử chất lượng được thiết kế phù hợp với mô hình thống kê đã biết của nguồn phải chú trọng đặc biệt đến việc phát hiện hành vi có khả năng xảy ra gần ranh giới giữa môi trường hoạt động và điều kiện bất thường. Điều này đòi hỏi cần hiểu thấu đáo về hoạt động của nguồn bất định.

8.3.2  Nguồn bất định vật lý cho bộ tạo bit ngẫu nhiên bất định

8.3.2.1  Giới thiệu về nguồn bất định vật lý của bộ tạo bit ngẫu nhiên bất định

Nguồn bất định vật lý thường cung cấp một dòng liên tục giá trị đầu ra khi được cung cấp nguồn điện. Tuy nhiên, đầu ra này không nhất thiết phải là một chuỗi nhị phân đơn giản. Ví dụ: nếu nguồn bất định vật lý dựa trên thời gian giữ những lần phân rã phóng xạ, nguồn bất định không thể cung cấp một chuỗi đầu ra nhị phân đơn giản có chứa độ bất định nhưng cung cấp một loạt khoảng thời gian giữa những phần phân rã phóng xạ. Ngoài ra, nếu nguồn bất định vật lý được sử dụng dựa trên sự thay đổi điện áp trong một đi-ốt nhiễu thì đầu ra có thể là một loạt kết quả của phép đo điện áp.

Thông thường, nguồn bất định này cần được giải thích rõ ràng trước khi sử dụng. Điều này có thể được thực hiện bằng cách so sánh dữ liệu vật lý do nguồn bất định cung cấp với một loạt các giá trị ngưỡng. Dữ liệu được cung cấp bởi nguồn bất định có thể được so sánh với một giá trị ngưỡng duy nhất, do đó một lần đọc nguồn tạo ra một bit đầu ra hoặc được so sánh với một loạt các giá trị ngưỡng sao cho một lần đọc nguồn tạo ra một số bit đầu ra.

Vì một nguồn bất định vật lý thường được chứa trong một ranh giới mật mã của bộ tạo bit ngẫu nhiên bất định, điều kiện an toàn được nhấn mạnh là việc thu thập và giải thích về nguồn bất định vật lý thực sự chứ không phải là khả năng kẻ tấn công có thể lấy được thông tin và/hoặc gây ảnh hưởng quá mức đến nguồn.

Một ưu điểm của nguồn bất định vật lý là có thể mô hình hỏa như một quá trình ngẫu nhiên. Điều này dẫn đến việc kiểm tra chất lượng trực tuyến luôn hiệu quả nhằm xác định chính xác thời điểm nguồn bất định vật lý bị lỗi. Các bài kiểm tra như vậy có thể được sử dụng để ngăn chặn một bộ tạo bit ngẫu nhiên bất định vật lý tiếp tục hoạt động với một nguồn bất định có thể dự đoán được và có thể loại bỏ một số hàm chuyển đổi trạng thái phức tạp hoặc hàm tạo đầu ra.

8.3.2.2  Yêu cầu đối với nguồn bất định vật lý của bộ tạo bit ngẫu nhiên bất định

Các yêu cầu chức năng đối với nguồn bất định vật lý như sau:

1. Các giá trị ngưỡng phải được chọn sao cho chuỗi đầu ra chứa một lượng độ bất định đ lớn để ứng dụng. Lưu ý rằng có sự khác biệt giữa độ bất định do nguồn hiển thị (có thể tạo dữ liệu ở độ chính xác vô hạn) và độ bất định được cung cấp bởi biểu diễn nhị phân của nguồn đó.

2. Tổng lỗi của nguồn bất định phải được phát hiện ngay lập tức. Sự suy giảm của nguồn bất định phải được phát hiện đủ nhanh, trong đó “đủ nhanh” phụ thuộc vào mức độ suy giảm.

8.3.2.3  Yêu cầu tùy chọn đối với nguồn bất định vật lý của bộ tạo bit ngẫu nhiên bất định

Nguồn bất định phải được phân tích chính thức và các giá trị ngưỡng được chọn sao cho đầu ra chứa lượng độ bất định lớn nhất có thể. Điều này có thể xảy ra vì các nguồn bất định vật lý thật sự là tương đối đơn giản so với các nguồn bất định con người.

8.3.3  Nguồn bất định phi vật lý cho bộ tạo bit ngẫu nhiên bất định

Nguồn bất định phi vật lý thường được cung cấp bởi một hệ thống theo yêu cầu của bộ tạo bit ngẫu nhiên bất định. Do đó, các nguồn bất định phi vật lý thường nằm ngoài ranh giới bảo vệ xác định của bộ tạo bit ngẫu nhiên bất định (xem 5.4). Dữ liệu thường ở dạng nhị phân. Ví dụ: nguồn có thể là biểu diễn số của thời gian giữa những lần nhấn phím (được đo bằng hệ thống), của số liệu thống kê mạng không thể đoán trước hoặc nội dung của các phần không thể dự đoán trong bộ nhớ RAM.

Vì nguồn bất định phi vật lý có ít nhất một phần nằm ngoài sự điều khiển của bộ tạo bit ngẫu nhiên bất định, nên phải có các biện pháp ngăn chặn để giảm thiểu khả năng kẻ tấn công thu được thông tin về dữ liệu và/hoặc khả năng ảnh hưởng đến nguồn bất định. Ngoài ra, vì rất khó để mô hình hóa một nguồn bất định phi vật lý một cách chính xác như là một quá trình ngẫu nhiên, nên càng khó để xác định được liệu nguồn đó có hoạt động chính xác hay không. Do đó, bộ tạo bit ngẫu nhiên bất định phi vật lý thường sử dụng các hàm chuyển đổi trạng thái và hàm tạo đầu ra phức tạp nhằm đảm bảo rằng bộ tạo bit ngẫu nhiên ít nhất phải an toàn như một bộ tạo bit ngẫu nhiên tất định trong khoảng thời gian từ khi nguồn bất định bị lỗi đến khi lỗi được phát hiện.

Không có thêm yêu cầu an toàn cho nguồn bất định phi vật lý.

8.3.4  Nguồn bất định bổ sung cho bộ tạo bit ngẫu nhiên bất định

8.3.4.1  Giới thiệu về nguồn bất định bổ sung cho bộ tạo bit ngẫu nhiên bất định

Hoạt động của bộ tạo bit ngẫu nhiên bất định cũng bao gồm một hoặc nhiều nguồn bất định bổ sung. Một nguồn bất định bổ sung có thể hữu ích vì nhiều lý do. Nó cung cấp một lớp bảo vệ chống lại sự suy giảm đầu ra của bộ tạo bit ngẫu nhiên bất định do nguồn bất định chính lỗi hoặc có sự sai khác với mô hình thống kê đặc trưng.

Trong trường hợp nguồn bất định chính được đánh giá từ bên ngoài, thì nguồn bất định bổ sung ít có khả năng bị truy cập từ ngoài vào sẽ làm giảm lượng thông tin hữu ích mà kẻ tấn công có thể thu được từ nguồn bất định chính.

Cuối cùng, việc sử dụng nhiều nguồn bất định cung cấp khả năng chia tách quyền kiểm soát, cho phép ứng dụng mà nhiều người dùng cần truy cập vào cùng một đầu ra của bộ tạo bit ngẫu nhiên bất định nhưng không tin tưng vào những ảnh hưởng tiềm ẩn đối với các nguồn bất định riêng lẻ. Đối với các ứng dụng như vậy, có thể thiết kế bộ tạo bit ngẫu nhiên bất định sao cho sự tin tưởng của người dùng vào một nguồn bất định duy nhất là đủ để tin tưởng vào đầu ra cuối cùng của bộ tạo bit ngẫu nhiên bất định.

Bộ tạo bit ngẫu nhiên bất định có một nguồn bất định bổ sung không phải là nguồn bất định không xác định mà là nguồn bất định xác định, tức là một giá trị mầm. Một bộ tạo bit ngẫu nhiên bất định có nguồn bất định xác định thì được gọi là bộ tạo bit ngẫu nhiên bất định lai ghép. Bộ tạo bit ngẫu nhiên bất định lai ghép được quy định trong 8.3.5.

Mặc dù có thêm tính không thể dự đoán được đối với đầu ra của bộ tạo bit ngẫu nhiên, nhưng độ an toàn của bộ tạo bit ngẫu nhiên chỉ dựa vào nguồn bất định chính. Do đó, đầu ra của một bộ tạo bit ngẫu nhiên phải được giữ an toàn ngay cả khi kẻ tấn công biết đầu ra của tất cả các nguồn bất định bổ sung và/hoặc khi kẻ tấn công có phương pháp đo sự ảnh hưởng đối với đầu ra của các nguồn bất định bổ sung.

8.3.4.2  Yêu cầu đối với nguồn bất định bổ sung cho bộ tạo bit ngẫu nhiên bất định

Các yêu cầu chức năng đối với nguồn bất định bổ sung như sau:

Một nguồn bất định bổ sung sẽ được đưa vào nếu:

a) Nguồn bất định chính không đủ tin cậy do bị lỗi. Trong trường hợp này, nguồn bất định bổ sung phải đáp ứng các yêu cầu tương tự như nguồn bất định chính;

b) Nguồn bất định chính tạo ra độ bất định với tốc độ không bằng với tốc độ tạo bit ngẫu nhiên mong muốn. Trong trường hợp này, nguồn bất định bổ sung phải đáp ứng các yêu cầu tương tự như nguồn bất định chính. Ngoài ra, thay vì sử dụng một nguồn bất định bổ sung, giải pháp giải quyết vn đề này được chấp nhận là sử dụng bộ tạo bit ngẫu nhiên bất định chỉ để tạo ra giá trị mầm ban đầu cho một bộ tạo bit ngẫu nhiên tất định; và

c) ứng dụng hoặc môi trường đòi hỏi bộ tạo bit ngẫu nhiên thực hiện các chức năng được cung cấp tốt nhất bởi một bộ tạo bit ngẫu nhiên bất định lai ghép, tức là bộ tạo bit ngẫu nhiên lấy giá trị mầm như một nguồn bất định. Trong trường hợp này, nguồn bất định bổ sung phải đáp ứng các điều kiện trong 8.3.5.

8.3.4.3  Yêu cầu tùy chọn đối với nguồn bất định bổ sung cho bộ tạo bit ngẫu nhiên bất định

Các tính năng tùy chọn nhưng được kiến nghị sử dụng của nguồn bất định bổ sung như sau:

1. Cho dù nguồn bất định bổ sung có cùng kiểu với nguồn bất định chính (tức là phiên bản thứ hai của cùng một nguồn bất định), hay là một thành phần hoặc quá trình hoàn toàn khác, thì nguồn này phải hoạt động độc lập với nguồn chính để đảm bảo rằng nguồn bất định kết hợp sẽ không mất độ bất định do sự phụ thuộc thống kê. Tính độc lập của các nguồn bất định cũng tạo điều kiện cho việc thiết kế và đánh giá hoặc quá trình kiểm tra độc lập bằng cách cho phép phân tách nguồn bất định chính và nguồn bất định thứ hai một cách riêng biệt và cũng làm giảm khả năng lỗi của nguồn bất định chính.

2. Đầu ra của bộ tạo bit ngẫu nhiên phải không thể dự đoán được ngay cả khi kẻ tấn công có thể lựa chọn các giá trị của nguồn bất định bổ sung; không thể dự đoán được bit tiếp theo được tạo ra bởi bộ tạo bit ngẫu nhiên với xác suất lớn hơn đáng kể 1/2.

3. Nguồn bất định thứ hai nên được đưa vào trong thiết kế của bộ tạo bit ngẫu nhiên bất định nếu một trong hai điều sau là đúng:

a) Nguồn bất định chính là phần không ổn định (nghĩa là không nhất quán) trong hoạt động thống kê làm cho việc ước lượng độ bất định đầu vào trở nên khó khăn hơn; hoặc

b) Kẻ tấn công có thông tin hay gây ảnh hưởng đến nguồn bất định chính. Trong trường hợp này, nguồn bất định bổ sung phải đáp ứng các yêu cầu tương tự như nguồn chính, mặc dù có thể chấp nhận có một số thành phần tất định. Nghĩa là thao tác của người sử dụng hoặc các yếu tố từ môi trường hệ thống có thể ảnh hưởng (mặc dù không hoàn toàn xác định) đầu ra từ nguồn này.

8.3.5  Bộ tạo bit ngẫu nhiên bất định lai ghép

Một bộ tạo bit ngẫu nhiên bất định được coi là một bộ tạo bit ngẫu nhiên bất định lai ghép nếu nó lấy nguồn tất định làm đầu vào bổ sung. Ưu điểm chính của bộ tạo bit ngẫu nhiên bất định lai ghép là đầu ra không thể dự đoán được của nó được tham số hóa bằng giá trị mầm. Điều này giúp tăng cường độ an toàn vì thông tin về đầu ra của nguồn bất định chính không đủ để cho phép kẻ tấn công phá vỡ lược đồ hoặc cho phép các bộ tạo bit ngẫu nhiên sử dụng một nguồn bất định không xác định duy nhất với những giá trị mầm khác nhau mà không ảnh hưởng đến độ an toàn.

Các yêu cầu chức năng bổ sung đối với một bộ tạo bit ngẫu nhiên bất định lai ghép như sau:

1. Kẻ tấn công không thể dự đoán được bit tiếp theo với xác suất lớn hơn đáng kể 1/2 ngày cả khi kẻ tấn công có toàn quyền kiểm soát giá trị mầm.

2. Không kẻ tấn công nào có thể khôi phục lại thông tin về giá trị mầm bằng cách quan sát đầu ra của bộ tạo bit ngẫu nhiên.

3. Không người dùng nào không có thẩm quyền có thể điều khiển, ảnh hưởng hoặc cập nhật giá trị mầm.

8.4  Đầu vào bổ sung của bộ tạo bit ngẫu nhiên bất định

8.4.1  Giới thiệu về đầu vào bổ sung của bộ tạo bit ngẫu nhiên bất định

Hoạt động của bộ tạo bit ngẫu nhiên bất định yêu cầu lấy một số đầu vào công khai và/hoặc do người dùng tạo ra như lệnh, dữ liệu về sự biến thiên điện năng và biến thiên thời gian như bộ đếm, xung, dữ liệu do người dùng cung cấp. Có thể giả thiết rằng những đầu vào bổ sung này có thể trực tiếp quan sát được hoặc dưới sự kiểm soát trực tiếp của kẻ tấn công. Do đó, điều quan trọng là việc điều khiển các giá trị đầu vào này không làm giảm hiệu suất của bộ tạo bit ngẫu nhiên, hoặc chỉ có một cá nhân hoặc nhân viên đã xác thực và có thẩm quyền có khả năng điều khiển những giá trị đầu vào này với một chính xác hoạt động được xác định duy nhất.

8.4.2  Yêu cầu đối với đầu vào bổ sung của bộ tạo bit ngẫu nhiên bất định

Yêu cầu chức năng của mọi đầu vào bổ sung phải bao gồm khả năng bảo vệ chống lại thao tác của kẻ tấn công (lệnh, xung, bộ hẹn giờ, nguồn điện...) gây ảnh hưởng đến độ an toàn của bộ tạo bit ngẫu nhiên.

CHÚ THÍCH Điều này có thể được thực hiện bằng cách hạn chế ảnh hưởng lên các đầu vào này trong việc kiểm soát tổng thể bộ tạo bit ngẫu nhiên bất định. Nguồn điện đầu vào là một trường hợp đặc biệt; sự gián đoạn của nguồn điện rõ ràng sẽ dẫn tới việc từ chối hoàn toàn dịch vụ. Môi trường hoạt động của bộ tạo bit ngẫu nhiên bất định phải được cung cấp điện liên tục. Đây là một vn đề hệ thống và nằm ngoài phạm vi của tiêu chuẩn này.

8.5  Trạng thái bên trong của bộ tạo bit ngẫu nhiên bất định

8.5.1  Giới thiệu về trạng thái bên trong của bộ tạo bit ngẫu nhiên bất định

Thành phần này chứa thông tin được chuyển qua lại giữa các lần gọi đến bộ tạo bit ngẫu nhiên bất định và tất cả thông tin được xử lý trong một lần yêu cầu. Vì lý do này, trạng thái bên trong là một yêu cầu bắt buộc; tuy nhiên không bắt buộc là bất kỳ phần nào của trạng thái bên trong phụ thuộc vào các trạng thái trước đó, nghĩa là không yêu cầu bắt buộc đối với bất cứ phần nào của trạng thái bên trong được chuyển sang lần gọi kế tiếp của bộ tạo bit ngẫu nhiên bất định (ví dụ: khi tung đồng xu, không có trạng thái bên trong nào được chuyển sang lần tung đồng xu tiếp theo). Trong những trường hợp như vậy, trạng thái bên trong của bộ tạo bit ngẫu nhiên bất định hoàn toàn phụ thuộc vào đầu ra của nguồn bất định tại thời điểm bộ tạo bit ngẫu nhiên bất định được sử dụng.

Tuy nhiên, bằng cách giữ lại thông tin trạng thái này, bộ tạo bit ngẫu nhiên bất định có thể tạo đầu ra ngẫu nhiên là một hàm của đầu vào hiện tại từ nguồn bất định và của nhiều (hoặc tất cả) đầu vào trước đó. Điều này cung cấp một lớp bảo vệ chống lại lỗi hoặc sự suy giảm của nguồn bất định, cũng như sự thỏa hiệp đầu ra ngẫu nhiên của kẻ tấn công có thông tin hoặc ảnh hưởng đến nguồn bất định.

Trạng thái bên trong bao gồm hai phần. Trạng thái làm việc là một phần của trạng thái bên trong được xử lý kết hợp với dữ liệu nguồn bất định bằng hàm chuyển đổi trạng thái bên trong để tạo ra trạng thái bên trong mới. Thành phần này có thể bao gồm một “bộ trữ” ngẫu nhiên ngoài bộ đếm hoặc các giá trị khác tùy chọn. Phần thứ hai của trạng thái bên trong là một giá trị được gọi là tham số bí mật. Tham số bí mật là một đầu vào bổ sung cho hàm chuyển đổi trạng thái bên trong, tùy chỉnh hàm trong trường hợp cụ thể của bộ tạo bit ngẫu nhiên bất định. Do đó, nó đóng vai trò như một lớp bảo vệ bổ sung chống lại sự suy giảm chất lượng của nguồn bất định. Tùy thuộc vào việc xử lý các tham số bí mật, nó cũng có thể bảo vệ chống lại việc gây tổn hại đến trạng thái làm việc.

Khi khởi tạo đầu ra của nguồn bất định phải được đặt vào trạng thái bên trong, trạng thái làm việc là bắt buộc. Tất cả, một phần hoặc không có trạng thái bên trong nào có thể được chuyển sang lần gọi bộ tạo bit ngẫu nhiên bất định tiếp theo. Việc sử dụng tham số bí mật là tùy chọn, nhưng khi sử dụng, giá trị đó thường được giữ lại giữa các lần gọi bộ tạo bit ngẫu nhiên bất định và chỉ có thể được cập nhật bởi cá nhân hoặc nhân viên được xác thực và được ủy quyền trong ranh giới của chính sách hoạt động. Thông tin thêm về các vấn đề liên quan đến kiểm soát thông số bí mật được cung cấp trong ISO/IEC 11770-1 [6].

8.5.2  Yêu cầu đối với trạng thái bên trong của bộ tạo bit ngẫu nhiên bất định

Các yêu cầu chức năng của trạng thái bên trong như sau:

1. Thiết kế của bộ tạo bit ngẫu nhiên bất định phải bảo vệ để kẻ tấn công biết hoặc ảnh hưởng đến trạng thái bên trong.

CHÚ THÍCH 1 Một phương tiện để đạt được yêu cầu trên bao gồm việc chỉ định trạng thái bên trong tới vùng bộ nhớ chỉ có thể truy cập vào bộ tạo bit ngẫu nhiên bất định, lưu trữ bộ tạo bit ngẫu nhiên bất định trên một máy tính hoặc thiết b độc lập hoặc thông qua các chính sách an ninh bảo vệ thiết bị và môi trường của nó.

2. Nếu tồn tại thì tham số bí mật phải được bảo vệ khỏi kẻ tấn công trong ranh giới bảo vệ của bộ tạo bit ngẫu nhiên bất định được thiết kế để phát hiện các nỗ lực xâm nhập trái phép.

3. Giá trị khởi tạo của tham số bí mật nếu tồn tại phải chứa độ bất định đủ lớn để đáp ứng yêu cầu an toàn của ứng dụng. Tham số bí mật khởi tạo này có thể được tạo ra bởi bộ tạo bit ngẫu nhiên bất định hoặc một bộ tạo bit ngẫu nhiên bất định khác. Nếu tham số bí mật được tạo ra bởi chính bộ tạo bit ngẫu nhiên bất định, bộ tạo bit ngẫu nhiên bất định phải hoạt động ở chế độ đặc biệt dành riêng cho mục đích này, trong đó kết quả đầu ra ngẫu nhiên trở thành tham số bí mật.

Tuy nhiên, nếu độ an toàn b sung được coi là một yêu cầu để bảo vệ chống lại các kịch bản kẻ tấn công thu được thông tin hoặc ảnh hưởng đến nguồn bất định có thể xảy ra, thì quá trình tạo tham số bí mật khởi tạo phải lấy dữ liệu bất định bổ sung từ một thành phần hệ thống khác hoặc thông qua tương tác của người dùng được kết hợp một cách nào đó với dữ liệu của nguồn bất định (tức là độ bất định bổ sung đóng vai trò là nguồn bất định thứ hai tạm thời).

CHÚ THÍCH 2 Ví dụ về tương tác của người dùng có thể bao gồm nhưng không giới hạn: nhn phím, thời gian giữa các lần nhấn phím hoặc di chuyển chuột.

4. Trong trưng hợp có các giá trị không nên làm tham số bí mật (ví dụ: khóa mật mã “yếu”) thì tham số bí mật phải được kiểm tra để đảm bảo rằng các giá trị tham số bí mật này không được sử dụng.

5. Tham số bí mật nếu có thì phải được thay thế định kỳ. Điều này hỗ trợ mục tiêu an toàn về phía trước và phía sau. Tham số bí mật chỉ được cập nhật thông qua các lệnh của nhân viên được xác thực và được ủy quyền trong ranh giới hoạt động của chính sách an toàn.

6. Nếu một tham số bí mật tồn tại và không được lấy từ một bộ tạo bit ngẫu nhiên bất định khác, thì quá trình thay thế hoặc cập nhật tham số bí mật phải liên quan đến các nguồn bất định và hàm chuyển đổi trạng thái bên trong.

CHÚ THÍCH 3 Lược đồ thay thế chỉ đơn giản là thay thế hoặc thêm tham số bí mật hiện tại với đầu ra ngẫu nhiên từ bộ tạo bit ngẫu nhiên bất định mà không được sử dụng cho bất kỳ mục đích gì khác.

7. Nếu nguồn bất định bị lỗi và trạng thái làm việc bị ảnh hưởng, thì bộ tạo bit ngẫu nhiên bất định phải chống lại mọi khả năng để buộc nó tạo ra đầu ra sẵn có.

CHÚ THÍCH 4 Bộ tạo bit ngẫu nhiên bất định ngừng hoạt động khi (các) nguồn bất định lỗi, hoặc, nếu bộ tạo bit ngẫu nhiên bất định bao gồm một tham số bí mật bằng cách đảm bảo rằng bộ tạo bit ngẫu nhiên bất định tiếp tục hoạt động một cách an toàn như bộ tạo bit ngẫu nhiên tất định. Đặc biệt, tham số bí mật phải có đủ dài để chống lại bất kỳ hình thức tấn công mật mã nào lên bộ tạo bit ngẫu nhiên bất định bao gồm cả phương pháp vét cạn.

8.5.3  Yêu cầu tùy chọn đối với trạng thái bên trong của bộ tạo bit ngẫu nhiên bất định

Các tính năng tùy chọn nhưng được khuyến nghị sử dụng đối với trạng thái bên trong như sau:

1. Kích thước tính bằng bit của trạng thái bên trong phải đủ lớn để bộ tạo bit ngẫu nhiên bất định tiếp tục hoặc động như một bộ tạo bit ngẫu nhiên tất định nếu nguồn bất định lỗi hoặc kẻ tấn công có mọi thông tin hoặc điều khiển được bộ tạo. Nếu dữ liệu của nguồn bất định là hằng số, thì chiều dài của chu kỳ tối đa được giới hạn bởi kích thước của trạng thái bên trong và đặt một giới hạn trên cho công việc mà kẻ tấn công phải thực hiện để khôi phục trạng thái bên trong (thông qua phương pháp vét cạn).

2. Tham số bí mật phải được giữ lại giữa các phiên làm việc để cung cấp cho bộ tạo bit ngẫu nhiên bất định một trạng thái duy nhất có đủ độ bất định tại mỗi lần kích hoạt khởi động mà không cần tạo ngay một giá trị tham số bí mật mới. Nếu điều này được thực hiện, nó sẽ bảo vệ bộ tạo khỏi truy cập của kẻ tấn công.

CHÚ THÍCH Quá trình bảo vệ này có th dưới hình thức lưu trữ trong một vùng bộ nhớ ch có thể truy cập vào quá trình của bộ tạo bit ngẫu nhiên bất định, lưu trữ dưới dạng mã hóa hoặc lưu trữ trong một thẻ có thể tháo dời.

8.6  Hàm chuyển đổi trạng thái bên trong của bộ tạo bit ngẫu nhiên bất định

8.6.1  Giới thiệu về hàm chuyển đổi trạng thái bên trong của bộ tạo bit ngẫu nhiên bất định

Hàm chuyển đổi trạng thái bên trong điều khiển mọi hoạt động làm thay đổi trạng thái bên trong. Bao gồm các hàm bắt buộc nhằm biến đổi đầu ra của nguồn bất định vào trạng thái làm việc và phần hiện tại của trạng thái bên trong vào hàm tạo đầu ra. Thông thường các hàm này hoạt động độc lập với tham số bí mật.

Tuy nhiên, chức năng chính của các hàm chuyển đổi trạng thái bên trong là điều khiển các phần “mang đi” của trạng thái bên trong giữa các lần gọi của bộ tạo bit ngẫu nhiên bất định. Chức năng này là tùy chọn nhưng được khuyến nghị sử dụng. Một chức năng như vậy sẽ hoạt động theo hai phần.

1. Mang theo tham số bí mật mà không thay đổi.

2. Cập nhật trạng thái làm việc sử dụng hàm phụ thuộc vào trạng thái làm việc hiện tại và tham số bí mật (tùy chọn).

Hình 4 là một ví dụ về hàm chuyển đổi trạng thái bên trong với tham số bí mật.

Hình 4: Ví dụ về hàm chuyển đổi trạng thái bên trong

CHÚ THÍCH Trong hình 4, hàm chuyển đổi trạng thái bên trong là SHA-1 và tham số bí mật là hằng số 160 bit cho SHA-1.

8.6.2  Yêu cầu đối với hàm chuyển đổi trạng thái bên trong của bộ tạo bit ngẫu nhiên bất định

Việc sử dụng hàm chuyển đổi trạng thái bên trong chỉ bắt buộc ở việc thu thập và lưu trữ đầu ra của nguồn bất định. Nếu đây là hàm duy nhất mà các hàm chuyển đổi trạng thái bên trong cung cấp thì không có yêu cầu bổ sung nào mà các hàm chuyển đổi trạng thái bên trong phải đáp ứng.

Nếu hàm chuyển đổi trạng thái bên trong tạo ra một trạng thái làm việc mới bằng việc kết hợp trạng thái bên trong trước đó với đầu ra của nguồn bất định, thì yêu cầu chức năng đối với hàm chuyển đổi trạng thái bên trong như sau.

Đối với mỗi lần thay thế phần tích lũy độ bất định của trạng thái bên trong, dữ liệu của nguồn bất định được xử lý bằng hàm chuyển đổi trạng thái bên trong phải có đủ số lượng để chứa ít nhất là nhiều bit độ bất định là độ an toàn (tính theo bit) được đánh giá của bộ tạo bit ngẫu nhiên bất định.

8.6.3  Yêu cầu tùy chọn đối với hàm chuyển đổi trạng thái bên trong của bộ tạo bit ngẫu nhiên bất định

Các tính năng tùy chọn nhưng được khuyến nghị sử dụng của hàm chuyển đổi trạng thái bên trong như sau:

1. Hàm chuyển đổi trạng thái bên trong phải đạt được tính an toàn về phía sau thông qua việc sử dụng hợp lý hàm một chiều, ví dụ: hàm băm mật mã.

2. Hàm chuyển đổi trạng thái bên trong phải có đặc tính là tất cả các bit trong trạng thái làm việc và đầu vào nguồn bất định sẽ ảnh hưởng đến các bit đầu ra của hàm chuyển đổi trạng thái bên trong.

3. Hoạt động của hàm chuyển đổi trạng thái bên trong phải bảo vệ chống lại việc quan sát và phần tích thông qua tiêu thụ điện năng, thời gian, phân rã phóng xạ hoặc các tấn công kênh kề khác. Những giá trị mà hàm chuyển đổi trạng thái bên trong làm việc (trạng thái bên trong, tham số bí mật và đầu vào nguồn bất định) là các giá trị quan trọng dựa trên tính bí mật của đầu ra ngẫu nhiên. Phân tích kênh kề có thể phá vỡ tính bí mật này.

8.7  Hàm tạo đầu ra của bộ tạo bit ngẫu nhiên bất định

8.7.1  Giới thiệu về hàm tạo đầu ra của bộ tạo bit ngẫu nhiên bất định

Thành phần này cung cấp đầu ra ngẫu nhiên cho ứng dụng yêu cầu bằng cách xử lý tất cả hoặc một tập con các bit trong trạng thái bên trong hiện tại, (cả trạng thái làm việc và tham số bí mật) và bất kỳ đầu vào bổ sung tùy chọn nào. Hàm tạo đầu ra là một thành phần quan trọng để đạt được tính an toàn về phía trước và phía sau. Thành phần này cung cấp tính an toàn về phía sau bằng cách ngăn không cho đầu ra ngẫu nhiên tiết lộ thông tin về các giá trị hiện tại hoặc trước đó của trạng thái bên trong, các đầu vào của nguồn bất định hoặc các đầu ra ngẫu nhiên.

8.7.2  Yêu cầu đối với hàm tạo đầu ra của bộ tạo bit ngẫu nhiên bất định

Các yêu cầu chức năng đối với hàm tạo đầu ra như sau:

1. Hàm tạo đầu ra phải không tạo ra độ chệch trong đầu ra ngẫu nhiên.

2. Đầu ra ngẫu nhiên từ hàm tạo đầu ra phải vượt qua các bài kiểm tra chất lượng thống kê khi được yêu cầu (xem 8.8.5).

3. Hàm tạo đầu ra phải xử lý các bit từ trạng thái bên trong ít nhất bằng số lượng các bit trong mỗi khối đầu ra ngẫu nhiên được tạo bởi hàm tạo đầu ra. Tùy thuộc vào loại hàm tạo đầu ra sử dụng, có thể cần xử lý nhiều hơn số lượng bit này từ trạng thái bên trong.

4. Hàm tạo đầu ra không được sử dụng lại dữ liệu từ phần trạng thái làm việc của trạng thái bên trong khi cung cấp dữ liệu ngẫu nhiên cho ứng dụng yêu cầu. Tức là (a) hàm chuyển đổi trạng thái bên trong sẽ thay thế các phần của trạng thái làm việc giữa những lần gọi đến hàm tạo đầu ra để đảm bảo không sử dụng lại hoặc (b) hàm tạo đầu ra sẽ sử dụng một phần chưa sử dụng trước đó của trạng thái làm việc để đảm bảo rằng dữ liệu không được sử dụng lại.

5. Hàm tạo đầu ra không được rò rỉ bất cứ thông tin nào về trạng thái bên trong có thể ảnh hưởng đến đầu ra tiếp theo.

8.7.3  Yêu cầu tùy chọn đối với hàm tạo đầu ra của bộ tạo bit ngẫu nhiên bất định

Yêu cầu sau đây là tùy chọn. Có thể có trường hợp trong một số thiết kế, việc bao gồm yêu cầu này rất được khuyến khích.

Hàm tạo đầu ra không thể có hàm ngược để tiết lộ thông tin về trạng thái bên trong. Nghĩa là thông tin về đầu ra ngẫu nhiên do hàm tạo đầu ra tạo ra không được tiết lộ thông tin gì về trạng thái hiện tại.

8.8  Kiểm tra chất lượng đối với bộ tạo bit ngẫu nhiên bất định

8.8.1  Giới thiệu về kiểm tra chất lượng đối với bộ tạo bit ngẫu nhiên bất định

Thành phần này đảm bảo rằng toàn bộ quy trình của bộ tạo bit ngẫu nhiên bất định hoạt động chính xác và đầu ra của bộ tạo bit ngẫu nhiên bất định là ngẫu nhiên một cách liên tục. Các bài kiểm tra này sẽ phát hiện ra lỗi trong bộ tạo bit ngẫu nhiên bất định và ngăn ngừa việc sử dụng bộ tạo bit ngẫu nhiên bất định cho đến khi vượt qua các bài kiểm tra chất lượng. Những bài kiểm tra này là một phần trong thiết kế của bộ tạo bit ngẫu nhiên bất định; chúng được thực hiện tự động khi bật nguồn hoặc khởi động mà không cần sự can thiệp của các ứng dụng, quá trình hoặc người dùng khác và người dùng cũng có thể yêu cầu bất cứ khi nào.

Các bài kiểm tra chất lượng được trình bày trong tiêu chuẩn này bao gồm ba bộ: kiểm tra các thành phần tất định của bộ tạo bit ngẫu nhiên bất định, kiểm tra nguồn bất định và kiểm tra đầu ra ngẫu nhiên do bộ tạo bit ngẫu nhiên bất định tạo ra.

Kiểm tra các thành phần tất định được áp dụng cho tất cả các thiết kế của bộ tạo bit ngẫu nhiên bất định. Có thể có trường hợp tỷ lệ độ bất định đầu vào hoặc đầu ra ngẫu nhiên quá thấp để có thể thực hiện được tất cả các bài kiểm tra chất lượng thống kê trên các nguồn bất định hoặc đầu ra bộ tạo bit ngẫu nhiên bất định. Trong những trường hợp như vậy, nhà thiết kế có thể thay đổi các phép thử hoặc ngưỡng kiểm tra, cho phép kích thước mẫu nhỏ hơn trong khi vẫn giữ xác suất lỗi loại 1 tương đương nhau.

Các yêu cầu chung và các yêu cầu áp dụng cho mỗi bộ kiểm tra này được trình bày trong bốn tiểu mục dưới dây. Trong một số trường hợp, bộ tạo bit ngẫu nhiên bất định có thể có các tính năng hoặc chức năng bổ sung không được quy định trong tiêu chuẩn này và có thể bao gồm các bài kiểm tra riêng biệt. Trong những trường hợp này, nhà thiết kế phải ghi lại các mục tiêu của những tính năng bổ sung này và làm cơ sở cho các bài kiểm tra bổ sung.

Tần suất các bài kiểm tra chất lượng phải được thực hiện phụ thuộc vào thiết kế tổng thể của bộ tạo bit ngẫu nhiên. Ví dụ: nếu có thể đảm bảo rằng mọi lỗi của nguồn bất định có thể được phát hiện một cách nhanh chóng, để đảm bảo kiểm tra tần suất của nguồn bất định, thành phần tất định phải được đơn giản hóa.

8.8.2  Các yêu cầu kiểm tra chất lượng chung đối với bộ tạo bit ngẫu nhiên bất định

Các yêu cầu chức năng đối với cả ba loại kiểm tra chất lượng được nêu ở trên như sau:

1. Bộ tạo bit ngẫu nhiên bất định phải tự động thực hiện các kiểm tra chất lượng toàn diện mỗi lần bật nguồn hoặc khởi động.

2. Bộ tạo bit ngẫu nhiên bất định phải cho phép kiểm tra chất lượng (nguồn bất định, thành phần tất định và đầu ra ngẫu nhiên) được thực hiện “theo yêu cầu”.

3. Tất cả đầu ra từ bộ tạo bit ngẫu nhiên phải bị ức chế trong khi thực hiện các kiểm tra chất lượng nhằm che giấu thông tin về hoạt động của bộ tạo bit ngẫu nhiên bất định và ngăn chặn việc rò rỉ thông tin nào về những lỗi có thể (bao gồm kiểm tra chất lượng về các thành phần tất định trong 8.8.3, kiểm tra chất lượng về nguồn bất định trong 8.8.4 và kiểm tra chất lượng về đầu ra ngẫu nhiên trong 8.8.5). Dữ liệu đã vượt qua tất cả các bài kiểm tra về đầu ra ngẫu nhiên có thể được sử dụng như đầu ra ngẫu nhiên sau khi hoàn thành tất cả các bài kiểm tra chất lượng.

CHÚ THÍCH Một ngoại lệ với yêu cầu này có thể tồn tại nếu kiểm tra chất lượng được liên tục áp dụng cho bộ tạo bit ngẫu nhiên bất định (ví dụ: các bài kiểm tra chất lượng về nguồn bất định hoặc kiểm tra thống kê đối với đầu ra). Trong trường hợp này, không cần thực hiện yêu cầu này.

4. Nếu bộ tạo bit ngẫu nhiên bất định được thực thi như phần mềm hoặc phần sụn, các bài kiểm tra chất lượng được thực hiện khi khởi tạo bao gồm kiểm tra tính toàn vẹn của mã thực thi (RAM, ROM hoặc thiết bị logic có thể lập trình). Ví dụ: chữ ký số hoặc mã xác thực thông báo được áp dụng cho phần mềm hoặc phần sụn.

Khi thực thi bộ tạo bit ngẫu nhiên bất định phải thực hiện các bài kiểm tra chất lượng với tần suất tăng lên trong suốt phiên hoạt động mà không làm suy giảm hiệu năng, trừ khi khởi động bật nguồn (khoảng cách hợp lý phải dựa trên tần suất yêu cầu các bit ngẫu nhiên).

8.8.3  Kiểm tra chất lượng đối với các thành phần tất định của bộ tạo bit ngẫu nhiên bất định

Mục tiêu của các kiểm tra này là để đảm bảo các thành phần tất định của bộ tạo bit ngẫu nhiên bất định tiếp tục xử lý chính xác bất kỳ tập đầu vào có thể. Vì theo định nghĩa, không thể dự đoán các thành phần này, phương pháp kiểm thử được chấp nhận là sử dụng kiểm tra với câu trả lời đã biết. Các phép kiểm thử như vậy phải khởi tạo thành phần hoặc hàm đến trạng thái khởi tạo cố định, nhập một đầu vào cố định vào hàm, sau đó so sánh kết quả đầu ra với đầu ra đúng được tính toán trước đó bằng việc thực thi hàm độc lập (ví dụ: mô phỏng máy tính kiểm tra được sử dụng trong quá trình phát triển bộ tạo bit ngẫu nhiên bất định) và được lưu trữ trong quá trình thực thi bộ tạo bit ngẫu nhiên bất định.

Các yêu cầu chức năng đối với kiểm tra chất lượng các thành phần tất định như sau:

1. Kiểm tra với câu trả lời đã biết phải bao gồm các bài kiểm tra chất lượng tổng thể được thực hiện mỗi lần khởi động và/hoặc khởi động lại và theo yêu cầu. Kiểm tra với câu trả lời đã biết phải có trong các bài kiểm tra chất lượng tổng thể thực hiện theo các khoảng thời gian định kỳ.

2. Chuỗi so sánh (kết quả được so sánh với câu trả lời đã biết) được tạo ra cho mọi bài kiểm tra với câu trả lời đã biết phải đ dài để xác suất vượt qua kiểm thử với các thành phần lỗi hoặc bị suy giảm chấp nhận được. Vì tổng kiểm tra 32 bit được sử dụng trong nhiều ứng dụng đảm bảo thông tin, nên 32 bit là chiều dài khuyến nghị cho các giá trị khi kiểm tra với câu trả lời đã biết.

3. Kiểm tra với câu trả lời đã biết phải có trong toàn bộ bộ tạo bit ngẫu nhiên bất định, không chỉ có trong từng thành phần của bộ tạo bit ngẫu nhiên bất định mà còn có trong tổng thể các thành phần điều khiển bộ tạo bit ngẫu nhiên bất định. Có thể thực hiện bằng cách thiết lập trạng thái bên trong thành một mẫu cố định, chặn dữ liệu của nguồn bất định và thay thế nguồn bất định bằng một chuỗi bit cố định và chạy bộ tạo bit ngẫu nhiên bất định ở chế độ hoạt động. Điều này sẽ tạo ra một dãy đầu ra có chiều dài xác định ít nhất bằng chiều dài được quy định tại điểm 2 ở trên. Đầu ra sau đó được so sánh với giá trị đã xác định trước có được qua việc thực thi hoặc mô phỏng độc lập.

4. Kiểm tra với câu trả lời đã biết phải thực hiện mỗi khía cạnh của hàm đang được kiểm thử. Điều này đòi hỏi mẫu đầu vào cố định phải đủ dài để cung cấp một mẫu đại diện các đầu vào có thể cho mỗi thành phần chức năng chính của hàm được kiểm thử.

5. Tất cả đầu ra từ bộ tạo bit ngẫu nhiên bất định phải bị chặn trong khi thực hiện kiểm tra với câu trả lời đã biết để che giấu thông tin về hoạt động của bộ tạo bit ngẫu nhiên bất định và ngăn chặn việc rò rỉ thông tin về những lỗi có thể có. Dữ liệu đã vượt qua thành công kiểm tra chất lượng với câu trả lời đã biết phải không được sử dụng làm đầu ra ngẫu nhiên sau khi hoàn thành tất cả kiểm tra chất lượng. Giá trị hiện tại của trạng thái bên trong bộ tạo bit ngẫu nhiên bất định sau khi hoàn thành thành công kiểm tra với câu trả lời đã biết sẽ không được sử dụng.

Kiểm tra với câu trả lời đã biết lên các thành phần tất định của bộ tạo bit ngẫu nhiên bất định có thể được loại bỏ để thực thi bộ tạo bit ngẫu nhiên bất định với hai quy trình dự phòng và độc lập (không phải là các nguồn bất định) mà đầu ra của nó được so sánh một cách liên tục. Trong trường hợp này, kết quả không phù hợp khi so sánh được xử lý là lỗi của kiểm tra chất lượng, chuyển sang trạng thái lỗi.

8.8.4  Kiểm tra chất lượng đối với nguồn bất định của bộ tạo bit ngẫu nhiên bất định

Mục tiêu của các kiểm tra này là để phát hiện sự thay đổi trong hoạt động của nguồn bất định từ hoạt động dự định. Vì nguồn bất định được giả định không tạo ra dữ liệu nhị phân độc lập và không chệch trong hầu hết các trường hợp, những bài kiểm tra ngẫu nhiên truyền thống (ví dụ: tần số đơn, chi bình phương và chạy kiểm thử để kiểm tra giả thuyết về các bit độc lập và không chệch) sẽ luôn thất bại, do đó không hữu dụng. Nói chung, các bài kiểm tra về nguồn bất định phải được điều chỉnh cẩn thận với nguồn bất định, có tính đến hoạt động thống kê có phân bố không đều của nguồn bất định hoạt động chính xác.

Đối với các nguồn bất định không xác định tuân theo mô hình thống kê rất phức tạp và đối với các nguồn bất định phi vật lý nói riêng, có thể không khả thi để phát triển kiểm tra thống kê tương ứng chính xác với mô hình thống kê của nguồn bất định. Trong những trường hợp này, cần xác định các kiểm tra đơn giản hơn thay vì xác định liệu thống kê được tính từ một mẫu dữ liệu có nằm trong phạm vi chấp nhận được hay không, xác định liệu mẫu dữ liệu có chứa bất kỳ sự xuất hiện của các giá trị được biết liên quan đến lỗi không. Lựa chọn các mẫu được sử dụng cho các kiểm tra như vậy phải tính đến lỗi của nguồn bất định.

Các yêu cầu chức năng đối với kiểm tra chất lượng của nguồn bất định như sau:

1. Kiểm tra đối với nguồn bất định phải được bao gồm trong các bài kiểm tra chất lượng tổng thể được thực hiện mỗi lần khởi động và/hoặc khởi động lại theo khoảng thời gian định kỳ trong quá trình sử dụng và theo yêu cầu.

CHÚ THÍCH 1 Ví dụ, khoảng thời gian để kiểm tra ngun bt định có thể được xác định bằng chính sách thực thi mô-đun.

2. Mỗi nguồn bất định tối thiểu phải được kiểm tra cho hoạt động. Nghĩa là kiểm tra phải thu thập một lượng dữ liệu từ nguồn và xác nhận rằng nó không chỉ bao gồm một đầu ra không đổi. (Các đầu ra không đổi thường là các giá trị chỉ gồm một giá trị duy nhất của đầu ra nguồn bất định được số hóa. Ví dụ: nếu nguồn đi-ốt nhiễu tạo ra giá trị 0110 mỗi lần lấy mẫu, nó sẽ bị lỗi trong bài kiểm tra hoạt động.) Kích thước của mẫu dữ liệu thu thập sẽ phụ thuộc vào các đặc tính của nguồn bất định và phải được chọn sao cho khi nguồn bất định đang hoạt động chính xác, xác suất không hoạt động trong một mẫu có kích thước đó phải thấp ở mức chấp nhận được. (10-4 là giá trị được khuyến nghị cho tỷ lệ lỗi loại 1).

3. Kiểm tra được áp dụng cho từng nguồn bất định và phải được ghi dưới dạng văn bản đầy đủ về lý do chọn kiểm tra đó. Cơ bản phải chỉ ra lý do tại sao các bài kiểm tra được cho là có khả năng phát hiện lỗi trong nguồn bất định.

4. Nếu kiểm tra chất lượng đối với các thành phần tất định trả về kết quả lỗi, thì bộ tạo bit ngẫu nhiên bất định phải chuyển sang trạng thái lỗi và chỉ ra một điều kiện lỗi. Bộ tạo bit ngẫu nhiên bất định phải không thực hiện việc tạo đầu ra ngẫu nhiên trong khi ở trạng thái lỗi. Để thoát khỏi trạng thái lỗi, bộ tạo bit ngẫu nhiên bất định phải yêu cầu một số hình thức can thiệp, tốt nhất là sự can thiệp của người dùng (ví dụ: nạp điện hoặc khởi động lại) thì mới vượt qua được các bài kiểm tra chất lượng.

CHÚ THÍCH 2 Để khôi phục hoặc thoát khỏi trạng thái lỗi, bộ tạo bit ngẫu nhiên bất định sẽ được yêu cầu thực hiện theo các quy trình bảo trì.

Mặc dù là tùy chọn nhưng kiểm tra đối với nguồn bất định nên bao gồm các kiểm tra các đặc tính đã biết của nguồn bất định.

8.8.5  Kiểm tra chất lượng đối với đầu ra ngẫu nhiên của bộ tạo bit ngẫu nhiên bất định

Mục tiêu của các kiểm tra này là cung cấp kiểm tra cuối cùng về tính ngẫu nhiên của đầu ra từ bộ tạo bit ngẫu nhiên bất định. Nhìn chung, việc đưa kết quả của hàm chuyển đổi trạng thái bên trong và hàm tạo đầu ra vào các bài kiểm tra chất lượng đối với đầu ra ngẫu nhiên từ một bộ tạo bit ngẫu nhiên bất định đóng vai trò ít quan trọng hơn việc kiểm tra được áp dụng trực tiếp đối với đầu ra từ nguồn bất định không xác định. Những hàm này thường thực hiện việc trộn lẫn hoàn toàn thậm chí là một lỗi lớn của nguồn bất định cũng không gây ra các bất thường thống kê có thể phát hiện được trong đầu ra ngẫu nhiên của bộ tạo bit ngẫu nhiên bất định. Đây là hệ quả của yêu cầu bộ tạo bit ngẫu nhiên bất định phải tiếp tục hoạt động như một bộ tạo bit ngẫu nhiên tất định nếu các nguồn bất định bị lỗi hoặc chịu ảnh hưởng của kẻ tấn công. Tuy nhiên, kiểm tra thống kê đối với đầu ra ngẫu nhiên vẫn còn có tác dụng và có những yêu cầu dưới đây.

Các yêu cầu chức năng đối với kiểm tra chất lượng của đầu ra ngẫu nhiên như sau:

CHÚ THÍCH 1 Các yêu cầu chức năng chủ yếu liên quan đến kiểm tra thống kê. Như đã nêu ở trên, thông thường các bài kiểm tra thống kê không có hiệu quả trong việc xác nhận chất lượng của đầu ra ngẫu nhiên khi áp dụng quá trình xử lý sau mật mã mạnh.

1. Kiểm tra đầu ra ngẫu nhiên phải được bao gồm trong kiểm tra chất lượng tổng thể được thực hiện mỗi lần khởi động và/hoặc khởi động lại theo khoảng thời gian định kỳ trong quá trình sử dụng và theo yêu cầu của người dùng.

2. Bộ tạo bit ngẫu nhiên bất định phải được kiểm tra lỗi của một giá trị cố định bằng cách thực hiện kiểm tra trên mỗi khối đầu ra ngẫu nhiên được tạo ra bằng hàm tạo đầu ra. Xem 9.8.8 để có thông tin chi tiết cụ thể về kiểm tra bộ tạo bit ngẫu nhiên.

3. Nếu kiểm tra chất lượng đối với các thành phần tất định trả về kết quả lỗi, thì bộ tạo bit ngẫu nhiên bất định phải chuyển sang trạng thái lỗi và chỉ ra một điều kiện lỗi. Bộ tạo bit ngẫu nhiên bất định phải không thực hiện việc tạo đầu ra ngẫu nhiên trong khi ở trạng thái lỗi. Để thoát khỏi trạng thái lỗi, bộ tạo bit ngẫu nhiên bất định phải yêu cầu một số hình thức can thiệp, tốt nhất là sự can thiệp của người dùng (ví dụ: nạp điện hoặc khởi động lại) thì mới vượt qua được các bài kiểm tra chất lượng.

CHÚ THÍCH 2 Đ khôi phục hoặc thoát khỏi trạng thái lỗi, bộ tạo bit ngẫu nhiên bất định sẽ được yêu cầu thực hiện theo các quy trình bảo trì.

Có thể tùy chọn bài kiểm tra chất lượng sau đây để thực hiện trên đầu ra ngẫu nhiên. Khi đề xuất này được chọn, bài kiểm tra chất lượng phải đáp ứng yêu cầu chức năng số 1 ở trên. Kiểm tra chất lượng bộ tạo bit ngẫu nhiên bất định tối thiểu phải bao gồm tập hợp các phép thử sau trên một chuỗi 20.000 bit đầu ra ngẫu nhiên từ bộ tạo bit ngẫu nhiên.

Tập hợp tổng thể các bài kiểm tra đối với bộ tạo bit ngẫu nhiên bất định được coi là vượt qua nếu vượt qua được tất cả bn phép kiểm tra riêng lẻ. Các ngưỡng chỉ định bên dưới tương ứng với xác suất lỗi loại 1 là 10-4.

CHÚ THÍCH 3 Bốn phép kiểm tra bắt nguồn từ FIPS 140-2 [9] và được điều chnh trong AIS-31 [5].

a. Kiểm tra tần số đơn:

Cho X là số lượng số 1 trong mẫu. Vượt qua phép kiểm tra nếu 9725 < X < 10275

b. Kiểm tra Poker:

Chia chuỗi thành 5000 đoạn liên tiếp gồm 4 bit. Đếm số lần xuất hiện của 16 giá trị 4 bit có thể. Cho f(i) là số lần xuất hiện của giá trị 4 bit i (sao cho 0 ≤ i ≤ 15). Tính X = f(i)2 - 5000. Vượt qua phép kiểm tra nếu 2,16 ≤ X ≤ 46,17.

c. Kiểm tra loạt:

Một loạt được định nghĩa là một chuỗi dài nhất của các bit liên tiếp gồm tất cả các bit 1 hoặc tất cả các bit 0. Các lần xuất hiện của loạt gồm các bit 0 và bit 1 liên tiếp có độ dài từ 1 đến 6 được đếm và lưu trữ. Vượt qua phép kiểm tra nếu các số này đều nằm trong khoảng tương ứng được quy định trong Bảng 1 dưới đây. Điều này được áp dụng cho cả bit 0 và bit 1. Trong phép kiểm tra này, loạt có độ dài lớn hơn 6 được coi là có chiều dài 6 bit.

d. Kiểm tra loạt dài:

Một loạt dài được định nghĩa là một loạt có độ dài lớn hơn hoặc bằng 27 các bit 0 hoặc 1. Vượt qua phép kiểm tra nếu không tồn tại loạt dài.

CHÚ THÍCH 4 Lý do chọn phép kiểm tra loạt và loạt dài được quy định trong phụ lục J.

Bảng 1: Các khoảng kiểm tra loạt

Độ dài loạt

Khoảng yêu cầu

1

2315 - 2685

2

1114 - 1386

3

527 - 723

4

240 - 384

5

103 - 209

6+

103 - 209

Các kiểm tra bổ sung có thể được thực hiện đối với đầu ra ngẫu nhiên nếu:

1. Cần có sự đảm bảo chắc chắn hơn. Trong trường hợp này, các bài kiểm tra trong yêu cầu tùy chọn ở trên phải được tăng cường hoặc thay thế bằng các bài kiểm tra toàn diện hơn (cỡ mẫu hoặc các bài kiểm tra thống kê bổ sung có xác suất lỗi loại 1 nhỏ hơn hoặc bằng 10-4); và/hoặc

2. Kiểm tra chất lượng đối với đầu ra ngẫu nhiên trả về kết quả lỗi; bộ tạo bit ngẫu nhiên bất định phải lặp lại kiểm tra thêm một số lần nữa, nhưng không vượt quá ba lần. Nếu đầu ra ngẫu nhiên vượt qua kiểm tra trong quá trình kiểm thử này, thì bộ tạo bit ngẫu nhiên bất định có thể tiếp tục hoạt động bình thường.

8.9  Sự tương tác giữa các thành phần trong bộ tạo bit ngẫu nhiên bất định

8.9.1  Giới thiệu về sự tương tác giữa các thành phần trong bộ tạo bit ngẫu nhiên bất định

Các thành phần trong bộ tạo bit ngẫu nhiên bất định được mô tả trong tiêu chuẩn này được thiết kế để đạt được các mục tiêu an toàn nhất định bằng cách đáp ứng các mục tiêu và yêu cầu cụ thể. Phần này trình bày một số yêu cầu bổ sung liên quan đến mối quan hệ giữa các thành phần.

8.9.2  Yêu cầu đối với sự tương tác giữa các thành phần trong bộ tạo bit ngẫu nhiên bất định

1. Sự tương tác và thời gian của hàm chuyển đổi trạng thái bên trong và hàm tạo đầu ra phải đảm bảo rằng tỷ lệ hàm chuyển đổi trạng thái bên trong xử lý thêm đầu vào nguồn bất định bổ sung là đủ để cung cấp dữ liệu có thể sử dụng được cho hàm tạo đầu ra với hạn chế là hàm tạo đầu ra không được sử dụng lại dữ liệu từ trạng thái làm việc. Lưu ý rằng điều này không nhất thiết yêu cầu nguồn bất định và hàm chuyển đổi trạng thái bên trong hoạt động khi hàm tạo đầu ra tạo ra đầu ra. Ví dụ: trạng thái làm việc có thể lớn hơn nhiều chiều dài tối thiểu được chấp nhận của nó (tức là chiều dài của khối đầu ra ngẫu nhiên) cung cấp đủ số lượng bit cho việc tạo ra nhiều khối đầu ra ngẫu nhiên.

2. Quá trình xử lý đầu vào nguồn bất định và trạng thái bên trong (cả trạng thái làm việc và tham số bí mật) bằng hàm chuyển đổi trạng thái bên trong phải đảm bảo đầu vào nguồn bất định, trạng thái làm việc và tham số bí mật độc lập trong việc góp phần tạo độ bất định cho trạng thái làm việc sau mỗi lần thực hiện hàm chuyển đổi trạng thái bên trong, bất kể sự đóng góp độ bất định từ các nguồn khác nhau. Điều này đảm bảo tiêu chuẩn an toàn độc lập trong việc duy trì độ bất định trong bộ tạo bit ngẫu nhiên bất định.

8.9.3  Yêu cầu tùy chọn đối với sự tương tác giữa các thành phần trong bộ tạo bit ngẫu nhiên bất định

Các tính năng tùy chọn nhưng được khuyến nghị áp dụng cho sự tương tác giữa các thành phần trong bộ tạo bit ngẫu nhiên bất định như sau:

1. Các thành phần chức năng trong bộ tạo bit ngẫu nhiên bất định và sự tương tác giữa các thành phần này phải được thiết kế sao cho nếu nguồn bất định bị suy giảm hoàn toàn mà kiểm tra chất lượng không thể phát hiện được, thì các thành phần còn lại của bộ tạo bit ngẫu nhiên bất định phải tiếp tục hoạt động và tương tác như một bộ tạo bit ngẫu nhiên tất định. Để thực hiện điều này, có thể thiết kế bộ tạo bit ngẫu nhiên bất định như một bộ tạo bit ngẫu nhiên tất định sửa đổi để hoạt động trên đầu vào từ một hoặc nhiều nguồn bất định.

2. Bộ tạo bit ngẫu nhiên bất định phải được thiết kế sao cho trạng thái làm việc tiếp tục tích lũy ảnh hưởng từ các nguồn bất định ngay cả khi hàm tạo đầu ra không yêu cầu dữ liệu của trạng thái làm việc mới (có thể thực hiện dưới dạng quá trình nền khi bộ xử lý hoặc tài nguyên hệ thống có sẵn). Điều này được đặc biệt khuyến nghị nếu tồn tại những khoảng thời gian dài giữa những lần yêu cầu ứng dụng cho đầu ra ngẫu nhiên, trong đó trạng thái bên trong có thể dễ bị ảnh hưởng bởi sự quan sát do thời gian tăng lên (nếu thời gian không tăng lên thì sẽ không bị thay đổi).

9  Giới thiệu và yêu cầu đối với bộ tạo bit ngẫu nhiên tất định

9.1  Giới thiệu về bộ tạo bit ngẫu nhiên tất định

Bộ tạo bit ngẫu nhiên tất định sử dụng một thuật toán tất định đã được phê duyệt để tạo ra một chuỗi bit giả ngẫu nhiên từ một giá trị khởi tạo gọi là mầm, cùng với các đầu vào có thể khác. Do tính chất tất định của quá trình, bộ tạo bit ngẫu nhiên tất định được cho là tạo ra các bit “giả ngẫu nhiên” chứ không phải là các bit ngẫu nhiên, tức là xâu bit do bộ tạo bit ngẫu nhiên tất định tạo ra là dự đoán được và có thể xây dựng lại với kiến thức có được về thuật toán, mầm và thông tin đầu vào khác. Tuy nhiên, nếu đầu vào được giữ bí mật và thuật toán được thiết kế tốt, thì xâu bit sẽ là ngẫu nhiên.

Một bộ tạo bit ngẫu nhiên tất định được chia làm hai loại phụ thuộc vào đầu vào của nó. Mặc dù một bộ tạo bit ngẫu nhiên tất định phải lấy giá trị mầm làm nguồn bất định chính nhưng cũng có thể lấy các nguồn bất định bổ sung làm đầu vào. Nếu các nguồn bất định bổ sung này đều tất định (tức là các giá trị mầm) thì bộ tạo bit ngẫu nhiên tất định được gọi là bộ tạo bit ngẫu nhiên tất định thuần túy. Nếu ít nhất có một nguồn bất định là không xác định thì bộ tạo bit ngẫu nhiên tất định được gọi là bộ tạo bit ngẫu nhiên tất định lai ghép. Một bộ tạo bit ngẫu nhiên tất định lai ghép phải thỏa mãn tất cả các yêu cầu của một bộ tạo bit ngẫu nhiên tất định thuần túy cộng thêm thỏa mãn một số yêu cầu an toàn bổ sung được quy định trong 9.3.4.

Vào bất cứ thời điểm nào sau khi bộ tạo bit ngẫu nhiên tất định khởi tạo giá trị mầm, bộ tạo bit ngẫu nhiên tất định tồn tại trong một trạng thái được xác định bởi tất cả các thông tin đầu vào trước đó. Mầm chính được coi là xác định các “trường hợp khác nhau của một bộ tạo bit ngẫu nhiên tất định, mỗi chuỗi bit đầu ra (phụ thuộc vào một loạt đầu vào hoặc các giá trị của nguồn bất định bổ sung).

Độ an toàn của bộ tạo bit ngẫu nhiên tất định chỉ phụ thuộc vào nguồn bất định chính, mặc dù các nguồn bất định khác có thể được sử dụng để tạo ra độ bất định bổ sung giúp duy trì tính không thể dự đoán trước của đầu ra ngay cả khi giá trị mầm chính bị ảnh hưởng. Do đó, mầm chính sẽ cung cấp đủ độ bất định để đảm bảo mức an toàn mong muốn bộ tạo bit ngẫu nhiên tất định đạt được.

Các giá trị mầm cho một bộ tạo bit ngẫu nhiên tất định yêu cầu được cung cấp bởi một nguồn đầu vào bất định (ví dụ: bộ tạo bit ngẫu nhiên bất định). Độ an toàn của việc thực thi sử dụng bộ tạo bit ngẫu nhiên tất định là một vấn đề khi thực thi hệ thống; cả bộ tạo bit ngẫu nhiên tất định và nguồn đầu vào bất định phải được xem xét kỹ lưỡng.

Theo mục tiêu của tiêu chuẩn này, một bộ tạo bit ngẫu nhiên tất định phải đáp ứng các yêu cầu quy định trong mục 5 và 6. Khi mục tiêu và yêu cầu duy nhất của bộ tạo bit ngẫu nhiên tất định vượt quá các quy định trong mục 5 và 6 thì được áp dụng đối với thiết kế của bộ tạo bit ngẫu nhiên tất định quy định chi tiết trong 9.3 - 9.9. Các ví dụ về bộ tạo bit ngẫu nhiên tất định có trong phụ lục C.

9.2  Mô hình chức năng của bộ tạo bit ngẫu nhiên tất định

Phần này sẽ giới thiệu bản đặc tả của các thành phần và mô hình chung cho một bộ tạo bit ngẫu nhiên tất định. Sẽ mô tả hoạt động chung của một bộ tạo bit ngẫu nhiên tt định, bao gm các mục tiêu mà mỗi thành phần chức năng của bộ tạo bit ngẫu nhiên tất định dự kiến sẽ đạt được.

Hình 5 cung cấp một sơ đồ khối chức năng cho một bộ tạo bit ngẫu nhiên tất định đáp ứng tiêu chuẩn này. Cần lưu ý rằng các thành phần hiển thị không nhất thiết phải được thực thi như các chương trình riêng biệt nhưng phải thực thi chức năng. Mỗi thành phần cũng như mục tiêu và yêu cầu của các thành phần này giúp ngăn chặn những điểm yếu an toàn liên quan đến việc tạo bit ngẫu nhiên đã được biết đến trong các ứng dụng và môi trường mật mã. Nói chung, mỗi thành phần dưới đây sẽ được yêu cầu trong một bộ tạo bit ngẫu nhiên tất định. Trong một số ứng dụng, có thể lập luận rằng không có yêu cầu nào đối với một thành phần cố định. Nếu điều này được chứng minh và được ghi nhận, thì thành phần đó có thể loại bỏ khỏi bộ tạo bit ngẫu nhiên bất định, vì thành phần đó không có trong ứng dụng hoặc vì mục tiêu của thành phần đó đã được đáp ứng hoặc được giải quyết bằng các thành phần khác. Ví dụ: có hai tình huống phổ biến trong đó một bộ tạo bit ngẫu nhiên tất định muốn cập nhật giá trị mầm - do mầm được sử dụng “quá lâu” hoặc nghi ngờ rằng kẻ tấn công đã thực hiện một số kiểm soát nguy hại đối với trạng thái bên trong. Do đó, không cần thiết phải thay mầm mới nếu thiết bị ngừng hoạt động vì một số giới hạn (thời gian, số lần gọi...) và trạng thái bên trong được bảo vệ (ví dụ: bảo vệ bằng phần cứng).

Sau đây là tổng quan về cách thức các thành phần này tương tác để tạo ra đầu ra giả ngẫu nhiên. Mầm được cung cấp trực tiếp hoặc gián tiếp bởi một nguồn bất định không xác định.

Mầm được cung cấp trực tiếp bằng một trong hai cách sau. Cách đầu tiên là mầm được cung cấp trực tiếp nếu nó được tạo ra bởi một bộ tạo bit ngẫu nhiên bất định đáp ứng các yêu cầu của tiêu chuẩn này (tức là một bộ tạo bit ngẫu nhiên bất định được chấp nhận). Cách thứ hai là khi mầm được cung cấp bởi một nguồn bất định bên trong bộ tạo bit ngẫu nhiên tất định. Nguồn bất định như vậy phải được kiểm tra để đảm bảo rằng nó tạo ra đầu ra với tỷ lệ độ bất định đủ lớn tương tự như một bộ tạo bit ngẫu nhiên bất định.

Mầm được cung cấp gián tiếp nếu nó được tạo ra bởi một bộ tạo bit ngẫu nhiên tất định khác đáp ứng các yêu cầu của tiêu chuẩn này (tức là một bộ tạo bit ngẫu nhiên tất định được chấp nhận), giá trị trả về chính là mầm.

Sau khi mầm khởi tạo được cung cấp, nó được nạp vào trạng thái bên trong bằng một hàng chuyển đổi trạng thái bên trong chuyên biệt được gọi là nạp mầm. Chỉ có các bên có thẩm quyền mới có quyền truy cập vào hàm chuyển đổi trạng thái bên trong chuyên biệt đó và không thể quan sát hoặc thay đổi giá trị mầm này.

Sau khi bộ tạo bit ngẫu nhiên tất định được cung cấp một mầm khởi tạo và sẵn sàng làm việc, nó sẽ chuyển sang chế độ hoạt động và thực hiện hai việc: cập nhật trạng thái bên trong và tạo ra một khối dữ liệu ngẫu nhiên. Trạng thái bên trong được cập nhật bằng một hàm chuyển đổi trạng thái bên trong tất định, liên quan đến việc cập nhật trạng thái bên trong trong hình 5, lấy đầu vào là trạng thái bên trong hiện tại, đầu vào bổ sung được cung cấp bởi người dùng và đầu ra của nguồn bất định không xác định bất kỳ. Đặc biệt, nó sẽ không lấy mầm gốc làm đầu vào trừ khi mầm được giữ trong trạng thái bên trong cho mục đích này. Đầu ra của bộ tạo bit ngẫu nhiên tất định được tính bằng hàm tạo đầu ra tất định, lấy đầu vào là trạng thái bên trong hiện tại (vừa được cập nhật).

Trạng thái bên trong là sự kết hợp của một trạng thái làm việc được cập nhật liên tục và một loạt các tham số bí mật. Các tham số bí mật này thường điều khiển hoạt động của hàm chuyển đổi trạng thái bên trong và hàm tạo đầu ra theo cách thức tương tự như khóa mật mã (và chính là khóa mật mã). Việc kiểm soát các tham số bí mật này nằm ngoài phạm vi của tiêu chuẩn.

CHÚ THÍCH 1 Hướng dẫn quản lý khóa có trong ISO/IEC 11770. [6]

Thông thường, một bộ tạo bit ngẫu nhiên tất định cũng bao gồm một cơ chế cập nhật trạng thái bên trong khi một giá trị mầm mới được cung cấp. Quá trình cập nhật này phải được thực hiện bởi hàm chuyển đổi trạng thái bên trong chuyên biệt và được gọi là thay mầm mới. Trạng thái bên trong sau khi được thay mầm mới có thể hoặc không phụ thuộc vào trạng thái bên trong trước đó tùy thuộc vào phương pháp thay mềm mới nhưng có thể ch là xóa sạch trạng thái làm việc của bộ tạo bit ngẫu nhiên tất định và nạp mầm mới giống như hoạt động tạo mầm ban đầu.

Một bộ tạo bit ngẫu nhiên tất định an toàn phải bao gồm các cơ chế được thiết kế để tăng khả năng hoạt động an toàn liên tục trong trường hợp có lỗi hoặc bị ảnh hưởng. Khả năng lỗi trong việc thực hiện được giải quyết thông qua các bài kiểm tra chất lượng trên các thành phần khác nhau, chẳng hạn như kiểm tra với câu trả lời đã biết và kiểm tra đầu ra liên tục.

Mỗi bộ tạo bit ngẫu nhiên tất định được thiết kế để cung cấp tính an toàn về phía trước và phía sau khi quan sát từ bên ngoài ranh giới bộ tạo bit ngẫu nhiên tất định với điều kiện người quan sát không biết mầm hoặc giá trị trạng thái nào.

Khi quan sát từ bên trong ranh giới của bộ tạo bit ngẫu nhiên tất định, bộ tạo bit ngẫu nhiên tất định đó phải cung cấp tính an toàn về phía sau.

Đối với bộ tạo bit ngẫu nhiên tất định, tính an toàn về phía trước phụ thuộc vào việc sử dụng mầm bí mật và chèn thêm đầu vào trong mỗi quá trình tạo với độ bất định đủ lớn để đáp ứng yêu cầu an toàn. Tính an toàn về phía trước được cung cấp cho bộ tạo bit ngẫu nhiên tất định bằng cách bổ sung đầu vào của người dùng. Tuy nhiên, mức độ an toàn về phía trước phụ thuộc vào lượng độ bất định do người dùng nhập vào. Nếu đầu vào của người dùng cung cấp độ bất định ít nhất gấp đôi độ mạnh của bộ tạo bit ngẫu nhiên tất định cho mỗi yêu cầu các bit giả ngẫu nhiên, thì sẽ đảm bảo tính an toàn về phía trước.

CHÚ THÍCH 2 Ví dụ, nếu một bộ tạo bit ngẫu nhiên tất định cung cấp độ an toàn 128 bit, thì để đảm bảo tính an toàn về phía trước cần cả mầm và từng đầu vào bổ sung phải có ít nhất 128 bit bất định.

Điều này không khả thi đối với nhiều ứng dụng. Tuy nhiên, đầu vào của người dùng với một lượng độ bất định nhỏ cung cấp một số mức an toàn về phía trước. Điều này có thể phù hợp với một ứng dụng yêu cầu người dùng nhập vào với độ bất định cao cho các ứng dụng quan trọng (ví dụ: tạo khóa cho chữ ký số).

Đối với tính an toàn về phía sau, một bộ tạo bit ngẫu nhiên tất định thực thi đúng được khởi tạo với một mầm bí mật. Mầm được sử dụng để xác định trạng thái khởi tạo của bộ tạo bit ngẫu nhiên tất định. Đầu ra là một số hàm của trạng thái bên trong và trạng thái bên trong được cập nhật mỗi lần yêu cầu bit. Nếu mầm hoặc trạng thái nào đó bị lộ, các đầu ra trước đó có thể được xác định trừ khi hàm một chiều mật mã mạnh được sử dụng trong thiết kế của bộ tạo bit ngẫu nhiên tất định để chuyển từ trạng thái bên trong sao trạng thái bên trong tiếp theo.

Hình 5: Mô hình bộ tạo bit ngẫu nhiên tất định

9.3  Nguồn bất định của bộ tạo bit ngẫu nhiên tất định

9.3.1  Nguồn bất định chính của bộ tạo bit ngẫu nhiên tất định

Nguồn bất định chính của bộ tạo bit ngẫu nhiên tất định là một giá trị mầm. Giá trị mầm này được lấy từ nguồn bất định với tốc độ đầu ra bất định cho trước giống bộ tạo bit ngẫu nhiên bất định và được nhập vào bộ tạo bit ngẫu nhiên tất định trước khi yêu cầu các bit giả ngẫu nhiên từ bộ tạo bit ngẫu nhiên tất định. Thông tin chi tiết về các yêu cầu đối với nguồn giá trị mầm có trong 9.3.2.

Mầm, kích thước của mầm và độ bất định của mầm (nghĩa là tính ngẫu nhiên) phải được lựa chọn để tối thiểu xác suất chuỗi tạo ra bằng một giá trị mầm giống với chuỗi được tạo ra bằng mầm khác, và làm giảm xác suất mầm được đoán hoặc vét cạn. Vì tiêu chuẩn này không yêu cầu độ bất định đủ lớn cho mầm nhưng yêu cầu phải có độ bất định đủ lớn, độ dài của mầm lớn hơn độ an toàn được quy định nhằm đáp ứng độ bất định cần thiết. Tức là độ dài của mầm tối thiểu phải bằng số bit trong độ an toàn được quy định, tuy nhiên độ dài mầm phải lớn hơn mức ti thiểu để tăng độ tin cậy của độ bất định và việc tái sử dụng mầm. Việc sử dụng độ dài mầm nhỏ nhất chỉ được chấp nhận nếu mầm được tạo ra bởi một nguồn bất định đầy đủ, chẳng hạn như một bộ tạo bit ngẫu nhiên bất định hoặc bộ tạo bit ngẫu nhiên tất định có mầm được cung cấp bởi bộ tạo bit ngẫu nhiên bất định. Nhìn chung mầm có thể có kích thước khác nhau, nhưng đặc tả về các thuật toán bộ tạo bit ngẫu nhiên tất định phải có giả định này cho dù quá trình thực thi cụ thể có thể được tối ưu hóa để hỗ trợ mầm có độ dài nhất định.

Phân tích độ bất định của mầm là một thành phần quan trọng đối với việc đảm bảo an toàn cho bộ tạo bit ngẫu nhiên tất định. Tầm quan trọng của việc phân tích độ bất định được thể hiện rõ nhất khi xảy ra lỗi. Ví dụ: nếu độ an toàn mong muốn là 80 bit và được cho là đạt được, nhưng thực sự chỉ đạt được 40 bit, lượng độ bất định này đã bị tiêu hao khá nhanh chóng. Ngay c khi độ bất định thực tế là 60 bit, thì kẻ tấn công chủ động vẫn có thể làm tiêu hao độ bất định với chi phí hợp lý.

Việc tạo ra hoặc nhập độ bất định vào trong bộ tạo bit ngẫu nhiên tất định sử dụng một phương pháp không an toàn có thể làm mất đi các bảo đảm dự kiến. Để đảm bảo tính không thể dự đoán trước, cần phải thực hiện việc thu thập và xử lý mầm. Mầm và việc sử dụng nó trong bộ tạo bit ngẫu nhiên tất định được tạo ra và xử lý như sau.

1. Cấu trúc mầm: Mầm bao gồm đầu vào bất định và chuỗi thông tin cá nhân (xem 9.4 để biết thêm thông tin về chuỗi thông tin cá nhân) khi nguồn bất định không đủ mạnh. Sự kết hợp của đầu vào bất định và chuỗi thông tin cá nhân tùy chọn được gọi là vật liệu mầm. Hàm dẫn xuất được sử dụng để phân phối đầu vào bất định trên toàn bộ mầm (ví dụ: mầm không được xây dựng với tất cả độ bất định trên một đầu của mầm) bất cứ khi nào sử dụng chuỗi thông tin cá nhân, hoặc không sử dụng chuỗi thông tin cá nhân và đầu vào bất định không độc lập và phân bố đều trong chuỗi đầu vào bất định. Giá trị mầm kết quả vẫn là duy nhất cho dù có sử dụng chuỗi thông tin cá nhân hay không.

2. Sử dụng mầm: Bộ tạo bit ngẫu nhiên tất định có thể được sử dụng để tạo ra cả thông tin bí mật và công khai. Trong cả hai trường hợp, mầm phải được giữ bí mật. Không nên sử dụng quá trình khởi tạo đơn của bộ tạo bit ngẫu nhiên tất định để tạo ra cả giá trị bí mật và công khai. Yếu tố chi phí và rủi ro phải được tính đến khi xác định có thể đưa ra các giả thuyết khác nhau về giá trị bí mật và công khai hay không.

CHÚ THÍCH 1 Nếu bộ tạo bit ngẫu nhiên tất định đảm bảo tính an toàn về phía trước và phía sau và nếu quá trình thực thi chống lại được tấn công kênh kề, có thể bỏ qua tính năng an toàn này để không sử dụng quá trình khi tạo đơn của bộ tạo bit ngẫu nhiên tất định nhằm tạo ra cả giá trị bí mật và công khai mà không làm mất đi độ an toàn.

Mầm được sử dụng để khởi tạo trong quá trình khởi tạo bộ tạo bit ngẫu nhiên tất định sẽ không được sử dụng để thay mầm mới cho cùng một quá trình khởi tạo hoặc sử dụng làm mầm cho bộ tạo bit ngẫu nhiên tất định khác.

3. Độ bất định của mầm: Đầu vào bất định của mầm phải chứa độ bất định đầy đủ cho mức an toàn mong muốn và độ bất định phải được phân bố trên toàn mầm. Ứng dụng có thể hoặc không quan tâm đến tính chống va chạm. Đ đáp ứng tính chống va chạm, mầm phải có độ bất định lớn hơn hoặc bằng 120 bit hoặc độ an toàn cần thiết cho ứng dụng (tức là độ bất định ≥ max (120, security_strength)). Nếu bộ tạo bit ngẫu nhiên tất định đã chọn và mầm không thể cung cấp độ an toàn như yêu cầu của ứng dụng thì phải sử dụng một bộ tạo bit ngẫu nhiên tất định khác.

4. Kích thước mầm: Kích thước tối thiểu của mầm phụ thuộc vào bộ tạo bit ngẫu nhiên tất định được chọn, độ an toàn mà ứng dụng yêu cầu và nguồn bất định. Kích thước mầm tối thiểu phải lớn hơn hoặc bằng độ an toàn yêu cầu tính bằng bit, tùy thuộc vào tỷ lệ độ bất định và sự đảm bảo nguồn bất định (xem thảo luận ở trên). Ví dụ: nếu cần 160 bit bất định, thì nguồn bất định cần mầm có kích thước 240 bit trở lên để đạt được 160 bit bất định.

5. Tính bí mật của mầm: Mầm được xử lý theo cách phù hợp với yêu cầu an toàn đối với dữ liệu mục tiêu. Ví dụ: nếu bí mật duy nhất trong hệ mật là khóa, thì mầm được sử dụng để tạo khóa cũng được coi là khóa.

6. Chu kỳ sử dụng mầm: Mầm của bộ tạo bit ngẫu nhiên tất định có thời hạn sử dụng nhất định, sau đó sẽ không còn sử dụng được nữa. Mỗi mầm sẽ có một vòng đời hữu hạn nhất định. Mầm phải được cập nhật định kỳ hoặc bị thay thế sau khi hết vòng đời của nó. Nếu biết được giá trị mầm (nghĩa là mầm bị tổn thương), các thực thể trái phép có thể xác định được đầu ra của bộ tạo bit ngẫu nhiên tất định. Thời gian sử dụng có thể tính bằng khoảng thời gian hoặc số lượng tối đa đầu ra được tạo ra bởi mầm đó.

Trong một số ứng dụng (ví dụ: smartcard), không thể thực hiện quá trình thay mầm mới vì quá trình này có thể làm giảm độ an toàn. Trong những trường hợp như vậy, biện pháp tốt nhất là thay thế bộ tạo bit ngẫu nhiên tất định, do đó có được một mầm mới (ví dụ: sử dụng thẻ smartcard mới). Trong các ứng dụng khác, thay mầm mới lại là lựa chọn thiết kế phù hợp. Thay mầm mới (tức là thay thế một mầm bằng mầm mới) là phương pháp khôi phục tính bí mật của đầu ra bộ tạo bit ngẫu nhiên tất định nếu kẻ tấn công biết được giá trị mầm. Thay mầm mới định kỳ là biện pháp đối phó tốt với mối đe dọa tiềm ẩn là mầm và đầu ra bộ tạo bit ngẫu nhiên tất định bị tổn hại. Tuy nhiên, kết quả từ việc thay mầm mới chỉ giống như bộ tạo bit ngẫu nhiên bất định được sử dụng để cung cấp mầm mới (hoặc một chuỗi bộ tạo bit ngẫu nhiên tất định được khởi tạo bởi một bộ tạo bit ngẫu nhiên bất định). Việc tạo ra quá nhiều đầu ra từ một mầm (và thông tin đầu vào khác) cung cấp thông tin quan trọng giúp dự đoán thành công đầu ra sắp tới. Thay mầm mới định kỳ s giảm rủi ro về an toàn, giảm khả năng thỏa hiệp dữ liệu mục tiêu được bảo vệ bởi các cơ chế mã hóa sử dụng bộ tạo bit ngẫu nhiên tất định.

Việc thay mầm mới cho bộ tạo bit ngẫu nhiên tất định phải được thực hiện theo quy định đối với bộ tạo bit ngẫu nhiên tất định cụ thể. Khi có được mầm mới trong quá trình thay mầm, mầm mới đó phải được kiểm tra để đảm bảo rằng hai mầm liên tiếp không giống nhau. Hơn một mầm không được lưu trong bộ tạo bit ngẫu nhiên tất định. Một mầm không được lưu ở dạng ban đầu, nhưng được chuyển đổi bằng quy trình một chiều. Khi mầm mới được tạo ra và so sánh với mầm “cũ” (tức là mầm cũ đã được chuyển đổi), mầm mới phải thay thế cho mầm cũ trong bộ nhớ. Mầm cũ sẽ bị hủy. Nếu mầm mới được xác định là giống hệt mầm cũ, thì phải tạo ra một mầm mới khác.

7. Chia tách mầm: Khi tài nguyên cho phép (ví dụ: dung lượng lưu trữ), nên sử dụng mầm khác nhau (tức là không lặp lại) để tạo ra các loại dữ liệu ngẫu nhiên khác nhau (nghĩa là các “trường hợp” khác nhau của bộ tạo bit ngẫu nhiên tất định). Ví dụ, mầm được sử dụng để tạo ra giá trị công khai phải khác với mầm được sử dụng để tạo ra giá trị bí mật. Mầm được sử dụng bởi kỹ thuật của bộ tạo bit ngẫu nhiên tất định để tạo ra các cặp khóa bất đối xứng phải khác với mầm được sử dụng bởi cùng một kỹ thuật của bộ tạo bit ngẫu nhiên tất định (hoặc khác) để tạo mầm cho bộ tạo bit ngẫu nhiên tất định khác, và tương tự khác với mầm được sử dụng bởi cùng một kỹ thuật của bộ tạo bit ngẫu nhiên tất định (hoặc khác) để tạo khóa đối xứng. Mầm được sử dụng bởi kỹ thuật của bộ tạo bit ngẫu nhiên tất định để tạo ra các thách thức ngẫu nhiên phải khác với mầm được sử dụng bởi cùng một kỹ thuật của bộ tạo bit ngẫu nhiên tất định (hoặc khác) để tạo ra PINS hoặc mật khẩu. Tuy nhiên, số lượng phân tách mầm là quyết định liên quan đến chi phí/lợi ích.

CHÚ THÍCH 2 Nếu bộ tạo bit ngẫu nhiên tất định đảm bảo tính an toàn về phía trước và phía sau và nếu việc thực thi chống lại được tấn công kênh kề, có thể sử dụng số ngẫu nhiên được tạo bởi một trường hợp của bộ tạo bit ngẫu nhiên tất định cho các loại dữ liệu ngẫu nhiên khác nhau mà không làm giảm độ an toàn.

9.3.2  Tạo giá trị mầm cho bộ tạo bit ngẫu nhiên tất định

Giá trị mầm cho một bộ tạo bit ngẫu nhiên tất định được chấp nhận phải được tạo ra bằng một trong ba cách sau:

1. Mầm được tạo ra bằng một bộ tạo bit ngẫu nhiên bất định được chấp nhận để tạo ra đầu ra với tỷ lệ bất định đủ lớn.

2. Mầm được tạo ra bằng một bộ tạo bit ngẫu nhiên tất định được chấp nhận để tạo ra đầu ra với t lệ bất định đủ lớn. Bộ tạo bit ngẫu nhiên tất định này cũng phải có mầm được tạo ra theo các yêu cầu về tạo mầm. Do đó, một chuỗi các bộ tạo bit ngẫu nhiên tất định có thể được dự kiến tạo ra mầm cho bộ tạo bit ngẫu nhiên tất định kế tiếp. Tuy nhiên, chuỗi này luôn bắt đầu bằng một bộ tạo bit ngẫu nhiên bất định được chấp nhận hoặc một bộ tạo bit ngẫu nhiên tất định được chấp nhận để tạo ra các giá trị mầm. Nói cách khác, nếu mầm được tạo ra bởi một bộ tạo bit ngẫu nhiên tất định hoặc một chuỗi các bộ tạo bit ngẫu nhiên tất định được chấp nhận, thì bộ tạo bit ngẫu nhiên tất định cấp cao nhất phải lấy mầm từ một bộ tạo bit ngẫu nhiên bất định hoặc một bộ tạo bit ngẫu nhiên tất định bên trong có bộ tạo bit ngẫu nhiên bất định.

3. Mầm được tạo bởi một nguồn bt định thích hợp. Nguồn này có thể bị chệch và/hoặc tạo ra các bit khác nhau. Nếu giá trị mầm được tạo ra theo cách này thì nhà phát triển phải đánh giá t lệ độ bất định được tạo ra từ nguồn và đảm bảo rằng nguồn đáp ứng tất cả các yêu cầu đối với nguồn bất định có trong 6.2.2, 8.3 và 8.8.4.

9.3.3  Nguồn bất định bổ sung cho bộ tạo bit ngẫu nhiên tất định

Hoạt động của bộ tạo bit ngẫu nhiên tất định cũng bao gồm một hoặc nhiều nguồn bất định bổ sung. Một nguồn bất định bổ sung có thể hữu ích vì nhiều lý do.

Một bộ tạo bit ngẫu nhiên tất định có thể có một nguồn bất định bổ sung là nguồn bất định xác định hoặc nguồn bất định không xác định. Một bộ tạo bit ngẫu nhiên tất định có nguồn bất định không xác định được gọi là bộ tạo bit ngẫu nhiên tất định lai ghép. Các bộ tạo bit ngẫu nhiên tất định lai ghép được thảo luận trong 9.3.4.

Mặc dù có thêm tính không thể dự đoán được đối với đầu ra của một bộ tạo bit ngẫu nhiên, nhưng độ an toàn của bộ tạo bit ngẫu nhiên vẫn chỉ dựa vào nguồn bất định chính. Do đó, đầu ra của một bộ tạo bit ngẫu nhiên được giữ an toàn ngay cả khi kẻ tấn công biết được đầu ra của tất cả các nguồn bất định bổ sung và/hoặc khi kẻ tấn công có một số kết quả đo lường nhất định ảnh hưởng đến đầu ra của các nguồn bất định bổ sung.

Ưu điểm của việc sử dụng một nguồn bất định không xác định làm nguồn bất định bổ sung là cho phép đầu ra của bộ tạo bit ngẫu nhiên tất định trở nên bất định và giúp ngăn chặn phân tích mã và/hoặc thêm các tính năng an toàn như tính an toàn về phía trước và phía sau.

9.3.4  Bộ tạo bit ngẫu nhiên tất định lai ghép

Một bộ tạo bit ngẫu nhiên tất định được gọi là bộ tạo bit ngẫu nhiên tất định lai ghép nếu nó lấy nguồn bất định không xác định làm đầu vào bổ sung; ngược lại được gọi là bộ tạo bit ngẫu nhiên tất định thuần túy.

Các yêu cầu chức năng bổ sung đối với một bộ tạo bit ngẫu nhiên tất định lai ghép như sau:

1. Kẻ tấn công không thể đoán được bit tiếp theo với xác suất lớn hơn đáng kể 1/2, ngay cả khi kẻ tấn công hoàn toàn điều khiển đầu ra của nguồn bất định không xác định.

2. Không kẻ tấn công nào có thể khôi phục lại bất cứ thông tin gì về nguồn bất định không xác định bằng cách quan sát đầu ra của bộ tạo bit ngẫu nhiên.

3. Không người nào không có thẩm quyền có thể thao tác hoặc làm ảnh hưởng đến nguồn bất định không xác định.

9.4  Đầu vào bổ sung của bộ tạo bit ngẫu nhiên tất định

Hoạt động của bộ tạo bit ngẫu nhiên tất định bao gồm các đầu vào bổ sung tùy chọn. Bộ tạo bit ngẫu nhiên tất định có thể yêu cầu thông tin về đầu vào bổ sung trong quá trình khởi tạo và tạo bit. Thông tin này bao gồm các tham số đầu vào khi ứng dụng gọi bộ tạo bit ngẫu nhiên tất định và đầu vào bổ sung có thể công khai. Các đầu vào bổ sung không làm yếu bộ tạo bit ngẫu nhiên.

Tùy thuộc vào bộ tạo bit ngẫu nhiên tất định mà yêu cầu thông tin về biến thời gian, ví dụ: bộ đếm hoặc giá trị ngày tháng/thời gian.

Bộ tạo bit ngẫu nhiên tất định trong tiêu chuẩn này cho phép sử dụng một chuỗi thông tin cá nhân tùy chọn trong quá trình khởi tạo. Chuỗi thông tin cá nhân được sử dụng kết hợp với các bit bất định để tạo ra mầm. Ví dụ về dữ liệu có thể bao gồm trong chuỗi cá nhân bao gồm số sản phẩm và thiết bị, định danh người dùng, ngày và tem thời gian, địa chỉ IP hoặc bất cứ thông tin nào khác giúp phân biệt bộ tạo bit ngẫu nhiên tất định.

Các yêu cầu chức năng đối với đầu vào bổ sung như sau:

1. Khi bộ đếm được sử dụng trong bộ tạo bit ngẫu nhiên tất định thì nó không được lặp lại trong “trường hợp” của bộ tạo bit ngẫu nhiên tất định. Khi bộ tạo bit ngẫu nhiên tất định được khởi tạo với mầm mới, bộ đếm được thiết lập với một giá trị cố định (ví dụ: đặt thành 1), nhưng phải được cập nhật cho mỗi trạng thái của bộ tạo bit ngẫu nhiên tất định và không được lặp lại.

2. Khi giá trị ngày/giờ được sử dụng trong bộ tạo bit ngẫu nhiên tất định thì không được lặp lại. Bất cứ khi nào giá trị ngày/giờ được yêu cầu bởi bộ tạo bit ngẫu nhiên tất định, thì hoặc sử dụng một giá trị ngày/giờ khác với lần sử dụng trước đó, hoặc kỹ thuật khác phải bổ sung giá trị ngày/giờ để đảm bảo tính duy nhất (ví dụ: bộ đếm nối giá trị ngày/giờ).

3. Khi chuỗi thông tin cá nhân được sử dụng, nó phải là duy nhất cho tất cả các quá trình khởi tạo của cùng một loại bộ tạo bit ngẫu nhiên tất định.

4. Bộ tạo bit ngẫu nhiên tất định phải vẫn an toàn ngay cả khi kẻ tấn công có quyền điều khiển hoàn toàn đầu vào bổ sung của bộ tạo, tức là ngay cả khi kẻ tấn công có thể lựa chọn các giá trị của đầu vào bổ sung, thì vẫn không thể dự đoán được bit tiếp theo do bộ tạo bit ngẫu nhiên tạo ra với xác suất lớn hơn đáng kể 1/2.

5. Phải đảm bảo rằng hàm chuyển đổi trạng thái bên trong cập nhật trạng thái bên trong có thuộc tính là kích thước giới hạn của nó không bị giảm đi sau những lần gọi lặp lại mà không thay mầm mới, vì điều này sẽ làm cạn kiệt độ bất định của trạng thái bên trong.

9.5  Trạng thái bên trong của bộ tạo bit ngẫu nhiên tất định

Trạng thái bên trong là bộ nhớ của bộ tạo bit ngẫu nhiên tất định và bao gồm tất cả các tham số, biến và các giá trị lưu trữ khác mà bộ tạo bit ngẫu nhiên tất định sử dụng. Trạng thái bên trong bao gồm các giá trị được thực hiện bởi hàm chuyển đổi trạng thái bên trong giữa các yêu cầu, khóa được sử dụng trong mỗi lần gọi, đầu vào của người dùng được thu thập khi yêu cầu được xử lý và các tham số biến thời gian được bộ tạo bit ngẫu nhiên tất định sử dụng. Trạng thái bên trong phụ thuộc vào bộ tạo bit ngẫu nhiên tất định cụ thể và bao gồm tất cả các thông tin được yêu cầu để tạo ra các bit giả ngẫu nhiên cho các lần yêu cầu liên tiếp. Một số phần của trạng thái bên trong được thay đổi bởi hàm chuyển đổi trạng thái bên trong trong mỗi vòng lặp của bộ tạo bit ngẫu nhiên tất định.

Trạng thái bên trong được coi là sự kết hợp giữ trạng thái làm việc được cập nhật liên tục trong quá trình thực hiện và tham số bí mật cố định trong quá trình thực hiện và chỉ được cập nhật định kỳ nếu có sự can thiệp của người dùng từ bên ngoài.

Các yêu cầu chức năng đối với trạng thái bên trong như sau:

1. Bộ tạo bit ngẫu nhiên tất định phải được khởi tạo trước khi tạo ra đầu ra. Trong quá trình khởi tạo, trạng thái khởi tạo được thiết lập cho bộ tạo bit ngẫu nhiên tất định, một phần từ mầm. Quá trình khởi tạo của bộ tạo bit ngẫu nhiên tất định có thể được thay mầm mới bất cứ lúc nào. Trạng thái của bộ tạo bit ngẫu nhiên tất định bao gồm thông tin được thực hiện và khóa (tùy chọn) được sử dụng bởi bộ tạo.

2. Trạng thái bên trong phải nằm hoàn toàn trong ranh giới của bộ tạo bit ngẫu nhiên tất định.

3. Trạng thái bên trong phải được bảo vệ ít nhất cũng như việc sử dụng đầu ra dự định của các ứng dụng.

4. Trong trường hợp có các giá trị không nên sử dụng làm tham số bí mật (ví dụ: khóa mật mã “yếu”) thì tham số bí mật phải được kiểm tra để đảm bảo rằng các giá trị tham số bí mật này không được sử dụng.

5. Tham số bí mật nếu tồn tại thì phải được thay thế định kỳ.

9.6  Hàm chuyển đổi trạng thái bên trong của bộ tạo bit ngẫu nhiên tất định

Hàm chuyển đổi trạng thái bên trong sử dụng trạng thái bên trong và một hoặc nhiều thuật toán để tạo ra các bit giả ngẫu nhiên. Trong quá trình này, trạng thái bên trong của bộ tạo bit ngẫu nhiên tất định bị xóa. Thuật toán sử dụng và phương pháp xóa trạng thái bên trong phụ thuộc vào bộ tạo bit ngẫu nhiên tất định cụ thể.

Bộ tạo bit ngẫu nhiên tất định trong tiêu chuẩn này có ba hàm chuyển đổi trạng thái bên trong riêng biệt, cụ thể là:

1. Trước khi sử dụng bộ tạo bit ngẫu nhiên tất định lần đầu, nguyên liệu mầm được thu thập và xác định tất cả đầu vào khởi tạo. Đầu vào khởi tạo được dùng để xác định trạng thái khởi tạo của bộ tạo bit ngẫu nhiên tất định.

2. Mỗi yêu cầu bit giả ngẫu nhiên tạo ra các bit theo yêu cầu sử dụng trạng thái bên trong hiện tại và xác định trạng thái bên trong mới được sử dụng cho yêu cầu tiếp theo; và

3. Khi ứng dụng xác định thay mầm mới cho bộ tạo bit ngẫu nhiên tất định, hàm thay mầm mới thu thập nguyên liệu tạo mầm mới, kết hợp nó với các giá trị trạng thái bên trong hiện tại và xác định trạng thái bên trong mới cho lần yêu cầu bit giả ngẫu nhiên tiếp theo. Bằng cách kết hợp nguyên liệu tạo mầm mới với trạng thái bên trong hiện tại, độ bất định có sẵn từ trạng thái hiện tại không mất đi mà được tăng thêm bởi độ bất định của nguyên liệu tạo mầm mới.

Các yêu cầu chức năng đối với hàm chuyển đổi trạng thái bên trong như sau:

a. Bộ tạo bit ngẫu nhiên tất định phải chuyển đổi giữa các trạng thái theo yêu cầu (tức là khi bộ tạo được yêu cầu cung cấp các bit giả ngẫu nhiên mới). Bộ tạo bit ngẫu nhiên tất định cũng có thể được thực thi để chuyển đổi nhằm đối phó với các sự kiện bên ngoài (ví dụ: gián đoạn hệ thống) hoặc chuyển tiếp liên tục (ví dụ: bất cứ khi nào có thời gian để chạy bộ tạo). Tính không thể dự đoán có được khi bộ tạo chuyển tiếp giữa các trạng thái liên tục hoặc để xử lý với sự kiện bên ngoài. Tuy nhiên, khi bộ tạo bit ngẫu nhiên tất định chuyển từ trạng thái này sang trạng thái khác giữa những lần yêu cầu, việc thay mầm mới và/hoặc thay khóa cần được thực hiện thường xuyên hơn.

b. Hàm chuyển đổi trạng thái bên trong đạt được tính an toàn về phía sau bằng việc sử dụng hiệu quả hàm một chiều, chẳng hạn như hàm băm mật mã.

c. Hàm chuyển đổi trạng thái bên trong có đặc tính là tất cả các bit trong trạng thái làm việc (và đầu vào nguồn bất định không xác định nếu có) ảnh hưởng đến các bit đầu ra của hàm chuyển đổi trạng thái bên trong.

d. Hoạt động của hàm chuyển đổi trạng thái bên trong phải được bảo vệ chống lại quan sát và phân tích như tiêu thụ điện năng, thời gian, phân rã phóng xạ hoặc các tấn công kênh kề khác. Các giá trị mà hàm chuyển đổi trạng thái bên trong làm việc (trạng thái bên trong, tham số bí mật và đầu vào nguồn bất định) là những giá trị quan trọng đảm bảo tính bí mật cho đầu ra ngẫu nhiên sắp tới. Tấn công kênh kề có thể phá vỡ tính bí mật này.

e. Phải đảm bảo rằng hàm chuyển đổi trạng thái bên trong cập nhật trạng thái bên trong có đặc tính là kích thước giới hạn của nó không bị suy giảm sau khi lặp đi lặp lại nhiều lần gọi mà không cần thay mầm mới vì điều này sẽ làm mất đi độ bất định của trạng thái bên trong.

9.7  Hàm tạo đầu ra của bộ tạo bit ngẫu nhiên tất định

Hàm tạo đầu ra của bộ tạo bit ngẫu nhiên tất định tạo ra các bit giả ngẫu nhiên là một hàm của trạng thái bên trong bộ tạo bit ngẫu nhiên tất định và bất kỳ đầu vào được sử dụng trong khi hàm chuyển đổi trạng thái bên trong đang hoạt động. Những bit giả ngẫu nhiên này là xác định dựa trên thông tin đầu vào. Định dạng của các bit trước khi xuất ra là xác định bởi một quá trình thực thi cụ thể.

Các yêu cầu chức năng đối với hàm tạo đầu ra như sau:

1. Hàm tạo đầu ra cho phép kiểm tra với câu trả lời đã biết khi được yêu cầu.

2. Bộ tạo bit ngẫu nhiên tất định không tạo đầu ra cho đến khi có sẵn mầm với độ bất định đầy đủ.

3. Bộ tạo bit ngẫu nhiên tất định yêu cầu khóa không tạo đầu ra cho đến khi có khóa.

4. Hàm tạo đầu ra không làm rò rỉ thông tin về trạng thái bên trong có thể làm ảnh hưởng đến đầu ra sắp tới. Hàm tạo đầu ra phải không có hàm ngược để tiết lộ thông tin gì về trạng thái bên trong. Nghĩa là thông tin về đầu ra ngẫu nhiên được tạo ra bởi hàm tạo đầu ra không được tiết lộ thông tin gì về đầu vào của hàm.

9.8  Hàm hỗ trợ của bộ tạo bit ngẫu nhiên tất định

9.8.1  Giới thiệu về các hàm hỗ trợ của bộ tạo bit ngẫu nhiên tất định

Mặc dù không thể hiện trong hình 5, bộ tạo bit ngẫu nhiên tất định phải có các cơ chế để đo chất lượng.

Bộ tạo bit ngẫu nhiên tất định phải được thiết kế để cho phép kiểm tra đảm bảo bộ tạo được thực thi đúng và tiếp tục hoạt động chính xác. Hàm kiểm tra phải sẵn sàng cho mục đích này. Hàm kiểm tra cũng cho phép chèn các giá trị xác định trước của thông tin đầu vào để kiểm tra các kết qu mong đợi (kiểm tra với câu trả lời đã biết). Nếu kiểm tra bị lỗi, bộ tạo bit ngẫu nhiên tất định phải chuyển sang trạng thái lỗi và đưa ra cảnh báo lỗi. Bộ tạo bit ngẫu nhiên tất định sẽ không thực hiện hoạt động nào khi ở trạng thái lỗi và tất cả đầu ra bị chặn lại.

CHÚ THÍCH Trạng thái lỗi bao gồm các lỗi “cứng” ch ra sự cố về thiết bị đòi hỏi phải bảo trì, dịch vụ, sửa chữa hoặc thay thế bộ tạo bit ngẫu nhiên tất định hoặc các lỗi “mềm” có thể phục hồi yêu cầu khởi tạo hoặc thiết lập lại bộ tạo bit ngẫu nhiên tất định. Việc khôi phục từ trạng thái lỗi có thể thực hiện được ngoại trừ các lỗi “cứng” đòi hi phải bảo trì, dịch vụ, sửa chữa hoặc thay thế bộ tạo bit ngẫu nhiên tất định.

9.8.2  Kiểm tra chất lượng bộ tạo bit ngẫu nhiên tất định

Bộ tạo bit ngẫu nhiên tất định phải thực hiện kiểm tra chất lượng để đảm bảo rằng nó vẫn tiếp tục hoạt động bình thường. Kiểm tra chất lượng đối với chức năng của bộ tạo bit ngẫu nhiên phải được thực hiện khi bộ tạo bit ngẫu nhiên tất định được bật lên, theo yêu cầu (ví dụ: theo yêu cầu của ứng dụng, hoặc khi cài đặt lại, khởi động lại hoặc sạc điện) và trong các điều kiện khác nhau, điển hình là khi thực hiện hàm hoặc thao tác cụ thể (nghĩa là kiểm tra có điều kiện). Một số kiểm tra chất lượng cũng có thể được tiến hành liên tục. Bộ tạo bit ngẫu nhiên có thể thực hiện tùy ý các kiểm tra chất lượng khác đối với chức năng của bộ tạo bit ngẫu nhiên tất định bên cạnh các bài kiểm tra được quy định trong tiêu chuẩn này.

Tất cả đầu ra dữ liệu từ bộ tạo bit ngẫu nhiên tất định sẽ bị chặn lại khi thực hiện các bài kiểm tra này. Kết quả từ kiểm tra với câu trả lời đã biết không tạo ra các bit ngẫu nhiên. Tuy nhiên, các bit được sử dụng trong các loại kiểm tra khác được sử dụng như đầu ra nếu bài kiểm tra đó thành công.

Khi bộ tạo bit ngẫu nhiên tất định không vượt qua kiểm tra chất lượng, nó sẽ chuyển sang trạng thái lỗi và xuất ra một cảnh báo lỗi. Bộ tạo bit ngẫu nhiên tất định phải không thực hiện bất cứ hoạt động nào khi trong trạng thái lỗi và không dữ liệu nào được xuất ra khi vẫn tồn tại trạng thái lỗi. Khi trong trạng thái lỗi, sự can thiệp của người dùng (ví dụ: sạc điện, khởi động lại bộ tạo bit ngẫu nhiên tất định) sẽ được yêu cầu để thoát khỏi trạng thái lỗi.

9.8.3  Kiểm tra thuật toán tất định của bộ tạo bit ngẫu nhiên tất định

Kiểm tra này phải được thực hiện đối với thuật toán của bộ tạo bit ngẫu nhiên tất định. Kiểm tra với câu trả lời đã biết sẽ được tiến hành khi bật nguồn, khi có yêu cầu và có thể được tiến hành định kỳ. Kiểm tra với câu trả lời đã biết bao gồm việc vận hành thuật toán trên dữ liệu mà đầu ra chính xác đã biết và kiểm tra xem đầu ra được tính toán có bằng với đầu ra mong đợi (câu trả lời đã biết) hay không. Kiểm tra thất bại nếu đầu ra được tính toán không bằng với câu trả lời đã biết. Trong trường hợp này, bộ tạo bit ngẫu nhiên tất định phải chuyển sang trạng thái lỗi và xuất ra một cảnh báo lỗi.

9.8.4  Kiểm tra tính toàn vẹn phần mềm/phần sụn của bộ tạo bit ngẫu nhiên tất định

Kiểm tra này được áp dụng cho bộ tạo bit ngẫu nhiên tất định có chứa phần mềm hoặc phần sụn. Kiểm tra tính toàn vẹn phần mềm/phần sụn bằng kỹ thuật xác thực được áp dụng cho mọi phần mềm và phần sụn nằm trong bộ tạo bit ngẫu nhiên tất định khi bộ tạo bit ngẫu nhiên tất định được bật nguồn để xác định tính toàn vẹn của mã. Các kỹ thuật xác thực bao gồm mã xác thực thông báo hoặc chữ ký số bằng các thuật toán đã biết, hoặc mã phát hiện lỗi (EDC) khi thực thi mã nằm trong ranh giới mật mã. Kiểm tra này thất bại nếu kết quả tính toán không bằng kết quả được tạo ra trước đó. Trong trường hợp này, bộ tạo bit ngẫu nhiên tất định phải chuyển sang trạng thái lỗi và xuất ra một cảnh báo lỗi.

9.8.5  Kiểm tra các hàm quan trọng của bộ tạo bit ngẫu nhiên tất định

Tất cả các hàm quan trọng liên quan đến hoạt động an toàn của bộ tạo bit ngẫu nhiên tất định phải được kiểm tra khi bật nguồn và khi có yêu cầu. Những hàm quan trọng trong bộ tạo bit ngẫu nhiên tất định được thực hiện trong một số điều kiện cố định cụ thể phải được kiểm tra khi các điều kiện đó phát sinh.

9.8.6  Kiểm tra độ chịu tải phần mềm/phần sụn của bộ tạo bit ngẫu nhiên tất định

Kiểm tra này được thực hiện với các bộ tạo bit ngẫu nhiên tất định chứa phần mềm hoặc phần sụn. Cơ chế mật mã sử dụng kỹ thuật xác thực được chấp nhận (ví dụ: mã xác thực, thuật toán chữ ký số, hoặc HMAC) được áp dụng cho mọi phần mềm và phần sụn (ví dụ: EEPROM, RAM và mạch FPGA) được tải từ bên ngoài vào bộ tạo bit ngẫu nhiên tất định. Kiểm tra này phải xác nhận mã xác thực hoặc chữ ký số. Kết quả tính toán được so sánh với kết quả được tạo ra trước đó. Kiểm tra thất bại nếu hai kết quả này không giống nhau. Trong trường hợp này, bộ tạo bit ngẫu nhiên tất định chuyển sang trạng thái lỗi và xuất ra một cảnh báo lỗi.

9.8.7  Kiểm tra nhập khóa thủ công vào bộ tạo bit ngẫu nhiên tất định

Khi thông tin an toàn được nhập thủ công vào bộ tạo bit ngẫu nhiên tất định (ví dụ: mầm hoặc khóa), thông tin an toàn phải bao gồm một mã phát hiện lỗi (EDC) hoặc các giá trị nhập vào trùng lặp được sử dụng để kiểm tra tính chính xác của thông tin an toàn. EDC phải dài ít nhất 16 bit. Bộ tạo bit ngẫu nhiên tất định phải kiểm tra EDC hoặc các giá trị nhập vào trùng lặp xem có phù hợp không. Nếu EDC được tính toán không bằng với EDC nhập vào, hoặc các giá trị nhập vào trùng lặp không khớp, thì không vượt qua kiểm tra. Trong trường hợp này, bộ tạo bit ngẫu nhiên tất định phải chuyển sang trạng thái lỗi và xuất ra một cảnh báo lỗi.

9.8.8  Kiểm tra tạo bit ngẫu nhiên liên tục của bộ tạo bit ngẫu nhiên tất định

Bộ tạo bit ngẫu nhiên tất định phải được kiểm tra với một giá trị cố định. Nếu mỗi lần gọi tạo ra các khối n bit (trong đó n ≥ 80), khối đầu tiên được tạo ra sau khi bật nguồn, khởi tạo hoặc khởi động lại phải không được sử dụng, nhưng được lưu để so sánh với khối tiếp theo được tạo ra. Mỗi lần tạo ra một khối n bit phải được so sánh với khối được tạo ra trước đó. Kiểm tra thất bại nếu hai khối n bit được so sánh là giống nhau. Nếu kiểm tra thất bại, bộ tạo bit ngẫu nhiên tất định phải chuyển sang trạng thái lỗi và xuất ra một cảnh báo lỗi.

Nếu một lần gọi tới bộ tạo tạo ra ít hơn 80 bit, thì n bit đầu tiên (trong đó n ≥ 80) được tạo ra sau khi bật nguồn, khởi tạo hoặc khởi động lại phải không được sử dụng, nhưng được lưu để so sánh với n bit tiếp theo được tạo ra. Mỗi lần tạo ra n bit phải được so sánh với n bit được tạo ra trước đó. Kiểm tra thất bại nếu hai chuỗi n bit được so sánh là giống nhau. Nếu kiểm tra thất bại, bộ tạo bit ngẫu nhiên tất định phải chuyển sang trạng thái lỗi và xuất ra một cảnh báo lỗi.

9.9  Yêu cầu bổ sung đối với khóa của bộ tạo bit ngẫu nhiên tất định

Ngoài các yêu cầu về chức năng được áp dụng cho các thành phần của bộ tạo bit ngẫu nhiên tất định, các yêu cầu khác cũng được áp dụng cho việc thực thi và sử dụng bộ tạo bit ngẫu nhiên tất định. Những yêu cầu này được kết hợp với khóa được sử dụng bởi một bộ tạo bit ngẫu nhiên tất định cho trước.

Một số bộ tạo bit ngẫu nhiên tất định yêu cầu sử dụng một hoặc nhiều khóa. Nếu không bị cấm, thì những khóa này có thể được cung cấp từ một nguồn bên ngoài (tức là từ một nguồn bên ngoài ranh giới của bộ tạo bit ngẫu nhiên tất định), hoặc bộ tạo bit ngẫu nhiên tất định có thể được thiết kế để tạo khóa từ nguyên liệu mầm. Việc sử dụng khóa được cung cấp từ ngoài vào có thể thích hợp, ví dụ như trong các ứng dụng có rủi ro thấp với các ràng buộc về bộ nhớ (ví dụ: thẻ smartcard), khi việc tạo khóa từ nguyên liệu mầm là không khả thi (ví dụ: nguồn bất định đầy đủ quá tốn kém) hoặc chất lượng của nguồn bất định trong bộ tạo bit ngẫu nhiên tất định vẫn còn là một vấn đề, trong khi đó khóa chất lượng tốt có thể có được từ bên ngoài ranh giới bộ tạo bit ngẫu nhiên tất định.

Khóa và cách sử dụng nó trong bộ tạo bit ngẫu nhiên tất định như sau:

1. Sử dụng khóa: Khóa phải được sử dụng như quy định đối với một bộ tạo bit ngẫu nhiên tất định cụ thể. Bộ tạo bit ngẫu nhiên tất định yêu cầu khóa không được tạo đầu ra cho đến khi khóa sẵn sàng.

2. Độ bất định của khóa. Độ bất định khi kết hợp các khóa ít nhất phải bằng độ an toàn mà ứng dụng yêu cầu. Ví dụ, khi độ an toàn yêu cầu của ứng dụng là 112 bit, thi khóa phải có độ bất định ít nhất là 112 bit.

3. Kích thước khóa: Kích thước khóa được lựa chọn nhằm hỗ trợ độ an toàn mong đợi trong ứng dụng.

4. Xác định khóa từ mầm: Một khóa được xác định từ mầm phải độc lập với phần còn lại của đầu vào khởi tạo được xác định bởi mầm đó. Nếu nhiều khóa được sử dụng trong bộ tạo bit ngẫu nhiên tất định, trái ngược với việc sử dụng cùng một khóa ở nhiều nơi, thì từng khóa phải độc lập với tất cả các khóa còn lại.

a) Đối với bộ tạo bit ngẫu nhiên tất định xác định khóa từ mầm giống nhau là một giá trị khởi tạo và khóa khác (tức là một mầm đơn được sử dụng để xác định tất cả các đầu vào khi tạo của bộ tạo bit ngẫu nhiên tất định, bao gồm khóa), mầm phải có độ bất định bằng hoặc lớn hơn độ an toàn mà ứng dụng yêu cầu.

b) Đối với bộ tạo bit ngẫu nhiên tất định sử dụng nhiều mầm khóa để xác định một trường hợp của bộ tạo bit ngẫu nhiên tất định, từng mầm phải được sử dụng để xác định phần khác nhau của đầu vào khởi tạo (ví dụ: giá trị khởi tạo cho bộ tạo bit ngẫu nhiên tất định và từng khóa riêng biệt phải được xác định từ các mầm khác nhau). Việc kết hợp tất cả các mầm phải có độ bất định bằng hoặc lớn hơn độ an toàn mà ứng dụng yêu cầu.

5. Khóa được cung cấp từ một nguồn bên ngoài. Khóa được tạo ra từ bên ngoài phải có độ bất định đầy đủ (tức là mỗi bit khóa phải độc lập với mọi bit khóa khác) và được tạo ra bằng cách sử dụng một bộ tạo bit ngẫu nhiên bất định hoặc một bộ tạo bit ngẫu nhiên tất định (hoặc một chuỗi bộ tạo bit ngẫu nhiên tất định) lấy mầm từ một bộ tạo bit ngẫu nhiên bất định.

6. Thay khóa: Thay khóa (tức là thay khóa này bằng một khóa mới) là phương tiện để khôi phục tính bí mật của đầu ra bộ tạo bit ngẫu nhiên tất định nếu khóa bị lộ. Việc thay khóa định kỳ là một biện pháp đi phó tốt với các mối đe dọa tiềm ẩn gây tổn hại đến khóa và đầu ra của bộ tạo bit ngẫu nhiên tất định. Tuy nhiên, kết quả từ việc thay khóa chỉ giống như sử dụng bộ tạo bit ngẫu nhiên bất định (hoặc chuỗi các bộ tạo bit ngẫu nhiên tất định được khởi tạo bởi một bộ tạo bit ngẫu nhiên bất định) để tạo ra khóa mới. Trong một số quá trình thực thi (ví dụ: thẻ smartcard), không thể thực hiện quá trình thay khóa đầy đủ và việc thay khóa có thể làm giảm độ an toàn. Trong những trường hợp như vậy, biện pháp tốt nhất là thay thế bộ tạo bit ngẫu nhiên tất định, có được khóa mới (ví dụ: sử dụng thẻ smartcard mới).

a) Sử dụng một khóa cho trước để tạo quá nhiều đầu ra có thể cung cấp thông tin hữu ích giúp đoán thành công đầu ra sắp tới. Thay khóa định kỳ sẽ giảm rủi ro về an toàn, làm giảm khả năng thỏa hiệp dữ liệu đích cần được bảo vệ bởi các cơ chế mật mã sử dụng bộ tạo bit ngẫu nhiên tất định.

7. Vòng đời khóa: Khóa có một vòng đời hữu hạn nhất định. Khóa phải được cập nhật (thay thế) định kỳ. Phải hủy khóa hết hạn hoặc khóa mà giá trị cập nhật hoặc giá trị mới được dẫn xuất. Nếu khóa bị lộ (ví dụ: mầm bị tổn hại), thì các thực thể trái phép có thể xác định được đầu ra của bộ tạo bit ngẫu nhiên tất định.

8. Phân tách khóa: Một khóa được sử dụng bởi bộ tạo bit ngẫu nhiên tất định sẽ không được cố tình sử dụng cho bất kỳ mục đích nào khác ngoài việc tạo bit ngẫu nhiên. Các trường hợp khác nhau của bộ tạo bit ngẫu nhiên tất định phải sử dụng các khóa khác nhau.
 

LuatVietnam đang cập nhật nội dung bản Word của văn bản…

Mời quý khách xem nội dung Văn bản gốc dưới dạng PDF. Để tải văn bản xem tại Tải về

Click Tải về để xem toàn văn Tiêu chuẩn Việt Nam nói trên.

Để được giải đáp thắc mắc, vui lòng gọi

19006192

Theo dõi LuatVietnam trên YouTube

TẠI ĐÂY

văn bản mới nhất

loading
×
Vui lòng đợi