Hình 1.8: Hệ số Lyapunov của hàm Logistic phụ thuộc vào .r
động. Sự phụ thuộc điều kiện đầu của hàm hỗn loạn Logistic có thể đượ c thấy trong
Hình 1.7. Ở đó, hai điều kiện đầu lần lượt làX0 = 0 123 , và0 12300000005, sẽ tạo ra
các giá trị khác nhau hoàn toàn sau 28 lần lặp. Việc tính hệ số Lyapunov dựa vào sựλ
sai khác điều kiện đầuδ(0), sau các lần lặp, sai khác này sẽ làδ i( ). Hệ số Lyapunov được tính theo trung bình các sai khác đó trênN lần lặp như sau:
λ = lim N →∞ 1 N N Xt=1 ln δ t( ) δ t( − 1) . (1.21)
Để thấy bức tranh tổng quát giá trị của hệ s ố lũy thừa Lyapunov, việc khảo sát tính
toán với từng giá trị nào của tham số điều khiển được thực hiện. Trên hình vẽ khảo sát
các hệ số Lyapunov thường so sánh với giá trị 0 để thấy rõ hàm ở trạng thái hỗn loạn
ứng với giá trị của tham số điều khiển. Hình 1.8 cho thấy hệ số Lyapunov của hàm
Logistic phụ thuộc vào giá trị th am số điều khiển . Nó cũng cho thấy, hàm Logisticr
xuất hiện hỗn loạn với r ≥ 3 57, . Các bước tính toán Lyapunov cho trường hợp tổng
Hình 1.9: Đồ hình phân nhánh của hàm Logistic phụ thuộc vào .r
Thuộc tính tập hợp các điểm mật độ dày với các quĩ đạo có chu kỳ được hiểu thông
qua đồ hình phân nhánh của hàm hỗn loạn. Đồ hình phân nhánh (bifurcation diagram)
được vẽ ra với sự phụ thuộc vào tham số điều khiển. Hình 1.9 cho thấy đồ hình phân
nhánh của hàm Logistic. Ở đó, khi vực phân bố dày đặc các quĩ đạo có chu kỳ cho
thấy tồn tại hỗn loạn ứng với giá trị của tham số điều khiển tương ứng.
Thuộc tính cấu trúc đồ hình liên kết (topologically transitive hay topological mix- ing) được đề cập đến lần đầu tiên bởi G.D. Birkhoff năm 1920. Tính chất này được
phát biểu là hàm hỗn loạnF : X → X được gọi là có cấu trúc đồ hình liên kết nếu
như có mọi cặp không rỗng mở, ký hiệu làA, B∈X, thì tồn tại một số nguyên saon choFn( )A ∩ B 6=∅. Ở đó, Fn là lặp lần hàm . Khái niệm này có thể hiểu đượ cn F
rằng phạm vi của biến trạng thái được hàm hỗn loạn đi đến nhiều lần.
Tất cả các thuộc tính nêu trên đã được chứng minh và làm rõ trong các tài liệu
nghiên cứu chuyên sâu về hỗn loạn.
1.4.2 Các tham số và tính chất của hàm hỗn loạn dùng trong mật mã
Trước khi đề cập đến ứng dụng hàm hỗn loạn vào mật mã, các hàm hỗn loạn phổ biến đã được chứng minh rằng có đầy đủ các thuộc tính như trình bày trong phần trước.
Việc ứng dụng hàm hỗn loạn được dựa trên các yếu tố có lợi để hình thành mật mã,
cụ thể là khai thác tính chất phân bố đều của giá trị biến trạng thái được tạo ra từ hàm
hỗn loạn và các tham số của hàm hỗn loạn. Các thuộc tính trên của hàm hỗn lo ạn đã
đưa lại một đặc điểm vô cùng quan trọng, đó là khả năng không thể dự đoán dài hạn trạng thái của hàm h ỗn loạn. Đặc điểm này làm cho hàm hỗn loạn phù hợp với ứng dụng vào mật mã.
Với một hàm hỗn loạn rời rạc được cho như trong biểu thức (1.5), hàm hỗn loạn
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 100 200 300 400 500 600 700 Giá trị của Xn H is to gr am
Hình 1.10: Phân bố của chuỗi giá trị được tạo từ hàm Logistic.
chính là các điều kiện đầu (X0), tham số hệ thống, số lần lặp . Các giá trị của biến n
đầu ra của hàm hỗn loạn được dùng để tạo ra các chuỗi số và các chuỗi bit giả ngẫu
nhiên cho quá trình mật mã. Việc áp đặt giá trị vào các tham số của hàm hỗn loạn
được hiểu như tác độ ng vào đặc tính động của hàm hỗn loạn. Các tham số được tác
động sẽ tạo ra giá trị của biến trạng thái và giá trị ấy được dùng cho quá trình mật mã.
Ví dụ hàm Logistic được lặp nhiều lần để lấy giá trị của biến trạng tháiXn dùng
trong quá trình tạo ra chuỗi giả ngẫu nhiên. Chuỗi giả ngẫu nhiên đó được biến đổi và
dùng để hình thành ma trận chuyển vị các điểm ảnh. Tuy nhiên, tham số điều khiểnr
cũng được dùng cho các lần tạo ra chuỗi giá trị giả ngẫu nhiên khác nhau cho các lần
mật mã khác nhau. Hơn nữa, với mỗi giá trị được tạo ra từ hàm hỗn loạn chỉ được giữ
lại sau lần lặp. Giá trị của các tham số này hình thành nên khóa mật, không giann
giá trị của các tham số này hình thành nên không gian khóa. Trong nghiên cứu [35],
S. Lian chỉ ra rằng hàm Standard có không gian khóa lớn nhất.
Một trong các tính chất quan trọng của chuỗi giá trị được tạo ra từ hàm hỗn loạn
đó là tính phân bố đều của chuỗi giả ngẫu nhiên. Tuy nhiên không phải luôn luôn hàm
hỗn loạn tạo ra các chuỗi có phân bố đều. Ví dụ, trong Hình 1.10 cho thấy phân bố
của 10000 giá trịXn hàm Logistic được tạo ra với r = 4 0, vàX 0 = 0 123 , . Ta thấy
rằng, phân bố giá trị được tạo ra bởi hàm Logistic là không đồng đều, tỷ lệ giá trị nằm
ở gần 0 và 1 nhiều hơn các giá trị khác. Hình 1.11 cho thấy phân bố tương đối đều của
chuỗi 10000 giá trịXn(1) vàX(2)n được tạo ra bởi hàm Henon sau khi được chuẩn hóa
về(0 255), .
Trong một số trường hợp, do chọn tham số hoặc do hàm hỗn loạn đã tạo ra phân
bố giá tr ị của các biến đầu ra không đều. Ví dụ như sự không đồng nhất ở phân bố
của hàm Logistic. Trong những trường hợp đó, việc biến đổ i giá trị đầu ra là cần thiết
để có được các đặc tính tốt hơn trong ứng dụng mật mã. Có hai cách có thay đổi hàm
Logistic. Đó là tạo ra sự biến đổi tham số điều khiển như được thấy ở [36, 37], vàr
0 50 100 150 200 250 0 20 40 60 80 100 120 140 H is to gr am GiátrịX n (1)
(a)Phân bố của X(1)
n . 0 50 100 150 200 250 0 20 40 60 80 100 120 H is to gr am GiátrịXn(2) (b)Phân bố của X(2)n .
Hình 1.11: Phân bố của chuỗi giá trị được tạo từ hàm Henon vớia = 10vàb = 50.
nghiên cứu khác, các hàm Logistic được ghép lại với nhau để tạo ra sự phức tạp như
được thấy ở [39, 40]. Các công bố gần đây cho thấy, hàm Logistic vẫn được sử dụng nhiều trong mật mã.
1.5 Tạo chuỗi ngẫu nhiên dùng hàm hỗn loạn
Trong thực tế, có một số cách dùng các hệ hỗn loạn vào mật mã. Cách thứ nhất, các
giá trị tạo ra từ hàm hỗn loạn được dùng như là một chuỗi giả ngẫu nhiên cho việc
mật mã [26]. Cách thứ hai là ứng dụng đặc tính động của hàm hỗn loạn trong quá
tr ình mật mã và giải m ật mã thông qua tác động/điều chế lên véctơ điều kiện đầu (IV)
và/hoặc vào các tham số điều khiển [36]. Tác động được ở đây được hiểu là làm thay
đổi giá tr ị biến trạng thái ho ặc thay đổi giá trị của tham số điều khiển. Ở giai đoạn đầu
nghiên cứu về mật mã hỗn loạn, các chuỗi hỗn loạn được tạo ra và ứng dụng. Những
năm sau này, đặc tính động học của hệ hỗn loạn được khai thác cho mật mã.
Trong các hệ mật mã, chuỗi ngẫu nhiên được tạo ra từ một giá trị ban đầu đã được
biết trước, được gọi là giá trị khở i tạo (IV). Chúng được dùng trong cả mật mã dòng
và mật mã khối. Chuỗi giả ngẫu nhiên được tạo ra đó dùng trực tiếp vào quá trình mật mã thông qua quá trình trộn với văn bản trơn theo biểu thức nào đó để xóa bỏ
cấu trúc thống kê của văn bản trơn. Theo ph ương pháp cổ điển được dùng nhiều trong
S1 S2 b1 S3 S4 b3 b2 S5 S6 b5 b4 S7 S8 b7 b6 b8 Hình 1.12: LFSR thực hiện theo hàm P x( ) =x 8 + x6 + x5 + x4+ 1.
dùng thanh ghi dịch hồi tiếp tuyến tính (LFSR) [41]. Ví dụ LFSR dùng cho mật mã
như được đưa ra ở [42]. Hình 1.12 mô tả cấu trúc của một LFSR thực hiện theo hàm
P x( ) =x 8+ x 6+ x5+ x4+ 1 để tạo ra chuỗi bit giả ngẫu nhiên. Các nghiên cứu gần
đây cho thấy, việc dùng LFSR là không đảm bảo an toàn bảo mật bởi chu kỳ chuỗi
được tạo ra có chiều dài hạn chế [43, 44].
Trong những nghiên cứu gần đây, chuỗi giả ngẫu nhiên có thể được tạo ra từ các hàm hỗn loạn. Nó dựa trên các đặc trưng của hàm hỗn loạn n hư nhạy với điều kiện
đầu/tham số điều khiển, không có khả năng d ự đoán tương lai dài.v..v. [45]. Dựa trên
các tính chất này, các bộ tạo dãy số giả ngẫu nhiên dùng hỗn loạn được đề xuất với
các cấu trúc khác nhau và được ứng dụng vào bảo mật [37, 46, 47].
1.5.1 Tạo chuỗi bit ngẫu nhiên
Để tạo ra chuỗi giả ngẫu nhiên, hàm hỗn loạn sẽ được lặp và tạo ra một chuỗi các giá
tr ị thu nhận được từ biến trạng thái,Xn = {Xn( )i ∈ R, i = 1..m}. Sau đó, các g iá trị
này được biến đổi theo một số cách khác nhau để thu nhận được chuỗi bit giả ngẫu
nhiên. Tuy nhiên, trong một số nghiên cứu khác lại dùng phép lặp và được điều khiển
theo quy luật để tạo ra chuỗi bit ngẫu nhiên. Điển hình của phương pháp dựa vào giá
tr ị để tạo ra chuỗi bit ngẫu nhiên gồm:
• Phương pháp 1: Giá trịX ( )ni của b iến trạng thái được sinh ra qua quá trình lặp
các hàm hỗn loạn. Nó được so sánh với một ngưỡng biết trước. Tùy theo giá trị củaXn( )i lớn hơn h ay nhỏ hơn ngưỡng mà bit được tạo ra là “0” hay “1”. Phương
pháp này được thấy trong nhiều nghiên cứu như của Q. Wang [48, 49]
• Phương pháp 2: Tạo ra chuỗi bit giả n gẫu nhiên thông qua các phép lặp dựa
trên một chuỗi số biết trước và kết hợp với các phép XORshift như được đề xuất
bởi [46, 50]. Khái niệm chaotic iteration được định nghĩa ở đây là phép lặp và
cập nhật giá trị dựa vào những điều kiện cho trước. Điều kiện là sự kết hợp giữa
như thời gian lúc thực hiện chẳng hạn. Việc tạo ra chuỗi bit giả ngẫu nhiên này
tương đối phức tạp và sẽ rất khó khăn khi th ực hiện trên phần cứng.
• Phương pháp 3: Chuỗi bit được tạo ra bằng cách ghép các b it từ các giá tr ị nhận
được ở đầu ra của hàm hỗn loạn sau mỗi phép lặp. Điển hình như được thấy trong
công tr ình của T. Xiang et.al [51]. Chuỗi bit tạo ra được chứng minh là có tính
chất thống kê rất tốt (phân bố đều, xuất hiện ngẫu nhiên).
• Phương pháp 4: Từ thực tế đánh giá cho thấy các giá trị tạo ra từ hàm hỗn loạn
được chứng minh là có tính chất thống kê rất tốt. Do vậy, các giá trị hỗn loạn
được biểu diễn dưới dạng dấu phảy tĩnh và chúng được d ùng để tạo ra chuỗi bit
giả ngẫu nhiên thông qua việc lấy các bit sau dấu phảy của giá trị hỗn loạn được
tạo ra đó. Phương pháp này được thấy trong nghiên cứu của Kohda [52, 53].
Đó là các phương pháp cơ bản để tạo ra chuỗi giả ngẫu nhiên. Dưới đây là các
phương pháp tạo ra chuỗi số giả ngẫu nhiên.
1.5.2 Tạo chuỗi số giả ngẫu nhiên
Từ quá trình lặp hàm hỗn loạn, các giá trị hỗn loạn ở dạng số thực được sinh ra. Chuỗi
các giá trị hỗn loạn này được dùng để tạo ra chuỗi số nguyên giả ngẫu nhiên để dùng
trong mật mã ảnh theo một số cách khác nhau như sau:
• Phương pháp 1: Trong nhiều nghiên cứu ứng dụng hỗn loạn vào mật mã, các
chuỗi giá trị được sinh ra từ hàm hỗn loạn là các số thực X( )ni . Sau đóXn( )i được
chuyển sang số nguyên thông qua biểu thức
Sn = X n( )i × 10tmodK , (1.22)
ở đó, bằ ng với số chữ số mà vị trí dấu phảy được chuyển qua;t K là giá trị được
chuẩn hóa. Dải giá trị được chuẩn hóa thường là[0 255]− đối với giá trị điểm ảnh
8 bit cho mục đích khuếch tán hoặc kích thước dài và rộng của ảnh cho mục đích
hoán vị các điểm ảnh. Ph ương pháp này được thấy trong các hệ mật mã được đề
xuất ở [54, 55, 56].
• Phương pháp 2: Tạo chuỗi giá trị giả ngẫu nhiên dựa vào hàm hỗn loạn bị tác
động từ bên ngoài bởi giá trị đầu ra của LFSR nhằm tạo ra sự bất định. Phương
pháp này được đưa ra bởi Hassan Noura [1, 57, 58]. Sơ đồ cấu trúc bộ tạo chuỗi
giá trị ngẫu n hiên như được đưa ra ở Hình 1.13 trong [1]. Ở đó, Xn−1( )i vàXn( )i
Hình 1.13: Bộ tạo chuỗi số dùng hàm hỗn loạn (nguồn: [1])
tính; khối tạo ra tham số thực hiện việc kết hợp các biến trạng thái để hình thành các chuỗiKsj vàKPj được dùng như là khóa mật trong mật m ã.
• Phương pháp 3: Tạo chuỗi giá trị giả ngẫu nhiên có thể được tạo ra trực tiếp từ
hàm hỗn loạn. Cách thứ nhất là sắp xếp dãyXn( )i theo thứ tự tăng dần hoặc giảm
dần và tạo ra chuỗi mớiX′( )ni . Chỉ số vị trí của các giá trị trong chuỗi cũ bị thay
đổi để hình thành nên chuỗi mới. Chu ỗi vị trí mới này chính là một dãy giả ngẫu nhiên [59]. Thông qua các phép toán thao tác với các biến trạng thái được tạo ra từ hàm hỗn loạnXn( )i kết hợp với hàmmod .( )như ở Phương pháp 1, chuỗi số giả
ngẫu nhiên cũng được tạo ra [60]. Một số cách khác có th ể được tham khảo ở các công trình [28, 61].
Trong các nghiên cứu tạo chuỗi bit và chuỗi giá trị giả ngẫu nhiên nhờ hàm hỗn loạn, các phép kiểm tra theo chuẩn NIST (Chi-test) đều được thực hiện. Kết quả các phép
kiểm tra thông qua tiêu chuẩn của NIST [62] cho thấy, tất cả các chuỗi bit và các chuỗi
giá trị hỗn loạn được tạo ra trong các nghiên cứu đều thỏa mãn tính chất ngẫu nhiên
và có thể đ ược dùng cho ứng dụng trong mật mã.
1.5.3 Một số chú ý khi thiết kế phần cứng cho các hàm hỗn loạn
Khi xem xét thiết kế phần cứng cho các hàm hỗn loạn, hai loại hàm hỗn loạn gồm liên tục theo thời gian và rời rạc theo thời gian tương ứng được thực hiện bởi m ạch điện
tử tương tự và mạch điện tử số. Mạch điện tử tương tự được thiết kế cho các hàm hỗn
loạn liên tục theo thời gian được biểu diễn bởi các phương trình vi phân. Với mạch
điện tử tương tự, việc thực hiện mạch điện được thực hiện khá dễ dàng dùng các phần
tử cơ bản gồm tụ điện, cuộn cảm, điện trở , cùng với một số mạch chức năn g như bộ nhân/chia, bộ cộng/trừ, kh uếch đại như được th ấy trong các công trìn h [63, 64, 65].
Mạch điện thường chịu nhiều ảnh hưởng bởi nhiễu gây ra do sự không chính xác của