LỜI CẢM ƠNTrong 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ả c
Trang 1LỜ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
Trang 2LỜ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ọcviệ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ễnChung 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ôihoà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ànhLuận án này
Tác giả Luận án
NCS Trần Thị Lƣợng
Trang 3MỤ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
Trang 4CHƯƠ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
Trang 53.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
Trang 6DANH MỤC TỪ VIẾT TẮT
1 AES Advanced Encryption Chuẩn mã hóa tiên tiến
5 PN Pseudo Random Number Số giả ngẫu nhiên
6 LFSR Linear Feedback Shift Thanh ghi dịch phản hồi
7 SPN Substitution – Permutation Mạng thay thế - hoán vị
Network
8 LCG Linear Congruential Generator Bộ sinh đồng dư tuyến tính
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
Trang 7DANH MỤC CÁC KÝ HIỆU TOÁN HỌC
Trang 8DANH 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
Trang 9DANH 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 của AES 104
Bảng 3.5: Số lớp ma trận MDS cỡ có số điểm bất động nhỏ nhất 109
Bảng 3.6: Danh sách các ma trận MDS tĩnh cỡ được đề xuất 110
Bảng 3.7: So sánh các ma trận MDS cỡ đề xuất với các ma trận MDS trong các mã nổi tiếng 111
Bảng 3.8: Số lớp ma trận MDS cỡ có số điểm bất động nhỏ nhất 111
Bảng 3.9: Danh sách các ma trận MDS tĩnh cỡ được đề xuất 112
Bảng 3.10: So sánh các ma trận MDS cỡ đề xuất với các ma trận MDS trong các mã nổi tiếng 113
Bảng 3.11: Số lớp ma trận MDS truy hồi cỡ có số điểm bất động nhỏ nhất 114
Bảng 3.12: Danh sách các ma trận MDS tĩnh cỡ được đề xuất 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
Trang 10Bả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 , ) 136
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à 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 , 136
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à 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
Trang 11PHẦ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 quantâ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ênbang 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ứ haimới đây nhất chuẩn mã khối GOST R34.12-2015 mới được nghiên cứu và hoànthành năm 2015
Trong bài báo “Communication Theory of Secrecy Systems”, Claude Shannonviế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ặtthố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ếchtá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ạngthay 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ựngdự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ó ứngdụ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ì
Trang 12giớ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ụngcho mã khối trong FSE’94 [61] Số nhánh của tầng khuếch tán trong mã khối cấutrú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ớnthì độ 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ângcao 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], matrận Hadamard [15], ma trận Vandermonde [52], ma trận liên kết [20], các ma trậnMDS 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 MDSnhằ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,
Trang 1329] 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ácnhà 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ệcxâ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 matrậ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 caocũ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ánhcao 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ứuxâ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ựngtầng khuếch tán động bằng cách tạo các ma trận MDS động phụ thuộc khóa chotừ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 thaythế 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ậnMDS độ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ânvớ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ộctí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ụ”.
Trang 14Có 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ốinà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, tuynhiên vẫn còn nhiều vấn đề mở liên quan đến tầng khuếch tán này chưa đượcnghiê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áchthứ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áncủ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ỏamã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ậnMDS 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 đượccác tầng khuếch tán/khuếch tán động hiệu quả cho mã khối nhằm nâng cao độ antoà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ônglượ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ànnhữ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ầncứ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áctí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ácphầ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épbiến đổi ma trận MDS
Trang 154 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ápxâ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ầngkhuế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ầngkhuếch tán và khuếch tán động cho mã khối cấu trúc SPN nói chung và đặcbiệ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 truyhồi kích cỡ đủ lớn để ứng dụng cho việc xây dựng các tầng khuếchtá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ốtcủ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 choviệc xây dựng các tầng khuếch tán/khuếch tán động hiệu quả cho mã khốicấ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àiliệ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
Trang 16đồ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ằngphé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ậnMDS/MDS truy hồi kích cỡ đủ lớn để ứng dụng cho việc xây dựng cáctầ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ùngtầ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ảibiê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 quantrọ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ế
Trang 178 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ínhcủ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
Trang 18CHƯƠ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óichung gồm ba tầng: thay thế, hoán vị và cộng khóa (Hình 1.1) Tầng thay thế đượcxâ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áckhó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 phituyến duy nhất, có vai trò quyết định đến độ an toàn của mã khối Mặt khác, tầnghoá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 vaitrò 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ôngchỉ đơ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 đổituyế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ầuhế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ácbiế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
Trang 19ma 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ànthự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ệcnghiê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ấtthố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 ảnhhưở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úcSPN nên các mã khối này còn được đánh giá là “an toàn có thể chứng minh” trướchai 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áchộ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ốiSPN Tuy nhiên, các kết quả đánh giá lý thuyết của Keliher có phần “thô” hơn sovớ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à bit ( ),trong đó, tầng thay thế được xây dựng từ hộp thế, mỗi hộp thế có đầu vào và đầu
ra gồm bit; tầng tuyến tính là một phép biến đổi trên không gian
Trang 20Vớ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ế)
và 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 hoạt động trong hai vòng liên tiếpcủa một mã khối SPN Theo [15, 50], là một độ đo cho độ khuếch tán của theonghĩa 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:
là giá trị xác suất tuyến tính và xác suất lượng sai cực đại2 trên tất cả các hộp của
1 Đặc trưng vòng đối với các vòng 1 là một bộ 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à và
đầu vào và đầu ra của vòng [32] Mặt nạ bit là các giá trị {
: { } { } là song ánh, và cho { } cố định Nếu { } là biến ngẫu
Trang 21SPN Số nhánh tuyến tính (số nhánh lượng sai )3 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ếpcủ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 Matsuichống lại thám tuyến tính được cho bởi4:
(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
tầng khuếch tán được định nghĩa như sau:
Số nhánh tuyến tính của tầng khuếch tán được định nghĩa như sau:
4 là xác suất tuyến tính trung bình trên các vòng 1 với mặt nạ đầu vào, đầu ra tương ứng là và Tương tự, 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 Giá trị ∏ được gọi là xác suất đặc trưng tuyến tính trung bình của đặc trưng
Trang 22Đồng thời, với mã khối SPN gồm
(xem thêm [32] 6), 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êntiế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
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 ].
.
Trang 23nhau 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 đạtcự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ếntí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:
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:
Trang 25
của biến đổi tuyến tính được biểu diễn bởi Khi đó đầu ra của biến đổi tuyến tínhnày là:
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 thành phần) là:
́
(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).
Trang 26́ ́ (1.11)
So sánh công thức (1.9) và (1.11), suy ra rằng Ngoài ra, với mã MDS
ở trên, luôn có Do đó,
Vì không suy biến nên ánh xạ có ngược ■
Nhận xét 1.1 Phép chứng minh ở mệnh đề trên chỉ ra rằng, số nhánh của
biến đổi tuyến tính này bằng khoảng cách tối thiểu của mã MDS ,
Từ giới hạn Singleton, có thể thấy rằng mã MDS có khoảng cách tối thiểu đạt
nhánh của biến đổi tuyến tính ở trên cũng đạt giá trị lớn nhất có thể
Đó là lý do tại sao các ma trận MDS đã được lựa chọn để dùng cho tầngkhuếch tán của nhiều mã khối hiện nay như: AES [9, 10], Twofish [57, 58],SHARK [50], Khazad, SQUARE [10], HIEROCRYPT [48], Anubis, v.v Các matrận MDS cũng được dùng trong thiết kế các hàm băm, chẳng hạn các hàm bămnhư: Maelstrom, Grøstl và họ các hàm băm hạng nhẹ PHOTON [18] sử dụng các
ma trận MDS như là thành phần chính trong tầng khuếch tán của chúng
Hiện nay, các ma trận MDS kích cỡ khác nhau được sử dụng trong nhiều mãkhối nổi tiếng, chẳng hạn: các ma trận MDS cỡ 4 được dùng trong chuẩn mã khốiAES của NIST năm 2000, các ma trận MDS cỡ 8 được dùng trong chuẩn Kalynacủa Ukraine năm 2015, các ma trận MDS cỡ 16 được dùng trong chuẩn GOSTR34.12-2015 của Nga năm 2015
Ngoài cách xây dựng các ma trận MDS từ các mã MDS thì một cách tiếp cậnkhác là xây dựng một ma trận phù hợp theo một số cách khác nhau, sau đó kiểm traxem ma trận này có thỏa mãn điều kiện MDS hay không Các phương pháp xâydựng ma trận MDS sẽ được trình bày trong mục 1.2
1.1.4 Vai trò của ma trận MDS động
Các ma trận MDS động là các ma trận được sinh ra từ một ma trận gốc banđầu và một tham số bí mật (chẳng hạn khóa bí mật) dựa trên một phép biến đổi nào
Trang 27đó Trên thế giới, từ lâu đã có một vài mã khối động, chẳng hạn như: Twofish ([57,58]) và Blowfish ([56]) của tác giả Bruce Schneier và các cộng sự, v.v Nhưng thờigian gần đây mã khối động đã trở thành một xu hướng được nhiều người quan tâm
và đang phát triển nhanh
Có nhiều hướng để tạo ra mã khối động, trong đó có hướng tạo ra các tầngkhuếch tán động Tầng khuếch tán động tối ưu (theo nghĩa số nhánh hay cả sốnhánh tuyến tính và số nhánh lượng sai đạt cực đại) là tầng sử dụng ma trận MDSđộng
Có nhiều cách để tạo ra tầng khuếch tán động, và một trong những cách thườngđược sử dụng là tạo tầng khuếch tán động theo khóa Với mỗi khóa phiên bí mậtđược sử dụng để mã hóa thông điệp, sẽ tạo ra một ma trận MDS phụ thuộc khóa này
Mã khối động có ưu thế là kháng lại hiệu quả các tấn công thống kê (nghĩa là cáctấn công dựa vào việc thống kê các bản mã và các bản rõ thu được, như tấn côngtuyến tính, tấn công lượng sai, v.v.) Những đại lượng thống kê này trong mã khốiđộng sẽ trở nên "mờ" hơn đối với các nhà mã thám Đó cũng là một hướng mở rộngkhông gian khóa của mã khối so với các hoán vị ngẫu nhiên Càng có nhiều ma trậnMDS, càng có nhiều phương pháp làm động, thì sẽ càng có nhiều khả năng đa dạnghóa mã khối để ứng dụng trong thực tế Như vậy, việc nghiên cứu và xây dựngcác ma trận MDS động là rất quan trọng trong tình hình hiện nay
Các kiểu mã khối động trong đó có các mã khối động ở tầng khuếch tán sẽ đượctrình bày trong mục 1.3
1.2 Các phương pháp xây dựng ma trận MDS
Phần này trình bày các phương pháp xây dựng ma trận MDS bao gồm hainhánh phương pháp: thứ nhất là dựa trên các mã MDS và thứ hai là không dựa trên
mã MDS Nhánh phương pháp thứ hai được chia thành ba hướng chính nhằm “tối
ưu hóa” trong thực thi ma trận MDS bao gồm: các phương pháp xây dựng ma trậnMDS có nhiều số 1 và ít các phần tử khác nhau trong ma trận, các phương pháp xâydựng các ma trận MDS có thuộc tính tự nghịch đảo, các phương pháp xây dựng các
ma trận MDS truy hồi Mã nguồn chương trình thực hiện các phương pháp này trênngôn ngữ Maple được trình bày trong Phụ lục 1
Trang 281.2.1 Xây dựng các ma trận MDS từ các mã MDS
Một trong những cách xây dựng phổ biến các ma trận MDS là sử dụng các mãMDS Phương pháp chung để xây dựng một ma trận MDS cỡ trên làxây dựng một mã MDS ([10, 50, 64]) trên , sau đó biểu diễn
ma trận sinh của mã này dưới dạng chuẩn tắc , trong đó là một ma trậnkhông suy biến cỡ và là ma trận đơn vị cỡ Khi đó, ma trận trongdạng chuẩn tắc trên chính là ma trận MDS cần tìm
1.2.1.1 Xây dựng các ma trận MDS từ mã Reed-Solomon
Có thể xây dựng mã MDS từ nhiều mã khác nhau, phổ biến nhất là các mã
Reed-Solomon ( ) Các mã RS giống như mã BCH là có các từ mã dạng đa thức, đều
là mã tuyến tính và có thể được xây dựng để sửa được nhiều lỗi Tuy nhiên các
mã phổ biến hơn nhiều so với mã BCH và tất cả các loại mã khác bởi vì chúng
là mã lý tưởng duy nhất có thể sửa các burst lỗi Mã rất quan trọng bởi vì chúng làcác mã tự nhiên được dùng khi có yêu cầu sử dụng một mã có độ dài nhỏ hơn kích
cỡ của trường Khi với tư cách mã MDS, chúng sẽ có khoảng cách tối thiểu ở mứccao nhất có thể Chúng thuận tiện cho việc xây dựng các mã khác, chẳng hạn có thểtạo ra các mã nhị phân với khoảng cách tối thiểu rất cao hoặc xây dựng các mã ghépnối và các mã Justesen [40, chương 10, tr 294]
Một mã trên trường là một mã BCH với độ dài
Một mã với độ dài được thiết kế với khoảng cách , sẽ có đa thức sinhtương ứng là:
(1.12)
với là một giá trị được lựa chọn trước và là phần tử nguyên thủy.Người ta đã chứng minh được rằng [40] với đa thức sinh có dạng như (1.12)thì mã được sinh ra từ đa thức này là một mã tách có khoảng cách cựcđại (mã MDS), nghĩa là thỏa mãn điều kiện – Một điều khá thú vị ở
mã đó là có thể tạo ra một mã mở rộng, và mã mở rộng cũng thỏa mãnđiều kiện có – hay nói cách khác một mã mở rộng cũng là một mã
MDS.
Trang 29là Khi đó mã mở rộng sẽ là một mã
∑ , và là từ mã của Các giá trị thuộc trường
trận kiểm tra , có dạng như dưới đây (xem thêm [28, Định lý 4.2.1, tr.125] và [28,Định lý 4.2.7, tr 127]):
(1.13)
Hình 1.2 Ma trận sinh và ma trận kiểm tra của mã
Khi đó, mã RS mở rộng của sẽ có đa thức sinh là , matrận sinh là và ma trận kiểm tra có dạng như sau [28, mục 1.5.2, tr 14]:
Trang 30Trong [10, 50], các tác giả cũng sử dụng các ma trận MDS được sinh ra từ các
mã để đưa vào tầng khuếch tán trong mã khối của họ
Trong [40, chương 10, tr 303], các tác giả có định nghĩa về một mã tổng
quát như sau
Định nghĩa 1.2 Cho trong đó là các phần tử phân biệt của , và cho = ( 1 ,…, N ) với i là các phần tử khác 0 (nhưng không nhất thiết phải khác nhau) của Khi đó, mã tổng quát được ký hiệu là GRS K ( , ), bao gồm tất cả các vectơ:
( 1 F( ), 2 F( ), …, N F( ))
Trong đó trong phạm vi tất cả các đa thức có bậc với các hệ số thuộc Đây là một mã trên Vì có nhiều nhất phần tử 0,nên khoảng cách tối thiểu ít nhất là – , và vì vậy nó bằng với – Do
đó, mã tổng quát là một mã MDS
1.2.1.2 Xây dựng các ma trận MDS từ mã Gabidulin
Ngoài mã , người ta còn có thể sử dụng các loại mã khác để xây dựng mã MDS, chẳng hạn mã Gabidulin [8]
là không gian vectơ chiều trên .
Mã Gabidulin được mô tả bởi Gabidulin [16], là một lớp các mã có khoảngcách hạng cực đại hay còn gọi là mã với Mã Gabidulin với tư cách là
mã , thỏa mãn điều kiện của mã MDS, do đó nó là một mã MDS Xét mãGabidulin trên với , khi đó điều kiện sau được thỏa mãn:
Trang 31Trong đó, là độ dài từ mã, là độ dài của thông báo cần mã,
là khoảng cách tối thiểu của mã (trong đó là khoảng cách hạng, không phải khoảngcách Hamming) Khoảng cách hạng được tính dựa trên trọng số hạng như đượctrình bày trong Định nghĩa 1.2
là số chiều của không gian vectơ được sinh bởi { }, tức là bằng số các
phần tử của độc lập tuyến tính.
tuyến tính trên Mã Gabidulin có giá và số chiều , là một mã được sinh bởi ma trận:
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, càng ngày càng có nhiều phương pháp khác nhau được nghiên cứu để tạo
ra chúng Trên thế giới, hiện nay đã có một số công trình nghiên cứu đưa ra cácphương pháp khác nhau để xây dựng các ma trận MDS, chẳng hạn như dựa trên: matrận Cauchy [47, 64], ma trận Hadamard [15], ma trận Vandermonde [52], ma trậnliên kết [20], ma trận MDS truy hồi, v.v
Các ma trận MDS đem lại số nhánh cực đại cho tầng khuếch tán của mã khối.Tuy nhiên, không phải ma trận MDS nào cũng có thể dùng được Bởi các nhà thiết
kế mã khối đặt ra nhiều tiêu chí khác nhau để lựa chọn các ma trận này như: tiêu chí
Trang 32về số nhánh [15, 32, 47, 53, 66], tiêu chí về số điểm bất động [14, 54, 55, 66], tiêuchí về chi phí thực thi [5, 6, 9, 15, 21, 22, 29, 33, 47, 52, 53, 60, 62] Với các matrận MDS cùng kích cỡ thì số nhánh bằng nhau, do vậy cần xem xét hai tiêu chí cònlại Trong đó, tiêu chí về chi phí thực thi được rất nhiều nhà nghiên cứu quan tâmbởi các ma trận MDS được xây dựng theo một cách thích hợp có thể làm giảm chiphí đáng kể trong thực thi phần cứng và/hoặc thực thi phần mềm Điều này rất có ýnghĩa trong thực hành Do vậy, hiện nay có ba hướng nghiên cứu các ma trận MDSnhằm “tối ưu hóa” trong thực thi, bao gồm:
Xây dựng các ma trận MDS có nhiều số 1 và ít các phần tử khác nhau
Xây dựng các ma trận MDS tự nghịch đảo
Xây dựng các ma trận MDS truy hồi là lũy thừa của ma trận liên kết
1.2.2.1 Xây dựng các ma trận MDS có nhiều số 1 và ít các phần tử khác nhau
Trong [29] (năm 2004), P Junod và S Vaudenay đã đề xuất một số phươngpháp thực nghiệm xây dựng các ma trận MDS có chi phí thực thi thấp dựa trên cácmảng song chính quy (bi-regular) Mục tiêu của họ là thiết kế được các ma trận vớimột số lượng số 1 lớn nhất có thể (ký hiệu số lượng này là ) và số lượng các phần tửkhác nhau trong ma trận nhỏ nhất có thể (ký hiệu số lượng này là ) và các phần tửnày có trọng số Hamming thấp nhằm tối thiểu hóa chi phí thực thi Họ cho rằng
cách xây dựng như vậy sẽ tạo ra các ma trận tối ưu theo nghĩa số các phép XOR, các biến tạm và bảng tra là nhỏ nhất Các giá trị tối ưu cho và đối với một matrận cỡ được các tác giả xác định qua Bảng 1.1 và Bảng 1.2
Trang 33Tuy nhiên, các tác giả này mới chỉ xây dựng được các ma trận MDS cỡ
và tối ưu một phần (hoặc theo , hoặc theo ) Ngoài ra nghịch đảo của các ma trậnnày chưa chắc đã tối ưu
Định nghĩa 1.5 [22] (Ma trận tựa vòng Kiểu-I).
vớ
i và
là những phần tử khác
7 , v à
Trang 34Ma trận tựa vòng kiểu-I có đặc điểm thú vị là số lượng các phần tử khác nhautrong ma trận là nhỏ (thường bằng kích cỡ của ma trận), số lượng số 1 trong ma trận
là khá cao, ngoài ra nghịch đảo của nó cũng có dạng tương tự như nó Dạng nghịchđảo này được định nghĩa như sau:
Định nghĩa 1.6 [22] (Ma trận tựa vòng Gần_Kiểu-I).
Các tác giả này còn đề xuất một kiểu ma trận tựa vòng khác gọi là ma trận tựa vòng Kiểu-II, có khả năng tự nghịch đảo, phù hợp cho các mạng SPN
Định nghĩa 1.7 [22] (Ma trận tựa vòng Kiểu-II).
kiện: hay (trong đó là ma trận đơn vị) [21, 47, 64].
Trang 35Việc sử dụng các ma trận MDS tự nghịch đảo rất có ích cho mã khối có cấutrúc SPN, vì quá trình giải mã sử dụng cùng ma trận so với quá trình mã hóa Chonên việc thiết kế phần cứng thực hiện mã hóa, giải mã nhờ thế cũng trở nên dễ dànghơn (mã hóa và giải mã có thể được thực hiện bởi cùng một module với tốc độ bằngnhau) Một số phương pháp xây dựng các ma trận MDS tự nghịch đảo sau đây đãđược các tác giả trên thế giới đề xuất.
Phương pháp xây dựng từ ma trận chọn ngẫu nhiên và ma trận Cauchy:
Phương pháp này do nhóm tác giả A.M Youssef, S Mister và S.E Tavares đềxuất năm 1997 [64] Với cách xây dựng từ ma trận chọn ngẫu nhiên, các tác giả nàyđưa ra một dạng ma trận thỏa mãn điều kiện tự nghịch đảo, sau đó kiểm tra xem matrận này có thỏa mãn điều kiện MDS hay không Dạng ma trận này giống với dạng
ma trận tựa vòng kiểu II đã được trình bày trong mục 1.2.2.1 Với cách xây dựngnày họ thu được các ma trận tự nghịch đảo đồng thời cũng là ma trận MDS khi cỡ
ma trận là số chẵn và nhỏ hơn hoặc bằng 6 chỉ sau vài giây trên máy tính Tuy nhiên,
từ 105 ma trận tự nghịch đảo cỡ 8 được chọn ngẫu nhiên, các tác giả trong [64]không thu được một ma trận MDS nào
Với các ma trận Cauchy, các tác giả đưa ra một cách xây dựng đại số các matrận MDS Ma trận Cauchy được định nghĩa qua bổ đề sau:
Do vậy, với các giá trị phân biệt, phân biệt và với mọithì
bất kỳ ma trận con vuông nào của một ma trận Cauchy cũng là không suy biến trêntrường bất kỳ Do đó, các ma trận Cauchy thỏa mãn điều kiện MDS Ngoài ra, các
Trang 36tác giả trong [64] cũng chỉ ra các ma trận Cauchy có thể đồng thời thỏa mãn đượcđiều kiện tự nghịch đảo Họ đã đưa ra một ma trận MDS Cauchy cỡ
Nhận xét rằng, các ma trận MDS tự nghịch đảo được tạo ra từ các ma trậnCauchy có thể có kích cỡ tùy ý, tuy nhiên những ma trận này có thể có rất ít số 1 và
có nhiều phần tử khác nhau nên trong trường hợp như vậy tốc độ thực thi các matrận này là chưa nhanh
Phương pháp xây dựng từ ma trận Vandermonde:
Phương pháp này được đề xuất bởi tác giả M Sajadieh và các cộng sự năm
2012 [52] Ma trận Vandermonde được các nhà nghiên cứu rất quan tâm bởi chúng
có nhiều ứng dụng đáng kể trong nhiều ngành toán học ứng dụng như: tổ hợp, lýthuyết mã và mật mã Ma trận Vandermonde được định nghĩa như sau
Trang 37Hệ quả 1.1 ([52]) Nếu và là hai ma trận Vandermonde khả nghịch trong
Do đó, phương pháp này giống như phương pháp xây dựng từ các ma trậnCauchy ở chỗ là không phải kiểm tra điều kiện MDS của ma trận kết quả, tuy nhiêncác ma trận này có thể có rất ít số 1 và có nhiều phần tử khác nhau nên trong trườnghợp như vậy tốc độ thực thi các ma trận này là chưa nhanh
Phương pháp xây dựng từ ma trận Hadamard ([15, 52, 55]):
Định nghĩa 1.9 [15, 52] Với phần tử một
[ ] được gọi là ma trận Hadamard nếu
trong ma trận này được xây dựng như sau: ⨁
Ví dụ về một ma trận Hadamard được cho dưới đây:
ma mỗ i
trận phầ n
t ử
(1.20)
Mỗi ma trận Hadamard trên một trường hữu hạn sẽ có thuộc tính sau: trong đó
là một hằng số và là ma trận đơn vị Khi , thì là một ma trận tự nghịch đảo Ma trận Hadamard trên trường có thuộc tính tự
nghịch đảo nếu tổng các phần tử hàng đầu tiên của nó bằng 1 [55, Bổ đề 1, Bổ đề 2,tr.4], ngoài ra ưu điểm chính của phương pháp này đó là các ma trận Hadamard có
số lượng các phần tử khác nhau trong ma trận là nhỏ (thường bằng kích cỡ của matrận) Tuy nhiên giống như trường hợp xây dựng ngẫu nhiên, các ma trận này chưachắc thỏa mãn điều kiện MDS Do đó với mỗi ma trận Hadamard, cần phải kiểm trađiều kiện MDS của nó
Phương pháp xây dựng từ ma trận cặp đôi :
Phương pháp này do tác giả T P Berger đề xuất trong [9] (năm 2014) Tác giả
đã trình bày một cách xây dựng tổng quát các ma trận MDS có tính đối xứng mạnh
Trang 38để hoặc đẩy nhanh tốc độ xử lý với một số tối thiểu các bảng tra, hoặc để thực hiệnvới một số lượng tối thiểu các cổng trong một mạch Tác giả gọi loại ma trận đặc
biệt này là các “ma trận cặp đôi – dyadic matrix”, vì chúng liên quan tới các mã
cặp đôi Ma trận cặp đôi được định nghĩa như sau
là các ma trận cỡ trên vành , được gọi là ma trận đối xứng khối
Các ma trận đối xứng khối có tính đệ quy được coi là những ma trận cặp đôi
Định nghĩa 1.11 ([9]) Cho là một ma trận cỡ trên vành Khi đó: Nếu , thì là ma trận cặp đôi.
Nếu , thì được gọi là ma trận cặp đôi nếu là ma trận đối xứng
.
Tác giả đã giới thiệu một cách xây dựng tổng quát các ma trận MDS cặp đôi tựnghịch đảo từ các mã và đề cập đến những khía cạnh cài đặt của những ma trậnMDS cặp đôi này để xây dựng các mã khối hiệu quả Thực chất các ma trận cặp đôi
có dạng tương tự như các ma trận Hadamard nên chúng cũng có khả năng tự nghịchđảo
1.2.2.3 Xây dựng các ma trận MDS truy hồi là lũy thừa của ma trận liên kết
Ma trận liên kết (Serial matrix) là một ma trận hạng nhẹ 9 và có dạng rất đặc biệtnên rất thuận lợi trong việc tăng tốc độ thực thi phần cứng và tiết kiệm bộ nhớ lưutrữ trong phần mềm Ma trận liên kết được định nghĩa như sau:
9 Theo hiểu biêt của NCS, ma trận hạng nhẹ là ma trận có dạng biểu diễn rất gọn nhẹ, có chi phí thực thi thấp (sử dụng một số lượng rất nhỏ các cổng trong thực thi phần cứng, hoặc một lượng rất nhỏ bộ nhớ trong phần mềm) được sử dụng trong các thiết kế mật mã hạng nhẹ cho một số thiết bị có tài nguyên hạn chế ([5], [6], [32]).
Trang 39Định nghĩa 1.12 ([18]) Một ma trận liên kết của đa thức
trận được gọi là ma trận MDS truy hồi nếu tồn tại một ma trận hạng nhẹ cỡ
trên và tồn tại một số nguyên không âm sao cho:
Định nghĩa 1.14 Nếu ma trận trong Định nghĩa 1.13 là ma trận liên kết dạng
(1.21) thì được gọi là ma trận MDS truy hồi lũy thừa của ma trận liên kết.
Trong Luận án này ta chỉ xét đến các ma trận MDS truy hồi của Định nghĩa1.14
Các ma trận MDS truy hồi có đặc điểm thú vị là: chúng phù hợp riêng cho cácthực thi hạng nhẹ vì tầng khuếch tán có thể được thực thi như một thanh ghi dịchphản hồi tuyến tính (LFSR); sử dụng một số lượng rất nhỏ các cổng trong thực thiphần cứng hoặc một lượng rất nhỏ bộ nhớ trong phần mềm; nghịch đảo của nó cũng
là một ma trận truy hồi Trong năm 2011, J Guo và các cộng sự đã giới thiệu mã
Trang 40khối LED [19] và họ hàm băm PHOTON [18], chúng đều sử dụng một ma trậnkhuếch tán MDS truy hồi.
Đã có nhiều nghiên cứu về việc xây dựng các ma trận MDS truy hồi, chẳng hạn như:
Nghiên cứu của M Sajadieh và các cộng sự năm 2012 [53]: xây dựng
tầng khuếch tán truy hồi hiệu quả cho các mã khối và các hàm băm hạngnhẹ bằng cách xây dựng nhiều vòng với cấu trúc tựa Feistel (Feistel-like) Các ma trận mà các tác giả xây dựng được là các ma trận truy hồi
có chi phí thực thi thấp với kích cỡ
Năm 2013, S Wu và các cộng sự [62] cũng có chiến lược thiết kế tương
tự như M Sajadeh nhưng không dựa trên mạng Feistel mà dựa trên cácthanh LFSR và tập trung vào thực thi phần cứng hơn nhằm thu được cáctầng khuếch tán tối ưu cho các mã khối và hàm băm hạng nhẹ, sử dụngmột số lượng các cổng XOR nhỏ nhất có thể khi thực thi phần cứng Họcũng xây dựng được các ma trận MDS truy hồi có kích cỡ
Nghiên cứu của D Augot và các cộng sự năm 2013 [5]: Tìm kiếm vét
cạn các tầng khuếch tán MDS truy hồi với số chiều nhỏ cho các mã khối
và các hàm băm Với phương pháp này, các tác giả đã thiết kế được các
ma trận MDS cỡ với các đặc trưng 4 bit và các ma trận với các
đặc trưng 5 bit
Nghiên cứu của S Kolay và các cộng sự năm 2014 [33]: các tác giả xây
dựng thuật toán để tìm nghiệm bậc của một ma trận MDS Nghiệm bậcnày là một ma trận hạng nhẹ có thể có dạng là một ma trận liên kết hoặc
không Tuy nhiên, không phải ma trận nào cũng có nghiệm theothuật toán này
Hai tác giả D Augot và M Finiasz đã đưa ra nghiên cứu của mình năm
2014 [6] về việc xây dựng trực tiếp các tầng khuếch tán MDS truy hồi từcác mã BCH rút gọn Cách này có thuận lợi là có thể tạo ra các ma trận