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...
10 trang |
Chia sẻ: quangot475 | Lượt xem: 585 | Lượt tải: 0
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:
- 14_nga_1_2375_2150947.pdf