專(zhuān)利名稱(chēng):加密處理設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及例如應(yīng)用到IC卡的加密處理設(shè)備。更具體而言,本發(fā)明涉及一種加 密處理設(shè)備,該設(shè)備在小電流下工作時(shí)增強(qiáng)對(duì)構(gòu)成密碼分析處理的被稱(chēng)之為攻擊(attack) 的功耗分析(power analysis)的抵抗力。
背景技術(shù):
圖1示意性地示出了具有一般加密能力的IC卡的典型結(jié)構(gòu)。如圖1所示,IC卡1 包括天線2和IC芯片(LSI)3。IC芯片3包括整流電路4、平滑電容器5、穩(wěn)壓電路6、CPU 7、存儲(chǔ)器8、加密電路9、外圍電路10和RF接口 (I/F)ll。CPU 7、存儲(chǔ)器8、加密電路9、外 圍電路10和RF接口 11經(jīng)由信號(hào)總線12在其間交換數(shù)據(jù)。如圖1所示,在接近讀卡器時(shí),具有加密能力的IC卡1檢測(cè)來(lái)自讀卡器的微弱磁 場(chǎng),獲取必要的信號(hào),并且使天線2將該磁場(chǎng)轉(zhuǎn)換成功率來(lái)針對(duì)期望的處理操作該IC。在具有上面概述的結(jié)構(gòu)的系統(tǒng)中,在IC卡1和主機(jī)計(jì)算機(jī)之間交換數(shù)據(jù)時(shí)數(shù)據(jù)被 加密。除了 CPU 7和存儲(chǔ)器8,IC芯片3還具有加密電路9,該加密電路9解密接收到的信 號(hào)來(lái)獲得用于必要處理的相關(guān)信息。所獲得的信息被加密并被發(fā)送到主機(jī)計(jì)算機(jī)。當(dāng)前最常用的加密方法是DES (數(shù)據(jù)加密標(biāo)準(zhǔn))。根據(jù)DES,IC卡的擁有者和主機(jī) 計(jì)算機(jī)二者對(duì)同一密鑰進(jìn)行處理。數(shù)據(jù)發(fā)送方利用該密鑰加密數(shù)據(jù),然后發(fā)送加密的數(shù)據(jù)。 數(shù)據(jù)接收方利用同一密鑰來(lái)解密接收到的數(shù)據(jù)來(lái)提取消息。惡意第三方可能試圖竊聽(tīng)這種 通信,但是由于沒(méi)有密鑰所以應(yīng)當(dāng)難以解密經(jīng)加密的消息。圖2示意性地示出了作為典型解密電路的DES運(yùn)算電路20的通常結(jié)構(gòu)。如圖2所 示,DES運(yùn)算電路20包括初始置換(initial permutation, IP)器件21、開(kāi)關(guān)22L和22R、 左(L)寄存器23和右(R)寄存器24。DES運(yùn)算電路20還包括F函數(shù)器件25、EX0R運(yùn)算器 件26、逆置換(IP-I)器件27和密文輸出器件(Crypto) 28。如圖2所示,F(xiàn)函數(shù)器件25具有多個(gè)(圖2中為8個(gè))S_box (S框)S。至S7,用于 執(zhí)行非線性處理。來(lái)自上游級(jí)(即,R(n-l))的輸入值F-in被擴(kuò)展器件(EX) 25-1擴(kuò)展為48 比特,然后經(jīng)過(guò)由EXOR運(yùn)算器件25-2利用來(lái)自密鑰調(diào)度器件的密鑰(48比特)執(zhí)行EXOR 運(yùn)算。EXOR運(yùn)算器件25-2的輸出被輸入到多個(gè)S框S。至S7,S框S。至S7每個(gè)6比特地執(zhí) 行非線性轉(zhuǎn)換處理。S框Stl至S7中的每個(gè)利用轉(zhuǎn)換表來(lái)執(zhí)行從6比特到4比特的非線性 轉(zhuǎn)換處理。來(lái)自S框的輸出比特(4X8 = 32比特)被輸入到用于比特位置置換的置 換器件(P) 25-3,來(lái)生成并輸出32比特的F函數(shù)輸出。在DES運(yùn)算電路20內(nèi)部有與輪(round)操作相稱(chēng)的運(yùn)算電路和效果上等同于數(shù) 據(jù)寬度的寄存器布置。該電路運(yùn)算預(yù)定次數(shù)來(lái)執(zhí)行加密處理。在輪被切換時(shí),寄存器值被更新。對(duì)寄存器的更新是對(duì)連接到寄存器的信號(hào)連線 充電和放電以及通過(guò)運(yùn)算電路的算術(shù)運(yùn)算來(lái)實(shí)現(xiàn)的。在算術(shù)運(yùn)算期間,信號(hào)線上的充電和放電電流的最陡峭部分出現(xiàn)在信號(hào)連線被從全O改變到全1時(shí)。從天線提取功率的電源器件需要提供具有充足余量的功率。P. Kocher等人報(bào)告了稱(chēng)作DPA(差分功耗分析)的攻擊,由此通過(guò)統(tǒng)計(jì)分析由加密 電路消耗的電流來(lái)提取密鑰。這種攻擊所需的環(huán)境可以以較低的成本安裝,并且可以在較 短的時(shí)間內(nèi)提取出密鑰。安全I(xiàn)C必須要提供對(duì)這種攻擊的防御。DPA攻擊涉及通過(guò)在下述期間統(tǒng)計(jì)分析與密鑰有關(guān)的微弱工作電流來(lái)提取密鑰 在執(zhí)行非線性處理的S框的輸出期間,以及在更新寄存器的中間值時(shí)寄存器的負(fù)載連線的 充電和放電期間。已提出了下面兩種方法來(lái)應(yīng)對(duì)這種攻擊首先,采用互補(bǔ)結(jié)構(gòu)以使得通過(guò)互補(bǔ)操作可使任何漏電流最小化。其次,使數(shù)據(jù)隨 機(jī)化來(lái)擾亂漏電流,從而使得難以進(jìn)行統(tǒng)計(jì)分析。上述用于應(yīng)對(duì)DPA攻擊的第一方法的一個(gè)示例是在日本專(zhuān)利早期公開(kāi) No. 2004-347975中示意性公開(kāi)的技術(shù)。該公開(kāi)的技術(shù)包括將一比特?cái)?shù)據(jù)發(fā)展成具有相等漢 明權(quán)重的兩比特值??紤]到算術(shù)運(yùn)算帶來(lái)的數(shù)據(jù)變換,提供了包括求值(evaluation)階段 和預(yù)充電階段的兩個(gè)階段。以如下方式執(zhí)行控制使得在對(duì)數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算之前數(shù)據(jù)進(jìn) 入非“0”非“1”的狀態(tài)。這使得難以檢測(cè)由于計(jì)算值的變換而導(dǎo)致的改變電流。更具體而言,在被提交給加密操作時(shí),數(shù)據(jù)項(xiàng)“0”被看作“01”,而數(shù)據(jù)項(xiàng)“ 1,,被看 作“10”。當(dāng)數(shù)據(jù)項(xiàng)要被輪操作改變時(shí),它們首先進(jìn)入“00”,然后移位到計(jì)算的數(shù)據(jù)。假設(shè)變換被表達(dá)如下變換“0”->“0”“01”->“00”->“01”;變換“0”->“1”“01”->“00”->“10”;變換“1”->“0”“10”->“00”->“01”;變換“1”->“1”“10”->“00”->“10”。這樣,不管計(jì)算結(jié)果如何,基于算術(shù)運(yùn)算的所有比特變換都僅改變1比特。這使得 難以從改變電流提取出密鑰。上述用于應(yīng)對(duì)DPA攻擊的第二方法的一個(gè)示例是在美國(guó)專(zhuān)利No. 6,295,606中示 意性公開(kāi)的技術(shù)。該技術(shù)涉及利用隨機(jī)數(shù)擾亂S框的輸出來(lái)擾亂來(lái)自電路操作的反映出使 用的密鑰的微弱電流,從而使對(duì)消耗電流的統(tǒng)計(jì)分析變困難。
發(fā)明內(nèi)容
然而,上述第一方法需要一種結(jié)構(gòu)使執(zhí)行加密操作的所有電路對(duì)一比特的數(shù)據(jù)執(zhí) 行兩比特的互補(bǔ)操作。這至少使電路規(guī)模加倍。因?yàn)樗鶖U(kuò)展的兩比特中的一比特一般要經(jīng) 過(guò)電路操作,所以消耗的電流也至少被加倍。為了實(shí)現(xiàn)上述第二方法,要在任何加密操作發(fā)生之前生成相對(duì)于要被擾亂的數(shù)據(jù) 的寬度的隨機(jī)數(shù)。即,需要隨機(jī)數(shù)生成電路。本發(fā)明的實(shí)施例是考慮到上述情況提出的,并且提供了一種加密處理設(shè)備,該設(shè) 備能在小電流下工作時(shí)增強(qiáng)抵抗功耗分析的能力。在執(zhí)行本發(fā)明的實(shí)施例時(shí)并且根據(jù)本發(fā)明的一個(gè)實(shí)施例,提供了一種加密處理設(shè)備,包括第一寄存器器件,被配置為包括第一數(shù)據(jù)寄存器和第一標(biāo)志寄存器;第二寄存器 器件,被配置為包括第二數(shù)據(jù)寄存器和第二標(biāo)志寄存器;第一標(biāo)志運(yùn)算器件,被配置為針對(duì) 每組預(yù)定數(shù)目個(gè)比特對(duì)輸入明文文本中的第一數(shù)據(jù)和第二數(shù)據(jù)執(zhí)行標(biāo)志運(yùn)算;第一運(yùn)算器件,被配置為使所述第一標(biāo)志運(yùn)算器件對(duì)所述第一數(shù)據(jù)和所述第二數(shù)據(jù)中的每個(gè)和所得到 的標(biāo)志執(zhí)行標(biāo)志運(yùn)算來(lái)實(shí)現(xiàn)標(biāo)志控制,所述第一運(yùn)算器件還被配置為將受標(biāo)志控制的第一 數(shù)據(jù)和第一標(biāo)志饋送到所述第一寄存器器件,并且將受標(biāo)志控制的第二數(shù)據(jù)和第二標(biāo)志饋 送到所述第二寄存器器件;第二運(yùn)算器件,被配置為對(duì)所述第二寄存器器件的所述第二數(shù) 據(jù)寄存器中的鎖存數(shù)據(jù)和所述第二標(biāo)志寄存器中的標(biāo)志執(zhí)行異或運(yùn)算;輪運(yùn)算器件,被配 置為對(duì)來(lái)自所述第二運(yùn)算器件的輸出數(shù)據(jù)執(zhí)行輪運(yùn)算;第三運(yùn)算器件和第四運(yùn)算器件,被 配置為對(duì)來(lái)自所述輪運(yùn)算器件的輸出和所述第一寄存器器件的所述第一數(shù)據(jù)寄存器中的 鎖存值以及所述第一標(biāo)志寄存器中的標(biāo)志執(zhí)行異或運(yùn)算;第二標(biāo)志運(yùn)算器件,被配置為針 對(duì)每組預(yù)定數(shù)目個(gè)比特,對(duì)來(lái)自所述第三運(yùn)算器件和所述第四運(yùn)算器件的輸出數(shù)據(jù)執(zhí)行新 的標(biāo)志運(yùn)算;第五運(yùn)算器件,被配置為使所述第二標(biāo)志運(yùn)算器件對(duì)來(lái)自所述第三運(yùn)算器件 和所述第四運(yùn)算器件的輸出數(shù)據(jù)和所得到的標(biāo)志執(zhí)行異或運(yùn)算來(lái)實(shí)現(xiàn)標(biāo)志控制,所述第五 運(yùn)算器件還被配置為將受標(biāo)志控制的數(shù)據(jù)和標(biāo)志輸出到所述第二寄存器器件。上面概述的根據(jù)本發(fā)明實(shí)施例的加密處理設(shè)備減少了構(gòu)成該設(shè) 備的加密運(yùn)算電 路所消耗的電流,同時(shí)增強(qiáng)了抵抗功耗分析的能力。
圖1是示出了具有一般加密能力的IC卡的典型結(jié)構(gòu)的示意圖;圖2是示出了作為典型加密電路的DES運(yùn)算電路的一般結(jié)構(gòu)的示意圖;圖3是部分示出了作為實(shí)現(xiàn)為本發(fā)明第一實(shí)施例的加密處理設(shè)備的DES運(yùn)算電路 的典型結(jié)構(gòu)的示意圖;圖4是部分示出了圖3中的DES運(yùn)算電路的典型結(jié)構(gòu)的電路圖;圖5是說(shuō)明作為第一實(shí)施例的DES運(yùn)算電路一般如何工作的時(shí)序圖;圖6是示出了關(guān)于作為第一實(shí)施例的DES運(yùn)算電路的兩比特?cái)?shù)據(jù)和受控?cái)?shù)據(jù)之間 的關(guān)系的示意圖;圖7是示出了作為實(shí)現(xiàn)為本發(fā)明第二實(shí)施例的加密處理器件的DES運(yùn)算電路的典 型結(jié)構(gòu)的示意圖;圖8是部分示出了圖7中的DES運(yùn)算電路的典型結(jié)構(gòu)的電路圖;圖9是作為第二實(shí)施例的一部分的第二標(biāo)志運(yùn)算(flag operation)器件中的標(biāo) 志運(yùn)算電路的典型結(jié)構(gòu);圖IOA和IOB是示出了關(guān)于作為第二實(shí)施例的DES運(yùn)算電路的四比特?cái)?shù)據(jù)和受控 數(shù)據(jù)之間的關(guān)系的示意圖;圖11是說(shuō)明作為第二實(shí)施例的DES運(yùn)算電路一般如何工作的時(shí)序圖;圖12是示出了作為第二實(shí)施例的一部分的控制信號(hào)生成電路的典型結(jié)構(gòu)的電路 圖;圖13是圖12中電路的時(shí)序圖;圖14A、14B和14C分別是EXOR-AND電路、電路符號(hào)和真值表;圖15是示出了結(jié)合作為本發(fā)明第三實(shí)施例的DES運(yùn)算電路從數(shù)據(jù)擾亂點(diǎn)看圖10 的受控結(jié)果的示意圖;圖16的示意圖示出了在對(duì)于反轉(zhuǎn)控制(inversion control)以四比特為一組連續(xù)計(jì)算標(biāo)志時(shí),一個(gè)子S框“so”的四個(gè)比特如何被置換器件置換、在每個(gè)不同的組中如何計(jì)算標(biāo)志、以及如何相應(yīng)地實(shí)現(xiàn)反轉(zhuǎn)控制;圖17是示出了作為第三實(shí)施例的一部分的第二標(biāo)志運(yùn)算器件中的標(biāo)志運(yùn)算電路 的典型結(jié)構(gòu)的示意圖;圖18A和18B的示意圖示出了由圖17中的標(biāo)志運(yùn)算電路執(zhí)行的運(yùn)算的結(jié)果,所述 結(jié)果代表關(guān)于作為第三實(shí)施例的DES運(yùn)算電路的四比特?cái)?shù)據(jù)和受控?cái)?shù)據(jù)之間的關(guān)系;圖19是示出了作為本發(fā)明第四實(shí)施例的DES運(yùn)算電路的第二標(biāo)志運(yùn)算器件中的 標(biāo)志運(yùn)算電路的典型結(jié)構(gòu)的示意圖;圖20A和20B的示意圖示出了由圖19中的標(biāo)志運(yùn)算電路執(zhí)行的運(yùn)算的結(jié)果,所述 結(jié)果代表關(guān)于作為第四實(shí)施例的DES運(yùn)算電路的四比特?cái)?shù)據(jù)和受控?cái)?shù)據(jù)之間的關(guān)系;圖21是示出了在圖20A和20B中涉及的每個(gè)比特中的受控狀態(tài)“0”和“ 1 ”的示 意圖;圖22的示意圖結(jié)合圖19的電路示出了“6969”經(jīng)受對(duì)dl、d2、d4、d7、d9、dl0、dl2 和dl5的反轉(zhuǎn)控制的數(shù)據(jù)控制示例;圖23是示出了一般AES運(yùn)算電路的典型結(jié)構(gòu)的示意圖;圖24是示出了實(shí)現(xiàn)為本發(fā)明第五實(shí)施例的AES運(yùn)算電路的典型結(jié)構(gòu)的示意圖;以 及圖25是示出了本發(fā)明實(shí)施例的結(jié)構(gòu)可應(yīng)用到的加密處理設(shè)備的IC模塊的典型結(jié) 構(gòu)的示意圖。
具體實(shí)施例方式下面結(jié)合附圖詳細(xì)描述本發(fā)明的優(yōu)選實(shí)施例。將按照下述標(biāo)題描述。1.第一實(shí)施例(DES運(yùn)算電路的第一結(jié)構(gòu)示例)2.第二實(shí)施例(DES運(yùn)算電路的第二結(jié)構(gòu)示例)3.第三實(shí)施例(DES運(yùn)算電路的第三結(jié)構(gòu)示例)4.第四實(shí)施例(DES運(yùn)算電路的第四結(jié)構(gòu)示例)5.第五實(shí)施例(AES運(yùn)算電路的結(jié)構(gòu)示例)實(shí)現(xiàn)本發(fā)明實(shí)施例的加密處理設(shè)備被構(gòu)造來(lái)至少實(shí)現(xiàn)以下三個(gè)目的<1>通過(guò)減少計(jì)算結(jié)果的中間值中的“1”比特的數(shù)目(即,漢明權(quán)重,或者HW)來(lái) 降低信號(hào)總線的充電和放電電流。<2>通過(guò)使計(jì)算結(jié)果的中間值的HW基本保持恒定來(lái)提高對(duì)DPA的抵抗力。<3>通過(guò)有效地依據(jù)該值來(lái)擾亂計(jì)算結(jié)果的中間值來(lái)增強(qiáng)對(duì)DPA的抵抗力。為了實(shí)現(xiàn)上述目的,實(shí)現(xiàn)本發(fā)明實(shí)施例的加密處理設(shè)備被設(shè)計(jì)為具有以下特性。在加密電路中,為信號(hào)總線上的每組預(yù)定數(shù)目個(gè)比特提供一個(gè)標(biāo)志寄存器和一條 標(biāo)志連線。當(dāng)由預(yù)定數(shù)目個(gè)比特構(gòu)成的給定數(shù)據(jù)達(dá)到預(yù)定值時(shí),標(biāo)志被設(shè)置。該標(biāo)志用于對(duì) 該預(yù)定數(shù)目個(gè)比特的反轉(zhuǎn)控制。每組預(yù)定數(shù)目個(gè)比特被已如下方式選擇在來(lái)自加密電路中包括的多個(gè)子S框的 輸出信號(hào)之中,來(lái)自至少兩個(gè)子S框的那些被包括到這些比特中。
利用設(shè)想的上述特性,提供了下述布置來(lái)實(shí)現(xiàn)上述目的<1>至<3>。如果“1”比特的數(shù)目(HW)構(gòu)成給定組的預(yù)定數(shù)目個(gè)比特中的大多數(shù),則標(biāo)志被設(shè) 置并且對(duì)應(yīng)數(shù)據(jù)被相應(yīng)反轉(zhuǎn)。對(duì)于上述目的<1>,添加了標(biāo)志寄存器和標(biāo)志連線。如果冊(cè)未達(dá)到大多數(shù)并且冊(cè) 為4,則附加標(biāo)志被設(shè)置并且所討論的標(biāo)志連線被充電。換言之,在漢明權(quán)重為0、1或4時(shí) 附加標(biāo)志被設(shè)置。標(biāo)志數(shù)據(jù)是根據(jù)所述預(yù)定數(shù)目個(gè)比特的比特圖樣生成的。由所生成的標(biāo)志數(shù)據(jù)構(gòu) 成的標(biāo)志(FLG)用于數(shù)據(jù)反轉(zhuǎn)控制。在下面討論的第一至第五實(shí)施例中的每個(gè)實(shí)施例中,一輪運(yùn)算循環(huán)包括預(yù)充電階 段和求值階段。DES加密由16輪運(yùn)算提供。<1.第一實(shí)施例>圖3是示出了作為實(shí)現(xiàn)為本發(fā)明第一實(shí)施例的加密處理設(shè)備的DES運(yùn)算電路100 的典型結(jié)構(gòu)的示意圖。圖4是部分示出了圖3中的DES運(yùn)算電路100的典型結(jié)構(gòu)的電路圖。在DES運(yùn)算電路100中,信號(hào)總線被劃分成多個(gè)預(yù)定數(shù)目比特的組,主要來(lái)減少消 耗電流,后面將更詳細(xì)描述。提供了電路來(lái)如果“1”比特的數(shù)目在每組預(yù)定數(shù)目個(gè)比特中 達(dá)到大多數(shù)則設(shè)置標(biāo)志。該標(biāo)志被用于數(shù)據(jù)反轉(zhuǎn)控制。如果一給定比特組中的“1”比特的數(shù)目占多數(shù),則 所關(guān)注數(shù)據(jù)被反轉(zhuǎn)。結(jié)果,每組預(yù)定數(shù)目個(gè)比特中“1”比特的數(shù)目保持少于多數(shù)。DES運(yùn)算電路100包括初始置換(IP)器件101、第一標(biāo)志運(yùn)算器件(Cal. FLG1) 102、第一 EXOR運(yùn)算器件103、開(kāi)關(guān)104L和104R、第一寄存器器件105、以及第二寄存 器器件106。DES運(yùn)算電路100還包括第一預(yù)充電控制器件(P. C. CTL1) 107、第二預(yù)充電控 制器件(P. C. CTL2) 108和第二 EXOR運(yùn)算器件109。此外,DES運(yùn)算電路100還具有構(gòu)成輪運(yùn)算器件的F函數(shù)器件110、第三EXOR運(yùn)算 器件111、第四EXOR運(yùn)算器件112、AND門(mén)器件113、第二標(biāo)志運(yùn)算器件(Cal. FLG2) 114和第 五EXOR運(yùn)算器件115。另外,DES運(yùn)算電路100還包括充當(dāng)標(biāo)志重置器件的第六EXOR運(yùn)算器件116和第 七EXOR運(yùn)算器件117、逆置換器件(IP—1) 118和密文輸出器件119。EXOR運(yùn)算表示異或運(yùn)
笪弁。DES運(yùn)算電路100使用以下控制信號(hào)。信號(hào)“/PC”是控制預(yù)充電的信號(hào)。當(dāng)被降低到Low(低)時(shí),該信號(hào)使寄存器的所 有信號(hào)線(負(fù)載連線)變?yōu)長(zhǎng)ow。當(dāng)被提升到High (高)時(shí),信號(hào)“/PC”使寄存器經(jīng)由信號(hào) 線(負(fù)載連線)輸出它們的鎖存值。信號(hào)“/PCdly”是通過(guò)僅將控制信號(hào)“/PC”的前沿延遲F函數(shù)器件110的延遲時(shí) 間的量而獲得的。具體而言,信號(hào)“/PCdly”與信號(hào)“/PC”的作用相同。信號(hào)“/PCdly”對(duì) 應(yīng)于第一控制信號(hào),信號(hào)“/PC”對(duì)應(yīng)于第二控制信號(hào)。第一實(shí)施例的DES運(yùn)算電路與相應(yīng)的通常結(jié)構(gòu)不同在于以下幾點(diǎn)。第一寄存器器件105和第二寄存器器件106每個(gè)除了它們的用于數(shù)據(jù)的左寄存器 (LReg)和右寄存器(RReg)之外還包括標(biāo)志寄存器。來(lái)自第一寄存器器件105的輸出和來(lái)自第二寄存器器件106的輸出在涉及預(yù)充電控制信號(hào)“/PC”的第一預(yù)充電控制器件107和第二預(yù)充電控制器件108中經(jīng)邏輯運(yùn)算,然 后被輸出到負(fù)載連線上。右(R)寄存器數(shù)據(jù)和相應(yīng)的標(biāo)志數(shù)據(jù)被輸入到F函數(shù)器件110和左寄存器LReg。 到F函數(shù)器件110的輸入在第二 EXOR運(yùn)算器件109中與標(biāo)志值FRn經(jīng)EXOR (異或)運(yùn)算, 從而標(biāo)志被重置。左(L)寄存器數(shù)據(jù)在第三EXOR運(yùn)算器件111中與來(lái)自F函數(shù)器件110的輸出經(jīng) EXOR運(yùn)算,然后在第四EXOR運(yùn)算器件112中與標(biāo)志FL經(jīng)EXOR運(yùn)算,從而標(biāo)志被重置,并且 數(shù)值返回到其原始中間值。根據(jù)該值,第二標(biāo)志運(yùn)算器件114生成新的標(biāo)志FLGn。標(biāo)志FLGn在E XOR運(yùn)算器 件115中經(jīng)EXOR運(yùn)算,然后運(yùn)算結(jié)果被輸入到第二寄存器器件106的右寄存器RReg。下面將詳細(xì)描述圖3中具有上述特性的DES運(yùn)算電路100的結(jié)構(gòu)和功能。初始置換器件101對(duì)構(gòu)成消息的明文文本執(zhí)行初始置換處理。該處理之后,左數(shù) 據(jù)LDT和右數(shù)據(jù)RDT被輸出到第一標(biāo)志運(yùn)算器件102和第一 EXOR運(yùn)算器件103。從初始置 換器件101輸出的左數(shù)據(jù)LDT和右數(shù)據(jù)RDT都是32比特長(zhǎng)。第一標(biāo)志運(yùn)算器件102對(duì)來(lái)自初始置換器件101的左數(shù)據(jù)LDT和右數(shù)據(jù)RDT執(zhí)行 運(yùn)算,來(lái)為數(shù)據(jù)中的每組預(yù)定數(shù)目個(gè)比特(第一實(shí)施例中為兩比特)生成一標(biāo)志。標(biāo)志FLO 和FRO從而被生成,并被輸出到第一 EXOR運(yùn)算器件103。第一 EXOR運(yùn)算器件103對(duì)來(lái)自初始置換器件101的左數(shù)據(jù)LDT和右數(shù)據(jù)RDT以 及相應(yīng)的標(biāo)志FLO和FRO執(zhí)行EXOR運(yùn)算。第一 EXOR運(yùn)算器件103經(jīng)由開(kāi)關(guān)104L將由標(biāo) 志FLO控制的左數(shù)據(jù)提供給第一寄存器器件105。此時(shí),標(biāo)志FLO的數(shù)據(jù)也通過(guò)開(kāi)關(guān)104L 被饋送到第一寄存器器件105。第一 EXOR運(yùn)算器件103經(jīng)由開(kāi)關(guān)104R將由標(biāo)志FRO控制的右數(shù)據(jù)提供給第二寄 存器器件106。此時(shí),標(biāo)志FRO的數(shù)據(jù)也通過(guò)開(kāi)關(guān)104R被饋送到第二寄存器器件106。開(kāi)關(guān)104L的活動(dòng)觸點(diǎn)“a”連接到第一 EXOR運(yùn)算器件103的輸出,并且開(kāi)關(guān)104L 的活動(dòng)觸點(diǎn)“b”連接到第二預(yù)充電控制器件108的輸出。開(kāi)關(guān)104L的固定觸點(diǎn)“C”連接 到第一寄存器器件105的輸入。開(kāi)關(guān)104R的活動(dòng)觸點(diǎn)“a”連接到第一 EXOR運(yùn)算器件103的輸出,并且開(kāi)關(guān)104R 的活動(dòng)觸點(diǎn)“b”連接到第五EXOR運(yùn)算器件115的輸出。開(kāi)關(guān)104R的固定觸點(diǎn)“C”連接到 第二寄存器器件106的輸入。第一寄存器器件105由左寄存器(LReg) 1051和標(biāo)志寄存器1052構(gòu)成。左寄存器 1051和標(biāo)志寄存器1052分別對(duì)應(yīng)于第一數(shù)據(jù)寄存器和第一標(biāo)志寄存器。左寄存器1051在控制信號(hào)/PC的后沿鎖存通過(guò)開(kāi)關(guān)104L輸入的32比特的數(shù)據(jù)。 標(biāo)志寄存器1052在控制信號(hào)/PC的后沿鎖存通過(guò)開(kāi)關(guān)104L輸入的標(biāo)志FL (0,n-1)。第二寄存器器件106由右寄存器(RReg) 1061和標(biāo)志寄存器1062構(gòu)成。右寄存器 1061和標(biāo)志寄存器1062分別對(duì)應(yīng)于第二數(shù)據(jù)寄存器和第二標(biāo)志寄存器。右寄存器1061在控制信號(hào)/PC的后沿鎖存通過(guò)開(kāi)關(guān)104R輸入的32比特的數(shù)據(jù)。 標(biāo)志寄存器1062在控制信號(hào)/PC的后沿鎖存通過(guò)開(kāi)關(guān)104R輸入的標(biāo)志FR (0,n-1)。第一預(yù)充電控制器件107對(duì)在左寄存器1051中鎖存的數(shù)據(jù)、在標(biāo)志寄存器1052 中鎖存的標(biāo)志FLn-I和控制信號(hào)/Pcdly執(zhí)行邏輯運(yùn)算(在該示例中為AND (與))。第一預(yù)充電控制器件107將經(jīng)邏輯運(yùn)算的數(shù)據(jù)輸出到第三EX0R運(yùn)算器件111的輸入之一,并且將 經(jīng)邏輯運(yùn)算的標(biāo)志FLn-1饋送到第五EX0R運(yùn)算器件115的輸入之一。
下面參考圖4說(shuō)明第一預(yù)充電控制器件107的典型結(jié)構(gòu)。如圖4所示,第一預(yù)充電 控制器件107包括用于數(shù)據(jù)的二輸入AND門(mén)ADL00至ADL031,以及用于標(biāo)志的二輸入AND門(mén) AFL00至AFL015。第一預(yù)充電控制器件107還包括用于數(shù)據(jù)的負(fù)載連線LDL00至LDL031, 以及用于標(biāo)志的負(fù)載連線LFL00至LFL015。用于數(shù)據(jù)的AND門(mén)ADL00至ADL031對(duì)構(gòu)成在左寄存器1051中鎖存的32比特?cái)?shù) 據(jù)(Ln-1 士FLn-1)的比特?cái)?shù)據(jù)b0至b31中的每個(gè)和控制信號(hào)/PCdly執(zhí)行AND運(yùn)算。符號(hào) 士表示異或運(yùn)算。AND門(mén)ADL00至ADL031將運(yùn)算結(jié)果輸出到對(duì)應(yīng)于AND門(mén)輸出提供的用 于數(shù)據(jù)的負(fù)載連線LDL00至LDL031。用于標(biāo)志的AND門(mén)AFL00至AFL015對(duì)在標(biāo)志寄存器1052中鎖存的16個(gè)標(biāo)志 FLn-1
至FLn-1 [15]中的每個(gè)和控制信號(hào)/PCdly執(zhí)行AND運(yùn)算。AND門(mén)AFL00至AFL015 將運(yùn)算結(jié)果輸出到對(duì)應(yīng)于AND門(mén)輸出提供的用于標(biāo)志的負(fù)載連線LFL00至LFL015。在提供的控制信號(hào)/PCdly為L(zhǎng)ow時(shí),第一預(yù)充電控制器件107使所有AND門(mén)ADL00 至ADL031和AND門(mén)AFL00至AFL015的輸出降低到Low。即,當(dāng)控制信號(hào)/PCdly為L(zhǎng)ow時(shí), 不輸出第一寄存器器件105的左寄存器1051和標(biāo)志寄存器1052中的鎖存值。在提供的控制信號(hào)/PCdly為High時(shí),第一預(yù)充電控制器件107使所有AND門(mén) ADL00至ADL031和AND門(mén)AFL00至AFL015執(zhí)行它們的AND運(yùn)算。從而輸出左寄存器1051 和標(biāo)志寄存器1052中的鎖存值。第二預(yù)充電控制器件108對(duì)在右寄存器1061中鎖存的數(shù)據(jù)、在標(biāo)志寄存器1062 中鎖存的標(biāo)志FRn-1和控制信號(hào)/PC執(zhí)行邏輯運(yùn)算(在該示例中為AND)。第二預(yù)充電控制 器件108將經(jīng)邏輯運(yùn)算的數(shù)據(jù)輸出到第二 EX0R運(yùn)算器件109的輸入之一,并且將經(jīng)邏輯運(yùn) 算的標(biāo)志FRn-1饋送到第二 EX0R運(yùn)算器件109的另一輸入。下面參考圖4說(shuō)明第二預(yù)充電控制器件108的典型結(jié)構(gòu)。如圖4所示,第二預(yù)充電 控制器件108包括用于數(shù)據(jù)的二輸入AND門(mén)ADR00至ADR031,以及用于標(biāo)志的二輸入AND門(mén) AFR00至AFR015。第二預(yù)充電控制器件108還包括用于數(shù)據(jù)的負(fù)載連線LDR00至LDR031, 以及用于標(biāo)志的負(fù)載連線LFR00至LFR015。用于數(shù)據(jù)的AND門(mén)ADR00至ADR031對(duì)在右寄存器1061中鎖存的32比特?cái)?shù)據(jù) (Rn-1 士FRn-1)的比特?cái)?shù)據(jù)b0至b31中的每個(gè)和控制信號(hào)/PC執(zhí)行AND運(yùn)算。符號(hào)士表 示異或運(yùn)算。AND門(mén)ADR00至ADR031將運(yùn)算結(jié)果輸出到對(duì)應(yīng)于AND門(mén)輸出提供的用于數(shù)據(jù) 的負(fù)載連線LDR00至LDR031。用于標(biāo)志的AND門(mén)AFR00至AFR015對(duì)在標(biāo)志寄存器1062中鎖存的16個(gè)標(biāo)志 FRn-1
至FRn-1 [15]中的每個(gè)和控制信號(hào)/PC執(zhí)行AND運(yùn)算。AND門(mén)AFR00至AFR015 將運(yùn)算結(jié)果輸出到對(duì)應(yīng)于AND門(mén)輸出提供的用于標(biāo)志的負(fù)載連線LFR00至LFR015。在提供的控制信號(hào)/PC為L(zhǎng)ow時(shí),第二預(yù)充電控制器件108使所有AND門(mén)ADR00 至ADR031和AND門(mén)AFR00至AFR015的輸出降低到Low。即,當(dāng)控制信號(hào)/PC為L(zhǎng)ow時(shí),不 輸出第二寄存器器件106的右寄存器1061和標(biāo)志寄存器1062中的鎖存值。在提供的控制信號(hào)/PC為High時(shí),第二預(yù)充電控制器件108使所有AND門(mén)ADR00 至ADR031和AND門(mén)AFR00至AFR015執(zhí)行它們的AND運(yùn)算。從而輸出右寄存器1061和標(biāo)志寄存器1062中的鎖存值。第二 EXOR運(yùn)算器件109對(duì)從第二預(yù)充電控制器件108輸出的、包括右寄存器1061 中鎖存的數(shù)據(jù)的比特?cái)?shù)據(jù)b0至b31中的每個(gè),和標(biāo)志寄存器1062中的鎖存標(biāo)志FRn-I
至FRn-I [15]執(zhí)行EXOR運(yùn)算。第二 EXOR運(yùn)算器件109通過(guò)對(duì)數(shù)據(jù)和標(biāo)志值的EXOR運(yùn)算 來(lái)臨時(shí)重置標(biāo)志,并將結(jié)果數(shù)據(jù)輸出到F函數(shù)器件110。
下面參考圖4說(shuō)明第二 EXOR運(yùn)算器件109的典型結(jié)構(gòu)。如圖4所示,第二 EXOR 運(yùn)算器件109具有與第二預(yù)充電控制器件108的輸出并行布置的32個(gè)EXOR運(yùn)算器E0R20 至 E0R231。EXOR運(yùn)算器E0R20的輸入之一連接到用于數(shù)據(jù)的負(fù)載連線LDROO,并且EXOR運(yùn)算 器E0R20的另一個(gè)輸入連接到用于標(biāo)志的負(fù)載連線LFR00。EXOR運(yùn)算器E0R20對(duì)比特?cái)?shù)據(jù) b0和標(biāo)志FRn-I
執(zhí)行EXOR運(yùn)算。EXOR運(yùn)算器E0R21的輸入之一連接到用于數(shù)據(jù)的負(fù)載連線LDRO1,并且EXOR運(yùn)算 器E0R21的另一個(gè)輸入連接到用于標(biāo)志的負(fù)載連線LFR00。EXOR運(yùn)算器E0R21對(duì)比特?cái)?shù)據(jù) bl和標(biāo)志FRn-I
執(zhí)行EXOR運(yùn)算。EXOR運(yùn)算器E0R22的輸入之一連接到用于數(shù)據(jù)的負(fù)載連線LDR02,并且EXOR運(yùn)算 器E0R22的另一個(gè)輸入連接到用于標(biāo)志的負(fù)載連線LFR01。EXOR運(yùn)算器E0R22對(duì)比特?cái)?shù)據(jù) b2和標(biāo)志FRn-I [1]執(zhí)行EXOR運(yùn)算。EXOR運(yùn)算器E0R23的輸入之一連接到用于數(shù)據(jù)的負(fù)載連線LDR03,并且EXOR運(yùn)算 器E0R23的另一個(gè)輸入連接到用于標(biāo)志的負(fù)載連線LFR01。EXOR運(yùn)算器E0R23對(duì)比特?cái)?shù)據(jù) b3和標(biāo)志FRn-I [1]執(zhí)行EXOR運(yùn)算。類(lèi)似地,EXOR運(yùn)算器E0R230的輸入之一連接到用于數(shù)據(jù)的負(fù)載連線LDR030,并且 EXOR運(yùn)算器E0R230的另一個(gè)輸入連接到用于標(biāo)志的負(fù)載連線LFR15。EXOR運(yùn)算器E0R230 對(duì)比特?cái)?shù)據(jù)b30和標(biāo)志FRn-I [15]執(zhí)行EXOR運(yùn)算。EXOR運(yùn)算器E0R231的輸入之一連接到用于數(shù)據(jù)的負(fù)載連線LDR031,并且EXOR運(yùn) 算器E0R231的另一個(gè)輸入連接到用于標(biāo)志的負(fù)載連線LFR15。EXOR運(yùn)算器E0R231對(duì)比特 數(shù)據(jù)b31和標(biāo)志FRn-I [15]執(zhí)行EXOR運(yùn)算。如上所述,第二 EXOR運(yùn)算器件109利用同一標(biāo)志FRn-UO-15]對(duì)兩個(gè)連續(xù)比特中 的每個(gè)執(zhí)行EXOR運(yùn)算。F函數(shù)器件110對(duì)其標(biāo)志已被第二 EXOR運(yùn)算器件109重置的數(shù)據(jù)執(zhí)行利用密鑰 Kn的F函數(shù)運(yùn)算。下面將參考圖3和4說(shuō)明F函數(shù)器件110的典型結(jié)構(gòu)。如圖3和4所 示,F(xiàn)函數(shù)器件110具有擴(kuò)展器件1101、第八EXOR運(yùn)算器件1102、S框器件1103和置換器 件 1104。擴(kuò)展器件1101對(duì)其標(biāo)志已被第二 EXOR運(yùn)算器件109重置的32比特?cái)?shù)據(jù)進(jìn)行擴(kuò) 展(即,執(zhí)行比特?cái)U(kuò)展處理)。在將32比特?cái)?shù)據(jù)擴(kuò)展成48比特?cái)?shù)據(jù)后,擴(kuò)展器件1101以連 續(xù)的6比特組的形式向第八EXOR運(yùn)算器件1102提供經(jīng)擴(kuò)展的數(shù)據(jù)。第八EXOR運(yùn)算器件1102對(duì)來(lái)自擴(kuò)展器件1101的輸出數(shù)據(jù)和輪密鑰Kn (具有與 經(jīng)擴(kuò)展比特相同數(shù)目的比特)執(zhí)行EXOR(異或)運(yùn)算。該運(yùn)算的結(jié)果被從第八EXOR運(yùn)算 器件1102輸出到S框器件1103。圖4中的第八EXOR運(yùn)算器件1102包括EXOR運(yùn)算器E0R60至E0R67。EXOR運(yùn)算器E0R60對(duì)來(lái)自擴(kuò)展器件1101的經(jīng)擴(kuò)展數(shù)據(jù)EPD0和密鑰數(shù)據(jù)k0至k5執(zhí)行EX0R運(yùn)算。運(yùn) 算結(jié)果被從EX0R運(yùn)算器E0R60輸出到S框器件1103中的S框S。。
EX0R運(yùn)算器E0R61對(duì)來(lái)自擴(kuò)展器件1101的經(jīng)擴(kuò)展數(shù)據(jù)EPD1和密鑰數(shù)據(jù)k6至kll 執(zhí)行EX0R運(yùn)算。運(yùn)算結(jié)果被從EX0R運(yùn)算器E0R61輸出到S框器件1103中的S框S:。EX0R運(yùn)算器E0R62對(duì)來(lái)自擴(kuò)展器件1101的經(jīng)擴(kuò)展數(shù)據(jù)EPD2和密鑰數(shù)據(jù)kl2至 kl7執(zhí)行EX0R運(yùn)算。運(yùn)算結(jié)果被從EX0R運(yùn)算器E0R62輸出到S框器件1103中的S框S2。類(lèi)似地,EX0R運(yùn)算器E0R66對(duì)來(lái)自擴(kuò)展器件1101的經(jīng)擴(kuò)展數(shù)據(jù)EPD6和密鑰數(shù)據(jù) k36至k41執(zhí)行EX0R運(yùn)算。運(yùn)算結(jié)果被從EX0R運(yùn)算器E0R66輸出到S框器件1103中的S 框S6。EX0R運(yùn)算器E0R67對(duì)來(lái)自擴(kuò)展器件1101的經(jīng)擴(kuò)展數(shù)據(jù)EPD7和密鑰數(shù)據(jù)k42至 k47執(zhí)行EX0R運(yùn)算。運(yùn)算結(jié)果被從EX0R運(yùn)算器E0R67輸出到S框器件1103中的S框S7。S框器件1103對(duì)由第八EX0R運(yùn)算器件1102執(zhí)行運(yùn)算的結(jié)果執(zhí)行非線性轉(zhuǎn)換處 理。說(shuō)明性地,S框器件1103執(zhí)行利用翻譯表將目標(biāo)數(shù)據(jù)從48比特轉(zhuǎn)換成32比特的非線 性處理。S框器件1103包括多個(gè)(圖4中為8個(gè))執(zhí)行非線性處理的S框SQ至S7。S框 &至57中的每個(gè)執(zhí)行用于利用翻譯表從6比特到4比特的非線性轉(zhuǎn)換處理。來(lái)自S框& 至S7的輸出比特(4X8 = 32比特)被輸入到置換器件1104。置換器件1104對(duì)來(lái)自S框器件1103的輸出數(shù)據(jù)的比特位置進(jìn)行置換。置換的結(jié) 果作為32比特?cái)?shù)據(jù)PD0至PD31被從置換器件1104輸出到第三EX0R運(yùn)算器件111。第三EX0R運(yùn)算器件111對(duì)來(lái)自F函數(shù)器件110的輸出數(shù)據(jù)和從第一預(yù)充電控制 器件107輸出的、左寄存器1051中鎖存的數(shù)據(jù)執(zhí)行EX0R運(yùn)算。運(yùn)算結(jié)果被從第三EX0R運(yùn) 算器件111輸出到第四EX0R運(yùn)算器件112。下面參考圖4說(shuō)明第三EX0R運(yùn)算器件111的典型結(jié)構(gòu)。如圖4所示,第三EX0R 運(yùn)算器件111包括與第一預(yù)充電控制器件107的輸出并行布置的32個(gè)EX0R運(yùn)算器E0R30 至 E0R331。EX0R運(yùn)算器E0R30的輸入之一連接到用于數(shù)據(jù)的負(fù)載連線LDL00,并且EX0R運(yùn) 算器E0R30的另一個(gè)輸入連接到用于F函數(shù)器件110的數(shù)據(jù)PD0的供給線。EX0R運(yùn)算器 E0R30對(duì)左寄存器1051中的比特?cái)?shù)據(jù)b0和數(shù)據(jù)PD0執(zhí)行EX0R運(yùn)算。EX0R運(yùn)算器E0R31的輸入之一連接到用于數(shù)據(jù)的負(fù)載連線LDL01,并且EX0R運(yùn) 算器E0R31的另一個(gè)輸入連接到用于F函數(shù)器件110的數(shù)據(jù)PD1的供給線。EX0R運(yùn)算器 E0R31對(duì)左寄存器1051中的比特?cái)?shù)據(jù)bl和數(shù)據(jù)PD1執(zhí)行EX0R運(yùn)算。類(lèi)似地,EX0R運(yùn)算器E0R330的輸入之一連接到用于數(shù)據(jù)的負(fù)載連線LDL030,并且 EX0R運(yùn)算器E0R330的另一個(gè)輸入連接到用于F函數(shù)器件110的數(shù)據(jù)PD30的供給線。EX0R 運(yùn)算器E0R330對(duì)左寄存器1051中的比特?cái)?shù)據(jù)b30和數(shù)據(jù)PD30執(zhí)行EX0R運(yùn)算。EX0R運(yùn)算器E0R331的輸入之一連接到用于數(shù)據(jù)的負(fù)載連線LDL031,并且EX0R運(yùn) 算器E0R331的另一個(gè)輸入連接到用于F函數(shù)器件110的數(shù)據(jù)PD31的供給線。EX0R運(yùn)算器 E0R331對(duì)左寄存器1051中的比特?cái)?shù)據(jù)b31和數(shù)據(jù)PD31執(zhí)行EX0R運(yùn)算。第四EX0R運(yùn)算器件112對(duì)由第三EX0R運(yùn)算器件111中的EX0R運(yùn)算器E0R30至 E0R331執(zhí)行的運(yùn)算的結(jié)果和標(biāo)志寄存器1052中的鎖存標(biāo)志FLn_l
至FLn_l[15]執(zhí)行EXOR運(yùn)算。第四EXOR運(yùn)算器件112通過(guò)對(duì)數(shù)據(jù)和標(biāo)志值執(zhí)行EXOR運(yùn)算來(lái)臨時(shí)重置標(biāo)志, 并將結(jié)果數(shù)據(jù)作為中間值輸出到AND門(mén)器件113。下面參考圖4說(shuō)明第四EXOR運(yùn)算器件112的典型結(jié)構(gòu)。如圖4所示,第四EXOR運(yùn) 算器件112具有與第三EXOR運(yùn)算器件111的輸出并行布置的32個(gè)EXOR運(yùn)算器E0R40至 E0R431。EXOR運(yùn)算器E0R40的輸入之一連接到第三EXOR運(yùn)算器件111中的EXOR運(yùn)算器 E0R30的輸出,并且EXOR運(yùn)算器E0R40的另一個(gè)輸入連接到用于標(biāo)志的負(fù)載連線LFL00。 EXOR運(yùn)算器E0R40對(duì)來(lái)自EXOR運(yùn)算器E0R30的輸出數(shù)據(jù)和標(biāo)志FLn-I
執(zhí)行EXOR運(yùn)算。EXOR運(yùn)算器E0R41的輸入之一連接到第三EXOR運(yùn)算器件111中的EXOR運(yùn)算器 E0R31的輸出,并且EXOR運(yùn)算器E0R41的另一個(gè)輸入連接到用于標(biāo)志的負(fù)載連線LFL00。 EXOR運(yùn)算器E0R41對(duì)來(lái)自EXOR運(yùn)算器E0R31的輸出數(shù)據(jù)和標(biāo)志FLn-I
執(zhí)行EXOR運(yùn)算。
EXOR運(yùn)算器E0R42的輸入之一連接到第三EXOR運(yùn)算器件111中的EXOR運(yùn)算器 E0R32的輸出,并且EXOR運(yùn)算器E0R42的另一個(gè)輸入連接到用于標(biāo)志的負(fù)載連線LFL01。 EXOR運(yùn)算器E0R42對(duì)來(lái)自EXOR運(yùn)算器E0R32的輸出數(shù)據(jù)和標(biāo)志FLn-I [1]執(zhí)行EXOR運(yùn)算。EXOR運(yùn)算器E0R43的輸入之一連接到第三EXOR運(yùn)算器件111中的EXOR運(yùn)算器 E0R33的輸出,并且EXOR運(yùn)算器E0R43的另一個(gè)輸入連接到用于標(biāo)志的負(fù)載連線LFL01。 EXOR運(yùn)算器E0R43對(duì)來(lái)自EXOR運(yùn)算器E0R33的輸出數(shù)據(jù)和標(biāo)志FLn-I [1]執(zhí)行EXOR運(yùn)算。類(lèi)似地,EXOR運(yùn)算器E0R430的輸入之一連接到第三EXOR運(yùn)算器件111中的EXOR 運(yùn)算器E0R330的輸出,并且EXOR運(yùn)算器E0R430的另一個(gè)輸入連接到用于標(biāo)志的負(fù)載連線 LFL015。EXOR運(yùn)算器E0R430對(duì)來(lái)自EXOR運(yùn)算器E0R330的輸出數(shù)據(jù)和標(biāo)志FLn-I [15]執(zhí) 行EXOR運(yùn)算。EXOR運(yùn)算器E0R431的輸入之一連接到第三EXOR運(yùn)算器件111中的EXOR運(yùn)算 器E0R331的輸出,并且EXOR運(yùn)算器E0R431的另一個(gè)輸入連接到用于標(biāo)志的負(fù)載連線 LFL015。EXOR運(yùn)算器E0R431對(duì)來(lái)自EXOR運(yùn)算器E0R331的輸出數(shù)據(jù)和標(biāo)志FLn-I [15]執(zhí) 行EXOR運(yùn)算。如上所述,第四EXOR運(yùn)算器件112利用同一標(biāo)志FRn-UO-15]對(duì)兩個(gè)連續(xù)比特中 的每個(gè)執(zhí)行EXOR運(yùn)算。AND門(mén)器件113對(duì)第四EXOR運(yùn)算器件112中的EXOR運(yùn)算器E0R40至E0R431中的 每個(gè)和控制信號(hào)/PCdly執(zhí)行AND運(yùn)算。運(yùn)算結(jié)果被從AND門(mén)器件113輸出到第二標(biāo)志運(yùn) 算器件114和第五EXOR運(yùn)算器件115。下面參考圖4詳細(xì)描述AND門(mén)器件113的典型結(jié)構(gòu)。AND門(mén)器件113包括32個(gè) AND 門(mén) ADOO 至 AD031。AND門(mén)ADOO對(duì)來(lái)自第四EXOR運(yùn)算器件112中的EXOR運(yùn)算器E0R40的輸出數(shù)據(jù)和 控制信號(hào)/PCdly執(zhí)行AND運(yùn)算。AND門(mén)ADOl對(duì)來(lái)自第四EXOR運(yùn)算器件112中的EXOR運(yùn)算器E0R41的輸出數(shù)據(jù)和 控制信號(hào)/PCdly執(zhí)行AND運(yùn)算。 AND門(mén)AD02對(duì)來(lái)自第四EXOR運(yùn)算器件112中的EXOR運(yùn)算器E0R42的輸出數(shù)據(jù)和 控制信號(hào)/PCdly執(zhí)行AND運(yùn)算。 AND門(mén)AD03對(duì)來(lái)自第四EXOR運(yùn)算器件112中的EXOR運(yùn)算器E0R43的輸出數(shù)據(jù)和控制信號(hào)/PCdly執(zhí)行AND運(yùn)算。類(lèi)似地,AND門(mén)AD030對(duì)來(lái)自第四EX0R運(yùn)算器件112中的EX0R運(yùn)算器E0R430的 輸出數(shù)據(jù)和控制信號(hào)/PCdly執(zhí)行AND運(yùn)算。AND門(mén)AD031對(duì)來(lái)自第四EX0R運(yùn)算器件112中的EX0R運(yùn)算器E0R431的輸出數(shù)據(jù) 和控制信號(hào)/PCdly執(zhí)行AND運(yùn)算。第二標(biāo)志運(yùn)算器件114根據(jù)經(jīng)由AND門(mén)器件113提供的、并且 其標(biāo)志已被第四 EX0R運(yùn)算器件112重置的中間值數(shù)據(jù)來(lái)新生成標(biāo)志FRn
至FRn[15]。新生成的標(biāo)志被從 第二標(biāo)志運(yùn)算器件114輸出到第五EX0R運(yùn)算器件115。在圖3中,饋送到第五EX0R運(yùn)算器 件115的標(biāo)志由標(biāo)號(hào)FLGn指示。由第二標(biāo)志運(yùn)算器件114生成的標(biāo)志FRn
至FRn[15] 成為第二寄存器器件106中的標(biāo)志寄存器1062的更新值。下面參考圖4說(shuō)明第二標(biāo)志運(yùn)算器件114的典型結(jié)構(gòu)。第二標(biāo)志運(yùn)算器件114包 括 16 個(gè) AND 門(mén) AD10 至 AD115。第二標(biāo)志運(yùn)算器件114中的AND門(mén)AD10對(duì)來(lái)自AND門(mén)器件113中的AND門(mén)AD00 和AD01的輸出執(zhí)行AND運(yùn)算。運(yùn)算結(jié)果作為標(biāo)志FRn
被輸出。第二標(biāo)志運(yùn)算器件114中的AND門(mén)AD11對(duì)來(lái)自AND門(mén)器件113中的AND門(mén)AD02 和AD03的輸出執(zhí)行AND運(yùn)算。運(yùn)算結(jié)果作為標(biāo)志FRn[1]被輸出。類(lèi)似地,第二標(biāo)志運(yùn)算器件114中的AND門(mén)AD115對(duì)來(lái)自AND門(mén)器件113中的AND 門(mén)AD030和AD031的輸出執(zhí)行AND運(yùn)算。運(yùn)算結(jié)果作為標(biāo)志FRn [15]被輸出。第五EX0R運(yùn)算器件115對(duì)經(jīng)由AND門(mén)器件113來(lái)自第四EX0R運(yùn)算器件112中的 EX0R運(yùn)算器E0R40至E0R431的運(yùn)算結(jié)果和由第二標(biāo)志運(yùn)算器件114生成的標(biāo)志FRn
至 FRn [15]執(zhí)行EX0R運(yùn)算。由第五EX0R運(yùn)算器件115執(zhí)行的運(yùn)算得到的數(shù)據(jù)b0,至b31,成 為第二寄存器器件106的右寄存器1061中的更新數(shù)據(jù)。下面參考圖4說(shuō)明第五EX0R運(yùn)算器件115的典型結(jié)構(gòu)。如圖4所示,第五EX0R運(yùn) 算器件115具有與AND門(mén)器件113的輸出并行布置的32個(gè)EX0R運(yùn)算器E0R50至E0R531。EX0R運(yùn)算器E0R50的輸入之一連接到AND門(mén)器件113中的AND門(mén)AD00的輸出,并 且EX0R運(yùn)算器E0R50的另一個(gè)輸入連接到標(biāo)志FRn
的輸出線。EX0R運(yùn)算器E0R50對(duì)經(jīng) 由AND門(mén)AD00從EX0R運(yùn)算器E0R40輸出的數(shù)據(jù)和標(biāo)志FRn
執(zhí)行EX0R運(yùn)算。EX0R運(yùn)算器E0R51的輸入之一連接到AND門(mén)器件113中的AND門(mén)AD01的輸出,并 且EX0R運(yùn)算器E0R51的另一個(gè)輸入連接到標(biāo)志FRn
的輸出線。EX0R運(yùn)算器E0R51對(duì)經(jīng) 由AND門(mén)AD01從EX0R運(yùn)算器E0R41輸出的數(shù)據(jù)和標(biāo)志FRn
執(zhí)行EX0R運(yùn)算。EX0R運(yùn)算器E0R52的輸入之一連接到AND門(mén)器件113中的AND門(mén)ADO2的輸出,并 且EX0R運(yùn)算器E0R52的另一個(gè)輸入連接到標(biāo)志FRn[l]的輸出線。EX0R運(yùn)算器E0R52對(duì)經(jīng) 由AND門(mén)AD02從EX0R運(yùn)算器E0R42輸出的數(shù)據(jù)和標(biāo)志FRn [1]執(zhí)行EX0R運(yùn)算。EX0R運(yùn)算器E0R53的輸入之一連接到AND門(mén)器件113中的AND門(mén)ADO3的輸出,并 且EX0R運(yùn)算器E0R53的另一個(gè)輸入連接到標(biāo)志FRn[l]的輸出線。EX0R運(yùn)算器E0R53對(duì)經(jīng) 由AND門(mén)AD03從EX0R運(yùn)算器E0R43輸出的數(shù)據(jù)和標(biāo)志FRn [1]執(zhí)行EX0R運(yùn)算。類(lèi)似地,EX0R運(yùn)算器E0R530的輸入之一連接到AND門(mén)器件113中的AND門(mén)AD030 的輸出,并且6乂(《運(yùn)算器£( 530的另一個(gè)輸入連接到標(biāo)志?1 11[15]的輸出線。EX0R運(yùn)算 器E0R530對(duì)經(jīng)由AND門(mén)AD030從EX0R運(yùn)算器E0R430輸出的數(shù)據(jù)和標(biāo)志FRn [15]執(zhí)行EX0R運(yùn)算。EXOR運(yùn)算器E0R531的輸入之一連接到AND門(mén)器件113中的AND門(mén)AD031的輸出, 并且EXOR運(yùn)算器E0R531的另一個(gè)輸入連接到標(biāo)志FRn[15]的輸出線。EXOR運(yùn)算器E0R531 對(duì)經(jīng)由AND門(mén)AD031從EXOR運(yùn)算器E0R431輸出的數(shù)據(jù)和標(biāo)志FRn [15]執(zhí)行EXOR運(yùn)算。如上所述,第五EXOR運(yùn)算器件115利用同一標(biāo)志FRn-UO-15]對(duì)兩個(gè)連續(xù)比特中 的每個(gè)執(zhí)行EXOR運(yùn)算。第六EXOR運(yùn)算器件116對(duì)經(jīng)輪運(yùn)算的數(shù)據(jù)和標(biāo)志FL16執(zhí)行EXOR運(yùn)算。標(biāo)志從 而已被重置的數(shù)據(jù)被從第六EXOR運(yùn)算器件116輸出到逆置換器件118。第七EXOR運(yùn)算器件117對(duì)經(jīng)輪運(yùn)算的數(shù)據(jù)和標(biāo)志FR16執(zhí)行EXOR運(yùn)算。標(biāo)志從 而已被重置的數(shù)據(jù)被從第七EXOR運(yùn)算器件117輸出到逆置換器件118。逆置換器件118對(duì)標(biāo)志已被重置的數(shù)據(jù)執(zhí)行逆置換(IP—1)。結(jié)果數(shù)據(jù)經(jīng)由密文輸 出器件119作為密文被從逆置換器件118輸出。下面參考圖5和6描述由作為本發(fā)明第一實(shí)施例的DES運(yùn)算電路執(zhí)行的加密操 作。圖5是說(shuō)明作為第一實(shí)施例的DES運(yùn)算電路一般如何工作的時(shí)序圖。圖6是示出了對(duì) 于作為第一實(shí)施例的DES運(yùn)算電路兩比特?cái)?shù)據(jù)和受控?cái)?shù)據(jù)之間的關(guān)系的示意圖。作為數(shù)據(jù)輸入的明文文本首先在初始置換器件101中經(jīng)過(guò)初始置換,然后被分割 成左數(shù)據(jù)LDT和右數(shù)據(jù)RDT。第一標(biāo)志運(yùn)算器件102以預(yù)定數(shù)目比特的組來(lái)對(duì)該數(shù)據(jù)執(zhí)行 標(biāo)志運(yùn)算。結(jié)果數(shù)據(jù)經(jīng)過(guò)第一 EXOR運(yùn)算器件103的標(biāo)志控制,然后與標(biāo)志數(shù)據(jù)一起被鎖存 在第一和第二寄存器器件105和106中。在該示例中,第一標(biāo)志運(yùn)算器件102以二比特的 組來(lái)對(duì)數(shù)據(jù)執(zhí)行標(biāo)志運(yùn)算。如圖6所示,標(biāo)志控制涉及僅當(dāng)二比特?cái)?shù)據(jù)(b0,bl)值為(1,1)時(shí)才將標(biāo)志 FLG(FRn)設(shè)置為“1”。在該標(biāo)志值時(shí)數(shù)據(jù)被反轉(zhuǎn)。經(jīng)過(guò)標(biāo)志控制的數(shù)據(jù)b0’和bl’值都為 “0”。包括該標(biāo)志在內(nèi),作為“1”比特?cái)?shù)目的漢明權(quán)重(HW)被保持為1或者更小。在圖6的其他三種情形中,標(biāo)志FLG(FRn)被設(shè)置為“0”,這意味著包括該標(biāo)志在 內(nèi),冊(cè)被保持為1或者更小。結(jié)果,包括該標(biāo)志在內(nèi),以二比特組執(zhí)行控制之后的HW被保 持為1或者更小。從而左數(shù)據(jù)和右數(shù)據(jù)都為32比特長(zhǎng),包括標(biāo)志寄存器1052和標(biāo)志寄存 器1062在內(nèi),左寄存器1051和右寄存器1061中鎖存的值的冊(cè)被保持為16比特或更小。該加密操作涉及具有一輪運(yùn)算,該一輪運(yùn)算在包括預(yù)充電階段和求值階段的兩個(gè) 循環(huán)中執(zhí)行。使用了兩個(gè)控制信號(hào)在預(yù)充電階段降低到Low并且在求值階段提升到High 的控制信號(hào)/PC,以及通過(guò)將控制信號(hào)/PC的上升沿延遲F函數(shù)器件110的延遲時(shí)間的量而 獲得的控制信號(hào)/PCdly。假設(shè)在第“η”輪中,原始數(shù)據(jù)為“Ln-Ι”和“Rn_l”,并且標(biāo)志值為“FLn_l”和 “FRn-Ι”。在該情形中,左寄存器1051和右寄存器1061中鎖存的數(shù)據(jù)分別為“FLn-Ι 士 Ln-1” 禾口 “FRn-Ι士Rn-1”。在預(yù)充電階段中,控制信號(hào)/PC和控制信號(hào)/PCdly都被降低到Low,使得寄存器輸 出連線上的數(shù)據(jù)和標(biāo)志以及到第二標(biāo)志運(yùn)算器件114的輸入都被設(shè)置為“0”。假設(shè)在該時(shí) 段期間,來(lái)自輪密鑰生成電路的輸出“Kn”處于“0”電平,并且被從F函數(shù)器件110輸出。在接下來(lái)的求值階段中,控制信號(hào)/PC被提升到High,使得執(zhí)行輪運(yùn)算。由于在達(dá) 到求值階段時(shí)信號(hào)/PC上升到High,所以右寄存器1061中鎖存的值和標(biāo)志寄存器1062中的標(biāo)志值被輸入到F函數(shù)器件110和第一寄存器器件105。此時(shí),在利用標(biāo)志值的控制下,第二寄存器器件106的輸出信號(hào)連線上被設(shè)為“1” 的比特的數(shù)目被保持為16或者更小。在F函數(shù)器件110的輸入的上游,右寄存器1061中 鎖存的值與標(biāo)志值經(jīng)由EX0R運(yùn)算,從而返回到原始值“Rn-1”。值“Rn-1”被輸入到用于F 函數(shù)運(yùn)算的F函數(shù)器件110。在經(jīng)過(guò)了 F函數(shù)器件110執(zhí)行運(yùn)算的時(shí)間后,該運(yùn)算的結(jié)果被 從F函數(shù)器件110輸出。大約同時(shí),控制信號(hào)/PCdly被提升到High。左寄存器1051中鎖存的數(shù)據(jù)在控制信號(hào)/PCdly的上升沿時(shí)被輸出到信號(hào)連線 上。此時(shí),設(shè)置為“1”的比特的數(shù)目被保持在16或者更小。左寄存器1051中鎖存的數(shù)據(jù)“FLn-1 士Ln-1”被輸入到第三EX0R運(yùn)算器件111。 在這里,輸入數(shù)據(jù)被與來(lái)自F函數(shù)器件110的輸出進(jìn)行異或。異或運(yùn)算的結(jié)果為“FLn-1士Ln-1 士F(Rn-l,Kn) = FLn-1 士Rn”。但是,由于 “FLn-1”不是數(shù)據(jù)“Rn”的標(biāo)志,所以第三EX0R運(yùn)算器件111的輸出連線上被設(shè)為“ 1 ”的比 特的數(shù)目不一定保持為16或者更小。此后,該數(shù)據(jù)在第四EX0R運(yùn)算器件112中被與標(biāo)志“FLn-1”異或,從而標(biāo)志被重 置,并且獲得了運(yùn)算結(jié)果“Rn”。該值也不經(jīng)過(guò)控制,從而在第四EX0R運(yùn)算器件112的輸出 連線上被設(shè)為“ 1,,的比特的數(shù)目不被保持在16或者更小。對(duì)于來(lái)自AND門(mén)器件113的輸出,即,對(duì)于對(duì)上述信號(hào)和控制信號(hào)/PCdly的AND 運(yùn)算的結(jié)果,也是這樣的。從而,為了減少信號(hào)連線上的充電和放電電流,優(yōu)選地使從第三 EX0R運(yùn)算器件111到第五EX0R運(yùn)算器件115的路徑上的計(jì)算元件彼此保持靠近。在控制信號(hào)/PCdly的上升沿時(shí),AND門(mén)器件113的輸出變?yōu)榛顒?dòng)。運(yùn)算結(jié)果“Rn” 隨后被輸入到第二標(biāo)志運(yùn)算器件114,從而生成了新的標(biāo)志值。這樣生成的標(biāo)志值被第五EX0R運(yùn)算器件115用于數(shù)據(jù)反轉(zhuǎn)控制。設(shè)置為“1”的 比特的數(shù)目被保持為16或者更小的數(shù)據(jù)隨后被輸出并被發(fā)送到右寄存器1061。用于兩比特控制的第二標(biāo)志運(yùn)算器件114是圖4所示的AND電路。僅當(dāng)兩個(gè)比特 都為“ 1,,時(shí),標(biāo)志才被設(shè)置為“ 1,,來(lái)將每個(gè)數(shù)據(jù)反轉(zhuǎn)為“0”。對(duì)于其他數(shù)據(jù),標(biāo)志值被設(shè)置 為“0”,但是兩比特?cái)?shù)據(jù)中被設(shè)置為“1”的比特的數(shù)目為1或者更小。根據(jù)上述操作,在下一輪中,在來(lái)自右寄存器的輸出中,包括標(biāo)志在內(nèi),被設(shè)置為 “1”的比特的數(shù)目保持為16或者更小。在該輪運(yùn)算結(jié)束時(shí),最終數(shù)據(jù)是與標(biāo)志值異或了的, 從而返回到原始數(shù)據(jù)。在逆置換后,數(shù)據(jù)作為運(yùn)算結(jié)果被輸出。根據(jù)用于兩比特控制的第一實(shí)施例,如上所述,包括標(biāo)志在內(nèi),信號(hào)線的HW被保 持為小于總線寬度的一半,從而一定程度降低了功耗。<2.第二實(shí)施例〉現(xiàn)在將描述本發(fā)明第二實(shí)施例。圖7是示出了作為實(shí)現(xiàn)為本發(fā)明第二實(shí)施例的加 密處理器件的DES運(yùn)算電路100A的典型結(jié)構(gòu)的示意圖。圖8是部分示出了圖7中的DES 運(yùn)算電路100A的典型結(jié)構(gòu)的電路圖。在圖7和圖8中,為了簡(jiǎn)化和說(shuō)明,結(jié)構(gòu)和功能與圖 3和4中的組件等同的組件由類(lèi)似的標(biāo)號(hào)標(biāo)出。作為第二實(shí)施例的DES運(yùn)算電路100A與圖3和4中所示的作為第一實(shí)施例的DES 運(yùn)算電路不同在于DES運(yùn)算電路100A被構(gòu)造為不是以?xún)杀忍亟M而是以四比特組來(lái)降低反 轉(zhuǎn)控制下總線上的充電和放電電流的電路。
更具體而言,DES運(yùn)算電路100A在以下電路結(jié)構(gòu)上不同于DES運(yùn)算電路100.圖3和4中的DES運(yùn)算電路100對(duì)左寄存器1051中鎖存的值和F函數(shù)值執(zhí)行EXOR 運(yùn)算,然后對(duì)前述運(yùn)算的結(jié)果和標(biāo)志寄存器1052中的值執(zhí)行EXOR運(yùn)算。相反,DES運(yùn)算 電路100A具有第四EXOR運(yùn)算器件112A,用于對(duì)來(lái)自F函數(shù)器件110的輸出和標(biāo)志寄存器 1052中的值執(zhí)行EXOR運(yùn)算,然后使第三EXOR運(yùn)算器件11IA對(duì)前述運(yùn)算的結(jié)果和左寄存器 1051中的值執(zhí)行EXOR運(yùn)算。為了實(shí)現(xiàn)上述布置,AND門(mén)器件113A在第二實(shí)施例中被布置在F函數(shù)器件110的 輸出側(cè),而在第一實(shí)施例中AND門(mén)器件113A的相對(duì)器件位于第二標(biāo)志運(yùn)算器件114的輸入 的直接上游。對(duì)于第二實(shí)施例,寄存器中鎖存的值的HW被控制來(lái)降低信號(hào)路徑上的充電和放 電電流。該控制布置不被應(yīng)用到隨后經(jīng)受由邏輯電路執(zhí)行的與其他數(shù)據(jù)的邏輯運(yùn)算的數(shù) 據(jù)。假設(shè)后一布置的信號(hào)路徑被布設(shè)為規(guī)模最小。因此,在左寄存器1051 —側(cè)上的重負(fù)載的信號(hào)連線是從左寄存器的輸出到第一 EXOR運(yùn)算器件并且在HW控制下的路徑。其他路徑上的數(shù)據(jù)的HW不受控制。然而,第二實(shí)施例的負(fù)載連線被布置為以緊湊方式布設(shè),從而使得它們的容量將 被最小化。因此,在圖3的結(jié)構(gòu)和圖7的結(jié)構(gòu)之間降低電流的效果方面的差別可忽略。圖7中在右寄存器1061 —側(cè)的結(jié)構(gòu)與圖3的以?xún)杀忍亟M控制的結(jié)構(gòu)工作方式相 同。唯一的差別在于構(gòu)成要控制的每個(gè)比特組的比特?cái)?shù)目和所涉及的標(biāo)志的數(shù)目。受控?cái)?shù) 據(jù)和標(biāo)志在F函數(shù)的直接上游被異或,從而標(biāo)志被重置。第“η”輪中寄存器中鎖存的值基于在初始置換的上游或下游運(yùn)算出的標(biāo)志值而經(jīng) 受反轉(zhuǎn)控制,該反轉(zhuǎn)控制是以在四比特組中HW被保持為2或者更小的方式執(zhí)行的。后面將 更詳細(xì)地討論該控制方法。下面說(shuō)明圖8所示的主要組件的典型結(jié)構(gòu)和功能。在下面的描述中,與圖4中的 組件等同的組件將由類(lèi)似標(biāo)號(hào)標(biāo)注。如圖8所示,第二實(shí)施例的第一預(yù)充電控制器件107Α 具有八個(gè)AND門(mén)AFLOO至AFL07,作為用于標(biāo)志的AND門(mén)。第四EXOR運(yùn)算器件112A對(duì)來(lái)自F函數(shù)器件110的輸出數(shù)據(jù)PDO至PD31和標(biāo)志 寄存器1052中的鎖存標(biāo)志FLn-I
至FLn-I [7]執(zhí)行EXOR運(yùn)算。下面參考圖8說(shuō)明第四EXOR運(yùn)算器件112A的典型結(jié)構(gòu)。如圖8所示,第四EXOR運(yùn) 算器件112A具有與F函數(shù)器件110的輸出并行布置的32個(gè)EXOR運(yùn)算器E0R40至E0R431。EXOR運(yùn)算器E0R40的輸入之一連接到F函數(shù)器件110的數(shù)據(jù)PDO的供給線,并且EXOR運(yùn)算器E0R40的另一個(gè)輸入連接到用于標(biāo)志的負(fù)載連線LFL00。EXOR運(yùn)算器E0R40對(duì) 來(lái)自F函數(shù)器件110的輸出數(shù)據(jù)PDO和標(biāo)志FLn-I
執(zhí)行EXOR運(yùn)算。EXOR運(yùn)算器E0R41的輸入之一連接到F函數(shù)器件110的數(shù)據(jù)PDl的供給線,并且 EXOR運(yùn)算器E0R41的另一個(gè)輸入連接到用于標(biāo)志的負(fù)載連線LFL00。EXOR運(yùn)算器E0R41對(duì) 來(lái)自F函數(shù)器件110的輸出數(shù)據(jù)PDl和標(biāo)志FLn-I
執(zhí)行EXOR運(yùn)算。EXOR運(yùn)算器E0R42的輸入之一連接到F函數(shù)器件110的數(shù)據(jù)PD2的供給線,并且 EXOR運(yùn)算器E0R42的另一個(gè)輸入連接到用于標(biāo)志的負(fù)載連線LFL00。EXOR運(yùn)算器E0R42對(duì) 來(lái)自F函數(shù)器件110的輸出數(shù)據(jù)PD2和標(biāo)志FLn-I
執(zhí)行EXOR運(yùn)算。EXOR運(yùn)算器E0R43的輸入之一連接到F函數(shù)器件110的數(shù)據(jù)PD3的供給線,并且EX0R運(yùn)算器E0R43的另一個(gè)輸入連接到用于標(biāo)志的負(fù)載連線LFL00。EX0R運(yùn)算器E0R43對(duì) 來(lái)自F函數(shù)器件110的輸出數(shù)據(jù)PD3和標(biāo)志FLn-1
執(zhí)行EX0R運(yùn)算。EX0R運(yùn)算器E0R44的輸入之一連接到F函數(shù)器件110的數(shù)據(jù)PD4的供給線,并且 EX0R運(yùn)算器E0R44的另一個(gè)輸入連接到用于標(biāo)志的負(fù)載連線LFL01。EX0R運(yùn)算器E0R44對(duì) 來(lái)自F函數(shù)器件110的輸出數(shù)據(jù)PD4和標(biāo)志FLn-1 [1]執(zhí)行EX0R運(yùn)算。EX0R運(yùn)算器E0R45的輸入之一連接到F函數(shù)器件110的數(shù)據(jù)PD5的供給線,并且 EX0R運(yùn)算器E0R45的另一個(gè)輸入連接到用于標(biāo)志的負(fù)載連線LFL01。EX0R運(yùn)算器E0R45對(duì) 來(lái)自F函數(shù)器件110的輸出數(shù)據(jù)PD5和標(biāo)志FLn-1 [1]執(zhí)行EX0R運(yùn)算。EX0R運(yùn)算器E0R46的輸入之一連接到F函數(shù)器件110的數(shù)據(jù)PD6的供給線,并且 EX0R運(yùn)算器E0R46的另一個(gè)輸入連接到用于標(biāo)志的負(fù)載連線LFL01。EX0R運(yùn)算器E0R46對(duì) 來(lái)自F函數(shù)器件110的輸出數(shù)據(jù)PD6和標(biāo)志FLn-1 [1]執(zhí)行EX0R運(yùn)算。EX0R運(yùn)算器E0R47的輸入之一連接到F函數(shù)器件110的數(shù)據(jù)PD7的供給線,并且 EX0R運(yùn)算器E0R47的另一個(gè)輸入連接到用于標(biāo)志的負(fù)載連線LFL01。EX0R運(yùn)算器E0R47對(duì) 來(lái)自F函數(shù)器件110的輸出數(shù)據(jù)PD7和標(biāo)志FLn-1 [1]執(zhí)行EX0R運(yùn)算。類(lèi)似地,EX0R運(yùn)算器E0R428的輸入之一連接到F函數(shù)器件110的數(shù)據(jù)PD28的供 給線,并且EX0R運(yùn)算器E0R428的另一個(gè)輸入連接到用于標(biāo)志的負(fù)載連線LFL07。EX0R運(yùn) 算器E0R428對(duì)來(lái)自F函數(shù)器件110的輸出數(shù)據(jù)PD28和標(biāo)志FLn-1 [7]執(zhí)行EX0R運(yùn)算。EX0R運(yùn)算器E0R429的輸入之一連接到F函數(shù)器件110的數(shù)據(jù)PD29的供給線,并且 EX0R運(yùn)算器E0R429的另一個(gè)輸入連接到用于標(biāo)志的負(fù)載連線LFL07。EX0R運(yùn)算器E0R429 對(duì)來(lái)自F函數(shù)器件110的輸出數(shù)據(jù)PD29和標(biāo)志FLn-1 [7]執(zhí)行EX0R運(yùn)算。EX0R運(yùn)算器E0R430的輸入之一連接到F函數(shù)器件110的數(shù)據(jù)PD30的供給線, 并且EX0R運(yùn)算器E0R430的另一個(gè)輸入連接到用于標(biāo)志的負(fù)載連線LFL030。EX0R運(yùn)算器 E0R430對(duì)來(lái)自F函數(shù)器件110的輸出數(shù)據(jù)PD30和標(biāo)志FLn-1 [7]執(zhí)行EX0R運(yùn)算。EX0R運(yùn)算器E0R431的輸入之一連接到F函數(shù)器件110的數(shù)據(jù)PD31的供給線, 并且EX0R運(yùn)算器E0R431的另一個(gè)輸入連接到用于標(biāo)志的負(fù)載連線LFL031。EX0R運(yùn)算器 E0R431對(duì)來(lái)自F函數(shù)器件110的輸出數(shù)據(jù)PD31和標(biāo)志FLn-1 [7]執(zhí)行EX0R運(yùn)算。如上所述,第四EX0R運(yùn)算器件112A利用同一標(biāo)志FLn_l
對(duì)四個(gè)連續(xù)比特中 的每個(gè)執(zhí)行EX0R運(yùn)算。AND門(mén)器件113A對(duì)第四EX0R運(yùn)算器件112A中的EX0R運(yùn)算器E0R40至E0R431中 的每個(gè)和控制信號(hào)/PCdly執(zhí)行AND運(yùn)算。運(yùn)算結(jié)果被從AND門(mén)器件113A輸出到第三EX0R 運(yùn)算器件111A。下面參考圖8詳細(xì)描述AND門(mén)器件113A的典型結(jié)構(gòu)。AND門(mén)器件113A包括32個(gè) AND 門(mén) AD00 至 AD031。AND門(mén)AD00對(duì)來(lái)自第四EX0R運(yùn)算器件112A中的EX0R運(yùn)算器E0R40的輸出數(shù)據(jù) 和控制信號(hào)/PCdly執(zhí)行AND運(yùn)算。AND門(mén)AD01對(duì)來(lái)自第四EX0R運(yùn)算器件112A中的EX0R運(yùn)算器E0R41的輸出數(shù)據(jù) 和控制信號(hào)/PCdly執(zhí)行AND運(yùn)算。AND門(mén)AD02對(duì)來(lái)自第四EX0R運(yùn)算器件112A中的EX0R運(yùn)算器E0R42的輸出數(shù)據(jù) 和控制信號(hào)/PCdly執(zhí)行AND運(yùn)算。
AND門(mén)AD03對(duì)來(lái)自第四EXOR運(yùn)算器件112A中的EXOR運(yùn)算器E0R43的輸出數(shù)據(jù) 和控制信號(hào)/PCdly執(zhí)行AND運(yùn)算。AND門(mén)AD04對(duì)來(lái)自第四EXOR運(yùn)算器件112A中的EXOR運(yùn)算器E0R44的輸出數(shù)據(jù) 和控制信號(hào)/PCdly執(zhí)行AND運(yùn)算。AND門(mén)AD05對(duì)來(lái)自第四EXOR運(yùn)算器件112A中的EXOR運(yùn)算器E0R45的輸出數(shù)據(jù) 和控制信號(hào)/PCdly執(zhí)行AND運(yùn)算。AND門(mén)AD06對(duì)來(lái)自第四EXOR運(yùn)算器件112A中的EXOR運(yùn)算器E0R46的輸出數(shù)據(jù) 和控制信號(hào)/PCdly執(zhí)行AND運(yùn)算。AND門(mén)AD07對(duì)來(lái)自第四EXOR運(yùn)算器件112A中的EXOR運(yùn)算器E0R47的輸出數(shù)據(jù) 和控制信號(hào)/PCdly執(zhí)行AND運(yùn)算。類(lèi)似地,AND門(mén)AD028對(duì)來(lái)自第四EXOR運(yùn)算器件112A中的EXOR運(yùn)算器E0R428的 輸出數(shù)據(jù)和控制信號(hào)/PCdly執(zhí)行AND運(yùn)算。AND門(mén)AD029對(duì)來(lái)自第四EXOR運(yùn)算器件112A中的EXOR運(yùn)算器E0R429的輸出數(shù) 據(jù)和控制信號(hào)/PCdly執(zhí)行AND運(yùn)算。AND門(mén)AD030對(duì)來(lái)自第四EXOR運(yùn)算器件112A中的EXOR運(yùn)算器E0R430的輸出數(shù) 據(jù)和控制信號(hào)/PCdly執(zhí)行AND運(yùn)算。AND門(mén)AD031對(duì)來(lái)自第四EXOR運(yùn)算器件112A中的EXOR運(yùn)算器E0R431的輸出數(shù) 據(jù)和控制信號(hào)/PCdly執(zhí)行AND運(yùn)算。第三EXOR運(yùn)算器件IllA對(duì)來(lái)自AND門(mén)器件113A的輸出數(shù)據(jù)和從第一預(yù)充電控 制器件107輸出的、左寄存器1051中鎖存的數(shù)據(jù)執(zhí)行EXOR運(yùn)算。運(yùn)算結(jié)果被從第三EXOR 運(yùn)算器件IllA輸出到第二標(biāo)志運(yùn)算器件114A和第五EXOR運(yùn)算器件115A。下面參考圖8說(shuō)明第三EXOR運(yùn)算器件IllA的典型結(jié)構(gòu)。如圖8所示,第三EXOR 運(yùn)算器件11IA包括與第一預(yù)充電控制器件107的輸出并行布置的32個(gè)EXOR運(yùn)算器E0R30 至 E0R331。EXOR運(yùn)算器E0R30的輸入之一連接到用于數(shù)據(jù)的負(fù)載連線LDL00,并且EXOR運(yùn) 算器E0R30的另一個(gè)輸入連接到AND門(mén)器件113A中的AND門(mén)ADOO的輸出。EXOR運(yùn)算器 E0R30對(duì)左寄存器1051中的比特?cái)?shù)據(jù)b0和已經(jīng)受與比特?cái)?shù)據(jù)b0的標(biāo)志的EXOR運(yùn)算的數(shù) 據(jù)PDO執(zhí)行EXOR運(yùn)算運(yùn)算。EXOR運(yùn)算器E0R31的輸入之一連接到用于數(shù)據(jù)的負(fù)載連線LDLOl,并且EXOR運(yùn) 算器E0R31的另一個(gè)輸入連接到AND門(mén)器件113A中的AND門(mén)ADOl的輸出。EXOR運(yùn)算器 E0R31對(duì)左寄存器1051中的比特?cái)?shù)據(jù)bl和已經(jīng)受與比特?cái)?shù)據(jù)bl的標(biāo)志的EXOR運(yùn)算的數(shù) 據(jù)PDl執(zhí)行EXOR運(yùn)算運(yùn)算。EXOR運(yùn)算器E0R32的輸入之一連接到用于數(shù)據(jù)的負(fù)載連線LDL02,并且EXOR運(yùn) 算器E0R32的另一個(gè)輸入連接到AND門(mén)器件113A中的AND門(mén)AD02的輸出。EXOR運(yùn)算器 E0R32對(duì)左寄存器1051中的比特?cái)?shù)據(jù)b2和已經(jīng)受與比特?cái)?shù)據(jù)b2的標(biāo)志的EXOR運(yùn)算的數(shù) 據(jù)PD2執(zhí)行EXOR運(yùn)算運(yùn)算。EXOR運(yùn)算器E0R33的輸入之一連接到用于數(shù)據(jù)的負(fù)載連線LDL03,并且EXOR運(yùn)算器E0R33的另一個(gè)輸入連接到AND門(mén)器件113A中的AND門(mén)AD03的輸出。EXOR運(yùn)算器 E0R33對(duì)左寄存器1051中的比特?cái)?shù)據(jù)b3和已經(jīng)受與比特?cái)?shù)據(jù)b3的標(biāo)志的EXOR運(yùn)算的數(shù)據(jù)PD3執(zhí)行EXOR運(yùn)算運(yùn)算。EXOR運(yùn)算器E0R34的輸入之一連接到用于數(shù)據(jù)的負(fù)載連線LDL04,并且EXOR運(yùn) 算器E0R34的另一個(gè)輸入連接到AND門(mén)器件113A中的AND門(mén)AD04的輸出。EXOR運(yùn)算器 E0R34對(duì)左寄存器1051中的比特?cái)?shù)據(jù)b4和已經(jīng)受與比特?cái)?shù)據(jù)b4的標(biāo)志的EXOR運(yùn)算的數(shù) 據(jù)PD4執(zhí)行EXOR運(yùn)算運(yùn)算。EXOR運(yùn)算器E0R35的輸入之一連接到用于數(shù)據(jù)的負(fù)載連線LDL05,并且EXOR運(yùn) 算器E0R35的另一個(gè)輸入連接到AND門(mén)器件113A中的AND門(mén)AD05的輸出。EXOR運(yùn)算器 E0R35對(duì)左寄存器1051中的比特?cái)?shù)據(jù)b5和已經(jīng)受與比特?cái)?shù)據(jù)b5的標(biāo)志的EXOR運(yùn)算的數(shù) 據(jù)PD5執(zhí)行EXOR運(yùn)算運(yùn)算。EXOR運(yùn)算器E0R36的輸入之一連接到用于數(shù)據(jù)的負(fù)載連線LDL06,并且EXOR運(yùn) 算器E0R36的另一個(gè)輸入連接到AND門(mén)器件113A中的AND門(mén)AD06的輸出。EXOR運(yùn)算器 E0R36對(duì)左寄存器1051中的比特?cái)?shù)據(jù)b6和已經(jīng)受與比特?cái)?shù)據(jù)b6的標(biāo)志的EXOR運(yùn)算的數(shù) 據(jù)PD6執(zhí)行EXOR運(yùn)算運(yùn)算。EXOR運(yùn)算器E0R37的輸入之一連接到用于數(shù)據(jù)的負(fù)載連線LDL07,并且EXOR運(yùn) 算器E0R37的另一個(gè)輸入連接到AND門(mén)器件113A中的AND門(mén)AD07的輸出。EXOR運(yùn)算器 E0R37對(duì)左寄存器1051中的比特?cái)?shù)據(jù)b7和已經(jīng)受與比特?cái)?shù) 據(jù)b7的標(biāo)志的EXOR運(yùn)算的數(shù) 據(jù)PD7執(zhí)行EXOR運(yùn)算運(yùn)算。類(lèi)似地,EXOR運(yùn)算器E0R328的輸入之一連接到用于數(shù)據(jù)的負(fù)載連線LDL028,并且 EXOR運(yùn)算器E0R328的另一個(gè)輸入連接到AND門(mén)器件113A中的AND門(mén)AD28的輸出。EXOR 運(yùn)算器E0R328對(duì)左寄存器1051中的比特?cái)?shù)據(jù)b28和已經(jīng)受與比特?cái)?shù)據(jù)b28的標(biāo)志的EXOR 運(yùn)算的數(shù)據(jù)PD28執(zhí)行EXOR運(yùn)算運(yùn)算。EXOR運(yùn)算器E0R329的輸入之一連接到用于數(shù)據(jù)的負(fù)載連線LDL029,并且EXOR運(yùn) 算器E0R329的另一個(gè)輸入連接到AND門(mén)器件113A中的AND門(mén)AD29的輸出。EXOR運(yùn)算器 E0R329對(duì)左寄存器1051中的比特?cái)?shù)據(jù)b29和已經(jīng)受與比特?cái)?shù)據(jù)b29的標(biāo)志的EXOR運(yùn)算的 數(shù)據(jù)PD29執(zhí)行EXOR運(yùn)算運(yùn)算。EXOR運(yùn)算器E0R330的輸入之一連接到用于數(shù)據(jù)的負(fù)載連線LDL030,并且EXOR運(yùn) 算器E0R330的另一個(gè)輸入連接到AND門(mén)器件113A中的AND門(mén)AD30的輸出。EXOR運(yùn)算器 E0R330對(duì)左寄存器1051中的比特?cái)?shù)據(jù)b30和已經(jīng)受與比特?cái)?shù)據(jù)b30的標(biāo)志的EXOR運(yùn)算的 數(shù)據(jù)PD30執(zhí)行EXOR運(yùn)算運(yùn)算。EXOR運(yùn)算器E0R331的輸入之一連接到用于數(shù)據(jù)的負(fù)載連線LDL031,并且EXOR運(yùn) 算器E0R331的另一個(gè)輸入連接到AND門(mén)器件113A中的AND門(mén)AD31的輸出。EXOR運(yùn)算器 E0R331對(duì)左寄存器1051中的比特?cái)?shù)據(jù)b31和已經(jīng)受與比特?cái)?shù)據(jù)b31的標(biāo)志的EXOR運(yùn)算的 數(shù)據(jù)PD31執(zhí)行EXOR運(yùn)算運(yùn)算。第二標(biāo)志運(yùn)算器件114A根據(jù)從第三EXOR運(yùn)算器件IllA提供的、并且其標(biāo)志已被 重置的中間值數(shù)據(jù)來(lái)新生成標(biāo)志FRn
至FRn[7]。新生成的標(biāo)志被從第二標(biāo)志運(yùn)算器件 114A輸出到第五EXOR運(yùn)算器件115A。在圖7中,饋送到第五EXOR運(yùn)算器件115A的標(biāo)志 由標(biāo)號(hào)FLGn指示。由第二標(biāo)志運(yùn)算器件114A生成的標(biāo)志FRn
至FRn[7]成為第二寄存 器器件106中的標(biāo)志寄存器1062的更新值。第二標(biāo)志運(yùn)算器件114A包括八個(gè)標(biāo)志運(yùn)算電 路 114A-0 至 114A-7。
圖9是作為第二實(shí)施例的一部分的第二標(biāo)志運(yùn)算器件114A中的標(biāo)志運(yùn)算電路的 典型結(jié)構(gòu)。在第二標(biāo)志運(yùn)算器件114A中,每個(gè)標(biāo)志運(yùn)算電路由標(biāo)號(hào)200指示。標(biāo)志運(yùn)算電 路標(biāo)志運(yùn)算電路200包括數(shù)據(jù)線LD200至LD203、AND-NOR門(mén)ANR200至ANR202、以及三輸 Λ NOR 門(mén) NR200。AND-NOR門(mén)ANR200的第一輸入端子和第二輸入端子分別連接到數(shù)據(jù)線LD200和 LD201。AND-NOR門(mén)ANR200的第三輸入端子和第四輸入端子分別連接到數(shù)據(jù)線LD202和 LD203。AND-NOR門(mén)ANR201的第一輸入端子和第二輸入端子分別連接到數(shù)據(jù)線LD200和 LD202。AND-NOR門(mén)ANR201的第三輸入端子和第四輸入端子分別連接到數(shù)據(jù)線LD201和 LD203。AND-NOR門(mén)ANR202的第一輸入端子和第二輸入端子分別連接到數(shù)據(jù)線LD200和 LD203。AND-NOR門(mén)ANR202的第三輸入端子和第四輸入端子分別連接到數(shù)據(jù)線LD201和 LD202。NOR門(mén)NR200的第一輸入端子連接到AND-N0R門(mén)ANR200的輸出。NOR門(mén)NR200 的第二輸入端子連接到AND-NOR門(mén)ANR201的輸出。NOR門(mén)NR200的第三輸入端子連接到 AND-NOR 門(mén) ANR202 的輸出。圖9的標(biāo)志運(yùn)算電路200具有如上布置來(lái)處理比特?cái)?shù)據(jù)的三個(gè)AND-NOR門(mén)ANR200 至ANR202和一個(gè)三輸入NOR門(mén)NR200。如果輸入到標(biāo)志運(yùn)算電路200的四比特?cái)?shù)據(jù)組包括 至少三個(gè)1,則三輸入NOR門(mén)NR200輸出使數(shù)據(jù)被反轉(zhuǎn)的High標(biāo)志。圖IOA和IOB給出了由標(biāo)志運(yùn)算電路200執(zhí)行的運(yùn)算的典型結(jié)果,示意性地示出 了關(guān)于作為第二實(shí)施例的DES運(yùn)算電路的四比特?cái)?shù)據(jù)和受控?cái)?shù)據(jù)之間的關(guān)系。圖IOA示出 了控制之前的典型輸入數(shù)據(jù)和它們的原始漢明權(quán)重,并且圖IOB示出了受控標(biāo)志值、從而 受控的數(shù)據(jù)、以及包括受控?cái)?shù)據(jù)的標(biāo)志值在內(nèi)的實(shí)際的漢明權(quán)重。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(0,0,0,0),則漢明權(quán)重(HW)為“0”。 在控制之后,標(biāo)志FLGn為“0”,四比特受控?cái)?shù)據(jù)(b0’,bl’,b2’,b3’)為(0,0,0,0),并且控 制之后的漢明權(quán)重(冊(cè)’)為“0”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(0,0,0,1),則冊(cè)為“1”。在控制之 后,標(biāo)志FLGn為“0”,四比特受控?cái)?shù)據(jù)(b0’,bl’,b2’,b3’)為(0,0,0,1),并且冊(cè),為“ 1”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(0,0,1,0),則冊(cè)為“1”。在控制之 后,標(biāo)志FLGn為“0”,四比特受控?cái)?shù)據(jù)(b0’,bl’,b2’,b3’)為(0,0,1,0),并且冊(cè),為“ 1”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(0,0,1,1),則冊(cè)為“2”。在控制之 后,標(biāo)志FLGn為“0”,四比特受控?cái)?shù)據(jù)(b0,,bl,,b2,,b3,)為(0,0,1,1),并且冊(cè),為“2”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(0,1,0,0),則冊(cè)為“1”。在控制之 后,標(biāo)志FLGn為“0”,四比特受控?cái)?shù)據(jù)(b0’,bl’,b2’,b3’)為(0,1,0,0),并且冊(cè),為“ 1”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(0,1,0,1),則冊(cè)為“2”。在控制之 后,標(biāo)志FLGn為“0”,四比特受控?cái)?shù)據(jù)(b0,,bl,,b2,,b3,)為(0,1,0,1),并且冊(cè),為“2”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(0,1,1,0),則冊(cè)為“21”。在控制之 后,標(biāo)志FLGn為“0”,四比特受控?cái)?shù)據(jù)(b0,,bl,,b2,,b3,)為(0,1,0,1),并且冊(cè),為“2”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(0,1,1,1),則冊(cè)為“3”。在控制之后,標(biāo)志FLGn為“1”,四比特受控?cái)?shù)據(jù)(b0’,bl’,b2’,b3’)為(1,0,0,0),并且冊(cè),為“2”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(1,0,0,0),則冊(cè)為“1”。在控制之 后,標(biāo)志FLGn為“0”,四比特受控?cái)?shù)據(jù)(b0’,bl’,b2’,b3’)為(1,0,0,0),并且冊(cè),為“ 1”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(1,0,0,1),則冊(cè)為“2”。在控制之 后,標(biāo)志FLGn為“0”,四比特受控?cái)?shù)據(jù)(b0’,bl’,b2’,b3’)為(1,0,0,1),并且冊(cè),為“2”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(1,0,1,0),則冊(cè)為“2”。在控制之 后,標(biāo)志FLGn為“0”,四比特受控?cái)?shù)據(jù)(b0’,bl’,b2’,b3’)為(1,0,1,0),并且冊(cè),為“2”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(1,0,1,1),則冊(cè)為“3”。在控制之 后,標(biāo)志FLGn為“1”,四比特受控?cái)?shù)據(jù)(b0’,bl’,b2’,b3’)為(0,1,0,0),并且冊(cè),為“2”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(1,1,0,0),則冊(cè)為“2”。在控制之 后,標(biāo)志FLGn為“0”,四比特受控?cái)?shù)據(jù)(b0’,bl’,b2’,b3’)為(1,1,0,0),并且冊(cè),為“2”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(1,1,0,1),則冊(cè)為“3”。在控制之 后,標(biāo)志FLGn為“1”,四比特受控?cái)?shù)據(jù)(b0’,bl’,b2’,b3’)為(0,0,1,0),并且冊(cè),為“2”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(1,1,1,0),則冊(cè)為“3”。在控制之 后,標(biāo)志FLGn為“1”,四比特受控?cái)?shù)據(jù)(b0’,bl’,b2’,b3’)為(0,0,0,1),并且冊(cè),為“2”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(1,1,1,1),則冊(cè)為“4”。在控制之 后,標(biāo)志FLGn為“1”,四比特受控?cái)?shù)據(jù)(b0’,bl’,b2’,b3’)為(0,0,0,0),并且冊(cè),為“ 1 ”。如圖10A和10B所示,在所有情形中冊(cè)都被保持在兩比特或者更小。盡管DES運(yùn) 算電路涉及32個(gè)信號(hào),但是HW被保持在16比特或者更小,從而降低了最大功耗。第五EX0R運(yùn)算器件115A對(duì)由第三EX0R運(yùn)算器件111A中的EX0R運(yùn)算器E0R30 至E0R331執(zhí)行的運(yùn)算的結(jié)果和由第二標(biāo)志運(yùn)算器件114A生成的標(biāo)志FRn
至FRn[7]執(zhí) 行EX0R運(yùn)算。來(lái)自第五EX0R運(yùn)算器件115A的運(yùn)算結(jié)果數(shù)據(jù)b0,至b31,成為第二寄存器 器件106的右寄存器1061中的更新數(shù)據(jù)。下面參考圖8說(shuō)明第五EX0R運(yùn)算器件115A的典型結(jié)構(gòu)。如圖8所示,第五EX0R 運(yùn)算器件115A具有與第三EX0R運(yùn)算器件111A的輸出并行布置的32個(gè)EX0R運(yùn)算器E0R50 至 E0R531。EX0R運(yùn)算器E0R50的輸入之一連接到第三EX0R運(yùn)算器件111A中的EX0R運(yùn)算器 E0R30的輸出,并且EX0R運(yùn)算器E0R50的另一個(gè)輸入連接到第二標(biāo)志運(yùn)算器件114A的標(biāo)志 FRn
的輸出線。EX0R運(yùn)算器E0R50對(duì)來(lái)自EX0R運(yùn)算器E0R30的輸出數(shù)據(jù)和標(biāo)志FRn
執(zhí)行EX0R運(yùn)算。EX0R運(yùn)算器E0R51的輸入之一連接到第三EX0R運(yùn)算器件111A中的EX0R運(yùn)算器 E0R31的輸出,并且EX0R運(yùn)算器E0R50的另一個(gè)輸入連接到第二標(biāo)志運(yùn)算器件114A的標(biāo)志 FRn
的輸出線。EX0R運(yùn)算器E0R50對(duì)來(lái)自EX0R運(yùn)算器E0R31的輸出數(shù)據(jù)和標(biāo)志FRn
執(zhí)行EX0R運(yùn)算。EX0R運(yùn)算器E0R52的輸入之一連接到第三EX0R運(yùn)算器件111A中的EX0R運(yùn)算器 E0R32的輸出,并且EX0R運(yùn)算器E0R52的另一個(gè)輸入連接到第二標(biāo)志運(yùn)算器件114A的標(biāo)志 FRn
的輸出線。EX0R運(yùn)算器E0R52對(duì)來(lái)自EX0R運(yùn)算器E0R32的輸出數(shù)據(jù)和標(biāo)志FRn
執(zhí)行EX0R運(yùn)算。EX0R運(yùn)算器E0R53的輸入之一連接到第三EX0R運(yùn)算器件111A中的EX0R運(yùn)算器
23E0R33的輸出,并且EXOR運(yùn)算器E0R53的另一個(gè)輸入連接到第二標(biāo)志運(yùn)算器件114A的標(biāo)志 FRn
的輸出線。EXOR運(yùn)算器E0R53對(duì)來(lái)自EXOR運(yùn)算器E0R33的輸出數(shù)據(jù)和標(biāo)志FRn W] 執(zhí)行EXOR運(yùn)算。EXOR運(yùn)算器E0R54的輸入之一連接到第三EXOR運(yùn)算器件11IA中的EXOR運(yùn)算器 E0R34的輸出,并且EXOR運(yùn)算器E0R54的另一個(gè)輸入連接到第二標(biāo)志運(yùn)算器件114A的標(biāo)志 FRn[1]的輸出線。EXOR運(yùn)算器E0R54對(duì)來(lái)自EXOR運(yùn)算器E0R34的輸出數(shù)據(jù)和標(biāo)志FRn[1] 執(zhí)行EXOR運(yùn)算。EXOR運(yùn)算器E0R55的輸入之一連接到第三EXOR運(yùn)算器件11IA中的EXOR運(yùn)算器 E0R35的輸出,并且EXOR運(yùn)算器E0R50的另一個(gè)輸入連接到第二標(biāo)志運(yùn)算器件114A的標(biāo)志 FRn[1]的輸出線。EXOR運(yùn)算器E0R55對(duì)來(lái)自EXOR運(yùn)算器E0R35的輸出數(shù)據(jù)和標(biāo)志FRn[1] 執(zhí)行EXOR運(yùn)算。EXOR運(yùn)算器E0R56的輸入之一連接到第三EXOR運(yùn)算器件11IA中的EXOR運(yùn)算器 E0R36的輸出,并且EXOR運(yùn)算器E0R56的另一個(gè)輸入連接到第二標(biāo)志運(yùn)算器件114A的標(biāo)志 FRn[1]的輸出線。EXOR運(yùn)算器E0R56對(duì)來(lái)自EXOR運(yùn) 算器E0R36的輸出數(shù)據(jù)和標(biāo)志FRn[1] 執(zhí)行EXOR運(yùn)算。EXOR運(yùn)算器E0R57的輸入之一連接到第三EXOR運(yùn)算器件11IA中的EXOR運(yùn)算器 E0R37的輸出,并且EXOR運(yùn)算器E0R57的另一個(gè)輸入連接到第二標(biāo)志運(yùn)算器件114A的標(biāo)志 FRn[1]的輸出線。EXOR運(yùn)算器E0R57對(duì)來(lái)自EXOR運(yùn)算器E0R37的輸出數(shù)據(jù)和標(biāo)志FRn[1] 執(zhí)行EXOR運(yùn)算。 類(lèi)似地,EXOR運(yùn)算器E0R528的輸入之一連接到第三EXOR運(yùn)算器件11IA中的EXOR 運(yùn)算器E0R328的輸出,并且EXOR運(yùn)算器E0R528的另一個(gè)輸入連接到第二標(biāo)志運(yùn)算器件 114A的標(biāo)志FRn[7]的輸出線。EXOR運(yùn)算器E0R528對(duì)來(lái)自EXOR運(yùn)算器E0R328的輸出數(shù) 據(jù)和標(biāo)志FRn [7]執(zhí)行EXOR運(yùn)算。EXOR運(yùn)算器E0R529的輸入之一連接到第三EXOR運(yùn)算器件11IA中的EXOR運(yùn)算器 E0R329的輸出,并且EXOR運(yùn)算器E0R529的另一個(gè)輸入連接到第二標(biāo)志運(yùn)算器件114A的標(biāo) 志FRn [7]的輸出線。EXOR運(yùn)算器E0R529對(duì)來(lái)自EXOR運(yùn)算器E0R329的輸出數(shù)據(jù)和標(biāo)志 FRn [7]執(zhí)行EXOR運(yùn)算。EXOR運(yùn)算器E0R530的輸入之一連接到第三EXOR運(yùn)算器件11IA中的EXOR運(yùn)算器 E0R330的輸出,并且EXOR運(yùn)算器E0R530的另一個(gè)輸入連接到第二標(biāo)志運(yùn)算器件114A的標(biāo) 志FRn[7]的輸出線。EXOR運(yùn)算器E0R530對(duì)來(lái)自EXOR運(yùn)算器E0R330的輸出數(shù)據(jù)和標(biāo)志 FRn [7]執(zhí)行EXOR運(yùn)算。EXOR運(yùn)算器E0R531的輸入之一連接到第三EXOR運(yùn)算器件IllA中的EXOR運(yùn)算器 E0R331的輸出,并且EXOR運(yùn)算器E0R531的另一個(gè)輸入連接到第二標(biāo)志運(yùn)算器件114A的標(biāo) 志FRn[7]的輸出線。EXOR運(yùn)算器E0R531對(duì)來(lái)自EXOR運(yùn)算器E0R331的輸出數(shù)據(jù)和標(biāo)志 FRn [7]執(zhí)行EXOR運(yùn)算。如上所述,第五EXOR運(yùn)算器件115A利用同一標(biāo)志FRn-UO-7]對(duì)四個(gè)連續(xù)比特中 的每個(gè)執(zhí)行EXOR運(yùn)算。下面參考附圖11至14C詳細(xì)說(shuō)明作為第二實(shí)施例的DES運(yùn)算電路100A的工作和 作為第二實(shí)施例的一部分的適當(dāng)?shù)目刂菩盘?hào)發(fā)生電路的典型結(jié)構(gòu)。圖11是說(shuō)明作為第二實(shí)施例的DES運(yùn)算電路一般如何工作的時(shí)序圖。圖12是示出了作為第二實(shí)施例的一部分 的控制信號(hào)生成電路的代表結(jié)構(gòu)的電路圖。圖13是圖12中電路的時(shí)序圖。圖14A、14B和 14C分別是EXOR-AND電路、電路符號(hào)和真值表。在操作中,DES運(yùn)算電路100A在每輪以包括預(yù)充電階段和求值階段的兩個(gè)階段中 被控制。在控制信號(hào)/PC和/PCdly都為L(zhǎng)ow時(shí),寄存器的所有輸出連線上的信號(hào)都被控制 為 “0”。當(dāng)控制信號(hào)/PC或/PCdly被提升到High時(shí),寄存器將它們的鎖存數(shù)據(jù)輸出到輸 出連線上。在該情形中,在標(biāo)志控制下的“1”比特的數(shù)目在四比特組中被保持為兩個(gè)或更 少。結(jié)果,被設(shè)為“1”的比特的數(shù)目小于總線寬度的一半。在控制信號(hào)/PC為低時(shí),第二寄 存器器件106 —側(cè)上的輸出全保持為L(zhǎng)ow。在控制信號(hào)/PC的上升沿時(shí),右寄存器1061中鎖存的數(shù)據(jù)“FRn_l士Rn-I”和標(biāo)志 寄存器1062中鎖存的標(biāo)志“FRn-Ι”被輸入到F函數(shù)器件110和第一寄存器器件105。原始值“Rn-Ι ”在由第二 EXOR運(yùn)算器件109執(zhí)行EXOR運(yùn)算后被輸入到F函數(shù)器件 110,隨后開(kāi)始F函數(shù)運(yùn)算。在經(jīng)過(guò)了預(yù)定時(shí)段時(shí),輸出F函數(shù)運(yùn)算的結(jié)果“F(Rn-l,Kn) ”。大約同時(shí),控制信號(hào)/PCdly上升(后面將更詳細(xì)地討論),從而使得第一寄存器 器件105中鎖存的標(biāo)志寄存器值“FLn-1”被輸出,并且被第四EXOR運(yùn)算器件112A與來(lái)自 F函數(shù)器件110的輸出執(zhí)行異或。該EXOR運(yùn)算的結(jié)果被輸入到AND門(mén)器件113A。輸入到AND門(mén)器件113A中的每個(gè)AND門(mén)的另一個(gè)信號(hào)是控制信號(hào)/PCdly,其被控 制為大約在F函數(shù)輸出建立的同時(shí)上升。從而在控制信號(hào)/PCdly上升時(shí),來(lái)自第四EXOR 運(yùn)算器件112A的輸出“FLn-Ι 士F (Rn-I,Kn) ”被提供給第三EXOR運(yùn)算器件111A。同時(shí),在控制信號(hào)/PCdly為L(zhǎng)ow時(shí),來(lái)自第一寄存器器件105的輸出被保持為 Low0在控制信號(hào)/PCdly被提升到High的瞬間,輸出被替換為左寄存器1051中鎖存的值 “FLn-Ι 士Ln-I ”。該值“FLn-Ι 士Ln-Ι”隨后被第三EXOR運(yùn)算器件IllA與大約同時(shí)從AND 門(mén)器件113A輸出的值“FLn-Ι 士F (Rn-I,Kn),,異或。EXOR運(yùn)算重置了標(biāo)志值“FLn-Ι”。運(yùn)算“F(Rn-l,Kn) 士Ln_l = Rn”的結(jié)果被輸入 到第二標(biāo)志運(yùn)算器件114A。第二標(biāo)志運(yùn)算器件114A對(duì)每個(gè)四比特?cái)?shù)據(jù)組的標(biāo)志值“FRn”進(jìn)行運(yùn)算。第五EXOR 運(yùn)算器件115A將該輪運(yùn)算的結(jié)果“Rn”中的、構(gòu)成每個(gè)數(shù)據(jù)組的四個(gè)比特中的每個(gè)比特反 轉(zhuǎn),從而生成在下輪中要被鎖存在右寄存器側(cè)的數(shù)據(jù)“FRn士Rn”。如圖9所示,第二標(biāo)志運(yùn)算器件114A中的標(biāo)志運(yùn)算電路具有被布置為處理四比特 數(shù)據(jù)的三個(gè)AND-NOR門(mén)和一個(gè)三輸入NOR門(mén)。在該電路中,如果四比特?cái)?shù)據(jù)中的“ 1 ”比特 的數(shù)目至少為3則三輸入NOR門(mén)變?yōu)镠igh,從而生成的標(biāo)志值導(dǎo)致數(shù)據(jù)被反轉(zhuǎn)。如圖IOA和IOB所示,由該標(biāo)志運(yùn)算電路執(zhí)行的運(yùn)算的結(jié)果使得在任何數(shù)據(jù)組中 HW都被保持為二比特或更少。盡管DES運(yùn)算電路具有32條信號(hào)線,但是冊(cè)被保持為16比 特或者更少,從而降低了最大功耗。當(dāng)在要建立的兩個(gè)數(shù)據(jù)輸入之間存在定時(shí)差異時(shí),EOR運(yùn)算電路的輸出臨時(shí)轉(zhuǎn)換 到初始建立的數(shù)據(jù),然后被原始輸出替換,這需要消耗額外的充電和放電電流。如果兩個(gè)輸 入大約同時(shí)實(shí)現(xiàn)轉(zhuǎn)換,則可以抑制額外信號(hào)的充電和放電電流的發(fā)生。在第二實(shí)施例中,用于控制輸入到EXOR運(yùn)算器件的數(shù)據(jù)的定時(shí)的控制信號(hào)/PCdly是由圖12所示的電路生成的。該結(jié)構(gòu)使得可以抑制到臨時(shí)數(shù)據(jù)的轉(zhuǎn)換。如上所述,圖12是示出了作為第二實(shí)施例的一部分的控制信號(hào)生成電路300的典 型結(jié)構(gòu)的電路圖。圖13是圖12中電路300的時(shí)序圖??刂菩盘?hào)生成電路300包括延遲電 路301、二輸入NOR門(mén)NR300和NR301、反轉(zhuǎn)器IV300和用于監(jiān)控F函數(shù)器件110的輸出的 監(jiān)控電路302。監(jiān)控電路302包括四輸入NOR門(mén)NR302-0至NR302-7和一個(gè)NAND門(mén)NA300,來(lái)自F 函數(shù)器件110的輸出數(shù)據(jù)PDO至PD31中的每四個(gè)連續(xù)比特被輸入到四輸入NOR門(mén)NR302-0 至NR302-7,并且來(lái)自NOR門(mén)NR302-0至NR302-7的輸出被輸入到NAND門(mén)NA300??刂菩盘?hào)生成電路300通過(guò)對(duì)從控制信號(hào)/PC導(dǎo)出的反轉(zhuǎn)信號(hào)PC與NOR信號(hào)執(zhí) 行NOR來(lái)生成控制信號(hào)/PCdly。該NOR信號(hào)是通過(guò)對(duì)由延遲電路301對(duì)控制信號(hào)/PC進(jìn)行 延遲而獲取的信號(hào)和F函數(shù)輸出監(jiān)控信號(hào)S302執(zhí)行NOR操作獲得的??刂菩盘?hào)生成電路 300中的延遲電路301使用的延遲時(shí)間被設(shè)置為比用于F函數(shù)運(yùn)算的延遲時(shí)間長(zhǎng)。在預(yù)充電階段中,如圖13所示,控制信號(hào)/PC將F函數(shù)器件110的所有輸入控制 到“0”。來(lái)自F函數(shù)器件110的輸出也全為“0”。當(dāng)控制信號(hào)/PC上升并且使數(shù)據(jù)被輸入到F函數(shù)器件110時(shí),F(xiàn)函數(shù)器件110執(zhí) 行其運(yùn)算。當(dāng)來(lái)自F函數(shù)器件110的輸出中的至少一個(gè)比特被提升為“1”時(shí),監(jiān)控電路302 的輸出變?yōu)镠igh,并且控制信號(hào)/PCdly被提升到High。來(lái)自F函數(shù)器件110的所有輸出可能為“0”。如果如此,則來(lái)自對(duì)F函數(shù)器件110 的輸出進(jìn)行監(jiān)控的監(jiān)控電路302的輸出維持不變。在該情形中,控制信號(hào)/PCdly在從控制 信號(hào)/PC導(dǎo)出的延遲信號(hào)的上升沿時(shí)被提升到High。這里所生成的控制信號(hào)/PCdly對(duì)來(lái)自F函數(shù)器件110的輸出和經(jīng)受EXOR運(yùn)算的 數(shù)據(jù)的轉(zhuǎn)換定時(shí)執(zhí)行控制。因此,在大約來(lái)自F函數(shù)器件110的輸出被建立的同時(shí),到第四 EXOR運(yùn)算器件112A的輸入值實(shí)現(xiàn)轉(zhuǎn)換。這抑制了來(lái)自第四EXOR運(yùn)算器件112A的數(shù)據(jù)輸 出轉(zhuǎn)換到臨時(shí)數(shù)據(jù)。在圖8的電路中,延遲發(fā)生在對(duì)第四EXOR運(yùn)算器件112A和AND門(mén)器件113A之間 的路徑充電期間。由于相對(duì)于第三EXOR運(yùn)算器件IllA的左寄存器中鎖存的值的延遲差異, 所以生成了額外的電流。為了抑制該額外的電流,可以用圖14A所示的EXOR-AND電路400替換圖8的電路。 這種布置不需要第四EXOR運(yùn)算器件112A和AND門(mén)器件113A之間的延遲,從而抑制了由第 三EXOR運(yùn)算器件11IA中的延遲差異導(dǎo)致的充電電流。第二實(shí)施例的其他結(jié)構(gòu)與第一實(shí)施例的基本相同,因此第二實(shí)施例提供了與第一 實(shí)施例基本相同的效果。在第二實(shí)施例中,如上所述,以預(yù)定數(shù)目個(gè)比特的數(shù)據(jù)組來(lái)執(zhí)行標(biāo)志運(yùn)算,并且所 生成的標(biāo)志值用來(lái)控制數(shù)據(jù)反轉(zhuǎn)。這些布置構(gòu)成了一種方案,其中改變比特的數(shù)目被控制 為少于承載寄存器輸出的總線的寬度的一半。這可以降低由信號(hào)總線的充電和放電引起的 工作電流。<3.第三實(shí)施例〉現(xiàn)在將說(shuō)明本發(fā)明第三實(shí)施例。下面詳細(xì)描述第三實(shí)施例如何構(gòu)造來(lái)通過(guò)使運(yùn)算 結(jié)果的中間值的HW基本保持恒定來(lái)穩(wěn)定信號(hào)總線上的充電和放電電流,從而增強(qiáng)對(duì)DPA的抵抗力。圖15是示出了結(jié)合本發(fā)明第三實(shí)施例從數(shù)據(jù)擾亂點(diǎn)看圖10的受控結(jié)果的示意圖。因此圖15包括原始數(shù)據(jù)和標(biāo)志控制后的數(shù)據(jù)之間的關(guān)系。示意性地,在構(gòu)成比特?cái)?shù)據(jù)“b0”的八個(gè)0中,僅一個(gè)比特被反轉(zhuǎn)成1,其余的維持 為0。在八個(gè)1中,四個(gè)比特被反轉(zhuǎn)成0,其他四個(gè)維持為1。即,“0”數(shù)據(jù)未被充分?jǐn)_亂,而 “1”數(shù)據(jù)被充分?jǐn)_亂。DPA攻擊包括估計(jì)子S框的六比特密鑰來(lái)仿真大量的明文文本,從而通過(guò)判斷感 興趣的節(jié)點(diǎn)是“0”還是“1”來(lái)將所生成的電流波形分類(lèi)成組,來(lái)找出多個(gè)組的平均波形之 間的差異,隨后通過(guò)檢查是否存在峰值來(lái)判斷所估計(jì)的六比特密鑰的有效性。在使用第三實(shí)施例時(shí),即使正確地估計(jì)出了密鑰,組成估計(jì)由0構(gòu)成的數(shù)據(jù)組的 比特的八分之一也被反轉(zhuǎn)成1。組成估計(jì)由1構(gòu)成的數(shù)據(jù)組的不同的一半被反轉(zhuǎn)成0。從 而第三實(shí)施例與沒(méi)有應(yīng)對(duì)措施的通常設(shè)置相比提供了更高的抵抗DPA的能力。在控制下要被反轉(zhuǎn)的比特進(jìn)一步經(jīng)過(guò)F函數(shù)器件110的置換。這樣置換的比特被 連續(xù)劃分成針對(duì)反轉(zhuǎn)控制計(jì)算了標(biāo)志的四比特組。結(jié)果如圖16所示。如圖16所示,在數(shù)據(jù)被劃分成針對(duì)反轉(zhuǎn)控制計(jì)算了標(biāo)志的四比特組的情況下,子 S框“SO”的四個(gè)比特被置換,這些比特中的每個(gè)經(jīng)受與不同組的標(biāo)志運(yùn)算并且相應(yīng)地提交 給反轉(zhuǎn)控制。即,“so”輸出中的四個(gè)比特中的每個(gè)基于不同標(biāo)志運(yùn)算的結(jié)果而獨(dú)立地經(jīng)受 反轉(zhuǎn)控制。這種布置與沒(méi)有應(yīng)對(duì)措施的通常設(shè)置相比提高了抵抗DPA的能力。還可以使用圖17中所示的另一種結(jié)構(gòu),其中每個(gè)比特組的標(biāo)志被補(bǔ)充另外兩個(gè) 比特來(lái)提供三比特輸出。這種結(jié)構(gòu)是通過(guò)向圖9所示標(biāo)志運(yùn)算電路添加兩個(gè)額外比特的標(biāo) 志運(yùn)算電路實(shí)現(xiàn)的。圖17是示出了作為第三實(shí)施例的一部分的第二標(biāo)志運(yùn)算器件中的標(biāo)志運(yùn)算電路 200A的典型結(jié)構(gòu)的示意圖。除了圖9中的標(biāo)志運(yùn)算電路200的結(jié)構(gòu)之外,圖17中的標(biāo)志 運(yùn)算電路200A還包括四輸入NOR門(mén)NR201、四輸入NAND門(mén)NA200和NA201、兩輸入NAND門(mén) NA202和NA203、以及反轉(zhuǎn)器IV200。NOR門(mén)NR201的四個(gè)輸入分別連接到數(shù)據(jù)線LD200至LD203。類(lèi)似地,NAND門(mén)NA200 的四個(gè)輸入分別連接到數(shù)據(jù)線LD200至LD203。NAND門(mén)NA201的第一輸入端子連接到控制信號(hào)/PCdly的供給線。NAND門(mén)NA201 的第二輸入端子、第三輸入端子和第四輸入端子分別連接到AND-NOR門(mén)ANR200、ANR201和 ANR202。NAND門(mén)NA201的輸出連接到反轉(zhuǎn)器IV200的輸入端子。反轉(zhuǎn)器IV200的輸出端子 輸出標(biāo)志信號(hào)FLGnl。NAND門(mén)NA202的第一輸入端子連接到控制信號(hào)/PCdly的供給線。NAND門(mén)NA202 的第二輸入端子連接到NOR門(mén)NR201的輸出端子。NAND門(mén)NA203的第一輸入端子連接到NAND門(mén)NA200的輸出端子,并且NAND門(mén) NA203的第二輸入端子連接到NAND門(mén)NA202的輸出端子。NAND門(mén)NA203的輸出端子輸出 標(biāo)志信號(hào)FLGn2。圖18A和18B的示意圖示出了由圖17中的標(biāo)志運(yùn)算電路200A執(zhí)行的運(yùn)算的結(jié) 果。這些示圖給出了關(guān)于作為第三實(shí)施例的DES運(yùn)算電路的四比特?cái)?shù)據(jù)和受控?cái)?shù)據(jù)之間的關(guān)系。圖18A示出了控制之前的典型輸入數(shù)據(jù)和它們的原始漢明權(quán)重,并且圖18B示出了 受控標(biāo)志值、從而受控的數(shù)據(jù)、以及包括受控?cái)?shù)據(jù)的標(biāo)志值在內(nèi)的實(shí)際的漢明權(quán)重。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(0,0,0,0),則漢明權(quán)重(HW)為“0”。 在控制之后,標(biāo)志FLGnO、FLGnl和FLGn2為(0,1,1),四比特受控?cái)?shù)據(jù)(b0,,bl,,b2,,b3,) 為(0,0,0,0),并且控制之后的漢明權(quán)重(冊(cè)’)為“2”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(0,0,0,1),則冊(cè)為“1”。在控制之 后,標(biāo)志 FLGnO、FLGnl 和 FLGn2 為(0,1,0),四比特受控?cái)?shù)據(jù)(b0’,bl ’,b2’,b3’)為(0,0, 0,1),并且冊(cè),為“2”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(0,0,1,0),則冊(cè)為“1”。在控制之 后,標(biāo)志 FLGnO、FLGnl 和 FLGn2 為(0,1,0),四比特受控?cái)?shù)據(jù)(b0’,bl ’,b2’,b3’)為(0,0, 1,0),并且冊(cè),為 “2”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(0,0,1,1),則冊(cè)為“2”。在控制之 后,標(biāo)志 FLGnO、FLGnl 和 FLGn2 為(0,0,0),四比特受控?cái)?shù)據(jù)(b0’,bl ’,b2’,b3’)為(0,0, 1,1),并且冊(cè),為“2”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(0,1,0,0),則冊(cè)為“1”。在控制之 后,標(biāo)志 FLGnO、FLGnl 和 FLGn2 為(0,1,0),四比特受控?cái)?shù)據(jù)(b0’,bl ’,b2’,b3’)為(0,1, 0,0),并且冊(cè),為“2”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(0,1,0,1),則冊(cè)為“2”。在控制之 后,標(biāo)志 FLGn0、FLGnl 和 FLGn2 為(0,0,0),四比特受控?cái)?shù)據(jù)(b0’,bl ’,b2’,b3’)為(0,1, 0,1),并且冊(cè),為“2”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(0,1,1,0),則冊(cè)為“2”。在控制之 后,標(biāo)志 FLGn0、FLGnl 和 FLGn2 為(0,0,0),四比特受控?cái)?shù)據(jù)(b0’,bl ’,b2’,b3’)為(0,1, 1,0),并且冊(cè),為“2”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(0,1,1,1),則冊(cè)為“3”。在控制之 后,標(biāo)志 FLGn0、FLGnl 和 FLGn2 為(1,0,0),四比特受控?cái)?shù)據(jù)(b0’,bl ’,b2’,b3’)為(1,0, 0,0),并且冊(cè),為“2”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(1,0,0,0),則冊(cè)為“1”。在控制之 后,標(biāo)志 FLGn0、FLGnl 和 FLGn2 為(0,1,0),四比特受控?cái)?shù)據(jù)(b0’,bl ’,b2’,b3’)為(1,0, 0,0),并且冊(cè),為“2”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(1,0,0,1),則冊(cè)為“2”。在控制之 后,標(biāo)志 FLGn0、FLGnl 和 FLGn2 為(0,0,0),四比特受控?cái)?shù)據(jù)(b0’,bl ’,b2’,b3’)為(1,0, 0,1),并且冊(cè),為“2”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(1,0,1,0),則冊(cè)為“2”。在控制之 后,標(biāo)志 FLGn0、FLGnl 和 FLGn2 為(0,0,0),四比特受控?cái)?shù)據(jù)(b0’,bl ’,b2’,b3’)為(1,0, 1,0),并且冊(cè),為“2”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(1,0,1,1),則冊(cè)為“3”。在控制之 后,標(biāo)志 FLGn0、FLGnl 和 FLGn2 為(1,0,0),四比特受控?cái)?shù)據(jù)(b0’,bl ’,b2’,b3’)為(0,1, 0,0),并且冊(cè),為“2”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(1,1,0,0),則冊(cè)為“2”。在控制之后,標(biāo)志 FLGnO、FLGnl 和 FLGn2 為(0,0,0),四比特受控?cái)?shù)據(jù)(b0’,bl ’,b2’,b3’)為(1,1, 0,0),并且冊(cè),為“2”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(1,1,0,1),則冊(cè)為“3”。在控制之 后,標(biāo)志 FLGnO、FLGnl 和 FLGn2 為(1,0,0),四比特受控?cái)?shù)據(jù)(b0’,bl ’,b2’,b3’)為(0,0, 1,0),并且冊(cè),為“2”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(1,1,1,0),則冊(cè)為“3”。在控制之 后,標(biāo)志 FLGnO、FLGnl 和 FLGn2 為(1,0,0),四比特受控?cái)?shù)據(jù)(b0’,bl ’,b2’,b3’)為(0,0, 0,1),并且冊(cè),為“2”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(1,1,1,1),則冊(cè)為“4”。在控制之 后,標(biāo)志 FLGnO、FLGnl 和 FLGn2 為(1,0,1),四比特受控?cái)?shù)據(jù)(b0’,bl ’,b2’,b3’)為(0,0, 0,0),并且冊(cè),為“2”。如果使用圖17的結(jié)構(gòu),則對(duì)于任意和所有數(shù)據(jù),包括標(biāo)志的冊(cè)都為二比特。利用 這種結(jié)構(gòu)提供了與采用互補(bǔ)結(jié)構(gòu)相同的效果,還提高了對(duì)DPA的抵抗力。在圖17的標(biāo)志運(yùn)算電路200A中,輸出信號(hào)FLGnO與來(lái)自圖9中的作為第二實(shí)施例 的一部分的標(biāo)志運(yùn)算電路200的輸出信號(hào)相同。當(dāng)四個(gè)比特中的至少三個(gè)為“1”時(shí)該信號(hào) 變?yōu)镠igh。當(dāng)四個(gè)比特中一個(gè)比特或者沒(méi)有比特為“1”時(shí)輸出信號(hào)FLGnl變?yōu)镠igh。當(dāng) 四個(gè)比特不為全“0”或者全“1”時(shí)輸出信號(hào)FLGn2被提升到High。在這些控制信號(hào)和控制 數(shù)據(jù)的任意組合中,冊(cè)對(duì)于所有數(shù)據(jù)都為2。應(yīng)當(dāng)注意,圖17中添加的控制信號(hào)FLGnl和FLGn2不用來(lái)控制數(shù)據(jù)。這些控制信 號(hào)用來(lái)構(gòu)成啞寄存器和它們的負(fù)載連續(xù),這隱藏了寄存器和它們的一方面承載充電和放電 電流另一方面承載所涉及的數(shù)據(jù)的負(fù)載連線之間的關(guān)系。必須安裝如下寄存器布置在該 寄存器布置中,將鎖存與控制信號(hào)FLGnO的信號(hào)值等同的信號(hào)值,并且在該寄存器布置周 圍布設(shè)適當(dāng)?shù)呢?fù)載連線。這種結(jié)構(gòu)維持相同,而不管從信號(hào)總線上的充電和放電電流來(lái)看 數(shù)據(jù)如何?;パa(bǔ)結(jié)構(gòu)作為應(yīng)對(duì)DPA的措施存在,以便提供上述效果。然而,在互補(bǔ)結(jié)構(gòu)的情形 中,所涉及的每個(gè)比特一般需要使信號(hào)線上的充電電流流動(dòng)的單比特信號(hào)改變。相反,第三 實(shí)施例消耗互補(bǔ)結(jié)構(gòu)所耗費(fèi)的電流量的一半的量,并且使數(shù)據(jù)在控制下被反轉(zhuǎn)(盡管在不 充分的水平上)。<4.第四實(shí)施例〉現(xiàn)在將說(shuō)明本發(fā)明第四實(shí)施例。下面詳細(xì)描述第四實(shí)施例如何構(gòu)造來(lái)通過(guò)依據(jù)運(yùn) 算結(jié)果的中間值來(lái)擾亂這些值來(lái)增強(qiáng)對(duì)DPA的抵抗力。下面要討論的結(jié)構(gòu)涉及以四比特?cái)?shù)據(jù)組來(lái)執(zhí)行標(biāo)志運(yùn)算并且在保持運(yùn)算結(jié)果的 情況下執(zhí)行反轉(zhuǎn)控制。該結(jié)構(gòu)示意性地是通過(guò)利用圖19所示不同的標(biāo)志運(yùn)算電路替換圖 8中的第二標(biāo)志運(yùn)算器件114A來(lái)實(shí)現(xiàn)的。圖19是示出了作為本發(fā)明第四實(shí)施例的DES運(yùn)算電路的第二標(biāo)志運(yùn)算器件中的 標(biāo)志運(yùn)算電路200B的典型結(jié)構(gòu)的示意圖。在圖19的標(biāo)志運(yùn)算電路200B中,EXOR門(mén)EX0R200 和EX0R201替換了圖9的標(biāo)志運(yùn)算電路200中的AND-NOR門(mén)ANR200至ANR202和NOR門(mén) NR200。EXOR門(mén)EX0R200的第一輸入端子和第二輸入端子分別連接到數(shù)據(jù)線LD203和LD202。EXOR門(mén)EX0R201的第一輸入端子和第二輸入端子分別連接到EXOR門(mén)EX0R200的輸 出端子和數(shù)據(jù)線LD201。圖20A和20B的示意圖示出了由圖19中的標(biāo)志運(yùn)算電路200B執(zhí)行的運(yùn)算的結(jié)果。 這些示圖給出了對(duì)于作為第四實(shí)施例的DES運(yùn)算電路四比特?cái)?shù)據(jù)和受控?cái)?shù)據(jù)之間的關(guān)系。圖20A示出了控制之前的典型輸入數(shù)據(jù)和它們的原始漢明權(quán)重,并且圖20B示出 了受控標(biāo)志值、從而受控的數(shù)據(jù)、以及包括受控?cái)?shù)據(jù)的標(biāo)志值在內(nèi)的實(shí)際的漢明權(quán)重。圖21 是示出了在圖20A和20B中涉及的每個(gè)比特中的受控狀態(tài)“0”和“1”的示意圖。
圖20A和20B示出了以下關(guān)系。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(0,0,0,0),則漢明權(quán)重(HW)為“0”。 在控制之后,標(biāo)志FLGn為“0”,四比特受控?cái)?shù)據(jù)(b0’,bl’,b2’,b3’)為(0,0,0,0),并且控 制之后的漢明權(quán)重(冊(cè)’)為“0”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(0,0,0,1),則冊(cè)為“1”。在控制之 后,標(biāo)志FLGn為“1”,四比特受控?cái)?shù)據(jù)(b0,,bl,,b2,,b3,)為(1,1,1,0),并且冊(cè),為“4”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(0,0,1,0),則冊(cè)為“1”。在控制之 后,標(biāo)志FLGn為“1”,四比特受控?cái)?shù)據(jù)(b0,,bl,,b2,,b3,)為(1,1,0,1),并且冊(cè),為“4”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(0,0,1,1),則冊(cè)為“2”。在控制之 后,標(biāo)志FLGn為“0”,四比特受控?cái)?shù)據(jù)(b0,,bl,,b2,,b3,)為(0,0,1,1),并且冊(cè),為“2”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(0,1,0,0),則冊(cè)為“1”。在控制之 后,標(biāo)志FLGn為“1”,四比特受控?cái)?shù)據(jù)(b0,,bl,,b2,,b3,)為(1,0,1,1),并且冊(cè),為“4”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(0,1,0,1),則冊(cè)為“2”。在控制之 后,標(biāo)志FLGn為“0”,四比特受控?cái)?shù)據(jù)(b0,,bl,,b2,,b3,)為(0,1,0,1),并且冊(cè),為“2”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(0,1,1,0),則冊(cè)為“2”。在控制之 后,標(biāo)志FLGn為“0”,四比特受控?cái)?shù)據(jù)(b0,,bl,,b2,,b3,)為(0,1,0,1),并且冊(cè),為“2”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(0,1,1,1),則冊(cè)為“3”。在控制之 后,標(biāo)志FLGn為“1”,四比特受控?cái)?shù)據(jù)(b0’,bl’,b2’,b3’)為(1,0,0,0),并且冊(cè),為“2”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(1,0,0,0),則冊(cè)為“1”。在控制之 后,標(biāo)志FLGn為“0”,四比特受控?cái)?shù)據(jù)(b0’,bl’,b2’,b3’)為(1,0,0,0),并且冊(cè),為“ 1”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(1,0,0,1),則冊(cè)為“2”。在控制之 后,標(biāo)志FLGn為“1”,四比特受控?cái)?shù)據(jù)(b0,,bl,,b2,,b3,)為(0,1,1,0),并且冊(cè),為“3”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(1,0,1,0),則冊(cè)為“2”。在控制之 后,標(biāo)志FLGn為“1”,四比特受控?cái)?shù)據(jù)(b0,,bl,,b2,,b3,)為(0,1,0,1),并且冊(cè),為“3”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(1,0,1,1),則冊(cè)為“3”。在控制之 后,標(biāo)志FLGn為“0”,四比特受控?cái)?shù)據(jù)(b0,,bl,,b2,,b3,)為(1,0,1,1),并且冊(cè),為“3”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(1,1,0,0),則冊(cè)為“2”。在控制之 后,標(biāo)志FLGn為“1”,四比特受控?cái)?shù)據(jù)(b0,,bl,,b2,,b3,)為(0,0,1,1),并且冊(cè),為“3”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(1,1,0,1),則冊(cè)為“3”。在控制之 后,標(biāo)志FLGn為“0”,四比特受控?cái)?shù)據(jù)(b0,,bl,,b2,,b3,)為(1,1,0,1),并且冊(cè),為“3”。如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(1,1,1,0),則冊(cè)為“3”。在控制之 后,標(biāo)志FLGn為“0”,四比特受控?cái)?shù)據(jù)(b0,,bl,,b2,,b3,)為(1,1,1,0),并且冊(cè),為“3”。
如果四比特?cái)?shù)據(jù)(b0,bl,b2,b3)控制之前為(1,1,1,1),則冊(cè)為“4”。在控制之后,標(biāo)志FLGn為“1”,四比特受控?cái)?shù)據(jù)(b0’,bl’,b2’,b3’)為(0,0,0,0),并且冊(cè),為“ 1”。圖21是示出了受控值“b0,”至“b3,”如何被與原始值“b0”至“b3”相關(guān)。在每 個(gè)比特組中,半數(shù)“0”比特被反轉(zhuǎn)成“ 1 ”,而半數(shù)“ 1 ”比特被反轉(zhuǎn)成“0”。圖21還示出了不同比特之間的關(guān)系。在標(biāo)志控制下,在數(shù)據(jù)“b0”和已受控的數(shù) 據(jù)“bo”之間產(chǎn)生了充分?jǐn)_亂的關(guān)系(即,半數(shù)“0”比特和半數(shù)“1”比特被反轉(zhuǎn)的狀態(tài))。 然而,如果這種控制強(qiáng)化了數(shù)據(jù)“bl,”和數(shù)據(jù)“bo”之間的關(guān)系,則可能從泄露的數(shù)據(jù)“bl,” 找出密鑰。為了避免這種不測(cè),經(jīng)標(biāo)志控制的數(shù)據(jù)控制單元中的所有比特組合都被檢查。結(jié) 果,在任意這種組合中,八個(gè)“0”比特中的四個(gè)維持“0”,而其余的被反轉(zhuǎn)到“1”。八個(gè)“1” 比特中的四個(gè)維持“1”,而其余的被反轉(zhuǎn)到“0”。不管數(shù)據(jù)比特為“0”還是“1”,數(shù)據(jù)反轉(zhuǎn)都 以50%的概率發(fā)生。圖19的標(biāo)志運(yùn)算電路是一個(gè)示例,并且滿(mǎn)足圖21的要求的任何其他結(jié)構(gòu)都提供 相同的效果。假設(shè)十六個(gè)四比特?cái)?shù)據(jù)“d0”至“dl5”在它們的組合中都以50%的概率經(jīng)受 數(shù)據(jù)反轉(zhuǎn),并且“1”被設(shè)置給要反轉(zhuǎn)的每個(gè)比特,以16進(jìn)制表示結(jié)果。這提供了如下10種 數(shù)據(jù)(d0,dl,· · ·,dl4,dl5) = 3cc3,5aa5,6699,6969,6996,9669,9696,9966,a55a,c33c。圖19中示出了關(guān)于“6969”對(duì)dl、d2、d4、d7、d9、dlO、dl2和dl5的反轉(zhuǎn)控制的 典型電路結(jié)構(gòu)。圖22的示意圖結(jié)合圖19的電路示出了關(guān)于“6969”對(duì)(11、(12、(14、(17、(19、 dlO、dl2和dl5進(jìn)行反轉(zhuǎn)控制的受控?cái)?shù)據(jù)的示例。下面描述經(jīng)受標(biāo)志運(yùn)算的數(shù)據(jù)的關(guān)系方面。要提交到標(biāo)志運(yùn)算的數(shù)據(jù)組合一般是 通過(guò)基于F函數(shù)的置換(P)輸出的那些,并且按照比特號(hào)的升序被布置成以四比特為單位。此時(shí)標(biāo)志運(yùn)算的單位和受DPA攻擊的子S框之間的關(guān)系在圖16中示出。在這種 設(shè)置中,由置換(P)下游的虛線圍住的比特是構(gòu)成標(biāo)志運(yùn)算的單位的四比特組。假設(shè)子S 框“SO”受到攻擊。在該情形中,從子S框“so”輸出的四比特通過(guò)置換⑵被指派給不同 的標(biāo)志運(yùn)算單元,并且各個(gè)標(biāo)志運(yùn)算電路執(zhí)行從反轉(zhuǎn)控制的不同子S框輸出的信號(hào)之間的 標(biāo)志運(yùn)算。例如,使子S框“S0”的比特0經(jīng)受與子S框“S3”的比特2、子S框“S5”的比特 2、以及子S框“S6”的比特1的標(biāo)志運(yùn)算,并且基于這些運(yùn)算的結(jié)果經(jīng)受反轉(zhuǎn)控制。類(lèi)似地,例如,使子S框“S0”的其他比特經(jīng)受與反轉(zhuǎn)控制的不同子S框的比特的 標(biāo)志運(yùn)算。在DPA攻擊時(shí),一次對(duì)單個(gè)子S框估計(jì)密鑰;其他子S框在估計(jì)時(shí)不考慮,并且 它們的工作電流在統(tǒng)計(jì)上作為噪聲處理。在對(duì)單獨(dú)一個(gè)子S框估計(jì)六比特密鑰時(shí),64 ( = 26)個(gè)電流波形在統(tǒng)計(jì)上被處理成 單個(gè)DPA波形。通過(guò)使用第四實(shí)施例的創(chuàng)造性結(jié)構(gòu),四個(gè)輸出比特中的每個(gè)被布置來(lái)經(jīng)受 與反轉(zhuǎn)控制的不同子S框的比特之間的運(yùn)算。這種布置提供了與隨機(jī)擾亂相同的效果,因 此需要第二和更高級(jí)別的DPA攻擊。如果希望對(duì)包含反轉(zhuǎn)控制下感興趣的比特組的其余三 個(gè)比特的三個(gè)子S框估計(jì)密鑰,則在統(tǒng)計(jì)上必須處理1. 7X 107 ( = 26 X 4 = 224)個(gè)電流波形。 這使得成功的DPA攻擊非常難以實(shí)現(xiàn)。如果基于對(duì)一個(gè)現(xiàn)有子S框估計(jì)密鑰來(lái)執(zhí)行DPA攻擊并且如果使用第四實(shí)施例, 則需要下一級(jí)別的DPA攻擊。即,利用經(jīng)受了基于標(biāo)志值的反轉(zhuǎn)控制的數(shù)據(jù),第四實(shí)施例提供了與隨機(jī)擾亂相同的效果。至少?gòu)牡谝患?jí)別DPA攻擊難以提取任何其他密鑰;需要第二 和更高級(jí)別的DPA攻擊。另外,第四實(shí)施例使得在不需要隨機(jī)數(shù)生成器的情況下實(shí)現(xiàn)上述 擾亂方案。
<5.第五實(shí)施例>前面已討論了通過(guò)將本發(fā)明的實(shí)施例應(yīng)用到DES (數(shù)據(jù)加密標(biāo)準(zhǔn))而實(shí)現(xiàn)的第一、 第二、第三和第四實(shí)施例。下面描述通過(guò)將本發(fā)明的概念應(yīng)用到AES (高級(jí)加密標(biāo)準(zhǔn))而實(shí) 現(xiàn)的本發(fā)明的第五實(shí)施例。圖23是示出了一般AES運(yùn)算電路的典型結(jié)構(gòu)的示意圖。圖24是示出了實(shí)現(xiàn)為本 發(fā)明第五實(shí)施例的AES運(yùn)算電路的典型結(jié)構(gòu)的示意圖。根據(jù)AES,數(shù)據(jù)長(zhǎng)度為128比特,因此三個(gè)密鑰長(zhǎng)度128比特、192比特和256比 特根據(jù)FIPS (聯(lián)邦信息處理標(biāo)準(zhǔn))被分別登記為AES-128、AES-192和AES-256。運(yùn)算輪數(shù) 依據(jù)密鑰長(zhǎng)度而變,即,對(duì)于AES-128、AES-192和AES-256分別為10、12和14?,F(xiàn)在描述 AES-128的情形。圖23中的AES運(yùn)算電路150包括子字節(jié)轉(zhuǎn)換器件151、移行轉(zhuǎn)換器件152、混合列 轉(zhuǎn)換器件153、開(kāi)關(guān)154、EXOR運(yùn)算器件155和128比特寄存器156。子字節(jié)轉(zhuǎn)換器件151執(zhí)行用于利用S框的代入轉(zhuǎn)換(substitutionconversion) 的Sub_Bytes()函數(shù)。移行轉(zhuǎn)換器件152執(zhí)行將來(lái)自子字節(jié)轉(zhuǎn)換器件151的字節(jié)數(shù)據(jù)移位 的Shift_R0Ws()函數(shù)?;旌狭修D(zhuǎn)換器件153執(zhí)行用來(lái)利用GF(28)執(zhí)行矩陣運(yùn)算的Mix_ ColumnsO函數(shù)。在圖23的結(jié)構(gòu)中,寄存器156被設(shè)置在子字節(jié)轉(zhuǎn)換器件(Sub_Bytes()函 數(shù))151的直接上游?;蛘撸拇嫫?56可以被設(shè)置在其他位置處。在密碼運(yùn)算中,明文文本首先被與第0輪密鑰進(jìn)行異或,然后鎖存到寄存器156 中。當(dāng)寄存器156的輸出改變時(shí),執(zhí)行Sub_ByteS()函數(shù)和Shift_Rows ()函數(shù)。隨后執(zhí)行 Mix_Columns()函數(shù)直到第9輪。該運(yùn)算的結(jié)果被與該輪密鑰異或。在第10輪,跳過(guò)Mix_ ColumnsO函數(shù),并且執(zhí)行Shift_Rows ()函數(shù)的結(jié)果被與該輪密鑰異或,然后鎖存到寄存 器156中。這是由AES運(yùn)算電路150執(zhí)行的基本處理。實(shí)現(xiàn)為第五實(shí)施例的AES運(yùn)算電路150A具有設(shè)置在EXOR運(yùn)算器件155的輸出側(cè) 的標(biāo)志運(yùn)算器件161和EXOR運(yùn)算器件162。在該AES運(yùn)算電路150A中,一個(gè)(128+32)比 特寄存器156A布置在EXOR運(yùn)算器件162的輸出側(cè).另外,在AES運(yùn)算電路150A中,用于 重置標(biāo)志的EXOR運(yùn)算器件163設(shè)置在子字節(jié)轉(zhuǎn)換器件151的輸入側(cè),并且用于重置標(biāo)志的 另一個(gè)EXOR運(yùn)算器件164設(shè)置在子字節(jié)轉(zhuǎn)換器件151的密文輸出側(cè)。圖24的AES運(yùn)算電路150A采用了用于使數(shù)據(jù)以四比特組經(jīng)受標(biāo)志運(yùn)算的方案。 在該方案下,在與當(dāng)前輪密鑰之間的EXOR運(yùn)算之后對(duì)目標(biāo)數(shù)據(jù)實(shí)現(xiàn)標(biāo)志運(yùn)算和反轉(zhuǎn)運(yùn)算, 在子字節(jié)轉(zhuǎn)換器件151的直接上游標(biāo)志被重置。上述方案降低了所涉及的總線上的充電和放電電流。在用于提升抵抗DPA的能力 的結(jié)構(gòu)方面,第五實(shí)施例還可以采用上面關(guān)于DES討論的布置來(lái)增強(qiáng)DPA抵抗能力。本發(fā) 明的第五實(shí)施例從而提供了與前面討論的第一至第四實(shí)施例實(shí)現(xiàn)的效果基本相同的效果。如上所述,第五實(shí)施例減少了總線上的充電和放電電流,并且降低了加密電路的 功耗。通過(guò)不管數(shù)據(jù)如何都保持總線上的充電和放電電流恒定,第五實(shí)施例提高了抵抗DPA 的能力。在該情形中,信號(hào)總線上的充電和放電電流的量被保持為互補(bǔ)結(jié)構(gòu)的基本一半。該實(shí)施例還提供了與隨機(jī)數(shù)擾亂相同的效果,從而在不需要隨機(jī)數(shù)生成器的情況下增強(qiáng)了抵 抗DPA的能力。下面參考圖25描述作為用于執(zhí)行上述加密處理的器件的IC模塊500。這些處理 可由諸如PC、IC卡和讀卡器-寫(xiě)卡器之類(lèi)的多種類(lèi)型的信息處理設(shè)備執(zhí)行。圖25中示出 的IC模塊500可以被結(jié)合到這些設(shè)備中的任意一個(gè)中。在圖25中,CPU(中央處理單元)501是執(zhí)行用于開(kāi)始和結(jié)束加密處理、用于控制 數(shù)據(jù)的發(fā)送和接收、用于控制數(shù)據(jù)在組件之間的傳送、以及用于執(zhí)行其他處理的的多種程 序的處理器。存儲(chǔ)器502包括R0M(只讀存儲(chǔ)器),存儲(chǔ)要由CPU 501執(zhí)行的程序以及用作工作 參數(shù)的固定數(shù)據(jù)。存儲(chǔ)器502還包括RAM(隨機(jī)存取存儲(chǔ)器),RAM用作用于容納正被CPU 501執(zhí)行的程序的存儲(chǔ)和工作區(qū)域,并且用來(lái)在參數(shù)根據(jù)程序執(zhí)行而變化時(shí)保存參數(shù)。存儲(chǔ)器502可以用作用于存儲(chǔ)加密處理所需的密鑰和其他數(shù)據(jù)的區(qū)域。存儲(chǔ)器 502中的用于存儲(chǔ)數(shù)據(jù)和其他資源的區(qū)域應(yīng)對(duì)優(yōu)選被構(gòu)造為防篡改的。加密處理器件503是執(zhí)行加密算法的器件,所述加密算法例如上述包括多輪函數(shù) 的迭代的DES算法。S卩,加密處理器件503是實(shí)現(xiàn)為本發(fā)明第一至第四實(shí)施例的DES運(yùn)算 電路以及實(shí)現(xiàn)為本發(fā)明第五實(shí)施例的AES運(yùn)算電路可應(yīng)用到的器件。發(fā)送和接收器件504是允許IC模塊500執(zhí)行與外部的數(shù)據(jù)通信的數(shù)據(jù)通信處理 器件。示意性地,發(fā)送和接收器件504使得IC模塊500能輸出在內(nèi)部生成的密文并且輸入 來(lái)自諸如讀卡器-寫(xiě)卡器之類(lèi)的外部設(shè)備的數(shù)據(jù)。由加密處理器件503使用的包括上述用于操作開(kāi)關(guān)的控制信號(hào)在內(nèi)的各種控制 信號(hào)是由定時(shí)發(fā)生器電路506生成的,定時(shí)發(fā)生器電路506在被來(lái)自時(shí)鐘發(fā)生器電路505 的時(shí)鐘信號(hào)觸發(fā)時(shí)動(dòng)作。定時(shí)發(fā)生器電路506將所生成的信號(hào)提供給加密處理器件603。應(yīng)對(duì)理解,盡管已結(jié)合特定實(shí)施例描述了本發(fā)明,但是考慮到上述描述本領(lǐng)域技 術(shù)人員將清楚多種改變、修改和變更。因此,本發(fā)明要包括所有這種改變、修改和變更,只要 它們落入所附權(quán)利要求的精神和范圍內(nèi)。本申請(qǐng)包含與2009年3月13日向日本專(zhuān)利局提交的日本在先專(zhuān)利申請(qǐng)JP 2009-061537中公開(kāi)的內(nèi)容有關(guān)的主題,該申請(qǐng)的全部?jī)?nèi)容通過(guò)引用結(jié)合于此。
權(quán)利要求
一種加密處理設(shè)備,包括第一寄存器器件,被配置為包括第一數(shù)據(jù)寄存器和第一標(biāo)志寄存器;第二寄存器器件,被配置為包括第二數(shù)據(jù)寄存器和第二標(biāo)志寄存器;第一標(biāo)志運(yùn)算器件,被配置為針對(duì)每組預(yù)定數(shù)目個(gè)比特對(duì)輸入明文文本中的第一數(shù)據(jù)和第二數(shù)據(jù)執(zhí)行標(biāo)志運(yùn)算;第一運(yùn)算器件,被配置為使所述第一標(biāo)志運(yùn)算器件對(duì)所述第一數(shù)據(jù)和所述第二數(shù)據(jù)中的每個(gè)和所得到的標(biāo)志來(lái)執(zhí)行標(biāo)志運(yùn)算來(lái)實(shí)現(xiàn)標(biāo)志控制,所述第一運(yùn)算器件還被配置為將受標(biāo)志控制的第一數(shù)據(jù)和第一標(biāo)志饋送到所述第一寄存器器件,并且將受標(biāo)志控制的第二數(shù)據(jù)和第二標(biāo)志饋送到所述第二寄存器器件;第二運(yùn)算器件,被配置為對(duì)所述第二寄存器器件的所述第二數(shù)據(jù)寄存器中的鎖存數(shù)據(jù)和所述第二標(biāo)志寄存器中的標(biāo)志執(zhí)行異或運(yùn)算;輪運(yùn)算器件,被配置為對(duì)來(lái)自所述第二運(yùn)算器件的輸出數(shù)據(jù)執(zhí)行輪運(yùn)算;第三運(yùn)算器件和第四運(yùn)算器件,被配置為對(duì)來(lái)自所述輪運(yùn)算器件的輸出和所述第一寄存器器件的所述第一數(shù)據(jù)寄存器中的鎖存值以及所述第一標(biāo)志寄存器中的標(biāo)志執(zhí)行異或運(yùn)算;第二標(biāo)志運(yùn)算器件,被配置為針對(duì)每組預(yù)定數(shù)目個(gè)比特,對(duì)來(lái)自所述第三運(yùn)算器件和所述第四運(yùn)算器件的輸出數(shù)據(jù)執(zhí)行新的標(biāo)志運(yùn)算;以及第五運(yùn)算器件,被配置為使所述第二標(biāo)志運(yùn)算器件對(duì)來(lái)自所述第三運(yùn)算器件和所述第四運(yùn)算器件的輸出數(shù)據(jù)和所得到的標(biāo)志執(zhí)行異或運(yùn)算來(lái)實(shí)現(xiàn)標(biāo)志控制,所述第五運(yùn)算器件還被配置為將受標(biāo)志控制的數(shù)據(jù)和標(biāo)志輸出到所述第二寄存器器件。
2.如權(quán)利要求1所述的加密處理設(shè)備,其中,在所述第一標(biāo)志運(yùn)算器件和所述第二標(biāo) 志運(yùn)算器件之中,至少所述第二標(biāo)志運(yùn)算器件在所述預(yù)定數(shù)目個(gè)比特中的“1”比特的數(shù)目 為多數(shù)的情況下設(shè)置所述標(biāo)志,并且從而反轉(zhuǎn)相應(yīng)數(shù)據(jù)。
3.如權(quán)利要求2所述的加密處理設(shè)備,還包括 用于標(biāo)志寄存器的標(biāo)志連線,其中如果所述預(yù)定數(shù)目個(gè)比特中的漢明權(quán)重為0、1或4則設(shè)置附加標(biāo)志,并且所述標(biāo)志連 線從而被充電。
4.如權(quán)利要求1所述的加密處理設(shè)備,其中,在所述第一標(biāo)志運(yùn)算器件和所述第二標(biāo) 志運(yùn)算器件之中,至少所述第二標(biāo)志運(yùn)算器件依據(jù)所述預(yù)定數(shù)目個(gè)比特的比特圖樣生成標(biāo) 志數(shù)據(jù),并且基于所生成的標(biāo)志數(shù)據(jù)反轉(zhuǎn)相應(yīng)數(shù)據(jù)。
5.如權(quán)利要求1所述的加密處理設(shè)備,其中所述第三運(yùn)算器件對(duì)來(lái)自所述輪運(yùn)算器件的輸出和所述第一寄存器器件的所述第一 數(shù)據(jù)寄存器中的鎖存值執(zhí)行異或運(yùn)算,并且所述第四運(yùn)算器件對(duì)來(lái)自所述第三運(yùn)算器件的輸出和所述第一寄存器器件的所述第 一標(biāo)志寄存器中的標(biāo)志執(zhí)行異或運(yùn)算,所述第四運(yùn)算器件還將該運(yùn)算的結(jié)果輸出到所述第 二標(biāo)志運(yùn)算器件和所述第五運(yùn)算器件。
6.如權(quán)利要求1所述的加密處理設(shè)備,其中,所述第四運(yùn)算器件對(duì)來(lái)自所述輪運(yùn)算器件的輸出和所述第一寄存器器件的所述第一 標(biāo)志寄存器中的標(biāo)志執(zhí)行異或運(yùn)算,并且所述第三運(yùn)算器件對(duì)來(lái)自所述第四運(yùn)算器件的輸出和所述第一寄存器器件的所述第 一數(shù)據(jù)寄存器中的鎖存數(shù)據(jù)執(zhí)行異或運(yùn)算,所述第三運(yùn)算器件還將該運(yùn)算的結(jié)果輸出到所 述第二標(biāo)志運(yùn)算器件和所述第五運(yùn)算器件。
7.如權(quán)利要求1所述的加密處理設(shè)備,還包括第一控制器件,被配置為控制來(lái)自所述第一寄存器器件的輸出;以及 第二控制器件,被配置為控制來(lái)自所述第二寄存器器件的輸出;其中 所述第一控制器件在通過(guò)向所述第二控制器件的輸出定時(shí)添加所述輪運(yùn)算器件中的 延遲而獲得的定時(shí)上控制來(lái)自所述第一數(shù)據(jù)寄存器的鎖存數(shù)據(jù)和來(lái)自所述第一標(biāo)志寄存 器的標(biāo)志的輸出。
8.如權(quán)利要求1所述的加密處理設(shè)備,其中 一輪由預(yù)充電階段和求值階段構(gòu)成,用于所述第一寄存器器件和所述第二寄存器器件的負(fù)載連線在所述預(yù)充電階段被設(shè) 置到預(yù)定電勢(shì),并且所述第一寄存器器件和所述第二寄存器器件中的鎖存數(shù)據(jù)在所述求值階段被輸出。
9.如權(quán)利要求7所述的加密處理設(shè)備,其中所述第一控制器件對(duì)來(lái)自所述第一寄存器器件的輸出和第一控制信號(hào)執(zhí)行邏輯運(yùn)算 從而控制所述輸出,所述第二控制器件對(duì)來(lái)自所述第二寄存器器件的輸出和第二控制信號(hào)執(zhí)行邏輯運(yùn)算 從而控制所述輸出,并且所述第一控制信號(hào)是通過(guò)對(duì)來(lái)自所述輪運(yùn)算器件的輸出的監(jiān)控信號(hào)和所述第二控制 信號(hào)的延遲信號(hào)執(zhí)行邏輯運(yùn)算而生成的。
10.如權(quán)利要求1所述的加密處理設(shè)備,其中所述輪運(yùn)算器件包括被配置為執(zhí)行非線性轉(zhuǎn)換處理的多個(gè)子S框和S框,并且 所述預(yù)定數(shù)目個(gè)比特是以下述方式選擇的在來(lái)自所述多個(gè)子S框的輸出信號(hào)之中, 來(lái)自至少兩個(gè)子S框的那些被包括在這些比特中。
11.如權(quán)利要求10所述的加密處理設(shè)備,其中,所述輪運(yùn)算器件包括 擴(kuò)展器件,被配置為擴(kuò)展所述第二寄存器中的鎖存數(shù)據(jù)的比特;排他性邏輯運(yùn)算器件,被配置為對(duì)來(lái)自所述擴(kuò)展器件的經(jīng)擴(kuò)展數(shù)據(jù)和密鑰執(zhí)行排他性 邏輯運(yùn)算,從而將該運(yùn)算的結(jié)果輸出到所述S框;以及置換器件,被配置為對(duì)由所述S框執(zhí)行的非線性處理的結(jié)果執(zhí)行比特位置置換。
12.如權(quán)利要求1所述的加密處理設(shè)備,還包括標(biāo)志重置器件,被配置為對(duì)要輸出的運(yùn) 算結(jié)果和預(yù)定標(biāo)志執(zhí)行異或運(yùn)算以便重置標(biāo)志。
13.如權(quán)利要求1所述的加密處理設(shè)備,其中,所述加密處理設(shè)備根據(jù)數(shù)據(jù)加密標(biāo)準(zhǔn)算 法DES或高級(jí)加密標(biāo)準(zhǔn)AES來(lái)執(zhí)行加密處理操作。
14.一種加密處理設(shè)備,包括第一寄存器裝置,用于包括第一數(shù)據(jù)寄存器和第一標(biāo)志寄存器; 第二寄存器裝置,用于包括第二數(shù)據(jù)寄存器和第二標(biāo)志寄存器; 第一標(biāo)志運(yùn)算裝置,用于針對(duì)每組預(yù)定數(shù)目個(gè)比特對(duì)輸入明文文本中的第一數(shù)據(jù)和第 二數(shù)據(jù)執(zhí)行標(biāo)志運(yùn)算;第一運(yùn)算裝置,用于使所述第一標(biāo)志運(yùn)算裝置對(duì)所述第一數(shù)據(jù)和所述第二數(shù)據(jù)中的每 個(gè)和所得到的標(biāo)志執(zhí)行標(biāo)志運(yùn)算來(lái)實(shí)現(xiàn)標(biāo)志控制,所述第一運(yùn)算裝置還用于將受標(biāo)志控制 的第一數(shù)據(jù)和第一標(biāo)志饋送到所述第一寄存器裝置,并且將受標(biāo)志控制的第二數(shù)據(jù)和第二 標(biāo)志饋送到所述第二寄存器裝置;第二運(yùn)算裝置,用于對(duì)所述第二寄存器裝置的所述第二數(shù)據(jù)寄存器中的鎖存數(shù)據(jù)和所 述第二標(biāo)志寄存器中的標(biāo)志執(zhí)行異或運(yùn)算;輪運(yùn)算裝置,用于對(duì)來(lái)自所述第二運(yùn)算裝置的輸出數(shù)據(jù)執(zhí)行輪運(yùn)算; 第三運(yùn)算裝置和第四運(yùn)算裝置,用于對(duì)來(lái)自所述輪運(yùn)算裝置的輸出和所述第一寄存 器裝置的所述第一數(shù)據(jù)寄存器中的鎖存值以及所述第一標(biāo)志寄存器中的標(biāo)志執(zhí)行異或運(yùn) 算;第二標(biāo)志運(yùn)算裝置,用于針對(duì)每組預(yù)定數(shù)目個(gè)比特,對(duì)來(lái)自所述第三運(yùn)算裝置和所述 第四運(yùn)算裝置的輸出數(shù)據(jù)執(zhí)行新的標(biāo)志運(yùn)算;以及第五運(yùn)算裝置,用于使所述第二標(biāo)志運(yùn)算裝置對(duì)來(lái)自所述第三運(yùn)算裝置和所述第四運(yùn) 算裝置的輸出數(shù)據(jù)和所得到的標(biāo)志執(zhí)行異或運(yùn)算來(lái)實(shí)現(xiàn)標(biāo)志控制,所述第五運(yùn)算裝置還用 于將受標(biāo)志控制的數(shù)據(jù)和標(biāo)志輸出到所述第二寄存器裝置。
全文摘要
本發(fā)明提供了一種加密處理設(shè)備。該設(shè)備包括第一寄存器器件;第二寄存器器件;第一標(biāo)志運(yùn)算器件;第一運(yùn)算器件;第二運(yùn)算器件;輪運(yùn)算器件;第三和第四運(yùn)算器件;第二標(biāo)志運(yùn)算器件;以及第五運(yùn)算器件。
文檔編號(hào)G06K19/073GK101834720SQ20101012908
公開(kāi)日2010年9月15日 申請(qǐng)日期2010年3月8日 優(yōu)先權(quán)日2009年3月13日
發(fā)明者信方浩美 申請(qǐng)人:索尼公司