CHƯƠNG 2 TÌNH HÌNH NGHIÊN CỨU TRONG VÀ NGOÀI NƯỚC
3.4 Giới thiệu kiến trúc IPsec dựa trên nền tảng FPGA
IPsec được mô tả trong một loạt các RFC (đã trình bày ở chương 1) xác định các dịch vụ kiểm soát truy cập, mã hóa, xác thực, tính toàn vẹn và trao đổi khóa để hỗ trợ bảo mật dữ liệu giữa hai thiết bị mạng. Giao thức IPsec được sử dụng phổ biến nhất để
bảo vệ truy cập mạng là ESP. Việc chọn cấu hình phần cứng FPGA có tầm quan trọng đặc biệt trong việc thực hiện giải thuật cũng như đáp ứng được thông lượng 100Gbps.
Nhóm đã khảo sát các dòng ESP core được tích hợp trên FPGA của Altera và Xilinx trên website https://www.heliontech.com/ipsec.htm.
53 Bảng 3.11 Cấu hình phần cứng tham khảo cho RFC7321
Cấu hình phần cứng tham khảo cho RFC7321 [89]
Bảng 3.12 Cấu hình phần cứng tham khảo cho RFC8221
Cấu hình phần cứng tham khảo cho RFC8221 [89]
3.4.2 Khảo sát hiệu năng của Ipsec AES -GCM thực hiện trên các FPGA tham khảo
Có nhiều lựa chọn giải pháp AES-GCM, bao gồm tất cả các yêu cầu thông lượng từ dưới 50Mbps cho đến vượt quá 40Gbps trong bất kỳ mục tiêu công nghệ nào. Điều này cho phép người dùng có một giải pháp phù hợp rất tốt, mà không phải tiêu tốn về
diện tích hoặc hiệu suất [89].
54 Bảng 3.13 Các giải pháp AES-GCM tiêu chuẩn hiện có sẵn
Loại lõi Thông lượng Loại chân
218 chu kỳ AES - GCM 0 – 100 Mbps Ultra compact 48 chu kỳ AES - GCM 0 – 500 Mbps Very compact 19 chu kỳ AES - GCM 500 Mbps – 2Gbps Compact
Giga AES - GCM 2Gbps – 40 Gbps scalable
Bảng trên cho thấy sự lựa chọn các giải pháp AES-GCM tiêu chuẩn hiện có sẵn.
Đối với các phiên bản chính, tên core phản ánh số chu kỳ clk hoạt động được thực hiện để mã hóa hoặc giải mã từng khối thông tin 16 byte bằng khóa 128 bit; ví dụ, core 19 chu kỳ xử lý mỗi khối AES 128 bit trong 19 chu kỳ xung clk và có thông lượng 6,73Mbps trên mỗi MHz [88].
Bộ xử lý Giga AES-GCM là một thiết kế riêng biệt, được tối ưu hóa cho hoạt động thông lượng cực cao. Tất cả các bộ xử lý AES-GCM hiệu suất cao này đều có sẵn trong các phiên bản để sử dụng trong ASIC, Altera, microsemi (Actel) và Xilinx FPGA, và chung với tất cả các core IP mà chúng được thiết kế với từng công nghệ khác nhau để mang lại hiệu quả tốt nhất và kết quả hiệu năng tốt nhất [89].
Một loạt các giải pháp được sử dụng để các yêu cầu thông lượng của bất kỳ ứng dụng nào có thể được kết hợp chặt chẽ với hiệu quả tối ưu. Trong trường hợp này, có ba mức hiệu suất khả dụng; phản ánh số chu kỳ xung nhịp tối thiểu được thực hiện để
xử lý mỗi khối dữ liệu 16 byte. Số chu kỳ thực tế được thực hiện bởi core xử lý, các khối này thay đổi theo sự lựa chọn core và kích thước khác nhau.
Hình 3.14 Khảo sát hiệu năng theo cấu hình
Bộ xử lý AES-GCM 218 chu kỳ, cần một chu kỳ xung nhịp tối thiểu 218 để mã hóa hoặc giải mã mỗi khối dữ liệu 16 byte bằng khóa 128 bit. Để có thông lượng cao hơn, core AES-GCM của chu kỳ 48 vòng cung cấp hiệu năng cao hơn bốn lần so với lõi 218 chu kỳ trong khi sử dụng ít hơn hai lần diện tích logic cell của nó. Phải mất tối thiểu 48 chu kỳ xung nhịp để
mã hóa hoặc giải mã từng khối dữ liệu 16 byte bằng khóa 128 bit. Có hiệu suất cao nhất là lõi AES-GCM 19 chu kỳ, cung cấp hiệu năng gấp đôi so với lõi 48 chu kỳ trong khi sử dụng khoảng hai lần diện tích logic cell của nó. Phải mất tối thiểu 19 chu kỳ đồng hồ để mã hóa hoặc giải mã từng khối dữ liệu 16 byte bằng bất kỳ kích thước khóa nào [89].
Hiệu năng
218 CLK 48 CLK 19CLK
55 Mỗi phiên bản lõi có sẵn với sự hỗ trợ cho một, hai và (trong hầu hết các trường hợp) cả ba kích cỡ khóa AES (128, 192 và 256-bit).
Các bảng bên dưới hiển thị số chu kỳ và thông lượng dữ liệu tối đa cho từng phiên bản lõi AES-GCM, cho từng kích thước khóa được hỗ trợ [89].
Bảng 3.14 thị số chu kỳ và thông lượng dữ liệu tối đa
218 CLK 48 CLK 19 CLK
Kích thước khóa 128 192 256 128 192 256 128 192 256 Chu kỳ mỗi block 218 na 298 48 56 64 19 19 19 Thông lượng 0.58 na 0.43 2.6 2.2 2.0 6.7 6.7 6.7
Phiên bản 19 chu kỳ có sẵn sự lựa chọn mở rộng khóa tiêu chuẩn hoặc nhanh, ảnh hưởng đến thời gian sử dụng để thiết lập khóa mới. Việc mở rộng tiêu chuẩn được dùng trong FPGA, đặc biệt là khi cần hỗ trợ cho cả ba kích thước chính, vì có thể tiết kiệm đáng kể diện tích [89].
Đối với các yêu cầu thông lượng dữ liệu cao hơn, có các họ lõi AES-GCM nhanh hơn có cổng dữ liệu rộng hơn để đảm bảo thông lượng không bị hạn chế bởi băng thông I/O. Khả năng thông lượng dữ liệu của các lõi tỷ lệ thuận với tần số của đồng hồ chủ được sử dụng và giá trị tối đa của điều này phụ thuộc vào loại thiết bị và cấp tốc độ được chọn [89].
Bảng 3.15 phạm vi lựa chọn các họ thiết bị Xilinx
Lõi 218 CLK Khóa 128 2 kích thước khóa
Công nghệ Spartan6 Virtex5 Virtex6 Spartan6 Virtex5 Virtex6 Tài nguyên 209 slice 247 slice 217 slice 220 slice 256 slice 220 slice
CLK 252MHz 393MHz 475MHz 231MHz 410 MHz 461MHz
Thông lượng 128 147 Mbps 230 Mbps 278 Mbps 135 Mbps 240 Mbps 270 Mbps Thông lượng 256 na na na 99 Mbps 176 Mbps 198 Mbps
Các bảng trên trang này hiển thị phạm vi lựa chọn các họ thiết bị Xilinx phổ biến theo các cấp tốc độ. Bảng trên cho thấy lõi 218 chu kỳ cho cả hỗ trợ khóa 128 bit và hai kích thước khóa [89].
Các bảng dưới đây cho thấy các lõi AES-GCM 48 chu kỳ và 19 chu kỳ, hỗ trợ khóa 128 bit và tất cả các kích thước khóa [89].
Bảng 3.16 Các lõi AES-GCM 48 chu kỳ
Lõi 48 CLK Khóa 128 Tất cả kích thước khóa
Công nghệ Spartan6 Virtex5 Virtex6 Spartan6 Virtex5 Virtex6 Tài nguyên 340 slice 415 slice 356 slice 362 slice 443 slice 376 slice
CLK 199MHz 303MHz 359MHz 194MHz 307MHz 356MHz
Thông lượng 128 530 Mbps 808 Mbps 957 Mbps 517 Mbps 818 Mbps 949 Mbps Thông lượng 192 na na na 443 Mbps 701 Mbps 813 Mbps Thông lượng 256 na na na 388 Mbps 614 Mbps 712 Mbps Bảng 3.17 Các lõi AES-GCM 48 chu kỳ
Lõi 19 CLK Khóa 128 Tất cả kích thước khóa
Công nghệ Spartan6 Virtex5 Virtex6 Spartan6 Virtex5 Virtex6 Tài nguyên 639 slice 678 slice 635 slice 672 slice 694 slice 669 slice
CLK 205MHz 335MHz 364MHz 178MHz 282MHz 332MHz
Thông lượng 128 1.38 Gbps 2.25 Gbps 2.45 Gbps 1.2 Gbps 1.9 Gbps 2.23 Gbps
56 Thông lượng 192 na na na 1.2 Gbps 1.9 Gbps 2.23 Gbps Thông lượng 256 na na na 1.2 Gbps 1.9 Gbps 2.23 Gbps Trước khi thiết kế, cần phải quyết định lõi nào trong các lõi AES-GCM sẽ phù hợp nhất với ứng dụng IPsec. Đầu tiên quyết định giữa các lõi 218 chu kỳ, 48 chu kỳ và 19 chu kỳ theo thông lượng dữ liệu cần thiết và tài nguyên logic có sẵn. Sau đó xác định kích thước khóa AES muốn hỗ trợ cũng như mọi yêu cầu đặc biệt khác của ứng dụng [89].
Bảng 3.18 Khảo sát chức năng và hiệu năng theo cấu hình Lõi Diện tích Thông lượng Mã hóa/
giải mã
Xác thực Khóa 128 bit
Khóa 192 bit
Khóa 256 bit
218 CLK Rất thấp Thấp x x x x
48 CLK Thấp Trung bình x x x x x
19 CLK Trung bình cao x x x x x