CHƯƠNG 2 NGUYÊN LÝ THIẾT KẾ MÃ KHỐI TRÊN CSPN
2.1. Nguyên lý thiết kế CSPN
2.1.1. Lớp phần tử nguyên thủy mật mã điều khiển được
a. Lớp phần tử nguyên thủy mật mã điều khiển được F2/1
Theo Moldovyan [30], phần tử nguyên thủy mật mã điều khiển được F2/1 được mô tả như trong hình 2.1. Trong đó:
- F2/1 được biểu diễn như một hộp đen (hình 2.1a);
- F2/1 được biểu diễn như một cặp hàm logic f1, f2 với 3 biến vào đó là y1 = f1(x1, x2, v); y2 = f2(x1, x2, v) (hình 2.1b). Có thể xây dựng được rất nhiều cặp hàm logic (f1, f2) khác nhau từ 3 biến vào và các hàm này có thể được thực hiện trên phần cứng rất thuận tiện;
- F2/1 được biểu diễn như là cặp 2 phép thế (S1, S2). Ở đây, nếu v = 0 thì CE thực hiện phép thế S1 và nếu v = 1 thì CE thực hiện phép thế S2. Hay nói cách khác là giá trị của véc tơ điều khiển sẽ lựa chọn phép thế cơ bản tương ứng.
1 /
F2 y2
y1
x1 x2
v (1)
1 /
F2 x1 x2
) 2 (
y1 y(22)
S2
) 0 (
1 /
F2 x1 x2
) 1 (
y1 y(21) S1
x1 x2
y1 y
2
f1
v
f2
1 /
P2 y2
y1
x1 x2
v
1 /
P2
rkV
j X
i Y
(a) (b) (c)
i, j = 0 , 1 , 2 k = 0 , 1
(d) (e)
r r
y1 = x1 (v Å 1) Å x2v
‘‘
y2 = x1v Å x2 (v Å 1)
Hình 2.1 Cấu trúc biểu diễn của F2/1
a. Hộp đen; b. Hàm logic với 3 biến vào; c. Dạng 2 phép thế; d. CE thuộc loại P2/1; e. Đặc trưng vi sai F2/1
Hệ thức biểu diễn mỗi quan hệ giữa cách biểu diễn thông qua cặp 2 hàm logic và cặp phép thế như trên được cho bởi biểu thức sau:
(2.1) (2.2) Hay:
Hình 2.1e là biểu diễn đặc trưng vi sai của phần tử F2/1, hình 2.1d mô tả một trường hợp cụ thể của phần tử F2/1 đó là P2/1.
Cũng theo [1], có nhiều biến thể CE khác nhau .Từ F2/1, sử dụng các cấu trúc thiết kế khác nhau sẽ xây dựng được các phần tử điều khiển được mở rộng Fn/m. Một phần tử Fn/m không đồng nhất có thể được xây dựng từ các F2/1
khác nhau. Thông thường, xét các phần tử Fn/m với cấu trúc đồng nhất, tức là
cấu trúc được xây dựng từ một lớp phần tử F2/1 thuộc một loại CE nhất định.
Để sử dụng được các phần tử này trong mật mã khối, thì luôn phải đảm bảo rằng chúng tồn tại phần tử nghịch đảo (sử dụng Fn/m khi mã hóa và phần tử nghịch đảo của nó là khi giải mã). Nên phần tử Fn/m bất kỳ có thể là khả nghịch nếu phần tử nguyên thủy mật mã của nó là khả nghịch. Phép biến đổi ngược có thể được xây dựng từ việc đổi chỗ đầu vào và đầu ra đã cho của Fn/m
và thay đổi mỗi phần tử F2/1 bởi phần tử nghịch đảo của nó . Để định nghĩa dễ dàng cấu trúc của phép nghịch đảo, có thể sử dụng cấu trúc F2/1 có sẵn.
Theo [1], đã đưa ra các tiêu chí để thực hiện việc phân loại các phần tử F2/1 và từ đó lựa chọn phần tử sao cho phù hợp với các ứng dụng mật mã.
Tiêu chuẩn dưới đây cho phép lựa chọn các toán tử phi tuyến F2/1 phù hợp với việc thiết kế phần tử mở rộng Fn/m cho ứng dụng cho mật mã:
1. Hàm f1, f2 của F2/1 là hàm logic 3 biến cân bằng và có độ phi tuyến (NL Non Linearity) cực đại;
2. Phép biến đổi của F2/1 là song ánh;
3. Tổ hợp tuyến tính của 2 đầu ra của F2/1 tức là hàm cũng là hàm logic cân bằng và có độ phi tuyến cực đại;
4. Mỗi phần tử đều thỏa mãn tính xoắn.
Việc hiểu cách phân loại các F2/1 giúp lựa chọn được phần tử nguyên thủy phù hợp cho các thiết kế mật mã và đem lại lợi thế cho thiết kế đề xuất.
b. Lớp phần tử nguyên thủy mật mã điều khiển được F2/2
F2/1 như đề cập ở trên có thể sử dụng để xây dựng CSPN ứng dụng trong mật mã. Tuy nhiên, có thể xây dựng được CSPN hiệu quả cao hơn trên cơ sở các phần tử nguyên thủy mật mã điều khiển được khác như F2/2. Thực tế khi thiết kế trên phần cứng, mỗi khối nhớ dùng để biểu diễn một phần tử F2/1
thì tài nguyên của ô nhớ chỉ được sử dụng một nửa, tức là chỉ sử dụng 50%
dung lượng ô nhớ và khi đó, phần bộ nhớ còn lại là không tận dụng được.
Còn khi sử dụng F2/2 sẽ tận dụng được 100% dung lượng ô nhớ. Do đó F2/2 là
phần tử có hiệu quả tích hợp cao hơn. Phần tử này có thể được thực thi dễ dàng và nhanh chóng bằng các mạch điện tử
) , (
2 / 2
z
F v
y2 y1
x1 x2
v z
) 00 (
2 /
F2
x1 x2
) 1 (
y1 y2(1) S1
) 01 (
2 /
F2
x1 x2
) 2 (
y1 y2(2) S2
) 10 (
2 /
F2
x1 x2
) 3 (
y1 y2(3) S3
) 11 (
2 /
F2
x1 x2
) 4 (
y1 y2(4) S4
f1 f2
x1 x2
y1 y2
v z
2 /
F2
y2
y1 v
k
y
i x
j
vk
x j y
i
/ , Pr
v k y i x
j
/
2 , 1 , 0 ,
, j k i
a) b)
c) d)
Hình 2. 2 Cấu trúc biểu diễn của F2/2
a. Hộp đen; b. Hàm logic; c. Cặp 4 phép thế; d. Đặc trưng vi sai
Cấu trúc của phần tử F2/2 có thể được biểu diễn bằng các cách như mô tả trên hình 2.2. Trong đó:
- F2/2 được biểu diễn như một hộp đen (hình 2.2a);
- F2/2 được biểu diễn như một cặp hàm logic f1, f2 với 4 biến vào là y1
= f1(x1, x2, v, z); y2 = f2(x1, x2, v, z) (hình 2.4b);
- F2/2 được biểu diễn dưới dạng cặp 4 phép thế (hình 2.2c), mỗi một phép thế có 2 bit vào ( ). Mỗi phép thế đó tương ứng với một véc
tơ điều khiển có các giá trị tương ứng là: .
Hệ thức biểu diễn mỗi quan hệ giữa cách biểu diễn thông qua cặp 2 hàm logic và cặp phép thế như trên được cho bởi biểu thức sau:
y1= (v ⊕ 1)(z ⊕ 1) y1(1) ⊕ z (v ⊕ 1) y1(2) ⊕ v (z ⊕1) y1(3) ⊕ vzy1(4) (2.3) y2= (v ⊕ 1)(z ⊕ 1) y2(1) ⊕ z (v ⊕ 1) y2(2) ⊕ v (z ⊕ 1) y2(3) ⊕ vzy2(4) (2.4)
Hoặc:
y1= vz (y1(1) ⊕ y1(2) ⊕ y1(3) ⊕ y1(4)) ⊕ v(y1(1) ⊕ y1(3)) ⊕ z (y1(1) ⊕ y1(2)) ⊕ y1(1)) (2.5) y2 = vz (y2(1) ⊕ y2(2) ⊕ y2(3) ⊕ y2(4)) ⊕ v(y2(1) ⊕ y2(3)) ⊕ z(y2(1) ⊕ y2(2)) ⊕ y2(1)) (2.6)
Các hàm logic 4 biến sẽ có độ phi tuyến khác nhau. Số các hàm logic 4 biến có giá trị phi tuyến lớn hơn nhiều so với số các hàm logic 3 biến. Đồng thời đặc trưng vi sai của nó cũng tốt hơn rất nhiều so với đặc trưng vi sai của F2/1. Theo [1] các F2/2 khác nhau có đặc trưng vi sai khác nhau do đó cần đưa ra tiêu chuẩn cho quá trình lựa chọn F2/2 và phân loại chúng.
Theo [1] để xây dựng được CSPN hiệu quả thì cần phải xây dựng các tiêu chí trong việc lựa chọn F2/2. Các tiêu chí sau được quan tâm trong việc thiết kế và lựa chọn trong các ứng dụng mật mã:
1. Hàm f1, f2 của F2/2 là hàm logic 4 biến cân bằng và có tính phi tuyến lớn nhất tức là NL( NL ;
2. Phép biến đổi của F2/2 là biến đổi song ánh và thỏa mãn tính xoắn.
3. Tổ hợp tuyến tính 2 đầu ra của F2/2 tức là hàm y3 = f3 = y1 ⊕ y2 là hàm logic cân bằng và có tính phi tuyến lớn nhất tức là NL(f3) = 4;