<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > EDA/PCB > 設計應用 > 基于DS28E01的FPGA加密認證系統的設計

基于DS28E01的FPGA加密認證系統的設計

作者: 時(shí)間:2010-12-21 來(lái)源:網(wǎng)絡(luò ) 收藏

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

本文引用地址:http://dyxdggzs.com/article/191429.htm

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

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

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

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

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

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

  2、01芯片及其加密原理

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

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

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

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

  3、加密模塊設計

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

  3.1、加密模塊的原理圖設計

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

加密模塊的原理圖


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: FPGA 28E E01 DS

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>