JP5023624B2 - 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム - Google Patents
暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム Download PDFInfo
- Publication number
- JP5023624B2 JP5023624B2 JP2006238226A JP2006238226A JP5023624B2 JP 5023624 B2 JP5023624 B2 JP 5023624B2 JP 2006238226 A JP2006238226 A JP 2006238226A JP 2006238226 A JP2006238226 A JP 2006238226A JP 5023624 B2 JP5023624 B2 JP 5023624B2
- Authority
- JP
- Japan
- Prior art keywords
- function
- round
- functions
- data
- different
- 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 224
- 238000004590 computer program Methods 0.000 title claims description 13
- 238000003672 processing method Methods 0.000 title claims description 11
- 230000006870 function Effects 0.000 claims description 466
- 239000011159 matrix material Substances 0.000 claims description 80
- 238000000034 method Methods 0.000 claims description 77
- 238000006243 chemical reaction Methods 0.000 claims description 72
- 230000009466 transformation Effects 0.000 claims description 71
- 230000008569 process Effects 0.000 claims description 58
- 230000007246 mechanism Effects 0.000 claims description 43
- 238000009792 diffusion process Methods 0.000 claims description 39
- 238000004458 analytical method Methods 0.000 description 15
- 238000004422 calculation algorithm Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 230000007423 decrease Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 2
- 238000013478 data encryption standard Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 239000000470 constituent Substances 0.000 description 1
- 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
- 238000013501 data transformation 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
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000007480 spreading Effects 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
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- 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/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/125—Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
Description
Feistel型共通鍵ブロック暗号処理を実行する暗号処理装置であり、
ラウンド関数として少なくとも2種類以上の異なるF関数を選択的に適用して、複数ラウンドのラウンド演算を実行するデータ処理部と、
前記2種類以上の異なるF関数の各々に対応する入力値と出力値または中間値とを対応付けた複数のF関数対応テーブルを格納したメモリを有し、
前記データ処理部は、
予め規定された暗号処理シーケンスに従って、各ラウンドにおいて適用するF関数に対応するF関数対応テーブルのアクセス用アドレスを取得し、取得アドレスを適用したメモリアクセスにより、各ラウンドのF関数に対応するF関数対応テーブルを読み込み、テーブル参照に基づいて入力値に対する出力値または中間値を取得して、各F関数に従ったデータ変換結果を得る構成であることを特徴とする暗号処理装置にある。
暗号処理装置において、Feistel型共通鍵ブロック暗号処理を実行する暗号処理方法であり、
データ処理部において、ラウンド関数として少なくとも2種類以上の異なるF関数を選択的に適用して、複数ラウンドのラウンド演算を実行するデータ処理ステップを有し、
前記データ処理ステップは、
予め規定された暗号処理シーケンスに従って、各ラウンドにおいて適用するF関数に対応するF関数対応テーブルのアクセス用アドレスを取得するステップと、
前記取得アドレスを適用したメモリアクセスを実行し、前記2種類以上の異なるF関数の各々に対応する入力値と出力値または中間値とを対応付けた複数のF関数対応テーブルを格納したメモリから、各ラウンドのF関数に対応するF関数対応テーブルを読み込むステップと、
メモリから読み込まれたテーブルを参照し、F関数入力値に対する出力値または中間値を取得して、各F関数に従ったデータ変換結果を得るステップと、
を有することを特徴とする暗号処理方法にある。
暗号処理装置において、Feistel型共通鍵ブロック暗号処理を実行させるコンピュータ・プログラムであり、
データ処理部に、ラウンド関数として少なくとも2種類以上の異なるF関数を選択的に適用して、複数ラウンドのラウンド演算を実行させるデータ処理ステップを有し、
前記データ処理ステップは、
予め規定された暗号処理シーケンスに従って、各ラウンドにおいて適用するF関数に対応するF関数対応テーブルのアクセス用アドレスを取得させるステップと、
前記取得アドレスを適用したメモリアクセスを実行させ、前記2種類以上の異なるF関数の各々に対応する入力値と出力値または中間値とを対応付けた複数のF関数対応テーブルを格納したメモリから、各ラウンドのF関数に対応するF関数対応テーブルを読み込ませるステップと、
メモリから読み込まれたテーブルを参照させ、F関数入力値に対する出力値または中間値を取得して、各F関数に従ったデータ変換結果を取得させるステップと、
を実行させるステップであることを特徴とするコンピュータ・プログラムにある。
1.SPN型Feistel構造
2.2つのデータ系列を持つFeistel構造に対する拡散行列切り替え機構(DSM)の設定構成
3.拡張型Feistel構造(GFN:Generalized Feistel Network)に対する拡散行列切り替え機構(DSM)の設定構成
4.異なる線形変換行列を適用した異なるラウンド関数のテーブル実装による処理構成
5.暗号処理装置の構成例
まず、SPN(Substitution Permutation Network))型Feistel構造について説明する。共通鍵ブロック暗号のデザインとして知られているFeistel構造はラウンド関数と呼ばれる基本処理単位の繰り返しにより、平文を暗号文に変換する構造を持つ。
先に説明したように、Feistel構造を適用した暗号処理において、差分攻撃や線形攻撃に対する耐性を高める構成として、拡散行列切り替え機構(DSM:Diffusion Switching Mechanism,以下DSM)を適用した構成が提案されている。この拡散行列切り替え機構(DSM)を適用した暗号処理構成については、例えば特開2006−72054号に記載されている。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)に対する耐性を持つための条件であることを示している。
F関数F0は、線形変換行列M0を適用した線形変換処理を実行するラウンド関数(F関数)、
F関数F1は、線形変換行列M1を適用した線形変換処理を実行するラウンド関数(F関数)、
F関数F2は、線形変換行列M2を適用した線形変換処理を実行するラウンド関数(F関数)、
を示している。
3つの線形変換行列M0,M1,M2は、異なる行列によって構成される。
次に、拡張型Feistel構造(GFN:Generalized Feistel Network)について説明する。図1〜図5を参照して説明したFeistel構造は、入力データPを2つのデータ系列P[0],P[1]に分割して処理を実行する構成である。入力データの分割数をデータ系列数(分割数)と呼ぶ。図1〜図5を参照して説明したFeistel構造は、データ系列数(分割数)d=2の設定である。
先行ラウンドのデータ系列0の出力は後続ラウンドにおけるデータ系列3の入力として設定される。
先行ラウンドのデータ系列1の出力は後続ラウンドにおけるデータ系列0の入力として設定される。
先行ラウンドのデータ系列2の出力は後続ラウンドにおけるデータ系列1の入力として設定される。
先行ラウンドのデータ系列3の出力は後続ラウンドにおけるデータ系列2の入力として設定される。
このような系列入れ替え処理を実行する関数が暗号化処理において適用されるスワップ関数である。
上述したような、拡散行列切り替え機構(DSM)を採用したFeistel構造または拡張型Feistel構造を適用した暗号処理構成は、差分攻撃や線形攻撃に対する耐性を大きく向上させるという利点があるが、一方、次のような問題がある。すなわち、
異なる行列を設定した異なるラウンド関数(F関数)を実装することが必要、
複数のラウンド関数を予め定められてシーケンスに従って切り替えを行なう新たな制御機構を設けることが必要、
従って、暗号処理装置を構成する場合に、必要となる構成が増加し、装置の小型化の妨げとなりコスト高になる。また切り替え制御に伴い処理速度が低下するという問題がある。
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の例である。
次にx1、x2をそれぞれ8−bit入出力の非線形変換処理を実行するS−box301,302に入力し、出力z1、z2を得る。これらのz1、z2に線形変換部303において線形変換を施し、その結果y1、y2を得て、これらを連結して最終出力Yを得る。例えば、線形変換部303における線形変換は以下のように計算される。
すなわち、S−boxにおける非線形処理演算として、
z1=S(x1)
z2=S(x2)
上記演算を実行する論理回路を構成し、さらに、線形変換部における演算として、
y1=a0,0z1(EXOR)a0,1z2
y2=a1,0z1(EXOR)a1,1z2
上記演算を実行する論理回路を構成して、論理回路を適用して結果を求める構成とすることが可能である。しかし、論理回路を構成すると、実装面積が大きくなり、また処理速度も低下するという問題がある。
TAB0[t]=(a0、0S(t)||a1、0S(t))
TAB1[t]=(a0、1S(t)||a1、1S(t))
(a0、0S(t)||a1、0S(t))
(a0、1S(t)||a1、1S(t))
これらは、各々16ビットデータである。
Y=TAB[x1](EXOR)TAB[x2]
によって算出することができる。
Y=(y1||y2)=(a0、0S(x1)||a1、0S(x1))(EXOR)(a0、1S(x2)||a1、1S(x2))
となる。
TAB0[x1]=(a0、0S(x1)||a1、0S(x1))
TAB1[x2]=(a0、1S(x2)||a1、1S(x2))
次に、これら2つのテーブル取得値、TAB0[x1]、TAB1[x2]を、1回排他的論理和演算(EXOR)を実行する。
また、先に図5を参照して説明した3つの異なる線形変換行列M0、M1、M2を有する3つのF関数F0、F1、F2を利用したDSM適用Feistel構造に従った暗号処理を行なう場合、各ラウンドにおいて、予め規定されたシーケンスに従って、3つのF関数F0、F1、F2を呼び出して適用する構成とする。
このように、本体の暗号化部は変更せずとも3つの暗号化関数を1つのプログラムで実行することができる。
以上のようにF関数の適時入れ替えができれば、様々な応用が可能であるため、特にDSMにおいては容易にF関数の入れ替えができることが望ましい。
第1F関数対応テーブルアドレス=[FF000001]
第2F関数対応テーブルアドレス=[FFF01234]
など、各テーブルの読み込みアドレスが設定され、図8に示すラウンド関数実行部411は、各ラウンドにおいて適用するF関数に対応するアドレスを適用してテーブル読み出しを実行する。
F関数の適用シーケンス=
F0→F2→F1→F1→F2・・・
と設定されているが、
このシーケンスを、例えば以下のように変更する。
F0の位置にF1を設定し、
F1の位置にF2を設定し、
F2の位置にF0を設定する。
このようなF関数の利用シーケンスの変更は、各ラウンドにおいて適用するアドレスの変更のみで実現できる。
F1→F0→F2→F2→F0・・・
となる。
このようなシーケンスを実現するために必要となる処理は、各ラウンドにおいて適用するF関数呼び出しアドレスの順番を変更するのみであり、容易な変更が可能となる。このような異なるF関数利用シーケンスに従った暗号処理は、変更前のF関数利用シーケンスとは異なる入出力を持ち、かつ安全性としては等価な暗号化関数が構成できる。
最後に、上述した実施例に従った暗号処理を実行する暗号処理装置としてのICモジュール700の構成例を図10に示す。上述の処理は、例えばPC、ICカード、リーダライタ、その他、様々な情報処理装置において実行可能であり、図10に示すICモジュール700は、これら様々な機器に構成することが可能である。
102 入力データP[1]
103 ラウンド鍵
104 排他的論理和部
120 F関数
121 Sボックス(S−box)
122 線形変換部
211 スワップ関数
400 暗号処理装置
410 データ処理部
411 ラウンド関数実行部
412 メモリアドレス提供部
413 処理シーケンス情報格納部
420 メモリ
421〜42n F関数対応テーブル
700 ICモジュール
701 CPU(Central processing Unit)
702 メモリ
703 暗号処理部
704 乱数発生器
705 送受信部
Claims (10)
- Feistel型共通鍵ブロック暗号処理を実行する暗号処理装置であり、
線形変換部と非線形変換部を有するF関数をラウンド関数として繰り返し実行するデータ処理部であり、少なくとも2種類以上の異なるF関数を選択的に適用して、複数ラウンドのラウンド演算を実行するデータ処理部と、
前記2種類以上の異なるF関数の各々に対応する入力値と出力値または中間値とを対応付けた複数のF関数対応テーブルを格納したメモリを有し、
前記データ処理部は、
予め規定された暗号処理シーケンスに従って、各ラウンドにおいて適用するF関数に対応するF関数対応テーブルのアクセス用アドレスを取得し、取得アドレスを適用したメモリアクセスにより、各ラウンドのF関数に対応するF関数対応テーブルを読み込み、テーブル参照に基づいて入力値に対する出力値または中間値を取得して、各F関数に従ったデータ変換結果を得る構成であり、
前記データ処理部は、
各ラウンドのF関数中の線形変換処理に適用する変換行列として、少なくとも2以上の異なる行列を設定した少なくとも2以上の異なるF関数を選択的に適用する拡散行列切り替え機構(DSM:Diffusion Switching Mechanism)を持つFeistel構造に従った暗号処理を実行し、該暗号処理の各ラウンドのF関数に従ったデータ変換処理に際して、前記異なる行列を設定した異なるF関数に対応する複数のF関数対応テーブルを切り替え適用して入力値に対する出力値または中間値を取得する構成であることを特徴とする暗号処理装置。 - 前記データ処理部は、
暗号処理対象データを2分割したデータ系列数(分割数)d=2の設定に従って暗号処理を実行するFeistel構造に基づく暗号処理を実行する構成であることを特徴とする請求項1に記載の暗号処理装置。 - 前記データ処理部は、
暗号処理対象データを3以上に分割したデータ系列数(分割数)d≧3の設定に従って暗号処理を実行する拡張型Feistel構造に基づく暗号処理を実行する構成であることを特徴とする請求項1に記載の暗号処理装置。 - 前記データ処理部は、
予め設定された暗号関数を実行し、該暗号関数の実行に際して、各ラウンドにおいて適用するF関数に対応するF関数対応テーブルのアクセス用アドレスを、各ラウンド毎に適宜切り替えて各ラウンドのF関数に対応するF関数対応テーブルを読み込み、テーブル参照に基づいて入力値に対する出力値または中間値を取得して、各F関数に従ったデータ変換結果を得る構成であることを特徴とする請求項1に記載の暗号処理装置。 - 前記メモリは、
各F関数に対する入力値または入力値の構成データと、F関数の出力値または中間値、またはこれらの構成データとを対応付けたF関数対応テーブルを格納した構成であることを特徴とする請求項1に記載の暗号処理装置。 - 暗号処理装置において、Feistel型共通鍵ブロック暗号処理を実行する暗号処理方法であり、
データ処理部において、線形変換部と非線形変換部を有するF関数をラウンド関数として繰り返し実行するデータ処理ステップであり、少なくとも2種類以上の異なるF関数を選択的に適用して、複数ラウンドのラウンド演算を実行するデータ処理ステップを有し、
前記データ処理ステップは、
予め規定された暗号処理シーケンスに従って、各ラウンドにおいて適用するF関数に対応するF関数対応テーブルのアクセス用アドレスを取得するステップと、
前記取得アドレスを適用したメモリアクセスを実行し、前記2種類以上の異なるF関数の各々に対応する入力値と出力値または中間値とを対応付けた複数のF関数対応テーブルを格納したメモリから、各ラウンドのF関数に対応するF関数対応テーブルを読み込むステップと、
メモリから読み込まれたテーブルを参照し、F関数入力値に対する出力値または中間値を取得して、各F関数に従ったデータ変換結果を得るステップと、
を有し、
前記データ処理ステップは、
各ラウンドのF関数中の線形変換処理に適用する変換行列として、少なくとも2以上の異なる行列を設定した少なくとも2以上の異なるF関数を選択的に適用する拡散行列切り替え機構(DSM:Diffusion Switching Mechanism)を持つFeistel構造に従った暗号処理を実行し、該暗号処理の各ラウンドのF関数に従ったデータ変換処理に際して、前記異なる行列を設定した異なるF関数に対応する複数のF関数対応テーブルを切り替え適用して入力値に対する出力値または中間値を取得するステップである暗号処理方法。 - 暗号処理装置において、Feistel型共通鍵ブロック暗号処理を実行させるコンピュータ・プログラムであり、
データ処理部に、線形変換部と非線形変換部を有するF関数をラウンド関数として繰り返し実行するデータ処理ステップであり、少なくとも2種類以上の異なるF関数を選択的に適用して、複数ラウンドのラウンド演算を実行させるデータ処理ステップを有し、
前記データ処理ステップは、
予め規定された暗号処理シーケンスに従って、各ラウンドにおいて適用するF関数に対応するF関数対応テーブルのアクセス用アドレスを取得させるステップと、
前記取得アドレスを適用したメモリアクセスを実行させ、前記2種類以上の異なるF関数の各々に対応する入力値と出力値または中間値とを対応付けた複数のF関数対応テーブルを格納したメモリから、各ラウンドのF関数に対応するF関数対応テーブルを読み込ませるステップと、
メモリから読み込まれたテーブルを参照させ、F関数入力値に対する出力値または中間値を取得して、各F関数に従ったデータ変換結果を取得させるステップと、
を実行させるステップであり、
前記データ処理ステップは、
各ラウンドのF関数中の線形変換処理に適用する変換行列として、少なくとも2以上の異なる行列を設定した少なくとも2以上の異なるF関数を選択的に適用する拡散行列切り替え機構(DSM:Diffusion Switching Mechanism)を持つFeistel構造に従った暗号処理を実行し、該暗号処理の各ラウンドのF関数に従ったデータ変換処理に際して、前記異なる行列を設定した異なるF関数に対応する複数のF関数対応テーブルを切り替え適用して入力値に対する出力値または中間値を取得するステップであることを特徴とするコンピュータ・プログラム。 - Feistel型共通鍵ブロック暗号処理を実行する復号処理装置であり、
線形変換部と非線形変換部を有するF関数をラウンド関数として繰り返し実行するデータ処理部であり、少なくとも2種類以上の異なるF関数を選択的に適用して、複数ラウンドのラウンド演算を実行するデータ処理部と、
前記2種類以上の異なるF関数の各々に対応する入力値と出力値または中間値とを対応付けた複数のF関数対応テーブルを格納したメモリを有し、
前記データ処理部は、
予め規定された復号処理シーケンスに従って、各ラウンドにおいて適用するF関数に対応するF関数対応テーブルのアクセス用アドレスを取得し、取得アドレスを適用したメモリアクセスにより、各ラウンドのF関数に対応するF関数対応テーブルを読み込み、テーブル参照に基づいて入力値に対する出力値または中間値を取得して、各F関数に従ったデータ変換結果を得る構成であり、
前記データ処理部は、
各ラウンドのF関数中の線形変換処理に適用する変換行列として、少なくとも2以上の異なる行列を設定した少なくとも2以上の異なるF関数を選択的に適用する拡散行列切り替え機構(DSM:Diffusion Switching Mechanism)を持つFeistel構造に従った復号処理を実行し、該復号処理の各ラウンドのF関数に従ったデータ変換処理に際して、前記異なる行列を設定した異なるF関数に対応する複数のF関数対応テーブルを切り替え適用して入力値に対する出力値または中間値を取得する構成であることを特徴とする復号処理装置。 - 復号処理装置において、Feistel型共通鍵ブロック暗号処理を実行する復号処理方法であり、
データ処理部において、線形変換部と非線形変換部を有するF関数をラウンド関数として繰り返し実行するデータ処理ステップであり、少なくとも2種類以上の異なるF関数を選択的に適用して、複数ラウンドのラウンド演算を実行するデータ処理ステップを有し、
前記データ処理ステップは、
予め規定された復号処理シーケンスに従って、各ラウンドにおいて適用するF関数に対応するF関数対応テーブルのアクセス用アドレスを取得するステップと、
前記取得アドレスを適用したメモリアクセスを実行し、前記2種類以上の異なるF関数の各々に対応する入力値と出力値または中間値とを対応付けた複数のF関数対応テーブルを格納したメモリから、各ラウンドのF関数に対応するF関数対応テーブルを読み込むステップと、
メモリから読み込まれたテーブルを参照し、F関数入力値に対する出力値または中間値を取得して、各F関数に従ったデータ変換結果を得るステップと、
を有し、
前記データ処理ステップは、
各ラウンドのF関数中の線形変換処理に適用する変換行列として、少なくとも2以上の異なる行列を設定した少なくとも2以上の異なるF関数を選択的に適用する拡散行列切り替え機構(DSM:Diffusion Switching Mechanism)を持つFeistel構造に従った復号処理を実行し、該復号処理の各ラウンドのF関数に従ったデータ変換処理に際して、前記異なる行列を設定した異なるF関数に対応する複数のF関数対応テーブルを切り替え適用して入力値に対する出力値または中間値を取得するステップである復号処理方法。 - 復号処理装置において、Feistel型共通鍵ブロック暗号処理を実行させるコンピュータ・プログラムであり、
データ処理部に、線形変換部と非線形変換部を有するF関数をラウンド関数として繰り返し実行するデータ処理ステップであり、少なくとも2種類以上の異なるF関数を選択的に適用して、複数ラウンドのラウンド演算を実行させるデータ処理ステップを有し、
前記データ処理ステップは、
予め規定された復号処理シーケンスに従って、各ラウンドにおいて適用するF関数に対応するF関数対応テーブルのアクセス用アドレスを取得させるステップと、
前記取得アドレスを適用したメモリアクセスを実行させ、前記2種類以上の異なるF関数の各々に対応する入力値と出力値または中間値とを対応付けた複数のF関数対応テーブルを格納したメモリから、各ラウンドのF関数に対応するF関数対応テーブルを読み込ませるステップと、
メモリから読み込まれたテーブルを参照させ、F関数入力値に対する出力値または中間値を取得して、各F関数に従ったデータ変換結果を取得させるステップと、
を実行させるステップであり、
前記データ処理ステップは、
各ラウンドのF関数中の線形変換処理に適用する変換行列として、少なくとも2以上の異なる行列を設定した少なくとも2以上の異なるF関数を選択的に適用する拡散行列切り替え機構(DSM:Diffusion Switching Mechanism)を持つFeistel構造に従った復号処理を実行し、該復号処理の各ラウンドのF関数に従ったデータ変換処理に際して、前記異なる行列を設定した異なるF関数に対応する複数のF関数対応テーブルを切り替え適用して入力値に対する出力値または中間値を取得するステップであることを特徴とするコンピュータ・プログラム。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006238226A JP5023624B2 (ja) | 2006-09-01 | 2006-09-01 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
US12/439,250 US8396210B2 (en) | 2006-09-01 | 2007-08-29 | Cryptographic processing apparatus and cryptographic processing method, and computer program |
CN200780040630XA CN101553856B (zh) | 2006-09-01 | 2007-08-29 | 密码处理装置和密码处理方法 |
PCT/JP2007/066731 WO2008026623A1 (fr) | 2006-09-01 | 2007-08-29 | Dispositif de codage, procédé de codage et programme informatique |
EP07806208A EP2058782A1 (en) | 2006-09-01 | 2007-08-29 | Encryption device, encryption method, and computer program |
TW096132640A TW200830831A (en) | 2006-09-01 | 2007-08-31 | Encryption processor, encryption processing method, and computer program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006238226A JP5023624B2 (ja) | 2006-09-01 | 2006-09-01 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008058829A JP2008058829A (ja) | 2008-03-13 |
JP5023624B2 true JP5023624B2 (ja) | 2012-09-12 |
Family
ID=39135905
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006238226A Expired - Fee Related JP5023624B2 (ja) | 2006-09-01 | 2006-09-01 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
Country Status (6)
Country | Link |
---|---|
US (1) | US8396210B2 (ja) |
EP (1) | EP2058782A1 (ja) |
JP (1) | JP5023624B2 (ja) |
CN (1) | CN101553856B (ja) |
TW (1) | TW200830831A (ja) |
WO (1) | WO2008026623A1 (ja) |
Families Citing this family (16)
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 |
US8363828B2 (en) * | 2009-02-09 | 2013-01-29 | Intel Corporation | Diffusion and cryptographic-related operations |
WO2010109516A1 (ja) | 2009-03-23 | 2010-09-30 | 富士通株式会社 | データ処理装置及びデータ処理方法 |
TWI452889B (zh) * | 2009-04-30 | 2014-09-11 | Sumitomo Electric Industries | 加密密鑰產生裝置 |
WO2011052587A1 (ja) * | 2009-10-27 | 2011-05-05 | 日本電気株式会社 | ブロック暗号装置、ブロック暗号化方法およびプログラム |
JP5605197B2 (ja) * | 2010-12-09 | 2014-10-15 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにプログラム |
JP5652363B2 (ja) * | 2011-03-28 | 2015-01-14 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにプログラム |
CN105359450B (zh) * | 2013-03-27 | 2020-08-07 | 爱迪德技术有限公司 | 防篡改密码算法实现 |
CN103427988A (zh) * | 2013-07-26 | 2013-12-04 | 青岛海信宽带多媒体技术有限公司 | 数据加密及解密方法 |
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 |
JP6877889B2 (ja) * | 2016-04-08 | 2021-05-26 | ソニーグループ株式会社 | 暗号化装置、暗号化方法、復号化装置、及び復号化方法 |
FR3060804B1 (fr) * | 2016-12-21 | 2021-01-22 | Safran Identity & Security | Procede de configuration d'un programme cryptographique destine a etre execute par un terminal |
US11269993B2 (en) * | 2017-08-10 | 2022-03-08 | Sony Corporation | Encryption device, encryption method, decryption device, and decryption method |
EP3786927B1 (en) * | 2018-04-26 | 2023-06-14 | Nippon Telegraph And Telephone Corporation | System, apparatus, method and program for secure aggregate median computation |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5003597A (en) * | 1989-12-21 | 1991-03-26 | Xerox Corporation | Method and apparatus for data encryption |
JP2927079B2 (ja) * | 1991-10-02 | 1999-07-28 | 松下電器産業株式会社 | データ暗号化方法およびデータ暗号化装置 |
CA2164768C (en) * | 1995-12-08 | 2001-01-23 | Carlisle Michael Adams | Constructing symmetric ciphers using the cast design procedure |
US6459792B2 (en) * | 1997-04-23 | 2002-10-01 | Matsushita Electric Industrial Co., Ltd. | Block cipher using key data merged with an intermediate block generated from a previous block |
US7292693B1 (en) * | 1998-08-13 | 2007-11-06 | Teledyne Technologies Incorporated | Deterministically generating block substitution tables which meet a given standard of nonlinearity |
TW514844B (en) * | 2000-01-26 | 2002-12-21 | Sony Corp | Data processing system, storage device, data processing method and program providing media |
JP4596686B2 (ja) * | 2001-06-13 | 2010-12-08 | 富士通株式会社 | Dpaに対して安全な暗号化 |
JP2004212828A (ja) * | 2003-01-08 | 2004-07-29 | Sony Corp | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
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 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
JP4752313B2 (ja) * | 2004-09-30 | 2011-08-17 | ソニー株式会社 | 暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラム |
KR101226167B1 (ko) * | 2004-10-28 | 2013-01-24 | 이르데토 코포레이트 비.브이. | 암호 함수 모호화 방법 및 시스템 |
JP2006206376A (ja) | 2005-01-28 | 2006-08-10 | Ngk Spark Plug Co Ltd | セラミック焼結体、切削インサート及び切削工具 |
US8111825B2 (en) * | 2005-06-30 | 2012-02-07 | Freescale Semiconductor, Inc. | Encryption apparatus and method therefor |
TW200840238A (en) * | 2007-03-27 | 2008-10-01 | Nat Univ Chung Cheng | The method of electric circuit encryption with external bits and adjustable time pulses |
-
2006
- 2006-09-01 JP JP2006238226A patent/JP5023624B2/ja not_active Expired - Fee Related
-
2007
- 2007-08-29 WO PCT/JP2007/066731 patent/WO2008026623A1/ja active Application Filing
- 2007-08-29 US US12/439,250 patent/US8396210B2/en not_active Expired - Fee Related
- 2007-08-29 EP EP07806208A patent/EP2058782A1/en not_active Withdrawn
- 2007-08-29 CN CN200780040630XA patent/CN101553856B/zh not_active Expired - Fee Related
- 2007-08-31 TW TW096132640A patent/TW200830831A/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
JP2008058829A (ja) | 2008-03-13 |
WO2008026623A1 (fr) | 2008-03-06 |
TWI380659B (ja) | 2012-12-21 |
EP2058782A1 (en) | 2009-05-13 |
US20100091991A1 (en) | 2010-04-15 |
US8396210B2 (en) | 2013-03-12 |
TW200830831A (en) | 2008-07-16 |
CN101553856B (zh) | 2011-04-20 |
CN101553856A (zh) | 2009-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5023624B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JP4967544B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JP5055993B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JP4882598B2 (ja) | 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム | |
JP4961909B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JP5050454B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JP5272417B2 (ja) | データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム | |
JP2008058830A (ja) | データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム | |
JP2007192893A (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JP2007199156A (ja) | 暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム | |
JPWO2009087972A1 (ja) | データ送信装置、データ受信装置、これらの方法、コンピュータプログラム、そのデータ通信システム | |
JP5680016B2 (ja) | 復号処理装置、情報処理装置、および復号処理方法、並びにコンピュータ・プログラム | |
JP5772934B2 (ja) | データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム | |
JP5223245B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JP5338945B2 (ja) | 復号処理装置、情報処理装置、および復号処理方法、並びにコンピュータ・プログラム | |
JP5510587B2 (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 | Written amendment |
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: 20111213 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120210 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120228 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120426 |
|
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: 20120522 |
|
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: 20120604 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150629 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |