国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種嵌入式微處理器非可克隆函數(shù)密鑰認(rèn)證系統(tǒng)和方法

      文檔序號(hào):6514331閱讀:418來(lái)源:國(guó)知局
      一種嵌入式微處理器非可克隆函數(shù)密鑰認(rèn)證系統(tǒng)和方法
      【專利摘要】本發(fā)明公開(kāi)了一種嵌入式微處理器非可克隆函數(shù)密鑰認(rèn)證系統(tǒng),包括嵌入式端、燒寫(xiě)設(shè)備端和PC端,嵌入式端包括PUF待分析數(shù)據(jù)提取模塊以及IAP模塊,燒寫(xiě)設(shè)備端包括待燒寫(xiě)程序處理模塊,PC端包括嵌入式認(rèn)證程序生成模塊、PUF分析模塊、數(shù)據(jù)庫(kù)模塊、散列數(shù)據(jù)生成模塊、以及幫助數(shù)據(jù)生成模塊,PUF待分析數(shù)據(jù)提取模塊用于多次提取SRAM中的初始上電數(shù)據(jù),并將數(shù)據(jù)發(fā)送到PUF分析模塊,PUF分析模塊用于對(duì)采集到的初始上電數(shù)據(jù)及其樣本大小進(jìn)行分析,PUF分析模塊還用于將獲得的密鑰發(fā)送到散列數(shù)據(jù)生成模塊和幫助數(shù)據(jù)生成模塊。本發(fā)明避免了攻擊者通過(guò)物理攻擊對(duì)嵌入式設(shè)備的密鑰進(jìn)行破解從而對(duì)整個(gè)嵌入式的軟件進(jìn)行復(fù)制的行為,從而保證嵌入式軟件版權(quán)受到了保護(hù)。
      【專利說(shuō)明】—種嵌入式微處理器非可克隆函數(shù)密鑰認(rèn)證系統(tǒng)和方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明屬于嵌入式系統(tǒng)安全領(lǐng)域,更具體地,涉及一種嵌入式微處理器非可克隆函數(shù)密鑰認(rèn)證系統(tǒng)和方法。
      【背景技術(shù)】
      [0002]近些年來(lái),我國(guó)嵌入式設(shè)備需求激增。在巨大的利益誘惑下,許多企業(yè)舍棄傳統(tǒng)的“研發(fā)-生產(chǎn)-銷售”模式,轉(zhuǎn)而采取“模仿-生產(chǎn)-銷售”的方式。許多公司費(fèi)盡心血研發(fā)的產(chǎn)品,投放市場(chǎng)不久,就被競(jìng)爭(zhēng)對(duì)手破解,從硬件到軟件完全地被克隆,重新包裝之后投放市場(chǎng)。也有公司在委托生產(chǎn)廠商進(jìn)行產(chǎn)品生產(chǎn)時(shí),生產(chǎn)廠商額外生產(chǎn)出大量的相同產(chǎn)品,改換品牌投放市場(chǎng)。
      [0003]在這種惡性模仿的氛圍下,大量的公司因?yàn)楸I版產(chǎn)品的猖獗而蒙受大量的經(jīng)濟(jì)損失,而又有大量的公司依靠竊取他人的勞動(dòng)成果來(lái)進(jìn)行盈利,這是非常不公平的現(xiàn)象。盡管目前越來(lái)越多的法律法規(guī)正在完善之中,但是單純依靠這些還是不夠的。為了能夠保護(hù)原創(chuàng)公司的知識(shí)產(chǎn)權(quán),我們還應(yīng)該從技術(shù)的角度出發(fā)去尋求更多的解決方案。于是,版權(quán)保護(hù)技術(shù)成為越來(lái)越受到關(guān)注的焦點(diǎn)。
      [0004]2001 年,Pappu Srinivasa Ravikanth 提出 了物理非可克隆(PhysicalUnclonable Function,簡(jiǎn)稱PUF),為保護(hù)芯片數(shù)據(jù)物理安全提供了一種全新有效的方法。與傳統(tǒng)密碼學(xué)的密鑰產(chǎn)生方案不同,PUF使用激勵(lì)和響應(yīng)對(duì)的方法生成密鑰,激勵(lì)和響應(yīng)之間的映射關(guān)系僅由設(shè)備個(gè)體的某些物理差異決定。IC制造過(guò)程中的無(wú)法預(yù)測(cè)、復(fù)制和控制的細(xì)微差異產(chǎn)生了這些物理差異。任何潛在物理攻擊將破壞設(shè)備個(gè)體的物理差異,PUF的激勵(lì)和響應(yīng)之間的映射關(guān)系也會(huì)發(fā)生變化。因此,PUF密鑰具備物理決定、穩(wěn)定唯一、隨用隨取、不用保存、難以事先預(yù)測(cè)和容易測(cè)量的優(yōu)點(diǎn),能提供安全、穩(wěn)定和低成本的安全密鑰。
      [0005]2007年,在已有的PUF防止物理攻擊的基礎(chǔ)上,提出了基于SRAM的PUF(SRAM-PUF), SRAM存儲(chǔ)單元的初始狀態(tài)取決于它的制作工藝,SRAM單元的初始值是制造過(guò)程中生產(chǎn)誤差的函數(shù),實(shí)際制造工藝中的某些隨機(jī)因素對(duì)SRAM典型6管單元電路的對(duì)稱性產(chǎn)生一定影響。因此SRAM-PUF的激勵(lì)響應(yīng)對(duì)是存儲(chǔ)單元地址和對(duì)應(yīng)地址單元的上電初始值。
      [0006]之后Guajardo et al和Michael A.Gora發(fā)現(xiàn)使用SRAM的上電初始狀態(tài)能作為PUF用于FPGA的IP核保護(hù)。儲(chǔ)存單元的不對(duì)稱性引起SRAM-PUF,這一不對(duì)稱性也是由制造過(guò)程的工藝中差異產(chǎn)生的。他們通過(guò)使用FPGA芯片和片外SRAM,提取了唯一的PUF安全密鑰。然而,這一方法不能直接應(yīng)用于嵌入式系統(tǒng),因?yàn)槭紫仍谇度胧较到y(tǒng)中,內(nèi)嵌到主控芯片SRAM取代了片外的SRAM芯片。由于設(shè)計(jì)目的不同和深度集成化,內(nèi)嵌的SRAM和片外的SRAM的PUF特征有所差別。其次,提取密鑰算法的運(yùn)算復(fù)雜度較高,難以在功率和性能有限的嵌入式微處理器上實(shí)現(xiàn)。
      [0007]目前,嵌入式設(shè)備的版權(quán)保護(hù)技術(shù)包括:對(duì)稱密鑰加密,如高級(jí)加密標(biāo)準(zhǔn)(Advanced Encryption Standard,簡(jiǎn)稱AES)、數(shù)據(jù)加密標(biāo)準(zhǔn)(Data Encryption Standard,DES)、非對(duì)稱密碼加密,如RSA、橢圓曲線加密(Elliptic Curve Cryptography,簡(jiǎn)稱ECC)等、以及哈希認(rèn)證,如SHA-1、MD5等。上述的版權(quán)保護(hù)技術(shù)中,信息安全依賴于密鑰的安全。在實(shí)際應(yīng)用中,通常將密鑰存儲(chǔ)在嵌入式系統(tǒng)的非易失存儲(chǔ)器內(nèi),由于嵌入式系統(tǒng)的使用特點(diǎn),極有可能被攻擊者捕獲,并進(jìn)行物理侵入、半侵入攻擊或軟件反匯編攻擊以獲取密鑰從而破壞整個(gè)嵌入式系統(tǒng)的信息安全機(jī)制。因此,嵌入式系統(tǒng)的密鑰機(jī)制需要特別的考慮。
      [0008]目前工業(yè)界所廣泛采用的安全產(chǎn)品缺乏自主知識(shí)產(chǎn)權(quán),而且較為陳舊,不夠安全。另一方面,一些先進(jìn)的安全產(chǎn)品屬于受限范圍并且價(jià)格昂貴,在我國(guó)的使用受到了限制。這種情況嚴(yán)重威脅了我國(guó)在相關(guān)領(lǐng)域的公共安全。

      【發(fā)明內(nèi)容】

      [0009]針對(duì)現(xiàn)有技術(shù)的以上缺陷或改進(jìn)需求,本發(fā)明提供了一種嵌入式微處理器非可克隆函數(shù)密鑰認(rèn)證系統(tǒng)和方法,其目的在于針對(duì)嵌入式系統(tǒng)的軟件版權(quán)保護(hù)問(wèn)題,實(shí)現(xiàn)了一種能有效抵抗物理侵入的安全和高效的安全防護(hù)體系,并能在不能改變?cè)性O(shè)備硬件的前提下,使用較小的系統(tǒng)資源開(kāi)銷,實(shí)現(xiàn)安全密鑰機(jī)制,提升整體安全水平。
      [0010]為實(shí)現(xiàn)上述目的,按照本發(fā)明的一個(gè)方面,提供了一種嵌入式微處理器非可克隆函數(shù)密鑰認(rèn)證系統(tǒng),包括嵌入式端、燒寫(xiě)設(shè)備端和PC端,嵌入式端包括PUF待分析數(shù)據(jù)提取模塊以及IAP模塊,燒寫(xiě)設(shè)備端包括待燒寫(xiě)程序處理模塊,PC端包括嵌入式認(rèn)證程序生成模塊、PUF分析模塊、數(shù)據(jù)庫(kù)模塊、散列數(shù)據(jù)生成模塊、以及幫助數(shù)據(jù)生成模塊,PUF待分析數(shù)據(jù)提取模塊用于多次提取SRAM中的初始上電數(shù)據(jù),并將數(shù)據(jù)發(fā)送到PUF分析模塊,PUF分析模塊用于對(duì)采集到的初始上電數(shù)據(jù)及其樣本大小進(jìn)行分析,PUF分析模塊還用于將獲得的密鑰發(fā)送到散列數(shù)據(jù)生成模塊和幫助數(shù)據(jù)生成模塊,并將最大錯(cuò)誤率發(fā)送到幫助數(shù)據(jù)生成模塊,幫助數(shù)據(jù)生成模塊用于根據(jù)接收到的密鑰和最大錯(cuò)誤率生成幫助數(shù)據(jù),散列數(shù)據(jù)生成模塊用于根據(jù)接收到的密鑰使用哈希計(jì)算生成散列數(shù)據(jù),數(shù)據(jù)庫(kù)模塊用于存儲(chǔ)幫助數(shù)據(jù)、散列數(shù)據(jù)和SRAM所在嵌入式設(shè)備的ID,嵌入式認(rèn)證程序生成模塊用于根據(jù)散列數(shù)據(jù)生成模塊生成的散列數(shù)據(jù)和幫助數(shù)據(jù)生成模塊生成的幫助數(shù)據(jù)的位長(zhǎng)生成具有固定數(shù)據(jù)架構(gòu)的認(rèn)證程序,待燒寫(xiě)程序處理模塊用于將嵌入式認(rèn)證程序生成模塊生成的認(rèn)證程序以及SRAM所在嵌入式設(shè)備的幫助數(shù)據(jù)以及散列數(shù)據(jù)進(jìn)行合并,以生成完整的認(rèn)證程序,IAP模塊用于將完整的認(rèn)證程序燒寫(xiě)到SRAM所在嵌入式設(shè)備中。
      [0011]優(yōu)選地,PUF分析模塊計(jì)算初始上電數(shù)據(jù)的最小熵以及初始上電數(shù)據(jù)之間海明距離的最大值,并對(duì)最小熵和海明距離的最大值進(jìn)行擬合分析,以確定合理的樣本數(shù)量、單個(gè)樣本字節(jié)數(shù)、最大錯(cuò)誤率,并獲得密鑰。
      [0012]優(yōu)選地,幫助數(shù)據(jù)生成模塊根據(jù)得到的最大錯(cuò)誤率生成可以糾正該錯(cuò)誤率的糾錯(cuò)碼,該糾錯(cuò)碼的位長(zhǎng)與密鑰相同,并將密鑰與糾錯(cuò)碼進(jìn)行異或運(yùn)算,以得到幫助數(shù)據(jù)。
      [0013]按照本發(fā)明的另一方面,提供了一種嵌入式微處理器非可克隆函數(shù)密鑰認(rèn)證系統(tǒng)的非可克隆函數(shù)密鑰認(rèn)證方法,該方法包括以下步驟:
      [0014](I) PUF待分析數(shù)據(jù)提取模塊多次提取SRAM中的初始上電數(shù)據(jù),并將數(shù)據(jù)發(fā)送到PUF分析模塊;
      [0015](2) PUF分析模塊對(duì)采集到的初始上電數(shù)據(jù)及其樣本大小進(jìn)行分析;
      [0016](3)PUF分析模塊將獲得的密鑰發(fā)送到散列數(shù)據(jù)生成模塊和幫助數(shù)據(jù)生成模塊,并將最大錯(cuò)誤率發(fā)送到幫助數(shù)據(jù)生成模塊;
      [0017](4)幫助數(shù)據(jù)生成模塊根據(jù)接收到的密鑰和最大錯(cuò)誤率生成幫助數(shù)據(jù);
      [0018](5)散列數(shù)據(jù)生成模塊根據(jù)接收到的密鑰并通過(guò)哈希計(jì)算生成散列數(shù)據(jù);
      [0019](6)數(shù)據(jù)庫(kù)模塊存儲(chǔ)幫助數(shù)據(jù)、散列數(shù)據(jù)和SRAM所在嵌入式設(shè)備的ID ;
      [0020](7)嵌入式認(rèn)證程序生成模塊根據(jù)散列數(shù)據(jù)生成模塊生成的散列數(shù)據(jù)和幫助數(shù)據(jù)生成模塊生成的幫助數(shù)據(jù)的位長(zhǎng)生成具有固定數(shù)據(jù)架構(gòu)的認(rèn)證程序;
      [0021](8)待燒寫(xiě)程序處理模塊將嵌入式認(rèn)證程序生成模塊生成的認(rèn)證程序以及SRAM所在嵌入式設(shè)備的幫助數(shù)據(jù)以及散列數(shù)據(jù)進(jìn)行合并,以生成完整的認(rèn)證程序;
      [0022](9) IAP模塊將完整的認(rèn)證程序燒寫(xiě)到SRAM所在嵌入式設(shè)備中。
      [0023]優(yōu)選地,步驟(I)具體為,將測(cè)試程序下載到目標(biāo)嵌入式設(shè)備中,通過(guò)不斷的掉電多次測(cè)量SRAM上電初值,初始上電數(shù)據(jù)是采用二進(jìn)制格式的文件進(jìn)行保存。
      [0024]優(yōu)選地,步驟(4)具體為,幫助數(shù)據(jù)生成模塊根據(jù)得到的最大錯(cuò)誤率生成ECC糾錯(cuò)碼,該糾錯(cuò)碼的位長(zhǎng)與密鑰相同,并將密鑰與糾錯(cuò)碼進(jìn)行異或運(yùn)算,以得到幫助數(shù)據(jù)。
      [0025]總體而言,通過(guò)本發(fā)明所構(gòu)思的以上技術(shù)方案與現(xiàn)有技術(shù)相比,能夠取得下列有益效果:
      [0026]1、由于采用了步驟(I)和(2),因此便于對(duì)SRAM-PUF的數(shù)據(jù)測(cè)試。使用的用戶能在比較合理的時(shí)間內(nèi)完成對(duì)數(shù)據(jù)的測(cè)試以及分析。
      [0027]2、由于采用了步驟(7)和(8),因此使得用戶可以通過(guò)電腦對(duì)IAP模塊分別寫(xiě)入認(rèn)證函數(shù)以及幫助數(shù)據(jù)和哈希散列數(shù)據(jù)的方式完成對(duì)設(shè)備的編程。不同的嵌入式設(shè)備幫助數(shù)據(jù)和哈希散列數(shù)據(jù)不同,這種方法方便用戶的使用,減少了手動(dòng)對(duì)相應(yīng)數(shù)據(jù)與認(rèn)證程序進(jìn)行組合的時(shí)間。
      [0028]3、采用基于SRAM的PUF進(jìn)行軟件保護(hù),由于SRAM廣泛存在于嵌入式設(shè)備中,因此避免系統(tǒng)加入冗余的硬件,減少了軟件保護(hù)的開(kāi)銷,增強(qiáng)了它的通用性。
      [0029]4、采用IAP模塊對(duì)嵌入式設(shè)備進(jìn)行編程,該編程方法允許用戶在遠(yuǎn)程對(duì)嵌入式設(shè)備進(jìn)行編程,可以使用戶在不移動(dòng)設(shè)備的情況下對(duì)設(shè)備進(jìn)行程序的更新。
      [0030]5、數(shù)據(jù)庫(kù)模塊存儲(chǔ)了嵌入式設(shè)備軟件保護(hù)所需的密鑰,幫助數(shù)據(jù)等重要數(shù)據(jù),便于系統(tǒng)的維護(hù)。
      【專利附圖】

      【附圖說(shuō)明】
      [0031]圖1是本發(fā)明嵌入式微處理器非可克隆函數(shù)密鑰認(rèn)證系統(tǒng)的模塊示意圖。
      [0032]圖2是本發(fā)明嵌入式微處理器非可克隆函數(shù)密鑰認(rèn)證方法的流程圖。
      [0033]圖3是嵌入式設(shè)備數(shù)據(jù)測(cè)試流程示意圖。
      [0034]圖4是嵌入式設(shè)備數(shù)據(jù)分析流程示意圖。
      [0035]圖5是密鑰幫助數(shù)據(jù)以及散列值得生成過(guò)程示意圖。
      [0036]圖6是嵌入式認(rèn)證程序處理示意圖。
      [0037]圖7是嵌入式設(shè)備IAP過(guò)程示意圖。
      [0038]圖8是嵌入式設(shè)備認(rèn)證過(guò)程示意圖。
      【具體實(shí)施方式】[0039]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。此外,下面所描述的本發(fā)明各個(gè)實(shí)施方式中所涉及到的技術(shù)特征只要彼此之間未構(gòu)成沖突就可以相互組合。
      [0040]當(dāng)前很多嵌入式產(chǎn)品的軟件缺乏保護(hù),或者采用常見(jiàn)的密鑰加密方法對(duì)軟件進(jìn)行加密。在這種情況下,攻擊者可以利用物理攻擊的方式對(duì)存儲(chǔ)密鑰的存儲(chǔ)器進(jìn)行物理攻擊并輕易的獲取密鑰信息,進(jìn)而可以對(duì)嵌入式軟件進(jìn)行復(fù)制和竊取并進(jìn)一步威脅嵌入式設(shè)備的安全。這種情況下的嵌入式軟件是不安全的。本發(fā)明的整體思路在于,本發(fā)明提供了一種適用于嵌入式處理器的軟件保護(hù)方法,包括對(duì)密鑰的提取,保存,重新生成以及軟件的認(rèn)證。它主要通過(guò)將密鑰保存在SRAM-PUF中而避免將密鑰直接存儲(chǔ)在存儲(chǔ)器中,進(jìn)而避免了攻擊者通過(guò)物理攻擊對(duì)嵌入式設(shè)備的密鑰進(jìn)行破解從而對(duì)整個(gè)嵌入式的軟件進(jìn)行復(fù)制的行為,從而保證嵌入式軟件版權(quán)受到了一定的保護(hù)。SRAM-PUF提供一種安全的密鑰保存辦法,其輸出密鑰在一定程度上保持不變,但在受到物理攻擊時(shí)出現(xiàn)不可逆的變化。因此可以有效的抵御物理攻擊對(duì)密鑰的竊取。
      [0041]本發(fā)明嵌入式微處理器非可克隆函數(shù)密鑰認(rèn)證方法是應(yīng)用在一種嵌入式微處理器非可克隆函數(shù)密鑰認(rèn)證系統(tǒng)中,該系統(tǒng)包括嵌入式端、燒寫(xiě)設(shè)備端和PC端,嵌入式端包括物理非可克隆(Physical Unclonable Function,簡(jiǎn)稱PUF)待分析數(shù)據(jù)提取模塊、以及在應(yīng)用中編程(In-application programming,簡(jiǎn)稱IAP)模塊,燒寫(xiě)設(shè)備端包括待燒寫(xiě)程序處理模塊,PC端包括嵌入式認(rèn)證程序生成模塊、PUF分析模塊、數(shù)據(jù)庫(kù)模塊、散列數(shù)據(jù)生成模塊、以及幫助數(shù)據(jù)生成模塊,如圖2所示,該方法包括以下步驟:
      [0042](I)PUF待分析數(shù)據(jù)提取模塊多次提取SRAM中的初始上電數(shù)據(jù),并將數(shù)據(jù)發(fā)送到PUF分析模塊;具體過(guò)程如圖3所示,將測(cè)試程序下載到目標(biāo)嵌入式設(shè)備中,通過(guò)不斷的掉電多次測(cè)量SRAM上電初值,初始上電數(shù)據(jù)是采用二進(jìn)制格式的文件進(jìn)行保存,提取初始上電數(shù)據(jù)的次數(shù)是由不同SRAM上電后的數(shù)據(jù)波動(dòng)決定的,數(shù)據(jù)波動(dòng)越大,提取次數(shù)越多,PUF分析模塊會(huì)對(duì)樣本大小進(jìn)行判斷,若樣本大小太小,則進(jìn)行補(bǔ)充的測(cè)量;
      [0043](2)PUF分析模塊對(duì)采集到的初始上電數(shù)據(jù)及其樣本大小進(jìn)行分析;具體如圖4所示,PUF分析模塊計(jì)算初始上電數(shù)據(jù)的最小熵以及初始上電數(shù)據(jù)之間海明距離的最大值,并對(duì)最小熵和海明距離的最大值進(jìn)行擬合分析,以確定合理的樣本數(shù)量、單個(gè)樣本字節(jié)數(shù)、最大錯(cuò)誤率,并獲得密鑰,其中最大海明距離決定了數(shù)據(jù)在每次測(cè)量之間的錯(cuò)誤率;
      [0044]本步驟的優(yōu)點(diǎn)在于,可以對(duì)嵌入式設(shè)備測(cè)量的次數(shù)進(jìn)行估計(jì),避免多次的測(cè)量而影響系統(tǒng)的效率。
      [0045](3)PUF分析模塊將獲得的密鑰發(fā)送到散列數(shù)據(jù)生成模塊和幫助數(shù)據(jù)生成模塊,并將最大錯(cuò)誤率發(fā)送到幫助數(shù)據(jù)生成模塊;
      [0046](4)幫助數(shù)據(jù)生成模塊根據(jù)接收到的密鑰和最大錯(cuò)誤率生成幫助數(shù)據(jù);具體過(guò)程如圖5所示,幫助數(shù)據(jù)生成模塊根據(jù)得到的最大錯(cuò)誤率生成可以糾正該錯(cuò)誤率的糾錯(cuò)碼(Error Correcting Code,簡(jiǎn)稱ECC),該糾錯(cuò)碼的位長(zhǎng)與密鑰X相同,并將密鑰與糾錯(cuò)碼進(jìn)行異或運(yùn)算,以得到幫助數(shù)據(jù)W ;
      [0047](5)散列數(shù)據(jù)生成模塊根據(jù)接收到的密鑰生成散列數(shù)據(jù);具體過(guò)程如圖5所示,散列數(shù)據(jù)生成模塊對(duì)接收到的密鑰X進(jìn)行哈希(HASH)計(jì)算,以生成和密鑰的位長(zhǎng)相同的散列數(shù)據(jù)s ;
      [0048](6)數(shù)據(jù)庫(kù)模塊存儲(chǔ)幫助數(shù)據(jù)、散列數(shù)據(jù)和SRAM所在嵌入式設(shè)備的ID ;
      [0049](7)嵌入式認(rèn)證程序生成模塊根據(jù)散列數(shù)據(jù)生成模塊生成的散列數(shù)據(jù)和幫助數(shù)據(jù)生成模塊生成的幫助數(shù)據(jù)的位長(zhǎng)生成具有固定數(shù)據(jù)架構(gòu)的認(rèn)證程序。具體而言,由于不同嵌入式設(shè)備在認(rèn)證階段所需要的幫助數(shù)據(jù)以及散列數(shù)據(jù)的位長(zhǎng)不同,為了保證認(rèn)證程序的通用性和獨(dú)立性,需要在認(rèn)證程序中預(yù)留相應(yīng)的用于認(rèn)證的數(shù)據(jù)位,進(jìn)而保證程序的通用性。具體的辦法是,在認(rèn)證程序中寫(xiě)入幫助數(shù)據(jù)以及散列數(shù)據(jù)的位長(zhǎng)相同的兩段全局字符換常量,這兩組常量在程序中為幫助數(shù)據(jù)和散列數(shù)據(jù)提供了相應(yīng)的存儲(chǔ)空間,在不同的嵌入式設(shè)備進(jìn)行認(rèn)證時(shí)可以將相應(yīng)的幫助數(shù)據(jù)以及散列數(shù)據(jù)的進(jìn)行相應(yīng)的置換。該步驟的優(yōu)點(diǎn)在于,將認(rèn)證程序與特定的嵌入式設(shè)備分離,保證了各自的獨(dú)立性,使得系統(tǒng)的使用更加的便捷。(8)待燒寫(xiě)程序處理模塊將嵌入式認(rèn)證程序生成模塊生成的認(rèn)證程序以及SRAM所在嵌入式設(shè)備的幫助數(shù)據(jù)以及散列數(shù)據(jù)進(jìn)行合并,以生成完整的認(rèn)證程序。具體過(guò)程如圖6所示。該模塊所需的數(shù)據(jù)由數(shù)據(jù)庫(kù)模塊提供。
      [0050]本步驟的優(yōu)點(diǎn)在于,使PC端只需要保存相關(guān)數(shù)據(jù)與一個(gè)不完整認(rèn)證程序,而不用保存大量的針對(duì)不同嵌入式設(shè)備的認(rèn)證程序,增加了各個(gè)模塊的獨(dú)立性。
      [0051](9) IAP模塊將完整的認(rèn)證程序燒寫(xiě)到SRAM所在嵌入式設(shè)備中。具體過(guò)程如圖7所示,待編程的嵌入式設(shè)備需要運(yùn)行IAP所需的程序,并與燒寫(xiě)器通過(guò)串口進(jìn)行通信,燒寫(xiě)器通過(guò)串口將完整的認(rèn)證程序發(fā)送到嵌入式設(shè)備指定地址的ROM中。完成程序的燒寫(xiě)后,嵌入式設(shè)備通過(guò)程序的跳轉(zhuǎn)執(zhí)行認(rèn)證程序功能,從而完成了 IAP的過(guò)程。
      [0052]本步驟的優(yōu)點(diǎn)在于,設(shè)備的認(rèn)證程序更新是根據(jù)IAP的在線更新方法,大大的降低了在某些特殊場(chǎng)合的使用難度。比如設(shè)備使用環(huán)境比較惡劣的地方。
      [0053]如圖8所示,該圖說(shuō)明了在嵌入式端整個(gè)認(rèn)證方法中主要數(shù)據(jù)的處理以及計(jì)算的過(guò)程。首先,由嵌入式設(shè)備的ID得到存儲(chǔ)在數(shù)據(jù)庫(kù)中的相應(yīng)嵌入式設(shè)備的幫助數(shù)據(jù)W,幫助數(shù)據(jù)整合在認(rèn)證程序中,在認(rèn)證的過(guò)程中,幫助數(shù)據(jù)W與嵌入式設(shè)備中提取到的SRAM密鑰X’,進(jìn)行異或得到一個(gè)中間值c’,C’被送入ECC (Error Correcting Code)程序模塊進(jìn)行糾錯(cuò),對(duì)C’進(jìn)行糾錯(cuò)后得到中間數(shù)據(jù)C,幫助數(shù)據(jù)W與數(shù)據(jù)C異或即可得到原始密鑰X,密鑰X進(jìn)行Hash運(yùn)算得到散列值,該散列值與原始散列值進(jìn)行對(duì)比即完成整個(gè)認(rèn)證過(guò)程。
      [0054]如圖1所示,本發(fā)明嵌入式微處理器非可克隆函數(shù)密鑰認(rèn)證系統(tǒng)包括嵌入式端、燒寫(xiě)設(shè)備端和PC端,嵌入式端包括物理非可克隆(Physical Unclonable Function,簡(jiǎn)稱PUF)待分析數(shù)據(jù)提取模塊1、以及在應(yīng)用中編程(In-application programming,簡(jiǎn)稱IAP)模塊2,燒寫(xiě)設(shè)備端包括待燒寫(xiě)程序處理模塊3,PC端包括嵌入式認(rèn)證程序生成模塊4、PUF分析模塊5、數(shù)據(jù)庫(kù)模塊6、散列數(shù)據(jù)生成模塊7、以及幫助數(shù)據(jù)生成模塊8。
      [0055]PUF待分析數(shù)據(jù)提取模塊I用于多次提取SRAM中的初始上電數(shù)據(jù),并將數(shù)據(jù)發(fā)送到PUF分析模塊5 ;具體而言,PUF待分析數(shù)據(jù)提取模塊I將測(cè)試程序下載到目標(biāo)嵌入式設(shè)備中,通過(guò)不斷的掉電多次測(cè)量SRAM上電初值,初始上電數(shù)據(jù)是采用二進(jìn)制格式的文件進(jìn)行保存,提取初始上電數(shù)據(jù)的次數(shù)是由不同SRAM上電后的數(shù)據(jù)波動(dòng)決定的,數(shù)據(jù)波動(dòng)越大,提取次數(shù)越多,PUF分析模塊5會(huì)對(duì)樣本大小進(jìn)行判斷,若樣本大小太小,則進(jìn)行補(bǔ)充的測(cè)量。
      [0056]PUF分析模塊5用于對(duì)采集到的初始上電數(shù)據(jù)及其樣本大小進(jìn)行分析;具體而言,PUF分析模塊5計(jì)算初始上電數(shù)據(jù)的最小熵以及初始上電數(shù)據(jù)之間海明距離的最大值,并對(duì)最小熵和海明距離的最大值進(jìn)行擬合分析,以確定合理的樣本數(shù)量、單個(gè)樣本字節(jié)數(shù)、最大錯(cuò)誤率,并獲得密鑰,其中最大海明距離決定了數(shù)據(jù)在每次測(cè)量之間的錯(cuò)誤率。
      [0057]PUF分析模塊5還用于將獲得的密鑰發(fā)送到散列數(shù)據(jù)生成模塊7和幫助數(shù)據(jù)生成模塊8,并將最大錯(cuò)誤率發(fā)送到幫助數(shù)據(jù)生成模塊8。
      [0058]幫助數(shù)據(jù)生成模塊8用于根據(jù)接收到的密鑰和最大錯(cuò)誤率生成幫助數(shù)據(jù)。具體而言,幫助數(shù)據(jù)生成模塊8根據(jù)得到的最大錯(cuò)誤率生成可以糾正該錯(cuò)誤率的糾錯(cuò)碼,該糾錯(cuò)碼的位長(zhǎng)與密鑰X相同,并將密鑰與糾錯(cuò)碼進(jìn)行異或運(yùn)算,以得到幫助數(shù)據(jù)W。
      [0059]散列數(shù)據(jù)生成模塊7用于根據(jù)接收到的密鑰生成散列數(shù)據(jù);具體而言,散列數(shù)據(jù)生成模塊7對(duì)接收到的密鑰X進(jìn)行哈希計(jì)算,以生成和密鑰的位長(zhǎng)相同的散列數(shù)據(jù)S。
      [0060]數(shù)據(jù)庫(kù)模塊6用于存儲(chǔ)幫助數(shù)據(jù)、散列數(shù)據(jù)和SRAM所在嵌入式設(shè)備的ID。
      [0061]嵌入式認(rèn)證程序生成模塊4根據(jù)散列數(shù)據(jù)生成模塊生成的散列數(shù)據(jù)和幫助數(shù)據(jù)生成模塊生成的幫助數(shù)據(jù)的位長(zhǎng)生成具有固定數(shù)據(jù)架構(gòu)的認(rèn)證程序。具體而言,由于不同嵌入式設(shè)備在認(rèn)證階段所需要的幫助數(shù)據(jù)以及散列數(shù)據(jù)不同,需要在該程序中預(yù)留相應(yīng)的數(shù)據(jù)位,進(jìn)而保證程序的通用性。
      [0062]待燒寫(xiě)程序處理模塊3用于將嵌入式認(rèn)證程序生成模塊4生成的認(rèn)證程序以及SRAM所在嵌入式設(shè)備的幫助數(shù)據(jù)以及散列數(shù)據(jù)進(jìn)行合并,以生成完整的認(rèn)證程序。
      [0063]IAP模塊2用于將完整的認(rèn)證程序燒寫(xiě)到SRAM所在嵌入式設(shè)備中。具體過(guò)程如圖7所示,待編程的嵌入式設(shè)備需要運(yùn)行IAP所需的程序,并與燒寫(xiě)器通過(guò)串口進(jìn)行通信,燒寫(xiě)器通過(guò)串口將完整的認(rèn)證程序發(fā)送到嵌入式設(shè)備指定地址的ROM中。完成程序的燒寫(xiě)后,嵌入式設(shè)備通過(guò)程序的跳轉(zhuǎn)執(zhí)行認(rèn)證程序功能,從而完成了 IAP的過(guò)程。
      [0064]綜上所述,本發(fā)明從嵌入式微處理器的體系結(jié)構(gòu)入手,結(jié)合SRAM-PUF可以生成硬件相關(guān)的獨(dú)特密鑰的原理,研究嵌入式微處理器在物理攻擊條件下可靠的密鑰安全保障機(jī)制。本發(fā)明能夠保證密鑰以及嵌入式軟件的安全性,使嵌入式系統(tǒng)的安全受到保護(hù),使用SRAM-PUF產(chǎn)生密鑰而無(wú)需存儲(chǔ)密鑰方法,防止了物理攻擊對(duì)密鑰安全性的威脅,而且本發(fā)明在一定程度上節(jié)省了搭建額外電路的開(kāi)銷,只需加入安全軟件模塊。在充分考慮嵌入式微處理器的密鑰安全性、性能以及成本開(kāi)銷的前提下,提高嵌入式微處理器的安全性,為嵌入式系統(tǒng)的安全應(yīng)用提供可靠保障。
      [0065]本領(lǐng)域的技術(shù)人員容易理解,以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
      【權(quán)利要求】
      1.一種嵌入式微處理器非可克隆函數(shù)密鑰認(rèn)證系統(tǒng),包括嵌入式端、燒寫(xiě)設(shè)備端和PC端,嵌入式端包括PUF待分析數(shù)據(jù)提取模塊以及IAP模塊,燒寫(xiě)設(shè)備端包括待燒寫(xiě)程序處理模塊,PC端包括嵌入式認(rèn)證程序生成模塊、PUF分析模塊、數(shù)據(jù)庫(kù)模塊、散列數(shù)據(jù)生成模塊、以及幫助數(shù)據(jù)生成模塊,其特征在于, PUF待分析數(shù)據(jù)提取模塊用于多次提取SRAM中的初始上電數(shù)據(jù),并將數(shù)據(jù)發(fā)送到PUF分析模塊; PUF分析模塊用于對(duì)采集到的初始上電數(shù)據(jù)及其樣本大小進(jìn)行分析; PUF分析模塊還用于將獲得的密鑰發(fā)送到散列數(shù)據(jù)生成模塊和幫助數(shù)據(jù)生成模塊,并將最大錯(cuò)誤率發(fā)送到幫助數(shù)據(jù)生成模塊; 幫助數(shù)據(jù)生成模塊用于根據(jù)接收到的密鑰和最大錯(cuò)誤率生成幫助數(shù)據(jù); 散列數(shù)據(jù)生成模塊用于根據(jù)接收到的密鑰使用哈希計(jì)算生成散列數(shù)據(jù); 數(shù)據(jù)庫(kù)模塊用于存儲(chǔ)幫助數(shù)據(jù)、散列數(shù)據(jù)和SRAM所在嵌入式設(shè)備的ID ; 嵌入式認(rèn)證程序生成模塊用于根據(jù)散列數(shù)據(jù)生成模塊生成的散列數(shù)據(jù)和幫助數(shù)據(jù)生成模塊生成的幫助數(shù)據(jù)的位長(zhǎng)生成具有固定數(shù)據(jù)架構(gòu)的認(rèn)證程序; 待燒寫(xiě)程序處理模塊用于將嵌入式認(rèn)證程序生成模塊生成的認(rèn)證程序以及SRAM所在嵌入式設(shè)備的幫助數(shù)據(jù)以及散列數(shù)據(jù)進(jìn)行合并,以生成完整的認(rèn)證程序; IAP模塊用于將完整的認(rèn)證程序燒寫(xiě)到SRAM所在嵌入式設(shè)備中。
      2.根據(jù)權(quán)利要求1所述的嵌入式微處理器非可克隆函數(shù)密鑰認(rèn)證系統(tǒng),其特征在于,PUF分析模塊計(jì)算初始上電數(shù)據(jù)的最小熵以及初始上電數(shù)據(jù)之間海明距離的最大值,并對(duì)最小熵和海明距離的最大值進(jìn)行擬合分析,以確定合理的樣本數(shù)量、單個(gè)樣本字節(jié)數(shù)、最大錯(cuò)誤率,并獲得密鑰。
      3.根據(jù)權(quán)利要求1所述的嵌入式微處理器非可克隆函數(shù)密鑰認(rèn)證系統(tǒng),其特征在于,幫助數(shù)據(jù)生成模塊根據(jù)得到的最大錯(cuò)誤率生成可以糾正該錯(cuò)誤率的糾錯(cuò)碼,該糾錯(cuò)碼的位長(zhǎng)與密鑰相同,并將密鑰與糾錯(cuò)碼進(jìn)行異或運(yùn)算,以得到幫助數(shù)據(jù)。
      4.一種根據(jù)權(quán)利要求1-3中任意一項(xiàng)所述嵌入式微處理器非可克隆函數(shù)密鑰認(rèn)證系統(tǒng)的嵌入式微處理器非可克隆函數(shù)密鑰認(rèn)證方法,其特征在于,該方法包括以下步驟: (1)PUF待分析數(shù)據(jù)提取模塊多次提取SRAM中的初始上電數(shù)據(jù),并將數(shù)據(jù)發(fā)送到PUF分析模塊; (2)PUF分析模塊對(duì)采集到的初始上電數(shù)據(jù)及其樣本大小進(jìn)行分析; (3)PUF分析模塊將獲得的密鑰發(fā)送到散列數(shù)據(jù)生成模塊和幫助數(shù)據(jù)生成模塊,并將最大錯(cuò)誤率發(fā)送到幫助數(shù)據(jù)生成模塊; (4)幫助數(shù)據(jù)生成模塊根據(jù)接收到的密鑰和最大錯(cuò)誤率生成幫助數(shù)據(jù); (5)散列數(shù)據(jù)生成模塊根據(jù)接收到的密鑰并通過(guò)哈希計(jì)算生成散列數(shù)據(jù); (6)數(shù)據(jù)庫(kù)模塊存儲(chǔ)幫助數(shù)據(jù)、散列數(shù)據(jù)和SRAM所在嵌入式設(shè)備的ID; (7)嵌入式認(rèn)證程序生成模塊根據(jù)散列數(shù)據(jù)生成模塊生成的散列數(shù)據(jù)和幫助數(shù)據(jù)生成模塊生成的幫助數(shù)據(jù)的位長(zhǎng)生成具有固定數(shù)據(jù)架構(gòu)的認(rèn)證程序; (8)待燒寫(xiě)程序處理模塊將嵌入式認(rèn)證程序生成模塊生成的認(rèn)證程序以及SRAM所在嵌入式設(shè)備的幫助數(shù)據(jù)以及散列數(shù)據(jù)進(jìn)行合并,以生成完整的認(rèn)證程序; (9)IAP模塊將完整的認(rèn)證程序燒寫(xiě)到SRAM所在嵌入式設(shè)備中。
      5.根據(jù)權(quán)利要求1所述的嵌入式微處理器非可克隆函數(shù)密鑰認(rèn)證方法,其特征在于,步驟(1)具體為,將測(cè)試程序下載到目標(biāo)嵌入式設(shè)備中,通過(guò)不斷的掉電多次測(cè)量SRAM上電初值,初始上電數(shù)據(jù)是采用二進(jìn)制格式的文件進(jìn)行保存。
      6.根據(jù)權(quán)利要求1所述的嵌入式微處理器非可克隆函數(shù)密鑰認(rèn)證方法,其特征在于,步驟(4)具體為,幫助數(shù)據(jù)生成模塊根據(jù)得到的最大錯(cuò)誤率生成ECC糾錯(cuò)碼,該糾錯(cuò)碼的位長(zhǎng)與密鑰相同,并將密鑰與 糾錯(cuò)碼進(jìn)行異或運(yùn)算,以得到幫助數(shù)據(jù)。
      【文檔編號(hào)】G06F21/12GK103544410SQ201310460138
      【公開(kāi)日】2014年1月29日 申請(qǐng)日期:2013年9月30日 優(yōu)先權(quán)日:2013年9月30日
      【發(fā)明者】劉政林, 張振華, 劉文超, 王雪, 鄒雪城, 鄭朝霞, 童喬凌 申請(qǐng)人:華中科技大學(xué)
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1