chương 1 Trong chương này, luận văn đã giới thiệu tổng quan về mật mã, mã khối và vai trò của mật mã trong việc bảo mật thông tin trên mạng những. Đồng thời phương pháp thiết kế mật mã khối và các tiêu chuẩn thiết kế mã khối cũng được trình bày để hỗ trợ cho các nội dung trình bày trong chương 3. 18 CHƯƠNG 2 NGUYÊN LÝ THIẾT KẾ MÃ KHỐI TRÊN CSPN 2. Nguyên lý thiết kế CSPN CSPN là một trong các thành phần được xây dựng từ các nguyên thủy mật mã (PE) với các cấu trúc thiết kế khác nhau.
Để ứng dụng được trong mật mã, cấu trúc của chúng phải tuân thủ theo nguyên lý đối xứng ở các bậc khác nhau. Các nguyên lý chung này có thể tham khảo đầy đủ trong [1]. Tuy nhiên, trước khi đề cập đến việc xây dựng CSPN, sẽ trình bày tóm tắt cấu trúc của lớp phần tử nguyên thủy mật mã điểu khiển được F2/1 và F2/2. 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. 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. 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 Cấu trúc biểu diễn của F2/1 a. 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.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à 20 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. 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à 21 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ử x1 x2 x1 x2 v v z F2(/v2, z ) z f1 f2 y1 y2 a) y1 b) y2 S1 S2 S3 S4 x1 x2 x1 x2 x1 x2 x1 x2 xj xj yi / vk v F2 / 2 Pr yi / x j , vk F2(/002 ) F2(/012 ) F2(/102 ) F2(/112 ) k i , j , k 0 ,1 , 2 yi (2) (2) (3) (3) (4) (4) y1(1) y2(1) y 1 y 2 y1 y 2 y 1 y2 y1 y2 c) d) Hình 2. 2 Cấu trúc biểu diễn của F2/2 a. 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.
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.6) 22 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. 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; 2. Cấu trúc CSPN CSPN được xây dựng nên từ các phần tử điều khiển được nguyên thủy.
Một phần tử điều khiển được mở rộng Fn/m là một CSPN, cấu trúc tổng quát của Fn/m được mô tả trong hình 2. Ở đây Fn/m được miêu tả như các lớp xếp chồng như sau: Trong đó j, với j = 1, 2,…, s-1 là các hoán vị xoắn cố định, V = (V1, V2,…, Vs) là véc tơ điều khiển của Fn/m và Vj là phần tử cấu thành của V, nó điều khiển lớp hoạt động thứ j (active layer), và s là số các lớp hoạt động (để ngắn gọn sẽ viết tắt là Lj). Trong một lớp, các phần tử được liên kết song song với nhau, các hoán vị xoắn cố định cũng được thiết kế có tính chất đối xứng để đảm bảo tính khả nghịch. Việc thiết kế các Fn/m yêu cầu chính là ở việc lựa chọn cấu trúc liên kết tương ứng và PE 23 Nguyên tắc, để sử dụng được các phần tử mở rộng này trong mật mã khối, thì phải đảm bảo rằng chúng tồn tại phần tử khả nghịch.
Tức là nếu sử dụng Fn/m khi mã hóa thì khi giải mã phải sử dụng phần tử nghịch đảo của nó. Fn/m bất kỳ sẽ là khả nghịch nếu phần tử nguyên thủy của nó là khả nghịch và phép biến đổi ngược có thể được xây dựng từ việc đổi chỗ đầu vào, đầu ra đã cho của Fn/m và thay đổi mỗi phần tử nguyên thủy của nó bởi phần tử nghịch đảo tương ứng. Để định nghĩa dễ dàng cấu trúc của phép khả nghịch, có thể sử dụng các cấu trúc có sẵn của phần tử nguyên thủy. Vì vậy các cấu trúc thiết kế của CSPN sử dụng trong mật mã thường có tính chất đối xứng.
đối xứng được định nghĩa như sau. Cấu trúc của được gọi là cấu trúc đối xứng nếu với j = 1, 2, ., s-1 có thể áp dụng hệ thức sau (hoặc nếu Lj là xoắn - involution) và , ở đây j là chỉ số mô tả lớp hoạt động nào đó của và s là số lớp. Fn/m bao gồm s lớp có cấu trúc đối xứng như trên được gọi là đối xứng nếu với j = 1, ., s - 1, luôn có , trong đó j là chỉ số mô tả lớp hoạt động nào đó của. x1 x2 x3 x4 xn-1 xn a) b) v1 v2 vn/2 V1 F2 /1 F2 /1 F2 /1 Vs Hoán vị cố định vn/2+1 vn/2+2 vn V2 F2 /1 F2 /1 F2 /1 Vs-1 Hoán vị cố định vm - n/2+1 vm - n/2+2 vm Vs F2 /1 F2 /1 F2 /1 V1 y1 y2 y3 y4 yn-1 yn Hình 2.
3 Cấu trúc tổng quát của Fn/m (a) và F-1n/m (b) xây dựng từ F2/1 24 Định nghĩa 2. Với Fn/m cho trước, được gọi là nghịch đảo của Fn/m nếu với V, FV và tương ứng là ngược lẫn nhau (inverses).