硬件設(shè)計(jì)要求
在之前的版本中,加密是通過(guò)VCC_AUX來(lái)供電的。在新的版本中已經(jīng)通過(guò)單獨(dú)的VQPS管腳來(lái)供電來(lái)實(shí)現(xiàn)。
對(duì)于Ti35/Ti60F225,VQPS供電管腳是G6,對(duì)于Ti35/Ti60F100S3F2,VQPS供電管腳是A5,這兩個(gè)腳在之前的版本中都直接接地的。所以對(duì)于新設(shè)置的硬件或者改版的硬件,如果要使用加密功能就需要注意。
如果需要燒寫密鑰,可以單獨(dú)給VQPS供1.8V的電源,VQPS的供電波形如下??梢钥紤]把VQPS拉到一個(gè)排針上或者座子上,燒寫密鑰時(shí)就給VQPS供電1.8V,燒寫完成之后再拉低即可。
如果不需要燒寫密鑰只要把VQPS管腳拉低即可以。
易靈思的鈦金系列支持加密特性,包括使用AES-GCM-256算法的比特流加密知識(shí)產(chǎn)權(quán)保護(hù)和使用RSA-4096算法的非對(duì)稱比特流認(rèn)證。這兩種方式既可以單獨(dú)使用,也可以同時(shí)使用,下面來(lái)詳細(xì)了解下。
1)、對(duì)稱比特流加密
使用256位的密鑰和AES-CGM-256加密算法。
(1)生成密鑰,
(2)用生成的密鑰加密比特流(通過(guò)bin文件);
(3)把生成的密鑰存儲(chǔ)到FPGA的熔絲中,即下圖中的Blow Fuses工具,密鑰在svf文件中。
(4)在FPGA配置過(guò)程,F(xiàn)PGA通過(guò)內(nèi)部的AES-GCM-256引擎和密鑰解密加密的數(shù)據(jù)流。
需要補(bǔ)充的是FPGA通過(guò)Blow Fuses工具燒寫了熔絲之后,也是可以配置不加密比特流的。
2)、比特流認(rèn)證
對(duì)于比特流認(rèn)證,需要使用公鑰和私鑰對(duì)及RSA-4096算法。
(1)生成公鑰和私鑰;
(2)用私鑰對(duì)數(shù)據(jù)流簽名,私鑰存儲(chǔ)在.pem文件中。
(3)將公鑰的哈希值存儲(chǔ)到FPGA內(nèi)部的熔絲中,即下圖中的Blow Fuses工具。,公鑰在svf文件中。
(4)在配置過(guò)程中,F(xiàn)PGA通過(guò)公鑰對(duì)比特流進(jìn)行簽名驗(yàn)證;如果簽名有效,F(xiàn)PGA就知道位流來(lái)自可信的源,并且沒(méi)有被第三方修改過(guò)則進(jìn)入用戶模式;否則停止配置;
(5)私鑰要保存好。
需要補(bǔ)充的是FPGA通過(guò)Blow Fuses工具燒寫了熔絲之后,必須要用.pem文件對(duì)比特流進(jìn)行簽名。
3)、JTAG阻斷
鈦金系列FPGA還支持通過(guò)燒斷熔絲的方式阻斷JTAG功能。阻斷之后JTAG只能執(zhí)行讀取ID和器件狀態(tài)和使能旁路模式;因?yàn)镴TAG阻斷之后就沒(méi)有辦法再操作JTAG,所以要確保在最后一步使用。
四、軟件操作
在Efinity菜單Tool- >Open Key Generator打開密鑰生成器。
(1)ASE-256 Key用于生成ASE 256位的密鑰文件,可以隨機(jī)生成,也支持手動(dòng)輸入,文件后綴為.bin。
(2)生成RSA-4096的私鑰文件,后綴為.pem。支持手動(dòng)添加文件也支持自動(dòng)生成。
(3)指定是否阻斷JTAG.
(4)點(diǎn)擊Generate生成相應(yīng)的文檔。會(huì)生成以.bin,.pem和.svf為后綴的三個(gè)文件。
數(shù)值要保存
燒寫熔絲。
在Efinity菜單Tool- >Open JTAG SVF Player。
添加svf文件。svf文件中包含JTAG命令和密鑰信息。
(1)讀取JTAG IDCODE與.svf內(nèi)的ID進(jìn)行比對(duì),確認(rèn)是否為目標(biāo)型號(hào)PFGA。
(2)對(duì)于AES加密,發(fā)送8個(gè)32位的key;
(3)對(duì)于RAS認(rèn)證,發(fā)送12個(gè)32位的Key;
(4)發(fā)送熔斷JTAG熔絲的指令;
(1)RAS密鑰熔斷熔絲后,F(xiàn)PGA只能接受通過(guò)正確的私鑰簽名的比特流文件。
(2)AES-256密鑰熔絲后,F(xiàn)PGA只能接受未加密文件或者通過(guò)正確的密鑰加密的比特流文件。
注意燒寫后復(fù)位CRESET_N才會(huì)生效。
已經(jīng)被熔斷的熔絲再次熔斷時(shí),或者FPGA的型號(hào)與密鑰生成器中的型號(hào)不對(duì)應(yīng)時(shí)會(huì)發(fā)送TDO Mismatch。如下圖。
在Project Editor中把上面生成的生成加密文件根據(jù)需要添加起來(lái),重新生成比特流即可,不需要重新編譯。
如果只用AES-256,則不需要勾選Bitstream Authentication.
5)熔絲的熔斷順序
對(duì)于AES-256、RSA和JTAG熔絲熔斷順序要求是:可以同時(shí)熔斷AES-256和RSA的熔絲和熔斷JTAG熔絲;但在不同時(shí)熔斷的情況下,只能把JTAG熔絲熔斷操作放在最后。對(duì)于AES-256和RSA熔絲熔斷順序不做要求。
6)驗(yàn)證加密選項(xiàng)。
通過(guò)Programmer工具的Advanced Device Con?guration Status中的RSA_ACTIVE和AES_ACTIVE可以判斷是否使能了RSA和AES,當(dāng)為1時(shí)表示使能。
補(bǔ)充說(shuō)明:
(1)加密時(shí)不能使用數(shù)據(jù)流壓縮功能。
(2)加密功能必須要接REF_RES_3A電阻
-
FPGA
+關(guān)注
關(guān)注
1624文章
21616瀏覽量
601104 -
加密方案
+關(guān)注
關(guān)注
0文章
18瀏覽量
5195 -
易靈思
+關(guān)注
關(guān)注
5文章
45瀏覽量
4837
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論