Bài báo này trình bày một nghiên cứu nguồn ngẫu nhiên hoàn toàn digital, dựa trên khai thác hiện tượng nửa bền trong mạch điện tử số, có entropy cao, tương quan thấp, không cần xử lý sau. Nguồn nhiễu đã được đánh giá và vượt qua các phép test thống kê của NIST.
Nội dung trích xuất từ tài liệu:
Nghiên cứu nguồn nhiễu có entropy cao dựa trên nửa bền cho ứng dụng sinh số ngẫu nhiên thực
Nghiên cứu khoa học công nghệ
NGHIÊN CỨU NGUỒN NHIỄU CÓ ENTROPY CAO DỰA TRÊN
NỬA BỀN CHO ỨNG DỤNG SINH SỐ NGẪU NHIÊN THỰC
Nguyễn Hồng Quang*
Tóm tắt: Số ngẫu nhiên thực là thành phần quan trọng và quyết định độ an toàn
của mật mã hiện đại. Thiết kế nguồn nhiễu ngẫu nhiên analog thường phức tạp, khó
tích hợp trong các mạch digital và thường phải kèm xử lý sau dẫn đến đưa thêm
thành phần tất định vào kết quả ra. Bài báo này trình bày một nghiên cứu nguồn
ngẫu nhiên hoàn toàn digital, dựa trên khai thác hiện tượng nửa bền trong mạch
điện tử số, có entropy cao, tương quan thấp, không cần xử lý sau. Nguồn nhiễu đã
được đánh giá và vượt qua các phép test thống kê của NIST.
Từ khóa: Số ngẫu nhiên thực, Nửa bền, Tự tương quan, TRNG, Mật mã, Đánh giá thống kê.
1. ĐẶT VẤN ĐỀ
Số ngẫu nhiên là thành phần quan trọng của mật mã hiện đại. An toàn của hầu hết các
hệ thống mật mã đều dựa trên việc đối phương không thể đoán được khóa hay số ngẫu
nhiên sử dụng. Các TRNG truyền thống, dù sử dùng entropy từ nhiễu nhiệt Johnson, hiệu
ứng Jitter, phân ra phóng xạ, hỗn loạn hay lượng tử… đều là nguồn analog. Nhiễu từ các
nguồn này thường rất nhỏ, và thường nhạy với những biến động của nguồn nuôi và môi
trường, đòi hỏi thiết kế và bố trí đặc biệt, và khó tích hợp nguồn nhiễu analog như vậy vào
các hệ thống số. Bởi vậy tìm một nguồn nhiễu digital có entropy đủ cao, thuận lợi cho tích
hợp trong FPGA luôn là nhu cầu. Chất lượng số ngẫu nhiên thực phụ thuộc vào entropy
của nguồn nhiễu. Nguồn nhiễu entropy cao như phân rã phóng xạ hay lượng tử thường
phức tạp và giá thành rất cao. Các thiết kế thực tế thường nhắm vào những nguồn nhiễu dễ
thực hiện, kết hợp xử lý sau để cải thiện các đặc tính thống kê của số ngẫu nhiên. Mặc dù
xử lý sau góp phần làm tăng chất lượng ngẫu nhiên nhưng lại làm tất định hóa cái cần bất
định. Nghiên cứu nguồn ngẫu nhiên chất lượng để có thể sử dụng trực tiếp các bits, không
cần xử lý sau, luôn là điều thách thức.
Bài báo đề xuất một nghiên cứu nguồn ngẫu nhiên phi truyền thống, không chứa thành
phần analog, dễ tích hợp vào các thiết kế digital, có entropy cao, không cần xử lý sau.
Thiết kế mới này đã được kiểm chứng các đặc tính thống kê qua bộ tiêu chuẩn đánh giá số
ngẫu nhiên của NIST và đã vượt qua tất cả các yêu cầu.
2. NGHIÊN CỨU NGUỒN ENTROPY CAO DỰA TRÊN NỬA BỀN
2.1. Các nghiên cứu liên quan
Các nghiên cứu nhằm đạt được nguồn nhiễu hoàn toàn digital phần lớn đều xoay quanh
hiện tượng jitter trong mạch điện tử. Một trong những nghiên cứu digital TRNG đầu tiên
là của nhóm tác giả đứng đầu là R. Fairfeld [1]. Họ sử dụng nhiễu pha trong các bộ dao
động tự do và dùng bộ dao động tần số thấp trích mẫu bộ dao động tần số cao. V. Fischer
và M. Duratovsky [10] đề xuất hai hệ thống PLL sinh ra jitter ngẫu nhiên. Còn Sunar và
các cộng sự [6] đề xuất nguồn ngẫu nhiên từ jitter giữa các bộ dao động vòng tự do RO,
với đầu ra được XOR với nhau. Bock, Bucci và Luzzi đã đề xuất một sơ đồ có các bộ dao
động được tái đồng bộ trước mỗi lần sinh bit [8], nhờ đó khắc chế được hoạt động theo
chu kỳ của nguồn entropy và khởi động lại nguồn sau mỗi bit sinh ra. Fisher và
Drutarovsky đề xuất trích mẫu jitter bằng một số flip-flop dịch trong khoảng thời gian
không xác định [10]. Một loại nguồn ngẫu nhiên khác khai thác tính chất nửa bền của tín
hiệu trong mạch điện tử, xuất hiện khi các mạch logic chuyển trạng thái ở thời điểm các tín
Tạp chí Nghiên cứu KH&CN quân sự, Số 42, 04 - 2016 133
Công nghệ thông tin & Khoa học máy tính
hiệu vào data và clock vi phạm các yêu cầu timing và . Trong trạng thái này, tín hiệu
ra trôi nổi trong khoảng giữa mức logic cao vào thấp và mang tính ngẫu nhiên [7], [10].
Golic đã kết hợp tính nửa bền của D flip-flop với jitter trong RO trong [7]. H.Hata trong
[1] khai thác nửa bền của chốt RS. Tuy tính nửa bền có thể được khai thác như nguồn
nhiễu ngẫu nhiên, nhưng nửa bền tự nhiên xảy ra với thời gian rất ngắn và không ổn định.
Bởi vậy, nhiều nghiên cứu TRNG đã tìm cách cải thiện nửa bền tự nhiên [2], [4]. Trong
nghiên cứu này chúng tôi đề xuất một phương pháp riêng, ép các vòng dao động tự do RO
vào trạng thái nửa bền, và sử dụng nhiều RO để tăng entropy nguồn nhiễu. Sau mỗi bit
ngẫu nhiên trích xuất ra, nguồn nhiễu lại được reset để đi vào trạng thái nửa bền mới.
Bằng cách này giảm thiệu tự tương quan và tăng hiệu suất sinh số ngẫu nhiên.
2.2. Nội dung nghiên cứu
Sau khi nghiên cứu các sản phẩm của các tác giả khác, chúng tôi phân tích hiện tượng
nửa bền trong mạch điện tử sử dụng làm nguồn entropy, tiến hành thiết kế cụ thể, triển
khai thử nghiệm để kiểm chứng.
Một RO có thể được tạo ra với số lẻ các bộ đảo. Trong [4] các tác giả đã bằng thực
nghiệm chứng minh sự tồn tại của nửa bền trong TERO, trong [2] là mô hình toán học
phân tích và đánh giá entropy nửa bền đó. Do TERO gồm số chẵn mạch đảo nên sau một
khoảng thời gian ngắn, dao động sẽ tự tắt. Trong thiết kế này ta chỉ khai thác nửa bền của
RO ở giai đoạn trước dao động ổn định Hình 1.
Hình 1. Các giai đoạn trong bộ dao động vòng.
Thời gian nửa bền được tính như sau [10]:
( × × × )
=
MTBF là thời gian giữa các lần lỗi mạch do nửa bền gây ra. và là tần số clock
và tần số chuyển mạch tín hiệu vào. và là các hằng số, phụ thuộc vào công nghệ chế
tạo linh kiện. thường rất ngắn. Có thể tăng thời gian này khi tăng tần số chuyển mạch
bằng cách chọn phần tử đảo CMOS có độ khuếch đại lớn và trễ lan truyền nhỏ, hoặc lựa
chọn hợp lý các hằng số và . Tuy nhiên do quá trình dao động bắt đầu với các tác
động ngẫu nhiên của nhiệt độ, nh ...