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