Kỹ thuật xử lý tín hiệu số DSP (Digital Signal Processing) đóng vai trò quan trọng trong lĩnh vực thông tin viễn thông. DSP xử lý hình ảnh, âm thanh, dữ liệu...thành tín hiệu (và ngược lại) trong các thiết bị của mạng viễn thông. Mặt khá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. Bài báo nghiên cứu vai trò của hệ vi mạch lập trình được và ứng dụng trong thiết kế chế tạo module mật mã dùng trong các hệ thống bảo mật thông tin.
Nội dung trích xuất từ tài liệu:
Hệ vi mạch lập trình được trong thiết bị mật mã
Công nghệ thông tin & Khoa học máy tính
HỆ VI MẠCH LẬP TRÌNH ĐƯỢC TRONG THIẾT BỊ MẬT MÃ
Nguyễn Nam Hải*
Tóm tắt: Kỹ thuật xử lý tín hiệu số DSP (Digital Signal Processing) đóng vai trò
quan trọng trong lĩnh vực thông tin viễn thông. DSP xử lý hình ảnh, âm thanh, dữ
liệu...thành tín hiệu (và ngược lại) trong các thiết bị của mạng viễn thông. Mặt khá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. Bài
báo nghiên cứu vai trò của hệ vi mạch lập trình được và ứng dụng trong thiết kế chế tạo
module mật mã dùng trong các hệ thống bảo mật thông tin.
Từ khóa: Sử lý tín hiệu số, FPGA, Bộ đồng xử lý mật mã đa thuật toán, AES.
1. VAI TRÒ HỆ VI MẠCH LẬP TRÌNH ĐƯỢC TRONG
XỬ LÝ SỐ TÍN HIỆU
Những năm gần đây đã có những bước tiến lớn trong phương pháp thiết kế mạch và hệ
thống kỹ thuật số cũng như cứng hóa thiết bị. Sự phát triển mạnh mẽ của các vi mạch
chuyên dụng ASIC và Bộ vi xử lý ASIP (Application Specific Instruction Set Processors)
với độ phức tạp lên đến triệu cổng logic cho phép hoàn thiện quy trình công nghệ làm
giảm kích thước phần tử bán dẫn và tăng số lớp kết nối và cho phép ứng dụng kỹ thuật lập
trình mới tạo ra cấu trúc FPLD (Field Programmable Logic Devices) với khả năng tái lập
trình và cấu hình lại [5],[8],[10]. Những tính năng này của FPLD cho phép thực hiện các
thuật toán xử lý số tín hiệu DSP tốt hơn một cách đáng kể so với thực hiện trên các bộ xử
lý tín hiệu.
Hiện nay tùy thuộc vào cấu trúc các hệ thống FPLD được phân thành hệ vi mạch:
CPLD (PLDs Complex) và FPGA (Field Progammable Gate Array).
Kiến trúc đặc trưng CPLD là sử dụng trong hệ vi mạch nhiều cấu trúc kiểu PAL
(Programmable Array Logic) nhóm lại trong các khối SPLD (Simple PLD). Các khối này
được kết nối với nhau để chuyển tín hiệu từ đầu vào bên ngoài vào các khối logic bên
trong và giữa các khối.
Tính năng quan trọng của CPLD là: khả năng kết nối giữa các phần tử bất kỳ của cấu
trúc lập trình nhanh và thời gian lan truyền tín hiệu. Kiến trúc ma trận và các công nghệ sử
dụng có ảnh hưởng lớn đến thời gian truyền tín hiệu. Trong các hệ thống CPLD hiện đại,
thời gian lan truyền tín hiệu thường không quá 0.8 ... 3 ns (như trong GRP firma Lattice,
PIA - Altera, PIM - Cypress, Zia - Xilinx). Ngoài ra còn có hệ thống, trong đó thời gian
lan truyền tín hiệu giảm xuống còn khoảng 100... 200 ps (Zia, AIM - Xilinx).
Một Hệ vi mạch lập trình được có kiến trúc khác nhiều so với kiến trúc hệ vi mạch
SPLD và CPLD là FPGA. Hệ mạch lập trình được CPLD và FPGA được nhiều nhà sản
xuất trên thế giới cung cấp cùng với bộ nhớ SRAM và EEPROM. Mảng EEPROM có giới
hạn số lần tái lập trình cho phép, thường là từ 100 đến 1000 lần, trong khi thời gian lưu
trữ trong chúng có thể đến 100 năm không cần nguồn nuôi.
Hệ vi mạch có thể tái cấu trúc FPGA mở ra một kỷ nguyên mới trong lĩnh vực thiết kế
mạch DSP, là phương tiện để cứng hóa các thuật toán mật mã ứng dụ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 (ứng dụng các giao thức
mật mã, bảo mật và xác thực thông tin..., thậm chí ứng dụng trong thám mã).
138 Nguyễn Nam Hải, “Hệ vi mạch lập trình được trong thiết bị mật mã.”
Nghiên cứu khoa học công nghệ
Ưu điểm chính của hệ thống cấu hình lại là khả năng “thích nghi”, có thể thích ứng với
các loại kiến trúc module mật mã. Để sử dụng hiệu quả, tối ưu các hệ thống này cả về mặt
logic cũng như các tham số vật lý (tốc độ, hiệu năng, ...) cần có một kiến thức toàn diện về
chức năng và đặc tính thuật toán mật mã.
Hầu hết các thuật toán mã hóa có thể được biễu diễn bởi một biểu đồ luồng dữ liệu,
được xây dựng trong từ một vài thành phần khác nhau thực hiện các phép toán số học và
hàm logic. Dưới đây là danh sách các phép toán số học và hàm logic được sử dụng:
- Phép tính số học đơn giản, chẳng hạn như cộng và trừ.
- Phép tính trên trường nhị phân có độ dài từ mã không đặc trưng.
- Phép nhân: Phép nhân tổng quát (với toán hạng giá trị bất kỳ), nhân modulo, nhân
với một hằng số, ...,
- Phép toán logic song song,
- Phép toán logic tuần tự,
- Ánh xạ bảng LUT, ví dụ: S-box phi tuyến,
- Phép quay, dịch chuyển.
2. HỆ VI MẠCH LẬP TRÌNH ĐƯỢC TRONG THIẾT BỊ MẬT MÃ
Trong số các mẫu đầu tiên thực hiện mã khối trên hệ vi mạch lập trình được đáng quan
tâm nhất gồm hai thiết kế. Mẫu đầu tiên được thiết kế tại Viện Kỹ thuật Liên bang Thụy Sĩ
ở Lausanne có tên là CryptoBooster [10]. CryptoBooster thực hiện chức năng tái cấu hình,
là module làm việc với Bộ xử lý trung tâm với chức năng là module mật mã. Module này
thực hiện thuật toán mã khối đối xứng IDEA. Kiểm định đánh giá cho thấy, về tốc độ và
thông lượng coprocessor phù hợp cho các ứng dụng trong các mạng tốc độ cao như: ATM,
SONET và GigaEthernet.
Mẫu thứ hai là một thiết kế sử dụng bộ vi xử lý có thể cấu hình lại PipeRench do Đại
học Carnegie Mellon thiết kế [12]. Module PipeRench đã được tối ưu hóa cho triển khai
mật mã. Các tính năng chính của nó là: ảo hóa, tổ chức đường dẫn dữ liệu và cấu hình lại
nhanh. Ảo hóa cho phép thực hiện các thuật toán không cần xáo trộn hoàn toàn cấu trúc
vật lý của hệ thống. Trong kiến trúc PipeRench có thể thực hiện một loạt các thuật toán
như: CRYPTON, IDEA, RC6, và Twofish.
Phân tích nhiều ứng dụng thiết bị thực hiện thuật toán mã hóa [2],[3] có thể xác định
chức năng và yêu cầu mà hệ thống mã hóa linh hoạt cần phải đáp ứng:
- Có thể thay đổi thuật toán trong quá trình hoạt động,
- Có thể tích hợp các thuật toán mới,
- Tốc độ xử lý dữ liệu cao,
- Giao diện người dùng thuận tiện,
- Có thể nâng cấp phần mềm điều khiển
Kiế ...