Nâng cao hiệu năng của thuật toán AES cải tiến với ma trận MDS

Một phần của tài liệu Nghiên cứu một số giải pháp nâng cao hiệu năng của thuật toán mã hóa (Trang 57 - 67)

Chương 1 TỔNG QUAN VỀ THUẬT TOÁN MÃ HOÁ

2.3 Nâng cao độ an toàn và hiệu năng cao thuật toán AES

2.3.3 Nâng cao hiệu năng của thuật toán AES cải tiến với ma trận MDS

Kiến trúc cho module thực hiện thuật tốn mã khối có thể chia ra mấy nhóm chính: kiến trúc lặp, kiến trúc kết hợp, đường ống toàn phần, kiến trúc lai ghép. Người thiết kế sẽ căn cứ vào các yếu tố sau: độ mật, tốc độ mã hóa, tài ngun tính tốn, tính hiệu quả, mơi trường ứng dụng để lựa chọn kiến trúc phần cứng cho các module mật mã. Sau đây là một số kiến trúc của module mật mã được đề xuất và thực thi nhằm nâng cao hiệu năng của thuật tốn mã hóa AES-256.

a. Kiến trúc đường ống toàn phần

Từ nguyên lý hoạt động của thuật tốn mã khối AES cải tiến được trình bày, luận án đã thiết kế và thực hiện cứng hóa thuật tốn AES-256 cải tiến theo kiến trúc mơ hình đường ống tồn phần như hình 2.3.

Hình 2.3. Mơ hình kiến trúc mã khối AES-256 theo kiến trúc đường ống (Rõ - Bản rõ; Mã - Bản mã)

Hình 2.4 Cấu trúc một module Encryption

Hình 2.5. Cấu trúc module Encryption 14

R (128 bit) (128 bit) Encryption 1 14 Khối Encryption Sinh Khóa V ng XOR k0 …. Encryption 13 Encryption 2 Encryption 14 Mầm khóa (256 bit) K0 K1 K2 K13 K14 Encryption Subbyte Xor Ki Ki

Shift_Row Mixcolumn (128 Bit)Đầu ra

Đầu vào ( 128 Bit) Ri Li Encryption Subbyte Xor Ki Ki

Shift_Row Mixcolumn (128 Bit)Đầu ra Đầu vào

( 128 Bit)

Ri

Đối với kiến trúc đường ống tồn phần, 14 vịng lặp trong q trình mã hóa AES cải tiến được thực hiện riêng rẽ trên 14 module Encryption. Trong

đó, mỗi một module Encryption gồm các hàm xử lý: Add_Round_Key cộng module 2 giữa dữ liệu Ri và khóa con Ki , phép biến đổi Subbyte theo bảng thế 1 với các giá trị Sbox, thực hiện phép biến đổi dịch vòng Shift_Row, thực hiện phép biến đổi Mixcolumn. Riêng module "Encryption14" không thực hiện phép biến đổi Mixcolumn.

Tồn bộ kiến trúc của mơ hình giống một “ống nước”. Sau khi dữ liệu đầu vào sẽ đi qua lần lượt 14 module Encryption, cho kết quả đầu ra mã hóa. Với mơ hình này u cầu lượng tài nguyên rất lớn (do cần lượng tài nguyên đủ

cho 14 module riêng rẽ), nhưng bù lại tốc độ xử lý rất cao; sau 14 chu kỳ clock

đầu tiên, cứ một nhịp clock sẽ có một khối dữ liệu 128-bit đã được mã hóa ở đầu ra. Thuật tốn AES-256 cải tiến thực hiện theo mơ hình đường ống tồn phần đạt tốc độ mã hóa/giải mã cao nhất, tuy nhiên tài nguyên sử dụng cho mô hình này lớn.

Kết quả đạt được khi thiết kế tổng hợp core trên chip FPGA với tần số hoạt động 100 Mhz. Core mã hóa AES hoạt động được với tần số tối đa 1008,827 Mhz. Nếu ta cung cấp được tối đa tần số hoạt động cho core mã hóa AES thì tốc độ mã hóa lớn nhất của core AES có thể đạt 1008,827 128( ) 9,01

14  bitGbpsđây là tốc độ mã hóa rất cao có thể đáp ứng đầy đủ các ứng dụng hiện nay. Kết quả quá trình thực thi thiết kế cứng hóa trên FPGA mơ hình kiến trúc đường ống tồn phần (hình 2.7).

Hình 2.6. Sơ đồ nguyên lý RTL và Tần số hoạt động core AES-256 theo kiến trúc đường ống toàn phần

Kết quả kiểm tra mô phỏng AES-256 cải tiến theo kiến trúc đường ống tồn phần trên cơng cụ ISIM của ISE:

Để kiểm tra tính đúng đắn của mơ hình đề xuất, luận án đã thực nghiệm mô phỏng trên bộ công cụ ISIM của ISE như sau:

Khối dữ liệu đầu vào và khóa được lấy theo tài liệu chuẩn Fips.197 Bản rõ đầu vào, khóa và bản mã đầu ra:

Data_in = 128'h 00112233445566778899aabbccddeeff Key_in = 256'h000102030405060708090a0b0c0d0e0f1 01112131415161718191a1b1c1d1e1f

Data_out = 128'h 8ea2b7ca516745bfeafc49904b496089

Thời gian tính tốn bắt đầu khi tín hiệu start = 1'b1; kết thúc khi tín hiệu Done_aes = 1'b1;

Dựa vào kết quả mô phỏng trên công cụ ISIM ta thấy thời gian thực hiện quá trình mã hóa trong 1 chu kỳ clock.

Hình 2.7. Kết quả thực hiện AES-256 theo mơ hình kiến trúc đường ống tồn phần trên cơng cụ ISIM

Hình 2.8. Tài nguyên thiết kế AES-256 cải tiến theo kiến trúc đường ống tồn phần

b. Mơ hình kiến trúc lặp

Thuật toán mã khối AES-256 cải tiến theo mơ hình kiến trúc lặp sử dụng duy nhất block Encryption 1 khi đó kết quả đầu ra được lặp lại 13 vòng, cuối cùng dữ liệu được đưa tới khối Encrypt_14 ta có bản mã đầu ra 128 bit. Quá trình hoạt động của core AES cải tiến thiết kế theo kiến trúc lặp được thực hiện thông qua máy trạng thái trong khối điều khiển. Dựa trên nguyên tắc này, mơ hình kiến trúc lặp chỉ sử dụng tài nguyên thực hiện đủ cho một vòng xử lý, sau đó kết quả đầu ra lại được đưa trở lại thành đầu vào của vòng tiếp theo. Như vậy với mơ hình này tài ngun sử dụng để cứng hóa thuật toán được rút gọn đi tối đa và đồng nghĩa với tốc độ của thuật tốn giảm đi 14 lần so với mơ hình đường ống tồn phần. Tuy nhiên tốc độ thực hiện của mơ hình này trên thực tế thường vẫn rất cao. Tần số tổng hợp tối đa core AES cứng hóa theo mơ hình

kiến trúc lặp là 358,641 Mhz. Nếu ta đáp ứng tối đa tần số hoạt động cho core thì tốc độ mã hóa lớn nhất của core có thể thực hiện được là

358,641

128( ) 3,28

14  bitGbps. Kết quả quá trình thực thi thiết kế cứng hóa trên FPGA mơ hình kiến trúc lặp (hình 2.11).

Encryption 1 R (128 bit) (128 bit) Sinh Khóa V ng IT(k0, R ) Subbyte XOR Ki Encrypt14 Mầm khóa (256 bit) K0 Ki K14 M U X

Shifrt Row Mixcolumn

Khối điều khi n

13 v ng

Hình 2.9. Mơ hình kiến trúc mã khối AES-256 cải tiến theo kiến trúc lặp (Rõ - Bản rõ; Mã - Bản mã)

Hình 2.10. Sơ đồ nguyên lý RTL và Tần số hoạt động core AES-256 cải tiến theo kiến trúc lặp

Kết quả kiểm tra mô phỏng trên công cụ ISIM của ISE:

Bản rõ đầu vào, khóa, bản mã đầu ra:

Data_in = 128'h00112233445566778899aabbccddeeff Key_in = 256'h000102030405060708090a0b0c0d0e0f1 01112131415161718191a1b1c1d1e1f

Data_out = 128'h 8ea2b7ca516745bfeafc49904b496089Thời gian tính tốn bắt đầu khi tín hiệu start = 1'b1; kết thúc khi tín hiệu Done_aes = 1'b1;

Dựa vào kết quả mô phỏng trên công cụ ISIM ta thấy thời gian thực hiện q trình mã hóa trong 14 chu kỳ clock.

Hình 2.11. Kết quả mơ phỏng kiến trúc mã khối AES-256 cải tiến theo kiến trúc lặp trên cơng cụ ISIM

Hình 2.12. Tài nguyên thiết kế core AES-256 cải tiến theo kiến trúc lặp

c. Kiến trúc lai ghép

Mơ hình kiến trúc lai ghép dựa trên ý tưởng chia nhỏ số vòng lặp của thuật toán ra thành từng phần, mỗi phần sẽ đảm nhiệm thực thi một số vòng lặp nhất định. Hình 2.13 là mơ hình lai giữa mơ hình đường ống tồn phần và mơ hình kiến trúc lặp.

R (128 bit) MUX + Sinh khóa vịng i = (1...7) Khối điều khi n Encryption 1 THANH GHI 128 BIT MUX Encryption 2 THANH GHI 128 BIT 7 VỊNG 7 VỊNG (128 bit) K0 Ki K(i+7) Mầm khóa 256 bit

Hình 2.13. Mơ hình mã khối AES-256 cải tiến theo kiến trúc lai ghép (Rõ - Bản rõ; Mã - Bản mã)

Hình 2.14. Sơ đồ nguyên lý RTL và Tần số hoạt động core AES-256 cải tiến theo kiến trúc lai ghép

Với sơ đồ mơ hình kiến trúc lai ghéo AES-256 cải tiến trên hình 2.14 là mơ hình đường ống 2 tầng, tầng thứ nhất thực hiện 7 vòng lặp của thuật toán AES cải tiến trên một module mã hóa Encryption, sau đó chuyển dữ liệu đến tầng thứ 2 của module mã hóa và tiếp tục nhận dữ liệu đầu vào mới ở tầng thứ nhất. Như vậy chỉ cần sau 6 chu kỳ clock là có thể có dữ liệu đã mã hóa ở đầu ra. Tốc độ của thuật toán được cải thiện tương đối so với mơ hình rút gọn, nhưng bù lại lượng tài ngun cũng phải tăng lên. Mơ hình này, thích hợp với các ứng dụng yêu cầu tốc độ cao. Tần số tổng hợp tối đa core AES cải tiến cứng hóa theo mơ hình kiến trúc lặp là: 354,427 Mhz. Nếu ta đáp ứng tối đa tần số hoạt động cho core thì tốc độ mã hóa lớn nhất của core có thể thực hiện được là 354, 427

128( ) 6, 48

7  bitGbps. Kết quả quá trình thực thi thiết kế cứng hóa trên FPGA mơ hình kiến trúc lai ghép (hình 2.15).

Hình 2.15. Kết quả kiểm tra mơ phỏng mã khối AES-256 cải tiến theo kiến trúc lai ghép trên công cụ ISIM

Kết quả kiểm tra mô phỏng mã khối AES-256 cải tiến theo kiến trúc lai ghéptrên công cụ ISIM của ISE:

Khối dữ liệu đầu vào và khóa được lấy theo tài liệu chuẩn Fips.197 Bản rõ đầu vào, khóa, bản mã đầu ra:

Data_in = 128'h 00112233445566778899aabbccddeeff Key_in = 256'h000102030405060708090a0b0c0d0e0f1 01112131415161718191a1b1c1d1e1f

Data_out = 128'h 8ea2b7ca516745bfeafc49904b496089

Thời gian tính tốn bắt đầu khi tín hiệu start = 1'b1; kết thúc khi tín hiệu Done_aes = 1'b1;

Dựa vào kết quả mơ phỏng trên công cụ ISIM ta thấy thời gian thực hiện q trình mã hóa trong 4 chu kỳ clock.

Hình 2.16. Tài nguyên thiết kế mã khối AES-256 cải tiến theo kiến trúc lai ghép

d. Đánh giá kết quả thực thi 3 mơ hình kiến trúc đề xuất

Để đánh giá kết quả thực thi 3 mơ hình kiến trúc đề xuất luận án đã sử dụng chip FPGA Zynq XC7Z045 -FFG900- Speed = -2 để thực thi cứng hóa thuật tốn AES-256 cải tiến theo 3 mơ hình kiến trúc đề xuất và đạt được kết quả sau:

Bảng 2.4. Bảng tổng hợp đánh giá các phương pháp thiết kế. Phương pháp Phương pháp Thời gian (clock) Thông lượng cực đại (Gbps) Tài nguyên thiết kế (number Slice LUT) Tần số hoạt động lớn nhất (Mhz)

Kiến trúc toàn phần (full pipeline) 1 9,01 12848 1008,827 Kiến trúc lai ghép (half full

pipeline) 6 6,48 5104 354,427

Kiến trúc lặp 14 3,28 4519 358,641

Dựa vào bảng tổng hợp đánh giá, so sánh lựa chọn giữa các phương pháp thiết kế ta thấy có sự tương quan giữa tốc độ thực hiện mã hóa của core với tài nguyên thiết kế. Đối với phương án thực tế tối ưu về mặt năng lực tính tốn mà không yêu cầu về tài nguyên thiết kế thì ta có thể lựa chọn phương án thiết kế theo mơ hình kiến trúc đường ống toàn phần. Đối với phương án tối ưu về mặt tài ngun tính tốn ta có thể thực hiện thiết kế theo phương pháp lặp. Đối với những phương pháp yêu cầu về sự cân đối giữa tài nguyên thiết kế với năng lực tính tốn, ta nên chọn phương pháp thiết kế kiến trúc lai ghép vừa tận dụng được về mặt tài nguyên và đảm bảo năng lực tính tốn.

Một phần của tài liệu Nghiên cứu một số giải pháp nâng cao hiệu năng của thuật toán mã hóa (Trang 57 - 67)

Tải bản đầy đủ (PDF)

(152 trang)