Để đạt được tốc độ nhanh khi triển khai thực hiện các thuật toán mã hóa trên FPGA, yêu cầu đặt ra là cần có sự nghiên cứu sâu ở mỗi giai đoạn thiết kế. Trong phần này sẽ mô tả 2 cấu trúc thường được sử dụng để thực
a. Cấu trúc lặp cơ sở
Với cấu trúc lặp cơ sở (IL-Iterative Looping) chỉ thiết kế một vòng và thuật toán mật mã khối được thực hiện lặp lại n chu kỳ (hình 2.4a). Việc thiết kế theo cấu trúc này sẽ có chi phí về tài nguyên nhỏ nhưng sẽ tốn nhiều xung nhịp thời gian hơn và có tốc độ mã hóa/giải mã thấp.
b. Cấu trúc vòng mở rộng
Cấu trúc vòng mở rộng (LU - Loop Unrolling) hay gọi kiểu đường ống (PP-pipeline) (hình 2.4b). Thiết kế này cho phép thực hiện thuật toán với tốc độ cao hơn so với cấu trúc IL nhưng chi phí về tài nguyên sẽ lớn hơn.
RAM Khóa 1 Khóa 2 . . . Khóa n
Vòng biến đổi cơ sở 1
Vòng biến đổi cơ sở 2
Vòng biến đổi cơ sở n Thanh ghi vào n bit
Thanh ghi ra 64 bit
Bản mã / Bản rõ 64 bit
Khối mở rộng khóa
RAM Vòng biến đổi
cơ sở Thanh ghi vào
n bit Thanh ghi ra 64 - bit Khóa bí mật k bit Mux 2x1 Bản rõ / bản mã n bit Bản mã / Bản rõ 64 bit Khóa Sinh ra Khóa vòng Bản rõ / bản mã n bit a) b)
Hình 2. 4 Cấu trúc thiết kế mật mã khối trên FPGA, (a) Cấu trúc vòng lặp cơ sở (IL)
(b) Cấutrúc vòng lặp toàn phần (PP)
Cả hai cấu trúc IL và cấu trúc PP đều được tối ưu hóa để thực hiện các thuật toán mật mã khóa bí mật.