Nâng cao hiệu năng thuật toán mật mã AES
Số trang: 10
Loại file: pdf
Dung lượng: 592.54 KB
Lượt xem: 19
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
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.
Nội dung trích xuất từ tài liệu:
Nâng cao hiệu năng thuật toán mật mã AES Nghiên cứu khoa học công nghệ 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: Tạp chí Nghiên cứu KH&CN quân sự, Số 46, 12 - 2016 115 Công nghệ thông tin & Cơ sở toán học cho tin học - 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. 116 N. N. Hải, N. T. T. Nga, “Nâng cao hiệu năng thuật toán mật mã AES.” Nghiên cứu khoa học công nghệ 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. ...
Nội dung trích xuất từ tài liệu:
Nâng cao hiệu năng thuật toán mật mã AES Nghiên cứu khoa học công nghệ 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: Tạp chí Nghiên cứu KH&CN quân sự, Số 46, 12 - 2016 115 Công nghệ thông tin & Cơ sở toán học cho tin học - 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. 116 N. N. Hải, N. T. T. Nga, “Nâng cao hiệu năng thuật toán mật mã AES.” Nghiên cứu khoa học công nghệ 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. ...
Tìm kiếm theo từ khóa liên quan:
Hiệu năng thuật toán mật mã AES Thuật toán mật mã AES Mật mã AES Thuật toán mật mã Hệ thống mã hóaTài liệu liên quan:
-
Một giải pháp xây dựng hệ mật khóa đối xứng
5 trang 37 0 0 -
Bài giảng Bảo mật hệ thống thông tin
137 trang 36 0 0 -
Đề tài: TÌM HIỂU KỸ THUẬT MÃ HÓA DES TRONG HỆ THỐNG BẢO MẬT THÔNG TIN
22 trang 35 0 0 -
Bài giảng Kỹ thuật vi xử lý: Chương 1 - Review
49 trang 31 0 0 -
Bài giảng Nhập môn Công nghệ thông tin 1: Giới thiệu môn học - Ngô Chánh Đức
4 trang 31 0 0 -
Bài giảng Nhập môn Công nghệ thông tin 1: Kiến thức cơ sở
59 trang 26 0 0 -
Bài giảng Nhập môn Công nghệ thông tin 1: Chương 2 - Ngô Chánh Đức
60 trang 24 0 0 -
Bài giảng Kỹ thuật vi xử lý - ĐH Bách Khoa Đà Nẵng
403 trang 23 0 0 -
Hệ thống mã hóa và nhận dạng mẫu hai chiều ứng dụng trong in ấn và tra cứu thông tin
4 trang 23 0 0 -
Kỹ thuật toán học - Mật mã (Cryptography)
290 trang 22 0 0