JP2006301567A - 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム - Google Patents
暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム Download PDFInfo
- Publication number
- JP2006301567A JP2006301567A JP2005313842A JP2005313842A JP2006301567A JP 2006301567 A JP2006301567 A JP 2006301567A JP 2005313842 A JP2005313842 A JP 2005313842A JP 2005313842 A JP2005313842 A JP 2005313842A JP 2006301567 A JP2006301567 A JP 2006301567A
- Authority
- JP
- Japan
- Prior art keywords
- matrix
- function
- linear
- processing
- linear transformation
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims abstract description 241
- 238000003672 processing method Methods 0.000 title claims abstract description 16
- 238000004590 computer program Methods 0.000 title claims description 15
- 239000011159 matrix material Substances 0.000 claims abstract description 384
- 230000009466 transformation Effects 0.000 claims abstract description 193
- 238000000034 method Methods 0.000 claims description 144
- 230000008569 process Effects 0.000 claims description 125
- 238000006243 chemical reaction Methods 0.000 claims description 101
- 238000013507 mapping Methods 0.000 claims description 19
- 238000009792 diffusion process Methods 0.000 claims description 18
- 238000004458 analytical method Methods 0.000 abstract description 78
- 230000006870 function Effects 0.000 description 254
- 238000004422 calculation algorithm Methods 0.000 description 51
- 239000013598 vector Substances 0.000 description 42
- 230000006872 improvement Effects 0.000 description 22
- 238000004519 manufacturing process Methods 0.000 description 13
- 238000013478 data encryption standard Methods 0.000 description 11
- 230000000694 effects Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- 238000000125 metastable de-excitation spectroscopy Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 208000029589 multifocal lymphangioendotheliomatosis-thrombocytopenia syndrome Diseases 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 101100023520 Caenorhabditis elegans mlt-7 gene Proteins 0.000 description 1
- 101001033699 Homo sapiens Insulinoma-associated protein 2 Proteins 0.000 description 1
- 102100039093 Insulinoma-associated protein 2 Human genes 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 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
- 230000000644 propagated effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000003313 weakening effect Effects 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/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
-
- 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
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
-
- 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)
Abstract
【解決手段】 非線形変換部および線形変換部を有するSPN型のF関数を、複数ラウンド繰り返し実行するFeistel型共通鍵ブロック暗号において、各ラウンドに対応するF関数の線形変換処理を比較的緩やかな制限条件を満足する行列を適用して実行する。本構成により差分攻撃や線形攻撃に対する耐性が向上する。また、制限が比較的緩やかであのので利用できる行列候補が増加し、アクティブS−box数を大きくできる。すなわち、暗号強度指標のひとつであるアクティブSボックスの最小数を大きくすることが可能となり、攻撃に対する耐性が向上し安全性の高い暗号処理が実現される。
【選択図】 図17
Description
複数ビットの入出力を持つ複数の非線形変換層を並列に構成した非線形変換部と、
線形変換を施す線形変換層で構成した線形変換部とで構成されるFeistel型暗号処理を備える暗号処理装置において、
前記線形変換部は、前記線形変換に適応する行列の制約条件に基づいて処理を施すことを特徴とする暗号処理装置にある。
分岐数B(θ)=minα≠0{hwn(α)+hwn(θ(α))}、
ただし、minα≠0{Xα}は、α≠0を満たすすべてのXαのうちの最小値、hwn(Y)はビット列Yをnビットごとに区切って表したときにnビットのデータすべてが0ではない(非ゼロ)要素の数を返す関数、とし、分岐数B(θ)がb+1である写像θを最適拡散変換と定義し、
さらに、行列Mの分岐数をB(M)と表したとき、
BD1=min{B(Mi)|1≦i≦r},
BD2=min{B(Mi|Mi+2)|1≦i≦r−2},
ただし、A|Bは行列A,Bの連結により得られる行列、
とした場合において、
BD1,BD2のすべてが3以上になるような行列Miを適用した構成であることを特徴とする。
暗号処理装置であり、
非線形変換部および線形変換部を有するSPN型のF関数を持つr段からなるFeistel型共通鍵ブロック暗号処理構成を有し、
前記r段各々に対応するF関数の線形変換部は下記条件を満足する行列Miを適用した構成、すなわち、
n×aビットデータからn×bビットデータへの線形変換を行う写像θ:{0,1}na→{0,1}nbに対して、分岐数B(θ)を、
分岐数B(θ)=minα≠0{hwn(α)+hwn(θ(α))}、
ただし、minα≠0{Xα}は、α≠0を満たすすべてのXαのうちの最小値、
hwn(Y)はビット列Yをnビットごとに区切って表したときにnビットのデータすべてが0ではない(非ゼロ)要素の数を返す関数、
とし、分岐数B(θ)がb+1である写像θを最適拡散変換と定義し、
さらに、行列Mの分岐数をB(M)と表したとき、
BD1=min{B(Mi)|1≦i≦r},
BD2=min{B(Mi|Mi+2)|1≦i≦r−2},
BD3=min{B(Mi|Mi+2|Mi+4)|1≦i≦r−4},
ただし、A|Bは行列A,Bの連結により得られる行列、
とした場合において、
BD1,BD2,BD3のすべてが3以上になるような行列Miを適用した構成であることを特徴とする暗号処理装置にある。
暗号処理装置であり、
非線形変換部および線形変換部を有するSPN型のF関数を持つr段からなるFeistel型共通鍵ブロック暗号処理構成を有し、
前記r段各々に対応するF関数の線形変換部は下記条件を満足する行列Miを適用した構成、すなわち、
n×aビットデータからn×bビットデータへの線形変換を行う写像θ:{0,1}na→{0,1}nbに対して、分岐数B(θ)を、
分岐数B(θ)=minα≠0{hwn(α)+hwn(θ(α))}、
ただし、minα≠0{Xα}は、α≠0を満たすすべてのXαのうちの最小値、
hwn(Y)はビット列Yをnビットごとに区切って表したときにnビットのデータすべてが0ではない(非ゼロ)要素の数を返す関数、
とし、分岐数B(θ)がb+1である写像θを最適拡散変換と定義し、
さらに、行列Mの分岐数をB(M)と表したとき、
BL2=min{B(tM−1 i|tM−1 i+2)|1≦i≦r−2}
ただし、tMは行列の転置、
とした場合において、
BL2が3以上になるような行列Miを適用した構成であることを特徴とする暗号処理装置にある。
Feistel型共通鍵ブロック暗号処理を実行する暗号処理方法であり、
非線形変換部および線形変換部を有するSPN型のF関数をr段、繰り返し実行するステップを有し、
前記r段各々に対応するF関数の線形変換処理は下記条件を満足する行列Miを適用した線形変換処理、すなわち、
n×aビットデータからn×bビットデータへの線形変換を行う写像θ:{0,1}na→{0,1}nbに対して、分岐数B(θ)を、
分岐数B(θ)=minα≠0{hwn(α)+hwn(θ(α))}、
ただし、minα≠0{Xα}は、α≠0を満たすすべてのXαのうちの最小値、
hwn(Y)はビット列Yをnビットごとに区切って表したときにnビットのデータすべてが0ではない(非ゼロ)要素の数を返す関数、
とし、分岐数B(θ)がb+1である写像θを最適拡散変換と定義し、
さらに、行列Mの分岐数をB(M)と表したとき、
BD1=min{B(Mi)|1≦i≦r},
BD2=min{B(Mi|Mi+2)|1≦i≦r−2},
BD3=min{B(Mi|Mi+2|Mi+4)|1≦i≦r−4},
ただし、A|Bは行列A,Bの連結により得られる行列、
とした場合において、
BD1,BD2,BD3のすべてが3以上になるような行列Miを適用した線形変換処理によって実行することを特徴とする暗号処理方法にある。
Feistel型共通鍵ブロック暗号処理を実行する暗号処理方法であり、
非線形変換部および線形変換部を有するSPN型のF関数をr段、繰り返し実行するステップを有し、
前記r段各々に対応するF関数の線形変換部は下記条件を満足する行列Miを適用した線形変換処理、すなわち、
n×aビットデータからn×bビットデータへの線形変換を行う写像θ:{0,1}na→{0,1}nbに対して、分岐数B(θ)を、
分岐数B(θ)=minα≠0{hwn(α)+hwn(θ(α))}、
ただし、minα≠0{Xα}は、α≠0を満たすすべてのXαのうちの最小値、
hwn(Y)はビット列Yをnビットごとに区切って表したときにnビットのデータすべてが0ではない(非ゼロ)要素の数を返す関数、
とし、分岐数B(θ)がb+1である写像θを最適拡散変換と定義し、
さらに、行列Mの分岐数をB(M)と表したとき、
BL2=min{B(tM−1 i|tM−1 i+2)|1≦i≦r−2}
ただし、tMは行列の転置、
とした場合において、
BL2が3以上になるような行列Miを適用した線形変換処理によって実行することを特徴とする暗号処理方法にある。
Feistel型共通鍵ブロック暗号処理をコンピュータ上において実行するコンピュータ・プログラムであり、
非線形変換部および線形変換部を有するSPN型のF関数をr段、繰り返し実行するステップを有し、
前記r段各々に対応するF関数の線形変換処理は下記条件を満足する行列Miを適用した線形変換処理、すなわち、
n×aビットデータからn×bビットデータへの線形変換を行う写像θ:{0,1}na→{0,1}nbに対して、分岐数B(θ)を、
分岐数B(θ)=minα≠0{hwn(α)+hwn(θ(α))}、
ただし、minα≠0{Xα}は、α≠0を満たすすべてのXαのうちの最小値、
hwn(Y)はビット列Yをnビットごとに区切って表したときにnビットのデータすべてが0ではない(非ゼロ)要素の数を返す関数、
とし、分岐数B(θ)がb+1である写像θを最適拡散変換と定義し、
さらに、行列Mの分岐数をB(M)と表したとき、
BD1=min{B(Mi)|1≦i≦r},
BD2=min{B(Mi|Mi+2)|1≦i≦r−2},
BD3=min{B(Mi|Mi+2|Mi+4)|1≦i≦r−4},
ただし、A|Bは行列A,Bの連結により得られる行列、
とした場合において、
BD1,BD2,BD3のすべてが3以上になるような行列Miを適用した線形変換処理によって実行することを特徴とするコンピュータ・プログラムにある。
Feistel型共通鍵ブロック暗号処理をコンピュータ上において実行するコンピュータ・プログラムであり、
非線形変換部および線形変換部を有するSPN型のF関数をr段、繰り返し実行するステップを有し、
前記r段各々に対応するF関数の線形変換部は下記条件を満足する行列Miを適用した線形変換処理、すなわち、
n×aビットデータからn×bビットデータへの線形変換を行う写像θ:{0,1}na→{0,1}nbに対して、分岐数B(θ)を、
分岐数B(θ)=minα≠0{hwn(α)+hwn(θ(α))}、
ただし、minα≠0{Xα}は、α≠0を満たすすべてのXαのうちの最小値、
hwn(Y)はビット列Yをnビットごとに区切って表したときにnビットのデータすべてが0ではない(非ゼロ)要素の数を返す関数、
とし、分岐数B(θ)がb+1である写像θを最適拡散変換と定義し、
さらに、行列Mの分岐数をB(M)と表したとき、
BL2=min{B(tM−1 i|tM−1 i+2)|1≦i≦r−2}
ただし、tMは行列の転置、
とした場合において、
BL2が3以上になるような行列Miを適用した線形変換処理によって実行することを特徴とするコンピュータ・プログラムにある。
1.共通鍵ブロック暗号アルゴリズムにおける差分解析処理
2.共通鍵ブロック暗号アルゴリズムにおける線形解析処理
3.耐性を向上させた暗号処理アルゴリズム構成例
(3−a)差分攻撃に対する耐性向上を実現した正方MDS行列の生成およびF関数への設定例
(3−b)線形攻撃に対する耐性向上を実現した正方MDS行列の生成およびF関数への設定例
(3−c)差分攻撃および線形攻撃に対する耐性向上を実現した正方MDS行列の生成およびF関数への設定例
4.本発明に係る暗号処理アルゴリズム
(4a)構成例1
(4a.1)構成例1における差分攻撃に対する耐性の向上
(4a.2)構成例1における線形攻撃に対する耐性の向上
(4b)構成例1
(4b.1)構成例2における差分攻撃に対する耐性の向上
(4b.2)構成例2における線形攻撃に対する耐性の向上
まず、DES(Data Encryption Standard)暗号処理に代表される共通鍵ブロック暗号アルゴリズムにおける差分解析処理の概要について、一般化した共通鍵ブロック暗号モデルを用いて説明する。
iラウンドへの入力差分の左半分は、すべてゼロである入力差分(ΔXi−1=(00,00,00,00,00,00,00,00))であり、右半分の入力差分がただひとつのS−boxへの入力を除いてゼロである入力差分(ΔXi=(34,00,00,00,00,00,00,00))であるとする。このデータ状態は、多数の差分入力データを設定することで、iラウンドにおいて、このようなデータ状態を得ることができるということである。
iラウンドへの非ゼロの入力差分(図4の例では差分:34)を持つSボックス(以下、アクティブSボックス(Active S−box)と呼ぶ)からの出力差分は線形変換層で拡散されたのちF関数から出力(出力値=ΔYi)され、そのまま次のラウンドへの入力差分ΔXi+1となる。
i+1ラウンドのF関数からの出力差分ΔYi+1が、iラウンドでのActive S−boxの位置にのみ非ゼロ値をもつ。このデータ状態は、多数の差分入力データを設定することで、このようなデータ状態を得ることができるということである。
i+2ラウンドのアクティブSボックス(Active S−box)(S1)の出力差分がiラウンドでのアクティブSボックス(Active S−box)(S1)の出力差分と一致した場合、すなわち、図4に示すようにi+2ラウンドのアクティブSボックス((S1)の出力差分がb7となり、iラウンドでのアクティブSボックス(S1)の出力差分(b7)と一致する。このデータ状態は、多数の差分入力データを設定することで、このようなデータ状態を得ることができるということである。
ΔXi+1=ΔYi=(98,c4,b4,d3,ac,72,0f,32)と、
ΔYi+2=(98,c4,b4,d3,ac,72,0f,32)と、
の同一の値同士の排他的論理和演算が実行されることになり、排他的論理和演算結果としてオール0の値を出力する。
iラウンドへの入力差分の左半分は、すべてゼロである入力差分(ΔXi−1=(00,00,00,00,00,00,00,00))であり、右半分の入力差分がただひとつのS−boxへの入力を除いてゼロである入力差分(ΔXi=(34,00,00,00,00,00,00,00))であるとする。このデータ状態は、多数の差分入力データを設定することで、iラウンドにおいて、このようなデータ状態を得ることができるということである。
iラウンドへの非ゼロの入力差分(図4の例では差分:34)を持つSボックス(以下、アクティブSボックス(Active S−box)と呼ぶ)からの出力差分は線形変換層で拡散されたのちF関数から出力(出力値=ΔYi)され、そのまま次のラウンドへの入力差分ΔXi+1となる。
i+1ラウンドのF関数からの出力差分ΔYi+1が、iラウンドでのActive S−boxの位置にのみ非ゼロ値をもつ。このデータ状態は、多数の差分入力データを設定することで、このようなデータ状態を得ることができるということである。
i+2ラウンドのF関数に対する入力は、ΔXi=(34,00,00,00,00,00,00,00)と、ΔYi+1=(34,00,00,00,00,00,00,00)との排他的論理和部142における排他的論理和結果、すなわち、同一データ同士の排他的論理和であり、オールゼロの入力、ΔXi+2=(00,00,00,00,00,00,00,00)となり、その結果、i+2ラウンドのF関数からの出力差分も、オールゼロの出力差分、ΔYi+2=(00,00,00,00,00,00,00,00)となる。
i+3ラウンドのF関数に対する入力は、ΔXi+1=(98,c4,b4,d3,ac,72,0f,32)と、オールゼロのi+2ラウンドのF関数出力差分ΔYi+2=(00,00,00,00,00,00,00,00)との排他的論理和部143における排他的論理和結果であり、i+3ラウンドのF関数に対する入力ΔXi+3=ΔXi+1=(98,c4,b4,d3,ac,72,0f,32)となる。
i+3ラウンドのF関数出力差分が、ΔYi+3=(43,00,00,00,00,00,00,00)となり、オールゼロのΔXi+2=(00,00,00,00,00,00,00,00)との排他的論理和部144における排他的論理和の結果としてのΔXi+4=ΔYi+3=(43,00,00,00,00,00,00,00)がi+4ラウンドのF関数入力差分となる。
i+4ラウンドのアクティブSボックス(Active S−box)(S1)の出力差分がiラウンドでのアクティブSボックス(Active S−box)(S1)の出力差分と一致した場合、すなわち、図6に示すようにi+4ラウンドのアクティブSボックス((S1)の出力差分がb7となり、iラウンドでのアクティブSボックス(S1)の出力差分(b7)と一致する。このデータ状態は、多数の差分入力データを設定することで、このようなデータ状態を得ることができるということである。
ΔXi+3=(98,c4,b4,d3,ac,72,0f,32)と、
ΔYi+4=(98,c4,b4,d3,ac,72,0f,32)と、
の同一の値同士の排他的論理和演算が実行されることになり、排他的論理和演算結果としてオール0の値を出力する。
フェイステル(Feistel)構造のラウンドiでの入力差分の半分(PLまたはPR)が0(図7において、ΔXi=(00,00,00,00,00,00,00,00))であり、そこにi+2jラウンド(j=0,1,2,...)のF関数の出力差分が排他的論理和部で演算されていく過程において、あるラウンドi+2kにおいて、排他的論理和の結果が0(図7において、ΔXi+2j+1=(00,00,00,00,00,00,00,00))になった場合を"同時差分キャンセル"と呼ぶ。
差分解析処理は、上述したように、解析の実行者が一定の差分を持つ入力データ(平文)を容易し、その対応する出力データ(暗号文)を解析することが必要となる。線形解析処理は、一定の差分を持つ入力データ(平文)を準備する必要はなく、所定量以上の入力データ(平文)と対応する出力データ(暗号文)とに基づいて解析を行う。
次に、本発明の出願人が先に提案した暗号処理アルゴリズムについて説明する。以下で説明する暗号処理アルゴリズムは、本出願と同一出願人による特許出願、特願2003−339634、および特願2004−256465において説明しているアルゴリズムであり、上述した線形解析、差分解析等の攻撃に対する耐性を向上させた構成、すなわち、鍵解析の困難性を高め、安全性を向上させた構成を持つ。
(a)正方行列である
(b)行列に含まれるすべての部分行列(submatrix)の行列式(determinant)が0でない、すなわち、det(submatrix)≠0
共通鍵ブロック暗号の各ラウンドで実行するF関数に対する入出力ビット長がm×n(m,n:整数)ビットであり、F関数内に構成される非線形変換部がnビットの入出力を持つm個のSボックスにより構成され、線形変換部がn次の既約多項式で定義される2の拡大体GF(2n)上の元を要素として持つm次の正方行列に基づく線形変換処理を実行する場合の、正方MDS行列の一例を図8に示す。図8に示す正方MDS行列の例は、n=8,m=8の正方MDS行列の例である。
hw(x)+hw(Mx)≧m+1‥‥‥‥‥‥(式1)
ラウンド数2rの半数rに対してr以下の数q、すなわち、
q≦rとなる数qを選択する。ただし、qは2以上の整数である。
[ステップS22]
q個のGF(2n)上のm次正方MDS行列L1,L2,...,Lqを生成する。q個のGF(2n)上のm次正方MDS行列L1,L2,...,Lqの生成処理手法についての詳細は、後段で説明する。
[ステップS23]
2i−1(1≦i≦r)段目の線形変換行列MLT2i−1にL(i−1modq)+1を設定する。
[ステップS24]
2i(1≦i≦r)段目の線形変換行列にMLT2iにMLT2r−2i+1を設定する。
MLT1=L1, MLT2=L3
MLT3=L2, MLT4=L2
MLT5=L3, MLT6=L1
MLT7=L1, MLT8=L3
MLT9=L2, MLT10=L2
MLT11=L3, MLT12=L1
の設定となる。
(3−a)差分攻撃に対する耐性向上を実現した正方MDS行列の生成およびF関数への設定例
(3−b)線形攻撃に対する耐性向上を実現した正方MDS行列の生成およびF関数への設定例
(3−c)差分攻撃および線形攻撃に対する耐性向上を実現した正方MDS行列の生成およびF関数への設定例
まず、差分攻撃に対する耐性向上を実現した正方MDS行列の生成およびF関数への設定例として、3つの処理例a1,a2,a3について説明する。
差分攻撃に対する耐性向上を実現した正方MDS行列の生成およびF関数への設定例の第1の例について説明する。まず、図11に示すフローチャートを参照して正方MDS行列の生成処理について説明する。
入力:必要な正方MDSの個数q,拡大次数:n,行列のサイズ:mとして、
GF(2n)上で、q個のm次正方MDS行列L1,L2,...,Lqをランダムに生成する。なお、図11に示すフローでは、MDSの個数q=6,拡大次数:n=8,行列のサイズ:m=8の場合の処理例として示してある。
q個のm次正方MDS行列L1,L2,...,Lqに含まれるqm個の列の任意のm個を取り出したときに、線形独立になっているかどうかをチェックする。チェックに通過したらステップS103に進む、そうでない場合はステップS101にもどる。
[ステップS103]
q個のm次正方MDS行列L1,L2,...,Lqを、ラウンド数2rのFeistel型共通鍵ブロック暗号に適用する正方MDS行列として出力する。
(a)各F関数の線形変換行列は正方MDSであること、
(b)暗号化関数内の奇数ラウンド内の少なくとも連続するq個のF関数に含まれる線形変換行列の任意のm個の列ベクトルが独立であること、
(c)偶数ラウンド内の少なくとも連続するq個のF関数に含まれる線形変換行列の任意のm個の列ベクトルが独立であること、
これら(a)〜(c)が保証されるため、複数段のラウンド数を持つFeistel型共通鍵ブロック暗号処理構成において、連続する2q−1ラウンドにおいて、m個以下のアクティブSボックスの寄与による同時差分キャンセルは発生しないことが保証される。よって暗号化関数全体のアクティブSボックス数の最小値が増大する。
差分攻撃に対する耐性向上を実現した正方MDS行列の生成およびF関数への設定例の第2の例について説明する。図12のフローチャートを参照して正方MDS行列の生成処理について説明する。
入力:必要なMDSの個数q,拡大次数:n,行列のサイズ:mとして、
GF(2n)上で、q個のm次正方MDS行列L1,L2,...,Lqをランダムに生成する。なお、図12に示すフローでは、MDSの個数q=6,拡大次数:n=8,行列のサイズ:m=8の場合の処理例として示してある。
q個のm次正方MDS行列L1,L2,...,Lqに含まれるqm個の列の任意のm個を取り出したときに、正方MDS行列になっているかどうかをチェックする。チェックに通過したらステップS203に進む、そうでない場合はステップS201にもどる。
なお、正方MDS行列とは、前述したように以下の性質を満たす行列をいう。
(a)正方行列である
(b)行列に含まれるすべての部分行列(submatrix)の行列式(determinant)が0でない、すなわち、det(submatrix)≠0
[ステップS203]
q個のm次正方MDS行列L1,L2,...,Lqを、ラウンド数2rのFeistel型共通鍵ブロック暗号に適用する正方MDS行列として出力する。
(a)各F関数の線形変換行列は正方MDSであること、
(b)暗号化関数内の奇数ラウンド内の少なくとも連続するq個のF関数に含まれる線形変換行列の任意のm個の列ベクトルが正方MDS行列であること、
(c)偶数ラウンド内の少なくとも連続するq個のF関数に含まれる線形変換行列の任意のm個の列ベクトルが正方MDS行列であること、
これら(a)〜(c)が保証されるため、複数段のラウンド数を持つFeistel型共通鍵ブロック暗号処理構成において、連続する2q−1ラウンドにおいて、m個以下のアクティブSボックスの寄与による同時差分キャンセルは発生しないことが保証される。
さらに、
(d)正方MDSの性質から、a個(a≦m)のアクティブSボックスの寄与によって得られる差分値における非ゼロの要素数はm+1−a個以上になることが保証される。よって暗号化関数全体のアクティブSボックス数の最小値が増大する。
差分攻撃に対する耐性向上を実現した正方MDS行列の生成およびF関数への設定例の第3の例について説明する。図13のフローチャートを参照して正方MDS行列の生成処理について説明する。
入力:必要なMDSの個数q,拡大次数:n,行列のサイズ:mとして、
GF(2n)上で、1個のqm次正方MDS行列Mを生成する。なお、図13に示すフローでは、MDSの個数q=6,拡大次数:n=8,行列のサイズ:m=8の場合の処理例として示してある。
1個のqm次正方MDS行列Mからm本の行を任意に選択抽出し、m行,qm列の行列M'を構成する。
[ステップS303]
m行,qm列の行列M'に含まれるqm本の列ベクトルを重複することなくm本の列ベクトルからなるq個のグループに任意に分割し、それぞれのグループに含まれる列ベクトルからm次の正方行列L1,L2,...,Lqを、ラウンド数2rのFeistel型共通鍵ブロック暗号に適用する正方MDS行列として出力する。
[ステップS301]
GF(2n)上で、1個のqm次正方MDS行列Mを生成する。図14に示すように、qm×qmの正方MDS行列Mを生成する。なお、このステップS301において生成する行列Mの次数はqm次より大きいものでもよい。
[ステップS302]
図14に示すように、qm次正方MDS行列Mからm本の行を任意に選択抽出し、m行,qm列の行列M'を構成する。なお、図に示す例では、連続するm本の行を選択抽出した例として示してあるが、m次正方MDS行列Mを構成する任意の離間した行をm本選択抽出して、m行,qm列の行列M'を構成してもよい。
[ステップS303]
m行,qm列の行列M'に含まれるqm本の列ベクトルを重複することなくm本の列ベクトルからなるx個のグループに任意に分割し、それぞれのグループに含まれる列ベクトルからm次の正方行列L1,L2,...,Lxを生成する。
(a)各F関数の線形変換行列は正方MDSであること、
(b)暗号化関数内の奇数ラウンド内の少なくとも連続するq個のF関数に含まれる線形変換行列の任意のm個の列ベクトルが独立であること、
(c)偶数ラウンド内の少なくとも連続するq個のF関数に含まれる線形変換行列の任意のm個の列ベクトルが独立であること、
これら(a)〜(c)が保証されるため、複数段のラウンド数を持つFeistel型共通鍵ブロック暗号処理構成において、連続する2q−1ラウンドにおいて、m個以下のアクティブSボックスの寄与による同時差分キャンセルは発生しないことが保証される。
さらに、
(d)正方MDSの性質から、a個(a≦m)のアクティブSボックスの寄与によって得られる差分値における非ゼロの要素数はm+1−a個以上になることが保証される。よって暗号化関数全体のアクティブSボックス数の最小値が増大する。
次に、線形攻撃に対する耐性向上を実現した正方MDS行列の生成およびF関数への設定例として、2つの処理例b1,b2について説明する。
線形攻撃に対する耐性向上を実現した正方MDS行列の生成およびF関数への設定例の第1の例について、説明する。図15に示すフローチャートを参照して正方MDS行列の生成処理について説明する。
入力:必要な正方MDSの個数q,拡大次数:n,行列のサイズ:mとして、
GF(2n)上で、q個のm次正方MDS行列M1,M2,...,Mqをランダムに生成する。なお、図14に示すフローでは、正方MDSの個数q=6,拡大次数:n=8,行列のサイズ:m=8の場合の処理例として示してある。
q個のm次正方MDS行列M1,M2,...,Mqの逆行列M1−1,M2−1,...,Mq−1を算出し、隣り合う2つの逆行列に含まれる2mの行ベクトルから任意のm本の行ベクトルを取り出したときに、線形独立になっているかどうかをチェックする。図15中、tRは、行ベクトルの転置ベクトルを示すものである。チェックに通過したらステップS403に進む、そうでない場合はステップS401にもどる。ただし、M1−1とMq−1は、隣り合う行列とする。
[ステップS403]
q個のm次正方MDS行列L1,L2,...,Lqを、ラウンド数2rのFeistel型共通鍵ブロック暗号に適用する正方MDS行列として出力する。
(a)各F関数の線形変換行列は正方MDSであること、
(b)暗号化関数内の奇数ラウンド内に連続して含まれる線形変換行列、および偶数ラウンド内に連続して含まれる線形変換行列の逆行列の任意のm個の列ベクトルは独立であること、
が保証される。このことにより、線形攻撃における線形近似による解析困難性を高めることが可能となり、解析の困難性、すなわち鍵の解析の困難な安全性の高い暗号処理が実現される。
線形攻撃に対する耐性向上を実現した正方MDS行列の生成およびF関数への設定例の第2の例について、説明する。図16に示すフローチャートを参照して正方MDS行列の生成処理について説明する。
入力:必要な正方MDSの個数q,拡大次数:n,行列のサイズ:mとして、
GF(2n)上で、q個のm次正方MDS行列M1,M2,...,Mqをランダムに生成する。なお、図16に示すフローでは、正方MDSの個数q=6,拡大次数:n=8,行列のサイズ:m=8の場合の処理例として示してある。
q個のm次正方MDS行列M1,M2,...,Mqの逆行列M1−1,M2−1,...,Mq−1を算出し、隣り合う2つの逆行列に含まれる2mの行ベクトルから任意のm本の行ベクトルを取り出したときに、正方MDS行列になっているかどうかをチェックする。図16中、tRは、行ベクトルの転置ベクトルを示すものである。チェックに通過したらステップS503に進む、そうでない場合はステップS401にもどる。ただし、M1−1とMq−1は、隣り合う行列とする。
なお、正方MDS行列とは、前述したように以下の性質を満たす行列をいう。
(a)正方行列である
(b)行列に含まれるすべての部分行列(submatrix)の行列式(determinant)が0でない、すなわち、det(submatrix)≠0
q個のm次正方MDS行列L1,L2,...,Lqを、ラウンド数2rのFeistel型共通鍵ブロック暗号に適用する正方MDS行列として出力する。
(a)各F関数の線形変換行列は正方MDSであること、
(b)暗号化関数内の奇数ラウンド内に連続して含まれる線形変換行列、および偶数ラウンド内に連続して含まれる線形変換行列の逆行列の任意のm個の列ベクトルが正方MDS行列となること、
が保証される。このことにより、線形攻撃における線形近似による解析困難性を高めることが可能となり、解析の困難性、すなわち鍵の解析の困難な安全性の高い暗号処理が実現される。
次に、差分攻撃および線形攻撃に対する耐性向上を実現した正方MDS行列の生成およびF関数への設定例について説明する。
処理例a1(図11)〜a3(図13)のいずれかの処理と、
処理例b1(図14)、b2(図15)のいずれかの処理とを、
併せて実行して生成した正方MDS行列を、図10において説明した[ステップS23]、[ステップS24]の処理に従って、段数(ラウンド数)が2rのFeistel型共通鍵ブロック暗号処理構成の各段のF関数部の線形変換部の線形変換処理に適用する行列として設定することで実現される。
処理例a1と処理例b1、
処理例a1と処理例b2、
処理例a2と処理例b1、
処理例a2と処理例b2、
処理例a3と処理例b1、
処理例a3と処理例b2、
のいずれかの組み合わせによって、q個の正方MDS行列を生成し、2rのFeistel型共通鍵ブロック暗号処理構成の各段のF関数部の線形変換部の線形変換処理に適用する行列として設定する。奇数段目については上位段から順にL1,L2,・・,Lq,L1,L2・・としてq個の正方MDS行列を繰り返し設定し、偶数段のF関数については、下位段のF関数から順に、L1,L2,・・,Lq,L1,L2・・として、q個の正方MDS行列を繰り返し設定する。この設定により、差分攻撃および線形攻撃に対する耐性向上を実現した暗号処理が可能となる。
入力:必要な正方MDSの個数q,拡大次数:n,行列のサイズ:mとして、
GF(2n)上で、q個のm次正方MDS行列M1,M2,...,Mqをランダムに生成する。なお、図17に示すフローでは、正方MDSの個数q=6,拡大次数:n=8,行列のサイズ:m=8の場合の処理例として示してある。
q個のm次正方MDS行列M1,M2,...,Mqに含まれるqm個の列の任意のm個を取り出したときに、正方MDS行列になっているかどうかをチェックする。チェックに通過したらステップS603に進む、そうでない場合はステップS601にもどる。
なお、正方MDS行列とは、前述したように以下の性質を満たす行列をいう。
(a)正方行列である
(b)行列に含まれるすべての部分行列(submatrix)の行列式(determinant)が0でない、すなわち、det(submatrix)≠0
q個のm次正方MDS行列M1,M2,...,Mqの逆行列M1−1,M2−1,...,Mq−1を算出し、隣り合う2つの逆行列に含まれる2mの行ベクトルから任意のm本の行ベクトルを取り出したときに、正方MDS行列になっているかどうかをチェックする。図17中、tRは、行ベクトルの転置ベクトルを示すものである。チェックに通過したらステップS604に進む、そうでない場合はステップS601にもどる。ただし、M1−1とMq−1は、隣り合う行列とする。
q個のm次正方MDS行列L1,L2,...,Lqを、ラウンド数2rのFeistel型共通鍵ブロック暗号に適用する正方MDS行列として出力する。
(a)各F関数の線形変換行列は正方MDSであること、
(b)暗号化関数内の奇数ラウンド内の少なくとも連続するq個のF関数に含まれる線形変換行列の任意のm個の列ベクトルが正方MDS行列であること、
(c)偶数ラウンド内の少なくとも連続するq個のF関数に含まれる線形変換行列の任意のm個の列ベクトルが正方MDS行列であること、
これら(a)〜(c)が保証されるため、複数段のラウンド数を持つFeistel型共通鍵ブロック暗号処理構成において、連続する2q−1ラウンドにおいて、m個以下のアクティブSボックスの寄与による同時差分キャンセルは発生しないことが保証される。
さらに、
(d)正方MDSの性質から、a個(a≦m)のアクティブSボックスの寄与によって得られる差分値における非ゼロの要素数はm+1−a個以上になることが保証される。よって暗号化関数全体のアクティブSボックス数の最小値が増大する。
さらに、
(e)暗号化関数内の奇数ラウンド内に連続して含まれる線形変換行列、および偶数ラウンド内に連続して含まれる線形変換行列の逆行列の任意のm個の列ベクトルが正方MDS行列となることが保証される。このことにより、線形攻撃における線形近似による解析困難性を高めることが可能となり、解析の困難性、すなわち鍵の解析の困難な安全性の高い暗号処理が実現される。
次に、本発明に係る暗号処理アルゴリズムについて説明する。
上述の項目[3.耐性を向上させた暗号処理アルゴリズム構成例]において説明したように、非線形変換部および線形変換部を有するSPN型のF関数の複数ラウンド繰り返し構成において、特定の条件を満足する正方MDS(Maximum Distance Separable)行列を適用した線形変換処理を行なう構成とすることで、暗号解析処理、攻撃処理として知られる線形解析、差分解析に対する耐性を向上させることが可能であることを説明した。
(A1)各F関数の線形変換行列は正方MDSであること、
(A2)暗号化関数内の奇数ラウンド内の少なくとも連続するq個のF関数に含まれる線形変換行列の任意のm個の列ベクトルが独立または正方MDS行列であること、
(A3)偶数ラウンド内の少なくとも連続するq個のF関数に含まれる線形変換行列の任意のm個の列ベクトルが独立または正方MDS行列であること、
これらの条件を満足させることが必要であった。
(B1)各F関数の線形変換行列は正方MDSであること、
(B2)暗号化関数内の奇数ラウンド内に連続して含まれる線形変換行列、および偶数ラウンド内に連続して含まれる線形変換行列の逆行列の任意のm個の列ベクトルが正方MDS行列となること、
これらの条件を満足させることが必要であった。
まず、本発明に係るFeistel型共通鍵ブロック暗号構成例1について説明する。
まず、線形変換の特殊な例として最適拡散変換(Optimal Diffusion Mappings)を以下のように定義する。
n×aビットデータからn×bビットデータへの線形変換を行う写像[θ]
θ:{0,1}na→{0,1}nb
に対して分岐数B(θ)を次のように定義する。
B(θ)=minα≠0{hwn(α)+hwn(θ(α))}
ただし、minα≠0{Xα}は、α≠0を満たすすべてのXαのうちの最小値を表すものとし、hwn(Y)はビット列Yをnビットごとに区切って表したときに、nビットのデータすべてが0ではない(非ゼロ)要素の数を返す関数とする。
このとき、B(θ)がb+1であるような写像θを最適拡散変換と定義する。また便宜的に行列Mの分岐数をB(M)と表すものとする。
BD1=min{B(Mi)|1≦i≦r},
BD2=min{B(Mi|Mi+2)|1≦i≦r−2},
として定義する。
ただしA|Bは行列A,Bの連結により得られる行列を表すものとする。
BL2=min{B(tM−1 i|tM−1 i+2)|1≦i≦r−2}
とする。ただし、tMは行列の転置を表すものとする。
(1)BD1,BD2が3以上になるような行列Miを選択することにより、差分攻撃に対する耐性を向上させ、かつ
(2)BL2が3以上になるような行列Miを選択することにより、線形攻撃に対して耐性を向上させた。
まず、上記条件(1)、すなわち、BD1,BD2が3以上になるような行列Miを選択することにより、差分攻撃に対する耐性が向上する理由について説明する。
BD1=min{B(Mi)|1≦i≦r},
BD2=min{B(Mi|Mi+2)|1≦i≦r−2},
ただしA|Bは行列A,Bの連結により得られる行列を表すものとする。
このとき
条件0)BD1≧BD2
という関係が存在する。
条件1)Di=0ならば、Di−2≠0,Di−1≠0,Di+1≠0,Di+2≠0,
条件2)Di=0ならば、Di−1=Di+1,
条件3)Di+1≠0ならばDi+Di+1+Di+2≧BD1,
条件4)Di=0ならばDi+1+Di+2≧BD1,
条件5)Di+2=0ならばDi+Di+1≧BD1,
条件6)Di=0ならばDi+1+Di+3+Di+4≧BD2,
条件7)Di+4=0ならばDi+Di+1+Di+3≧BD2,
である。
上記条件3より、Di+Di+1+Di+2≧BD1かつDi+3+Di+4+Di+5≧BD1であるため、
T6≧2BD1
となる。
T6=Di+Di+1+Di+2+Di+3+Di+4+Di+5
となり、上記条件2より、
T6=2Di+2+Di+3+Di+4+Di+5
が成立し、さらに、上記条件4および条件6に基づいて、
T6=(Di+2+Di+3)+(Di+2+Di+4+Di+5)≧BD1+BD2
となる。
上記ケース2と同様の証明により、
T6≧BD1+BD2
となる。
T6≧BD1+BD2
となる。
BD1≧BD2という条件が存在し、BD2を大きくとることにより、ゼロでない入出力差分をもつS−box(差分アクティブS−box)の最小数を底上げする効果がある。
(A1)各F関数の線形変換行列は正方MDSであること、
(A2)暗号化関数内の奇数ラウンド内の少なくとも連続するq個のF関数に含まれる線形変換行列の任意のm個の列ベクトルが独立または正方MDS行列であること、
(A3)偶数ラウンド内の少なくとも連続するq個のF関数に含まれる線形変換行列の任意のm個の列ベクトルが独立または正方MDS行列であること、
これらの条件を満足させることが必要であった。
BD1=min{B(Mi)|1≦i≦r},
BD2=min{B(Mi|Mi+2)|1≦i≦r−2},
を用いて示すと、
BD1=BD2=m+1
となる条件に相当するものである。
BD1≧BD2という条件が存在しており、BD2を大きくとることにより、最小数を底上げする効果があり、F関数の線形変換に適用する行列の候補数が増え、かつゼロでない入出力差分をもつ差分アクティブS−boxの数を十分に大きく確保できるというメリットがある。すなわち、共通鍵ブロック暗号における攻撃に対する強度指標のひとつである暗号化関数全体でのアクティブSボックスの最小数を大きくすることが可能となり、差分攻撃に対して耐性が向上し、より安全性の高い暗号処理が実現される。
次に、前述した条件(2)、すなわち、BL2が3以上になるような行列Miを選択することにより、線形攻撃に対して耐性が向上する理由について説明する。
BL2=min{B(tM−1 i|tM−1 i+2)|1≦i≦r−2}
とする。ただし、tMは行列の転置を表すものとする。
条件1)Li+Li+1+Li+2≧BL2
が常に成立する。
(B1)各F関数の線形変換行列は正方MDSであること、
(B2)暗号化関数内の奇数ラウンド内に連続して含まれる線形変換行列、および偶数ラウンド内に連続して含まれる線形変換行列の逆行列の任意のm個の列ベクトルが正方MDS行列となること、
これらの条件を満足させることが必要であった。
この条件は、前述の定義データBL2、すなわち、
BL2=min{B(tM−1 i|tM−1 i+2)|1≦i≦r−2}
を用いて表すと、
BL2=m+1
となる条件に相当するものである。
BL2が3以上になるような行列Miを選択する
という条件を設定しているのみであり、3R段の線形アクティブS−boxの最小数は、R×BL2で保証することができる。従ってBL2を大きくとることにより、線形アクティブS−boxの最小数を底上げする効果がある。すなわち、共通鍵ブロック暗号における攻撃に対する強度指標のひとつである暗号化関数全体でのアクティブSボックスの最小数を大きくすることが可能となり、線形攻撃に対して耐性が向上し、より安全性の高い暗号処理が実現される。
(1)BD1,BD2が3以上になるような行列Miを選択する
(2)BL2が3以上になるような行列Miを選択する
これらの2つの条件は、独立に定義される条件であり、(1)の条件を満足させることで差分攻撃に対する耐性を向上し、(2)の条件を満足させることで、線形攻撃に対する耐性が向上する。
次に、本発明に係るFeistel型共通鍵ブロック暗号構成例2について説明する。この構成例は、構成例1に比較して制約の多い構成例である。
まず、線形変換の特殊な例として最適拡散変換(Optimal Diffusion Mappings)を以下のように定義する。
n×aビットデータからn×bビットデータへの線形変換を行う写像[θ]
θ:{0,1}na→{0,1}nb
に対して分岐数B(θ)を次のように定義する。
B(θ)=minα≠0{hwn(α)+hwn(θ(α))}
ただし、minα≠0{Xα}は、α≠0を満たすすべてのXαのうちの最小値を表すものとし、hwn(Y)はビット列Yをnビットごとに区切って表したときに、nビットのデータすべてが0ではない(非ゼロ)要素の数を返す関数とする。
このとき、B(θ)がb+1であるような写像θを最適拡散変換と定義する。また便宜的に行列Mの分岐数をB(M)と表すものとする。
BD1=min{B(Mi)|1≦i≦r},
BD2=min{B(Mi|Mi+2)|1≦i≦r−2},
BD3=min{B(Mi|Mi+2|Mi+4)|1≦i≦r−4},
として定義する。
ただしA|Bは行列A,Bの連結により得られる行列を表すものとする。
BL2=min{B(tM−1 i|tM−1 i+2)|1≦i≦r−2}
とする。ただし、tMは行列の転置を表すものとする。
(1)BD1,BD2,BD3が3以上になるような行列Miを選択することにより、差分攻撃に対する耐性を向上させ、かつ
(2)BL2が3以上になるような行列Miを選択することにより、線形攻撃に対して耐性を向上させた。
まず、上記条件(1)、すなわち、BD1,BD2,BD3が3以上になるような行列Miを選択することにより、差分攻撃に対する耐性が向上する理由について説明する。
BD1=min{B(Mi)|1≦i≦r},
BD2=min{B(Mi|Mi+2)|1≦i≦r−2},
BD3=min{B(Mi|Mi+2|Mi+4)|1≦i≦r−4},
ただしA|Bは行列A,Bの連結により得られる行列を表すものとする。
このとき
条件0)BD1≧BD2≧BD3
という関係が存在する。
条件1)Di=0ならば、Di−2≠0,Di−1≠0,Di+1≠0,Di+2≠0,
条件2)Di=0ならば、Di−1=Di+1,
条件3)Di+1≠0ならばDi+Di+1+Di+2≧BD1,
条件4)Di=0ならばDi+1+Di+2≧BD1,
条件5)Di+2=0ならばDi+Di+1≧BD1,
条件6)Di=0ならばDi+1+Di+3+Di+4≧BD2,
条件7)Di+4=0ならばDi+Di+1+Di+3≧BD2,
条件8)Di=Di+6=0ならばDi+1+Di+3+Di+5≧BD3,
である。
上記条件3より、Di+Di+1+Di+2≧BD1かつDi+3+Di+4+Di+5≧BD1であるため、
T6≧2BD1
となる。
T6=Di+Di+1+Di+2+Di+3+Di+4+Di+5
となり、上記条件2より、
T6=2Di+2+Di+3+Di+4+Di+5
が成立し、さらに、上記条件4および条件6に基づいて、
T6=(Di+2+Di+3)+(Di+2+Di+4+Di+5)≧BD1+BD2
となる。
上記ケース2と同様の証明により、
T6≧BD1+BD2
となる。
T6≧BD1+BD2
となる。
T9=(Di+Di+1+Di+2+Di+3+Di+4+Di+5+Di+6+Di+7+Di+8)
について考察する。
上記条件3より、
Di+Di+1+Di+2≧BD1
また、前述した6段の差分アクティブS−box数により、
Di+3+Di+4+Di+5+Di+6+Di+7+Di+8≧BD1+BD2
が成立する。よって、
T9≧2BD1+BD2
となる。
ケース1と同様の証明により、
T9≧2BD1+BD2
となる。
T9=Di+Di+1+Di+2+Di+3+Di+4+Di+5+Di+6+Di+7+Di+8
であり、さらに条件2より、
T9=2Di+2+Di+3+Di+4+Di+5+2Di+6
となり、さらに条件4,8,5より、
T9=(Di+2+Di+3)+(Di+2+Di+4+Di+6)+(Di+5+Di+6)≧2BD1+BD3
となる。
従って、以上の結果をまとめ、条件0を考慮すると、
T9≧2BD1+BD3となる。
例)6=6,9=9,12=6+6,15=6+9,18=6+6+6=9+9,
21=6+6+9,24=6+6+6+6=9+9+6,...
BD1≧BD2≧BD3という条件を設定しているものであり、
BD3を大きくとることにより、ゼロでない入出力差分をもつS−box(差分アクティブS−box)の最小数を底上げする効果がある。
(A1)各F関数の線形変換行列は正方MDSであること、
(A2)暗号化関数内の奇数ラウンド内の少なくとも連続するq個のF関数に含まれる線形変換行列の任意のm個の列ベクトルが独立または正方MDS行列であること、
(A3)偶数ラウンド内の少なくとも連続するq個のF関数に含まれる線形変換行列の任意のm個の列ベクトルが独立または正方MDS行列であること、
これらの条件を満足させることが必要であった。
BD1=min{B(Mi)|1≦i≦r},
BD2=min{B(Mi|Mi+2)|1≦i≦r−2},
BD3=min{B(Mi|Mi+2|Mi+4)|1≦i≦r−4},
を用いて示すと、
BD1=BD2=BD3=m+1
となる条件に相当するものである。
BD1≧BD2≧BD3という条件を設定しているのみであり、
BD3を大きくとることにより、最小数を底上げする効果があり、F関数の線形変換に適用する行列の候補数が増え、かつゼロでない入出力差分をもつ差分アクティブS−boxの数を十分に大きく確保できるというメリットがある。すなわち、共通鍵ブロック暗号における攻撃に対する強度指標のひとつである暗号化関数全体でのアクティブSボックスの最小数を大きくすることが可能となり、差分攻撃に対して耐性が向上し、より安全性の高い暗号処理が実現される。
次に、前述した条件(2)、すなわち、BL2が3以上になるような行列Miを選択することにより、線形攻撃に対して耐性が向上する理由について説明する。
BL2=min{B(tM−1 i|tM−1 i+2)|1≦i≦r−2}
とする。ただし、tMは行列の転置を表すものとする。
条件1)Li+Li+1+Li+2≧BL2
が常に成立する。
(B1)各F関数の線形変換行列は正方MDSであること、
(B2)暗号化関数内の奇数ラウンド内に連続して含まれる線形変換行列、および偶数ラウンド内に連続して含まれる線形変換行列の逆行列の任意のm個の列ベクトルが正方MDS行列となること、
これらの条件を満足させることが必要であった。
この条件は、前述の定義データBL2、すなわち、
BL2=min{B(tM−1 i|tM−1 i+2)|1≦i≦r−2}
を用いて表すと、
BL2=m+1
となる条件に相当するものである。
BL2が3以上になるような行列Miを選択する
という条件を設定しているのみであり、3R段の線形アクティブS−boxの最小数は、R×BL2で保証することができる。従ってBL2を大きくとることにより、線形アクティブS−boxの最小数を底上げする効果がある。すなわち、共通鍵ブロック暗号における攻撃に対する強度指標のひとつである暗号化関数全体でのアクティブSボックスの最小数を大きくすることが可能となり、線形攻撃に対して耐性が向上し、より安全性の高い暗号処理が実現される。
(1)BD1,BD2,BD3が3以上になるような行列Miを選択する
(2)BL2が3以上になるような行列Miを選択する
これらの2つの条件は、独立に定義される条件であり、(1)の条件を満足させることで差分攻撃に対する耐性を向上し、(2)の条件を満足させることで、線形攻撃に対する耐性が向上する。
102 入力データPR(Plain-Right)
103 ラウンド鍵
104 排他的論理和部
120 F関数
121 Sボックス(S−box)
122 線形変換部
125 正方行列
131,133 排他的論理和部
141〜145 排他的論理和部
401 F関数
402 正方MDS行列
600 ICモジュール
601 CPU(Central processing Unit)
602 メモリ
603 暗号処理部
604 乱数発生器
605 送受信部
Claims (8)
- 複数ビットの入出力を持つ複数の非線形変換層を並列に構成した非線形変換部と、
線形変換を施す線形変換層で構成した線形変換部とで構成されるFeistel型暗号処理を備える暗号処理装置において、
前記線形変換部は、前記線形変換に適応する行列の制約条件に基づいて処理を施すことを特徴とする暗号処理装置。 - 前記線形変換に適応する行列の制約条件は、
r段各々に対応するF関数の線形変換部の満足する行列Miを適用した構成、すなわち、 n×aビットデータからn×bビットデータへの線形変換を行う写像θ:{0,1}na→{0,1}nbに対して、分岐数B(θ)を、
分岐数B(θ)=minα≠0{hwn(α)+hwn(θ(α))}、
ただし、minα≠0{Xα}は、α≠0を満たすすべてのXαのうちの最小値、hwn(Y)はビット列Yをnビットごとに区切って表したときにnビットのデータすべてが0ではない(非ゼロ)要素の数を返す関数、とし、分岐数B(θ)がb+1である写像θを最適拡散変換と定義し、
さらに、行列Mの分岐数をB(M)と表したとき、
BD1=min{B(Mi)|1≦i≦r},
BD2=min{B(Mi|Mi+2)|1≦i≦r−2},
ただし、A|Bは行列A,Bの連結により得られる行列、
とした場合において、
BD1,BD2のすべてが3以上になるような行列Miを適用した構成であることを特徴とする請求項1に記載の暗号処理装置。 - 暗号処理装置であり、
非線形変換部および線形変換部を有するSPN型のF関数を持つr段からなるFeistel型共通鍵ブロック暗号処理構成を有し、
前記r段各々に対応するF関数の線形変換部は下記条件を満足する行列Miを適用した構成、すなわち、
n×aビットデータからn×bビットデータへの線形変換を行う写像θ:{0,1}na→{0,1}nbに対して、分岐数B(θ)を、
分岐数B(θ)=minα≠0{hwn(α)+hwn(θ(α))}、
ただし、minα≠0{Xα}は、α≠0を満たすすべてのXαのうちの最小値、
hwn(Y)はビット列Yをnビットごとに区切って表したときにnビットのデータすべてが0ではない(非ゼロ)要素の数を返す関数、
とし、分岐数B(θ)がb+1である写像θを最適拡散変換と定義し、
さらに、行列Mの分岐数をB(M)と表したとき、
BD1=min{B(Mi)|1≦i≦r},
BD2=min{B(Mi|Mi+2)|1≦i≦r−2},
BD3=min{B(Mi|Mi+2|Mi+4)|1≦i≦r−4},
ただし、A|Bは行列A,Bの連結により得られる行列、
とした場合において、
BD1,BD2,BD3のすべてが3以上になるような行列Miを適用した構成であることを特徴とする暗号処理装置。 - 暗号処理装置であり、
非線形変換部および線形変換部を有するSPN型のF関数を持つr段からなるFeistel型共通鍵ブロック暗号処理構成を有し、
前記r段各々に対応するF関数の線形変換部は下記条件を満足する行列Miを適用した構成、すなわち、
n×aビットデータからn×bビットデータへの線形変換を行う写像θ:{0,1}na→{0,1}nbに対して、分岐数B(θ)を、
分岐数B(θ)=minα≠0{hwn(α)+hwn(θ(α))}、
ただし、minα≠0{Xα}は、α≠0を満たすすべてのXαのうちの最小値、
hwn(Y)はビット列Yをnビットごとに区切って表したときにnビットのデータすべてが0ではない(非ゼロ)要素の数を返す関数、
とし、分岐数B(θ)がb+1である写像θを最適拡散変換と定義し、
さらに、行列Mの分岐数をB(M)と表したとき、
BL2=min{B(tM−1 i|tM−1 i+2)|1≦i≦r−2}
ただし、tMは行列の転置、
とした場合において、
BL2が3以上になるような行列Miを適用した構成であることを特徴とする暗号処理装置。 - Feistel型共通鍵ブロック暗号処理を実行する暗号処理方法であり、
非線形変換部および線形変換部を有するSPN型のF関数をr段、繰り返し実行するステップを有し、
前記r段各々に対応するF関数の線形変換処理は下記条件を満足する行列Miを適用した線形変換処理、すなわち、
n×aビットデータからn×bビットデータへの線形変換を行う写像θ:{0,1}na→{0,1}nbに対して、分岐数B(θ)を、
分岐数B(θ)=minα≠0{hwn(α)+hwn(θ(α))}、
ただし、minα≠0{Xα}は、α≠0を満たすすべてのXαのうちの最小値、
hwn(Y)はビット列Yをnビットごとに区切って表したときにnビットのデータすべてが0ではない(非ゼロ)要素の数を返す関数、
とし、分岐数B(θ)がb+1である写像θを最適拡散変換と定義し、
さらに、行列Mの分岐数をB(M)と表したとき、
BD1=min{B(Mi)|1≦i≦r},
BD2=min{B(Mi|Mi+2)|1≦i≦r−2},
BD3=min{B(Mi|Mi+2|Mi+4)|1≦i≦r−4},
ただし、A|Bは行列A,Bの連結により得られる行列、
とした場合において、
BD1,BD2,BD3のすべてが3以上になるような行列Miを適用した線形変換処理によって実行することを特徴とする暗号処理方法。 - Feistel型共通鍵ブロック暗号処理を実行する暗号処理方法であり、
非線形変換部および線形変換部を有するSPN型のF関数をr段、繰り返し実行するステップを有し、
前記r段各々に対応するF関数の線形変換部は下記条件を満足する行列Miを適用した線形変換処理、すなわち、
n×aビットデータからn×bビットデータへの線形変換を行う写像θ:{0,1}na→{0,1}nbに対して、分岐数B(θ)を、
分岐数B(θ)=minα≠0{hwn(α)+hwn(θ(α))}、
ただし、minα≠0{Xα}は、α≠0を満たすすべてのXαのうちの最小値、
hwn(Y)はビット列Yをnビットごとに区切って表したときにnビットのデータすべてが0ではない(非ゼロ)要素の数を返す関数、
とし、分岐数B(θ)がb+1である写像θを最適拡散変換と定義し、
さらに、行列Mの分岐数をB(M)と表したとき、
BL2=min{B(tM−1 i|tM−1 i+2)|1≦i≦r−2}
ただし、tMは行列の転置、
とした場合において、
BL2が3以上になるような行列Miを適用した線形変換処理によって実行することを特徴とする暗号処理方法。 - Feistel型共通鍵ブロック暗号処理をコンピュータ上において実行するコンピュータ・プログラムであり、
非線形変換部および線形変換部を有するSPN型のF関数をr段、繰り返し実行するステップを有し、
前記r段各々に対応するF関数の線形変換処理は下記条件を満足する行列Miを適用した線形変換処理、すなわち、
n×aビットデータからn×bビットデータへの線形変換を行う写像θ:{0,1}na→{0,1}nbに対して、分岐数B(θ)を、
分岐数B(θ)=minα≠0{hwn(α)+hwn(θ(α))}、
ただし、minα≠0{Xα}は、α≠0を満たすすべてのXαのうちの最小値、
hwn(Y)はビット列Yをnビットごとに区切って表したときにnビットのデータすべてが0ではない(非ゼロ)要素の数を返す関数、
とし、分岐数B(θ)がb+1である写像θを最適拡散変換と定義し、
さらに、行列Mの分岐数をB(M)と表したとき、
BD1=min{B(Mi)|1≦i≦r},
BD2=min{B(Mi|Mi+2)|1≦i≦r−2},
BD3=min{B(Mi|Mi+2|Mi+4)|1≦i≦r−4},
ただし、A|Bは行列A,Bの連結により得られる行列、
とした場合において、
BD1,BD2,BD3のすべてが3以上になるような行列Miを適用した線形変換処理によって実行することを特徴とするコンピュータ・プログラム。 - Feistel型共通鍵ブロック暗号処理をコンピュータ上において実行するコンピュータ・プログラムであり、
非線形変換部および線形変換部を有するSPN型のF関数をr段、繰り返し実行するステップを有し、
前記r段各々に対応するF関数の線形変換部は下記条件を満足する行列Miを適用した線形変換処理、すなわち、
n×aビットデータからn×bビットデータへの線形変換を行う写像θ:{0,1}na→{0,1}nbに対して、分岐数B(θ)を、
分岐数B(θ)=minα≠0{hwn(α)+hwn(θ(α))}、
ただし、minα≠0{Xα}は、α≠0を満たすすべてのXαのうちの最小値、
hwn(Y)はビット列Yをnビットごとに区切って表したときにnビットのデータすべてが0ではない(非ゼロ)要素の数を返す関数、
とし、分岐数B(θ)がb+1である写像θを最適拡散変換と定義し、
さらに、行列Mの分岐数をB(M)と表したとき、
BL2=min{B(tM−1 i|tM−1 i+2)|1≦i≦r−2}
ただし、tMは行列の転置、
とした場合において、
BL2が3以上になるような行列Miを適用した線形変換処理によって実行することを特徴とするコンピュータ・プログラム。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005313842A JP4622807B2 (ja) | 2005-03-25 | 2005-10-28 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
US11/909,544 US8340282B2 (en) | 2005-03-25 | 2006-03-02 | Information processing apparatus |
PCT/JP2006/304015 WO2006103867A1 (ja) | 2005-03-25 | 2006-03-02 | 情報処理装置 |
EP06715124.1A EP1862991B1 (en) | 2005-03-25 | 2006-03-02 | Information processing device |
CN2006800167728A CN101176134B (zh) | 2005-03-25 | 2006-03-02 | 信息处理装置 |
KR1020077021765A KR101245010B1 (ko) | 2005-03-25 | 2006-03-02 | 정보 처리 장치 |
CN2010101835113A CN101834719B (zh) | 2005-03-25 | 2006-03-02 | 加密处理装置用矩阵生成方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005088952 | 2005-03-25 | ||
JP2005313842A JP4622807B2 (ja) | 2005-03-25 | 2005-10-28 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006301567A true JP2006301567A (ja) | 2006-11-02 |
JP4622807B2 JP4622807B2 (ja) | 2011-02-02 |
Family
ID=37053135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005313842A Expired - Fee Related JP4622807B2 (ja) | 2005-03-25 | 2005-10-28 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
Country Status (6)
Country | Link |
---|---|
US (1) | US8340282B2 (ja) |
EP (1) | EP1862991B1 (ja) |
JP (1) | JP4622807B2 (ja) |
KR (1) | KR101245010B1 (ja) |
CN (2) | CN101834719B (ja) |
WO (1) | WO2006103867A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009075337A1 (ja) * | 2007-12-13 | 2009-06-18 | Nec Corporation | 暗号化方法及び復号化方法、装置並びにプログラム |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4561252B2 (ja) * | 2004-09-03 | 2010-10-13 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
JP4882598B2 (ja) * | 2006-07-28 | 2012-02-22 | ソニー株式会社 | 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム |
JP5055993B2 (ja) * | 2006-12-11 | 2012-10-24 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
US8752032B2 (en) * | 2007-02-23 | 2014-06-10 | Irdeto Canada Corporation | System and method of interlocking to protect software-mediated program and device behaviours |
JP5272417B2 (ja) * | 2008-01-21 | 2013-08-28 | ソニー株式会社 | データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム |
US8369515B2 (en) * | 2010-03-18 | 2013-02-05 | Chiou-Haun Lee | Cryptographic method of multilayer diffusion in multidimension |
US8948376B2 (en) * | 2010-05-11 | 2015-02-03 | Ca, Inc. | Format-preserving encryption via rotating block encryption |
CN101951314B (zh) * | 2010-10-12 | 2012-06-20 | 北京航空航天大学 | 对称密码加密中s-盒的设计方法 |
CN103427986B (zh) * | 2013-08-22 | 2016-08-24 | 中国科学院信息工程研究所 | 获取分组密码活跃s盒个数下界的方法 |
JP2015191106A (ja) | 2014-03-28 | 2015-11-02 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにプログラム |
CN104158796B (zh) * | 2014-07-11 | 2017-07-21 | 中国科学院信息工程研究所 | 分组密码抗线性攻击安全性的评估方法 |
US10341090B2 (en) * | 2014-10-14 | 2019-07-02 | Sony Corporation | Cipher processing apparatus and cipher processing method |
US10608814B2 (en) * | 2015-05-17 | 2020-03-31 | Gideon Samid | Equivoe-T: Transposition equivocation cryptography |
US11038668B2 (en) * | 2015-05-17 | 2021-06-15 | Gideon Samid | Transposition encryption alphabet method (TEAM) |
US11303436B2 (en) * | 2016-06-23 | 2022-04-12 | Cryptography Research, Inc. | Cryptographic operations employing non-linear share encoding for protecting from external monitoring attacks |
US10771235B2 (en) * | 2016-09-01 | 2020-09-08 | Cryptography Research Inc. | Protecting block cipher computation operations from external monitoring attacks |
JP2018093325A (ja) * | 2016-12-01 | 2018-06-14 | ソニーセミコンダクタソリューションズ株式会社 | 情報処理装置、情報処理方法、及びプログラム |
CN112511293B (zh) * | 2020-09-21 | 2022-03-18 | 中国电子科技集团公司第三十研究所 | 基于比特与运算的s盒参数化设计方法及存储介质 |
CN112636899B (zh) * | 2020-09-21 | 2022-03-18 | 中国电子科技集团公司第三十研究所 | 一种轻量化s盒设计方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002023623A (ja) * | 2000-07-13 | 2002-01-23 | Toshiba Corp | パラメータ決定装置、パラメータ決定方法、暗号化装置、および復号装置 |
JP2002091297A (ja) * | 2000-07-13 | 2002-03-27 | Fujitsu Ltd | F関数内部にspn構造を用いた演算装置および演算方法 |
JP2005107078A (ja) * | 2003-09-30 | 2005-04-21 | Sony Corp | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1130871C (zh) * | 1996-04-30 | 2003-12-10 | 东芝株式会社 | 加密装置及加密方法 |
KR100260534B1 (ko) | 1997-08-30 | 2000-07-01 | 구자홍 | 디이에스형 암호화 방법 및 장치 |
CN1193537C (zh) * | 2000-07-04 | 2005-03-16 | 皇家菲利浦电子有限公司 | 将输入数据块加密转换成输出数据块的方法和*** |
CN1402465A (zh) * | 2002-04-10 | 2003-03-12 | 李新全 | 一种动态矩阵排列加密方法 |
JP4561252B2 (ja) | 2004-09-03 | 2010-10-13 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
-
2005
- 2005-10-28 JP JP2005313842A patent/JP4622807B2/ja not_active Expired - Fee Related
-
2006
- 2006-03-02 US US11/909,544 patent/US8340282B2/en active Active
- 2006-03-02 CN CN2010101835113A patent/CN101834719B/zh active Active
- 2006-03-02 KR KR1020077021765A patent/KR101245010B1/ko active IP Right Grant
- 2006-03-02 WO PCT/JP2006/304015 patent/WO2006103867A1/ja active Application Filing
- 2006-03-02 CN CN2006800167728A patent/CN101176134B/zh not_active Expired - Fee Related
- 2006-03-02 EP EP06715124.1A patent/EP1862991B1/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002023623A (ja) * | 2000-07-13 | 2002-01-23 | Toshiba Corp | パラメータ決定装置、パラメータ決定方法、暗号化装置、および復号装置 |
JP2002091297A (ja) * | 2000-07-13 | 2002-03-27 | Fujitsu Ltd | F関数内部にspn構造を用いた演算装置および演算方法 |
JP2005107078A (ja) * | 2003-09-30 | 2005-04-21 | Sony Corp | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009075337A1 (ja) * | 2007-12-13 | 2009-06-18 | Nec Corporation | 暗号化方法及び復号化方法、装置並びにプログラム |
US8619976B2 (en) | 2007-12-13 | 2013-12-31 | Nec Corporation | Encryption method, decryption method, device, and program |
Also Published As
Publication number | Publication date |
---|---|
CN101834719A (zh) | 2010-09-15 |
US8340282B2 (en) | 2012-12-25 |
US20090103716A1 (en) | 2009-04-23 |
JP4622807B2 (ja) | 2011-02-02 |
CN101176134B (zh) | 2012-08-08 |
EP1862991A1 (en) | 2007-12-05 |
EP1862991A4 (en) | 2013-10-30 |
KR101245010B1 (ko) | 2013-03-18 |
EP1862991B1 (en) | 2018-05-02 |
KR20070112393A (ko) | 2007-11-23 |
CN101176134A (zh) | 2008-05-07 |
WO2006103867A1 (ja) | 2006-10-05 |
CN101834719B (zh) | 2012-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4622807B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JP4561252B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JP4622222B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
US8737603B2 (en) | Cryptographic processing apparatus, cryptographic processing method, and computer program | |
JP4882598B2 (ja) | 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム | |
JP5050454B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JP2008058830A (ja) | データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム | |
JP2007192893A (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JP2007199156A (ja) | 暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム | |
JP5680016B2 (ja) | 復号処理装置、情報処理装置、および復号処理方法、並びにコンピュータ・プログラム | |
JP5338945B2 (ja) | 復号処理装置、情報処理装置、および復号処理方法、並びにコンピュータ・プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061121 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100406 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100526 |
|
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: 20101005 |
|
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: 20101018 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 4622807 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131112 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |