專利名稱:運算處理裝置、運算處理控制方法以及計算機程序的制作方法
技術領域:
本發(fā)明涉及運算處理裝置、運算處理控制方法以及計算才幾程 序。更具體地,本發(fā)明涉及使用邏輯電路的運算處理裝置、運算處 理控制方法以及計算機程序,能夠有效地執(zhí)行與諸如根據(jù)AES (高 級力口密標準)標準的通用密匙力口密或諸如才艮據(jù)RSA (Rivest-Sharmir-Adleman )算法的7>共密匙加密相關的運算,或者 有效地執(zhí)行與諸如才艮據(jù)SHA-1 (安全哈希算法1 )的哈希函數(shù)相關 的運算。
背景技術:
近年來,網(wǎng)絡通信和電子商務已經(jīng)變得非常受歡迎。因此,通 信中的安全性變得越來越重要。在通信中實現(xiàn)高安全性的 一種技術 是使用密碼,并且實際在通信中使用許多加密技術。
加密方法被分為兩種類型通用密匙加密和公共密匙加密。通 用密匙加密技術的特定實例是使用DES (數(shù)據(jù)加密標準)算法以及
使用AES (高級加密標準)算法的技術。AES加密被廣泛地用作 DES加密的后繼加密算法。公共密匙加密的特定實例是RSA (Rivest-Shamir畫Adleman )力。密和ECC (橢圓曲線密碼學)加密。
用于才艮據(jù)這種算法扭J于加密處理的加密處理裝置可以通過4丸 行以諸如C的程序語言所寫的程序在CPU上實現(xiàn),或者可以以使 用各種門電路的硬件裝置的形式實現(xiàn)。
加密處理裝置扭J亍^:據(jù)加密處理以將給出的明文加密成密文, 或執(zhí)行數(shù)據(jù)解密處理以將給出的密文解密成明文。期望以安全的方 式寺丸4于加密或解密處理, <吏得信息不#1泄露。然而,實際上,已知 各種分析或攻擊用在加密或解密中的密匙或算法的技術。攻擊方法 可以分成兩種類型石皮壞性-文擊和非石皮壞、性攻擊。
在石皮壞性攻擊中,通過〗吏用諸如硝酸的化學劑的化學處理來溶 解IC芯片的封裝,并從IC芯片的暴露管芯中物理地讀取秘密信息。 眾所周知,才艮據(jù)暴露管芯上的互連配線再現(xiàn)電^各。這就是所知的逆 向工程??梢詠V人互連配線中直4妄才是耳又出秘、密信息。此夕卜,還知道通 過用激光束或電{茲波照射存儲單元來4企測存儲單元的狀態(tài)以7見察 在存儲器中寫入的秘密信息。
非石皮壞性攻擊還^皮稱作側信道攻擊。在這種方法中,IC芯片的 封裝沒有被化學溶解,但是由可從外部獲得的諸如消耗電流、電磁 輻射、運算時間等的物理信息4企測秘密信息。例如,在由Kocher 等人1999年所寫的i侖文(Paul C. Kocher, Joshaua Jaffe和Benjamin Jun, "Differential Power Analysis", CRYPTO 1999, Lecture Note in Computer Science, Vol.1666, Springer-Verlag ( 1999 ), 388-397頁 (下文稱作非專利文獻l))中,討論了通過觀察當由裝置執(zhí)行根據(jù) DES算法(通用密匙加密4支術的一種)的加密處理時所發(fā)生的消壽毛 電流消的變化來檢測密匙信息(秘密信息)的技術。攻擊技術的存 在導致了秘密信息被泄露為不是秘密的可能性,因此,需要更安全 地保護信息的技術。
更具體地,在非專利文獻1中討i侖的DPA (差分功津毛分析)攻 擊中,為許多對應于不同的輸入明文的加密運算觀察電流消碑毛,并 基于秘密信息的位值統(tǒng)計地分析電流消耗。經(jīng)由統(tǒng)計分析檢測與秘 密信息具有相關性的電流消耗模式,并從電流消耗模式中提取秘密 信息。
已經(jīng)建議了上述防止秘、密信息凈皮攻擊的各種4支術。例如,在 Elisabeth Oswald等人的i侖文(Elisabeth Oswald, Stefan Mangard, Norbert Pramstaller, "A Side-Channel Analysis Resistant Description of the AES S-box,,, FSE 2005, LNCS 3557, 413-423頁(下文稱作非專 利文獻2))中討論了保護與AES算法(通用密匙加密方法的一種) 相關的信息的技術。在這種技術中,通過使用隨機數(shù)來隱藏包括秘 密信息的中間值來保護稱作AES運算中字節(jié)替換(subbyte)轉換 的S盒(S-box)運算。
在Kris Tiri等人的論文(Kris Tiri, Ingrid Verbauwhede, "Securing Encryption Algorithms against DPA at the Logic Level: Next Generation Smart Card Technology", CHES 2003, LNCS 2779, 125-136頁(下文稱作非專利文獻3))中7>開了4吏用WDDL (波形 差分動態(tài)邏輯)的技術,通過交替執(zhí)行預充電(pre-charge)階段中 的運算和評估(evaluation)階段的運算來保護秘密信息。
在預充電階段中,初始化門電路,并在評估階段中執(zhí)行實際運 算。以互補形式給出門電路的輸入,并且來自門電路的輸出以互補 形式出現(xiàn)。為互補輸入形成正邏輯和負邏輯,從而獲得互補輸出。 在交替執(zhí)行預充電階段和評估階段且輸入和輸出以互補形式出現(xiàn)
的WDDL技術中,僅在從預充電階段向評估階,殳或從評估階段向 預充電階段的轉換處允許任意信號的變化。
由于WDDL的上述特性,所以不會發(fā)生不必要的瞬時變化。 除此之外,在WDDL中,響應于<壬意1#入,兩個輸出中l(wèi)又有一個 發(fā)生變化。因此,CMOS (互補金屬氧化物半導體)邏輯的電流消 耗不發(fā)生改變,這是因為僅當邏輯狀態(tài)發(fā)生變化時才發(fā)生充電/放 電。因此,不會發(fā)生依賴于秘密信息位值的電流消耗的變化。這有 效地保護秘密信息不受DPA攻擊。
可通過使用例如二元判定圖(BDD)的硬件執(zhí)行稱作AES算 法中字節(jié)替換轉換運算的內(nèi)部S盒運算。稍后將詳述二元判定圖 (BDD)。例如,在日本未審查專利申^青7>開第2003-223100號(下 文稱作專利文獻l)中,同樣可以找到二元判定圖(BDD)的描述。
專利文獻1包括通過組合電路和其實際實現(xiàn)的S盒或二元判定 圖(BDD)結構的討論。使用通用密匙加密的加密運算包括使用稱 作S盒的非線性變換單元的非線性變換處理。加密運算的總運算速 度極大地依賴于S盒的運算速度。例如,用于AES算法的S盒需 要用于在Galois i或中確定逆元(inverse element)的電^各。
如果使用合成域等而不是二元判定圖(BDD )來實現(xiàn)這種電路, 則電路延遲比基于二元判定圖(BDD)的電路中的延遲大幾倍。因 此,從運算速度的^L點來看,期望實現(xiàn)使用二元判定圖(BDD)的 電路。
發(fā)明內(nèi)容
然而,在非專利文獻1中描述的保護秘密信息的^支術中,由于 內(nèi)部信號間的傳4番延遲中差而使信號電平發(fā)生瞬時變化,并且存在
從這個瞬時變化中才企測出包括秘密信息的中間值的可能性。因此, 秘密信息沒有被完全隱藏。
在非專利文獻2中/>開的4吏用WDDL的技術中,需要確定電 路配線布局,使得不存在互補信號間的傳播延遲差。在運算中,如 果在兩個輸入間存在巨大的傳播延遲差,則該差可引起秘密信息被 DPA -丈擊4全測到。
當使用二元判定圖(BDD)實現(xiàn)非線性變化電路以獲得高運算 速度時,有可能發(fā)生DPA攻擊從信號的不必要的瞬時變化中4企測 到諸如密鑰的秘密信息。即,在由基于二元判定圖(BDD)的邏輯 電路執(zhí)行的運算中,發(fā)生內(nèi)部信號的瞬時變化。因此,可通過DPA 攻擊從瞬時變化中檢測到秘密信息。
考慮到上述問題,期望提供運算處理裝置、運算處理控制方法 以及計算機程序,能夠使用邏輯電路執(zhí)行運算,其中,邏輯電路具 有最小的延遲差而不具有信號的不必要的瞬時變化,并對諸如試圖 泄露秘密信息的DPA攻擊的攻擊具有高4氏抗性。
根據(jù)本發(fā)明的一個實施例,提供了一種運算處理裝置,用于對 輸入位執(zhí)行數(shù)據(jù)變換,其包括邏輯電路以及適于使用邏輯電路控制 數(shù)據(jù)變換處理的控制單元,其中,邏輯電路包括被輸入其中的選擇 信號所控制的多個選擇器,由輸入位給出選擇信號,選擇器以分層 結構配置,使得將恒定值輸入至位于底層中的多個選擇器,對于每 一層根據(jù)選擇信號選擇恒定值并將其傳送給更高層中的選擇器,以 及一 恒定值最終#皮最高層中的 一選擇器選4奪并乂人最高層中的該選 擇器輸出??刂茊卧刂茢?shù)據(jù)變換處理,使得交替執(zhí)行預充電階段 和評估階段,在預充電階段中,將對邏輯電路中的選擇器的所有輸 入值i殳定為相等,在評估階l殳中,產(chǎn)生對應于輸入位的輸出位,由 輸入位所給出的選擇信號在預充電階,史中被切換。
在該運算處理裝置中,邏輯電路中的每個選擇器均可包括第 一與門,向其輸入一個恒定值和選擇信號;第二與門,向其輸入一 個恒定值和選擇信號的反相選擇信號;以及或門,向其輸入第一與 門的輸出和第二與門的輸出,在預充電階段中,控制單元可將對第 一與門和第二與門的輸入設定為相等值。
在運算處理裝置中,邏輯電路中的每個選擇器均可包括經(jīng)由其 接收選擇信號的輸入節(jié)點和經(jīng)由其接收選擇信號的反相選擇信號 的輸入節(jié)點,并且邏輯電路還可包括在各個選擇信號輸入節(jié)點的前 級處所設置的邏輯運算元件、在反相選擇信號輸入節(jié)點的前級處所 設置的邏輯運算元件以及在位于底層且向其輸入恒定值的各個選 擇器的前級處所設置的邏輯運算元件,每個邏輯運算元件都用于接 收預充電信號,并且控制單元可切換輸入至邏輯運算元件的預充電 信號以在切換預充電階段和評估階段之間進行切換。
在該運算處理裝置中,每個邏輯運算元件都可以是與門,將預 充電信號輸入至其一個輸入,控制單元可切換輸入至每個與門的一 個輸入的預充電信號以在預充電階段和評估階段之間進行切換。
在該運算處理裝置中,每個邏輯運算元件都可以是或門,將預 充電信號輸入至其一個輸入,控制單元可切換輸入至每個或門的一 個輸入的預充電信號以在預充電階段和評估階段之間進行切換。
在該運算處理裝置中,在邏輯電路中的選擇器中,可以用單個 公共選擇器代替向其提供相等輸入值的多個選擇器。
在該運算處理裝置中,邏輯電路中的選擇器可以包括具有反相 輸出的選擇器和具有反相輸入的選擇器。
在該運算處理裝置中,控制單元可控制數(shù)據(jù)變換處理,使得在 預充電階段中,向設置在底層中的每個選擇器輸入恒定值,而在評 估階段中,向底層中的選擇器輸入恒定值或隨機值。
在該運算處理裝置中,控制單元可控制門電路的輸出,使得在 在該運算處理裝置中,可配置邏輯電^各以實現(xiàn)二元判定圖
(BDD )。
在該運算處理裝置中,邏輯電^各可用于對輸入位執(zhí)4亍作為數(shù)據(jù) 變才灸處理的非線性變4灸處理。
根據(jù)本發(fā)明的一個實施例,提供了一種運算處理控制方法,用 于在運算處理裝置中控制對輸入位的數(shù)據(jù)變換處理,該運算處理裝 置包括邏輯電路,其包括被輸入其中的選擇信號所控制的多個選擇 器,由輸入位給出選擇信號,選擇器以分層結構配置,使得將恒定 值輸入至位于底層中的多個選擇器,對于每一層根據(jù)選擇信號選擇 恒定值并將其傳送給更高層中的選擇器,以及一恒定值最終被最高 層中的 一選擇器選擇并從最高層中的該選擇器輸出,該方法包括通 過控制單元控制使用邏輯電路的數(shù)據(jù)變換處理,使得交替執(zhí)行預充 電階段和評估階段,在預充電階段中,將對邏輯電路中的選擇器的 所有輸入值i殳定為相等,在評估階,殳中,產(chǎn)生對應于輸入位的輸出 位,在預充電階l殳中切換由輸入位給出的選擇信號。
在該運算處理控制方法中,邏輯電路中的每個選擇器均可包 括第一與門,向其輸入一個恒定值和選擇信號;第二與門,向其 輸入一個恒定值和該選4,信號的反相選擇信號;以及或門,向其輸 入第一與門的輸出和第二與門的輸出,在預充電階^a中,控制單元 可將對第一與門和第二與門的輸入設定為相等值。
在該運算處理控制方法中,邏輯電路中的每個選擇器均可包括 經(jīng)由其接收選擇信號的輸入節(jié)點和經(jīng)由其接收選擇信號的反相選 擇信號的輸入節(jié)點,并且邏輯電路還可包括在各個選擇信號輸入節(jié) 點的前級處所設置的邏輯運算元件、在反相選擇信號輸入節(jié)點的前 級處所設置的邏輯運算元件以及在位于底層且向其輸入恒定值的 各個選擇器的前級處所設置邏輯運算元件,每個邏輯運算元件都用 于才妄收預充電信號,并且控制單元可切換輸入至邏輯運算元件的預 充電信號以在預充電階段和評估階段之間進行切換。
在該運算處理控制方法中,每個邏輯運算元件都可以是與門, 將預充電信號輸入至其一個輸入,并且控制單元可切換輸入至每個 與門的 一 個輸入的預充電信號以在預充電階,殳和評估階^殳之間進 行切換。
在該運算處理控制方法中,每個邏輯運算元件都可以是或門, 將預充電信號輸入至其一個輸入,并且控制單元可切換輸入至每個 或門的 一個輸入的預充電信號以在預充電階,殳和評估階^殳之間進 行切換。
在該運算處理控制方法中,控制單元可控制數(shù)據(jù)變換處理,使 得在預充電階段中,向設置在底層中的每個選擇器輸入恒定值,而 在評估階段中,向底層中的選擇器輸入恒定值或隨機值。
在該運算處理控制方法中,控制單元可控制數(shù)據(jù)變換處理,使根據(jù)本發(fā)明的一個實施例,提供了 一種可由運算處理裝置執(zhí)行
以對輸入位執(zhí)行數(shù)據(jù)變換處理的計算機程序,該運算處理裝置包括 邏輯電路,其包括被輸入其中的選擇信號所控制的多個選擇器,由 輸入位給出選擇信號,選擇器以分層結構配置,使得將恒定值輸入 至位于底層中的多個選擇器,對于每一層根據(jù)選擇信號選擇恒定值 并將其傳送給更高層中的選擇器,以及一恒定值最終被最高層中的 一選擇器選擇并從最高層中的該選擇器輸出,該計算機程序控制數(shù) 據(jù)變換處理,使得交替執(zhí)行預充電階段和評估階段,在預充電階段 中,將對邏輯電路中的選擇器的所有輸入值設定為相等,在評估階 段中,產(chǎn)生對應于輸入位的輸出位,在預充電階段中切換由輸入位 給出的選4爭信號。
經(jīng)由以計算機可讀方式存儲程序的諸如CD、FD或MO的存儲 介質(zhì)或經(jīng)由諸如網(wǎng)絡的通信介質(zhì),可將計算機程序提供給能夠執(zhí)行 各種計算才幾程序代碼的計算才幾系統(tǒng)。通過如上所述提供計算才幾可讀
形式的程序,可以才艮據(jù)程序在計算沖幾系統(tǒng)上寺丸行處理。
從以下參照附圖的示例性實施例的描述中,本發(fā)明的其他目 的、特征和優(yōu)點將變得顯而易見。在本說明書中,術語"系統(tǒng)"用于 描述多個裝置的邏輯集合,且不需要要求多個裝置設置在單個外殼 中。
如上所述,根據(jù)本發(fā)明的實施例,配置用于諸如非線性數(shù)據(jù)變 換的數(shù)據(jù)變換的邏輯運算裝置,使得在預充電階段中,邏輯電路中 的選擇器的所有輸入纟皮維持為相等值并切換輸入位,而在預充電階 段之后的評估階段中,執(zhí)行數(shù)據(jù)變換處理并產(chǎn)生輸出位。因為在預 充電階段中將所有選#^器輸入復位為相等值,所以難以在切換輸入 位的時刻基于信號的瞬時變化才丸行分析,因此,邏輯運算裝置對于 DPA (差分功耗分析)等具有高抵抗性。
圖1示出了才艮據(jù)使用AES算法或DES算法的通用密匙加密的 加密處理的基本功能結構的實例;
圖2示出了才艮據(jù)AES算法的加密處理的功能結構的實例;
圖3示出了執(zhí)行AES加密處理的硬件結構的實例;
圖4示出了用在非線性變換處理中的變換表(S盒表)的實例;
圖5示出了通過邏輯電路輸出作為根據(jù)非線性變換表(S盒表) 的非線性變換的結果而獲得的完整輸出數(shù)據(jù)的低階(low order) — 4立所實3見的二元判定圖(BDD)的實例;
圖6示出了僅表示在圖4所示表格中表示的256個輸出值的每 一個的最低有效位的變換表;
圖7示出了用在非線性變換邏輯電路中的選擇器的結構實例;
圖8A和8B是用于解釋4言號的瞬時變4匕的示圖9示出了^皮配置為可在預充電階,殳和評估階,殳l喿作的邏輯電 路的實例;
圖10示出了用在非線性變換邏輯電路中的選擇器的結構實例;
圖11示出了根據(jù)本發(fā)明的實施例的被配置為執(zhí)行非線性變換 處理的邏輯電if各的實例;
圖12A和12B示出了根據(jù)本發(fā)明的實施例的切換邏輯電路中 的信號的方法實例; 圖13示出了4艮據(jù)本發(fā)明的實施例的在非線性變換處理中控制 邏輯電路的方法實例;
圖14示出了由單個選擇器代替多個選擇器的方法實例;
圖15示 相輸入選擇器配置的邏輯電路;
圖16
結構實例;
圖17示出了根據(jù)本發(fā)明的實施例的包括或門的邏輯電路的結 構實例;以及
圖18示出了根據(jù)本發(fā)明的實施例的用作加密處理裝置的IC模 塊的結構實例。
具體實施例方式
下面將參照具體實施例更詳細地描述才艮據(jù)本發(fā)明的運算處理 裝置、運算處理控制方法以及計算枳4呈序。
在下述實施例中,通過實例假定將本發(fā)明應用于使用AES (高 級加密標準)算法(通用密匙加密法的一種)的加密處理。在AES 算法中,例如,將128位明文轉4灸為128位密文。同才羊對于作為一 種傳統(tǒng)通用密匙加密法的DES (凄t據(jù)加密標準)算法,通過重復執(zhí) 行輪操作(round operation )而實現(xiàn)數(shù)據(jù)變換。注意,本發(fā)明不僅適 用于使用AES或DES算法的通用密匙加密處理,還適用于各種非 線性或線性數(shù)據(jù)變換處理,例如基于RSA算法等的/>共密匙加密 處理、諸如SHA-1的哈希函數(shù)的計算等。
本發(fā)明具體實施例的描述包括下列部分。
1. 使用通用密匙的加密處理的基本功能結構
2. 使用BDD的非線性變換單元(S盒)的一般結構 3 .才艮據(jù)本發(fā)明的非線性變換單元的第 一 實例
4. 根據(jù)本發(fā)明的非線性變換單元的第二實例(具有共用的選擇
器)
5. 根據(jù)本發(fā)明的非線性變換單元的第三實例(使用反相輸出選 擇器和反相輸入選擇器配置)
6. 才艮據(jù)本發(fā)明的非線性變換單元的第四實例(使用隨機數(shù)作為 輸入)
7. 根據(jù)本發(fā)明的非線性變換單元的第五實例(包括或門)
8. 加密處理裝置的實例
1.使用通用密匙的加密處理的基本功能結構
圖1示出了根據(jù)使用AES算法或DES算法的通用密匙加密的 加密處理的基本功能結構的實例。如圖l所示,通用密匙加密的基 本功能結構包括密匙調(diào)度(scheduling )單元101和凄t據(jù)變換器110。 密匙調(diào)度單元101接收密鑰100,并基于接收的密鑰100產(chǎn)生用在 各輪中的輪密匙。將產(chǎn)生的輪密匙提供給各個輪操作單元151-1至 151-n。
在數(shù)據(jù)變換器110中,輪操作單元151-1至151-n根據(jù)由密匙 調(diào)度單元IOI提供的輪密匙對接收數(shù)據(jù)執(zhí)行數(shù)據(jù)變換,并輸出所得 到的變換數(shù)據(jù)。
在由輪、燥作單元151-1至151-n ^^亍的凄t據(jù)變換處理中,重復 執(zhí)行相似的輪操作。在每輪中,對輸入位執(zhí)行使用變換表的非線性 變換、線性變換、或使用輸入密匙(輪密匙)的數(shù)據(jù)變換。將每輪 中的運算結果傳送給下一輪。
例如,在AES加密處理中,由4&操作單元151-1至151-n執(zhí)行
的非線性變換處理稱作字節(jié)替換轉換。使用預先準備的非線性變換 表(S盒表)執(zhí)行被稱作字節(jié)替換轉換的非線性變換處理。
圖2示出了 AES力口密處理的細節(jié)。密匙調(diào)度單元201接收密 鑰200,并基于4妄收的密鑰200產(chǎn)生用在各壽侖中的4侖密匙。將產(chǎn)生 的輪密匙提供給各個輪操作單元210。如圖2所示,用于AES加密 的輪操作單元210包括異或門211,用于計算輸入數(shù)據(jù)和輪密匙 之間的異或;S盒212,用于執(zhí)行被稱作字節(jié)替換轉換的非線性轉 換;列混合(mix-column )單元213,用于交換乂人各個S盒212 #T 出的數(shù)據(jù);異或門214,用于計算從各個列混合單元213輸出的數(shù) 據(jù)和輪密匙之間的異或;以及S盒215,用于對從各個異或門214 輸出的數(shù)據(jù)執(zhí)行非線性轉換。注意,在上述處理中,將數(shù)據(jù)分為多 ,殳(segment),每一,殳包括8位,并且如圖2所示,以8位數(shù)據(jù)為 單位執(zhí)行處理。
如上所述,重復執(zhí)行輪操作。在通過硬件實現(xiàn)AES加密處理 單元的情況下,在AES加密處理單元中i殳置單個專侖^操作單元,并通 過該單個4侖」燥作單元重復執(zhí)4亍4侖才喿作。圖3示出了通過石更件實現(xiàn) AES加密處理單元的實例。
在圖3所示的實例中,如果向AES加密處理單元250輸入第 一輪密匙0,則異或門251計算輪密匙0和將^皮加密的數(shù)據(jù)(128 位)之間的異或。將得到的數(shù)據(jù)經(jīng)由選擇器252提供給寄存器253。 然后,將數(shù)據(jù)分為多段,每段都包括8位,并將其提供給S盒254。 S盒254對相應8位數(shù)據(jù)執(zhí)行非線性變換處理。將得到的數(shù)據(jù)提供 纟合列混合單元255。列混合單元255交換,接收凄t據(jù)中的位值。將得 到的數(shù)據(jù)經(jīng)由選擇器256提供給異或門257。異或門257確定接收 數(shù)據(jù)和輪密匙之間的異或。將結果經(jīng)由選擇器252返回至寄存器 253,并再次輸入至S盒254。因此,重復執(zhí)行該處理。當已經(jīng)執(zhí)行 了預定輪數(shù)時,從寄存器253輸出作為上面處理結果而獲得的密文。
在用作輪操作單元中的非線性變換單元的每個S盒中,如果給 出8位數(shù)據(jù),則根據(jù)非線性變換表(S盒表)對給出的8位數(shù)據(jù)執(zhí) 行非線性變換,從而產(chǎn)生8位輸出數(shù)據(jù)。因為16個S盒的每一個 都產(chǎn)生8位非線性變換數(shù)據(jù),所以由于非線性變換獲得總共包括128 (16x8)位的輸出數(shù)據(jù)。圖4示出了用在非線性變換處理中的變換 表(S盒表)的實例。
在圖4所示的變換表中,在頂部的水平行中以十六進制描述將 被變換的輸入8位數(shù)據(jù)的低階4位(0、 1、 2、 ...、 d、 e、 f)。十六 進制中的0至f只十應于二進制中的0000至1111。在最左邊的垂直 列中以十六進制描述將被變換的輸入8位數(shù)據(jù)的高階4位(0、 1、
2..... d、 e、 f)。變換表表示每個都由變換表中的高階4位值和低
階4位^f直的交集鄉(xiāng)會出的相應8位輸入值的8位輸出^直。
即,8位輸入數(shù)據(jù)可采用00至FF ( 00000000至11111111 )的 256個不同的位值。每個8位值由高階4位和低階4位的組合表示, 并在圖4所示的表格中進行描述。
例》口,只于于十六進制中的00 (二進制中的00000000) l命入, 根據(jù)圖4所示的變換表格輸出十六進制中的63。即,將表格左上部 的值"63"選擇作為輸出值。在將C0 (十六進制)給出作為輸入的情 況下,才艮據(jù)圖4所示的表格輸出BA (十六進制)。如上所述,在由 輪操作單元執(zhí)行的非線性變換處理中,根據(jù)在圖4所示變換表中描 述的1對1映射,將每個輸入8位值變換為輸出8位值。
2.使用BDD的非線性變換單元(S盒)的一般結構
例如,可通過基于二元判定圖(BDD)的硬件電路實現(xiàn)根據(jù)這 種非線性變換表(S盒表)的變換功能。圖5示出了通過邏輯電路 根據(jù)非線性變換表(S盒表)輸出全部變換數(shù)據(jù)的低階一位所實現(xiàn) 的二元判定圖(BDD)的實例。
在圖5所示的實例中,在第1至第8層中分層設置每個都實現(xiàn) 2輸入1輸出邏輯功能的選擇器,從而以邏輯電路的形式實現(xiàn)二元 判定圖(BDD)。設置在金字塔狀分層結構的第1至第8層的各層 中的選擇器從一層連接到另一層。最終從設置在第l層中的選擇器 輸出1位值。
在第1層中設置1個選擇器,在第2層中設置2個選擇器,在 第3層中設置4個選擇器,在第4層中設置8個選擇器,在第5層 中設置16個選擇器,在第6層中設置32個選擇器,在第7層中設 置64個選擇器,以及在第8層中設置128個選擇器,因此總共設 置了 255個選擇器。
將來自第2層的輸出輸入至第l層中的選擇器。將來自第3層 的輸出輸入至第2層中的選擇器。將來自第4層的輸出輸入至第3 層中的選擇器。將來自第5層的輸出輸入至第4層中的選擇器。將 來自第6層的輸出輸入至第5層中的選擇器。將來自第7層的輸出
輸入至第6層中的選擇器。將來自第8層的輸出輸入至第7層中的 選擇器。將"0"或"1"的恒定值輸入至第8層中的選擇器。
根據(jù)圖4所示的非線性變換表(S盒表)確定輸入至第8層中 的選擇器的"0"或"1"的總共256個恒定值(256位數(shù)據(jù))。
圖5所示的邏輯電路起輸出作為非線性變換的結果而獲得的8 位數(shù)據(jù)的最低有效位的選擇電路的作用。在該選擇電路中,由圖4
所示表才各中的256個車lr出j直(63、 7C、 77..... 54、 BB、 16)的每
一個的最低有效位的集合給出輸入至圖5底部所示第8層中的選擇 器的256位值(10110111...11110010)。
例如,輸入至圖5底部第8層中的選4奪器的最左邊位置處的位 值('T,)對應于圖4所示表格中的頂行中最左邊位置處的輸出值 ("63")的最低有效位,而輸入至圖5底部第8層中的選擇器的最 右邊位置處的位值("0")對應于圖4所示表格中底4亍中最右邊位置 處的輸出值("16")的最低有效位。
圖6示出了僅表示在圖4所示表格中表示的相應256個輸出值
(63、 7C、 77..... 54、 BB、 16)的最^f氐有^M立的變4灸表。即,圖
6所示的表才各表示在圖4所示表格中表示的相應256 ( 16x16)個輸
出^f直(63、 7C、 77..... 54、 BB、 16)的最寸氐有歲文4立,并a奪圖6所
示表格中的這些位值設定為輸入至圖5所示電路中的第8層中的選 擇器的值。
由具有經(jīng)受非線性變換的總共128位的輸入數(shù)據(jù)的一個8位段 給出輸入至各層中的選擇器的選擇信號。更具體地,將輸入8位數(shù) 據(jù)的最高有效位(in[7])作為選擇信號輸入至第1層中的選擇器, 將輸入8位數(shù)據(jù)的第2位(in[6])作為選擇信號輸入至第2層中的選擇器。在隨后的層中,類似地輸入選擇信號。最后,將最低有效位(in[O])作為選擇信號輸入至第8層中選擇器。
從通過劃分經(jīng)受非線性變換的128位數(shù)據(jù)而獲得的8位革殳中順 序選擇輸入8位數(shù)據(jù)。因此,基于段執(zhí)行非線性變換處理。
當輸入至特定選擇器的選擇信號是"O"時,選擇選擇器左側上 的輸入,并將其輸出至更高層中的選擇器。當輸入至特定選擇器的 選擇信號是'T,時,選擇選擇器右側上的輸入,并將其輸出至更高層 中的選擇器。因此,如果確定選擇信號的8位,則輸出第8層中的 選擇器的256個輸入中的對應一個。輸入至第1至第8層的選擇信 號的集合唯一確定哪一個輸入至第8層中的選擇器的恒定值被最終 選擇并輸出。
例如,在給出"00000000"作為經(jīng)受非線性變換的輸入8位數(shù)據(jù) 給出的情況下,選擇信號的所有位是"0"。結果,在所有選擇器中選 擇左側處的輸入并輸出至更高層。因此,將圖5底部處第8層中的 選擇器的輸入的最左邊位置處的位值"l"輸出作為來自第1層中的 選擇器的最終值。該輸出值對應于圖4所示表格中的頂行中的最左 邊位置處的輸出值("63")的最低有效位。如上所述,才艮據(jù)經(jīng)受非 線性變換的數(shù)據(jù)的位值(OOOOOOOO至11111111),輸出輸入至第8 層中的選才奪器的256個值中的一個。由圖4所示表格中的相應256 個^T出^f直(63、 7C、 77、…、54、 BB、 16)的最4氐有步丈^f立的纟且合纟合 出輸入至第8層中的選擇器的256個值。
通過設置包括在類似于圖5所示分層結構中設置的選擇器的8 個電^各,可以確定乂人圖4的表格所示的256個可能^f直(63、7C、77、...、 54、 BB、 16)中選擇的輸出值的所有8位。 在圖5所示的電路中,如上所述參照圖6,通過圖4所示表格 中的相應256個豐俞出4直(63、 7C、 77、…、54、 BB、 16)的最{氐有 效位的組合給出輸入至圖5底部處第8層中的選擇器的256位值 (10110111…11110010)。
如果由圖4所示表才各中的相應256個豐lT出^直(63、 7C、 77.....
54、 BB、 16)的第2位的組合給出輸入至底部處第8層中的選擇器 的256位值,則獲得輸出值的第2位的值。類似地,可以獲得輸出 值的第3至第8位。如果將以這種方式獲得的第1至第8位值結合 起來,則獲得對應于根據(jù)圖4所示的非線性變換表通過變換給出的 8位值而獲得的值的8位輸出值。
因此,當給出輸入值時,以上述方式配置的電路能夠輸出與根 據(jù)圖4所示表格(S盒表)通過非線性變換而獲得的值相對應的值。 換句話i兌,可通過由諸如圖5所示的二元判定圖(BDD)所定義的 邏輯功能實現(xiàn)由諸如圖4所示的非線性變換表(S盒表)所定義的 變換。
在圖5所示的邏輯電^各中,如上所述,在第1層中i殳置1個選 擇器,在第2層中設置2個選擇器,在第3層中設置4個選擇器, 在第4層中設置8個選擇器,在第5層中設置16個選擇器,在第6 層中設置32個選擇器,在第7層中設置64個選擇器,在第8層中 i殳置128個選4奪器,因此,總共i殳置了 255個選擇器。例如,可以 如圖7所示配置每個選擇器。
在圖7所示的選擇器中,選擇器270包括與門271、與門272 以及或門273。將才艮據(jù)S盒表確定的恒定4直a和選4奪信號的反相信 號輸入至與門271。將4艮據(jù)S盒表確定的恒定值b和選拷,信號輸入 至與門272。將與門271的輸出和與門272的輸出!餘入至或門273。
當輸入至選擇器的選擇信號是"O"時,選擇并輸出輸入至選擇
器的恒定值"a"。然而,當輸入至選擇器的選擇信號是'T,時,選擇 并輸出輸入至選擇器的恒定值"b"。
在諸如圖5所示二元判定圖的各層中^1置類似于圖7所示結構 的選擇器,使得從最低層至最高層順序確定輸出。然而,在使用這 種選擇器的結構中,由于每層中選擇信號的輸入定時的波動,所以 會發(fā)生信號電平的瞬時變化。
下面參照圖8描述信號電平的瞬時變化。在圖8中,部分(l) 示出了在各層中輸入的選擇信號((p) in
至in[7])的轉變和使用 圖5所示二元判定圖(BDD)的邏輯電路中的最終選擇器輸出((q) out)的轉變的時序圖。在圖8中,部分(2)以放大的方式示出了 圖8 ( 1 )中的部分281。如圖8(2)所示,在輸入至圖5中所示邏 輯電路中的相應8個層(第1至第8層)的相應8個選擇信號((p) in
至in[7])中發(fā)生轉變。難以在精確的相同時間改變8個選4^信 號((p) in
至in[7]),并且會在8個選擇信號之間的轉變定時中 產(chǎn)生差。
因此,所有l(wèi)敘入8位都需要特定的時間周期,以在開始轉變后 完成轉變。在圖8 (2)中,由At表示這個轉變周期。圖8 (2)中 所示的輸出((q) out)的信號電平根據(jù)相應8個選擇器層的輸入8 位的狀態(tài)而改變。在由圖8(2)中的虛線表示的輸出信號(q)的 范圍內(nèi),由于選擇信號的轉變定時的波動,輸出信號(q)的電平 會發(fā)生變化。
存在通過分析輸出信號的電平中的變化泄露基于二元判定圖 (BDD)的邏輯電路中使用的信號值的可能性。如上所述,在"背 景4支術"的部分中,存在基于豐IT出的瞬時變化的分析由DPA攻擊泄 露秘密信息的可能性。 如上所述,在WDDL (波形差分動態(tài)邏輯)技術中,為了防止 發(fā)生信號的瞬時變化,有必要確定電路配線布局, -使得在每個互補 信號之間沒有傳播延遲差。如果在運算中兩個輸入之間具有顯著的 傳才番延遲差,則難以完美地/f呆護秘、密信息不受DPA攻擊等。
3.根據(jù)本發(fā)明的非線性變換單元的第一實例
作為第一實例,如下所述,本發(fā)明提供了用作能夠以最小的延 遲差而不具有不必要的信號的瞬時變化執(zhí)行運算的非線性變換單 元(S盒)的邏輯電^各的結構。
更具體地,下面描述的第一實例是適于根據(jù)通用密匙分組密碼 (block cipher)算法扭J于加密處理的加密處理裝置,該加密處理裝 置包括邏輯電路,用于通過對輸入位執(zhí)行非線性變換處理產(chǎn)生輸 出位;以及控制單元,控制運算,使得在邏輯電路的輸出被維持為 固定值的預充電階,殳中切換才是供給邏輯電^各的輸入位。如果完成輸 入位的切換,則控制單元將運算階,殳從預充電階,殳切換為評估階 段。在評估階段中,對輸入位執(zhí)行非線性變換處理,并輸出作為非 線性變換處理結果而獲得的輸出位。
圖9示出了以適于執(zhí)行非線性變換的金字塔狀分層選擇器結構 形式的二元判定圖(BDD)的基本結構。如圖9所示,以類似于上 面參照圖5描述的金字塔狀選擇器結構形式的二元判定圖(BDD) 的方式,通過以金字塔狀結構的形式設置在8層中的選擇器配置根 據(jù)本實施例的使用S盒的邏輯電路。對于底部處第8層中的選擇器, 輸入類似于對輸入至圖5中第8層中的選擇器的那些恒定值的恒定 值。更具體地,由圖4所示表格中的相應256個輸出值(63、 7C、 77.....54、 BB、 16)的第一至第八位中的一個的組合給出恒定值。 在圖9中示出的邏輯電路中,在第1層中設置1個選擇器,在 第2層中設置2個選擇器,在第3層中設置4個選擇器,在第4層 中設置8個選擇器,在第5層中設置16個選擇器,在第6層中設 置32個選擇器,在第7層中設置64個選擇器,在第8層中設置128 個選擇器,因此總共設置了 255個選擇器。如圖9所示,向每個選 擇器輸入選擇信號和反相選擇信號。圖IO示出了選擇器的結構實 例。
在圖10所示的實例中,選擇器300包括與門301、與門302 以及或門303。將才艮據(jù)S盒表確定的恒定4直a和反相選擇信號輸入 至與門301。將才艮據(jù)S盒表確定的恒定值b和選擇信號輸入至與門 302。將與門301的輸出和與門302的輸出輸入至或門303。
在選擇器300中,不同于上面參照圖7描述的選擇器270,獨 立地輸入選擇信號和反相選擇信號。即,在圖10所示的選擇器300 中,llr入至與門301和與門302的4個信號彼此獨立。相反,在圖 7所示選擇器270的情況下,由相同的單個選才奪信號產(chǎn)生輸入至與 門271的反相選擇信號和輸入至與門272的選擇信號。
此外,在圖10所示的該選擇器300中,當輸入至選擇器的選 擇信號是"O"時,選擇輸入至選擇器的恒定值"a"并輸出作為輸出信 號c;而當輸入至選擇器的選擇信號是'T,時,選擇輸入至選擇器的 恒定值"b"并輸出作為輸出信號c。
圖11示出了根據(jù)本發(fā)明本實施例的用作基于二元判定圖 (BDD)執(zhí)行非線性變換處理的S盒的邏輯電路結構的具體實例。 在圖11所示的該電i 各中,配置每個選擇器使得輸入至選擇器的 選擇信號和反相選擇信號是是獨立可控的。
如圖11所示,根據(jù)本發(fā)明本實施的用于例執(zhí)行非線性變換處
理的邏輯電路包括連接至第8層中選擇器的各個輸入的與門、連接 至選擇器的各個選擇信號輸入端的與門、以及連接至選擇器的各個 反相選4奪信號輸入端的與門。
經(jīng)由256個與門將256個值輸入至第8層中的選4奪器。如輸入 至圖5所示第8層中的選擇器的,為相應的256個與門的輸入中一 個4是供相同的恒定值。更具體地,由圖4所示表格中的相應256個
$俞出<直(63、 7C、 77..... 54、 BB、 16)的第一至第/^f立中的一個
的組合給出恒定值。
另一方面,由總共具有128位經(jīng)受非線性變換的輸入tt據(jù)的一 個8位段給出輸入至各層中的選擇器的選擇信號,使得將該8位段 的最高有效位(in[7])作為選擇信號經(jīng)由與門輸入至第l層中的選 擇器,將該8位段的第2位(in[6])作為選擇信號經(jīng)由與門輸入至 第2層中的選l奪器,以及在以下的層中,類似地經(jīng)由與門輸入選4奪 信號。最后,將該8位段的最低有效位(in[O])作為選擇信號經(jīng)由 與門輸入至第8層中的選擇器。
如上所述,從通過劃分經(jīng)受非線性變換的的128位數(shù)據(jù)而獲得 的8位段中順序選擇輸入8位數(shù)據(jù)。因此,基于段執(zhí)行非線性變換 處理。
除選擇信號之外,還將反相選擇信號經(jīng)由與門輸入至選擇器。
如上所述,^4居本實施例的邏輯電路包括連接至向其輸入恒定 值的第8層中的選擇器的各個輸入的與門、連接至選擇器的各個選 擇信號輸入端的與門以及連接至選擇器的各個反相選擇信號輸入 端的與門,并輸入數(shù)據(jù),使得經(jīng)由與門將數(shù)據(jù)輸入至第8層中的選 擇器,經(jīng)由與門將選擇信號輸入至各個選擇器,以及經(jīng)由與門將反
相選擇信號輸入至各個選擇器。上述電路結構可使邏輯電路具有預 充電階段和評估階段。通過圖中未示出的控制單元控制階段之間的 切換、輸入至邏輯電路的信息的設定以及輸入至邏輯電路的信息的 切換。
在圖11所示的電路結構中,如圖5所示的電路結構一樣,如 上面參照圖6所描述的,由圖4所示表格中的相應256個輸出值(63、
7C、 77.....54、 BB、 16)的最低有效位的組合給出輸入至第8層
中的選4奪器的恒定值。因此,如圖5所示的邏輯電^各一樣,圖11 所示的邏輯電路輸出作為非線性變換處理結果而獲得的輸出8位數(shù) 據(jù)的最低有效位。
如圖11所示,將預充電信號(prch)l命入至與第8層中的各個 選擇器連4妄的256個與門的每一個的另一輸入端、與各層中的選擇 器的各個選擇信號輸入端連接的8個與門的每一個的另 一輸入端、 以及與各層中的選擇器的各個反相選擇信號輸入端連接的8個與門 的每一個的另一輸入端。當預充電信號(prch)為"O"時,輸入至第 8層中的選擇器的256個值、輸入至各層中選擇器的選擇信號以及 輸入至各層中選擇器的反相選擇信號全部變?yōu)?0"。該狀態(tài)^^稱作預 充電階段狀態(tài)。即,在預充電階段中,所有選擇器輸入都被設為"0"。
當預充電信號(prch)為"l"時,經(jīng)由與門將恒定值輸入至第8 層中的選擇器,并將選擇信號和反相選擇信號輸入至選擇器。注意, 如上所述,由總共具有128位經(jīng)受非線性變換的輸入數(shù)據(jù)的一個8 位段給出輸入至各層中選擇器的選擇信號,并通過反轉選擇信號來 給出反相選擇信號。該狀態(tài)被稱作評估階段狀態(tài)。
在本實施例中,交替執(zhí)行評估階段中的運算和預充電階段中的 運算。在評估階段中,使用設置在8層中的選擇器確定輸出值,而 在預充電階,殳中,所有l(wèi)敘入U^皮i殳為"0"。
30
車#入至各個選擇器的4直以下面參照圖12A和12B描述的方式 改變。圖12A示出了選擇器300的結構,以及圖12B示出了輸入至 選擇器300的信號的變化。在圖12A所示的選擇器300中,將根據(jù) S盒表確定的恒定值"a"和反相選擇信號輸入至與門301,將根據(jù)S 盒表確定的恒定值"b"和選擇信號l敘入至與門302,并將與門301的
車lr出和與門302的i敘出iir入至或門303。
圖12B以表格形式示出了輸入至選擇器300的信號的臨時變 化。在該表格中,時間/人左向右消逝,并隨時間切4奐階萃殳。響應于 階段變化切換輸入至選擇器的信號。如上所述,在^4居本發(fā)明的本 實施例的邏輯電路中,交替執(zhí)行預充電階段中的運算和評估階段中 的運算,使得在預充電階段中將輸入至選擇器的所有信號設定為0, 并將正確的恒定值、選擇信號以及反相選擇信號輸入至選擇器,并 在評估階段中計算輸出位。
圖12B示出了輸入至選擇器的信號(即,恒定值"a"、恒定值"b"、 選擇信號以及反相選擇信號)的臨時變化。將這些信號經(jīng)由一個與
門輸入至選擇器,而向每一個與門的另一輸入端提供預充電信號, 其中,預充電信號在預充電階段中取"0"以及在評估階段中取'T,。
在第一預充電階4殳中,預充電信號祐 沒為"O",因此輸入至選 擇器的所有信號都變?yōu)?O"。在隨后的評估階段中,預充電信號被設 為'T,,使得將正確的恒定值、選擇信號以及反相選擇信號輸入至選 擇器。在評估階段中,以相同的方式運算各層中的其它選擇器,因 此從第1層(頂部)中的選擇器輸出與一組8個選擇信號(8位數(shù) 才居)相只t應的4直。
在評估階段之后,運算階,殳再次纟皮切換至預充電階^殳,輸入至 選擇器的所有值都被設為"O"。在該預充電階段周期中,將選擇信號 和反相選擇信號切換為下一組值(8位婆t據(jù))。在經(jīng)過該預充電階^殳
周期之后,將運算階段切換至評估階段,從第l層(頂部)中的選
擇器輸出新的一組8個選擇信號(8位#:據(jù))。
在上述交替切換評估階段和預充電階段的運算中,在將階段從 輸入至選擇器的所有信號都為"0"的預充電階^殳切4灸至評估階革殳的 轉換周期中,向選擇器輸入新的選擇信號。因此,在轉換周期中輸 入至選擇器的信號變化通常出現(xiàn)為從"O"到真實的輸入值。因此,難 以通過分析與第8層中信號電平的瞬時變化相對應的功耗的變化來 斥企測真實的^t據(jù)值。
更具體地,在信號已經(jīng)進入階段被切換為選擇器輸入均被設為 "O"的預充電階段之后的穩(wěn)定狀態(tài)的時刻,切換對選擇器的選擇信 號。因此,即使在各層的選擇信號之間發(fā)生轉變定時差,選擇器輸 出仍維持為"O",因此在輸出值(out)中沒有發(fā)生變化。因此,由 瞬時變化引起的llT出值的瞬時變化是不可沖全測的。這防止了泄漏秘、
翁^5 'l 。
在本實施例中,在確定對應于給出的一組8個選才奪信號(8位 數(shù)據(jù))的輸出值后,將對選擇器的所有輸入都復位為"O"。在復位所 有豐命入后,輸入新的一組8個選4奪信號。因此,在本實施例中,當 切換選擇信號時,沒有發(fā)生由選擇信號的瞬時變化所《1起的輸出值 的變化。這4吏得可以減少用在基于二元判定圖(BDD)的邏輯電路 中的信號值被分析的可能性,因此實現(xiàn)對DPA攻擊抵抗性的提高。
現(xiàn)在,參考圖13,描述交替出現(xiàn)在評估階段和預充電階段中執(zhí) 行的運算的期間輸入至用作非線性變換單元的S盒(BDD)的信號 的切換。
如上面參照圖11所描述的,在用作非線性變換單元的邏輯電 路中,向實現(xiàn)二元判定圖(BDD)的S盒輸入選擇信號、反相選擇 信號以及恒定值。在評估階4史中,輸入真實值。然而,在預充電階
4史所有值;故切換為"0"。
在圖13所示^皮配置為切換輸入至S盒(BDD)的信號的電^各 中,將經(jīng)受非線性變換處理的數(shù)據(jù)輸入至數(shù)據(jù)寄存器321,并在數(shù) 據(jù)寄存器控制器324的控制下從數(shù)據(jù)寄存器321中順序輸出輸入數(shù) 據(jù)的8位段。在評估階段中,將每個8位段數(shù)據(jù)作為選擇信號和反 相選擇信號輸入至S盒(BDD) 323。注意,由反相器322通過反 轉選擇信號來產(chǎn)生反相選擇信號。
在預充電階段中,預充電控制器325輸出預充電信號("l")。 在評估階段中,響應于預充電信號,將選4奪信號和反相選擇信號輸 入至S盒(BDD) 323中的選擇器。盡管在圖13中沒有示出,但 還將預充電信號('T,)輸入至與S盒(BDD) 323中的最底層中的 選擇器連接的每個與門的一個輸入端,從而在評估階段中,向最底 層中的選擇器輸入恒定值,并從S盒(BDD ) 323輸出真實輸入值 的非線性變換的結果。
在預充電階段中,預充電控制器325將預充電信號("0")輸 出至S盒(BDD) 323,從而選擇信號、反相選擇信號以及輸入至 第8層的值全部變?yōu)?0"。結果,輸入至S盒(BDD) 323中的選擇 器的所有信號都變?yōu)?O",并從S盒(BDD) 323輸出"0"。
向數(shù)據(jù)寄存器控制器324和預充電控制器325輸入時鐘信號。 響應于時鐘信號,預充電控制器325在評估階段中輸出"1",從而將 響應于從數(shù)據(jù)寄存器324輸出的控制信號而從數(shù)據(jù)寄存器321輸出 的數(shù)據(jù)作為真實輸入信號輸入至選擇器并在S盒(BDD) 323中被 處理。結果,輸出表示非線性變換真實結果的值。在預充電階段中, 預充電控制器325輸出預充電信號"0",從而S盒(BDD) 323中的 所有選擇器的輸入都變?yōu)?0",且S盒(BDD) 323的輸出同樣變?yōu)?"0"。與時鐘信號同步,在階段之間的轉變處執(zhí)行信號的切換。
因此,在本實施例中,如上所述,在"i平估階,史中卩奪一組8個選 擇信號(8位數(shù)據(jù))和8個反相選擇信號輸入至S盒323。在評估 階段隨后的預充電階革殳中,將預充電信號"0"/人預充電控制器325 才是供給S盒323, /人而所有選擇器#釙入都#皮復位為"0"。在隨后的評 估階段中,從復位狀態(tài)開始輸入新的選擇信號,并重復執(zhí)行上述處 理。因此,在本實施例中,當切換選擇信號時,沒有發(fā)生由選擇信 號的瞬時變化所引起的輸出值的變化。這使得可以減少用在基于二 元判定圖(BDD)的邏輯電路中的信號值被分析的可能性,因此實 現(xiàn)對DPA攻擊4氐抗性的l是高。
4.根據(jù)本發(fā)明的非線性變換單元的第二實例(具有共用的選擇器)
圖11所示使用二元判定圖(BDD)的邏輯電^各輸出輸出凌t據(jù) 的8位中一位。因此,為了獲得完整的8位輸出凄t據(jù)作為對車命入8 位數(shù)據(jù)的非線性變換的結果,需要提供類似于圖ll所示的、總共8 個4吏用二元判定圖(BDD)的邏輯電^各。
每個都用于輸出一位的、 -使用二元判定圖(BDD)的8個邏輯 電路的組合導致增加了電路復雜性。為了降低總的電路復雜性,可 由更少量的選擇器代替一些選^^器。
參考圖14,描述由單個選擇器代替多個選擇器的方法實例。例 如,如圖14A所示,在多個選擇器351和352具有相同輸入值的情 況下,如圖14B所示,可由單個選擇器代替這些選擇器。由單個選 擇器代替多個選擇器使得降低了使用二元判定圖(BDD)的邏輯電 路總的電路復雜性,因此可以實現(xiàn)成本的降低。電路復雜性的降低 導致功4毛的減少。 5.根據(jù)本發(fā)明的非線性變換單元的第三實例(使用反相輸出選擇器 和反相輸入選4奪器配置)
現(xiàn)在,描述使用反相輸出選擇器和反相輸入選4,器配置的非線 性變4灸單元的第三實例。下面參照圖15描述才艮據(jù)第三實例的邏輯 電路的結構和4喿作。
才艮據(jù)第三實例的4吏用二元判定圖(BDD)的邏輯電路的結構不 同于上面參照圖11描述的根據(jù)第一實例的邏輯電路的結構,其中, 在偶數(shù)層中使用反相輸出選擇器,以及在奇數(shù)層中使用反相輸入選 擇器。因為二元判定圖(BDD)具有8層,所以反相發(fā)生偶數(shù)次。 因此,在所有8層中設置非反相輸入/輸出的結構和才艮據(jù)層來設置反 相輸出選擇器和反相輸入選擇器的的結構之間,在來自邏輯電路的 最終輸出中不存在差。
與圖11所示的電路進行比較,使用反相輸出選擇器和反相輸 入選擇器使得減小了邏輯電路總的尺寸。因此,除尺寸減小之外, 還實現(xiàn)了功耗的降低。
才艮據(jù)本實施例的以上述方式配置的邏輯電3各如下進4于,喿作。
在評估階革史中,如先前的實施例,選4奪器4妄收真實輸入值,對 其確定非線性變換的真實輸出值。更具體地,將經(jīng)受非線性變換的 總數(shù)據(jù)的一段的8位數(shù)據(jù)作為選擇信號和反相選擇信號輸入至選擇 器,并將根據(jù)非線性變換表(S盒表)(例如,圖4或圖6所示的表) 確定的恒定值輸入至第8層中的選擇器。
在預充電階段中,如先前的實施例,所有選4奪器輸入,即,選 擇信號、反相選擇信號以及輸入最底層中的選擇器的值都被設為 "0"。
在所有選擇器輸入都^皮:沒為"o"的預充電階l殳中,切換llr入至
反相輸出選擇器和反相輸入選擇器的的選擇信號(in)。在預充電階 段隨后的評估階段中,輸入將對其確定真實輸出值(作為非線性變 換處理的結果)的恒定值、選擇信號以及反相選擇信號。交替重復 預充電階,殳和評估階革殳。
在根據(jù)本實施例的結構中,如同先前的實施例,在預充電階段 中將選擇器的所有輸入都設為"O",以及在隨后的評估階段中,從復 位狀態(tài)開始輸入新的選沖奪信號。因此,重復4丸行輸入的復位和新選 擇信號的輸入。在信號已經(jīng)進入階段被切換為選擇器輸入被全部設 為"O"的預充電階段之后的穩(wěn)定狀態(tài)的時刻,切換對選擇器的選擇信 號。因此,即使在各層的選擇信號之間發(fā)生轉變定時差,選擇器輸 出仍維持為"O",因此在輸出值(out)中沒有發(fā)生變化。因此,由 瞬時變化引起的輸出值的瞬時變化是不可檢測的。因此,在本實施 例中,當切換選擇信號時,沒有發(fā)生由選擇信號的瞬時變化所引起 的輸出值的變化。這使得可以減少用在基于二元判定圖(BDD)的 邏輯電路中的信號值被分析的可能性,因此實現(xiàn)對DPA攻擊抵抗 性的提高。
6.根據(jù)本發(fā)明的非線性變換單元的第四實例(使用隨機數(shù)作為輸 入)
在下面描述的第四實例中,向非線性變換單元輸入隨枳4t。下 面參照圖16描述4艮據(jù)第四實例的非線性變纟奐單元的結構和纟喿作。
根據(jù)第四實例的使用二元判定圖(BDD)的邏輯電路的結構不 同于上面參照圖11描述的根據(jù)第一實例的邏輯電路的結構,其中, 將經(jīng)由兩個輸入節(jié)點中的一個輸入至確定l是供l會第8層的輸入值的 與門的值^皮i殳定的不同于第 一 實例。
在上述第一實例中,與輸入至圖5所示第8層中的選擇器的恒 定值相同,將相同的恒定值提供給相應256個與門的一個輸入。更 具體地,在第一實例中,由圖4所示表才各中的相應256個輸出值(63、
7C、 77.....54、 BB、 16)的第一至第八位中的一個的組合給出輸
入至第8層中的選擇器的恒定值。在圖11所示的實例中,如上面 參照圖6所描述的,由圖4所示表格中的相應256個輸出值(63、 7C、 77..... 54、 BB、 16)的最低有效位的組合給出恒定值。
即,在上述第一實例中,/人圖4所示表格中的相應256個$#出 4直(63、 7C、 77、…、54、 BB、 16)的第一至第7\>(立中的一個才是取 總共256個值("0"或"1"),并直接將提取的256個恒定值輸入至與 門。相反,在第四實例中,適當組合恒定值、反相恒定值以及隨積i 數(shù),然后將得到的值輸入256個與門。
更具體地,將以下lt據(jù)的組合用作輸入值(al)如同上述第 一實施例,從非線性變換表(S盒表)中描述的對應輸出值的位值 中所提取的恒定值;(a2)通過反轉恒定值(al )而獲得的值;以及 (a3 )隨機數(shù)。
可使用(al )至(a3 )的所有組合,或者可使用(al )至(a3 ) 的4壬意兩個的纟且合。
在本實施例中,存儲表示什么時候以及數(shù)據(jù)(al)至(a3)的 哪一個被使用的管理信息,并根據(jù)管理信息獲得正確輸出值。在輸 入反相恒定值(a2)的情況下,最終輸出變成等于正確輸出值的反 相(當正確輸出值為'T,時,輸出"0";而當正確輸出值為"O"時,輸 出'T,),因此,可以使用反相輸出值作為正確輸出值。
更具體地,例如,在如圖16所示配置用于獲得非線性變換的8 位輸出值的最低有效位的邏輯電路的情況下,輸入圖4所示表格中的才目應256個豐敘出4直(63、 7C、 77..... 54、 BB、 16)的最^f氐有歲文^f立,即,上面參照圖6描述的4立<直1、 0、 1、 1、 0、…、0、 0、 1、 0,或車#入其反相4直,即,0、 1、 0、 0、 1、…、1、 1、 0、 1。當專命 入反相值時,最終輸出值的反相被用作非線性變換的正確結果。
在本實施例中,除恒定值或反相恒定值之外,還可以輸入隨才幾 數(shù)。這使得選擇器輸出中的"0"和"1"的出現(xiàn)隨機化,從而使DPA分 析變得更加困難。
在本實施例中,在評估階革殳中,下列數(shù)據(jù)^皮用作輸入值(al) 如同上述第一實施例,從非線性變換表(S盒表)中描述的對應輸 出值的位值中所提取的恒定值;(a2)通過反轉恒定值(al )而獲得 的值;以及(a3)隨機數(shù)。如上所述,可使用(al)至(a3 )的所 有組合,或者可使用(al)至(a3)的任意兩個的組合。隨機數(shù)對 于所有8個邏輯功能可以相等或可以不相等。
在預充電階段中,所有選擇器輸入,即,選擇信號,反相選擇 信號以及輸入至最底層中選I奪器的值都祐 沒定為"O"。
在本實施例中,在預充電階4殳和評估階l殳之間切換車lr入至選擇 起的選擇信號(in),其中,在預充電階段中,所有選擇器輸入都被 設定為"0",在評估階段中,選擇信號或反相選擇信號被設定為真實 值,并通過以下數(shù)據(jù)中的一個給出輸入至底層中選擇器的值(al) 如同上述第一實施例,從非線性變換表(S盒表)中描述的對應輸 出值的位值中所提取的恒定值;(a2 )通過反轉恒定值(al )而獲得 的值;以及(a3 )隨枳4t。
在上述處理中,存儲表示什么時候以及數(shù)據(jù)(al)至(a3)的 哪一個#皮-使用的管理信息,并^4居管理信息獲得正確輸出值。 此外,在根據(jù)本實施例的實現(xiàn)中,在預充電階段中將選擇器的
所有輸入都i殳定為"o",在隨后的評估階,殳中,/人復位狀態(tài)開始輸入 新的選擇信號。在信號已經(jīng)進入階段被切換為選擇器輸入都被設定
為"o"的預充電階段之后的穩(wěn)定狀態(tài)的時刻,切換對選擇器的選擇信
號。因此,即使在各層的選擇信號中發(fā)生轉變定時差,選擇器輸出
仍維持為"0",因此在輸出值(out)中沒有變化發(fā)生。因此,由瞬 時變化引起的輸出值的瞬時變化是不可檢測的。因此,在本實施例 中,當切換選擇信號時,沒有發(fā)生由選擇信號中的瞬時變化所引起 的輸出值的變化。這使得可以減小用在基于二元判定圖(BDD)的 邏輯電路中的信號值被分析的可能性,因此實現(xiàn)對DPA攻擊抵抗 性的提高。
7.根據(jù)本發(fā)明的非線性變換單元的第五實例(包括或門)
在先前的實例中,當切換輸入至各層的選擇信號時,預充電信 號(prch)被設定為"0",從而所有選擇器輸入都被設定為"O"???選地,當切換輸入至各層的選擇信號時,所有選擇器輸入可被設定 為'T,而不是"0"。這同樣4吏得DPA分析變得更加困難。
圖17示出了根據(jù)本實施例的使用二元判定圖(BDD)的邏輯 電路的結構。在根據(jù)本實施例的邏輯電路中,如圖17所示,在底 層中的選4奪器之前的位置處"i殳置或門,使得經(jīng)由或門將恒定值輸入 至這些選擇器,在選^奪信號輸入端之前的位置處i殳置或門,使得經(jīng) 由或門將選擇信號輸入至選擇器,以及在反相選擇信號輸入端之前 的位置處設置或門,使得經(jīng)由或門將反相選擇信號輸入至選擇器, 從而每個或門的一個輸入都被用作用于接收預充電信號的輸入端。
在本實例中,與先前的實例相反,使用具有電平"l"的預充電 信號。當輸入預充電信號時,將所有選擇器輸入都切換為"l"。在評 估階段中,向選擇器輸入真實恒定值、選擇信號以及反相選擇信號。
如上所述,在本實施例中,不同于先前的實施例,輸入至選擇器的 所有信號在復位狀態(tài)中都為"l"。
在該結構中,在信號已經(jīng)進入階段被切換為選擇器輸入都被設 定為"1"的預充電階段之后的穩(wěn)定狀態(tài)的時刻,切換對選擇器的選擇
信號(in)。因此,即使在各層的選擇信號中發(fā)生轉換定時差,選擇 器輸出仍維持為"l",因此在輸出值(out)中沒有變化發(fā)生。因此,
秘密信息。
當切換各層的選擇信號時,輸出可被隨機設定為"0"或'T,。這 可以通過控制從其將輸出信號提供給第8層的與門來實現(xiàn),使得從 以下三種值的組合中選擇從與門輸出的信號所有1的組合、所有 0的組合、以及恒定值或隨機值的組合。
在預充電階段中,通過切換適于隨機選擇所有0或所有1使得 向第8層輸入選擇的所有0或1的切換,進行從與門輸出的值的選 擇。
此外,在該結構中,在信號已經(jīng)進入階段被切換為選擇器輸入 被全部設定為"0"或"1"的預充電階段之后的穩(wěn)定狀態(tài)的時刻,切換 對選擇器的選擇信號(in)。因此,即使在各層的選擇信號中發(fā)生轉 變定時差,選擇器輸出仍維持為"0"或"1",因此在輸出值(out)中 沒有發(fā)生變化。因此,由瞬時變化引起的輸出值的瞬時變化是不可 沖企測的。這防止了泄漏秘、密信息。
可直接采樣上述實例中的一個或者可結合多個實例的技術。
在上述實例中,將本發(fā)明應用于通用密匙加密處理中的非線性 變換處理。然而,本發(fā)明不僅可應用于使用AES或DES算法的通 用密匙加密處理,而且還可應用于諸如基于RSA算法等的7>共密 匙加密處理和"^者如SHA-1的p合希函^i:的計算等的多種非線性或線 性數(shù)據(jù)變換處理。
8.加密處理裝置的實例
最后,下面參照圖18描述用作適于產(chǎn)生密文或石皮i斧密文的加 密處理裝置的IC才莫塊500。可在諸如個人計算才幾、IC卡、讀取器/ 寫入器等的各種信息處理裝置上執(zhí)行根據(jù)上述任意一個實例的處 理,并且可在這種裝置中4吏用圖18所示的IC才莫塊500。
在圖18所示的IC模塊500中,CPU (中央處理單元)501是 用作控制單元的處理器,其控制加密處理的開始/結束、數(shù)據(jù)的傳送 /接收、各部分間的數(shù)據(jù)傳送等,并執(zhí)行各種處理。存儲器502是用 于存儲由CPU 501執(zhí)行的程序以及運算中使用的固定數(shù)據(jù)的ROM (只讀存儲器),或者是用作用于存儲由CPU 501執(zhí)行的程序以及 改變運算中出現(xiàn)的參數(shù)的存儲區(qū)域或用作CPU 501的工作區(qū)域的 RAM (隨才幾存取存儲器)。存儲器502還可^皮用作用于存儲諸如在 加密處理中使用的密鑰(K)等的密匙數(shù)據(jù)的存儲區(qū)域。期望以對 篡改具有高抵抗性的形式實現(xiàn)數(shù)據(jù)存儲區(qū)域。
加密處理單元503包括非線性變換電if各,其包括如上述一個實 例的使用根據(jù)二元判定圖(BDD)以分層結構形式設置的選擇器而 配置的邏輯電路,并且在預充電階段和評估階段中交替運算。
由用作控制單元的CPU 501根據(jù)預安裝的程序控制兩個階段 間的切換、控制來自門電路的輸出、輸入至選擇器的選擇信號的切 換、輸出的選擇等,使得由邏輯電路提供正確輸出。例如,CPU 501 讀取預先存儲在ROM中的加密程序,并執(zhí)行加密程序以控制加密 處理單元503中的4吏用二元判定圖(BDD)的邏輯電路的運算。
隨枳4t生成器504生成用于生成用在加密處理中的密匙的隨枳j 數(shù)。隨機數(shù)生成器504還生成用在裝置間的認證中或用在其它加密 處理中的隨機數(shù)。隨機數(shù)生成器504可通過使用LFSER (線性反饋 移位寄存器)的隨機數(shù)生成器或偽隨機數(shù)生成器實現(xiàn)。
傳送/接收單元505是lt據(jù)通信單元,適于#丸行與諸如讀取器/ 寫入器的外部裝置或另一 IC才莫塊的數(shù)據(jù)通信相關的處理,以輸出 在IC模塊中生成的加密數(shù)據(jù)或從諸如讀取器/寫入器的外部裝置接 收數(shù)據(jù)。
已經(jīng)在上面參照特定實施例通過實例且沒有限制地描述了本 發(fā)明。本領域的4支術人員應該明白,在不背離本發(fā)明的精神或范圍 的條件下,可以進4亍各種4奮改和替換。即,已經(jīng)在上面通過實例且 沒有限制地描述了本實施例。完全由4又利要求確定本發(fā)明的范圍。
可以通過硬件、軟件、或硬件和軟件的結合來執(zhí)行在本說明書 中7^開的任意處理。在通過軟件4丸行處理的情況下,可將處理程序 安裝在嵌入硬件的專用計算機中設置的存儲器中,并且可通過計算 機執(zhí)行程序,或者程序可被安裝在能夠執(zhí)行各種處理的通用計算機 上并可在通用計算4幾上^皮沖丸4亍。
在本說明書中公開的處理可以以與程序中的描述的相同順序 時序地4丸行,或者4艮據(jù)計算4幾的處理能力并行或單獨扭"行。在本i兌 明書中,術語"系統(tǒng)"用于描述多個裝置的邏輯集成,并且不需要多 個裝置設置在單個外殼中。
本領域的技術人員應該理解,根據(jù)設計要求和其它因素,可以 有多種修改、組合、再組合和改進,均應包含在本發(fā)明的權利要求 或等同物的范圍之內(nèi)。
權利要求
1.一種運算處理裝置,用于對輸入位執(zhí)行數(shù)據(jù)變換,包括邏輯電路,包括被輸入其中的選擇信號控制的多個選擇器,所述選擇信號由所述輸入位給出,所述選擇器以分層結構配置,使得將恒定值輸入至位于底層中的多個選擇器,對于每一層根據(jù)選擇信號選擇所述恒定值并將其傳送至更高層中的選擇器,以及,一恒定值最終被最高層中的一選擇器選擇并從所述最高層中的該選擇器中輸出;以及控制單元,用于控制使用所述邏輯電路的所述數(shù)據(jù)變換處理,所述控制單元控制所述數(shù)據(jù)變換處理,使得交替執(zhí)行預充電階段和評估階段,在所述預充電階段中,所述邏輯電路中的選擇器的所有輸入值都被設定為相等,在所述評估階段中,產(chǎn)生對應于所述輸入位的輸出位,由所述輸入位所給出的所述選擇信號在所述預充電階段中被切換。
2. 根據(jù)權利要求1所述的運算處理裝置,其中,所述邏輯電路中的每個所述選擇器都包括第一與門,向其輸入一個所述恒定值和所述選擇信第二與門,向其輸入一個所述恒定值和所述選擇信號 的反相選擇信號,以及或門,向其輸入所述第一與門的輸出和所述第二與門的輸出,以及在所述預充電階段中,所述控制單元將對所述第一與門 和所述第二與門的輸入設定為相等值。
3. 根據(jù)權利要求1所述的運算處理裝置,其中,述選擇信號的輸入節(jié)點和經(jīng)由其接收所述選擇信號的反相選 擇信號的輸入節(jié)點,所述邏輯電路還包括設置在各個選擇信號輸入節(jié)點的前級處的邏輯運算 元件,以及設置在所述反相選擇信號輸入節(jié)點的前級處的邏輯 運算元件,以及設置在位于底層且向其輸入所述恒定值的各個選擇 器的前級處的邏輯運算元件,每個邏輯運算元件都用于接收預充電信號,以及所述控制單元切換輸入至所述邏輯運算元件的所述預充
4.根據(jù)權利要求3所述的運算處理裝置,其中,每個邏輯運算元件都是與門,將所述預充電信號輸入至 其一個輸入,以及所述控制單元切換輸入至每個與門的一個l敘入的所述預換。
5. 根據(jù)權利要求3所述的運算處理裝置,其中,每個邏輯運算元件都是或門,將所述預充電信號輸入至 其一個l俞入,以及所述控制單元切換輸入至每個或門的一個輸入的所述預換。
6. 才艮據(jù)權利要求1所述的運算處理裝置,其中,在所述邏輯電路 中的選擇器中,用單個公共選擇器代替被提供相等輸入值的多 個選擇器。
7. 根據(jù)權利要求1所述的運算處理裝置,其中,所述邏輯電路中 的選擇器包括具有反相輸出的選擇器和具有反相輸入的選擇器。
8. 根據(jù)權利要求1所述的運算處理裝置,其中,所述控制單元控 制所述數(shù)據(jù)變換處理,使得在所述預充電階段中,向設置在所 述底層中的每個選擇器輸入所述恒定值,而在所述評估階段 中,向所述底層中的選擇器輸入恒定值或隨機值。
9. 根據(jù)權利要求1所述的運算處理裝置,其中,所述控制單元控 制門電路的輸出,使得在所述預充電階段中將對所述底層中的 選擇器的輸入隨機設定為"O"或"1"。
10. 根據(jù)權利要求1所述的運算處理裝置,其中,配置所述邏輯電;咯以實現(xiàn)二元判定圖(BDD)。
11. 根據(jù)權利要求1所述的運算處理裝置,其中,所述邏輯電路用 于對所述數(shù)據(jù)變換處理的非線性變換處 理。
12. —種運算處理控制方法,用于在運算處理裝置中控制對輸入位 的數(shù)據(jù)變換處理,所述運算處理裝置包括邏輯電路,包括被輸入其中的選擇信號控制的多個選擇 器,所述選擇信號由所述輸入位給出,所述選擇器以分層結構 配置,使得將恒定值輸入至位于底層中的多個選擇器,對于每 一層根據(jù)選擇信號選擇所述恒定值并將其傳送至更高層中的 選擇器,以及, 一恒定值最終凈皮最高層中的一選擇器選擇并從 所述最高層中的該選擇器中輸出,所述方法包括通過控制單元控制使用所述邏輯電路的所 述數(shù)據(jù)變換處理,使得交替執(zhí)行預充電階段和評估階段,在所 述預充電階段中,將對所述邏輯電路中的選擇器的所有輸入值 i殳定為相等,在所述評估階段中,產(chǎn)生對應于所述輸入位的輸 出位,由所述輸入位癥合出的所述選擇信號在所述預充電階,爻中 被切換。
13. 根據(jù)權利要求12所述的運算處理控制方法,其中,所述邏輯電路中的每個所述選擇器都包括第一與門,向其輸入一個所述恒定值和所述選才奪信號,第二與門,向其輸入一個所述恒定值和所述選擇信號 的反相選擇信號,以及或門,向其輸入所述第一與門的輸出和所述第二與門 的輸出,以及在所述預充電階段中,所述控制單元將對所述第一與門 和所述第二與門的輸入設定為相等值。
14. 根據(jù)權利要求12所述的運算處理控制方法,其中,述選捧信號的輸入節(jié)點和經(jīng)由其接收所述選擇信號的反相選擇信號的所述輸入節(jié)點,以及所述邏輯電路還包括設置在各個選擇信號輸入節(jié)點的前級處的邏輯運算元件,以及設置在所述反相選擇信號輸入節(jié)點的前級處的邏輯運算元件,以及設置在位于底層且向其輸入所述恒定值的各個選擇器的前級處的邏輯運算元件,每個邏輯運算元件都用于接收預充電信號,以及所述控制單元切換輸入至所述邏輯運算元件的所述預充電信號,以在所述預充電階段和所述評估階段之間進行切換。
15. 根據(jù)權利要求14所述的運算處理控制方法,其中,每個邏輯運算元件都是與門,將所述預充電信號輸入至其一個輸入,以及所述控制單元切換輸入至每個與門的一個輸入的所述預充電信號,以在所述預充電階段和所述評估階段之間進行切換。
16. 根據(jù)權利要求14所述的運算處理控制方法,其中,每個邏輯運算元件都是或門,將所述預充電信號輸入至其一個輸入,以及所述控制單元切換輸入至每個或門的一個輸入的所述預 充電信號,以在所述預充電階,殳和所述評估階段之間進行切 換。
17. 根據(jù)權利要求12所述的運算處理控制方法,其中,所述控制 單元控制所述數(shù)據(jù)變換處理,^吏得在所述預充電階,殳中,向i殳 置在所述底層中的每個選擇器輸入所述恒定值,而在所述評估 階段中,向所述底層中的選擇器輸入恒定值或隨機值。
18. 根據(jù)權利要求12所述的運算處理控制方法,其中,所述控制 單元控制門電路的輸出,使得在所述預充電階段中將對所述底 層中的選擇器的輸入隨機設定為"O"或"1"。
19. 一種計算機程序,可由運算處理裝置才丸行以對輸入位4丸^f亍^t 據(jù)變換處理,所述運算處理裝置包括邏輯電^各,包括一皮輸 入其中的選擇信號所控制的多個選擇器,所述選擇信號由所 述輸入位給出,所述選擇器被配置成分層結構,使得將恒定 值輸入至位于底層中的多個選擇器,對于每一層根據(jù)選擇信 號選4奪所述恒定值并將其傳送至更高層中的選擇器,以及, 一恒定值最終被最高層中的一選擇器選擇并從所述最高層中 的該選擇器中輸出所述計算機程序控制所述數(shù)據(jù)變換處理,使得交替執(zhí)行 予貞充電階,殳和"i平估階,殳,在所述預充電階^殳中,所有l(wèi)lr入所述 邏輯電路中的所述選擇器的值被設定為相等,將對所述邏輯電 路中的選擇器的所有輸入值設定為相等,在所述評估階段中, 產(chǎn)生對應于所述輸入位的輸出位,由所述輸入位給出的所述選 擇信號在所述預充電階段中被切換。
全文摘要
本發(fā)明公開了運算處理裝置、運算處理控制方法及計算機程序,其中,適于對輸入位執(zhí)行數(shù)據(jù)變換的運算處理裝置具有適于對輸入位執(zhí)行數(shù)據(jù)變換的邏輯電路。邏輯電路包括被配置分層結構中并被對應于輸入位的選擇信號所控制的選擇器。選擇輸入至位于分層結構的底層中的選擇器的恒定值,并將其從一層向另一層朝向頂層傳送。最終從頂層選擇并輸出恒定值。由控制單元控制數(shù)據(jù)變換處理,使得交替執(zhí)行預充電階段和評估階段。在預充電階段中,將對選擇器的所有輸入值都設定為相等。在評估階段中,產(chǎn)生給定輸入位的輸出位。在預充電階段中切換選擇信號。本發(fā)明的邏輯運算裝置對于DPA(差分功耗分析)等具有高抵抗性。
文檔編號G09C1/00GK101206816SQ20071030215
公開日2008年6月25日 申請日期2007年12月14日 優(yōu)先權日2006年12月15日
發(fā)明者宮戶良和, 秋下徹 申請人:索尼株式會社