本發(fā)明涉及信息安全,特別涉及一種基于真隨機(jī)數(shù)發(fā)生器的密鑰加速器及其工作方法。
背景技術(shù):
1、trng,真隨機(jī)數(shù)發(fā)生器,是一種用于生成隨機(jī)數(shù)的設(shè)備,其輸出的隨機(jī)數(shù)是基于物理隨機(jī)現(xiàn)象或過程產(chǎn)生的,這些現(xiàn)象或過程具有固定的隨機(jī)性。與prng,偽隨機(jī)數(shù)生成器不同,trng生成的隨機(jī)數(shù)不是通過計(jì)算機(jī)或可預(yù)測(cè)的方法產(chǎn)生的,而來(lái)自不可預(yù)測(cè)的過程。trng在密碼學(xué)、網(wǎng)絡(luò)安全和科學(xué)模擬等領(lǐng)域具有重要的應(yīng)用價(jià)值,因?yàn)樗鼈兡芴峁┑碾S機(jī)性能增強(qiáng)數(shù)據(jù)的安全性和可靠性。相比之下,偽隨機(jī)數(shù)發(fā)生器在一定程度上可以預(yù)測(cè),因此在某些安全性要求極高的應(yīng)用場(chǎng)景中可能不夠理想。
2、dpa,差分功耗分析,dpa攻擊技術(shù)具有很強(qiáng)的攻擊性和解密效率,它的原理是:當(dāng)芯片在執(zhí)行不同的指令進(jìn)行各種運(yùn)算時(shí),對(duì)應(yīng)的功率消耗也相應(yīng)變化。通過使用特殊的電子測(cè)量?jī)x和數(shù)學(xué)統(tǒng)計(jì)技術(shù),來(lái)檢測(cè)和分析這些變化,從而得到芯片中的特定關(guān)鍵信息。這是一種利用指令的電流變化來(lái)分析密碼算法和密碼的方法。dpa的攻擊原理主要是根據(jù)數(shù)據(jù)和功耗之間的關(guān)聯(lián)性,來(lái)還原出密鑰,進(jìn)而達(dá)到攻擊的效果。
3、pka,公開密鑰加速器,是一個(gè)協(xié)處理器,專用于rsa操作所需要的數(shù)學(xué)計(jì)算密集型元素以及素?cái)?shù)域中使用的ecc,橢圓曲線加密,算法,dwc_pka與designware加密軟件無(wú)縫集成,使設(shè)計(jì)人員能夠加速公鑰算法所需要的非對(duì)稱加密,從而提供純軟件解決方案無(wú)法到達(dá)的性能水平。ecc是一種基于橢圓曲線數(shù)學(xué)理論應(yīng)用于密碼學(xué)領(lǐng)域的加密算法。ecc算法通過橢圓曲線上的點(diǎn)來(lái)實(shí)現(xiàn)加密和數(shù)字簽名,具有較高的安全性和效率。與傳統(tǒng)的rsa算法相比,ecc算法在相同安全性下使用更短的密鑰長(zhǎng)度,因此可以提高加密和數(shù)組簽名的效率,減少計(jì)算和存儲(chǔ)成本。ecc算法在移動(dòng)設(shè)備、物聯(lián)網(wǎng)設(shè)備等資源受限的環(huán)境下更為適用。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的目的在于提供一種基于真隨機(jī)數(shù)發(fā)生器的密鑰加速器及其工作方法,以解決背景技術(shù)中的問題。
2、為解決上述技術(shù)問題,本發(fā)明提供了一種基于真隨機(jī)數(shù)發(fā)生器的密鑰加速器,包括真隨機(jī)數(shù)發(fā)生器和公開密鑰加速器兩部分;
3、所述真隨機(jī)數(shù)發(fā)生器由差分功耗分析功能接口邏輯和真隨機(jī)數(shù)生成邏輯構(gòu)成,通過配置真隨機(jī)數(shù)發(fā)生器,差分功耗分析功能接口邏輯的串行噪聲接口和串行噪聲源有效位接口產(chǎn)生數(shù)據(jù)并輸出給公開密鑰加速器相應(yīng)的接口上;再次通過配置真隨機(jī)數(shù)發(fā)生器產(chǎn)生真隨機(jī)數(shù)作為私鑰,用戶根據(jù)自身的需求產(chǎn)生多位私鑰,并且通過cpu寫數(shù)據(jù)接口存放在公開密鑰加速器內(nèi)部的ram單元中;
4、所述公開密鑰加速器由差分功耗分析對(duì)抗邏輯和算術(shù)邏輯單元構(gòu)成,通過外部寄存器控制邏輯使能對(duì)抗邏輯開關(guān)接口,啟用差分功耗分析內(nèi)部的對(duì)抗邏輯以對(duì)抗來(lái)自真隨機(jī)數(shù)發(fā)生器的噪聲干擾數(shù)據(jù),公開密鑰加速器所需要的固件算法、私鑰和ecc相關(guān)參數(shù)通過cpu寫入公開密鑰加速器內(nèi)部相應(yīng)的ram單元中,通過算術(shù)邏輯單元參與計(jì)算,計(jì)算得到的公鑰存放在ram單元中,可通過cpu讀數(shù)據(jù)接口讀取。
5、在一種實(shí)施方式中,所述公開密鑰加速器中,ram單元將來(lái)自外部數(shù)據(jù)源準(zhǔn)備好,通過cpu寫數(shù)據(jù)接口向公開密鑰加速器內(nèi)部的寄存器單元配置entry_point,操作數(shù)的大小并啟動(dòng)公開密鑰加速器開始計(jì)算,這樣ram單元中的數(shù)據(jù)便會(huì)送到算術(shù)邏輯單元中進(jìn)行計(jì)算,ram單元、寄存器單元和算術(shù)邏輯單元要進(jìn)行實(shí)時(shí)的數(shù)據(jù)交互和命令交互以確保公開密鑰加速器處于正常的工作狀態(tài),通過cpu讀數(shù)據(jù)接口獲取公開密鑰加速器內(nèi)部的工作狀態(tài)。
6、在一種實(shí)施方式中,所述硬件隨機(jī)數(shù)發(fā)生器產(chǎn)生一段或多段32位非確定性全熵噪聲種子作為隨機(jī)數(shù),并根據(jù)密鑰參數(shù)特征組成所需的多位寬的密鑰值,作為私鑰值。
7、在一種實(shí)施方式中,所述公開密鑰加速器的內(nèi)部針對(duì)計(jì)算用到的算法以及各種操作數(shù)均分配了各自的ram地址,用于數(shù)據(jù)訪問;所述公開密鑰加速器先通過cpu把計(jì)算公鑰用到的相關(guān)算法寫入對(duì)應(yīng)的ram單元,再將產(chǎn)生的真隨機(jī)數(shù)和相關(guān)參數(shù)寫入對(duì)應(yīng)的ram單元中。
8、在一種實(shí)施方式中,所述固件算法包括橢圓加密算法、非對(duì)稱加密算法在內(nèi)的多種運(yùn)算功能的算法,在進(jìn)行參數(shù)和寄存器配置之前首先將固件算法通過cpu接口寫入公開密鑰加速器內(nèi)部的相應(yīng)的ram單元中。
9、本發(fā)明還提供一種基于真隨機(jī)數(shù)發(fā)生器的密鑰加速器的工作方法,包括真隨機(jī)數(shù)發(fā)生器的啟動(dòng)流程和公開密鑰加速器工作流程;
10、真隨機(jī)數(shù)發(fā)生器開始啟動(dòng),真隨機(jī)數(shù)發(fā)生器內(nèi)核初始化操作并使能隨機(jī)數(shù)控制器開始工作,真隨機(jī)數(shù)發(fā)生器啟動(dòng)一路非確定性的串行全熵噪聲并配置全熵噪聲密度,通過外部寄存器使能公開密鑰加速器內(nèi)部的對(duì)抗邏輯;
11、再次使用真隨機(jī)數(shù)發(fā)生器生成多路非確定性的全熵噪聲種子,用于產(chǎn)生多段32位的真隨機(jī)數(shù),根據(jù)需要將多段32位的真隨機(jī)數(shù)組成多位真隨機(jī)數(shù)作為私鑰,cpu讀取并存儲(chǔ)私鑰;
12、等到噪聲源和真隨機(jī)數(shù)準(zhǔn)備完成,往公開密鑰加速器的相應(yīng)ram單元中加載固件算法,等固件算法加載完成,向相應(yīng)的ram單元中配置私鑰和ecc各類參數(shù)。向公開密鑰加速器的寄存器中配置entry_point、操作數(shù)大小并啟動(dòng)公開密鑰加速器開始計(jì)算,等待計(jì)算完成,通過cpu從相應(yīng)ram單元中讀取公鑰并存儲(chǔ),最后得到公私鑰對(duì)。
13、本發(fā)明提供的一種基于真隨機(jī)數(shù)發(fā)生器的密鑰加速器及其工作方法,采用的trng是從物理過程而非計(jì)算機(jī)程序產(chǎn)生的設(shè)備,從理論上講這些隨機(jī)過程是不可預(yù)測(cè)的。通過trng產(chǎn)生的dpa攻擊數(shù)據(jù)來(lái)源,因其具備可調(diào)整噪聲速率,相對(duì)于軟件函數(shù)產(chǎn)生的更真實(shí),更可以模擬攻擊數(shù)據(jù)的典型特征。通過trng產(chǎn)生真隨機(jī)數(shù)結(jié)合pka計(jì)算得到的公私鑰對(duì)相對(duì)于計(jì)算機(jī)程序產(chǎn)生的更難被破解,安全性更高,更穩(wěn)定。
1.一種基于真隨機(jī)數(shù)發(fā)生器的密鑰加速器,其特征在于,包括真隨機(jī)數(shù)發(fā)生器和公開密鑰加速器兩部分;
2.如權(quán)利要求1所述的基于真隨機(jī)數(shù)發(fā)生器的密鑰加速器,其特征在于,所述公開密鑰加速器中,ram單元將來(lái)自外部數(shù)據(jù)源準(zhǔn)備好,通過cpu寫數(shù)據(jù)接口向公開密鑰加速器內(nèi)部的寄存器單元配置entry_point,操作數(shù)的大小并啟動(dòng)公開密鑰加速器開始計(jì)算,這樣ram單元中的數(shù)據(jù)便會(huì)送到算術(shù)邏輯單元中進(jìn)行計(jì)算,ram單元、寄存器單元和算術(shù)邏輯單元要進(jìn)行實(shí)時(shí)的數(shù)據(jù)交互和命令交互以確保公開密鑰加速器處于正常的工作狀態(tài),通過cpu讀數(shù)據(jù)接口獲取公開密鑰加速器內(nèi)部的工作狀態(tài)。
3.如權(quán)利要求1所述的基于真隨機(jī)數(shù)發(fā)生器的密鑰加速器,其特征在于,所述硬件隨機(jī)數(shù)發(fā)生器產(chǎn)生一段或多段32位非確定性全熵噪聲種子作為隨機(jī)數(shù),并根據(jù)密鑰參數(shù)特征組成所需的多位寬的密鑰值,作為私鑰值。
4.如權(quán)利要求1所述的基于真隨機(jī)數(shù)發(fā)生器的密鑰加速器,其特征在于,所述公開密鑰加速器的內(nèi)部針對(duì)計(jì)算用到的算法以及各種操作數(shù)均分配了各自的ram地址,用于數(shù)據(jù)訪問;所述公開密鑰加速器先通過cpu把計(jì)算公鑰用到的相關(guān)算法寫入對(duì)應(yīng)的ram單元,再將產(chǎn)生的真隨機(jī)數(shù)和相關(guān)參數(shù)寫入對(duì)應(yīng)的ram單元中。
5.如權(quán)利要求1所述的基于真隨機(jī)數(shù)發(fā)生器的密鑰加速器,其特征在于,所述固件算法包括橢圓加密算法、非對(duì)稱加密算法在內(nèi)的多種運(yùn)算功能的算法,在進(jìn)行參數(shù)和寄存器配置之前首先將固件算法通過cpu接口寫入公開密鑰加速器內(nèi)部的相應(yīng)的ram單元中。
6.一種基于真隨機(jī)數(shù)發(fā)生器的密鑰加速器的工作方法,其特征在于,包括真隨機(jī)數(shù)發(fā)生器的啟動(dòng)流程和公開密鑰加速器工作流程;