System.ArgumentOutOfRangeException: 索引和長(zhǎng)度必須引用該字符串內(nèi)的位置。 參數(shù)名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術(shù)實(shí)現(xiàn)步驟摘要】
本專利技術(shù)涉及一種硬件加速器、指令集及運(yùn)行方法,特別是一種可編程aes加密模塊硬件加速器、指令集及運(yùn)行方法。
技術(shù)介紹
1、本部分提供的僅僅是與本公開相關(guān)的背景信息,其并不必然是現(xiàn)有技術(shù)。
2、現(xiàn)有技術(shù)中的aes(高級(jí)加密標(biāo)準(zhǔn))算法使用硬件實(shí)現(xiàn)面積過大,而使用純軟件的方法會(huì)導(dǎo)致cpu被長(zhǎng)期占用,因此現(xiàn)有的aes大都使用軟硬件結(jié)合的技術(shù)來解決上述問題,aes硬件加速器和cpu配合一般都使用中斷的方法來進(jìn)行,即aes硬件加速器在完成運(yùn)算后通知cpu來進(jìn)行下一步操作。
3、然而,現(xiàn)有技術(shù)中,上述解決方案需要對(duì)cpu頻繁打斷,導(dǎo)致cpu工作效率不高。
4、需要說明的是,在上述
技術(shù)介紹
部分公開的信息僅用于加強(qiáng)對(duì)本公開的背景的理解,因此可以包括不構(gòu)成對(duì)本領(lǐng)域普通技術(shù)人員已知的現(xiàn)有技術(shù)的信息。
技術(shù)實(shí)現(xiàn)思路
1、專利技術(shù)目的:本專利技術(shù)所要解決的技術(shù)問題是針對(duì)現(xiàn)有技術(shù)的不足,提供一種可編程aes加密模塊硬件加速器、指令集及運(yùn)行方法。
2、為了解決上述技術(shù)問題,本專利技術(shù)公開了一種可編程aes加密模塊硬件加速器、指令集及運(yùn)行方法;
3、其中,所述加速器與總線連接,與所述總線進(jìn)行數(shù)據(jù)交互,并對(duì)所述數(shù)據(jù)進(jìn)行aes加密和解密,所述加速器包括:
4、與所述總線連接的主設(shè)備和從設(shè)備,其中,所述主設(shè)備用于數(shù)據(jù)搬運(yùn)指令的收發(fā);所述從設(shè)備,與所述總線上的其他模塊進(jìn)行通信,并接收所述主設(shè)備的數(shù)據(jù)搬運(yùn)指令和數(shù)據(jù)。
5、進(jìn)一步的,所述加
6、所述從設(shè)備通過指令棧與譯碼器連接,將其指令傳輸給所述譯碼器。
7、進(jìn)一步的,所述加速器還包括:計(jì)算模塊和搬運(yùn)模塊,
8、所述譯碼器對(duì)從所述從設(shè)備傳輸來的指令進(jìn)行解碼,并將解碼后的指令發(fā)送給與其連接的計(jì)算模塊或搬運(yùn)模塊;
9、所述計(jì)算模塊,用于根據(jù)指令選擇不同的計(jì)算子模塊進(jìn)行對(duì)應(yīng)的運(yùn)算;
10、所述搬運(yùn)模塊,用于根據(jù)所述主設(shè)備發(fā)出的數(shù)據(jù)搬運(yùn)指令,對(duì)計(jì)算模塊和寄存器中的數(shù)據(jù)進(jìn)行傳輸。
11、進(jìn)一步的,所述加速器還包括:寄存器,
12、所述寄存器,用于存儲(chǔ)所述加速器中的數(shù)據(jù)。
13、進(jìn)一步的,所述寄存器,包括:
14、專用寄存器和通用寄存器,其中,
15、所述專用寄存器,用于存放特定的加密和解密數(shù)據(jù);
16、所述通用寄存器,用于存儲(chǔ)常規(guī)數(shù)據(jù),包括中間計(jì)算結(jié)果和輔助數(shù)據(jù);
17、其中,所述專用寄存器,包括,域運(yùn)算結(jié)果寄存器gf、驗(yàn)證信息結(jié)果寄存器tag、初始化向量寄存器iv、密鑰寄存器h、加密密鑰寄存器key、明文數(shù)據(jù)寄存器ptext、密文數(shù)據(jù)寄存器ctext。
18、進(jìn)一步的,所述寄存器,還包括:
19、與所述從設(shè)備連接的狀態(tài)寄存器,用于存儲(chǔ)所述加速器的當(dāng)前狀態(tài)。
20、進(jìn)一步的,所述計(jì)算子模塊,包括:
21、逆運(yùn)算子模塊inv,用于執(zhí)行aes加密和解密過程中的逆變換步驟;逆運(yùn)算子模塊inv進(jìn)行反相的方式有四種模式,分別為byte級(jí)反相,word級(jí)反相,doubleword級(jí)反相以及全反相;
22、aes核心子模塊aes_core,用于執(zhí)行aes加密和解密的核心運(yùn)算步驟,包括,字節(jié)替代、行移位、列混淆和輪密鑰加;
23、galois域運(yùn)算子模塊g2f,用于在有限域上的乘法運(yùn)算,計(jì)算結(jié)果放入在域運(yùn)算結(jié)果寄存器gf中;
24、異或運(yùn)算子模塊xor,用于執(zhí)行異或運(yùn)算;
25、加法運(yùn)算子模塊add,用于進(jìn)行加法運(yùn)算;
26、專用dma子模塊dma,只用于將sram中的數(shù)據(jù)搬運(yùn)到專用寄存器和通用寄存器中;
27、搬運(yùn)子模塊mov,用于專用寄存器和通用寄存器中數(shù)據(jù)的相互搬運(yùn)。
28、進(jìn)一步的,所述總線、主設(shè)備和從設(shè)備為ahb總線、ahb主設(shè)備和ahb從設(shè)備。
29、本專利技術(shù)還提出一種可編程aes硬件加速器指令集,用于控制前述的加速器中的計(jì)算模塊進(jìn)行相關(guān)計(jì)算,所述指令集包括:
30、xor指令,進(jìn)行異或操作,輸入和輸出為專用寄存器或者通用寄存器,輸入為2個(gè)寄存器,輸出為1個(gè)寄存器;
31、aes_core指令,進(jìn)行aes加密或解密操作,執(zhí)行該指令前確認(rèn)初始化向量寄存器iv、加密密鑰寄存器key和明文數(shù)據(jù)寄存器ptext完成配置,輸出值存儲(chǔ)在密文數(shù)據(jù)寄存器ctext中;運(yùn)行前指定為加密或解密模式;
32、g2f指令,進(jìn)行g(shù)alois加密操作,執(zhí)行該指令前確認(rèn)域運(yùn)算結(jié)果寄存器gf和加密密鑰寄存器key完成配置,輸出值存儲(chǔ)在域運(yùn)算結(jié)果寄存器gf中;
33、inv指令,進(jìn)行反向操作,設(shè)有四種模式,分別為byte字節(jié)級(jí)反相、word字級(jí)反相、double?word雙字級(jí)反相和全反相;
34、add指令,進(jìn)行加法操作,使用32位加法器完成128bits加法運(yùn)算,輸入和輸出為專用寄存器或者通用寄存器,輸入中還包括選擇位常數(shù)值,輸入為2個(gè)寄存器,輸出為1個(gè)寄存器;
35、dma指令,進(jìn)行外部數(shù)據(jù)搬運(yùn),完成從sram到所述通用寄存器的雙向數(shù)據(jù)搬運(yùn)操作;
36、mov指令,進(jìn)行寄存器間數(shù)據(jù)搬運(yùn),將數(shù)據(jù)搬運(yùn)到寄存器中,輸入為常數(shù)、通用寄存器或?qū)S眉拇嫫?,輸出為通用寄存器或?qū)S眉拇嫫鳌?/p>
37、本專利技術(shù)還提出一種可編程aes硬件加速器運(yùn)行方法,采用前述加速器實(shí)現(xiàn),所述方法包括:
38、步驟1,判斷當(dāng)前輪次aes加密或解密操作是否已經(jīng)完成,若未完成,則執(zhí)行步驟2,否則結(jié)束當(dāng)前輪次運(yùn)行;
39、步驟2,將接收到的新指令寫入指令棧中;
40、步驟3,使指令棧中的最下一條指令出棧;
41、步驟4,對(duì)出棧的指令進(jìn)行譯碼,并分配給計(jì)算模塊或搬運(yùn)模進(jìn)行處理;
42、步驟5,等待步驟4中所述處理完成,檢查指令棧是否為空,若為空,則結(jié)束運(yùn)行,否則返回執(zhí)行步驟1。
43、有益效果:
44、1、本專利技術(shù)提高了aes加密速度,相比純軟件方案顯著加快數(shù)據(jù)處理。
45、2、本專利技術(shù)降低了硬件成本,通過硬件加速與軟件控制的結(jié)合實(shí)現(xiàn)速度和成本的平衡。
46、3、本專利技術(shù)減輕了cpu負(fù)擔(dān),使用dma進(jìn)行高效指令搬運(yùn)。
47、4、本專利技術(shù)提高了系統(tǒng)靈活性,支持cpu和dma兩種指令輸入方式。
48、5、本專利技術(shù)優(yōu)化了能源利用率,通過精確配置和高效數(shù)據(jù)交互降低系統(tǒng)功耗。
本文檔來自技高網(wǎng)...【技術(shù)保護(hù)點(diǎn)】
1.一種可編程AES加密模塊硬件加速器,其特征在于,所述加速器與總線連接,與所述總線進(jìn)行數(shù)據(jù)交互,并對(duì)所述數(shù)據(jù)進(jìn)行AES加密和解密,所述加速器包括:
2.根據(jù)權(quán)利要求1所述的一種可編程AES加密模塊硬件加速器,其特征在于,所述加速器還包括:指令棧和譯碼器,
3.根據(jù)權(quán)利要求2所述的一種可編程AES加密模塊硬件加速器,其特征在于,所述加速器還包括:計(jì)算模塊和搬運(yùn)模塊,
4.根據(jù)權(quán)利要求3所述的一種可編程AES加密模塊硬件加速器,其特征在于,所述加速器還包括:寄存器,
5.根據(jù)權(quán)利要求4所述的一種可編程AES加密模塊硬件加速器,其特征在于,所述寄存器,包括:
6.根據(jù)權(quán)利要求5所述的一種可編程AES加密模塊硬件加速器,其特征在于,所述寄存器,還包括:
7.根據(jù)權(quán)利要求6所述的一種可編程AES加密模塊硬件加速器,其特征在于,所述計(jì)算子模塊,包括:
8.根據(jù)權(quán)利要求7所述的一種可編程AES加密模塊硬件加速器,其特征在于,所述總線、主設(shè)備和從設(shè)備為AHB總線、AHB主設(shè)備和AHB從設(shè)備。
9.一
10.一種可編程AES加密模塊硬件加速器運(yùn)行方法,其特征在于,采用權(quán)利要求1至8中任一所述加速器實(shí)現(xiàn),所述方法包括:
...【技術(shù)特征摘要】
1.一種可編程aes加密模塊硬件加速器,其特征在于,所述加速器與總線連接,與所述總線進(jìn)行數(shù)據(jù)交互,并對(duì)所述數(shù)據(jù)進(jìn)行aes加密和解密,所述加速器包括:
2.根據(jù)權(quán)利要求1所述的一種可編程aes加密模塊硬件加速器,其特征在于,所述加速器還包括:指令棧和譯碼器,
3.根據(jù)權(quán)利要求2所述的一種可編程aes加密模塊硬件加速器,其特征在于,所述加速器還包括:計(jì)算模塊和搬運(yùn)模塊,
4.根據(jù)權(quán)利要求3所述的一種可編程aes加密模塊硬件加速器,其特征在于,所述加速器還包括:寄存器,
5.根據(jù)權(quán)利要求4所述的一種可編程aes加密模塊硬件加速器,其特征在于,所述寄存器,包括:
6.根據(jù)...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:程垚,王固強(qiáng),李樂薇,
申請(qǐng)(專利權(quán))人:杭州萬高科技股份有限公司,
類型:發(fā)明
國(guó)別省市:
還沒有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。