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
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 1 14.400859 0.625000 0.450027 0.447187 7.237773 0.312500 0.226180 0.224736 2 30.901031 1.000000 0.964625 0.949723 22.670906 0.812500 0.708260 0.699468 3 31.984656 1.000000 0.997104 0.975124 31.470922 1.000000 0.980920 0.962571 4 32.026047 1.000000 0.997059 0.974704 32.001016 1.000000 0.996821 0.975095 5 32.002016 1.000000 0.996656 0.974706 32.014047 1.000000 0.996617 0.974780 6 31.983344 1.000000 0.996748 0.974891 31.989188 1.000000 0.996667 0.974813 7 31.977547 1.000000 0.996492 0.974349 31.998602 1.000000 0.996882 0.975100 8 31.997859 1.000000 0.996698 0.975111 31.995586 1.000000 0.996643 0.974738 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 P1 1/2 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
S, ta thu được vết vi sai này có trọng số là 2, sau khi đi qua phần tử F16/64 ta thu được . Vết vi sai ở 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.
S 4x4 F16/64 S 4x4 F-16/64 F16/64 F16/64 ..1.. 1 1 1 E E F 16/64 F 16/64 1 (4) (4) 1 0 0 0 0 ..1..1.. 0 0 0 1 0 0 0 0 ..4x1.. ..4x1.. ..4x1.. ..1.. S 4x4 F16/64 S 4x4 F-16/64 F16/64 F16/64 0 1 1 1 E E F 16/64 F 16/64 1 (4) (4) 0 ..1.. 0 0 0 0 0 1 0 1 0 0 0 0 ..1.. ..1.. ..1.. P=2-1 1 P=2-1 2 P=2-8 3 P=2-3.5 4 P=2-1.5 5
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.
Đ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
Mã khối Số vòng r Đặc trưng vi phân P(r) Nhỏ nhất P(Z) COBRA-H64 [5] 8 P(2) 1.13 2 19 75 2 DDO-64 [9] 6 P(2)229 87 2 COBRA-F64A [5] 16 P(32)221 100 2 COBRA-F64A [5] 12 P(2)28 96 2 COBRA-F64A [5] 10 P(2)220 100 2 COBRA-F64B [5] 20 P(2)212 120 2 COBRA-F64B [5] 14 P(2)218 126 2 COBRA-F64B [5] 12 P(2)224 144 2 BM-64 8 P(2)234 137 2
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
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.
* 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).
- 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
1 alg_iterative.vhdl Mô tả chế độ làm việc của thuật toán
2 alg_pack.vhd Đị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ở
3 alg_top_Iter.vhd Mô tả cổng tín hiệu của các khối chức năng 4 controller_iter.vhdl Mô tả khối điều khiển của chương trình
5 interface.vhdl 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
6 reg64b.vhd Mô tả việc chuyển đổi dữ liệu giữa 2 thanh ghi 7 key_schedule_iter.vhd Mô tả lược đồ khóa của thuật toán
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
1 alg_PIPE.vhdl Mô tả chế độ làm việc của thuật toán
2 alg_pack.vhd
Đị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ở
5 interface.vhdl 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 6 reg64b.vhd Mô tả việc đổi dữ liệu dữ 2 thanh ghi 7 key_schedule_PIPE.vhd Mô tả lược đồ khóa của thuật toán 8 FP.vhd Mô tả phép biến đổi cuối của thuật toán 9 Alg_ROUND.vhd 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.
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
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.
Mã khối Kích thước khối Số vòng N Diện tích (#CLBs) Tần số (MHz) Thông lượng (Mbps) Hiệu suất Mbps / #CLBs Mbps/(#CLBs*GHz) BM-64 64 8 8 2067 167 10683 5,17 30,97 DDP-64 [9] 64 10 10 3440 95 6100 1,77 18,67 SPECTR-64 [5] 64 12 12 7021 83 5312 0,76 9,12 AES [6] 10 10 17314 28,5 3650 0,21 7,40 COBRA-H64 [5] 64 10 3020 85 5500 1,82 21,43 CIKS-1 [5] ? 8 8 6346 81 5184 0,82 10,09 BM-64 64 8 1 413 158 1266 3,06 19,37 DDP-64 [9] 64 10 1 615 85 544 0,88 10,41 SPECTR-64 [5] 64 12 1 713 83 443 0,62 7,48 DDO-64 [8] 64 8 1 350 130 924 2,64 20,31
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à