欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

同時(shí)實(shí)現(xiàn)RSA/ECC加解密算法的裝置的制作方法

文檔序號(hào):12309282閱讀:340來(lái)源:國(guó)知局
同時(shí)實(shí)現(xiàn)RSA/ECC加解密算法的裝置的制作方法

本發(fā)明涉及公鑰加解密技術(shù),尤其涉及一種同時(shí)實(shí)現(xiàn)rsa/ecc加解密算法的裝置。



背景技術(shù):

rsa公鑰加密算法是目前最有影響力的公鑰加密算法,它能夠抵抗到目前為止已知的絕大多數(shù)密碼攻擊,已被國(guó)際標(biāo)準(zhǔn)化組織(internationalorganizationforstandardization,iso)推薦為公鑰數(shù)據(jù)加密標(biāo)準(zhǔn)。

rsa公鑰加密算法的安全性是基于大素?cái)?shù)因式分解的困難性,隨著計(jì)算機(jī)處理速度與分布式計(jì)算等理論的飛速發(fā)展,較短的rsa密鑰已不再安全。目前1024位長(zhǎng)度的密鑰也可以在較短的時(shí)間內(nèi)被破解,因此,為了提高rsa加密的安全強(qiáng)度,需要采用更高位寬的密鑰。但是,隨著密鑰長(zhǎng)度的增加,rsa加解密的速度將大幅降低,嚴(yán)重影響使用效率。

橢圓曲線密碼學(xué)(ellipticcurvecryptography,ecc)加密算法的安全性是基于解決橢圓曲線離散對(duì)數(shù)問(wèn)題的困難性,目前已知的公鑰加密體制中,ecc加密算法是對(duì)每比特所提供加密強(qiáng)度最高的一種體制,即在位寬相同的情況下,ecc加密算法具有最高的安全強(qiáng)度。因此,在對(duì)位寬,功耗,安全性等方面有更高要求的應(yīng)用場(chǎng)景下,ecc加密算法具有極大的優(yōu)勢(shì)。

公鑰加密算法中密鑰對(duì)的生成需要若干個(gè)隨機(jī)的大素?cái)?shù),以及一系列復(fù)雜的計(jì)算;目前絕大部分的密鑰對(duì)生成是通過(guò)軟件實(shí)現(xiàn)的;但通過(guò)軟件生成公鑰密鑰對(duì)耗時(shí)較長(zhǎng),且會(huì)有被第三方竊取素?cái)?shù)或隨機(jī)因子的風(fēng)險(xiǎn)。

rsa加密算法的核心為大數(shù)模冪運(yùn)算,ecc加密算法的核心為橢圓點(diǎn)乘運(yùn)算;由于計(jì)算步驟非常復(fù)雜,目前大部分加解密裝置只是單一實(shí)現(xiàn)其中一種加 密算法,而可以同時(shí)實(shí)現(xiàn)兩種加密算法的裝置,又很難平衡運(yùn)算速度、面積和功耗,不能適配于分別對(duì)速度或面積有較高要求的不同場(chǎng)景。



技術(shù)實(shí)現(xiàn)要素:

有鑒于此,本發(fā)明實(shí)施例期望提供一種同時(shí)實(shí)現(xiàn)rsa/ecc加解密算法的裝置,以在一個(gè)裝置中同時(shí)實(shí)現(xiàn)rsa/ecc兩種加解密算法。

本發(fā)明實(shí)施例的技術(shù)方案是這樣實(shí)現(xiàn)的:

一種同時(shí)實(shí)現(xiàn)rsa/ecc加解密算法的裝置,所述裝置包括:

中央處理器cpu接口模塊、主控模塊、復(fù)雜計(jì)算控制模塊和基本計(jì)算模塊;

其中,所述cpu接口模塊,用于接收配置參數(shù)并發(fā)送給所述主控模塊,返回所述主控模塊中的狀態(tài)參數(shù);

所述主控模塊,用于接收并存儲(chǔ)配置參數(shù),根據(jù)所述配置參數(shù)向所述復(fù)雜計(jì)算控制模塊發(fā)送計(jì)算命令;將所述狀態(tài)參數(shù)發(fā)送給所述cpu接口模塊;接收所述基本計(jì)算模塊發(fā)送的讀取命令,向所述基本計(jì)算模塊發(fā)送計(jì)算參數(shù);

所述復(fù)雜計(jì)算控制模塊,用于接收所述主控模塊發(fā)送的計(jì)算命令,根據(jù)所述計(jì)算命令,生成運(yùn)算命令發(fā)送給所述基本計(jì)算模塊;接收所述基本計(jì)算模塊的完成信號(hào);

所述基本計(jì)算模塊,用于接收所述運(yùn)算命令,并向所述主控模塊發(fā)送讀取命令以獲取所述計(jì)算參數(shù),根據(jù)所述運(yùn)算命令以及獲取的所述計(jì)算參數(shù)完成計(jì)算,向所述復(fù)雜計(jì)算控制模塊發(fā)送完成信號(hào),同時(shí)將計(jì)算結(jié)果發(fā)送給所述主控模塊。

如上所述的裝置,其中,所述計(jì)算命令中包含rsa/ecc計(jì)算;

所述復(fù)雜計(jì)算控制模塊具體用于,將接收到的所述計(jì)算命令中的rsa/ecc計(jì)算分解成一系列模乘運(yùn)算,并生成與各模乘運(yùn)算對(duì)應(yīng)的運(yùn)算命令發(fā)送給所述基本計(jì)算模塊。

如上所述的裝置,其中,所述裝置還包括:

從機(jī)接口和主機(jī)接口;

所述從機(jī)接口,用于接收所述cpu接口模塊發(fā)送的所述配置參數(shù),并將所述配置參數(shù)發(fā)送給所述主控模塊;

所述主機(jī)接口,用于接收所述主控模塊發(fā)送的所述配置參數(shù),并進(jìn)行存儲(chǔ)。

如上所述的裝置,其中,所述裝置還包括:

存儲(chǔ)模塊,用于存儲(chǔ)明文參數(shù)、密文參數(shù)、密鑰參數(shù)和所述基本計(jì)算模塊的計(jì)算中間結(jié)果。

如上所述的裝置,其中,所述配置參數(shù)用于配置所述裝置運(yùn)行的算法為rsa算法或ecc算法、密鑰位寬以及工作模式,所述工作模式包括加密模式和解密模式。

如上所述的裝置,其中,所述cpu接口模塊、所述從機(jī)接口和所述主機(jī)接口均支持外圍總線apb協(xié)議、系統(tǒng)總線ahb協(xié)議、片內(nèi)總線axi協(xié)議和ace_lite總線協(xié)議。

一種同時(shí)實(shí)現(xiàn)rsa/ecc加解密算法的裝置,所述裝置包括:

中央處理器cpu接口模塊、主控模塊、復(fù)雜計(jì)算控制模塊、基本計(jì)算模塊、直接內(nèi)存存取dma控制器、密鑰生成模塊、真隨機(jī)數(shù)發(fā)生模塊和大數(shù)乘法處理模塊;

其中,所述cpu接口模塊,用于接收配置參數(shù)并發(fā)送給所述主控模塊,返回所述主控模塊中的狀態(tài)參數(shù);

所述主控模塊,用于接收并存儲(chǔ)配置參數(shù),根據(jù)所述配置參數(shù)向所述密鑰生成模塊發(fā)送密鑰生成命令;向所述復(fù)雜計(jì)算控制模塊發(fā)送計(jì)算命令;將所述狀態(tài)參數(shù)發(fā)送給所述cpu接口模塊;接收所述基本計(jì)算模塊發(fā)送的讀取命令,向所述基本計(jì)算模塊發(fā)送計(jì)算參數(shù);

所述復(fù)雜計(jì)算控制模塊,用于接收所述主控模塊發(fā)送的計(jì)算命令,根據(jù)所述計(jì)算命令,生成加減法運(yùn)算命令發(fā)送給所述基本計(jì)算模塊,生成模乘運(yùn)算命令發(fā)送給所述大數(shù)乘法處理模塊;接收所述基本計(jì)算模塊和所述大數(shù)乘法處理模塊的完成信號(hào);

所述基本計(jì)算模塊,用于接收所述加減法運(yùn)算命令,并向所述主控模塊發(fā)送讀取命令以獲取所述計(jì)算參數(shù),根據(jù)所述加減法運(yùn)算命令以及獲取的所述計(jì)算參數(shù)完成計(jì)算,向所述復(fù)雜計(jì)算控制模塊發(fā)送所述完成信號(hào),同時(shí)將計(jì)算結(jié)果發(fā)送給所述主控模塊;

所述密鑰生成模塊,用于接收所述密鑰生成命令,并調(diào)用所述真隨機(jī)數(shù)發(fā)生模塊生成隨機(jī)數(shù)生成密鑰對(duì),并發(fā)送給所述主控模塊進(jìn)行存儲(chǔ);

所述真隨機(jī)數(shù)發(fā)生模塊,用于產(chǎn)生真隨機(jī)數(shù)并發(fā)送給所述密鑰生成模塊;

所述dma控制器,用于接收并存儲(chǔ)數(shù)據(jù);

所述大數(shù)乘法處理模塊,用于接收所述模乘運(yùn)算命令,并向所述dma控制器發(fā)送讀取命令以獲取所述計(jì)算參數(shù),根據(jù)所述模乘運(yùn)算命令以及獲取的所述計(jì)算參數(shù)完成計(jì)算,將計(jì)算的中間結(jié)果存儲(chǔ)至存儲(chǔ)器,向所述復(fù)雜計(jì)算控制模塊發(fā)送所述完成信號(hào)。

如上所述的裝置,其中,所述計(jì)算命令中包含rsa/ecc計(jì)算;

所述復(fù)雜計(jì)算控制模塊具體用于,將接收到的所述計(jì)算命令中的rsa/ecc計(jì)算分解成一系列模乘運(yùn)算和加減運(yùn)算,并生成所述加減法運(yùn)算命令發(fā)送給所述基本計(jì)算模塊,生成所述模乘運(yùn)算命令發(fā)送給所述大數(shù)乘法處理模塊。

如上所述的裝置,其中,所述裝置還包括:

從機(jī)接口和主機(jī)接口;

所述從機(jī)接口,用于接收所述cpu接口模塊發(fā)送的所述配置參數(shù),并將所述配置參數(shù)發(fā)送給所述主控模塊;

所述主機(jī)接口,用于接收所述主控模塊發(fā)送的所述配置參數(shù),并進(jìn)行存儲(chǔ)。

如上所述的裝置,其中,所述cpu接口模塊、所述主機(jī)接口和所述從機(jī)接口均支持外圍總線apb協(xié)議、系統(tǒng)總線ahb協(xié)議、片內(nèi)總線axi協(xié)議和ace_lite總線協(xié)議。

如上所述的裝置,其中,所述配置參數(shù)用于配置所述裝置運(yùn)行的算法為rsa算法或ecc算法、密鑰位寬以及工作模式,所述工作模式包括加密模式和解密模式。

如上所述的裝置,其中,所述裝置還包括:

存儲(chǔ)模塊,用于存儲(chǔ)明文參數(shù)、密文參數(shù)、密鑰參數(shù)、所述基本計(jì)算模塊的計(jì)算中間結(jié)果和所述大數(shù)乘法處理模塊的計(jì)算中間結(jié)果。

如上所述的裝置,其中,所述存儲(chǔ)模塊采用雙口隨機(jī)存取存儲(chǔ)器ram。

如上所述的裝置,其中,所述大數(shù)乘法處理模塊,具體用于調(diào)用可伸縮的循環(huán)脈動(dòng)陣列完成任意位寬的大數(shù)模乘運(yùn)算。

本發(fā)明實(shí)施例提供的同時(shí)實(shí)現(xiàn)rsa/ecc加解密算法的裝置,包括:所述cpu接口模塊,用于接收配置參數(shù)并發(fā)送給所述主控模塊,返回所述主控模塊中的狀態(tài)參數(shù);所述主控模塊,用于接收并存儲(chǔ)配置參數(shù),根據(jù)所述配置參數(shù)向所述復(fù)雜計(jì)算控制模塊發(fā)送計(jì)算命令;將所述狀態(tài)參數(shù)發(fā)送給所述cpu接口模塊;接收所述基本計(jì)算模塊發(fā)送的讀取命令,向所述基本計(jì)算模塊發(fā)送計(jì)算參數(shù);所述復(fù)雜計(jì)算控制模塊,用于接收所述主控模塊發(fā)送的計(jì)算命令,根據(jù)所述計(jì)算命令,生成運(yùn)算命令發(fā)送給所述基本計(jì)算模塊;接收所述基本計(jì)算模塊的完成信號(hào);所述基本計(jì)算模塊,用于接收所述運(yùn)算命令,并向所述主控模塊發(fā)送讀取命令以獲取所述計(jì)算參數(shù),根據(jù)所述運(yùn)算命令以及獲取的所述計(jì)算參數(shù)完成計(jì)算,向所述復(fù)雜計(jì)算控制模塊發(fā)送完成信號(hào),同時(shí)將計(jì)算結(jié)果發(fā)送給所述主控模塊。能夠同時(shí)實(shí)現(xiàn)rsa/ecc兩種公鑰加解密算法,用戶可以根據(jù)速度優(yōu)先或面積優(yōu)先的具體場(chǎng)景進(jìn)行相應(yīng)的配置,大幅提高本發(fā)明在不同應(yīng)用場(chǎng)景下的適配性。

附圖說(shuō)明

圖1為本發(fā)明實(shí)施例一提供的同時(shí)實(shí)現(xiàn)rsa/ecc加解密算法的裝置的結(jié)構(gòu)示意圖;

圖2為使用本實(shí)施例提供的同時(shí)實(shí)現(xiàn)rsa/ecc加解密算法的裝置完成公鑰加密運(yùn)算的配置示意圖一;

圖3為本發(fā)明實(shí)施例二提供的同時(shí)實(shí)現(xiàn)rsa/ecc加解密算法的裝置的結(jié)構(gòu)示意圖;

圖4為使用本實(shí)施例提供的同時(shí)實(shí)現(xiàn)rsa/ecc加解密算法的裝置完成公鑰加密運(yùn)算的配置示意圖二。

具體實(shí)施方式

在本發(fā)明的各實(shí)施例中,本發(fā)明提出了一種rsa/ecc公鑰加解密裝置,可以同時(shí)實(shí)現(xiàn)rsa/ecc兩種公鑰加解密算法。用戶可以根據(jù)速度優(yōu)先或面積優(yōu)先的具體場(chǎng)景進(jìn)行相應(yīng)的配置,大幅提高本發(fā)明在不同應(yīng)用場(chǎng)景下的適配性。該裝置支持外圍總線(advancedperipheralbus,apb)協(xié)議、系統(tǒng)總線(advancedhighperformancebus,ahb)協(xié)議、片內(nèi)總線(advancedextensibleinterface,axi)協(xié)議和ace_lite等多種總線協(xié)議,支持rsa/ecc密鑰生成功能,根據(jù)存儲(chǔ)空間大小,可支持任意長(zhǎng)度的密鑰。

圖1為本發(fā)明實(shí)施例一提供的同時(shí)實(shí)現(xiàn)rsa/ecc加解密算法的裝置的結(jié)構(gòu)示意圖。如圖1所示,本實(shí)施例提供的裝置包括:

中央處理器(centralprocessingunit,cpu)接口模塊、主控模塊、復(fù)雜計(jì)算控制模塊和基本計(jì)算模塊;

其中,所述cpu接口模塊,用于接收配置參數(shù)并發(fā)送給所述主控模塊,返回所述主控模塊中的狀態(tài)參數(shù);

所述主控模塊,用于接收并存儲(chǔ)配置參數(shù),根據(jù)所述配置參數(shù)向所述復(fù)雜計(jì)算控制模塊發(fā)送計(jì)算命令;將所述狀態(tài)參數(shù)發(fā)送給所述cpu接口模塊;接收所述基本計(jì)算模塊發(fā)送的讀取命令,向所述基本計(jì)算模塊發(fā)送計(jì)算參數(shù);

所述復(fù)雜計(jì)算控制模塊,用于接收所述主控模塊發(fā)送的計(jì)算命令,根據(jù)所述計(jì)算命令,生成運(yùn)算命令發(fā)送給所述基本計(jì)算模塊;接收所述基本計(jì)算模塊的完成信號(hào);

所述基本計(jì)算模塊,用于接收所述運(yùn)算命令,并向所述主控模塊發(fā)送讀取命令以獲取所述計(jì)算參數(shù),根據(jù)所述運(yùn)算命令以及獲取的所述計(jì)算參數(shù)完成計(jì)算,向所述復(fù)雜計(jì)算控制模塊發(fā)送完成信號(hào),同時(shí)將計(jì)算結(jié)果發(fā)送給所述主控模塊。

所述計(jì)算命令中包含rsa/ecc計(jì)算;所述復(fù)雜計(jì)算控制模塊具體用于,將接收到的所述計(jì)算命令中的rsa/ecc計(jì)算分解成一系列模乘運(yùn)算,并生成與各模乘運(yùn)算對(duì)應(yīng)的運(yùn)算命令發(fā)送給所述基本計(jì)算模塊。

需要說(shuō)明的是,所述復(fù)雜計(jì)算控制模塊主要實(shí)現(xiàn)ecc算法中的橢圓點(diǎn)乘、橢圓點(diǎn)加運(yùn)算,rsa算法中的大數(shù)模冪運(yùn)算,以及通用的模除和montgomey預(yù)計(jì)算等運(yùn)算控制;所述基本計(jì)算模塊主要實(shí)現(xiàn)大數(shù)的加法、減法、乘法、模約減和模乘等基本運(yùn)算。

進(jìn)一步地,所述裝置還包括:從機(jī)接口和主機(jī)接口;所述從機(jī)接口,用于接收所述cpu接口模塊發(fā)送的所述配置參數(shù),并將所述配置參數(shù)發(fā)送給所述主控模塊;所述主機(jī)接口,用于接收所述主控模塊發(fā)送的所述配置參數(shù),并進(jìn)行存儲(chǔ)。

進(jìn)一步地,所述裝置還包括:存儲(chǔ)模塊,用于存儲(chǔ)明文參數(shù)、密文參數(shù)、密鑰參數(shù)和所述基本計(jì)算模塊的計(jì)算中間結(jié)果。

需要說(shuō)明的是,所述配置參數(shù)用于配置所述裝置運(yùn)行的算法為rsa算法或ecc算法、密鑰位寬以及工作模式,所述工作模式包括加密模式和解密模式;所述cpu接口模塊、所述從機(jī)接口和所述主機(jī)接口均支持apb協(xié)議、ahb協(xié)議、axi協(xié)議和ace_lite總線協(xié)議。

參照?qǐng)D2,對(duì)使用本實(shí)施例提供的同時(shí)實(shí)現(xiàn)rsa/ecc加解密算法的裝置完成公鑰加密運(yùn)算的過(guò)程進(jìn)行詳細(xì)說(shuō)明。

具體的,圖2所示的應(yīng)用場(chǎng)景為在面積優(yōu)先或功耗優(yōu)先場(chǎng)景,具體的工作流程如下:

裝置初始化。處理器通過(guò)總線訪問(wèn)裝置cpu接口,發(fā)送配置參數(shù)。首先配置裝置的算法為rsa或ecc算法,其次配置密鑰位寬,最后配置工作模式為加密模式。

接收并存儲(chǔ)數(shù)據(jù)??偩€主機(jī)發(fā)送明文、密鑰等數(shù)據(jù)到裝置的從機(jī)接口,從機(jī)接口將數(shù)據(jù)傳遞給主控模塊,主控模塊將從機(jī)接口數(shù)據(jù)傳遞給主機(jī)接口由主機(jī)接口控制完成存儲(chǔ)。

rsa/ecc加密復(fù)雜計(jì)算控制。主控模塊發(fā)送rsa/ecc加密命令到復(fù)雜計(jì)算控制模塊,復(fù)雜計(jì)算控制模塊根據(jù)命令將rsa模冪運(yùn)算分解成一系列的模乘運(yùn)算,將ecc點(diǎn)乘運(yùn)算分解成一系列的橢圓點(diǎn)加運(yùn)算,并將橢圓點(diǎn)加運(yùn)算分解成大數(shù)模乘和加法運(yùn)算。所有的運(yùn)算命令均發(fā)送至基本計(jì)算模塊。

完成基本計(jì)算?;居?jì)算模塊收到復(fù)雜計(jì)算控制模塊發(fā)出的模乘、加法、模約減等命令后,發(fā)送讀取命令至主控模塊,通過(guò)主控模塊從存儲(chǔ)器中讀取計(jì)算參數(shù),調(diào)用模塊內(nèi)部的面積較小的加法器、乘法器等基本運(yùn)算單元實(shí)現(xiàn)大數(shù)乘法、加法與模約減運(yùn)算。計(jì)算完成后通過(guò)主控模塊將結(jié)果存入存儲(chǔ)器中,發(fā)送完成信號(hào)至復(fù)雜計(jì)算控制模塊,并等待下一次基本運(yùn)算命令。

加密完成,發(fā)送密文。主控模塊控制主機(jī)接口讀取存儲(chǔ)器中的密文數(shù)據(jù),通過(guò)從機(jī)接口發(fā)送給總線主機(jī)。

本實(shí)施例的技術(shù)方案,可以同時(shí)實(shí)現(xiàn)rsa加解密運(yùn)算和ecc加解密運(yùn)算,通過(guò)cpu對(duì)裝置控制寄存器配置實(shí)現(xiàn)rsa與ecc的切換;實(shí)現(xiàn)rsa簽名/驗(yàn)證、ecdsa簽名/驗(yàn)證以及ecdh密鑰交換功能;減少軟件預(yù)計(jì)算等操作,降低預(yù)計(jì)算的復(fù)雜度,提高了運(yùn)算效率。同時(shí)可以根據(jù)存儲(chǔ)空間的大小,可支持任意長(zhǎng)度的密鑰。

圖3為本發(fā)明實(shí)施例二提供的同時(shí)實(shí)現(xiàn)rsa/ecc加解密算法的裝置的結(jié)構(gòu)示意圖。如圖3所示,本實(shí)施例提供的同時(shí)實(shí)現(xiàn)rsa/ecc加解密算法的裝置包括:

cpu接口模塊、主控模塊、復(fù)雜計(jì)算控制模塊、基本計(jì)算模塊、直接內(nèi)存存取dma控制器、密鑰生成模塊、真隨機(jī)數(shù)發(fā)生模塊和大數(shù)乘法處理模塊;

其中,所述cpu接口模塊,用于接收配置參數(shù)并發(fā)送給所述主控模塊,返回所述主控模塊中的狀態(tài)參數(shù);

所述主控模塊,用于接收并存儲(chǔ)配置參數(shù),根據(jù)所述配置參數(shù)向所述密鑰生成模塊發(fā)送密鑰生成命令;向所述復(fù)雜計(jì)算控制模塊發(fā)送計(jì)算命令;將所述狀態(tài)參數(shù)發(fā)送給所述cpu接口模塊;接收所述基本計(jì)算模塊發(fā)送的讀取命令,向所述基本計(jì)算模塊發(fā)送計(jì)算參數(shù);

所述復(fù)雜計(jì)算控制模塊,用于接收所述主控模塊發(fā)送的計(jì)算命令,根據(jù)所述計(jì)算命令,生成加減法運(yùn)算命令發(fā)送給所述基本計(jì)算模塊,生成模乘運(yùn)算命令發(fā)送給所述大數(shù)乘法處理模塊;接收所述基本計(jì)算模塊和所述大數(shù)乘法處理模塊的完成信號(hào);

所述基本計(jì)算模塊,用于接收所述加減法運(yùn)算命令,并向所述主控模塊發(fā)送讀取命令以獲取所述計(jì)算參數(shù),根據(jù)所述加減法運(yùn)算命令以及獲取的所述計(jì)算參數(shù)完成計(jì)算,向所述復(fù)雜計(jì)算控制模塊發(fā)送所述完成信號(hào),同時(shí)將計(jì)算結(jié)果發(fā)送給所述主控模塊;

所述密鑰生成模塊,用于接收所述密鑰生成命令,并調(diào)用所述真隨機(jī)數(shù)發(fā)生模塊生成隨機(jī)數(shù)生成密鑰對(duì),并發(fā)送給所述主控模塊進(jìn)行存儲(chǔ);

所述真隨機(jī)數(shù)發(fā)生模塊,用于產(chǎn)生真隨機(jī)數(shù)并發(fā)送給所述密鑰生成模塊;

所述dma控制器,用于接收并存儲(chǔ)數(shù)據(jù);

所述大數(shù)乘法處理模塊,用于接收所述模乘運(yùn)算命令,并向所述dma控制器發(fā)送讀取命令以獲取所述計(jì)算參數(shù),根據(jù)所述模乘運(yùn)算命令以及獲取的所述計(jì)算參數(shù)完成計(jì)算,將計(jì)算的中間結(jié)果存儲(chǔ)至存儲(chǔ)器,向所述復(fù)雜計(jì)算控制模塊發(fā)送所述完成信號(hào)。

具體的,所述大數(shù)乘法處理模塊,具體用于調(diào)用可伸縮的循環(huán)脈動(dòng)陣列完成任意位寬的大數(shù)模乘運(yùn)算。

具體的,所述計(jì)算命令中包含rsa/ecc計(jì)算;所述復(fù)雜計(jì)算控制模塊具體用于,將接收到的所述計(jì)算命令中的rsa/ecc計(jì)算分解成一系列模乘運(yùn)算和加減運(yùn)算,并生成所述加減法運(yùn)算命令發(fā)送給所述基本計(jì)算模塊,生成所述模乘運(yùn)算命令發(fā)送給所述大數(shù)乘法處理模塊。

進(jìn)一步地,所述裝置還包括:從機(jī)接口和主機(jī)接口;所述從機(jī)接口,用于接收所述cpu接口模塊發(fā)送的所述配置參數(shù),并將所述配置參數(shù)發(fā)送給所述主控模塊;所述主機(jī)接口,用于接收所述主控模塊發(fā)送的所述配置參數(shù),并進(jìn)行存儲(chǔ)。

需要說(shuō)明的是,所述cpu接口模塊、所述主機(jī)接口和所述從機(jī)接口均支持 apb協(xié)議、ahb協(xié)議、axi協(xié)議和ace_lite總線協(xié)議;所述配置參數(shù)用于配置所述裝置運(yùn)行的算法為rsa算法或ecc算法、密鑰位寬以及工作模式,所述工作模式包括加密模式和解密模式。

進(jìn)一步地,所述裝置還包括:存儲(chǔ)模塊,用于存儲(chǔ)明文參數(shù)、密文參數(shù)、密鑰參數(shù)、所述基本計(jì)算模塊的計(jì)算中間結(jié)果和所述大數(shù)乘法處理模塊的計(jì)算中間結(jié)果;實(shí)際應(yīng)用中,所述存儲(chǔ)模塊采用雙口隨機(jī)存取存儲(chǔ)器ram。

參照?qǐng)D4,對(duì)使用本實(shí)施例提供的同時(shí)實(shí)現(xiàn)rsa/ecc加解密算法的裝置完成公鑰加密運(yùn)算的過(guò)程進(jìn)行詳細(xì)說(shuō)明。

具體的,圖4所示的應(yīng)用場(chǎng)景為在速度優(yōu)先場(chǎng)景,具體的工作流程如下:

裝置初始化。處理器通過(guò)總線訪問(wèn)裝置cpu接口,發(fā)送配置參數(shù)。首先配置裝置的算法為rsa或ecc算法,其次配置密鑰位寬以及調(diào)用大數(shù)乘法處理器,再次配置使能密鑰生成功能,最后配置工作模式為加密模式。

接收并存儲(chǔ)數(shù)據(jù)??偩€主機(jī)發(fā)送數(shù)據(jù)到裝置的從機(jī)接口,從機(jī)接口將數(shù)據(jù)傳遞給dma控制器,dma控制器將從機(jī)接口數(shù)據(jù)傳遞給主機(jī)接口,由主機(jī)接口控制完成存儲(chǔ)。

生成密鑰對(duì)。主控模塊發(fā)送密鑰生成命令至密鑰生成模塊,密鑰生成模塊調(diào)用真隨機(jī)數(shù)產(chǎn)生模塊生成隨機(jī)數(shù),完成篩選質(zhì)數(shù)因子,生成密鑰,刪除質(zhì)數(shù)因子等操作實(shí)現(xiàn)密鑰對(duì)生成。密鑰對(duì)通過(guò)主控模塊控制存儲(chǔ)在存儲(chǔ)器中,并根據(jù)具體需求,將公鑰發(fā)出。

rsa/ecc加密復(fù)雜計(jì)算控制。主控模塊發(fā)送rsa/ecc加密命令到復(fù)雜計(jì)算控制模塊,復(fù)雜計(jì)算控制模塊根據(jù)命令將rsa模冪運(yùn)算分解成一系列的模乘運(yùn)算,將ecc點(diǎn)乘運(yùn)算分解成一系列的橢圓點(diǎn)加運(yùn)算,并將橢圓點(diǎn)加運(yùn)算分解成大數(shù)模乘和加法運(yùn)算。根據(jù)cpu配置,模乘運(yùn)算命令發(fā)送至大數(shù)乘法處理模塊,加法運(yùn)算命令發(fā)送至基本計(jì)算模塊。

模乘與加法計(jì)算。大數(shù)乘法處理模塊根據(jù)復(fù)雜計(jì)算控制模塊發(fā)出的命令開始一次模乘運(yùn)算。從存儲(chǔ)器中讀取計(jì)算參數(shù)后,經(jīng)過(guò)模塊內(nèi)部的循環(huán)脈動(dòng)陣列完成模乘計(jì)算,中間結(jié)果存儲(chǔ)到為該模塊專門開辟的存儲(chǔ)空間中。模乘計(jì)算完 成后,大數(shù)乘法處理模塊發(fā)送完成信號(hào)至復(fù)雜計(jì)算控制模塊,并等待下一次模乘運(yùn)算命令?;居?jì)算模塊收到復(fù)雜計(jì)算控制模塊發(fā)出的加法命令后,發(fā)送讀取命令至主控模塊,通過(guò)主控模塊從存儲(chǔ)器中讀取計(jì)算參數(shù),調(diào)用模塊內(nèi)部的加法器實(shí)現(xiàn)大數(shù)加法與模約減運(yùn)算。計(jì)算完成后通過(guò)主控模塊將結(jié)果存入存儲(chǔ)器中,發(fā)送完成信號(hào)至復(fù)雜計(jì)算控制模塊,并等待下一次基本運(yùn)算命令。

加密完成,發(fā)送密文。dma控制器控制主機(jī)接口讀取存儲(chǔ)器中的密文數(shù)據(jù),通過(guò)從機(jī)接口發(fā)送給總線主機(jī)。

本實(shí)施例的技術(shù)方案,可以同時(shí)實(shí)現(xiàn)rsa加解密運(yùn)算和ecc加解密運(yùn)算,通過(guò)cpu對(duì)裝置控制寄存器配置實(shí)現(xiàn)rsa與ecc的切換;實(shí)現(xiàn)rsa簽名/驗(yàn)證、ecdsa簽名/驗(yàn)證以及ecdh密鑰交換功能;裝置中包含了真隨機(jī)數(shù)發(fā)生器與密鑰生成模塊,可以在裝置中實(shí)現(xiàn)密鑰生成功能。與通常的軟件生成密鑰相比,安全性更強(qiáng),密鑰生成速度更快,用戶操作更便捷;復(fù)雜計(jì)算控制模塊能夠?qū)崿F(xiàn)ecc點(diǎn)乘,rsa模冪,通用的模除以及montgomery預(yù)計(jì)算等多種復(fù)雜運(yùn)算;減少了軟件預(yù)計(jì)算等操作,降低了預(yù)計(jì)算的復(fù)雜度,提高了運(yùn)算效率。同時(shí)可以根據(jù)存儲(chǔ)空間的大小,可支持任意長(zhǎng)度的密鑰??梢赃m用于速度優(yōu)先、面積優(yōu)先、功耗優(yōu)先等各種不同應(yīng)用場(chǎng)景。裝置中包含了大數(shù)運(yùn)算處理模塊,可以快速完成模乘運(yùn)算,大幅提高加解密運(yùn)算速度。同時(shí),裝置中的復(fù)雜計(jì)算控制模塊可以根據(jù)不同的應(yīng)用場(chǎng)景需求,選擇是否調(diào)用大數(shù)運(yùn)算處理模塊,從而匹配各種需求。

本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用硬件實(shí)施例、軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器和光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。

本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié) 合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。

這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。

這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。

以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
通山县| 西丰县| 教育| 疏附县| 德钦县| 象州县| 武夷山市| 哈密市| 浏阳市| 蒙阴县| 西丰县| 扎兰屯市| 永城市| 广东省| 荃湾区| 汽车| 宁化县| 宣化县| 榕江县| 萝北县| 荥阳市| 海晏县| 库车县| 方正县| 海盐县| 江达县| 高要市| 钟山县| 潮州市| 蒙城县| 宁蒗| 金乡县| 黄平县| 手游| 裕民县| 南乐县| 搜索| 锦屏县| 安庆市| 台南市| 奉节县|