1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

192 551 6

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 192
Dung lượng 4,5 MB

Nội dung

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 1

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

Trang 2

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ọ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 3

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

Trang 4

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

Trang 5

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

Trang 6

DANH 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 7

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

Trang 8

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

Trang 9

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 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 10

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 , ) 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 11

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 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 12

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ụ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 13

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á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 14

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ố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 15

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á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 17

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í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 18

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ó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 19

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à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 20

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ế)

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 21

SPN 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 23

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 đạ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 đó,

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 28

1.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 29

là 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 30

Trong [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 31

Trong đó, 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 32

về 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 33

Tuy 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 34

Ma 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 35

Việ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 36

tá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 37

Hệ 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 40

khố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

Ngày đăng: 06/10/2018, 17:07

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Abd-ElGhafar, Rohiem A., Diaa A. and Mohammed F. (2009), “Generation of aes key dependent s-boxes using rc4 algorithm”, in 13 th International Conference on AEROSPACE SCIENCES & AVIATION TECHNOLOGY, ASAT- 13, Paper: ASAT-13-CE-24 Sách, tạp chí
Tiêu đề: Generation ofaes key dependent s-boxes using rc4 algorithm”", in 13"th InternationalConference on AEROSPACE SCIENCES & AVIATION TECHNOLOGY, ASAT-13
Tác giả: Abd-ElGhafar, Rohiem A., Diaa A. and Mohammed F
Năm: 2009
[2] Ahmed F. and Elkamchouchi D. (2013), “Strongest aes with s-boxes bank and dynamic key mds matrix (sdk-aes),” International Journal of Computer and Communication Engineering, vol. 2, no. 4, pp. 530-534 Sách, tạp chí
Tiêu đề: Strongest aes with s-boxes bank and dynamic key mds matrix (sdk-aes),” "International Journal of Computer and Communication Engineering
Tác giả: Ahmed F. and Elkamchouchi D
Năm: 2013
[3] Aoki K., Ichikawa T., Kanda M., Matsui M., Moriai S., Nakajima J. and Tokita T. (2001), “Camellia: a 128-bit block cipher suitable formultiple platforms- design and analysis”, In Proceedings of Selected Areas in Cryptography (SAC 2000), Lecture Notes in Computer Science. Springer, vol. 2012, pp. 39–56 Sách, tạp chí
Tiêu đề: Camellia: a 128-bit block cipher suitable formultiple platforms-design and analysis”, "In Proceedings of Selected Areas in Cryptography (SAC 2000), Lecture Notes in Computer Science
Tác giả: Aoki K., Ichikawa T., Kanda M., Matsui M., Moriai S., Nakajima J. and Tokita T
Năm: 2001
[4] Arrag S., Hamdoun A., Tragha A. and Khamlich S. (2013), “Implementation of stronger AES by using dynamic S-box dependent of masterkey”, Journal of Theoretical and Applied Information Technology, vol. 53, no.2 Sách, tạp chí
Tiêu đề: Implementation of stronger AES by using dynamic S-box dependent of masterkey”, "Journal of Theoretical and Applied Information Technology
Tác giả: Arrag S., Hamdoun A., Tragha A. and Khamlich S
Năm: 2013
[5] Augot D. and Finiasz M. (2013), “Exhaustive search for small dimension recursive mds diffusion layers for block ciphers and hash functions,” in 2013 IEEE International Symposium on Information Theory Proceedings (ISIT).IEEE, pp.1551-1555 Sách, tạp chí
Tiêu đề: Exhaustive search for small dimensionrecursive mds diffusion layers for block ciphers and hash functions,” in "2013IEEE International Symposium on Information Theory Proceedings (ISIT)
Tác giả: Augot D. and Finiasz M
Năm: 2013
[6] Augot D., Finiasz M. (2014), “Direct construction of recursive mds diffusion layers using shortened bch codes”, 21st International Workshop on Fast Software Encryption, FSE 2014, Springer Sách, tạp chí
Tiêu đề: Direct construction of recursive mds diffusionlayers using shortened bch codes”, "21st International Workshop on FastSoftware Encryption, FSE 2014
Tác giả: Augot D., Finiasz M
Năm: 2014
[7] Babindamana R.F. and Gueye C.T. (2010), “Gabidulin codes that are generalized reed solomon codes”, International Journal of Algebra, vol. 4, no.3, pp. 119 – 142 Sách, tạp chí
Tiêu đề: Gabidulin codes that aregeneralized reed solomon codes”, "International Journal of Algebra
Tác giả: Babindamana R.F. and Gueye C.T
Năm: 2010
[8] Berger T.P. (2013), Alexei V. Ourivski, “Construction of new mds codes from gabidulin codes”, LACO, University of Limoges Sách, tạp chí
Tiêu đề: Construction of new mds codes from gabidulin codes”
Tác giả: Berger T.P
Năm: 2013
[9] Berger T.P. (2014), “Construction of dyadic mds matrices for cryptographic applications”, arXiv: 1402.0972v1 [cs. CR] Sách, tạp chí
Tiêu đề: Construction of dyadic mds matrices for cryptographic applications
Tác giả: Berger T.P
Năm: 2014
[10] Daemen J., Knudsen L. and Rijmen V. (1997), “The block cipher square”, in Fast Software Encryption (FSE'97). Springer, pp. 149-165 Sách, tạp chí
Tiêu đề: The block cipher square”", in Fast Software Encryption (FSE'97)
Tác giả: Daemen J., Knudsen L. and Rijmen V
Năm: 1997

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w