專利名稱:增強(qiáng)的自然蒙哥馬利指數(shù)掩蔽的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及密碼學(xué)領(lǐng)域,具體涉及目的是對(duì)于物理攻擊安全的密碼算法和設(shè)備,例如使用公鑰密碼系統(tǒng)的智能卡。
背景技術(shù):
在CRC出版社1995年出版的Douglas Stinson的《Cryptography,Theory and Practice》(以下稱為Stinson)中描述了密碼掩蔽方法。Shamir的5,991,415號(hào)美國專利(以下稱為Shamir)討論了非侵入式攻擊技術(shù)和秘密模數(shù)的掩蔽技術(shù)。Kocher等的6,298,442號(hào)美國專利(以下稱為Kocher)和Joye等的WO 03014916號(hào)PCT出版物(以下稱為Joye)也公開了掩蔽方法。
最初在《Mathematics of Computation》44(1985)比得·蒙哥馬利(Peter Montgomery)的“Modular Multiplication Without TrialDivision”一文中描述了蒙哥馬利算法。6,185,596號(hào)美國專利(以下稱為596)公開了一種蒙哥馬利算法和裝置。
將本說明書所提及和引用的所有出版物的公開內(nèi)容引入作為參考。
發(fā)明內(nèi)容
許多公鑰密碼系統(tǒng)都利用模指數(shù)運(yùn)算(modulo exponentiation),這種密碼系統(tǒng)中的一項(xiàng)共同操作是計(jì)算信息的一個(gè)冪。例如,加密可能涉及計(jì)算明文信息的公開指數(shù)次冪,解密可能涉及計(jì)算密文信息的私有(秘密)指數(shù)次冪?!靶畔ⅰ币辉~在這里指密碼算法的任何輸入,這些密碼算法的目的包括但不限于加密、解密、數(shù)字簽名、驗(yàn)證和鑒別。這里的“私有”和“秘密”指的是和公鑰密碼系統(tǒng)的私有密鑰相關(guān)的信息。
一個(gè)眾所周知的指數(shù)運(yùn)算方法涉及用對(duì)應(yīng)于指數(shù)中多個(gè)“1”那些比特的選擇性乘法運(yùn)算反復(fù)進(jìn)行平方運(yùn)算。使用這種方法或類似方法進(jìn)行指數(shù)運(yùn)算的設(shè)備可能不安全,這是因?yàn)樵谥笖?shù)運(yùn)算過程中,能夠從外部監(jiān)視這一設(shè)備(非侵入式),用各種物理手段,例如功耗監(jiān)視,來讀取秘密指數(shù)。在指數(shù)運(yùn)算期間進(jìn)行乘法運(yùn)算時(shí),把信息選為某個(gè)特定值會(huì)例如迫使設(shè)備消耗可以檢測(cè)其差別的功率,這種可檢測(cè)的差別會(huì)暴露秘密指數(shù)中“1”那些比特的位置(“選定信息攻擊”)。有許多眾所周知的功率分析技術(shù)能夠被用來從密碼設(shè)備提取密鑰。因此,設(shè)備易于受到建立在功率分析基礎(chǔ)之上的選定信息攻擊是一個(gè)安全危險(xiǎn)。除了功率分析以外,還有其它非侵入式的方法能夠攻擊希望安全的設(shè)備,包括檢測(cè)從設(shè)備發(fā)出的輻射。這些方法可以依賴于能夠從外部檢測(cè)的可測(cè)量的,會(huì)泄露能夠從中推測(cè)出密鑰的信息的任意物理現(xiàn)象。
已經(jīng)將各種技術(shù)用于偽裝或模糊這種設(shè)備的內(nèi)部操作。一種眾所周知的技術(shù)是進(jìn)行啞操作,這種操作(例如在功耗方面或者輻射方面)會(huì)產(chǎn)生相似的物理效果,但其結(jié)果只是被丟棄,不影響輸出。然而,盡管使用了啞操作,通過分析這種選定信息攻擊,從計(jì)算的角度仍然能夠識(shí)別插入的啞操作,并由此確定密鑰信息。
為了挫敗選定信息攻擊,設(shè)備最好不直接對(duì)信息本身進(jìn)行重要計(jì)算,而是針對(duì)從這一信息得到的中間值進(jìn)行運(yùn)算,優(yōu)選通過也接收隨機(jī)輸入的信息的掩蔽函數(shù)。當(dāng)然,這樣做要求能夠從結(jié)果中去掉這一掩蔽函數(shù)的影響。
上面引用的ElGamal系統(tǒng)可以按照以下方式加以采用給定a,只有加密信息的接收方知道的密鑰;x,系統(tǒng)的發(fā)送方要加密并且要發(fā)送的信息;以及公知元素p,模數(shù);a,指數(shù)函數(shù)的底;以及接收方的公鑰β=αamodp。
發(fā)送方秘密地準(zhǔn)備并發(fā)送y1和y2,其中y1=αkmodp;其中k為隨機(jī)掩蔽指數(shù),由發(fā)送方產(chǎn)生。
y2=xβkmodp=xαak,信息x乘以接收方的公鑰。
隨后,接收方利用發(fā)送的信息y1和y2進(jìn)行如下運(yùn)算
M1=y1a=αakmodp]]>;計(jì)算y1的a(接收方密鑰)次冪;M2=M1-1modp=(αak)-1modp=(αak)p-2modp]]>;接收方對(duì)M1進(jìn)行逆運(yùn)算;M3=y(tǒng)2M2=x(αak)(αak)-1mod p=x,恢復(fù)出來的被掩蔽信息。
請(qǐng)注意,接收方不知道秘密隨機(jī)掩碼。發(fā)送方和接收方耗費(fèi)的資源包括兩次指數(shù)運(yùn)算,兩種情況下它們典型地都是長(zhǎng)運(yùn)算。
乘法逆元(inverse)的冪也是乘法逆元。例如5*9 mod 11≡1;因此,5和9是關(guān)于模11的乘法逆元。
(57mod 11)≡3;并且((5-1)7mod 11)≡(97mod 11)≡4。
(3*4)mod 11≡1;因此,3和4也是關(guān)于模11的乘法逆元。
通過對(duì)信息的函數(shù)而不是信息本身有效地進(jìn)行計(jì)算,也可以將常用來提高計(jì)算效率的某些技術(shù)用來減小安全危險(xiǎn)。尤其是在本領(lǐng)域眾所周知,通過消除為了獲得模余數(shù)而在乘法運(yùn)算后進(jìn)行除法運(yùn)算的必要性,蒙哥馬利算法的應(yīng)用能夠提高乘法運(yùn)算速度。為了獲得可靠的安全性,需要采用另一種掩蔽技術(shù),建立在蒙哥馬利算法基礎(chǔ)之上,應(yīng)用于信息本身,并且其唯一目的是阻止選定信息攻擊。
掩蔽技術(shù)可以包括Shamir的方法,這一方法將質(zhì)數(shù)模轉(zhuǎn)化為合數(shù)模;從而改變機(jī)器操作數(shù)的大小和秘密指數(shù)。然而,Shamir的方法卻假定用戶已經(jīng)知道加密模數(shù)的質(zhì)因數(shù),而實(shí)際情況并非如此。此外,改變操作數(shù)的大小會(huì)嚴(yán)重影響大多數(shù)硬件設(shè)備的性能。防止進(jìn)攻的一些其它方法可能不十分有效。例如,Joye證明了Kocher文中建議的采用全等指數(shù)(congruent exponent)的無效性。
本發(fā)明的一個(gè)優(yōu)選實(shí)施例旨在提供方法和裝置用于增強(qiáng)蒙哥馬利表示的自然掩蔽技術(shù),通過一種方式對(duì)信息進(jìn)一步掩蔽,使指數(shù)表示的信息不必進(jìn)行逆運(yùn)算,也不必知道加密模數(shù)的質(zhì)因數(shù)就能夠容易地得到恢復(fù)。
本發(fā)明的一個(gè)優(yōu)選實(shí)施例提供了一種新方法和裝置,用于隨機(jī)掩蔽輸入安全設(shè)備的信息,以阻擋試圖泄露密鑰信息如秘密指數(shù)的選定信息攻擊。本發(fā)明的一個(gè)優(yōu)選實(shí)施例的目的是提供這種掩蔽,而不降低性能,并利用最少的資源,尤其是不必產(chǎn)生模乘逆元。本發(fā)明的一個(gè)優(yōu)選實(shí)施例創(chuàng)新地利用蒙哥馬利算法的自然特性來維持掩蔽的恢復(fù),而不必明確地產(chǎn)生乘法逆元。具體而言,存在自然蒙哥馬利逆元2-n,其中n是模數(shù)的比特?cái)?shù),根據(jù)本發(fā)明的優(yōu)選實(shí)施例,可以由該逆元構(gòu)建新的掩碼。
采用本發(fā)明的優(yōu)選實(shí)施例中的方法和裝置,并不排除使用對(duì)于保護(hù)免受攻擊有用,通常用于增強(qiáng)這些方法的其它保護(hù)性方法和裝置。
本發(fā)明的一個(gè)優(yōu)選實(shí)施例尤其有利于掩蔽Diffie-Hellman密鑰交換指數(shù)運(yùn)算、隨機(jī)數(shù)的DSS乘法逆元和利用用戶密鑰基于合數(shù)模數(shù)的RSA類型的解密。
因此,根據(jù)本發(fā)明的一個(gè)優(yōu)選實(shí)施例,提供一種方法,用于對(duì)輸入設(shè)備的密文信息進(jìn)行掩蔽,該設(shè)備用于計(jì)算這些信息的秘密指數(shù)d次冪模二進(jìn)制模數(shù)N,這個(gè)二進(jìn)制模數(shù)N有n個(gè)比特,該方法包括,利用自然蒙哥馬利逆元2-n構(gòu)造掩碼。此外,根據(jù)本發(fā)明的一個(gè)優(yōu)選實(shí)施例,還提供裝置用于對(duì)輸入設(shè)備的密文信息進(jìn)行掩蔽,該設(shè)備用于計(jì)算這些密文信息的指數(shù)d次冪模二進(jìn)制模數(shù)N,這個(gè)二進(jìn)制模數(shù)N有n個(gè)比特,該裝置包括掩碼發(fā)生器,用于從自然蒙哥馬利逆元2-n構(gòu)造掩碼。
此外,根據(jù)本發(fā)明的一個(gè)優(yōu)選實(shí)施例,提供一種方法,用于對(duì)輸入設(shè)備的密文信息進(jìn)行掩蔽,該設(shè)備用于計(jì)算這些信息的秘密指數(shù)d次冪模二進(jìn)制模數(shù)N,這個(gè)二進(jìn)制模數(shù)N有n個(gè)比特,該方法包括(a)產(chǎn)生隨機(jī)整數(shù)x;(b)計(jì)算出等于2nxmodN這個(gè)數(shù)的掩碼;(c)計(jì)算出等于2-nxdmodN這個(gè)數(shù)的信息恢復(fù)碼;(d)用這個(gè)掩碼乘以所述密文信息形成一個(gè)乘積;(e)計(jì)算這個(gè)乘積的秘密指數(shù)d次冪模二進(jìn)制模數(shù)N,形成掩蔽的指數(shù)表示的信息;以及(f)用這個(gè)信息恢復(fù)碼乘以這個(gè)掩蔽的指數(shù)表示的信息,形成恢復(fù)后的明文信息。
此外,根據(jù)本發(fā)明的一個(gè)優(yōu)選實(shí)施例,還提供裝置,用于對(duì)輸入設(shè)備的密文信息進(jìn)行掩蔽,該設(shè)備用于計(jì)算這些密文信息的指數(shù)d次冪模二進(jìn)制模數(shù)N,這個(gè)二進(jìn)制模數(shù)N有n個(gè)比特,該裝置包括(a)模處理器,用于計(jì)算兩個(gè)數(shù)的乘積模二進(jìn)制模數(shù)N,以及計(jì)算一個(gè)數(shù)的d次冪模二進(jìn)制模數(shù)N;(b)隨機(jī)整數(shù)發(fā)生器,用于產(chǎn)生隨機(jī)整數(shù)x;(c)掩碼發(fā)生器,用于計(jì)算等于2nxmodN這個(gè)數(shù)的掩碼,并且將這個(gè)掩碼傳送給所述模處理器,以便所述模處理器能夠計(jì)算密文信息與掩碼的乘積模二進(jìn)制模數(shù)N,并且計(jì)算該乘積的指數(shù)d次冪模二進(jìn)制模數(shù)N,以計(jì)算掩蔽的信息;以及(d)信息恢復(fù)碼發(fā)生器,用于計(jì)算等于2-nxdmodN這個(gè)數(shù)的信息恢復(fù)碼,并且將這個(gè)信息恢復(fù)碼發(fā)送給所述模處理器,從而使所述模處理器能夠計(jì)算掩蔽的信息和信息恢復(fù)碼的乘積以計(jì)算明文信息。
附圖簡(jiǎn)述下面將參考附圖僅僅以實(shí)例的形式描述本發(fā)明,其中
圖1是現(xiàn)有技術(shù)蒙哥馬利模運(yùn)算處理器的簡(jiǎn)化框圖。
圖2是根據(jù)本發(fā)明的一個(gè)優(yōu)選實(shí)施例準(zhǔn)備蒙哥馬利掩碼和信息恢復(fù)碼的流程圖。
圖3是根據(jù)本發(fā)明的優(yōu)選實(shí)施例,將圖2中的蒙哥馬利掩碼用于輸入信息的流程圖。
圖4是說明圖3所示方法的優(yōu)選實(shí)施流程圖,其中包括,根據(jù)本發(fā)明的優(yōu)選實(shí)施例,在輸入信息上應(yīng)用蒙哥馬利掩碼,應(yīng)用能夠在圖1或圖5所示蒙哥馬利模乘裝置上工作的蒙哥馬利函數(shù)。
圖5是根據(jù)本發(fā)明的優(yōu)選實(shí)施例,用于掩蔽和恢復(fù)信息的裝置的簡(jiǎn)化框圖。
具體實(shí)施例方式
安全性難題是生成選定信息指數(shù)運(yùn)算MidmodN,其中每個(gè)Mi都是一則信息,d是秘密指數(shù),N是n比特的模數(shù),而不會(huì)通過輻射、測(cè)量得到的瞬時(shí)電流消耗或其它非侵入式物理手段,全部或部分暴露(泄露)d或N。顯然,這些數(shù)是用二進(jìn)制方式表示的。
這一設(shè)備包括N和d。通常,攻擊方知道N,并且希望知道秘密d中0和1的序列。在選定信息攻擊中,攻擊方通常嘗試一個(gè)或多個(gè)Mi,以建立可檢測(cè)的指數(shù)序列。
圖1的簡(jiǎn)化框圖示出了現(xiàn)有技術(shù)的蒙哥馬利模運(yùn)算處理器。處理器的核心元件是多路復(fù)用器140,它接收來自發(fā)生器150的輸入,將輸入的加數(shù)B和從下面選出的一個(gè)加數(shù)進(jìn)行相加只包括A的加數(shù)110;只包括N的加數(shù)120;包括A+N這個(gè)和的加數(shù)130。請(qǐng)注意,因?yàn)檫\(yùn)算總是模N運(yùn)算,因此給任何量加上N不會(huì)改變結(jié)果的相等性。然而,因?yàn)?對(duì)實(shí)際應(yīng)用而言)N通常是奇數(shù),N的最低有效位通常都被置位。蒙哥馬利算法的一個(gè)獨(dú)特特征是以這樣一種方式進(jìn)行運(yùn)算,使得結(jié)果是一個(gè)要乘以2n的數(shù)。這么做消除了對(duì)結(jié)果進(jìn)行除法運(yùn)算以求模減的需要。在這一運(yùn)算的每一部分,檢查輸入加數(shù)B和A,確定其和的最低有效位。如果A為偶數(shù)(最低有效位為0),那么A+N是奇數(shù)(最低有效位是1),反之亦然。因此,可以將多路復(fù)用器140設(shè)置成選擇使A+B這個(gè)和在發(fā)送給進(jìn)位存儲(chǔ)加法器160時(shí)為偶數(shù)(最低有效位為0)所需要的任何輸入。
通過平衡統(tǒng)計(jì)從而使攻擊方不能區(qū)分乘法運(yùn)算和平方運(yùn)算,或者事實(shí)上不能區(qū)分用信息的不同冪相乘,將本發(fā)明的優(yōu)選實(shí)施例中的這個(gè)掩碼配置成用來模糊和隱藏在乘法和平方處理期間從外部能夠看見的物理效果,例如輻射和電流消耗。
基本蒙哥馬利模乘函數(shù)包括如下內(nèi)容H=22nmodN(1)是蒙哥馬利恢復(fù)變換常數(shù)。通常,用余數(shù)除法運(yùn)算計(jì)算H。然而,對(duì)于其中蒙哥馬利乘法比除法效率更高的應(yīng)用,可以按照如下方式計(jì)算HH1=2(n+n/2)H=P(H1·H1)N=2(n+n/2)·2(n+n/2)·2-nmodN=22n可以按照以下公式通過迭代方式應(yīng)用以上技術(shù)來計(jì)算H的前項(xiàng)H1、H2……,其中x是整數(shù)Hx=2(n+n/(2^x))當(dāng)(x>0)時(shí)H(x-1)=P(Hx·Hx)N=2(n+n/x)·2(n+n/x)·2-nmodN=2(n+n/(2^(x-1))最后H=2(n+n)=22nmodNP域中的蒙哥馬利算子,
P(x·y)N=x·y·2-nmodN(2)在每個(gè)P域蒙哥馬利平方或蒙哥馬利乘處引入“蒙哥馬利寄生因子”2-nmodN。
公式(1)中的H常數(shù)用于為信息M確定容易恢復(fù)的蒙哥馬利乘數(shù)A=P(M·H)N=M·22n·2-nmodN=M·2n(3)A、H和隨后的結(jié)果為n比特操作數(shù)。
在P域進(jìn)行乘法運(yùn)算,其中兩個(gè)操作數(shù)A′=A·2nmodN和B′=B·2nmodN都是蒙哥馬利操作數(shù),事先乘以2nmodN,就象在公式(3)中一樣P(A′·B′)N=A·B·2nmodN(4)計(jì)算X,蒙哥馬利指數(shù)A=M·2n的d次冪X((A)d)N=X((M·2n)d)N=(M)d·2nmodN(5)以及從蒙哥馬利指數(shù)運(yùn)算結(jié)果的P域,到模自然整數(shù)域,恢復(fù)操作數(shù)P((M)d·2n)·(1))N=Md·2n·1·2-nmodN=MdmodN(6)下面,在利用經(jīng)典的或蒙哥馬利方法來進(jìn)行指數(shù)運(yùn)算時(shí),通常采用掩碼2nxmodN來掩蔽操作數(shù)的值。
傳統(tǒng)蒙哥馬利算法通常由選取信息M開始,并將用H=22nmodN進(jìn)行蒙哥馬利相乘,如同公式(3)中一樣。在本發(fā)明的優(yōu)選實(shí)施例中,為指數(shù)運(yùn)算準(zhǔn)備信息,并用2xnmodN對(duì)其進(jìn)行掩蔽,其中x是隨機(jī)數(shù)。與此相對(duì),現(xiàn)有技術(shù)的掩碼只是隨機(jī)數(shù)x本身。然而,如前文所指出的那樣,這意味著在指數(shù)表示的結(jié)果中出現(xiàn)因子xd,必須通過乘以逆元x-d去掉。這要求能夠計(jì)算逆元x-1。本發(fā)明的優(yōu)選實(shí)施例中的新掩碼2xnmodN則很容易去掉,通常不計(jì)算隨機(jī)數(shù)x的逆元。
在本發(fā)明的優(yōu)選實(shí)施例中,掩碼通常在安全設(shè)備的初始化中事先計(jì)算好。如果用戶策略需要,也可以在每次設(shè)備復(fù)位時(shí)恢復(fù)這一掩碼。如前文所述,采用本發(fā)明的優(yōu)選實(shí)施例不會(huì)排除或干擾其它安全方案,如啞元插入。
可以用蒙哥馬利算法簡(jiǎn)單地證明這一概念。
例如,選擇d=7,并且在隨機(jī)數(shù)x=2掩蔽的掩蔽序列中找出M7modN替換正常的蒙哥馬利算法,用掩碼2xnmodN乘以M。最終的蒙哥馬利指數(shù)被掩蔽,可以通過一個(gè)容易獲得的掩蔽逆元恢復(fù),舉例如下a)通過余數(shù)除法或者采用專有的蒙哥馬利方法,生成H2=24nmodN(在這里x=2)。
b)準(zhǔn)備將生成掩碼2xn的掩蔽信息,可以為其產(chǎn)生逆元2-ynmodN。
P(M·H2)N=M·24n·2-nmodN=M·23n=A(7)c)采用Chandah-sutra方法,對(duì)A進(jìn)行蒙哥馬利指數(shù)運(yùn)算。指數(shù)運(yùn)算的Chandah-sutra方法在Addison Wesley 1981年出版的DonaldKnuth的《The Art of Computer programming》一書的第二版第2卷的441頁(以下稱為“Knuth”)中進(jìn)行了描述P(A·A)N=P(A12)N=M·23n·M·23n·2-nmodN=M2·25nmodN---(8)]]>P(P(A12)N·A)N=P(A23)N=M2·25n·23n·2-n=M3·27n---(9)]]>P((P(A23)N)·(P(A23)N))N=P(A36)N=M3·27n·M3·27n·2-nmodN---(10)]]>P((P(A23)N)·(P(A23)N))N=M6·213nmodN---(11)]]>P((P(A36)N)·A)N=P(A47)N=M6·213n·M·23n·2-nmodN---(12)]]>P((P(A36)N)·A)N=M7·215nmodN---(13)]]>恢復(fù)掩碼的生成是建立在蒙哥馬利寄生因子2-nmodN基礎(chǔ)之上的,優(yōu)選通過單次蒙哥馬利乘法運(yùn)算實(shí)現(xiàn)P(1·1)N=2-nmodN(14)然后,通常利用一個(gè)類似的指數(shù)運(yùn)算過程,計(jì)算這個(gè)掩碼恢復(fù)值的2-14nmod N=Y(jié)次冪。
從P域的恢復(fù)以及掩碼的去除通常是在指數(shù)量乘以Y的單次蒙哥馬利乘法運(yùn)算中執(zhí)行的M7modN=P((M2·215n)·2-14n)N=M7·2n·2-nmodN(15)這表明,既便不知道e(加密指數(shù)),選定信息的解密序列通常是在不知道N的totient函數(shù)的情況下生成的。
通常,如果2xnmodN隨機(jī)掩碼中的指數(shù)乘數(shù)x大于90,攻擊方就能夠既不導(dǎo)出掩碼,又不構(gòu)造具有隨機(jī)掩碼的選定信息,來進(jìn)行選定信息攻擊。
用于具有有限蒙哥馬利能力或者具有擴(kuò)展的歐幾里得乘法逆元的設(shè)備的蒙哥馬利掩碼方法圖2是說明根據(jù)本發(fā)明的第一個(gè)實(shí)施例準(zhǔn)備蒙哥馬利掩碼和信息恢復(fù)碼的優(yōu)選步驟的流程圖。
在步驟210中,輸入秘密指數(shù)d和n比特模數(shù)N,其中d和N為整數(shù),并根據(jù)公式(1)計(jì)算H??梢酝ㄟ^單次整數(shù)減法計(jì)算H1/2=2nmod N2n-N≡2nmod N(16)下一步在步驟220中計(jì)算打H-1/2H-1/2=2-nmod N≡P(1.1)N=2-nmod N,如同前面指出的公式(14)中一樣。
在步驟230中生成秘密數(shù)x。優(yōu)選x至少為90,假定需要用工作因子290來進(jìn)行窮盡搜索以攻破密碼x。
在步驟250中計(jì)算掩碼逆元K1K1=2nxmodN=(2n)xmod N(17)在步驟260中計(jì)算信息恢復(fù)碼K2K2=2-nxdmod N=((2-n)x)dmod N(18)如果愿意,可以按照如下方式用x′對(duì)K1和K2進(jìn)行更新K1′=((K1)mod N)x′mod N(19)K2′=((K2)mod N)x′mod N(20)其中,x′通常是隨機(jī)選擇的小正整數(shù)。
圖3的流程圖示出了根據(jù)本發(fā)明的第二個(gè)實(shí)施例,將蒙哥馬利掩碼應(yīng)用于輸入信息,對(duì)密文C進(jìn)行掩蔽的抗選定信息攻擊的指數(shù)運(yùn)算的過程,其中d、N、K1和K2是能夠獲得的(例如,在存儲(chǔ)器中)在步驟310中,輸入密文C,根據(jù)C可以計(jì)算C mod N。
在步驟320中,(例如從存儲(chǔ)器中)輸入N、d、K1、K2。
在步驟330中,計(jì)算A1=C*K1mod N,通過模乘運(yùn)算獲得掩蔽的密文。
在步驟340中,計(jì)算A2=A1dmodN]]>;掩蔽的模指數(shù)=(C*K1)dmodN=M*2nxdmodN。
在步驟350中,恢復(fù)明文MM=CdmodN=A2*K2modN=((Cd)(2ndx)(2-ndx)modN。
唯一增加的資源是要存儲(chǔ)于存儲(chǔ)器的n比特常數(shù)K1和K2。
優(yōu)選裝置實(shí)施例中掩蔽的蒙哥馬利指數(shù)運(yùn)算H=22nmodN可以通過模除計(jì)算出來。
H-1/2=2-nmodN≡P(1·1)N=((1·1)2-n)modN是2nmodN的乘法逆元。
x=秘密隨機(jī)數(shù);2≤x≤96;優(yōu)選大約90≤x,假定進(jìn)行窮盡搜索以攻破秘密x,工作因子290是合適的。然后,為了預(yù)先計(jì)算K1M1=X((H)x)N=X(2n·2n)x=2xn·2nmodN,K1=P(H·M1)N=22n·2n·2nx·2n·2-nmodN=2nx·22nmodN。
預(yù)先計(jì)算K2時(shí),要注意2-n·2nmodN=1modN。
M2=X(1x)N=X((2-n·2n)x)N=2-nx·2nM3=X((M2)d)N=X((2-nx·2n)d)N=2-nxd·2nK2=P(M3·1)N=2-nxdmodN。
K1和K2通常由一個(gè)小正整數(shù)x′更新K1←K1′=((K1)modN)x′modNM4=X((M3)x′)N=X(((2-nx·2n)d)x′)N=2-nxx′d·2nK2←K2′=P(M4·1)N=2-nxx′dmodN。
圖4的流程圖示出了本發(fā)明的第三個(gè)實(shí)施例中,將蒙哥馬利掩碼用于輸入信息的過程,其中利用能夠在模乘裝置上工作的蒙哥馬利函數(shù),對(duì)選定密文進(jìn)行抗選定信息攻擊的掩蔽指數(shù)運(yùn)算,并計(jì)算CdmodN。進(jìn)行下列運(yùn)算在步驟410中,輸入或生成未掩蔽的密文信息C。在步驟420中,輸入秘密指數(shù)d、n比特模數(shù)N、掩碼K1和信息恢復(fù)碼K2,這些量是按照前面詳細(xì)描述的方式計(jì)算出來的。
在步驟430中,對(duì)密文計(jì)算蒙哥馬利掩碼A1=P(C·K1)N=(C·2nx)·2nmodN。
在步驟440中,計(jì)算蒙哥馬利掩蔽的指數(shù)
A2=P(((C·2nx)·2n)d)N=Cd·2nxd·2nmodN。
在步驟450中,從蒙哥馬利P域恢復(fù)結(jié)果CdmodN=P((A2·K2))N=P((Cd·2nxd·2n)(2-nxd))N。
出于安全考慮,K1和K2一般采用如前文詳細(xì)描述的過程進(jìn)行更新。
這種掩蔽的指數(shù)運(yùn)算避免了在每個(gè)指數(shù)運(yùn)算前生成H,以相同數(shù)目的乘法和平方運(yùn)算,通常節(jié)約4%的處理時(shí)間。
圖5是根據(jù)本發(fā)明的第四個(gè)實(shí)施例,裝置掩蔽和恢復(fù)信息的框圖,可以將其與任何合適的方法一起使用,例如圖4所示的方法。模處理器510接收模數(shù)520和指數(shù)530。隨機(jī)數(shù)發(fā)生器540給掩碼發(fā)生器550和信息恢復(fù)碼發(fā)生器560提供隨機(jī)整數(shù)。將密文信息570輸入模處理器510,模處理器510輸出明文信息580。在本發(fā)明的另一個(gè)實(shí)施例中,模處理器510用傳統(tǒng)的方式進(jìn)行模運(yùn)算。然而,在本發(fā)明的另一個(gè)實(shí)施例中,模處理器510進(jìn)行蒙哥馬利運(yùn)算。
雖然本發(fā)明是針對(duì)有限個(gè)實(shí)施例所描述的,但是應(yīng)該理解,本發(fā)明可以有許多變化、修改和其它應(yīng)用。
應(yīng)該理解,如果需要,本發(fā)明的軟件組件可以用ROM(只讀存儲(chǔ)器)的形式實(shí)現(xiàn)。通常,如果需要,軟件組件可以用傳統(tǒng)技術(shù)在硬件上實(shí)現(xiàn)。
應(yīng)該理解,為了清楚起見而在不同的實(shí)施例中描述的本發(fā)明的各種特征,也可以結(jié)合在一個(gè)實(shí)施例中。相反,為了簡(jiǎn)便起見而在一個(gè)實(shí)施例中描述的本發(fā)明的各種特征,也可以分別提供或者以任何合適的子組合的方式提供。
本領(lǐng)域的技術(shù)人員應(yīng)該理解,本發(fā)明不限于前文描述和示出的內(nèi)容。相反,本發(fā)明的范圍由下面的權(quán)利要求定義。
權(quán)利要求
1.一種方法,用于掩蔽輸入密碼設(shè)備的密文信息,該密碼設(shè)備用于計(jì)算所述信息的秘密指數(shù)d次冪模二進(jìn)制模數(shù)N,該二進(jìn)制模數(shù)N有n個(gè)比特,該方法包括使用自然蒙哥馬利逆元2-n來構(gòu)造掩碼。
2.一種方法,用于掩蔽輸入密碼設(shè)備的密文信息,該密碼設(shè)備用于計(jì)算所述信息的秘密指數(shù)d次冪模二進(jìn)制模數(shù)N,該二進(jìn)制模數(shù)N有n個(gè)比特,該方法包括生成隨機(jī)整數(shù)x;計(jì)算等于2nxmodN這個(gè)數(shù)的掩碼;以及計(jì)算等于2-nxdmodN這個(gè)數(shù)的信息恢復(fù)碼。
3.用于掩蔽輸入密碼設(shè)備的密文信息的裝置,該密碼設(shè)備用于計(jì)算所述密文信息的指數(shù)d次冪模二進(jìn)制模數(shù)N,該二進(jìn)制模數(shù)N有n個(gè)比特,該裝置包括掩碼發(fā)生器,用于從所述自然蒙哥馬利逆元2-n構(gòu)造掩碼。
4.用于掩蔽輸入密碼設(shè)備的密文信息的裝置,該密碼設(shè)備用于計(jì)算所述密文信息的指數(shù)d次冪模二進(jìn)制模數(shù)N,該二進(jìn)制模數(shù)N有n個(gè)比特,該裝置包括模處理器,用于計(jì)算兩個(gè)數(shù)的乘積模所述二進(jìn)制模數(shù)N,以及計(jì)算一個(gè)數(shù)的d次冪模所述二進(jìn)制模數(shù)N;隨機(jī)整數(shù)發(fā)生器,用于產(chǎn)生隨機(jī)整數(shù)x;掩碼發(fā)生器,用于計(jì)算等于2nxmodN這個(gè)數(shù)的掩碼,并將所述掩碼傳送給所述模處理器,從而所述模處理器計(jì)算所述密文信息和所述掩碼的乘積模所述二進(jìn)制模數(shù)N,并且計(jì)算所述乘積的所述指數(shù)d次冪模所述二進(jìn)制模數(shù)N,以計(jì)算掩蔽的信息;以及信息恢復(fù)碼發(fā)生器,用于計(jì)算等于2-nxdmodN這個(gè)數(shù)的信息恢復(fù)碼,并將所述信息恢復(fù)碼發(fā)送給所述模處理器,從而所述模處理器計(jì)算所述掩蔽的信息和所述信息恢復(fù)碼的乘積以計(jì)算出明文信息。
5.如權(quán)利要求4所述的裝置,其中所述模處理器是蒙哥馬利模處理器。
6.一種方法,用于掩蔽輸入密碼設(shè)備的密文信息,該密碼設(shè)備用于計(jì)算所述信息的秘密指數(shù)d次冪模二進(jìn)制模數(shù)N,該二進(jìn)制模數(shù)N有n個(gè)比特,該方法包括使用自然蒙哥馬利逆元2-n來構(gòu)造掩碼,將所述密文信息與該掩碼相乘,從而形成一個(gè)乘積,并利用所述乘積的一個(gè)函數(shù)恢復(fù)明文信息。
7.如權(quán)利要求2所述的方法,還包括用所述掩碼乘以所述密文信息以形成一個(gè)乘積;計(jì)算所述乘積的所述秘密指數(shù)d次冪模所述二進(jìn)制模數(shù)N,以形成掩蔽的指數(shù)表示的信息;以及將所述掩蔽的指數(shù)表示的信息乘以所述信息恢復(fù)碼以形成恢復(fù)出來的明文信息。
8.一種方法,用于恢復(fù)輸入密碼設(shè)備的密文信息,該密碼設(shè)備用于計(jì)算所述信息的秘密指數(shù)d次冪模二進(jìn)制模數(shù)N,該二進(jìn)制模數(shù)N有n個(gè)比特,該方法包括用等于2nxmodN這個(gè)數(shù)的掩碼乘以所述密文信息以形成一個(gè)乘積;計(jì)算所述乘積的所述秘密指數(shù)d次冪模所述二進(jìn)制模數(shù)N,以形成掩蔽的指數(shù)表示的信息;以及將所述掩蔽的指數(shù)表示的信息乘以所述信息恢復(fù)碼以形成恢復(fù)出來的明文信息。
全文摘要
一種方法和裝置,用于在會(huì)受到選定信息攻擊的安全密碼設(shè)備中通過指數(shù)運(yùn)算掩蔽信息,該攻擊的目的在于通過對(duì)該密碼設(shè)備進(jìn)行非侵入式的物理測(cè)試以獲取秘密指數(shù)信息。通過使用蒙哥馬利算法,將隨機(jī)乘法因子應(yīng)用到輸入信息中,能夠容易地去掉該因子而不必計(jì)算隨機(jī)因子的逆元,而在先掩蔽技術(shù)則需要計(jì)算逆元。這種掩蔽補(bǔ)充并增強(qiáng)了蒙哥馬利算法中內(nèi)在的自然掩蔽特性。本發(fā)明的方法非常理想地適用于蒙哥馬利運(yùn)算處理器,但不限于此,該方法還可以和其它安全技術(shù)結(jié)合使用。
文檔編號(hào)H04L9/00GK1985458SQ200480040385
公開日2007年6月20日 申請(qǐng)日期2004年11月16日 優(yōu)先權(quán)日2003年11月16日
發(fā)明者卡爾米·格雷塞爾, 鮑里斯·多爾古諾夫, 奧迪勒·德魯埃 申請(qǐng)人:M系統(tǒng)閃存先鋒有限公司