JP2009003312A - 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム - Google Patents
暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム Download PDFInfo
- Publication number
- JP2009003312A JP2009003312A JP2007165864A JP2007165864A JP2009003312A JP 2009003312 A JP2009003312 A JP 2009003312A JP 2007165864 A JP2007165864 A JP 2007165864A JP 2007165864 A JP2007165864 A JP 2007165864A JP 2009003312 A JP2009003312 A JP 2009003312A
- Authority
- JP
- Japan
- Prior art keywords
- key
- round
- data
- exclusive
- unit
- 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
Images
Abstract
【解決手段】秘密鍵Kに基づいて生成する複数の異なるデータ構成を有する第1中間鍵KAと第2中間鍵KBを適用して、複数のラウンド関数を繰り返し実行して入力データのデータ変換処理を行なう共通鍵ブロック暗号処理構成において、ラウンド関数実行部に第1中間鍵KAに基づいて生成するラウンド鍵KAiのみを入力してラウンド関数を実行し、第2中間鍵KBに基づいて生成される鍵KBiは、ラウンド関数部におけるF関数に入力することなく、暗号処理対象となる入力データ、またはラウンド関数からの出力データとの排他的論理和演算を実行させる構成とした。本構成により暗号処理回路を簡略化し装置の小型化およびコストダウンを実現した。
【選択図】図17
Description
1)秘密鍵Kに対して、第1中間鍵KAと異なる非線形変換を適用したデータ、
2)秘密鍵Kに対して線形変換を適用したデータ、
3)秘密鍵Kそのもの
などの設定が考えられる。
第2中間鍵KBから2ラウンドおきにそれぞれn/2ビットを抜き出し,{KB3,KB4,…,KBr−3,KBr−2}を構成する。
第1中間鍵KAベースのn/2ビット鍵{KA1,KA2,…,KAr−1,KAr}
第2中間鍵KBベースのn/2ビット鍵{KB3,KB4,…,KBr−3,KBr−2}
これらのデータに基づいて、ラウンド鍵{RK1,RK2,…,RKr−1,RKr}を例えば以下のように設定する。
RK1=KA1
RK2=KA2
RK3=KA3(EXOR)KB3
RK4=KA4(EXOR)KB4
RK5=KA5
・・・・
RKr−4=KAr−4
RKr−3=KAr−3(EXOR)KBr−3
RKr−2=KAr−2(EXOR)KBr−2
RKr−1=KAr−1
RKr=KAr
とする。なお、上記式において[A(EXOR)B]は、AとBの排他的論理和演算である。
IK=KB0
FK=KBr+1
とする。
上記の処理をラウンド数に応じて繰り返す。
K. Nyberg, "Generalized Feistel networks", ASIACRYPT'96, SpringerVerlag, 1996, pp.91--104. Yuliang Zheng, Tsutomu Matsumoto, Hideki Imai: On the Construction of Block Ciphers Provably Secure and Not Relying on Any Unproved Hypotheses. CRYPTO 1989: 461-480
共通鍵ブロック暗号処理を実行する暗号処理装置であり、
秘密鍵Kに基づいて生成する異なるデータ構成を有する第1中間鍵KA、および第2中間鍵KBを適用して、複数のラウンド関数を繰り返し実行して入力データのデータ変換処理を行なうデータ暗号化部を有し、
前記データ暗号化部は、
ラウンド数rのラウンド関数を実行するラウンド関数実行部であり、前記第1中間鍵KAに基づいて生成されるラウンド鍵KAi(ただしiは1〜rの整数)のみを入力鍵としてラウンド関数を実行するラウンド関数実行部と、
前記入力データ、または前記ラウンド関数実行部からの出力データの構成データに対して前記第2中間鍵KBに基づいて生成される鍵KBi(ただしiは0〜r+1の整数)との排他的論理和演算を実行する排他的論理和演算部と、
を有する構成であることを特徴とする暗号処理装置にある。
(a)pラウンドにラウンド鍵KApを入力、
(b)p+1ラウンドにラウンド鍵KAp+1を入力、
(c)p+2ラウンドにラウンド鍵[KAp+2(EXOR)KBp+2]を入力、
(d)p+3ラウンドにラウンド鍵[KAp+3(EXOR)KBp+3]を入力、
上記(a)〜(d)のラウンド鍵の入力処理と等価な処理になるように前記鍵KBiから選択した同一鍵を2回繰り返して利用した排他的論理和演算処理を実行する構成であることを特徴とする。
(a)秘密鍵Kに対して、第1中間鍵KAと異なる非線形変換を適用したデータ、
(b)秘密鍵Kに対して線形変換を適用したデータ、
(c)秘密鍵Kそのもの
上記(a)〜(c)のいずれかによって構成されるデータであることを特徴とする。
暗号処理装置において、共通鍵ブロック暗号処理を実行する暗号処理方法であり、
データ暗号化部が、秘密鍵Kに基づいて生成する異なるデータ構成を有する第1中間鍵KAと第2中間鍵KBを適用して、複数のラウンド関数を繰り返し実行して入力データのデータ変換処理を行なうデータ暗号化ステップを有し、
前記データ暗号化ステップは、
ラウンド関数実行部が、前記第1中間鍵KAに基づいて生成されるラウンド鍵KAi(ただしiは1〜rの整数)のみを入力鍵としてラウンド数rのラウンド関数を実行するラウンド関数実行ステップと、
排他的論理和演算部が、前記入力データ、または前記ラウンド関数実行部からの出力データの構成データに対して前記第2中間鍵KBに基づいて生成される鍵KBi(ただしiは0〜r+1の整数)との排他的論理和演算を実行する排他的論理和演算ステップと、
を有することを特徴とする暗号処理方法にある。
(a)pラウンドにラウンド鍵KApを入力、
(b)p+1ラウンドにラウンド鍵KAp+1を入力、
(c)p+2ラウンドにラウンド鍵[KAp+2(EXOR)KBp+2]を入力、
(d)p+3ラウンドにラウンド鍵[KAp+3(EXOR)KBp+3]を入力、
上記(a)〜(d)のラウンド鍵の入力処理と等価な処理になるように前記鍵KBiから選択した同一鍵を2回繰り返して利用した排他的論理和演算処理を実行するステップであることを特徴とする。
(a)秘密鍵Kに対して、第1中間鍵KAと異なる非線形変換を適用したデータ、
(b)秘密鍵Kに対して線形変換を適用したデータ、
(c)秘密鍵Kそのもの
上記(a)〜(c)のいずれかによって構成されるデータであることを特徴とする。
暗号処理装置において、共通鍵ブロック暗号処理を実行させるコンピュータ・プログラムであり、
データ暗号化部に、秘密鍵Kに基づいて生成する異なるデータ構成を有する第1中間鍵KAと第2中間鍵KBを適用して、複数のラウンド関数を繰り返し実行して入力データのデータ変換処理を行なわせるデータ暗号化ステップを有し、
前記データ暗号化ステップは、
ラウンド関数実行部に、前記第1中間鍵KAに基づいて生成されるラウンド鍵KAi(ただしiは1〜rの整数)のみを入力鍵としてラウンド関数を実行させるラウンド関数実行ステップと、
排他的論理和演算部に、前記入力データ、または前記ラウンド関数実行部からの出力データの構成データに対して前記第2中間鍵KBに基づいて生成される鍵KBi(ただしiは0〜r+1の整数)との排他的論理和演算を実行させる排他的論理和演算ステップと、
を含むことを特徴とするコンピュータ・プログラムにある。
1)秘密鍵Kに対して、第1中間鍵KAと異なる非線形変換を適用したデータ、
2)秘密鍵Kに対して線形変換を適用したデータ、
3)秘密鍵Kそのもの
などの設定のいずれかとする。
この第2中間鍵KBから2ラウンドおきにそれぞれn/2ビットを抜き出し,{KB3,KB4,…,KBr−3,KBr−2}を構成する。
第1中間鍵KAベースのn/2ビット鍵{KA1,KA2,…,KAr−1,KAr}
第2中間鍵KBベースのn/2ビット鍵{KB3,KB4,…,KBr−3,KBr−2}
これらのデータに基づいて、ラウンド鍵{RK1,RK2,…,RKr−1,RKr}を例えば以下のように設定する。
RK1=KA1
RK2=KA2
RK3=KA3(EXOR)KB3
RK4=KA4(EXOR)KB4
RK5=KA5
・・・・
RKr−4=KAr−4
RKr−3=KAr−3(EXOR)KBr−3
RKr−2=KAr−2(EXOR)KBr−2
RKr−1=KAr−1
RKr=KAr
とする。なお、上記式において[A(EXOR)B]は、AとBの排他的論理和演算である。初期鍵IK、最終鍵FKに関しても、第2中間鍵KBからそれぞれn/2ビットを抜き出してKB0およびKBr+1を構成し、
IK=KB0
FK=KBr+1
とする。
(1)実施例1:2系列Feistel構造における第1適用例
(2)実施例2:2系列Feistel構造における第2適用例
(3)実施例3:4系列Feistel構造における第1適用例
(4)実施例4:4系列Feistel構造における第2適用例
まず、実施例1として、2系列Feistel構造における第1の適用例について説明する。すなわち、先に図6を参照して説明したnビットの入力平文Pを上位下位n/2ビットずつの2系列に分割して処理を行う2系列のFeistel構造のデータ暗号化部に対応する簡略化回路構成である。なお、図6に示す2系列型の従来の回路構成は図10に示す回路構成である。
第1中間鍵KAベースのn/2ビット鍵{KA1,KA2,…,KAr−1,KAr}
第2中間鍵KBベースのn/2ビット鍵{KB3,KB4,…,KBr−3,KBr−2}
これらのデータに基づいて生成され、
第1ラウンド:RK1=KA1
第2ラウンド:RK2=KA2
第3ラウンド:RK3=KA3(EXOR)KB3
第4ラウンド:RK4=KA4(EXOR)KB4
第5ラウンド:RK5=KA5
・・・・
という設定である。
RK3=KA3(EXOR)KB3
この鍵生成のため、図10に示す排他的論理和演算部215が利用されていた。
第2ラウンド:RK2=KA2
第3ラウンド:RK3=KA3(EXOR)KB3
第4ラウンド:RK4=KA4(EXOR)KB4
第5ラウンド:RK5=KA5
図10に示す回路構成では、これらのラウンド鍵を各ラウンドにおいてラウンド関数回路に入力するため、セレクタ2,212と、排他的論理和演算部215を用いて、各ラウンド鍵の生成を行っている。
第2ラウンド:RK2=KA2
第3ラウンド:RK3=KA3
第4ラウンド:RK4=KA4
第5ラウンド:RK5=KA5
T=P(EXOR)Q(EXOR)KA3(EXOR)KB3
T'=P(EXOR)KB3(EXOR)Q(EXOR)KA3
このT'の算出式は、上記Tの算出式と等価である。すなわち、
T'=T
が成立し、図15の構成における第3ラウンドのF関数の非線形変換部に対する入力は、図14の構成における第3ラウンドのF関数の非線形変換部に対する入力と同一となる。
図14の構成では、RK3=KA3(EXOR)KB3
としているが、
図15に示すように、第3ラウンドにおけるF関数に入力するラウンド鍵を、
RK3=KA3
として、第3ラウンドのF関数に対する入力データの生成段階でKB3の排他的論理和演算を実行して、そのデータを第3ラウンドのF関数に入力するデータとしても、結果としては同じ暗号処理が行われることになる。
RK4=KA4(EXOR)KB4
として入力しているが、
図15の構成のように、第3ラウンドにおけるF関数314に入力するラウンド鍵を、
RK4=KA4
として、第4ラウンドのF関数314に対する入力データの生成段階でKB4の排他的論理和演算を、排他的論理和演算部324において実行して、そのデータを第4ラウンドのF関数に入力するデータとしても、結果としては同じ暗号処理が行われることになる。
図14は、先に図10を参照して説明した回路を適用した第2ラウンド〜第5ラウンドの処理を説明しており、第2ラウンド〜第5ラウンドのラウンド関数のF関数302〜305には、以下のラウンド鍵が入力される。
第2ラウンド:RK2=KA2
第3ラウンド:RK3=KA3(EXOR)KB3
第4ラウンド:RK4=KA4(EXOR)KB4
第5ラウンド:RK5=KA5
すなわち、第5ラウンドでは第2中間鍵KBベースの鍵データKBiは利用されない。
U=P(EXOR)Q(EXOR)R(EXOR)KA5
U'=P(EXOR)KB3(EXOR)Q(EXOR)KB3(EXOR)R(EXOR)KA5
このU'の算出式において、同一データである鍵KB3について2回繰り返して排他的論理和演算が実行されている。同じデータを2回繰り返して排他的論理和演算を行う処理は、その排他的論理和演算を実行しないのと同じ処理となる。
U'=P(EXOR)Q(EXOR)R(EXOR)KA5
と同じ結果が得られる。
上記式は、前述の図14を参照して説明した図14に示す第5ラウンドのF関数305の非線形演算への入力データ[U]の算出式、
U=P(EXOR)Q(EXOR)R(EXOR)KA5
上記の算出式と同じになる。すなわち、
U'=U
が成立し、図15の構成における第5ラウンドのF関数の非線形変換部に対する入力は、図14の構成における第5ラウンドのF関数の非線形変換部に対する入力と同一となる。
第(r−1)ラウンド目には、第1鍵生成部(KAi生成回路)352においてKAr−1を生成し、セレクタ1,355はラウンド関数回路351の出力を選択し、セレクタ2,356は0を選択する設定とする。
暗号文C=C0|C1が格納される。
図16に示す暗号化構成の処理を実行する回路として構成される図17に示す回路構成は、先に説明した図6の暗号化構成に対応する図10に示す回路構成と比較して簡略化された構成である、すなわちセレクタ回路および排他的論理和回路が一つずつ削減され、回路の小型化およびコスト削減が可能となる。
第1鍵生成部(KAi生成回路)352は、第1中間鍵KAに基づいて、ラウンド1〜rの各ラウンド関数に各々入力するr個のラウンド鍵KA1〜KArを生成する。
ラウンド関数実行部としてのラウンド関数回路351は、ラウンド1〜rの各ラウンド関数に、第1中間鍵KAに基づいて生成されるr個のラウンド鍵KA1〜KArを順次入力してラウンド関数を実行する。
第2鍵生成部(KBi生成回路)353は、第2中間鍵KBに基づいて、ラウンド関数の開始前において適用する初期鍵KB0と、rラウンドの最終ラウンド関数の開始後において適用する最終鍵KBr+1と、連続2ラウンドおきのラウンドに対応する鍵KB3,KB4,・・・KBr−3,KBr−2を生成する。
排他的論理和演算部357は、入力データ、またはラウンド関数実行部としてのラウンド関数回路351からの出力データの構成データと、第2中間鍵KBに基づいて生成される鍵KB0,KB3,KB4,・・・KBr−3,KBr−2,KBr+1から選択した鍵KBiとの排他的論理和演算を実行する。
このような処理構成となる。
(a)pラウンドにラウンド鍵KApを入力、
(b)p+1ラウンドにラウンド鍵KAp+1を入力、
(c)p+2ラウンドにラウンド鍵[KAp+2(EXOR)KBp+2]を入力、
(d)p+3ラウンドにラウンド鍵[KAp+3(EXOR)KBp+3]を入力、
上記(a)〜(d)のラウンド鍵の入力処理と等価な処理になるように鍵KBiから選択した同一鍵を2回繰り返して利用した排他的論理和演算処理を実行する。なお、p+4ラウンド以降も上記のp〜p+3ラウンドと同様、KAiを連続2ラウンド、KAi(EXOR)KBiを連続2ラウンドに入力した設定と等価となるように排他的論理和演算処理を実行する。
次に、実施例2として、2系列Feistel構造における第2の適用例について説明する。すなわち、先に図7を参照して説明したnビットの入力平文Pを上位下位n/2ビットずつの2系列に分割して処理を行う2系列のFeistel構造のデータ暗号化部に対応する簡略化回路構成である。なお、図7に示す2系列型の従来の回路構成は図11に示す回路構成である。
第2ラウンド:RK2=KA2
第3ラウンド:RK3=KA3
第4ラウンド:RK4=KA4
第5ラウンド:RK5=KA5
T=P(EXOR)Q(EXOR)KA3(EXOR)KB3
T'=P(EXOR)Q(EXOR)KB3(EXOR)KA3
このT'の算出式は、上記Tの算出式と等価である。すなわち、
T'=T
が成立し、図18の構成における第3ラウンドのF関数の非線形変換部に対する入力は、図14の構成における第3ラウンドのF関数の非線形変換部に対する入力と同一となる。
図14の構成では、RK3=KA3(EXOR)KB3
としているが、
図18に示すように、第3ラウンドにおけるF関数に入力するラウンド鍵を、
RK3=KA3
として、第3ラウンドのF関数に対する入力データの生成段階でKB3の排他的論理和演算を実行して、そのデータを第3ラウンドのF関数に入力するデータとしても、結果としては同じ暗号処理が行われることになる。
RK4=KA4(EXOR)KB4
として入力しているが、
図18の構成のように、第3ラウンドにおけるF関数414に入力するラウンド鍵を、
RK4=KA4
として、第4ラウンドのF関数414に対する入力データの生成段階でKB4の排他的論理和演算を、排他的論理和演算部423において実行して、そのデータを第4ラウンドのF関数に入力するデータとしても、結果としては同じ暗号処理が行われることになる。
図14は、先に図11を参照して説明した回路を適用した第2ラウンド〜第5ラウンドの処理を説明しており、第2ラウンド〜第5ラウンドのラウンド関数のF関数302〜305には、以下のラウンド鍵が入力される。
第2ラウンド:RK2=KA2
第3ラウンド:RK3=KA3(EXOR)KB3
第4ラウンド:RK4=KA4(EXOR)KB4
第5ラウンド:RK5=KA5
すなわち、第5ラウンドでは第2中間鍵KBベースの鍵データKBiは利用されない。
U=P(EXOR)Q(EXOR)R(EXOR)KA5
U'=P(EXOR)Q(EXOR)KB3(EXOR)R(EXOR)KB3(EXOR)KA5
このU'の算出式において、同一データである鍵KB3について2回繰り返して排他的論理和演算が実行されている。同じデータを2回繰り返して排他的論理和演算を行う処理は、その排他的論理和演算を実行しないのと同じ処理となる。
U'=P(EXOR)Q(EXOR)R(EXOR)KA5
と同じ結果が得られる。
上記式は、前述の図14を参照して説明した図14に示す第5ラウンドのF関数305の非線形演算への入力データ[U]の算出式、
U=P(EXOR)Q(EXOR)R(EXOR)KA5
上記の算出式と同じになる。すなわち、
U'=U
が成立し、図18の構成における第5ラウンドのF関数の非線形変換部に対する入力は、図14の構成における第5ラウンドのF関数の非線形変換部に対する入力と同一となる。
第(r−1)ラウンド目には、第1鍵生成部(KAi生成回路)452においてKAr−1を生成し、第2鍵生成部(KBi生成回路)453ではKBr−2を生成する。セレクタ1,455はラウンド関数回路451の出力を選択し、セレクタ2,456は、第2鍵生成部(KBi生成回路)453において生成されたKBr−2を選択する設定とする。
暗号文C=C0|C1が格納される。
図19に示す暗号化構成の処理を実行する回路として構成される図20に示す回路構成は、先に説明した図7の暗号化構成に対応する図11に示す回路構成と比較して簡略化された構成である、すなわちセレクタ回路および排他的論理和回路が一つずつ削減され、回路の小型化およびコスト削減が可能となる。
第1鍵生成部(KAi生成回路)452は、第1中間鍵KAに基づいて、ラウンド1〜rの各ラウンド関数に各々入力するr個のラウンド鍵KA1〜KArを生成する。
ラウンド関数実行部としてのラウンド関数回路451は、ラウンド1〜rの各ラウンド関数に、第1中間鍵KAに基づいて生成されるr個のラウンド鍵KA1〜KArを順次入力してラウンド関数を実行する。
第2鍵生成部(KBi生成回路)453は、第2中間鍵KBに基づいて、ラウンド関数の開始前において適用する初期鍵KB0と、rラウンドの最終ラウンド関数の開始後において適用する最終鍵KBr+1と、連続2ラウンドおきのラウンドに対応する鍵KB3,KB4,・・・KBr−3,KBr−2を生成する。
排他的論理和演算部457は、入力データ、またはラウンド関数実行部としてのラウンド関数回路451からの出力データの構成データと、第2中間鍵KBに基づいて生成される鍵KB0,KB3,KB4,・・・KBr−3,KBr−2,KBr+1から選択した鍵KBiとの排他的論理和演算を実行する。
このような処理構成となる。
(a)pラウンドにラウンド鍵KApを入力、
(b)p+1ラウンドにラウンド鍵KAp+1を入力、
(c)p+2ラウンドにラウンド鍵[KAp+2(EXOR)KBp+2]を入力、
(d)p+3ラウンドにラウンド鍵[KAp+3(EXOR)KBp+3]を入力、
上記(a)〜(d)のラウンド鍵の入力処理と等価な処理になるように鍵KBiから選択した同一鍵を2回繰り返して利用した排他的論理和演算処理を実行する。なお、p+4ラウンド以降も上記のp〜p+3ラウンドと同様、KAiを連続2ラウンド、KAi(EXOR)KBiを連続2ラウンドに入力した設定と等価となるように排他的論理和演算処理を実行する。
次に、実施例3として、4系列Feistel構造における第1の適用例について説明する。すなわち、先に図8を参照して説明したnビットの入力平文Pを上位〜下位n/4ビットずつの4系列に分割して処理を行う4系列のFeistel構造のデータ暗号化部に対応する簡略化回路構成である。なお、図8に示す4系列型の従来の回路構成は図12に示す回路構成である。
第2ラウンド:RK2=KA2[0]|KA2[1]
第3ラウンド:RK3=KA3[0](EXOR)KB3[0]|KA3[1](EXOR)KB3[1]
第4ラウンド:RK4=KA4[0](EXOR)KB4[0]|KA4[1](EXOR)KB4[1]
第5ラウンド:RK5=KA5[0]|KA5[1]
第2ラウンド:RK2=KA2[0]|KA2[1]
第3ラウンド:RK3=KA3[0]|KA3[1]
第4ラウンド:RK4=KA4[0]|KA4[1]
第5ラウンド:RK5=KA5[0]|KA5[1]
F関数552の出力に対する排他的論理和演算処理の前の排他的論理和部572において、前ラウンドからのn/4ビッデータとn/4ビット鍵KB3[0]との排他的論理和演算、
F関数562の出力に対する排他的論理和演算処理の前の排他的論理和部582において、前ラウンドからのn/4ビッデータとn/4ビット鍵KB3[1]との排他的論理和演算を実行する構成となっている。
F関数553の出力に対する排他的論理和演算処理の前の排他的論理和部573において、前ラウンドからのn/4ビッデータとn/4ビット鍵KB4[0]との排他的論理和演算、
F関数563の出力に対する排他的論理和演算処理の前の排他的論理和部583において、前ラウンドからのn/4ビッデータとn/4ビット鍵KB4[1]との排他的論理和演算を実行する構成となっている。
F関数554の出力に対する排他的論理和演算処理の前の排他的論理和部574において、前ラウンドからのn/4ビッデータとn/4ビット鍵KB3[1]との排他的論理和演算、
F関数564の出力に対する排他的論理和演算処理の前の排他的論理和部584において、前ラウンドからのn/4ビッデータとn/4ビット鍵KB3[0]との排他的論理和演算を実行する構成となっている。
F関数555の出力に対する排他的論理和演算処理の前の排他的論理和部575において、前ラウンドからのn/4ビッデータとn/4ビット鍵KB4[1]との排他的論理和演算、
F関数565の出力に対する排他的論理和演算処理の前の排他的論理和部585において、前ラウンドからのn/4ビッデータとn/4ビット鍵KB4[0]との排他的論理和演算を実行する構成となっている。
また、第3ラウンドの開始前に、2ラウンド目のラウンド関数の出力データの(n/4+1)ビット目からn/2ビット目までとKB4[0]を排他的論理和し、同様に2ラウンド目のラウンド関数の出力データの(3n/4+1)ビット目からnビット目までとKB4[1]を排他的論理和する。
また、第5ラウンドの開始前に、4ラウンド目のラウンド関数の出力データの(n/4+1)ビット目からn/2ビット目までとKB4[1]を排他的論理和し、同様に4ラウンド目のラウンド関数の出力データの(3n/4+1)ビット目からnビット目までとKB4[0]を排他的論理和する。
F関数553内の非線形変換部(Sボックス)に対する入力データ(T'[0])、
F関数563内の非線形変換部(Sボックス)に対する入力データ(T'[1])、
と、
図21における第3ラウンドの
F関数503内の非線形変換部(Sボックス)に対する入力データ(T[0])、
F関数513内の非線形変換部(Sボックス)に対する入力データ(T[1])、
を比較してみる。
T[0]=P[0](EXOR)Q[0](EXOR)KA3[0](EXOR)KB3[0]
T[1]=P[1](EXOR)Q[1](EXOR)KA3[1](EXOR)KB3[1]
T'[0]=P[0](EXOR)KB3[0](EXOR)Q[0](EXOR)KA3[0]
T'[1]=P[1](EXOR)KB3[1](EXOR)Q[1](EXOR)KA3[1]
これらのT'[0],T'[1]の算出式は、上記T[0],T[1]の算出式と等価である。すなわち、
T'[0]=T[0]
T'[1]=T[1]
が成立し、図22の構成における第3ラウンドのF関数の非線形変換部に対する入力は、図21の構成における第3ラウンドのF関数の非線形変換部に対する入力と同一となる。
図21の構成では、
KA3[0](EXOR)KB3[0]、およびKA3[1](EXOR)KB3[1]
としているが、
図22に示すように、第3ラウンドにおけるF関数に入力するラウンド鍵を、
KA3[0]とKA3[1]、
として、第3ラウンドのF関数に対する入力データの生成段階でKB3[0],KB3[1]を適用した排他的論理和演算を実行して、そのデータを第3ラウンドのF関数に入力するデータとしても、結果としては同じ暗号処理が行われることになる。このことは、第4ラウンドについても同様である。
図21において、第5ラウンドのラウンド関数のF関数505,515には、
第5ラウンド:KA5[0],KA5[1],
これらの第1中間鍵KAベースの鍵データKAiが入力される。すなわち、第5ラウンドでは第2中間鍵KBベースの鍵データKBiは利用されない。
U[0]=P[1](EXOR)Q[1](EXOR)R[0](EXOR)KA5[0]
U[1]=P[0](EXOR)Q[0](EXOR)R[1](EXOR)KA5[1]
U'[0]=P[1](EXOR)KB3[1](EXOR)Q[1](EXOR)KB3[1](EXOR)R[0](EXOR)KA5[0]
U'[1]=P[0](EXOR)KB3[0](EXOR)Q[0](EXOR)KB3[0](EXOR)R[1](EXOR)KA5[1]
このU'[0],U'[1]の算出式において、同一データである鍵KB3[1]またはKB3[0]について2回繰り返して排他的論理和演算が実行されている。同じデータを2回繰り返して排他的論理和演算を行う処理は、その排他的論理和演算を実行しないのと同じ処理となる。
U'[0]=P[1](EXOR)Q[1](EXOR)R[0](EXOR)KA5[0]
U'[1]=P[0](EXOR)Q[0](EXOR)R[1](EXOR)KA5[1]
と同じ結果が得られる。
U[0]=P[1](EXOR)Q[1](EXOR)R[0](EXOR)KA5[0]
U[1]=P[0](EXOR)Q[0](EXOR)R[1](EXOR)KA5[1]
上記の算出式と同じになる。すなわち、
U'[0]=U[0]
U'[1]=U[1]
が成立し、図22の構成における第5ラウンドのF関数の非線形変換部に対する入力は、図21の構成における第5ラウンドのF関数の非線形変換部に対する入力と同一となる。
第(r−1)ラウンド目には、第1鍵生成部(KAi生成回路)602においてKAr−1を生成し、セレクタ1,611はラウンド関数回路601の出力を選択し、セレクタ2,612は0を選択する設定とする。
暗号文C=C0|C1|C2|C3が格納される。
図23に示す暗号化構成の処理を実行する回路として構成される図24に示す回路構成は、先に説明した図8の暗号化構成に対応する図12に示す回路構成と比較して簡略化された構成である、すなわちセレクタ回路および排他的論理和回路が一つずつ削減され、回路の小型化およびコスト削減が可能となる。
第1鍵生成部(KAi生成回路)602は、第1中間鍵KAに基づいて、ラウンド1〜rの各ラウンド関数に各々入力するr個のラウンド鍵KA1〜KArを生成する。
ラウンド関数実行部としてのラウンド関数回路601は、ラウンド1〜rの各ラウンド関数に、第1中間鍵KAに基づいて生成されるr個のラウンド鍵KA1〜KArを順次入力してラウンド関数を実行する。なお、各ラウンドでは、KAi[0]とKAi[1]を適用したF関数を実行する。
第2鍵生成部(KBi生成回路)603は、第2中間鍵KBに基づいて、ラウンド関数の開始前において適用する初期鍵KB0と、rラウンドの最終ラウンド関数の開始後において適用する最終鍵KBr+1と、連続2ラウンドおきのラウンドに対応する鍵KB3,KB4,・・・KBr−3,KBr−2を生成する。
入れ替え回路604は、第2鍵生成部(KBi生成回路)603の生成するn/2ビット鍵KBiの上位下位n/4ビットKBi[0],KBi[1]を入れ替える。
排他的論理和演算部621,622は、入力データ、またはラウンド関数実行部としてのラウンド関数回路601からの出力データの構成データと、第2中間鍵KBに基づいて生成される鍵KB0,KB3,KB4,・・・KBr−3,KBr−2,KBr+1から選択した鍵KBiの構成データKBi[0]とKBi[1]との排他的論理和演算を実行する。
このような処理構成となる。
(a)pラウンドにラウンド鍵KApを入力、
(b)p+1ラウンドにラウンド鍵KAp+1を入力、
(c)p+2ラウンドにラウンド鍵[KAp+2(EXOR)KBp+2]を入力、
(d)p+3ラウンドにラウンド鍵[KAp+3(EXOR)KBp+3]を入力、
上記(a)〜(d)のラウンド鍵の入力処理と等価な処理になるように鍵KBiから選択した同一鍵を2回繰り返して利用した排他的論理和演算処理を実行する。なお、p+4ラウンド以降も上記のp〜p+3ラウンドと同様、KAiを連続2ラウンド、KAi(EXOR)KBiを連続2ラウンドに入力した設定と等価となるように排他的論理和演算処理を実行する。
(a)pラウンドのF関数に鍵KAp[0]とKAp[1]を入力、
(b)p+1ラウンドにラウンド鍵KAp+1[0]とKAp+1[1]を入力、
(c)p+2ラウンドにラウンド鍵[KAp+2[0](EXOR)KBp+2[0]]と[KAp+2[1](EXOR)KBp+2[1]]を入力、
(d)p+3ラウンドにラウンド鍵[KAp+3[0](EXOR)KBp+3[0]]と[KAp+3[1](EXOR)KBp+3[1]]を入力、
このような入力設定と等価となるように排他的論理和演算部621,622において、第2中間鍵KBに基づいて生成される鍵KBi[0]とKBi[1]を適用した排他的論理和演算を実行する。
次に、実施例4として、4系列Feistel構造における第2の適用例について説明する。すなわち、先に図9を参照して説明したnビットの入力平文Pを上位〜下位n/4ビットずつの4系列に分割して処理を行う4系列のFeistel構造のデータ暗号化部に対応する簡略化回路構成である。なお、図9に示す4系列型の従来の回路構成は図13に示す回路構成である。
第2ラウンド:RK2=KA2[0]|KA2[1]
第3ラウンド:RK3=KA3[0]|KA3[1]
第4ラウンド:RK4=KA4[0]|KA4[1]
第5ラウンド:RK5=KA5[0]|KA5[1]
F関数753に入力する前ラウンドからのn/4ビッデータとn/4ビット鍵KB3[0]との排他的論理和演算、
F関数763に入力する前ラウンドからのn/4ビッデータとn/4ビット鍵KB3[1]との排他的論理和演算を実行する構成となっている。
F関数754に入力する前ラウンドからのn/4ビッデータとn/4ビット鍵KB4[0]との排他的論理和演算、
F関数764に入力する前ラウンドからのn/4ビッデータとn/4ビット鍵KB4[1]との排他的論理和演算を実行する構成となっている。
F関数755に入力する前ラウンドからのn/4ビッデータとn/4ビット鍵KB3[1]との排他的論理和演算、
F関数765に入力する前ラウンドからのn/4ビッデータとn/4ビット鍵KB3[0]との排他的論理和演算を実行する構成となっている。
F関数753内の非線形変換部(Sボックス)に対する入力データ(T'[0])、
F関数763内の非線形変換部(Sボックス)に対する入力データ(T'[1])、
と、
図21における第3ラウンドの
F関数503内の非線形変換部(Sボックス)に対する入力データ(T[0])、
F関数513内の非線形変換部(Sボックス)に対する入力データ(T[1])、
を比較してみる。
T[0]=P[0](EXOR)Q[0](EXOR)KA3[0](EXOR)KB3[0]
T[1]=P[1](EXOR)Q[1](EXOR)KA3[1](EXOR)KB3[1]
T'[0]=P[0](EXOR)Q[0](EXOR)KB3[0](EXOR)KA3[0]
T'[1]=P[1](EXOR)Q[1](EXOR)KB3[1](EXOR)KA3[1]
これらのT'[0],T'[1]の算出式は、上記T[0],T[1]の算出式と等価である。すなわち、
T'[0]=T[0]
T'[1]=T[1]
が成立し、図25の構成における第3ラウンドのF関数の非線形変換部に対する入力は、図21の構成における第3ラウンドのF関数の非線形変換部に対する入力と同一となる。
図21の構成では、
KA3[0](EXOR)KB3[0]、およびKA3[1](EXOR)KB3[1]
としているが、
図25に示すように、第3ラウンドにおけるF関数に入力するラウンド鍵を、
KA3[0]とKA3[1]、
として、第3ラウンドのF関数に対する入力データの生成段階でKB3[0],KB3[1]を適用した排他的論理和演算を実行して、そのデータを第3ラウンドのF関数に入力するデータとしても、結果としては同じ暗号処理が行われることになる。このことは、第4ラウンドについても同様である。
図21において、第5ラウンドのラウンド関数のF関数505,515には、
第5ラウンド:KA5[0],KA5[1],
これらの第1中間鍵KAベースの鍵データKAiが入力される。すなわち、第5ラウンドでは第2中間鍵KBベースの鍵データKBiは利用されない。
U[0]=P[1](EXOR)Q[1](EXOR)R[0](EXOR)KA5[0]
U[1]=P[0](EXOR)Q[0](EXOR)R[1](EXOR)KA5[1]
U'[0]=P[1](EXOR)Q[1](EXOR)KB3[1](EXOR)R[0](EXOR)KB3[1](EXOR)KA5[0]
U'[1]=P[0](EXOR)Q[0](EXOR)KB3[0](EXOR)R[1](EXOR)KB3[0](EXOR)KA5[1]
このU'[0],U'[1]の算出式において、同一データである鍵KB3[1]またはKB3[0]について2回繰り返して排他的論理和演算が実行されている。同じデータを2回繰り返して排他的論理和演算を行う処理は、その排他的論理和演算を実行しないのと同じ処理となる。
U'[0]=P[1](EXOR)Q[1](EXOR)R[0](EXOR)KA5[0]
U'[1]=P[0](EXOR)Q[0](EXOR)R[1](EXOR)KA5[1]
と同じ結果が得られる。
U[0]=P[1](EXOR)Q[1](EXOR)R[0](EXOR)KA5[0]
U[1]=P[0](EXOR)Q[0](EXOR)R[1](EXOR)KA5[1]
上記の算出式と同じになる。すなわち、
U'[0]=U[0]
U'[1]=U[1]
が成立し、図25の構成における第5ラウンドのF関数の非線形変換部に対する入力は、図21の構成における第5ラウンドのF関数の非線形変換部に対する入力と同一となる。
第(r−1)ラウンド目には、第1鍵生成部(KAi生成回路)802においてKAr−1を生成し、第2鍵生成部(KBi生成回路)803において、KBr−2を生成し、セレクタ1,811はラウンド関数回路801の出力を選択し、セレクタ2,812は入れ替え回路804の出力を選択する設定とする。入れ替え回路804では、第2鍵生成部(KBi生成回路)803において生成したn/2ビット鍵:KBr−2を入力し、KBr−2の上位n/4ビットと下位n/4ビットが入れ替えられ、セレクタ2,812は上位n/4ビットがKBr−2[1]、下位n/4ビットがKBr−2[0]の鍵を出力する。
暗号文C=C0|C1|C2|C3が格納される。
図26に示す暗号化構成の処理を実行する回路として構成される図27に示す回路構成は、先に説明した図9の暗号化構成に対応する図13に示す回路構成と比較して簡略化された構成である、すなわちセレクタ回路および排他的論理和回路が一つずつ削減され、回路の小型化およびコスト削減が可能となる。
第1鍵生成部(KAi生成回路)802は、第1中間鍵KAに基づいて、ラウンド1〜rの各ラウンド関数に各々入力するr個のラウンド鍵KA1〜KArを生成する。
ラウンド関数実行部としてのラウンド関数回路801は、ラウンド1〜rの各ラウンド関数に、第1中間鍵KAに基づいて生成されるr個のラウンド鍵KA1〜KArを順次入力してラウンド関数を実行する。なお、各ラウンドでは、KAi[0]とKAi[1]を適用したF関数を実行する。
第2鍵生成部(KBi生成回路)803は、第2中間鍵KBに基づいて、ラウンド関数の開始前において適用する初期鍵KB0と、rラウンドの最終ラウンド関数の開始後において適用する最終鍵KBr+1と、連続2ラウンドおきのラウンドに対応する鍵KB3,KB4,・・・KBr−3,KBr−2を生成する。
入れ替え回路804は、第2鍵生成部(KBi生成回路)803の生成するn/2ビット鍵KBiの上位下位n/4ビットKBi[0],KBi[1]を入れ替える。
排他的論理和演算部821,822は、入力データ、またはラウンド関数実行部としてのラウンド関数回路801からの出力データの構成データと、第2中間鍵KBに基づいて生成される鍵KB0,KB3,KB4,・・・KBr−3,KBr−2,KBr+1から選択した鍵KBiの構成データKBi[0]とKBi[1]との排他的論理和演算を実行する。
このような処理構成となる。
(a)pラウンドにラウンド鍵KApを入力、
(b)p+1ラウンドにラウンド鍵KAp+1を入力、
(c)p+2ラウンドにラウンド鍵[KAp+2(EXOR)KBp+2]を入力、
(d)p+3ラウンドにラウンド鍵[KAp+3(EXOR)KBp+3]を入力、
上記(a)〜(d)のラウンド鍵の入力処理と等価な処理になるように鍵KBiから選択した同一鍵を2回繰り返して利用した排他的論理和演算処理を実行する。なお、p+4ラウンド以降も上記のp〜p+3ラウンドと同様、KAiを連続2ラウンド、KAi(EXOR)KBiを連続2ラウンドに入力した設定と等価となるように排他的論理和演算処理を実行する。
(a)pラウンドのF関数に鍵KAp[0]とKAp[1]を入力、
(b)p+1ラウンドにラウンド鍵KAp+1[0]とKAp+1[1]を入力、
(c)p+2ラウンドにラウンド鍵[KAp+2[0](EXOR)KBp+2[0]]と[KAp+2[1](EXOR)KBp+2[1]]を入力、
(d)p+3ラウンドにラウンド鍵[KAp+3[0](EXOR)KBp+3[0]]と[KAp+3[1](EXOR)KBp+3[1]]を入力、
このような入力設定と等価となるように排他的論理和演算部821,822において、第2中間鍵KBに基づいて生成される鍵KBi[0]とKBi[1]を適用した排他的論理和演算を実行する。
最後に、上述した実施例に従った暗号処理を実行する暗号処理装置としてのICモジュール900の構成例を図28に示す。上述の処理は、例えばPC、ICカード、リーダライタ、その他、様々な情報処理装置において実行可能であり、図28に示すICモジュール900は、これら様々な機器に構成することが可能である。
(a)秘密鍵Kに対して、第1中間鍵KAと異なる非線形変換を適用したデータ、
(b)秘密鍵Kに対して線形変換を適用したデータ、
(c)秘密鍵Kそのもの
上記(a)〜(c)のいずれかによって構成されるデータである。
112 暗号化鍵スケジュール部
113 拡大鍵
114 データ暗号化部
115 ラウンド関数
116 F関数
121〜123 排他的論理和演算部
131〜133 排他的論理和演算部
151〜156 排他的論理和演算部
201 ラウンド関数回路
202 第1鍵生成部(KAi生成回路)
203 第2鍵生成部(KBi生成回路)
211〜213 セレクタ
214 データレジスタ
215〜216 排他的論理和演算部
221 排他的論理和演算部
222 セレクタ
251 セレクタ
252〜253 排他的論理和演算部
271 セレクタ
272〜273 排他的論理和演算部
302〜305 F関数
307〜308 排他的論理和演算部
312〜315 F関数
321〜324 排他的論理和演算部
351 ラウンド関数回路
352 第1鍵生成部(KAi生成回路)
353 第2鍵生成部(KBi生成回路)
354 データレジスタ
355〜356 セレクタ
357 排他的論理和演算部
412〜415 F関数
421〜423 排他的論理和演算部
451 ラウンド関数回路
452 第1鍵生成部(KAi生成回路)
453 第2鍵生成部(KBi生成回路)
454 データレジスタ
455〜456 セレクタ
457 排他的論理和演算部
502〜505 F関数
512〜515 F関数
521〜524 排他的論理和演算部
552〜555 F関数
562〜565 F関数
521〜524 排他的論理和演算部
572〜575 排他的論理和演算部
581〜585 排他的論理和演算部
601 ラウンド関数回路
602 第1鍵生成部(KAi生成回路)
603 第2鍵生成部(KBi生成回路)
604 入れ替え回路
605 データレジスタ
611〜612 セレクタ
621〜622 排他的論理和演算部
752〜755 F関数
762〜765 F関数
773〜775 排他的論理和演算部
782〜785 排他的論理和演算部
581〜585 排他的論理和演算部
801 ラウンド関数回路
802 第1鍵生成部(KAi生成回路)
803 第2鍵生成部(KBi生成回路)
804 入れ替え回路
805 データレジスタ
811〜812 セレクタ
821〜822 排他的論理和演算部
900 ICモジュール
901 CPU(Central processing Unit)
902 メモリ
903 暗号処理部
904 乱数発生器
905 送受信部
Claims (21)
- 共通鍵ブロック暗号処理を実行する暗号処理装置であり、
秘密鍵Kに基づいて生成する異なるデータ構成を有する第1中間鍵KA、および第2中間鍵KBを適用して、複数のラウンド関数を繰り返し実行して入力データのデータ変換処理を行なうデータ暗号化部を有し、
前記データ暗号化部は、
ラウンド数rのラウンド関数を実行するラウンド関数実行部であり、前記第1中間鍵KAに基づいて生成されるラウンド鍵KAi(ただしiは1〜rの整数)のみを入力鍵としてラウンド関数を実行するラウンド関数実行部と、
前記入力データ、または前記ラウンド関数実行部からの出力データの構成データに対して前記第2中間鍵KBに基づいて生成される鍵KBi(ただしiは0〜r+1の整数)との排他的論理和演算を実行する排他的論理和演算部と、
を有する構成であることを特徴とする暗号処理装置。 - 前記データ暗号化部は、
前記第1中間鍵KAに基づいてラウンド鍵KAiの生成処理を実行する第1鍵生成部と、
前記第1鍵生成部の生成するラウンド鍵KAiのみを入力鍵としてラウンド関数を実行するラウンド関数実行部と、
前記入力データまたは前記ラウンド関数実行部からの出力データのいずれかを選択出力する第1セレクタと、
前記第2中間鍵KBに基づいて鍵KBiの生成処理を実行する第2鍵生成部と、
前記第2鍵生成部の生成する鍵KBiと、値0を含む複数データの選択出力を実行する第2セレクタと、
前記第1セレクタの出力データの構成データと、前記第2セレクタの出力データとの排他的論理和演算を実行する排他的論理和演算部と、
を有する構成であることを特徴とする請求項1に記載の暗号処理装置。 - 前記データ暗号化部は、
前記第2鍵生成部の生成する鍵KBiを入力し、ビット位置入れ替え処理を実行する入れ替え処理部を有し、
前記第2セレクタは、
前記第2鍵生成部の生成する鍵KBiと、値0と、前記入れ替え処理部の生成データのいずれかを選択出力する構成であることを特徴とする請求項2に記載の暗号処理装置。 - 前記第1鍵生成部は、
前記第1中間鍵KAに基づいて、ラウンド1〜rの各ラウンド関数に各々入力するr個のラウンド鍵KA1〜KArを生成し、
前記ラウンド関数実行部は、
ラウンド1〜rの各ラウンド関数に、前記第1中間鍵KAに基づいて生成されるr個のラウンド鍵KA1〜KArを順次入力してラウンド関数を実行し、
前記第2鍵生成部は、
前記第2中間鍵KBに基づいて、前記ラウンド関数の開始前において適用する初期鍵KB0と、rラウンドの最終ラウンド関数の開始後において適用する最終鍵KBr+1と、連続2ラウンドおきのラウンドに対応する鍵KB3,KB4,・・・KBr−3,KBr−2を生成し、
前記排他的論理和演算部は、
前記入力データ、または前記ラウンド関数実行部からの出力データの構成データと、前記第2中間鍵KBに基づいて生成される鍵KB0,KB3,KB4,・・・KBr−3,KBr−2,KBr+1から選択した鍵KBiとの排他的論理和演算を実行する構成であることを特徴とする請求項2に記載の暗号処理装置。 - 前記排他的論理和演算部は、
前記第2中間鍵KBに基づいて生成される鍵KB3,KB4,・・・KBr−3,KBr−2から選択した同一鍵を、異なるラウンドのラウンド関数実行部からの出力データに対して2回繰り返して利用した排他的論理和演算を実行する構成であることを特徴とする請求項4に記載の暗号処理装置。 - 前記排他的論理和演算部は、
前記鍵KBiから選択した同一鍵を2回繰り返して利用した排他的論理和演算処理において、
4つの連続するラウンド関数に対する入力ラウンド鍵を下記の設定とした場合と等価な設定、すなわち、4連続ラウンドp〜p+3に対して、
(a)pラウンドにラウンド鍵KApを入力、
(b)p+1ラウンドにラウンド鍵KAp+1を入力、
(c)p+2ラウンドにラウンド鍵[KAp+2(EXOR)KBp+2]を入力、
(d)p+3ラウンドにラウンド鍵[KAp+3(EXOR)KBp+3]を入力、
上記(a)〜(d)のラウンド鍵の入力処理と等価な処理になるように前記鍵KBiから選択した同一鍵を2回繰り返して利用した排他的論理和演算処理を実行する構成であることを特徴とする請求項5に記載の暗号処理装置。 - 前記排他的論理和演算部は、
前記入力データ、または前記ラウンド関数実行部からの出力データを複数に分割した分割データの一部の分割データに対して、前記第2中間鍵KBに基づいて生成される鍵KBiまたは鍵KBiの分割鍵との排他的論理和演算を実行する構成であることを特徴とする請求項1〜6いずれかに記載の暗号処理装置。 - 前記ラウンド関数実行部は、
入力データをnビットとしたとき、n/kビット単位(ただしk≧2)の分割データを入力する構成であり、ラウンド関数実行部に対する入力データと前記ラウンド鍵KAiとの排他的論理和演算を実行し、さらに非線形変換および線形変換を実行して出力データを生成する構成であることを特徴とする請求項1〜7いずれかに記載の暗号処理装置。 - 前記データ暗号化部は、Feistel構造に従った暗号化処理を実行する構成であることを特徴とする請求項1〜8いずれかに記載の暗号処理装置。
- 前記第1中間鍵KAは、前記秘密鍵Kに対する非線形変換処理により生成される鍵データであり、
前記第2中間鍵KBは、
(a)秘密鍵Kに対して、第1中間鍵KAと異なる非線形変換を適用したデータ、
(b)秘密鍵Kに対して線形変換を適用したデータ、
(c)秘密鍵Kそのもの
上記(a)〜(c)のいずれかによって構成されるデータであることを特徴とする請求項1〜9いずれかに記載の暗号処理装置。 - 暗号処理装置において、共通鍵ブロック暗号処理を実行する暗号処理方法であり、
データ暗号化部が、秘密鍵Kに基づいて生成する異なるデータ構成を有する第1中間鍵KAと第2中間鍵KBを適用して、複数のラウンド関数を繰り返し実行して入力データのデータ変換処理を行なうデータ暗号化ステップを有し、
前記データ暗号化ステップは、
ラウンド関数実行部が、前記第1中間鍵KAに基づいて生成されるラウンド鍵KAi(ただしiは1〜rの整数)のみを入力鍵としてラウンド数rのラウンド関数を実行するラウンド関数実行ステップと、
排他的論理和演算部が、前記入力データ、または前記ラウンド関数実行部からの出力データの構成データに対して前記第2中間鍵KBに基づいて生成される鍵KBi(ただしiは0〜r+1の整数)との排他的論理和演算を実行する排他的論理和演算ステップと、
を有することを特徴とする暗号処理方法。 - 前記データ暗号化ステップは、
第1鍵生成部が、前記第1中間鍵KAに基づいてラウンド鍵KAiの生成処理を実行する第1鍵生成ステップと、
ラウンド関数実行部が、前記第1鍵生成部の生成するラウンド鍵KAiのみを入力鍵としてラウンド関数を実行するラウンド関数実行ステップと、
第1セレクタが、前記入力データまたは前記ラウンド関数実行部からの出力データのいずれかを選択出力する第1データ選択ステップと、
第2鍵生成部が、前記第2中間鍵KBに基づいて鍵KBiの生成処理を実行する第2鍵生成ステップと、
第2セレクタが、前記第2鍵生成部の生成する鍵KBiと、値0を含む複数データの選択出力を実行する第2データ選択ステップと、
排他的論理和演算部が、前記第1セレクタの出力データの構成データと、前記第2セレクタの出力データとの排他的論理和演算を実行する排他的論理和演算ステップと、
を有することを特徴とする請求項11に記載の暗号処理方法。 - 前記データ暗号化ステップは、さらに、
入れ替え処理部が、前記第2鍵生成部の生成する鍵KBiを入力し、ビット位置入れ替え処理を実行する入れ替え処理ステップを有し、
前記第2データ選択ステップは、
前記第2鍵生成部の生成する鍵KBiと、値0と、前記入れ替え処理部の生成データのいずれかを選択出力するステップであることを特徴とする請求項12に記載の暗号処理方法。 - 前記第1鍵生成ステップは、
前記第1中間鍵KAに基づいて、ラウンド1〜rの各ラウンド関数に各々入力するr個のラウンド鍵KA1〜KArを生成し、
前記ラウンド関数実行ステップは、
ラウンド1〜rの各ラウンド関数に、前記第1中間鍵KAに基づいて生成されるr個のラウンド鍵KA1〜KArを順次入力してラウンド関数を実行し、
前記第2鍵生成ステップは、
前記第2中間鍵KBに基づいて、前記ラウンド関数の開始前において適用する初期鍵KB0と、rラウンドの最終ラウンド関数の開始後において適用する最終鍵KBr+1と、連続2ラウンドおきのラウンドに対応する鍵KB3,KB4,・・・KBr−3,KBr−2を生成し、
前記排他的論理和演算ステップは、
前記入力データ、または前記ラウンド関数実行部からの出力データの構成データと、前記第2中間鍵KBに基づいて生成される鍵KB0,KB3,KB4,・・・KBr−3,KBr−2,KBr+1から選択した鍵KBiとの排他的論理和演算を実行するステップであることを特徴とする請求項12に記載の暗号処理方法。 - 前記排他的論理和演算ステップは、
前記第2中間鍵KBに基づいて生成される鍵KB3,KB4,・・・KBr−3,KBr−2から選択した同一鍵を、異なるラウンドのラウンド関数実行部からの出力データに対して2回繰り返して利用した排他的論理和演算を実行するステップであることを特徴とする請求項14に記載の暗号処理方法。 - 前記排他的論理和演算ステップは、
前記鍵KBiから選択した同一鍵を2回繰り返して利用した排他的論理和演算処理において、
4つの連続するラウンド関数に対する入力ラウンド鍵を下記の設定とした場合と等価な設定、すなわち、4連続ラウンドp〜p+3に対して、
(a)pラウンドにラウンド鍵KApを入力、
(b)p+1ラウンドにラウンド鍵KAp+1を入力、
(c)p+2ラウンドにラウンド鍵[KAp+2(EXOR)KBp+2]を入力、
(d)p+3ラウンドにラウンド鍵[KAp+3(EXOR)KBp+3]を入力、
上記(a)〜(d)のラウンド鍵の入力処理と等価な処理になるように前記鍵KBiから選択した同一鍵を2回繰り返して利用した排他的論理和演算処理を実行するステップであることを特徴とする請求項15に記載の暗号処理方法。 - 前記排他的論理和演算ステップは、
前記入力データ、または前記ラウンド関数実行部からの出力データを複数に分割した分割データの一部の分割データに対して、前記第2中間鍵KBに基づいて生成される鍵KBiまたは鍵KBiの分割鍵との排他的論理和演算を実行するステップであることを特徴とする請求項11〜16いずれかに記載の暗号処理方法。 - 前記ラウンド関数実行ステップは、
入力データをnビットとしたとき、n/kビット単位(ただしk≧2)の分割データを入力し、ラウンド関数実行部に対する入力データと前記ラウンド鍵KAiとの排他的論理和演算を実行し、さらに非線形変換および線形変換を実行して出力データを生成するステップであることを特徴とする請求項11〜17いずれかに記載の暗号処理方法。 - 前記データ暗号化ステップは、Feistel構造に従った暗号化処理を実行するステップであることを特徴とする請求項11〜18いずれかに記載の暗号処理方法。
- 前記第1中間鍵KAは、前記秘密鍵Kに対する非線形変換処理により生成される鍵データであり、
前記第2中間鍵KBは、
(a)秘密鍵Kに対して、第1中間鍵KAと異なる非線形変換を適用したデータ、
(b)秘密鍵Kに対して線形変換を適用したデータ、
(c)秘密鍵Kそのもの
上記(a)〜(c)のいずれかによって構成されるデータであることを特徴とする請求項11〜19いずれかに記載の暗号処理方法。 - 暗号処理装置において、共通鍵ブロック暗号処理を実行させるコンピュータ・プログラムであり、
データ暗号化部に、秘密鍵Kに基づいて生成する異なるデータ構成を有する第1中間鍵KAと第2中間鍵KBを適用して、複数のラウンド関数を繰り返し実行して入力データのデータ変換処理を行なわせるデータ暗号化ステップを有し、
前記データ暗号化ステップは、
ラウンド関数実行部に、前記第1中間鍵KAに基づいて生成されるラウンド鍵KAi(ただしiは1〜rの整数)のみを入力鍵としてラウンド関数を実行させるラウンド関数実行ステップと、
排他的論理和演算部に、前記入力データ、または前記ラウンド関数実行部からの出力データの構成データに対して前記第2中間鍵KBに基づいて生成される鍵KBi(ただしiは0〜r+1の整数)との排他的論理和演算を実行させる排他的論理和演算ステップと、
を含むことを特徴とするコンピュータ・プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007165864A JP5223245B2 (ja) | 2007-06-25 | 2007-06-25 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007165864A JP5223245B2 (ja) | 2007-06-25 | 2007-06-25 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2009003312A true JP2009003312A (ja) | 2009-01-08 |
JP2009003312A5 JP2009003312A5 (ja) | 2010-06-17 |
JP5223245B2 JP5223245B2 (ja) | 2013-06-26 |
Family
ID=40319729
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007165864A Expired - Fee Related JP5223245B2 (ja) | 2007-06-25 | 2007-06-25 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5223245B2 (ja) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10116029A (ja) * | 1996-10-11 | 1998-05-06 | Toshiba Corp | 暗号化装置及び暗号化方法 |
WO2002058037A1 (en) * | 2001-01-22 | 2002-07-25 | Fujitsu Limited | Cipher circuit |
JP2003345244A (ja) * | 2002-05-23 | 2003-12-03 | Mitsubishi Electric Corp | データ変換装置及びデータ変換方法及びデータ変換プログラム及びデータ変換プログラムを記録したコンピュータ読み取り可能な記録媒体 |
-
2007
- 2007-06-25 JP JP2007165864A patent/JP5223245B2/ja not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10116029A (ja) * | 1996-10-11 | 1998-05-06 | Toshiba Corp | 暗号化装置及び暗号化方法 |
WO2002058037A1 (en) * | 2001-01-22 | 2002-07-25 | Fujitsu Limited | Cipher circuit |
JP2003345244A (ja) * | 2002-05-23 | 2003-12-03 | Mitsubishi Electric Corp | データ変換装置及びデータ変換方法及びデータ変換プログラム及びデータ変換プログラムを記録したコンピュータ読み取り可能な記録媒体 |
Non-Patent Citations (5)
Title |
---|
CSNG200200114002; 青木和麻呂,市川哲也,神田雅透,松井充,盛合志帆,中嶋純子,時田俊雄: '"128ビットブロック暗号Camellia"' 電子情報通信学会技術研究報告 Vol.100,No.76, 20000518, p.47-75, 社団法人電子情報通信学会 * |
CSNG200700618001; 白井太三,渋谷香士,秋下徹,盛合志帆,岩田哲: '"128ビットブロック暗号CLEFIA"' 電子情報通信学会技術研究報告 Vol.107,No.44, 20070511, p.1-9, 社団法人電子情報通信学会 * |
JPN6012050153; 青木和麻呂,市川哲也,神田雅透,松井充,盛合志帆,中嶋純子,時田俊雄: '"128ビットブロック暗号Camellia"' 電子情報通信学会技術研究報告 Vol.100,No.76, 20000518, p.47-75, 社団法人電子情報通信学会 * |
JPN6012050156; 青木和麻呂,市川哲也,神田雅透,松井充,盛合志帆,中嶋純子,時田俊雄: "Camellia:様々な環境に適した128ビットブロック暗号" 第2.0版, 20010926, p.1-46, [オンライン] * |
JPN6012050159; 白井太三,渋谷香士,秋下徹,盛合志帆,岩田哲: '"128ビットブロック暗号CLEFIA"' 電子情報通信学会技術研究報告 Vol.107,No.44, 20070511, p.1-9, 社団法人電子情報通信学会 * |
Also Published As
Publication number | Publication date |
---|---|
JP5223245B2 (ja) | 2013-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4967544B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JP4905000B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JP4882598B2 (ja) | 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム | |
JP5023624B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JP5055993B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JP5050454B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JP4622807B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JP5682527B2 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
WO2008026624A1 (en) | Data conversion device, data conversion method, and computer program | |
WO2008026625A1 (fr) | Dispositif de codage, procédé de codage et programme informatique | |
TWI595460B (zh) | Data processing device, information processing device, data processing method and program | |
JP2007192893A (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JP2007199156A (ja) | 暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム | |
JP5680016B2 (ja) | 復号処理装置、情報処理装置、および復号処理方法、並びにコンピュータ・プログラム | |
Dawood et al. | New Symmetric Cipher Fast Algorithm of Revertible Operations' Queen (FAROQ) Cipher | |
JP5605197B2 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
JP5223245B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JP5772934B2 (ja) | データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム | |
JP5488608B2 (ja) | ブロック暗号装置、ブロック暗号化方法およびプログラム | |
JP5338945B2 (ja) | 復号処理装置、情報処理装置、および復号処理方法、並びにコンピュータ・プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100426 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100426 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120925 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121121 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130117 |
|
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: 20130212 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130225 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160322 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |