本發(fā)明涉及模逆計算技術(shù)領(lǐng)域,更具體地說,涉及一種模逆運(yùn)算方法及運(yùn)算器。
背景技術(shù):
模逆運(yùn)算廣泛應(yīng)用在公鑰密碼體制中,例如,在rsa算法中的解密密鑰生成時應(yīng)用到模逆運(yùn)算,模逆運(yùn)算也可以用于橢圓曲線密碼算法中的點(diǎn)加和倍點(diǎn)運(yùn)算。
目前,求解模逆運(yùn)算的方法主要包括模冪算法、擴(kuò)展歐幾里得算法、二進(jìn)制擴(kuò)展歐幾里得算法等。模冪算法以費(fèi)馬小定理為基礎(chǔ),將模逆運(yùn)算轉(zhuǎn)換成模冪運(yùn)算,但是模冪算法無法確定模逆結(jié)果是否存在。采用模乘器作為硬件運(yùn)算單元,較為復(fù)雜且功耗較大。擴(kuò)展歐幾里得算法通過輾轉(zhuǎn)相除計算最大公因子求解模逆,當(dāng)最大公因子為非1整數(shù)時無法獲取模逆的計算結(jié)果。采用除法器作為硬件運(yùn)算單元,實現(xiàn)仍較為復(fù)雜。二進(jìn)制擴(kuò)展歐幾里得算法將除法轉(zhuǎn)換成移位和加減法,但是,在移位的過程中,操作數(shù)的權(quán)值發(fā)生了改變,最終運(yùn)算結(jié)果中包含有2n(n為操作數(shù)的位長)項權(quán)重因子,去除權(quán)重因子需進(jìn)行多次除2的操作,因此,要求模必須是奇數(shù)?,F(xiàn)有的二進(jìn)制擴(kuò)展歐幾里得算法方法在進(jìn)行模逆運(yùn)算時仍存在一定的限制,無法針對任意非零整數(shù)求模,并且計算過程較為復(fù)雜。
因此,現(xiàn)有技術(shù)亟待有很大的進(jìn)步。
技術(shù)實現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題在于,針對現(xiàn)有技術(shù)的上述的缺陷,提供一種模逆運(yùn)算方法,已知正整數(shù)u、m,求u-1modm,包括步驟:
s1、如果m為奇數(shù),則n1=u,n2=m,標(biāo)志位flag=0;否則m不為奇數(shù):如果u為偶數(shù),則u-1不存在,運(yùn)算結(jié)束,如果u不為偶數(shù),則n1=m,n2=u,標(biāo)志位flag=1;
s2、執(zhí)行算法:
s21、n1=m,n2=u,s=0,t=1,k=0;
s22、while(n2>0)
如果n1為偶數(shù),則n1=n1/2,t=2t,k=k+1;
否則如果n2為偶數(shù),則n2=n2/2,s=2s,k=k+1;
否則如果n1>n2,那么n1=(n1-n2)/2,s=s+t,t=2t,k=k+1;
否則n2=(n2-n1)/2,t=s+t,s=2s,k=k+1;
s23、如果n1≠1,則u-1不存在,運(yùn)算結(jié)束;
否則m=-s(modm)
s3、如果n1-1不存在,則運(yùn)算結(jié)束;
s4、如果標(biāo)志位flag=0,則u-1=n1-1;否則標(biāo)志位flag=1,
相應(yīng)地,本發(fā)明還提供了一種模逆運(yùn)算的運(yùn)算器,包括加法器、減法器、存儲器、控制器;
所述控制器用于判斷且設(shè)置數(shù)值,
s1、如果m為奇數(shù),則n1=u,n2=m,標(biāo)志位flag=0;否則m不為奇數(shù):如果u為偶數(shù),則u-1不存在,運(yùn)算結(jié)束,如果u不為偶數(shù),則n1=m,n2=u,標(biāo)志位flag=1;
s21、n1=m,n2=u,s=0,t=1,k=0;
s22、while(n2>0)
如果n1為偶數(shù),則n1=n1/2,t=2t,k=k+1;
否則如果n2為偶數(shù),則n2=n2/2,s=2s,k=k+1;
否則如果n1>n2,那么n1=(n1-n2)/2,s=s+t,t=2t,k=k+1;
否則n2=(n2-n1)/2,t=s+t,s=2s,k=k+1;
s23、如果n1≠1,則u-1不存在,運(yùn)算結(jié)束;
否則m=-s(modm)
s3、如果n1-1不存在,則運(yùn)算結(jié)束;
s4、如果標(biāo)志位flag=0,則u-1=n1-1;否則標(biāo)志位flag=1,
所述減法器執(zhí)行減法操作;
所述加法器執(zhí)行加分操作;
所述存儲器用于存儲參與計算的數(shù)據(jù)、標(biāo)志位flag的值,計算結(jié)果值。
實施本發(fā)明的模逆運(yùn)算方法及運(yùn)算器,具有以下有益效果:該算法只需要增加一個標(biāo)志位,和最多一次乘法、兩次減法運(yùn)算,能大大提高運(yùn)算速度,在硬件實現(xiàn)上,具有通用性、高效性特點(diǎn);相比于現(xiàn)有的二進(jìn)制擴(kuò)展歐幾里得算法,不需要再對運(yùn)算結(jié)果進(jìn)行權(quán)重因子的消除操作,并且可以不限定模必須為奇數(shù),可以實現(xiàn)模為任意非零整數(shù)的模逆運(yùn)算,并提高模逆運(yùn)算的計算效率,降低硬件功耗。
具體實施方式
現(xiàn)有的二進(jìn)制擴(kuò)展歐幾里得算法將除法轉(zhuǎn)換成移位和加減法,但是,在移位的過程中,操作數(shù)的權(quán)值發(fā)生了改變,最終運(yùn)算結(jié)果中包含有2n(n為操作數(shù)的位長)項權(quán)重因子,去除權(quán)重因子需進(jìn)行多次除2的操作,因此,要求模必須是奇數(shù)。但是,現(xiàn)有的二進(jìn)制擴(kuò)展歐幾里得算法方法在進(jìn)行模逆運(yùn)算時仍存在一定的限制,無法針對任意非零整數(shù)求模,并且計算過程較為復(fù)雜。
本發(fā)明提出了一種模逆運(yùn)算,
已知正整數(shù)u、m,求u-1modm,其特征在于,包括步驟:
s1、如果m為奇數(shù),則n1=u,n2=m,標(biāo)志位flag=0;否則m不為奇數(shù):如果u為偶數(shù),則u-1不存在,運(yùn)算結(jié)束,如果u不為偶數(shù),則n1=m,n2=u,標(biāo)志位flag=1;
s2、執(zhí)行算法:
s21、n1=m,n2=u,s=0,t=1,k=0;
s22、while(n2>0)
如果n1為偶數(shù),則n1=n1/2,t=2t,k=k+1;
否則如果n2為偶數(shù),則n2=n2/2,s=2s,k=k+1;
否則如果n1>n2,那么n1=(n1-n2)/2,s=s+t,t=2t,k=k+1;
否則n2=(n2-n1)/2,t=s+t,s=2s,k=k+1;
s23、如果n1≠1,則u-1不存在,運(yùn)算結(jié)束;
否則m=-s(modm)
s3、如果n1-1不存在,則運(yùn)算結(jié)束;
s4、如果標(biāo)志位flag=0,則u-1=n1-1;否則標(biāo)志位flag=1,
相應(yīng)地,本發(fā)明還公開了一種模逆運(yùn)算器,包括加法器、減法器、存儲器、控制器;
所述控制器用于判斷且設(shè)置數(shù)值,
s1、如果m為奇數(shù),則n1=u,n2=m,標(biāo)志位flag=0;否則m不為奇數(shù):如果u為偶數(shù),則u-1不存在,運(yùn)算結(jié)束,如果u不為偶數(shù),則n1=m,n2=u,標(biāo)志位flag=1;
s21、n1=m,n2=u,s=0,t=1,k=0;
s22、while(n2>0)
如果n1為偶數(shù),則n1=n1/2,t=2t,k=k+1;
否則如果n2為偶數(shù),則n2=n2/2,s=2s,k=k+1;
否則如果n1>n2,那么n1=(n1-n2)/2,s=s+t,t=2t,k=k+1;
否則n2=(n2-n1)/2,t=s+t,s=2s,k=k+1;
s23、如果n1≠1,則u-1不存在,運(yùn)算結(jié)束;
否則m=-s(modm)
s3、如果n1-1不存在,則運(yùn)算結(jié)束;
s4、如果標(biāo)志位flag=0,則u-1=n1-1;否則標(biāo)志位flag=1,
所述減法器執(zhí)行減法操作;所述加法器執(zhí)行加分操作;所述存儲器用于存儲參與計算的數(shù)據(jù)、標(biāo)志位flag的值,計算結(jié)果值。
通過利用標(biāo)志位區(qū)分不同的情況,從而更準(zhǔn)確的計算出數(shù)據(jù)結(jié)果。
本發(fā)明通過以上實施例的設(shè)計,可以做到該算法只需要增加一個標(biāo)志位,和最多一次乘法、兩次減法運(yùn)算,能大大提高運(yùn)算速度,在硬件實現(xiàn)上,具有通用性、高效性特點(diǎn);相比于現(xiàn)有的二進(jìn)制擴(kuò)展歐幾里得算法,不需要再對運(yùn)算結(jié)果進(jìn)行權(quán)重因子的消除操作,并且可以不限定模必須為奇數(shù),可以實現(xiàn)模為任意非零整數(shù)的模逆運(yùn)算,并提高模逆運(yùn)算的計算效率,降低硬件功耗。
本發(fā)明是根據(jù)特定實施例進(jìn)行描述的,但本領(lǐng)域的技術(shù)人員應(yīng)明白在不脫離本發(fā)明范圍時,可進(jìn)行各種變化和等同替換。此外,為適應(yīng)本發(fā)明技術(shù)的特定場合,可對本發(fā)明進(jìn)行諸多修改而不脫離其保護(hù)范圍。因此,本發(fā)明并不限于在此公開的特定實施例,而包括所有落入到權(quán)利要求保護(hù)范圍的實施例。