Tải bản đầy đủ (.doc) (184 trang)

Nghiên cứu ma trận MDS và phép biến đổi ma trận bảo toàn các tính chất mật mã tốt nhằm xây dựng tầng khuếch tán khuếch tán động hiệu quả cho mã khối cấu trúc SPN

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.25 MB, 184 trang )

i

LỜI CAM ĐOAN
Tôi xin cam đoan công trình nghiên cứu này là của riêng tôi. Các kết quả
nghiên cứu và các kết luận trong Luận án này là trung thực, và không sao chép từ
bất kỳ một nguồn nào và dưới bất kỳ hình thức nào. Việc tham khảo các nguồn tài
liệu (nếu có) đã được thực hiện trích dẫn và ghi nguồn tài liệu tham khảo đúng quy
định.
Tôi xin cam đoan rằng mọi sự giúp đỡ cho việc thực hiện Luận án đã được cám
ơn, các thông tin trích dẫn trong Luận án này đều được chỉ rõ nguồn gốc.

Tác giả Luận án
Trần Thị Lƣợng


ii

LỜI CẢM ƠN
Trong quá trình thực hiện đề tài “Nghiên cứu ma trận MDS và các phép biến
đổi ma trận bảo toàn các tính chất mật mã tốt nhằm xây dựng tầng khuếch
tán/khuếch tán động hiệu quả cho mã khối có cấu trúc SPN”, tôi đã nhận được rất
nhiều sự giúp đỡ, tạo điều kiện của Lãnh đạo Ban Cơ yếu chính phủ, Lãnh đạo Học
viện Kỹ thuật mật mã, Lãnh đạo Khoa Mật mã, Lãnh đạo Khoa ATTT, Phòng Sau
Đại học; Các nhà khoa học, các cán bộ ở các phòng ban chức năng của Học viện Kỹ
thuật mật mã. Tôi xin bày tỏ lòng cảm ơn chân thành về sự giúp đỡ đó.
Tôi xin bày tỏ lòng biết ơn sâu sắc tới TS. Nguyễn Ngọc Cương, TS. Nguyễn
Chung Tiến - những người thầy đã trực tiếp hướng dẫn và chỉ bảo tận tình cho tôi
hoàn thành Luận án này. Tôi xin chân thành cảm ơn bạn bè, đồng nghiệp của tôi
đang công tác tại Học viện Kỹ thuật mật mã và gia đình thân yêu đã động viên,
khích lệ, tạo điều kiện và giúp đỡ tôi trong suốt quá trình thực hiện và hoàn thành
Luận án này.


Tác giả Luận án
NCS. Trần Thị Lƣợng


iii

MỤC LỤC
LỜI CAM ĐOAN..................................................................................................... i
LỜI CẢM ƠN.......................................................................................................... ii
DANH MỤC TỪ VIẾT TẮT................................................................................. vi
DANH MỤC CÁC KÝ HIỆU TOÁN HỌC......................................................... vii
DANH MỤC HÌNH VẼ....................................................................................... viii
DANH MỤC BẢNG BIỂU.................................................................................... ix
PHẦN MỞ ĐẦU...................................................................................................... 1
CHƢƠNG 1. VỀ TẦNG KHUẾCH TÁN/KHUẾCH TÁN ĐỘNG, MA TRẬN
MDS/MDS ĐỘNG VÀ MẬT MÃ KHỐI ĐỘNG.................................................. 8
1.1. Vai trò của tầng khuếch tán, ma trận MDS/MDS động................................. 8
1.1.1. Giới thiệu về mã khối cấu trúc SPN................................................................ 8
1.1.2. Vai trò của tầng khuếch tán.............................................................................. 9
1.1.3. Vai trò của ma trận MDS............................................................................... 12
1.1.4. Vai trò của ma trận MDS động...................................................................... 15
1.2. Các phƣơng pháp xây dựng ma trận MDS.................................................. 16
1.2.1. Xây dựng các ma trận MDS từ các mã MDS................................................ 17
1.2.2. Các hướng nghiên cứu xây dựng ma trận MDS nhằm “tối ưu hóa” trong thực
thi............................................................................................................................ 20
1.3. Các kiểu mã khối SPN động.......................................................................... 30
1.3.1. Kiểu mã khối động ở tầng thay thế................................................................ 30
1.3.2. Kiểu mã khối động ở tầng khuếch tán........................................................... 31
1.3.3. Kiểu mã khối động ở cả hai tầng thay thế và khuếch tán...............................32
1.3.4. Các kiểu động khác....................................................................................... 32

1.4. Các phép biến đổi ma trận MDS................................................................... 32
1.5. Mô tả bài toán cần giải quyết của Luận án.................................................. 35
1.6. Kết luận chƣơng............................................................................................. 37


iv

CHƢƠNG 2. PHÁT TRIỂN CƠ SỞ LÝ THUYẾT XÂY DỰNG MA TRẬN
MDS/MDS ĐỘNG VÀ CÁC THUẬT TOÁN TẦNG KHUẾCH
TÁN/KHUẾCH TÁN ĐỘNG HIỆU QUẢ CHO MÃ KHỐI SPN.....................38
2.1. Xây dựng hiệu quả các ma trận MDS/MDS truy hồi dựa trên mã RS.......38
2.1.1. Xây dựng hiệu quả các ma trận MDS dựa trên mã RS/RS mở rộng..............38
2.1.2. Xây dựng hiệu quả các ma trận MDS truy hồi dựa trên mã RS.....................43
2.2. Xây dựng cơ sở lý thuyết cho các phép biến đổi ma trận bảo toàn các tính
chất mật mã tốt...................................................................................................... 46
2.2.1. Phép lũy thừa trực tiếp của một ma trận MDS.............................................. 47
2.2.2. Phép biến đổi nhân với vô hướng của ma trận MDS..................................... 58
2.2.3. Mối quan hệ giữa

và............................................................................... 65

2.2.4. Phép hoán vị các hàng, cột của một ma trận MDS........................................ 66
2.2.5. Những ứng dụng tiềm năng của các phép biến đổi ma trận MDS trong mã
khối SPN................................................................................................................. 68
2.3. Đề xuất các phép biến đổi ma trận bảo toàn các tính chất mật mã tốt......71
2.4. Đầu vào và đầu ra của các ma trận MDS động trong tầng khuếch tán.....72
2.4.1. Tính đầu vào và đầu ra của ma trận MDS động qua phép lũy thừa trực tiếp . 73

2.4.2. Tính đầu vào và đầu ra của ma trận MDS động qua phép nhân với vô hướng
76

2.4.3. Thực hành tính nhanh phép lũy thừa trực tiếp............................................... 78
2.5. Phát triển các thuật toán tầng khuếch tán động hiệu quả cho mã khối SPN
80
2.5.1. Cơ sở phát triển các thuật toán tầng khuếch tán động hiệu quả.....................80
2.5.2. Phát triển các thuật toán xây dựng tầng khuếch tán động..............................81
2.5.3. Hướng ứng dụng các thuật toán động cho mã khối SPN...............................93
2.6. Kết luận chƣơng............................................................................................. 95
CHƢƠNG 3. ĐỀ XUẤT ỨNG DỤNG CÁC KẾT QUẢ NGHIÊN CỨU VÀO
CẢI BIÊN MÃ KHỐI AES................................................................................... 96
3.1. Đề xuất các ma trận MDS tĩnh hiệu quả...................................................... 96


v

3.1.1. Cơ sở đề xuất................................................................................................. 96
3.1.2. Đề xuất lựa chọn các phương pháp xây dựng ma trận MDS tĩnh..................97
3.1.3. Đề xuất các ma trận MDS tĩnh..................................................................... 101
3.2. Ứng dụng các ma trận MDS tĩnh vào cải biên mã khối AES....................117
3.3. Ứng dụng các ma trận MDS động/thuật toán động vào cải biên mã khối
AES....................................................................................................................... 120
3.3.1. Ứng dụng thuật toán 2.5 và 2.6 vào cải biên mã khối AES..........................121
3.3.2. Ứng dụng thuật toán 2.5* và 2.6* vào cải biên mã khối AES......................132
3.4. Đánh giá các mã khối AES cải biên............................................................. 135
3.4.1. Đánh giá độ an toàn của các mã khối AES cải biên..................................... 135
3.4.2. Đánh giá dựa trên các tiêu chuẩn thống kê của các mã khối AES cải biên .. 137

3.4.3. Đánh giá tốc độ của các mã khối AES cải biên............................................ 138
3.5. Kết luận chƣơng........................................................................................... 146
KẾT LUẬN VÀ ĐỀ XUẤT................................................................................. 147
DANH MỤC CÁC CÔNG TRÌNH ĐÃ CÔNG BỐ.......................................... 151

TÀI LIỆU THAM KHẢO................................................................................... 153
PHỤ LỤC…………………………….…………………………………………. 159


vi

DANH MỤC TỪ VIẾT TẮT
STT

Từ viết tắt

Viết đầy đủ

Nghĩa tiếng Việt

1

AES

Advanced Encryption
Standard

Chuẩn mã hóa tiên tiến

2

MDS

Maximum Distance Separable


Mã tách có khoảng cách cực
đại

3

RS

Reed-Solomon

Mã Reed-Solomon

4

BCH

Bose – Chaudhuri –
Hocquenghem

Mã BCH

5

PN

Pseudo Random Number

Số giả ngẫu nhiên

6


LFSR

Linear Feedback Shift
Register

Thanh ghi dịch phản hồi
tuyến tính

7

SPN

Substitution – Permutation
Network

Mạng thay thế - hoán vị

8

LCG

Linear Congruential Generator Bộ sinh đồng dư tuyến tính

9

OTP

One Time Pad

Hệ mật mã sử dụng một lần


10

FSE

Fast Software Encryption

Mã hóa phần mềm nhanh

11

ELP

Expected Linear Probability

Xác suất tuyến tính trung
bình

12

EDP

Expected Differential
Probability

Xác suất lượng sai trung
bình

13


ELCP

Expected Linear Characteristic Xác suất đặc trưng tuyến
Probability
tính trung bình

14

ALH

Approximate Linear Hull

Bao tuyến tính


vii

DANH MỤC CÁC KÝ HIỆU TOÁN HỌC

STT
1

Ký hiệu

Giải nghĩa
Phép XOR



2


&

Phép AND

3

Li

Hàm tuyến tính bất kỳ

5





6
7
8

Dịch chuyển một chuỗi bit đi
phải (trái)

9

Dịch vòng một chuỗi bit
(trái)

10


|.|

12

x(n)

Nối hai chuỗi bit



Một giá trị gồm

-bit

13

Số nhánh lượng sai

14

Số nhánh tuyến tính

15

đi bit sang bên phải

Định thức của một ma trận trong
là số nguyên tố


11

[ ]

bit sang bên

Ma trận

16

Định thức của ma trận

17

Ma trận vòng

18

Trường hữu hạn gồm

phần tử

19

Trường hữu hạn gồm

phần tử

20


Hệ cơ số 16

, với


viii

DANH MỤC HÌNH VẼ
Hình 1.1. Sơ đồ một vòng mã hóa của cấu trúc SPN................................................ 8
Hình 1.2. Ma trận sinh và ma trận kiểm tra của mã................................................ 18
Hình 1.3. Ma trận sinh và ma trận kiểm tra của mã

mở rộng...........................19

Hình 2.1. Ma trận MDS cỡ

từ mã............................................................ 42

Hình 2.2. Ma trận truy hồi cỡ

thu được từ mã............................................. 45

Hình 2.3. Ma trận liên kết cỡ

ứng với ma trận truy hồi từ mã...................46

Hình 3.1. Phương pháp chung tìm kiếm các ma trận MDS hiệu quả……………...94
Hình 3.2. Hàm vòng của AES trong vòng .......................................................... 103
Hình 3.3. Ma trận tầng khuếch tán cỡ


của AES...................................... 103

Hình 3.4. Thuật toán AES_DD1........................................................................... 120
Hình 3.5. Thuật toán AES_DD2........................................................................... 121


ix

DANH MỤC BẢNG BIỂU
Bảng 1.1: Các giá trị của......................................................................................... 21
Bảng 1.2: Các giá trị của......................................................................................... 22
Bảng 2.1: Đề xuất các phép biến đổi ma trận MDS................................................ 72
Bảng 2.2: Bảng tra lũy thừa trực tiếp trên trường................................................... 80
Bảng 2.3: So sánh các thuật toán động đề xuất với các phương pháp động trong [44,
46] ..............................................................................................................................
92
Bảng 3.1: So sánh tính hiệu quả của các dạng ma trận MDS ..................................
98
Bảng 3.2: Đề xuất các dạng ma trận MDS hiệu quả cho thực thi ..........................

100

Bảng 3.3: Các kích cỡ ma trận MDS thu được của Luận án ..................................

101

Bảng 3.4: Số điểm bất động và số khối đầu vào thỏa mãn
.................................................................................................................................

Bảng 3.5: Số lớp ma trận MDS cỡ


có số điểm bất động nhỏ nhất ...............

Bảng 3.6: Danh sách các ma trận MDS tĩnh cỡ
Bảng 3.7: So sánh các ma trận MDS cỡ

được đề xuất ....................

104
109
110

đề xuất với các ma trận MDS trong

các mã nổi tiếng ......................................................................................................

Bảng 3.8: Số lớp ma trận MDS cỡ

của AES

có số điểm bất động nhỏ nhất ...............

Bảng 3.9: Danh sách các ma trận MDS tĩnh cỡ
Bảng 3.10: So sánh các ma trận MDS cỡ

được đề xuất......................

112

đề xuất với các ma trận MDS trong


các mã nổi tiếng ......................................................................................................

Bảng 3.11: Số lớp ma trận MDS truy hồi cỡ

113
có số điểm bất động nhỏ nhất

.................................................................................................................................

Bảng 3.12: Danh sách các ma trận MDS tĩnh cỡ

111
111

được đề xuất ...............

114
115

Bảng 3.13: So sánh ma trận MDS cỡ 16 đề xuất với ma trận MDS trong mã khối
GOST R34.12-2015 ................................................................................................ 116
Bảng 3.14: Các ma trận MDS truy hồi được chọn làm các ma trận gốc cho Thuật
toán 2.5 và Thuật toán 2.6 ....................................................................................... 122
Bảng 3.15: Các ma trận MDS phụ thuộc khóa - kết quả của Thuật toán 2.5 và một
số tính chất mật mã với khóa thứ nhất .................................................................... 124


x


Bảng 3.16: Các ma trận MDS phụ thuộc khóa - kết quả của Thuật toán 2.5 và một
số tính chất mật mã với khóa thứ 2 ......................................................................... 126
Bảng 3.17: Ma trận đầu vào thứ 2 ( ) cho Thuật toán 2.6 ..................................... 128
Bảng 3.18: Các ma trận MDS phụ thuộc khóa - kết quả của Thuật toán 2.6 và một
số tính chất mật mã .................................................................................................
129
Bảng 3.19: Kết quả thực hiện thuật toán 2.5* và tốc độ của AES_DD1 ............... 133
Bảng 3.20: Kết quả thực hiện thuật toán 2.6* và tốc độ của AES_DD2 ............... 134
Bảng 3.21: Số hộp hoạt động và cận trên của các giá trị

cực đại và

cực đại của các mã khối cải biên AES_4_4 và AES (với các ma trận MDS
,
) ..............................................................................................................
Bảng 3.22: Số hộp hoạt động và cận trên của các giá trị
cực đại và

136

cực đại của các mã khối cải biên AES_8_8 với các ma trận MDS
,
.................................................................................................................................
Bảng 3.23: Số hộp hoạt động và cận trên của các giá trị
cực đại và

136

cực đại của các mã khối cải biên AES_16_16 với các ma trận MDS
.................................................................................................................


,
136

Bảng 3.24: Bảng kiểm tra các tiêu chuẩn thống kê của các mã khối AES cải biên
................................................................................................................................. 138
Bảng 3.25: Cấu hình máy tính thử nghiệm............................................................. 138
Bảng 3.26: So sánh tốc độ thực hiện của các mã khối AES cải biên tĩnh với các ma
trận MDS cỡ..................................................................................................
139
Bảng 3.27: So sánh tốc độ thực hiện của các mã khối AES cải biên tĩnh với các ma
trận MDS cỡ..................................................................................................
140
Bảng 3.28: Tốc độ thực hiện của mã khối AES cải biên tĩnh với ma trận MDS cỡ
................................................................................................................... 142
Bảng 3.29: So sánh tốc độ của các mã khối AES_DD1 (Thuật toán 2.5) .............. 143
Bảng 3.30: Đánh giá tốc độ của mã khối AES_DD2 (Thuật toán 2.6) .................. 144
Bảng 3.31: Đề xuất ứng dụng với mã khối SPN tĩnh ............................................. 149


1

PHẦN MỞ ĐẦU
1. Lý do chọn đề tài
Mã khối là một lĩnh vực quan trọng của mật mã hiện đại. Việc ứng dụng mã
khối để thiết kế các sản phẩm mật mã phục vụ cho lĩnh vực an ninh quốc phòng và
kinh tế xã hội có nhiều thuận lợi, hiệu quả.
Sự phát triển của mã khối diễn ra rất nhanh, nhiều công trình khoa học có giá trị
cao về lĩnh vực này đã lần lượt ra đời. Nhiều chính phủ và tổ chức quốc tế rất quan
tâm đến việc nghiên cứu và phát triển mã khối. Minh chứng cho điều này là việc

Mỹ đã mở hai chiến dịch tuyển chọn chuẩn thuật toán mã khối trong hai giai đoạn
kế tiếp nhau, giai đoạn sau có quy mô và chất lượng cao hơn giai đoạn trước. Liên
bang Nga cũng đã xây dựng chuẩn mã khối riêng của mình từ rất sớm. Lần thứ hai
mới đây nhất chuẩn mã khối GOST R34.12-2015 mới được nghiên cứu và hoàn
thành năm 2015.
Trong bài báo “Communication Theory of Secrecy Systems”, Claude Shannon
viết: xáo trộn và khuếch tán là hai thuộc tính cần phải có cho hoạt động của bất kỳ
thuật toán mật mã an toàn nào [59]. Tầng xáo trộn làm cho mối quan hệ về mặt
thống kê giữa xâu bản mã và xâu bản rõ trở nên phức tạp hơn, trong khi tầng khuếch
tán gắn với sự phụ thuộc của các bit đầu ra với các bit đầu vào. Trong các mã cổ
điển, hai thuộc tính này đạt được bằng cách sử dụng các mã thay thế hoặc mã hoán
vị. Trong mật mã hiện đại cũng sử dụng sự thay thế và hoán vị dưới dạng các mạng
thay thế - hoán vị (SPN - Substitution Permutation Network).
Mã khối có hai cấu trúc chính được sử dụng nhiều nhất là cấu trúc Feistel và
cấu trúc SPN. Tầng khuếch tán của mã khối có cấu trúc SPN thường được xây dựng
dựa trên các ma trận MDS (Maximum Distance Separable) là ma trận của mã tách
có khoảng cách cực đại (mã MDS).
Các mã MDS đã được nghiên cứu từ lâu trong lý thuyết mã sửa sai và có ứng
dụng không chỉ trong lý thuyết mã mà còn có vai trò quan trọng trong thiết kế mã
khối và các hàm băm. Nếu là mã tuyến tính với tham số , trong đó là độ dài từ mã,
là độ dài bản rõ cần mã và là khoảng cách tối thiểu của mã thì


2
người ta thấy rằng các tham số này sẽ thỏa mãn bất đẳng thức



. Đó là


giới hạn Singleton [40, Định lý 11, tr. 33]. Mã MDS là mã tuyến tính
đó

, trong

. Nghĩa là nó tối ưu về khoảng cách mã. Ngoài ra, mã Reed-

Solomon là trường hợp đặc biệt của mã MDS.
Serge Vaudenay là người đầu tiên giới thiệu các ma trận MDS đưa vào sử dụng
cho mã khối trong FSE’94 [61]. Số nhánh của tầng khuếch tán trong mã khối cấu
trúc SPN [32, 61, 65, 66] được coi như một tiêu chuẩn để thiết kế tầng khuếch tán.
Đối với mã khối, độ an toàn chống lại các tấn công mạnh (như tấn công tuyến tính,
tấn công lượng sai) phụ thuộc vào số nhánh của tầng khuếch tán. Số nhánh càng lớn
thì độ an toàn càng cao. Điều đáng nói ở đây là, số nhánh của tầng khuếch tán
, trong đó là số đầu vào của tầng khuếch tán. Số nhánh này đạt giá trị lớn
nhất nếu ma trận MDS được dùng trong tầng khuếch tán. Điều thú vị là, nếu số
nhánh tuyến tính đạt giá trị lớn nhất thì số nhánh lượng sai cũng đồng thời đạt giá trị
lớn nhất [30].
Ma trận MDS đã được sử dụng trong tầng khuếch tán của nhiều mã khối như
AES [11, 12], SHARK [48], Square [10], Twofish [57, 58], Anubis, KHAZAD,
Manta, Hierocrypt [48], trong mã dòng MUGI và hàm băm mật mã WHIRLPOOL.
Như vậy, việc thiết kế các tầng khuếch tán với số nhánh cao sẽ góp phần nâng
cao khả năng của mã khối kháng lại các tấn công tuyến tính và tấn công lượng sai.
Do tính hữu ích của ma trận MDS nên ngoài cách xây dựng ma trận MDS từ
mã MDS (chẳng hạn từ mã Reed-Solomon), đã có nhiều phương pháp khác được
nghiên cứu để tạo ra chúng, chẳng hạn như dựa trên: ma trận Cauchy [47, 64], ma
trận Hadamard [15], ma trận Vandermonde [52], ma trận liên kết [20], các ma trận
MDS truy hồi, v.v.
Trên thế giới hiện nay, có ba hướng nghiên cứu chính về các ma trận MDS
nhằm “tối ưu hóa” thực thi, bao gồm: Xây dựng các ma trận MDS có nhiều số 1 và

có ít các phần tử khác nhau trong ma trận [22, 29], xây dựng các ma trận MDS có
thuộc tính tự nghịch đảo [9, 15, 21, 52, 64, 66], xây dựng các ma trận MDS truy hồi
(là lũy thừa của một ma trận liên kết [5, 6, 33, 53, 62]). Ngoài ra, một số tác giả
nghiên cứu và đề xuất các ma trận MDS có thuộc tính vòng và tựa vòng [13, 22,


3

29]. Những ma trận thỏa mãn được các thuộc tính trên là điều mong muốn của các
nhà thiết kế mã khối và tạm gọi chúng là những ma trận có các thuộc tính mật mã
tốt. Tuy nhiên, rất khó có thể tìm ra những ma trận MDS thỏa mãn đồng thời tất cả
các thuộc tính trên.
Ngoài ba hướng nghiên cứu chính ở trên, có một số nghiên cứu khác về việc
xây dựng các ma trận MDS hạng nhẹ và có khả năng tự nghịch đảo sử dụng các ma
trận Hadamard hoặc Hadamard-Cauchy [60], hoặc từ các ma trận vòng [37, 39], các
ma trận tựa vòng [22]. Ngoài ra, trong thực tế các ma trận nhị phân có số nhánh cao
cũng thường được sử dụng trong một vài mã khối chẳng hạn Camellia [3], theo đó
có một số nghiên cứu về phương pháp xây dựng các ma trận nhị phân có số nhánh
cao và số điểm bất động thấp như trong [14, 54].
Để tiếp tục nâng cao độ an toàn cho mã khối, người ta đã và đang nghiên cứu
xây dựng các mã khối “động”. Chẳng hạn, trong [44] và [46], các tác giả xây dựng
tầng khuếch tán động bằng cách tạo các ma trận MDS động phụ thuộc khóa cho
từng vòng mã hóa. Trong [57, 58], các tác giả xây dựng tầng thay thế động phụ
thuộc vào khóa. Trong [2], các tác giả lại xây dựng mã khối động ở cả hai tầng thay
thế và hoán vị, bằng cách xây dựng một ngân hàng hộp thế và sinh các ma trận
MDS động phụ thuộc khóa.
Từ đó, một số phép biến đổi ma trận MDS đã được nghiên cứu như: phép nhân
với vô hướng [45], phép hoán vị các hàng, cột [22, 44], phép lũy thừa trực tiếp [45].
Tuy nhiên, chưa có những nghiên cứu nào chỉ ra khả năng bảo toàn những thuộc
tính mật mã tốt như đã nói ở trên của mỗi phép biến đổi. Hơn nữa, cũng chưa có

những nghiên cứu chỉ ra tính hiệu quả của việc ứng dụng các phép biến đổi này để
xây dựng các thuật toán tầng khuếch tán động cho mã khối.
Ở Việt Nam, các nhà khoa học đã đầu tư nghiên cứu trong một thời gian dài và
đã đạt được một số thành tựu quan trọng trong lĩnh vực nghiên cứu về mã khối.
Chẳng hạn, đề tài Luận án TS năm 2016 liên quan đến các ma trận MDS của TS
Hoàng Văn Quân - Cục Cơ yếu Quân đội, Bộ tổng tham mưu, đó là: “Nghiên cứu
giải pháp nâng cao hiệu quả bảo mật thông tin trên mạng truyền số liệu đa dịch
vụ”.


4

Có thể nói, mã khối cấu trúc SPN, đặc biệt là tầng khuếch tán của loại mã khối
này đã được nghiên cứu nhiều và có nhiều thành tựu rất nổi bật trên thế giới, tuy
nhiên vẫn còn nhiều vấn đề mở liên quan đến tầng khuếch tán này chưa được
nghiên cứu, đặc biệt là lĩnh vực mã khối động.
Việc xây dựng các tầng khuếch tán MDS với chi phí thực thi thấp là một thách
thức lớn với các nhà thiết kế. Việc ứng dụng các ma trận MDS vào tầng khuếch tán
của mã khối như thế nào là một vấn đề quan trọng. Các ma trận MDS này cần thỏa
mãn những điều kiện hay tiêu chí gì, và trong từng trường hợp nên sử dụng ma trận
MDS nào là phù hợp? Đồng thời cần sử dụng những phép biến đổi ma trận nào có
khả năng bảo toàn được các tính chất mật mã cần thiết và góp phần xây dựng được
các tầng khuếch tán/khuếch tán động hiệu quả cho mã khối nhằm nâng cao độ an
toàn của mã khối chống lại nhiều tấn công mạnh như tấn công tuyến tính, tấn công
lượng sai, đặc biệt là đối với mã khối có cấu trúc SPN? Đó là nhiệm vụ quan trọng
và cũng là lý do mà đề tài Luận án được lựa chọn. Xin nói thêm là, trong Luận án
này, về phần thực nghiệm chỉ tập trung thực thi trên phần mềm.
2. Mục tiêu nghiên cứu
Mục tiêu của Luận án là tìm ra thuật toán xây dựng hiệu quả các ma trận MDS
có những tính chất mật mã tốt và các phép biến đổi ma trận có khả năng bảo toàn

những tính chất đó nhằm xây dựng tầng khuếch tán/khuếch tán động hiệu quả cho
mã khối có cấu trúc SPN.
3. Đối tƣợng và phạm vi nghiên cứu
Đối tượng nghiên cứu là các thuật toán tạo ra những ma trận MDS đáp ứng tốt
một số tiêu chí như: có số điểm bất động nhỏ, có chi phí thực thi bằng phần
cứng/phần mềm thấp; những phép biến đổi ma trận MDS có khả năng bảo toàn các
tính chất như: MDS, tính truy hồi, tính tự nghịch đảo, số lượng các số 1 và số các
phần tử khác nhau trong ma trận, tính vòng và tựa vòng v.v.
Phạm vi nghiên cứu là các phương pháp xây dựng và các hướng tối ưu hóa thực
thi ma trận MDS, một số kiểu động tầng khuếch tán của mã khối SPN, các phép
biến đổi ma trận MDS.


5

4. Nội dung nghiên cứu
Nội dung nghiên cứu cơ bản được trình bày trong Luận án bao gồm:
 Nghiên cứu tầm quan trọng của ma trận MDS/MDS động, các phương pháp
xây dựng và các hướng tối ưu hóa thực thi ma trận MDS, các kiểu động tầng
khuếch tán của mã khối SPN, các phép biến đổi ma trận MDS.
 Nghiên cứu tìm ra những thuộc tính mới của một số phép biến đổi ma trận
MDS và đề xuất một số kiểu động tầng khuếch tán cho mã khối SPN:
 Nghiên cứu việc ứng dụng các kết quả nghiên cứu trên để xây dựng tầng
khuếch tán và khuếch tán động cho mã khối cấu trúc SPN nói chung và đặc
biệt áp dụng vào cải biên mã khối AES.
5. Phƣơng pháp nghiên cứu
Các phương pháp nghiên cứu được sử dụng trong Luận án bao gồm :
 Phân tích, so sánh, tổng hợp, khái quát hóa và hệ thống hóa các tài liệu khoa
học đã công bố trên thế giới và trong nước, kết hợp với việc tự nghiên cứu.
 Sử dụng phương pháp luận liên ngành: toán ứng dụng, lý thuyết mã, mật mã

học trong nghiên cứu.
 Sử dụng các công cụ, kỹ thuật khác nhau để mô phỏng, cài đặt thử nghiệm
các thuật toán đã nghiên cứu, đề xuất.
6. Tính mới trong khoa học của Luận án
Những đóng góp khoa học mới của Luận án bao gồm:
 Phát triển một phương pháp xây dựng hiệu quả các ma trận MDS/MDS truy
hồi kích cỡ đủ lớn để ứng dụng cho việc xây dựng các tầng khuếch
tán/khuếch tán động hiệu quả cho mã khối cấu trúc SPN.
 Phát hiện và chứng minh được khả năng bảo toàn những tính chất mật mã tốt
của phép biến đổi lũy thừa trực tiếp nhằm làm cơ sở lý thuyết quan trọng cho
việc xây dựng các tầng khuếch tán/khuếch tán động hiệu quả cho mã khối
cấu trúc SPN.
 Mở rộng phép nhân với vô hướng với các dòng của một ma trận MDS (tài
liệu [45]) thành phép nhân với vô hướng mới đó là nhân với vô hướng với


6

đồng thời cả các dòng và các cột của một ma trận MDS. Qua đó, chỉ ra rằng
phép nhân với vô hướng mới này bảo toàn một số tính chất mật mã tốt như :
tính MDS và tính tự nghịch đảo.
 Phát triển cơ sở lý thuyết cho việc tính toán hiệu quả các đầu vào và đầu ra
của các ma trận MDS động dựa trên các ma trận MDS tĩnh ban đầu.
 Nghiên cứu đề xuất một số thuật toán động hiệu quả cho tầng khuếch tán của
mã khối cấu trúc SPN nhằm nâng cao độ an toàn của các mã khối này.
7. Ý nghĩa khoa học và thực tiễn của Luận án
 Về phƣơng diện lý thuyết:


Nghiên cứu, phát triển một phương pháp xây dựng hiệu quả các ma trận

MDS/MDS truy hồi kích cỡ đủ lớn để ứng dụng cho việc xây dựng các
tầng khuếch tán/khuếch tán động cho mã khối cấu trúc SPN.



Góp phần xây dựng thêm lý thuyết cho mã khối có cấu trúc SPN dùng
tầng khuếch tán động (nghiên cứu các tính chất mật mã được bảo toàn
khi “động” nhờ các phép biến đổi; các thuật toán động; đánh giá độ an
toàn; có nghiên cứu về tính hiệu quả trong thực thi).

 Về phƣơng diện thực tiễn:


Luận án đã cải biên thành công mã khối AES, tạo ra các mã khối AES cải
biên dựa trên nền AES với tầng khuếch tán cải tiến (tầng khuếch tán tĩnh
và động) bằng cách sử dụng các ma trận MDS và các thuật toán động đề
xuất. Các mã khối AES cải biên có độ an toàn thực tế cao hơn hoặc bằng

so với AES, có độ khuếch tán tốt, có hệ số nhỏ hơn, tốc độ thực hiện
tương đương với AES.
 Các kết quả nghiên cứu của Luận án góp phần là cơ sở lý thuyết quan
trọng để ứng dụng xây dựng các mã khối SPN/SPN động nói chung có độ
an toàn cao, đáp ứng nhu cầu bảo mật thông tin trong thực tế.


7

8. Cấu trúc của Luận án
Ngoài phần mở đầu, kết luận, tài liệu tham khảo và các danh mục từ viết tắt,
danh mục các ký hiệu toán học, danh mục bảng, danh mục hình vẽ, nội dung chính

của Luận án gồm 3 chương sau đây.
Chương 1: Về tầng khuếch tán/khuếch tán động, ma trận MDS/MDS động và
mật mã khối động.
Chương 2: Phát triển cơ sở lý thuyết xây dựng ma trận MDS/MDS động và các
thuật toán tầng khuếch tán/khuếch tán động hiệu quả cho mã khối SPN.
Chương 3: Đề xuất ứng dụng các kết quả nghiên cứu vào cải biên mã khối AES.
Toàn bộ nội dung của Luận án được trình bày trong 150 trang gồm Phần mở đầu, ba
chương nội dung, kết luận và kiến nghị; trong đó có 36 bảng và 11 hình vẽ.
Phần phụ lục được trình bày trong 100 trang.


8

CHƢƠNG 1. VỀ TẦNG KHUẾCH TÁN/KHUẾCH TÁN ĐỘNG,
MA TRẬN MDS/MDS ĐỘNG VÀ MẬT MÃ KHỐI ĐỘNG
1.1. Vai trò của tầng khuếch tán, ma trận MDS/MDS động
1.1.1. Giới thiệu về mã khối cấu trúc SPN
Như chúng ta đã biết, mã khối có cấu trúc SPN gồm có nhiều vòng, mỗi vòng nói
chung gồm ba tầng: thay thế, hoán vị và cộng khóa (Hình 1.1). Tầng thay thế được
xây dựng dựa trên các phép thay thế phi tuyến nhỏ hay còn gọi là các hộp thế -box
(hộp ) tạo ra sự xáo trộn. Tầng hoán vị là một biến đổi tuyến tính nhằm khuếch tán
các đặc trưng mật mã của tầng thay thế. Tầng cộng khóa sẽ cộng các
khóa con vòng vào mã và vị trí của tầng này thay đổi theo mã.

Hình 1.1. Sơ đồ một vòng mã hóa của cấu trúc SPN
Do yêu cầu của bộ nhớ, hầu hết các nhà thiết kế mã khối sử dụng các hộp nhỏ,
chẳng hạn với đầu vào 4 bit hoặc 8 bit. Theo đó, tầng thay thế là thành phần phi
tuyến duy nhất, có vai trò quyết định đến độ an toàn của mã khối. Mặt khác, tầng
hoán vị (hay tầng khuếch tán) làm khuếch tán các đầu ra của các hộp , góp vai
trò lớn trong việc chống lại các tấn công khác nhau bao gồm tấn công lượng sai và

tấn công tuyến tính. Mặt khác, tầng hoán vị của hầu hết các mã khối hiện đại không
chỉ đơn giản là các hoán vị hay sự tráo đổi vị trí các bit, mà còn là các biến đổi
tuyến tính trên một vài không gian vectơ trên các trường hữu hạn khác nhau. Hầu
hết các tầng khuếch tán đều có các biểu diễn ma trận thích hợp, vì vậy chúng là các
biến đổi tuyến tính trên một số trường hữu hạn và có các tương ứng

với một


9

ma trận thích hợp. Với các biểu diễn ma trận đó, việc nghiên cứu vấn đề an toàn
thực tế và an toàn có thể chứng minh chống lại thám lượng sai và thám tuyến tính sẽ
đơn giản hơn rất nhiều.
Sau khi đề xuất Rijndael của Daemen và Rijmen được chọn làm AES, việc
nghiên cứu mã khối dạng SPN đã được quan tâm và phát triển rất nhanh.
1.1.2. Vai trò của tầng khuếch tán
Năm 1946, Claude Shannon đã đưa ra hai nguyên lý thiết kế cho mã khối là:
nguyên lý xáo trộn (confusion) và nguyên lý khuếch tán (diffusion) ([59]). Shannon
đã gợi ý rằng, có thể tạo ra sự xáo trộn bằng các phép biến đổi thay thế và tạo ra sự
khuếch tán thông qua việc sử dụng các phép biến đổi tuyến tính. Về bản chất có thể
nói, phép “xáo trộn” làm phức tạp quá trình phục hồi các liên hệ giữa tính chất
thống kê của bản rõ và bản mã, còn “khuếch tán” lan truyền sự ảnh hưởng của một
ký tự bản rõ lên số lượng lớn ký tự bản mã, điều này cho phép tạo sự cân bằng ảnh
hưởng của tính chất thống kê của bản rõ lên tính chất của bản mã.
Nhờ những kết quả trong khoảng 20 năm gần đây về các mã khối có cấu trúc
SPN nên các mã khối này còn được đánh giá là “an toàn có thể chứng minh” trước
hai tấn công cơ bản là tấn công lượng sai và tấn công tuyến tính.
Từ năm 1999-2002, Daemen và Rijmen [10, 11] đã sử dụng cụm từ Chiến
lược vết rộng (wide trail strategy) để chỉ tới phương pháp luận thiết kế chung, bao

gồm việc lựa chọn phép biến đổi tuyến tính để bảo đảm có một số lượng lớn các
hộp hoạt động (là những hộp có đầu vào khác 0). Hai tác giả đã chỉ ra rằng, số
lượng tối thiểu hộp hoạt động của AES trong một đặc trưng lượng sai 4-vòng hoặc
đặc trưng tuyến tính 4-vòng bất kỳ là bằng 25.
Sau nghiên cứu của các tác giả AES, trong Luận án của mình năm 2003 [32],
Keliher cũng chỉ ra các kết quả liên quan đến độ an toàn thực tế của các mã khối
SPN. Tuy nhiên, các kết quả đánh giá lý thuyết của Keliher có phần “thô” hơn so
với kết quả của các tác giả AES.
Sau đây, giả thiết các mã khối cấu trúc SPN có độ dài khối là
trong đó, tầng thay thế được xây dựng từ
ra gồm

bit (

),

hộp thế, mỗi hộp thế có đầu vào và đầu

bit; tầng tuyến tính là một phép biến đổi trên không gian

.


10

Với một ánh xạ tuyến tính khả nghịch

, người ta đưa ra độ đo khuếch tán của

nó như sau.

Định nghĩa 1.1 [15, 50]: Số nhánh của biến đổi tuyến tính
được định nghĩa bởi:
,
trong đó

là số thành phần (hay vị trí) khác 0 của vectơ

Mỗi thành phần của


.

là đầu vào của tầng khuếch tán (đầu ra của tầng thay thế)

là đầu ra của tầng khuếch tán này (đầu vào của tầng thay thế tiếp theo), do

đó số nhánh cũng chính là số tối thiểu các hộp
của một mã khối SPN. Theo [15, 50],
nghĩa

hoạt động trong hai vòng liên tiếp

là một độ đo cho độ khuếch tán của

theo

càng lớn thì độ khuếch tán càng tốt.

Để phân tích vai trò của tầng khuếch tán trong việc làm tăng số lượng các hộp hoạt
động trong hai vòng liên tiếp của một mã khối cấu trúc SPN, xin đề cập đến một số

kết quả liên quan đến độ an toàn thực tế được trình bày trong Luận án tiến sĩ
của Keliher [32] như dưới đây:
Cho

là một đặc trưng tuyến tính

vòng1; cho

2

là giá trị xác suất tuyến tính và xác suất lượng sai cực đại trên tất cả các hộp


bít
}.

vòng đối với các vòng 1... là một bộ

1 Đặc trưng

của


tương ứng là các mặt nạ

các mặt nạ

trong đó là kích cỡ bit của khối bản rõ đầu vào của mã khối SPN, và

đầu vào và đầu ra của vòng

[32]. Mặt nạ bit là các giá trị
{

2 Hai giá trị

các hộp

là các giá trị xác suất tuyến tính và xác suất lượng sai (

) cực đại trên tất cả

của SPN. Hai giá trị này được xác định như sau ([32]):
{
{

}
}

Trong đó, xác suất tuyến tính, xác suất lượng sai được được định nghĩa như sau:
Cho
:{

}

{

{

} là song ánh, và cho


} cố định. Nếu

{

được định nghĩa là:
= (2. ProbX {a  X = b 
}-1)2
trong đó,  là phép tích vô hướng giữa hai vectơ.
Cho
cố định. Nếu

}

là biến ngẫu

nhiên phân phối đều, thì xác suất tuyến tính

:{

}

{

nhiên phân phối đều, thì xác suất lượng sai
(

} là song ánh, và cho

(


{

}

) được định nghĩa là:
)=}
)=ProbX {S(x)  S(x 

{

}

là biến ngẫu


11

3

SPN. Số nhánh tuyến tính (số nhánh lượng sai ) của biến đổi tuyến tính SPN là số
tối thiểu các hộp hoạt động tuyến tính (hoạt động lượng sai) trong hai vòng liên tiếp
của bất kỳ đặc trưng nào.
Khi đó, độ phức tạp dữ liệu (số cặp rõ/mã) của Thuật toán 2 ([43]) của Matsui
4

chống lại thám tuyến tính được cho bởi :
(1.1
)
Độ phức tạp dữ liệu (số cặp rõ/mã) chống lại thám lượng sai là:
(1.2

)
(Xem thêm trong [32]).
Xét độ an toàn thực tế của mã khối SPN chống lại thám tuyến tính, thám
lượng sai:
Trong thực hiện thám tuyến tính, người tấn công chạy một thuật toán tìm kiếm
̂

̂

trực tiếp để tìm đặc trưng vòng sao cho ( ) đạt cực đại 5- (đặc trưng đó không cần duy nhất) được gọi là đặc trưng tốt nhất. Khi
đó, người ta xem độ phức tạp dữ liệu là:

(1.3
)
̂̂

3

Trong mã khối SPN, số nhánh lượng sai
tầng khuếch tán được định nghĩa như sau:

của biến đổi tuyến tính

(

của

)

trong đó

là sai khác đầu vào của tầng khuếch tán và
là sai khác đầu ra của tầng này [30].
Số nhánh tuyến tính của tầng khuếch tán được định nghĩa như sau:
trong đó
là mặt nạ đầu vào và
là mặt nạ đầu ra tương ứng với
của tầng khuếch tán [30].
4

là xác suất tuyến tính trung bình trên các vòng 1..

ứng là và . Tương tự,

với mặt nạ đầu vào, đầu ra tương

là xác suất lượng sai trung bình trên các vòng 1.. với sai khác

đầu vào và đầu ra tương ứng là
và.
là giá trị hằng số thể hiện tỷ lệ thành công của thám tuyến tính (theo thuật toán 2) của Matsui [43].
5
được gọi là xác suất đặc trưng tuyến tính trung bình của đặc
Giá trị


trưng


12


vòng và với bất kỳ

Đồng thời, với mã khối SPN gồm

đặc trưng

(1.4)

6

(xem thêm [32] ), luôn có:



,




Các công thức tương tự đối với thám lượng sai.
Daemen và Rijmen [12] đã trình bày tầng khuếch tán trong AES sử dụng cụm từ
chiến lược vết rộng để chỉ tới phương pháp luận thiết kế chung bao gồm việc chọn
phép biến đổi tuyến tính để bảo đảm một số lượng lớn các hộp hoạt động (ở đây vết
là một từ khác của đặc trưng). Kết quả của tiếp cận này đã cho một đánh giá chính
xác hơn về số tối thiểu các hộp hoạt động (hay số nhánh) trong 4 vòng liên tiếp của
AES.
Từ công thức (1.4) cũng như các kết quả của Rijmen và Daemen cho thấy, số
nhánh

(tương ứng là số tối thiểu các hộp hoạt động trong hai vòng liên tiếp)


của ma trận của phép biến đổi tuyến tính dùng trong tầng khuếch tán càng cao thì độ
an toàn của mã khối càng lớn.
Ma trận MDS có tính chất là các số nhánh tương ứng và của nó đạt được giá trị
cực đại trong số các ma trận cùng cấp cho nên để xây dựng được các mã khối có độ
an toàn cao thì việc nghiên cứu về các ma trận này là một vấn đề rất cần thiết.
1.1.3. Vai trò của ma trận MDS
Phần này sẽ làm rõ hơn vai trò của ma trận MDS đối với độ an toàn của các mã
khối SPN.
Người ta chứng minh được rằng nếu tầng khuếch tán là ma trận MDS – ma trận
của mã tách khoảng cách cực đại thì cả và đều đạt giá trị cực đại [30] và bằng

6 Cho các mặt nạ
với vòng được xét) có
các đặc trưng dạng :

bít ; bao tuyến tính tương ứng như
mặt nạ đầu vào của vòng 1 và


là tập tất cả các đặc trưng vòng (đối
như mặt nạ đầu ra của vòng , nghĩa là tất cả

⌍.

gồm tất cả các đặc trưng thuần nhất trong
. Trong đó, với là đặc trưng vòng
đối với các vòng
. Khi đó được gọi là thuần nhất nếu đối với mỗi hộp
trong các vòng

, các
mặt nạ đầu vào và đầu ra được xác định bởi đối với hộp đó hoặc là cùng bằng 0 hoặc cùng khác 0 [32].

⌋ – là ký hiệu lấy giá trị phần nguyên dưới của
.


13

nhau. Cho nên, bên cạnh việc nghiên cứu tạo ra các hộp thế ( -box) tốt (có các giá
trị bé) thì việc đưa ma trận MDS vào tầng khuếch tán là có ý nghĩa quan trọng.
Việc sử dụng các ma trận MDS cho các phép biến đổi tuyến tính được đề xuất
lần đầu tiên bởi Vaudenay [61] và sau đó được đưa vào mã khối SHARK [50], tiếp
đó là mã khối SQUARE [10]. Lớp biến đổi tuyến tính này có thuận lợi là số tối
thiểu các hộp hoạt động trong hai vòng liên tiếp của một đặc trưng lượng sai đạt
cực đại bằng

(với

là số hộp

trong một vòng của SPN).

Có nhiều cách xây dựng ma trận MDS, tuy nhiên cách đơn giản và hiệu quả
nhất là sử dụng các mã sửa sai MDS. Trong lý thuyết mã sửa sai, với một mã tuyến
tính
bất kỳ trong đó là độ dài,
là số chiều, là khoảng cách tối thiểu
của mã, khi đó có một giới hạn được gọi là giới hạn Singleton:
[40,

Định lý 11, tr. 33]. Và khi khoảng cách tối thiểu này bằng

thì mã đó

được gọi là mã MDS. Trong lý thuyết mã, có định lý quan trọng sau đây:
Định lý 1.1 ([40, Định lý 8, tr. 321], [61]). Một mã


là một ma trận cấp

trận con vuông có thể có của
Người ta gọi ma trận

với ma trận sinh

, là mã MDS nếu và chỉ nếu mọi ma

đều là không suy biến.

là ma trận MDS.

Mặt khác, trong tầng khuếch tán, với phép biến đổi tuyến tính sử dụng ma trận
MDS, thì khoảng cách tối thiểu

của mã MDS tương ứng chính là số nhánh

của phép biến đổi tuyến tính đó. Sau đây khẳng định này sẽ được chứng minh rõ
hơn.
Mệnh đề 1.1 Giả sử


là một mã

trên

là ma trận sinh dạng chuẩn tắc của , trong đó
suy
biến cỡ

và là ma trận đơn vị cỡ

tính có ngược tối ưu (nghĩa là có số nhánh

. Khi đó,



là ma trận không

xác định một ánh xạ tuyến

) :
(1.5
)

Chứng minh.
Đầu tiên, cần chỉ ra số nhánh của biến đổi tuyến tính
.

thỏa mãn:



Thật vậy, giả

sử ma trận

có dạng sau (với các

)
:


14

[

(1.6)

]

sẽ có dạng:

Khi đó, ma trận

*

(1.7)

+

Giả sử


,

trong đó

của biến đổi tuyến tính được biểu diễn bởi
này là:

, là đầu vào

. Khi đó đầu ra của biến đổi tuyến tính



(1.8)
*



+
[

]

[

]


[


]

Theo Định nghĩa 1.1, số nhánh của biến đổi tuyến tính này là:
(1.9)
với

được tính theo công thức (1.8).

Quay trở lại với mã MDS

và ma trận sinh chuẩn tắc

Với thông báo đầu vào độ dài

thành phần có dạng

thì từ mã thu được của mã này (với độ dài

̂́

]

[

(








(1.10)

)

So sánh kết quả của (1.8) và (1.10), thấy rằng:

với
̂́

được tính theo công thức (1.8).

thành phần) là:


×