查看: 2882|回復: 0
打印 上一主題 下一主題

采用MAX II器件實(shí)現FPGA設計安全解決方案

[復制鏈接]
跳轉到指定樓層
樓主
發(fā)表于 2010-12-7 01:10:52 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
關(guān)鍵詞: FPGA , MAX , 編碼器 , 計數器
本文提供的解決方案可防止FPGA設計被拷貝,即使配置比特流被捕獲,也可以保證FPGA設計的安全性。這種安全性是通過(guò)在握手令牌由MAX II器件傳送給FPGA之前,禁止用戶(hù)設計功能來(lái)實(shí)現的。

基于SRAM的FPGA是易失器件,需要外部存儲器來(lái)存儲上電時(shí)發(fā)送給它們的配置數據。在傳送期間,配置比特流可能會(huì )被捕獲,用于配置其他FPGA。這種知識產(chǎn)權盜竊損害了設計人員的利益。

本文提供的解決方案可防止FPGA設計被拷貝,即使配置比特流被捕獲,也可以保證FPGA設計的安全性。通過(guò)在握手令牌由MAX II器件傳送給FPGA之前,禁止用戶(hù)設計功能來(lái)實(shí)現這種安全性。選用MAX II器件來(lái)產(chǎn)生握手令牌,這是因為該器件具有非易失性,關(guān)電時(shí)可保持配置數據。而且,對于這種應用,MAX II器件是最具成本效益的CPLD。本文還介紹了采用這種方案的一個(gè)參考設計。

一、硬件實(shí)現

FPGA設計安全解決方案的硬件實(shí)現如圖1所示。MAX II器件產(chǎn)生連續的握手令牌,發(fā)送至FPGA,以使能用戶(hù)設計。FPGA和MAX II器件之間傳送5個(gè)信號:clock、shift_ena、random_number、ready和handshaking_data。

一旦FPGA經(jīng)過(guò)配置后,它向MAX II器件提供連續時(shí)鐘。同時(shí)連接至FPGA和MAX II器件的啟動(dòng)/復位信號必須置位,以啟動(dòng)系統工作。FPGA中的隨機數發(fā)生器(RNG)開(kāi)始為FPGA和MAX II器件產(chǎn)生初始計數值(每次上電或者啟動(dòng)/復位信號置位時(shí),僅向MAX II器件發(fā)送一次隨機數)。隨機數準備好后,shift_ena信號變?yōu)楦唠娖,采用random_number信號,隨機數串行移位至MAX II器件。隨機數全部移位至MAX II器件后,ready信號置位,指示FPGA可以接收來(lái)自MAX II器件的握手令牌。

配置之后,由于Enable信號還是邏輯低電平,FPGA中的用戶(hù)設計功能被禁止。只有MAX II器件送出的握手令牌和FPGA內部產(chǎn)生的數據相匹配,Enable信號才會(huì )置位,啟動(dòng)用戶(hù)設計功能。這兩個(gè)數據之間出現差異時(shí),Enable信號變?yōu)榈碗娖,禁止用?hù)設計功能。MAX II器件中產(chǎn)生握手令牌和FPGA器件中產(chǎn)生數據的方法和過(guò)程相同。如果沒(méi)有正確的令牌,FPGA器件中的用戶(hù)設計功能被禁用。這樣,即使配置比特流被捕獲,也可以防止用戶(hù)設計被拷貝。



                                  圖1:FPGA設計安全方案的硬件實(shí)現

二、設計構建模塊

FPGA的設計安全組成包括一個(gè)時(shí)鐘分頻器、隨機數發(fā)生器(RNG)、安全內核、比較器和可靠性部分,而MAX II器件的設計安全組成只包括圖1所示的安全內核。

FPGA和MAX II器件使用的安全內核相同,如圖2所示,由以下部分構成:隨機數接收器、64位計數器、編碼器、移位器/復用器。



                                   圖2:FPGA和MAX II器件的安全內核

1、時(shí)鐘分頻器

FPGA中的時(shí)鐘分頻器用于從系統時(shí)鐘產(chǎn)生速率較低的時(shí)鐘,供給FPGA和MAX II器件的安全內核使用。這是因為安全內核不需要運行在非常高的頻率下。特別是當系統運行頻率非常高時(shí),時(shí)鐘分頻器的作用便比較顯著(zhù),否則,如果系統運行頻率較低,可以不使用該分頻器。

2、隨機數發(fā)生器(RNG)

每次啟動(dòng)/復位信號置位時(shí),RNG為64位計數器產(chǎn)生隨機初始值。然后,隨機數同時(shí)串行移位至FPGA和MAX II器件的安全內核。參考設計采用32位RNG。

3、隨機數接收器

隨機數接收器接收來(lái)自RNG的串行隨機數,并按照正確的順序排列數據,將其做為初始值送入64位計數器。

4、64位計數器6

4位計數器用于產(chǎn)生送入編碼器的64位數據。它是按照公式X=X+A進(jìn)行的一個(gè)簡(jiǎn)單加法器。X是一個(gè)64位初始值,而A是計數器遞增值,應為質(zhì)數。初始值X來(lái)自RNG。參考設計中,32位來(lái)自RNG,其余32位由用戶(hù)在設計代碼中設置。A可以由用戶(hù)在設計代碼中設置。計數器輸出送入編碼器,對數據進(jìn)行加密。編碼器每次完成前一數據的加密后,計數器數值遞增。

5、編碼器

編碼器可以采用任何難以破譯的加密標準。參考設計采用了三重數據加密標準(3DES)。3DES編碼器的輸入和輸出是64位值,需要48個(gè)時(shí)鐘周期完成64位數據加密。

6、移位器/復用器

移位器/復用器將編碼器輸出比特(16位)的一部分按照特定順序,存儲在寄存器中,編碼器準備下一數值時(shí),將其串行移位至比較器。

7、比較器

比較器將MAX II器件的編碼數據(握手令牌)與FPGA內部產(chǎn)生的編碼數據逐位比較。如果MAX II器件和FPGA的數據相匹配,Enable信號置位,使能用戶(hù)設計功能。如果出現不匹配,請參見(jiàn)下面的可靠性保證一節。這種方式可以重復幾次,以產(chǎn)生更多的Enable信號,使能用戶(hù)設計的不同部分。這種重復方式可以防止有人篡改FPGA比特流(這種可能性較低),致使Enable信號變?yōu)楦唠娖,導致設計安全方案失效。

8、可靠性

可靠性部分處理隨機比特錯誤,這種錯誤可能會(huì )導致系統停止工作。參考設計允許每10個(gè)時(shí)鐘周期中出現一次數據不匹配(這僅僅是一個(gè)例子,用戶(hù)可以根據實(shí)際應用,修改該方法,達到最佳效果)。換句話(huà)說(shuō),如果10個(gè)時(shí)鐘周期中,數據不匹配不超過(guò)一次,Enable信號仍將保持高電平,系統繼續工作。如果10個(gè)時(shí)鐘周期中出現兩個(gè)錯誤,那么,Enable信號變?yōu)榈碗娖,禁止用?hù)設計功能。在啟動(dòng)/復位信號置位,復位系統前,系統停止工作。



                                  圖3:不支持安全方案的FPGA設計。

三、用戶(hù)設計模塊

用戶(hù)設計模塊是真正的FPGA設計。來(lái)自安全模塊的Enable信號低電平時(shí)用于禁止用戶(hù)設計模塊。換言之,如果比較器發(fā)現MAX II器件和FPGA的數據不匹配,考慮到可靠性之后,將禁止用戶(hù)設計功能。

圖3是Enable信號低電平時(shí),禁止用戶(hù)設計功能的實(shí)例。圖3所示的FPGA用戶(hù)設計具有Clk_en輸入信號,用于使能設計中的時(shí)鐘。只有Clk_en信號高電平時(shí),才啟動(dòng)設計功能。為實(shí)現設計安全方案,對用戶(hù)設計稍做修改(增加了一個(gè)AND邏輯門(mén)),這樣,當來(lái)自安全模塊的Enable信號低電平時(shí),禁止用戶(hù)設計,如圖4所示。

四、解決方案的安全性

上電時(shí),當FPGA的配置比特流由外部存儲器傳送至FPGA時(shí),有可能被捕獲。使用捕獲的比特流來(lái)配置其他FPGA可以拷貝FPGA設計。

采用該解決方案,只有當MAX II器件的握手令牌與FPGA內部產(chǎn)生的數據相匹配時(shí),FPGA用戶(hù)設計才開(kāi)始工作。由于被復制的設計在沒(méi)有握手令牌時(shí)無(wú)法工作,因此保證了FPGA設計的拷貝安全性。用于產(chǎn)生握手令牌的MAX II器件具有非易失特性,關(guān)電時(shí)可保持其配置。

解決方案的安全性依賴(lài)于MAX II器件產(chǎn)生的握手令牌。要破解該方案,需要拷貝MAX II器件產(chǎn)生的全部令牌比特流,或者計算出編碼器用于產(chǎn)生令牌的密鑰。由于每次上電時(shí),MAX II器件產(chǎn)生的握手令牌都不同,因此,拷貝全部比特流來(lái)破解該方案是不可能的。這在于采用了RNG,它在上電時(shí)產(chǎn)生不同的數值送給MAX II器件。



                                   圖4:支持安全方案的FPGA設計

如果采用了成熟的加密算法,那么破解編碼器使用的密鑰將非常困難。而且,無(wú)法從外部看到編碼器輸入數據,只有一部分加密數據串行移出,更難實(shí)現純文本攻擊。純文本攻擊分析編碼器的輸入和輸出數據,猜出密鑰,實(shí)施攻擊。因此,該解決方案保護了FPGA設計。

為保證該方案正常工作,安全模塊的時(shí)鐘應和FPGA用戶(hù)設計的時(shí)鐘一致,如圖1所示。這樣可以防止有人在Enable信號高電平時(shí),禁用安全模塊時(shí)鐘。

五、本文小結

FPGA設計安全解決方案保護了Altera FPGA設計被拷貝(即使配置比特流被捕獲)。在MAX II器件通過(guò)握手令牌驗證前,禁止FPGA用戶(hù)設計,實(shí)現了該解決方案。只有握手令牌與FPGA內部產(chǎn)生的數據匹配時(shí),FPGA用戶(hù)設計才被使能。該解決方案還保護了FPGA中的設計人員知識產(chǎn)權。
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页