1 .6 Mô hình an toàn mạng
2.5.2 Bộ tạo số giả ngẫu nhiên
Trong hần này, hai kiểu thuật toán cho bộ RNG được trình bày.
Các bộ tạo đồng dạng tuyến tính (Linear Congruential)
ỹ thuật được s dụng rộng rãi cho việc tạo số giả ngẫu nhiên là thuật toán đồng dạng. Thuật toán này có 4 tham số như sau:
Chuỗi số ngẫu nhiên {Xn} được tính như sau:
1 ( ) mod
n n
X aX c m
Nếu m, a, c, và X0 là số nguyên, kĩ thuật này sẽ tạo ra chuỗi số nguyên v i mỗi số nguyên nằm trong dải 0 Xn m.
56
Việc lựa chọn các giá trị cho a, c, và m là vấn đềthen chốt trong việc hát triển một bộ tạo số ngẫu nhiên tốt. Ví dụ, v i a = c = 1. Chuỗi được tạo ra rõ ràng là không thỏa mãn. V i các giá trị a 7, c = 0, m = 32, và X0 = 1. Bộ tạo ngẫu nhiên tạo ra chuỗi {7, 17, 23, 1, 7,...}, chuỗi này cũng không thỏa mãn. Trong số 32 giá trị có thể, ch bốn giá trị được s dụng; do đó, chuỗi đó được coi là có chu kỳ là 4. Nếu thay a bằng 5, thì chuỗi m i là {5, 25, 29, 17, 21, 9, 13, 1, 5, ...}, khi đó chu kỳ tăng lên thành 8.
Nếu m là một số rất l n, có khả năng tạo ra một chuỗi dài các số ngẫu nhiên khác nhau. Tiêu chí chung đó là m gần v i số nguyên không m l n nhất có thể đối v i mỗi máy tính xác định trư c. Do đó, giá trị của m gần hoặc bằng 231sẽ được lựa chọn.
Có ba tiêu chí được s dụng để đánh giá bộ tạo sốngẫu nhiên như sau:
Hàm tạo sẽ là hàm tạo toàn chu kỳ. Nghĩa là, hàm tạo sẽ tạo ra tất cả các số
từ0 đến m-1 trư c khi lặp lại.
Chuỗi được tạo ra phải là ngẫu nhiên
Hàm sẽ thực hiện một cách hiệu quả v i số 32 bit.
V i các giá trị thích hợ của a, c, và m, chuỗi số tạo ra có thể đá ứng được ba tiêu chí đánh giá trên. V i tiêu chí đánh giá đầu tiên, nếu m là số nguyên tố và c = 0, thì đối v i giá trị nào đó của a, chu kỳ của hàm tạo số ngẫu nhiên sẽ là m-1. Đối v i số 32 b , giá trị nguyên tố của m là 231-1. Do đó, hàm tạo số ngẫu nhiên trở thành:
31
1 ( ) mod 2 1
n n
X aX
Độ mạnh của thuật toán đồng dạng tuyến tính hụ thuộc vào số nh n a và m được lựa chọn. Tuy nhiên, không có sự ngẫu nhiên nào trong thuật toán, ngoại trừ việc lựa chọn giá trị khởi tạo X0. hi giá trị đó được lựa chọn, các số còn lại là chuỗi theo sau được xác định. Điều này là lợi thế cho các kẻ tấn công. Nếu kẻ tấn công biết rằng thuật toán đồng dạng tuyến tính được s dụng và nếu các tham số đã biết (ví dụ a = 75, c = 0, m = 231-1), thì khi một số được hát hiện ra, tất cả các số tiế theo sẽ biết được, ch cần biết một hần nhỏ của chuỗi số là đủ để xác định các tham số của thuật toán. Giả s rằng kẻ tấn công có khả năng xác định các giá trị X0, X1, X2, và X3, thì
1 ( 0 ) mod X aX c m 2 ( 1 ) mod X aX c m 3 ( 2 ) mod X aX c m
57
Từ các hương trình này, các giá trị của a, c, và m có thể tìm được.
Do đó, mục tiêu của bộ RNG là làm sao để hần chuỗi mà kẻ tấn công có thể khám há ra là không đủ để xác định các thành hần tiế theo của chuỗi. Mục tiêu đó có thể đạt được bằng một số cách, ví dụ như s dụng đồng hồ hệ thống nội để thay đổi dòng số ngẫu nhiên. Một cách s dụng đồng hồ là khởi tạo lại chuỗi đó sau mỗi N số s dụng giá trị đồng hồ hiện tại (mod m) làm seed m i. Cách khác đơn giản hơn là thêm giá trị đồng hồ hiện tại vào mỗi số ngẫu nhiên (mod m).
Bộ tạo BBS (Blum Blum Shub)
Một hương há hổ biến để tạo các số giả ngẫu nhiên an toàn được biết như là bộ tạo BBS (hình 2.31). Hoạt động của bộ tạo BBS như sau. Đầu tiên, lựa chọn hai số nguyên tố l n, và q. Hai số đó khi chia cho 4 đều có số dư là 3, nghĩa là
(mod 4) (mod 4) 3
p q
Ví dụ, các số nguyên tố 7 và 11 đều thỏa mãn điều kiện trên. Đặt n p q.
Hình 2.31: Sơ đồ khối bộ tạo BBS
Tiế theo, chọn số ngẫu nhiên s, sao cho cả và q đều không hải là thừa số của s. Sau đó, bộ tạo BBS tạo ra chuỗi bit Bi theo thuật toán sau:
58 2 0 2 1 mod 1 mod mod 2 i i i i X s n for i to X X n B X
Do đó, bit có ý nghĩa thấ nhất được lấy ra tại mỗi vòng lặ . Bảng sau ch ra ví dụ hoạt động của bộ tạo BBS v i n192649 383 503 và seed s101355.
Bảng 2.5: ví dụ hoạt động của bộ tạo BBS
BBS còn được gọi là bộ tạo bit giả ngẫu nhiên an toàn bảo mật (CS RBG). Tính an
toàn của BBS hụ thuộc vào hai thừa số nguyên tố và q của n.