Các S-box và cácP-box chuyển đổi các khối của các bít đầu vào thành các bít đầu ra đó làcác hoạt động của các lệnh chuyển đổi được thực hiện từ phần cứng nhưcác phép xor hay các phép xoa
Trang 1LỜI NÓI ĐẦU
Sự phát triển ngày càng nhanh chóng của Internet và các ứng dụnggiao dịch điện tử trên mạng, nhu cầu bảo vệ thông tin trong các hệ thống vàứng dụng điện tử ngày càng được quan tâm và có ý nghĩa hết sức quantrọng Các kết quả của khoa học mật mã ngày càng được triển khai trongnhiều lĩnh vực khác nhau của đời sống xã hội, trong đó phải kể đến rấtnhiều ứng dụng dân sự, thương mại, quân sự… Các ứng ụng mã hoá thôngtin cá nhân, trao đổi thông tin kinh doanh, thực hiện các giao dịch điện tửqua mạng…đã trở nên gần gũi và quen thuộc với mọi người Nhất là tronglĩnh vực quân sự cần phải có độ bảo mật cao
Với sự phát triển của công nghệ hiện nay, các bộ xử lý có tốc độ vàkhả năng xử lý ngày càng cao, nhiều phương pháp mã hoá đã không cònđảm bảo độ an toàn cao, đòi hỏi cần phải có một phương pháp mã hoá mới
có thể đảm bảo độ an toàn cho thông tin Phương pháp mã hoáCRYPT(D_128) ra đời đã đáp ứng được phần nào độ an toàn mà cácphương pháp mật mã trước còn hạn chế
Bên cạnh đó, các phương pháp thiết kế với trợ giúp đắc lực của máytính dựa trên nền tảng công nghệ FPGA đã và đang tỏ rõ tính ưu việt của
nó Không những chúng đáp ứng được yêu cầu về mặt tích hợp, về tính bảomật mà còn giúp giảm thiểu giá thành thiết kế và rút ngẵn thời gian thiết
kế Mặc dù ra đời từ cách đây hơn 2 thập kỷ, công nghệ FPGA ở nước tavẫn còn là một lĩnh vực tương đối mới mẻ, đặc biệt là đối với các sinh viên
Vì thế tôi chọn đề tài: “Nghiên cứu và đánh giá hiệu quả tích hợp trên côngnghệ FPGA thuật toán mật mã CRYPT(D-128)”
Nhệm vụ đặt ra của đề tài là: nghiên cứu về công nghệ FPGA, tìmhiểu về thuật toán mật mã CRYPT(D-128) và cài đặt thuật toán bằng ngônngữ mô tả phần cứng VHDL, sử dụng phần mềm tích hợp để mô phỏng
Trang 2thực hiện của thuật toán khi tích hợp trên FPGA Từ nhiệm vụ đặt ra đó đềtài chia làm 3 chương sau:
Chương 1: Thuật toán CRYPT(D-128).
Chương 2: Cài đặt thuật toán trên công nghệ FPGA.
Chương 3: Mô hình và một số kết quả đánh giá.
Trong quá trình làm đồ án tôi đã được các thầy giáo, đặc biệt thầygiúp đỡ trong việc tìm hiểu các kiến thức cần thiết cho đồ án, và phươngpháp để hoàn thành đồ án; đồng thời cán bộ chỉ huy các cấp đã tạo điềukiện rất nhiều về mặt thời gian cho tôi thực hiện nhiêm vụ đồ án được giao.Tôi rất chân thành cảm ơn các thầy và cán bộ chỉ huy các cấp là nhữngngười đóng góp một phần rất lớn cho việc hoàn thành đồ án này của tôi
M ỤC LỤC C L C ỤC LỤC
Trang 3LỜI NÓI ĐẦU 1
CHƯƠNG 1 THUẬT TOÁN CRYPT(D-128) 5
1.1 Tổng quan về mạng hoán vị thay thế 5
1.1.1 Mật mã khóa bí mật xây dựng trên cơ sỡ mạng hoán vị thay thế 5
1.1.2 Mạng hoán vị thay thế xây dựng trên cơ sỡ các phần tử điều khiển được 8
1.1.3 Các phần tử điều khiển được phù hợp với việc cài đặt FPGA 10
1.1.4 Các cấu trúc mạng đối xứng 19
1.1.5 Các thuộc tính của CSPNs trên cơ sở các phần tử F2/2 27 1.2 Xây dựng thuật toán Crypt(D)_128 29
1.2.1 Lựa chọn phần tử điều khiển được 29
1.2.2 Xây dựng khối các toán tử điều khiển được 30
1.2.3 Xây dựng thuật toán mật mã trên cơ sở lớp phần tử đã chọn 32
1.2.4 Xây dựng các hoán vị xoắn 35
2.5 Thời gian biểu sử dụng khóa đơn giản 36
CHƯƠNG 2 CÀI ĐẶT THUẬT TOÁN TRÊN CÔNG NGHỆ FPGA.
39
2.1 Tổng quan về công nghệ FPGA 39
2.1.1 CÊu tróc cña FPGA 39
2.1.2 Ph©n lo¹i FPGA 41
2.1.3 C¸c c«ng nghÖ lËp tr×nh FPGA 42
2.1.4 C¸c øng dông cña c«ng nghÖ FPGA 43
2.2Ngôn ngữ mô phỏng phần cứng VHDL 44
Trang 42.3 MÔI TRƯỜNG PHẦN MỀM TÍCH HỢP ISE CỦA XILINX 54
2.3.1 Mô tả khái quát về ISE 55
2.3.2 Các giai đoạn thiết kế sử dụng ISE 56
2.3.3 Ngôn ngữ lập trình được dùng trong thiết kế 61
2.3.4 Cài đặt thuật toán CRYPT(D-128) thiết kế chung và một số module chính 63
CHƯƠNG 3 MÔ HÌNH VÀ MỘT SỐ KẾT QUẢ ĐÁNH GIÁ 67 3.1 Tích hợp thuật toán mật mã Crypt(D128) trên FPGA 67 3.2 Đánh giá hiệu quả thuật toán Crypt(D-128) 70
3.3 KẾT QUẢ THỰC HIỆN 71
TÀI LIỆU THAM KHẢO 75
Trang 5CHƯƠNG 1 THUẬT TOÁN CRYPT(D-128) 1.1 Tổng quan về mạng hoán vị thay thế
1.1.1 Mật mã khóa bí mật xây dựng trên cơ sỡ mạng hoán vị thay thế.
Cấu trúc mạng hoán vị thay thế với 3 vòng mã hóa của một khối dữliệu 16 bit đầu vào Trong đó S-box là các hộp thay thế, P-box là các hộphoán vị và K là các khóa vòng
Hình 1.1Trong mã hóa sử dụng mạng hoán vị thay thế(substitution-permutation network SPN) là các bước biến đổi các khối dữ liệu dựa trênthuật toán mã hóa như AES hay Rijndael Bản rõ, các khóa như là các đầuvào của mạng hoán vị thay thế sau khi áp dụng biến đối qua các vòng hay
Trang 6các lớp của các S-box hay P-box đưa ra được các bản mã Các S-box và cácP-box chuyển đổi các khối của các bít đầu vào thành các bít đầu ra đó làcác hoạt động của các lệnh chuyển đổi được thực hiện từ phần cứng nhưcác phép xor hay các phép xoay giữa các bít Khóa được đưa vào trong mỗivòng thường nhận trong mỗi khóa vòng của lớp Trong một vài thiết kế thìcác S-box phụ thuộc vào các khóa.
Các khối đầu vào của các S-box này là các khối của các khối đầu racủa các S-box khác, các bít đầu ra và các bít đầu vào của các S-box có thểgiông nhau(về số lượng) hay có sự thay đổi, như các S-box của DES thì có
6 bít đầu vào nhưng chỉ có 4 bít đầu ra Một S-box được thiết kế tốt thì khithay đổi một bít đầu vào có thể làm thay đổi một nửa số luợng bít đầu ra vàcác bít ở đầu ra phụ thuộc các bít ở đầu vào
Một P-box là hoán vị của tất cả các bít, nó đưa tất cả các bít đầu racủa S-box của một vòng hóan vị các các bít đó và cung cấp cho các S-box
ở vòng tiếp theo Một P-box tốt có thuộc tính các bít đầu ra của S-box cókhả năng được phân bố ở một số bít đầu vào của S-box
Tại mỗi vòng thì khóa vòng(lấy được từ khóa với một số hoạt độngđơn giản ví dụ như dùng S-box và P-box)được kết hợp với một số phéptoán đặc trưng như XOR
Một S-box hay một P-box đơn thuần không có hiệu quả mã hóa:một S-box có thể thông qua như một sự thay thế các khối trong khi P-box
có thể coi như là một sự hoán vị của các khối Tuy nhiên để thiết kế mộtmạng hoán vị thay thế tốt(SPN) các vòng lặp các S-box và các P-box phảithỏa mản sự xáo trộn và khuyếch tán
Lý do của sự khuyếch tán: nếu như thay đổi một bít của bản rõ sau
đó đưa vào một S-box sẽ làm thay đổi một vài bít đầu ra, sau khi thay đổi
Trang 7được phân phối bởi P-box giữa một vài S-box, kể từ đấy tất cả các đầu racủa S-box lại được thay đổi một vài bit.vv thực hiện một vài vòng mồi bit
sẽ thay đổi sau một thời gian kết thúc thì bản rõ được thay đổi hoàn toàn
Lý do của sự xáo trộn cũng giống với sự khuyếch tán sự thay đổi bitkhóa của các khóa vòng mỗi sự thay đổi sẽ lan truyền qua tất cả các bít sựthay đổi bản mã rất phức tạp Ngược lại nếu thay đổi một bit trong bản mã
sẽ thay đổi khóa hoàn toàn
Hộp S là một hệ thống phi tuyến của hệ mật và là một yếu tố quantrọng quyết định độ mật của hệ Cho đến nay vẩn chưa có các tiêu chuẩnchung đầy đủ để thiết kế hôp S Trong thuật toán chúng ta đang nghiên cứu
sử dụng các hộp S của thuật toán DES
Cấu trúc của các S-Box
Mỗi S-box như một bộ biến đổi gồm 4 bảng biến đổi, mỗi bảng biếnđổi 1 đầu vào 4 bit thành đầu ra cũng 4 bit (bảng 16 dòng)
Đầu vào 4 bit chính là lấy từ các bit 2-5 của nhóm 6 bit
Các bit 1 và 6 sẽ dùng để xác định 1 trong 4 bảng biến đổi của box Vì thế chúng được gọi là các bit điều khiển (CL và CR: left control vàright control bit)
S-Các thuộc tính của S-Box S-Các nguyên tắc thiết kế của 8 S-boxes đượcđưa vào lớp ‘Classified information’ ở Mỹ
NSA đã tiết lộ 3 thuộc tính của S-boxes, những thuộc tính này bảođảm tính confusion & diffusion của thuật toán
Trang 81 Các bít vào (input bit) luôn phụ thuộc không tuyến tính vào các bít
ra (output bit)
2 Sửa đổi ở một bit vào làm thay đổi ít nhất là hai bit ra
3 Khi một bit vào được giữ cố định và 5 bit con lại cho thay đổi thìS-boxes thể hiện một tính chất được gọi là ‘phân bố đồng nhất ‘ (uniformdistribution): so sánh số lượng bit số 0 và 1 ở các đầu ra luôn ở mức cânbằng
1.1.2 Mạng hoán vị thay thế xây dựng trên cơ sỡ các phần tử điều
khiển được
Ý tưởng chính việc xây dựng khối trong các hộp thay thế điều khiểnđược (CP) phân tầng là phần tử chuyển mạch cơ sở P 2/1 thực hiện điềuchỉnh hoán đổi vị trí của 2 bit đầu vào Việc biến đổi được điều chỉnh cơ sởđược thực hiện với P2/1 được mô tả bởi các hàm Boolean phi tuyến cụ thể(BFs) trong 3 biến:
Trong đó v là bit điều khiển Việc chọn 2 hàm Boolean bằng nhau
trong 3 biến f1 và f2 của các kiểu khác nhau, nó có thể lấy sự thay đổi củacác hộp được điều chỉnh cơ sở F2/1 (Hình 1.2) Các hàm f1, f2 có thể được sửdụng khi đang cài đặt các hộp F2/1 trong phần cứng Các phần tử được điềuchỉnh F2/1 có thể lựa chọn như 2 sự thay thế tuyến tính khác nhau S1 (nếu v
=0) và S2 (nếu v =1) với kích thước 2x2 (Hình 3.1c).Mối quan hệ giữa các
biểu diễn được đề cập của các phần tử được điều chỉnh được CEs đưa rabiểu diễn bằng các công thức trong (Hình 1.2d)
Trang 9Hình1 2 Hộp cơ sở F 2/1 : (a) Trường hợp tổng quát; (b) Chi tiết; (c) Đại diện bởi cặp của hai thay thế 2x2; (d) Biểu thức mô tả mối quan hệ giữa
Các đầu ra của hộp S1 có thể được mô tả bằng cập các BFs trong 2 biến:
Các đầu ra của hộp S2 có thể được mô tả tương ứng như sau:
Các hàm f1(1),f2(1), f1(2),f2(2) xác định cặp các hàm Boolean trong 3 biến,
trong đó mô tả một số các phần tử được điều chỉnh như 1 tổng Nếu v =0
thì CE thực hiện sự thay thế hộp S1 Nếu v =1 CE thực hiện thay thế hộp
S2 Nói cách khác bít điều khiển xác định việc lựa chọn của phép thay thế
cơ sở hiện tại (Sự thay đổi của F2/1 là F2/1(0) hoặc F2/1(1)) Các công thứcđược chỉ ra trong hình 3.1d mô tả việc lựa chọn sự thay đổi hiện tại trong 1
số dạng rõ ràng Các công thức có thể được viết lại như sau:
Trang 10
Sử dụng một số cấu trúc mạng đã cho của hộp Pn/m và việc thay thếcác khối P2/1 bởi các phần tử của các kiểu khác nhau F2/1, có thể thu đượccác thay đổi khác nhau của các hộp thực hiện được điều chỉnh Fn/m thựchiện các biến đổi của các kiểu khác nhau, có nghĩa là, trong trường hợptổng quát không bảo toàn trọng lượng của các vectơ nhị phân được biếnđổi Một hộp Fn/m không đồng nhất có thể được soạn sử dụng các hộp F2/1
cơ sở với một vài kiểu khác nhau ví dụ mỗi tầng hoạt động có thể duy nhất.Thông thường chúng ta xem xét các hộp Fn/m với cấu trúc chuẩn mà đượcxây dựng nên sử dụng 2 kiểu của các phần tử được điều chỉnh mà biểu diễnmối quan hệ đảo ngược của F2/1 và F2/1-1 Các hộp Fn/m biểu diễn các kiểukhác nhau của CSPNs được xây dựng nên sử dụng các CEs kích thước tốithiểu
Trong nhiều trường hợp, sử dụng phép toán Fn/m trong đó việc mãhoá hàm ý sử dụng hàm nghịch đảo của nó Fn/m-1 Hiển nhiên là bất kỳ phéptoán hộp Fn/m có nghịch đảo nếu phần tử F2/1 có nghịch đảo Biến đổi ngược
có thể được xây dựng bởi việc hoán đổi đầu ra và đầu vào của hộp Fn/m đãcho và thay thế mỗi phần tử F2/1 bởi nghịch đảo của nó (Bằng việc thay thếcác phần tử P2/1 với F-1
1.1.3 Các phần tử điều khiển được phù hợp với việc cài đặt FPGA.
Trong trường hợp thực hiện cài đặt trên FPGA, tất cả các phần tửđiều khiển được CE F2/1 được cài đặt sử dụng các ô nhớ 4 bit, mỗi ô nhớthực hiện 1 BF trong 3 biến Tuy nhiên, mỗi ô như thế co sthể thực hiện bất
Trang 11kỳ BF nào trong 4 biến Các cặp hàm như thế có thể được sử dụng để dựngcác CE F2/2 điều khiển được với vectơ điều khiển 2 bit (v,z) xác định việclựa chọn một trong 4 biến đổi cơ sở có thể S1, S2, S3, S4 (Hình 3.3).
bốn biến (b) tức là bốn thay thế 2x2
Các khối điều khiển được như vậy được thiết kế thích hợp và có NLcao hơn các CE F2/1; vì vậy, các CE F2/2 có thể được sử dụng để thay thế cácphần tử P2/1 trong các hộp Pm/n hoặc các phần tử F2/1 trong các hộp Fm/n, Việccung cấp cấu trúc của các hộp DDO mở rộng hơn n 2/ m Cấu trúc thôngthường của các hộp DDO như vậy được chỉ ra trong hình 1.4
Trang 12Hình1 4 Cấu trúc tổng quát của hộp n / m
Để xây dựng các hộp n 2/ m, chúng ta có thể sử dụng các cấu trúcmạng của các hộp Pm/n và 3 máy xây dựng đệ quy được xem xét trong phầntrước Hai dạng mô tả của các CE F2/2 được kết nối với biểu thức sau:
Đầu ra của các CE F2/2 có thể được mô tả như sau:
Cho các giá trị n và s, thực hiện FPGA của các hộp Fm/n và n 2/ m yêu cầu
sử dụng số lượng tài nguyên phần cứng như nhau Tuy nhiên, tổng quát,hộp n 2/ m là phép mã hoá hiệu quả hơn
Trang 13Để chọn CE F2/2 phù hợp như các khối xây dựng cơ sở trong thiết kếcủa CSPN thực hiện mã hoá các phép biến đổi, thích hợp để sử dụng tiêuchuẩn sau:
1 Mỗi 2 đầu ra của CE F2/2 là một BF cân bằng phi tuyến trong 4biến
2 Mỗi sự thay đổi của các CE là một biến đổi ngược(x1,x2)(y1,y2) là một phép đối hợp
3 Tổng của 2 đầu ra, nghĩa là, f3=y1y2 là một BF trong 4 biến
có giá trị phi tuyến
Trong trường hợp như vậy, sẽ hạn chế số các phần tử F2/2; tuy nhiên
có thể đông thời hạn chế tập của các CE thích hợp như các bản gốc mã hoá
Ví dụ, các CE được biểu diễn với BF có giá trị NL =2 có thể hữu ích để xácđịnh các thay đổi tiền định trong đầu ra bởi nghịch đảo chúng hoặc một sốbit của khối con dữ liệu điều khiển như các phần tử Z’
2/1 và U2/1 Vì vậy,phiên bản đầu tiên của tiêu chuẩn lựa chọn là thích hợp hơn cho việc phânloại các hộp F2/2 Như trong trường hợp của các hộp F2/1, có thể sử dụng 2phương pháp khác nhau:
1 Xem xét tất cả các giá trị có thể của các cặp được sắp xếp của BFcân bằng trong 4 biến
2 Xem xét tất cả các tập được sắp xếp có thể của 4 sự thay thế cơ sởtrong đó chúng ta có 2 sự thay thế khác nhau ít nhất của kiểu2x2
Trang 14Số các BF cân bằng trong 4 biến là 12870; vì vậy, trong trường hợpđầu tiên phải xem xét hơn 108 biến thể Thật vậy, có 10920 hàm có NL 4 và
1920 hàm có NL 2 (bảng 1.5)
Hình 1 5 Hàm Boolean trong bốn biến phân loại f (x 1 , x 2 , x 3 , x 4 ) trên
Tìm kiếm vét cạn của tất cả các nghịch đảo có thể CE F2/2 việc thoảmãn tiêu chuẩn lựa chọn là hiệu quả hơn trong trường hợp 2 Thật vậy, sốtập {S1,S2,S3,S4} có thể là ít hơn 340000 sử dụng phương pháp cuốicùng, các phần tử F2/2 được phân loại tương ứng với các thuộc tính phituyến của nó Trong sự phân loại, khái niệm NL toàn bộ được sử dụng,được giới thiệu như 1 tập của 3 số (NL1,NL2,NL3) trong đó NL1=NL()
……….Bảng 1.6 biểu diễn số các phần tử tương ứng với các lớp con khácnhau được phân lớp theo giá trị NL toàn bộ của chúng
Bảng 3.7 chỉ ra phép đối hợp các phần tử F2/2 Lớp con của NL tối đa CE
F2/2 bao gồm 126720 phần tử trong đó có 2208 phép đối hợp
Trang 15Hình 1.7 Số phép đối hợp của F 2/2 cùng với toàn bộ sụ phi tuyến khác
nhau
Để có phân loại chi tiết của các phần tử F2/2, chúng ta nên đưa vào tài khoản
DC của chúng (hình 1.8)
có thể được đánh giá với xác suất P ijk=Pr( V
k Y i X
/ ) Để đánh giá tất cảcác xác suất như vậy tương ứng với cùng CE sử dụng một số giá trị toạn
bộ, khái niệm entropy trung bình được giới thiệu như sau:
Trong đó các tập riêng biệt của các DC được đặc trưng bởi giá trị entropy
Trang 16Trong trường hợp k=0, tất cả các DC của các phần tử F2/2 được quy vào 5tập A, B, C, D, E được biểu diễn trong bảng 1.9
các DC của phép đối hợp được điều chỉnh F2/2 có NL toàn bộ lớn nhất
2208 phần tử này được chia vào 16 tập có các giá trị khác nhau của cácentropy trung bình mà được biểu diễn trong bảng 1.9, trong đó cột 3 chỉ racác sự thay thế 2x2 được thực hiện với các phần tử F2/2 của các tập tươngứng
Trong khi tổ chức bit điều khiển z trong hộp F2/2, biến đổi CE F2/2
vào phần tử F2/2, việc thực hiện 1 cặp của các thay thế 2x2 F2/2(0,z) và F2/2(1,z).Cho 2 giá trị khác nhau z=0 và z=1, có 2 biến thể khác nhau của các phần
tử F2/1 Nếu cố định bit điều chỉnh v thì có một số phần tử khác nhau F2/1
(với v=0 và v=1), mỗi thực hiện thay thế cặp của 2x2 F2/2(v,0) và F2/2(v,1) Vìvậy có thể biểu diễn CE F2/2 như một bản gốc đang thực hiện 2 sự thay đổi,mỗi thay đổi là một phép điều chỉnh cơ sở (F2/1) và có 2 biến thể khác nhaucủa sự biển diễn như vậy Các sự thay đổi được điều chỉnh F2/2(0,z), F2/2(0,z)
với bit điều khiển z, và F2/2(v,0) với bit điều khiển v, có thể được đưa vào cáckiểu R2/1, Q2/1, Z2/1 hoặc các kiểu khác Vì vậy có thể đưa ra một số đặc
Trang 17điểm chính quy của các phần tử F2/2 như tập 4 từ biểu thị các kiểu của cácthay đổi được điều chỉnh được chỉ ra Ví dụ (Q, Q, Q, Q) (R, R, R, R) và(R, R, Q, Q) Nói chung, một số phần tử của F2/1 khi các thay đổi điều chỉnh
cơ sở của các phần tử F2/2 có thể ra ngoài tiêu chuẩn NL được giới thiệu đểchọn các phần tử F2/1 như các bản gốc để thiết kể các phép toán điều chỉnh
Vì vậy việc xem xét CE F2/2 nên đưa vào tài khoản khác nhau của các phần
tử F2/1 khác kiểu, bao gồm các phần tử tuyến tính L2/1, nghĩa là, các phần tử
có một đầu ra tuyến tính Thật vậy, tồn tại các phần tử F2/2 với giá trị
<H>=0.834 và (NL1,NL2,NL3)=(4,4,4), có thể được biểu diễn như (L, L,
L, L) Chúng ta thường gặp các trường hợp này khi chỉ một số của 4 sựthay đổi F2/1 là phi tuyến, ví dụ, (L, R, R, Q), (Z, L, R, Q), (L, L, R, R) và(L, Q, Q, L)
Trang 18Hình 1.10 Số tập con của phép đối hợp F 2/2 có các giá trị entropy trung
bình khác nhau.
Trang 191.1.4 Các cấu trúc mạng đối xứng
Cấu trúc thông thường của CSPN tren cơ sở các phần tử F2/1 có thểđược biểu diễn như sự chồng của một số tầng hoạt động và các hoán vị cốđịnh, như trong trường hợp của các hộp CP Vì vậy, bằng việc giới hạntầng hoạt động, chúng ta hiểu một tầng của các phần tử F2/1 mà thực hiệnsong song trên các bit dữ liệu Thông thường, các tầng hoạt động bao gồmn=2z các phần tử điều khiển được, trong đó z là 1 số tự nhiên Chúng đượcbiểu diễn như L, Ln,L(z) Cấu trúc chung của một số hộp Fm/n và các nghịchđảo của nó có thể nhận được dễ dàng từ cấu trúc chung của các hộp Pm/n va
Pm/n-1 Khái niệm về thứ tự các hộp DDO có thể được mở rộng theo cáchsau:
Định nghĩa 2.1: Một hộp DDO được xây dựng sử dụng các phần tử F 2/1
như các khối xây dựng chuẩn được gọi là một thứ tự h nếu nó có cùng cấu trúc mạng của các kết nối giữa các tầng hoạt động như một số hộp CP của thứ tự h.
Các cấu trúc mạng có biểu diễn đối xứng gương được quan tâm đáng
kể cho việc thiết kế các mã khối lặp lại Trong khi xem xét các hộp Fm/n,chúng ta đưa vào tài khoản thực, các phần tử F2/1 không là các phép đốihợp Vì vậy, trong các cấu trúc mạng đối xứng nên sử dụng ít nhất 2 biếnthể khác nhau của các phần tử F2/1 (trong một số trường hợp, các CE này cóthể tương ứng với các kiểu khác nhau) nếu chúng không là các phép đốihợp Định nghĩa các hộp đối xứng Fm/n như sau:
Định nghĩa 2.2: Một cấu trúc mạng của hộp F m/n được gọi là đối xứng nếu với tất cả j=1,…,s-1 có các mối quan hệ sau: L j =(L s-j+1 ) -1 (hoặc L j =L s-j+1
nếu L j là phép đối hợp) trong đó j biểu diễn số tuần tự của các tầng hoạt động trong hộp F m/n s tầng.
Trang 20Định nghĩa 2.3: Một hộp F m/n s tầng có cấu trúc mạng đối xứng được gọi là đối xứng nếu với tất cả j=1,…,s-1 có các mối quan hệ sau: V j =V s-j+1
trong đó j biểu diễn số tuần tự của các tầng hoạt động trong hộp F m/n s tầng.
Nếu số các tầng hoạt động là lẻ thì trong một hộp đối xứng tầng Ls/2+1
là một phép đối hợp, nghĩa là các CE được tạo ra là các phép đối hợp Nếuhộp Fm/n có cấu trúc đối xứng bao gồm các phần tử F2/1 không là các phépđối hợp thì nó cũng bao gồm ít phần tử F2/1-1 Nếu trong các hộp Fm/n chúng
ta có số tầng hoạt động lẻ thì nó bao gồm ít nhất 3 biến thể khác nhau củacác CE: F2/1 và F2/1-1 và các phép đối hợp được điều chỉnh cơ sở Việc thaythế trong các hộp này tất cả các phần tử chuyển mạch bởi các phép đối hợpđược điều chỉnh R2/1, Q2/1, Z2/1 hoặc U2/1 cùng loại, có các kiểu khác nhaucủa các hộp F32/96 chuẩn đối xứng (thuần nhất) bậc 2 Trong trường hợptổng quát, sử dụng các hộp F2/1 và F2/1-1 có các hộp F32/96 đối xứng với cấutrúc mạng được chỉ ra trong hình 3.6
8/12 (b), F 32/96 (c), và
F -1 32/96 (d)
Trang 21Việc thay thế các hộp F8/12 và F8/12-1, các phần tử F2/1 và F2/1-1 bởi cácnghịch đảo các phần tử F2/2 và F2/2-1 có các hộp 8 / 12 và 1
12 / 8
chuẩn bậcnhất Các hộp 8 / 12 và 1
12 / 8
có thể được sử dụng để xây dựng các hộpbậc 2 32 / 192 và hộp bậc nhất 64 / 384 Việc sử dụng các phép đối hợp điềuchỉnh cơ sở F2/2, chúng ta có thể có các hộp đối xứng chuẩn 32 / 192 và
được xây dựng sử dụng cùng cácphần tử F2/2)
96 / 32
384 / 64
Các hộp 32 / 192 và 64 / 384 có thể được biểu diễn như sau:
Trang 22Trong đó I1 và I2 là các phép đối hợp của hoàn vị sau đây:
I1:(1)(2,9)(3.,17)(4,25)(5)(6,13)(7,21)(8,29)(10)(11,18)(12,26)(14)(15,22)(16,30)(19)
(20,27)(23)(24,31)(28)(32);
I2:(1)(2,9)(3,17)(4,25)(5,33)(6,41)(7,49)(8,57)(10)(11,18)(12,26)(13,34)(14,42)
(15,50)(16,58)(19)(20,27)(21,35)(22,43)(23,51)(24,59)(28)(29,36)(30,44)(31,52)
(32,60)(37)(38,45)(39,53)(40,61)(46)(47,54)(48,62)(55)(56,63)(64).Tương tự các hộp 32 / 96 và 64 / 192 có thể được biểu diễn như:
Tại mỗi bước của việc xây dựng đệ quy của kiểu 3, chúng ta có bậccực đại (h=n) hộp Fm/n (hoặc n / m) có cấu trúc mạng đối xứng
Chúng ta xem xét thiết kế tiếp Đối với tất cả các giá trị n=2z và h=n/2, cóthể xây dựng các hộp đối xứng F2n/4m sử dụng cấu trúc mạng được tổng quáthoá như sau: (hình 3.8a)
Trang 23Hình 1.13 Cấu trúc của hộp đối xứng F 2n/4m (a), P 16/32 (b), F 64/256 (c)
Trong đó Fn/m|| Fn/m biểu diễn sự kết hợp của 2 hộp Fn/m trong mộttầng đơn Các hộp Fn/m và Fn/m-1 bậc nhất và phép đối hợp được mô tả nhưsau:
Trang 24Trong đó i=1,2, …,n/4 và j=1,2, … , n/4 Ví dụ trong trường hợp n=32chúng ta có:
Trong đó i=1,2 ,… ,8 và j=1,2,….,8 Vì hoán vị I’
3 nằm ngoài tậpcác hoán vị được cố định tương ứng với các máy xây dựng đệ quy thứ nhất,thứ hai, thứ ba Cấu trúc mạng F2n/4m được xem xét khác nhau từ các cấutrúc mạng nhận được từ các máy xác định
Thông thường, cho h=n/4,n/16, n/64 …(trong trường hợp này có số
chẵn các tầng hoạt động trong cấu trúc hồi quy của mạng), có thể để xâydựng các hộp Fn/m có cấu trúc mạng đối xứng gương và thoả mãn điều kiệns=log2nh (đây là số tầng nhỏ nhất trong một số mạng với kích thước củađầu vào n và bậc h) Một số hộp đối xứng như trên được biểu diễn trongbảng 3.10 trong đó có thể thấy các dòng đường chéo như sau:
Hình 1.14 Hộp CP với cấu trúc đối xứng
Trang 25a P2/1 P4/6 P8/20… (dòng này tương ứng với các hộp bậccực đại, nó được xây dựng sử dụng máy đệ quy kiểu 3, tạibước đầu tiên, hộp bậc cực đại P2/1 được sử dụng).
b P4/4 P8/16 P16/48 P32/128… (dòng này tương ứng vớigiá trị bậc h=n/4, nó được xây dựng sử dụng máy đệ quykiểu 3, tại bước đầu tiên, hộp P4/4 được sử dụng)
c P16/32 P32/96 P64/256 P128/768… (dòng này tương ứngvới giá trị bậc h=n/16, nó được xây dựng sử dụng máy đệquy kiểu 3, tại bước đầu tiên, hộp P16/32 được sử dụng)
d P64/192 P128/512… (dòng này tương ứng với giá trị bậch=n/64, nó được xây dựng sử dụng máy đệ quy kiểu 3, tạibước đầu tiên, hộp P64/192 được sử dụng)
Hai hàng đầu tiên được đưa vào các cấu trúc mạng tương ứng vớimáy đệ quy chuẩn, nghĩa là tới các máy kiểu thứ nhất, thứ hai, thứ 3 Haihàng cuối được đưa vào các máy xây dựng khác bởi tại bước đầu tiên củaviệc xây dựng, hộp ban đầu có cấu trúc mạng khác với chuẩn của chúng.Thông thường các giá trị h và n cho trước, có thể có các cấu trúc mạngkhác nhau cung cấp số tầng hoạt động tối thiểu Các cấu trúc mạng đốixứng của các hộp CP được giới thiệu trong bảng 3.10 có thể được sử dụng
để thiết kế các kiểu khác nhau của các hộp đối xứng Fn/m và n / m
Bên cạnh các cấu trúc mạng đã được giới thiệu trong bảng 3.10, cũng
có một số sự xây dựng đối xứng khác cung cấp số tầng hoạt động nhỏ nhấtđối với số n cho trước Ví dụ hộp bậc 4 F64/256 với cấu trúc mạng đối xứng
có thể được xây dựng cũng sử dụng cấu trúc sau đây:
Trang 26Trong đó phép đối hơp hoán vị I5 được mô tả như sau:
I5:(1)(2,17)(3,33)(4,49)(5)(6,21)(7,37)(8,53)(9)(0,25)(11,41)(12,57)(13)(14,29)(15,45)(16,61)(18)(19,34)(20,50)(22)(23,38)(24,54)(26)(27,42)(28,58)(30)(31,46)(32,62)(35)(36,51)(39)(40,55)(43)(44,59)(47)(48,63)(52)(56)(60)(64)
Hoán vị I5 có thể được hiểu như sự ghép của 4 phép đối hợp I4 được
sử dụng để kết nối các tầng thấp hơn và cao hơn của các hộp P4/4 trong hộp
P16/32 bậc nhất Thật vây, hoán vị I4 có thể được mô tả như
Hai tầng hoạt động thấp hơn của hộp F16/32 thứ I tạo 1 tầng Bi
Dễ dàng để chứng minh rằng hộp đối xứng F64/256 có bậc 4 Thật vậy,hãy xem xét hộp CP P64/256 có cùng cấu trúc mạng như hộp F64/256 đã được
mô tả 4 bit đầu vào bất kỳ của hộp P16/32 thứ I có thể được nạp vào đầu vàocủa 4 hộp Bi
Trang 27mỗi 4 bit có thể được nạp vào đầu vào bất kỳ hộp P-1
16/32 Vì chúng được nạpvào các hộp B’ khác nhau, chúng có thể được di chuyển tới 4 con số đầu rabất kỳ của hộp P-1
16/32
1.1.5 Các thuộc tính của CSPNs trên cơ sở các phần tử F2/2
Các hộp Fn/m là bản gôc mã hoá phi tuyến nếu vectơ điều khiển Vphụ thuộc vào khối con dữ liệu Nói cách khác, các hộp Fn/m được sử dụng
để thực hiện DDO Trong các lược đồ mã hóa lặp lại khác nhau, khối con
dữ liệu đựoc chia vào trong 2 khối nhỏ với cùng chiều dài n: một khối điềukhiển (L) và một khối được thay đổi (X) vì vậy, một khối nhỏ dữ liệu được
sử dụng để định dạng vectơ điều khiển V, trong đó khối khác được biến đổivới hộp DDO Thông thường các khối nhỏ điều khiển được nạp vào đầuvào cả 1 hộp mở rộng E, được thực hiện trong phần cứng như dây đơn Đầu
ra của hộp E được sử dụng như vectơ V Độ dài bit của vectơ điều khiển làm=sn/2 đối với các hộp và Pn/m và m’=sn đối với các hộp n / m' (s biểu diễn
số tầng hoạt động) Điều này có nghĩa là mỗi bit của khối con dữ liệu điềukhiển xác định z=s/2 và z=s bit của vectơ điều khiển V của các hộp n / m'
và Fn/m tương ứng Trong trường hợp của các hộp F32/96, F64/192, P32/96, F64/192,chúng ta có z=3 Đối với các hộp 32 / 192 và 64 / 384 chúng ta có z=6 Trongkhi việc thiết kế các hộp E để cung cấp mỗi bit của khối con dữ liệu điềukhiển tới đầu ra của hộp DDO, có thể sử dụng tiêu chuẩn 2.1 và 2.2 Trongtrường hợp của các hộp F32/96, F64/192, P32/96, F64/192 nhưng tiêu chuẩn này cóthể được giải thích như sau:
Trang 28Tiêu chuẩn 2.1 ’: Để Z=(x1,x2,…,xn) là vectơ đầu vào của các hộp F32/96(V),
khiển với 6 bit khác nhau của L=(l 1 , …, l n ).
Tiêu chuẩn 2.2’: Đối với tất cả I, bit l i xác định chính xác 3 bit của V=(l 1 ,
…, l n ); và Y=X<<<k biểu diễn sự quay trái của từ X n bit bằng k bit, trong đó
có yi=xi+k với 1in k và yi=xi+k-n với n-k+1i n Một đặc điểm củahộp mở rộng là sự phân bố đối xứng của các bit điều khiển tương ứng với
½ của khối con dữ liệu L
Nếu tiêu chuẩn 2.1 và 2.2 được thoả mãn thì mỗi bit của khối con dữliệu điều chỉnh tác động vào s bit đầu vào của hộp Fn/m và 2s bit đầu vàocủa hộp n / m' Vì vậy, các thay đổi không đáng kể trong khối con L do loạtđáng kể Đối với các biến thiên khác nhau của các CE, sự góp tới loạt củacác thay đổi tại đầu vào điều khiển là lớn hơn đáng kể sự đóng góp của cácthay đổi tại dầu vào của hộp DDO Các hộp CP biểu diễn một số trườnghợp đặc biệt: các thay đổi tại đầu vào của các hộp Pn/m do không loạt Chỉ
Trang 29các thay đổi tại đầu vào điều khiển của các hộp Pn/m đóng góp tới hiệu ứngloạt.
1.2 Xây dựng thuật toán Crypt(D)_128
1.2.1 Lựa chọn phần tử điều khiển được
Phần tử điều khiển F2/2 dùng để xây dựng thuật toán mới được chỉ ra trênhình 1.23 và có thể mô tả dưới dạng một BF (Boolean Function) hoặc dướidạng 4 hoán vị 2×2
a) Dưới dạng một BF b) Dưới dạng 4 hoán vị 2×2
Phần tử F2/2 mô tả dưới dạng các BF y1, y2 và y3 = y1 + y2 có bậc đại sốbằng 3, vì thế giá trị phi tuyến của chúng bằng 4
Các BF: y1, y2 và y3 = y1 + y2 trong dạng đại số thông thường có thể mô
Trang 30Phần tử F’2/2 có thể là 1 trong các phần tử bất kỳ sau: (e,b,b,c); (e,b,f,e);(e,c,c,b); (e,c,f,b); (e,c,f,e); (e,f,b,c); (e,f,b,e); (e,f,c,b); (e,f,c,e); (e,f,f,b);(e,f,f,c)
Hình 1.24: Biến dạng của các phần tử cơ sở, thực hiện trên các phần tử
F2/2 và F2/2.
1.2.2 Xây dựng khối các toán tử điều khiển được
Các phần tử điều khiển được của 1 lớp hoán vị (lớp j) trong mạng Hoán
vị - thay thế điều khiển được, được chỉ ra trên hình 1.25 Véctơ điều khiển
tương ứng trong lớp thứ j được kí hiệu (Vj, Zj), ở đây (Vj, Zj) {0, 1}n/2, n
-bậc đầu vào của mạng hoán vị - thay thế điều khiển được (độ dài khối dữ liệu được biến đổi) Toàn bộ các véctơ điều khiển của mạng hoán vị - thay
F2/2
v=0 z=0
v=1 z=0
v=0 z=1
v=1 z=1
Trang 31thế điều khiển được xây dựng trên s lớp được kí hiệu như sau: (V, Z) = (V1,
Z1, V2, Z2, , Vs, Zs)
Với mục đích tăng hiệu ứng thác lũ, thuật toán sử dụng 2 dạng phần tửđiều khiển được (F2/2, F’2/2) trong lớp F2/2 Phần tử thứ nhất được lựa chọntheo tiêu chí đảm bảo tính phi tuyến cực đại, còn phần tử thứ 2 đảm bảotính phân tán của các bít lối ra khi xuất hiện sự thay đổi trên các bít lối vào
Để xây dựng thuật toán, trước tiên cần xây dựng các khối toán tử F64/384
và F-1
64/384 (Hình 3d, 3e) Các khối toán tử này được xây dựng trên cơ sở cáckhối toán tử F8/24 và F-1
8/24 (Hình 3b, 3c – đảm bảo tính ánh xạ 1-1) Cáckhối toán tử F64/384 và F-1
64/384 có thể được thực hiện như sự kết hợp
F64/192 I1 F-1
64/192 (nghĩa là thực hiện liên tiếp các biến đổi F64/192, I1 và F 1
-64/192), trong đó các khối toán tử F64/192 và F-1
64/192 được điều khiển bởi cácvéctơ nhị phân độc lập Còn hoán vị xoắn I1 được thực hiện như sau:
(1)(2,9)(3,17)(4,25)(5,33)(6,41)(7,49)(8,57)(10)(11,18)(12,26)(13,34)(14,42)
(15,50)(16,58)(19)(20,27)(21,35)(22,43)(23,51)(24,59)(28)(29,36)
(30,44)(31,5)
(32,60)(37)(38,45)(39,53)(40,61)(46)(47,54)(48,62)(55)(56,63)(64).Trong thuật toán xây dựng, khối toán tử F64/192 được xây dựng bằng cách
sử dụng lai ghép các phần tử, vì thế trong mạng chuyển vị - thay thế điềukhiển được F64/192 các lớp thứ 1 và thứ 6 được xây dựng dựa trên lớp phần
tử cơ sở F2/2, còn các lớp 2, 3, 4, 5 được xây dựng dựa trên lớp phần tử cơ
sở F2/2 Các phần tử F2/2 được lựa chọn như vậy để chúng có tính chất phituyến cực đại với mục đích đảm bảo khối toán tử F64/192 có giá trị phi tuyếnlớn Các phần tử F2/2 được lựa chọn để làm tăng hiệu ứng thác lũ trong sơ
đồ mã hóa
Trang 32Hình 1.25: Sơ đồ của các khối toán tử điều khiển được.
a) Một lớp (Fn/n) b) F8/24 c) F -1 8/24 d) F64/384 e) F -1
64/384 1.2.3 Xây dựng thuật toán mật mã trên cơ sở lớp phần tử đã chọn
Sơ đồ cấu trúc và các vòng mã hóa cơ sở (thủ tục Crypt) của thuật toán
mã hóa Crypt(D)_128 được chỉ ra trên hình 4 Phần bên phải của sơ đồ sử
dụng 2 hoán vị cố định I2 và I3 Lớp chuyển vị thuận bao gồm các khốichuyển vị S0, …, S7 (Hình 5a) Các khối S này được mô tả trong bảng 1a.Các khối chuyển vị ngược S01, …, S71 (Hình 5b) (các khối chuyển vịngược có thể suy ra dễ dàng từ bảng của các khối chuyển vị thuận) Trongthuật toán mới xây dựng, các khối chuyển vị sử dụng 8 khối chuyển vị kíchthước 44 của thuật toán DES
(j)
V j = (v1(j), …, v n/2 (j))
Z j = (z1(j), …, z n/2 (j))
Trang 33
Hình 1.26: a) Sơ đồ cấu trúc Crypt(D)_128 b) Một vòng mã hóa cơ sở
Crypt.
Hình 3.5: a) Các khối chuyển vị thuận b) Các khối chuyển vị ngược.
Các mạng chuyển vị - thay thế cố định F64/384 và F32/32 được xây dựng dựatrên các phần tử F2/2 và F2/2 Trong thuật toán mới xây dựng, các hộp Sđược sử dụng giống như trong chuẩn mã dữ liệu DES và được mô tả thôngqua các bảng 1a và 1b
а)
B A
Biến đổi cuối (FT)
7
4
3 2
3 2
3 2
Trang 34-Bảng 1а: Bảng chuyển vị S0, …, S7 kích thước 44.
1.2.4 Xây dựng các hoán vị xoắn
Trong thuật toán xây dựng, có sử dụng hàng loạt các hoán vị xoắn I0,
I1, I2, I3, chúng sẽ làm tăng hiệu ứng thác lũ Hoán vị xoắn I0 ở phần bên tráicủa sơ đồ mã được thực hiện như sau:
(1)(2,34)…(2i1)(2j,2j + 32)… (32,64)(33)(34)… (61)(63)
Ở đây, i = 1, 2, …, 32 và j = 1, 2, …, 16
Trang 35Hoán vị xoắn I1 đã được mô tả ở trên.
Hoán vị I2 được tạo ra từ hoán vị I2 Hoán vị I2 giải quyết nhiệm vụchuyển mạch giữa 2 khối S kích cỡ 44 và 1 lớp mạng xây dựng từ 4 phần
tử F2/2 theo nguyên tắc «1-1» Hoán vị này được mô tả như sau (Hình 6)
Hình 1.27: Hoán vị I2.Kết hợp 4 hoán vị I’2 sẽ tạo nên hoán vị I2 Hoán vị xoắn I2 có thể được mô
Hoán vị cố định I3 giải quyết nhiệm vụ chuyển mạch giữa 4 nút 8 bít(mỗi nút được xây dựng từ 4 phần tử F2/2 - kết hợp thành 2 hộp S kíchthước 44) và 8 hộp S kích thước 44 theo nguyên tắc «1-1»
2.5 Thời gian biểu sử dụng khóa đơn giản
a) Sử dụng khóa bí mật 256 bít
Trong thuật toán, các khóa con K i {0, 1}64 được lựa chọn trực tiếp từ
khóa bí mật K = (K1, K2, K3, K4) 256 bít Các khóa vòng Q j (khi mã hóa) và
Q j (khi giải mã) sẽ được sử dụng qua các vòng mã hóa, chúng được mô tảtrong Bảng 2 Vì thế việc sử dụng khóa trong thuật toán rất đơn giản
Trang 36Bảng 2: Sơ đồ sử dụng khóa 256 bít (j = 11 tương ứng với biến đổi cuối).
Số TT của vòng
Mã hóa Q j K1 K2 K3 K4 K2 K3 K4 K1 K3 K4 K2
Giải mã Q j K2 K4 K3 K1 K4 K3 K2 K4 K3 K2 K1
Với thuật toán mới xây dựng, trong mỗi vòng mã hóa thực hiện một
và chỉ một việc kết hợp của khóa vòng 64 bít với các khối dữ liệu bên trái
và phải vì vậy chúng sẽ làm đơn giản hóa việc thực hiện trên vi mạch của
thuật toán Thủ tục Crypt không có tính xoắn, dù rằng nếu loại bỏ toán tử
cộng với khóa vòng thì phần còn lại của vòng biến đổi sẽ có tính xoắn Đểđảm bảo tính đối xứng khi mã và giải mã, thuật toán được kết hợp thêm thủtục biến đổi cuối (đơn giản), nhờ nó mà việc giải mã sẽ hoàn toàn trùng vớithủ tục mã hóa (loại trừ việc cần thay đổi bảng sử dụng khóa) Biến đổicuối sẽ thực hiện việc tráo thứ tự giữa 2 khối dữ liệu được biến đổi (có kếthợp với khóa vòng)
Véctơ điều khiển V và V, tương ứng với các khối toán tử F64/192 và F 1
-64/192 hình thành với sự trợ giúp của khối mở rộng E, khối này có thể được
mô tả như sau:
Trang 371 For j = 1 to 9 do: {(L, R) Crypt (e) ( L, R, Q j ); (L, R) (L, R)}.
2 (L, R) Crypt (e) ( L, R, Q10)
3 (L, R) (L Q11, R Q11)
b) Sử dụng khóa bí mật 192 bít
Trong thuật toán các khóa con K i {0, 1}64 được lựa chọn trực tiếp từ
khóa bí mật K = (K1, K2, K3) 192 bít Các khóa vòng Q j (khi mã hóa) và Q j
(khi giải mã) sẽ được sử dụng qua các vòng mã hóa, chúng được mô tảtrong bảng 3 Vì thế việc sử dụng khóa trong thuật toán rất đơn giản
Bảng 3: Sơ đồ sử dụng khóa 192 bít (j = 11 tương ứng với biến đổi cuối).
Mã hóa Q j K1 K2 K3 K1 K3 K3 K2 K1 K1 K3 K2
Giải mã Q j K2 K3 K1 K1 K2 K3 K3 K1 K3 K2 K1
c) Sử dụng khóa bí mật 128 bít
Trong thuật toán các khóa con K i {0, 1}64 được lựa chọn trực tiếp từ
khóa bí mật K = (K1, K2) 128 bít Các khóa vòng Q j (khi mã hóa) và Q j (khigiải mã) sẽ được sử dụng qua các vòng mã hóa, chúng được mô tả trongbảng 4 Vì thế việc sử dụng khóa trong thuật toán rất đơn giản
Bảng 4: Sơ đồ sử dụng khóa 128 bít (j = 11 tương ứng với biến đổi cuối).
Số TT của vòng
Mã hóa Q j K1 K2 K2 K1 K2 K1 K1 K2 K2 K1 K2
Giải mã Q j K2 K1 K2 K2 K1 K1 K2 K1 K2 K2 K1