ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
KEOTHAVIXAY SOMNEUK
NGHIÊN CỨU VỀ MÃ HÓA TỐC ĐỘ CAO ỨNG DỤNG CHO CÁC MẠNG CẢM BIẾN KHÔNG DÂY
LUẬN VĂN THẠC SỸ KHOA HỌC MÁY TÍNH
THÁI NGUYÊN - 2020
ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
KEOTHAVIXAY SOMNEUK
NGHIÊN CỨU VỀ MÃ HÓA TỐC ĐỘ CAO ỨNG DỤNG CHO CÁC MẠNG CẢM BIẾN KHÔNG DÂY
LUẬN VĂN THẠC SỸ KHOA HỌC MÁY TÍNH
Chuyên ngành: KHOA HỌC MÁY TÍNH
Mã số: 84 80 101
Người hướng dẫn khoa học: TS. Đỗ Thị Bắc
THÁI NGUYÊN - 2020
I
LỜI CÁM ƠN
Trước tiên tôi bày tỏ lời cảm ơn chân thành đến các thầy, cô giáo đã giảng
dạy, hướng dẫn và giúp đỡ tôi trong thời gian học tập và nghiên cứu hoàn thành
luận văn này.
Xin được bày tỏ lòng biết ơn sâu sắc tới cô giáo TS. Đỗ Thị Bắc đã tận
tình hướng dẫn, giúp đỡ và đóng góp cho tôi nhiều ý kiến quý báu để hoàn thành
luận văn này.
Xin trân thành cảm ơn các thầy, cô giáo trường đại học công nghệ thông
tin và truyền thông, đặc biệt là các thầy cô trong khoa công nghệ thông tin đã
giảng dạy, giúp đỡ và tạo điều kiện thuận lợi cho tôi trong thời gian học tập tại
trường.
Cuối cùng, xin trân thành cảm ơn gia đình và bạn bè đã động viên, quan
tâm, giúp đỡ tôi hoàn thành khóa học và luận văn.
Thái Nguyên, Năm 2020
Học viên
KEOTHAVIXAY Somneuk
II LỜI CAM ĐOAN
Tôi cam đoan luận văn này là do bản thân tự nghiên cứu và thực
hiện theo sự hướng dẫn khoa học của TS. Đỗ Thị Bắc
Tôi hoàn toàn chịu trách nhiệm về tính pháp lý quá trình nghiên
cứu khoa học của luận văn này.
Thái Nguyên, Năm 2020
Học viên
KEOTHAVIXAY Somneuk
III
MỤC LỤC
LỜI CÁM ƠN ................................................................................................................ I
LỜI CAM ĐOAN ......................................................................................................... II
MỤC LỤC ................................................................................................................... III
DANH MỤC CÁC BẢNG BIỂU ............................................................................... VI
DANH MỤC CÁC HÌNH VẼ ................................................................................... VII
MỞ ĐẦU ................................................................................................................. VIII
CHƯƠNG 1: TỔNG QUAN VỀ MẬT MÃ VÀ MÃ KHỐI. ..................................... 1
1.1 Giới thiệu ............................................................................................................... 1
1.2 Bảo vệ thông tin trong quá trình truyền trên mạng ............................................... 1
1.2.1. Các loại hình tấn công .................................................................................. 1
1.2.2 Yêu cầu của một hệ truyền thông tin an toàn và bảo mật .............................. 4
1.3 Vai trò của mật mã trong việc bảo mật thông tin trên mạng ................................. 5
1.4 Mã khối ................................................................................................................. 6
1.4.1 Khái niệm ....................................................................................................... 6
1.4.2 Phương pháp thiết kế mật mã khối ................................................................ 6
1.4.3 Tấn công mật mã khối ................................................................................. 11
1.4.4 Các phương thức hoạt động của mật mã khối. ............................................ 12
1.5 Tiểu luận chương 1 ............................................................................................. 17
CHƯƠNG 2 NGUYÊN LÝ THIẾT KẾ MÃ KHỐI TRÊN CSPN ........................ 18
2.1. Nguyên lý thiết kế CSPN ................................................................................... 18
2.1.1. Lớp phần tử nguyên thủy mật mã điều khiển được .................................... 18
2.1.2. Cấu trúc CSPN ............................................................................................ 22
2.2. Nguyên lý thiết kế thuật toán mật mã trên FPGA .............................................. 24
2.2.1 Chiến lược thiết kế ....................................................................................... 24
2.2.2. Cấu trúc thiết kế .......................................................................................... 24
2.2.3. Các thông số và mô hình đánh giá .............................................................. 25
2.3. Nguyên lý đánh giá độ an toàn của các thuật toán ............................................. 27
2.3.1. Đánh giá đặc trưng thống kê theo tiêu chuẩn NESSIE ............................... 27
2.3.2. Đánh giá độ an toàn theo đặc trưng vi sai .................................................. 30
2.4 Nguyên lý đánh giá hiệu quả tích hợp trên FPGA .............................................. 31
IV
2.4.1 Lưu lượng thông tin ..................................................................................... 31
2.4.2. Diện tích (Area) .......................................................................................... 31
2.4.3 Lưu lượng/diện tích ..................................................................................... 32
2.5. Tiểu luận chương 2 ............................................................................................ 32
CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH THỬ NGHIỆM VÀ ĐÁNH GIÁ
KẾT QUẢ ..................................................................................................................... 33
3.1 Mạng cảm biến không dây .................................................................................. 33
3.1.1 Định nghĩa của mạng cảm biến không dây .................................................. 33
3.1.2 Cấu trúc của mạng cảm biến không dây ...................................................... 33
3.1.3 Đặc điểm của mạng cảm biến không dây .................................................... 34
3.2 Mô tả thuật toán mô phỏng ................................................................................. 35
3.2.1 Cấu trúc của các phần từ điều khiển được sử dụng ..................................... 36
3.2.2 Thuật toán mã khối BM-64 .......................................................................... 39
3.3 Đánh giá độ an toàn của BM-64 ......................................................................... 42
3.3.1 Đánh giá về đặc trưng thống kê của BM-64 theo chuẩn NESSIE ............... 42
3.3.2 Đánh giá về thám mã vi sai .......................................................................... 43
3.4. Cài đặt mô phỏng và đánh giá hiệu quả tích hợp của thuật toán ....................... 46
3.4.1 Công cụ cài đặt mô phỏng ........................................................................... 46
3.4.2 Kết quả đánh giá và so sánh hiệu suất trên FPGA ....................................... 48
3.4.2.1 Minh họa một số giao diện mô phỏng trền FPGA: ................................. 48
3.4.2.2 Kết quả đánh giá ...................................................................................... 53
KẾT LUẬN .................................................................................................................. 54
TÀI LIỆU THAM KHẢO ........................................................................................... 55
V DANH MỤC CHỮ VIẾT TẮT
Chữ viết tắt SPN SAC DDO ECB CBC OFB CFB CTR CSPN FPGA NL IL LU PP CLB LUT IOB
NESSIE
LC DC
SDDO
Chữ đẩy đủ Substitution Permutation Network Strict Avalanche Criteria Data Dependent Operation Electronic Code Book Cipher Block Chaining Output Feed Back Cipher Feed Back Counter mode Controlled Substitution Permutation Network Field-programmable gate array Non Linearity Iterative Looping Loop Unrolling Pipeline Configurable Logic Block Look-Up Table Input/Output Block New European Schemes for Signatures, Integrity and Encryption Linear Cryptanalysis Differential Cryptanalysis Switchable Data Dependent Operation (data-driven operation) Wireless sensor networks Integrated Synthesis Environment Design Hardware Description Languages Integrated Device Electronics Graphical user interface Integrated Synthesis Environment Programmable Logic Device Computer Aided Design Maximum Clock Frequency Look-Up Table Complex Programmable Logic Device Advanced Encryption Standard Secure Hash Algorithm VHSIC Hardware Description Language Primitive Element WSNs ISE Design HDL IDE GUI ISE PLD CAD MCF LUT CPLD AES SHA VHDL PE
VI
DANH MỤC CÁC BẢNG BIỂU
Bảng 3.1 XÁC XUẤT PR(IJK)=PR(YI /XJ , VK) CỦA ĐẶC TÍNH VI PHÂN CỦA F2/2. .... 37
4x4 ..................................... 39
Bảng 3.2 Miêu tả các phép thế trong hộp S4x4 và S-1
Bảng 3.3 Lịch biểu sử dụng khóa trong thuật toán BM-64 với khóa mật 128 bits. ... 41
Bảng 3.4 Lịch biểu sử dụng khóa trong thuật toán BM-64 với khóa mật 192 bits. ... 42
Bảng 3.5 Lịch biểu sử dụng khóa trong thuật toán BM-64 với khóa mật 256
bits. ...................................................................................................................... 42
Bảng 3.6 Ảnh hưởng của bit dữ liệu và bit khóa trong thuật toán BM-64. ........ 43
Bảng 3.7 So sánh đặc trưng vi sai của một số mã hóa khối ................................ 46
Bảng 3.8 So sánh kết quả thực hiện các thuật toán khác nhau trên FPGA với BM-64 .. 53
VII
DANH MỤC CÁC HÌNH VẼ
Hình 1. 1 Xem trộm thông tin ............................................................................ 2
Hình 1. 2 Sửa thông điệp .................................................................................... 2
Hình 1. 3 Mạo danh ............................................................................................. 3
Hình 1. 4 Phát lại thông điệp .............................................................................. 4
Hình 1. 5 Mô hình bảo mật thông tin trên mạng ................................................... 5
Hình 1. 6 Cấu trúc mạng Feistel ............................................................................ 7
Hình 1. 7 Cấu trúc SPN ......................................................................................... 8
Hình 1. 8 Các chế độ hoạt động của mã khối ..................................................... 12
Hình 1. 9 Chế độ mã hóa ECB ........................................................................... 13
Hình 1. 10 Chế độ mã hóa CBC .......................................................................... 14
Hình 1. 11 Chế độ mã hóa s-bít CFB .................................................................. 15
Hình 1. 12 Chế độ mã hóa s-bít OFB .................................................................. 16
Hình 1. 13 Chế độ mã hóa CTR ......................................................................... 17
Hình 2.1 Cấu trúc biểu diễn của F2/1 ......................................................................... 19
Hình 2. 2 Cấu trúc biểu diễn của F2/2 ........................................................................ 21
n/m (b) xây dựng từ F2/1 .............. 23
Hình 2. 3 Cấu trúc tổng quát của Fn/m (a) và F-1
Hình 2. 4 Cấu trúc thiết kế mật mã khối trên FPGA, .......................................... 25
4/8 (b). ....................................................... 38
Hình 3. 1 Cấu trúc của F4/8 (a) và F-1
16/64(b) ................................................... 38
Hình 3. 2 Cấu trúc của F16/64 (a) và F-1
Hình 3. 3 Sơ đồ cấu trúc của thuật toán BM-64. a). Sơ đồ tổng quát. ................ 41
Hình 3. 4 Thông tin về vi sai sau vòng 2 của thuật toán BM-64. ....................... 45
Hình 3. 5 Sơ đồ thiết kế tổng thể của BM-64 trên FPGA (cấu trúc IL) ............. 50
Hình 3. 6 Sơ đồ thiết kế BM-64 trên FPGA (cấu trúc PP) ................................. 52
VIII
MỞ ĐẦU
Mật mã là một ngành khoa học công nghệ mà nhiều lĩnh vực ứng dụng
phải dùng nhằm đảm bảo an ninh, tính bí mật, tính xác thực, chống từ chối và
toàn vẹn thông tin. Nhất là trong thời đại công nghệ số, thời đại mà mọi hoạt
động, mọi giao dịch của hầu hết các ngành nghề, lĩnh vực đều thông qua môi
trường mạng.
Mã khối là một giải pháp hiện đại trong lĩnh vực mật mã. Nhiều giải pháp
đã được đưa ra thông qua các cuộc thi trên toàn thế giới. Như chuẩn mã hóa dữ
liệu AES, SHA1, SHA2. Và ngay trong năm nay sẽ công bố kết quả của cuộc thi
SHA3.
Việc ứng dụng mạng hoán vị thay thế điều khiển được (CSPN) trong xây
dựng và phát triển các thuật toán mã hóa khối hiện nay là hướng đi của hầu hết
các nhà nghiên cứu với đề tài “ Nghiên cứu về mã hóa tốc độ cao ứng dụng cho
các mạng cảm biến không dây ”
Đây là chủ đề rộng lớn và phức tạp có sự phát triển rất mạnh được giới
khoa học quan tâm, nên cũng là khó khăn cho nghiên cứu sinh. Mặc dù đã chuẩn
bị kỹ nhưng không thể tránh được những khiếm khuyết. Em rất mong nhận được
các ý kiến quý báu của các nhà khoa học và các thầy cô giáo để báo cáo của em
hoàn thiện hơn.
1
CHƯƠNG 1: TỔNG QUAN VỀ MẬT MÃ VÀ MÃ KHỐI.
1.1 Giới thiệu
Trước đây khi công nghệ máy tính chưa phát triển, khi nói đến vấn đề
an toàn bảo mật thông tin (Information Security), chúng ta thường hay nghĩ
đến các biện pháp nhằm đảm bảo cho thông tin được trao đổi hay cất giữ một
cách an toàn và bí mật. Chẳng hạn là các biện pháp như:
Đóng dấu và ký niêm phong một bức thư để biết rằng lá thư có được
chuyển nguyên vẹn đến người nhận hay không.
Dùng mật mã mã hóa thông điệp để chỉ có người gửi và người nhận
hiểu được thông điệp. Phương pháp này thường được sử dụng trong chính trị
và quân sự.
Lưu giữ tài liệu mật trong các két sắt có khóa, tại các nơi được bảo
vệ nghiêm ngặt, chỉ có những người được cấp quyền mới có thể xem tài liệu.
Với sự phát triển mạnh mẽ của công nghệ thông tin, đặc biệt là sự phát
triển của mạng Internet, ngày càng có nhiều thông tin được lưu giữ trên máy
vi tính và gửi đi trên mạng Internet. Và do đó xuất hiện nhu cầu về an toàn và
bảo mật thông tin trên máy tính. Có thể phân loại mô hình an toàn bảo mật
thông tin trên máy tính theo hai hướng chính như sau:
Bảo vệ thông tin trong quá trình truyền thông tin trên mạng (Network
Security). Các giải pháp mật mã được sử dụng.
Bảo vệ hệ thống máy tính, và mạng máy tính, khỏi sự xâm nhập phá
hoại từ bên ngoài (System Security)
1.2 Bảo vệ thông tin trong quá trình truyền trên mạng
1.2.1. Các loại hình tấn công
Để xem xét những vấn đề bảo mật liên quan đến truyền thông
trên mạng, chúng ta hãy lấy một bối cảnh sau: có ba nhân vật tên là
Alice, Bob và Trudy, trong đó Alice và Bob thực hiện trao đổi thông
tin với nhau, còn Trudy là kẻ xấu, đặt thiết bị can thiệp vào kênh
2 truyền tin giữa Alice và Bob. Sau đây là các loại hành động tấn công
của Trudy mà ảnh hưởng đến quá trình truyền tin giữa Alice và Bob:
a. Xem trộm thông tin (Release of Message Content)
Trong trường hợp này Trudy chặn các thông điệp Alice gửi cho
Bob, và xem được nội dung của thông điệp.
Hình 1. 1 Xem trộm thông tin
b. Thay đổi thông điệp (Modification of Message)
Sửa thông diệp của Alice gửi cho Bob
Hình 1. 2 Sửa thông điệp
Trudy chặn các thông điệp Alice gửi cho Bob và ngăn không cho
các thông điệp này đến đích. Sau đó Trudy thay đổi nội dung của
thông điệp và gửi tiếp cho Bob. Bob nghĩ rằng nhận được thông điệp
nguyên bản ban đầu của Alice mà không biết rằng chúng đã bị sửa đổi.
3
c. Mạo danh (Masquerade)
Trong trường hợp này Trudy giả là Alice gửi thông điệp cho
Bob. Bob không biết điều này và nghĩ rằng thông điệp là của Alice.
Hình 1. 3 Mạo danh
d. Phát lại thông điệp (Replay)
Trudy sao chép lại thông điệp Alice gửi cho Bob. Sau đó một
thời gian Trudy gửi bản sao chép này cho Bob. Bob tin rằng thông
điệp thứ hai vẫn là từ Alice, nội dung hai thông điệp là giống nhau.
Thoạt đầu có thể nghĩ rằng việc phát lại này là vô hại, tuy nhiên trong
nhiều trường hợp cũng gây ra tác hại không kém so với việc giả mạo
thông điệp. Xét tình huống sau: giả sử Bob là ngân hàng còn Alice là
một khách hàng. Alice gửi thông điệp đề nghị Bob chuyển cho Trudy
1000$. Alice có áp dụng các biện pháp như chữ ký điện tử với mục
đích không cho Trudy mạo danh cũng như sửa thông điệp. Tuy nhiên
nếu Trudy sao chép và phát lại thông điệp thì các biện pháp bảo vệ này
không có ý nghĩa. Bob tin rằng Alice gửi tiếp một thông điệp mới để
chuyển thêm cho Trudy 1000$ nữa.
4
Hình 1. 4 Phát lại thông điệp
1.2.2 Yêu cầu của một hệ truyền thông tin an toàn và bảo mật
Phần trên đã trình bày các hình thức tấn công, một hệ truyền tin được
gọi là an toàn và bảo mật thì phải có khả năng chống lại được các hình thức
tấn công trên. Như vậy hệ truyền tin phải có các đặt tính sau:
a) Tính bảo mật (Confidentiality): Ngăn chặn được vấn đề xem trộm
thông điệp.
b) Tính chứng thực (Authentication): Nhằm đảm bảo cho Bob rằng
thông điệp mà Bob nhận được thực sự được gửi đi từ Alice, và không bị thay
đổi trong quá trình truyền tin. Như vậy tính chứng thực ngăn chặn các hình
thức tấn công sửa thông điệp, mạo danh, và phát lại thông điệp.
c) Tính không từ chối (Nonrepudiation): xét tình huống sau:
Giả sử Bob là nhân viên môi giới chứng khoán của Alice. Alice gởi
thông điệp yêu cầu Bob mua cổ phiếu của công ty Z. Ngày hôm sau, giá cổ
phiếu công ty này giảm hơn 50%. Thấy bị thiệt hại, Alice nói rằng Alice
không gửi thông điệp nào cả và quy trách nhiệm cho Bob. Bob phải có cơ chế
để xác định rằng chính Alice là người gởi mà Alice không thể từ chối trách
nhiệm được.
5
Khái niệm chữ ký trên giấy mà con người đang sử dụng ngày nay là
một cơ chế để bảo đảm tính chứng thực và tính không từ chối. Và trong lĩnh
vực máy tính, người ta cũng thiết lập một cơ chế như vậy, cơ chế này được
gọi là chữ ký điện tử.
Hình 1. 5 Mô hình bảo mật thông tin trên mạng
1.3 Vai trò của mật mã trong việc bảo mật thông tin trên mạng
Mật mã hay mã hóa dữ liệu (cryptography), là một công cụ cơ bản thiết
yếu của bảo mật thông tin. Mật mã đáp ứng được các nhu cầu về tính bảo mật
(confidentiality), tính chứng thực (authentication) và tính không từ chối (non-
repudiation) của một hệ truyền tin.
Mã hóa dữ liệu bao gồm mã hóa đối xứng và mã hóa bất đối xứng,
chúng đóng vai trò quan trọng trong mật mã hiện đại. Mã khối là một hình
thức của mã hóa đối xứng.
Ngoài ra, hàm băm (hàm Hash) cũng là một công cụ bảo mật quan
trọng mà có nhiều ứng dụng lý thú, trong đó có chữ ký điện tử.
Trong khuôn khổ của đề tài nghiên cứu, sẽ đi sâu để nghiên cứu về mã
khối và các mạng hoán vị thay thế điều khiển được để xây dựng các mã khối
áp dụng trong các mạng truyền thông tốc độ cao.
6
1.4 Mã khối
1.4.1 Khái niệm
Mật mã khối là phương thức cho phép mã hóa trên một nhóm các bit
(khối) với độ dài nào đó, lần lượt mỗi khối được mã hoặc giải mã. Kích thước
mỗi khối thường là 64 bit hoặc lớn hơn. Các tham số quan trọng của mã hóa
khối là kích thước (độ dài) của mỗi khối, kích thước khóa, cấu trúc của vòng
mã hóa cơ sở, ... Các mã khối đều được xây dựng dựa trên ý tưởng của
Shannon đưa ra năm 1949.
1.4.2 Phương pháp thiết kế mật mã khối
a. Cấu trúc thiết kế
Xuất phát từ ý tưởng của Shannon, một số cấu trúc mã hóa khối cơ sở
đã được đề xuất. Trong số đó, cấu trúc mạng Feistel (Feistel network) và
mạng hoán vị thay thế (Substitution Permutation Network - SPN) là 2 cấu
trúc mã hóa khối được sử dụng phổ biến trong việc phát triển các thuật toán
mã hóa khối hiện nay.
- Cấu trúc Feistel
Horst Feistel đề xuất ra cấu trúc Feistel dựa trên mã tích nghịch đảo
được, tức là kết hợp mã thay thế với mã hoán vị và qui trình mã/giải mã là
giống nhau, quá trình giải mã chỉ cần thay đổi vai trò khối bản mã với khối
bản rõ và thứ tự các khoá con được dùng. Từ khóa chính sẽ sinh ra cho mỗi
vòng mã hóa một khóa con tương ứng. Quy trình thực hiện được mô tả như
trong hình 1.6.
7
Hình 1. 6 Cấu trúc mạng Feistel
- Cấu trúc SPN
Cấu trúc SPN là một trong các cấu trúc được sử dụng chung nhất trong
các mã khối. Cấu trúc SPN được dựa trên các nguyên tắc của Shannon về tính
hỗn loạn (confusion) và khuếch tán (diffusion). Các nguyên tắc này được
được thực hiện thông qua việc sử dụng các phép thay thế và các phép hoán vị.
Quy trình thực hiện được mô tả như trong hình 1.7
8
Hình 1. 7 Cấu trúc SPN
b. Tiêu chuẩn thiết kế
b1.Tiêu chuẩn thiết kế chung
Các tiêu chuẩn chung sau được chấp nhận bởi phần lớn các nhà mật mã
học. Nó bao gồm: độ an toàn, tính hiệu quả, tính linh hoạt của khóa và tính đa
dụng. Ngoài ra còn một số các tiêu chuẩn khác như: tính đơn giản, tính đối
xứng (gồm đối xứng qua các vòng, đối xứng trong biến đổi vòng, đối xứng
trong hộp S, đối xứng giữa phép mã và giải mã), tính song song, tính mềm
dẻo đối với thứ tự của các bước, độ dài khối thay đổi, lựa chọn một số phép
toán số học.
Tiêu chuẩn về độ an toàn và tính hiệu quả được áp dụng bởi tất cả các
nhà thiết kế mật mã. Có một số trường hợp tính hiệu quả phải hy sinh để nhận
9 được một ngưỡng an toàn cao. Thách thức được đặt ra cho việc thiết kế mật
mã là đề xuất một ngưỡng an toàn hợp lý trong khi tối ưu tính hiệu quả.
Tiêu chuẩn về độ linh hoạt của khóa và tính đa dụng là ít vạn năng hơn.
Trong một số trường hợp các tiêu chuẩn này là không thích đáng bởi vì mã
pháp được ngụ ý cho một ứng dụng cụ thể và sẽ được cài đặt trên một nền
tảng cụ thể.
b2. Tiêu chuẩn khuếch tán.
Hai nguyên tắc quan trọng đối với việc thiết kế mật mã khối đó là: Tiêu
chuẩn thác lũ chặt (SAC: Strict Avalanche Criteria) và chiến lược vết rộng và
số nhánh (The wide-trail strategy and the branch number).
1) Tiêu chí thác lũ chặt
Về mặt lịch sử, SAC [3] được sử dụng trong các thiết kế mã khối đơn
giản để mô tả sự khuếch tán của chúng. Theo đó, một hộp S được xác định
như hàm logic hoặc như một tập của m hàm logic nhị
phân , . Một hàm logic nhị phân thỏa mãn
SAC nếu một bit của véc tơ đầu vào thay đổi thì có một nửa số bit của đầu ra
thay đổi. Cụ thể hơn, f thỏa mãn SAC nếu là hàm logic cân
bằng .
2) Chiến lược vết rộng và số nhánh
Chiến lược vết rộng [25] là một phương pháp tiếp cận để thiết kế hàm
vòng của thuật toán mật mã khối. Hàm này mang lại hiệu suất tổ hợp và
chống lại các kỹ thuật thám mã. Trong chiến lược vết rộng, một lớp khuếch
tán được xây dựng để cung cấp sự khuếch tán và giải pháp chính để đánh giá
lớp khuếch tán là số nhánh. Tuy nhiên trong vấn đề này, cần hạn chế sự mở
rộng số nhánh theo một phép biến đổi tuyến tính.
b3. Tiêu chuẩn hỗn loạn
Các hộp S thường là phần phi tuyến trong mã hóa khối và là phần quan
trọng đầu tiên cho sự hỗn loạn. Các hộp S được xây dựng từ các hàm logic
10 phức tạp để làm mờ đi mối quan hệ giữa bản rõ, bản mã và khóa. Ta tập trung
vào 3 tiêu chí cần thiết: tính phi tuyến, đặc trưng vi sai và bậc phi tuyến.
Tính phi tuyến
Tính phi tuyến của hàm logic liên quan đến khoảng cách giữa hàm và
tập tất cả các phép xấp xỉ tuyến tính của hàm này. Các phép xấp xỉ của các
hộp S có thể giúp cho kẻ tấn công có khả năng đe dọa độ an toàn của thuật
toán mã hóa khối.
Định nghĩa 1.1 Gọi là hộp S. Khi đó, có thể có
các phép xấp xỉ của hộp S này. Mỗi phép xấp xỉ có 1 xác suất nhất
định p. Ta ký hiệu độ chênh lệch (hay sai số) của 1 phép xấp xỉ tuyến tính là
và nó được tính bằng công thức: . Gọi là giá trị tuyệt đối của
độ chênh lệch và là giá trị tuyệt đối của độ lệch xấp xỉ tuyến tính lớn
nhất. Như thế, thông số phi tuyến của hộp S (ký hiệu là ) sẽ tương đương là
.
Đặc trưng vi sai
Do có thể ước đoán (xấp xỉ) hộp S bằng các hàm logic tuyến tính nên ta
cũng có thể nghiên cứu sự lan truyền vi sai trong các hộp S.
Định nghĩa 1.2 Cho hộp S dưới dạng hàm . Với
hàm này ta có thể có giá trị vi sai đầu vào khác nhau và
tương tự cũng có thể có giá trị vi sai đầu ra . Ta biểu diễn
vi sai của hộp S như sau: , nó được hiểu là với vi sai đầu vào sẽ
tạo ra vi sai đầu ra với xác suất p. Khi đó, thông số vi sai của một hộp S
tương đương với xác suất của vi sai lớn nhất của nó.
Bậc phi tuyến
Lars Knudsen là người đưa ra khái niệm bậc phi tuyến vào năm 1994
và khái niệm này dựa vào mức độ phức tạp đại số của hàm logic. Ta có thể
coi đó là một khái niệm tổng quát của các khái niệm vi sai.
11
Định nghĩa 1.3. Cho là một hàm logic. Đạo hàm
của f tại một điểm được định nghĩa như sau:
Đạo hàm bậc i của f tại điểm: được định nghĩa:
Định nghĩa 1.4 Bậc phi tuyến của , được kí hiệu
là giá trị i lớn nhất mà không phải là một hằng.
Ở đây, yêu cầu véc tơ là độc lập tuyến tính vào đạo hàm
bậc i không có giá trị 0.
1.4.3 Tấn công mật mã khối
Tấn công được xem là việc phân tích bản tin mã hóa để nhận được bản
tin rõ trong điều kiện không biết trước khóa mã. Thực tế, công việc tấn công
gặp nhiều khó khăn hơn khi không biết rõ hệ mật mã nào được sử dụng. Tuy
nhiên, để đơn giản hóa, giả sử người tấn công đã biết rõ hệ mật mã được sử
dụng khi tiến hành phân tích mã. Giả định này đặt ra với mục đích là thiết kế
được một hệ mật mã an toàn bảo mật.
Các mức độ tấn công có thể được phân loại như sau: tấn công chỉ biết
bản mã (ciphertext-only) tức người tấn công chỉ có bản tin mã hóa; tấn công
biết bản rõ (known plaintext) tức người thám mã có bản tin rõ và bản mã; tấn
công chọn bản rõ (chosen plaintext) tức người thám mã tạm thời có quyền
truy xuất tới bộ mã hóa, do đó người tấn công có khả năng chọn bản tin rõ và
xây dựng bản mã tương ứng; tấn công chọn bản mã (chosen ciphertext) tức là
người tấn công tạm thời có quyền truy xuất tới bộ giải mã, do đó có khả năng
chọn bản mã và xây dựng lại bản tin rõ tương ứng
Một số phương pháp phổ biến được sử dụng để tấn công vào mật mã
khối được biết đến cho đến hiện nay bao gồm:
- Tấn công bằng phương pháp vét cạn (brute force).
- Tấn công dựa vào thám mã tuyến tính (linear cryptanalysis).
12 - Tấn công dựa vào thám mã lượng sai (differential cryptanalysis).
Tuy nhiên trong số các phương pháp này, thám mã lượng sai được đánh
giá là giải pháp hiệu quả hơn cả đối với mã khối nói chung và đặc biệt là mã
khối tốc độ cao dựa trên các toán tử DDO ứng dụng trong các hệ thống truyền
thông không dây.
Các điểm yếu sau có thể áp dụng được cho một mã khối để thực hiện
cuộc tấn công:
1. Tồn tại các tấn công khôi phục khóa nhanh hơn tìm kiếm vét cạn.
Khả năng này thường được gọi là các tấn công đường tắt.
2. Các tính chất đối xứng nào đó trong mã khối (ví dụ như tính chất bù).
3. Sự có mặt của các lớp khóa yếu (như trong IDEA).
4. Các tấn công vào khóa liên kết.
1.4.4 Các phương thức hoạt động của mật mã khối.
Với bản tin có độ dài vượt quá độ dài của một khối dữ liệu thì phương
án mã hóa phải được tính đến. Đó chính là các chế độ hoạt động của mật mã
khối. Trong mật mã khối, việc mã hóa chuyển các khối bản rõ thành các khối
bản mã và ngược lại.
Hình 1. 8 Các chế độ hoạt động của mã khối
(a) Electronic Code Book (ECB).
(b) Cipher Block Chaining (CBC).
(c) Output Feed Back (OFB).
(d) Cipher Feed Back (CFB).
(e) Counter mode (CTR).
13
Đứng trên quan điểm thực hiện trên phần cứng, chúng ta có thể chia ra
làm 2 loại chế độ hoạt động chính:
Chế độ không hồi tiếp: bao gồm Electronic Code Book mode (ECB) và
Counter mode (CTR).
Chế độ có hồi tiếp: bao gồm Cipher Block Chaining mode (CBC),
Cipher Feedback Mode (CFB), và Output Feedback Mode (OFB).
Như vậy chỉ có ở chế độ không hồi tiếp mới có thể tận dụng hết khả
năng thực thi mật mã bằng phần cứng. Xem xét các chế độ làm việc của các
sơ đồ mã khối ta có thể nhận thấy một số vấn đề sau:
Chế độ ECB (Chế độ chuyển mã điện tử- Chế độ bảng tra mã điện tử):
là chế độ đơn giản nhất của mã khối, nó thường được sử dụng khi cần truyền
an toàn một thông tin riêng (ví dụ, mã hóa khóa). Chế độ này có nhược điểm
là mức độ an toàn không cao, vì rằng đối thủ có thể dựng lại các bản mã từ
các bản mã gốc. Nhược điểm này không chỉ ảnh hưởng đến độ an toàn mà
còn ảnh hưởng đến hiệu quả năng lượng của sơ đồ mã. Nhưng khi hoạt động
ở chế độ này, sơ đồ mã có khả năng dùng lỗi chống lại lỗi của bản mã (chỗ
các bits bị thay đổi) và lỗi đồng bộ hóa (chỗ các bits có thể được thêm vào
hoặc mất đi).
(a) Encryption
(b) Decryption
Hình 1. 9 Chế độ mã hóa ECB
14
Chế độ CBC (chế độ liên kết khối mã- Chế độ mã móc xích): là chế độ
thường được sử dụng nhất của mã khối, nó thường được sử dụng khi truyền
các khối dữ liệu hoặc dùng để xác thực.
Khi làm việc ở chế độ này, các sơ đồ mã có nguy cơ bị lộ thông tin do
kiểu tấn công “nghịch lý ngày sinh nhật”. Với khả năng chống lại lỗi bản mã
thì một bits lỗi truyền sẽ chỉ ảnh hưởng đến việc giải mã của 2 khối tiếp sau.
Chế độ này không có khả năng chống lại lỗi đồng bộ hóa.
(a) Encryption
(b) Decryption
Hình 1. 10 Chế độ mã hóa CBC
Chế độ CFB (chế độ phản hồi mã- Chế độ Mã phản hồi): thường được
sử dụng khi truyền các dòng dữ liệu hoặc dùng để xác thực. Chế độ này có
khả năng khôi phục chống lại lỗi bản mã và có khả năng khôi phục chống lại
lỗi đồng bộ hóa sau khi truyền một số lượng nào đó các khối.
15
(a) Encryption
(b) Decryption
Hình 1. 11 Chế độ mã hóa s-bít CFB
Chế độ OFB (chế độ phản hồi đầu ra- Chế độ mật mã kết quả phản
hồi): thường được sử dụng khi truyền dòng dữ liệu trên các kênh có nhiễu.
Với chế độ này lỗi trong một bản mã chỉ ảnh hưởng lên lỗi của bản rõ tương ứng.
16
(a) Encryption
(b) Decryption
Hình 1. 12 Chế độ mã hóa s-bít OFB
Chế độ CTR (Chế độ mật mã con đếm): chế độ này giống như chế độ
CBC, độ bảo mật của chế độ này không tồi hơn chế độ CBC.
Sơ đồ của nó đơn giản, sự móc xích (feedback) giữa các khối đã được
loại trừ hoàn toàn, làm cho CTR có những hiệu năng tính toán cao đáng mong
ước.
- Có thể xử lý song song dễ dàng vì các khối tính toán hòan tòan độc
lập; ngoài ra cũng cho phép tiền xử lý để tính toán trước chuỗi phần tử output
của hàm sinh mã (chẳng qua là chuỗi mã hóa của dãy số tự nhiên liên tiếp từ
giá trị IV ban đầu).
- Không có sự phụ thuộc lẫn nhau nên có thể dùng vào mã hóa dữ liệu
lưu trữ giống như với ECB: cho phép truy nhập ngẫu nhiên (random access)
thay vì truy nhập tuần tự như với CBC chẳng hạn.
17
Mặc dù có sơn đồ tính toán rất đơn giản, tính an toàn của chế độ này đã
được chứng minh đầy đủ bằng công cụ toán học hình thức, trên cơ sở thông
qua so sánh với mật mã one-time-pad (đạt bí mật tuyệt đối).
Dựa trên các đánh giá, ta thấy rằng việc mã hóa dữ liệu sẽ chủ yếu dựa
trên các chế độ hồi tiếp của mã khối như CBC và CFB. Còn với chế không độ
hồi tiếp thường sử dụng chế độ EBC để mã hóa khóa phiên trong quá trình
phân phối khóa.
(a) Encryption
(b) Decryption
Hình 1. 13 Chế độ mã hóa CTR
1.5 Tiểu luận chương 1
Trong chương này, luận văn đã giới thiệu tổng quan về mật mã, mã
khối và vai trò của mật mã trong việc bảo mật thông tin trên mạng những.
Đồng thời phương pháp thiết kế mật mã khối và các tiêu chuẩn thiết kế mã
khối cũng được trình bày để hỗ trợ cho các nội dung trình bày trong chương 3.
18
CHƯƠNG 2 NGUYÊN LÝ THIẾT KẾ MÃ KHỐI TRÊN CSPN
2.1. Nguyên lý thiết kế CSPN
CSPN là một trong các thành phần được xây dựng từ các nguyên thủy
mật mã (PE) với các cấu trúc thiết kế khác nhau. Để ứng dụng được trong mật
mã, cấu trúc của chúng phải tuân thủ theo nguyên lý đối xứng ở các bậc khác
nhau. Các nguyên lý chung này có thể tham khảo đầy đủ trong [1].
Tuy nhiên, trước khi đề cập đến việc xây dựng CSPN, sẽ trình bày tóm
tắt cấu trúc của lớp phần tử nguyên thủy mật mã điểu khiển được F2/1 và F2/2.
2.1.1. Lớp phần tử nguyên thủy mật mã điều khiển được
a. Lớp phần tử nguyên thủy mật mã điều khiển được F2/1
Theo Moldovyan [30], phần tử nguyên thủy mật mã điều khiển được
F2/1 được mô tả như trong hình 2.1. Trong đó:
- F2/1 được biểu diễn như một hộp đen (hình 2.1a);
- F2/1 được biểu diễn như một cặp hàm logic f1, f2 với 3 biến vào đó là
y1 = f1(x1, x2, v); y2 = f2(x1, x2, v) (hình 2.1b). Có thể xây dựng được rất nhiều
cặp hàm logic (f1, f2) khác nhau từ 3 biến vào và các hàm này có thể được
thực hiện trên phần cứng rất thuận tiện;
- F2/1 được biểu diễn như là cặp 2 phép thế (S1, S2). Ở đây, nếu v = 0
thì CE thực hiện phép thế S1 và nếu v = 1 thì CE thực hiện phép thế S2. Hay
nói cách khác là giá trị của véc tơ điều khiển sẽ lựa chọn phép thế cơ bản
tương ứng.
19
a. Hộp đen; b. Hàm logic với 3 biến vào; c. Dạng 2 phép thế; d. CE thuộc loại P2/1;
e. Đặc trưng vi sai F2/1
Hình 2.1 Cấu trúc biểu diễn của F2/1
Hệ thức biểu diễn mỗi quan hệ giữa cách biểu diễn thông qua cặp 2
hàm logic và cặp phép thế như trên được cho bởi biểu thức sau:
(2.1)
(2.2)
Hay:
Hình 2.1e là biểu diễn đặc trưng vi sai của phần tử F2/1, hình 2.1d mô tả
một trường hợp cụ thể của phần tử F2/1 đó là P2/1.
Cũng theo [1], có nhiều biến thể CE khác nhau .Từ F2/1, sử dụng các
cấu trúc thiết kế khác nhau sẽ xây dựng được các phần tử điều khiển được mở
rộng Fn/m. Một phần tử Fn/m không đồng nhất có thể được xây dựng từ các F2/1
khác nhau. Thông thường, xét các phần tử Fn/m với cấu trúc đồng nhất, tức là
20 cấu trúc được xây dựng từ một lớp phần tử F2/1 thuộc một loại CE nhất định.
Để sử dụng được các phần tử này trong mật mã khối, thì luôn phải đảm bảo
rằng chúng tồn tại phần tử nghịch đảo (sử dụng Fn/m khi mã hóa và phần tử
nghịch đảo của nó là khi giải mã). Nên phần tử Fn/m bất kỳ có thể là khả
nghịch nếu phần tử nguyên thủy mật mã của nó là khả nghịch. Phép biến đổi
ngược có thể được xây dựng từ việc đổi chỗ đầu vào và đầu ra đã cho của Fn/m
. Để định và thay đổi mỗi phần tử F2/1 bởi phần tử nghịch đảo của nó
nghĩa dễ dàng cấu trúc của phép nghịch đảo, có thể sử dụng cấu trúc F2/1 có
sẵn.
Theo [1], đã đưa ra các tiêu chí để thực hiện việc phân loại các phần tử
F2/1 và từ đó lựa chọn phần tử sao cho phù hợp với các ứng dụng mật mã.
Tiêu chuẩn dưới đây cho phép lựa chọn các toán tử phi tuyến F2/1 phù hợp với
việc thiết kế phần tử mở rộng Fn/m cho ứng dụng cho mật mã:
1. Hàm f1, f2 của F2/1 là hàm logic 3 biến cân bằng và có độ phi tuyến
(NL Non Linearity) cực đại;
2. Phép biến đổi của F2/1 là song ánh;
3. Tổ hợp tuyến tính của 2 đầu ra của F2/1 tức là hàm
cũng là hàm logic cân bằng và có độ phi tuyến cực đại;
4. Mỗi phần tử đều thỏa mãn tính xoắn.
Việc hiểu cách phân loại các F2/1 giúp lựa chọn được phần tử nguyên
thủy phù hợp cho các thiết kế mật mã và đem lại lợi thế cho thiết kế đề xuất.
b. Lớp phần tử nguyên thủy mật mã điều khiển được F2/2
F2/1 như đề cập ở trên có thể sử dụng để xây dựng CSPN ứng dụng
trong mật mã. Tuy nhiên, có thể xây dựng được CSPN hiệu quả cao hơn trên
cơ sở các phần tử nguyên thủy mật mã điều khiển được khác như F2/2. Thực tế
khi thiết kế trên phần cứng, mỗi khối nhớ dùng để biểu diễn một phần tử F2/1
thì tài nguyên của ô nhớ chỉ được sử dụng một nửa, tức là chỉ sử dụng 50%
dung lượng ô nhớ và khi đó, phần bộ nhớ còn lại là không tận dụng được.
Còn khi sử dụng F2/2 sẽ tận dụng được 100% dung lượng ô nhớ. Do đó F2/2 là
21 phần tử có hiệu quả tích hợp cao hơn. Phần tử này có thể được thực thi dễ
dàng và nhanh chóng bằng các mạch điện tử
a. Hộp đen; b. Hàm logic; c. Cặp 4 phép thế; d. Đặc trưng vi sai
Hình 2. 2 Cấu trúc biểu diễn của F2/2
Cấu trúc của phần tử F2/2 có thể được biểu diễn bằng các cách như mô
tả trên hình 2.2. Trong đó:
- F2/2 được biểu diễn như một hộp đen (hình 2.2a);
- F2/2 được biểu diễn như một cặp hàm logic f1, f2 với 4 biến vào là y1
= f1(x1, x2, v, z); y2 = f2(x1, x2, v, z) (hình 2.4b);
- F2/2 được biểu diễn dưới dạng cặp 4 phép thế (hình 2.2c), mỗi một
phép thế có 2 bit vào ( ). Mỗi phép thế đó tương ứng với một véc
tơ điều khiển có các giá trị tương ứng là: .
Hệ thức biểu diễn mỗi quan hệ giữa cách biểu diễn thông qua cặp 2
(4)
(2.3)
y1= (v ⊕ 1)(z ⊕ 1) y1
(1) ⊕ z (v ⊕ 1) y1
(2) ⊕ v (z ⊕1) y1
(3) ⊕ vzy1
(4)
(2.4)
y2= (v ⊕ 1)(z ⊕ 1) y2
(1) ⊕ z (v ⊕ 1) y2
(2) ⊕ v (z ⊕ 1) y2
(3) ⊕ vzy2
hàm logic và cặp phép thế như trên được cho bởi biểu thức sau:
(1)) (2.5)
y1= vz (y1
(1) ⊕ y1
(2) ⊕ y1
(3) ⊕ y1
(4)) ⊕ v(y1
(1) ⊕ y1
(3)) ⊕ z (y1
(1) ⊕ y1
(2)) ⊕ y1
(1)) (2.6)
y2 = vz (y2
(1) ⊕ y2
(2) ⊕ y2
(3) ⊕ y2
(4)) ⊕ v(y2
(1) ⊕ y2
(3)) ⊕ z(y2
(1) ⊕ y2
(2)) ⊕ y2
Hoặc:
22
Các hàm logic 4 biến sẽ có độ phi tuyến khác nhau. Số các hàm logic 4
biến có giá trị phi tuyến lớn hơn nhiều so với số các hàm logic 3 biến. Đồng
thời đặc trưng vi sai của nó cũng tốt hơn rất nhiều so với đặc trưng vi sai của
F2/1. Theo [1] các F2/2 khác nhau có đặc trưng vi sai khác nhau do đó cần đưa
ra tiêu chuẩn cho quá trình lựa chọn F2/2 và phân loại chúng.
Theo [1] để xây dựng được CSPN hiệu quả thì cần phải xây dựng các
tiêu chí trong việc lựa chọn F2/2. Các tiêu chí sau được quan tâm trong việc
thiết kế và lựa chọn trong các ứng dụng mật mã:
1. Hàm f1, f2 của F2/2 là hàm logic 4 biến cân bằng và có tính phi tuyến
lớn nhất tức là NL( NL ;
2. Phép biến đổi của F2/2 là biến đổi song ánh và
thỏa mãn tính xoắn.
3. Tổ hợp tuyến tính 2 đầu ra của F2/2 tức là hàm y3 = f3 = y1 ⊕ y2 là
hàm logic cân bằng và có tính phi tuyến lớn nhất tức là NL(f3) = 4;
2.1.2. Cấu trúc CSPN
CSPN được xây dựng nên từ các phần tử điều khiển được nguyên thủy.
Một phần tử điều khiển được mở rộng Fn/m là một CSPN, cấu trúc tổng quát
của Fn/m được mô tả trong hình 2.3. Ở đây Fn/m được miêu tả như các lớp
xếp chồng như sau:
j, với j = 1, 2,…, s-1 là các hoán vị xoắn cố định, V = (V1,
Trong đó
V2,…, Vs) là véc tơ điều khiển của Fn/m và Vj là phần tử cấu thành của V, nó
(để ngắn gọn
sẽ viết tắt là Lj).
điều khiển lớp hoạt động thứ j (active layer), và s là số các lớp hoạt động
Trong một lớp, các phần tử được liên kết song song với nhau, các hoán vị
xoắn cố định cũng được thiết kế có tính chất đối xứng để đảm bảo tính khả nghịch.
Việc thiết kế các Fn/m yêu cầu chính là ở việc lựa chọn cấu trúc liên kết
tương ứng và PE
23
Nguyên tắc, để sử dụng được các phần tử mở rộng này trong mật mã
khối, thì phải đảm bảo rằng chúng tồn tại phần tử khả nghịch. Tức là nếu sử
dụng Fn/m khi mã hóa thì khi giải mã phải sử dụng phần tử nghịch đảo của nó
. Fn/m bất kỳ sẽ là khả nghịch nếu phần tử nguyên thủy của nó là khả
nghịch và phép biến đổi ngược có thể được xây dựng từ việc đổi chỗ đầu vào,
đầu ra đã cho của Fn/m và thay đổi mỗi phần tử nguyên thủy của nó bởi phần
tử nghịch đảo tương ứng. Để định nghĩa dễ dàng cấu trúc của phép khả
nghịch, có thể sử dụng các cấu trúc có sẵn của phần tử nguyên thủy. Vì vậy
các cấu trúc thiết kế của CSPN sử dụng trong mật mã thường có tính chất đối
xứng. đối xứng được định nghĩa như sau.
Định nghĩa 2.1. Cấu trúc của được gọi là cấu trúc đối xứng nếu
với j = 1, 2, ..., s-1 có thể áp dụng hệ thức sau (hoặc
, ở đây j là chỉ số nếu Lj là xoắn - involution) và
mô tả lớp hoạt động nào đó của và s là số lớp.
Định nghĩa 2.2. Fn/m bao gồm s lớp có cấu trúc đối xứng như trên
được gọi là đối xứng nếu với j = 1, ..., s - 1, luôn có , trong đó
n/m (b) xây dựng từ F2/1
j là chỉ số mô tả lớp hoạt động nào đó của .
Hình 2. 3 Cấu trúc tổng quát của Fn/m (a) và F-1
24
được gọi là nghịch đảo của Định nghĩa 2.3. Với Fn/m cho trước,
tương ứng là ngược lẫn nhau (inverses). Vì vậy, Fn/m nếu với V, FV và
nghịch đảo của Fn/m có cấu trúc biểu diễn như sau:
Trong các cấu trúc mở rộng, CSPN được xây dựng trực tiếp từ các phần
tử nguyên thủy (F2/1, F2/2) hoặc có thể xây dựng gián tiếp theo mô hình đối xứng.
Hình 2.5 là mô tả CSPN được xây dựng từ phần tử nguyên thủy thuộc
lớp F2/1 (hoàn toàn tương tự trong trường hợp xây dựng từ F2/2). Đây là một
mô hình thiết kế CSPN theo phương pháp đồng nhất, tức là trong CSPN chỉ
sử dụng một phần tử nguyên thủy thuộc một lớp nhất định phần tử. Đây là
phương pháp thiết kế CSPN phổ biến và được sử dụng rộng rãi trong các
thuật toán mật mã khối được xây dựng trên cơ sở CSPN. Tuy nhiên hoàn toàn
cũng có thể thiết kế được CSPN theo phương pháp lai ghép tức là không đồng
nhất song vẫn đảm bảo để sử dụng trong các thiết kế mật mã. Phương pháp lai
ghép sẽ mô tả chi tiết trong thiết kế CSPN lai ghép sử dụng trong chương 3
của luận án.
2.2. Nguyên lý thiết kế thuật toán mật mã trên FPGA
Phần này trình bày về công nghệ thiết kế các thuật toán mật mã khi
triển khai trên FPGA. Đồng thời cũng trình bày các thông số đánh giá và so
sánh hiệu quả tích hợp của các thiết kế.
2.2.1 Chiến lược thiết kế
Chiến lược thiết kế luôn phụ thuộc cho từng ứng dụng, có ứng dụng đòi
hỏi có giới hạn về thời gian, một số ứng dụng khác đòi hỏi về tốc độ, giá cả,
độ an toàn, đặc biệt có ứng dụng cần sự tổ hợp hài hòa của nhiều tiêu chí.
2.2.2. Cấu trúc thiết kế
Để đạt được tốc độ nhanh khi triển khai thực hiện các thuật toán mã
hóa trên FPGA, yêu cầu đặt ra là cần có sự nghiên cứu sâu ở mỗi giai đoạn
thiết kế. Trong phần này sẽ mô tả 2 cấu trúc thường được sử dụng để thực
hiện các thuật toán mã hóa.
25
a. Cấu trúc lặp cơ sở
Với cấu trúc lặp cơ sở (IL-Iterative Looping) chỉ thiết kế một vòng và
thuật toán mật mã khối được thực hiện lặp lại n chu kỳ (hình 2.4a). Việc thiết
kế theo cấu trúc này sẽ có chi phí về tài nguyên nhỏ nhưng sẽ tốn nhiều xung
nhịp thời gian hơn và có tốc độ mã hóa/giải mã thấp.
b. Cấu trúc vòng mở rộng
Cấu trúc vòng mở rộng (LU - Loop Unrolling) hay gọi kiểu đường ống
(PP-pipeline) (hình 2.4b). Thiết kế này cho phép thực hiện thuật toán với tốc
độ cao hơn so với cấu trúc IL nhưng chi phí về tài nguyên sẽ lớn hơn.
(a) Cấu trúc vòng lặp cơ sở (IL)
(b) Cấu trúc vòng lặp toàn phần (PP)
Hình 2. 4 Cấu trúc thiết kế mật mã khối trên FPGA,
Cả hai cấu trúc IL và cấu trúc PP đều được tối ưu hóa để thực hiện các
thuật toán mật mã khóa bí mật.
2.2.3. Các thông số và mô hình đánh giá
a. Thông lượng
Thông lượng (Throughput) là yếu tố quan trọng để tính toán hiệu suất
định giờ của các thiết kế [1]. Thông lượng được xác định theo công thức:
26
Tần số × Số bit Số chu kỳ
Thông lượng = (bit/s) (2.7)
Thông lượng càng lớn thì hiệu quả của thuật toán càng cao.
b. Tài nguyên
Thông thường chi phí về tài nguyên (Resource) của mỗi thiết kế trên
FPGA được xác định thông qua các chi phí theo một trong các thông số sau:
số lượng slices; số lượng flip flop; số CLB (Configurable Logic Block); số
lượng LUT (LUT: Look-Up Table); số lượng IOB (Input/Output Block); số
lượng Block Select RAMs (BRAMs). Sự so sánh lý tưởng sẽ là so sánh về
toàn bộ các nguồn tài nguyên trên và cùng được thiết kế trên các dòng thiết bị
FPGA tương tự.
Người ta cho rằng thiết kế có hiệu quả nhất là thiết kế mà có được tốc
độ cao nhất (chỉ quan tâm đến lưu lượng thông tin) dù cho đó là loại thiết bị
nào đã được dùng để triển khai thiết kế. Tuy nhiên để đánh giá 1 thiết kế là
hiệu quả (thiết kế được tối ưu hóa cho tài nguyên phần cứng) thì cần sử dụng
thêm thông số chi phí về tài nguyên.
Sự so sánh giữa hai thiết kế hiệu quả chỉ có thể có được nếu so sánh
giữa những thiết bị giống nhau.
Như vậy, cả tài nguyên và thông lượng đều giúp đánh giá hiệu quả của
các thiết kế. Tuy nhiên, nhằm quyết định việc một thiết kế nào đó là hiệu quả
hay không, cần xem xét thêm một số đánh giá khác như: thông lượng/tài
nguyên, thông lượng/(tài nguyên × tần số). Sau đây sẽ mô tả thêm về 2 mô
hình đánh giá hiệu quả này.
c. Mô hình đánh giá 1
Đây là mô hình thường được sử dụng để đánh giá hiệu quả thực hiện
của thuật toán mật mã trên FPGA. Mô hình được đánh giá qua công thức sau:
(2.8)
27
Trong đó T: thông lượng được tính theo công thức (2.7); R: chi phí về
tài nguyên được xác định như mô tả trên; IE là hiệu quả thực hiện của thiết
kế.
d. Mô hình đánh giá 2
Đây là mô hình đánh giá hiệu quả tích hợp được sử dụng trong trường
hợp tích hợp nhiều chức năng khác nhau trên cùng một chip. Mô hình đánh
giá này được đánh giá là khả dụng hơn và được xác định theo công thức 2.9
(2.9)
Trong đó T: thông lượng được tính theo công thức (2.9); R: chi phí về
tài nguyên được xác định như mô tả trên; F là tần số; IE là hiệu quả thực hiện
của thiết kế. Thông thường T sử dụng đơn vị đo là Mb/s, R được tính thông
qua số lượng CLB, còn tần số F sử dụng đơn vị đo là GHz.
2.3. Nguyên lý đánh giá độ an toàn của các thuật toán
Việc phân tích, kiểm chứng độ an toàn của mỗi thuật toán mật mã là
yêu cầu đối với các mật mã và các tiêu chuẩn được dùng gồm:
- Đánh giá các đặc trưng thống kê của thuật toán mật mã theo bộ tiêu
chuẩn của Châu Âu (NESSIE-New European Schemes for Signatures,
Integrity and Encryption) [2]. NESSIE được dùng để xác định và đánh giá các
đặc tính thống kê của mật mã khối. Đây là một trong các yếu tố để khẳng định
độ an toàn của thuật toán mật mã khối.
- Đánh giá khả năng chống lại các loại thám mã phổ biến hiện nay như
thám mã tuyến tính (Linear Cryptanalysis - LC), thám mã vi sai (Differential
Cryptanalysis - DC) là một yêu cầu cần thiết khi phát triển thuật toán. Tuy
nhiên theo [1], với mật mã khối được phát triển trên cơ sở SDDO thì thám mã
tuyến tính là không hiệu quả so với thám mã vi sai trên các thuật toán dạng
này.
2.3.1. Đánh giá đặc trưng thống kê theo tiêu chuẩn NESSIE
Theo NESSIE [2], các đặc trưng thống kê của thuật toán mật mã khối
cần được đánh giá theo các tiêu chuẩn sau:
28
Tiêu chuẩn 1. Số lượng trung bình các bit đầu ra thay đổi khi thay đổi
một bit đầu vào (kí hiệu dl).
Tiêu chuẩn 2. Mức độ biến đổi hoàn toàn (kí hiệu dc).
Tiêu chuẩn 3. Mức độ của hiệu ứng thác lũ (kí hiệu da).
Tiêu chuẩn 4. Mức độ phù hợp về hiệu ứng thác lũ chặt (kí hiệu dsa).
Đồng thời, với mã khối xây dựng trên cơ sở CSPN thì vấn đề quan
trọng nhất là phải đánh giá được sự ảnh hưởng của bit khóa và bit dữ liệu đầu
vào đến sự biến đổi bit dữ liệu ở đầu ra.
Để rõ hơn về các tiêu chuẩn, sử dụng công cụ toán học minh họa cho
các đặc trưng thống kê trên.
Kí hiệu: u = (u1, u2, …, un) {0,1}n là một véc tơ nhị phân, kí hiệu u(i)
{0,1}n là véc tơ nhị phân nhận được bằng cách đảo ngược bit thứ i của u
(với i = 1.. n).
Khi đó véc tơ nhị phân y = f(u(i)) Å f(u) được gọi là véc tơ thác lũ theo
thành phần i.
Trọng số Hamming của véc tơ u (kí hiệu w(u)) được xác định là số
lượng các thành phần khác không của u.
Hàm f: {0,1}n{0,1}m là hàm biến đổi n bit đầu vào thành m bit đầu ra.
Hàm này được coi là có mức độ biến đổi hoàn toàn tốt, nếu mỗi bit đầu ra đều
phụ thuộc mỗi bit đầu vào, tức là:
i = 1, 2, …, n, j = 1, 2, …, m, u {0,1}n với (f(u(i)))j (f(u))j.
Hàm f: {0,1}n{0,1}m được coi là có hiệu ứng thác lũ tốt, nếu trung bình
có ½ số bit đầu ra thay đổi mỗi khi có một bit đầu vào thay đổi, tức là
với i = 1.. n.
Hàm f: {0,1}n{0,1}m phù hợp theo tiêu chuẩn thác lũ chặt, nếu mỗi
bit đầu ra thay đổi với xác suất bằng ½ khi có một bit đầu vào thay đổi, tức là:
i = 1.. n và j = 1.. m: Pr((f(u(i)))j (f(u))j) = ½.
29
Ma trận phụ thuộc của hàm f: {0,1}n{0,1}m là ma trận A bậc n m
của các phần tử aij, nó thể hiện sự phụ thuộc của bit thứ j của véc tơ đầu ra
vào bit thứ i của véc tơ đầu vào, nói cách khác nếu bit đầu vào thứ i thay đổi,
kết quả sẽ làm thay đổi bit thứ j đầu ra, tức là:
aij = u{0,1}n| (f(u(i))j ≠ f(u))j)} với i = 1..n và j = 1..m
Ma trận khoảng cách của hàm f: {0,1}n{0,1}m là ma trận B bậc n
(m + 1) của các phần tử bij, bij là trọng số của véctơ thác lũ, tức là:
bij = u{0,1}n|w(f(u(i)) – f(u)) = j }với i = 1..n; j = 1..m
Với U là tập con của {0,1}n được chọn một cách ngẫu nhiên thì:
với i = 1..n và j = 1..m aij = uU
với i = 1..n và j = 1..m bij = uU
Để đánh giá sự ảnh hưởng của khoá và dữ liệu đầu vào tới sự biến đổi
của dữ liệu ở đầu ra, xét: U = X||K (X - bản rõ, K – khoá). Trong trường hợp
xét ảnh hưởng của dữ liệu đầu vào tới sự biến đổi của dữ liệu đầu ra:
với i = 1..n và j = 1..m aij = X
với i = 1..n và j = 1..m bij = X
Còn trường hợp cần xét ảnh hưởng của khoá tới sự biến đổi của dữ liệu
đầu ra sử dụng cách tính sau:
với i = 1..n và j = 1.. m aij = X
với i = 1..n và j = 1..m bij = X
Việc xét sự ảnh hưởng của khóa tới sự biến đổi đầu ra rất có ý nghĩa
trong trường hợp thuật toán chỉ sử dụng lược đồ khóa đơn giản mà không sử
dụng phép sinh khóa phức tạp.
Trong các khái niệm trên thì, ma trận phụ thuộc được sử dụng để đánh
giá các đặc trưng thống kê theo tiêu chuẩn 2 và 4, còn ma trận khoảng cách
được sử dụng để đánh giá các đặc trưng thống kê theo tiêu chuẩn 1 và 3. Các
công thức tính các tiêu chuẩn trên xem phụ lục D.
30
Theo tiêu chuẩn NESSIE, hàm f được coi là có các đặc tính biến đổi tốt
khi các điều kiện sau xảy ra: dc = 1, da 1, dsa 1 và d1 ½ n.
2.3.2. Đánh giá độ an toàn theo đặc trưng vi sai
Theo một số tài liệu [1], [3] đánh giá đặc trưng vi sai là một trong các
phương pháp đánh giá độ an toàn của thuật toán mã hóa hiện đại nhằm chống
lại thám mã lượng sai.
Đặc trưng vi sai của mỗi thuật toán phụ thuộc vào các toán tử sử dụng
trong thuật toán. Với các toán tử điều khiển được mở rộng, đặc trưng vi sai sẽ
phụ thuộc vào cấu trúc xây dựng, sự phân bố các bit điều khiển và đặc trưng
vi sai của phần tử điều khiển được sử dụng trong cấu trúc đó.
Thông thường đặc trưng vi sai với trường hợp số bit tích cực ít (active
bits) sẽ có xác suất tìm được của vết vi sai cao hơn so với trường hợp số
lượng bit tích cực lớn hơn [1].
Trong thám mã lượng sai hay đánh giá độ an toàn của mã khối theo đặc
trưng vi sai, kẻ tấn công và người thiết kế đều muốn tính được giá trị vết vi
sai lớn nhất. Nhưng việc tìm vết vi sai tốt nhất là không hề đơn giản, điều này
có thể được kiểm chứng qua hàng loạt các kết quả nghiên cứu không ngừng
cho đến tận ngày nay nhưng cũng chưa có kết quả nào đảm bảo chặt chẽ và
đầy đủ. Vì vậy mà thông thường người ta chọn ra đặc trưng vi sai tốt nhất qua
các ước lượng và một trong những độ đo được dùng để ước lượng vết vi sai
tốt nhất là số nhánh vi sai không lan rộng.
Giải pháp ước lượng để tìm vết vi sai tốt nhất đối với các thuật được
thực hiện nhờ đánh giá cận trên của xác suất đặc trưng vi sai cực đại (đây là 1
trong 3 hướng tiếp cận để đánh giá xác suất vi sai tốt nhất hiện nay). Cụ thể
như sau:
- Thực hiện đánh giá vết vi sai qua 2 vòng
- Xác định vết vi sai lớn nhất tại vòng 1 (xét tất cả các trường hợp có
thể tạo ra vết vi sai, sau đó xác định vết vi sai lớn nhất qua các phép biến đổi)
31
- Xác định khả năng bit tích cực tại vòng 1 sẽ gây ra vết vi sai lớn nhất
tại vòng 2.
2.4 Nguyên lý đánh giá hiệu quả tích hợp trên FPGA
Việc so sánh và đánh giá hiệu quả của các thiết kế đối với các thuật
toán mã hóa trên FPGA là việc không dễ dàng và khó có thể đánh giá và so
sánh tuyệt đối. Tuy nhiên 2 thông số đơn quan trọng nhất thường được
nghiên cứu để đánh giá hiệu suất của mỗi thiết kế đó là chi phí về thời gian
(còn được gọi là lưu lượng thông tin) và chi phí về diện tích.
Chi phí về thời gian được xác định từ thông số Maximum Clock
Frequency (MCF) hoặc tổng số chu kỳ định giờ được yêu cầu trước khi có kết
quả. Trong trường hợp với mã khối, thì thường phải quan tâm đến có bao
nhiêu bit được xử lý tại cùng 1 thời điểm. Thông số này thường gọi là lưu lượng
thông tin.
2.4.1 Lưu lượng thông tin
Lưu lượng thông tin là 1 yếu tố quan trọng để tính toán hiệu suất định
giờ của các thiết kế. Lưu lượng thông tin của thiết kế được xác định như sau:
Lưu lượng = (bit/s)
Tần suất cho phép × Số bit Số chu kỳ
Lưu lượng của thiết kế càng lớn thì hiệu quả của thuật toán càng cao.
2.4.2. Diện tích (Area)
Thông thường chi phí về diện tích của mỗi thiết kế được xác định thông
qua các chi phí theo một trong các thông số sau:
Số lượng slices
Số lượng flip flop
Số CLB (Configurable Logic Block)
Số lượng LUT (LUT : Look-Up Table)
Số lượng IOB ( Input/Output Block)
Số lượng BlockSelect RAMs (BRAMs)
32
Để có được sự so sánh lý tưởng sẽ so sánh về toàn bộ các nguồn tài
nguyên trên và cùng được thiết kế trên các dòng thiết bị FPGA tương tự. Tuy
nhiên chúng ta cũng phải ghi nhận bằng thực nghiệm rằng việc thực hiện trên
cùng 1 họ thiết bị ở các cấp khác nhau dù cho là với cùng mã cũng vẫn ảnh
hưởng đến lưu lương thông tin cuối cùng của thiết kế. Vì vậy mà trong trường
hợp nếu cùng 1 thuật toán mà được thiết kế bởi 2 dòng sản phẩm khác nhau
bởi 2 nhà sản suất khác nhau cũng tạo ra sự khác biệt đáng kể.
Người ta cho rằng thiết kế có tốc độ nhanh nhất là thiêt kế mà có được
tốc độ cao nhất (chỉ quan tâm đến lưu lượng thông tin) dù cho đó là loại thiết
bị nào đã được dùng để triển khai thiết kế. Tuy nhiên để đánh giá 1 thiết kế là
vững chắc (thiết kế được tối ưu hóa cho diện tích phần cứng) thì cần sử dụng
thông số chi phí về diện tích.
Sự so sánh giữa 2 thiết kế vững chắc chỉ có thể có được nếu so sánh
giữa những thiết bị giống nhau.
Như vậy, cả diện tích và lưu lượng thông tin đều giúp đánh giá hiệu
quả của các thiết kế. Tuy nhiên, nhằm quyết định việc 1 thiết kế là hiệu quả
hay không, người ta còn xem xét thêm một số yếu tố khác sau:
2.4.3 Lưu lượng/diện tích
Đó là tỷ số giữa 2 số liệu trên để xem xét về tính năng hữu ích của thiết kế.
2.5. Tiểu luận chương 2
Trong chương này, luận văn đã tập chung nghiên cứu nguyên lý thiết
kế mã khối cho FPGA và CSPN các cấu trúc và nguyên lý thiết kế thuật toán
mật mã trên FPGA và đánh giá, các thông số mô hình đánh giá, nghiên cứu các
phân tích, đánh giá độ an toàn của thuật toán theo chuẩn NESSIE và theo đắc
trưng vi sai.
33 CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH THỬ NGHIỆM VÀ ĐÁNH GIÁ
KẾT QUẢ
Trong chương 03 luận văn sẽ trình bảy một số đặc điểm chung của mạng
cảm biến không dây để làm cơ sở khi xây dựng đồng thời chương này cũng
trình bảy việc cài đặt thử nghiệm một thuật toán trên VHDL, so sánh và đánh
giá hiệu quả tích hợp của thuật toán trên phần cứng với một số các thuật toán
khác. Kết quả này có thể hỗ trợ các nhà phát triển các môdul bảo mật cho các
ứng dụng không dây có thể lựa chọn thuật toán phù hợp thông qua các tiêu
chí đã được phân tích và nêu rõ trong chương 02. Qua đó cũng chỉ ra những
điểm mạnh của thuật toán khi triển khai thực hiện trên phần cứng.
3.1 Mạng cảm biến không dây
3.1.1 Định nghĩa của mạng cảm biến không dây
Mạng cảm biến không dây (Wireless Sensor Network) bao gồm một tập
hợp các thiết bị cảm biến sử dụng các liên kết không dây (vô tuyến, hồng
ngoại hoặc quang học) để phối hợp thực hiện nhiệm vụ thu thập thông tin dữ
liệu phân tán với quy mô lớn trong bất kỳ điều kiện và ở bất kỳ vùng địa lý
nào. Mạng cảm biến không dây có thể liên kết trực tiếp với nút quản lý giám
sát trực tiếp hay gián tiếp thông qua một điểm thu phát (Sink) và môi trường
mạng công cộng như Internet hay vệ tinh. Lợi thế chủ yếu của chúng là khả
năng xử lý tốc độ cao, triển khai hầu như trong bất kì loại hình địa lý nào kể
cả các môi trường nguy hiểm không thể sử dụng mạng cảm biến có dây
truyền thống.
3.1.2 Cấu trúc của mạng cảm biến không dây
Một mạng cảm biến không dây bao gồm số lượng lớn các nút được
triển khai dầy đặc bên trong hoặc ở rất gần đối tượng cần thăm dò, thu thập
thông tin dữ liệu. Vị trí các cảm biến không cần định trước vì vậy nó cho
phép triển khai ngẫu nhiên trong các vùng không thể tiếp cận hoặc các khu
vực nguy hiểm. Khả năng tự tổ chức mạng và cộng tác làm việc của các cảm
biến không dây là những đặc trưng rất cơ bản của mạng này. Với số lượng lớn
34 các cảm biến không dây được triển khai gần nhau thì truyền thông đa liên kết
được lựa chọn để công suất tiêu thụ là nhỏ nhất (so với truyền thông đơn liên
kết) và mang lại hiệu quả truyền tín hiệu tốt hơn so với truyền khoảng cách xa
3.1.3 Đặc điểm của mạng cảm biến không dây
- Kích thước vật lý nhỏ gọn
Kích thước và công suất tiêu thụ luôn chi phối khả năng xử lý, lưu trữ và
tương tác của các thiết bị cơ sở. Việc thiết kế các phần cứng cho mạng cảm
biến phải chú trọng đến giảm kích cỡ và công suất tiêu thụ với yêu cầu nhất
định về khả năng hoạt động. Việc sử dụng phần mềm phải tạo ra các hiệu quả
để bù lại các hạn chế của phần cứng.
- Hoạt động đồng thời với độ tập trung cao
Hoạt động chính của các thiết bị trong mạng cảm biến là đo lường và vận
chuyển các dòng thông tin với khối lượng xử lý thấp, gồm các hoạt động nhận
lệnh, dừng, phân tích và đáp ứng. Vì dung lượng bộ nhớ trong nhỏ nên cần
tính toán rất kỹ về khối lượng công việc cần xử lý và các sự kiện mức thấp
xen vào hoạt động xử lý mức cao. Một số hoạt động xử lý mức cao sẽ khá lâu
và khó đáp ứng tính năng thời gian thực. Do đó, các nút mạng phải thực hiện
nhiều công việc đồng thời và cần phải có sự tập trung xử lý cao độ.
- Khả năng liên kết vật lý và phân cấp điều khiển hạn chế
Tính năng điều khiển ở các nút cảm biến không dây cũng như sự tinh vi của
liên kết xử lý - lưu trữ - chuyển mạch trong mạng cảm biến không dây thấp
hơn nhiều trong các hệ thống thông thường. Điển hình, bộ cảm biến hay bộ
chấp hành (actuator) cung cấp một giao diện đơn giản trực tiếp tới một bộ vi
điều khiển chip đơn (đảm bảo tiêu thụ điện thấp nhất). Ngược lại, các hệ
thống thông thường, với các hoạt động xử lý phân tán, đồng thời kết hợp với
một loạt các thiết bị trên nhiều mức điều khiển được liên hệ bởi một cấu trúc
bus phức tạp.
35
- Tính đa dạng trong thiết kế và sử dụng
Các thiết bị cảm biến được nối mạng có khuynh hướng dành riêng cho ứng
dụng cụ thể, tức là mỗi loại phần cứng chỉ hỗ trợ riêng cho ứng dụng của nó.
Vì có một phạm vi ứng dụng cảm biến rất rộng nên cũng có thể có rất nhiều
kiểu thiết bị vật lý khác nhau. Với mỗi thiết bị riêng, điều quan trọng là phải
dễ dàng tập hợp phần mềm để có được ứng dụng từ phần cứng. Như vậy, các
loại thiết bị này cần một sự điều chỉnh phần mềm ở một mức độ nào đó để có
được hiệu quả sử dụng phần cứng cao. Môi trường phát triển chung là cần
thiết để cho phép các ứng dụng riêng có thể xây dựng trên một tập các thiết bị
mà không cần giao diện phức tạp. Ngoài ra, cũng có thể chuyển đổi giữa
phạm vi phần cứng với phần mềm trong khả năng công nghệ.
- Hoạt động tin cậy
Các thiết bị có số lượng lớn, được triển khai trong phạm vi rộng với một ứng
dụng cụ thể. Việc áp dụng các kỹ thuật mã hóa sửa lỗi truyền thống nhằm
tăng độ tin cậy của các đơn vị riêng lẻ bị giới hạn bởi kích thước cảm biến và
công suất. Việc tăng độ tin cậy của các thiết bị lẻ là điều cốt yếu. Thêm vào
đó, chúng ta có thể tăng độ tin cậy của ứng dụng bằng khả năng chấp nhận và
khắc phục được sự hỏng hóc của thiết bị đơn lẻ. Như vậy, hệ thống hoạt động
trên từng nút đơn không những mạnh mẽ mà còn dễ dàng phát triển các ứng
dụng phân tán tin cậy.
3.2 Mô tả thuật toán mô phỏng
Để phục vụ cho minh họa của luận văn em sử dụng thuật toán BM-64
để triển khai mô phỏng. Đây là một thuật toán được xây dựng nhắm hướng
đến ứng dụng trong các mạng cảm biến không dây đòi hỏi tốc độ cao của
nhóm tác giả Nguyễn Hiếu Minh, Đỗ Thị Bắc trong bài báo: Phát triển thuật
toán mật mã khối hiệu năng cao (Hội thảo quốc gia lần thứ XV: Một số vấn đề
chọn lọc của Công nghệ thông tin và truyền thông- Hà Nội, 03-04/12/2012 trang
489 - 495).
36
3.2.1 Cấu trúc của các phần từ điều khiển được sử dụng
Việc sử dụng phần tử F2/2 thay cho phần tử F2/1 trong xây dựng các
toán tử phụ thuộc dữ liệu (DDO-Data Dependent Operation) là hợp lý, hiệu
quả và phù hợp hơn khi triển khai thực hiện chúng trên phần cứng FPGA .
Xét với cấu trúc của F2/1 là có 2 bit vào và 1 bit điều khiển hay khi biểu diễn
dưới dạng hàm logic (Boolean Function-BF) thì nó là 2 hàm logic với 3 biến
nên khi thực hiện trên FPGA buộc chúng ta phải sử dụng 2 tế bào nhớ 4-bit
(using two 4-bit memory cells) trong đó mỗi tế bào chỉ thực hiện một hàm
logic với 3 biến mà khả năng của mỗi tế bào nhớ 4-bit lại cho phép thực hiện
một hàm logic bất kỳ với 4 biến. Vì vậy trong trường hợp sử dụng các tế bào
nhớ này để thiết kế F2/1 sẽ không tận dụng được hết khả năng của thiết bị gây
lãng phí. Nhưng với cấu trúc của F2/2 là có 2 bits vào và 2 bits điều khiển hoặc
được biểu diễn bằng 2 hàm logic với 4 biến (xem hình 3.1) nên khi thực hiện
trên FPGA cũng vẫn chỉ dùng 2 tế bào nhớ 4-bit, mỗi tế bào nhớ vừa đủ thực
hiện một hàm logic với 4 biến. Vì vậy tận dụng được tối đa tài nguyên của tế
bào nhớ, dẫn đến thiết kế đó đảm bảo đạt hiệu quả cao hơn. Điều này cũng có
nghĩa rằng trong trường hợp sử dụng phần tử F2/1, chỉ sử dụng hết 50% tài
nguyên, phần còn lại là không tận dụng được. Như vậy, khi sử dụng phần tử
F2/2 sẽ bảo đảm sử dụng được toàn phần tiềm năng của thiết bị. Đặc biệt, khi
xây dựng DDOs từ phần tử F2/2 tương đương với việc mở rộng số bits điều
khiển dữ liệu vào sẽ tạo ra các điều kiện tiên quyết trong việc nâng cao mức
độ phi tuyến và làm tăng hiệu ứng thác lũ của mỗi phép biến đổi. Đây là 2
tính chất cần thiết nhất của mật mã nhằm đảm bảo độ an toàn cho các thuật
toán.
Do đó phần tử được lựa chọn để xây dựng thuật toán là phần tử F2/2.
Trong thuật toán đã sử dụng phần tử được điều khiển mở rộng (gọi tắt là phần
tử mở rộng) là F16/64. Nó được xây dựng gián tiếp thông qua phần tử F2/2. Dãy
. Quá trình xây dựng biến đổi để hình thành F16/64 là:
các phần tử mở rộng này đều tuân thủ theo nguyên tắc xây dựng CSPNs đã
37 được chỉ ra trong [5]. Sau đây là mô tả chi tiết F2/2 và cấu trúc của các phần tử
mở rộng trên.
Cấu trúc của F2/2 có thể được biểu diễn bằng các cách như trong hình 1.
Theo đó, F2/2 có thể được biểu diễn như sau:
Cặp hai hàm logic 4 biến.
Cặp bốn phép thế , mỗi một phép thế có 2 bit vào ( ). Mỗi
phép thế đó tương ứng với một véc tơ điều khiển có giá trị tương ứng là:
.
Theo cách biểu diễn dưới dạng hàm logic 4 biến, F2/2 có thể được biểu
diễn dưới dạng các biểu thức đại số sau:
hoặc:
i /X
j , V
k) của đặc tính vi phân của F2/2.
Bảng 3. 1 Xác xuất Pr(ijk)=Pr(Y
i j k 001
002
011
101
110 120
002
102
201
202
Pr 0,25 0,125 0,1875 0,375 0,75 0,5 0,125 0,5 0,375 0,375
Để xây dựng được CSPNs hiệu quả thì cần phải xây dựng các tiêu chí
trong việc chọn phần tử F2/2. Việc lựa chọn này cần đáp ứng các tiêu chí sau:
1) Hàm f1 và f2 của F2/2 là hàm logic 4 biến cân bằng và có tính phi
tuyến lớn nhất.
2) Các phép biến đổi của phần tử F2/2 là các biến đổi
song ánh. Nói cách khác thì 4 phép chuyển đổi: F(0,0), F(01), F(10), F(11) phải là
phép biến đổi song ánh.
3) Tổ hợp tuyến tính 2 đầu ra của F2/2 tức hàm f3 = y1 ⊕ y2 cũng là hàm
logic cân bằng và có tính phi tuyến lớn nhất.
4) Ứng với mỗi phép chuyển đổi F(v) luôn tồn tại phần tử nghịch đảo.
38
Sau đây là một số minh họa cụ thể cho việc chọn cặp 4 CEs thỏa mãn
các tiêu chí lựa chọn trên để có thể ứng dụng trong thiết kế các phần tử mật
mã đó là: {e, f, g, h}, {f, i, e, j}, {h, f, j, e}, {j, i, f, e}, {a, d, g, i}, {b, i, c, h},
{f, i, e, h}, {j, i, f, d},…
Tiếp theo, từ F2/2 xây dựng lên F4/8. Ở đây F4/8 được xây dựng từ 4 phần
từ F2/2 được chia thành 2 lớp, mỗi lớp gồm 2 phần tử F2/2 ghép song song.
4/8 (b).
Giữa 2 lớp này là hoán vị cố định được mô tả như trong hình 3.1.
Hình 3. 1 Cấu trúc của F4/8 (a) và F-1
Sau đó từ 8 phần tử mở rộng F4/8 chúng tôi tiếp tục tổng hợp lên phần
tử mở rộng F16/64 (xem hình 3.2) được dùng trong thuật toán BM-64, trong đó
8 phần tử mở rộng F4/8 được chia thành 2 lớp mỗi lớp gồm 4 phần tử ghép
song song. Giữa 2 lớp này là hoán vị cố định I được mô tả như sau:
16/64(b)
I=(1)(2,5) (3,9) (4,13) (5,2) (6) (7,10) (8,14) (9,3) (10,7) (11) (12,15) (13,4) (14,8) (15,12) (16)
Hình 3. 2 Cấu trúc của F16/64 (a) và F-1
Với cấu trúc này và điểm thú vị hơn là nó được xây dựng từ phần tử
F2/2 sẽ hỗ trợ lớn trong việc tạo ra các thuật toán mã hóa đạt được hiệu năng
cao.
39
Trên đây đã trình bày cấu trúc của phần tử được điều khiển được dùng
trong thuật toán BM-64.
Bảng 3. 2 Miêu tả các phép thế trong hộp S4x4 và S-1
4x4
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
-1
14/14
4/3
13/4
1/8
2/1
15/12
11/10
8/15
3/7
10/13
6/9
12/6
5/11
9/2
0/0
7/5
S0/S0
-1
3/9
13/10
4/5
7/0
15/2
2/15
8/12
14/3
12/6
0/13
1/11
10/14
6/8
9/1
11/7
5/4
S1/S1
-1
10/1
0/8
9/14
14/5
6/13
3/7
15/4
5/11
1/15
13/2
12/0
7/12
11/10
4/9
2/3
8/6
S2/S2
-1
1/12
4/0
11/15
13/5
12/1
3/13
7/10
14/6
10/11
15/14
6/8
8/2
0/4
5/3
9/7
2/9
S3/S3
Các bước thực hiện của BM-64 được mô tả như sau:
);
1. For j = 1 to 7 do: {(L, R) Crypt(e) (L, R, Uj,Qj
(R, L) (L, R)}.
2. (L, R) Crypt(e)( L, R, U8 , Q8).
3. {(L, R) (L Å U9, R Å Q9); (L, R) (L, R)}.
Ở đây Crypt(e)(L, R, U, Q) là hàm với 4 tham số vào đó là L: khối dữ
liệu trái, R: khối dữ liệu phải, Uj: khóa con vòng thứ j của nhánh trái, Qj khóa
con vòng thứ j của nhánh phải. Các phép biến đổi trong hàm này được mô tả
trong sơ đồ vòng mã hóa cơ sở ở hình 5b. Trong sơ đồ này, cấu trúc của phần
tử F16/64 đã được mô tả trong phần II. Các hoán vị P, I1, và khối mở rộng E
được mô tả như sau: P = I1; I = (2i1)(2j, 2j + 16); E(X) = (X, X<<<4, X<<<8,
X<<<12)
Còn hoán vị I1 trong hình 5b được mô tả như là hoán vị giữa 2 tầng
trong phần tử F16/64 (tức giống hoán vị I đã mô tả trong phần II).
3.2.2 Thuật toán mã khối BM-64
Thuật toán BM-64 là thuật toán mã hóa khối với kích thước khối là 64
bits. Nó gồm 8 vòng biến đổi, không sử dụng quá trình tạo khóa phức tạp và
4x4.
xây dựng trên cơ sở CSPN kết hợp với các hoán vị cố định và hộp S4x4, S-1
Các hộp này được xây dựng trên cơ sở các bảng hoán vị đã được sử dụng
40 trong thuật toán mã hóa Serpent (xem bảng 3.2). Việc sử dụng phần tử F2/2
trong CSPN của thuật toán giúp nâng cao chủ yếu các chỉ tiêu mật mã của
khối mở rộng. Từ đó cho phép giảm số vòng mã hóa nhưng vẫn bảo toàn độ
bền vững cao của các thuật toán mật mã. Đồng thời nó bảo đảm hạ thấp độ
phức tạp về thiết bị khi thực hiện trên FPGA với cấu trúc đường ống
(PiPelining-PP) và nâng cao tốc độ mã hóa với cấu trúc lặp (Iterative Looping
- IL). Đặc điểm nổi bật mà BM-64 có được và hướng tới đó là:
1) Sử dụng lược đồ sinh khóa vòng đơn giản, nhờ đó mà bảo đảm được
tốc độ mã hóa cao trong điều kiện thường xuyên thay đổi khóa phiên.
2) Cơ chế lựa chọn khóa mật mềm dẻo, có thể sử dụng khóa mật 128
bits, hoặc 192 bits hoặc 256 bits tùy từng yêu cầu của ứng dụng.
3) Quá trình xử lý trong mỗi vòng mã hóa cơ sở là song song nên đã
góp phần tạo ra tốc độ cao trong việc mã hóa.
4) Các phép biến đổi phi tuyến được tạo lên từ đặc trưng vi phân của
phần tử được điều khiển tối thiểu.
5) Hai thủ tục mã hóa và giải mã cùng thực hiện chung trên một sơ đồ.
6) Hiệu năng sử dụng thiết bị sẽ đạt tới điểm đỉnh khi triển khai thực
hiện trên FPGA giá rẻ do thuật toán đã sử dụng phần tử F2/2 là toán tử được
chứng minh là rất phù hợp.
7) Thuật toán nhằm hướng đến ứng dụng trong các mạng truyền thông
không dây tốc độ cao nhưng đòi hỏi hạn chế về năng lượng, diện tích bề mặt
như WSNs, thẻ thông minh.
41
b).Sơ đồ một vòng mã hóa cơ sở
Hình 3. 3 Sơ đồ cấu trúc của thuật toán BM-64. a). Sơ đồ tổng quát.
Dựa trên kết quả của việc phân tích thống kê ảnh hưởng của khóa và
phân tích để loại trừ điểm yếu trong tấn công trên khóa liên kết, đã đề ra bảng
miêu tả khóa. Ở đây các khóa con được tạo ra từ khóa mật (Khóa
mật có thể là 128, 192 và 256-bits) K = (K1, K2... Ki). Các khóa vòng Uj/Qj
(dùng trong mã hóa) hoặc Q'j/U'j (dùng khi giải mã) được lựa chọn từ các
khóa con Ki và được liệt kê trong bảng 3. Với lịch biểu như vậy, chúng tôi
không sử dụng quá trình biến đổi khóa mật phức tạp nhưng vẫn đảm bảo độ
an toàn (xem chứng minh phần sau). Ngoài ra, trong mỗi vòng biến đổi chúng
tôi chỉ sử dụng khóa con 32 bits cho cả khối dữ liệu con bên trái và bên phải.
Điều này giúp cho việc thực hiện trên phần cứng sẽ giảm được chi phí. Trong
các bảng này, j = 9 tương ứng với biến đổi cuối cùng.
Bảng 3. 3 Lịch biểu sử dụng khóa trong thuật toán BM-64 với khóa mật 128 bits.
No. rounds j
1
2
3
4
5
6
7
8
9
K1/K3 K2/K3 K3/K2 K4/K1 K4/K2 K1/K3 K4/K3 K1/K2 K2/K3
Enc Qj/Uj
Dec Q'j/U'j K1/K3 K4/K1 K2/K4 K1/K2 K4/K3 K1/K3 K4/K2 K4/K1 K4/K1
42
Bảng 3. 4 Lịch biểu sử dụng khóa trong thuật toán BM-64 với khóa mật 192 bits.
No. rounds j
1
2
3
4
5
6
7
8
9
K1/K3 K2/K4 K5/K6 K2/K1 K4/K6 K5/K3 K2/K3 K1/K3 K4/K6
Enc Qj/Uj
Dec Q'j/U'j K1/K3 K6/K5 K3/K2 K1/K3 K2/K3 K5/K3 K4/K6 K2/K1 K2/K3
Bảng 3. 5 Lịch biểu sử dụng khóa trong thuật toán BM-64 với khóa mật 256 bits.
No. rounds j
1
2
3
4
5
6
7
8
9
K1/K3 K2/K4 K5/K8 K7/K6 K4/K2 K2/K8 K6/K5 K1/K3 K7/K6
Enc Qj/Uj
Dec Q'j/U'j K1/K3 K7/K4 K3/K7 K1/K3 K6/K5 K2/K8 K4/K2 K7/K6 K1/K3
3.3 Đánh giá độ an toàn của BM-64
3.3.1 Đánh giá về đặc trưng thống kê của BM-64 theo chuẩn NESSIE
Theo công bố của NESSIE, độ an toàn của các thuật toán mã hóa được
xem xét dựa trên 4 tiêu chí sau đây:
a) Số lượng trung bình các bit đầu ra thay đổi khi thay đổi một bit đầu vào
(kí hiệu: d1).
b) Mức độ biến đổi hoàn toàn (kí hiệu: dc).
c) Mức độ của hiệu ứng thác lũ (kí hiệu: da).
d) Mức độ phù hợp với tiêu chuẩn hiệu ứng thác lũ chặt chẽ (kí hiệu: dsa).
Đồng thời theo NESSIE, độ an toàn hay các phép biến đổi trong các
thuật toán mã hóa sẽ tốt nhất khi các điều kiện sau đồng thời xảy ra: dc = 1, da
1, dsa 1 và d1 n/2.
Căn cứ vào đó, luận văn đã tiến hành đánh giá các đặc trưng thống kê
của thuật toán mật mã đã phát triển và thu được kết quả hoàn toàn đáp ứng
với các tiểu chuẩn mà NESSIE quy định. Thử nghiệm được tiến hành với số
lượng phép thử là 2000 trong 2 trường hợp: K(khóa) = 1; X(dữ liệu) = 1000
và K = 1000; X = 1. Các kết quả đánh giá bằng thực nghiệm của thuật toán
BM-64 được trình bày chi tiết trong bảng 3.6. Từ các kết quả thực nghiệm
cho thấy, chỉ sau 3 vòng mã hóa, thuật toán đã đáp ứng hoàn toàn theo 4 tiêu
chuẩn của NESSIE về sự ảnh hưởng của các bits dữ liệu gốc, cũng như sự ảnh
43 hưởng của các bits khóa. Việc nghiên cứu các đặc trưng thống kê về sự ảnh
hưởng của các bits khóa trong thuật toán này là điều đáng quan tâm và là một
yếu tố giúp chứng minh được độ an toàn của thuật toán đã phát triển, bởi như
mô tả trên thuật toán này đã sử dụng phép mở rộng khóa rất đơn giản nhưng
vẫn đảm bảo được các tiêu chuẩn thống kê theo quy định của NESSIE.
Bảng 3. 6 Ảnh hưởng của bit dữ liệu và bit khóa trong thuật toán BM-64.
#X=1000; #K=1
#X=1; #K=1000
d1
dc
da
dsa
d1
dc
da
dsa
14.400859
0.625000
0.450027
0.447187
7.237773
0.312500
0.226180
0.224736
1
30.901031
1.000000
0.964625
0.949723
22.670906
0.812500
0.708260
0.699468
2
31.984656
1.000000
0.997104
0.975124
31.470922
1.000000
0.980920
0.962571
3
32.026047
1.000000
0.997059
0.974704
32.001016
1.000000
0.996821
0.975095
4
32.002016
1.000000
0.996656
0.974706
32.014047
1.000000
0.996617
0.974780
5
31.983344
1.000000
0.996748
0.974891
31.989188
1.000000
0.996667
0.974813
6
31.977547
1.000000
0.996492
0.974349
31.998602
1.000000
0.996882
0.975100
7
31.997859
1.000000
0.996698
0.975111
31.995586
1.000000
0.996643
0.974738
8
3.3.2 Đánh giá về thám mã vi sai
Thám mã vi sai được xem là giải pháp phổ biến được dùng cho mã khối
để xét khả năng an toàn của thuật toán trước tấn công bằng thám mã vi sai. Vì
vậy việc tính toán vết vi sai để đánh giá khả năng chống lại thám mã này là
yêu cầu tối cần thiết khi phát triển một thuật toán mã khối. Sau đây sẽ tiến
hành đánh giá vi sai của thuật toán BM-64.
Phân tích sự tồn tại vết vi sai qua hai vòng mã. Để làm điều đó dựa
trên cơ sở vi sai tồn tại qua từng phần tử F2/2 đã được mô tả trong bảng 1 của
phần II. Nhận thấy khi vết vi sai đi qua nửa nhánh bên trái (nhìn hình 6), vết
này sẽ qua phép mở rộng , thu được vết vi sai có trọng số là 4,
và ta dễ dàng tìm được xác suất . Còn là xác
suất vết vi sai rơi vào nửa nhánh trái của nhánh trái. Phân tích bảng hoán đổi
44
S, ta thu được vết vi sai này có trọng số là 2, sau
. Vết vi sai ở khi đi qua phần tử F16/64 ta thu được
vòng 1 sẽ qua vòng 2, thì ta nhận thấy ngay chỉ cần tính giá trị sác xuất
. Như vậy xác suất lớn nhất tồn tại vết vi sai qua 2
vòng mã là: 2-34.
Ngoài phương pháp tính vi sai trực tiếp như trên, chúng tôi còn tiến
hành đánh giá bằng thực nghiệm. Với phương pháp tính thám mã vi sai với số
lượng mẫu thử của bản rõ là 40.000 phép thử chúng tôi thu được xác xuất P =
{0.00000000015737192105}^4 ≈ 2-130.26.
Như vậy, với kết quả theo cả 2 phương pháp nêu trên, ta thấy chỉ sau
vòng 4 xác xuất đã nhỏ hơn giá trị 2-64. Điều đó khẳng định rằng, chỉ sau 4
vòng mã hóa, BM-64 đã dư khả năng chống lại thám mã vi. Nhưng chúng tôi
vẫn để số vòng là 8 để nâng cao độ an toàn của thuật toán và nhằm có khả
năng chống lại được những kiểu tấn công khác nhau đã được biết đến.
Đồng thời để chỉ ra những điểm vượt trội khác của thuật toán đã đề
xuất, sau đây luận văn đưa ra bảng so sánh về đặc trưng vi sai của một số các
thuật toán thông dụng đã được đề xuất trước đây trong bảng 3.7. Trong bảng
3.7, BM-64 có được giá trị xác xuất tốt nhất sau 2 vòng.
45
Hình 3. 4 Thông tin về vi sai sau vòng 2 của thuật toán BM-64.
Như vậy qua các phân tích, tính toán và so sánh trên, thuật toán phát
triển có khả năng chống lại thám mã vi sai tốt hơn so với nhiều thuật toán phổ
dụng hiện nay.
46
Điều đó cũng đồng nhất với việc khẳng định chúng có độ an toàn tốt
hơn các thuật toán này.
Bảng 3. 7 So sánh đặc trưng vi sai của một số mã hóa khối
Đặc trưng vi phân
Mã khối
P(r)
Số vòng r
Nhỏ nhất
P(Z)
COBRA-H64 [5]
8
DDO-64 [9]
6
COBRA-F64A [5]
16
COBRA-F64A [5]
12
COBRA-F64A [5]
10
COBRA-F64B [5]
20
COBRA-F64B [5]
14
COBRA-F64B [5]
12
8
BM-64
3.4. Cài đặt mô phỏng và đánh giá hiệu quả tích hợp của thuật toán
3.4.1 Công cụ cài đặt mô phỏng
Xilinx ISE Design Suite được sử dụng để thiết kế có thể tùy chỉnh
mạch tích hợp. Đáng chú ý nhất, bộ phần mềm được sử dụng để thiết kế
Mảng lập trình trường FPGA (Field-programmable gate array), cho phép
một nhà thiết kế hoặc khách hàng định cấu hình mạch sau khi sản xuất. ISE
Design Suite có sẵn cho các nền tảng Windows và Linux.
ISE Design Suite được tạo để cho phép tổng hợp và phân tích các thiết
kế mạch điện tử của mình. Các mạch được viết bằng một ngôn ngữ máy tính
chuyên dụng gọi là Ngôn ngữ mô tả phần cứng (HDL). Với bộ phần mềm, có
thể kiểm tra sơ đồ Cấp độ đăng ký, thực hiện phân tích thời gian và mô phỏng
các kích thích khác nhau để kiểm tra phản ứng của thiết kế.
Bộ thiết kế ISE có sẵn trong các phiên bản khác nhau, chẳng hạn như
Embedded, System và WebPACK. Mặc dù mỗi phiên bản được đóng gói với
các tính năng khác nhau, ISE Design Suite cung cấp các công cụ có thể được
47 thêm vào cho các cấu hình linh hoạt để nâng cao năng suất của bạn. Các công
cụ có sẵn bao gồm bộ công cụ ChipScope và Bộ công cụ phát triển nhúng,
mỗi bộ được thiết kế để sử dụng với phiên bản WebPACK. Bộ công cụ
ChipScope cung cấp một thiết lập và gỡ lỗi nhanh các kênh I / O nối tiếp
trong các thiết kế đồ họa tốc độ cao, trong khi Bộ công cụ phát triển nhúng là
một IDE Được sử dụng để thiết kế hệ thống xử lý nhúng
ISE Design Suite là một công cụ toàn diện cho phép bạn thiết kế, phân
tích và kiểm tra các mạch tích hợp. Nó cung cấp một loạt các tính năng mạnh
mẽ được đóng gói trong các phiên bản khác nhau và thậm chí cho phép bạn
tùy chỉnh lựa chọn công cụ của mình. Xilinx ISE Design Suite là một lựa
chọn tuyệt vời để thiết kế và thử nghiệm các thiết kế mạch tích hợp của bạ
Phần mềm ISE (Integrated Software Environment) này là một môi
truờng thiết kế hoàn hảo của Xilinx, nó trợ giúp cho người thiết kế hầu hết các
công cụ cần thiết để có thể hoàn thành một đề án thiết kế nhanh nhất và hiệu
quả nhất. ISE tích hợp các công nghệ tiên tiến nhất mạng lại tính linh hoạt,
giao diện GUI thân thiện với nguời sử dụng.
Một số ưu điểm của ISE là:
- Tận dụng tối đa tất cả các công nghệ tiên tiến nhất của PLD.
- Tiết kiệm thời gian thiết kế, hỗ trợ tất cả các dòng sản phẩm của
Xilinx.
- Tăng hiệu quả và giảm giá thành.
- Hỗ trợ tối đa cho việc thiết kế các hệ thống nhúng.
Bộ sản phẩm ISE bao gồm các gói phần mềm:
* ISE WebPACK: Ðây là gói sản phẩm dùng dể phát triển hệ thống
một cách dễ dàng nhất vì nó là môi trường thiết kế on-line (trực tuyến) trên
Web và được hỗ trợ trực tiếp từ Xilinx. ISE WebPACK cho phép nguời dùng
hoàn thành bản thiết kế nhanh chóng nhờ sự kết hợp của các thiết kế dầu vào
HDL, các công vụ tổng hợp tiên tiến và khả năng kiểm tra đối với cả CPLD và
FPGA trực tuyến.
48
* ISE BaseX: Ðây là gói phần mềm hiệu quả về kinh tế nhất, là môi
trường thiết kế PLD trên máy tính cá nhân linh hoạt và ổn dịnh.
* ISE BaseX: Ðây là gói phần mềm hiệu quả về kinh tế nhất, là môi
trường thiết kế PLD trên máy tính cá nhân linh hoạt và ổn dịnh. Nó cung cấp
tất cả các khả năng như ISE WebPACK, ngoài ra nó còn duợc bổ sung nhiều
công cụ khác hỗ trợ cho người dùng.
* ISE Alliance: Gói phần mềm này duợc thiết kế phù hợp với môi
truờng thiết kế có sẵn của người dùng. Nó kết hợp các công cụ hay nhất của
Xilinx để tạo môi trường thiết kế hoàn chỉnh với các tính năng cao hơn ISE
BaseX.
* ISE Foundation: Ðây là gói phần mềm hoàn chỉnh nhất, dễ sử dụng,
tính năng nhiều nhất đồng thời tích hợp các công cụ phân tích, tổng hợp và
công nghệ kiểm tra sản phẩm với các giải pháp hữu hiệu.
3.4.2 Kết quả đánh giá và so sánh hiệu suất trên FPGA
Luận văn đã tiến hành triển khai thực hiện thuật toán BM-64 trên
FPGA và tiến hành đánh giá để so sánh với một số các thuật toán mã hóa
đang được sử dụng phổ biến hiện nay. Để đảm bảo tính khách quan, nghiên
cứu cũng thực hiện trên FPGA dòng Virtex-4, loại thiết bị 5vlx20tff323-2.
3.4.2.1 Minh họa một số giao diện mô phỏng trền FPGA:
Luận văn đã sử dụng ngôn ngữ mô tả phần cứng VHDL để thực hiện
việc cài đặt BM-64 trên FPGA. Việc làm này nhằm mục tiêu nhận được các
tham số về tần số (MHz) và tài nguyên (CLB) cho thuật toán trên dòng FPGA
tương ứng đã lựa chọn. Qua đó đánh giá được hiệu quả tích hợp của thuật
toán trên phần cứng.
Các kỹ thuật chính được sử dụng trong quá trình triển khai cài đặt trên
FPGA gồm:
- Ngôn ngữ mô tả thuật toán: VHDL với dòng phần mềm ISE của Xilinx.
- Chế độ hoạt động của thuật toán: không hồi tiếp (chế độ ECB).
49
- Cấu trúc thiết kế trên FPGA: theo cả 2 cấu trúc vòng lặp cơ sở IL và
cấu trúc vòng lặp toàn phần PP.
Thuật toán khi triển khai cài đặt trên FPGA gồm các thành phần cơ bản
được liệt kê dưới đây và mỗi thành phần thuật toán đảm nhận một chức năng riêng:
- Khối chức năng mã/giải mã.
- Khối chức năng sinh khóa.
- Khối điều khiển.
- Khối tạo thanh ghi.
Sau đây là cài đặt chi tiết của thuật toán BM-64.
a. Theo cấu trúc vòng lặp cơ sở IL
Phần mềm mô phỏng thuật toán trên FPGA được mô tả trong 7 file và
mỗi file có chức năng tương ứng được giải thích chi tiết như sau:
Tên file Chức năng
alg_iterative.vhdl Mô tả chế độ làm việc của thuật toán 1
alg_pack.vhd Định nghĩa các phần tử điều khiển, các phép 2
biến đổi sử dụng trong thuật toán và hàm biến
đổi cho vòng mã hóa cơ sở
alg_top_Iter.vhd Mô tả cổng tín hiệu của các khối chức năng 3
controller_iter.vhdl Mô tả khối điều khiển của chương trình 4
interface.vhdl Mô tả tín hiệu đầu vào, tín hiệu ra, tín hiệu 5
điều khiển, chuyển dữ liệu
reg64b.vhd Mô tả việc chuyển đổi dữ liệu giữa 2 thanh ghi 6
key_schedule_iter.vhd Mô tả lược đồ khóa của thuật toán 7
50
Hình 3. 5 Sơ đồ thiết kế tổng thể của BM-64 trên FPGA (cấu trúc IL)
Trên cơ sở các mô dul thiết kế của từng khối chức năng, sơ đồ thiết kế
tổng thể của thuật toán trên FPGA theo cấu trúc IL được biểu diễn trong hình 3.5.
b. Theo cấu trúc vòng lặp cơ sở PP
Phần mềm mô phỏng thuật toán trên FPGA theo cấu trúc PP bao gồm 9
file và mỗi file có chức năng tương ứng được giải thích như sau:
Tên file Giải thích ý nghĩa
alg_PIPE.vhdl Mô tả chế độ làm việc của thuật toán 1
alg_pack.vhd 2
Định nghĩa các phần tử điều khiển, các phép biến đổi sử dụng trong thuật toán và hàm biến đổi cho vòng mã hóa cơ sở
alg_top_PIPE.vhd Mô tả cổng tín hiệu của các khối chức năng 3
controller_PIPE.vhdl Mô tả dữ liệu điều khiển của chương trình 4
51
interface.vhdl 5 Mô tả tín hiệu đầu vào, tín hiệu ra, tín hiệu điều khiển, chuyển dữ liệu
reg64b.vhd Mô tả việc đổi dữ liệu dữ 2 thanh ghi 6
key_schedule_PIPE.vhd Mô tả lược đồ khóa của thuật toán 7
FP.vhd Mô tả phép biến đổi cuối của thuật toán 8
Alg_ROUND.vhd 9 Mô tả kiến trúc RTL dùng lưu trữ thông số hàm ALG_ROUND_FUNCT.
Trên cơ sở các modul thiết kế của từng khối chức năng, sơ đồ thiết kế
tổng thể của thuật toán BM-64 theo cấu trúc PP trên FPGA được biểu diễn
trong hình 3.6.
Theo cấu trúc PP, tất cả các vòng mã hóa đều được thực hiện song
song. Chức năng thực hiện mã/giải mã (ENC_DNC_B) chỉ kết nối đến 8 khối
mã/giải mã. Tuy nhiên, không làm mất tính tổng quát c ủa sơ đồ và để dễ quan sát.
52
Hình 3. 6 Sơ đồ thiết kế BM-64 trên FPGA (cấu trúc PP)
53
Tất cả các thành phần khác trong thuật toán trong hình 3.6 các khối biểu diễn
(phép biến đổi của vòng mã cơ sở và thanh ghi dữ liệu) của vòng thứ 3, 4, 5, 6, 7
của thuật toán không được biểu diễn trên hình vẽ (có thể quan sát trong khi chạy
chuong trình).
3.4.2.2 Kết quả đánh giá
Chi tiết kết quả được miêu tả trong bảng 3.8 Việc đánh giá được triển khai
theo cả cấu trúc đường ống (N = n= số vòng mã hóa) và cấu trúc lặp (N = 1) để qua
đó đánh giá được hiệu quả của thuật toán trong từng cấu trúc giúp cho việc lựa
chọn chúng trong các ứng dụng cụ thể dễ dàng hơn, phù hợp với mục tiêu lựa chọn
hướng tới.
Bảng 3. 8 So sánh kết quả thực hiện các thuật toán khác nhau trên FPGA với BM-64
Hiệu suất
Mã khối
Số vòng
Diện tích (#CLBs)
Tần số (MHz)
Thông lượng (Mbps)
N
Kích thước khối
Mbps / #CLBs
Mbps/(#CLBs*GHz)
8
2067
167
10683
5,17
30,97
64
8
BM-64
10
10
3440
95
6100
1,77
18,67
DDP-64 [9]
64
12
12
7021
83
5312
0,76
9,12
SPECTR-64 [5]
64
10
10
17314
28,5
3650
0,21
7,40
AES [6]
10
3020
85
5500
1,82
21,43
COBRA-H64 [5]
64
8
8
6346
81
5184
0,82
10,09
CIKS-1 [5]
?
1
8
413
158
1266
3,06
19,37
BM-64
64
1
10
615
85
544
0,88
10,41
DDP-64 [9]
64
1
12
713
83
443
0,62
7,48
SPECTR-64 [5]
64
1
8
350
130
924
2,64
20,31
DDO-64 [8]
64
Thông qua bảng kết quả trên cho thấy, BM-64 có tốc độ cao hơn, nhưng lại
yêu cầu về phần cứng nhỏ hơn so với một số thuật toán khác. So sánh về hiệu xuất
được thực hiện trên cơ sở: thông lượng/diện tích và thông lượng / (diện tích × Tần
số) đã chỉ ra rằng thuật toán BM-64 cũng có hiệu suất cao hơn.
54 KẾT LUẬN
Trong thời gian nghiên cứu để triển khai thực hiện luận văn em đã tự rút ra
được nhiều kết luận cho chính bản thân. Như nhận thức của em ngay trong phần
mở đầu, mật mã là một lĩnh vực rộng lớn được ứng dụng trong nhiều lĩnh vực khác
nhau của đời sống công nghệ nên việc nắm vững và sâu sắc về nó để xây dựng và
phát triển ứng dụng là yêu cầu cần thiết.
Qua quá trình nghiên cứu em đã thu được một số kết quả sau:
Về mặt lý thuyết:
- Nắm vững kiến thức cơ bản về mã khối.
- Hiểu thêm các tiêu chuẩn cần đạt được của các thuật toán mã khối
- Nắm vững và hiểu về các nguyên lý xây dựng CSPN, biết phân tích để lựa
chọn được toán tử phù hợp trong từng điều kiện cụ thể đặt ra.
- Hiểu các chiến lược và kỹ thuật triển khai các thuật toán mã khối trên
FPGA nhằm ứng dụng nâng cao hiểu quả tối ưu của thiết kế đưa ra trong quá trình
thực hiện.
Về mặt thực hành:
- Mô phỏng được thuật toán mã hóa khối 64 bit BM-64 phù hợp cho các
ứng dụng trong WSNs.
- Triển khai thực hiện BM-64 trên FPGA để so sánh với các thuật toán phổ
dụng hiện nay.
Trên cơ sở các nghiên cứu trên, em sẽ có những hướng đi rõ ràng để tiếp tục
hoàn thiện hơn kiến thức và phát triển tiếp các công trình nghiên cứu trong giai
đoạn tiếp tới.
55 TÀI LIỆU THAM KHẢO
TIẾNG ANH:
[1] Moldovyan, N.A, Alexander A. Moldovyan, Data-Driven Block ciphers for
fast telecommunication systems, Auerbach Publications Taylor & Francis
Group, New York, pp.72-80, 2008.
[2] “NESSIE. New European Schemes for Signatures, Integrity, and Encryption”
https://www.cosic.esat.kuleuven.ac.be/nessie/
[3] Phan Đình Diệu (2002), Lý thuyết mật mã và an toàn thông tin, Nhà xuất bản
Đại học Quốc Gia Hà Nội.
[4] Hu F, Ziobro J, Tillett J, Sharma N. K, “Secure wireless sensor networks:
problems and solutions,” J. Syst., Cybern. Inf., 11(9):419-439, 2004.
[5] Moldovyan N.A., Moldovyan A.A. Data-driven Ciphers for Fast
Telecommunication Systems. Auerbach Publications. Talor & Francis Group.
New York, London. 2008.
[6] Ichikawa T., Kasuya T., Matsui M. Hardware Evaluation of the AES Finalists //
Proc. 3rd Advanced Encryption Standard (AES) Candidate Conference, New
York, April 13-14, 2000.
[7] MinhN.H., Duy H.N., Dung L.H. Design and Estimate of a New Fast Block
Cipher for Wireless Communications Devices // The 2008 International
Conference on Advanced Technologies for Communications (ATC’08) and
REV’08, Ha Noi, PP. 409-412 (2008).
[8] Moldovyan, N.A., Moldovyan, A.A., Eremeev, M.A., and Summerville, D.H.
2004.Wireless networks security and cipher design based on data-dependent
operations: Classification of the FPGA suitable controlled elements.
Proceedings of the CCCT-2004. Vol. VII, Austin, TX. pp. 123–28.
56 [9] Moldovyan, N.A., Sklavos, N., and Koufopavlou, O. 2005. Pure DDP-base
cipher: Architecture analysis, Hardware Implementation cost and Performance
up to 6.5 Gbps. International Arab Journal of Information Technology 2: 24–32.
[10] Nguyen Hieu Minh, Do Thi Bac, Ho Ngoc Duy. New SDDO-Based Block
Cipher for Wireless Sensor Network Security // International Journal of
Computer Science and Network Security, VOL.10 No.3, March 2010 PP. 54 – 60.
TIẾNG VIỆT:
[11] Hồ Ngọc Duy, Đỗ Thị Bắc, Молдовян А.А., Молдовян Д.Н. “Các thuật
toán mã khối tốc độ cao trên cơ sở mạng hoán vị-thay thế điều khiển được”.
Các vấn đề về bảo mật thông tin. Tập 2; Số 89, trang 7-17; Năm 2010.
[12] Đỗ Thị Bắc, “Họ thuật toán mật mã khối mới cho các mạng truyền dữ liệu
thời gian thực” Tạp chí khoa học và công nghệ - Đại học Thái Nguyên. Tập
157, số 12/1211-217, Năm 2017.
[13] Đỗ Thị Bắc, “Về một giải pháp bảo mật truyền thông trong chip ÉP8266”
Tạp chí khoa học và công nghệ - Đại học Thái Nguyên, Tập 200, Số 07,
5/2019; Trang 98-97, Năm 2019.