Luận án Bảo mật Bitstream FPGA

Luận án Bảo mật Bitstream FPGA trang 1

Trang 1

Luận án Bảo mật Bitstream FPGA trang 2

Trang 2

Luận án Bảo mật Bitstream FPGA trang 3

Trang 3

Luận án Bảo mật Bitstream FPGA trang 4

Trang 4

Luận án Bảo mật Bitstream FPGA trang 5

Trang 5

Luận án Bảo mật Bitstream FPGA trang 6

Trang 6

Luận án Bảo mật Bitstream FPGA trang 7

Trang 7

Luận án Bảo mật Bitstream FPGA trang 8

Trang 8

Luận án Bảo mật Bitstream FPGA trang 9

Trang 9

Luận án Bảo mật Bitstream FPGA trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 27 trang nguyenduy 31/05/2024 490
Bạn đang xem 10 trang mẫu của tài liệu "Luận án Bảo mật Bitstream FPGA", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

Tóm tắt nội dung tài liệu: Luận án Bảo mật Bitstream FPGA

Luận án Bảo mật Bitstream FPGA
n có kiến 
thức về phần cứng lẫn phần mềm. 
 7 
1.4. Kết luận chương 
 Thực tế cho thấy, các FPGA với các bộ vi xử lý nhúng và khả năng tái lập trình 
lại được sẽ cho phép xây dựng các hệ thống có hiệu suất cao. Chúng trở thành nền 
tảng phần cứng quan trọng, đáp ứng các mục tiêu về độ tin cậy và hiệu xuất mà một 
hệ thống nhúng yêu cầu. 
 Hệ thống nhúng dựa trên SRAM-based FPGA tạo thành nền tảng công nghệ 
quan trọng cho thời kì hậu PC. Từ đó việc xử lý thông tin ngày càng chuyển dịch ra 
xa các hệ thống toàn PC và tiến về các hệ thống nhúng. 
 Tuy nhiên, cùng với việc tăng lên của các hệ thống nhúng dựa trên FPGA, nhu 
cầu về bảo mật cũng tăng lên. Trong đó, bảo mật thiết kế phần cứng đặc biệt quan 
trọng, bởi vì nó là nền tảng mà các ứng dụng thực thi trên đó, và nó cũng là tài sản trí 
tuệ của các nhà thiết kế phát triển. 
 Qua phần lý thuyết tổng quan về bảo mật, FPGA và hệ thống nhúng, chúng ta 
nhận thức được rằng: trong thời đại công nghiệp số hiện nay, thực hiện bảo mật là hết 
sức quan trọng để bảo vệ hệ thống và bảo vệ tài sản trí tuệ của người chủ sở hữu. 
 Chương 2 
 Framework và giao thức cập nhật an toàn từ xa 
Giới thiệu: Chương này trình bày framework và giao thức mà tác giả đề xuất để 
đảm bảo tính an toàn và tính linh hoạt khi cập nhật bitstream từ xa của các hệ thống 
nhúng cấu hình lại được từng phần dựa trên FPGA. Trong framework này tác giả 
xem xét giải quyết các vấn đề khác nhau về bảo mật bao gồm việc trao đổi, quản lý, 
mã hóa, xác thực và nén bitstream. 
2.1 Xây dựng và mô tả cấu trúc của Framework 
 Để xây dựng framework và giao thức cho hệ thống nhúng cấu hình lại được từng 
phần, chúng ta tìm hiểu chức năng, nhiệm vụ và mối quan hệ của các chủ thể khác 
nhau trong quá trình trao đổi, cập nhật và bảo vệ quyền sở hữu trí tuệ các lõi IP sau 
đây. 
 Nhà tích hợp hệ thống (SysInt - System Integrator): Đây là nhà thiết kế hệ 
thống dựa trên FPGA và cung cấp nó cho người dùng. 
 Nhà cung cấp lõi IP (IPVend - IP Vendor): Đây là các công ty chuyên cung 
cấp các lõi IP có thể tái sử dụng cùng với các tài liệu liên quan. 
 Cơ quan đáng tin cậy hay trung tâm xác thực (TAut-Trusted Authority) là cơ 
quan được các bên tin tưởng ủy quyền cung cấp và xác thực khóa hoặc giấy chứng 
nhận bản quyền. 
 Người sử dụng hay người dùng (User): là khách hàng cuối cùng sử dụng hệ 
thống. 
 Kẻ tấn công (Attacker): là đối tượng tìm cách thâm nhập, trộm cắp hoặc phá 
hoại các lõi IP hoặc hệ thống. 
 Cấu trúc của framework mà luận án đề xuất được xây dựng như trong hình 2.1. 
 8 
 Hình 2.1 Cấu trúc của Framework bảo mật 
2.1.1. Các thành phần phía nhà cung cấp dịch vụ 
- Cơ sở dữ liệu hồ sơ người sử dụng (User Profile Database) lưu trữ thông tin về 
 tất cả người dùng đã đăng ký bao gồm cả số định danh của FPGA, phiên bản của 
 bitstream, kích thước phân vùng cấu hình lại và thuật toán mã hóa. 
- Lưu trữ (Repository): Kho lưu trữ bitstream và các thành phần chức năng được 
 sử dụng để cấu hình lại phần cứng cấu hình lại được thời gian chạy có thể được 
 cài đặt và thực hiện trên vi xử lý nhúng của hệ thống người dùng. 
- Trình quản lý cập nhật của máy chủ (SuM - Server Update Manager): là 
 trình quản lý cập nhật, thuật toán mã hóa và phần mềm. 
- Các bộ mã hóa, xác thực và nén: chịu trách nhiệm mã hóa, xác thực và nén 
 bitstream. 
2.1.2. Các thành phần phía 
 người dùng 
 Trình quản lý cập nhật của máy 
trạm (CuM - Client Update Manager): 
chịu trách nhiệm quản lý việc tải xuống và 
cấu hình lại hệ thống. Nó chịu trách 
nhiệm giao tiếp với các nhà cung cấp dịch 
vụ và duy trì các thông tin về hồ sơ cá 
nhân của hệ thống người dùng cuối. 
2.2 Giao thức cập nhập 
 Giao thức cập nhật xác định một 
cuộc tương tác trao đổi giữa một trình 
quản lý cập nhật máy chủ SuM của bên 
cung cấp dịch vụ, là thực thể phụ trách 
việc phân phối bitstreams mới tới các hệ 
thống nhúng dựa trên FPGA, và một trình Hình 2.2 Lưu đồ giao thức cập nhật an toàn 
 9 
quản lý cập nhật máy khách CuM của phía người sử dụng. 
 Hình 2.2 mô tả thông tin liên lạc giữa SuM và CuM. Mỗi phiên giao dịch bắt 
đầu với một bản tin "GetUpdate" ban đầu từ SuM và một bản tin phản hồi 
"ResUpdate" từ CuM. Trong các bản tin "GetUpdate" và "ResUpdate", hai bên trao 
đổi các tham số cần thiết cho một phiên cập nhật an toàn, ví dụ như số chỉ dùng một 
lần "Nonces", số định danh FPGA F, phiên bản bitstream V, số giấy phép bản quyền 
NPiLS, v.v. Sau đó, các tham số này được chuyển đổi một cách gián tiếp vào trong các 
mã xác thực bản tin MAC thông qua việc thực hiện hàm băm SHA. Điều này đảm 
bảo rằng việc xác thực sự tươi mới của dữ liệu nhận được tiếp theo trong phiên giao 
dịch chỉ đơn giản là dùng mỗi giá trị MAC mà không cần phải lặp lại các tham số và 
dữ liệu cũ của đã trao đổi trước đó. 
2.2.1. Giao thức cập nhật từ xa an toàn 
 Giao thức cập nhật từ xa an toàn bao gồm hai thuật toán tương ứng với hai phía 
của một hệ thống: Thuật toán 1 cho phía FPGA (tức là phía người sử dụng) và thuật 
toán 2 cho phía nhà cung cấp dịch vụ. Đầu tiên, chúng ta tập trung thảo luận về các 
thuật toán 1 ở phía FPGA, đây là thuật toán chạy trên thiết bị với nhiều hạn chế về tài 
nguyên phần cứng. 
 Các tham số trong giao thức được lưu trữ trong cơ sở dữ liệu hồ sơ người dùng 
của nhà cung cấp dịch vụ và bên phía người sử dụng. Các tham số đó là: 
 SKS: Khóa bảo mật được chia sẻ bởi SuM 
 F: Số định danh của FPGA 
 Pi: Số định danh của phân vùng cấu hình lại được trong FPGA 
 VPi: Số phiên bản của bitstream hiện đang hoạt động 
 Lmax: Độ dài tối đa của bitstream từng phần của phân vùng Pi 
 AE: Thuật toán mã hóa được sử dụng 
 AC: Thuật toán nén được sử dụng 
 VPiNVM: Số phiên bản bitsream lưu trữ trong bộ nhớ không bay hơi 
 NCuM: Giá trị bộ đếm lưu trong bộ nhớ không bay hơi của CuM 
 LPiU: Độ dài bitstream từng phần được tải lên 
 NPiLS: Số bản quyền của bitstream từng phần 
 VPiU: Số phiên bản của bitstream được tải lên 
 NSuM: Số Nonce được tạo bởi SuM 
 Fe, Pe, Ve: Giá trị được mong đợi của F, Pi,VPi 
 Nmax: Giới hạn trên của NNVM 
 PB: Bitstream từng phần ở dạng nén 
 Mx: Các giá trị MACs 
2.2.2.1. Thuật toán 1 - Thuật toán bên phía người dùng FPGA 
 1. Start: 
 2. Receive(C, Fe, Pi, VPie, LPiU, Nmax, NSuM, M0) 
 3. if LPiU Lmax then goto 34 
 4. if C ≠ “GetUpdate” then goto Start: 
 5. VPiNVM := VPi 
 6. ReadNVM(NCuM) 
 10 
 7. M’0 = MAC(C, Fe, Pi, VPie, LPiU, Nmax, NSuM) 
 8. S := (M0 = M’0)  (VPie = VPi)  (Fe = F)  (NCuM < Nmax) 
 9. if S then 
 10. NCuM := NCuM + 1 
 11. WriteNVM(NCuM) 
 12. else goto Start: 
 13. end if 
 14. MK := MAC(F, Pi, VPi, SKS) 
 15. MLS := MAC(F, Pi, VPi, NPiLS) 
 16. M1 := MAC(“ResUpdate”, F, Pi, VPi, Lmax, NCuM, AE, AC, MK, MLS, M0) 
 17. Send(“ResUpdate”, F, Pi, VPi, Lmax, NCuM, AE, AC, MK, MLS, M1) 
 18. Receive(C, M2) 
 19. if M2 ≠ MAC(C, M1) then goto Start: 
 20. if C = “Update” then 
 21. Receive(PB, M3) 
 22. If M3 ≠ MAC(PB, M2) then goto Start: 
 23. Receive(“UpFinish”, VPiU, M4) 
 24. if M4 ≠ MAC(“UpFinish”, VPiU, M3) then goto Start: 
 25. Decrypt() 
 26. Decompress() 
 27. ReconfCtr() 
 28. VPiNVM := VPi 
 29. M5 = MAC(“UpConfirm”, VPiNVM, M4) 
 30. Send(“UpConfirm”, VPiNVM, M5) 
 31. end if 
 32. if C= “Abort” then goto Start: 
 33. UpUserprofile(F, Pi, VPi, Lmax, NCuM, AE, AC) 
 34. Warn(“Resize your partial reconfigurable partition”) 
 Trong đó: 
- GetUpdate, Update, UpFinish, Abort là các bản tin được gửi từ máy chủ cập nhật. 
- ResUpdate, UpConfirm là các bản tin được gửi từ FPGA đến máy chủ cập nhật. 
- Decrypt(), Decompress(), ReconfCtr() là các hàm giải mã, giải nén và cấu hình lại. 
- UpUserprofile là chỉ thị lệnh cập nhật hồ sơ người dùng. 
 2.2.2. Phân tích bảo mật 
 2.2.3.1. Tính bí mật và tính xác thực 
 Trong giao thức đã đề xuất, ở phía FPGA, bộ giải mã và bộ xác thực luôn luôn 
được thực hiện và có thể thực hiện trong phần cứng hoặc phần mềm nhúng. Do vậy, 
bitstream một phần được chuyển giao thông qua Internet luôn được mã hóa để chống 
lại các cuộc tấn công nhân bản hoặc kỹ thuật đảo ngược. Các bước trong quá trình 
trao đổi này luôn được xác thực để đảm bảo tính tươi mới, tính toàn vẹn và tính chính 
gốc của bitstream, nhằm ngăn chặn các cuộc tấn công phát lại. 
 2.2.3.2. Giá trị của các tham số 
 NSuM là số ngẫu nhiên đủ lớn để việc tái hiện lại nó thông thực tế là không thể. 
Việc sử dụng một từ 64-bit cho NSuM sẽ đảm bảo rằng một kẻ tấn công với năng lực 
thực hiện 103 truy vấn mỗi giây phải mất vài thập kỷ để tìm ra một giá trị trùng lặp. 
 11 
 Giao thức đề xuất sử dụng khóa SKS dài 256-bit cho thuật toán mã hóa AES. 
Thuật toán AES cho đến nay vẫn được coi là an toàn, có nghĩa là trong hiện tại dữ 
liệu được mã hóa với thuật toán AES đã không bị phá vỡ. Chiều dài khóa 256-bit của 
thuật toán AES là đủ để bảo vệ thông tin thuộc loại bí mật. 
 Các giá trị MAC M0, M1, M2, M3,v.v. được tạo ra bởi hàm băm SHA-512 có 
chiều dài 512-bit. Các giá trị MAC này cung cấp một mức an toàn cao đối với các 
cuộc tấn công dò tuần tự. 
 Các tham số khác như Pi, Vi, LMax, v.v. là các tham số phục vụ cho việc cấu hình 
lại từng phần. Kích thước của chúng phụ thuộc vào các ứng dụng và định nghĩa của 
người dùng. 
2.3 Giao thức trao đổi khóa 
2.3.1. Giao thức trao đổi khóa qua trung tâm xác thực 
 Đây là mức độ an toàn rất cao trong trao đổi khóa. Khóa của các bên luôn luôn 
được chứng thực bởi trung tâm xác thực trước khi thực hiện giao dịch dữ liệu. Chi 
tiết được mô tả trong Hình 2.3 và các bước tiến hành như sau: 
 Hình 2.2 Giao thức trao đổi khóa được xác thực bởi TAut 
 Tại mỗi phiên giao dịch, cả hai khóa PKV và SKS luôn được trao đổi và xác thực 
qua TAut. Riêng khóa riêng SKV là không trao đổi. Khóa công khai PKV không cần 
phải giữ bí mật nên khi trao đổi qua mạng không cần thiết phải được mã hóa. Chỉ 
khóa bí mật SKS cần phải được bảo mật và nó đã được mã hóa bởi khóa PKV trước khi 
gửi qua Internet. Giao thức trao đổi khóa an toàn được mô tả chi tiết hơn trong các 
thuật toán sau. 
2.3.1.1. Thuật toán 3 - Thuật toán bên phía nhà thiết kế hệ thống 
 S1. Generate(NSuM) 
 S2. M0 = HMAC(“ReqIP”, SID, VID, NSuM) 
 S3. Send(“ReqIP”, SID, VID, NSuM, M0) 
 S4. Receive(“ReqSKS”, PKV, M1) 
 S5. M1’ = HMAC(“ReqSKS”, PKV, M0) 
 S6. If M1’ ≠ M1 then goto S1 
 S7. M2 = HMAC(“VerifyPKV”, SID, VID, TAID, PKV, M1) 
 S8. Send(“VerifyPKV”, SID, VID, TAID, PKV, M1, M2) 
 S9. Receive(“ConfirmPKV”, M3) 
 S10. M3’ = HMAC(“ConfirmPKV”, M2) 
 S11. If (“ConfirmPKV ” ≠ PKV_OK) or M3’ ≠ M3 then goto S1 
 12 
S12. M4 = HMAC(EncryptedSKS, M1) 
S13. Send(EncryptedSKS, M4) 
S14. Receive(EncryptedIP, M7) 
2.3.1.2. Thuật toán 4 – Thuật toán bên phía nhà cung cấp IP 
V1. Receive(“ReqIP”, SID, VID, NSuM, M0) 
V2. M0’ = HMAC(“ReqIP”, SID, VID, NSuM) 
V3. If M0’ ≠ M0 then goto V1 
V4. M1 = HMAC(“ReqSKS”, PKV, M0) 
V5. Send(“ReqSKS”, PKV, M1) 
V6. Receive(EncryptedSKS, M4) 
V7. M4’ = HMAC(EncryptedSKS, M1) 
V8. If M4’ ≠ M4 then goto V1 
V9. M5 = HMAC(“VerifySKS”, EncryptedSKS, M4) 
V10. Send(“VerifySKS”, EncryptedSKS, SID, VID, PKV, M4, M5) 
V11. Receive(“ConfirmSKS”, M6) 
V12. M6’ = HMAC(“ConfirmSKS”, M5) 
V13. If (“ConfirmSKS ” ≠ SKS_OK) or M6’ ≠ M6 then goto V1 
V14. M7 = HMAC(EncryptedIP, M6) 
V15. Send(EncryptedIP, M7) 
2.3.1.3. Thuật toán 5 – Thuật toán bên phía trung tâm xác thực 
T1. Receive(“VerifyPKV”, SID, VID, TAID, PKV, M1, M2) 
T2. M2’ = HMAC(“VerifyPKV”, SID, VID, TAID, PKV, M1) 
T3. If M2’ ≠ M2 then goto T1 
T4. M3 = HMAC(“ConfirmPKV”, M2) 
T5. Send(“ConfirmPKV”, M3) 
T6. Receive(“VerifySKS”, EncryptSKS, SID, VID, PKV, M4, M5) 
T7. M5’ = HMAC(“VerifySKS”, EncryptedSKS, M4) 
T8. If M5’ ≠ M5 then goto T1 
T9. M6 = HMAC(“ConfirmSKS”, M5) 
T10. Send(“ConfirmSKS”, M6) 
2.3.2. Giao thức trao đổi khóa qua không qua trung tâm xác thực 
 Hình 2.3 Giao thức trao đổi khóa không qua trung tâm xác thực 
 13 
 Khi các bên có thể tin tưởng lẫn nhau, trao đổi khóa có thể không cần phải qua 
trung tâm xác thực. Tuy nhiên, để phòng ngừa rủi ro, khóa đối xứng theo phiên (sau 
đây gọi là khóa phiên) được đề xuất sử dụng. Khóa phiên là một khóa đối xứng có thể 
được sử dụng cho từng trao đổi khác nhau giữa các đối tác. Khóa được tạo ra cho mỗi 
phiên giao dịch để loại bỏ các yêu cầu về bảo trì và lưu trữ. Mỗi một khoá được sử 
dụng một lần với một bản tin duy nhất. 
 Các thuật toán của việc trao đổi khóa an toàn giữa SysInt và IPVend, Hình 2.4a, 
hoặc giữa SysInt và User, Hình 2.4b, được mô tả như dưới đây. trong đó, khóa phiên 
SSKS được tạo ra bởi SysInt. SysInt sử dụng PKV để mã hóa khóa phiên này và gửi 
cho IPVend. 
2.3.2.1. Thuật toán 6: Thuật toán bên phía nhà tích hợp hệ thống 
 S1. Generate(NSuM, SSKS) 
 S2. M0 = HMAC(“ReqIP”, SID, VID, NSuM) 
 S3. Send(“ReqIP”, SID, VID, NSuM, M0) 
 S4. Receive(“ReqSSKS”, PKV, M1) 
 S5. M1’ = HMAC(“ReqSSKS”, PKV, M0) 
 S6. If M1’ ≠ M1 then goto S1 
 S7. M2 = HMAC(EncryptedSSKS, M1) 
 S8. Send(EncryptedSSKS, M2) 
 S9. Receive(EncryptedIP, M3) 
2.3.2.2. Thuật toán 7: Thuật toán bên phía nhà cung cấp IP 
 V1. Receive(“ReqIP”, SID, VID, NSuM, M0) 
 V2. M0’ = HMAC(“ReqIP”, SID, VID, NSuM) 
 V3. If M0’ ≠ M0 then goto V1 
 V4. M1 = HMAC(“ReqSSKS”, PKV, M0) 
 V5. Send(“ReqSSKS”, PKV, M1) 
 V6. Receive(EncryptedSSKS, M2) 
 V7. M2’ = HMAC(EncryptedSSKS, M1) 
 V8. If M2’ ≠ M2 then goto V1 
 V9. M3 = HMAC(EncryptedIP, M2) 
 V10. Send(EncryptedIP, M3) 
2.3.3. Phân tích bảo mật 
 Độ an toàn và tính bảo mật của các tham số NSuM, độ dài khóa và các thuật toán 
mã hóa tương tự như đã phân tích ở phần trên 2.2.3. Phân này phân tích tiếp một số 
bổ sung trong giao thức trao đổi khóa an toàn. 
 Khóa của các thiết bị cụ thể có thể được tạo ra và quản lý theo nhiều cách khác 
nhau. Ví dụ, SKS có thể được tạo ra và xác thực bởi TAut, và được lưu trữ trong cơ sở 
dữ liệu của máy chủ cập nhật. Hoặc khóa phiên SSKS có thể được tính toán từ số định 
danh F và số chỉ sử dụng một lần NSuM: 
 14 
 SSK E(,) F N (2.1)
 S KM SuM 
 Trong đó khóa KM chỉ được biết đến bởi máy chủ cập nhật. Hoặc theo một cách 
khác, số định danh F có thể được sử dụng như một khóa công khai để các máy chủ 
cập nhật trao đổi an toàn khóa bí mật SKS, SSKS với các thiết bị đầu cuối. 
 Thuật bất đối xứng RSA được sử dụng để bảo vệ khóa đối xứng khi trao đổi qua 
mạng. Việc tìm khóa riêng từ khóa công khai đã biết là rất khó khăn. Hơn nữa, khóa 
riêng không được trao đổi qua mạng, do đó nguy cơ bị rò rỉ khóa này là ít có thể xảy. 
Có nghĩa là việc bảo vệ khóa đối xứng khi trao đổi qua mạng bằng thuật toán khóa 
công khai sẽ là cách thực hiện rất an toàn. 
2.4 Đánh giá và so sánh với các nghiên cứu liên quan 
 Các nghiên cứu trước đây vẫn chưa xem xét một cách đầy đủ các khía cạnh của 
một giải pháp tổng thể cho bài toán bảo mật bitstream trong các hệ thống nhúng cấu 
hình lại được từng phần dựa trên FPGA khi cập nhật từ xa qua mạng công cộng với 
nhiều rủi ro trên đường truyền dẫn. Đó là lý do mà tác giả đã đề xuất framework và 
xây dựng giao thức cập nhật an toàn như đã trình bày ở trên. Kết quả cụ thể được chỉ 
ra trong Bảng 2.1 sau. 
 Bảng 2.1 So sánh các thực hiện trên bitstream và hệ thống 
 Giao thức Trao Cấu hình 
 Mã Xác Hệ thống 
 Các nghiên cứu Nén cập nhật đổi từng 
 hóa thực nhúng 
 từ xa khóa phần 
 [23] x x x 
 [30] x x x 
 [41] x x x 
 [90][91] x 
 [93][94] x x 
 [95] x x 
 Framework của 
 x x x x x x x 
 chúng tôi 
2.5 Kết luận chương 
 Qua chương này, tác giả đã thực hiện hai công việc chính. Đó là: 
 - Đã đề xuất và trình bày một framework cho việc bảo mật bitstream của các hệ 
 thống nhúng cấu hình lại được từng phần dựa trên FPGA khi cập nhật từ xa qua 
 mạng internet. Framework của tác giả là cấu trúc hoàn chỉnh và linh hoạt dành 
 cho các nhà thiết kế hệ thống cũng như người dùng khi thực hiện các giải pháp 
 an ninh cho hệ thống của mình. 
 - Một phần quan trọng trong framework là giao thức truyền thông an toàn và các 
 cơ chế đảm bảo an toàn cập nhật bitstream. Tác giả đã đề xuất và xây dựng một 
 bộ giao thức với các tình huống trao đổi và cập nhật bitstream khác nhau. Giao 
 15 
 thức này với các tham số đáp ứng cho việc cập nhật an toàn hệ thống nhúng cấu 
 hình lại được từng phần mà một số nghiên cứu trước đây chưa đề cập đến. 
 Chương 3 
 Nâng cao hiệu năng và tính linh hoạt trong bảo mật bitstream của hệ 
 thống cấu hình lại được từng phần dựa trên FPGA 
Giới thiệu: Chương này tác giả xem xét đến việc sử dụng tối ưu tài nguyên của hệ 
thống bằng cách đề xuất giải pháp xây dựng các bộ giải mã và xác thực trong khu 
vực cấu hình lại được từng phần. Các mã hóa này có thể được giải phóng khỏi khu 
vực cấu hình lại khi nó không được sử dụng đến và thay thế vào đó bằng một ứng 
dụng hữu ích khác. Ngoài ra, để giảm dung lượng bộ nhớ khi lưu trữ bitstream, tác 
giả sử dụng giải pháp nén bitstream. Và để cải thiện hiệu năng của hệ thống, tác giả 
sử dụng bus tốc độ cao AXI với các bộ FIFO được hỗ trợ trong các FPGA hiện đại. 
3.1 Hệ thống cấu hình lại được từng phần 
 Cấu hình lại được từng phần là khả năng thay đổi một cách linh hoạt các khối 
logic phần cứng bằng cách cấu hình lại các phân vùng tương ứng trên thiết bị bằng 
các tập tin bitstream từng phần. 
 Với công nghệ cấu hình lại được từng 
phần, phần cứng của FPGA được thiết kế 
gần giống như thiết kế phần mềm. Có nghĩa 
là, nó có thể được thiết kế thành từng mô-
đun cấu hình lại được RM (Reconfigurable 
Module), và sau đó tổng hợp vào hệ thống. 
Như được trình bày trong Hình 3.1, hệ 
thống cấu hình lại được từng phần dựa trên 
FPGA bao gồm phần logic tĩnh và ba phân 
vùng cấu hình lại được RP (Reconfigurable Hình 3.1 Ví dụ về một hệ thống cấu hình 
Partition). Ứng với các phân vùng RP#1, lại được từng phần 
RP#2, RP#3, ta có thể xây dựng thành tập 
các mô-đun từng phần RM1, RM1,RM3 
tương ứng. 
3.1.1. Các ưu điểm của cấu hình lại từng phần 
 Có rất nhiều lợi ích với cấu hình lại từng phần: 
- Tăng hiệu năng của hệ thống 
- Khả năng thay đổi phần cứng 
- Chia sẻ phần cứng 
- Giảm thời gian cấu hình lại 
3.2 Tối ưu hóa tài nguyên phần cứng 
3.2.1. Tối ưu hóa tài nguyên logic 
 16 
 Trong thiết kế bảo mật, tác giả xây 
dựng các bộ mã hóa, xác thực và nén 
bitstream trong phần cứng và cả trong 
phần mềm. Đối với phần cứng, tác giả 
xây dựng các bộ mã hóa và xác thực 
trong phần logic cấu hình lại được. Sơ đồ 
của hệ thống như được thể hiện trong 
Hình 3.2. 
3.2.1.1. Phân tích và đánh giá kết 
 quả 
 Sự linh động và tiết kiệm tài nguyên 
cho hệ thống có thể được giải thích như 
sau: 
- Các bộ mã hóa AES và xác thực 
 SHA có thể được phát triển, nâng 
 Hình 3.2 Sơ đồ khối của hệ thống nhúng cấu 
 cấp và tái sử dụng một cách linh hình lại được dựa trên FPGA 
 động mỗi khi có yêu cầu mà không 
 cần phải thiết kế lại toàn bộ hệ thống. 
- Như số liệu trong Bảng 3.1, ta thấy tài nguyên sử dụng cho AES-256 và SHA-
 512 chiếm một phần đáng kể trong FPGA Spartan-6 của Xilinx. Việc giải phóng 
 các phần tài nguyên này thực sự cần thiết và hữu ích. 
 Bảng 3.1 Sử dụng phần cứng của AES-256 và SHA-512 
 Tài nguyên sử dụng 
 Lõi IP 
 Registers LUTs Slice 
 AES-256 3.096 (5,67%) 3.751 (13,74%) 1.293 (18,95%) 
 SHA-512 2.246 (4,11%) 2.299 (8,42%) 848 (12,48%) 
3.2.2. Tối ưu vùng nhớ lưu trữ 
 Nén bitstream là một công việc quan trọng trong thiết kế hệ thống cấu hình lại vì 
nó làm giảm kích thước bitstream để giảm yêu cầu về bộ nhớ lưu trữ. Nó cũng cải 
thiện băng thông truyền tải trên mạng và do đó giảm được thời gian cập nhật hệ 
thống. Đặc biệt là trong các hệ thống cấu hình lại được từng phần. 
 Tỉ số nén thường được sử dụng để tính toán hiệu quả của các kỹ thuật nén và 
được định nghĩa như sau: 
 CP
 CR (3.1) 
 OP
 Trong đó CR (Compression Ratio) là tỉ số nén, CP (Compressed Program) kích 
thước chương trình đã nén, OP (Original Program) kích thước chương trình gốc ban 
đầu. Như vậy, thuật toán nén tốt sẽ có tỉ số 

File đính kèm:

  • pdfluan_an_bao_mat_bitstream_fpga.pdf