Nâng cao hiệu năng thuật toán mật mã AES - Nguyễn Nam Hải

Tài liệu Nâng cao hiệu năng thuật toán mật mã AES - Nguyễn Nam Hải: Nghiên cứu khoa học công nghệ Tạp chí Nghiên cứu KH&CN quân sự, Số 46, 12 - 2016 115 NÂNG CAO HIỆU NĂNG THUẬT TOÁN MẬT MÃ AES Nguyễn Nam Hải1*, Nguyễn Thị Thu Nga2 Tóm tắt: Ngày nay, thuật toán mật mã đứng trước những yêu cầu cao hơn, không chỉ cần độ an toàn mật mã cao mà còn phải có hiệu năng thực hiện mã hóa và giải mã cao, cũng như khả năng làm việc thích ứng trong các môi trường đặc biệt. Bài báo trình bày chuẩn mật mã AES (Advanced Encryption Standards), xây dựng trên kết quả của cuộc thi do NIST công bố và đề xuất kiến trúc, thực thi cứng hóa hệ thống mã hóa và giải mã nhằm nâng cao hiệu năng thuật toán mã hóa AES. Từ khóa: Thuật toán mật mã, Hệ mật, Mã hóa, Giải mã, Hiệu năng, Tài nguyên. 1. MỞ ĐẦU Các dịch vụ quan trọng nhất đảm bảo an toàn hệ thống thông tin là đảm bảo: tính bảo mật, tính toàn vẹn, tính không chối bỏ và tính xác thực. Các chức năng này được thực hiện bằng cách sử dụng thuật toán mã hóa khác nhau [1]. Trong mật mã hiện đại, chúng t...

pdf10 trang | Chia sẻ: quangot475 | Lượt xem: 600 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Nâng cao hiệu năng thuật toán mật mã AES - Nguyễn Nam Hải, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Nghiên cứu khoa học công nghệ Tạp chí Nghiên cứu KH&CN quân sự, Số 46, 12 - 2016 115 NÂNG CAO HIỆU NĂNG THUẬT TOÁN MẬT MÃ AES Nguyễn Nam Hải1*, Nguyễn Thị Thu Nga2 Tóm tắt: Ngày nay, thuật toán mật mã đứng trước những yêu cầu cao hơn, không chỉ cần độ an toàn mật mã cao mà còn phải có hiệu năng thực hiện mã hóa và giải mã cao, cũng như khả năng làm việc thích ứng trong các môi trường đặc biệt. Bài báo trình bày chuẩn mật mã AES (Advanced Encryption Standards), xây dựng trên kết quả của cuộc thi do NIST công bố và đề xuất kiến trúc, thực thi cứng hóa hệ thống mã hóa và giải mã nhằm nâng cao hiệu năng thuật toán mã hóa AES. Từ khóa: Thuật toán mật mã, Hệ mật, Mã hóa, Giải mã, Hiệu năng, Tài nguyên. 1. MỞ ĐẦU Các dịch vụ quan trọng nhất đảm bảo an toàn hệ thống thông tin là đảm bảo: tính bảo mật, tính toàn vẹn, tính không chối bỏ và tính xác thực. Các chức năng này được thực hiện bằng cách sử dụng thuật toán mã hóa khác nhau [1]. Trong mật mã hiện đại, chúng ta có thể phân biệt hai loại thuật toán đảm bảo tính bí mật: thuật toán khóa đối xứng và thuật toán khóa công khai (bất đối xứng). Hệ mật được gọi là hệ mật khóa đối xứng nếu khóa mã của bên mã hóa và bên giải mã như nhau. Hệ mật khóa công khai (bất đối xứng) sử dụng hai loại khóa mã khác nhau : một loại khóa được sử dụng để mã hóa thông tin và có thể công khai mà không có nguy cơ tiết lộ nội dung của các thông tin đã được mã hóa (gọi là khóa công khai). Khóa giải mã được gọi là khóa riêng (hay khóa bí mật). Thuật toán sử dụng khóa đối xứng có thể được chia thành hai loại chính: - Thuật toán mã khối: mã hóa dữ liệu bằng các khối, với mỗi khối được mã hóa một cách độc lập. - Thuật toán mã luồng: mã hóa luồng dữ liệu một cách liên tục. Sự phát triển của kỹ thuật mã thám tiên tiến đặt cho các nhà thiết kế thuật toán mã mật mới những đòi hỏi độ an toàn mật mã cao và phải đáp ứng các điều kiện: hiệu năng mã hóa cao, có thể cứng hóa module mật mã, làm việc thích ứng trong môi trường đặc biệt. Các dữ liệu được truyền trong mạng truyền thông ngày càng dễ dàng bị chặn thu và gây nhiễu. Một số mạng được cấu trúc với các phần tử có tài nguyên hạn chế làm cho chúng rất dễ bị tổn thương với các loại tấn công khác nhau liên quan đến việc truy cập trái phép thông tin hoặc ngăn chặn hoạt động từng bộ phận của mạng (tấn công từ chối dịch vụ [2]). Trong những ứng dụng tiềm năng (quân sự, chính phủ điện tử, điều khiển các quá trình công nghiệp,...) thì tính mở, quy mô, và khả năng truyền dẫn, tính an toàn của thông tin được tạo ra và truyền dẫn trong mạng cần được xem xét, cân nhắc khi thiết kế mạng [3]. Bài báo trình bày một số kiến trúc, thực thi cứng hóa hệ thống mã hóa và giải mã thuật toán AES-256 trên các vi mạch chuyên dụng nhằm nâng cao hiệu năng thuật toán cả về tài nguyên và thời gian tính toán, có khả năng ứng dụng thực tế cao. 2. THUẬT TOÁN AES (Advanced Encryption Standard) Năm 1997, NIST (National Institute of Standards and Technology) đã mở một cuộc thi dành cho các thiết kế cải tiến thuật toán mã khối với khóa mã đối xứng. Kết quả chọn được năm thuật toán: Công nghệ thông tin & Cơ sở toán học cho tin học N. N. Hải, N. T. T. Nga, “Nâng cao hiệu năng thuật toán mật mã AES.” 116 - MARS: Một thuật toán mã mới của Hãng IBM, - RC6: Một thuật toán mã do Ronald Rivest đề xuất, - Rijandel: Một thuật toán mã do hai người Bỉ (Joan Daemen và Vincent Rijmen) đề xuất, - Serpent: Một thuật toán mã do đội tuyển mật mã quốc tế từ Anh, Israel và Na Uy, - Twofish: Một thuật toán mã do Bruce Schneier (người tạo Blowfish). Rijndael được xem là thuật toán có tốc độ mã hóa và giải mã nhanh nhất. Về độ mật thì người ta cho rằng không có sự khác biệt đáng kể giữa các phương pháp mã hóa đã được trình bày (cho đến thời điểm đó chưa có thuật toán nào trong số kể trên bị phá mã). Twofish (hình 3) - là một phát triển của thuật toán Blowfish (phát minh năm 1993) theo [3], [4] là thuật toán có thể thực hiện cứng hóa một cách tốt nhất, hoạt động trên các khối dữ liệu có kích thước 128 bit. Khóa mã được sử dụng có độ dài 128, 192 và 256 bit. Thuật toán được thực hiện dựa trên Sơ đồ Feistel (hình 1). Hình 1. Mã hóa TwoFish – Sơ đồ Feistel. Một tính năng đặc trưng của thuật toán là việc sử dụng S-box (hình 2) để khóa tín hiệu. Hình 2. Sơ đồ hộp thế S. 3. NÂNG CAO HIỆU NĂNG THUẬT TOÁN MẬT MÃ AES Kiến trúc cho module thực hiện thuật toán mã khối được trình bày trong các tài liệu [7], [8]. 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 nguyên tính toá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 toán mã hóa AES-256. Nghiên cứu khoa học công nghệ Tạp chí Nghiên cứu KH&CN quân sự, Số 46, 12 - 2016 117 Hình 3. Sơ đồ khối thuật toán TwoFish. 3.1. Kiến trúc đường ống toàn phần (Full Pipeline) Từ nguyên lý hoạt động của thuật toán mã khối AES được trình bày, chúng tôi đã thiết kế và thực hiện cứng hóa thuật toán AES-256 theo kiến trúc mô hình đường ống toàn phần như hình 4. Đối với kiến trúc đường ống toàn phần, 14 vòng lặp trong quá trình mã hóa AES đượ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 modulo 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. Hình 4. Mô hình kiến trúc mã khối AES-256 theo kiến trúc đường ống. Công nghệ thông tin & Cơ sở toán học cho tin học N. N. Hải, N. T. T. Nga, “Nâng cao hiệu năng thuật toán mật mã AES.” 118 Hình 5. Cấu trúc một module Encryption. Hình 6. Cấu trúc module Encryption 14. Toà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 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 toán AES-256 thực hiện theo mô hình đường ống toà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 đượ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 x 128 = 129 Gbps đâ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 toàn phần (hình 7). Hình 7. Sơ đồ nguyên lý RTL và Tần số hoạt động core AES-256. Kết quả kiểm tra mô phỏng AES-256 theo kiến trúc đường ống toà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, chúng tôi đã 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 Nghiên cứu khoa học công nghệ Tạp chí Nghiên cứu KH&CN quân sự, Số 46, 12 - 2016 119 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 toá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 8. Kết quả thực hiện AES-256 theo mô hình kiến trúc đường ống toàn phần trên công cụ ISIM. Hình 9. Tài nguyên thiết kế AES-256 theo kiến trúc đường ống toàn phần. 3.2. Mô hình kiến trúc lặp Thuật toán mã khối AES-256 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 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 nguyên 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 toá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 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   Gbps. 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 11). Công nghệ thông tin & Cơ sở toán học cho tin học N. N. Hải, N. T. T. Nga, “Nâng cao hiệu năng thuật toán mật mã AES.” 120 Hình 10. Mô hình kiến trúc mã khối AES-256 theo kiến trúc lặp. Hình 11. Sơ đồ nguyên lý RTL và Tần số hoạt động core AES-256. Kết quả kiểm tra mô phỏng trê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'h00112233445566778899aabbccddeeff Key_in = 256'h000102030405060708090a0b0c0d0e0f1 01112131415161718191a1b1c1d1e1f Data_out = 128'h 8ea2b7ca516745bfeafc49904b496089 Thời gian tính toá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 12. Kết quả mô phỏng kiến trúc mã khối AES-256 theo kiến trúc lặp trên công cụ ISIM. Nghiên cứu khoa học công nghệ Tạp chí Nghiên cứu KH&CN quân sự, Số 46, 12 - 2016 121 Hình 13. Tài nguyên thiết kế core AES-256 theo kiến trúc lặp. 3.3. 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 14 là mô hình lai giữa mô hình đường ống toàn phần và mô hình kiến trúc lặp. Với sơ đồ mô hình kiến trúc lai ghép AES-256 trên hình 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 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 nguyên 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ứ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   Gbps. 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 15). Hình 14. Mô hình mã khối AES-256 theo kiến trúc lai ghép. Công nghệ thông tin & Cơ sở toán học cho tin học N. N. Hải, N. T. T. Nga, “Nâng cao hiệu năng thuật toán mật mã AES.” 122 Hình 15. Sơ đồ nguyên lý RTL và Tần số hoạt động core AES-256. Kết quả kiểm tra mô phỏng mã khối AES-256 theo kiến trúc lai ghép trê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 toá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 4 chu kỳ clock. Hình 16. Kết quả kiểm tra mô phỏng mã khối AES-256 theo kiến trúc lai ghép trên công cụ ISIM. Hình 17. Tài nguyên thiết kế mã khối AES-256 theo kiến trúc lai ghép. Nghiên cứu khoa học công nghệ Tạp chí Nghiên cứu KH&CN quân sự, Số 46, 12 - 2016 123 3.4. Đánh giá kết quả thực thi 3 mô hình kiến trúc đề xuất Chúng tôi đã sử dụng chip FPGA Zynq XC7Z045 -FFG900- Speed = -2 để thực thi cứng hóa thuật toán AES-256 theo 3 mô hình kiến trúc đề xuất và đạt được kết quả sau: Bảng 1. Bảng tổng hợp đánh giá các phương pháp thiết kế. STT Phương pháp Thời gian mã (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) 1 Kiến trúc toàn phần (full pipeline) 1 129 12848 1008.827 2 Kiến trúc lai ghép (half full pipeline) 6 6,48 5104 354.427 3 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 toá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 nguyên tính toá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 toá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 toán. 4. KẾT LUẬN Bài báo trình bày một số giải pháp nâng cao hiệu năng thuật toán mã hóa hệ mật AES, trên cơ sở lựa chọn một số mô hình kiến trúc cứng hóa và sử dụng linh hoạt các nguồn tài nguyên phần cứng, cũng như kết quả mô phỏng thực tế các giải pháp đề xuất trên công cụ ISIM của ISE. Các kết quả đạt được đã khẳng định có thể cứng hóa các thuật toán mã hóa phức tạp để nâng cao hiệu năng của chúng trong bảo mật thông tin phục vụ cho An ninh - Quốc phòng và Kinh tế - Xã hội. TÀI LIỆU THAM KHẢO [1]. D. Stinson, “Cryptography: Theory and Practice”. CRC Press, LLC, 1995. [2]. M. Kutyłowski, WB. Strothmann, “Lý thuyết mật mã và thực hành đảm bảo an toàn các hệ thống máy tính”, Nhà xuất bản Read Me, Warsawa 1998 [3]. www.schneier.com/twofish.html [4]. https://www.infona.pl/, R. Pniewski, “Phần cứng thực hiện mã hóa”. [5]. [6]. www.opencores.org [7]. Elbrit AJ, Yip W., Chatwynd B., Paar C, “An FPGA Implementation and Performance Evaluation of the AES Block Cipher Candidate Algorithm Finalists”, Worcester, MA 01609, USA Công nghệ thông tin & Cơ sở toán học cho tin học N. N. Hải, N. T. T. Nga, “Nâng cao hiệu năng thuật toán mật mã AES.” 124 [8]. M. Rogawski, “Analysis of the Implementation Hierocrypt algorithm (and its comparison to Camellia algorithm) using ALTERA devices”, (p1-p12). Prokom Software SA, Warsaw Poland. [9]. Navabi Z., “Embedded Core design with FPGAs”, (p21-p26), McGraw-Hill, 2007. [10]. Mosanya E. et al.: CryptoBooster, “A Reconfigurable and Modular Cryptographic Coprocesor”, Proceedings of the Workshop on Cryptographic Hardware and Embedded Systems, Worcester August 1999. ABSTRACT ENHANCED PERFORMANCE ADVANCED ENCRYPTION STANDARD ALGORITHMS AES Nowtodays, the ciphers require higher criterion than that of previous ones, not just high-level cryptographic security but also to effectively perform encoding and decoding high, as well as the ability to adapt to work in special environments. This article presents the standard AES encryption (Advanced Encryption Standards), builds on the results of the competition announced by NIST and recommended architecture, hardware implementation of systems for encoding and decoding algorithms improve performance AES encryption. Keywords: Cryptography Algorithm, Cryptoraphic Systems, Encryption, Decryption, Performance, Resources. Nhận bài ngày 10 tháng 09 năm 2016 Hoàn thiện ngày 19 tháng 11 năm 2016 Chấp nhận đăng ngày 14 tháng 12 năm 2016 Địa chỉ: 1 Học viện Kỹ thuật mật mã; 2 Viện Công nghệ Thông tin, Viện Hàn lâm Khoa học và Công nghệ Việt Nam; * Email: nam_haivn@yahoo.com

Các file đính kèm theo tài liệu này:

  • pdf14_nga_1_2375_2150947.pdf