本發(fā)明涉及密碼電路和信息安全技術(shù)領(lǐng)域,尤其涉及rsa算法及rsa異步低面積低能耗電路結(jié)構(gòu)。
背景技術(shù):
隨著電子信息技術(shù)的迅猛發(fā)展,計(jì)算機(jī)網(wǎng)絡(luò)在各行各業(yè)中已得到了廣泛應(yīng)用,然而由于網(wǎng)絡(luò)信息的社會(huì)性、開放性和共享性等特點(diǎn)使其越來(lái)越容易受到攻擊,信息安全問(wèn)題日益突出。
基本的信息安全包括信息的保密性、確證性、完整性和不可否認(rèn)性,而密碼技術(shù)是保障信息安全的核心技術(shù)。密碼技術(shù)是集數(shù)學(xué)、計(jì)算機(jī)科學(xué)、電子與通信等諸多學(xué)科于一體的交叉學(xué)科,不僅服務(wù)于軍事外交領(lǐng)域,而且廣泛應(yīng)用于電子政務(wù)、電子商務(wù)和電子金融等應(yīng)用信息系統(tǒng)。
rsa公鑰加密算法是1977年由羅納德·李維斯特(ronrivest)、阿迪·薩莫爾(adishamir)和倫納德·阿德曼(leonardadleman)一起提出的。rsa是目前最有影響力的公鑰加密算法,它能夠抵抗目前已知的絕大多數(shù)密碼攻擊,已廣泛應(yīng)用在加密、認(rèn)證和簽名領(lǐng)域中,如web服務(wù)器和瀏覽器信息安全、e-mail的安全和認(rèn)證、遠(yuǎn)程登錄的安全保證和各種電子信息卡系統(tǒng)等。
差分功耗分析(dpa)技術(shù)可以通過(guò)對(duì)加密設(shè)備在加密過(guò)程中泄露出來(lái)的功耗信息進(jìn)行分析,來(lái)實(shí)施對(duì)于加密設(shè)備的攻擊,對(duì)加密芯片的安全性造成了巨大的威脅。因此,為了增加同步rsa加密電路的抗dpa攻擊性能,往往會(huì)采用掩碼、偽輪和雙軌邏輯等策略,從而導(dǎo)致同步rsa加密電路的面積和功耗顯著增加,不宜于進(jìn)行soc集成。另外,使用同步電路設(shè)計(jì)的rsa電路存在著時(shí)鐘扭斜、功耗高、最壞情況延時(shí)和物理敏感等方面的問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
為了克服現(xiàn)有技術(shù)的上述缺點(diǎn)和不足,本發(fā)明提供一種rsa加密算法及rsa異步低能耗電路結(jié)構(gòu)。
本發(fā)明采用如下技術(shù)方案:
一種rsa異步低能耗電路結(jié)構(gòu),包括移位器、選擇器和模乘器,如圖1所示。其中:
移位器0(10),用于完成對(duì)輸入冪指數(shù)(exp)的右移移位操作,并使用原始冪指數(shù)輸入(exp)或者其移位后輸出的最低位作為選擇器的選擇信號(hào);
選擇器0(11),與移位器0(10)和模乘器(12)分別相連,在原始冪指數(shù)輸入(exp)或者其右移后輸出的最低位的控制下,選擇第一次模乘/模冪及其之后每次模乘/模冪的輸入。
模乘器(12),與選擇器0(11)相連,根據(jù)原始輸入模(modulus)和選擇器0(11)的輸出進(jìn)行rsa算法的模乘/模冪操作,除了最后一次的模乘/模冪輸出作為最終的加密密文(cypher)外,其他各次模乘/模冪的輸出反饋給選擇器0(11)作為下一次模乘/模冪的輸入。
選擇器0(11)可以采用常見的4個(gè)同步2輸入選擇器(20,21,22,23)來(lái)實(shí)現(xiàn)。移位器0(10),與選擇器0(11)相連,完成對(duì)輸入冪指數(shù)(exp)的右移移位操作,使用原始冪指數(shù)輸入(exp)或者其移位后輸出的最低位作為第一次模乘/模冪選擇器(20,22)及其之后每次模乘/模冪選擇器(21,23)的選擇信號(hào)。除了異步請(qǐng)求應(yīng)答電路使用mullerc單元實(shí)現(xiàn)外,該模塊的移位功能可以采用常見的同步移位器來(lái)實(shí)現(xiàn)。
本發(fā)明提供了一種利用上述rsa加密電路結(jié)構(gòu)進(jìn)行加密的方法,包括以下步驟:
s10:加密電路上電后,首先鎖存明文(data),冪指數(shù)(exp)和模(modulus);
s11:根據(jù)冪指數(shù)(exp)的最低位使用選擇器(20,22)選擇用于模乘運(yùn)算的被乘數(shù)(mpand)為明文(data)或?yàn)?,并進(jìn)行模乘運(yùn)算;
s12:將被乘數(shù)(mpand)和乘數(shù)(mplier)都選擇為明文(data),進(jìn)行模冪運(yùn)算;
s13:使用移位器(10)將冪指數(shù)(exp)右移一位;
s14:根據(jù)冪指數(shù)(exp)右移后的最低位使用選擇器(21,23)選擇用于模乘運(yùn)算的乘數(shù)(mplier)為模冪輸出(square)或?yàn)?,并進(jìn)行模乘運(yùn)算;
s15:將被乘數(shù)(mpand)和乘數(shù)(mplier)都選擇為模冪輸出(square),進(jìn)行模冪運(yùn)算;
s16:重復(fù)步驟s13-s15,直到移位后的冪指數(shù)(exp)為0。
本發(fā)明rsa異步低能耗電路結(jié)構(gòu)的模乘器(12)可以包括3個(gè)移位器(30,33,38),3個(gè)選擇器(31,35,37),3個(gè)減法器(32,34,39)和1個(gè)加法器(36),其中:
加法器(36),與移位器1(30)、減法器0(32)、選擇器6(35)和選擇器7(37)分別相連,將3輸入選擇器6(35)的輸出(product)和左移移位器1(30)的輸出(mpand)相加。
選擇器7(37),與加法器(36)、移位器3(38)和選擇器6(35)分別相連,當(dāng)右移移位器3(38)輸出(mplier)的最低位分別為1和0時(shí),選擇器7(37)分別選擇加法器(36)的輸出和3輸入選擇器6(35)的輸出(product)作為乘積1(prodreg1)。
減法器2(39),與選擇器6(35)和選擇器7(37)分別相連,將2輸入選擇器7(37)的輸出(prodreg1)和原始模輸入(modulus)相減。
移位器2(33),與減法器1(34)相連,完成對(duì)原始模輸入(modulus)左移一位的操作。
減法器1(34),與移位器2(33)、選擇器6(35)和選擇器7(37)分別相連,將2輸入選擇器7(37)的輸出(prodreg1)和移位器2(33)左移一位的輸出(modreg2)相減。
選擇器6(35),與減法器1(34)、減法器2(39)、加法器(36)和選擇器7(37)分別相連,根據(jù)減法器2(39)輸出(prodreg2)的最高位和減法器1(34)輸出(prodreg3)的最高位,選擇選擇器7(37)的輸出(prodreg1)或者減法器2(39)的輸出(prodreg2)或者減法器1(34)的輸出(prodreg3)作為其輸出(product)。當(dāng)減法器2(39)輸出(prodreg2)的最高位為1且減法器1(34)輸出(prodreg3)的最高位也為1時(shí),選擇器6(35)選擇選擇器7(37)的輸出(prodreg1);當(dāng)減法器2(39)輸出(prodreg2)的最高位為0且減法器1(34)輸出(prodreg3)的最高位為1時(shí),選擇器6(35)選擇減法器2(39)的輸出(prodreg2);否則選擇器6(35)選擇減法器1(34)的輸出(prodreg3)。
減法器0(32),與移位器1(30)、選擇器5(31)和加法器(36)分別相連,完成對(duì)左移移位器1(30)的輸出(mpand)與原始模輸入(modulus)相減的操作。
選擇器5(31),與移位器1(30)和減法器0(32)分別相連,當(dāng)減法器0(32)輸出(mpreg1)的次高位分別為1和0時(shí),選擇器5(31)分別選擇移位器1(30)的輸出(mpand)和減法器0(32)的輸出(mpreg1)。
移位器1(30),與選擇器5(31)、減法器0(32)和加法器(36)分別相連,將選擇器5(31)的輸出(mpreg1)左移一位得到新的被乘數(shù)(mpand)。
移位器3(38),與選擇器7(37)相連,將乘數(shù)(mplier)右移一位得到新的乘數(shù)(mplier)。
上述rsa異步低能耗電路結(jié)構(gòu)進(jìn)行模乘/模冪的方法,包括以下步驟:
s20:模乘/模冪運(yùn)算開始后,首先使用移位器(33)將模(modulus)左移一位(modreg2);
s21:使用加法器(36)將乘積(product)和被乘數(shù)(mpand)相加,根據(jù)乘數(shù)(mplier)的最低位使用選擇器(37)選擇乘積1(prodreg1)為加法器(36)的輸出或?yàn)槌朔e(product);
s22:乘積2(prodreg2)由乘積1(prodreg1)和模(modulus)通過(guò)減法器(39)得到;
s23:乘積3(prodreg3)由乘積1(prodreg1)和模左移一位(modreg2)通過(guò)減法器(34)相減得到;
s24:根據(jù)乘積2(prodreg2)的最高位和乘積3(prodreg3)的最高位,通過(guò)選擇器(35)選擇得到乘積(product);
s25:被乘數(shù)1(mpreg1)由被乘數(shù)(mpand)和模(modulus)通過(guò)減法器(32)相減得到;
s26:根據(jù)相減后的結(jié)果,被乘數(shù)1(mpreg1)的次高位選擇被乘數(shù)1(mpreg1)是鎖存相減后的結(jié)果,還是鎖存被乘數(shù)(mpand);
s27:將被乘數(shù)1(mpreg1)左移一位得到新的被乘數(shù)(mpand),將乘數(shù)(mplier)右移一位得到新的乘數(shù)(mplier);
s28:重復(fù)步驟s21-s27,直到移位后的乘數(shù)(mplier)為0。
本發(fā)明采用基于請(qǐng)求應(yīng)答信號(hào)的異步握手機(jī)制,不僅能夠減小芯片的面積,而且能夠降低芯片能耗,還增強(qiáng)了芯片的抗dpa攻擊性能,有利于其工程化和量產(chǎn)。
附圖說(shuō)明
圖1是本發(fā)明rsa加密算法的異步低能耗電路結(jié)構(gòu)示意圖;
圖2是本發(fā)明rsa加密電路的選擇器0(11)的結(jié)構(gòu)示意圖;
圖3是本發(fā)明rsa加密電路的模乘器(12)結(jié)構(gòu)示意圖。
其中:10—移位器0;11—選擇器0;12—模乘器;20—選擇器1;21—選擇器2;22—選擇器3;23—選擇器4;30—移位器1;31—選擇器5;32—減法器0;33—移位器2;34—減法器1;35—選擇器6;36—加法器;37—選擇器7;38—移位器3;39—減法器2。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明的實(shí)施例進(jìn)行詳細(xì)闡述。
結(jié)合附圖2和附圖3對(duì)本發(fā)明的實(shí)施例進(jìn)行詳細(xì)闡述。
如圖2所示,選擇器0(11)包括4個(gè)2輸入選擇器(20,21,22,23),其中:
選擇器1(20)和選擇器3(22),二者都是以原始冪指數(shù)輸入(exp)的最低位作為選擇信號(hào)。當(dāng)選擇信號(hào)分別為1或0時(shí),選擇器1(20)分別選擇原始明文(data)或1作為第一次模乘/模冪的輸入(需要通過(guò)選擇器2(21)的右支路),選擇器3(22)分別選擇1或原始明文(data)作為第一次模乘/模冪的輸入(需要通過(guò)選擇器4(23)的右支路)。
選擇器2(21)和選擇器4(23),二者都是以原始冪指數(shù)輸入(exp)右移后輸出的最低位作為選擇信號(hào)。當(dāng)進(jìn)行第一次模乘/模冪時(shí),選擇信號(hào)默認(rèn)為0即選擇其各自右支路作為模乘/模冪的輸入。當(dāng)進(jìn)行第一次之后的各次模乘/模冪時(shí),如果選擇信號(hào)為1,則選擇器2(21)選擇本次模乘/模冪的輸出作為下一次模乘/模冪的輸入,而選擇器4(23)選擇1作為下一次模乘/模冪的輸入;如果選擇信號(hào)為0,則選擇器2(21)選擇1(需要通過(guò)選擇器1(20)的右支路)作為下一次模乘/模冪的輸入,而選擇器4(23)選擇本次模乘/模冪的輸出作為下一次模乘/模冪的輸入。
如圖3所示,上述的模乘器(12)包括3個(gè)移位器(30,33,38),3個(gè)選擇器(31,35,37),3個(gè)減法器(32,34,39)和1個(gè)加法器(36),其中:
加法器(36),與移位器1(30)、減法器0(32)、選擇器6(35)和選擇器7(37)分別相連,將3輸入選擇器6(35)的輸出(product)和左移移位器1(30)的輸出(mpand)相加。
選擇器7(37),與加法器(36)、移位器3(38)和選擇器6(35)分別相連,當(dāng)右移移位器3(38)輸出(mplier)的最低位分別為1和0時(shí),選擇器7(37)分別選擇加法器(36)的輸出和3輸入選擇器6(35)的輸出(product)作為乘積1(prodreg1)。
減法器2(39),與選擇器6(35)和選擇器7(37)分別相連,將2輸入選擇器7(37)的輸出(prodreg1)和原始模輸入(modulus)相減。
移位器2(33),與減法器1(34)相連,完成對(duì)原始模輸入(modulus)左移一位的操作。
減法器1(34),與移位器2(33)、選擇器6(35)和選擇器7(37)分別相連,將2輸入選擇器7(37)的輸出(prodreg1)和移位器2(33)左移一位的輸出(modreg2)相減。
選擇器6(35),與減法器1(34)、減法器2(39)、加法器(36)和選擇器7(37)分別相連,根據(jù)減法器2(39)輸出(prodreg2)的最高位和減法器1(34)輸出(prodreg3)的最高位,選擇選擇器7(37)的輸出(prodreg1)或者減法器2(39)的輸出(prodreg2)或者減法器1(34)的輸出(prodreg3)作為其輸出(product)。當(dāng)減法器2(39)輸出(prodreg2)的最高位為1且減法器1(34)輸出(prodreg3)的最高位也為1時(shí),選擇器6(35)選擇選擇器7(37)的輸出(prodreg1);當(dāng)減法器2(39)輸出(prodreg2)的最高位為0且減法器1(34)輸出(prodreg3)的最高位為1時(shí),選擇器6(35)選擇減法器2(39)的輸出(prodreg2);否則選擇器6(35)選擇減法器1(34)的輸出(prodreg3)。
減法器0(32),與移位器1(30)、選擇器5(31)和加法器(36)分別相連,完成對(duì)左移移位器1(30)的輸出(mpand)與原始模輸入(modulus)相減的操作。
選擇器5(31),與移位器1(30)和減法器0(32)分別相連,當(dāng)減法器0(32)輸出(mpreg1)的次高位分別為1和0時(shí),選擇器5(31)分別選擇移位器1(30)的輸出(mpand)和減法器0(32)的輸出(mpreg1)。
移位器1(30),與選擇器5(31)、減法器0(32)和加法器(36)分別相連,將選擇器5(31)的輸出(mpreg1)左移一位得到新的被乘數(shù)(mpand)。
移位器3(38),與選擇器7(37)相連,將乘數(shù)(mplier)右移一位得到新的乘數(shù)(mplier)。
本發(fā)明提供了一種利用上述rsa加密電路結(jié)構(gòu)進(jìn)行加密的方法,包括以下步驟:
s10:加密電路上電后,首先鎖存明文(data),冪指數(shù)(exp)和模(modulus);
s11:根據(jù)冪指數(shù)(exp)的最低位使用選擇器(20,22)選擇用于模乘運(yùn)算的被乘數(shù)(mpand)為明文(data)或?yàn)?,并進(jìn)行模乘運(yùn)算;
s12:將被乘數(shù)(mpand)和乘數(shù)(mplier)都選擇為明文(data),進(jìn)行模冪運(yùn)算;
s13:使用移位器(10)將冪指數(shù)(exp)右移一位;
s14:根據(jù)冪指數(shù)(exp)右移后的最低位使用選擇器(21,23)選擇用于模乘運(yùn)算的乘數(shù)(mplier)為模冪輸出(square)或?yàn)?,并進(jìn)行模乘運(yùn)算;
s15:將被乘數(shù)(mpand)和乘數(shù)(mplier)都選擇為模冪輸出(square),進(jìn)行模冪運(yùn)算;
s16:重復(fù)步驟s13-s15,直到移位后的冪指數(shù)(exp)為0。
本發(fā)明模乘器進(jìn)行模乘的方法,包括以下步驟:
s20:模乘運(yùn)算開始后,首先使用移位器(33)將模(modulus)左移一位(modreg2);
s21:使用加法器(36)將乘積(product)和被乘數(shù)(mpand)相加,根據(jù)乘數(shù)(mplier)的最低位使用選擇器(37)選擇乘積1(prodreg1)為加法器(36)的輸出或?yàn)槌朔e(product);
s22:乘積2(prodreg2)由乘積1(prodreg1)和模(modulus)通過(guò)減法器(39)得到;
s23:乘積3(prodreg3)由乘積1(prodreg1)和模左移一位(modreg2)通過(guò)減法器(34)相減得到;
s24:根據(jù)乘積2(prodreg2)的最高位和乘積3(prodreg3)的最高位,通過(guò)選擇器(35)選擇得到乘積(product);
s25:被乘數(shù)1(mpreg1)由被乘數(shù)(mpand)和模(modulus)通過(guò)減法器(32)相減得到;
s26:根據(jù)相減后的結(jié)果被乘數(shù)1(mpreg1)的次高位選擇被乘數(shù)1(mpreg1)是鎖存相減后的結(jié)果被乘數(shù)1(mpreg1),還是鎖存被乘數(shù)(mpand);
s27:將被乘數(shù)1(mpreg1)左移一位得到新的被乘數(shù)(mpand),將乘數(shù)(mplier)右移一位得到新的乘數(shù)(mplier);
s28:重復(fù)步驟s21-s27,直到移位后的乘數(shù)(mplier)為0。
本發(fā)明rsa加密算法的異步低能耗電路結(jié)構(gòu)中,加密數(shù)據(jù)處理采用同步電路實(shí)現(xiàn),各模塊間的互連采用基于請(qǐng)求應(yīng)答的握手機(jī)制實(shí)現(xiàn),采用本發(fā)明加密結(jié)構(gòu)及其加密方法能夠獲得更加安全、更小面積和更低能耗的rsa加密芯片,同時(shí)意味著更低成本和更大的市場(chǎng)競(jìng)爭(zhēng)力。
以上所述僅為本發(fā)明的實(shí)施例,但并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說(shuō)明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。