專利名稱:帶有通過(guò)消息加密的訪問(wèn)保護(hù)的便攜式數(shù)據(jù)存儲(chǔ)介質(zhì)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種具有一個(gè)半導(dǎo)體芯片的數(shù)據(jù)存儲(chǔ)介質(zhì),在該芯片中,對(duì)保密數(shù)據(jù)進(jìn)行存儲(chǔ)和處理。
包含芯片的數(shù)據(jù)存儲(chǔ)介質(zhì)用在大量不同的應(yīng)用中,例如,為了執(zhí)行用于商品或服務(wù)付款的金融交易,或作為用于控制訪問(wèn)檢查的認(rèn)證裝置。在所有這些應(yīng)用中,必須進(jìn)行保護(hù)以防止未經(jīng)授權(quán)的第三方訪問(wèn)的保密數(shù)據(jù)通常在數(shù)據(jù)存儲(chǔ)介質(zhì)的芯片內(nèi)進(jìn)行處理。另外由于芯片的內(nèi)部結(jié)構(gòu)面積非常小,從而訪問(wèn)這些結(jié)構(gòu)以提取在這些結(jié)構(gòu)中正被處理的數(shù)據(jù)非常困難這一事實(shí),該保護(hù)更得以保證。為了使訪問(wèn)更加困難,芯片可以嵌入在一種非常固定的粘附化合物中,對(duì)其進(jìn)行強(qiáng)迫移動(dòng)將導(dǎo)致半導(dǎo)體晶片遭到破壞,或者至少存儲(chǔ)在其中的保密數(shù)據(jù)得以刪除。在其生產(chǎn)過(guò)程中向半導(dǎo)體晶片提供不破壞半導(dǎo)體晶片就不能移動(dòng)的保護(hù)層,同樣也是可能的。
通過(guò)適當(dāng)?shù)募夹g(shù)工具(雖然無(wú)可否認(rèn)它是非常昂貴的,但從原理上是可行的),攻擊者暴露芯片內(nèi)部結(jié)構(gòu)并且對(duì)它進(jìn)行研究將是可能的。例如,通過(guò)特殊蝕刻方法或通過(guò)適當(dāng)磨削過(guò)程,可以暴露芯片的內(nèi)部結(jié)構(gòu)。通過(guò)這種方式暴露的芯片結(jié)構(gòu),如內(nèi)部連接,可以使用微探針進(jìn)行接觸,或者可以使用其它方法進(jìn)行研究,以確定這些結(jié)構(gòu)中的信號(hào)波形。然后試圖使用所檢測(cè)的信號(hào)確定來(lái)自數(shù)據(jù)存儲(chǔ)介質(zhì)的保密數(shù)據(jù),如密鑰,以使用它們來(lái)進(jìn)行處理,將是可能的。利用微探針試圖故意影響所暴露結(jié)構(gòu)中的信號(hào)波形,同樣將是可能的。
而且,近來(lái)通過(guò)測(cè)量加密過(guò)程的電流消耗或時(shí)間來(lái)推斷保密數(shù)據(jù),特別是密鑰的方法已為人所知(Paul C.Kocher,″Timing Attacks on implementationof Diffie-Hellman,RSA,DSS,and other systems″,Springer Verlag 1998;WO99/35782)。
這種類型的一個(gè)簡(jiǎn)單攻擊是“簡(jiǎn)單冪分析(Simple Power Analysis,SPA)”。作為示例,在這個(gè)分析方法中,使用密鑰d對(duì)已知消息M進(jìn)行加密,也就是說(shuō),形成加密文本Y=Mdmod n。在該求冪取模過(guò)程中,如果指數(shù)d中出現(xiàn)一個(gè)“1”,則對(duì)中間結(jié)果執(zhí)行平方操作,并且對(duì)M執(zhí)行乘法操作,而如果d中出現(xiàn)一個(gè)“0”,則僅對(duì)中間結(jié)果執(zhí)行平方操作。如果M已知,通過(guò)觀察操作期間的電流響應(yīng)和/或時(shí)間,可以識(shí)別使用消息M的次數(shù)。由于如果d中出現(xiàn)“1”時(shí)總是使用該消息,因此可以推斷出密鑰,而沒(méi)有任何問(wèn)題。
通過(guò)改變消息M或密鑰d,可以阻擋該攻擊。然而,從Paul C.Kocher,″Timing Attacks on implementation of Diffie-Hellman,RSA,DSS,and othersystems″,Springer Verlag 1998和國(guó)際專利申請(qǐng)WO99/35782可以知道一些分析方法,其中,通過(guò)記錄大量測(cè)量集成電路電流響應(yīng)的測(cè)量曲線,即使消息或密鑰發(fā)生修改,也就是說(shuō)經(jīng)過(guò)加密,也可以推斷出密鑰(“微分冪分析(Differential Power Analysis,DPA)”或高階DPA)。
為了使通過(guò)在計(jì)算過(guò)程中識(shí)別要進(jìn)行加密消息的使用來(lái)容易地識(shí)別密鑰不可能,已經(jīng)提出加入一個(gè)因子r*n,以對(duì)消息進(jìn)行加密。因此加密文本y=Mdmod n變?yōu)?M+r*n)dmod n。這意味著在分析過(guò)程中求助于已知消息M是不可能的。然而,甚至對(duì)消息文本M作這種修改,通過(guò)觀察電流曲線,可以識(shí)別特定模式的重復(fù)。包含(M+r*n)的相關(guān)模式存在高概率,從而在這種情況下,推斷乘法從而推斷密鑰中的1,也是可能的。
如果在電流分析過(guò)程中識(shí)別是使用相同因子(對(duì)應(yīng)于對(duì)中間結(jié)果的平方操作)還是使用不同因子(對(duì)應(yīng)于中間結(jié)果與消息的乘法操作)執(zhí)行乘法過(guò)程,是可能的,會(huì)出現(xiàn)進(jìn)一步的問(wèn)題,因?yàn)橥ㄟ^(guò)這種方法識(shí)別對(duì)(M+r*n)的乘法也是可能的。
因此,本發(fā)明的一個(gè)目的是在保證如同從前仍然高效使用數(shù)據(jù)的同時(shí),保護(hù)包含在便攜式數(shù)據(jù)存儲(chǔ)介質(zhì)的芯片中的保密數(shù)據(jù),以防止未經(jīng)授權(quán)的訪問(wèn)。
在權(quán)利要求1和5的現(xiàn)有技術(shù)特征的背景下,通過(guò)各個(gè)權(quán)利要求的特征特性,實(shí)現(xiàn)該目的。
本發(fā)明基于一種包含具有至少一個(gè)存儲(chǔ)器的半導(dǎo)體芯片的數(shù)據(jù)存儲(chǔ)介質(zhì),其中,該存儲(chǔ)器存儲(chǔ)有包含大量命令的操作程序,每個(gè)命令產(chǎn)生多個(gè)可以從半導(dǎo)體芯片外部檢測(cè)到的信號(hào)。
根據(jù)該發(fā)明,數(shù)據(jù)存儲(chǔ)介質(zhì)被設(shè)計(jì)為,使用不同函數(shù)對(duì)計(jì)算過(guò)程中多次使用的數(shù)據(jù)進(jìn)行加密。
數(shù)據(jù)因此可以是消息,但是也可以是通過(guò)執(zhí)行計(jì)算過(guò)程而獲得的中間結(jié)果,或者可以是存儲(chǔ)在數(shù)據(jù)存儲(chǔ)介質(zhì)中的數(shù)據(jù)。
要加密的數(shù)據(jù)最好是要進(jìn)行加密的消息。
也可以提供數(shù)據(jù)為中間結(jié)果,并且作為乘法執(zhí)行隨后的平方操作,中間結(jié)果在之前已使用不同函數(shù)進(jìn)行過(guò)加密,或者提供數(shù)據(jù)為中間結(jié)果,然后通過(guò)加法過(guò)程使中間結(jié)果加倍,中間結(jié)果在之前已使用不同函數(shù)進(jìn)行過(guò)加密。這樣也有利地使對(duì)中間結(jié)果的操作(平方、加法等)變得安全成為可能。
特別,本發(fā)明提供以通過(guò)取模操作的加密形式進(jìn)行提供的加密函數(shù),在該取模操作中,如果指數(shù)d中出現(xiàn)一個(gè)“1”,則使用消息M,并且對(duì)于每次使用,使用不同的函數(shù)改變消息M。
根據(jù)本發(fā)明的一個(gè)有利改進(jìn),通過(guò)對(duì)于每次使用i(i=1...k),將因子ri*n(n為模數(shù))加到消息M,對(duì)消息進(jìn)行加密,其中對(duì)于每個(gè)i,ri可以具有不同的值。在其它計(jì)算方法中,消息M的冪也可以出現(xiàn)很多次,然后對(duì)于每次使用,將ri*n加到其中。
如果模數(shù)n乘以常數(shù)因子k,并且如果僅在以后對(duì)模數(shù)n執(zhí)行進(jìn)一步的取模操作,安全性得以進(jìn)一步的改善,因?yàn)槿缓笸瑯訉?duì)中間結(jié)果進(jìn)行加密。
在下面文本中,將參照一個(gè)求冪取模的示例性實(shí)施例對(duì)本發(fā)明進(jìn)行說(shuō)明。不對(duì)一般性作任何限制,假定,對(duì)求冪取模過(guò)程進(jìn)行計(jì)算,以形成加密消息Y=Mdmod n,因?yàn)槿绻鹍中出現(xiàn)一個(gè)“1”,則對(duì)中間結(jié)果執(zhí)行平方操作,并對(duì)消息M執(zhí)行乘法操作,并且如果出現(xiàn)一個(gè)“0”,則對(duì)中間結(jié)果執(zhí)行平方操作。
根據(jù)本發(fā)明,對(duì)于加密過(guò)程,首先選擇隨機(jī)數(shù)r,然后形成乘積r*n。然后求冪過(guò)程以平方操作開(kāi)始,其中,將乘積r*n加到中間結(jié)果Z,以計(jì)算表達(dá)式(Z*(Z+r*n)mod k*n),其中,k為整數(shù),而不是計(jì)算表達(dá)式Z*Z mod n。在此時(shí)指數(shù),也就是說(shuō)密鑰d,包含“1”的情況下,隨后為一個(gè)乘法操作,其中,首先將(ri*n)加到消息M,也就是說(shuō)形成M+ri*n,并且計(jì)算(Z*(M+ri*n)mod k*n)),而不是Z*M mod n。循環(huán)該過(guò)程,直到處理完密鑰中的所有數(shù)字,在每次循環(huán)中對(duì)于下一乘法過(guò)程i加1。在完成求冪過(guò)程之后,還通過(guò)對(duì)n進(jìn)行求模,得到結(jié)果。
由于向消息M加入模數(shù)的整數(shù)倍數(shù)不改變結(jié)果這一特征,因此諸如此類的擴(kuò)展不會(huì)帶來(lái)任何問(wèn)題,從而導(dǎo)致一個(gè)優(yōu)點(diǎn)是消息M不再能夠通過(guò)分析芯片電流響應(yīng)來(lái)獲得,因?yàn)閷?duì)消息的連續(xù)處理操作不再相關(guān),并且因此識(shí)別相同重復(fù)的模式是不可能的。
而且,在分析過(guò)程中,區(qū)分乘法操作與平方操作實(shí)際上是不可能的,因?yàn)樵诿看尾僮髦胁粌H中間結(jié)果Z而且經(jīng)過(guò)處理的消息M+ri*n發(fā)生變化,并且因此不僅在乘法操作中而且在平方操作中,都形成中間結(jié)果和不與它相關(guān)的因子之間的乘積。
安全性還可以獲得進(jìn)一步的改善,因?yàn)樵趜和f(z)之間具有相關(guān)性的安全關(guān)鍵性計(jì)算操作f(z),分裂為計(jì)算操作g1(z)和(g2f(g1(z)),從而g1(z)和(g2f(g1(z))不再彼此相關(guān)。g1(z)和g2(z)是這種情況下的適當(dāng)加密函數(shù)。
權(quán)利要求
1.一種包含具有至少一個(gè)存儲(chǔ)器的半導(dǎo)體芯片的數(shù)據(jù)存儲(chǔ)介質(zhì),其中,該存儲(chǔ)器存儲(chǔ)有包含大量命令的操作程序,每個(gè)命令產(chǎn)生多個(gè)可以從半導(dǎo)體芯片外部檢測(cè)到的信號(hào),其特征在于,該數(shù)據(jù)存儲(chǔ)介質(zhì)被設(shè)計(jì)為使用不同函數(shù)對(duì)計(jì)算過(guò)程中多次使用的數(shù)據(jù)進(jìn)行加密。
2.如權(quán)利要求1所述的數(shù)據(jù)存儲(chǔ)介質(zhì),其特征在于,要加密的數(shù)據(jù)包括要加密的消息。
3.如權(quán)利要求1所述的數(shù)據(jù)存儲(chǔ)介質(zhì),其特征在于,所使用的數(shù)據(jù)是中間結(jié)果,并且隨后的平方操作采用乘法過(guò)程的形式,中間結(jié)果在之前已使用不同函數(shù)進(jìn)行過(guò)加密。
4.如權(quán)利要求1所述的數(shù)據(jù)存儲(chǔ)介質(zhì),其特征在于,所使用的數(shù)據(jù)是中間結(jié)果,并且隨后通過(guò)加法過(guò)程使中間結(jié)果加倍,中間結(jié)果在之前已使用不同函數(shù)進(jìn)行過(guò)加密。
5.如前面權(quán)利要求之一所述的數(shù)據(jù)存儲(chǔ)介質(zhì),其特征在于,計(jì)算包括通過(guò)取模操作的加密過(guò)程,其中,如果指數(shù)d中出現(xiàn)一個(gè)“1”,則使用消息M,并且對(duì)于每次使用,使用不同的函數(shù)改變消息M。
6.如前面權(quán)利要求之一所述的數(shù)據(jù)存儲(chǔ)介質(zhì),其特征在于,對(duì)于每次使用i(i=1...k),將因子ri*n加到消息M,其中r為隨機(jī)數(shù)并且n為模數(shù)。
7.如權(quán)利要求6所述的數(shù)據(jù)存儲(chǔ)介質(zhì),其特征在于,ri對(duì)于所有i相同。
8.如權(quán)利要求1或2所述的數(shù)據(jù)存儲(chǔ)介質(zhì),其特征在于,計(jì)算包括其中使用消息冪的取模操作,對(duì)于每次使用,使用不同的函數(shù)改變這些消息冪。
9.如前面權(quán)利要求之一所述的數(shù)據(jù)存儲(chǔ)介質(zhì),其特征在于,模數(shù)n乘以常數(shù)因子k,并且對(duì)模數(shù)n執(zhí)行進(jìn)一步的取模操作。
10.一種保護(hù)數(shù)據(jù)存儲(chǔ)介質(zhì)中保密數(shù)據(jù)的方法,該數(shù)據(jù)存儲(chǔ)介質(zhì)包含具有至少一個(gè)存儲(chǔ)器的半導(dǎo)體芯片,其中,該存儲(chǔ)器存儲(chǔ)有包含大量命令的操作程序,每個(gè)命令產(chǎn)生多個(gè)可以從半導(dǎo)體芯片外部檢測(cè)到的信號(hào),其特征在于,使用不同函數(shù)對(duì)計(jì)算過(guò)程中多次使用的數(shù)據(jù)進(jìn)行加密。
11.如權(quán)利要求10所述的方法,其特征在于,要加密的數(shù)據(jù)包括要加密的消息。
12.如權(quán)利要求10所述的方法,其特征在于,所使用的數(shù)據(jù)是中間結(jié)果,并且隨后的平方操作采用乘法過(guò)程的形式,中間結(jié)果在之前已使用不同函數(shù)進(jìn)行過(guò)加密。
13.如權(quán)利要求10所述的方法,其特征在于,所使用的數(shù)據(jù)是中間結(jié)果,并且隨后通過(guò)加法過(guò)程使中間結(jié)果加倍,中間結(jié)果在之前已使用不同函數(shù)進(jìn)行過(guò)加密。
14.如權(quán)利要求10至13之一所述的方法,其特征在于,計(jì)算包括通過(guò)取模操作的加密過(guò)程,其中,如果指數(shù)d中出現(xiàn)一個(gè)“1”,則使用消息M,并且對(duì)于每次使用,使用不同的函數(shù)改變消息M。
15.如權(quán)利要求10至14之一所述的方法,其特征在于,計(jì)算包括其中使用消息冪的取模操作,對(duì)于每次使用,使用不同的函數(shù)改變這些消息冪。
16.如權(quán)利要求10至15之一所述的方法,其特征在于,對(duì)于每次使用i(i=1...k),將因子ri*n加到消息M,其中r為隨機(jī)數(shù)并且n為模數(shù)。
17.如權(quán)利要求16所述的方法,其特征在于,ri對(duì)于所有i相同。
18.如權(quán)利要求10至17之一所述的方法,其特征在于,模數(shù)n乘以常數(shù)因子k,并且對(duì)模數(shù)n執(zhí)行進(jìn)一步的取模操作。
19.如權(quán)利要求10至18之一所述的方法,其特征在于,在z和f(z)之間具有相關(guān)性的安全關(guān)鍵性計(jì)算操作f(z)分裂為計(jì)算操作g1(z)和(g2f(g1(z)),從而g1(z)和(g2f(g1(z))不再彼此相關(guān)。
全文摘要
本發(fā)明涉及一種包含具有至少一個(gè)存儲(chǔ)器的半導(dǎo)體芯片的數(shù)據(jù)存儲(chǔ)介質(zhì),其中,該存儲(chǔ)器存儲(chǔ)有包含大量命令的操作程序,每個(gè)命令產(chǎn)生多個(gè)可以從半導(dǎo)體芯片外部檢測(cè)到的信號(hào)。根據(jù)本發(fā)明,數(shù)據(jù)存儲(chǔ)介質(zhì)被設(shè)計(jì)為,使用不同函數(shù)對(duì)計(jì)算過(guò)程中多次使用的數(shù)據(jù)進(jìn)行加密。
文檔編號(hào)G06K19/073GK1415106SQ00817825
公開(kāi)日2003年4月30日 申請(qǐng)日期2000年12月20日 優(yōu)先權(quán)日1999年12月28日
發(fā)明者赫曼·德雷克斯勒, 哈拉爾德·瓦特 申請(qǐng)人:德國(guó)捷德有限公司