Để thực hiện phần mềm, luận án này sử dụng các bộ giải mã AES-256, bộ xác thực SHA-512, bộ giải mã RSA và bộ giải nén RLE được cung cấp từ nguồn [110] và [111]. Khi thực hiện các thuật toán này trên MicroBlaze, luận án này đã có một vài sửa đổi và tối ưu để ph hợp hệ thống của mình. Bảng 4.3 tóm tắt kết quả thực hiện bằng phần mềm của các thuật toán được xem xét trong hai tham số: kích thước bộ nhớ và thông lượng của từng thuật toán.
Có thể thấy rằng tốc độ thực hiện bằng phần mềm trên hệ thống của luận án này là tương đương với việc thực hiện AES-128 và SHA-256 chạy trên MicroBlaze của FPGA Virtex-II Pro [112]. Mặc d việc thực hiện bằng phần mềm là chậm hơn so với việc thực hiện bằng phần cứng, nhưng nó không tiêu thụ thêm bất kỳ nguồn tài nguyên phần cứng nào của FPGA. Trong khi việc thực hiện bằng phần cứng chiếm xấp xỉ 31,5% tài nguyên Slice của FPGA Spartan-6 LX45, xem Bảng 4.4. Con số 31,5% cho chúng ta thấy rằng, việc thực hiện bằng phần cứng các thuật toán mã hóa và xác thực đối với các hệ thống dựa trên FPGA chi phí thấp là rất lớn so với tổng số tài nguyên sẵn có của nó. Trong khi đó, chi phí về bộ nhớ dùng cho các thuật toán này khi thực hiện bằng phần mềm là khá nhỏ so với kích thước của bộ nhớ flash và DDRAM có sẵn trong các hệ thống nhúng hiện nay. Với thông lượng như trong Bảng 4.3, phải mất vài giây để cập nhật thành công một bitstream từng phần (thường có dung lượng vài chục đến vài trăm KB). Luận án này tin rằng điều này là có thể chấp nhận được vì việc cập nhật xảy ra là không thường xuyên.
Bảng 4.3 Kết quả thực hiện bằng phần mềm với FPGA Atlys Spartan-6
Thuật toán Số dòng lệnh trong C Thông lượng (Kbps) Kích thước bộ nhớ (KB) AES-256 488 62.5 17 SHA-512 500 135 17 RSA 66 0.29 2 RLE 120 247 5
85