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

thiết kế và hiện thực một số lõi ip chuyên dụng cho các hệ mã công khai và mã dòng thực hiện trên fpga

222 652 3

Đ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 222
Dung lượng 9,02 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tuy nhiên, tính an toàn của hệ mã RSA nhiều khi có thể bị phá vỡ mà không buộc phải giải bài toán phân tích n thành các thừa số nguyên tố xem [Nguyen08].. Cụ thể, đề tài thực hiện hai mụ

Trang 1

BỘ KHOA HỌC VÀ CÔNG NGHỆ Chương trình KH&CN trọng điểm cấp nhà nước KC.01/11-15

“Nghiên cứu ứng dụng và phát triển công nghệ Thông tin

và Truyền thông”

BÁO CÁO TỔNG KẾT ĐỀ TÀI

“THIẾT KẾ VÀ HIỆN THỰC MỘT SỐ LÕI IP CHUYÊN DỤNG CHO CÁC HỆ MÃ CÔNG KHAI VÀ MÃ DÒNG THỰC HIỆN TRÊN FPGA”

- Mã số KC.01.TN16/11-15

Chủ nhiệm đề tài: PGS.TS Nguyễn Đình Thúc

Cơ quan chủ trì: Trường ĐH Khoa học Tự nhiên, ĐHQG Tp HCM

Tháng 1 năm 2013

Trang 2

MỤC LỤC

Chương 1 Thiết kế và thực hiện một số lõi IP chuyên dụng cho các hệ mã công khai và mã

dòng thực hiện trên FPGA 1

1.1 Mở đầu 1

1.2 Mục tiêu đề tài và nội dung thực hiện 4

1.2.1 Mục tiêu đề tài 4

1.2.2 Nội dung thực hiện 5

1.3 Sản phẩm và kết quả thực hiện 6

1.4 Bố cục báo cáo 7

2.1 Định lý RSA 9

Chương 2: Mã công khai – RSA 9

2.2 Nhị phân hóa phép cộng và nghịch đảo modulo 10

2.2.1 Thuật toán 10

2.2.1.1 Cơ sở toán học 10

2.2.1.2 Nhị phân hóa phép nghịch đảo modulo 12

2.2.1.3 Tính hiệu quả và khả năng cứng hóa của thuật toán 15

2.3 Phép nhân nhanh modulo và phép lũy thừa nhanh modulo .15

2.3.1 Phép toán trên vành ℤm 15

2.3.2 Thuật toán 17

2.3.2.1 Phép nhân nhanh modulo 17

2.3.2.1.1 Giới thiệu 17

2.3.2.1.2 Trình bày thuật toán 18

2.3.2.2 Phép lũy thừa nhanh modulo 19

2.3.2.3 Ví dụ 20

2.3.2.4 Tính hiệu quả và khả năng cứng hóa của thuật toán 21

2.4 Xây dựng giải thuật sinh số nguyên tố an toàn và hiệu quả 21

2.4.1 Cơ sở toán học 21

2.4.2 Thuật toán 24

2.4.2.1 Thuật toán phát sinh số nguyên tố ngẫu nhiên 24

2.4.2.2 Thuật toán phát sinh số nguyên tố ngẫu nhiên cải tiến 24

2.4.2.3 Thuật toán phát sinh số nguyên tố mạnh Gordon 24

2.4.2.4 Thuật toán kiểm tra số nguyên tố - Thuật toán Rabin-Miller 25

Trang 3

2.4.3 Tính hiệu quả của thuật toán 27

2.5 Phân tích và xây dựng thuật giải sinh khóa RSA 27

2.5.1 Cơ sở toán học 27

2.5.2 Thuật toán 30

2.5.3 Tính hiệu quả và khả năng cứng hóa của thuật toán 31

2.6 Nhị phân hóa hệ mã RSA .31

2.6.1 Thuật toán 31

2.6.1.1 Mô hình các module cài đặt RSA 31

2.6.1.2 Chi tiết cài đặt RSA 32

2.6.2 Tính hiệu quả của thuật toán được thể hiện qua kết quả thử nghiệm sau: 33

2.7 Chương trình mô phỏng phần mềm và đánh giá RSA .33

2.7.1 Giới thiệu 33

2.7.2 Phân tích thực nghiệm RSA 34

2.7.2.1 Sinh khóa RSA 34

2.7.2.2 Mã hóa và giải mã 36

2.7.2.3 Ký và xác thực chữ ký 37

2.7.3 Thám mã RSA 39

2.7.3.1 Giới thiệu 39

2.7.3.2 Phân tích ra thừa số dùng phương pháp Pollar 39

2.7.3.3 Tấn công phục hồi khóa bí mật kích thước nhỏ 40

Chương 3: Mã dòng – ZUC 42

3.1 Giới thiệu 42

3.2 Nghiên cứu và mô phỏng hệ mã ZUC 43

3.2.1 Giới thiệu 43

3.2.2 Mã ZUC 44

3.3 Thiết kế SBox 45

3.3.1 Mở đầu 45

3.3.2 Biểu diễn cấu trúc toán học của S-Box 46

3.3.2.1 Cơ sở toán học 46

3.3.2.2 Kiến trúc S-Box 47

3.3.2.3 Đánh giá 47

3.3.3 Thiết lập tiêu chí S-Box an toàn qua các kỹ thuật thám mã 48

3.3.3.1 Thám mã phân biệt tuyến tính 48

3.3.3.2 Thám mã SOBER-t32 và SNOW 2.0 (các hệ mã có cấu trúc tương tự ZUC) 49

Trang 4

3.3.3.2.1 SOBER-t32 49

3.3.3.2.2 SNOW 2.0 50

3.3.3.2.3 Kết quả SOBER-t32 52

3.3.3.2.4 Kết quả SNOW 2.0 52

3.3.3.3 Tạo và kiểm định chuỗi ngẫu nhiên 53

3.3.3.3.1 Giới thiệu 53

3.3.3.3.2 Phương pháp 53

3.3.3.3.3 Kết quả 54

3.4 Xây dựng bộ sinh khóa dòng cho ZUC .54

3.5 Nhị phân hóa hệ mã ZUC 54

3.5.1 Thuật giải 54

3.5.2 Cài đặt của các phần chính 56

3.5.3 Phân tích tính đúng đắn, hiệu quả và khả năng cứng hóa của thuật giải 60

3.5.4 Mô hình cài đặt 61

3.6 Mô phỏng phần mềm và đánh giá ZUC 62

3.6.1 Kiểm tra tính ngẫu nhiên của chuỗi số sinh bởi ZUC 62

3.6.2 Phân tích cấu trúc ZUC 67

Chương 4: Quy trình thiết kế lõi IP 68

4.1 Quy trình tổng quát thiết kế lõi IP cho FPGA 68

4.1.1 Đặc tả thiết kế: 69

4.1.2 Xây dựng mô hình thiết kế 69

4.1.3 Hiện thực mô hình bằng ngôn ngữ phần cứng 70

4.1.4 Kiểm tra chức năng của thiết kế 71

4.1.5 Tổng hợp thiết kế thành mức cổng 72

4.1.6 Kiểm tra thời gian của thiết kế 73

4.1.7 Kiểm tra trên FPGA 73

4.2 Minh họa với quy trình thiết kế lõi IP RSA 74

4.2.1 Đặc tả thiết kế RSA 74

4.2.2 Xây dựng mô hình thiết kế RSA 76

4.2.3 Hiện thực mô hình RSA bằng ngôn ngữ phần cứng 79

4.2.4 Kiểm tra chức năng của thiết kế RSA 81

4.2.5 Tổng hợp thiết kế RSA thành mức cổng 83

4.2.6 Kiểm tra thời gian của thiết kế RSA 84

4.2.7 Kiểm tra thiết kế RSA trên FPGA 86

Trang 5

4.3 Kết luận 87

Chương 5: Các Lõi IP Chuyên Dụng 88

5.1 Các lõi phụ trợ tính toán MAP-Coprocessor 89

5.1.1 Khối Mod2048 89

5.1.1.1 Đặc tả thiết kế 89

5.1.1.2 Xây dựng mô hình thiết kế 90

5.1.1.3 Kiểm tra chức năng của thiết kế 103

5.1.1.4 Kiểm tra thời gian trên FPGA 108

5.1.2 Khối Mul1024 110

5.1.2.1 Đặc tả thiết kế 110

5.1.2.2 Xây dựng mô hình thiết kế 111

5.1.2.3 Kiểm tra chức năng của thiết kế 117

5.1.2.4 Tổng hợp thiết kế trên FPGA 120

5.1.2.5 Kiểm tra thời gian trên FPGA 122

5.2 Lõi IP RSA-Coprocessor 124

5.2.1 Đặc tả thiết kế 124

5.2.2 Xây dựng mô hình thiết kế 127

5.2.2.1 Khối RegA 130

5.2.2.2 Khối RegB 130

5.2.2.3 Khối RegN 131

5.2.2.4 Khối RegN0 132

5.2.2.5 Khối RegZ1 132

5.2.2.6 Khối MonModInverse 133

5.2.2.7 Khối MonPro 134

5.2.3 Kiểm tra chức năng của thiết kế 134

5.2.4 Tổng hợp thiết kế trên FPGA 137

5.2.4.1 Cyclone IV 137

5.2.4.2 Aria II 138

5.2.4.3 Stratix III 138

5.2.4.4 Stratix IV 139

5.2.4.5 Tổng hợp 139

5.2.5 Kiểm tra thời gian của thiết kế trên FPGA 140

5.2.5.1 Cyclone IV 140

5.2.5.2 Aria II 140

Trang 6

5.2.5.3 Stratix III 140

5.2.5.4 Stratix IV 140

5.2.5.5 Tổng hợp 141

5.2.6 Kiểm tra thiết kế trên các loại FPGA 141

5.2.6.1 Chức năng 141

5.2.6.2 Thời gian đáp ứng 142

5.3 Lõi IP ZUC-Coprocessor 144

5.3.1 Đặc tả thiết kế 144

5.3.2 Xây dựng mô hình thiết kế 146

5.3.2.1 Khởi tạo 148

5.3.2.2 BitReorganization 149

5.3.2.3 Dịch thanh ghi hồi đáp tuyến tính 150

5.3.2.4 Module hàm tuyến tính L1 150

5.3.2.5 Module hàm tuyến tính L2 151

5.3.2.6 Giá trị khởi tạo cho mảng hằng D trong bước khởi động khóa (Ek_d) 151

5.3.2.7 S-Box S0 152

5.3.2.8 S-Box S1 154

5.3.3 Kiểm tra chức năng của thiết kế 156

5.3.3.1 Testbench 157

5.3.3.2 Dạng sóng 157

5.3.4 Tổng hợp thiết kế trên FPGA 159

5.3.4.1 Cyclone IV 159

5.3.4.2 Aria II 160

5.3.4.3 Stratix III 160

5.3.4.4 Stratix IV 161

5.3.4.5 Tổng hợp 161

5.3.5 Kiểm tra thời gian trên FPGA 162

5.3.5.1 Cyclone IV 162

5.3.5.2 Aria II 162

5.3.5.3 Stratix III 162

5.3.5.4 Stratix IV 163

5.3.5.5 Tổng hợp 163

5.3.6 Kiểm tra thiết kế trên các loại FPGA 163

5.3.6.1 Chức năng 163

Trang 7

5.3.6.2 Thời gian đáp ứng 164

5.4 Hệ thống demo truyền video có mã hóa 166

5.4.1 Mã Key ZUC bằng RSA (software) 167

5.4.2 Truyền eKey và giải mã eKey bằng IP RSA (hardware) 168

5.4.3 Chuẩn bị ảnh/video mã hóa ZUC với Key ZUC (software) 171

5.4.4 Truyền ảnh/video mã và tiến hành giải mã và hiển thị (hardware) 173

5.5 Kết luận 178

5.5.1 Lõi IP RSA 178

5.5.2 Lõi IP ZUC 179

5.5.3 Đối chiếu kết quả đã đăng ký 181

Chương 6: Các kịch bản thử nghiệm 183

6.1 Giới thiệu 183

6.2 Mô hình ứng dụng voice-chat có bảo mật và thử nghiệm 183

6.2.1 Giới thiệu ứng dụng 183

6.2.2 Mô hình hoạt động 184

6.2.2.1 Mô hình hoạt động ở chế độ công khai 184

6.2.2.2 Mô hình hoạt động ở chế độ riêng tư 184

6.2.3 Kiến trúc chương trình 185

6.2.4 Thiết kế giao diện 186

6.2.4.1 Giao diện chính của Server 186

6.2.4.2 Giao diện cấu hình Client 187

6.2.4.3 Giao diện kết nối của Client 188

6.2.5 Hướng dẫn sử dụng 188

6.2.6 Thử nghiệm 190

6.2.6.1 Kịch bản 1 190

6.2.6.2 Kịch bản thử nghiệm 2 191

6.3 Thử nghiệm video: mô hình ứng dụng và kịch bản thử nghiệm 192

6.3.1 Mô hình thử nghiệm 192

6.3.2 Kịch bản thử nghiệm 195

6.3.3 Kết quả xây dựng phần cứng 199

6.4 Các kịch bản thử nghiệm 200

6.4.1 Kịch bản 1: truyền khóa RSA 200

6.4.1.1 Tính đúng đắn 201

6.4.1.2 Tài nguyên 202

Trang 8

6.4.1.3 Thời gian đáp ứng: 202

6.4.2 Kịch bản 2: mã hóa và giải mã video sử dụng ZUC 204

6.4.2.1 Tài nguyên: 205

6.4.2.2 Thời gian đáp ứng: 205

6.4.3 Tấn công sử dụng bản mã và bản rõ mã ZUC 206

Chương 7: Kết luận 208

7.1 Mở đầu 208

7.2 Kết quả thực hiện 209

7.2.1 Kết quả lý thuyết 209

7.2.2 Kết quả hiện thực phần cứng 210

7.2.3 Các kết quả khác 211

7.3 Sản phẩm và kết quả thực hiện 211

7.4 Hướng phát triển ứng dụng 212

Trang 9

Chương 1: “Thiết kế và hiện thực một số lõi IP chuyên dụng cho các hệ mã công khai

và mã dòng thực hiện trên FPGA”

là RSA, và hệ mã đối xứng là ZUC2

Độ an toàn của mã khóa công khai phụ thuộc chính vào kích thước khóa Một hệ mã RSA với kích thước khóa cho trước, nếu các số nguyên với kích thước tương ứng bị phân tích thành các thừa số nguyên tố thì hệ RSA với kích thước khóa như vậy không còn an toàn nữa Trong trường hợp này, hệ mã RSA bị phá hoàn toàn Có nhiều hướng tiếp cận để

phân tích thừa số nguyên tố: phương pháp vét cạn, phương pháp Pollard’s p - 1, phương

pháp Pollard’s rho, phương pháp dựa vào đường cong elliptic, phương pháp sàng toàn phương (Quadratic Sieve) và sàng trường số (Number Field Sieve) Phương pháp vét cạn

1 RSA đặt theo tên viết tắt của 3 nhà Toán học phát minh ra hệ mã công khai này là Rivest – Shamir – Adleman

2 ZUC là hệ mã dòng đồng bộ được thiết kế bởi Hongjun Wu

Trang 10

thực hiện kiểm tra từng ước số nguyên tố có thể có từ 1 đến n (giả sử n là số cần phân

tích) Mặc dù rất hiệu quả khi phân tích số nhỏ, nhưng đối với số lớn như trong RSA,

phương pháp vét cạn không thể sử dụng do thời gian thực hiện lớn O(n1/2) Phương pháp

Polard’s p - 1 giúp giảm chi phí so với phương pháp vét cạn trong trường hợp một ước số nguyên tố p nào đó của n mà (p - 1) lại là tích của các số nguyên tố nhỏ hơn một ngưỡng

B chọn trước Khi đó, thời gian tìm một ước số nguyên tố của n tỉ lệ với ước số nguyên tố lớn nhất của p - 1 Phương pháp này hiệu quả nếu như ngưỡng B không quá lớn Tuy nhiên, nếu thiết kế RSA, ta chọn n sao cho với mọi ước số nguyên tố p của n, p - 1 phải có

ít nhất một ước số nguyên tố lớn, thì xác suất có thể phân tích n bằng phương pháp này

thành công là rất nhỏ Phương pháp Pollard’s rho dựa vào nguyên tắc ngày sinh nhật (Birthday Paradox), giúp thời gian thực thi tỉ lệ với kích thước của ước số nguyên tố nhỏ

nhất của n, tuy nhiên vẫn không hiệu quả với n lớn như trong RSA hiện nay Phương pháp dựa vào đường cong elliptic là một tổng quát hóa của phương pháp Pollard’s p – 1, và

thực sự cũng chưa chứng tỏ hiệu quả trong trường hợp tổng quát Phương pháp sàng toàn phương (Quadratic Sieve) dựa vào kỹ thuật sàng nguyên tố Eratosthenes, có thời gian chạy gần lũy thừa (subexponential time) lớn hơn thời gian đa thức nhưng nhỏ hơn thời gian số mũ Phương pháp sàng trường số (Number Field Sieve) là phương pháp được xem hiệu quả nhất hiện nay, với thời gian thực thi tốt hơn so với phương pháp Quadratic Sieve [Boneh99] Như vậy, có khá nhiều phương pháp để thực hiện phân tích ước số nguyên tố, tấn công vào RSA Để chống lại tấn công này, cần tăng kích thước khóa lên Tuy nhiên, tính an toàn của hệ mã RSA nhiều khi có thể bị phá vỡ mà không buộc phải giải bài toán

phân tích n thành các thừa số nguyên tố (xem [Nguyen08]) Các kỹ thuật thám mã hiện

đại có thể phục hồi được khóa bí mật từ các thông tin đã được công bố Trường hợp này, nhiều nhà nghiên cứu cũng xem như RSA bị tấn công hoàn toàn Ngoài ra, việc thiếu cẩn trọng khi chọn các tham số hệ thống cho RSA cũng có thể dẫn đến các tấn công phá vỡ hoàn toàn hệ mã Chẳng hạn như, bằng phương pháp liên phân số của M Wiener, với

khóa bí mật d < n1/4/3, cho khóa công khai (e, n), nhiều heuristic cho rằng, kẻ tấn công có

Trang 11

thể khôi phục được n một cách hiệu quả [Boneh99] Trong trường hợp khóa công khai n nhỏ, thông tin về khóa bí mật d cũng sẽ bị lộ một phần [Cid ]3 Một trường hợp nữa cũng hay xảy ra với những người sử dụng chưa có nhiều kinh nghiệm là thiết kế hệ thống RSA rơi vào các trường hợp (hiển nhiên) yếu

Với khả năng của máy tính hiện nay, kích thước khóa an toàn của RSA yêu cầu lên tới 1024-bit Chính vì phải thực hiện tính toán trên các số nguyên quá lớn (BigInteger) nên tốc độ của RSA là rất chậm, ngay cả trên các máy tính cá nhân Thực tế cũng đã chứng minh, với kích thước khóa lớn, tốc độ mã/giải mã là đôi khi khó chấp nhận được trong đa

số giao dịch điện tử [MVV96] Vấn đề càng trở nên bất tiện khi phải thi hành các giao dịch điện tử theo thời gian thực, trên các thiết bị năng lực (bao gồm cả năng lực tính toán lẫn năng lượng) yếu Vì thế, ngay từ những năm đầu thế kỷ 21, đã có nhiều giải pháp cài đặt phần cứng cho các hệ mã khóa công khai, cụ thể cho RSA (xem [HWP06] và [WML08])

Về mã đối xứng, mã hóa đối xứng được chia làm hai loại là: mã khối (Block Ciphers) và

mã dòng (Stream Ciphers) Đối với mã khối, khi mã hóa, dữ liệu ban đầu được chia thành các khối (block), thường thì có kích thước bằng nhau, và kích thước này sẽ tùy thuộc vào thuật toán mã hóa được dùng như DES, 3DES, AES, RC2,… Nếu áp dụng DES thì các khối dữ liệu phải có cùng kích thước là 64 bits, còn nếu áp dụng AES thì kích thước này

phải là 128 bits Mã khối cần đến một khóa k trong suốt quá trình mã hóa, khóa này cũng

tùy thuộc vào thuật toán mã hóa áp dụng như trên Trong thực tế khi áp dụng mã khối thì

dữ liệu ban đầu phải biết trước về kích thước Nghĩa là áp dụng mã khối cho dữ liệu đã biết trước cụ thể Sau khi dữ liệu ban đầu được chia ra thành các khối có kích thước nhất định, quá trình mã hóa sẽ sử dụng đến một trong các kiểu hoạt động (mode of operation: ECB, CBC, CFB, OFB, CTR) để tạo thành bản mã tương ứng cho dữ liệu ban đầu Đối với mã dòng, trong thực tế, khi được áp dụng thì dữ liệu thường ở dạng biến thiên theo thời gian Nghĩa là không biết trước được dữ liệu ban đầu Hàm mã hóa đơn giản nhất trong thực tế có thể chỉ đơn giản là một phép XOR giữa các bits của bản rõ (Plaint text)

3 http://www.sans.org/reading_room/whitepapers/vpns/cryptanalysis-rsa-survey_1006

Trang 12

và khóa dòng (Keystream) tương ứng Do tính chất biến thiên theo thời gian và việc thực hiện mã hóa/giải mã đơn giản, đồng thời cần tính thời gian thực cho các ứng dụng trên thiết bị năng lực thấp, chúng tôi tập trung vào hệ mã dòng thay vì mã khối

Hệ mã dòng ZUC ra đời năm 2009 và đang được phát triển mạnh trong dự án mở của tổ chức DASCA (Data Assurance and Communication Security Research Center, Chinese Academy of Sciences) nhằm hướng tới các ứng dụng cho chuẩn công nghệ "4G" trong tương lai ZUC được phát triển dựa trên SNOW 2.0 Chúng tôi chưa thấy các công trình liên quan đến mã dòng, đặc biệt là hệ mã dòng ZUC Đây vừa là thuận lợi cũng vừa là thách thức cho đề tài

1.2 Mục tiêu đề tài và nội dung thực hiện

1.2.1 Mục tiêu đề tài

Dựa trên các kết quả nghiên cứu về mã hóa-mật mã và các cách tấn công trên các hệ mã phổ biến hiện nay (RSA, ZUC), đề tài nghiên cứu nhị phân hóa và cải tiến các thuật toán liên quan nhằm tăng tốc độ xử lý và tăng tính an toàn cho các hệ mã này RSA và ZUC)

Từ các kết quả nghiên cứu lý thuyết và thuật toán RSA và ZUC, đề tài thiết kế và hiện thực các lõi IP chuyên dụng cho mã hóa – mật mã thực hiện trên FPGA (FCC – FPGA Crypto Coprocessor) nhằm phục vụ các ứng dụng liên quan đến an ninh thông tin Đặc biệt, nghiên cứu chú trọng đến các thiết bị có năng lực thấp (bao gồm cả năng lực tính toán lẫn năng lượng)

Cụ thể, đề tài thực hiện hai mục tiêu chính như sau:

(1) Cải tiến và nhị phân hóa các thuật toán mã hóa:

 Thuật toán nhân modulo

 Thuật toán luỹ thừa modulo

 Các thuật toán phụ trợ (tính nghịch đảo modulo, sinh khóa an toàn,…)

 Thuật toán phát sinh khoá mạnh cho mã dòng: xây dựng một S-Box phát sinh khoá ngẫu nhiên và dài để tăng tính an toàn và chống lại các cơ chế tấn công hiện nay,

Trang 13

đặc biệt tấn công tuyến tính và tấn công sai phân Do S-Box là thành phần phi tuyến duy nhất trong các hệ mã dòng (cũng như mã đối xứng AES), việc xây dựng được S-Box tốt đảm bảo khả năng kháng các tấn công hiện đại như tấn công tuyến tính và tấn công sai phân

(2) Thiết kế và hiện thực 3 lõi chính trên một kiến trúc FPGA hợp nhất gồm:

 MAP Coprocessor: IP chuyên thực hiện các phép số học modulo cũng như các vấn

đề liên quan

 RSA Coprocessor: IP chuyên dụng thực hiện mã/giải mã khóa công khai RSA

 ZUC Coprocessor: IP chuyên dụng thực hiện mã/giả mã khóa đối xứng theo phương thức mã dòng (stream cipher)

1.2.2 Nội dung thực hiện

(1) Nhị phân hóa các phép toán số học trên Z 2 n , đặc biệt chú trọng phép nhân modulo và phép lũy thừa modulo Với phép nhân modulo, thiết kế thuật giải hiện thực

trên phần cứng dùng thuật giải Montgomery Với phép lũy thừa modulo, xây dựng thuật giải và phân tích khả năng cứng hóa thuật giải và hiện thực

(2) Nghiên cứu khả năng cứng hóa hệ mã dòng ZUC Độ an toàn của mã dòng nói

chung cũng như ZUC phụ thuộc vào tính ngẫu nhiên của khóa dòng được phát sinh Bộ sinh khóa dòng an toàn phụ thuộc chính vào S-Box, do đó việc thiết kế S-Box tốt là nhiệm vụ quan trọng của nội dung này ZUC là hệ mã dòng mới, rất tiềm năng cho các ứng dụng mã/giải mã thời gian thực

(3) Thiết kế và cài đặt FPGA Crypto-Coprocessor (FCC) FCC gồm một khối xử lý

(processor block) và các lõi IP (IP cores) nhằm tăng tốc độ tính toán trong quá trình thực hiện mã/giải mã thông tin mật Các lõi IP gồm: RSA Coprocessor, Modulo Arithmic Process Coprocessor, ZUC Coprocessor

Trang 14

1.3 Sản phẩm và kết quả thực hiện

Bảng sau trình bày đối chiếu sản phẩm thực hiện của đề tài so với sản phẩm đăng ký

Các lõi IP chuyên dụng thực hiện trên FPGA:

(i) MAP Coprocessor (lõi chuyên dụng thực

hiện các phép toán số học

(ii) RSA Coprocessor (lõi chuyên dụng thực

hiện mã công khai)

(iii) ZUC Coprocessor (lõi chuyên dụng thực

hiện mã dòng)

Các lõi IP chuyên dụng thực hiện trên FPGA

(1) MAP Coprocessor (lõi chuyên dụng thực

hiện các phép toán số học)

(2) RSA Coprocessor (lõi chuyên dụng thực

hiện mã công khai)

(3) ZUC Coprocessor (lõi chuyên dụng thực

hiện mã dòng)

Qui trình thiết kế lõi các IP (1) Quy trình thiết kế và sử dụng quy trình

hiện thực các lõi đã đăng ký

(2) Đăng ký sở hữu trí tuệ thiết kế mạch cho

ZUC

Determining quantity of S-Boxes using pseudo random sequences generated from stream ciphers In

Algorithms and Architectures for Parallel Processing, LNCS 7440, Springer, 2012

Nhung T.H.Nguyen, Thuc D Nguyen

A variant of non-adative group testing and its application in pay-television via internet”, Springer LNCS,

AsiaARES 2013

Trang 15

Bên cạnh các sản phẩm chính, là các kết quả liên quan đến đào tạo bậc cao học, gồm hai luận văn thạc sĩ Khoa học Máy tính đã bảo vệ thành công tại ĐH KHTN thuộc ĐHQG

Chương 2: Mã khóa công khai – RSA Nội dung của chương này trình bày những kết

quả nghiên cứu về RSA, đặc biệt, chúng tôi xây dựng các thuật toán hiệu quả cho việc cài đặc phần cứng đồng thời phân tích độ an toàn của RSA, qua đó gợi ý những cài đặt phần cứng một RSA an toàn, tránh các khóa yếu và các tấn công có thể làm tổn hại RSA

Chương 3: Mã đối xứng – mã dòng ZUC Nội dung của chương trình bày những kết

quả nghiên cứu nhằm hiện thực phần cứng mã đối xứng ZUC, một dạng mã dòng hiệu quả cho các ứng dụng mã hóa lượng dữ liệu liên tục, không xác định kích thước và phải thi hành thời gian thực Độ an toàn cũng được minh chứng qua các thực nghiệm thống kê

Chương 4: Qui trình thiết kế lõi IP Nội dung trình bày quy trình tổng quát thiết kế lõi

IP và minh họa chi tiết quy trình qua các thiết kế cụ thể

Chương 5: Các lõi IP chuyên dụng Nội dung của chương trình bày quy trình thiết kế

các lõi IP chuyên dụng cho mã hóa gồm: MAP-Coprocessor, chuyên thực hiện các phép toán số học trên vành Z2n

; RSA-Coprocessor, chuyên thực hiện quá trình mã/giải mã theo

Trang 16

nguyên tắc mã công khai RSA; và ZUC-Coprocessor, chuyên thực hiện quá trình sinh khóa dòng cho việc mã hóa và giải mã dòng dữ liệu theo phương pháp ZUC

Chương 6: Các kịch bản thử nghiệm Trình bày các kịch bản thử nghiệm cho hai minh

họa ứng dụng chính: chat-thoại có bảo mật và video streaming có bảo mật Mục tiêu là minh họa khả năng ứng dụng của đề tài dưới khía cạnh phần mềm (chat-thoại) cũng như minh chứng tính hiệu quả của các lõi IP trong ứng dụng video có mã hóa

Chương 7: Kết luận Tóm tắt kết quả nghiên cứu, đối chiếu với nhiệm vụ đăng ký, đồng

thời cũng dự kiến khả năng ứng dụng và triển khai thành các sản phẩm

Trang 17

Chương 2: Mã công khai - RSA

Chọn e và d thuộc ℤN = {0, 1,…, N – 1}, thỏa điều kiện: ed mod Phi = 1 (3)

Khi ấy, với mọi m thuộc ℤN, nếu c = me mod N thì m = c d mod N, và ngược

Ở dòng (1), ta cần chọn được một cách ngẫu nhiên 2 số nguyên tố khác nhau p và

q Bài toán sẽ là không khó khăn gì với máy tính nếu p và q là các số nhỏ Tuy nhiên, với p và q lớn1, không có máy tính cũng như không có ngôn ngữ lập trình nào hỗ trợ trực tiếp, vì thế, việc cài đặt sẽ trở nên khó khăn hơn rất nhiều Bên cạnh

tính ngẫu nhiên, các số nguyên tố cần phải là số nguyên tố mạnh 2 để tránh khả năng

phân tích N thành p và q Vì thế, ta cần các thuật toán sinh số nguyên tố an toàn để

thực hiện nhiệm vụ này

Dòng (2) yêu cầu ta phải tích tích 2 số nguyên lớn (mà máy tính cũng như ngôn

ngữ lập trình không hỗ trợ trực tiếp)

Ở dòng (3), ta có đẳng thức ed mod Phi = 1 Xét trong miền ZPhi, từ đẳng thức này,

ta có khái niệm nghịch đảo Trong đẳng thức này, d được gọi là nghịch đảo (mod Phi) của e và ngược lại Như vậy, cho trước e và Phi, trong điều kiện nào và làm thế nào ta có thể tìm được nghịch đảo d (mod Phi) của nó

Dòng (4), để mã hóa m thành c, (và giải mã c để phục hồi lại m), cần phải tính m e mod N, (hay c d mod N) Phép tính này gọi là phép tính lũy thừa modulo

 Bên cạnh các nội dung trên, để đảm bảo chắc chắn xây dựng được một hệ thống RSA an toàn chống được hai tấn công: (i) phân tích ra thừa số (tấn công tổng quát),

Trang 18

và (ii) tấn công khóa yếu (tấn công đặc thù), nhất thiết cần khảo sát và thử nghiệm các tấn công này

 Cuối cùng, để triển khai phần cứng, cũng cần xem xét khả năng nhị phân hóa RSA,

và đánh giá hiệu năng RSA (bên cạnh phần xem xét tính an toàn của RSA)

Nội dung chương này được tổ chức gồm các nội dung sau:

(1) Nhị phân hóa phép cộng và nghịch đảo modulo

(2) Phép nhân nhanh modulo và phép lũy thừa nhanh modulo

(3) Xây dựng thuật giải sinh số nguyên tố an toàn và hiệu quả

(4) Phân tích và xây dựng thuật giải sinh khoá RSA

(5) Nhị phân hóa hệ mã RSA

(6) Chương trình mô phỏng phần mềm và đánh giá RSA

2.2 Nhị phân hóa phép cộng và nghịch đảo modulo

2.2.1 Thuật toán

2.2.1.1 Cơ sở toán học

Trong bảo mật thông tin, đặc biệt trong hệ mật mã RSA, việc xác định được ước chung lớn nhất, ký hiệu gcd – greatest common divisor, là vấn đề quan trọng Định lý Euclide

là cơ sở toán học cho phép xây dựng các thuật toán/chương trình máy tính tính gcd của

2 số cho trước Ta tóm tắt định lý này theo ngôn ngữ thuật toán như sau:

Định lý Euclide (thuật toán Euclidecho 2 số nguyên dương)

Cho a, b là hai số nguyên dương

Đặt r-1 = a, và r0 = b Ta có

rj-1 = rjqj+1 + rj+1, 0 ≤ j < rj;

(với 0 ≤ j < N và N là số nguyên dương nhỏ nhất sao cho rN+1 = 0)

Khi ấy, ước chung lớn nhất của a, b là rN: gcd(a,b) = rN

Trong thực tế RSA thường sử dụng định lý mở rộng của định lý Euclide, được phát biểu và chứng minh bởi nhà toán học Bezout, người Pháp Định lý này thiết lập quan

hệ giữa 2 số nguyên a, b cho trước với ước số chung lớn nhất cuả chúng Cho 2 số

nguyên dương a, b, giả sử a > b ≥ 1, ta luôn tìm được 2 số nguyên (có thể âm) x và y

sao cho ax + by = gcd(a,b) Ta cũng sẽ phát biểu định lý này dưới dạng thuật toán như sau:

Trang 19

Định lý Bezout (tìm quan hệ giữa 2 số nguyên dương với ước chung lớn nhất của

(N là số nguyên dương nhỏ nhất sao cho rN+1 = 0)

Định lý Bezout (nhiều tài liệu gọi là Euclide mở rộng) quan trọng, đặc biệt với RSA,

vì nó cho phép tính số nghịch đảo của một số cho trước trong tập các số nguyên dương

ℤn = {0, 1, …, n-1}

Một số nguyên a thuộc ℤn được gọi là khả nghịch nếu tồn tại số nguyên b cũng thuộc

ℤn sao cho ab mod n = 1 Khi ấy b được gọi là nghịch đảo của a, ký hiệu b  a-1

(mod n)

Để tính nghịch đảo của số a (điều kiện là a phải nguyên tố cùng nhau với n, nghĩa là gcd(a, n) = 1), sử dụng thuật toán Bezout ta tính được x và y thỏa:

ax + ny = gcd(a, n) = 1

thực hiện phép chia lấy phần dư cho n, ta có

ax mod n + ny mod n = 1 mod n

ax mod n + 0 = 1 mod n

hay

x  a-1

(mod n)

Để nhị phân hóa các thuật toán trên, ta có 2 ghi chú quan trọng sau:

Ghi chú 2.1: cho 2 số nguyên dương x và y, giả sử x và y cùng lớn hơn hay bằng 2 Ta

biết rằng, mọi số nguyên đều có biểu diễn duy nhất dưới dạng tích của các số nguyên

tố (định lý cơ bản của số học) Như vậy, từ biểu diễn của x và y:

Trang 20

gcd 𝑥, 𝑦 = 2min ⁡(𝑥 2 ,𝑦 2 )gcd⁡(𝑥1, 𝑦1),

Khi y lẻ, gcd(x, y) = gcd(x1, y)

Khi x chẵn và y lẻ, gcd(x, y) = gcd(x/2, y)

Ghi chú 2.2: nếu x và y là hai số nguyên lẻ khác nhau,

gcd(x,y) = gcd(|x – y|/2, min(x,y))

2.2.1.2 Nhị phân hóa phép nghịch đảo modulo

Thuật toán Euclide Nhị phân hóa: Tìm ước chung lớn nhất (gcd) của hai số x, y

Thuật toán 2.1: Euclide nhị phân hóa tìm gcd(x,y)

Ghi chú khi cài đặt:

- Dòng lệnh số 3, để gán g = 1, ta chỉ cần bật bit thấp nhất của biến g

Trang 21

- Dòng lệnh số 4, để kiểm tra một số có phải là số chẵn hay không ta chỉ cần kiểm tra xem bit thấp nhất của biến tương ứng có tắt hay không

- Các lệnh trong thân của lệnh lặp số 4, phép chia/nhân cho 2 sẽ được cài đặt bằng các phép shift tương ứng

Thuật toán Bezout Nhị phân hóa

b While (v is even)

y = y/2;

if (C and D are even) then C = C/2, D = D/2 else C = (C + y)/2, D = (D – x)/2

c If(u >= v)

Then u = u –v, A = A – C, B = B – D

Trang 23

2.2.1.3 Tính hiệu quả và khả năng cứng hóa của thuật toán

Trong thuật giải trên, cài đặt phần cứng phép toán chia cho 2 sử dụng phép dịch 1 bit sang phải, phép toán nhân cho 2 dịch 1 bit sang trái, phép toán kiểm tra chẵn lẻ đưa về kiểm tra bit cuối cùng là 0 hay 1 Do các phép toán đều thực hiện trên bit nên tốc độ của thuật giải được giảm đáng kể, đồng thời thích hợp để thực hiện cứng hóa

2.3 Phép nhân nhanh modulo và phép lũy thừa nhanh modulo

2.3.1 Phép toán trên vành m

Trong phần này, ta sẽ xem xét các thuật toán tính toán trên các số nguyên trong tập ℤm

= {0, 1, …, m – 1}, với m là một số nguyên dương

Một số nguyên x không thuộc tập ℤ m này sẽ được xét qua một số tương đương y = x mod m, là một số thuộc ℤ m, ta ký hiệu:

x  y (mod m)

Trước hết, ta có các ghi chú sau:

Ghi chú 3.1: nếu x và y thuộc ℤ m,

(x + y) mod m = x + y nếu (x + y) < m;

(x + y) mod m = x + y – m nếu (x + y) ≥ m

(x – y) mod m = x + m – y nếu x < y;

(x – y) mod m = x – y nếu x ≥ y

Ghi chú này giúp cài đặt phép cộng/trừ mod một cách hiệu quả

Ghi chú 3.2: nếu x và y cùng thuộc ℤ m , thì 0 ≤ xy ≤ m2 – 1

Và nếu k là một số nguyên dương thỏa điều kiện:

Trang 24

Công thức (*) gợi ý khi cài đặt, ta không nên thực hiện lại các kết quả đã tính trước đó,

nghĩa là, ở bước thứ i, ta đã tính được xb i , thì bước thứ i+1, ta không phải tính lại giá

trị này nữa

Cũng lưu ý là khi sử dụng cơ sở 2 (b = 2), phép nhân cho 2 thực chất là phép shift, và

phép lũy thừa 2i thực chất là i lần shift

Ghi chú 3.4: để tính x p , với x là số nguyên thuộc ℤ m, và p là một số nguyên dương, ta

nên biểu diễn p dạng nhị phân 𝑝 = 0≤𝑖≤𝐼𝑝𝑖2𝑖, khi ấy

phải thực hiện I lần phép nhân Ta biết rằng chi phí cho phép nhân rất cao Vì thế, ta

có thể thay đổi quy trình tính như sau chi phí tính toán sẽ rút gọn hơn:

(1) y = 1

(2) (I ≥ i ≥ 0) y = y2 mod m, If (pi = 1) Then y = yx mod m

(3) Return y

Trong quy trình mới này, vì y ban đầu bằng 1 (bước số 1), nên y = y2 vẫn sẽ bằng 1

cho đến khi bit đầu tiên của p bật lên (p i = 1) Như vậy, mặc dù độ phức tạp lý thuyết

so với quy trình trước khi cải tiến là như nhau, nhưng trung bình thời gian tính toán thực sự của quy trình cải tiến tốt hơn nhiều

Ghi chú 3.5: trong hệ mã RSA, việc tính x k

mod n khác với việc tính x k mod m với m chung chung Thực vậy, trong RSA, n là tích của 2 số nguyên tố phân biệt: n = pq Vì thế, x k mod n sẽ bằng x k mod pq Nếu đặt

k1 = k mod (p – 1) và k2 = k mod (q – 1), sẽ có 2 số nguyên n1 và n2 sao cho

k = k1 + n1(p – 1) và k = k2 + n2(q – 1)

Trang 25

Với các lưu ý này, khi chuyển sang phần cứng sẽ hiệu quả hơn rất nhiều

2.3.2 Thuật toán

2.3.2.1 Phép nhân nhanh modulo

Từ các nghiên cứu nâng cao hiệu quả khi nhị phân hóa các phép toán số học như trình bày trên, phần này khảo sát đánh giá thuật toán nhân Montgomery

, với k thích hợp Vì modulo cho một số có dạng lũy thừa của 2

(r = 2k) sẽ nhanh hơn rất nhiều

3 Định lý Fermat: với mọi số nguyên dương a, ap-1 mod p = 1 nếu p là số nguyên tố

Trang 26

2.3.2.1.2 Trình bày thuật toán

Với a b n, , là các số nhị phân k bit Giả sử ta có 2k1 n 2k Chọn r2k sao cho r

n là hai số nguyên tố cùng nhau gcd r n, 1

(Trong trường hợp RSA, n luôn là số lẻ, và ta luôn có điều này.)

Với mọi số nguyên an, ta định nghĩa n residue với r tương ứng là

mod

aa r n, đây chính là tập hợp i r mod n | 0  i n 1

Thuật toán Montgomery trình bày cách tính nhanh tích của hai số nguyên trong lớp

n residue Cho a và b thuật toán nhân Montgomery thực hiện tính toán

1

mod

R  a b rn Trong đó 1

rlà phần tử nghịch đảo của r (mod n)

Kết quả R chính là số dư trong lớp thặng dư n residue của phép nhân

mod

R a b n

Lưu ý là để thực hiện, cần tính trước 1

r và n thỏa ' r r 1  n n' 1 Việc tính r1 và '

n có thể thực hiện dễ dàng thông qua thuật toán Bezout như trình bày trong phần 2

Thuật toán nhân Montgomery thực hiện tính toán : u  a b r1 mod n và chi tiết cài đặt

Trang 27

Và phép tính tích modulo, x = a.b mod n, được thực hiện nhanh dùng thuật toán sau:

2.3.2.2 Phép lũy thừa nhanh modulo

Thuật toán nhân Montgomery cũng chính là hạt nhân để tính nhanh lũy thừa modulo mod

b

a n :

Trang 28

 Tính x cho x1 : ta có xx r mod n  1.16 mod 13 3

 Bước 5 và 6 trong thuật toán mô tả chi tiết như sau :

Cụ thể các bước được thực hiện như sau :

Trang 29

Vậy x = 4 là kết quả cuối cùng

2.3.2.4 Tính hiệu quả và khả năng cứng hóa của thuật toán

Bằng cách biến đổi từ modulo cho số n bất kì về modulo cho r2kthích hợp, phép nhân và phép lũy thừa modulo được chuyển về thực hiện chủ yếu bằng các phép dịch bit vì vậy rất hiệu quả và dễ dàng cài đặt phần cứng Việc biến đổi chỉ sử dụng thuật toán Bezout nhị phân nên cũng chỉ sử dụng các phép dịch bit

2.4 Xây dựng giải thuật sinh số nguyên tố an toàn và hiệu quả

2.4.1 Cơ sở toán học

Như ta đã biết, hạt nhân của hệ mã RSA được xây dựng trên các số nguyên tố lớn Khó khăn nằm ở chỗ “lớn” của các số nguyên tố cần dùng (RSA an toàn cần các số nguyên

tố tối thiểu 512 bit)

Trong hệ mã RSA, như ta đã biết, ta cần tìm ra 2 số nguyên tố lớn Phương pháp trực quan là sinh một số ngẫu nhiên và kiểm tra xem nó có phải là số nguyên tố hay không Như vậy, ta cần giải 2 bài toán liên quan sau:

(1) Kiểm tra số nguyên tố Cho một số nguyên dương lớn4, hỏi đó có phải là số nguyên tố hay không ?

(2) Tạo số nguyên tố Sinh ra một số nguyên tố ngẫu nhiên lớn

Theo định nghĩa, một số nguyên dương n là số nguyên tố nếu nó chỉ chia hết cho 1 và cho chính nó Nghĩa là,

(1 < i < m) gcd(i, n) = 1

Vị từ trên thực chất là thuật toán vét cạn để kiểm tra một số có là nguyên tố hay không Thực tế, ta không cần kiểm tra mọi số nhỏ hơn n có phải là ước số của n hay không mà

4 Trong đề tài này, các số nguyên tố có số bit là 512

Trang 30

chỉ cần kiểm tra tới n  là đủ Tuy vậy, khi n rất lớn (512 bit chẳng hạn), thì số n  cũng dài bằng nửa số bit của số n (tương ứng với cỡ 2256

phép thử) Chi phí để kiểm tra một số như vậy là quá lớn Vì thế, cần khảo sát các thuật toán hiệu quả hơn

Trước hết, ta có các ghi chú sau

Ghi chú 4.1: mọi số nguyên tố lớn hơn 2 đều là số lẻ Vì thế, một số lẻ n = 2m + 1 là

số nguyên tố nếu và chỉ nếu thỏa tiêu chí Fermat5:

𝑏 < 𝑛, 𝑏2𝑚 ≡ 1 (𝑚𝑜𝑑 𝑛)

Ghi chú 4.2: Nếu n = 2m + 1 và tồn tại b, 0 < b < n, để ghi chú 4.1, sai, thi chắc chắn n

không phải là số nguyên tố

Từ hai ghi chú trên, một số nguyên lẻ luôn có dạng

thì n được xem là số nguyên tố, ta gọi là số giả nguyên tố cơ sở b

(Việc biểu diễn dạng 2r m để thực hiện phép tính lũy thừa modulo cho hiệu quả.)

Ghi chú 4.3: một số giả nguyên tố chưa chắc là số nguyên tố Thực vậy, số 2047 thỏa

điều kiện Fermat với b = 2, hay 2047 là số giả nguyên tố cơ sở 2, nhưng ta cũng biết

2047 = 23  89, là một hợp số

Ghi chú 4.4: một số là giả nguyên tố của nhiều cơ sở khác nhau thì khả năng là thực

nguyên tố càng cao Thực vậy, dưới 1016, người ta chưa tìm ra được một phản ví dụ nào chứng tỏ một số đồng thời là giả nguyên tố cơ sở 2 và cơ sở 3 lại không phải là số nguyên tố Một ý tưởng tương tự là một số là giả nguyên tố của một cơ sở ngẫu nhiên thì khả năng là số nguyên tố cũng cao Tính nguyên tố cao trong trường hợp này được ủng hộ bởi tính ngẫu nhiên của cơ sở

Từ nhận xét trên, ta có thuật toán kiểm tra số giả nguyên tố như sau:

(1) Lấy ngẫu nhiên một số nguyên tố b làm cơ sở để kiểm tra

(2) Tìm số nguyên r và số lẻ m sao cho n – 1 = 2rm

5 Đinh lý Fermat nhỏ: p nguyên tố nếu chỉ nếu với mọi b nguyên dương b p-1 mod p = 1

Trang 31

(3) Với mọi 1 ≤ i ≤ r, kiểm tra nếu (𝑏2𝑖𝑚 𝑚𝑜𝑑 𝑛 ≠ 1) thì Return False

(4) Return True

Trong thuật toán trên, r và m được xác định nhanh như sau:

Gọi nknk-1…n1n0 là chuỗi bit biểu diễn nhị phân của n, nghĩa là

𝑛 = 𝑘𝑖=0𝑛𝑖2𝑖,

Thì r = q và m là số nguyên (k – q) bit, với q là bit thứ 2 có giá trị bằng 1 tính từ trái sang Nghĩa là nếu n = n k …n q+1 10…01, thì r = q và m = n k …n q+11

Bây giờ ta xét đến bài toán thứ 2, bài toán sinh số nguyên tố lớn ngẫu nhiên

Thuật toán sau sinh ra một số nguyên tố lớn dựa trên định lý sau:

Định lý: giả sử n – 1 là tích của 2 số F và Q, n – 1 = FR, trong đó R <n, và F có biểu diễn cơ bản là 𝐹 = 𝑠 𝑝𝑖𝑎𝑖

𝑖=1 , với pi là số nguyên tố nhỏ Giả sử thêm là tồn tại một số nguyên dương b sao cho:

𝑏𝑛 −1 ≡ 1 (𝑚𝑜𝑑 𝑛) và

gcd 𝑏

𝑛 −1

𝑝 𝑖 , 𝑛 = 1, ∀𝑖 = 1,2, … , 𝑠

Và số giả nguyên tố có d ký số được sinh như sau:

(1) Sinh ngẫu nhiên số q có d/2 + 1 chữ số

(2) Chọn r < q thỏa 1 + rq  ± 1 (mod 6)

(3) Nếu p = rq + 1 là số giả nguyên tố cơ sở 2 và giả nguyên tố cơ sở 3 thì theo định lý trên, p là số nguyên tố cần tim: Return p

(4) Nếu không, r = r + 6

(5) Quay lại bước (2)

Lưu ý là thuật toán trên là không thực sự hiệu quả và số nguyên tố tạo ra vẫn là số giả nguyên tố Một lưu ý khác là số nguyên tố tạo bằng thuật toán trên không đảm bảo sẽ sinh ra một hệ mã an toàn Một hệ RSA an toàn nếu các số nguyên tố cấu thành nó là các số nguyên tố mạnh, như ta sẽ thấy trong các thực nghiệm sau Tuy nhiên, thuật toán này gợi ý các hướng nghiên cứu sinh số nguyên tố như ta khảo sát và thực nghiệm

Trang 32

2.4.2.2 Thuật toán phát sinh số nguyên tố ngẫu nhiên cải tiến

Một cải tiến hiệu quả của thuật toán phát sinh số nguyên tố là trước khi gọi hàm Miller Rabin kiểm tra tính nguyên tố là thử chia số n cho lần lược các số nguyên tố nhỏ hơn

2000 để kiểm tra n có các ước số nguyên tố nhỏ hơn 2000 hay không

(Việc kiểm tra này giảm tới 80% thời gian phát sinh số nguyên tố so với thuật toán gốc.)

2.4.2.3 Thuật toán phát sinh số nguyên tố mạnh Gordon

Trước khi các phương pháp phân tích trường hợp đặc biệt được đề xuất, hàng loạt các

đề xuất liên quan đến số nguyên tố có một số tính chất đặc biệt đã được đưa ra Do những tính chất đặc biệt đó, cơ hội để các phương pháp phân tích như trình bày ở trên thành công là rất nhỏ Những số nguyên tố có những tính chất đặc biệt đó được gọi là

số “nguyên tố mạnh” Lý do cho sự cần thiết này là để bảo vệ trước các thuật toán phân tích đặc biệt như thuật toán “rho” và “pollard”

Định Nghĩa Một số nguyên tố p được xem là một số nguyên tố mạnh nếu nó thỏa

mãn các điều kiện sau:

(i) p là một số nguyên tố lớn

(ii) Thừa số nguyên tố lớn nhất của p-1 gọi là p- lớn Nghĩa là p=a-p- + 1 với số nguyên a-

và số nguyên tố lớn p- (iii) Thừa số nguyên tố lớn nhất của p- -1, gọi là p lớn Nghĩa là p- = a p +1 với số nguyên a và số nguyên tố lớn p

(iv) Thừa số nguyên tố lớn nhất của p+1, gọi là p+ lớn Nghĩa là p = a+p+-1 với số nguyên a+ và số nguyên tố lớn p+

“Lớn” ở đây tùy thuộc vào các phương pháp phân tích hiện tại Thường thì kích thước của p tối thiểu là 256 bit còn kích thước của các thừa số p-, p , p+ trên 100 bit

Trong thực tế cài đặt, một số nguyên tố gọi là mạnh khi nó chỉ cần thỏa mãn một số các điều kiện trên, thường là 2 tiêu chí đầu (i) và (ii)

Trang 33

Thuật toán Gordon

1 Tìm p và p+ là các số nguyên tố ngẫu nhiên bằng thuật toán tìm kiếm tăng

2 Tính p- là số nguyên tố nhỏ nhất có dạng: p- = a p + 1, với a = là một số chẵn nào

Bằng cách điều chỉnh độ dài (theo bit) của các số nguyên tố 𝑝−−và p+và các giá trị

𝑎−−và 𝑎, ta sẽ có thể điều chỉnh được số nguyên tố 𝑝 có kích thước mong muốn Lưu ý rằng số bit của 𝑝−và 𝑝+xấp xỉ một nửa số bit của 𝑝 trong khi độ số bit của 𝑝−−chỉ ít hơn 𝑝− một chút

Gordon chứng minh được thuật toán của ông chỉ chậm hơn 19% so với thuật toán tìm

số nguyên tố ngẫu nhiên cùng kích thước Tuy nhiên, Gordon mô tả thuật toán tìm số nguyên tố trong bước (1) là thuật toán phát sinh số nguyên tố ngẫu nhiên cải tiến nên khi sử dụng phiên bản cải tiến này, tốc độ tổng thể của thuật toán phát sinh số khả nguyên tố mạnh Gordon sẽ tăng lên đáng kể

2.4.2.4 Thuật toán kiểm tra số nguyên tố - Thuật toán Rabin-Miller

Đây là thuật toán dùng để kiểm tra một số có phải là số nguyên tố hay không Là thuật toán thuộc nhóm Monte Carlo được sử dụng trong việc khẳng định hay phủ định một vấn đề nào đó Câu trả lời luôn có và là „yes‟ hoặc „no‟ Trong thuật toán Miller Rabin

là thuật toán trả lời „yes‟cho vị từ “số nguyên dương n là hợp số” ;nghĩa là câu kết luận

số n là hợp số luôn luôn đúng, còn n là số nguyên tố có khả năng sai Nhưng nếu áp

dụng thuật toán k lần với các giá trị a khác nhau thì xác suất sai là 1

04

k

  

 

  với k đủ

lớn, nghĩa là khả năng sai là rất thấp

Thuật toán Miller Rabin

Phân tích số nguyên dương n dưới dạng n2t u1

Chọn ngẫu nhiên số nguyên dương a1, 2, ,n1

Tính xa u modn

ifx1 mod pthen

Trang 34

Kết luận n là số nguyên tố và dừng thuật toán

Kết luận n là hợp số và dừng thuật toán

Thuật toán 4.1:Mã giả thuật toán Miller-Rabin

Thuật toán4.2: Mã giả hàm Witness(a,n)

Trang 35

Thuật toán4.3: Mã giả hàm tính lũy thừa Modular-Exponentiation(a,b,n)

2.4.3 Tính hiệu quả của thuật toán

Thuật toán sinh số nguyên tố ngẫu nhiên sử dụng thuật toán Miler Rabin để kiểm tra một số phát sinh ngẫu nhiên có phải là số nguyên tố hay không Bằng phương pháp chia thử với các số nguyên tố nhỏ hơn 2000 đã giảm được 80% thời gian so với thuật toán ban đầu Ngoài ra, trong thuật toán Miler-Rabin sử dụng module phép nhân modulo Montgomery nên giảm thiểu tối đa thời gian và phù hợp với việc cài đặt phần cứng

2.5 Phân tích và xây dựng thuật giải sinh khóa RSA

2.5.1 Cơ sở toán học

Đề tài này nhằm mục đích cài đặt phần cứng các hệ thống mã hóa Hai hệ thống sẽ được cài đặt gồm RSA (cho mục đích truyền khóa) và hệ mã ZUC (cho mục đích mã hóa dữ liệu)

RSA là hệ mã bất đối xứng và được xây dựng trên nguyên lý hàm một chiều có cửa sập và được mô tả một cách tổng quát như sau

Cho các tập hữu hạn S và T Hàm một chiều

f : S  T

là hàm khả nghịch thỏa các điều kiện sau:

(1) f dễ thực hiện Nghĩa là cho x  S, có thể tính được y = f(x) dễ dàng

(2) f-1, hàm ngược của f, khó thực hiện Nghĩa là cho y  T, rất khó tìm được x: x =

f -1(y)

(3) f -1 có thể tính dễ nếu có một số thông tin

Trang 36

Hai điều kiện đầu tạo thành một hàm một chiều, và điều kiện thứ (3) cho phép tạo của sập (trap-door) Chính nhờ trap-door, ta có thể xây dựng được các hệ mã bất đối xứng,

mã bằng một khóa và giải mã bằng khóa khác

Hàm f : pq  n là hàm một chiều có cửa sập với p và q là các số nguyên tố rất lớn Thực vậy, ta có thể dễ dàng thực hiện phép nhân n = pq (độ phức tạp thời gian đa thức), nhưng tính f -1 thì lại là vấn đề khó, như mô tả trong giả thuyết sau

Conjecture: bài toán phân tích ra thừa số nguyên tố là bài toán khó

Từ giả thuyết trên và nguyên tắc hàm một chiều có cửa sập, ba nhà toán học, R Rivest, A Shamir, và L Adleman, đã xây dựng hệ mã nổi tiếng RSA

Từ định lý RSA trong phần 1, giao thức mã hóa RSA được mô tả như sau:

Ghi chú 5.1: Bài toán tính lũy thừa d từ khóa công khai (n, e) và bài toán phân tích ra

thừa số nguyên tố là hai bài toán tương đương Vì thế, tính an toàn của RSA đòi hỏi

các số nguyên tố p và q phải rất lớn để việc phân tích n = pq là hầu như không thể

thực hiện trên các hệ thống máy tính hiện nay

6 Với khả năng của máy tính hiện nay, RSA an toàn cần tối thiểu số nguyên tố từ 512 bit trở lên

Trang 37

Ghi chú 5.2: hệ mã RSA vẫn đúng cho trường hợp nhiều số nguyên tố khác nhau, với

lưu ý là n = p1…pm với p i, 1 ≤ i ≤ m là các số nguyên tố lớn khác nhau, thì (n) = (p1 –

1)…(p m – 1) Trong trường hợp chỉ có 1 số nguyện tố, m = 1, thi n = p và (n) = (p –

1), bài toán phân tích ra thừa số không còn ý nghĩa trong trường hợp này

Việc phân tích độ an toàn của RSA sẽ được khảo sát sau Tuy nhiên, có thể tóm tắt ở đây một số khả năng tấn công RSA

Cho khóa công khai (n, e) và bản mã c = m mod (n) Trên quan điểm thám mã, ta muốn biết bộ ba (n, e, c) bị phá khó như thế nào ? RSA có thể được thám mã theo các cách như sau:

(1) Phân tích n ra thừa số nguyên tố Thực vậy, nếu phân tích được n thành p và q,

ta có thể xác định được (n) = (p – 1)(q – 1) một cách dễ dàng Từ đó, sử dụng

thuật toán Bezout, ta có thể tìm được khóa cá nhân d từ khóa công khai (n, e)

(2) Tính (n) mà không cần phân tích n Rõ ràng, nếu biết (n), sử dụng thuật toán

Bezout ta có thể dễ dàng xác định được khóa cá nhân d, chính là nghịch đảo của

e (mod (n)) Tuy nhiên, bài toán tìm (n) cũng dẫn về bài toán phân tích n Thực vậy,

có thể được phân tích dung bất kỳ bội số nào của (n)

(4) Tính căn bậc e của c (theo modulo n) Rõ ràng, tiến trình giải mã RSA chính là tính căn bậc e của c (mod n) Nghĩa là bài toán giải mã là bài toán tìm nghiệm

Hiển nhiên phải giải phương trình đồng dư

c  me (mod n)

Khi (n, e, c) cho trước, ta có thể thay m = 0, 1, 2, … cho đến khi tìm được một

m thỏa mã phương trình đồng dư trên Trên lý thuyết, có thể liệt kê tất cả các

phần tử của một trường hữu hạn Nhưng trong thực tiễn, việc này hầu như không thể khi n quá lớn

Trang 38

Từ đó, Rivest, Shamir và Adleman phỏng đoán giả thuyết sau:

Conjecture RSA: mọi phương pháp thám mã RSA phải khó như bài toán phân tích ra

thừa số nguyên tố

Tuy được bảo đảm bằng giả thuyết RSA, nhưng như cách mô tả các thám mã nêu trên,

ta thấy RSA có thể không an toàn khi

(1) Các số nguyên tố mặc dù lớn nhưng có dạng đặc biệt Chẳng hạn các số nguyên

tố Mersenne7, hay nói chung là các số nguyên tố không phải số nguyên tố mạnh, như Gordon định nghĩa

(2) Khóa cá nhân nhỏ Hiện nay, nhiều công trình đã chứng minh được là nếu kích thước (theo bit) của khóa cá nhân d nhỏ hơn ¼ kích thước của n, thì d có thể được phục hồi từ khóa công khai (n, e).8

(3) Hiển nhiên, e cũng không được quá nhỏ Thực vậy, nếu e quá nhỏ, 3 chẳng hạn,

có thể vét cạn, hoặc sử dụng định lý Số dư Trung Hoa để phục hồi m từ (n, e, c).9

Tóm lại, công việc cần thiết trong nội dung này là:

(1) Phát sinh các số nguyên tố mạnh

(2) Tạo khóa cá nhân có kích thước lơn hơn ¼ kích thước khóa công khai n

(3) Tạo khóa công khai e không quá nhỏ để có thể vét cạn hoạc có thể giải bằng phương pháp số dư Trung Hoa

2.5.2 Thuật toán

1 pBitLength = strength/2

2 qBitLength = strength – pBitLength

3 Phát sinh số nguyên tố mạnh p, độ dài pBitLength

4 Phát sinh số nguyên tố mạnh q, độ dài qBitLength

5 Tinh phiN = (p-1)(q-1)

6 Phát sinh số d < phiN thỏa gcd(d,phiN) = 1 và d < n1/4

7 Tính e = d-1, sử dụng thuật toán Bezout

8 Trả về (n,e) và (n,d)

- Hai dòng lệnh số 2 và số 3 để đảm bảo các số nguyên tố p và q được sinh ra là các số nguyên tố dạng Gordon, các số nguyên tố mạnh Các số nguyên tố này được phát sinh bằng chương trình GenStrongPrime của công việc trước

7 Là số nguyên tố có dạng n = 2 p + 1, với p cũng là số nguyên tố

8 M Wiener “Cryptanalysis of Short RSA Secret Exponents” IEEE Trans Inform Theory 36, 1990

9

Christophe Coupe, Phong Nguyen, and Jacques Stern “The Effectiveness of Lattice Attacks Against Exponent RSA” Public Key Cryptography ‟99

Trang 39

Low Hai dòng lệnh số 6 và số 7 để tránh sinh ra các khóa yếu Là khóa cá nhân có kích thước nhỏ hơn ¼ kích thước n và/hay khóa công khai e quá bé

2.5.3 Tính hiệu quả và khả năng cứng hóa của thuật toán

Trong thuật toán sinh khóa ở trên, ở bước 3 và 4 Các số nguyên tố p, q được sinh bằng

thuật toán sinh số nguyên tố mạnh Gordon nên đảm bảo an toàn với các phương pháp tấn công phân tích đặc biệt Ngoài ra, việc sinh khóa cá nhân d thỏa d < n1/4 đảm bảo chống tấn công liên phân số10 và tấn công dàn11

Khả năng cứng hóa của thuật toán này phụ thuộc vào các module đã cài đặt trước đó như module sinh số nguyên tố, thuật toán Bezout, phép nhân nhanh Montgomery

2.6 Nhị phân hóa hệ mã RSA

2.6.1 Thuật toán

2.6.1.1 Mô hình các module cài đặt RSA

Hình 2.1: Các module cài đặt RSA

Để cài đặt thuật toán RSA cần có các module sau:

Trang 40

Low-2 MulMod Thực hiện phép tính nhân có modulo Tham số đầu

vào là a b n Kết quả trả về là , ,  a b* modn

3 GenKey Phát sinh khóa cho thuật toán RSA, tham số đầu

vào là hai số nguyên tố ,p q Kết quả trả về là

dụng để phát sinh khóa GenKey

5 GenPrime Phát sinh số nguyên tố lớn p q sử dụng làm khóa , 

trong RSA Tham số đầu vào là số lượng bits của số cần phát sinh

6 Gordon Thuật toán phát sinh số nguyên tố Sử dụng để sinh

số nguyên tố GenPrime

2.6.1.2 Chi tiết cài đặt RSA

Kiến trúc mô hình cài đặt

Hình 2.2: Chi tiết cài đặt RSA

Ngày đăng: 05/02/2015, 19:04

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] (2011, May) Altera Corporation, “Avalon Interface Specifications”. [Online]. Available: http://www.altera.com/literature/manual/mnl_avalon_spec.pdf Sách, tạp chí
Tiêu đề: Avalon Interface Specifications
[2] (2012, September) Altera Corporation, “Stratix IV Device Handbook Volume 1”. [Online]. Available: http://www.altera.com/literature/hb/stratix-iv/stratix4_handbook.pdf Sách, tạp chí
Tiêu đề: Stratix IV Device Handbook Volume 1
[3] (2012, December) Altera Corporation, “Stratix IV GX FPGA Development Kits”. [Online]. Available: http://www.altera.com/products/devkits/altera/kit-siv-gx.html Sách, tạp chí
Tiêu đề: Stratix IV GX FPGA Development Kits
Tác giả: Altera Corporation
Năm: 2012
[4] (2011, May) Altera Corporation, “IP Compiler for PCI Express User Guide”. [Online]. Available: http://www.altera.com/literature/ug/ug_pci_express.pdf Sách, tạp chí
Tiêu đề: IP Compiler for PCI Express User Guide
Tác giả: Altera Corporation
Nhà XB: Altera Corporation
Năm: 2014
[5] Ravi Budruk, Don Anderson, and Tom Shanley, “PCI Express System Architecture,” 9 th printing, MindShare Inc., Addison Wesley Publisher, April 2008 Sách, tạp chí
Tiêu đề: PCI Express System Architecture
[6] (2012, December) Jungo Ltd., “Windriver TM PCI/ISA/CardBus User’s Manual Version 11.1.0”. [Online]. Available:http://www.jungo.com/st/support/documentation/windriver/11.1.0/wdpci_manual.mhtml/index.html Sách, tạp chí
Tiêu đề: Windriver TM PCI/ISA/CardBus User’s Manual Version 11.1.0
Tác giả: Jungo Ltd
Nhà XB: Jungo Connectivity Ltd.
Năm: 2012
[7] (2012, December) Jungo Ltd., “Windriver TM PCI/PCMCIA/ISA Low-Level API Reference Version 11.1.0”. [Online]. Available: http://www.jungo.com/st/support/documentation/windriver/11.1.0/wdpci_low_level_api_ref.mhtml/index.html Sách, tạp chí
Tiêu đề: Windriver TM PCI/PCMCIA/ISA Low-Level API Reference Version 11.1.0
Tác giả: Jungo Ltd
Nhà XB: Jungo Connectivity Ltd.
Năm: 2012
[8] (2010, March) Analog Devices, “AD9889B: High Performance HDMI/DVI Transmitter Data Sheet (Rev. A)”. [Online]. Available: http://www.analog.com/static/imported-files/data_sheets/AD9889B.pdf Sách, tạp chí
Tiêu đề: AD9889B: High Performance HDMI/DVI Transmitter Data Sheet (Rev. A)
[9] (2010, October) Analog Devices, “AD9889B: Programming Guide (Rev. B)”. [Online]. Availabe: http://ez.analog.com/servlet/JiveServlet/download/1741-8-10790/AD9889B%20Programming%20Guide%20RevB.pdf Sách, tạp chí
Tiêu đề: AD9889B: Programming Guide (Rev. B)
[10] (2003, July) Richard Herveille, “I2C-Master Core Specification”. [Online]. Available: http://www.latticesemi.com/documents/doc21615x46.pdf Sách, tạp chí
Tiêu đề: I2C-Master Core Specification
[11] (2012, June) Altera Corporation, “Design Debugging Using the SignalTap II Logic Analyzer”. [Online]. Available: http://www.altera.com/literature/hb/qts/qts_qii53009.pdf Sách, tạp chí
Tiêu đề: Design Debugging Using the SignalTap II Logic Analyzer
[12] (2012, November) Altera Corporation, “Mentor Graphics ModelSim and QuestaSim Support”. [Online]. Available: http://www.altera.com/literature/hb/qts/qts_qii53001.pdf Sách, tạp chí
Tiêu đề: Mentor Graphics ModelSim and QuestaSim Support
[14] Ciaran McIvor, Miire McLoone, and John V McCanny, “Fast Montgomery Modular Multiplication and RSA Cryptographic Processor Architectures,” IEEE Conf.on Systems and Computers Signals, Vol. 1, pp. 379-384, 2003 Sách, tạp chí
Tiêu đề: Fast Montgomery Modular Multiplication and RSA Cryptographic Processor Architectures
[15] A. P. Fournaris, and O. Koufopavlou, “Montgomery modular multiplier architectures and hardware implementations for an RSA cryptosystem,” IEEE 46 th Midwest Symposium on Circuits and Systems, Vol. 2, pp. 778-781, 2003 Sách, tạp chí
Tiêu đề: Montgomery modular multiplier architectures and hardware implementations for an RSA cryptosystem
[16] Kenji Mukaida, Masahiko Takenaka, Naoya Tori, and Shoichi Masui, “Design of High-speed and Area-efficient Montgomery Modular Multiplier for RSA Algorithm,” IEEE Symposium on VLSI Circuits, pp. 320-323, 2004 Sách, tạp chí
Tiêu đề: Design of High-speed and Area-efficient Montgomery Modular Multiplier for RSA Algorithm
Tác giả: Kenji Mukaida, Masahiko Takenaka, Naoya Tori, Shoichi Masui
Nhà XB: IEEE Symposium on VLSI Circuits
Năm: 2004
[17] Richa Garg, and Renu Vig, “An Efficient Montgomery Multiplication Algorithm and RSA Cryptographic Processor,” IEEE Conf. on Computational Intelligence and Multimedia Applications, Vol. 2, pp. 188-195, 2007 Sách, tạp chí
Tiêu đề: An Efficient Montgomery Multiplication Algorithm and RSA Cryptographic Processor
[18] Vibhor Garg, and V. Arunachalam, “Architecture Analysis of RSA Cryptosystem on FPGA,” International Journal of Computer Applications, Vol. 26, No. 8, pp. 0975-8887, July 2011 Sách, tạp chí
Tiêu đề: Architecture Analysis of RSA Cryptosystem on FPGA
[19] Atsushi Miyamoto, Naofumi Homma, Takafumi Aoki, and Akashi Satoh, “Systematic Design of RSA Processors Based on High-Radix Montgemery Multipliers,” IEEE Trans. on VLSI Systems, Vol. 19, pp. 1136-1146, July 2011 Sách, tạp chí
Tiêu đề: Systematic Design of RSA Processors Based on High-Radix Montgemery Multipliers

HÌNH ẢNH LIÊN QUAN

Hình 3.7: chi tiết module cài đặt ZUC - thiết kế và hiện thực một số lõi ip chuyên dụng cho các hệ mã công khai và mã dòng thực hiện trên fpga
Hình 3.7 chi tiết module cài đặt ZUC (Trang 69)
Hình 4.9. Máy trạng thái của khối PowModMon_Control trong RSA. - thiết kế và hiện thực một số lõi ip chuyên dụng cho các hệ mã công khai và mã dòng thực hiện trên fpga
Hình 4.9. Máy trạng thái của khối PowModMon_Control trong RSA (Trang 85)
Hình 5.3. Kiến trúc bên trong khối Mod2048. - thiết kế và hiện thực một số lõi ip chuyên dụng cho các hệ mã công khai và mã dòng thực hiện trên fpga
Hình 5.3. Kiến trúc bên trong khối Mod2048 (Trang 100)
Hình 5.14. Cấu trúc bên trong khối Mul1024. - thiết kế và hiện thực một số lõi ip chuyên dụng cho các hệ mã công khai và mã dòng thực hiện trên fpga
Hình 5.14. Cấu trúc bên trong khối Mul1024 (Trang 121)
Hình 5.20. Cấu trúc bên trong lõi IP RSA. - thiết kế và hiện thực một số lõi ip chuyên dụng cho các hệ mã công khai và mã dòng thực hiện trên fpga
Hình 5.20. Cấu trúc bên trong lõi IP RSA (Trang 137)
Hình 5.37. Sơ đồ máy trạng thái FSM của lõi IP ZUC. - thiết kế và hiện thực một số lõi ip chuyên dụng cho các hệ mã công khai và mã dòng thực hiện trên fpga
Hình 5.37. Sơ đồ máy trạng thái FSM của lõi IP ZUC (Trang 156)
Bảng 5.59. Thời gian đáp ứng của lõi IP ZUC - thiết kế và hiện thực một số lõi ip chuyên dụng cho các hệ mã công khai và mã dòng thực hiện trên fpga
Bảng 5.59. Thời gian đáp ứng của lõi IP ZUC (Trang 173)
Hình 5.50. File CipherKey.txt chứa eKey 3096-bit. - thiết kế và hiện thực một số lõi ip chuyên dụng cho các hệ mã công khai và mã dòng thực hiện trên fpga
Hình 5.50. File CipherKey.txt chứa eKey 3096-bit (Trang 176)
Hình 5.52. Chạy chương trình phần mềm PCIe. - thiết kế và hiện thực một số lõi ip chuyên dụng cho các hệ mã công khai và mã dòng thực hiện trên fpga
Hình 5.52. Chạy chương trình phần mềm PCIe (Trang 177)
Hình 5.65. Lõi IP ZUC hoạt động và tạo ra chuỗi keystream. - thiết kế và hiện thực một số lõi ip chuyên dụng cho các hệ mã công khai và mã dòng thực hiện trên fpga
Hình 5.65. Lõi IP ZUC hoạt động và tạo ra chuỗi keystream (Trang 183)
Hình 5.67. Thay đổi giá trị khóa Key ZUC. - thiết kế và hiện thực một số lõi ip chuyên dụng cho các hệ mã công khai và mã dòng thực hiện trên fpga
Hình 5.67. Thay đổi giá trị khóa Key ZUC (Trang 184)
Hình 5.69. Hình ảnh hiển thị khi ta nhận được Key sai. - thiết kế và hiện thực một số lõi ip chuyên dụng cho các hệ mã công khai và mã dòng thực hiện trên fpga
Hình 5.69. Hình ảnh hiển thị khi ta nhận được Key sai (Trang 185)
Hình 5.70. Đo thời gian lõi IP giải mã xong một khung hình video. - thiết kế và hiện thực một số lõi ip chuyên dụng cho các hệ mã công khai và mã dòng thực hiện trên fpga
Hình 5.70. Đo thời gian lõi IP giải mã xong một khung hình video (Trang 185)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm