Tiêu chuẩn 1: frequency test (kiểm tra tần số) Mục đích của kiểm tra này đó là để xác định số lần mà số 0 hoặc số 1 trong chuỗi nhị phân s xuất hiện ngẫu nhiên trong chuỗi.. Kiểm tra[r]
Trang 1MỘT TIÊU CHUẨN ĐÁNH GIÁ CHẤT LƯỢNG CỦA DÃY BIT GIẢ NGẪU NHIÊN
Nguyễn Đức Toàn 1* , Nguyễn Văn Tảo 2 , Bùi Thế Hồng 3
1 Trường Cao Đẳng Công nghiệp Thực phẩm,
2 Trường Đại học Công nghệ thông tin & Truyền thông – ĐH Thái Nguyên,
3 Trường Đại học Sư phạm Kỹ thuật Hưng Yên
TÓM TẮT
Trong bài báo này chúng tôi đưa ra một tiêu chuẩn đánh giá chất lượng của dãy bit giả ngẫu nhiên được sinh ra từ một thiết bị (thuật toán) sinh nào đó Qua đó đánh giá xem dãy bit giả ngẫu nhiên
có đảm bảo chất lượng để ứng dụng trong mật mã hay không? Chất lượng ở đây được hiểu là dãy độc lập thống kê và có phân bố đều Mục đích của bài báo là đưa ra một tiêu chuẩn đánh giá của dãy bit giả ngẫu nhiên nhằm ứng dụng vào trong mật mã
Keywords: Mật mã học, thiết bị sinh, dãy bit giả ngẫu nhiên
GIỚI THIỆU*
Trong những năm gần đây mật mã hóa sử
dụng và gắn liền với toán học nhiều hơn, mật
mã hóa được sử dụng nhiều trong an ninh
mạng Đây là một ngành rất quan trọng và có
nhiều ứng dụng trong đời sống xã hội của con
người Cùng với sự phát triển của mạng
Internet, các nghiên cứu về mật mã ngày càng
trở nên đa dạng, mở ra nhiều hướng nghiên
cứu chuyên sâu vào từng lĩnh vực Ứng dụng
của mật mã không chỉ là mã hóa và giải mã
thông tin mà còn bao gồm nhiều vấn đề khác
nhau cần nghiên cứu và giải quyết như: xác
thực nguồn gốc nội dung thông tin, xác thực
về người sở hữu mã khóa, các quy trình trao
đổi thông tin an toàn trên mạng
Thiết bị tạo ngẫu nhiên được thiết kế nhằm
đưa ra một dãy các biến ngẫu nhiên nhị phân
(nhận 2 giá trị là 0 và 1) độc lập có phân bố
đối xứng, nghĩa là nó được xây dựng để thực
hiện các giá trị là nguồn đối xứng nhị phân
(Binary Symmetric Source - viết tắt BSS)
Những thiết bị (phần cứng hoặc phần mềm)
tạo bít ngẫu nhiên có nhiều ứng dụng trong
mật mã học, kiểm tra các thuật toán xác suất
cũng như trong nhiều lĩnh vực khác Ứng dụng
chủ yếu của chúng trong mật mã là việc kiểm
tra các nguồn tạo khóa bí mật hoặc công khai
(Public Key) hoặc kiểm tra dòng nhị phân sinh
ra từ khóa dòng (Key stream) (OTP)
*
Tel: 0948 570666
Trong áp dụng đó, việc an toàn mật mã phụ thuộc vào tính ngẫu nhiên của dãy loạn số được tạo ra bởi thuật toán nào đó (hoặc các thiết bị nào đó) Dãy loạn số ấy có độ dài có thể coi là vô hạn (hoặc hữu hạn nhưng rất lớn), nguồn tạo loạn số ấy được coi là độc lập thống kê, nếu tất cả các phần tử của nguồn ấy
là độc lập nhau Tuy nhiên việc kiểm tra để kết luận nguồn ấy là độc lập thống kê là việc không thể thực hiện được trong thực tiễn Vì vậy vấn đề đặt ra là có thể kiểm tra một số mẫu đủ nhỏ trong đó mà kết luận được toàn
bộ nguồn ấy là độc lập hay không? tức là có thể kiểm tra một tập hợp rất hữu hạn mà kết luận cho tập hợp vô hạn được không? Nhờ lý xác suất mà nổi bật là các định lý Konmogorov, ta có câu trả lời "Có thể được"
Để giải quyết vấn đề "Có thể được", người ta
đã nghiên cứu và đưa ra lý thuyết chọn mẫu,
lý thuyết xác suất thống kê ứng dụng, và trong thực tế, lý thuyết này rất có hiệu lực Ở đây chúng tôi chỉ nghiên cứu và trình bày một tiêu chuẩn thống kê nhằm kiểm tra những mẫu được lấy từ một tập hợp có phân bố nhị phân
Bài báo được chia ra làm 4 mục: mục 1 là: Giới thiệu, mục 2 là: Một số tiêu chuẩn và đặt bài toán, mục 3 là: Nhận xét và kết luận, mục
4 là: Tài liệu tham khảo
MỘT SỐ TIÊU CHUẨN VÀ ĐẶT BÀI TOÁN
Một số tiêu chuẩn
Cho một chuỗi nhị phân có độ dài là n: S(n)
=
S0, S1, S2, , Sn-1 Chúng ta sẽ dùng 5 tiêu
Trang 2chuẩn kiểm tra thống kê thường dùng để kiểm
tra chuỗi nhị phân s
Tiêu chuẩn 1: frequency test (kiểm tra tần số)
Mục đích của kiểm tra này đó là để xác định
số lần mà số 0 hoặc số 1 trong chuỗi nhị phân
s xuất hiện ngẫu nhiên trong chuỗi Lấy n0, n1
lần lượt ký hiệu là số lượng các số 0 và 1 xuất
hiện trong s Công thức thống kê sẽ là:
2
0 1
1
(n n)
X
n
Nếu dãy S là ngẫu nhiên thì X1 có phân bố
xấp xỉ phân bố χ 2
(Chi - bình phương) với 1 bậc tự do (n>=10 và n càng lớn sự xấp xỉ
càng tốt)
Tiêu chuẩn 2: Serial test (kiểm tra) Mục đích
của kiểm tra này là xác định số lượng tần số
xuất hiện của các bộ đôi 00, 01,10,11 có ngẫu
nhiên trong chuỗi nhị phân S hay không Lấy
n0, n1 ký hiệu cho số lượng các số 0 và 1 xuất
hiện trong s, và lấy n00, n01, n10, n11 ký hiệu
các số 00, 01, 10, 11 xuất hiện trong S Chú ý
rằng: n00 + n01 + n10 + n11 = (n-1) Công thức
thống kê sẽ là:
1
Nếu dãy S là ngẫu nhiên (là “tốt”) thì X2 có
phân bố xấp xỉ phân bố χ 2 với 2 bậc tự do
nếu n>=21
Tiêu chuẩn 3: Poker test (Kiểm tra Poker)
Lấy m là một số nguyên dương sao cho
5.(2) ;m
k
Chia chuỗi S thành k phần không gối nhau,
mỗi phần có độ dài là m, ni là số lần xuất hiện
thứ i của các thứ tự có độ dài m, 1≤ i ≤ 2m
Kiểm tra poker sẽ xác định tần suất xuất hiện
dãy số độ dài m trong S
Công thức thống kê là:
2
3
1
i
k
Sẽ có phân bố xấp xỉ phân bố χ 2 với 2m -1
bậc tự do nếu dãy S là ngẫu nhiên Chú ý rằng
kiểm tra poker là sự tổng quát hoá của các bước kiểm tra ở (1) và (2)
Đặt bài toán
Giả sử cho dãy S(n)
= S0, S1, S2, , Sn-1, là một dãy bit giả ngẫu nhiên được sinh ra từ một thiết bị (thuật toán) sinh nào đó Hãy đánh giá xem dãy bit S(n) có đảm bảo chất lượng để ứng dụng trong mật mã hay không? Chất lượng ở đây được hiểu là dãy độc lập thống
kê và có phân bố đều Có nhiều phương pháp đánh giá, sau đây ta tìm hiểu một phương pháp với nội dung như sau:
Trước hết ta lấy ví dụ sau đây:
Cho dãy S(n) = S(160) = 11100 01100 01000
10100 11101 11100 10010 01001 11100 01100
01000 10100 11101 11100 10010 01001…
Ta lấy mức ý nghĩa α =0,05 Dãy này có chu
kỳ nhưng đã qua được 3 tiêu chuẩn 1,2,3(Tiêu chuẩn kiểm tra tần số, Tiêu chuẩn kiểm tra 2-bit (serial test), Tiêu chuẩn Poker (Poker test)) nhưng không qua được tiêu chuẩn trình bày ở dưới đây
Nội dung:
1.Cho l {1,2,…8} là một số nào đó
2.Dãy S(n) được phân hoạch (partition) thành các block không dẫm lên nhau, có độ dài bằng nhau và bằng L Ta xóa các bit đầu tiên bên trái và chỉ lấy Q + K block Trong đó Q và K được xác định như sau:
- Đối với mỗi i: L ≤ i ≤ Q+K Ta ký hiệu bi là
số nguyên mà biểu diễn nhị phân của nó là block thứ i Các biđược quét theo thứ tự Ký hiệu một bảng T sao cho ở trạng thái T[j] là vị trí xuất hiện đầu tiên của block tương ứng với
số nguyên j, 0 ≤ j ≤ 2L
-1 Q khối đầu tiên của
S(n) được dùng để tạo bảng T; còn Q được chọn sao cho Q ≥ 10.2L Số còn lại K khối được dùng để xác định thống kê X
1.Với mỗi i, Q+1 ≤ i ≤ Q+K; đặt Ai = i – T(bi) với Ai là các vị trí kể từ khi xuất hiện các block bi Thống kê X được xác định là:
1
1 lg
Q K
i
i Q
k
(1)
Trang 3Số K thường chọn ít nhất là bằng 103
.2L (K ≥103
.2L)
Do đó S(n)
nên có độ dài n ≥ 1010.2L.L
Nếu dãy S(n)
là hoàn toàn ngẫu nhiên (độc lập
và có phân bố đều) thì giá trị trung bình µ và
phương sai σ2
của nó được cho ở bảng sau
đây (phụ thuộc vào số L)
1 0,7326495 0,600
2 1,5374383 1,338
3 2,4016068 1,901
4 3,3112247 2,358
5 4,2534266 2,705
6 5,2177052 2,954
7 6,1962507 3,125
8 7,1836656 3,238
Ta có khẳng định sau:
Nếu S(n)
là mẫu được lấy từ thiết bị sinh hoàn
toàn ngẫu nhiên thì đại lượng ngẫu nhiên:
G
X
2
G
Có phân bố chuẩn N(0,1) khi n → +∞
Thuật toán tính X ở (1):
Input: dãy S (n) = S 0 , S 1 , S 2 , , S n-1 Độ dài n và
các tham số L,Q,K
Output: Giá trị thống kê X
Step1 Cho bảng T bằng 0: Đối với j
chạy từ 0 đến 2 L
-1: T[J]← 0
Step2 Khởi tạo bảng T: Với i chạy từ
1 đến Q: T[b i ] ←i
Step3 Sum ← 0
Step4 Đối với i = Q+1 đến Q+K hãy
thực hiện:
4.1 Sum ← Sum + lg (i-T[b i ]
4.2 T[b i ] ←i
Step5 X ←Sum/K,
Step6 Return(X) và kết thúc
NHẬNXÉTVÀKẾTLUẬN
Qua ví dụ vừa được trình bày, chúng ta thấy
rằng so với tiêu chuẩn 1,2,3 thì tiêu chuẩn
trình bày ở trên mạnh hơn, theo nghĩa nếu mẫu đưa ra kiểm tra mà bị vi phạm tiêu chuẩn thì nó cũng vi phạm các tiêu chuẩn vừa được nêu; Ngược lại mẫu đưa ra kiểm tra bị vi phạm một trong hai tiêu chuẩn mới nhưng có thể qua được tiêu chuẩn trên
Mặt khác, khi ứng dụng tiêu chuẩn mới (đặc biệt là tiêu chuẩn 2) chúng ta không cần quan tâm đến hàm phân bố của họ và có thể áp dụng cho dãy bit giả ngẫu nhiên tùy ý
Các giá trị của ngưỡng có thể tự lập bảng dễ dàng ứng với độ dài n của mẫu và giá trị α (α thường lấy các giá trị sau đây : 0,1; 0,01 ; 0,001 ; 0,05 ; 0,005)
Tuy nhiên, đây là những tiêu chuẩn mới nên cần có thời gian để khẳng định được tính ưu việt của chúng Do đó theo tác giả, chúng ta
có thể vẫn ứng dụng các tiêu chuẩn đã được công bố và khi có sự nghi ngờ thì ta áp dụng tiêu chuẩn trên
TÀILIỆUTHAMKHẢO
1 Alfred J Menezes, Paul C van Oorschot, Scott
A Vanstone, "Handbook of APPLIED CRYPTOGRAPHY" CRC Press 1999
2 C R Rao, "Linear Statisticcal Methods and their Applications" Mockba 1968
3 E D Erdmann, "Empirical tests of binary keystreams", (Masters Thesis, Department of Mathematics, Royal Hollway and Bedford New College, University of London, 1992)
4 Kenneth H Rosen, "Discrete Mathematics and Its Applications" AT&T Bell Laboratories
5 P Elias, "The Efficient Construction of An Unbiased Random Sequence" The Annals of Mathematical Statistics", 43 (19920)
6."Probability Theory and Its Applications".Volume XXXII, 1987 (bản dịch từ tiếng Nga)
7."Probability Theory and Its Applications".Volume: XXXIII 4/1988, (pp.804 - 916)
8.S.A Fredricson, "Pseudo-randomness properties
of binary shift register sequences", IEEE Trans Inform Theory, pp 115-120, January 1995.
Trang 4SUMMARY
ONE QUALITY ASSESSMENT CRITERIA PSEUDORANDOM BIT SEQUENCE
Nguyen Duc Toan 1* , Nguyen Van Tao 2 , Bui The Hong 3
1
College of Food Industry,
2
College of Information and Communication Technology,
3
Hung Yen University of Technology and Education
This paper gives a quality gauge of pseudo-random bit sequence generated from a device (algorithm) certain students Thereby assess whether the pseudo-random bit sequence with quality assurance for applications in cryptography or not? Quality here is understood as independent statistical sequence and ident ically distributed
Keywords.Cryptography , equipment delivery, pseudo-random bit sequence
*
Tel: 0948 570666