国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      操作數(shù)長度可伸縮的蒙哥馬利模乘算法的制作方法

      文檔序號:6522750閱讀:304來源:國知局
      專利名稱:操作數(shù)長度可伸縮的蒙哥馬利模乘算法的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及一種信息安全領(lǐng)域用的模乘算法,特別是可直接應(yīng)用于基于有限域的公鑰制密碼算法。
      背景技術(shù)
      隨著通信技術(shù)的不斷發(fā)展,特別是因特網(wǎng)、無線通訊技術(shù)的迅速發(fā)展,使人類社會生活、日常生活電子化程度不斷加深,給人們提供極大便利的同時,也給網(wǎng)絡(luò)黑客提供了有利條件。因此,信息安全技術(shù)作為信息社會的保障,越來越得到人們重視,廣泛應(yīng)用于電子政務(wù)、電子商務(wù)等領(lǐng)域。
      這樣,作為信息安全技術(shù)核心的密碼學(xué),也得到越來越多的研究。目前,密碼算法分為公鑰制密碼算法(比如RSA、ECC)和對稱密鑰算法(比如DES、AES),兩者有著不同的應(yīng)用,都是不可或缺的。數(shù)學(xué)上的密碼算法需要經(jīng)過計算機(jī)軟件或者硬件的實現(xiàn),只有依靠計算機(jī)軟件程序或者硬件產(chǎn)品才能應(yīng)用到各種安全協(xié)議中去。
      近些年來,RSA、ECC算法的硬件實現(xiàn)已成為一個熱門的研究領(lǐng)域,眾多的國際、國內(nèi)學(xué)者從事這方面的研究,發(fā)表了大量的研究成果。人們通過分析RSA、ECC算法發(fā)現(xiàn)模冪或者點乘都是基于模乘來實現(xiàn)的,所以模乘乘法器成為整個電路的核心模塊,其性能是整個算法實現(xiàn)效率的關(guān)鍵,影響著整個電路的速度、面積、功耗等性能指標(biāo)。
      模乘器與普通的整數(shù)乘法器不同,其運算是定義在有限域上的。設(shè)R為A、B對N模乘的結(jié)果,即R=A×B(mod N),在計算R時,如果先用普通的乘法計算出A×B,再除以N得到余數(shù)的話,計算的效率就變得很低,因為除法用硬件實現(xiàn)起來是很復(fù)雜的。參考文獻(xiàn)P.L.ontgomery.Modular multiplication withouttrial divisions.Mathematics of Computations,vol.44,no.170,pp.519-521,1985.中所給出的蒙哥馬利(Montgomery)模乘算法是現(xiàn)在模乘乘法器設(shè)計中采用的最普遍也是最簡單而高效的算法,它避開了除法運算,只需用到加法和移位,非常適合硬件實現(xiàn)。
      Montgomery模乘是一種利用整數(shù)余數(shù)系統(tǒng)RNS(Residue NumberSystem)來求模乘的方法,通過操作數(shù)到RNS的變換,在RNS除法求模轉(zhuǎn)化為每次掃描乘數(shù)后的移位操作,最后再從RNS變換回整數(shù),實現(xiàn)模乘運算。下面對上述的Montgomery模乘算法進(jìn)行介紹。
      Montgomery模乘MM(A,B,N)=A×B×R-1(mod N),式中,N為n位,A、B也是n位且小于N,R=2n,其算法如Montgomery模乘算法1所示輸入A,B,N輸出SMM AlgorithmS-1=0;for i=0 to n-1qi=(Si-1+Ai×B)Mod 2Si=(Si-1+qi×N+ai×b)/2end forreturn Sn-1算法中qi=(Si-1+AiB)Mod 2,由Si-1、Ai和B三者的最低位決定,它的引入是為了使得累加結(jié)果的最低位為0,從而在進(jìn)行(Si-1+qi×N+ai×b)/2,也就是要右移一位的時候不會帶來誤差。從上面的算法可以看出只需要做加法和移位運算就可以得到模乘結(jié)果,非常適合硬件實現(xiàn)。
      眾所周知,公鑰制密碼算法(如RSA、ECC)所能提供的安全強(qiáng)度是由它們的密鑰長度決定的,隨著攻擊技術(shù)的不斷進(jìn)步、處理器計算能力的不斷增強(qiáng)以及分布式計算技術(shù)的發(fā)展,破解密鑰所需要的時間不斷縮小。
      表1.安全的公鑰算法密鑰長度

      如表1所示,安全的公鑰算法秘鑰長度與日俱增,因此,為了保護(hù)系統(tǒng)不受到攻擊,必須選用更長密碼算法密鑰,這樣就需要重新設(shè)計原有的芯片。

      發(fā)明內(nèi)容
      綜上所述,如何設(shè)計n位Montgomery乘法器,使之能用于n整數(shù)倍長度操作數(shù)的模乘運算(比如用512位的模乘乘法器來做1024、2048甚至更高位數(shù)的模乘),以在同一塊信息安全芯片可以運行不同安全強(qiáng)度等級要求的RSA、ECC等公鑰制密碼算法,乃是本發(fā)明所要解決的技術(shù)問題。因此,本發(fā)明的目的在于提供一種操作數(shù)長度可伸縮的蒙哥馬利模乘算法,以便實施可在同一塊信息安全芯片運行不同安全強(qiáng)度等級要求的公鑰制密碼算法。
      這樣,根據(jù)本發(fā)明所提出的操作數(shù)長度可伸縮的Montgomery乘法算法,不需要重新設(shè)計硬件加密電路,就可以支持更高長度的密鑰,以滿足不同的安全強(qiáng)度需要,提高系統(tǒng)的安全強(qiáng)度。
      本發(fā)明的技術(shù)構(gòu)思如下對傳統(tǒng)Montgomery乘法進(jìn)行改進(jìn),使得通過多次調(diào)用它就可以實現(xiàn)更長操作數(shù)的模乘,從而達(dá)到支持不同密鑰長度的RSA、ECC等公鑰制密碼算法的目的。
      本發(fā)明的技術(shù)方案如下根據(jù)本發(fā)明的一種操作數(shù)長度可伸縮的蒙哥馬利模乘算法,對傳統(tǒng)的MM(A,B,N)=A×B×R-1(mod N)產(chǎn)生變形,把Montgomery模乘運算記為-MMmn(A,B,N,Sn-1,Qn-1,pass),其中m為操作數(shù)位數(shù),n表示第n次模乘,Sn-1為模乘初始值,Q為n位二進(jìn)制序列,由算法中的qi=(Si-1+AiB)Mod 2(0≤i≤n-1)組成,pass信號用于選擇此次模乘過程中,qi由掃描外部輸入Q產(chǎn)生,還是通過計算qi=(Si-1+Ai×B)Mod 2得到(若pass=1,在模乘過程中,每掃描一位B,做完一次加法后,Q寄存器也右移一位)。
      進(jìn)一步改進(jìn)的Montgomery模乘算法,分pass為0和1兩種情況a.算法2.當(dāng)模乘過程選擇信號pass=0時的Montgomery模乘算法輸入A,B,N輸出S,QMM Algorithm
      S-1=0;for i=0 to n-1qi=(Si-1+Ai×B)Mod 2Si=(Si-1+qi×N+ai×b)/2end forreturn Sn-1b.算法3.當(dāng)模乘過程選擇信號pass=1時的Montgomery模乘算法輸入A,B,N,Q輸出SMM AlgorithmS-1=0;for i=0 to n-1Si=(Si-1+qi×N+ai×b)/2end forreturn Sn-1根據(jù)本發(fā)明的一種使用具有n位Montgomery乘法器來計算更高位n*m位Montgomery模乘的通用算法Scalable-MM,其算法如算法4.Scalable-MM輸入A,B,N,Q輸出S=MMn·m(A,B,N)Scalable-MM算法S=0;for i=0 to m-1Si,0=MMn(A0,B0,N0,0,Q=0,pass=0)for j=1 to m-1Si,j=MMn(A0,Bj,Nj,0,Q,pass=1)SI,j=ModAdd(Si,j+Si-1,j+1)
      Si=Si>>nEnd forEnd forreturn Sm-1本發(fā)明的有益效果這種操作數(shù)長度可伸縮的Motgomery模乘技術(shù),帶來的最大效益就是在同一個密碼芯片上可以完成不同強(qiáng)度的密碼算法運算,而不需要設(shè)計多個固定操作數(shù)長度的密碼芯片,大大節(jié)約了成本。另一個優(yōu)點就是,可以把這種技術(shù)用在對芯片面積敏感而又要求提供較高安全強(qiáng)度的場合,比如智能卡,設(shè)計一個位數(shù)較低的芯片,其面積就會很小(比如采用512位乘法器設(shè)計的芯片其面積大約是采用1024位乘法器所設(shè)計的芯片面積的1/4),芯片制造的成本就降低了大約1/4,同時采用我們提出的伸縮操作數(shù)長度技術(shù),又可以執(zhí)行高位數(shù)的密碼算法提供較高的安全強(qiáng)度。


      附圖是本發(fā)明的一個實施例的蒙哥馬利模乘算法流程圖。
      具體實施例方式
      在介紹“發(fā)明內(nèi)容”時給出的Scalable-MM算法已經(jīng)過本發(fā)明人所設(shè)計的軟件驗證通過,在芯片設(shè)計中已經(jīng)采用,并且經(jīng)過流片,芯片測試功能正確。
      實施例1對n位Montgomery乘法器運行2n位模乘的算法進(jìn)行驗證,以用512位的Montgomery乘法器計算1024位的乘法器為例,證明例1給出的流程。
      數(shù)學(xué)推導(dǎo)MM1024(A,B,N)
      =A×B×2-1024(mod N)=(A12512+A0)×(B12512+B0)×2-1024(mod N)={[(A1×2512+A0)×B0×2-512+(A1×2512+A0)×B1×2512×2-512]×2-512}(mod N)={[(A0B0×2-512)(mod N)+2512×A1B0×2-512+(A12512+A0)B1×2512×2-512]×2-512}(mod N)={[(A0×B0+Q0N)×2-512+2512×A1×B0×2-512+(A1×2512+A0)×B1]×2-521}(mod N)={[(A0B0+Q0N0)×2-512+2512Q0N12-512+2512A1B02-512+(A1×2512+A0)×B1]×2-512}(mod N) A0)B1]&times;2-512}(modN)]]>={[2512×(S0+Q0N1+A1×B0)2-512+(A1×2512+A0)×B1]×2-512}(mod N) ={[2512×S1+(A1×2512+A0)×B1]×2-512}(mod N)={[2512×S1,1+S1,0+(A1×2512+A0)×B1]×2-512}(mod N)=[2512×S1,1×2-512+(S1,0+A0×B1)×2-512(mod N)+2512A1×B1×2-512](mod N)=[2512×S1,1×2-512+(S1,0+A0×B1+Q1N)×2-512+2512×A1×B1×2-512](mod N)
      =[2512×S1,1×2-512+(S1,0+A0B1+Q1N0)×2-512+2512×Q1N12-512+2512A1B1×2-512](mod N) =2512×[S1,1+S2+Q1N1+A1×B1]×2-512(mod N) =2512×[S3+Q1N1+A1×B1]×2-512(mod N) =S4實施例2假設(shè)原來的Montgomery乘法器是1024位的,它具備計算本發(fā)明給出的的改進(jìn)的Montgomery模乘的功能,通過提出的方法就可以用它來計算2048位的Montgomery模乘MM2048(A,B,N),運算流程如下運算流程Step1:S0=MM01024(A0,B0,N0,0,Q=0,pass=0);]]>Step2:S1=MM11024(A0,B1,N1,S0,Q0,pass=1);]]>Step3:S2=MM21024(A1,B0,N0,S1,0,0,pass=0);]]>Step4S3=ModAdd(S1,1,S2);Step5:S4=MM31024(A1,B1,N1,S3,Q1,pass=1);]]>ResultS4=MM2048(A,B,N)*以上公式中,Sn,0,Sn,1分別表示Sn的低、高1024位。
      從上面的流程可以看到,計算2048位的Motgomery模乘,只需要用到4次1024位的模乘,和一次模加運算,模加運算的復(fù)雜度與模乘相比幾乎可以忽略,也就是說,計算2048位Montgomery模乘的時間約是計算1024位的4倍。
      實施例3根據(jù)圖1說明使用512位蒙哥馬利乘法器計算1024位的蒙哥馬利模乘10的步驟步驟100模乘初始化s-1=0,B=B0,A=A0,N=N0,Q-1=0,pass=0,步驟101運行第一次512位模乘得到1024位的S0和512位的Q0,步驟102丟棄S0的低512位,使S0全為0,步驟103模乘初始化s-1=S0,B=B1,A=A0,N=N1,Q-1=Q0,pass=1,步驟104運行第二次512位模乘得到1024位的s1,步驟105保存s1的高512位,即s1,1存入存儲器,步驟106模乘初始化s-1=s1,0,B=B0,A=A1,N=N0,Q=0,pass=0,步驟107運行第三次512位模乘得到1024位的S2和512位的Q1作為s2,1送加法器,步驟108丟棄s2的低512位,使s2全為0,步驟109從存儲器讀取步驟105存入存儲器之s1,1內(nèi)容送加法器,步驟110由加法器把步驟107送入加法器的s2,1和步驟109送入的s1,1相加得到S3,步驟111模乘初始化s-1=s3,B=B1,A=A1,N=N1,pass=1,步驟112運行第四次512位模乘得到1024位的s4,步驟113輸出s4作為最終結(jié)果。
      權(quán)利要求
      1.一種操作數(shù)長度可伸縮的蒙哥馬利模乘算法,其特征在于,把蒙哥馬利模乘MM(A,B,N)=A×B×R-1(mod N)的模乘運算記為MMnm(A,B,N,Sn-1,Qn-1,Pass),其中m為操作位數(shù),n表示第n次模乘,Sn-1為模乘初始值,Q為n位二進(jìn)制序列,由算法中的qi=(Si-1+AjB)Mod 2(0≤i≤n-1)組成,pass信號用于選擇此次模乘過程中,qi由掃描外部輸入Q產(chǎn)生還是通過計算qi=(Si-1+AjB)Mod 2得到若pass=1,則在模乘過程中,每掃描一位B,做完一次加法后,Q寄存器也右移一位。
      2.根據(jù)權(quán)利要求1所述的操作數(shù)長度可伸縮的蒙哥馬利模乘算法,其特征在于,模乘過程選擇信號pass=0時,蒙哥馬利模乘算法為輸入A,B,N輸出SMM AlgorithmS-1=0;for i=0 to n-1qi=(Si-1+Ai×B)Mod 2Si=(Si-1+qi×N+ai×b)/2end forreturn Sn-1。
      3.根據(jù)權(quán)利要求1所述的操作長度可伸縮的蒙哥馬利模乘算法,其特征在于,模乘過程選擇信號pass=1時,蒙哥馬利模乘算法為輸入A,B,N,Q輸出SMM AlgorithmS-1=0;for i=0 to n-1Si=(Si-1+qi×N+ai×b)/2end forreturn Sn-1。
      4.一種使用具有操作數(shù)長度可伸縮的蒙哥馬利模乘算法器來運算n*m位蒙哥馬利模乘的算法,其特征在于,該模乘算法為輸入A,B,N,Q輸出S=MMn·m(A,B,N)Scalable-MM算法S=0;for i=0 to m-1Si,0=MMn(A0,B0,N0,0,Q=0,pass=0)for j=1 to m-1Si,j=MMn(A0,Bj,Nj,0,Q,pass=1)SI,j=ModAdd(Si,j+Si-1,j+1)Si=Si>>nEnd forEnd forreturn Sm-1。
      全文摘要
      一種操作數(shù)長度可伸縮的蒙哥馬利模乘算法,可用于信息安全領(lǐng)域的公鑰制密碼算法的模乘器中,其特點是,由低位數(shù)的乘法可實現(xiàn)高位數(shù)的乘法運算,并且該技術(shù)便于硬件實現(xiàn)。本發(fā)明的優(yōu)點是可在同一塊密碼芯片上實施不同強(qiáng)度的密碼算法運算,這將大大降低密碼芯片的成本。另一個優(yōu)點是可設(shè)計一個位數(shù)較低的模乘器來運行較高安全強(qiáng)度的密碼運算,可解決安全強(qiáng)度與日俱增的要求所帶來的升級改造問題。
      文檔編號G06F7/60GK1694061SQ20051002591
      公開日2005年11月9日 申請日期2005年5月18日 優(yōu)先權(quán)日2005年5月18日
      發(fā)明者曾曉洋, 吳永一, 陳超, 韓軍, 章倩苓 申請人:上海迪申電子科技有限責(zé)任公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1