專利名稱:加密裝置、解密裝置、加密方法及集成電路的制作方法
技術領域:
本發明涉及一種加密裝置、解密裝置、加密方法及集成電路,它們能 夠防止被通過對執行加密處理時的電力消耗量進行測量來對加密模塊中 所嵌入的密鑰進行分析的攻擊方法所破解。
背景技術:
近年來,設計有各種以硬件或軟件中所安裝的加密模塊進行加密處理 時所使用的副信息為線索來分析密鑰的破解法。例如,在被稱為時序攻擊 的分析方法中,利用加密模塊在加密處理中需要的時間和用在加密處理中 的密鑰的值的細微的差異來進行密鑰的分析。即,在時序攻擊中,利用進 行加密處理時的稱作處理時間的副信息,進行密鑰的破解。在那樣的破解 法中,作為以進行加密處理時的電力消耗量為副信息來進行破解的破解方
法,設計有簡單能量分析攻擊(Simple Power Analysis)或差分能量分析攻 擊(Differential Power Analysis)等各種方法。近年來,在能夠便宜購入高 性能的測量機器的背景下,有報告稱這些破解法也能夠對IC卡這樣的施 加加密的實際產品進行分析。此外,設計有在以進行加密處理時從加密模 塊產生的電磁波強度為副信息來進行破解的方法等各種破解方法。在下面 的記述中,把以加密處理時的加密模塊的電力消耗量為線索分析密鑰的破 解方法總稱為"電力分析攻擊"。下面,以電力分析攻擊為例進行說明, 但本發明對利用副信息的其他分析方法也同樣有效。即,本發明不僅適用 于電力分析攻擊,只要是利用在加密處理中從加密模塊產生的副信息來推 定密鑰的分析方法就均可以適用。
電力分析攻擊利用加密模塊的電力消耗量和加密處理過程中的中間 值之間的關系來進行密鑰的分析。因此,作為針對電力分析攻擊的對策, 考慮到利用隨機數對加密處理過程中的中間值進行隨機化,從而使得電力 消耗量和中間值之間的相關關系難以理解的方法,所述隨機數是在加密模塊內部所生成的。這樣,將對加密處理的中間值進行隨機化的過程稱為將 中間值進行"屏蔽"。此外,把通過屏蔽中間值來使得電力分析攻擊的密 鑰分析變困難的方法總稱為"屏蔽法"。
在專利文獻1中記載的屏蔽法中,公開有針對美國標準密碼術DES
(Data Encryption Standard,即數據加密標準)加密的屏蔽法(稱為現有技 術l)。
(現有技術1的概要)
根據現有技術l的方法,在加密處理之前,首先根據加密模塊內部生 成的隨機數,將在DES加密中使用的數據變換用表Sbox進行隨機化,來 制作隨機化Sbox表,并暫時保管。在加密處理中,使用該隨機化Sbox表, 對加密處理的中間值進行屏蔽,以使得電力分析攻擊就變得困難。這里, 在現有技術l中,需要用于暫時儲存隨機化Sbox表的RAM。因此,在對 RAM容量有嚴格限制的情況下,就出現了不能使用現有技術1的問題。 此外,在硬件中安裝加密模塊的情況下, 一般來說在邏輯電路中安裝Sbox 表的情況較多。因此,由于不能制作隨機化Sbox表,就出現了不能使用 現有技術1的問題。
(現有技術2的概要)
在非專利文獻1所記載的屏蔽法中,公開有針對美國下一代標準密碼 術AES (Advanced Encryption Standard)加密的屏蔽法(稱為現有技術2)。 在現有技術2中,能夠在邏輯電路中安裝Sbox表,并且,如現有技術1 所示,由于沒有必要制作隨機化Sbox表,因此適用于硬件安裝。下面, 對其概要進行說明。
已知AES加密的Sbox表與進行擴張域GF(2^)上的逆元計算("XAY" 表示"X的Y次方")和規定的進行仿射變換的處理等價。此外,作為用 電路實現擴張域GF (2A8)上的元素X的逆元計算的方法,有下面的既有 方法。
(1) 將X變換為和GF (2A8)同型的合成域GF ( ( (2A2) 、) A2) 上的元素A。
(2) 在上述合成域上計算A的逆元AA ( — l)。
(3) 將A八(一l)逆變換為擴張域上的元素,求得XA ( — l)。 在該方法中,通過在合成域上進行逆元計算,能夠以較小的電路規模安裝逆元計算。
如果將AES加密的Sbox表通過上述的逆元計算和仿射變換來安裝并
適用屏蔽法,則能夠以小的電路規模提高對電力分析攻擊的耐性。此時,
怎樣對逆元計算部分實施屏蔽成為關鍵。下面,對現有技術2中的逆元計
算部分的屏蔽方法進行簡單的說明。
圖1~圖7是表示現有技術2中的加密裝置中設置的隨機化8位逆元計 算部81的圖。
<隨機化8位逆元計算部81>
圖1是表示現有技術2中的隨機化8位逆元計算部81的結構的框圖。 隨機化8位逆元計算部81以被屏蔽的逆元計算對象數據X (8位)、屏蔽 數據R (8位)及計算用隨機數r (4位)作為輸入,進行逆元計算,輸出 被屏蔽的逆元計算結果Y (8位)。這里,X是用屏蔽數據R進行了屏蔽 的狀態的數據,表示為X=M ( + ) R。這里,M (8位)是被屏蔽前的數據, "(+ )"是表示對每個位的按位加運算。此時,Y成為Y={MA (_1) } (+ ) R。 S卩,隨機化8位逆元計算部81進行如下處理以用R進行了屏 蔽的M為輸入,計算逆元,將其結果MA ( —1)在用R屏蔽了的狀態下 進行輸出。即,對于作為加密處理的中間值即M,由于在利用隨機的屏蔽 數據R進行了屏蔽的狀態下進行逆元計算,從而使得電力分析攻擊變得困 難。
如圖1所示,隨機化8位逆元計算部81包括進行合成域GF( ((2、) A2) A2)上的17次方計算的17次方計算部810、 812; 4位校正項計算部 811 (圖2) ; 4位輸出計算部816、 817 (圖3);進行4位的按位加運算 的按位加部813、 814、 818、 819;隨機化4位逆元計算部815 (圖4)。
這里,如圖2所示,4位校正項計算部811包括進行在合成域GF ((2A2) A2)上的乘法運算的4位乘法部811a、 811b;以及進行4位的按 位加運算的按位加部811c、 811d。另外,對合成域GF ( (2A2) A2)進行 2次擴張的結果為合成域GF ( ( (2A2) A2) A2)。
此外,如圖3所示,4位輸出計算部816、 817包括進行在合成域 GF ( (2A2) A2)上的乘法運算的4位乘法部816a、 816b、 816c、 816d; 以及進行4位的按位加運算的按位加部816e、 816f、 816g、 816h、 816i、 816j。
8此外,如圖4所示,隨機化4位逆元計算部815 (圖4)包括進行 在合成域GF ( (2A2) A2)上的5次方計算的5次方計算部820、 822; 2 位校正項計算部821 (圖5) ; 2位輸出計算部826、 827 (圖6);進行2 位按位加運算的按位加部823、 824、 828、 829;以及隨機化2位逆元計算 部825 (圖7)。
這里,如圖5所示,2位校正項計算部821 (圖4、圖5)包括進行 有限域GF (2A2)上的乘法運算的2位乘法部821a、 821b;以及進行2位 的按位加運算的按位加部821c、 821d。另外,對有限域GF (2A2)進行2 次擴張的結果為合成域GF ( (2l) A2)。
此外,如圖6所示,2位輸出計算部826、 827 (圖6、圖4)包括 進行在有限域GF (2A2)上的乘法運算的2位乘法部826a、 826b、 826c、 826d;以及進行2位的按位加運算的按位加部826e、 826f、 826g、 826h、 826i、 826j。
此外,如圖7所示,隨機化2位逆元計算部825 (圖7、圖4)包括進 行1位的按位加運算的按位加部825a、 825b。
如上所述,現有技術2中的設置在加密裝置中的隨機化8位逆元計算 部81 (圖1)包括在內部遞歸性地執行隨機化4位逆元計算部815和隨機 化2位逆元計算部825,通過該結構,和其他現有技術相比,能夠以較小 .的電路規模來安裝。
在現有技術2中,公開有一種適于硬件安裝的加密裝置,該加密裝置 通過設置上述的隨機化8位逆元計算部81 (圖l),并利用逆元計算和仿 射變換安裝AES加密的Sbox表。
非專利文獻1:森岡澄夫、秋下徹、「合成域^r用v、/iAES S — B
o x回路〖対t3DPa攻撃」、〕/匕。工一夕-fe年二!Jx,、:/y求-々
厶2 0 0 4予稿集(平成l 6年1 0月)
非專禾lj文南犬2: Federal Information Processing Standards Publication
November 26 2001
專利文獻l:美國專利第6295606號說明書
但是,在現有技術2中,如前所述,由于隨機化8位逆元計算部81 (圖1)具有遞歸的結構,所以具有最大邏輯級數變大的問題。在把現有技術2的隨機化8位逆元計算部81用電路實現時,若預估關鍵路徑和其
最大邏輯級數,則如下。
隨機化8位逆元計算部81 (圖1 圖7)的關鍵路徑如下。 首先,在圖1中,關鍵路徑如下。
17次方計算部810=〉按位加部813=〉按位加部814=〉隨機化4位逆 元計算部815 (圖4) =〉 4位輸出計算部817 (圖3)=〉按位加部818=〉 按位加部819
這里,在該路徑中的4位輸出計算部817 (圖3)和隨機化4位逆元
計算部815 (圖4)的內部的關鍵路徑如下。
首先,4位輸出計算部817 (圖3)的內部的關鍵路徑如下。
4位乘法部816a=〉按位加部816e=〉按位加部816f=〉按位加部816i=〉
按位加部816j
此外,隨機化4位逆元計算部815 (圖4)的內部的關鍵路徑如下。 5次方計算部820=〉按位加部823=〉按位加部824=〉隨機化2位逆
元計算部825 (圖7) =〉 2位輸出計算部827 (圖6)=〉按位加部828=〉
按位加部829
此路徑中具有2位輸出計算部827 (圖6)和隨機化2位逆元計算部
825 (圖7)。它們內部的關鍵路徑分別如下。
首先,2位輸出計算部827 (圖6)的內部的關鍵路徑如下。
2位乘法部826a=〉按位加部826e=〉按位加部826f=〉按位加部826i=〉
按位加部826j
然后,隨機化2位逆元計算部825 (圖7)的內部的關鍵路徑如下。 按位加部825a=〉按位加部825b
通過以上處理,隨機化8位逆元計算部81 (圖l)的最大邏輯級數成 為連續處理下面的處理時的邏輯級數。 17次方計算X1次 5次方計算X1次 4位乘法X1次 2位乘法X1次 按位加運算X18次
另外,這里,"按位加運算X18次"中的18是由18=4+4+4+4+2的計算得來的。
如上所述,現有技術2有最大邏輯級數變大的問題。
發明內容
本發明為解決上述現有技術2的加密處理中的問題,使用Sbox表的 安裝法,提供一種比現有技術2還能夠削減最大邏輯級數的加密裝置,該 Sbox表使用和現有技術2同樣的合成域GF ( ( (2A2) A2)、)上的逆元 運算。
為解決上述問題,本發明采用下面的結構。
艮口,采用如下的加密裝置,其使用密鑰,根據明文生成密文,并具備 第1隨機化逆元數據生成部,該第1隨機化逆元數據生成部接收隨機化輸 入數據和輸入屏蔽值,將接收到的上述輸入屏蔽值的在預定的第1有限域 中的逆元即輸出屏蔽值和該輸入數據的在上述第1有限域中的逆元相加, 生成隨機化輸出數據,所述隨機化輸入數據是將根據隨機數決定的預定的 上述輸入屏蔽值和利用上述密鑰進行了預定的處理的輸入數據相加得到 的數據;該加密裝置根據所生成的上述隨機化輸出數據,生成上述密文。
根據該加密裝置,輸出屏蔽值是輸入屏蔽值的逆元,能夠實現級數較 少的簡單結構的加密裝置。
根據本發明,能夠實現級數較少的簡單結構的加密裝置。
圖1是表示現有技術中的隨機化8位逆元計算部81的結構的框圖。 圖2是表示現有技術中的4位校正項計算部811的結構的框圖。 圖3是表示現有技術中的4位輸出計算部816、 817的結構的框圖。 圖4是表示現有技術中的隨機化4位逆元計算部815的結構的框圖。 圖5是表示現有技術中的隨機化2位校正項計算部821的結構的框圖。 圖6是表示現有技術中的2位輸出計算部826、 827的結構的框圖。 圖7是表示現有技術中的隨機化2位逆元計算部825的結構的框圖。 圖8是表示本發明的實施方式的加密裝置1的結構的框圖。 圖9是表示本發明的實施方式的加密部la的結構的框圖。 圖10是表示本發明的實施方式的隨機化Roimd_n12的結構的框圖。圖11是表示本發明的實施方式的隨機化Round—10 13的結構的框圖。 圖12是表示本發明的實施方式的隨機化SubBytes120、 130的結構的 框圖。
圖13是表示本發明的實施方式的隨機化S—boxl20a 120p的結構的 框圖。
圖14是表示本發明的實施方式的隨機化8位逆元計算部101的結構 的框圖。
圖15是表示本發明的實施方式的17次方計算部110、 112的結構的 框圖。
圖16是表示本發明的實施方式的4位校正項計算部111的結構的框圖。
圖17是表示本發明的實施方式的16次方計算部115、 117的結構的 框圖。
圖18是表示本發明的實施方式的4位輸出計算部118、 119的結構的 框圖。
圖19是表示本發明的實施方式的4位乘法部20的結構的框圖。 圖20是表示本發明的實施方式的2位乘法部21的結構的框圖。 圖21是表示本發明的實施方式的4位逆元計算部116的結構的框圖。 圖22是表示本發明的實施方式的2位逆元計算部142的結構的框圖。 圖23是表示本發明的實施方式的隨機化4位逆元計算部114的結構 的框圖。
圖24是表示本發明的實施方式的5次方計算部141、 150、 152的結 構的框圖。
圖25是表示本發明的實施方式的2位校正項計算部151的結構的框圖。
圖26是表示本發明的實施方式的4次方計算部155、 157的結構的框圖。
圖27是表示本發明實施方式的2位輸出計算部158、 159的結構的框圖。
圖28是表示本發明的實施方式的隨機化2位逆元計算部154的結構 的框圖。圖29是表示本發明的實施方式的隨機數更新部17的結構的框圖。
圖30是表示本發明的實施方式的8位逆元計算部171的結構的框圖。
圖31是表示本發明的實施方式的解密裝置3的結構的框圖。
圖32是表示本發明的實施方式的解密部3a的結構的框圖。
圖33是表示本發明的實施方式的隨機化InvRound_n 32的結構的框圖。
圖34是表示本發明的實施方式的隨機化InvRoundJ) 33的結構的框圖。
圖35是表示本發明的實施方式的隨機化Im/SubBytes331的結構的框圖。
圖36是表示本發明的實施方式的隨機化InvS—Box331a 331p的結構 的框圖。
圖37是表示本發明的實施方式的隨機數更新部37的結構的框圖。 圖38是表示加密裝置1、加密裝置1具有的部分之間的包含關系、及 其整體和部分之間的輸入輸出數據的圖。 附圖標記 1 加密裝置 la 加密部 lb, 3b 輪密鑰生成部 lc, 3c 密鑰保管部 10, 30 屏蔽處理部
11, 123, 132, 31, 322, 322 AddRoundKey 12X 隨機化Round—t
12 隨機化Round—n
13 隨機化Round—10 14, 34 中斷屏蔽處理部 15, 35 隨機數生成部
16, 36 隨機數暫時存儲部
17, 37 隨機數更新部
100, 103, 170, 303 合成域變換部
101 隨機化8位逆元計算部102, 172 擴張域變換兼矩陣變換部
104, 110a, 110e, lllc, 113, 115a, 118c, 118e, 140, 142a, 150a, 150e, 151c, 153, 154c, 155a, 158c, 158e, 171a, 204, 205, 207, 214, 215, 216 按位加部
110X, 110, 112, 171b 17次方計算部
20, 110b, 110c, 110d, llla, 111b, 118a, 118b, 118d, 171d, 171e 4位乘法部
111 4位校正項計算部
114 隨機化4位逆元計算部
115X, 115, 117 16次方計算部
116, 171c 4位逆元計算部
118X, 118, 119 4位輸出計算部
120X, 120, 130 隨機化SubBytes
121X, 120a, 120b, 120c, 120p 隨機化S — Box
121, 131 ShiftRows
122 MixColumns
141X, 141, 150, 152 5次方計算部 142, 156 2位逆元計算部
21, 143, 144, 150b, 150c, 150d, 151a, 151b, 158a, 158b, 158d, 200, 201, 202, 203, 2062位乘法部 151 2位校正項計算部 154 隨機化2位逆元計算部 155X, 155, 157 4次方計算部 158X, 158, 159 2位輸出計算部 171 8位逆元計算部 210, 211, 212, 213 邏輯積部 3 解密裝置 3a 解密部
32 隨機化InvRound—n
33 隨機化InvRound—0
300, 370 合成域變換兼矩陣變換部301 8位隨機化合成域逆元計算部
302, 372 擴張域變換部
320, 330 InvShiftRows
321, 331 隨機化InvSubBytes
323 InvMixColumns
331a, 331b, 331c, 331p 隨機化InvS —Box
371 8位合成域逆元計算部 81 隨機化8位逆元計算部 810, 812 17次方計算部 811 4位校正項計算部 815 隨機化4位逆元計算部 816, 817 4位輸出計算部
8Ua, 811b, 816a, 816b, 816c, 816d 4位乘^去部
820, 822 5次方計算部
821 2位校正項計算部
825 隨機化2位逆元計算部
826, 827 2位輸出計算部
821a, 821b, 826a, 826b, 826c, 826d2位乘法部
811c, 811d, 813, 814, 816e, 816f, 816g, 816h, 816i, 816j, 818,
819, 821c, 821d, 823, 824, 825a, 825b, 826e, 826f, 826g, 826h, 826i,
826j, 828, 829 按位加部
具體實施例方式
技術方案l中所記載的方式(本發明的一個實施方式)的加密裝置是
使用密鑰從明文生成密文,具備隨機數生成部,生成隨機數;隨機化輸
入數據生成部,接收上述明文,將根據上述隨機數決定的預定的輸入屏蔽 值和對上述明文利用上述密鑰進行了預定的處理的輸入數據相加,生成隨
機化輸入數據;第1隨機化逆元數據生成部,接收由上述隨機化輸入數據 生成部生成的上述隨機化輸入數據和上述輸入屏蔽值,將接收的上述輸入 屏蔽值的在預定的第1有限域中的逆元即輸出屏蔽值和該輸入數據的在上 述第1有限域中的逆元相加,生成隨機化輸出數據;以及輸出數據處理部,
15接收由上述第1隨機化逆元數據生成部生成的上述隨機化輸出數據,根據 接收到的該隨機化輸出數據生成上述密文。
根據本方式,為了防止通過測量副信息來分析出用于根據明文生成密 文的密鑰,在根據用該密鑰進行了預定的處理的輸入數據加上輸入屏蔽值 的隨機化輸入數據,生成己加上了輸出屏蔽值的隨機化輸出數據時,輸出 屏蔽值為輸入屏蔽值的逆元,由此,通過級數較少的簡單結構,根據隨機 化輸入數據生成隨機化輸出數據,能夠形成級數少的簡單結構的加密裝 置。
另外,該加密裝置進一步具備屏蔽值生成部,該屏蔽值生成部接收所 生成的上述隨機數,根據所接收的該隨機數生成上述輸入屏蔽值,上述第 1隨機化逆元數據生成部也可以接收所生成的上述輸入屏蔽值,進行上述 生成過程。這樣,就不需要從外部向加密裝置輸入輸入屏蔽值的結構,就 能夠形成簡單的系統結構。
技術方案2中所記載的方式(本發明的一個實施方式)的加密裝置的 上述第1隨機化逆元數據生成部具備第1乘方計算部,對上述隨機化輸 入數據和上述輸入屏蔽值進行預定的第1指數的乘方計算,分別通過各乘 方計算生成第1乘方隨機化輸入數據和第1乘方輸入屏蔽值;校正數據生
成部,根據上述隨機化輸入數據和上述輸入屏蔽值,生成預定的校正數據;
加法部,將所生成的上述校正數據和計算出的上述第1乘方隨機化輸入數
據相加,生成副隨機化輸入數據;第2隨機化逆元數據生成部,接收上述 副隨機化輸入數據和上述第1乘方輸入屏蔽值,將該第1乘方輸入屏蔽值 的在預定的第2有限域中的逆元即屏蔽值和上述副隨機化輸入數據的在該 第2有限域中的逆元相加,生成隨機化副輸出數據;以及隨機化輸出數據 生成部,根據上述隨機化副輸出數據、上述隨機化輸入數據、上述輸入屏 蔽值及上述第1乘方輸入屏蔽值,生成上述隨機化輸出數據。
根據本方式,通過容易理解的結構生成隨機化輸出數據,減少了故障 和動作不良,能夠實現設計容易,同時能夠以級數少的簡單結構實現加密 裝置。
此外,方式A (本發明的一個實施方式)的加密裝置,在隨機化合成 域逆元計算部的運算中,把以往的從X二M+R向Y=MA ( — +11的變換, 替換為從X二M+R向Y=MA ( — l) +RA ( — l)變換,由此, 一方面能夠比現有技術更削減最大邏輯級數, 一方面也能夠實現現有方法的能夠緊湊安 裝的優點。
此外,方式B (本發明的一個實施方式)的加密裝置,基于密鑰,對 明文進行規定的加密處理,生成密文,具備隨機數生成部,生成隨機數; 以及第1隨機化逆元計算部,接收隨機化輸入數據和輸入屏蔽值,并進行 第l有限域上的逆元計算,輸出隨機化輸出數據。其中,上述隨機化輸入 數據是通過把輸入屏蔽值和輸入數據相加來進行了屏蔽的值,上述隨機化 輸出數據是通過把輸出屏蔽值和輸出數據相加來進行了屏蔽的值,上述輸 入屏蔽值是根據上述隨機數決定的值,上述輸出數據是上述輸入數據的在 上述第1有限域中的逆元,上述輸出屏蔽值是上述輸入屏蔽值的在上述第 1有限域中的逆元。
這里,該方式B中的加密裝置的上述第1隨機化逆元數據計算部也可 以具備第l乘方計算部,分別對上述隨機化輸入數據和上述輸入屏蔽值 進行第1指數的乘方運算,生成第1乘方隨機化輸入數據和第1乘方輸入 屏蔽值;校正數據生成部,根據上述隨機化輸入數據和上述輸入屏蔽值, 生成校正數據;加法部,將上述校正數據和上述第1乘方隨機化輸入數據 相加,生成副隨機化輸入數據;第2隨機化逆元計算部,接收上述副隨機 化輸入數據和上述第1乘方輸入屏蔽值,進行第2有限域上的逆元計算, 生成隨機化副輸出數據;以及隨機化輸出數據生成部,根據上述隨機化副 輸出數據、上述隨機化輸入數據、上述第1乘方輸入屏蔽值及上述輸入屏 蔽值,生成上述隨機化輸出數據。
另外,該方式B中的加密裝置的上述隨機化輸出數據生成部也可以是 具備第2乘方計算部,對上述隨機化輸入數據和上述輸入屏蔽值分別進 行第2指數的乘方計算,生成第2乘方隨機化輸入數據和第2乘方輸入屏 蔽值;逆元運算部,對上述第1乘方輸入屏蔽值進行上述第2有限域上的 逆元計算,生成逆元乘方輸入屏蔽值;以及隨機化輸出數據計算部,根據 上述隨機化副輸出數據、上述第2乘方隨機化輸入數據、上述逆元乘方輸 入屏蔽值和上述第2乘方輸入屏蔽值,生成上述隨機化輸出數據。
另外,方式C的(本發明的一個實施方式)解密裝置,基于密鑰,對 密文進行規定的解密處理,生成譯文,具備隨機數生成部,生成隨機數;' 第l隨機化逆元計算部,接收隨機化輸入數據和輸入屏蔽值,進行第l有
17限域上的逆元計算,輸出隨機化輸出數據。其中,上述隨機化輸入數據是 通過把輸入屏蔽值和輸入數據相加而進行了屏蔽的值,上述隨機化輸出數 據通過把輸出屏蔽值和輸出數據相加而進行了屏蔽的值,上述輸入屏蔽值 是根據上述隨機數決定的值,上述輸出數據是上述輸入數據的在上述第1 有限域中的逆元,上述輸出屏蔽值是上述輸入屏蔽值的在上述第1有限域 中的逆元。
(實施方式)
下面,參照附圖對本發明的實施方式加以說明。
另外,在實施方式中,雖然使用了合成域GF ( ( (2A2) A2) A2)及其 子域GF ( (2A2) A2) 、 GF (2、) 、 GF (2)的運算,但這些會成為下面 的關系。
用不可約多項式xA2+x+l對GF(2)進行2次擴張而得的是GF(2A2)。 用不可約多項式xA2+x+小對GF( 2A2)進行2次擴張而得的是GF( (2、) A2)。
用不可約多項式/2+x+入(二進制數)對GF ( (2A2)八2)進行2次 擴張而得的是GF ( ( (2A2) A2) A2)。
此時,設xA2+x+l=0的根為a時,4> = a、入=a 、+a ,所以分別進 行位標記為4)=10 (二進制數)、人=1100 (二進制數)。
<實施方式的概要〉
在進行實際處理的詳細說明之前,首先,與非專利文獻l即現有技術 2中公開的現有方式進行對比來說明本實施方式的概要。
在非專利文獻1中公開的現有技術即現有技術2中,隨機化8位逆元 計算部81 (圖1等)對輸入數據X二M ( + ) R,使用隨機數R及r來進行 隨機化逆元計算,生成了輸出數據Y二MT ( — 1) ( + ) R。這里,X是將本 來的數據M用隨機屏蔽R進行屏蔽后的值,隨機化8位逆元計算部81求 得在GF ( ( (2A2) A2) A2)中的M的逆元M八(一l),并以用隨機屏蔽 R對該值實施了屏蔽的形式M^ ( — l) ( + ) R進行輸出。
本發明的實施方式中,將上述隨機化8位逆元計算處理,用隨機數R 對輸入數據X=M ( + ) R進行隨機化逆元計算,生成輸出數據Y=MA ( — l) (+) RA ( — 1)。即,輸出數據的隨機屏蔽值在現有技術2中是R,但在 本發明中,變成了y 。這樣,通過計算不同于現有技術2的輸出數據,如后面所述,就能夠比現有技術更削減最大邏輯級數。
圖8 圖38是分別表示實施方式中加密裝置1及加密裝置1的各部分的圖。
然后,圖38是表示實施方式中的加密裝置1的整體和各部分之間的 包含關系的圖。下面,適當參照圖38,對圖1~圖23所表示的加密裝置1 進行說明。
如圖38所示,加密裝置1 (圖8)具備隨機化8位逆元計算部101 (圖 13、圖14)。加密裝置1 (圖8)具備加密部la (圖8、圖9)。加密部 la具備屏蔽處理部10 (圖9)、隨機化Round—tl2X(隨機化Round—nl2(圖 9、圖10)、隨機化Round—10 13(圖9、圖U))、中斷屏蔽處理部14 (圖9)。 另夕卜,在圖38中,省略掉了圖8~圖37中所示的加密裝置1的各部分中的 一部分。
并且,圖38中所示的隨機化Round一t12 (圖9及圖10中所示的隨機 化Round—n12、圖9及圖11中所示的隨機化Round—10)具備隨機化 SubBytesl20X(圖10、圖ll、圖12)。該隨機化SubBytesl20X具備隨機化 S — Boxl21X(圖12中所示的隨機化S — Boxl20a 隨機化S—Boxl20p),另 外,該隨機化S—Boxl21X具備隨機化8位逆元計算部IOI(圖13,圖14)。
并且,如圖38所示,該隨機化8位逆元計算部101 (圖38、圖14等) 被輸入隨機化輸入數據ID8t=Tl (V8t) +T1 (Rt),根據利用屏蔽值進行 了屏蔽的該隨機化輸入數據ID8t二Tl (V8t) +T1 (Rt),計算出隨機化輸 出數據OD8t二Tl (V8t) A ( — l) +T1 (Rt) A ( — l),并輸出計算出的該 OD8t,所述屏蔽值是基于Rt變成Tl (Rt)的值。總之,該隨機化8位逆 元計算部101 (圖13、圖14)對設為M-T1 (V8t) 、 R=T1 (Rt)的上述 輸入數據X二M ( + ) R,進行生成輸出數據Y二]Vr ( — l) ( + ) R ( — l) 的處理。
本實施方式中的加密裝置1 (圖38、圖8)具備隨機化8位逆元計算 部101,該隨機化8位逆元計算部101根據X二M ( + ) R生成Y=MA ( —1) (+ ) RA ( — l),能夠削減最大邏輯級數。
下面,對那樣的加密裝置1的詳細處理進行說明。 <加密裝置1>
圖8是表示本發明的實施方式中的加密裝置1的結構的框圖。加密裝置l (圖8)具備加密部la (圖9)、輪密鑰生成部lb及密鑰 保管部lc。
加密裝置1 (圖8)針對輸入加密裝置1的128位明文(平文)P (128 位),使用裝置內部保持的密鑰K (128位)進行被隨機化的AES加密處 理(AES: Advanced Encryption Standard),并輸出密文C (128位)。密 文C和針對明文P使用密鑰K進行AES加密處理的結果相同。此外,由 于在裝置內部利用每次加密處理中隨機生成的隨機數對加密處理過程中 的加密處理中間值進行隨機化,因此電力分析攻擊的密鑰K的分析就變得 困難。下面,對加密裝置1的處理過程進行說明。
另外,詳細的講,AES加密是在加密處理中反復循環的、采用了以下 兩種結構中后者的SPN結構的加密,所述兩種結構之一是反復加密的代表 性的構成法即Feistel結構,另一結構是SPN (Substitution Permutation Network Structure)結構。
這里,加密裝置1例如也可以是設置在IC卡中的加密裝置。
密鑰保管部lc保管在加密裝置1中事先設定的密鑰K。密鑰K也可 以在制造加密裝置1時設定,也可以在加密裝置1制造完成后在裝置內生 成的密鑰保管部lc中設定。如果輸入明文P,加密裝置1就進行以下處理。
(1) 密鑰保管部lc將保管的密鑰K輸入到輪密鑰生成部lb。
(2) 輪密鑰生成部lb按照AES加密方式的輪密鑰生成處理,根據密 鑰K生成輪密鑰RK0 RK10 (各128位),輸入到加密部la。另外,輪 密鑰生成處理已經記載在非專利文獻2中而予以公開,這里就不做詳細說 明。
(3) 加密部la使用輪密鑰RK0 RK10對明文P進行后述的加密處理, 生成密文C并輸出。
接著,對加密部la的處理進行說明。 <加密部la>
圖9是表示加密部la的結構的框圖。
如圖所示,加密部la (圖8、圖38)具備屏蔽處理部10、 AddRoundKeyll、隨機化Round—n12 (圖IO)、隨機化RoundJ0 13 (圖
11)、中斷屏蔽處理部14、隨機數生成部15、隨機數暫時存儲部16以及 隨機數更新部17。
20加密部la對明文P (128位)使用輪密鑰RK0 RK10 (128位X11個) 進行加密處理,生成密文(128位)并輸出。加密部la在被輸入的輪密鑰 RK0 RK10中,把輪密鑰RKO輸入AddRoundKeyl 1 ,輪密鑰RKn(n=l 9) 輸入隨機化Round_nl2 (圖10) , RK10輸入隨機化Round—10 13 (圖11)。
加密部la進行以下的處理。
(1) 隨機數生成部15隨機地生成隨機數RO (8位)。然后,隨機數 生成部15將生成的隨機數RO暫時存儲在隨機數暫時存儲部16。另外,作 為一個例子,在每一次新的明文P被輸入到加密裝置1中,加密裝置1開 始新的加密處理時,隨機數生成部15就生成新的隨機數R0,也可以存儲 生成的隨機數R0。
(2) 屏蔽處理部10使用隨機數暫時存儲部16中存儲的隨機數R0, 對明文P進行如下的按位加運算,從而求得數據A (128位)。經過該處 理,利用隨機屏蔽值RO對明文P進行屏蔽。
A=P ( + ) (R0, R0, R0,…,R0)
這里,(R0, R0, R0,…,R0)表示將16個R0 (8位)結合的128 位數據。另外,下面,如果不特別說明,就將16個8位數據X結合而成 的128位數據表示成(X, X, X,…,X)。
另外,圖8所示的P在圖38中由標記U表示。此外,圖8中所示的 C在圖38中由標記C表示。此外,圖9中所示的A在圖38中圖示為IA。 此外,圖9中所示的B、 D在圖38中由標記IAt (t=l 9或t=10)表示。 此外,圖9中表示的E在圖38中由標記OA10=OAt (t=10)表示。
(3) 隨機數更新部17對隨機數暫時存儲部16中存儲的隨機數R0進 行后述的隨機數更新處理,生成R1,并將隨機數暫時存儲部16中存儲的 隨機數R0更新為R1。
(4) AddRoundKeyll對在上述(2)中由隨機數生成部15求得的上 述A,使用下面的RKO進行密鑰相加處理,求得B1。這就是AES加密算 法標準中規定的AddRoundKey處理。
B1=A ( + ) RKO
(5) 然后,隨機化Round—nl2關于n4、 2、 3、…、9反復執行下面 的處理。
(5 — 1)隨機化Round一n12使用輪密鑰RKn和存儲在隨機數暫時存儲部16中的隨機數Rn,對Bn (向該隨機化Round_nl2輸入的輸入數據B 中的第n個數據)進行后述的隨機化Round—n處理,生成Bn+l。然后, 隨機化Round—n12,在『9的情況下,即所生成的B (n+l)是B (n+l) =B10的情況下,使D=B10,將D輸入隨機化Round—10 13;在n#9的情 況下,即11=1、 2、…、9,所生成的B (n+l)是B2、 B3、…、B9中某一 個的情況下,將該B (n+l)再次輸入到Round一n12。
(5—2)隨機數更新部17對隨機數暫時存儲部16中存儲的隨機數Rn 進行后述的隨機數更新處理,生成Rn+l,將隨機數暫時存儲部16中存儲 的隨機數Rn更新為Rn+1。隨機數更新部17根據由隨機數生成部15生成 的隨機數RO,生成隨機數R1、隨機數R2、…、隨機數Rll,并將隨機數 暫時存儲部16中存儲的隨機數更新為生成的各個隨機數,由此將各該隨 機數分別提供給屏蔽處理部10、隨機化Round—n12、 Round—10 13以及中 斷屏蔽處理部14中與該隨機數對應的結構中。隨機數更新部17通過隨機 數暫時存儲部16將隨機數R0提供給屏蔽處理部10,將隨機數R1 R9提 供給隨機化Round—n12,將隨機數R10提供給隨機化Round—10 13,將隨 機數Rll提供給中斷屏蔽處理部14。
(5—3)加密部la在n=9的情況下,結束反復處理的循環,轉移到 接下來的隨機化Round—10 13的處理,在n#9的情況下,將n的值加1, 再次執行上述(5 — 1) (5 — 3)的處理。
(6) 隨機化Round—10 13使用輪密鑰RK10和隨機數暫時存儲部16 中存儲的隨機數R10,對經過上述(5)的處理得到的向隨機化Round一10 13 輸入的輸入數據D (128位)進行后述的隨機化Round—10處理,生成數據 E (128位)。隨機化RoundJ0 13將數據E輸入中斷屏蔽處理部14中。
此外,隨機數更新部17對隨機數暫時存儲部16中存儲的隨機數R10 進行后述的隨機數更新處理,將隨機數暫時存儲部16中存儲的隨機數R10 更新為隨機數Rll。隨機數更新部17通過向該R11的更新,將隨機數Rll 提供給中斷屏蔽處理部14。
(7) 中斷屏蔽處理部14使用隨機數暫時存儲部16中存儲的隨機數 Rll,在上述(6)中對從隨機化Round—10得到的數據E進行下面的按位 加運算,生成密文C (128位)。經過該處理,被屏蔽的數據E被中斷屏 蔽(去除屏蔽的影響),從而得到沒有被屏蔽的密文C。C=E ( + ) RU
(8)加密部la將在上述(7)中得到的密文C作為加密部la的輸出 數據進行輸出。
接著,對在加密部la(圖9)內部使用的隨機化Round—n12、隨機化 Round—10 13的詳細結構進行說明。 <隨機化Round—nl2>
圖10是表示隨機化Round—n12 (圖9)的結構的框圖。
如圖10中所示,隨機化Round—n12 (圖9、圖10、圖38)具備隨機 化SubBytes120 (圖12、圖38) 、 ShiftRows121 、 MixColumns122以及 AddRoundKey123。
而且,隨機化Round—n12使用隨機數Rn和輪密鑰RKn(n-l、 2、 ..9), 對向該隨機化Round—n12輸入的輸入數據X (與加密部la的處理說明(圖 9)中的數據Bn相對應)進行隨機化Round處理,生成輸出數據Y(與加 密部la處理說明中的數據Bn+l (圖9)相對應)。
另外,隨機化Round—n12進行的隨機化Round—n處理是如下的處理 對用屏蔽值(Rn, Rn,…,Rn)進行了屏蔽的輸入數據X=M ( + ) (Rn, Rn,, Rn)執行AES加密算法標準中規定的1輪處理,從而生成用屏 蔽值(Rn+1, Rn+1,…,Rn+1)屏蔽了的輪處理結果Y-P ( + ) (Rn+1, Rn+1,…,Rn+1)。此時,P與對M進行了 AES加密算法標準中規定的 1輪處理的結果一致。這里,該X是圖9的說明中的隨機化Round—n處理 的輸入數據Bn (n=l、 2、…、9),此外,該Y是圖9的說明中的輸出數 據B (n+l) 。 M、 P是分別從Bn、 Bn+1去除屏蔽值的影響后的本來的值 (圖38中圖示的Vt、 V (t+l))。
另外,圖10中的X在圖38中由標記IAt (t=l、 2、…、9)表示,Y 由標記OBt (t=l、 2、…、9)表示,Rn由標記Rt (t=l、 2、…、9)表示。
具體說來,隨機化Round—n12 (圖9、圖10)進行如下的處理。
(1) 隨機化Round—nl2具備的隨機化SubBytes120 (圖10、圖12) 使用從隨機數暫時存儲部16取得的隨機數Rn (8位),對向該隨機化 Round—n輸入的輸入數據X (128位)進行后述的隨機化SubBytes處理, 生成數據A (圖10)。
(2) ShiftRows121 (圖10)對上述(1)中生成的上述數據A進行
23AES加密算法標準中規定的ShiftRows處理,生成數據B (128位)。另 外,關于ShiftRows的詳細內容,由于在(非專利文獻2)中已經公開, 故不做詳細說明。
(3) 接著,MixColumns122 (圖10)對上述(2)中生成的上述數據 B進行AES加密算法標準中規定的MixColumns處理,生成數據C (128 位)。另外,關于MixColumns的詳細內容,由于在(非專利文獻2)中 已經公開,故不做詳細說明。
(4) 然后,AddRoundKey 123使用輪密鑰RKn,對上述(3)中生成 的上述數據C進行AES加密算法標準中規定的AddRoundKey處理,生成 數據Y( 128位)。然后,AddRoundKey 123將生成的Y作為隨機化Round—n12 的輸出數據來進行輸出。另外,關于AddRoundKey的詳細內容,由于在
(非專利文獻2)中己經公開,故不做詳細說明。
另外,圖10的數據A在圖38中由標記OBt (t=l、 2、…、9)表示。 <隨機化Round—10 13>
圖11是表示隨機化Round—10 13的結構的框圖。
隨機化Round—10 13 (圖9、圖11)具備隨機化SubBytes130 (圖11、 圖12) 、 ShiftRows131、 AddRoundKey 132。
然后,如圖11所示,隨機化Round—10 13的結構與從隨機化Round一n12 去掉MixColumns122的結構相同。這與AES加密算法的標準的最后一輪 不進行MixColumns處理的情況相對應。除此之外,和隨機化Round一n12 相同,故省略詳細的說明。
另外,隨機化Round—10處理是如下的處理對用屏蔽值(R10,R10,…, R10)進行了屏蔽的輸入數據X-M ( + ) (R10, R10,, R10)執行AES 加密算法標準中規定的最后一輪處理,生成用屏蔽值(Rll, Rll,…, Rll)屏蔽了的最后一輪處理結果Y=P ( + ) (Rll, Rll,…,Rll)。此 時,P與對M進行了 AES加密算法標準中規定的最后一輪處理的結果一 致。
另外,此處,該X在圖9的說明中是數據D,此外,該Y在圖9的說 明中是輸出數據E, M、 P是從D、 E去除屏蔽值的影響的本來的值(圖 38中的V10、 Vll)。
此外,在圖38中,由標記OB100Bt (t=10)表示圖10中的數據A。接著,隨機化Round一n12 (圖9、圖10)對在隨機化Round—10 13 (圖 9、圖11)中使用的隨機化SubBytes120、 130 (圖12)進行詳細的說明。 <隨機化SubBytes 120、 130>
圖12是表示隨機化SubBytesl20X(隨機化SubBytes120(圖9、圖10)、 隨機化SubBytes130 (圖9、圖11))的結構的框圖。例如,隨機化 SubBytesl20X是隨機化SubBytes120,其他的隨機化SubBytes120具有和 該隨機化SubBytes120相同的結構。
隨機化SubBytesl20X使用隨機數R (8位)對輸入數據X (128位) 進行隨機化S—Box處理,生成輸出數據Y (128位)。這里的輸入數據X 和隨機化Round—n12的處理說明(圖10)中的數據X相當,此外,和隨 機化RouncL10 13的處理說明(圖IO)中的數據X相當。此外,隨機數R 和隨機化Round—n12的處理說明(圖IO)中的隨機數Rn相當,和隨機化 Round—10 13的處理說明(圖ll)中的隨機數R10相當。此外,輸出數據 Y和隨機化RouncLn12的處理說明(圖10)中的數據A相當,和隨機化 Round—10 13的處理說明(圖ll)中的數據A相當。
另夕卜,在圖38中,圖12中的X由標記IBt表示,Y由標記OBt表示, R由Rt表示。
隨機化SubBytesl20X具備隨機化S — Boxl20a 隨機化S—Boxl20p。 隨機化SubBytesl20X (隨機化S—Boxl20a 隨機化S —Boxl20p)進
行以下的處理。
(1) 隨機化SubBytesl20X將輸入數據從高位開始按每8位進行分割, 分割為X[O]、 X[l]、…、X[15](參照圖12)。
(2) 隨機化S—Boxl20a 120p對分割后的X
、 X[l]、…、X[15], 分別用隨機數R進行隨機化S—Box處理,分別生成Y
、Y[1]、…、Y[15]。 關于隨機化S—Box處理的詳細內容,將在后面加以說明。
(3) 然后,隨機化SubBytesl20X將生成的Y[O]、 Y[l]、…、Y[15] 從高位開始按該順序連結,變成128位數據Y。然后,隨機化SubBytesl20X 將該Y作為隨機化SubBytesl20X的輸出數據來輸出。
另夕卜,隨機化SubBytes120、 130的處理是如下的處理對用屏蔽值(R, R,…,R)進行了屏蔽的輸入數據X二M ( + ) (R, R,…,R)進行AES 加密算法標準中規定的SubBytes處理,生成用屏蔽值(S, S,…,.S)屏蔽的處理結果Y二P ( + ) (S, S,…,S)。此時,P與對M進行AES加
密算法標準中規定的SubBytes處理的結果一致,屏蔽值S與隨機數更新部
17對屏蔽值R進行了隨機數更新處理的結果相等。
另外,在圖38中,該M圖示為Vt, P則由S—Box (Vt)表示。 然后,對在隨機化SubBytesl20X (隨機化SubBytes120、 130)中使用
的隨機化S — Boxl20a 120p的詳細內容進行說明。 <隨機化S—Boxl20a~120p>
圖13是表示隨機化S—Boxl20X(隨機化S—Boxl20a 隨機化S—Box 120p:圖12)的結構的框圖。
隨機化S—Boxl21X (圖13、圖12)具備合成域變換部100 (參照 數學式l)、隨機化8位逆元計算部101 (圖ll、圖38)、擴張域變換兼 矩陣變換部102 (參照數學式2)、按位加部104、合成域變換部103 (參 照數學式1)。
隨機化S—Boxl21X是使用隨機數R (8位)對輸入數據X (8位)進 行隨機化S—Box處理,求得輸出數據Y(8位)的處理。這里的輸入數據 X相當于隨機化SubBytes 120X(圖12)的處理說明中的數據X[O] 、 X[ 1 ]、…、 X[15]中的某一個,隨機數R相當于隨機化SubBytesl20X的處理說明(圖 12)中的隨機數R。此外,輸出數據Y相當于隨機化SubBytesl20X的處 理說明(圖12)中的數據Y[O]、 Y[l]、…、Y[15]中的某一個。
另外,在圖38中,由標記IC8t表示該X,由標記OC8t表示Y,由標 記Rt表示R。
隨機化S—Boxl21X進行以下的處理。 (1)合成域變換部100將X (8位)從高位開始按每一位迸行分割, 分割成X7、 X6、、 X0。然后,合成域變換部100進行下面的數學式1 的矩陣計算,將通過矩陣計算求得的A7、 A6、…、AO從高位開始按該順 序結合,作為合成域變換部100的輸出數據A (8位)。另外,下述的矩 陣計算是用mod 2進行的。即,在下述的矩陣計算中,是0+0=1+1=0, 0+1=1+0=1。
數學式1廣 、 A7卜010〇00、 0廣 X7
A601111110X6
A5.01110010X5
A410100010X4
A3〇0011010X3
A201010110X2
A101101100X1
LA0JL10101001J
、
乂
(2) 并且,其他的合成域變換部103和上述的(1) 一樣,將R (8 位)從高位開始按每l位進行分割之后,進行數學式l的矩陣計算,根據 R (8位)生成S (8位)。
(3) 接著,隨機化8位逆元計算部101利用在上述(2)中生成的隨 機數S (8位)對上述(1)中生成的輸入數據A (8位)進行后述的隨機 化8位逆元計算,生成輸出數據B (8位)。
(4) 擴張域變換部兼矩陣變換部102對上述(3)中生成的數據B (8 位),根據下述的數學式2的矩陣計算式,用和上述(1)同樣的方法, 即從高位開始按每一位進行分割,并進行矩陣計算,來生成數據C (8位)。
數學式2
f071廣 0111010、 0 、
C611010000巳6
C500101100B5
C41101001B4
C3'—10110101已3
C210010011已2
C110110111已i
—J111010」
(5)按位加部104將在上述(4)中生成的數據C(8位)和常數01100011 (二進制數)進行每位的按位加運算,生成數據Y (8位)。
隨機化S—boxl21X將上述(5)中生成的該Y作為隨機化S — Boxl21X
的輸出數據進行輸出。另外,隨機化S—Boxl20a 120p的處理是如下的處理對用屏蔽值(R, R,…,R)進行了屏蔽的輸入數據X二M ( + ) (R, R,…,R)進行AES 加密算法標準中規定的SubBytes處理內的S—Box表變換,生成用屏蔽值 (S, S,…,S)進行了屏蔽的處理結果Y=P ( + ) (S, S,…,S)。此 時,P與對M進行了 AES加密算法標準中規定的SubBytes處理內的S — Box表變換的結果一致,屏蔽值S和隨機數更新部17對屏蔽值R進行隨 機數更新處理的結果相等。
另外,在圖38中,由標記V8t表示該M,由S—box (v8t)表示P。 在圖38中,由標記ID8t表示該A,由標記OD8t表示B。
然后,對在隨機化S — Boxl20a 120p內部分別使用的隨機化8位逆元 計算部101的詳細內容進行說明。
<隨機化8位逆元計算部101>
圖14是表示隨機化8位逆元計算部101的結構的框圖。
隨機化8位逆元計算部101 (圖13、圖14、圖38)具備17次方運 算部110 (圖15) 、 17次方運算部112 (圖15) 、 4位校正項計算部111 (圖16) 、 16次方運算部115 (圖17) 、 16次方運算部117 (圖17) 、 4 位輸出計算部118 (圖18) 、 4位輸出計算部U9 (圖18) 、 4位逆元計 算部116(圖21)、隨機化4位逆元計算部114 (圖23)、按位加部113。
隨機化8位逆元計算部101 (圖13、圖14)使用隨機數R (8位), 對輸入數據X (8位)進行隨機化8位逆元計算處理,輸出輸出數據Y (8 位)。這里的輸出數據X如前所述,相當于隨機化S—Boxl20a 120p的處 理說明(圖13)中的數據A,隨機數R相當于隨機化S—Boxl20a 120p 的處理說明(圖13)中的隨機數S。此外,輸出數據Y相當于隨機化S — Boxl20a 120p的處理說明(圖13)中的數據B。
另外,在圖38中,由標記ID8t表示該X,由標記RDt表示R,由標 記0D8t表示Y。
隨機化8位逆元計算部101執行以下的處理。 (1)隨機化8位逆元計算部101,首先將數據X (8位)從高位開始 按每4位進行分割,分割成XO (4位)、XI (4位)。然后,隨機化8位 逆元計算部101同樣地將隨機數R (8位)從高位開始按每4位進行分割, 分割成RO (4位)、Rl (4位)。然后,隨機化8位逆元計算部101將
28X0和XI輸入17次方運算部110,將X0、 XI、 R0及Rl輸入4位校正項 計算部111,將R0和Rl輸入17次方運算部112。
(2) 然后,17次方運算部110對輸入的X0和X1進行后述的17次 方計算處理,生成輸出數據A (4位)。同樣地,其他的17次方運算部 112對輸入的R0和R1進行17次方計算處理,生成輸出數據C (4位)。
(3) 另外,4位校正項計算部111對輸入的XO、 XI、 RO、 Rl進行 后述的4位校正項計算處理,生成輸出數據B (4位)。
(4) 然后,按位加部113對(2)中生成的數據A和(3)中生成的 數據B進行按位加運算,生成數據D (8位)。
(5) 然后,隨機化4位逆元計算部114利用上述(2)中生成的數據 C (4位),對上述(4)中生成的數據D進行后述的隨機化4位逆元計算 處理,生成數據E (4位)。
(6) 此外,16次方運算部115對輸入到隨機化8位逆元計算部101 的數據X (8位)進行后述的16次方計算處理,生成數據F (8位)。然 后,隨機化8位逆元計算部101將生成的數據F從高位開始按每4位進行 分割,分割為FO (4位)、Fl (4位)。同樣地,其他的16次方運算部 117對輸入到隨機化8位逆元計算部101的數據R (8位)進行16次方計 算處理,生成數據H。與上述數據F的情況一樣,隨機化8位逆元計算部 101將生成的該數據H從高位開始按每4位進行分割,分割為HO (4位)、 Hl (4位)。
(7) 另外,4位逆元計算部116,在上述(2)中,對由在圖14的下 側示出的17次方運算部112生成的數據C (4位)進行后述的4位逆元計 算處理,生成數據G (4位)。
(8) 然后,4位輸出計算部118對上述(5)中生成的數據E (4位)、 上述(7)中生成的數據G (4位)、上述(6)中由數據F分割成的數據 FO (4位)、及同樣在上述(6)中由數據H分割成的數據HO (4位)進 行后述的4位輸出計算處理,生成數據YO (4位)。同樣地,其他的4位 輸出計算部119對數據E (4位)、數據G (4位)、數據F1 (4位)、及 數據H1 (4位)進行4位輸出計算處理,生成數據Y1 (4位)。然后,隨 機化8位逆元計算部101,將這樣生成的數據YO和Yl從高位開始按該順 序連結成8位數據Y。然后,隨機化8位逆元計算部101將連結的數據Y作為隨機化8位逆元計算部101的輸出數據來輸出。
另外,這樣進行的隨機化8位逆元計算部101的處理是如下的處理
對用屏蔽值R進行了屏蔽的輸入數據X=M( + )R進行合成域GF (((2A2) A2)A2)的逆元計算,生成用屏蔽值R、一1)進行了屏蔽的處理結果¥=乂八 (—1) ( + ) R ( — 1)。此時,XA ( — 1)是在合成域GF ( ( (2A2) A2) A2)中X的逆元,屏蔽值RA (—1)是在合成域GF ( ( (2A2) A2)、)中 R的逆元。
接著,對在隨機化8位逆元計算部101的內部使用的17次方運算部 110、 112 (圖15中示出的17次方運算部110X) 、 4位校正項計算部111 (圖16)、 16次方運算部115、 117(圖17中示出的16次方運算部115X)、 4位輸出計算部118、 119 (圖18中示出的4位輸出計算部118X)的詳細 內容依次進行說明。
<17次方運算部110、 112〉
圖15是表示17次方運算部110X的圖。
17次方運算部110X (圖14、圖15)具備4位乘法部110b (圖19)、 4位乘法部110c (圖19) 、 4位乘法部110d (圖19)、按位加部110a、 按位加部110e。
而且,17次方運算部110X對輸入數據X0 (4位)、XI (4位)進行 合成域GF ( ( (2A2) A2) A2)上的17次方計算處理,生成數據處理結果 Y (4位)。此時,對將輸入數據X0、 XI從高位開始按該順序連結而成的 8位數據X進行在合成域GF ( ( (2A2) A2) A2)上的17次方計算的結果 成為Y。艮口
Y=XA (17) in GF ( ( (2、) A2) A2)
此時,成為¥^5= (XA17) A15=XA255,由于X是GF ( ( (2、)、) 、)上的元素,所以YA15=XA255=1。即,Y的位數是15, Y是子域GF( (2、) A2)上的元素。gp, Y是4位的數據。
此外,這里的輸入數據X0、 XI相當于隨機化8位逆元計算部101的 處理說明(圖14)中的數據X0、 X1或者R0、 Rl,輸出數據Y相當于隨 機化8位逆元計算部101的處理說明(圖14)中的數據A或者C中的某 一個。
這里,17次方運算部110X在子域GF ( (2A2) A2)上進行下面的計
30算,生成輸出數據Y。
Y=1100 (二進制數)X (X0A2) +X1X (X0+X1) in GF ( (2、) A2) 在GF ( (2A2) A2)上的加法運算是對每位的按位加運算(按位加部
110a、 110e)。關于GF ( (2、) A2)上的乘法運算(4位乘法部110b、
110c、 110d)的詳細內容,將在后面加以說明。 <4位校正項計算部111>
圖16是表示4位校正項計算部111的結構的框圖。
4位校正項計算部111 (圖14、圖16)具備4位乘法部111a (圖19)、 4位乘法部111b (圖19)以及按位加部lllc。
然后,4位校正項計算部111對輸入數據XO (4位)、XI (4位)、 R0 (4位)、Rl (4位)進行4位校正項計算處理,生成輸出數據B (4 位)。這里的輸入數據XO、 XI、 R0、 Rl分別相當于隨機化8位逆元計算 部IOI的處理說明(圖14)中的數據XO、 XI、 R0、 Rl,輸出數據B相當 于隨機化8位逆元計算部101的處理說明(圖14)中的數據B。
這里,4位校正項計算部111在子域GF ( (2A2) A2)上進行下面的計 算,輸出數據B。
B=X0XR1+X1XR0 in GF ( (2、)、)
然后,這里,在GF ( (2A2) A2)上的加法運算是對每個位的按位加 運算(按位加部lllc)。關于GF ( (2A2) A2)上的乘法運算(4位乘法 部llla、 111b)的詳細內容,將在后面加以說明(圖19)。
<16次方計算部115、 117>
圖17是表示16次方計算部115X (16次方計算部115 (圖4) 、 16 次方計算部117 (圖14))的結構的框圖。
而且,16次方計算部115X對輸入數據X(8位)進行合成域GF(((2A2) A2) A2)上的16次方計算,將其計算結果作為Y (8位)輸出。此時,對 輸入數據X進行了合成域GF ( ( (2、) A2) A2)上的16次方計算的結果 成為Y。
Y=XA (16) inGF ( ( (2、) A2)、)
此外,這里的輸入數據X相當于隨機化8位逆元計算部101的處理說 明(圖M)中的數據X或R中的某一個,輸出數據Y相當于隨機化8位 逆元計算部101的處理說明(圖14)中的數據F或H中的某一個。這里,16次方計算部115、 117將輸入數據X從高位開始按每4位進 行分割,分割成X0、 XI,然后在GF ( (2A2) A2)上進行下面的計算,求 得Y0、 Yl。
Y0=X0
Y1=X0+X1 inGF ( (2、)、)
然后,這里,GF ( (2A2) A2)上的加法運算是對每個位的按位加運算 (按位加部115a) 。 16次方計算部115X將這樣求得的Y0、 Yl依照該順 序結合成8位數據Y。該Y成為16次方計算部115、 117的輸出數據。 <4位輸出計算部118、 119>
圖18是表示4位輸出計算部118X (4位輸出計算部118X (圖14)、 4位輸出計算部119 (圖14))的結構的框圖。
4位輸出計算部118X具備4位乘法部118a(圖19)、4位乘法部118b (圖19) 、 4位乘法部118d (圖19)、按位加部118c、按位加部118e。
然后,4位輸出計算部118X對輸入數據E (4位)、G (4位)、F (4 位)、H (4位)進行4位輸出計算處理,輸出輸出數據Y。這里的輸入數 據E、 G、 F、 H分別和隨機化8位逆元計算部101的處理說明(圖14)中 向4位輸出計算部118輸入的輸入數據E、 G、 FO、 HO相對應,此外,分 別和向4位輸出計算部119輸入的輸入數據E、 G、 Fl、 Hl相對應。此外, 輸出數據Y和隨機化8位逆元計算部101的處理說明(圖14)中4位輸 出計算部118的輸出數據YO相對應,和4位輸出計算部119的輸出數據 Yl相對應。4位輸出計算部118、 119在GF ( (2A2)、)上進行下面的計 算,求得Y,并輸出所求得的Y。
Y=EXF+GXF+EXH in GF ( (2l) A2)
這里,在GF ( (2A2) A2)上的加法運算是對每個位的按位加運算(按 位加部118c、 118e)。關于GF ( (2、) A2)上的乘法運算(4位乘法部 118a、 118b、 118d)的詳細內容,將在后面加以說明(圖19)。
接著,對前面說明的各種處理中用到的各個4位乘法部的詳細內容, 即圖15所示的4位乘法部110b及4位乘法部110c、圖16示出的4位乘 法部111a及4位乘法部lllb、圖18示出的4位乘法部118a、 4位乘法部 118b及4位乘法部118d的詳細內容進行說明。另夕卜,圖30中示出的8位 逆元計算部171具備的4位乘法部171d和4位乘法部171e也相同。另外,這里,這些4位乘法部171d等都具有的圖30所示的8位逆元計算部171 是圖29示出的隨機數更新部17 (參照圖14)的一部分。 <4位乘法部20>
圖19是表示4位乘法部20的結構的框圖。
前面說明的各種處理中用到的、上述列舉的4位乘法部的結構都和這 里說明了 4位乘法部20相同。另外,和這一點相同的是,上述的4位輸 出計算部118、 4位輸出計算部119的任一個的結構都和圖18中示出的4 位輸出計算部118X相同。
4位乘法部20具備2位乘法部200 (圖19) 、 2位乘法部201 (圖 19) 、 2位乘法部202 (圖19) 、 2位乘法部203 (圖19) 、 2位乘法部 206 (圖19)、按位加部204、按位加部205、及按位加部207。
而且,4位乘法部20對輸入數據X(4位)、Y(4位)進行在GF( (2A2) A2)上的乘法運算,輸出乘法運算結果Z (4位)。此時,
Z=XXY in GF ( (2、)八2)
然后,4位乘法部20將輸入數據X、 Y分別從高位開始按每2位分割, 分割成XO (2位)、XI (2位)、及YO (2位)、Yl (2位)。然后,在 GF (2、)上執行下面的計算式,求得ZO、 Zl。 ZO=XOXY1+X1XYO+XOXYO in GF (2、) Z140(二進制數)XX0XY0+X1XY1 in GF (2、) 然后,4位乘法部20將對上述Z0、 Zl從高位開始按該順序連結而成 的4位數據Z,作為4位乘法部20的輸出來輸出。
這里,GF (2A2)上的加法運算是對每個位的按位加運算(按位加部 204、 205、 207)。關于GF (2'2)上的乘法運算(2位乘法部200、 201、 202、 203、 206:圖19)的詳細內容,將在下面加以說明。 <2位乘法部21>
圖20是表示2位乘法部21的結構的框圖。
前面說明的各種處理中用到的2位乘法部的結構都和這里說明的2位 乘法部20相同。另外,.圖21的2位乘法部143及2位乘法部144、圖 24的2位乘法部150b、 2位乘法部150c及2位乘法部150d、圖25的2 位乘法部151a及2位乘法部151b、圖27的2位乘法部158a、 2位乘法部 158b及2位乘法部158d都具有和該圖20示出的2位乘法部21相同的結
33構。
2位乘法部21具備邏輯積部210、邏輯積部211、邏輯積部212、邏輯積部213、按位加部214、按位加部215、按位加部216。
然后,2位乘法部21對輸入數據X (2位)、Y (2位)進行GF (2、)上的乘法運算,輸出乘法運算結果Z (2位)。此時
Z=XXY inGF (2'2)
然后,2位乘法部21將輸入數據X、 Y分別從高位開始按每1位進行分割,分割成X0 (1位)、XI (1位)、Y0 (1位)以及Yl (1位)。而且,2位乘法部21在GF (2)上執行下面的計算式,求得Z0、 Zl。
Z0=X0XY1+X1XY0+X0XY0 in GF (2)
Z1=X0XY0+X1XY1 in GF (2)
而且,2位乘法部21將上述的Z0、 Zl從高位開始按該順序連結,將連結的2位數據Z作為2位乘法部21的輸出來輸出。
這里,GF (2)上的加法運算是對每個位的按位加運算(按位加部214、215、 216) 。 GF (2)上的乘法運算是邏輯積(邏輯積部210、—211 、 212、213)。
然后,對隨機化8位逆元計算部101 (圖14)中用到的4位逆元計算部116的詳細內容進行說明。<4位逆元計算部116>
圖21是表示4位逆元計算部116 (圖14)的結構的框圖。另外,圖30的4位逆元計算部171c也和這個4位逆元計算部117相同。
4位逆元計算部116具備5次方計算部(圖24) 、 2位逆元計算部142(圖22) 、 2位乘法部143 (圖20) 、 2位乘法部144 (圖20)以及按位加部140。
而且,4位逆元計算部116對輸入數據X (4位)進行在GF ( (2A2)A2)上的逆元計算,生成作為計算結果的輸出數據Y (4位)。此時,Y=XA ( — l)in GF ( (2A2) A2)
這里的輸入數據X與在隨機化8位逆元計算部101的處理說明(圖14)中向4位逆元計算部116輸入的輸入數據C相對應,輸出數據Y與在隨機化8位逆元計算部101的處理說明(圖14)中4位逆元計算部116的輸出數據G相對應。4位逆元計算部116進行下面的處理。(1) 首先,4位逆元計算部116將輸入數據X從高位開始按每2位進行分割,分割成XO、 XI。而且,4位逆元計算部116將分割后的X0輸入到按位加部140、 5次方計算部141、 2位乘法部143。此外,4位逆元計算部116將分割的其他X1輸入到按位加部140、 5次方乘法部141。
(2) 5次方計算部141對輸入的XO、 XI進行GF ( (2A2) A2)上的5次方計算,求得其結果A (2位)。這里,對數據X (4位)在GF ( (2A2)A2)上進行了 5次方運算的結果成為A,所述數據X (4位)是把XO、 XI按該順序結合而成的。艮P:
A=XA5 in GF ( (2、)八2)
此外,通過AA3=XA15=1 in GF ( (2、) 、) , A的位數是3, A也是GF (2A2)上的元素。因此,A變成2位數據。關于5次方計算部141的詳細內容,將在后面加以說明。
(3) 然后,圖21的4位逆元計算部116具有的2位逆元計算部142對5次方計算部141在上述(2)中所求得的上述A (2位)進行GF (2、)上的逆元計算,生成數據B (2位)并輸出。此時,
B=AA ( — l) in GF (2A2)
關于2位逆元計算部142的詳細內容,將在后面加以說明(圖22)。
(4) 然后,基于以上的計算結果,圖21的4位逆元計算部116具有的2位乘法部143、2位乘法部144根據由2位逆元計算部142在上述(3)生成的上述B (2位)及在上述(1)分割得到的XO、 XI,分別通過下面的計算求得YO (2位)、Yl (2位)。
YO=XOXB in GF (2、)
Yl= (X0+X1) XB in GF (2、)
而且,4位逆元計算部116將4位數據Y作為4位逆元計算部116的輸出來輸出,該4位數據Y是把上述求得的YO、 Yl從高位開始按該順序連結而成的。
這里,GF (2A2)上的加法運算是對每個位的按位加運算(按位加運算部140) 。 GF (2A2)上的乘法運算(2位乘法部143、 144)的詳細內容和前面的說明相同(圖20的2位乘法部21)。
接著,利用這樣的圖21的4位逆元計算部116 (圖21)對2位逆元計算部142的詳細內容進行說明。<2位逆元計算部142>
圖22是表示2位逆元計算部142的結構的框圖。2位逆元計算部142具有按位加部142a。
而且,2位逆元計算部142對輸入數據X (2位)進行GF (2A2)上的逆元計算,將計算結果作為Y (2位)來輸出。此時,Y=XA ( — 1) in GF (2A2)
2位逆元計算部142將X的高位1位、低位1位分別分割為X0、 XI,通過下面的計算式,求得Y0、 Yl。Y0=X0Y1=X1+X0
然后,將Y0、 Y1依照該順序結合而成的2位數據Y作為輸出。然后,對在隨機化8位逆元計算部101 (圖14)的內部使用的隨機化4位逆元計算部114的詳細內容進行說明。<隨機化4位逆元計算部114>
圖23是表示隨機化4位逆元計算部114 (圖14)的結構的框圖。隨機化4位逆元計算部114 (圖14、圖23)具備5次方計算部150 (圖24) 、 5次方計算部152 (圖24) 、 2位校正項計算部151 (圖25) 、 4次方計算部155 (圖26) 、 4次方計算部157 (圖26) 、 2位輸出計算部158(圖27) 、 2位輸出計算部159 (圖27)、隨機化2位逆元計算部154 (圖28) 、 2位逆元計算部156以及按位加部153。
而且,隨機化4位逆元計算部114是如下的處理利用隨機數R (4位)對輸入數據X (4位)進行隨機化4位逆元計算處理,生成輸出數據Y (4位)。這里的輸入數據X相當于隨機化8位逆元計算部101的說明(圖14)中的向隨機化4位逆元計算部114輸入的輸入數據D,隨機數R相當于C。此外,輸出數據Y相當于E。隨機化4位逆元計算部114在GF ( (2、)、)上進行與隨機化8位逆元計算部101同樣的計算處理。但是,在隨機化8位逆元計算部101中,雖然將17次方計算部112的輸出數據C還輸入到隨機化4位逆元計算部114,但是隨機化4位逆元計算部114不將其輸出C輸入到隨機化2位逆元計算部154。此外,輸入到各個處理部的數據的數據大小、乘方運算時的指數等不同。除去上述的內容,由于其處理過程和隨機化8位逆元計算部101相同,這里就不做詳細說明。
36另外,隨機化4位逆元計算部114的處理是如下的處理對用屏蔽值
R進行了屏蔽的輸入數據X=M ( + ) R進行合成域GF ( (2A2) A2)上的逆元計算,生成用屏蔽值R^ (_1)屏蔽了的處理結果Y=XA ( — l) ( + )RA ( — 1)。此時,XA ( — l)是X在GF ( (2A2) A2)中的逆元,屏蔽值RA ( — 1)是R在GF ( (2A2) A2)中的逆元。<5次方計算部141、 150、 152>
圖24是表示5次方計算部141X (5次方計算部141 (圖21) 、 5次方計算部150 (圖23) 、 5次方計算部152 (圖23))的結構的框圖。
5次方計算部141X具備2位乘法部150b、 2位乘法部150c、 2位乘法部150d、按位加部150a、按位加部150e。這里,2位乘法部150b、 2位乘法部150c、及2位乘法部150d的結構分別和圖20中示出的2位乘法部21相同。
而且,5次方計算部141X (5次方計算部141、 150、 152)對輸入數據XO (2位)、XI (2位)進行GF ( (2A2) A2)上的5次方計算處理,輸出輸出數據Y (2位)。這里的輸入數據X0、X1相當于4位逆元計算部116的說明(圖21)中的XO、 XI,相當于隨機化4位逆元計算部114的說明(圖23)中的XO、 X1及R0、 Rl。此外,輸出數據Y相當于4位逆元計算部116的說明(圖21)中的A,相當于隨機化4位逆元計算部114的說明(圖23)中的A及C。
此外,在將輸入數據XO、 X1依照該順序結合的4位數據作為X時,輸出數據Y如下所示。
Y=XA5 in GF ( (2、) "2)
這里,由于丫、= XA15=1 in GF ( (2A2) A2) , Y的位數是3, Y是GF (2A2)上的元素。因此,Y成為2位的數據。
另外,由于5次方計算部141X (5次方計算部141 (圖21) 、 5次方計算部150 (圖23) 、 5次方計算部152 (圖23))的處理流程和己經說明的17次方計算部IIOX(圖15、 17次方計算部110、 17次方計算部112)基本相同,因此省略其詳細說明。此外,按位加部150a、 150e、 110e(圖24)是對每個位的按位加運算,2位乘法部150b、 2位乘法部150c、 2位乘法部150d (圖24)的處理和已經說明的2位乘法部21 (圖20)相同。
<2位校正項計算部151>圖25是表示2位校正項計算部151 (圖23)的結構的框圖。
2位校正項計算部151具備2位乘法部151a(圖20)、2位乘法部151b(圖20)和按位加部151c。
而且,2位校正項計算部151對輸入數據XO (2位)、XI (2位)、RO (2位)、Rl (2位)進行在GF ( (2A2) 1)上的校正項計算處理,輸出輸出數據B (2位)。.這里的輸入數據XO、 XI、 RO、 Rl相當于隨機化4位逆元計算部114的說明(圖23)中的XO、 XI、 RO、 Rl。
這里,由于2位校正項計算部151的處理流程和已經說明的4位校正項計算部111 (圖16)基本相同,因此省略詳細說明。此外,按位加部151c是對每個位的按位加運算,2位乘法部151a、 151b的處理和己經說明的2位乘法部21 (圖21)相同。
<4次方計算部155、 157>
圖26是表示4次方計算部155X (4次方計算部155、 4次方計算部157:圖23)的結構的框圖。
4次方計算部155X具備按位加部155a。
而且,4次方計算部155X對輸入數據X(4位)進行合成域GF( (2A2)A2)上的4次方運算,將其計算結果作為Y (4位)輸出。此時,對輸入數據X進行合成域GF ( (2A2) A2)上的4次方計算的結果成為Y。艮P,
Y=XA4 in GF ( (2、) A2)
此外,這里的輸入數據X相當于隨機化4位逆元計算部114的處理說明(圖23)中的數據X或R中的某一個。輸出數據Y相當于隨機化4位逆元計算部114的處理說明(圖23)中的數據F或H中的某一個。
而且,4次方計算部155X將輸入數據X從高位開始按每2位進行分割,分割成XO、 Xl之后,并在GF (2、)上進行下面的計算,求得YO、Yl。
YO=XO
Y1=X0+X1 in GF (2"2)
這里的GF (2A2)上的加法運算是對每個位的按位加運算(按位加部155a)。而且,4次方計算部155X將求得的YO、 Yl按該順序結合來作成8位數據Y。該Y就是4次方計算部155、 157的輸出數據。
<2位輸出計算部158、 159>圖27是表示2位輸出計算部158X (2位輸出計算部158、 2位輸出計算部159:圖23)的結構的框圖。
2位輸出計算部158X具備2位乘法部158a(圖20) 、 2位乘法部158b(圖20) 、 2位乘法部158d (圖20)、按位加部158c及按位加部158e。
而且,2位輸出計算部158X利用上述的各部分對輸入數據E(2位)、G (2位)、F (2位)、H (2位)進行2位輸出計算處理,輸出輸出數據Y。這里的輸入數據E、 G、 F、 H,分別與在隨機化4位逆元計算部114的處理說明(圖23)中向2位輸出計算部158輸入的輸入數據E、 G、 F0、H0對應,此外,分別與向2位輸出計算部159輸入的輸入數據E、 G、 Fl、Hl對應。此外,輸出數據Y與在隨機化4位逆元計算部114的處理說明(圖23)中的2位輸出計算部158的輸出數據Y0對應,此外,與2位輸出計算部159的輸出數據Y1對應。2位輸出計算部158X在GF (2、)上進行下面的計算,求得Y,并輸出Y。
Y=EXF+GXF+EXH in GF (2、)
這里,GF (2、)上的加法運算是對每個位的按位加運算(按位加部158c、 158e) 。 GF (2、)上的乘法運算(2位乘法部158a、 2位乘法部158b、2位乘法部158d)和己經說明的2位乘法部21 (圖23)相同。
<隨機化2位逆元計算部154>
圖28是表示隨機化2位逆元計算部154的結構的框圖。隨機化2位逆元計算部154具備按位加部154c。
而且,隨機化2位逆元計算部154是進行如下的處理利用上述按位加部154c對輸入數據X (2位)進行隨機化2位逆元計算處理,生成輸出數據Y(2位)。這里的輸入數據X相當于隨機化4位逆元計算部114的說明(圖23)中向隨機化2位逆元計算部154 (圖23、圖28)輸入的輸入數據D。此外,輸出數據Y相當于E。隨機化2位逆元計算部154將X的高位1位作為XO,低位1位作為XI,通過下面的計算式,計算YO、Yl。<formula>formula see original document page 39</formula>
這里,GF (2A2)上的加法運算是按位加運算(按位加運算部154c)。而且,輸出把YO、 Yl從高位開始依次按該順序結合的數據Y (2位)。另外,隨機化2位逆元計算部154的處理是如下的處理對用屏蔽值
R進行了屏蔽的輸入數據X=M ( + ) R進行合成域GF (2A2)上的逆元計算,生成用屏蔽值R ( — l)屏蔽了的處理結果Y=XA ( —1) (+)RA(_1)。此時,XA (—l)是GF (2A2)上的X的逆元,屏蔽但R: ( — 1)是R在GF (2A2)上的逆元。
接著,對在加密部la的內部使用的隨機數更新部17 (圖9)的詳細內容進行說明。如前所述,隨機數更新部17 (圖9)對隨機數暫時存儲部16 (圖9、圖38)中存儲的隨機數進行更新。
<隨機數更新部17>
圖29是表示隨機數更新部17的結構的框圖。
隨機數更新部17具備合成域變換部170、 8位逆元計算部171及擴張域變換兼矩陣變換部172。
而且,隨機數更新部17對輸入隨機數X (8位)進行隨機數更新處理,將更新隨機數Y (8位)作為輸出數據輸出。這里的輸入數據X與在加密部la的說明(圖9)中隨機數更新部17的輸入隨機數Rn (8位)相對應,輸出數據Y與在加密部la的說明中隨機數更新部17的輸出隨機數Rn+l(8位)相對應。隨機數更新部17進行下面的處理。
(1) 首先,合成域變換部170將輸入數據X從高位開始按每1位進行分割,分割出X7、 X6、…、X0,進行前述的數學式1的矩陣計算,求得A7、 A6、…、A0。并且,合成域變換部170將A7、 A6、…、A0從高位開始按該順序連結的8位數據作為A。
(2) 而且,接著,8位逆元計算部171對在上述(1)中生成的上述A進行在GF ( ( (2、) A2)、)上的逆元計算處理,求得B (8位)。此時,
B=AA ( — 1) inGF ( ( (2八2) '2) '2)
關于GF ( ( (2A2) A2) A2)上的逆元計算處理的詳細內容,將在后面加以說明。
(3) 而且,擴張域變換兼矩陣變換部172將在上述(2)中計算出的B從高位開始按每1位進行分割,分割成B7、 B6、…、B0,進行上述數學式2中的矩陣計算,求得Y7、 Y6、…、Y0。
而且,擴張域變換兼矩陣變換部172將通過上述處理求得的Y7、
40Y6、…、Y0按照該順序連結成的8位數據作為Y,作為隨機數更新部17的輸出數據進行輸出。
接著,對隨機數更新部17中用到的8位逆元計算部171的詳細內容進行說明。
<8位逆元計算部171〉
圖30是表示8位逆元計算部171 (圖29)的結構的框圖。
8位逆元計算部171(圖30、圖29)具備17次方計算部171b(圖15)、4位逆元計算部171c (圖21) 、 4位乘法部171d (圖19) 、 4位乘法部171e (圖19)及按位加部171a。
然后,8位逆元計算部171對輸入數據X (8位)進行GF ( ( (2A2)A2)、)上的逆元計算,生成計算結果即輸出數據Y (8位)。此時,
Y=XA ( — 1) inGF ( ( (2A2) A2) A2)
這里的輸入數據X與在隨機數更新部17的處理說明(圖29)中向8位逆元計算部171輸入的輸入A相對應,輸出數據Y與8位逆元計算部171的輸出數據B相對應。8位逆元計算部171進行下面的處理。
(1) 8位逆元計算部171將輸入數據X從高位開始按每4位進行分割,分割為XO、 XI。然后,8位逆元計算部171將分割的X0輸入按位加部171a、 17次方計算部171b、 4位乘法部171d。此外,8位逆元計算部171將分割的XI輸入到按位加部171a、 17次方計算部171b。
(2) 然后,17次方計算部171b對輸入到該17次方計算部171b的XO、 X1進行GF ( ( (2、) A2) A2)上的17次方計算,求得其結果A (4位)。這里,對將XO、 XI依照該順序結合而成的數據X (8位)進行了GF ( ( (2A2) A2) A2)上的17次方運算的結果,成為A。艮P
A=XA17 in GF ( ( (2八2) A2) A2)
此外,根據八、5= XA255=1 in GF ( ( (2、) A2) A2) , A的位數是15,因此A是GF ( (2A2) 1)上的元素。因此,A成為4位數據。有關17次方計算部171b的詳細內容,和已經說明的17次方計算部110X(17次方計算部110 (圖16) 、 17次方計算部112 (圖16):圖15)相同。
(3) 接著,4位逆元計算部171c (圖30)對上述(2)中生成的上述A (4位)進行GF ( (2A2) A2)上的逆元計算,生成數據B (4位),并輸出。此時,B=AA ( — 1) inGF ( (2A2) A2)
4位逆元計算部171c的詳細內容和已經說明的4位逆元計算部116(圖21)相同。
(4)然后,8位逆元計算部171根據在上述(3)中生成的上述B (4位)及在上述(1)中分割的X0、 XI,經過下面的計算,分別通過4位乘法部171d、 4位乘法部171e,求得下面的Y0 (4位)、Yl (4位)。
Y0=X0XB in GF ( (2、) A2)
Yl= (X0+X1) XB in GF ( (2"2)、)
然后,8位逆元計算部171將上述YO、 Yl從高位開始按該順序連結而成的S位數據Y作為該8位逆元計算部171的輸出來輸出。
GF ( (2A2) A2)上的加法運算是對每個位的按位加運算(按位加部171a) 。 GF ( (2A2) 1)上的乘法運算(4位乘法部171d、 171e)的詳細內容跟前面己經說明的相同(圖19的4位乘法部20)。
以上,說明了加密裝置1的全部詳細動作。
接著,對隨機化S—boxl20a 120p(圖13)保持與AES加密的S—box之間的兼容性、以及處理過程中的數據被屏蔽的情況加以說明。<隨機化8位逆元計算部101的原理〉
隨機化8位逆元計算部101 (圖14)將合成域GF ( ( (2、) A2)、)上的元素X二M+R (圖38中ID8t:Tl (V8t) +T1 (Rt) 、 M=T1 (V8t)、R=T1 (Rt))作為輸入,輸出Y=MA( —1) + R ( — l)(圖38中的OD8t=Tl(V8t) A ( — l) +T1 (Rt) A ( — 1))。這里,MA ( — 1) 、 RA ( — 1)分別表示M、 R的在GF ( ( (2A2) A2)、)中的逆元。下面,對此進行說明。
17次方計算部110 (圖14、圖15)的輸出值A利用擴張域的性質等,變成如下形式。A=XA17
=(M+R) 、7
=(M+R) X (M+R) 、6
=(M+R) X (MA16+RA16)
=Mfl 7+Ra1 7+MAl 6 X R+M X R、 6這里,由于GF ( ( (2A2) A2) A2)是將GF ( (2、) A2)用不可約多
42項式xA2+x+1100 (二進制數)進行2次展開的,所以如果把a作為xA2+x+1100 (二進制數)的根,則M、 R就能夠表示為如下。
M: M0X a +M1
R: R0X a +R1
此時,如果使用擴張域的性質等,則能夠如下計算出MA16XR+MXR、6。
(MOX a+M1) A16X (RO X a+R1 ) + (MO X a+M1 ) X (ROXa+R1) 、6
={MOX a + (M0+M1) }X (ROX a +R1 ) + (MOX a +M1) X {ROXa + (R0+R1) }
=(MO+RO) XR1+ (Ml+Rl) XRO
這與在圖14的隨機化8位逆元計算部101的處理中的X0XR1+X1XRO相等。因此,能夠表示為
A=MA17+RA17+X0XR1+X1 XRO
但是,由于4位校正項計算部111 (圖14、圖16)計算B:X0XR1+X1XRO,結果,向隨機化4位逆元計算部114 (圖14、圖23)輸入的輸入數據D是
D=A+B=MA17+RA17
隨機化4位逆元計算部114如后面所述進行如下處理對于輸入D=MA17+RA17、 C=RA17,輸出輸出E二M" ( — 17) +RA ( — 17)。此時,4位輸出計算部118、 119相當于分別分為高位4位和低位4位來進行以下的計算。
Y=EXF+GXF+HXE={MA ( — 17) +RA ( — 17) }X (M+R) 、6+RA ( — 17) X (M+R)A16+RA16X{MA ( — 17) +RA ( — 17) }
計算上述的數學式,則Y^Nf (_1) +RA ( — l),可知隨機化8位逆元計算部101進行將X二M+R變換為Y=MA ( — l) +RA ( — 的處理。
然后,作為這樣地將X^M+R變換為Y=MA ( — l) +RA ( — l)的隨機化8位逆元計算部101的一部分的隨機化4位逆元計算部114 (圖14、圖23),由于在GF ( (2A2) A2)上進行和上述同等的處理,因此和上述一
43樣的說明也成立。因此,可知對于輸入D= MA17+RA17和C=RA17的輸入, 輸出E= MA ( — 17) +R ( — 17)。進一步,對于隨機化4位逆元計算部 114也是同樣的,這一點可通過對X、 R的全部的值的組合實際進行計算 來確定。
通過以上的處理,說明了隨機化8位逆元計算部101進行如下的處理 將合成域GF ( ( (2A2) A2) A2)上的元素X二M+R變換為Y=MA ( — l) +RA (—1)。
<隨機化S—boxl20a 120p的動作原理>
接著,對隨機化S — boxl20a 120p (圖13、圖12)的動作原理進行說 明。在圖13中,若設X二M+R (圖38中IC8t=V8t+Rt, M=V8t, R=Rt), 則合成域變換部100的輸出就變為A=T (X) =T (M) +T (R)(圖38中 的ID8t=Tl (V8t) +T1 (Rt))。這里,T (X)(圖38中的Tl)是將 GF (2A8)上的元素變換成合成域GF ( ( (2A2)、)、)上的元素的結果。 同樣地,其他的合成域變換部103將R (圖38中的Rt)變換成S=T (R) (圖38中的RDt二Tl (Rt))。
然后,如先前的說明,隨機化8位逆元計算部101根據A=T (M) +T (R) 、 S=T (R)的輸入,生成B:T (M) A ( — 1) +T (R) A ( — 1)(圖 38中的OD8戶Tl (V8t) A ( — l) +T1 (Rt) ( — l))。然后,擴張域變 換兼矩陣變換部102 (圖13)在將合成域GF ( ( (2A2) A2) A2)上的元素 變換為GF (2A2)上的元素后,將進行了 AES加密的S — box中定義的仿 射變換中的僅矩陣運算部分的結果進行輸出。即,C二Mat (MA ( — ) +Mat (RA (_1))被輸出(圖38中的Mat (V8f ( — 1) ) +Mat (Rf (— 1)))。
這里,Mat (X)是表示對X進行上述矩陣運算即AES加密的S—box 中定義的仿射變換中的矩陣運算的結果。然后,按位加部104 (圖13)將 輸入的上述C和常數01100011 (二進制數)進行GF (2A8)上的加法運算, 該常數由AES加密的S — box定義的仿射變換來定義的常數加法運算中的 常數。即,按位加部104的輸出結果Y成為Y= {Mat (Nf ( — l)) +01100011}+Mat(RA( — 0)(圖38中的Mat(V8f( — 1 ) )+01100011+Mat (RtA ( — l))。上式中的"部分即是對于M進行AES加密的S—box變 換的結果,能夠表示為Y=S —box[M]+ Mat (R八(一l))(圖38中的S—box[V8t]+Mat (RtA ( — l)))。這里的S—box[X]表示對X進行AES 加密的S—box變換的結果。 <加密裝置1的動作原理>
接著,加密裝置1對保持與AES加密算法之間的兼容性的情況加以說明。
首先,在圖9中,明文數據P (128位)通過隨機數R0 (8位)被屏 蔽。屏蔽處理部10的處理結果A成為A=P+ (R0, R0,…,R0)。接著, 根據AddRoundKey 11的處理結果變換為B=P+RK0+ (R0, R0,…,R0)。 這里,P+RK0是未屏蔽時的AddRoundKey的處理結果,如果把P+RK0設 為M,貝U B=M+ (R0, R0,…,R0)。接著,對于n=l 9,進行隨機化 Round—nl2處理,對于此,參照圖10進行說明。
在圖10中,若把未屏蔽時的隨機化Round—n12的輸入值(即原值) 設為M,則輸入X表示為X=M+(R0, R0,…,R0)。隨機化SubBytes120 如圖12所示,是由隨機化S—box構成的處理。現在,如果將M從高位開 始按每8位進行分割,分割成M0、 Ml、…、M15,則
X= (M0、 Ml、…、M15) + (R0、 R0、…、R0)
這里,根據先前的隨機化S—boxl20a 120p的動作原理說明,隨機化 SubBytes120的輸出Y表示為Y= (S —box岡,S—box[Ml],…,S — box[M15]) + (Mat[R(f ( —1) ], Mat[R(f ( — 1 )],…,Mat[R(T ( — 1 )])。 即,
Y= SubBytes (M) + (Mat[RCT ( — 1 ) ], Mat[R0A ( — 1) ], ..., Mat[R(T (一l)])
艮口,隨機化SubBytes120的輸出數據是用(Mat[R(f ( — 1) ], Mat[R(T (—1)],…,Mat[R(T( —1)])進行了屏蔽的數據。接著,關于ShiftRows121 的輸出、MixColumnl22的輸出,則可知都通過直接執行AES加密算法標 準中規定的ShiftRows處理、MixColumn處理,能夠得到用(Mat[R(T( — 1) ], Mat[R(T ( — 1)〗,…,Mat[R(f ( — 1)])屏蔽了的ShiftRows處理 結果、MixColumn處理結果。因此,如果隨機化Round—n12處理的輸入值 己用R進行了屏蔽,則其輸出值以用Mat[R(T ( —1)]屏蔽了的狀態輸出。 因此,作為Rh Mat[R(T ( — l)],如果執行『1的隨機化Round—nl2處 理,則用Rl屏蔽了的狀態下的輸入數據則輸出用R2= Mat[RlA ( — l)]屏蔽了的狀態的輸出數據。另外,Mat[RCT (—l) ]、 Mat[RlA ( — l)]的 處理是圖29的隨機數更新部處理。如果反復進行以上的直到隨機化 Round—10 13的處理,則作為隨機化Round—10 13 (圖9、圖11)的輸出數 據,輸出用Rl一Mat[R10八(一1)]對密文C進行了屏蔽的狀態的數據, 所述密文C是對明文P進行了 AES加密處理的結果。因此,在中斷屏蔽 部14中,通過用R11進行按位加處理來得到密文C (圖9)。
此外,從前面的動作原理的說明也可知,加密處理過程的中間數據始 終被用根據隨機數R0或R0通過規定的運算算出的值實施了屏蔽。因此, 通過電力分析攻擊來對加密裝置1進行密鑰分析變得困難。
圖38是表示加密裝置1及加密裝置1具有的部分之間的包含關系、 它們的整體、部分之間的輸入輸出數據的圖。參照圖38,整理上述說明中 所示的它們的包含關系及輸入輸出數據。
加密部la(圖9、圖31)被輸入明文U,輸出密文C。
這里,圖38所示的Vt (t=l~ll)的標記是對明文U實施了直到輪t 為止的處理的中間數據。加密部la通過直到輪(t一l)為止的處理,生成 將該Vt用隨機數Rt進行了屏蔽的隨機化輸出數據OAt=Vt+{Rt, Rt,…, Rt}。
隨機數暫時存儲部16 (圖9)將隨機數RO提供給屏蔽處理部10,將 隨機數Rl 隨機數R10提供給具有隨機化8位逆元計算部101的隨機化S 一boxl21X,將隨機數Rll提供給中斷屏蔽處理部14。
隨機化Round一tl2X (圖9、圖10、圖11)在各輪處理中,分別被輸 AlAt=Vt+{Rt, Rt,…,Rt}(圖9中的B或D、圖10及圖11中的X) 和隨機數Rt (圖9的Rn、圖10的Rn、圖11的R10),將對所輸入的IAt 表示的作為原值的中間值Vt進行了第t輪處理后的中間數據V (t+l), 用隨機數R(t+l)進行屏蔽而得到OAt^V(t+l)+(R(t+l) , R(t+1),…, R (t+l) },并輸出該得到的OAt。這里,隨機化輸出數據OAt的去除了 屏蔽值的影響的原值是被實施了第t輪處理的上述中間數據V。
隨機化SubBytesl20X (圖10、圖11、圖12)被輸入作為向隨機化 Round—tl2X輸入的輸入數據IAt的IB,IAt:Vt+(Rt, Rt,…,Rt }(圖10 及圖11的X、圖12的X)及隨機數Rt (圖12的R、圖10的Rn、圖11 的R10),輸出被實施了第t輪SubBytes處理的OBt-S—Box( Vt)+{ R(t十1),R(t+1),…,R(t+1)}(圖10及圖11的A、圖12的Y)。
隨機化S—Boxl21X (圖12、圖13)中被輸入向隨機化SubBytes輸 入的輸入數據IBt被分割的8位IC8t=IB8t=V8t+Rt (圖12所示的X[O]、 X[l]、、或X[15]中任一個、圖13的X)及隨機數Rt (圖13的R、圖 12的R),輸出對該8位進行了第t輪S—Box處理的OC8t=S—box (V8t) +R (t+l)(圖12的Y[O]、 Y[l]、…、或Y[15]中任一個、圖13的Y)。
然后,隨機化8位逆元計算部101 (圖13、圖14),設基于數學式l 的矩陣計算(參照合成域變換部100及合成域變換部103的說明)由標記 Tl表示,被輸入基于輸入到隨機化S — box的上述IC8t的ID8t=Tl (IC8t) =T1 (V8t) +T1 (Rt)和基于隨機數暫時存儲部16的隨機數Rt的RDt41 (Rt)(圖13的S、圖14的R),根據這些輸入把M+P運算為MA ( —1) +PA ( — 1),并輸出作為運算結果的OD8t二Tl(V8t)A (一l) +Tl(Rt)A (— 1)(圖13的B、圖14的Y)。
這里,隨機化S — Boxl21X (圖13、圖12)基于該隨機化8位逆元計 算部101的輸出OD8t=Tl(V8t)A ( — l) +Tl(Rt)A ( — 1)(圖13的B、圖 14的Y),利用擴張域變換兼矩陣變換部102和按位加部104進行計算, 求出OC8t:(Mat (V8tA ( — l) ) + Mat (Rf ( — l) ) }+01100011={ Mat (V8f ( — l) ) + 01100011}+ Mat (RtA ( — l) ) =S—box (V8t) + Mat (Rf ( — l) ) =S —box (V8t) +R (t+1),并輸出所求得的該OC8t (圖 12的Y
、 Y[l]、…、或Y[15]中任一個、圖13的Y)。
然后,隨機化SubBytes 120X (圖12、圖10、圖11)將由各個隨機化 S—boxl20X (隨機化S—boxl20a 隨機化S—boxl20p)輸出的該OC8t進 行連結,輸出輸出數據OBt=S—box(Vt)+{R(t+l) , R(t+1),…R(t+1) } (圖10及圖11的A,圖12的Y)。
由此,隨機化Round一tl2X根據輸出的OBt,例如進行ShiftRows處理 等,計算OAt:V (t+1) +{R (t+l) , R (t+l),,…R (t+l) },將計算 出的OAt作為隨機化RoimdJ12X的下一輪及第t+l輪的隨機化輸入數據 IAt,輸入到隨機化Round—tl2X。
由此,在中斷屏蔽處理部14中,經由t二10時的隨機化Round一tl2X, 被輸入OAt=OA10=Vll+{Rll, Rll,…,Rll},此外,從隨機數暫時存 儲部16被輸入隨機數Rll (圖9的E,圖11的Y),通過對被輸入的該
47OA10=V11+{R11, Rll,…,Rll)用隨機數Rll進行按位加運算,輸出密 文OVll。
通過以上處理,利用密鑰(RK0等)從明文U (圖38)生成密文C (圖 38)的加密裝置1,其特征在于,具備隨機數生成部15,生成隨機數R0; 隨機化輸入數據生成部(屏蔽處理部10 (圖9、圖38、 AddRoundKeyll
(圖9)、隨機化Round—n12中的合成域變換部100 (圖13)、擴張域變 換兼矩陣變換部102 (圖13)、按位加部104 (圖13)),接收上述明文 U,將根據上述隨機數RO決定的預定的輸入屏蔽值T1 (Rt)和對上述明 文U用上述密鑰(RK0等)進行了預定的處理的輸入數據T1 (V8t)相加, 生成隨機化輸入數據T1 (V8t) +T1 (Rt);隨機化8位逆元計算部101, 接收由上述隨機化輸入數據生成部生成的上述隨機化輸入數據ID8t和上 述輸入屏蔽值T1 (Rt) =RDt,將所接收的上述輸入屏蔽值的在預定的第1 有限域中的逆元即輸出屏蔽值T1 (Rt) A ( — 和上述輸入數據T1 (V8t) 的在該第1有限域中的逆元T1 (V8t) A ( — l)相加,生成隨機化輸出數 據T1 (V8t) A ( — 1) +T1 (Rt) A ( — 1);輸出部(隨機化Round—10 13 中的擴張域變換兼矩陣變換部102 (圖13)及按位加部104 (圖13)、 ShiftRows131 (圖11) 、 AddRoundKey 132 (圖11)、中斷屏蔽處理部14
(圖9、圖38)),接收上述隨機化8位逆元計算部101生成的隨機化輸 出數據OD810 (t=10),根據所接收的該隨機化輸出數據生成上述密文C。 而且,該加密裝置l中,上述隨機化8位逆元計算部101包括17次 方計算部110、 112 (圖14),對上述隨機化輸入數據ID8t (圖14的X)、 上述輸入屏蔽值(Tl (Rt)、圖14的R)進行預定的第1指數(17次方) 的乘方運算,分別通過各乘方運算生成第1乘方隨機化輸入數據(圖14 中的A)和第1乘方輸入屏蔽值(圖14的C) ; 4位校正項計算部111 (圖 14、圖16),根據上述隨機化輸入數據(圖14的X)和上述輸入屏蔽值
(圖14的R),生成預定的校正數據(圖14的B);按位加部U3 (圖 14),將生成的上述校正數據(圖14的B)與計算出的上述第1乘方隨機 化輸入數據(圖14的A)相加,生成副隨機化輸入數據(圖14的D); 隨機化4位逆元計算部114 (圖14、圖23),接收上述副隨機化輸入數據
(圖14的D)和上述第1乘方輸入屏蔽值(圖14的C),將該第一乘方 輸入屏蔽值(圖14的C)的在第2有限域中的逆元即屏蔽值(CT ( —1))
48與上述副隨機化輸入數據(圖14的D)的在上述第2有限域中的逆元即 輸出數據(DA ( — 1))相加,生成隨機化副輸出數據(圖14的E二DA (— 1) +CA ( — 1));其他部分,根據上述隨機化副輸出數據(圖14的E)、 上述隨機化輸入數據(圖14的X)、上述輸入屏蔽值(圖14的R)、上 述第1乘方輸入屏蔽值(圖14的C)來生成上述隨機化輸出數據(圖14 的Y)。
而且,這里,"其他部分"包括16次方計算部115、 117 (圖14、 圖17),對上述隨機化輸入數據(圖14的X)和上述輸入屏蔽值(圖14 的R)進行預定的第2指數(16次方)的乘方計算,通過各個乘方計算, 分別生成第2乘方隨機化輸入數據(圖14的F)和第2乘方輸入屏蔽值(圖 14的H) ; 4位逆元計算部116 (圖15、圖21),對上述第l乘方輸入屏 蔽值(圖14的C)進行在上述第2有限域上的逆元計算,生成上述第1 乘方輸入屏蔽值(圖14的C)的在上述第2有限域中的逆元即逆元乘方輸 入屏蔽值(圖14的G);其他部分(4位輸出計算部118及4位輸出計算 部119),根據上述隨機化副輸出數據(圖14的E)、上述第2乘方隨機 化輸入數據(圖14的F)、上述第2乘方輸入屏蔽值(圖14的H)、上 述逆元乘方輸入屏蔽值(圖14的G),生成上述隨機化輸出數據(圖14 的Y)。
此外,該加密裝置1對上述明文U進行AES (Advanced Encryption Standard)加密的加密處理,生成AES加密的密文C,上述輸入數據的逆 元T1 (V8t) A ( — l)是對上述輸入數據T1 (V8t)進行了與AES加密的 Sbox表等價的逆元計算及仿射中的逆元計算而得的計算結果。
因此,根據該加密裝置l,通過級數少的簡單結構能夠進行AES加密 方式的加密的逆元計算,進而能夠進行AES加密的加密處理。
此外,該加密裝置1進一步具備屏蔽值生成部(隨機數更新部17及 合成域變換部103 (圖9、圖13、圖29)),用于生成上述隨機化8位逆 元計算部101使用的上述輸入屏蔽值RDt。
由此,能夠在加密裝置l內生成輸入屏蔽值,使系統的結構變簡單。
而且,該加密裝置1的上述屏蔽輸入數據生成部具備第1部分(屏 蔽處理部10 (圖38、圖9) 、 AddRoundKeyll (圖9)、合成域變換部100 (圖13)),根據上述明文U,生成第1隨機化輸入數據ID8t=ID81=Tl(V81) +T1 (Rl);第2部分(擴張域變換兼矩陣變換部102 (圖13)、 按位加部104 (圖13)、隨機化Round—n12中的S礎Rowsl21 (圖10)、 MixColumns122 (圖10) 、 AddRoundKey123 (圖10)、合成域變換部100), 接收第(t一l)的隨機化輸出數據OD8 (t—l),加上根據第(t一l)輸 出屏蔽值RD (t—l) A ( — l) -T1 (Rt)決定的預定的第t輸入屏蔽值Tl
(Rt) =T1 (Mat (RtA ( — l ))),生成第t隨機化輸入數據ID8t=Tl (V8t) +T1 (Rt) (2《t《J)。上述屏蔽值生成部根據所生成的上述隨機數RO, 生成上述第1輸入屏蔽值RD1 第J輸入屏蔽值RDJ (J=10);隨機化8 位逆元計算部101根據上述第1部分生成的上述第1隨機化輸入數據ID81 和所生成的上述第1輸入屏蔽值RD1,生成上述第1隨機化輸出數據 OD81,并且,根據由上述第2部分生成的上述第t隨機化輸入數據ID8t(2 《t《J)和所生成的上述第t輸入屏蔽值RDt,生成上述第t隨機化輸出數 據OD8t (2《t《J)。
另外,這里,該加密裝置1中,上述第1部分(屏蔽處理部10 (圖 38、圖9) 、 AddRoundKeyll (圖9)、合成域變換部100 (圖13))從 上述屏蔽值生成部(隨機數更新部17),取得用于確定第1輸入屏蔽值 RD1=T1 (Rl)的確定數據R0,根據所取得的確定數據RO和上述明文U, 生成已加上了上述第1輸入屏蔽值RD^T1 (Rl)的上述第l隨機化輸入 數據ID8,ID8^T1 (V81) +T1 (Rl)。上述屏蔽值生成部(隨機數更新 部17)生成用于確定上述第J的輸出屏蔽值T1 (R10) A ( — l)的確定數 據Rll,上述輸出部接收所生成的該確定數據Rll和第J隨機化輸出數據 OD8t,并根據這些數據生成上述密文C,該第J隨機化輸出數據OD8t是 加上了該確定數據Rll所確定的上述第J輸出屏蔽值T1 (R10) A ( — l) 而得到的數據。
另外,上述屏蔽值生成部具備保持部(隨機數暫時存儲部16(圖9)), 該保持部保持值,若生成上述隨機數R0,則保持所生成的隨機數R0;保 持控制部(隨機數更新部17 (圖9)),根據保持的隨機數R (t—l)生 成隨機數Rt,將生成的隨機數Rt保持在上述保持部,上述隨機數Rt用于 通過預定的計算算出上述第t輸入屏蔽值;計算部(合成域變換部103 (圖 13)),根據所保持的上述隨機數Rt,分別通過上述計算算出上述第t輸 入屏蔽值(t=l、 2、…、J)。由此,通過保持隨機數Rt,能夠根據所保持的隨機數Rt,通過簡單處 理算出第(t+l)的輸入屏蔽值,能夠通過簡單處理算出各個輸入屏蔽值。 另外,在請求范圍內記載的"隨機數生成部"例如可以解釋為對應于
隨機數生成部15、隨機數暫時存儲部16及隨機數更新部17的整體。在這
樣解釋的情況下,請求范圍內記載的"屏蔽值生成部"也可以理解為不對
應于上述隨機數更新部17及合成域變換部103,只對應于合成域變換部 103。
另外,這樣的加密裝置1也可以具備分別設置了用于實現上述各部分 的電路的集成電路,該集成電路也可以使用這些各部分來發揮上述作用, 來執行上述方法。
<解密裝置3>
對應于解密裝置1的解密裝置3的結構如圖31 圖37所示。這些處理 是加密裝置1的處理的逆變換處理,由于基本的處理流程和加密裝置1中 說明的內容相同,省略其詳細說明。另外,在圖36中的隨機化InvS — Box331a 331p的合成域變換兼矩陣變換部300中,下面的矩陣運算式使用 數學式3
<formula>formula see original document page 51</formula>
同樣的在圖36中所示的擴張域變換部302中,下面的矩陣運算式使 用數學式4廣 、 Y7廣 i000,11、 0廣 、 已7
Y6011〇1100B6
Y5000〇1110已5
Y411010010已4
Y3—01001010已3
Y2〇0101010已2
Y10010000B1
1001011:
由此,使用密鑰根據密文生成明文的解密裝置3,其特征在于,具備:
隨機數生成部35 (圖32),生成隨機數;輸入部(屏蔽處理部30(圖32)、 AddRoundKey31 (圖32) 、 InvShiftRows320 (圖33)、圖36所示的按位 加部、隨機化IiwRound_n32 (圖32、圖33)所具備的擴張域變換部302 (圖36) 、 AddRoundKey322 (圖33) 、 InvMixColumns323 (圖33)、隨 機化InvRound—0 33 (圖34)所具備的InvShiftRows330 (圖34)),接收 上述密文,將根據上述隨機數決定的預定的輸入屏蔽值和對上述密文根據 上述密鑰進行了預定的處理的輸入數據相加,生成隨機化輸入數據;8位 隨機化合成域逆元計算部301 (圖36),接收由上述隨機化輸入數據生成 部生成的上述隨機化數據和上述輸入屏蔽值,將接收的上述輸入屏蔽值的 在預定的第1有限域中的逆元即輸出屏蔽值和上述輸入數據的在該第1擴 張域中的逆元相加,生成隨機化輸出數據;輸出部(具有隨機化InvRound—0 33 (圖32、圖34)的擴張域變換部302 (圖36) 、 AddRoundKey332 (圖 34)、中斷屏蔽處理部34 (圖32)),接收由上述8位隨機化合成域逆 元計算部301生成的上述隨機化輸出數據,根據所接收的該隨機化輸出數 據生成上述譯文。
<最大邏輯級數的預估>
在以上說明的實施方式中,預估隨機化8位逆元計算部101 (圖14、 圖13)的最大邏輯級數。預估在電路中實現隨機化8位逆元計算部101時 的關鍵路徑的最大邏輯級數如下
隨機化8位逆元計算部101的關鍵路徑在圖14中如下所示
17次方計算部110=>按位加部113=>隨機化4位逆元計算部114=>4
52位輸出計算部118
而且,在該路徑途中的4位輸出計算部118的關鍵路徑如下(圖18):
4位乘法部118a-〉按位加部1180=>按位加部118e 此外,圖14的路徑的途中的隨機化4位逆元計算部114的關鍵路徑 如下(圖23):
5次方計算部150=〉按位加部153=>隨機化2位逆元計算部154=>2位 輸出計算部158
而且,該圖23中所示的2位輸出計算部158的關鍵路徑如下所示(圖 27):
2位乘法部158a^〉按位加部1580=>按位加部158e 然后,前述的圖23的路徑的途中的隨機化2位逆元計算部154的關 鍵路徑如下所示(圖28): 按位加部154c
通過上述過程,隨機化8位逆元計算部101 (圖14)的最大邏輯級數 成為連續處理下面的處理時的邏輯級數。 17次方計算X1次 5次方計算X1次 4位乘法X1次 2位乘法X1次 按位加運算X7次
另外,這里,上述"按位加運算X7次"中的7次是基于下面的計算 7=1+2+1+2+1的。即,與現有技術2的隨機化8位逆元計算部81 (圖l) 相比,能夠削減ll次按位加運算,能實現最大邏輯級數的削減。■ (變形例)
另外,在本實施方式中,將作為電力分析攻擊對策的對象的加密作為 AES加密,但不僅限于AES加密,只要是在加密處理中使用逆元運算, 或者,在加密處理中所使用的表變換處理是可基于逆元運算構成的加密方 式就可以使用。作為那樣的加密方式,其他的有ISO/IEC 18033 — 3:2005,
"Information technology Security techniques-Encryption algorithms —
一Part3: Block ciphers"有(非專利文獻3)中記載的Camellia加密。
此外,在上述實施方式中,即使作為軟件來實現的情況下,由于沒有
53必要將變換表作為排列來進行保持,所以與以往技術同樣能夠節約代碼規 模,并且,相比以往技術,能夠起到削減加密處理時間的效果。
此外,在上述實施方式中,說明了將全部的處理安裝在運算電路中的 情況,也可以將其中的處理的一部分安裝為變換表。例如,在隨機化4位
逆元計算部114的情況下,作為由4位X16個的要素構成的排列Inv4[16;] 來安裝,對于4位輸入X,可以將4位輸出作為Inv4[X]來輸出。
另外,雖然基于上述實施方式說明了本發明,但本發明當然不限定于 上述實施方式。下面的情況也包含在本發明中。
(1) 上述各裝置具體來說是由下述部件構成的計算機系統微處理 器、ROM、 RAM、硬盤單元、顯示器單元、鍵盤、鼠標等。在上述RAM 或硬盤單元中,存儲有計算機程序。通過上述微處理器按照上述計算機程 序來動作,各裝置實現其功能。這里的計算機程序為了實現規定的功能, 組合多個表示對計算機的指令的命令代碼來構成該計算機程序。
(2) 構成上述各裝置的構成要素的一部分或者全部,也可以由一個 系統LSI (Large Scale Integration:大規模集成電路)構成。系統LSI是將 多個構成部集成到一個芯片上來制造出來的超多功能LSI。具體說來,是 含有微處理器、ROM、 RAM等來構成的計算機系統。在上述RAM中, 存儲有計算機程序。通過上述微處理器按照上述計算機程序來動作,系統 LSI實現其功能。
(3) 構成上述各裝置的構成要素的一部分或者全部也可以是由在各 裝置上可裝卸的IC卡或單體模塊構成。上述IC卡或者上述模塊是由微處 理器、ROM、 RAM等構成的計算機系統。上述IC卡或上述模塊也可以包 含上述超多功能LSI。通過微處理器按照計算機程序進行動作,上述IC卡 或上述模塊實現其功能。該IC卡或者該模塊也可以具有防篡改性。
(4) 本發明也可以是上述所示的方法。此外,也可以是通過計算機 來實現這些方法的計算機程序,也可以是上述計算機程序構成的數字信 號。
此外,本發明也可以將上述計算機程序或者上述數字信號記錄在能夠 通過計算機讀取的記錄介質中,例如,軟盤、硬盤、CD—ROM、 MO、 DVD、 DVD—ROM、 DVD—RAM、 BD (Blu—rayDisc,即藍光盤)、半 導體存儲器等。此外,也可以是存儲在這些記錄介質上的上述數字信號。此外,本發明也可以是將上述計算機程序或者上述數字信號經由電氣 通信線路、無線或有線通信線路、以英特網為代表的網絡、數據廣播等進 行傳送。
此外,本發明也可以是具備微處理器和存儲器的計算機系統,上述存 儲器存儲上述計算機程序,上述微處理器按照上述計算機程序進行動作。
此外,也可以是通過將上述程序或上述數字信號記錄在上述記錄介質 中來進行轉移,或者通過將上述程序或者上述數字信號經由上述網絡等進 行轉移,由獨立的其他的計算機系統實施。
(5) 另外,上述屏蔽值生成部也可以在隨機化8位逆元計算部101 (圖14)根據隨機化輸入數據計算隨機化輸出數據的同時,并行地,在生
成該隨機化8位逆元計算部101在該計算中使用的RDt之后,再生成該隨 機化8位逆元計算部IOI所使用的RD (t+l)等。這樣,隨機化8位逆元 計算部101能夠無延遲地利用該RD (t+l)等,使得加密裝置1高速動作。
(6) 此外,也可以采用下面的方式。 也可以采用加密處理程序的方式,即,使用計算機基于密鑰對明文進
行規定的加密處理來生成密文的加密處理程序,其特征在于,生成隨機數, 接收隨機化輸入數據和輸入屏蔽值,進行第1有限域上的逆元計算,并輸 出隨機化輸出數據,.上述隨機化輸入數據是將輸入屏蔽值和輸出數據相加 來進行了屏蔽的值,上述隨機化輸出數據是將輸出屏蔽值和輸出數據相加 來進行了屏蔽的值,上述輸入屏蔽值是根據上述隨機數決定的值,上述輸 出數據是上述輸入數據的在上述第1有限域中的逆元,上述輸出屏蔽值是 上述輸入屏蔽值的在上述第l有限域中的逆元,使上述計算機進行信息處 理。
此外,也可以采用下面的方式。即,采用使用計算機來用密鑰從明文 生成密文的計算機程序的方式,該計算機程序使計算機實現如下功能隨 機數生成功能,生成隨機數;隨機化輸入數據生成功能,接收上述明文, 把根據上述隨機數決定的預定的輸入屏蔽值和對上述明文根據上述密鑰 進行了預定的處理的輸入數據相加,生成隨機化輸入數據;第l隨機化逆 元數據生成功能,接收由上述隨機化輸入數據生成功能生成的上述隨機化 輸入數據和上述輸入屏蔽值,將接收到的上述輸入屏蔽值的在預定的第1 有限域中的逆元即輸出屏蔽值和該輸入數據的在上述第1有限域中的逆元相加,生成隨機化輸出數據;輸出數據處理功能,接收通過上述第1隨機 化逆元數據生成功能生成的上述隨機化輸出數據,根據接收到的該隨機化 輸出數據生成上述密文。
另外,可以分別通過并列執行相互不同的處理的多處理等來執行這些 加密處理程序、計算機程,在該種情況下,該計算機程序在根據隨機化輸 入數據生成隨機化輸出數據的同時,使上述計算機并行地生成上述輸入屏
(7)也可以分別組合上述實施方式及上述變形例。
工業實用性
本發明涉及的加密裝置,具有面阻止電力分析攻擊、比現有技術更能 削減加密處理的處理量的特征,所以在追求實現高速處理或低成本的加密 裝置的實現中有用。
5權利要求
1、一種加密裝置,使用密鑰,根據明文生成密文,其特征在于,具備隨機數生成部,生成隨機數;隨機化輸入數據生成部,接收上述明文,將根據上述隨機數決定的預定的輸入屏蔽值和對上述明文利用上述密鑰進行了預定的處理的輸入數據相加,生成隨機化輸入數據;第1隨機化逆元數據生成部,接收由上述隨機化輸入數據生成部生成的上述隨機化輸入數據和上述輸入屏蔽值,將接收的上述輸入屏蔽值的在預定的第1有限域中的逆元即輸出屏蔽值和該輸入數據的在上述第1有限域中的逆元相加,生成隨機化輸出數據;以及輸出數據處理部,接收由上述第1隨機化逆元數據生成部生成的上述隨機化輸出數據,根據接收到的該隨機化輸出數據生成上述密文。
2、 如權利要求1所述的加密裝置,其特征在于,上述第1隨機化逆 元數據生成部具備第1乘方計算部,對上述隨機化輸入數據和上述輸入屏蔽值進行預定 的第1指數的乘方計算,分別通過各乘方計算生成第1乘方隨機化輸入數 據和第1乘方輸入屏蔽值;校正數據生成部,根據上述隨機化輸入數據和上述輸入屏蔽值,生成 預定的校正數據;加法部,將所生成的上述校正數據和計算出的上述第1乘方隨機化輸 入數據相加,生成副隨機化輸入數據;第2隨機化逆元數據生成部,接收上述副隨機化輸入數據和上述第1 乘方輸入屏蔽值,將該第1乘方輸入屏蔽值的在預定的第2有限域中的逆 元即屏蔽值和上述副隨機化輸入數據的在該第2有限域中的逆元相加,生 成隨機化副輸出數據;以及隨機化輸出數據生成部,根據上述隨機化副輸出數據、上述隨機化輸 入數據、上述輸入屏蔽值及上述第1乘方輸入屏蔽值,生成上述隨機化輸 出數據。
3、 如權利要求2所述的加密裝置,其特征在于,上述隨機化輸出數據生成部具備第2乘方計算部,對上述隨機化輸入數據和上述輸入屏蔽值進行預定 的第2指數的乘方計算,通過各乘方計算,分別生成第2乘方隨機化輸入 數據和第2乘方輸入屏蔽值;逆元運算部,對上述第1乘方輸入屏蔽值進行上述第2有限域上的逆 元計算,生成該第1乘方輸入屏蔽值的在上述第2有限域中的逆元即逆元 乘方輸入屏蔽值;以及隨機化輸出數據生成部,根據上述隨機化副輸出數據、上述第2乘方 隨機化輸入數據、上述第2乘方輸入屏蔽值及上述逆元乘方輸入屏蔽值, 生成上述隨機化輸出數據。
4、 如權利要求l所述的加密裝置,其特征在于,該加密裝置對上述明文進行AES加密的加密處理,生成AES加密的 密文,上述輸入數據的逆元是對上述輸入數據進行了與AES加密的Sbox表 等價的逆元計算及仿射中的逆元計算而得的計算結果。
5、 如權利要求l所述的加密裝置,其特征在于, 上述隨機化輸入數據生成部具備第1部分,根據上述明文,生成已加上了第1輸入屏蔽值的第1隨機 化輸入數據;第2部分,接收由上述第1隨機化逆元數據生成部生成的第(t一l) 隨機化輸出數據,加上根據上述第(t一l)輸出屏蔽值決定的第t輸入屏 蔽值,生成第t隨機化輸入數據,其中,2《t《J, J是2以上的預定的整 數,該加密裝置進一步具備屏蔽值生成部,該屏蔽值生成部根據上述隨機 數,生成上述第1 第J輸入屏蔽值,上述第1隨機化逆元數據生成部根據上述第1部分生成的上述第1隨 機化輸入數據和所生成的上述第1輸入屏蔽值,生成上述第1隨機化輸出 數據,并且,根據上述第2部分生成的上述第t隨機化輸入數據和所生成 的上述第t輸入屏蔽值,生成上述第t隨機化輸出數據,其中,2《t《J,上述輸出數據處理部根據所生成的第J隨機化輸出數據,生成上述密文。
6、 一種解密裝置,使用密鑰,根據密文生成譯文,其特征在于,具備隨機數生成部,生成隨機數;隨機化輸入數據生成部,接收上述密文,將根據上述隨機數決定的預 定的輸入屏蔽值和對上述密文利用上述密鑰進行了預定的處理的輸入數 據相加,生成隨機化輸入數據;第l隨機化逆元數據生成部,接收由上述隨機化輸入數據生成部所生 成的上述隨機化輸入數據和上述輸入屏蔽值,將所接收到的上述輸入屏蔽 值的在預定的第1有限域中的逆元即輸出屏蔽值和該輸入數據的在上述第 l有限域中的逆元相加,生成隨機化輸出數據;以及輸出數據處理部,接收由上述第1隨機化逆元數據生成部生成的上述 隨機化輸出數據,根據接收到的該隨機化輸出數據生成上述譯文。
7、 一種加密方法,使用密鑰,根據明文生成密文,其特征在于,包括隨機數生成步驟,生成隨機數;隨機化輸入數據生成步驟,接收上述明文,將根據上述隨機數決定的 預定的輸入屏蔽值和對上述明文利用上述密鑰進行了預定的處理的輸入 數據相加,生成隨機化輸入數據;第1隨機化逆元數據生成步驟,接收由上述隨機化輸入數據生成步驟 生成的上述隨機化輸入數據和上述輸入屏蔽值,將接收的上述輸入屏蔽值 的在預定的第1有限域中的逆元即輸出屏蔽值和該輸入數據的在上述第1 有限域中的逆元相加,生成隨機化輸出數據;以及輸出數據處理步驟,接收由上述第1隨機化逆元數據生成步驟生成的 上述隨機化輸出數據,根據接收到的該隨機化輸出數據生成上述密文。
8、 一種集成電路,使用密鑰,根據明文生成密文,其特征在于,具備隨機數生成部,生成隨機數;隨機化輸入數據生成部,接收上述明文,將根據上述隨機數決定的預 定的輸入屏蔽值和對上述明文利用上述密鑰進行了預定的處理的輸入數 據相加,生成隨機化輸入數據;第l隨機化逆元數據生成部,接收由上述隨機化輸入數據生成部生成的上述隨機化輸入數據和上述輸入屏蔽值,將所接收的上述輸入屏蔽值的 在預定的第1有限域中的逆元即輸出屏蔽值和該輸入數據的在上述第1有 限域中的逆元相加,生成隨機化輸出數據;以及輸出數據處理部,接收由上述第1隨機化逆元數據生成部生成的上述 隨機化輸出數據,根據所接收到的該隨機化輸出數據生成上述密文。
全文摘要
作為針對AES加密的電力分析攻擊對策,如果采用通過合成域上的逆元計算安裝S-Box的屏蔽法,則存在最大邏輯級數變大而處理速度降低的問題。本發明的加密裝置(1),使用密鑰,根據明文生成密文,具備隨機化8位逆元計算部(101),接收隨機化輸入數據和輸入屏蔽值,將接收到的上述輸入屏蔽值的逆元即輸出屏蔽值和該輸入數據的逆元相加,生成隨機化輸出數據,上述隨機化輸入數據是將根據隨機數決定的預定的上述輸入屏蔽值和利用上述密鑰進行了預定的處理的輸入數據相加得到的數據;該加密裝置根據所生成的該隨機化輸出數據,生成上述密文。
文檔編號G09C1/00GK101542558SQ20088000061
公開日2009年9月23日 申請日期2008年5月26日 優先權日2007年5月30日
發明者太田雄策, 橫田薰 申請人:松下電器產業株式會社