Danh sách ma trận MDS tựa vòng 4x4

Một phần của tài liệu (LUẬN án TIẾN sĩ) 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 55 - 67)

01 01 0A 08 01 08 01 0A 01 0A08 01 ] [ 05 0101 01 01 01 0C 05 01 05 01 0C 01 0C05 01 ]

(𝑣1 = 9, 𝑐 = 3, 𝐻 = 4) (𝑣1 = 9, 𝑐 = 3, 𝐻 = 6) [ 1D 0101 32 01 01 10 1D 01 1D 01 10 1D 3232 10 ] (𝑣1 = 6, 𝑐 = 5, 𝐻 = 8) [ 20 0101 49 01 01 65 20 01 20 01 65 49 6520 49 ] (𝑣1 = 6, 𝑐 = 4, 𝐻 = 10)

Sau đó luận án tiến hành đánh giá (theo tiêu chí nhiều số 1 nhất - 𝑣1 và có ít phần tử khác nhau nhất - 𝑐, trọng số Hamming của các phần tử thấp nhất - 𝐻) và lựa chọn được ma trận MDS tựa vòng như sau:

𝑀𝑛𝑒𝑤 = [ 0x08 0x01 0x01 0x01 0x01 0x01 0x0A 0x08 0x01 0x08 0x01 0x0A 0x01 0x0A 0x08 0x01 ]

Do ma trận này có nhiều số 1 nhất 𝑣1 = 9, có ít phần tử khác nhau nhất 𝑐 = 3, trọng số Hamming bé nhất 𝐻 = 4 (phần tử 0𝑥08 có 1 bít 1 do đó trọng số Hamming là 1, tương tự ta có 0𝑥01 có trọng số Haming là 1 và phần tử

0𝑥0𝐴 có trọng số Hamming là 2. Vì vậy, tổng trọng số Hamming của các phần

tử là H=4).

Xem xét ma trận MDS của AES [ 0x02 0x03 0x01 0x01 0x01 0x02 0x03 0x01 0x01 0x01 0x02 0x03 0x03 0x01 0x01 0x02 ] có thể tính được 𝑣1 = 8, 𝑐 = 3, 𝐻 = 4

Ma trận MDS tựa vòng 𝑀𝑛𝑒𝑤 ở trên được luận án đề xuất ứng dụng vào cải tiến thuật toán AES.

Ma trận nghịch đảo tương ứng dùng cho quá trình giải mã của thuật toán là: 𝑀𝑛𝑒𝑤−1 = [ 0x1A 0xD1 0xD1 0xD1 0xD1 0xCE 0x5B 0x02 0xD1 0x02 0x01 0x0A 0xD1 0x5B 0x02 0xCE ]

Ứng dụng ma trận MDS 𝑀𝑛𝑒𝑤 này vào thuật toán AES và tiến hành đánh giá tầng khuếch tán mới theo cách tương tự như trong phần 2 ở trên. Kết quả đánh giá cho thấy số điểm bất động của tầng khuếch tán mới có số điểm bất động là 20(chính là điểm 0 tầm thường), trong khi đó với thuật tốn AES gốc (sử dụng ma trận MDS gốc) có số điểm bất động như đã đánh giá ở trên là 216

điểm. Tức là đã giảm đi được 216− 1 điểm (tương ứng đã giảm đi được cỡ 99%) , đây là số điểm bất động tối ưu nhất mà một tầng khuếch tán của mã khối luôn mong muốn đạt được. Như vậy số điểm bất động của thuật toán AES cải tiến (là thuật toán AES sử dụng ma trận MDS mới 𝑀𝑛𝑒𝑤 mà luận án đề xuất ở trên) được giảm đi đáng kể so với số điểm bất động của thuật toán AES gốc (sử dụng ma trận MDS gốc), trong khi xét về chi phí thực thi (thơng qua các tiêu

chí 𝑣1, 𝑐, 𝐻) là tương đương nhau, tức là chi phí thực thi sẽ khơng bị giảm đi đáng kể (trong khi về mặt độ an tồn thì số điểm bất động càng ít thì độ an tồn càng cao, với ma trận MDS mới của luận án đề xuất thì tầng khuếch tán mới chỉ tồn tại 01 điểm bất động duy nhất, ứng với trường hợp đầu vào X = 0 nên 𝐴 ∗ 𝑋 = 0).

Để đảm bảo hiệu năng của thuật toán AES cải tiến với ma trận MDS mới nàỵ Trong phần tiếp theo, luận án sẽ trình bày một số giải pháp thực thi cứng hóa hiệu quả.

2.3.3 Nâng cao hiệu năng của thut toán AES ci tiến vi ma trn MDS mi

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.

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

Từ nguyên lý hoạt động của thuật toá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 2 …. Encryption 13 Encryption14

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 Li

Đố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ý: Ađ_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óạ Với mơ hình này 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 rạ 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 naỵ 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 00112233445566778899aabbccđeeff 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 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 toàn phần

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

Thuật tố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 ngun 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 theọ Như vậy với mơ hình này tài ngun sử dụng để cứng hóa thuật tố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 toà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 caọ 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ả q 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 Mm 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'h00112233445566778899aabbccđeeff 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 quá 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 tố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 tố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 rạ 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 độ caọ 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 00112233445566778899aabbccđeeff 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:

Một phần của tài liệu (LUẬN án TIẾN sĩ) 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 55 - 67)

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

(152 trang)