JP4967544B2 - 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム - Google Patents
暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム Download PDFInfo
- Publication number
- JP4967544B2 JP4967544B2 JP2006238223A JP2006238223A JP4967544B2 JP 4967544 B2 JP4967544 B2 JP 4967544B2 JP 2006238223 A JP2006238223 A JP 2006238223A JP 2006238223 A JP2006238223 A JP 2006238223A JP 4967544 B2 JP4967544 B2 JP 4967544B2
- Authority
- JP
- Japan
- Prior art keywords
- processing
- round
- function
- encryption
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000012545 processing Methods 0.000 title claims description 358
- 238000003672 processing method Methods 0.000 title claims description 21
- 238000004590 computer program Methods 0.000 title claims description 14
- 230000006870 function Effects 0.000 claims description 506
- 238000000034 method Methods 0.000 claims description 241
- 230000008569 process Effects 0.000 claims description 221
- 239000011159 matrix material Substances 0.000 claims description 110
- 230000007246 mechanism Effects 0.000 claims description 68
- 238000009792 diffusion process Methods 0.000 claims description 66
- 230000009466 transformation Effects 0.000 claims description 50
- 238000006243 chemical reaction Methods 0.000 description 54
- 230000007480 spreading Effects 0.000 description 13
- 238000004422 calculation algorithm Methods 0.000 description 10
- 238000004458 analytical method Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 8
- 230000009467 reduction Effects 0.000 description 7
- 230000007423 decrease Effects 0.000 description 6
- 239000000470 constituent Substances 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 230000014759 maintenance of location Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000013478 data encryption standard Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0625—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/122—Hardware reduction or efficient architectures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/24—Key scheduling, i.e. generating round keys or sub-keys for block encryption
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Description
(暗号化関数)
C=E(P,RK1,RK2,・・・,RKr)
(復号関数)
P=D(C,RK1,RK2,・・・,RKr)
=E(C,RKr,RKr−1,・・・,RK1)
上記より、復号関数Dは、ラウンド鍵の順番を入れ替えた暗号化関数Eと等価であるといえる。
K. Nyberg, "Generalized Feistel networks", ASIACRYPT'96, SpringerVerlag, 1996, pp.91--104. EYuliang Zheng, Tsutomu Matsumoto, Hideki Imai: On the Construction of Block Ciphers Provably Secure and Not Relying on Any Unproved Hypotheses. CRYPTO 1989: 461-480
データ系列数:dをd≧3の整数とした拡張型Feistel構造を適用した暗号処理を実行する暗号処理装置であり、
暗号化処理および復号処理に共通のスワップ処理を含むデータ処理を実行するデータ処理部を有し、
前記データ処理部は、
暗号化処理と、復号処理において、適用ラウンド鍵の変更を行なうことで、暗号化処理と復号処理のいずれの処理においても前記共通のスワップ処理を含むデータ処理を実行する構成であることを特徴とする暗号処理装置にある。
暗号処理装置において、データ系列数:dをd≧3の整数とした拡張型Feistel構造を適用した暗号処理を実行する暗号処理方法であり、
データ処理部において、暗号化処理および復号処理に共通のスワップ処理を含むデータ処理を実行するデータ処理ステップを有し、
前記データ処理ステップは、
暗号化処理と、復号処理において、適用ラウンド鍵の変更を行なうことで、暗号化処理と復号処理のいずれの処理においても前記共通のスワップ処理を含むデータ処理を実行することを特徴とする暗号処理方法にある。
暗号処理装置において、データ系列数:dをd≧3の整数とした拡張型Feistel構造を適用した暗号処理を実行させるコンピュータ・プログラムであり、
データ処理部において、暗号化処理および復号処理に共通のスワップ処理を含むデータ処理を実行させるデータ処理ステップを有し、
前記データ処理ステップは、
暗号化処理と、復号処理において、適用ラウンド鍵の変更を行なうことで、暗号化処理と復号処理のいずれの処理においても前記共通のスワップ処理を含むデータ処理を実行させるステップであることを特徴とするコンピュータ・プログラムにある。
1.SP型F関数を持つFeistel構造
2.2つのデータ系列を持つFeistel構造に対する拡散行列切り替え機構(DSM)の設定法
3.拡張型Feistel構造(GFN:Generalized Feistel Network)について
(3−1)拡散行列切り替え機構(DSM)を持たない拡張型Feistel構造(GFN)について
(3−2)拡散行列切り替え機構(DSM)を持つ拡張型Feistel構造(GFN)について
4.拡張型Feistel構造(GFN)におけるインボリューション性保持構造について
(4−1)拡散行列切り替え機構(DSM)を持たない拡張型Feistel構造(GFN)におけるインボリューション性保持構造について
(4−2)拡散行列切り替え機構(DSM)を持つ拡張型Feistel構造(GFN)におけるインボリューション性保持構造について
5.暗号処理装置の構成例
まず、SP型F関数を持つFeistel構造について説明する。共通鍵ブロック暗号のデザインとして知られているFeistel構造はラウンド関数と呼ばれる基本処理単位の繰り返しにより、平文を暗号文に変換する構造を持つ。
先に説明したように、Feistel構造を適用した暗号処理において、差分攻撃や線形攻撃に対する耐性を高める構成として、拡散行列切り替え機構(DSM:Diffusion Switching Mechanism,以下DSM)を適用した構成が提案されている。DSMは、Feistel構造のラウンド関数(F関数)部の線形変換部において適用する行列をすべてのラウンドで同一とするのではなく、少なくとも2つ以上の異なる行列を各ラウンドに配置する構成である。このDSMにより、差分攻撃や線形攻撃に対する耐性を向上させることが可能となる。
F関数F0は、線形変換行列M0を適用した線形変換処理を実行するF関数、
F関数F1は、線形変換行列M1を適用した線形変換処理を実行するF関数、
を示している。
2つの線形変換行列M0,M1は、異なる行列によって構成される。
適用行列中の分岐数の最小値:B1 Dと、
適用する複数の行列の結合行列に対応する分岐数の最小値:B2 D,B3 D,B2 L
を以下のように定義する。
Miは、Feistel構造における第iラウンドの線形変換処理に適用する線形変換行列を示し、
[Mi|Mi+2|・・]は、Mi|Mi+2|・・各行列の連結により得られる結合行列を示し、
tMは、行列Mの転置行列、M−1は、行列Mの逆行列を示す。
B2 D≧3, B3 D≧3, B2 L≧3、
上記条件を満足させるように各行列を設定することで、Feistel構造において、差分攻撃や線形攻撃に対する耐性を向上させることが出来ることが知られている。
なお、B1 D,B2 D,B3 D,B2 Lにおける各添え字は以下の意味を持つものである。
Bn Dのnは結合する行列数、Bn DのDは差分攻撃(Differential Attack)に対する耐性を持つための条件であることを示し、Bn LのLは線形攻撃(Linear Attack)に対する耐性を持つための条件であることを示している。
拡張型Feistel構造(GFN:Generalized Feistel Network)について説明する。本発明において取り扱うのはSP型のF関数を使う点では上記の2つのデータ系列を持つFeistel構造と同じであるが、データ系列数(分割数)を3以上の任意数:dとした拡張型Feistel構造(GFN)を対象とする。dは3以上の整数である。
まず、拡散行列切り替え機構(DSM)を持たない拡張型Feistel構造(GFN)を持つ暗号化処理構成の構成例を図8に示す。なお、図8に示す暗号化処理構成は、ハードウェアやソフトウェアを適用して実行可能な暗号化関数に相当する。前述したように暗号化関数と、復号関数を共通の関数を適用可能としたインボリューション性を保持する構成とすることで、実装コストの削減、装置の小型化などのメリットを奏することが可能となる。
X2[0]にはY1[1]、
X2[1]にはY1[2]、
X2[2]にはY1[3]、
X2[3]にはY1[0]、
がそれぞれ代入される。このようなデータの入れ替え処理を「スワップ(入れ替え)関数」と定義する。
先行ラウンドのデータ系列0の出力は後続ラウンドにおけるデータ系列3の入力として設定される。
先行ラウンドのデータ系列1の出力は後続ラウンドにおけるデータ系列0の入力として設定される。
先行ラウンドのデータ系列2の出力は後続ラウンドにおけるデータ系列1の入力として設定される。
先行ラウンドのデータ系列3の出力は後続ラウンドにおけるデータ系列2の入力として設定される。
このような系列入れ替え処理を実行する関数が暗号化処理において適用されるスワップ関数である。
先行ラウンドのデータ系列0の出力は後続ラウンドにおけるデータ系列1の入力として設定される。
先行ラウンドのデータ系列1の出力は後続ラウンドにおけるデータ系列2の入力として設定される。
先行ラウンドのデータ系列2の出力は後続ラウンドにおけるデータ系列3の入力として設定される。
先行ラウンドのデータ系列3の出力は後続ラウンドにおけるデータ系列0の入力として設定される。
このような系列入れ替え処理を実行する関数が復号処理において適用されるスワップ関数となる。
次に、拡散行列切り替え機構(DSM)を持つ拡張型Feistel構造(GFN)について説明する。拡散行列切り替え機構(DSM)を持つ拡張型Feistel構造(GFN)を持つ暗号化関数の構成例を図10に示す。図10に示す例は、データ系列数(分割数)dを、d=4とした拡散行列切り替え機構(DSM)を持つ拡張型Feistel構造(GFN)の暗号化関数の構成例である。
先行ラウンドのデータ系列0の出力は後続ラウンドにおけるデータ系列3の入力として設定される。
先行ラウンドのデータ系列1の出力は後続ラウンドにおけるデータ系列0の入力として設定される。
先行ラウンドのデータ系列2の出力は後続ラウンドにおけるデータ系列1の入力として設定される。
先行ラウンドのデータ系列3の出力は後続ラウンドにおけるデータ系列2の入力として設定される。
このような系列入れ替え処理を実行する関数が暗号化処理において適用されるスワップ関数である。
先行ラウンドのデータ系列0の出力は後続ラウンドにおけるデータ系列1の入力として設定される。
先行ラウンドのデータ系列1の出力は後続ラウンドにおけるデータ系列2の入力として設定される。
先行ラウンドのデータ系列2の出力は後続ラウンドにおけるデータ系列3の入力として設定される。
先行ラウンドのデータ系列3の出力は後続ラウンドにおけるデータ系列0の入力として設定される。
このような系列入れ替え処理を実行する関数が復号処理において適用されるスワップ関数となる。
以下、拡張型Feistel構造(GFN)において、インボリューション性、すなわち、暗号化処理と復号処理に共通の関数を適用可能とした構成例について説明する。
(4−1)拡散行列切り替え機構(DSM)を持たない拡張型Feistel構造(GFN)におけるインボリューション性保持構造について
(4−2)拡散行列切り替え機構(DSM)を持つ拡張型Feistel構造(GFN)におけるインボリューション性保持構造について
分割数d≧3で、かつ以下に説明する条件を満たす拡張型Feistel構造であり、これを拡張型Feistel構造のタイプ2とする。本発明において適用する拡張型Feistel構造のタイプ2について、図12を参照して説明する。
本発明の拡張型Feistel構造タイプ2は、以下のパラメータを有する。
(a)データ分割数:d(ただしdは4以上の偶数)、
(b)入出力データ長:dmnビット、
(c)分割データ長:mnビット、
(d)1ラウンドあたりのF関数の数:d/2、
まず、拡散行列切り替え機構(DSM)を持たない拡張型Feistel構造(GFN)におけるインボリューション性保持構造について説明する。
先行ラウンドのデータ系列0の出力は後続ラウンドにおけるデータ系列3の入力として設定される。
先行ラウンドのデータ系列1の出力は後続ラウンドにおけるデータ系列0の入力として設定される。
先行ラウンドのデータ系列2の出力は後続ラウンドにおけるデータ系列1の入力として設定される。
先行ラウンドのデータ系列3の出力は後続ラウンドにおけるデータ系列2の入力として設定される。
このような系列入れ替え処理を実行する関数がスワップ関数251である。
従って、図8に示す暗号化処理と、図13に示す復号処理とでは、全く同一のスワップ関数を適用することが可能となる。
先行ラウンドのデータ系列0の出力は後続ラウンドにおけるデータ系列3の入力として設定される。
先行ラウンドのデータ系列1の出力は後続ラウンドにおけるデータ系列0の入力として設定される。
先行ラウンドのデータ系列2の出力は後続ラウンドにおけるデータ系列1の入力として設定される。
先行ラウンドのデータ系列3の出力は後続ラウンドにおけるデータ系列2の入力として設定される。
このような系列入れ替え処理を実行する関数がスワップ関数261である。
従って、図8に示す暗号化処理と、図13に示す復号処理とでは、全く同一のスワップ関数を適用することが可能となる。
(暗号化関数)
C=E(P,RK1,RK2,RK3,RK4,RK5,・・・,RKr−1,RKr)
(復号関数(r=奇数の場合))
P=D(P,RK1,RK2,RK3,RK4,RK5,・・・,RKr−1,RKr)
=E(P,RKr,RK'r−1,RKr−2,RK'r−3,RKr−4・・・,RK'2,RK1)
(復号関数(r=偶数の場合))
P=D(P,RK1,RK2,RK3,RK4,RK5,・・・,RKr−1,RKr)
=HalfSwap(E(P,RKr,RK'r−1,RKr−2,RK'r−3,RKr−4・・・,RK2,RK'1))
として示すことができ、ラウンド鍵の適切な置換により、暗号化関数と復号関数が共有できることが分かる。
ただし、RK1=(RK1[0]||RK1[1])とすると、RK'1=(RK1[1]||RK1[0])であり、HalfSwapは入力値の前後を入れ替える関数を表す。
[(0段目)]
X1[0]=P[0]
X1[1]=P[1]
X1[2]=P[2]
X1[3]=P[3]
[1段目]
X2[0]=F(X1[0],RK1[0])(+)X1[1]
X2[1]=X1[2]
X2[2]=F(X1[2], RK1[1])(+)X1[3]
X2[3]=X1[0]
X3[0]=F(X2[0],RK2[0])(+)X2[1]
X3[1]=X2[2]
X3[2]=F(X2[2],RK2[2])(+)X2[3]
X3[3]=X2[0]
[3段目]
C[0]=X3[0]
C[1]=F(X3[0],RK3[0])(+)X3[1]
C[2]=X3[2]
C[3]=F(X3[2],RK3[1])(+)X3[3]
[1段目]
X3[0]=C[0]
X3[1]=F(X3[0],RK3[0])(+)C[1]
X3[2]=C[2]
X3[3]=F(X3[2],RK3[1])(+)C[3]
[2段目]
X2[0]=X3[3]
X2[1]=F(X2[0],RK2[0])(+)X3[0]
X2[2]=X3[1]
X2[3]=F(X2[2],RK2[1])(+)X3[2]
X1[0]=X2[3]
X1[1]=F(X1[0],RK1[0])(+)X2[0]
X1[2]=X2[1]
X1[3]=F(X1[2],RK1[1])(+)X2[2]
[最終段]
P[0]=X1[0]
P[1]=X1[1]
P[2]=X1[2]
P[3]=X1[3]
X1[0]=P[0]
X1[1]=P[1]
X1[2]=P[2]
X1[3]=P[3]
fori=2tor
Xi[0]=F(Xi−1[0],RKi−1[0])(+)Xi−1[1]
Xi[1]=Xi−1[2]
Xi[2]=F(Xi−1[2],RKi−1[2])(+)Xi−1[3]
Xi[3]=Xi−1[0]
C[0]=Xr[0]
C[1]=F(Xr[0],RKr[0])(+)Xr[1]
C[2]=Xr[2]
C[3]=F(Xr[2],RKr[1])(+)Xr[3]
Xr[0]=C[0]
Xr[1]=F(Xr[0],RKr[0])(+)C[1]
Xr[2]=C[2]
Xr[3]=F(Xr[2],RKr[1])(+)C[3]
fori=r-1downto1
Xi[0]=Xi+1[3]
Xi[1]=F(Xi[0],RKi[0])(+)Xi+1[0]
Xi[2]=Xi+1[1]
Xi[3]=F(Xi[2],RKi[1])(+)Xi+1[2]
P[0]=X1[0]
P[1]=X1[1]
P[2]=X1[2]
P[3]=X1[3]
[(0段目)]
X1[0]=P[0]
X1[1]=P[1]
X1[2]=P[2]
X1[3]=P[3]
[1段目]
X2[0]=F(X1[0],RK1[0])(+)X1[1]
X2[1]=X1[2]
X2[2]=F(X1[2],RK1[1])(+)X1[3]
X2[3]=X1[0]
X3[0]=F(X2[0],RK2[0])(+)X2[1]
X3[1]=X2[2]
X3[2]=F(X2[2],RK2[2])(+)X2[3]
X3[3]=X2[0]
[3段目]
X4[0]=F(X3[0],RK3[0])(+)X3[1]
X4[1]=X3[2]
X4[2]=F(X3[2],RK3[1])(+)X3[3]
X4[3]=X3[0]
[4段目]
C[0]=X4[0]
C[1]=F(X4[0],RK4[0])(+)X4[1]
C[2]=X4[2]
C[3]=F(X4[2],RK4[1])(+)X4[3]
[1段目]
X4[0]=C[0]
X4[1]=F(X4[0],RK4[0])(+)C[1]
X4[2]=C[2]
X4[3]=F(X4[2],RK4[1])(+)C[3]
[2段目]
X3[0]=X4[3]
X3[1]=F(X3[0],RK3[0])(+)X4[0]
X3[2]=X4[1]
X3[3]=F(X3[2],RK3[1])(+)X4[2]
X2[0]=X3[3]
X2[1]=F(X2[0],RK2[0])(+)X3[0]
X2[2]=X3[1]
X2[3]=F(X2[2],RK2[1])(+)X3[2]
[4段目]
X1[0]=X2[3]
X1[1]=F(X1[0],RK1[0])(+)X2[0]
X1[2]=X2[1]
X1[3]=F(X1[2],RK1[1])(+)X2[2]
[最終段]
P[0]=X1[2]
P[1]=X1[3]
P[2]=X1[0]
P[3]=X1[1]
X1[0]=P[0]
X1[1]=P[1]
X1[2]=P[2]
X1[3]=P[3]
fori=2tor
Xi[0]=F(Xi−1[0],RKi−1[0])(+)Xi−1[1]
Xi[1]=Xi−1[2]
Xi[2]=F(Xi−1[2],RKi−1[2])(+)Xi−1[3]
Xi[3]=Xi−1[0]
C[0]=Xr[0]
C[1]=F(Xr[0],RKr[0])(+)Xr[1]
C[2]=Xr[2]
C[3]=F(Xr[2],RKr[1])(+)Xr[3]
Xr[0]=C[0]
Xr[1]=F(Xr[0],RKr[0])(+)C[1]
Xr[2]=C[2]
Xr[3]=F(Xr[2],RKr[1])(+)C[3]
fori=r-1downto1
Xi[0]=Xi+1[3]
Xi[1]=F(Xi[0],RKi[0])(+)Xi+1[0]
Xi[2]=Xi+1[1]
Xi[3]=F(Xi[2],RKi[1])(+)Xi+1[2]
P[0]=X1[2]
P[1]=X1[3]
P[2]=X1[0]
P[3]=X1[1]
次に、拡散行列切り替え機構(DSM)を持つ拡張型Feistel構造(GFN)におけるインボリューション性保持構造について説明する。
先行ラウンドのデータ系列0の出力は後続ラウンドにおけるデータ系列3の入力として設定される。
先行ラウンドのデータ系列1の出力は後続ラウンドにおけるデータ系列0の入力として設定される。
先行ラウンドのデータ系列2の出力は後続ラウンドにおけるデータ系列1の入力として設定される。
先行ラウンドのデータ系列3の出力は後続ラウンドにおけるデータ系列2の入力として設定される。
このような系列入れ替え処理を実行する関数がスワップ関数271である。
従って、図10に示す暗号化処理と、図17に示す復号処理とでは、全く同一のスワップ関数を適用することが可能となる。
f(x)=x3
といった計算を行いたい場合に、以下のような値を持つftabというテーブル(置換表)を持つことにより、実際のx3の計算を行わずともftabの中身を参照することにより、x3の結果を得ることが可能になる。
ftab[0]=0(=03),
ftab[1]=1(=13),
ftab[2]=8(=23),
ftab[3]=27(=33),
ftab[4]=64(=43)
・・,
上記は、入力値として0,1,2,3,4があるとき、出力として0,1,8,27,64を取得する構成を持つテーブルftabの例である。
(1)通常のFeistel型暗号同様,段ごとに拡大鍵の順序を入れ替える
(2)通常のGFN構造同様,偶数段のF関数ごとに拡大鍵の位置を入れ替える
(3)偶数段のF関数のテーブルのアドレスを暗号化関数と復号関数で入れ替える
これらの構成を採用する。
以上のような方法により実行速度の低下を最小限に抑えつつ暗号化関数と復号関数を共有することが可能になる.
先行ラウンドのデータ系列0の出力は後続ラウンドにおけるデータ系列3の入力として設定される。
先行ラウンドのデータ系列1の出力は後続ラウンドにおけるデータ系列0の入力として設定される。
先行ラウンドのデータ系列2の出力は後続ラウンドにおけるデータ系列1の入力として設定される。
先行ラウンドのデータ系列3の出力は後続ラウンドにおけるデータ系列2の入力として設定される。
このような系列入れ替え処理を実行する関数がスワップ関数281である。
従って、図10に示す暗号化処理と、図18に示す復号処理とでは、全く同一のスワップ関数を適用することが可能となる。
最後に、上述した実施例に従った暗号処理を実行する暗号処理装置としてのICモジュール300の構成例を図19に示す。上述の処理は、例えばPC、ICカード、リーダライタ、その他、様々な情報処理装置において実行可能であり、図19に示すICモジュール300は、これら様々な機器に構成することが可能である。
102 入力データP[1]
103 ラウンド鍵
104 排他的論理和部
120 F関数
121 Sボックス(S−box)
122 線形変換部
201 スワップ関数
202 スワップ関数
211 スワップ関数
212 スワップ関数
251 スワップ関数
261 スワップ関数
262 出力調整部
271 スワップ関数
281 スワップ関数
282 出力調整部
300 ICモジュール
301 CPU(Central processing Unit)
302 メモリ
303 暗号処理部
304 乱数発生器
305 送受信部
Claims (12)
- データ系列数:dをd≧3の整数とした拡張型Feistel構造を適用した暗号処理を実行する暗号処理装置であり、
暗号化処理および復号処理に共通のスワップ処理を含むデータ処理を実行するデータ処理部を有し、
前記データ処理部は、
暗号化処理と、復号処理において、適用ラウンド鍵の変更を行なうことで、暗号化処理と復号処理のいずれの処理においても前記共通のスワップ処理を含むデータ処理を実行する構成であり、
前記データ処理部は、
前記拡張型Feistel構造を構成する各ラウンドのF関数において実行する線形変換処理の変換行列を共通の行列に設定した暗号処理を実行する構成であり、
復号処理の各ラウンドにおいて適用するラウンド鍵の適用シーケンスを暗号処理と逆のシーケンスに設定し、さらに、偶数ラウンド各々の複数のF関数に入力するラウンド鍵を暗号化処理と異なる設定とするラウンド鍵入れ替え処理を行なう構成であることを特徴とする暗号処理装置。 - データ系列数:dをd≧3の整数とした拡張型Feistel構造を適用した暗号処理を実行する暗号処理装置であり、
暗号化処理および復号処理に共通のスワップ処理を含むデータ処理を実行するデータ処理部を有し、
前記データ処理部は、
暗号化処理と、復号処理において、適用ラウンド鍵の変更を行なうことで、暗号化処理と復号処理のいずれの処理においても前記共通のスワップ処理を含むデータ処理を実行する構成であり、
前記データ処理部は、
前記拡張型Feistel構造を構成する各ラウンドのF関数中の線形変換処理に適用する変換行列を少なくとも2以上の異なる行列の選択適用構成とした拡散行列切り替え機構(DSM:Diffusion Switching Mechanism)を持つFeistel構造に従った暗号処理を実行する構成であり、
復号処理の各ラウンドにおいて適用するラウンド鍵の適用シーケンスを暗号処理と逆のシーケンスに設定し、さらに、偶数ラウンド各々の複数のF関数、および該複数のF関数に入力するラウンド鍵を暗号化処理と異なる設定とするF関数およびラウンド鍵入れ替え処理を行なう構成であることを特徴とする暗号処理装置。 - 前記データ処理部は、
暗号化処理および復号処理に共通のスワップ関数を含む共通の関数を実行する構成であることを特徴とする請求項1または2に記載の暗号処理装置。 - 前記データ処理部は、
複数の異なるF関数各々に対応する入出力対応データを格納したテーブルを、各ラウンドに対応して指定されるアドレスに従ってメモリから呼び出して各F関数処理結果を算出する処理を実行する構成であることを特徴とする請求項2に記載の暗号処理装置。 - 前記データ処理部は、
前記拡張型Feistel構造を構成するラウンドのラウンド数が偶数である場合、
復号処理の最終ラウンドの出力結果の入れ替え処理を行なう出力調整を実行する構成であることを特徴とする請求項1または2に記載の暗号処理装置。 - 暗号処理装置において、データ系列数:dをd≧3の整数とした拡張型Feistel構造を適用した暗号処理を実行する暗号処理方法であり、
データ処理部において、暗号化処理および復号処理に共通のスワップ処理を含むデータ処理を実行するデータ処理ステップを有し、
前記データ処理ステップは、
暗号化処理と、復号処理において、適用ラウンド鍵の変更を行なうことで、暗号化処理と復号処理のいずれの処理においても前記共通のスワップ処理を含むデータ処理を実行するステップであり、
さらに、前記データ処理ステップにおいては、
前記拡張型Feistel構造を構成する各ラウンドのF関数において実行する線形変換処理の変換行列を共通の行列に設定した暗号処理を実行するとともに、
復号処理を実行する場合は、各ラウンドにおいて適用するラウンド鍵の適用シーケンスを暗号処理と逆のシーケンスに設定し、さらに、偶数ラウンド各々の複数のF関数に入力するラウンド鍵を暗号化処理と異なる設定とするラウンド鍵入れ替え処理を行なうことを特徴とする暗号処理方法。 - 暗号処理装置において、データ系列数:dをd≧3の整数とした拡張型Feistel構造を適用した暗号処理を実行する暗号処理方法であり、
データ処理部において、暗号化処理および復号処理に共通のスワップ処理を含むデータ処理を実行するデータ処理ステップを有し、
前記データ処理ステップは、
暗号化処理と、復号処理において、適用ラウンド鍵の変更を行なうことで、暗号化処理と復号処理のいずれの処理においても前記共通のスワップ処理を含むデータ処理を実行するステップであり、
さらに、前記データ処理ステップにおいては、
前記拡張型Feistel構造を構成する各ラウンドのF関数中の線形変換処理に適用する変換行列を少なくとも2以上の異なる行列の選択適用構成とした拡散行列切り替え機構(DSM:Diffusion Switching Mechanism)を持つFeistel構造に従った暗号処理を実行するとともに、
復号処理を実行する場合は、各ラウンドにおいて適用するラウンド鍵の適用シーケンスを、暗号処理と逆のシーケンスに設定し、さらに、偶数ラウンド各々の複数のF関数、および該複数のF関数に入力するラウンド鍵を暗号化処理と異なる設定とするF関数およびラウンド鍵入れ替え処理を行なうことを特徴とする暗号処理方法。 - 前記データ処理ステップは、
暗号化処理および復号処理に共通のスワップ関数を含む共通の関数を実行するステップであることを特徴とする請求項6または7に記載の暗号処理方法。 - 前記データ処理ステップは、
複数の異なるF関数各々に対応する入出力対応データを格納したテーブルを、各ラウンドに対応して指定されるアドレスに従ってメモリから呼び出して各F関数処理結果を算出する処理を実行するステップを含むことを特徴とする請求項7に記載の暗号処理方法。 - 前記データ処理ステップは、
前記拡張型Feistel構造を構成するラウンドのラウンド数が偶数である場合、
復号処理の最終ラウンドの出力結果の入れ替え処理を行なう出力調整を実行するステップを含むことを特徴とする請求項6または7に記載の暗号処理方法。 - 暗号処理装置において、データ系列数:dをd≧3の整数とした拡張型Feistel構造を適用した暗号処理を実行させるコンピュータ・プログラムであり、
データ処理部において、暗号化処理および復号処理に共通のスワップ処理を含むデータ処理を実行させるデータ処理ステップを有し、
前記データ処理ステップは、
暗号化処理と、復号処理において、適用ラウンド鍵の変更を行なうことで、暗号化処理と復号処理のいずれの処理においても前記共通のスワップ処理を含むデータ処理を実行させるステップであり、
さらに、前記データ処理ステップにおいて、
前記拡張型Feistel構造を構成する各ラウンドのF関数において実行する線形変換処理の変換行列を共通の行列に設定した暗号処理を実行させるとともに、
復号処理を実行する場合は、各ラウンドにおいて適用するラウンド鍵の適用シーケンスを暗号処理と逆のシーケンスに設定させ、さらに、偶数ラウンド各々の複数のF関数に入力するラウンド鍵を暗号化処理と異なる設定とするラウンド鍵入れ替え処理を行なわせることを特徴とするコンピュータ・プログラム。 - 暗号処理装置において、データ系列数:dをd≧3の整数とした拡張型Feistel構造を適用した暗号処理を実行させるコンピュータ・プログラムであり、
データ処理部において、暗号化処理および復号処理に共通のスワップ処理を含むデータ処理を実行させるデータ処理ステップを有し、
前記データ処理ステップは、
暗号化処理と、復号処理において、適用ラウンド鍵の変更を行なうことで、暗号化処理と復号処理のいずれの処理においても前記共通のスワップ処理を含むデータ処理を実行させるステップであり、
さらに、前記データ処理ステップにおいて、
前記拡張型Feistel構造を構成する各ラウンドのF関数中の線形変換処理に適用する変換行列を少なくとも2以上の異なる行列の選択適用構成とした拡散行列切り替え機構(DSM:Diffusion Switching Mechanism)を持つFeistel構造に従った暗号処理を実行させるとともに、
復号処理を実行する場合は、各ラウンドにおいて適用するラウンド鍵の適用シーケンスを、暗号処理と逆のシーケンスに設定させ、さらに、偶数ラウンド各々の複数のF関数、および該複数のF関数に入力するラウンド鍵を暗号化処理と異なる設定とするF関数およびラウンド鍵入れ替え処理を行なわせることを特徴とするコンピュータ・プログラム。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006238223A JP4967544B2 (ja) | 2006-09-01 | 2006-09-01 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
TW096130767A TWI394418B (zh) | 2006-09-01 | 2007-08-20 | A cryptographic processing device, a cryptographic processing method, and a non-temporary computer readable recording medium |
US12/439,543 US8165288B2 (en) | 2006-09-01 | 2007-08-29 | Cryptographic processing apparatus and cryptographic processing method, and computer program |
PCT/JP2007/066729 WO2008026621A1 (fr) | 2006-09-01 | 2007-08-29 | Dispositif de codage, procédé de codage et programme informatique |
CN200780032468.7A CN101512620B (zh) | 2006-09-01 | 2007-08-29 | 密码处理装置和密码处理方法 |
EP07806206A EP2058780A4 (en) | 2006-09-01 | 2007-08-29 | ENCODING DEVICE, ENCODING METHOD, AND COMPUTER PROGRAM |
US13/436,223 US8731188B2 (en) | 2006-09-01 | 2012-03-30 | Cryptographic processing apparatus and cryptographic processing method, and computer program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006238223A JP4967544B2 (ja) | 2006-09-01 | 2006-09-01 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008058826A JP2008058826A (ja) | 2008-03-13 |
JP4967544B2 true JP4967544B2 (ja) | 2012-07-04 |
Family
ID=39135903
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006238223A Expired - Fee Related JP4967544B2 (ja) | 2006-09-01 | 2006-09-01 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
Country Status (6)
Country | Link |
---|---|
US (2) | US8165288B2 (ja) |
EP (1) | EP2058780A4 (ja) |
JP (1) | JP4967544B2 (ja) |
CN (1) | CN101512620B (ja) |
TW (1) | TWI394418B (ja) |
WO (1) | WO2008026621A1 (ja) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4882598B2 (ja) * | 2006-07-28 | 2012-02-22 | ソニー株式会社 | 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム |
US8619976B2 (en) * | 2007-12-13 | 2013-12-31 | Nec Corporation | Encryption method, decryption method, device, and program |
CN101393658B (zh) * | 2008-02-27 | 2011-04-20 | 重庆长安汽车股份有限公司 | 汽车中控防盗方法及系统 |
JP4687775B2 (ja) * | 2008-11-20 | 2011-05-25 | ソニー株式会社 | 暗号処理装置 |
TWI383341B (zh) * | 2009-03-16 | 2013-01-21 | Chiou Haun Lee | Multilayer Diffusion and Decryption Methods |
WO2011052587A1 (ja) * | 2009-10-27 | 2011-05-05 | 日本電気株式会社 | ブロック暗号装置、ブロック暗号化方法およびプログラム |
CN102713994B (zh) * | 2009-10-27 | 2015-07-01 | 日本电气株式会社 | 加密装置 |
US8369515B2 (en) * | 2010-03-18 | 2013-02-05 | Chiou-Haun Lee | Cryptographic method of multilayer diffusion in multidimension |
TWI396149B (zh) * | 2010-04-22 | 2013-05-11 | Chiou Haun Lee | 多層擴散串流加解密方法與裝置 |
US8948376B2 (en) * | 2010-05-11 | 2015-02-03 | Ca, Inc. | Format-preserving encryption via rotating block encryption |
WO2012067052A1 (ja) | 2010-11-15 | 2012-05-24 | 日本電気株式会社 | 暗号処理装置および暗号処理方法 |
JP5605197B2 (ja) * | 2010-12-09 | 2014-10-15 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにプログラム |
JP5682525B2 (ja) * | 2011-03-28 | 2015-03-11 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにプログラム |
JP5652363B2 (ja) * | 2011-03-28 | 2015-01-14 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにプログラム |
WO2012141189A1 (ja) * | 2011-04-11 | 2012-10-18 | 日本電気株式会社 | 暗号化方法、暗号化装置および暗号化プログラム |
JP2015191106A (ja) * | 2014-03-28 | 2015-11-02 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにプログラム |
US10341090B2 (en) * | 2014-10-14 | 2019-07-02 | Sony Corporation | Cipher processing apparatus and cipher processing method |
US9990479B2 (en) * | 2014-12-27 | 2018-06-05 | Intel Corporation | Technologies for authenticating a user of a computing device based on authentication context state |
CN104579635B (zh) * | 2015-01-27 | 2018-07-06 | 聚辰半导体(上海)有限公司 | 可循环迭代抗侧信道攻击的des系统及实现可重映射sbox方法 |
CN104717054B (zh) * | 2015-02-12 | 2017-11-14 | 中国科学院信息工程研究所 | 一种密码实现侧信道安全性快速检测方法 |
GB2543780B (en) * | 2015-10-27 | 2020-01-22 | Trustonic Ltd | Cryptographic program diversification |
KR102602696B1 (ko) * | 2017-10-13 | 2023-11-16 | 삼성전자주식회사 | 암호화 장치 및 복호화 장치, 이들의 동작방법 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5003597A (en) | 1989-12-21 | 1991-03-26 | Xerox Corporation | Method and apparatus for data encryption |
CA2319135C (en) * | 1998-01-27 | 2003-06-17 | Nippon Telegraph And Telephone Corporation | Data transformation device and recording medium having recorded thereon a program for implementing the same |
US6185679B1 (en) * | 1998-02-23 | 2001-02-06 | International Business Machines Corporation | Method and apparatus for a symmetric block cipher using multiple stages with type-1 and type-3 feistel networks |
US6269163B1 (en) | 1998-06-15 | 2001-07-31 | Rsa Security Inc. | Enhanced block ciphers with data-dependent rotations |
DE60111746T2 (de) * | 2000-08-03 | 2006-05-18 | Koninklijke Philips Electronics N.V. | Lineartransformation für symmetrische verschlüsselungssysteme |
FR2851862B1 (fr) * | 2003-02-27 | 2006-12-29 | Radiotelephone Sfr | Procede de generation d'une permutation pseudo-aleatoire d'un mot comportant n digits |
JP4622222B2 (ja) * | 2003-09-30 | 2011-02-02 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
JP4561252B2 (ja) * | 2004-09-03 | 2010-10-13 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
JP2006206376A (ja) | 2005-01-28 | 2006-08-10 | Ngk Spark Plug Co Ltd | セラミック焼結体、切削インサート及び切削工具 |
-
2006
- 2006-09-01 JP JP2006238223A patent/JP4967544B2/ja not_active Expired - Fee Related
-
2007
- 2007-08-20 TW TW096130767A patent/TWI394418B/zh active
- 2007-08-29 WO PCT/JP2007/066729 patent/WO2008026621A1/ja active Application Filing
- 2007-08-29 EP EP07806206A patent/EP2058780A4/en not_active Withdrawn
- 2007-08-29 CN CN200780032468.7A patent/CN101512620B/zh not_active Expired - Fee Related
- 2007-08-29 US US12/439,543 patent/US8165288B2/en not_active Expired - Fee Related
-
2012
- 2012-03-30 US US13/436,223 patent/US8731188B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
WO2008026621A1 (fr) | 2008-03-06 |
JP2008058826A (ja) | 2008-03-13 |
US8731188B2 (en) | 2014-05-20 |
US8165288B2 (en) | 2012-04-24 |
TW200828936A (en) | 2008-07-01 |
CN101512620B (zh) | 2010-09-29 |
TWI394418B (zh) | 2013-04-21 |
US20100014659A1 (en) | 2010-01-21 |
US20120191986A1 (en) | 2012-07-26 |
EP2058780A1 (en) | 2009-05-13 |
EP2058780A4 (en) | 2011-03-09 |
CN101512620A (zh) | 2009-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4967544B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JP5023624B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JP5055993B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JP4882598B2 (ja) | 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム | |
JP4961909B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JP5050454B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JP4905000B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JP5682527B2 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
JP2008058830A (ja) | データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム | |
WO2009087972A1 (ja) | データ送信装置、データ受信装置、これらの方法、記録媒体、そのデータ通信システム | |
JP2007192893A (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JP2007199156A (ja) | 暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム | |
JP5680016B2 (ja) | 復号処理装置、情報処理装置、および復号処理方法、並びにコンピュータ・プログラム | |
JP5772934B2 (ja) | データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム | |
JP5223245B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JP5338945B2 (ja) | 復号処理装置、情報処理装置、および復号処理方法、並びにコンピュータ・プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090820 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20090820 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20090820 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111220 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120217 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120306 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120319 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150413 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150413 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |