專(zhuān)利名稱(chēng):計(jì)算密鑰控制數(shù)據(jù)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種為秘密密鑰密碼算法計(jì)算校驗(yàn)數(shù)據(jù)的方法。這種校驗(yàn)數(shù)據(jù)主要應(yīng)用于DES(數(shù)據(jù)加密標(biāo)準(zhǔn))環(huán)境中;它在秘密密鑰上附加了冗余的特定值,也被稱(chēng)為“校驗(yàn)和”。根據(jù)本發(fā)明的方法基于從特定(已知并且最好為常數(shù))消息來(lái)計(jì)算校驗(yàn)數(shù)據(jù)。在本文以下部分中,將使用慣用詞“校驗(yàn)和”來(lái)命名該校驗(yàn)數(shù)據(jù)。
更具體地說(shuō),本發(fā)明涉及DES算法,DES算法實(shí)際上是目前已知的唯一利用校驗(yàn)和計(jì)算的秘密密鑰算法,本發(fā)明的目的即是檢驗(yàn)和。
DES是最著名的、也是使用得最多的秘密密鑰密碼算法之一。據(jù)說(shuō)這種算法是對(duì)稱(chēng)的,因?yàn)樗褂昧嗣孛芮铱赡娴膯?4比特密鑰,用于加密和解密數(shù)據(jù)。
更具體地說(shuō),DES具有由64個(gè)秘密比特組成的密鑰,其中包括56個(gè)隨機(jī)加密(和解密)比特和8個(gè)校驗(yàn)和比特。工作時(shí),DES從這56個(gè)隨機(jī)比特中生成48比特的16個(gè)子密鑰。這樣,在8個(gè)八比特組的DES密鑰中的每一個(gè)中,前7個(gè)比特是隨機(jī)的,用來(lái)計(jì)算子密鑰,而最后一個(gè)比特構(gòu)成了校驗(yàn)和的一部分。一般情況下,該校驗(yàn)和的比特是奇偶校驗(yàn)比特,也就是說(shuō),它們是通過(guò)對(duì)各八比特組中的前7個(gè)比特進(jìn)行“異或”運(yùn)算來(lái)計(jì)算的。
校驗(yàn)和主要用于保護(hù)DES密鑰不受存儲(chǔ)攻擊或DFA(各種錯(cuò)誤攻擊),它們會(huì)逐一修改密鑰的比特,從而試圖破解密鑰。例如為1的比特被逐個(gè)強(qiáng)行歸0,用DES進(jìn)行這些修改,以對(duì)同一消息進(jìn)行加密,直至密鑰的全部比特都為0(此時(shí)加密消息為常量)。然后該過(guò)程通過(guò)回到加密消息鏈繼續(xù),并能成功地判斷出在初始密鑰中哪些比特為1。
校驗(yàn)和使避免這類(lèi)攻擊成為可能。這是因?yàn)榭梢远ㄆ谥匦掠?jì)算校驗(yàn)和(常規(guī)由奇偶校驗(yàn)比特組成),從而可以檢測(cè)出密鑰中一個(gè)或多個(gè)比特的修改。
另一方面,校驗(yàn)和的知識(shí)可以通過(guò)揭示出各八比特組中比特為1的比特?cái)?shù)量是奇數(shù)還是偶數(shù)來(lái)允許對(duì)密鑰的加密比特上的信息進(jìn)行過(guò)濾。
本發(fā)明的目的是解決該缺點(diǎn),并提議了一種計(jì)算校驗(yàn)和的方法,這種方法不會(huì)泄漏有關(guān)密鑰的秘密比特的任何信息。
為此,本方法提議從特定消息構(gòu)建校驗(yàn)和,只使用密鑰的加密比特進(jìn)行編碼,并將該校驗(yàn)和的比特結(jié)合到密鑰的加密比特中,從而重建完整密鑰。然后根據(jù)傳統(tǒng)運(yùn)算使用算法,其中密鑰包括隨機(jī)加密比特和這個(gè)構(gòu)建的校驗(yàn)和。
本發(fā)明更具體的目的是一種為N比特秘密密鑰算法計(jì)算校驗(yàn)數(shù)據(jù)的方法,其中N-N/n為隨機(jī)加密比特,N/n為校驗(yàn)數(shù)據(jù)比特,其特征在于,它具有以下步驟-利用密鑰的N-N/n加密比特對(duì)K比特的特定消息進(jìn)行加密;-通過(guò)從所述K比特加密消息中選擇N/n比特來(lái)構(gòu)建校驗(yàn)數(shù)據(jù);-在密鑰的每n-1個(gè)加密比特之處結(jié)合所述校驗(yàn)數(shù)據(jù)的N/n比特之一,以構(gòu)建完整的N比特秘密密鑰。
根據(jù)一個(gè)特征,所述特定消息為常數(shù)消息。
根據(jù)一個(gè)特定特性,所述常數(shù)消息的K個(gè)輸入比特具有相同值。
根據(jù)另一特征,所述校驗(yàn)數(shù)據(jù)包括加密消息的前N/n個(gè)比特。
根據(jù)一個(gè)特征,K等于N。
根據(jù)一個(gè)優(yōu)選應(yīng)用,秘密密鑰算法為DES,所述密鑰具有64比特,其中56個(gè)為加密比特,8個(gè)為校驗(yàn)數(shù)據(jù)比特。
根據(jù)一個(gè)特征,秘密密鑰算法用電子元件實(shí)現(xiàn),每個(gè)密鑰的校驗(yàn)數(shù)據(jù)的構(gòu)建只進(jìn)行一次,時(shí)間為制造電子元件時(shí),或在第一次使用具有給定密鑰的該電子元件時(shí)。
根據(jù)一個(gè)特征,本方法還包括通過(guò)將根據(jù)同一特定消息重新算得的校驗(yàn)數(shù)據(jù)與構(gòu)建的校驗(yàn)數(shù)據(jù)進(jìn)行比較來(lái)驗(yàn)證整個(gè)秘密密鑰的完好性。
根據(jù)一個(gè)特征,每次電子元件加電時(shí)對(duì)校驗(yàn)數(shù)據(jù)進(jìn)行驗(yàn)證。
根據(jù)另一特征,每次調(diào)用算法之前對(duì)校驗(yàn)數(shù)據(jù)進(jìn)行驗(yàn)證。
根據(jù)一個(gè)特征,當(dāng)校驗(yàn)數(shù)據(jù)的驗(yàn)證出錯(cuò)時(shí),本方法具有禁止具有構(gòu)建的秘密密鑰的算法的功能和/或禁止電子元件的功能。
本發(fā)明適用于各種智能卡類(lèi)型的安全媒體,或各種配有加密軟件的計(jì)算機(jī)類(lèi)型的計(jì)算裝置,它們具有能夠?qū)崿F(xiàn)根據(jù)本發(fā)明的方法的電子元件。
根據(jù)本發(fā)明的方法使構(gòu)建校驗(yàn)和成為可能,它不會(huì)揭示任何與秘密密鑰相關(guān)的信息。這是因?yàn)樾r?yàn)和不再以任何方式與密鑰的加密比特的奇偶校驗(yàn)相關(guān)聯(lián)。
此外,因?yàn)楸拘r?yàn)和不含任何敏感信息,因此甚至沒(méi)有將其隱藏的必要。
密鑰的安全型仍然是肯定的,因?yàn)橥ㄟ^(guò)計(jì)算新校驗(yàn)和并將其與最初構(gòu)建的校驗(yàn)和進(jìn)行比較,保留了未出現(xiàn)攻擊的驗(yàn)證。
根據(jù)本發(fā)明的方法要求算法的第一次運(yùn)算只使用密鑰的加密比特,以便重新計(jì)算校驗(yàn)和來(lái)進(jìn)行驗(yàn)證,這樣做是耗時(shí)的。不過(guò),根據(jù)本發(fā)明的方法用安全上的收獲補(bǔ)償了這個(gè)時(shí)間成本。
通過(guò)閱讀下面說(shuō)明性的而非限制性的例示的描述,本發(fā)明的其它特定特性及優(yōu)點(diǎn)會(huì)清楚地顯露出來(lái)。
本說(shuō)明書(shū)涉及具有64比特的秘密密鑰的DES算法。這是因?yàn)樵谀壳耙阎乃惴ó?dāng)中,只有DES使用校驗(yàn)和來(lái)計(jì)算DFA類(lèi)型的存儲(chǔ)攻擊。不過(guò),根據(jù)本發(fā)明的方法也可以應(yīng)用到其它使用可能更長(zhǎng)的秘密密鑰的對(duì)稱(chēng)算法上。
本發(fā)明的目的是構(gòu)建一種不會(huì)暴露DES密鑰的56個(gè)加密比特的任何信息的校驗(yàn)和。
為此,由DES的56個(gè)加密比特對(duì)K比特的特定消息M、即未加密的消息M進(jìn)行編碼。根據(jù)一個(gè)優(yōu)選實(shí)現(xiàn)例,選擇含有64個(gè)常數(shù)的、即固定且已知比特的消息M。根據(jù)一個(gè)實(shí)現(xiàn)例,消息M可包括全部具有相同值的K個(gè)比特,例如都是0。DES輸出的加密消息M’具有K個(gè)比特(本例示中為64個(gè)),它絕對(duì)沒(méi)有泄漏算法中用到的56個(gè)加密比特的任何信息。
因此,本發(fā)明包括從加密消息M’的64個(gè)比特中選擇8個(gè)比特。盡管選擇任何比特都可以,但是為了簡(jiǎn)單,最好選擇前8個(gè),即加密文本M’的第一個(gè)八比特組。這8個(gè)比特接下來(lái)就組成了DES校驗(yàn)和Co。
組成的這個(gè)校驗(yàn)和Co的比特接下來(lái)被組合到56個(gè)隨機(jī)加密比特中,以形成一個(gè)完整的64比特密鑰。每隔7個(gè)比特的加密比特之間放置校驗(yàn)和的一個(gè)比特。
對(duì)某一給定密鑰只這樣構(gòu)建校驗(yàn)和Co一次,而且為所有給定密鑰都進(jìn)行校驗(yàn)和的構(gòu)建,或者是在實(shí)現(xiàn)DES的電子元件的生產(chǎn)制造結(jié)束時(shí),或者是在首次與該密鑰一起使用所述元件時(shí)。實(shí)際上,存在DES密碼可以被修改的應(yīng)用,這時(shí)就需要重建校驗(yàn)和Co。
結(jié)果是,DES重新開(kāi)始傳統(tǒng)運(yùn)算,也就是說(shuō),它用64比特密鑰來(lái)對(duì)消息進(jìn)行編碼和解碼,密鑰中56比特為隨機(jī)的,另外8比特為校驗(yàn)和,其中絕對(duì)沒(méi)有包括有關(guān)所述加密比特的任何信息。
不過(guò),例如每次對(duì)元件加電時(shí),或者每次調(diào)用DES之前,通過(guò)重新計(jì)算校驗(yàn)和C1并將其與已構(gòu)建的校驗(yàn)和Co進(jìn)行比較,對(duì)可能的DFA類(lèi)型的存儲(chǔ)攻擊的保護(hù)仍然是肯定的。
驗(yàn)證校驗(yàn)和C1是利用來(lái)自初始常數(shù)消息M的56個(gè)加密比特的密鑰進(jìn)行計(jì)算的,并由加密消息M’的8個(gè)比特確定(與Co的比特相同,比如再次使用第一組)。
若發(fā)生了DFA攻擊,且密鑰的某個(gè)比特被修改了,則利用來(lái)自同一初始常數(shù)消息M的被攻擊密鑰算得的校驗(yàn)和C1將必然與初始構(gòu)建并儲(chǔ)存的Co不同。這是因?yàn)椋捎贒ES是一種非線性算法,所以修改密鑰的一個(gè)比特將會(huì)改變加密消息M’的許多比特,并且從該被攻擊密鑰重建的校驗(yàn)和C1肯定會(huì)有比特與Co不同。
另一方面,若C1=Co,則密鑰沒(méi)有受到任何攻擊,可放心使用。
相反,若C1≠Co,則密鑰受到了攻擊。根據(jù)本發(fā)明的方法具有禁止使用具有這個(gè)構(gòu)建的完整密鑰的加密/解密算法的功能和/或禁止使用安裝了本方法的電子元件的功能(如智能卡)。
權(quán)利要求
1.一種為N比特秘密密鑰算法計(jì)算校驗(yàn)數(shù)據(jù)的方法,所述秘密密鑰中,N-N/n個(gè)比特為隨機(jī)加密比特,并且N/n個(gè)比特為校驗(yàn)數(shù)據(jù)比特,其特征在于,它具有以下步驟-利用所述密鑰的所述N-N/n個(gè)加密比特對(duì)K比特的特定消息(M)進(jìn)行加密;-通過(guò)從所述加密消息(M’)的所述K比特中選擇N/n比特來(lái)構(gòu)建校驗(yàn)數(shù)據(jù)(Co);-在每n-1個(gè)加密比特之處結(jié)合所述校驗(yàn)數(shù)據(jù)(Co)的所述N/n比特之一,以構(gòu)建完整的N比特秘密密鑰。
2.如權(quán)利要求1所述的計(jì)算校驗(yàn)數(shù)據(jù)的方法,其特征在于所述特定消息(M)為常數(shù)消息。
3.如權(quán)利要求2所述的計(jì)算校驗(yàn)數(shù)據(jù)的方法,其特征在于所述常數(shù)消息(M)的所有輸入比特具有相同的值。
4.如權(quán)利要求1至3之一所述的計(jì)算校驗(yàn)數(shù)據(jù)的方法,其特征在于所述校驗(yàn)數(shù)據(jù)(Co)由所述加密消息(M’)的所述前N/n個(gè)比特組成。
5.如權(quán)利要求1至4之一所述的計(jì)算校驗(yàn)數(shù)據(jù)的方法,其特征在于K等于N。
6.如以上任一權(quán)利要求所述的計(jì)算校驗(yàn)數(shù)據(jù)的方法,其特征在于所述秘密密鑰算法為DES(數(shù)據(jù)加密標(biāo)準(zhǔn)),所述密鑰具有64比特,其中56比特為加密比特,并且8比特為校驗(yàn)數(shù)據(jù)比特。
7.如以上任一權(quán)利要求所述的計(jì)算校驗(yàn)數(shù)據(jù)的方法,所述秘密密鑰算法以電子元件實(shí)現(xiàn),其特征在于對(duì)每個(gè)密鑰只進(jìn)行一次所述校驗(yàn)數(shù)據(jù)(Co)的所述構(gòu)建。
8.如權(quán)利要求7所述的方法,其特征在于在制造配備了所述密鑰的所述電子元件時(shí)構(gòu)建所述校驗(yàn)數(shù)據(jù)(Co)。
9.如權(quán)利要求7所述的方法,其特征在于在第一次使用配備了所述密鑰的所述電子元件時(shí)構(gòu)建所述校驗(yàn)數(shù)據(jù)(Co)。
10.如以上任一權(quán)利要求所述的計(jì)算校驗(yàn)數(shù)據(jù)的方法,其特征在于它還包括通過(guò)將根據(jù)所述特定消息(M)重新算得的校驗(yàn)數(shù)據(jù)(C1)與所述已構(gòu)建校驗(yàn)數(shù)據(jù)(Co)進(jìn)行比較來(lái)驗(yàn)證所述整個(gè)秘密密鑰的完好性。
11.如權(quán)利要求10所述的方法,以電子元件實(shí)現(xiàn)所述秘密密鑰算法,其特征在于在每次電子元件加電時(shí)進(jìn)行所述校驗(yàn)數(shù)據(jù)(C1=Co)的驗(yàn)證。
12.如權(quán)利要求10所述的方法,其特征在于在每次調(diào)用所述算法之前進(jìn)行所述校驗(yàn)數(shù)據(jù)(C1=Co)的驗(yàn)證。
13.如權(quán)利要求10至12之一所述方法,其特征在于它具有在所述校驗(yàn)數(shù)據(jù)驗(yàn)證出錯(cuò)(C1≠Co)時(shí)禁止具有所述構(gòu)建的完整秘密密鑰的所述算法的功能。
14.如權(quán)利要求10至12之一所述的方法,以電子元件實(shí)現(xiàn)所述秘密密鑰算法,其特征在于所述方法具有在所述校驗(yàn)數(shù)據(jù)驗(yàn)證出錯(cuò)(C1≠Co)時(shí)禁止使用所述元件的功能。
15.一種智能卡類(lèi)型的安全媒體,其特征在于它具有能夠?qū)崿F(xiàn)權(quán)利要求1至14所述方法的電子元件。
16.一種配備了加密軟件的計(jì)算機(jī)類(lèi)型的計(jì)算裝置,其特征在于它具有能夠?qū)崿F(xiàn)權(quán)利要求1至13所述方法的電子元件。
全文摘要
本發(fā)明涉及一種用于計(jì)算N比特秘密密鑰算法的控制數(shù)據(jù)的方法,其中包括N-N/n個(gè)隨機(jī)加密比特以及N/n個(gè)校驗(yàn)和比特。本發(fā)明的特征在于它包括以下步驟用密鑰的N-N/n個(gè)加密比特對(duì)K比特的特定信息進(jìn)行加密;從K比特加密消息中選擇N/n個(gè)比特構(gòu)建控制數(shù)據(jù);將所述控制數(shù)據(jù)的N/n比特之一組合到所有n-1個(gè)加密比特中,以構(gòu)建完整的N比特秘密密鑰。本發(fā)明特別適用于數(shù)據(jù)加密標(biāo)準(zhǔn)(DES),所述控制數(shù)據(jù)是根據(jù)常數(shù)消息構(gòu)建的。
文檔編號(hào)H04L9/06GK1426645SQ0180848
公開(kāi)日2003年6月25日 申請(qǐng)日期2001年4月18日 優(yōu)先權(quán)日2000年4月25日
發(fā)明者D·納卡切, N·達(dá)布斯 申請(qǐng)人:格姆普拉斯公司