<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于1-Wire總線的DS28E01加密芯片原理研究及其在FPGA加密系統(tǒng)中的應(yīng)用

          基于1-Wire總線的DS28E01加密芯片原理研究及其在FPGA加密系統(tǒng)中的應(yīng)用

          作者:劉宇 徐東明 王艷 郭振雨 時(shí)間:2014-02-26 來源:電子產(chǎn)品世界 收藏
          編者按:?  1-Wire總線只需要一根數(shù)據(jù)線即可完成數(shù)據(jù)傳輸,相比其它總線硬件電路更為簡(jiǎn)單可靠,這非常適合應(yīng)用在加密系統(tǒng)中。DS28E01是美國(guó)DALLAS公司生產(chǎn)的一款應(yīng)用非常廣泛的加密芯片,它采用了1-Wire總線結(jié)構(gòu)。本文介紹了DS28E01基于 1-Wire總線的加密工作原理,詳細(xì)分析說明了加密過程中的關(guān)鍵指令并給出了相關(guān)時(shí)序說明。給出了DS28E01在FPGA加密系統(tǒng)中的應(yīng)用方案。   

           

          本文引用地址:http://www.ex-cimer.com/article/233871.htm

            的應(yīng)用越來越廣泛,但也出現(xiàn)了一個(gè)問題,那就是設(shè)計(jì)的產(chǎn)權(quán)保護(hù)問題。因?yàn)?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/FPGA">FPGA的工作原理是在系統(tǒng)上電時(shí)將片外PROM中的BIT數(shù)據(jù)流加載到片內(nèi)的SRAM中,完成對(duì)FPGA的編程,從而實(shí)現(xiàn)設(shè)計(jì)者的不同功能,即所謂的可重構(gòu)技術(shù)。這就使得監(jiān)測(cè)FPGA加載管腳的數(shù)據(jù)流就可實(shí)現(xiàn)對(duì)FPGA功能設(shè)計(jì)的復(fù)制。因此非常有必要采用加密的技術(shù)來保護(hù)設(shè)計(jì)者的知識(shí)產(chǎn)權(quán)。美國(guó)Dallas公司生產(chǎn)的就是這樣的一款采用總線的加密產(chǎn)品。

            1 芯片介紹

            采用總線串行傳送數(shù)據(jù),只需要一根數(shù)據(jù)線和一根地線,最大限度地節(jié)省了對(duì)被加密器件I/O管腳的占用。DS28E01將1024位EEPROM與符合ISO/IEC110118-3 算法的質(zhì)詢響應(yīng)安全認(rèn)證結(jié)合在一起。該器件能夠處理64位或320位長(zhǎng)密鑰、40位長(zhǎng)隨機(jī)質(zhì)詢碼和器件其它數(shù)據(jù)的計(jì)算,以提供它和被加密器件之間更高級(jí)的安全認(rèn)證。1024位的EEPROM分為4頁,每頁256位,帶64位暫存器以執(zhí)行寫操作。

            算法是HASH函數(shù)算法中的一種,是一種單向密碼體制。它通過直接構(gòu)造復(fù)雜的非線性關(guān)系達(dá)到從明文到密文的不可逆映射。具有“防碰撞”以及良好的“雪崩效應(yīng)”,防止了盜竊者利用相似的輸入來達(dá)到破解密碼的可能性。

            DS28E01包括6個(gè)主要數(shù)據(jù)部件:1)64位光刻碼, 2)64位暫存器,3)四個(gè)EEPROM頁,每頁256位,4)寄存器頁,5)64位密鑰存儲(chǔ)器,6)512位SHA(安全散列算法)引擎。

             協(xié)議的層次結(jié)構(gòu)中,主機(jī)必須首先發(fā)送以下七條ROM操作命令中的一條:1) Read ROM,2) Match ROM,3) Search ROM,4) Skip ROM,5) Resume ommunication,6) Overdrive-Skip ROM,7) Overdrive-Match ROM。當(dāng)以標(biāo)準(zhǔn)速度執(zhí)行完Overdrive ROM 命令后,器件進(jìn)入高速模式,所有后續(xù)通信均以高速模式進(jìn)行。成功執(zhí)行完ROM操作命令后,就可以進(jìn)行存儲(chǔ)器和SHA-1操作,主機(jī)可發(fā)出9條有效功能命令中的任一條。

            2 DS28E01基于1-Wire總線進(jìn)行FPGA加密的工作原理

            圖1是利用DS28E01加密用戶FPGA設(shè)計(jì)的系統(tǒng)框圖。DS28E01通過1-Wire總線和FPGA相連,F(xiàn)PGA內(nèi)嵌一個(gè)SHA-1引擎和DS28E01握手。引擎中攜帶有和DS28E01相同的密鑰,這是由用戶預(yù)先配置好的。1-Wire總線上必須外接一個(gè)不大于2.2kΩ的上拉電阻。

            具體的加密工作原理如下:

            1.上電后,PROM中的用戶設(shè)計(jì)被下載到FPGA中。此時(shí)FOE=1,用戶設(shè)計(jì)處于關(guān)閉狀態(tài)。

            2.FPGA中的SHA-1引擎產(chǎn)生一個(gè)隨機(jī)數(shù),通過1-Wire總線發(fā)送給DS28E01。

            3.FPGA中的SHA-1引擎通過1-Wire總線讀取DS28E01的器件序列號(hào)。

            4.DS28E01利用僅僅對(duì)用戶開放的密鑰、器件序列號(hào)、隨機(jī)數(shù)、附加常數(shù)等通過SHA-1算法來產(chǎn)生一個(gè)160位的MAC值。同時(shí)FPGA中的SHA-1引擎此時(shí)也利用相同的信息通過SHA-1計(jì)算來得到相同的160位MAC值。

            5.FPGA中的SHA-1引擎通過1-Wire總線讀取DS28E01計(jì)算出來的160位MAC值。

            6.在FPGA的SHA-1引擎中比較兩個(gè)160位的MAC值,如果相同則FOE=0,用戶設(shè)計(jì)功能被打開。

            按照這樣的過程即只有SHA-1引擎中的密鑰和DS28E01中的密鑰完全相同時(shí),用戶設(shè)計(jì)才會(huì)開放,這樣就可完成對(duì)用戶設(shè)計(jì)的IP產(chǎn)權(quán)保護(hù)。

            3 通過1-Wire總線訪問DS28E01的協(xié)議分析

            3.1 通過1-Wire訪問DS28E01的協(xié)議如下:

            1.初始化命令;

            2.ROM功能命令;

            3.存儲(chǔ)器/SHA-1命令;

            4.根據(jù)命令數(shù)據(jù)的輸入輸出。

            要通過1-Wire總線訪問DS28E01,總線上的數(shù)據(jù)必須滿足協(xié)議要求,并符合1-Wire的時(shí)序。Wire總線上所有的傳輸操作均從初始化過程開始。初始化過程由主機(jī)發(fā)出的復(fù)位脈沖和從機(jī)發(fā)出的在線應(yīng)答脈沖組成。在線應(yīng)答脈沖通知主機(jī)DS28E01掛接在總線上,并且已經(jīng)準(zhǔn)備就緒。

            一旦主機(jī)檢測(cè)到在線應(yīng)答脈沖,就可以發(fā)出DS28E01支持的七條ROM 功能命令中的一條:1) Read ROM,2) Match ROM,3) Search ROM,4) Skip ROM,5) Resume Communication,6) Overdrive-Skip ROM,7) Overdrive-Match ROM。

            成功執(zhí)行完ROM操作命令后,就可以進(jìn)行存儲(chǔ)器和SHA-1操作,F(xiàn)PGA中的SHA-1引擎可發(fā)出9條有效功能命令中的任一條:1)Write Scratchpad,2) Read ScratchPad,3) Load first Secret,4)Compute Next Secret,5)Copy ScratchPad,6) Read AuthPage,7)Anonymous Read Auth.Page, 8) Read Memory ,9)Refresh ScratchPad。

            3.2 1-Wire 信令

            為了保證數(shù)據(jù)的完整性,DS28E01具有嚴(yán)格的信號(hào)協(xié)議。該協(xié)議在一條線上定義了四種類型的信號(hào):包括復(fù)位脈沖和在線應(yīng)答脈沖的復(fù)位序列、寫0、寫1 和讀數(shù)據(jù)。除在線應(yīng)答脈沖以外,所有其它信號(hào)下降沿均由總線主機(jī)發(fā)出。DS28E01 能夠以兩種不同速率通信:標(biāo)準(zhǔn)速率和高速模式。如果沒有明確設(shè)定為高速模式,DS28E01就以標(biāo)準(zhǔn)速率通信。高速模式下,所有波形均采用快速定時(shí)。啟動(dòng)與DS28E01的任何通信都需要初始化過程。

            3.3 1-Wire總線上的DS28E01加密指令說明

            DS28E01提供7條ROM指令和9條MEM指令,在FPGA加密系統(tǒng)中一般只用到幾條就夠了。

            根據(jù)FPGA加密原理所述,F(xiàn)PGA中SHA-1引擎所使用的密鑰是由設(shè)計(jì)者預(yù)先配置好的,DS28E01中的密鑰也是由設(shè)計(jì)者在出廠前通過燒寫器寫好的。為了完成加密過程,F(xiàn)PGA中的SHA-1引擎只需要對(duì)DS28E01進(jìn)行3個(gè)操作過程即可:1)寫隨機(jī)數(shù),2)讀DS28E01器件ID,3)讀DS28E01 SHA-1運(yùn)算結(jié)果,即160位的MAC值。

            3.3.1 寫隨機(jī)數(shù)

            指令格式和時(shí)序分析波形如圖2 所示,F(xiàn)PGA先發(fā)送ROM命令碼Skip ROM(CCH),接著發(fā)送MEM命令碼Write Scratchpad(0F)以及目標(biāo)地址。

            RST為FPGA產(chǎn)生的1-Wire復(fù)位脈沖,PD為DS28E01產(chǎn)生的在線應(yīng)答脈沖,Select是ROM功能命令,WSP為MEM功能命令,TA是目標(biāo)地址TA1和TA2,之后為要寫入的64位隨機(jī)數(shù),之后是從Select命令到隨機(jī)數(shù)所有字節(jié)的8位的CRC16校驗(yàn)值的反碼,其后是無效的數(shù)據(jù)FF。每個(gè)字段的數(shù)據(jù)都是低位在前傳輸。以下所有命令格式都類似。

            1-Wire總線上數(shù)據(jù)如圖中ibo所示,data為將1-Wire總線數(shù)據(jù)根據(jù)協(xié)議正序并轉(zhuǎn)成為并行數(shù)據(jù),Select=CCh、WSP=0Fh,TA=8000h,64位隨機(jī)數(shù)為40h、70h、BEh、3Dh、78h、95h、F7h、D8h,8位CRC16校驗(yàn)的反碼為85h。

            3.3.2 讀DS28E01器件ID

            指令格式和時(shí)序分析波形如圖3 所示,F(xiàn)PGA發(fā)送ROM命令碼Read ROM(33H),此條命令允許主機(jī)讀取DS28E01的八位家族碼,48位唯一序列號(hào)和8位CRC校驗(yàn)碼。

            1-Wire總線上數(shù)據(jù)根據(jù)協(xié)議被正序并行化后在圖3波形中顯示為:Select=33h、8位家族碼為2Fh、48位唯一的器件ID=00000022FCD0h,8位CRC16校驗(yàn)的反碼=99。

            3.3.3 讀160位MAC碼

            指令格式和時(shí)序分析波形如圖4 所示。 FPGA先發(fā)送ROM命令碼Skip ROM(CCH),接著發(fā)送MEM命令碼Write Scratchpad(A5)以及目標(biāo)地址,之后,F(xiàn)PGA將接收DS28E01中從目標(biāo)地址開始到數(shù)據(jù)頁末尾存儲(chǔ)器頁中數(shù)據(jù),一個(gè)FFh 字節(jié)和CRC反碼。 CRC校驗(yàn)碼接收完畢后,F(xiàn)PGA等待一段時(shí)間。此時(shí), DS28E01中的SHA 引擎利用相同的密鑰、隨機(jī)數(shù)、附加數(shù)據(jù)及器件識(shí)別號(hào)來計(jì)算160位的MAC。等待SHA-1運(yùn)算周期結(jié)束后,就可讀到160位MAC,隨后是CRC反碼。如果在CRC 校驗(yàn)碼后主機(jī)繼續(xù)讀取數(shù)據(jù),將會(huì)到讀到無效數(shù)據(jù)AAh。

            從圖4中我們可以看到,當(dāng)讀到AAh時(shí),F(xiàn)OE=0,這表明加密芯片計(jì)算的MAC值與FPGA中SHA-1引擎計(jì)算的MAC值一致。用戶設(shè)計(jì)將開始工作,至此加密過程全部結(jié)束。

            5 FPGA驗(yàn)證和結(jié)論

            本加密系統(tǒng)在Xilinx公司 Spartan-6的XA6SLX45-3上進(jìn)行了FPGA驗(yàn)證。FPGA中的SHA-1引擎采用了Xilinx公司提供的免費(fèi)IP。采用Verilog語言完成了1-Wire總線的相關(guān)分析功能的設(shè)計(jì)。調(diào)試中使用了Xilinx公司的硬件Debug軟件ChipScope,抓出了1-Wire總線的相關(guān)波形,完成了時(shí)序分析。最后該加密系統(tǒng)成功應(yīng)用于西安某知名IC設(shè)計(jì)公司的一款FPGA推廣產(chǎn)品中??梢钥闯?,在IC設(shè)計(jì)競(jìng)爭(zhēng)日益強(qiáng)烈的今天,利用FPGA加密系統(tǒng)來保護(hù)知識(shí)產(chǎn)權(quán),為公司產(chǎn)品搶占市場(chǎng)先機(jī)是IC設(shè)計(jì)的必由之路。

            參考文獻(xiàn):

            [1]DS28E01-100 帶SHA-1引擎保護(hù)的1K位1-Wire EEPROM[R/OL].www.maxim-ic.com.cn

            [2]張斌,徐名揚(yáng).SHA-1算法及其在FPGA加密認(rèn)證系統(tǒng)中的應(yīng)用.中國(guó)集成電路,2011(6)

            [3]楊春林,張春雷,高山,等.基于DS28E01的FPGA加密認(rèn)證系統(tǒng)的設(shè)計(jì).微計(jì)算機(jī)信息,2009(23)

            [4]劉軍志,黃進(jìn).基于DS2432和FPGA的IFF加密方法.微計(jì)算機(jī)信息[J],2007(7):201-202

            [5]伍家滿,虞禮貞,劉小燕,等.基于1-Wire接口的總線技術(shù)即其應(yīng)用,南昌大學(xué)學(xué)報(bào),2005,27(1)

          fpga相關(guān)文章:fpga是什么


          脈沖點(diǎn)火器相關(guān)文章:脈沖點(diǎn)火器原理
          上拉電阻相關(guān)文章:上拉電阻原理


          關(guān)鍵詞: FPGA DS28E01 1-Wire SHA-1 201402

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();