0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

采用FPGA安全存儲(chǔ)器的加密認(rèn)證系統(tǒng)設(shè)計(jì)

電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2018-10-07 12:10 ? 次閱讀

在現(xiàn)代電子系統(tǒng)的設(shè)計(jì)中,高速 FPGA運(yùn)行時(shí)需將其配置數(shù)據(jù)加載到內(nèi)部SRAM 中,改變SDRAM 里面的數(shù)據(jù),從而使FPGA實(shí)現(xiàn)不同的功能,即所謂的可重構(gòu)技術(shù)。但是由于其采用的是基于SRAM的技術(shù),每次上電的時(shí)候都會(huì)重新配置FPGA,這就可以通過(guò)監(jiān)視FPGA配置引腳位流的方法來(lái)實(shí)現(xiàn)對(duì)設(shè)計(jì)的復(fù)制,因此,在關(guān)鍵設(shè)備的設(shè)計(jì)中,有必要采取加密的技術(shù)來(lái)保護(hù)設(shè)計(jì)者的知識(shí)產(chǎn)權(quán)。

1、加密問(wèn)題的提出

由于 FPGA基于SRAM,所以掉電以后,其內(nèi)部的數(shù)據(jù)必然丟失,為了讓系統(tǒng)正常運(yùn)行,就需要在系統(tǒng)上電的時(shí)候給FPGA加載程序,目前對(duì)FPGA加載程序的方法主要有以下幾種:

第一、 采用邊界掃描的方式,這種方法主要用于產(chǎn)品調(diào)試期間用;

第二、 采用專用配置芯片配置,主要用于升級(jí)次數(shù)少的產(chǎn)品;

第三、 采用存儲(chǔ)器+微控制器的配置方法,這種配置方法靈活,使用方便,便于升級(jí),多用于需要多次升級(jí)的產(chǎn)品。

以上幾種 FPGA配置方法在上電加載程序的時(shí)候,都需要將配置的數(shù)據(jù)通過(guò)配置管腳下載到 FPGA中,這樣,就可以利用一定的電路對(duì)這些引腳進(jìn)行采樣來(lái)獲得 FPGA的配置信息,就可以對(duì)另一款同樣的 FPGA來(lái)進(jìn)行配置,這樣,就不需要知道設(shè)計(jì)的具體原理而實(shí)現(xiàn)了同樣的功能,從而達(dá)到了克隆設(shè)計(jì)的目的,對(duì)設(shè)計(jì)者造成了巨大的損失,所以,我們有必要對(duì)我們的設(shè)計(jì)采取加密認(rèn)證技術(shù)。

2、DS28E01芯片及其加密原理

MAXIM公司生產(chǎn)的 DS28E01將 1024位 EEPROM與符合 ISO/IEC110118-3安全散列算法(SHA-1)的質(zhì)詢響應(yīng)安全認(rèn)證結(jié)合在一起。在單個(gè)芯片內(nèi)集成了 1024位 EEPROM(分為 4頁(yè),每頁(yè) 256位)、64位密鑰、一個(gè)寄存器頁(yè)、512位 SHA-1引擎和 64位 ROM序列碼。 DS28E01對(duì)數(shù)據(jù)按照 1-Wire協(xié)議串行傳送,通信速率為15.3kbps(標(biāo)準(zhǔn)速率模式)或125kbps(高速模式),只需要一根數(shù)據(jù)線和一根返回地線,最大限度的節(jié)省了對(duì)控制器 I/O口的占用。

HASH加密函數(shù)是一種單向散列函數(shù),是一種單向密碼體制,即它是一種從明文到密文的不可逆映射,只有加密過(guò)程,不能解密,也就是說(shuō),從數(shù)學(xué)上不能由密文反過(guò)來(lái)推算出明文的任何消息。其中常見的 HASH函數(shù)的算法有:MD5、SHA、N-Hash、RIPE-MD、HAVAL等。

SHA-1算法是一種通過(guò)直接構(gòu)造復(fù)雜的非線性關(guān)系達(dá)到單向要求,設(shè)計(jì)單向散列函數(shù)的算法,具有“不可逆”、“防碰撞”以及良好的“雪崩效應(yīng)”,防止了盜竊者利用相近的輸入來(lái)達(dá)到破解密碼的可能性。

DS28E01內(nèi)部的加密過(guò)程是在內(nèi)部的加密引擎中進(jìn)行的,其加密引擎利用的是 HSAH函數(shù)的 SHA-1算法,但是和標(biāo)準(zhǔn)的 SHA-1算法又有幾點(diǎn)不一樣。標(biāo)準(zhǔn)算法的輸入值可以小于、等于或大于分組長(zhǎng)度512bit,但是 SHA-1引擎的 SHA-1算法輸入的是固定的512bit,也就是標(biāo)準(zhǔn) SHA-1算法的分組長(zhǎng)度。并且標(biāo)準(zhǔn) SHA-1算法每個(gè)分組的最后一次循環(huán)體的輸出都要和輸入每個(gè)分組的初始常量做MOD232加法,而在 DS28E01的 SHA-1引擎中由于只有一個(gè)512bit的循環(huán)體,最后就省略了將初始常量添加回結(jié)果的最終步驟。至于引擎的 SHA-1算法的其他步驟則與標(biāo)準(zhǔn)的 SHA-1算法相同。

3、加密模塊設(shè)計(jì)

目前由很多能實(shí)現(xiàn) FPGA加密的方法,如在 Xilinx Virtex-II和 Virtex-4這類的高端FPGA中,支持對(duì)配置數(shù)據(jù)流的加密操作。這樣僅當(dāng) FPGA中含有相同的密鑰時(shí),這些數(shù)據(jù)流才可以工作。但是這種加密的方法對(duì)更為廣泛的、對(duì)成本比較敏感的應(yīng)用場(chǎng)合來(lái)說(shuō)不甚合適。因此,這里利用另一種可行的身份識(shí)別法來(lái)防止意外拷貝。這種方法對(duì)所有 FPGA家族都使用,包括低端的 Xilinx Spartan-3系列FPGA。

3.1、加密模塊的原理圖設(shè)計(jì)

本次設(shè)計(jì)中的加密模塊的原理圖如圖1。硬件部分主要由 Xilinx公司 Spartan-3系列的X3CS500E以及MAXIM公司的DS28E01芯片組成。DS28E01芯片和FPGA之間是通過(guò)DS28E01的第二引腳的 1-Wire通信總線進(jìn)行通信的。

采用FPGA安全存儲(chǔ)器的加密認(rèn)證系統(tǒng)設(shè)計(jì)

唯一識(shí)別號(hào)及附加數(shù)據(jù)(常數(shù))在內(nèi)的 HASH運(yùn)算結(jié)果,運(yùn)算的結(jié)果是 160位的 MAC(消息認(rèn)證碼),同時(shí),F(xiàn)PGA內(nèi)部也會(huì)同安全存儲(chǔ)器一樣進(jìn)行包含密鑰、隨機(jī)數(shù)、附加數(shù)據(jù)及器件識(shí)別號(hào)在內(nèi)的 HASH計(jì)算并產(chǎn)生一個(gè)期望的MAC。然后,在 FPGA內(nèi)會(huì)對(duì)這兩個(gè) MAC進(jìn)行比較,如果一樣,則 FPGA認(rèn)為該電路是“合法”電路,因?yàn)樗鼡碛姓_的密鑰。此時(shí) FPGA進(jìn)入正常工作狀態(tài),開啟/執(zhí)行其配置數(shù)據(jù)中的所有功能,會(huì)執(zhí)行所有的功能。如果 FPGA和DS28EO1兩者產(chǎn)生的MAC不匹配,則系統(tǒng)會(huì)認(rèn)為該電路是一個(gè)“非法”電路,因?yàn)樵撓到y(tǒng)不具有正確的密碼。此時(shí) FPGA進(jìn)入非正常運(yùn)行狀態(tài),只執(zhí)行有限的功能。

3.2、加密認(rèn)證模塊的程序設(shè)計(jì)

為了實(shí)現(xiàn)加密認(rèn)證的功能,我們?cè)?FPGA中利用 VHDL語(yǔ)言設(shè)計(jì)了 IFF模塊,在 IFF模塊的內(nèi)部是根據(jù)SHA-1算法實(shí)現(xiàn)了對(duì)輸入密碼的HASH函數(shù)運(yùn)算以及與DS28E01中產(chǎn)生的MAC的比較功能,IFF模塊的接口定義如圖 2所示:

采用FPGA安全存儲(chǔ)器的加密認(rèn)證系統(tǒng)設(shè)計(jì)

其中,CLKIN是一個(gè)大于 20M的時(shí)鐘;IFF是認(rèn)證啟動(dòng)信號(hào),在 IFF信號(hào)上升沿的時(shí)候模塊內(nèi)部開始啟動(dòng) HSAH運(yùn)算過(guò)程以及密碼比較過(guò)程;RESET是復(fù)位信號(hào),高電平有效;IB則是 FPGA通過(guò) 1-Wire協(xié)議與 DS28E01通訊的信號(hào);FOE信號(hào)是 IFF模塊的輸出線,在IFF內(nèi)部 MAC比較完成后,如果 FPGA認(rèn)定該電路具有正確的密碼,則會(huì)置 FOE信號(hào)為低電平,反之如果 FPGA認(rèn)定該電路不是合法的電路,則會(huì)置 FOE信號(hào)為高電平,在 FPGA內(nèi)部可以根據(jù)FOE的信號(hào)來(lái)實(shí)現(xiàn)不同的功能。這樣,系統(tǒng)就可以根據(jù)電路是否是被拷貝的來(lái)實(shí)現(xiàn)不同的功能,防止了設(shè)計(jì)被拷貝。

在 IFF模塊中,實(shí)現(xiàn)了標(biāo)準(zhǔn)的 SHA-1算法,其中算法流程圖見圖3,在 FPGA配置完成之后,在 RESET信號(hào)與時(shí)鐘信號(hào)的控制下,F(xiàn)PGA內(nèi)部就會(huì)運(yùn)行 SHA-1算法產(chǎn)生相應(yīng)的MAC,與由 DS28E01產(chǎn)生的 MAC進(jìn)行比較,根據(jù)比較結(jié)果將 FOE設(shè)置為不同的狀態(tài),然后 FPGA就可以根據(jù) FOE的狀態(tài)來(lái)判斷是否是合法電路。其中的初始化主要完成消息填充和附加原始消息長(zhǎng)度以及在算法中需要的函數(shù)和常數(shù)的定義。

4、設(shè)計(jì)總結(jié)

在現(xiàn)在電子設(shè)計(jì)的成本越來(lái)越高的情況下,基于 SRAM的 FPGA由于自身限制,容易使得設(shè)計(jì)者的設(shè)計(jì)被復(fù)制,從而給設(shè)計(jì)者提出了設(shè)計(jì)具有加密功能的電子系統(tǒng),由于 SHA-1 算法引擎的 DS28E01芯片作為加密認(rèn)證系統(tǒng)的核心芯片,并利用 DS28E01針對(duì) Xilinx公司的 X3CS500E開發(fā)了實(shí)際的加密認(rèn)證系統(tǒng),并將此系統(tǒng)應(yīng)用于實(shí)際的產(chǎn)品中,取得了良好的效果。

采用FPGA安全存儲(chǔ)器的加密認(rèn)證系統(tǒng)設(shè)計(jì)

圖 3 SHA-1算法流程圖(Figure 3. SHA-1 algorithm flow)

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1629

    文章

    21738

    瀏覽量

    603464
  • 存儲(chǔ)器
    +關(guān)注

    關(guān)注

    38

    文章

    7492

    瀏覽量

    163854
  • sram
    +關(guān)注

    關(guān)注

    6

    文章

    767

    瀏覽量

    114692
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    最高安全等級(jí)的加密IC LKT4200

    存儲(chǔ)器管理單元,可靈活設(shè)置SYS\APP模式及授予相應(yīng)權(quán)限程序和數(shù)據(jù)均加密存儲(chǔ)安全認(rèn)證目標(biāo):EAL5+,32位智能卡芯片軟件
    發(fā)表于 03-08 17:18

    基于FPGA的身份認(rèn)證智能卡設(shè)計(jì)

    基于FPGA的身份認(rèn)證智能卡的設(shè)計(jì)方案。在FPGA內(nèi)部實(shí)現(xiàn)身份認(rèn)證相關(guān)的數(shù)據(jù)加密運(yùn)算,加密算法
    發(fā)表于 10-14 12:45

    定制型加密芯片這是一款采用隨機(jī)變量交換系統(tǒng)認(rèn)證加密芯片,請(qǐng)問(wèn)定制化加密芯片優(yōu)勢(shì)在哪里?

    ALPU加密芯片。所以即使盜版系統(tǒng)復(fù)制了PCB、內(nèi)核甚至存儲(chǔ)器中的固件,但若缺少這顆定制加密芯片,該系統(tǒng)仍然無(wú)法工作。定制化
    發(fā)表于 05-21 14:29

    基于FPGA的高端存儲(chǔ)器接口設(shè)計(jì)

    高性能系統(tǒng)設(shè)計(jì)師在滿足關(guān)鍵時(shí)序余量的同時(shí)要力爭(zhēng)獲得更高性能,而存儲(chǔ)器接口設(shè)計(jì)則是一項(xiàng)艱巨挑戰(zhàn)。雙倍數(shù)據(jù)速率SDRAM和4倍數(shù)據(jù)速率SDRAM都采用源同步接口來(lái)把數(shù)據(jù)和時(shí)鐘(或選通脈沖)由發(fā)射
    發(fā)表于 04-29 07:00

    汽車系統(tǒng)非易失性存儲(chǔ)器的選擇

    汽車系統(tǒng)的設(shè)計(jì)變得越來(lái)越復(fù)雜,因?yàn)橐粩嗟募尤胄碌墓δ埽绺呒?jí)駕駛輔助,圖形儀表,車身控制和車輛信息娛樂(lè)系統(tǒng)。為了確保可靠、安全的操作,每個(gè)子系統(tǒng)均需要使用特定的非易失性
    發(fā)表于 07-23 06:15

    如何設(shè)計(jì)FPGA加密認(rèn)證系統(tǒng)?

    的技術(shù),每次上電的時(shí)候都會(huì)重新配置FPGA,這就可以通過(guò)監(jiān)視FPGA配置引腳位流的方法來(lái)實(shí)現(xiàn)對(duì)設(shè)計(jì)的復(fù)制,因此,在關(guān)鍵設(shè)備的設(shè)計(jì)中,如何設(shè)計(jì)FPGA加密
    發(fā)表于 08-05 06:43

    請(qǐng)問(wèn)怎樣去設(shè)計(jì)一種FPGA加密認(rèn)證系統(tǒng)?

    加密問(wèn)題是怎樣提出的?DS28E01芯片及其加密原理是什么?怎樣去設(shè)計(jì)一種FPGA加密認(rèn)證系統(tǒng)?
    發(fā)表于 04-29 06:53

    可編程非易失(NV)存儲(chǔ)器的質(zhì)詢-響應(yīng)安全認(rèn)證IC DS28

    Maxim推出帶有用戶可編程非易失(NV)存儲(chǔ)器的質(zhì)詢-響應(yīng)安全認(rèn)證IC DS28E10。采用經(jīng)過(guò)業(yè)內(nèi)認(rèn)證的FIPS 180-3
    發(fā)表于 08-14 15:12 ?17次下載

    NAS網(wǎng)絡(luò)存儲(chǔ)器認(rèn)證有哪些?

     NAS網(wǎng)絡(luò)存儲(chǔ)器認(rèn)證有哪些?              認(rèn)證的官方含義是:由可以充分
    發(fā)表于 01-09 10:36 ?686次閱讀

    采用LabVIEW的存儲(chǔ)器檢測(cè)系統(tǒng)設(shè)計(jì)方案

    采用LabVIEW的存儲(chǔ)器檢測(cè)系統(tǒng)設(shè)計(jì)方案 概述:文中分析了存儲(chǔ)器的故障類型,研究March算法并進(jìn)行了擴(kuò)展。系統(tǒng)以LabVIEW作為軟件
    發(fā)表于 03-22 14:47 ?1430次閱讀
    <b class='flag-5'>采用</b>LabVIEW的<b class='flag-5'>存儲(chǔ)器</b>檢測(cè)<b class='flag-5'>系統(tǒng)</b>設(shè)計(jì)方案

    什么是加密存儲(chǔ)器

    什么是加密存儲(chǔ)器加密存儲(chǔ)器卡內(nèi)嵌芯片在存儲(chǔ)區(qū)外增加了控制邏輯,在訪問(wèn)存儲(chǔ)區(qū)之前需要核對(duì)密碼
    發(fā)表于 04-01 17:46 ?560次閱讀

    SAN網(wǎng)絡(luò)存儲(chǔ)器認(rèn)證

    SAN網(wǎng)絡(luò)存儲(chǔ)器認(rèn)證              認(rèn)證的官方含義是:由可以充分信任的第三方證實(shí)某一經(jīng)鑒定的產(chǎn)品或服務(wù)符合
    發(fā)表于 01-09 13:43 ?725次閱讀

    分立閃存存儲(chǔ)器領(lǐng)域加密安全基礎(chǔ)設(shè)施

    嵌入式系統(tǒng)越來(lái)越普遍地采用云技術(shù)來(lái)進(jìn)行數(shù)據(jù)采集、事件檢測(cè)和軟件更新。這些遠(yuǎn)程物聯(lián)網(wǎng)設(shè)備普遍通過(guò)固件完成設(shè)置,這些固件有可能存儲(chǔ)在主機(jī)MCU中,也有可能存儲(chǔ)在外置非易失性
    發(fā)表于 05-18 10:25 ?627次閱讀
    分立閃存<b class='flag-5'>存儲(chǔ)器</b>領(lǐng)域<b class='flag-5'>加密</b>和<b class='flag-5'>安全</b>基礎(chǔ)設(shè)施

    FPGA存儲(chǔ)器之間的關(guān)系

    FPGA存儲(chǔ)器之間的關(guān)系(嵌入式開發(fā)工作怎么樣)-該文檔為FPGA存儲(chǔ)器之間的關(guān)系總結(jié)文檔,是一份很不錯(cuò)的參考資料,具有較高參考價(jià)值,感興趣的可以下載看看………………
    發(fā)表于 07-30 16:35 ?6次下載
    <b class='flag-5'>FPGA</b>各<b class='flag-5'>存儲(chǔ)器</b>之間的關(guān)系

    EEPROM存儲(chǔ)器如何加密

    擦寫、可編程的特性,EEPROM在各種應(yīng)用場(chǎng)景中得到了廣泛的應(yīng)用。然而,隨著技術(shù)的發(fā)展,數(shù)據(jù)安全問(wèn)題日益突出,對(duì)EEPROM存儲(chǔ)器進(jìn)行加密的需求也越來(lái)越高。 EEPROM存儲(chǔ)器概述 1
    的頭像 發(fā)表于 08-05 18:05 ?1262次閱讀