欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于非對稱加密的對策方法和設備的制作方法

文檔序號:6592740閱讀:212來源:國知局
專利名稱:用于非對稱加密的對策方法和設備的制作方法
技術領域
本發(fā)明涉及一種實現非對稱私鑰加密算法的電子元件中的對策方法,其抵抗旨在 發(fā)現該私鑰的攻擊。本發(fā)明還涉及一種實現所述方法的微電路設備和便攜式設備,特別是 芯片卡。
背景技術
如圖1所示,包含對私鑰d的使用的非對稱加密10的算法應用通常由微電路12 來實現以通過對該消息簽名來認證消息M的傳輸或通過利用私鑰破解該消息來保護加密 消息M的接收。私鑰d例如被存儲在包括存儲器14和用于執(zhí)行非對稱加密算法10的微處 理器18的微電路12中,存儲器14包括為此而提供的安全存儲空間16。實現加密算法的微電路設備有時受到攻擊,該攻擊旨在確定它們使用的秘密數據 (例如所使用的密鑰)以及一些情況下可能是消息本身中的信息。特別地,非對稱加密算法 受到旨在當私鑰被使用時發(fā)現該私鑰的攻擊。通過備用信道而進行的攻擊構成使用加密算 法的軟件或硬件實現的一些屬性的主要密碼分析技術族。在已知的通過備用信道進行的攻擊之中,SPA (簡單功耗分析)型攻擊或DPA (差分 功耗分析)型攻擊在于在執(zhí)行非對稱加密算法期間測量微電路的進入的和外出的電流和 電壓,從而由此推斷私鑰。這個攻擊族的可行性已經在P. Kocher, J. Jaffe和B. Jim所著的 標題為“Differential PowerAnalysis”的文章中得到證實,該文章特別地在Advances in Cryptology-Crypto 99 Proceedings 中公開,是 Computer Science Vol. 1666, M. Wiener, ed. , Springer-Verlag, 1999 中的講稿。時間攻擊分析執(zhí)行一些操作的時間。這種對非對稱加密算法的攻擊在P. Kocher, N. Koblitz 所著的標題為"Timing attacks on implementations ofDiffie-Hellman, RSA, DSS, and other systems”的文章中有所描述,該文章特別地在Advances in Cryptology-Crypto 96,16th annual internationalcryptology conference,Aug. 18-22, 1996 Proceedings 中公開。通過故障注入而進行的攻擊也是已知的,在這些攻擊中,旨在于加密算法執(zhí)行期 間自行導致故障的DFA(差分故障分析)攻擊例如是通過干擾它所執(zhí)行于其上的微電路來 進行的。這種干擾可能包括對微電路進行一次(或多次)短暫照亮或在其觸點之一上生成 一個或多個電壓峰值。這個干擾因而使之能夠在一些條件下使用所產生的計算和行為差錯 來獲得想要的整個私鑰或一部分私鑰。特別地,在稱為RSA (按照其作者Rivest,Shamir和Adleman)的非對稱加密算法 的執(zhí)行期間,執(zhí)行針對模冪的原函數。原函數的高效實現通過對私鑰d的二進制表示的每 個比特執(zhí)行迭代來使用該二進制表示。在每次迭代中,所進行的計算和計算期間的實際能 量消耗取決于有關比特的值。因此,這種原函數的執(zhí)行使得私鑰對于上述攻擊特別地脆弱。 同樣,在利用橢圓曲線的非對稱加密算法的適配的執(zhí)行期間,執(zhí)行針對純量乘法的原函數。 原函數的高效實現通過對私鑰d的二進制表示的每個比特執(zhí)行迭代來使用該二進制表示。
5同樣,在每次迭代中,計算期間的能量消耗取決于有關比特的值。因此,這種原函數的執(zhí)行 也使得純量值(其出于安全原因可能被私鑰吸收)對于攻擊特別地脆弱。為了防御這些特性不同的攻擊,已經找到許多十分不同的解決方案。本發(fā)明具體 地涉及與實現非對稱私鑰加密算法的電子元件中的對策方法有關的那些方案,該對策方法 包括-生成保護參數,-利用加密算法的原函數從輸入數據和保護參數中計算中間數據。這些算法通常利用所生成的保護參數來變換私鑰,從而將原函數應用于變換后的 私鑰并且組合利用中間數據所獲得的結果。保護參數a通常是利用偽隨機數據生成器20來生成的,以使得由加密算法10對 原函數的執(zhí)行也是隨機的并且與所使用的私鑰不相關,例如通過一種通常稱為掩蔽的技 術,該技術也可以被重新命名為用于變換或篡改數據的方法,因為其處理以與它們的使用 相反的方式被篡改,這是由微處理器18的對策部分22利用保護參數a來實現的。因此,加 密算法的中間數據以及所產生的可測量電流通過隨機保護參數而被修改并且其觀測并沒 有使之能夠找到私鑰的真實值。另一方面,掩蔽不干擾實際算法,這因而在利用或不利用掩 蔽的情況下都提供相同的結果。這種方法例如在美國專利申請US 6 381 699中被描述。在該文件中,RSA型非對稱加密領域中的實施例參考圖3而被描述。在具有公鑰 e和私鑰d的RSA算法中,為了進行簽名或破解,執(zhí)行原函數在于從輸入數據M和私鑰d中 以下面的方式計算輸出數據S S = Md mod N,其中N是RSA模數,兩個秘密整數的乘積,并且e和d符合關系 e.d = (p(N) 函數<P ( )代表歐拉(Euler)指示函數。令[dy,d0]2是私鑰d的二進制表示,這個計算可以以下面的方式執(zhí)行S = 1對于從n_l至0變化的i S — S2modN如果屯=1,則S — SXM mod N文件US 6 381 699中描述的抵抗攻擊的RSA算法的實施例包括第一步驟300,在 該步驟期間以下面的方式生成保護參數dl 生成隨機選擇的質數k,例如0<k<2128,然后 z = k.q>(n),然后di被隨機選擇,例如o<di <z并且pgcd(di,z) = i(pgcd是“最大公 約數”函數)。私鑰因而以下面的方式被變換d2 = dX (dr'mod z)mod z。在收到輸入數據M之后,在執(zhí)行下面兩個計算之前(步驟345和350)對dl和d2 執(zhí)行新的變換-S0 = Mdl mod N(基于輸入數據M和保護參數dl借助于中間數據&的原函數進 行計算),-S = S0d2 mod N(通過組合中間數據&和原函數對變換后的私鑰d2的應用來計 算輸出數據)。抵抗攻擊的RSA算法的另一個實施例(更加簡單但是也在文件US 6381 699中被描述)包括第一步驟,在該步驟期間保護數據dl被隨機選擇,例如0 < dl < d。私鑰因而以下面的方式被變換d2 = d-dl。在收到輸入數據M之后,在執(zhí)行下面兩個計算之前對dl和d2執(zhí)行新的變換-S1=Mdl mod N(基于輸入數據M和保護參數dl借助于中間數據S1的原函數進 行計算),-S2 = Md2 mod N, S = S1. S2 mod N(通過組合中間數據S1和原函數對變換后的私 鑰d2的應用S2來計算輸出數據)。在上述兩種現有技術情形中的每一種中,私鑰d被分成至少兩個指數dl和d2,其 大小可以與d的相比較,以使得RSA算法通過強制模冪的至少兩次執(zhí)行而不是一次而變得 更加復雜。抵抗由備用信道進行的一些攻擊的非對稱加密算法因而被實現,但是是以增加 的實現復雜度為代價的,因為復雜度實際上加倍了。因此,可能希望提供一種抵抗上述類型的攻擊的非對稱加密方法,該方法的實現 較為簡單。

發(fā)明內容
本發(fā)明的實施例涉及一種實現非對稱私鑰加密算法的電子元件中的對策方法,包 括-生成保護參數,_利用該加密算法的原函數從輸入數據和保護參數中計算中間數據,還包括-將所述私鑰的二進制表示分成幾個二進制塊,-利用所述保護參數變換每個二進制塊,并且對于每個變換的二進制塊利用所述 原函數執(zhí)行中間計算,和-通過組合所述中間數據和所述中間計算來計算輸出數據。因此,所述保護參數被用來變換二進制塊而不是完整的私鑰二進制表示。因此,保 護參數的二進制表示的大小可以明顯低于私鑰的二進制表示,即以二進制塊大小的級別。 計算相應地被簡化,因為即使原函數執(zhí)行次數增加,執(zhí)行也是在較小的二進制數據上操作 的??傊?,相比傳統(tǒng)的對策方法而言,非對稱加密算法的執(zhí)行可以在降低其復雜度的情況下 受到保護。根據一個實施例,所述對策方法包括劃分所述私鑰的二進制表示以使得每個二進 制塊的大小大于或等于所述保護參數的二進制表示的大小。根據一個實施例,所述對策方法包括將所述私鑰的二進制表示分成幾個二進制 塊,以使得該二進制塊的大小之和大于所述私鑰的二進制表示的大小。根據一個實施例,所述對策方法包括以迭代的方式隨機確定每個二進制塊的大小 以使得每個二進制塊的值大于所述保護參數的值。根據一個實施例,所述對策方法包括-選擇所述保護參數的二進制表示的大小k以使得存在一個整數u^ 2,例如η = k. u,其中η是所述私鑰的二進制表示的大小,和-將所述私鑰的二進制表示分成ufk比特二進制塊。根據一個實施例,所述原函數是通過所述私鑰而實現的輸入數據的模冪,用于執(zhí)行RSA或RSA CRT型加密算法。根據一個實施例,所述對策方法包括事先掩蔽RSA模數和所述輸入數據。根據一個實施例,所述原函數是通過所述私鑰而實現的輸入數據的純量乘法,用 于執(zhí)行基于橢圓曲線的加密算法,其中所述輸入數據是橢圓曲線上的預定點。根據一個實施例,所述對策方法包括事先掩蔽所述橢圓曲線上的預定點。根據一個實施例,所述對策方法還包括-在執(zhí)行原函數之前,最初以可復制的方式生成至少一個驗證參數,-在執(zhí)行原函數期間或之后重新生成所述驗證參數并且重新生成的該驗證參數與 最初生成的驗證參數相比較。根據一個實施例,重新生成和比較的步驟是當將原函數應用于變換后的二進制塊 時在該原函數的每次迭代時執(zhí)行的。根據一個實施例,所述對策方法包括如果重新生成和比較的步驟指示最初生成的 驗證參數與重新生成的驗證參數不同,則觸發(fā)告警并至少擾亂所述私鑰。根據一個實施例,所述保護參數和/或驗證參數的生成包括-定義生成函數,其是通過對存儲于存儲器中的預定的至少一個秘密參數連續(xù)應 用僅能從這個秘密參數以及這個函數中確定的值的序列來實現的,-從所述序列的至少一個值中以可復制的方式生成所述保護參數和/或所述驗證 參數。根據一個實施例,所述對策方法包括-定義多個函數,每個函數是通過對存儲于存儲器中的預定的至少一個相應秘密 參數連續(xù)應用僅能從相應秘密參數和相應函數中確定的相應值序列而實現的生成函數,-組合利用預定義關系而生成的多個值序列以生成新的值序列,-從這個序列的至少一個值中以可復制的方式生成所述保護參數和/或驗證參數。根據一個實施例,所述對策方法包括-定義生成函數,其是通過對存儲于存儲器中的預定的至少一個秘密參數連續(xù)應 用僅能從該秘密參數和該函數中確定的值的序列來實現的,-組合利用加密算法的公共參數而生成的值的序列以生成新的值序列,-從這個序列的至少一個值以可復制的方式生成所述保護參數和/或驗證參數。本發(fā)明的另一個實施例在于提供一種微電路設備,其包括用于實現非對稱私鑰加 密算法的對策方法的微處理器、用于存儲所述私鑰的至少一個安全存儲器、以及用于生成 保護參數的數據生成器,該設備被配置成-利用所述加密算法的原函數從輸入數據和所述保護參數中計算中間數據,-將所述私鑰的二進制表示分成幾個二進制塊,-利用所述保護參數變換每個二進制塊,并且對于每個變換后的二進制塊利用所 述原函數執(zhí)行中間計算,-通過組合所述中間數據和所述中間計算來計算輸出數據。根據一個實施例,所述微處理器被配置成以迭代的方式隨機確定每個二進制塊的 大小,以使得每個二進制塊的值大于所述保護參數的值。
8
根據一個實施例,所述數據生成器被配置成選擇所述保護參數的二進制表示的大 小k,以使得存在一個整數u≥ 2,例如η = k. u,其中η是私鑰的二進制表示大小,并且所述 微處理器被配置成將該私鑰的二進制表示分成ufk比特二進制塊。根據一個實施例,所述原函數是通過私鑰而實現的輸入數據的模冪,用于執(zhí)行RSA 或RSA CRT型加密算法。根據一個實施例,所述原函數是通過私鑰而實現的輸入數據的純量乘法,用于執(zhí) 行基于橢圓曲線的加密算法,其中該輸入數據是該橢圓曲線上的預定點。根據一個實施例,所述微電路設備還被配置成在執(zhí)行所述原函數之前最初以可復 制的方式生成至少一個驗證參數,在執(zhí)行所述原函數期間或之后重新生成這個驗證參數, 以及比較重新生成的驗證參數和最初生成的驗證參數。根據一個實施例,所述數據生成器被配置成通過以下操作生成所述保護參數和/ 或驗證參數-定義生成函數,其是通過對存儲于存儲器中的預定的至少一個秘密參數連續(xù)應 用僅能從這個秘密參數以及這個函數中確定的值的序列來實現的,-從所述序列的至少一個值中以可復制的方式生成所述保護參數和/或所述驗證參數。根據一個實施例,所述數據生成器被配置成-定義多個函數,每個函數是通過對存儲于存儲器中的預定的至少一個相應秘密 參數連續(xù)應用僅能從相應秘密參數和相應函數中確定的相應值序列而實現的生成函數,-組合利用預定義關系而生成的多個值序列以生成新的值序列,-從這個序列的至少一個值中以可復制的方式生成所述保護參數和/或驗證參數。根據一個實施例,所述數據生成器被配置成-定義生成函數,其是通過對存儲于存儲器中的預定的至少一個秘密參數連續(xù)應 用僅能從該秘密參數和該函數中確定的值的序列來實現的,-組合利用加密算法的公共參數而生成的值的序列以生成新的值序列,-從這個序列的至少一個值以可復制的方式生成所述保護參數和/或驗證參數。本發(fā)明的另一個實施例在于提供一種便攜式設備,特別是芯片卡,其包括如前文 所述的微電路設備。


通過閱讀下面結合(但不限于)附圖所做出的詳細描述,本發(fā)明的所述和其他目 的、優(yōu)點和特征將變得明顯,其中-圖1,之前已描述,示意性地示出了傳統(tǒng)的微電路設備的結構;-圖2示意性地示出了根據本發(fā)明第一實施例的微電路設備的結構;-圖3示意性地示出了包括圖2的設備的芯片卡;-圖4示出了由圖2的設備實現的第一對策方法的連續(xù)步驟;-圖5示出了由圖2的設備實現的第二對策方法的連續(xù)步驟;-圖6示出了由圖2的設備實現的第三對策方法的連續(xù)步驟;
-圖7示出了由圖2的設備實現的第四對策方法的連續(xù)步驟;-圖8示出了由圖2的設備實現的第五對策方法的連續(xù)步驟;-圖9示意性地示出了根據本發(fā)明第二實施例的微電路設備的結構;以及-圖10示出了由圖9的設備實現的對策方法的連續(xù)步驟。
具體實施例方式本發(fā)明的第一實施例圖2所示的微電路設備12’包括(如圖1所示)非對稱加密算法應用10、具有用 于特別地存儲旨在由應用10使用的私鑰d的安全存儲空間16的存儲器14、微處理器18和 用于提供保護參數a的偽隨機數據生成器20。它還包括對策部分22’,其將改進帶入現有 對策,特別是之前描述過的對策部分22。此外,設備12’例如被集成到便攜式設備中,特別是以安全芯片卡30的形式,如圖 3所示。應當指出,盡管算法加密應用10和對策部分22’被顯示成不同的,然而它們可能 實際上被適當地重疊成包含對策的非對稱加密算法的同一個軟件或硬件實現。與設備12相反,在設備12’中,對策部分22’包括-用于將私鑰d的二進制表示分成幾個二進制塊Dlri,.. . ,D0的部分22’ a,所述二 進制塊的大小的總和例如等于私鑰的二進制表示的大小,私鑰d的二進制表示的大小因而 可以寫為dbin= DV1,...,DJ2,和-用于利用所述保護參數a變換每個二進制塊Di并且對于每個變換后的二進制塊 D’ i利用原函數執(zhí)行中間計算的部分22’ b。更確切地說,生成器20可以被設計成生成保護參數a,該參數的二進制表示大小 最多等于私鑰d的二進制表示大小的一半。同樣,部分22’a可以被設計成將私鑰的二進制 表示劃分成使得每個二進制塊的大小大于或等于該保護參數的二進制表示大小。非對稱加 密算法應用10然后利用大小不超過dbin的一半的數據來執(zhí)行原函數。這對于計算是非常 有利的。根據本發(fā)明的不同的對策方法可以通過圖2的設備來實現。圖4示出了實現對消息M進行模數N的RSA型加密的第一方法。通常,算法RSA 要求使用私鑰d,其二進制表示的大小η例如等于η = 1024比特。如果(Ii是這個二進制表 示的比特,則 dbin = [Cllri,· · ·,d。]2。令S = Exp (M,D,N, S)是下面的原函數對于從j-Ι變化到0的i S — S2 mod N如果Di = 1,S — S. M mod N輸出值S其中M和S分別是原函數的輸入和輸出數據,N是RSA模數并且D是大小j的二 進制指數,例如D = QV1, ...,DcJ2,其中Di是D的二進制值。在第一步驟100期間,偽隨機數據生成器20生成保護參數a,其二進制表示的大小 k小于n,例如k = 32比特。
10
在第二可選步驟102期間,生成驗證參數rl。驗證參數rl例如通過應用預定函數 COMB來確定,具體地是組合由生成器20生成且保存于存儲器中的值ν、保護參數a和算法 RSA的其他參數。在同一個可選步驟102期間,消息M和RSA模數N也可以利用函數g和h來變換N — h(N),貝IjM ^ g (M) mod N,其中g和 h 例如是通過 g(x) =x+r2.N 和 h(x) =r3.x,或 g(x) =r2.x 和 h(x) =χ而定義的函數,其中r2和r3可以是由生成器20生成且保存于存儲器中的隨機變量。然后,在求冪的步驟104期間,數據V被設為1,并且執(zhí)行下面的計算V = Exp (M, a, N, V),其中V代表利用原函數Exp從輸入數據M和保護參數a中計算的中間數據。在復位步驟106期間,輸出數據S被設為1并且計數器i被設為n-1。然后,在測試步驟108期間,計數器i的值被測試。如果該值嚴格為正,則執(zhí)行步驟 110,如果不是這樣,則執(zhí)行后隨一最終步驟122的可選步驟120或直接執(zhí)行最終步驟122。在步驟110期間,整數j例如被隨機地確定,其證明了下面的條件(a)k<j<i,和(b) Cli. 2、(1η· 2jM+· · · +Cli^.. 2° > a。此外,如果j例如是i_j < k,則計數器i的值被分配給j。然后,在步驟112期間,計算值D = Cli. 2Η-ι· . . +屯_」.2°_a。值D代表通過 a來變換的私鑰d的二進制塊。然后,在步驟114期間,利用二進制塊D執(zhí)行下面的中間計 算S = Exp(M,D,N,S)。然后,在步驟116期間,將中間值V與在步驟114獲得的值S以下面的方式相組 合S —S. V mod N。然后,值i-j在步驟118期間被分配給計數器i。然后,返回測試步驟108。當計數器i的值等于零并且假設可選步驟102已被執(zhí)行,在步驟108之后進行可 選步驟120。在步驟120期間,參數rl再次利用函數COMB公共的和/或保存于存儲器中的 由該函數使用的值而被計算。如果rl的值在步驟102與120之間改變,則可以推斷在這兩 個步驟之間發(fā)生了故障注入攻擊。加密應用10發(fā)送告警。在步驟120期間,輸出數據S也 根據被用來掩蔽輸入數據M的函數g和h而被揭露。根據由加密應用10發(fā)送的告警,錯誤 地執(zhí)行的逆變換(揭露)能夠阻止故障注入攻擊。最后,在最后一個步驟122期間,加密應用10輸出值S。應當指出,上述第一方法涉及n+k次求冪迭代步驟104期間的k次迭代和步驟 108至118循環(huán)中的η次迭代。當k遠小于η時(例如當k = 32而η = 1024),算法RSA 的對策的額外成本是很低的。它在任何情況下都遠低于涉及至少2η次求冪迭代的現有技 術解決方案。圖5示出了可由圖2的設備實現并且也實現對消息M的模數N的RSA型加密的根 據本發(fā)明的第二對策方法。它是第一方法的變型,其中保護參數a的大小k被選擇成存在
11一個整數U,例如n = k.u,值j(步驟110)固定于k并且不強制條件(b)。該對策方法因而 被簡化。該第二方法的步驟200、202(可選)和204與之前描述的步驟100、102 (可選)和 104相同。然后,在復位步驟206期間,輸出數據S被設為1并且計數器i被設為u-1。在 同一個步驟期間,私鑰d的二進制表示被分成u個連續(xù)塊Di,每個塊大小為k,例如dbin = QV1, . . . ,D0J20 這樣,對于任何 i,0 彡 i < u =Di =. . . ,DkiJ20 此外,計算二進制 進位數向量C,C = [Cu^1, CJ2并將它保存于存儲器中。它是以下面的方式來計算的-C0 = O,-Ci = (Di-B-Ci^1)/2k0然后,在測試步驟208期間,計數器i的值被測試。如果該值嚴格為正,則執(zhí)行步 驟210,如果不是這樣,則執(zhí)行后隨最終步驟220的可選步驟218或直接執(zhí)行最終步驟220。在步驟210期間,計算值D’ i = Di-B-Ci0對于算法的良好運算,如果i = u_l并 且如果Clri = 1,則這意味著D’ i遠小于a并且在該情況下保持D’ i = Di。D’ i的值代表通 過a變換的私鑰d的第i個二進制塊。應當指出,該第二方法的優(yōu)點之一是只需要存儲向 量而不需要存儲變換后的塊D’ it)然后,在步驟212期間,利用二進制塊D’ i執(zhí)行下面的中間計算S = Exp(M,D,ρ N,S)。然后,在步驟214期間,以下面的方式組合中間值V和在步驟212獲得的值S S —S. V mod N。然后,在步驟216期間將值i_j分配給計數器i。然后返回測試步驟208。步驟218至220等同于之前描述的步驟120和122。還應當指出,上述第二方法涉及n+k次求冪迭代。圖6示出了可由圖2的設備實現并且實現對消息M的模數N = p. q的RSA CRT (即 使用中國剩余定理的RSA算法)型加密的根據本發(fā)明的第三對策方法。通常,RSA CRT算 法構成RSA算法的可選方案用以執(zhí)行簽名或解密它快四倍。它定義了下列參數-dp = d mod(p-l),-dq = d mod(q-l),-A = mod q。它因而在于用兩個執(zhí)行上更簡單的求冪計算來代替求冪計算S = Mdmod N,這兩個 求冪計算由于相對于N:Sp = Mdp mod ρ和Sq = Mdq mod q的大小的ρ和q的大小而變得更 加簡單。最后,利用下面的計算找到S:S = [ ((Sq-Sp). A mod q). p+Sp]mod N。該第三方法的步驟300和302 (可選)與之前描述的步驟100、200和102、202 (可
選)相同。然后,在求冪步驟304期間,數據Vp被設為1,并且執(zhí)行下面的計算Vp = Exp (M, a, ρ, Vp),其中,Vp代表利用原函數Exp從輸入數據M和保護參數a中計算的中間數據。在步驟304之后,在包括一系列循環(huán)步驟且對應于已描述的步驟106至118或206替模數N)的步驟306期間,執(zhí)行計算Sp = Mdp modP。在求冪步驟308期間,數據Vq被設為1,并且執(zhí)行下面的計算Vq = Exp (M, a, q, Vq),其中Vq代表利用原函數Exp從輸入數據M和保護參數a中計算的中間數據。在步驟308之后,在包括一系列循環(huán)步驟且對應于已描述的步驟106至118或206 至216 (除了用dp代替指數d并且用ρ代替模數N)的步驟310期間,執(zhí)行計算Sp = Mdp modP。執(zhí)行步驟304至310的順序并不是固定不變的。實際上,唯一重要的是它們是在 步驟302之后執(zhí)行的,步驟304是在步驟306之前執(zhí)行的,以及步驟308是在步驟310之前 執(zhí)行的。在循環(huán)的輸出處,即在步驟306和310結束時,執(zhí)行后隨有最終步驟314的可選步 驟312或直接執(zhí)行最終步驟314??蛇x步驟312等于步驟120并且僅在已執(zhí)行可選步驟302的情況下才被執(zhí)行。在最終步驟314期間,加密算法10如之前指出的那樣從Sp和Sq中計算S的值并 且輸出這個值?,F在將參考圖7介紹可由圖2的設備實現并且實現對消息M的橢圓曲線型加密的 根據本發(fā)明的第四對策方法。通常,也稱為ECC (橢圓曲線密碼算法)的非對稱橢圓曲線加 密算法需要使用這樣的私鑰d 其大小η遠小于針對同等安全級別的RSA算法所需要的。通 常,私鑰d的二進制表示必須至少等于η = 160比特。在利用私鑰d的ECC算法中,為了執(zhí)行簽名或解密,“執(zhí)行原函數”在于從輸入數據 P和私鑰d中以下面的方式計算輸出數據Q Q = d. P,其中P和Q是預定橢圓曲線在有限域GF (ρ)上的點,其中ρ是嚴格大于 3的質數(例如在域GF(13)中的橢圓曲線y2 = x3+10x+5),并且其中運算符“.”是純量乘 法,在這里是點P乘以純量d。令[Cllri,d0]2是私鑰d的二進制表示,可以如下進行計算Q = O對于從n-1變化到0的i Q —2Q如果Cli = 1,則 Q —Q+P其中,“2Q”和“Q+P”分別是點加倍和點加法運算,它們的公式是通過所選橢圓曲 線和域GF(p)的階數以常規(guī)方式被確定的并且不在這里詳述。在下面的描述中,S ScalarMult (P,D,Q)是指下面的原函數對于從j-Ι變化到0的i Q —2Q如果di = 1,則 Q — Q+P輸出值Q其中,P和Q分別是原函數的輸入和輸出數據,并且D是大小為j的二進制指數, 例如D = [Djm, ...,DcJ2,其中Di是D的二進制值。在第一步驟400期間,偽隨機數據生成器20生成其二進制表示的大小k遠小于η
13的保護參數a,例如k = 32比特。在第二可選步驟402期間,生成驗證參數r。驗證參數r例如是通過應用預定函數 COMB來確定的,特別是通過組合由生成器20生成且保存于存儲器中的值ν、保護參數a和 算法ECC的其他參數。在這個可選步驟402期間,點P的坐標Px和Py也可以利用應用于該坐標的函數 g 來變換P — g(Px,Py)mod N。然后,在步驟404期間,數據V被設為0,并且執(zhí)行下面的計算V = ScalarMult (P, a, V),其中,V代表利用原函數ScalarMult從輸入數據P和保護參數a中計算的中間數據。在復位步驟406期間,輸出數據Q被設為0并且計數器i被設為n-1。然后,在測試步驟408期間,計數器i的值被測試。如果該值嚴格為正,則執(zhí)行步驟 410,如果不是這樣則執(zhí)行后隨有最終步驟422的可選步驟420或直接執(zhí)行最終步驟422。在步驟410期間,例如隨機地確定整數j,其證明了下面的條件(a)k<j<i,和(b) Cli. 2、(1η· 2jM+· · · +d^j. 2° > a。此外,如果j是例如i_j < k,則計數器i的值被分配給j。然后,在步驟412期間,計算值D = Cli. 2^-1· . . +屯_」.2°_a。值D代表通過a 變換的私鑰d的二進制塊。然后,在步驟414期間,利用二進制塊D執(zhí)行下面的中間計算Q = ScalarMult (P,D,Q)。然后,在步驟416期間,以下面的方式組合中間值V和在步驟414獲得的值Q Q — Q+V。然后,值i-j在步驟418期間被分配給計數器i。然后返回測試步驟408。當計數器i的值等于零并且假設已執(zhí)行可選步驟402,在步驟408之后執(zhí)行可選步 驟420,參數r利用函數COMB和由該函數使用的公共的和/或保存于存儲器中的值而被再 次計算。如果r的值在步驟402與420之間改變,則可以推斷在這兩個步驟之間發(fā)生了故 障注入攻擊。由加密應用10發(fā)送告警。在步驟420期間,輸出數據Q也根據用于掩蔽輸入 數據P的函數g而被揭露。根據由加密應用10發(fā)送的這個告警,錯誤地執(zhí)行的逆變換(揭 露)可以阻止故障注入攻擊。最后,在最后一個步驟422期間,加密應用10輸出值Q。還應當指出,上述第四方法涉及n+k次純量乘法迭代,即步驟404期間的k次迭代 和步驟408至418的循環(huán)中的η次迭代。當k遠小于η (例如k = 32而η = 160或更大) 時,算法ECC的對策的額外成本非常低。它在任何情況下都遠低于涉及至少2η次純量乘法 迭代的現有技術解決方案??蛇x地,在步驟404期間,數據V被復位至0,并且執(zhí)行下面的計 算V = ScalarMult (-P, a,V)。在這種情況下,在步驟412期間,計算D = φ. 2^(1,-1· 2JM+. . . +d^j. 2°+a的值。這構成了通過a實現的私鑰d的另一個可能的變換。圖8示出了可由圖2的設備實現并且也實現橢圓曲線加密的根據本發(fā)明的第五對 策方法。它是第四方法的變型,其中保護參數a的大小k被選擇成存在一個整數U,例如η=k. u, j的值(步驟410)保持在k并且不強制條件(b)。該對策方法因而被簡化。該第五方法的步驟500、502 (可選)和504與之前描述的步驟400、402 (可選)和 404相同。然后,在復位步驟506期間,輸出數據Q被設為0并且計數器i被設為U-I。在同一 步驟期間,私鑰d的二進制表示被分成u個連續(xù)塊Di,每個塊大小為k,例如dbin= QV1,..., DJ2。這樣,對于任何i,0彡i <u =Di = [c^h,...,Dki]2。此外,二進制進位數的向量 C, C= [Clri,CJ2被計算且保存于存儲器中。它是通過以下方式來計算的—C。 = 0,-Ci = (Di-B-Ci^1)/2k0然后,在測試步驟508期間,計數器i的值被測試。如果該值嚴格為正,則執(zhí)行步驟 510,如果不是這樣,則執(zhí)行后隨有最終步驟520的可選步驟518或直接執(zhí)行最終步驟520。在步驟510期間,計算值D’ i = Dra-Cp對于該算法的良好運算,如果i = u_l 并且如果Clri = 1,則這意味著D’ i小于a并且在該情況下保持D’ i = Di。D’ i的值代表通 過a變換的私鑰d的第i個二進制塊。應當指出,第二方法的優(yōu)點之一是只需要存儲二進 制進位數的向量C而不需要存儲變換后的塊D’ ”然后,在步驟512期間,利用二進制塊D’ i執(zhí)行下面的中間計算Q = ScalarMult (P, D,Q)。然后,在步驟514期間,將中間值V與在步驟512獲得的值Q以下面的方式相組 合Q —Q+V。然后,值i-Ι在步驟516期間被分配給計數器i。然后返回測試步驟508。步驟518和520等同于之前描述的步驟420和422。還應當指出,上述第二方法涉及n+k次純量乘法迭代。如針對第四方法那樣,可選地,在步驟504期間,數據V被設為0,并且執(zhí)行下面的 計算V = ScalarMult (-P, a, V)。在這種情況下,在步驟506期間,以下面的方式修改二進 制進位數向量的計算-C0 = O,-Ci = (Di+a+Ci_1)/2k0在這種情況下,在步驟510期間,計算值D’ i = Di+a+Ci。這構成通過a實現的私 鑰d的另一種可能的變換。本發(fā)明的第二實施例圖9所示的微電路設備12”包括(如圖2所示的那樣)算法加密應用10、含有安 全存儲空間16的存儲器14、微處理器18和對策部分22’。該設備例如被集成到便攜式設 備中,特別是以安全芯片卡30的形式,如圖3所示。然而,應當指出,盡管算法加密應用10 和對策部分22’被顯示成不同的,然而它們實際上可以被適當地重疊成包含對策的加密算 法的同一個實現。如設備12’那樣,設備12”的對策部分22’包括-用于將私鑰d的二進制表示分成幾個二進制塊Dlri,.. . ,D0的部分22’ a,所述二 進制塊的大小的總和例如等于該私鑰的二進制表示的大小,和
-用于利用所述保護參數a變換每個二進制塊Di并且對于每個變換后的二進制塊 D’ i利用原函數執(zhí)行中間計算的部分22’ b。與設備12’相反,在設備12”中,傳統(tǒng)類型的偽隨機數據生成器20被包括以下部 分的數據生成器20”所代替-用于將預定義函數F應用于至少一個預定秘密參數S以生成僅能從該秘密參數 和函數F中確定的值的序列的部分20”a,和-用于從這個序列中的至少一個值以可復制的方式提供至少一個保護參數a的部 分 20”b。部分20” a實際上是函數F的軟件或硬件實現。秘密參數S被存儲在安全存儲器16中并且提供給生成器20”的部分20” a的輸 入,而保護參數a在部分20”b的輸出中被提供給對策部分22’。在這個第二實施例中,參數a因而不是上述現有技術文件中提到的傳統(tǒng)意義下的 隨機變量。它是從對于由生成器20”執(zhí)行的函數F關于秘密參數S的計算中產生的確定性 結果,其中所述秘密參數可能對于其上設有微電路12’的芯片卡是適當的。所述秘密參數 例如是從設備30的公共數據中導出的。函數F至S的重復應用生成序列(An),該序列的元素是由生成器提供的保護參數 的源。整體上來講,生成器可以按照實現于卡30中的對策應用來提供所需數目的來自序列 (An)的值的參數a。在已知生成函數F和該函數使用的初始確定性元素(參數S)的情況 下,這個序列(An)可以只是被復制的。每個保護參數a可以直接來自序列(An)中的元素An 換句話說,a = An。可選地, 元素An可能在提供參數a之前進行處理。例如,a可以是計算a = An XOR kn的結果,其中 kn是秘密變換常數。不可否認,如果序列是(An)循環(huán)的和/或在有限的元素集合中操作,則所生成的 值An的空間必須足夠大來抵抗攻擊。實際上,有關的空間越大,對策就越可靠。首先,將介紹根據本發(fā)明第二實施例的、可由生成器20”提供的值序列(An)的幾 個非限制性例子。然后,將介紹這種值序列的幾種可能的使用以特別地向之前參考圖4至 8描述的非對稱加密的五種對策應用提供保護參數。用于生成提供保護參數的值序列的函數的例子1)基于算術幾何數列的函數如果值序列(An)是利用整數值函數F通過下面的關系式來定義的An+1 = F(An) = q.An+r,其中q和r是秘密參數,其利用序列的初始元素A0構成之前提到的秘密參數S,可 以提供來自算術幾何數列的保護參數。該保護參數例如是序列(An)中的元素。如果r = 0,則它是幾何序列,其用在確切的加密步驟中的項Ai可以利用秘密參數 q和A0以下面的方式來找到=Ai = q1. A00如果q = 1,則它是算數序列,其項Ai可以利用秘密參數r和A0以這樣的方式找 到-Ai = r. i+A0。如果r不等于零并且q不等于1,則它是算數幾何序列,其項Ai可以利用秘密參數 q、I^PA0 以這樣的方式找到=Ai = Qi. A0+r. (Qi-I) / (q_l)。
16
序列(An)中的元素的空間也可以通過整數m利用下面的關系式來減小An+1 = F (An) modulo m = (q. An+r) modulo m。應當指出,如果m是質數,則這個序列采取有限域上的逆仿射變換組的形式GF (m) ={0,1,..., m-1}。也可以將m選擇成2的乘方,從而生成具有固定數目比特的元素序列。例如,如果 希望生成具有k比特的參數Ai的序列,則選擇m = 2k。優(yōu)選地,m是秘密參數的一部分從而被保存在所述設備的安全存儲器中。2)定義循環(huán)乘法組的函數令GC是具有m個元素的循環(huán)組,其值a作為生成器元素,并且乘法作為內部合成 法則GC = {a, a2,. . .,am}。值序列(An)可以以下面的方式來定義-起始元素A0被選擇成作為對其應用k次組GC的內部合成法則的生成器元素a,-組GC的內部合成法則被應用k’次以從元素Ai到達元素Ai+1。由生成序列(An)的函數所使用的秘密參數S因而例如是生成器元素a和值k、k’ 和m。此外,像之前那樣,所生成的保護參數例如是序列(An)的元素。3)定義Frobenius組的函數令GF(q)是有限域,其中階數q是k比特的質數。這個有限域上的逆仿射變換組 是Frobenius組。Frobenius組的令人感興趣的屬性是沒有任何非平凡的元素固定在不止
^fv 點—t ο在這個背景下,可用的仿射變換采取這樣的函數形式y(tǒng) = f(x) = b.x+c,其中 b興O并且運算是在域GF(q)中完成的。因此可以定義生成應用于預定秘密參數q、b、c和 A0的序列(An)的函數。通過選擇例如q = 216+1,并且以十六進制記數b = 0x4cd3, c = 0x76bb, A0 = 0xef34,獲得了開始于項 A1 = 0xc6cf 的序列,A2 = 0x8baf, A3 = 0x620d, A4 =0x0605,A5 = 0xe70c, A6 = 0x3049,A7 = 0xe069, A8 = 0x55ee,等等。4)來自具有線性反饋的移位寄存器(LFSR型寄存器)的函數這種函數選擇例如16比特的秘密參數A。,以及例如具有相應16比特輸出的LFSR 移位寄存器。如果LFSR寄存器的大小是m,則序列(An)的項At = m是利用下面的線性等式 通過之前的m個項來確定的At+m = am. At+ a ,At+1+. ..+Q1. At^1,其中 α 丨取值為 0 或 1。5)定義循環(huán)冗余校驗(CRC)的計算的函數這種函數選擇例如16比特的秘密參數A。,以及通常用于CRC計算中的相應的多項 式 CRC,例如多項式 CRC-16(X16+X15+X2+1)或 CRCCCITT V41 (X16+X12+X5+l)。序列(An)中的項 An+1是按照前一項An通過關系式An+1 = F(An)來確定的,其中F基于所選多項式進行CRC計
笪弁。6)值序列的組合實際上,可以計算幾個值序列,每個例如是按照上述方法中的一個,并且然后利用 預定義函數進行組合以生成要用作保護參數的新的值序列。序列(An)因而按照另外兩個 序列(A,n)和(八”11)、通過針對每個索引11計算411 = 11仏’11,八”11)而被生成。有關函數T可以是秘密值矩陣,A’ n和A”n的值因而分別涉及該矩陣的行和列。7)包含值序列和公共數據的組合
17
序列(An)可以也按照具有對策而并不保密的公共數據(例如在執(zhí)行加密應用期 間所使用的數據)從第一個序列(A’n)中生成。在這些數據之中,按照應用,消息M(明文 或編碼)、公鑰e等可以被引用。用作保護參數的序列值因而利用組合所有這些數據的任何 函數COMB而被計算An = COMB (A,n,M,e,· · ·)。這種組合的優(yōu)點是值序列(An)可以被用來不僅將保護參數饋送給加密算法的對 策應用還被用來檢測故障注入攻擊(特別是關于公共數據)。實際上,通過利用秘密參數重 新生成序列(A’ n),例如在加密算法執(zhí)行結束時,但是在利用重新生成的保護參數然后使用 這個重新生成的序列(A’n)和在執(zhí)行結束時出現的公共數據來執(zhí)行初始變換的反向操作之 前,可以檢查函數COMB的應用是否產生相同的值序列(An)以及公共數據是否已經在所述 執(zhí)行期間受到影響。在根據本發(fā)明第二實施例的非對稱加密對策方法中使用按照上述方法之一而生 成的值序列的例子1)第二實施例的一般原理通常,每次使用算法對策時,推薦由對策引入的隨機變量的生成,如在使用偽隨機 數據生成器20的第一實施例中所描述的那樣。如參考圖9所提到的,隨機變量的生成可以 由來自利用至少一個秘密參數而獲得的一個或多個值序列的參數的非隨機生成來替代。圖10示出了由根據圖9的第二實施例的方法所執(zhí)行的步驟的例子,該方法用于執(zhí) 行具有對策的非對稱加密算法,通過執(zhí)行而使用T個保護參數. . . aT,所有保護參數都可 以從由部分20’ a生成的同一個值序列(An)中提取。在第一步驟期間,由生成器20”執(zhí)行INIT,計數器i設為0。計數器i用于在另一 個復位未被執(zhí)行的情況下將從復位步驟INIT起非對稱加密算法被執(zhí)行的次數保存在存儲 器中。在這個步驟期間,值序列必須從中生成的(一個或多個)秘密參數S被定義。它 可以從前一次復位被保存,但是也可以基于復位時的新值而被生成。它例如從唯一標識數 據中生成,例如設備30的公共數據。它也可以從給定時刻的與微電路有關的可能是隨機的 參數或物理現象中生成。在任何情況下,它以安全的方式被保存在存儲器中以使得微電路 能夠利用由部分20”a實現的函數隨時生成相同的值序列(An)。復位步驟INIT可能在微電路生命周期中是唯一的,在制造商設計階段被執(zhí)行,或 多次再現,例如有規(guī)律地或每當計數器i到達值imax時。在具有對策的非對稱加密算法的第一執(zhí)行EXEl期間,生成器20”,具體地是部分 20”a,被調用一次或多次以將秘密參數S應用于預定義函數F,從而一次或多次生成值序列 (An)中的元素的數目T =A1,... Ατ。從這前T個元素中生成T個保護參數ai,...aT。例如,對于任意k,例如1彡k彡T,ak = Ak??蛇x地,如果在保存于安全存儲器中的秘密參數S之中存在T個附加秘密值 Sec1, . . . SecT,則可以執(zhí)行下面的附加計算對于任意k,例如 1 彡 k 彡 T,ak = Seck XOR Ak,或 ak = Seck ADD Ak,或 ak = Seck SUB Ak,從而變換(或篡改或掩蔽)所使用的參數。之后,在具有對策的加密算法的第i次執(zhí)行EXEi期間,生成器20”,具體地是部分20”a,被再次調用一次或多次以將秘密參數S應用于預定義函數F,從而一次或多次生成值 序列(An)中的附加元素的數目T:AT(i_1)+1,...ATi。從這T個附加元素中生成T個保護參數 ai,...aT,如前文描述的那樣。例如,對于任意k,例如1彡k彡T,ak = AT(i_1)+k??蛇x地,如果存在T個附加秘密參數Sec1, . . . SecT,則可以執(zhí)行下面的附加計算對于任意k,例如 1 彡 k 彡 T,ak = Seck XOR At(i -D+k'或 = Seck ADDAt(i_1)+k,或 ak =Seck SUB AT(i_1)+k,從而變換(或篡改或掩蔽)所使用的參數。不管為生成作為保護參數的起源的值序列而使用哪種方法,知道該方法和該方法 使用的秘密值(包括之前或在存儲器EEPROM中的微電路設備的生命周期步驟期間被載入 存儲器中的初始參數A0),使之能夠隨時找到在設備壽命期間所生成且所使用的保護參數。 顯然,這種特殊性能夠使得故障排除被簡單高效地執(zhí)行并且改進對故障注入攻擊的抵抗。用于生成值序列和保護參數所使用的方法的選擇是由預期應用來指示的。2)第二實施例的一般原理對參考圖4至8描述的五種方法的應用由圖4、5和6的第一、第二和第三方法所使用以在步驟100、200、300期間生成保 護參數以及在步驟102、202、302期間生成參數v、r2、r3的方法可以是在第二實施例中推薦 的方法之一。此外,參數a、v、r2、r3可以具有相同的二進制大小并且來自同一個值序列(T =4)。此外,這些參數不必保存在存儲器中,因為它們可以隨時從通過一個或多個秘密參 數和函數F所確定的值序列中找到。因此,參數ν和rl、r2和r3可以在步驟120、218、312 找到而不必在執(zhí)行求冪的期間被保存在存儲器中。在步驟120、218、312中,保護參數也可 以被找到以檢查其完整性在求冪期間被保持。同樣,由圖7和8的第四和第五方法所使用以在步驟400、500期間生成保護參數 以及在步驟402、502期間生成參數ν的方法可以是在第二實施例中推薦的方法之一。此 外,參數3和ν可以具有相同的二進制大小并且來自同一個值序列(T = 2)。此外,這些參 數因而可以不必被保存在存儲器中,因為它們可以隨時從通過一個或多個秘密參數和函數 F而確定的值序列中找到。在于重新生成這些參數的這個過程對于防止實現受到故障注入 攻擊而言是有用的步驟。因此,參數ν和r可以在步驟420、518被找到而不必在執(zhí)行純量 乘法期間被保存在存儲器中。在步驟420、518中,保護參數a也可以被找到以檢查其完整 性以及用于生成它的參數的完整性在純量乘法期間被保持。在上述方法的每一個中,可以在執(zhí)行原函數計算循環(huán)期間增加附加的保護。驗證 參數s按照上面推薦的方法之一被事先生成,該參數被添加至參數a和v、rl或a、V、rl、r2 和r3。在這個計算循環(huán)的每次迭代,例如在第一方法的步驟118,第二方法的步驟216,第三 方法的步驟306和310,第四方法的步驟418和第五方法的步驟516,s被找到并且借助于參 數s以確定性的方式從模數N(在RSA或RSSA CRT的情況下)、從私鑰d等中提取根據消息 M的另一個基礎b的表示或二進制表示的至少一部分中的多個部分。這多個部分然后被標 記成Ms、Ns、ds等,并且可能被組合以構成驗證數據。這個保護的原理是檢查在每次迭代, 驗證數據的值不變。如果驗證數據改變,則數據M、N、d等可以被擾亂從而不被發(fā)現并且可 以觸發(fā)告警。除了 M、N和d之外的其他數據可以被使用,假設這些數據是在執(zhí)行原函數期 間被使用的。很明顯,之前描述的對策方法使之能夠實現用于保護用來對抗備用信道的攻擊的私鑰的非對稱加密應用,同時將計算時間的額外成本限制在相當公平的級別。
此外,應當指出,本發(fā)明不限于上述實施例,并且盡管已經介紹了許多變型,也可 以設想其他變型,特別是提供與已描述的有所不同的其他類型的私鑰變換或與所考慮的有 所不同的其他非對稱加密應用。
權利要求
一種實現非對稱私鑰(d)加密算法的電子元件中的對策方法,包括 生成(100;200;300;400;500)保護參數(a), 利用所述加密算法的原函數從輸入數據和所述保護參數(a)中計算(104;204;304,308;404;504)中間數據,還包括 將所述私鑰(d)的二進制表示分成(110;206;306,310;410;506)幾個二進制塊, 利用所述保護參數(a)變換(112;210;306,310;412;510)每個二進制塊,并且針對每個變換后的二進制塊利用所述原函數執(zhí)行(114;212;306,310;414;512)中間計算,和 通過組合(116;214;306,310;416;514)所述中間數據和所述中間計算(114;212;306,310;414;512)來計算(106 122;206 220;306,310,312,314;406 422;506 520)輸出數據。
2.根據權利要求1所述的電子元件中的對策方法,包括劃分(110;206 ;306, 310 ;410 ; 506)所述私鑰的二進制表示以使得每個二進制塊(d)的大小大于或等于所述保護參數(a) 的二進制表示的大小。
3.根據權利要求1或2所述的電子元件中的對策方法,包括將所述私鑰(d)的二進制 表示分成(110 ;206 ;306, 310 ;410 ;506)幾個二進制塊以使得所述二進制塊的大小的總和 大于所述私鑰的二進制表示的大小。
4.根據權利要求1至3中任一項所述的電子元件中的對策方法,包括以迭代的方式隨 機地確定(110 ;410)每個二進制塊的大小以使得每個二進制塊的值大于所述保護參數(d) 的值。
5.根據權利要求1至3中任一項所述的電子元件中的對策方法,包括-選擇所述保護參數(a)的二進制表示的大小k以使得存在一個整數2,例如n = 1^.11,其中11是所述私鑰(d)的二進制表示的大小,和-將所述私鑰的二進制大小分成(206 ;506)U個二進制塊,每個二進制塊具有k個比特。
6.根據權利要求1至5中任一項所述的電子元件中的對策方法,其中,所述原函數是通 過所述私鑰(d)而實現的所述輸入數據的模冪,用于執(zhí)行RSA或RSA CRT型加密算法。
7.根據權利要求6所述的電子元件中的對策方法,包括事先掩蔽所述RSA模數和所述 輸入數據的步驟(102;202;302)。
8.根據權利要求1至5中任一項所述的電子元件中的對策方法,其中,所述原函數是通 過所述私鑰(d)而實現的所述輸入數據的純量乘法,用于執(zhí)行基于橢圓曲線的加密算法, 其中所述輸入數據是該橢圓曲線上的預定點。
9.根據權利要求8所述的電子元件中的對策方法,包括事先掩蔽所述橢圓曲線上的預 定點的步驟(402 ;502)。
10.根據權利要求1至9中任一項所述的電子元件中的對策方法,還包括-在所述原函數的任何執(zhí)行之前,最初以可復制的方式生成(102 ;202 ;302 ;402 ;502) 至少一個驗證參數,-在所述原函數的執(zhí)行期間或之后,重新生成(120,118 ;218,216 ;312,306,310 ;420, 418 ;518,516)這個驗證參數,并且將重新生成的驗證參數與最初生成的驗證參數相比較。
11.根據權利要求10所述的電子元件中的對策方法,其中,重新生成和比較的步驟 (118 ;216 ;306, 310 ;418 ;516)是在將所述原函數應用于變換后的二進制塊時,在該原函數 的每次迭代時被執(zhí)行的。
12.根據權利要求10或11所述的電子元件中的對策方法,包括如果重新生成和比較的 步驟指示所述最初生成的驗證參數與所述重新生成的驗證參數不同,則觸發(fā)告警并且至少 擾亂所述私鑰(d)。
13.根據權利要求1至12中任一項所述的電子元件中的對策方法,其中,生成(100, 102 ;200, 202 ;300, 302 ;400,402 ;500, 502)所述保護參數和/或所述驗證參數包括-定義生成函數(20” a),其是通過對存儲于存儲器(16)中的預定的至少一個秘密參 數(S)連續(xù)應用只能從該秘密參數(S)和該函數(20”a)中確定的值的序列((An))來實現 的,_以可復制的方式從所述序列的至少一個值中生成所述保護參數(a)和/或驗證參數。
14.根據權利要求13所述的電子元件中的對策方法,包括-定義多個函數,每個函數是通過對存儲于存儲器(16)中的預定的至少一個相應秘密 參數(S)連續(xù)應用僅能從相應秘密參數(S)和相應函數中確定的相應值序列((A’n),(A”n)) 而實現的生成函數,_組合利用預定義關系而生成的多個值序列((A’n),(A”n))以生成新的值序列((An)),-從這個新序列((An))的至少一個值中以可復制的方式生成所述保護參數(a)和/或 驗證參數。
15.根據權利要求13所述的電子元件中的對策方法,包括-定義生成函數,其是通過對存儲于存儲器(16)中的預定的至少一個秘密參數(S)連 續(xù)應用僅能從該秘密參數(S)和該函數中確定的值的序列((A’ n))來實現的,-組合利用所述加密算法的公共參數而生成的值序列((A’n))以生成新的值序列 ((AJ),-從這個新序列((An))的至少一個值以可復制的方式生成所述保護參數(a)和/或驗 證參數。
16.一種微電路設備(12’,12”),包括用于實現非對稱私鑰加密算法的對策方法的微 處理器(18)、用于存儲所述私鑰(d)的至少一個安全存儲器(16)、以及用于生成保護參數 (a)的數據生成器(20,20”),該設備被配置成_利用所述加密算法的原函數從輸入數據和所述保護參數(a)中計算(104 ;204 ;304, 308 ;404 ;504)中間數據,-將所述私鑰的二進制表示分成(110 ;206 ;306,310 ;410 ;506)幾個二進制塊,-利用所述保護參數(a)變換(112 ;210 ;306, 310 ;412 ;510)每個二進制塊,并且對于 每個變換后的二進制塊利用所述原函數執(zhí)行(114 ;212 ;306,310 ;414 ;512)中間計算,-通過組合(116 ;214 ;306, 310 ;416 ;514)所述中間數據和所述中間計算(114 ;212 ; 306,310 ;414 ;512)來計算(106-122 ;206-220 ;306,310,312,314 ;406-422 ;506-520)輸出 數據。
17.根據權利要求16所述的微電路設備(12’,12”),其中,所述微處理器被配置成以迭 代的方式隨機地確定(110;410)每個二進制塊的大小以使得每個二進制塊的值大于所述保護參數的值(d)。
18.根據權利要求16所述的微電路設備(12’,12”),其中,所述數據生成器(20,20") 被配置成選擇所述保護參數(a)的二進制表示的大小k以使得存在一個整數u > 2,例如n =讓.11,其中11是所述私鑰(d)的二進制表示的大小,并且所述微處理器(18)被配置成將所 述私鑰的二進制表示分成(206 ;506)U個二進制塊,每個二進制塊具有k個比特。
19.根據權利要求16至18中任一項所述的微電路設備(12’,12”),其中,所述原函數 是通過所述私鑰(d)而實現的所述輸入數據的模冪,用于執(zhí)行RSA或RSA CRT型加密算法。
20.根據權利要求16至18中任一項所述的微電路設備(12’,12”),其中,所述原函數 是通過所述私鑰(d)而實現的所述輸入數據的純量乘法,用于執(zhí)行基于橢圓曲線的加密算 法,其中所述輸入數據是所述橢圓曲線上的預定點。
21.根據權利要求16至20中任一項所述的微電路設備(12’,12”),還被配置成在所述 原函數的任何執(zhí)行之前,最初以可復制的方式生成(102 ;202 ;302 ;402 ;502)至少一個驗 證參數,在所述原函數的執(zhí)行期間或之后重新生成(120,118 ;218,216 ;312,306,310 ;420, 418 ;518,516)這個驗證參數,以及將重新生成的驗證參數與最初生成的驗證參數相比較。
22.根據權利要求16至21中任一項所述的微電路設備(12’,12”),其中,所述數據生 成器(20”)被配置成通過下列操作生成(100,102 ;200, 202 ;300, 302 ;400,402 ;500, 502) 所述保護參數和/或驗證參數-定義生成函數(20” a),其是通過對存儲于存儲器(16)中的預定的至少一個秘密參 數(S)連續(xù)應用只能從該秘密參數(S)和該函數(20”a)中確定的值的序列((An))來實現 的,_以可復制的方式從所述序列的至少一個值中生成所述保護參數(a)和/或驗證參數。
23.根據權利要求22所述的微電路設備(12’,12”),其中,所述數據生成器(20”)被 配置成-定義多個函數,每個函數是通過對存儲于存儲器(16)中的預定的至少一個相應秘密 參數(S)連續(xù)應用僅能從相應秘密參數(S)和相應函數中確定的相應值序列((A’n),(A”n)) 而實現的生成函數,_組合利用預定義關系而生成的多個值序列((A’n),(A”n))以生成新的值序列((An)),-從這個新序列((An))的至少一個值中以可復制的方式生成所述保護參數(a)和/或 驗證參數。
24.根據權利要求22所述的微電路設備(12’,12”),其中,所述數據生成器(20”)被 配置成-定義生成函數,其是通過對存儲于存儲器(16)中的預定的至少一個秘密參數(S)連 續(xù)應用僅能從該秘密參數(S)和該函數中確定的值的序列((A’ n))來實現的,-組合利用所述加密算法的公共參數而生成的值序列((A’n))以生成新的值序列 ((AJ),-從這個新序列((An))的至少一個值以可復制的方式生成所述保護參數(a)和/或驗 證參數。
25.一種便攜式設備,特別是芯片卡(30),其包括根據權利要求16至24中任一項所述 的微電路設備(12’,12”)。
全文摘要
實現非對稱私鑰加密算法的電子元件中的對策方法,包括生成保護參數并利用原函數從保護參數中計算中間數據。該方法還包括將私鑰的二進制表示分成幾個二進制塊,利用保護參數變換每個二進制塊,并且對于每個變換后的二進制塊利用原函數執(zhí)行中間計算,并且通過組合中間數據和中間計算來計算輸出數據。
文檔編號G06F7/72GK101925875SQ200980102893
公開日2010年12月22日 申請日期2009年1月23日 優(yōu)先權日2008年1月23日
發(fā)明者B·本蒂歐, B·菲克斯, S·內羅 申請人:英賽康特雷斯公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
方正县| 曲周县| 宜城市| 得荣县| 五家渠市| 千阳县| 牟定县| 普兰店市| 潼关县| 抚松县| 容城县| 林州市| 东乡县| 姜堰市| 三门县| 于田县| 万宁市| 贺州市| 佳木斯市| 唐山市| 桓台县| 英德市| 马关县| 扎兰屯市| 贵州省| 华池县| 张掖市| 神木县| 夏邑县| 和顺县| 台南县| 苍梧县| 镇江市| 县级市| 新宁县| 乃东县| 海原县| 吉木乃县| 安多县| 洞头县| 阿荣旗|