專利名稱:密碼轉(zhuǎn)換數(shù)據(jù)文本的改進(jìn)或與之相關(guān)的改進(jìn)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種密碼轉(zhuǎn)換數(shù)據(jù)文本的方法和一種被配置為實(shí)現(xiàn)此方法的半導(dǎo)體 器件。
背景技術(shù):
一種數(shù)據(jù)文本被密碼轉(zhuǎn)換的方法是通過求模冪(modular exponentiation)。這種求冪涉及,確定當(dāng)以指數(shù)e升冪為e次方的正整數(shù)底數(shù)y除以正指數(shù)時(shí)取其 余數(shù),即模ζ。換句話說,該計(jì)算采用如下形式χ = ye (mod ζ)如上所述的模冪計(jì)算實(shí)現(xiàn)相對(duì)簡單,即使相關(guān)的數(shù)非常大。然而,確定其離散對(duì)數(shù),即給定整數(shù)底數(shù)y、余數(shù)X和模數(shù)Z來得到指數(shù)e是很困難 的。這種方法的功能使得模冪算法在密碼學(xué)中非常有用。使用模冪算法的一個(gè)密碼學(xué)的領(lǐng)域是公共密鑰密碼學(xué),如RSA(Rivest,Shamir和 Adleman)公共密鑰密碼學(xué)。RSA密碼學(xué)將模冪算法用于密碼轉(zhuǎn)換數(shù)據(jù)文本以便加密數(shù)據(jù)文本和解密數(shù)據(jù)文 本。RSA密碼學(xué)首先包含密碼產(chǎn)生的步驟,其包括公共密鑰和私有密鑰的確定。公共密 鑰可以是所有人已知的,并且被用于加密消息。利用公共密鑰加密后的消息只能利用私有 密鑰來解密。公共密鑰包含模數(shù)ζ和公共加密指數(shù)e。私有密鑰包括模數(shù)ζ和必須保密的私有 解密指數(shù)d。為了加密信息M,首先必須利用約定的可逆協(xié)議,如填充(padding)方案,將M轉(zhuǎn)換 為整數(shù),即數(shù)據(jù)文本y。第一密碼轉(zhuǎn)換,即加密轉(zhuǎn)換,包含根據(jù)下式來產(chǎn)生數(shù)據(jù)文本y的整數(shù)表示X χ = ye (mod ζ)整數(shù)表示χ是加密的密碼文本,可以被傳送給接收方。預(yù)期的接收方可以通過對(duì)加密后的數(shù)據(jù)文本χ執(zhí)行第二密碼轉(zhuǎn)換,即解密轉(zhuǎn)換, 來恢復(fù)原始數(shù)據(jù)文本y。第二密碼轉(zhuǎn)換包含利用私有解密指數(shù)d通過如下計(jì)算產(chǎn)生加密數(shù)據(jù)文本X的整數(shù) 表不y = xd (mod ζ)因而,可以從加密數(shù)據(jù)文本χ中恢復(fù)原始數(shù)據(jù)文本y。給定另一個(gè)整數(shù)表示,即原始數(shù)據(jù)文本y,通過逆轉(zhuǎn)換約定的可逆協(xié)議,可以恢復(fù) 原始消息M。其它的密碼相關(guān)任務(wù),例如,約定密鑰、構(gòu)造數(shù)字簽名和驗(yàn)證這樣的簽名也利用模冪算法,或使用其他數(shù)學(xué)結(jié)構(gòu)中的求冪,例如在橢圓曲線上的點(diǎn)群。這樣的任務(wù)典型依賴于產(chǎn)生原始數(shù)據(jù)文本y的整數(shù)表示X,并且使用類似于在上 述提及的第一密碼轉(zhuǎn)換的指數(shù)計(jì)算,即χ = ye在上述每一個(gè)情況下,指數(shù)計(jì)算,即χ = y%例如可以利用針對(duì)模冪算法的方乘 (square-and-multiply)算法來計(jì)算。這種計(jì)算只需要兩個(gè)單元的處理,即在前迭代和整數(shù) 1。作為結(jié)果,只需要兩個(gè)存儲(chǔ)器單元。然而,這樣的計(jì)算需要大量計(jì)算操作,并因此需要受限的時(shí)間量來完成。在很多情況下,完成計(jì)算操作所需的時(shí)間導(dǎo)致了用戶可察覺的延時(shí)。因此,需要減少完成計(jì)算操作所需的時(shí)間,以及因此完成如加密數(shù)據(jù)文本或解密 數(shù)據(jù)文本的密碼任務(wù)所需的時(shí)間。提高產(chǎn)生整數(shù)表示χ的速度的一種方法是在求冪計(jì)算中,即在計(jì)算X = Ye中,利 用無約束(unconstrained)的迭代。然而,這樣的方法需要存儲(chǔ)大量迭代,這導(dǎo)致所需的存儲(chǔ)器單元的數(shù)量變得異常 的大。因此,需要在保持與傳統(tǒng)方乘模冪算法相關(guān)的低存儲(chǔ)需求的同時(shí),減少密碼轉(zhuǎn)換 數(shù)據(jù)文本所需的時(shí)間。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的第一方面,提供了一種密碼轉(zhuǎn)換數(shù)據(jù)文本c的方法,所述方法包括 步驟根據(jù)下式產(chǎn)生數(shù)據(jù)文本c的整數(shù)表示m m = Cd其中d是預(yù)定指數(shù),產(chǎn)生整數(shù)表示m的步驟包括產(chǎn)生中間數(shù)序列,每一個(gè)中間數(shù)基于序列中較前兩 個(gè)或更少的數(shù),產(chǎn)生中間數(shù)序列包括檢索預(yù)存儲(chǔ)的指令,以確定給定中間數(shù)基于序列中較 前的哪兩個(gè)或更少的數(shù),以及確定產(chǎn)生給定中間數(shù)所需的每一個(gè)較前數(shù)的功能操作。使用預(yù)存儲(chǔ)的指令來確定給定中間數(shù)基于序列中較前的哪兩個(gè)或更少的數(shù),是基 于與在傳統(tǒng)的方乘模冪算法相比較能夠產(chǎn)生較少受限的中間數(shù),并且因此減少了計(jì)算Hl = Cd所需的計(jì)算操作量。在需要不超過兩個(gè)整數(shù)(即序列中較前的兩個(gè)或更少的數(shù))的存儲(chǔ)的同時(shí),獲得 了計(jì)算操作的減少并因此減小了密碼轉(zhuǎn)換數(shù)據(jù)文本c所花時(shí)間,因此保持了與傳統(tǒng)方乘模 冪算法相關(guān)的低存儲(chǔ)需求。優(yōu)選地,產(chǎn)生整數(shù)表示m還包括步驟導(dǎo)出并存儲(chǔ)指令的列表,每一個(gè)指令對(duì)應(yīng)于 給定中間數(shù)的產(chǎn)生。獲取并存儲(chǔ)指令的列表允許指令的定制,例如,根據(jù)指數(shù)的本質(zhì)??蛇x地,該方法包括在第一時(shí)間順序序列中存儲(chǔ)指令的列表,以及在第二時(shí)間逆 序序列中檢索該指令的列表。這些步驟允許指令按時(shí)間順序從例如期望的指數(shù)處開始,從而以時(shí)間逆序執(zhí)行指令使整數(shù)增加到期望的指數(shù)。在本發(fā)明方法的優(yōu)選實(shí)施例中,導(dǎo)出并存儲(chǔ)指令的列表包括從預(yù)定指數(shù)d導(dǎo)出指 令。從預(yù)定指數(shù)d導(dǎo)出指令意味著以時(shí)間逆序執(zhí)行指令可以用于將整數(shù)增加到指數(shù), 并因此根據(jù)m = Cd產(chǎn)生整數(shù)表示m。優(yōu)選地,從預(yù)定指數(shù)導(dǎo)出指令包括-將所述預(yù)定指數(shù)d的等效二進(jìn)制值劃分為第一和第二比特部分;-針對(duì)第一和第二比特部分執(zhí)行收斂運(yùn)算序列以將每個(gè)比特部分降低到1;和-在收斂運(yùn)算序列的每一步驟處導(dǎo)出指令。將指數(shù)d成第一和第二比特部分允許收斂運(yùn)算序列的執(zhí)行只利用兩個(gè)存儲(chǔ)器單 元,并且能夠在執(zhí)行的同時(shí)保持了傳統(tǒng)方乘模冪算法的低存儲(chǔ)需求。在本發(fā)明方法的另一優(yōu)選實(shí)施例中,針對(duì)第一和第二比特部分執(zhí)行收斂運(yùn)算序列 包括-識(shí)別具有較大值的比特部分;-如果較大值比特部分是偶數(shù),則將較大值比特部分減半;和-如果較大值比特部分是奇數(shù),則從較大值比特部分中減去較小值比特部分;和-重復(fù)前述步驟,直至每一個(gè)比特部分為1。這樣的步驟導(dǎo)出指令的列表,與針對(duì)同樣指數(shù)的傳統(tǒng)方乘模冪算法的計(jì)算操作量 相比較,所述指令列表具有更少的條目。可選地,在收斂運(yùn)算序列的每一步處導(dǎo)出指令包括-當(dāng)較大值比特部分減半時(shí),導(dǎo)出加倍指令;和-當(dāng)從較大值比特部分中減去較小值比特部分時(shí),導(dǎo)出加法指令。導(dǎo)出這樣的指令確保當(dāng)以時(shí)間逆序序列執(zhí)行指令時(shí),能夠進(jìn)行序列中較前的兩個(gè) 或更少數(shù)的期望功能操作。有利地,導(dǎo)出加倍指令包括指示其中駐留了較大值比特部分的寄存器,以及導(dǎo)出 加法指令包括指示其中主流了相應(yīng)較大值比特部分和較小值比特部分的存儲(chǔ)器單元。這樣的步驟確保了當(dāng)以時(shí)間逆序序列中執(zhí)行指令時(shí),存儲(chǔ)器單元或每一個(gè)存儲(chǔ)器 單元按期望操作。在本發(fā)明方法的另一優(yōu)選實(shí)施例中,產(chǎn)生中間數(shù)序列還包括(a)以數(shù)據(jù)文本c的等效二進(jìn)制值來初始化第一和第二存儲(chǔ)器單元;(b)檢索預(yù)存儲(chǔ)的指令;(c)根據(jù)檢索到的指令來功能性地操作第一和第二存儲(chǔ)器單元之一或二者,以產(chǎn) 生中間數(shù);和(d)對(duì)指令的列表中的每一個(gè)指令,重復(fù)步驟(b)和(C)。上述步驟在減少計(jì)算操作量的情況下將數(shù)據(jù)文本c提升到期望的指數(shù)d,即檢索 到的預(yù)存儲(chǔ)指令,從而確定整數(shù)表示m。本發(fā)明的方法還包括步驟結(jié)合第一和第二存儲(chǔ)器單元中的比特信息來產(chǎn)生整數(shù) 表示m。這一步驟在確保對(duì)于整數(shù)表示m獲得有意義的結(jié)果的同時(shí),允許利用這兩個(gè)存儲(chǔ)器 單元產(chǎn)生中間數(shù)的序列。
在本發(fā)明另一優(yōu)選實(shí)施例中,針對(duì)第一和第二比特部分執(zhí)行收斂運(yùn)算序列還包 括如果較大值比特部分是奇數(shù)而較小值比特部分是偶數(shù)且比較大值比特部分小預(yù)定因子 時(shí),將較小值比特部分減半。這一步驟增加了收斂運(yùn)算序列收斂的速度,且因此在一系列指令中導(dǎo)致更少的預(yù) 存儲(chǔ)指令。更少的指令意味著更少的中間數(shù),且因此也意味著數(shù)據(jù)文本c的更快密碼轉(zhuǎn)換。本發(fā)明方法的另一優(yōu)選實(shí)施例包括步驟,在將預(yù)定指數(shù)的等效二進(jìn)制值劃分為第 一和第二比特部分之后,將m個(gè)隨機(jī)比特添加到第一比特部分的最低有效位端,以及將m個(gè) 隨機(jī)比特添加到第二比特部分的最高有效位端。將m個(gè)隨機(jī)比特添加到第一比特部分的最低有效位端以及將m個(gè)隨機(jī)比特添加到 第二比特部分的最高有效位端允許在每次產(chǎn)生中間數(shù)序列時(shí)能夠?qū)С霾煌闹噶盍斜?。這 隨后在獲得同樣的結(jié)果(即產(chǎn)生整數(shù)表示m)的同時(shí),在每一次中間數(shù)產(chǎn)生期間導(dǎo)致了不同 的功能操作。每次產(chǎn)生中間數(shù)序列時(shí)執(zhí)行不同功能操作增加了解密步驟對(duì)于使用例如統(tǒng)計(jì)功 率分析(SPA)對(duì)邊信道攻擊的抵抗。在本發(fā)明的另一優(yōu)選方法中,針對(duì)第一和第二比特部分執(zhí)行收斂運(yùn)算序列還包 括-檢查第一和第二比特部分是否彼此相等但不等于1;和-如果兩者均不等于1,補(bǔ)償這種相等(equality)。優(yōu)選地,補(bǔ)償這種相等包括從第一或第二比特部分減去隨機(jī)數(shù)。上述步驟確保了在第一和第二存儲(chǔ)器單元中的數(shù)只在均等于1時(shí)才相等。根據(jù)本發(fā)明的第二方面,提供了一種被配置為執(zhí)行上文中所述方法步驟的半導(dǎo)體 器件。例如,當(dāng)從嵌入了根據(jù)本發(fā)明的半導(dǎo)體器件的智能卡或護(hù)照中恢復(fù)加密數(shù)據(jù)時(shí), 本發(fā)明的半導(dǎo)體器件將與本發(fā)明的方法相關(guān)聯(lián)的上述優(yōu)點(diǎn)引入到數(shù)據(jù)文本的密碼轉(zhuǎn)換中。 結(jié)果,與傳統(tǒng)智能卡和護(hù)照相比較,當(dāng)從此類設(shè)備中中恢復(fù)數(shù)據(jù)時(shí),用戶將感知到更短的延 時(shí)。可提供一種計(jì)算機(jī)程序,當(dāng)其在計(jì)算機(jī)上運(yùn)行時(shí),使計(jì)算機(jī)執(zhí)行這里披露的任何 方法,或配置包括這里披露的半導(dǎo)體器件的任何設(shè)備。所述計(jì)算機(jī)程序可以是軟件實(shí)現(xiàn),且 計(jì)算機(jī)可以被認(rèn)為是任意合適的硬件,作為非限制性的示例,包括數(shù)字信號(hào)處理器、微控制 器和在只讀存儲(chǔ)器(ROM)、可擦寫可編程只讀存儲(chǔ)器(EPROM)或電子可擦寫可編程只讀存 儲(chǔ)器(EEPROM)上的實(shí)現(xiàn)。軟件可以是匯編程序。計(jì)算機(jī)程序可以被設(shè)置在計(jì)算機(jī)可讀介質(zhì)上,如盤或存儲(chǔ)器件,或可體現(xiàn)為瞬時(shí) 信號(hào)。這樣的瞬時(shí)信號(hào)可以是網(wǎng)絡(luò)下載,包括因特網(wǎng)下載。
作為非限制性的示例,參照下述附圖,對(duì)本發(fā)明方法的優(yōu)選實(shí)施例進(jìn)行簡要描述, 其中圖1示意性地示出了根據(jù)本發(fā)明優(yōu)選方法的密碼轉(zhuǎn)換數(shù)據(jù)文本的方法的各階段 示意圖2示出了根據(jù)圖1所示方法導(dǎo)出指令列表的圖示;圖3示出了根據(jù)圖1所示方法產(chǎn)生整數(shù)表示m的圖示;圖4示出了圖1所示方法的存儲(chǔ)器需求;圖5示出了圖1所示方法中可選步驟的圖示;圖6示出了圖1所示方法中附加可選步驟的圖示;和圖7示出了圖1所示方法中其他期望步驟的圖示。
具體實(shí)施例方式在圖1中示意性地示出了根據(jù)本發(fā)明優(yōu)選方法的密碼轉(zhuǎn)換數(shù)據(jù)文本的方法的各 階段。更具體地,圖1示出了計(jì)算數(shù)據(jù)文本的整數(shù)表示m中包含的三個(gè)階段。第一階段包括步驟導(dǎo)出和存儲(chǔ)指令(即操作碼)的列表。每一個(gè)指令對(duì)應(yīng)于具 體中間數(shù)的后續(xù)產(chǎn)生。在本發(fā)明的優(yōu)選方法中,從預(yù)定指數(shù)d導(dǎo)出每一個(gè)指令。在本發(fā)明所示方法中,數(shù)據(jù)文本是加密密碼文本C,因此需要密碼解密轉(zhuǎn)換。因此, 預(yù)定指數(shù)d是私有解密指數(shù)。在本發(fā)明的另一方法(未示出)中,預(yù)定指數(shù)可以是公共加密指數(shù)e,或者其它指數(shù)。在圖2中示意性示出了從解密指數(shù)d中導(dǎo)出指令。以時(shí)間順序序列存儲(chǔ)指令中, 即按照導(dǎo)出指令的順序。這種導(dǎo)出包括將解密指數(shù)d的二進(jìn)制等效值劃分為第一比特部分X和第二比特部 分y。如圖2所示,解密指數(shù)d由下式給出d = x*2k+y其中k是每一個(gè)比特部分1和y中的比特?cái)?shù)。指令的導(dǎo)出還包括針對(duì)第一和第二比特部分χ和y執(zhí)行收斂運(yùn)算序列,以將每一 個(gè)比特部分降低到1。執(zhí)行收斂運(yùn)算序列包括識(shí)別具有較大值的比特部分χ和y。如果較大值比特部分是偶數(shù),則將較大值比特部分減半,如圖2中所示,將χ轉(zhuǎn)換 為 χ/2。以這種方式將較大值比特部分減半導(dǎo)出加倍指令,指示了其中駐留較大值比特部 分的存儲(chǔ)器單元(即寄存器R),即指令1:R1 = 2 氺Rl當(dāng)檢索到該指令時(shí),指示了應(yīng)當(dāng)加倍第一存儲(chǔ)器單元(即第一寄存器Rl)中的比 特部分應(yīng)被加倍,且結(jié)果放置于第一寄存器R1,如從x/2到χ的逆轉(zhuǎn)換所示。如果較大值比特部分是奇數(shù),則從較大值比特部分中減去較小值比特部分,如圖2 中所示的從a到a-b的轉(zhuǎn)換。該操作導(dǎo)出加法指令,其指示駐留了每一個(gè)較大值比特部分和較小值比特部分的相應(yīng)存儲(chǔ)器單元(即寄存器),即指令n:Rl=Rl+R2當(dāng)檢索到該指令時(shí),指示了第一寄存器Rl中的比特部分應(yīng)該與第二寄存器R2中 的第二比特部分相加,并且結(jié)果應(yīng)放置于第一寄存器Rl中。重復(fù)減半或減法步驟的每一個(gè),并且存儲(chǔ)對(duì)應(yīng)指令,直至每一個(gè)比特部分χ和y為 1。產(chǎn)生密碼文本c的整數(shù)表示m的第二階段包括產(chǎn)生中間數(shù)序列。產(chǎn)生中間數(shù)序列包括檢索之前在第一階段存儲(chǔ)的指令。以時(shí)間逆序序列檢索所述 指令,即按照與導(dǎo)出相反的順序。在圖3中示意性示出了產(chǎn)生中間數(shù)序列的步驟。這些步驟包括以密碼文本c的二進(jìn)制等效值初始化第一和第二存儲(chǔ)器單元,即第 一和第二寄存器Rl和R2。如圖3中所示,將密碼文本c的每一個(gè)二進(jìn)制表示提升(raise)到指數(shù)1。因此,第一和第二寄存器Rl和R2的每一個(gè)中的指數(shù)值等于第一階段的比特部分 χ禾口 y的值。然后,檢索預(yù)存儲(chǔ)的指令被恢復(fù),并且根據(jù)檢索到的指令來功能性地操作第一和 第二寄存器Rl和R2之一或二者,以產(chǎn)生中間數(shù)。第一預(yù)存儲(chǔ)指令可以是加法指令,如從ca_b到Ca的轉(zhuǎn)換所示。然而,由于指令與其中密碼文本c被提升到的指數(shù)的加法相關(guān),相加指數(shù)等同于 將第一和第二寄存器Rl和R2相乘。結(jié)果檢索到的指令被解釋為指令n:Rl=Rl*R2以計(jì)算Ca。預(yù)存儲(chǔ)指令也可以是加倍指令,如從一2到Cx的轉(zhuǎn)換所示。類似的,該指令與其中密碼文本c被提升到的指數(shù)的加倍相關(guān),加倍指數(shù)等同于 相應(yīng)寄存器的平方。作為結(jié)果,檢索到的指令被解釋為指令1Al =Rl2以計(jì)算Cx。對(duì)于每一個(gè)預(yù)存儲(chǔ)指令重復(fù)檢索預(yù)存儲(chǔ)指令以及功能性操作第一和第二寄存器 Rl和R2的步驟。因而,第一寄存器Rl最終包含Cx并且第二寄存器R2最終包含cy,如圖3所示。一旦到達(dá)這一階段,在第三,即最后階段,根據(jù)下式組合寄存器Rl和R2每一個(gè)中 的比特信息以給出整數(shù)表示m:0 = (Cx)^ * Cy具體地,通過第一寄存器Rl的k次平方產(chǎn)生整數(shù)表示m,例如,對(duì)于512比特長的 數(shù)字,在將第一寄存器Rl與第二寄存器R2相乘之前,是512次。接下來,通過以時(shí)間逆序針對(duì)包含密碼文本c的二進(jìn)制表示的第一和第二寄存器 執(zhí)行每一個(gè)預(yù)存儲(chǔ)指令,可以計(jì)算出整數(shù)表示m。在RSA密碼學(xué)解密的情況中,現(xiàn)在可通過在原始數(shù)據(jù)文本m逆向執(zhí)行執(zhí)行協(xié)商的 可逆協(xié)議來確定原始消息M。
如圖2和圖3中圖示,只需要兩個(gè)存儲(chǔ)器單元(即第一和第二寄存器Rl和R2),以 導(dǎo)出指令列表,并且執(zhí)行指令以產(chǎn)生期望的中間數(shù)序列。如果可以在例如半導(dǎo)體器件或芯片的計(jì)算設(shè)備中進(jìn)行內(nèi)置(inplace)計(jì)算,可保 持如此的存儲(chǔ)器需求。當(dāng)不能進(jìn)行內(nèi)置計(jì)算時(shí),需要另外的第三存儲(chǔ)器單元,即第三寄存器,如圖4中示 意性示出。然而,在這樣的情況下,傳統(tǒng)的方乘模冪算法也需要另外的存儲(chǔ)器單元,也如圖4 中所示。因此,本發(fā)明的方法在不能進(jìn)行內(nèi)置計(jì)算的計(jì)算設(shè)備中,仍然能保持傳統(tǒng)方乘模 冪算法的低存儲(chǔ)器需求。此外,結(jié)合本發(fā)明的方法引入第三寄存器提供了能夠更大程度放置計(jì)算結(jié)果的寄 存器,并且因此使得根據(jù)本發(fā)明方法的解密更少受到SPA的邊信道攻擊的影響。當(dāng)針對(duì)第一和第二比特部分上執(zhí)行收斂運(yùn)算序列時(shí),圖5中示意性示出了可選過程。該過程包括“預(yù)先減半”包含較小值比特部分的寄存器Rl或R2。具體地,該過程包括,如果較大值比特部分是奇數(shù)而較小值比特部分是偶數(shù)且比 較大值比特部分小預(yù)定因子時(shí),將較小值比特部分減半。在本發(fā)明的優(yōu)選實(shí)施例中,預(yù)定因子是8或更大。統(tǒng)計(jì)分析表明,所期待步驟的數(shù)量在如此對(duì)分是兩次時(shí),需要偶數(shù)值變?yōu)槠鏀?shù)。因而,如圖5所示,如果較大值比特部分是奇數(shù)而較小值比特部分是偶數(shù)且比較 大值比特部分小時(shí),減半較小值比特部分,即轉(zhuǎn)換t = s/2,減少了收斂寄存器所需要的步
驟數(shù)量。圖6中示意性示出了本發(fā)明的方法的其他可選步驟。其他可選步驟包括在將預(yù)定指數(shù)d的二進(jìn)制等效值劃分為第一和第二比特部分 χ禾口 y后,將m個(gè)隨機(jī)比特添加到第一比特部分χ的最低有效位端以計(jì)算χ’,以及將m個(gè)隨 機(jī)比特添加到第二比特部分y的最高端以計(jì)算r。指令的導(dǎo)出包括針對(duì)修改后的第一和第二比特部分χ’和y’以上文中描述的同樣 方式執(zhí)行收斂運(yùn)算序列。如此包含m個(gè)隨機(jī)比特使第一導(dǎo)出指令隨機(jī)化,并將這種隨機(jī)化貫穿到所有導(dǎo)出 指令中。在中間數(shù)的每一個(gè)產(chǎn)生過程中,當(dāng)每次導(dǎo)出指令獲取時(shí)可以添加不同的隨機(jī)比 特,以確保不同的功能操作,并且因此提供對(duì)于SPA的邊信道攻擊的有效抵抗。解密指數(shù)d由下式給出d = 2k-m.x,+y,并且,因此如上所述,通過結(jié)合包含cx’和C”的第一和第二寄存器Rl和R2,可以 利用下式計(jì)算整數(shù)表示m:m = Cd優(yōu)選地,本發(fā)明的方法包括在圖7中示意性示出的其他過程。當(dāng)針對(duì)第一和第二比特部分執(zhí)行收斂運(yùn)算序列時(shí),執(zhí)行所述其他過程,包括
檢查第一和第二比特部分是否彼此相等并且不等于1 ;和如果兩個(gè)比特部分均不等于1,補(bǔ)償這種相等。檢查第一和第二比特部分是否彼此相等并且不等于1可以包括檢查一個(gè)比特部 分是否是另外一個(gè)比特部分的兩倍。補(bǔ)償這種相等包括從第一或第二比特部分減去隨機(jī)數(shù)Δ。在圖示的實(shí)施例中,從 第一寄存器Rl中減去隨機(jī)數(shù)Δ。上文中描述的步驟可以根據(jù)下式在密碼轉(zhuǎn)換明文數(shù)據(jù)文本m中實(shí)現(xiàn),以產(chǎn)生密碼 文本c :c = me其中從預(yù)定的公共加密指數(shù)e導(dǎo)出指令。然而,應(yīng)注意到,典型情況下加密指數(shù)e比解密指數(shù)d短,因此計(jì)算加密文本c的 速度上的任何提升(由于所需要的計(jì)算操作量的降低),與相應(yīng)的解密過程相比不易察覺。上述步驟也可以在約定密鑰過程期間或當(dāng)產(chǎn)生或驗(yàn)證數(shù)字簽名時(shí)用于類似的密 碼轉(zhuǎn)換數(shù)據(jù)文本m。
權(quán)利要求
1.一種密碼轉(zhuǎn)換數(shù)據(jù)文本c的方法,所述方法包括步驟根據(jù)下式產(chǎn)生數(shù)據(jù)文本c的 整數(shù)表示m m = cd 其中,d是預(yù)定指數(shù),產(chǎn)生整數(shù)表示m的步驟包括產(chǎn)生中間數(shù)序列,每一個(gè)中間數(shù)基于序列中較前兩個(gè)或 更少的數(shù),產(chǎn)生中間數(shù)序列包括檢索預(yù)存儲(chǔ)的指令,以確定給定中間數(shù)基于序列中較前的 哪兩個(gè)或更少的數(shù),以及確定產(chǎn)生給定中間數(shù)所需的每一個(gè)較前數(shù)的功能操作。
2.根據(jù)權(quán)利要求1所述的方法,其中產(chǎn)生整數(shù)表示m還包括步驟導(dǎo)出并存儲(chǔ)指令的 列表,每一個(gè)指令對(duì)應(yīng)于給定中間數(shù)的產(chǎn)生。
3.根據(jù)權(quán)利要求2所述的方法,包括在第一時(shí)間順序序列中存儲(chǔ)指令的列表,以及在 第二時(shí)間逆序序列中檢索指令的列表。
4.根據(jù)權(quán)利要求2或權(quán)利要求3所述的方法,其中導(dǎo)出和存儲(chǔ)指令的列表包括從預(yù)定 指數(shù)d導(dǎo)出指令。
5.根據(jù)權(quán)利要求4所述的方法,其中從所述預(yù)定指數(shù)導(dǎo)出指令包括 -將所述預(yù)定指數(shù)d的等效二進(jìn)制值劃分為第一和第二比特部分;_針對(duì)第一和第二比特部分執(zhí)行收斂運(yùn)算序列以將每個(gè)比特部分減小到1 ;和 -在收斂運(yùn)算序列的每一步驟處導(dǎo)出指令。
6.根據(jù)權(quán)利要求5所述的方法,其中針對(duì)第一和第二比特部分執(zhí)行收斂運(yùn)算序列包括-識(shí)別具有較大值的比特部分;-如果較大值比特部分是偶數(shù),則將所述較大值比特部分減半;和 -如果較大值比特部分是奇數(shù),則從較大值比特部分中減去較小值比特部分;和 -重復(fù)前述步驟,直至每一個(gè)比特部分為1。
7.根據(jù)權(quán)利要求6所述的方法,其中在收斂運(yùn)算序列的每一步處導(dǎo)出指令包括 -當(dāng)較大值比特部分減半時(shí),導(dǎo)出加倍指令;和-當(dāng)從較大值比特部分中減去較小值比特部分時(shí),導(dǎo)出加法指令。
8.根據(jù)權(quán)利要求7所述的方法,其中導(dǎo)出加倍指令包括指示其中駐留了較大值比特部 分的存儲(chǔ)器單元,并且導(dǎo)出加法指令包括指示分別駐留了較大值比特部分和較小值比特部 分的相應(yīng)存儲(chǔ)器單元。
9.根據(jù)權(quán)利要求8所述的方法,其中產(chǎn)生中間數(shù)序列還包括(a)以數(shù)據(jù)文本c的等效二進(jìn)制值來初始化第一和第二存儲(chǔ)器單元;(b)檢索預(yù)存儲(chǔ)的指令;(c)根據(jù)檢索到的指令來功能性地操作第一和第二存儲(chǔ)器單元之一或二者,以產(chǎn)生 中間數(shù);和(d)對(duì)指令的列表中的每一個(gè)指令,重復(fù)步驟(b)和(C)的每一步。
10.根據(jù)權(quán)利要求9所述的方法,還包括步驟結(jié)合第一和第二存儲(chǔ)器單元中的比特信 息來產(chǎn)生整數(shù)表示m。
11.根據(jù)權(quán)利要求6到10的任何一個(gè)所述的方法,其中針對(duì)第一和第二比特部分執(zhí)行收斂運(yùn)算序列還包括如果較大值比特部分是奇數(shù)而較小值比特部分是偶數(shù)且比較大值比 特部分小預(yù)定因子,將較小值比特部分減半。
12.根據(jù)權(quán)利要求5到11中任何一個(gè)所述的方法,還包括步驟在將預(yù)定指數(shù)的等效 二進(jìn)制值劃分為第一和第二比特部分之后,將m個(gè)隨機(jī)比特添加到第一比特部分的最低有 效位端,以及將m個(gè)隨機(jī)比特添加到第二比特部分的最高有效位端。
13.根據(jù)權(quán)利要求6到12中任何一個(gè)所述的方法,其中針對(duì)第一和第二比特部分執(zhí)行 收斂運(yùn)算序列還包括-檢查第一和第二比特部分是否彼此相等但不等于1 ;和 -如果兩者均不等于1,補(bǔ)償這種相等。
14.根據(jù)權(quán)利要求13所述的方法,其中補(bǔ)償這種相等包括從第一或第二比特部分之一 中減去隨機(jī)數(shù)。
15.一種被配置為執(zhí)行權(quán)利要求1到14的任何一個(gè)所述的方法的半導(dǎo)體器件。
全文摘要
提供了一種密碼轉(zhuǎn)換數(shù)據(jù)文本c的方法。在密碼學(xué)領(lǐng)域,在保持與傳統(tǒng)方乘模冪相關(guān)的低存儲(chǔ)需求的同時(shí),需要減少密碼轉(zhuǎn)換數(shù)據(jù)文本所需的時(shí)間。一種密碼轉(zhuǎn)換數(shù)據(jù)文本c的方法包括步驟根據(jù)下式產(chǎn)生數(shù)據(jù)文本c的整數(shù)表示mm=cd。其中,d是預(yù)定指數(shù)。產(chǎn)生整數(shù)表示m的步驟包括產(chǎn)生中間數(shù)序列,每一個(gè)中間數(shù)基于序列中較前的兩個(gè)或更少的數(shù)。產(chǎn)生中間數(shù)序列包括檢索預(yù)存儲(chǔ)的指令,以確定給定中間數(shù)基于序列中較前的哪兩個(gè)或更少的數(shù),以及確定產(chǎn)生所述給定中間數(shù)所需的每一個(gè)較前數(shù)的功能操作。
文檔編號(hào)G06F21/00GK102098156SQ201010586610
公開日2011年6月15日 申請(qǐng)日期2010年12月9日 優(yōu)先權(quán)日2009年12月10日
發(fā)明者布魯斯·默里 申請(qǐng)人:Nxp股份有限公司