JP3942073B2 - Extended key generation device, extended key generation program, and recording medium - Google Patents

Extended key generation device, extended key generation program, and recording medium Download PDF

Info

Publication number
JP3942073B2
JP3942073B2 JP2001211558A JP2001211558A JP3942073B2 JP 3942073 B2 JP3942073 B2 JP 3942073B2 JP 2001211558 A JP2001211558 A JP 2001211558A JP 2001211558 A JP2001211558 A JP 2001211558A JP 3942073 B2 JP3942073 B2 JP 3942073B2
Authority
JP
Japan
Prior art keywords
intermediate data
key
extended key
extended
key generation
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
Application number
JP2001211558A
Other languages
Japanese (ja)
Other versions
JP2002091296A (en
Inventor
武司 下山
孝一 伊藤
正彦 武仲
直哉 鳥居
純 矢嶋
仁史 屋並
和弘 横山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2001211558A priority Critical patent/JP3942073B2/en
Publication of JP2002091296A publication Critical patent/JP2002091296A/en
Application granted granted Critical
Publication of JP3942073B2 publication Critical patent/JP3942073B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、暗号鍵から拡大鍵を生成する拡大鍵生成装置、拡大鍵生成プログラムおよび記録媒体に関するものである。
【0002】
【従来の技術】
一般的な共通鍵暗号による暗号化処理の構成を図8に示す。図8の暗号化装置は、平文と暗号鍵を入力とし、暗号文を出力するものであって、暗号化処理装置と拡大鍵生成装置とから構成されている。暗号化処理装置は、暗号化処理1から暗号化処理nの順番に、n段階の処理を行なう。拡大鍵処理装置は、入力された暗号鍵をもとに、n段階の暗号化処理のそれぞれで用いられる拡大鍵1から拡大鍵nの生成を順次行なう。この拡大鍵の生成は、重要な問題であり、高速性と安全性とが要求されている。
【0003】
従来、高速処理可能な方式として、DESの拡大鍵生成方式がある。このDESの拡大鍵生成方式は、図9の右側の拡大鍵生成装置に示すように、暗号鍵を入力とし、巡回シフトとビット転置のみにより拡大鍵1から拡大鍵nの生成を行なうため、処理が高速である。
【0004】
また、安全性がより高い方式として、 MARSの拡大鍵生成方式(MARS-a candidate cipher for AES,THE First AES Conference 1998 p1-p9)がある。
【0005】
【発明が解決しようとする課題】
上述した前者の図9のDESの拡大鍵生成方式は、循環シフトとビット転置のみ(図9の右側の*の部分参照)により拡大鍵の生成を行なうため、処理が高速である反面、拡大鍵のビット情報から暗号鍵のビット情報を容易に得ることができてしまうという問題がある。このため、n個の拡大鍵のうち1個でも情報が漏洩した場合、暗号鍵の情報まで漏洩することとなり、安全性に問題があった。
【0006】
また、上述した後者のMARSの拡大鍵生成方式は、拡大鍵の情報から暗号鍵の情報を簡単に得ることができないので、安全性が高い反面、多くの演算を繰り返すため、高速に処理を行なうことができないという問題があった。
【0007】
本発明は、これらの問題を解決するため、第1段階で暗号鍵から中間データを生成し、第2段階で中間データから任意のデータを選択して非可逆変換を行ない任意の段数の拡大鍵を生成し、任意段の拡大鍵を非可逆変換を経て高速生成して共通鍵方式の安全性を高めることを目的としている。
【0008】
【課題を解決するための手段】
図1を参照して課題を解決するための手段を説明する。
図1において、暗号化装置1は、平文および暗号鍵を入力とし、暗号文を出力するものであって、拡大鍵処理装置3などから構成されるものである。
【0009】
拡大鍵処理装置3は、暗号鍵から拡大鍵を生成するものであって、ここでは、中間データ生成装置4および拡大鍵生成装置5などから構成されるものである。
中間データ生成装置4は、暗号鍵を入力とし、複数iの中間データを生成するものである。
【0010】
拡大鍵生成装置5は、複数iの中間データから指定された段数rの拡大鍵を生成するものである。
次に、動作を説明する。
【0011】
中間データ生成装置4が入力された暗号鍵のビット列を複数のグループに分割し、これら分割した各グループのビット列に演算を複数回iそれぞれ行なって複数iの演算結果を生成し、これら生成した各グループ毎の複数iの演算結果について複数のグループ間で該当演算結果をそれぞれ1つにまとめる演算を行ない、複数iの中間データを生成し、拡大鍵生成装置5が指定された拡大鍵の段数rをもとに複数iの中間データから1つを選択し、選択した中間データを非可逆変換して段数rの拡大鍵を生成するようにしている。
【0012】
この際、入力された暗号鍵のビット列として、入力された暗号鍵のビット列に非線型関数を演算したビット列とするようにしている。
また、1つにまとめる演算として、論理演算を行なうようにしている。
【0013】
また、1つにまとめる演算を行なった後、非線型関数を演算して中間データを生成するようにしている。
また、選択した中間データについて段数rに従った転置を行なった後に非可逆変換を行なうようにしている。
【0014】
従って、第1段階で暗号鍵から中間データを生成し、第2段階で中間データから任意のデータを選択して非可逆変換を行ない任意の段数の拡大鍵を生成することにより、拡大鍵を非可逆変換を経て高速生成して共通鍵方式の安全性を高めることが可能となる。
【0015】
【発明の実施の形態】
次に、図1から図7を用いて本発明の実施の形態および動作を順次詳細に説明する。
【0016】
図1は、本発明のシステム構成図を示す。
図1において、暗号化装置1は、平文および暗号鍵を入力とし、暗号文を出力するものであって、暗号化処理装置2および拡大鍵処理装置3などから構成されるものである。
【0017】
暗号化処理装置2は、拡大鍵1から拡大鍵nをもとに暗号化処理(1)から暗号化処理(n)のn段階の処理を行ない、暗号文を作成して出力するものである。暗号化処理(1)から暗号化処理(n)は、拡大鍵処理装置3で生成された拡大鍵1から拡大鍵nを受け取ってそれぞれの暗号化処理を行ない、最終段から暗号文を出力する。
【0018】
拡大鍵処理装置3は、暗号鍵から拡大鍵を生成するものであって、ここでは、中間データ生成装置4および拡大鍵生成装置5などから構成されるものである。
中間データ生成装置4は、暗号鍵を入力とし、複数iの中間データを生成するものである(図2、図3など参照)。
【0019】
拡大鍵生成装置5は、複数iの中間データから指定された段数rの拡大鍵を生成するものである(図2、図4など参照)。
次に、図2のフローチャートの順番に従い図1の構成のもとで暗号鍵から拡大鍵を生成するときの動作を詳細に説明する。
【0020】
図2は、本発明の動作説明フローチャートを示す。
図2において、S1は、ユーザ鍵を入力する。これは、図1の暗号化装置1に平文と一緒に、暗号鍵(ユーザ鍵)を入力する。これにより、図1の拡大鍵処理装置3を構成する中間データ生成装置4がユーザ鍵(暗号鍵)を取り込んだこととなる。
【0021】
S2は、非線型関数Mを演算する。これは、後述する図3に示すように、暗号鍵のビット列を8グループに分割し、各グループのビット列に非線型関数Mを演算する(図6、図7を用いて後述する)。
【0022】
S3は、偶数のときに定数を加算する。
S4は、奇数のときに定数を乗算する。これらS3、S4は、後述する図3に示すように、非線型関数Mを演算した後のビット列に、偶数のときは定数を加算し、奇数のときは定数を乗算する。
【0023】
S5は、排他的論理和を演算する。これは、後述する図3に示すように、S4で定数を加算したビット列と、定数を乗算したビット列とを排他的論理和の演算を行なう。
【0024】
S6は、非線型関数Mを演算する。これは、S5で演算した後のビット列に、非線型関数Mを演算し、中間データを生成する。尚、S4、S5、S6で、複数の定数(例えば図3の場合にはi=0,1,2に対応する3つ定数)についてそれぞれ加算、乗算した後に、排他的論理和演算、更に非線型関数演算をそれぞれ行ない、図3の場合にはそれぞれ3つからなる中間データを生成する。
【0025】
以上のS1からS6によって、ユーザ鍵(暗号鍵)を入力とし、例えば図3の構成に従い、非可逆変換を経た複数づつ(図3では3つづつ)からなる中間データを作成することが可能となる。
【0026】
図2のS7は、段数rを入力する。これは、作成しようとする、拡大鍵の段数rを入力する。これにより、本発明では、指定した段数の拡大鍵を以降のS8からS11で直接に作成することが可能となる。
【0027】
S8は、中間データから該当する値を選択する。これは、後述する図4の(a)の複数iづつの中間データ中から、段数rをもとに該当する中間データを1つづつそれぞれ選択する。
【0028】
S9は、段数rに従った転置を行なう。これは、図4の(a)のデータ並び替え処理装置で、段数rを入力して、S8で選択した中間データの転置を行なう(図5の(c),(d)参照)。
【0029】
S10は、転置後の中間データの非可逆変換Gを行なう(図4の(b)参照)。
S11は、r段数の拡大鍵を出力する。これは、S10で演算した後のデータをr段数の拡大鍵として出力する。
【0030】
S12は、終わりか判別する。YESの場合には、終了する。NOの場合には、S7に戻り、次の指定された段数rの拡大鍵の作成を行なう。
以上のS7からS11によって、S1からS6で作成した複数iづつの中間データをもとに、指定された段数rに従って1つづつの中間データを選択し、段数rに従って転置した後、非可逆変換を行い、指定された段数rの拡大鍵を非可逆変換を経て高速に生成することが可能となる。以下順次詳細に説明する。
【0031】
図3は、本発明の説明図(中間データ)を示す。
図3において、上段のk0からk7は、暗号鍵(ユーザ鍵)のビット列を順次8分割したビット列である。
【0032】
上段および下段のMは、非線型関数演算を表す(後述する図6、図7参照).+は、定数の加算を表す。ここで、M(4i)の加算は、分割したビット列のkの添字が例えば既述した図2のS3の偶数の場合に、i=0,1,2のときの定数Mの値をそれぞれ加算した3つを出力する旨を表す。同様に、M(4i+1)、M(4i+2)、M(4i+3)についも、i=0,1,2のときの定数Mの値をそれぞれ加算した3つを出力する旨を表す。
【0033】
×は、定数の乗算を表す。ここで、i+1の乗算は、分割したビット列のkの添字が例えば既述した図2のS4の奇数の場合に、i=0,1,2のときの定数の値をそれぞれ乗算した3つを出力する旨を表す。
【0034】
+は、加算および乗算した結果の排他的論理和の演算を行なう旨を表す。
からdは、h個づつの中間データの出力を表す。ここでは、aからd(i=0,1,2)の3つづつの出力された中間データを表す。
【0035】
以上のように、暗号鍵を8つのグループに分割してそれぞれのビット列に非線型関数Mを演算した後、偶数のものに3つの定数をそれぞれ加算および奇数のものに3つの定数を乗算し、加算および乗算した該当データを排他的論理和演算で1つにまとめ、更に非線型関数Mを演算して3つづつの中間データを生成することが可能となる。
【0036】
図4は、本発明の説明図(拡張鍵)を示す。
図4の(a)は、i個づつの中間データから段数rをもとに1つを選択して拡大鍵を生成するシステム構成を示す。
【0037】
図4の(a)において、中間データは、ここでは、a、b,c,d(i=0,1,2)からなる、図3の構成で生成された中間データ(中間鍵)である。
【0038】
select値決定装置は、作成しようとする拡大鍵の段数rをもとに、中間データa、b,c,d(i=0,1,2)のうちのいずれのiのものを選択するかを決定するものである。決定は、後述する図5の(a)の式(1)に従い決定する。
【0039】
selectorは、select値決定装置によって決定されたX、Y、Z、Wに従い、ここでは、i=0,1,2の該当するものの中間データa(X)、b(Y)、c(Z)、d(W)を1つそれぞれ選択するものである。
【0040】
データ並び替え処理装置は、段数rをもとに、選択された中間データa(X)、b(Y)、c(Z)、d(W)の並び替え(転置)を行なうものである。この転置は、後述する図5の(d)のように、段数rに対応した転置を行なうものである。
【0041】
G(X、Y、Z、W、r)計算装置は、並び替え後の中間データ(X,Y,Z,W)をもとに、拡大鍵EKeyを生成するものである。これは、後述する図4の(b)の構成で拡大鍵EKeyを生成する。
【0042】
以上の構成によって、中間データから段数rを指定して、当該段数rの拡大鍵を生成することが可能となる。以下順次詳細に説明する。
図4の(b)は、図4の(a)のG(X,Y,Z,W)計算装置の詳細構成を示す。
【0043】
図4の(b)において、1bit左巡回シフトは、データのビット列を1ビット左方向に巡回してシフトするものである。
排他的論理和は、2つのデータの排他的論理和の演算を行なうものである。
【0044】
加算は、2つのデータを加算するものである。
減算は、1つのデータから他のデータを減算するものである。
以上の回路を図示のように接続して指定段数をもとに選択および転置した後の中間データ(X,Y,Z,W)から拡大鍵を生成することが可能となる。
【0045】
図5は、本発明の説明図を示す。
図5の(a)は、i個づつの中間データから段数rのものを1つ選択するときに使用する式(1)を示す。図示の式(1)は下記である。
【0046】
=Z=r mod 3
=W=r+[r/3]mod 3
図5の(b)は、図5の(a)の式(1)を模式的に示す。これは、図5の(a)の式(1)の値を実際に計算したものであって、段数rのときに0,1,2の3個中から1つを選択する値であって、9個で巡回するものである。
【0047】
以上の図5の(a),(b)で段数rに対応する値(i=0,1,2の3個のうちの1つ)を決定し、既述した図4の(a)でi個づつの中間データ中から当該段数rで決った(X,Y,Z,W)を選択することが可能となる。
【0048】
図5の(c)は、オーダ表を示す。このオーダ表は、図5の(a),(b)で選択した段数rの中間データ(X,Y,Z,W)を並び換える(置換)するときのオーダ(順序)を決定するものである。ここでは、左側の段数rに対応づけて右側の並び替え順序に示すように、並び替える(図4の(a)のデータ並び替え処理装置が実行する)。
【0049】
次に、図6および図7を用いて非線型関数演算について説明する。
図6の(a)は、非線型関数Mの演算の全体の構成の例を示す。ここでは、ユーザ鍵(暗号鍵)m(例えば32ビット)を入力とし、非線型関数Mを演算して結果w(32ビット)を生成するときの様子を説明する。
【0050】
(1) ユーザ鍵の32ビットをここでは図示のように、6,5,5,5,56ビットで順次m0,m1,m2,m3,m4,m5にそれぞれ分割する。
(2) 5ビットに分割したm1,m2,m3,m4は、図6の(b)のS5(x)の表に従い、該当するxに対応するS5(x)の値にそれぞれ変換する。
【0051】
(3) 同様に、6ビットに分割したm0,m6は、図6の(c)のS6(x)の表に従い、該当するxに対応するS6(x)の値にそれぞれ変換する。
(4) (2)と(3)によってvが図6の(a)のデータvが生成されたこととなる。
【0052】
(5) 図7の(e)に模式的に示す行列式に、図7の(d)から矢印で示す位置に置き、次に、(4)で生成したデータvを置き、両者の行列演算を行ない、右側のwを計算する。これにより、図6の(a)のMDSを用いたXOR計算装置による結果(非線型関数Mの演算結果)が得られたこととなる。
【0053】
以上によって、図6の(a)の構成に示す順番に従い、例えば図3の非線型関数Mの演算を行なうことが可能となる。
図6の(b)は図6の(a)のS5(x)のテーブル例を示し、図6の(c)は図6の(a)のS6(x)のテーブル例を示す。
【0054】
図7の(c)は非線型関数Mを行列演算するときの定数(MDSを用いてXOR計算装置で用いる定数)を示し、図7の(d)はMDSを用いたXOR計算装置で行なう行列演算を模式的に示す。
【0055】
次に、既述したユーザ鍵から中間データを生成する第1段階の処理、および中間データから指定された段数rの拡大鍵を生成する第2段階の処理について数式,記号を用いて説明する。
【0056】
(1) 第1段階の処理(ユーザ鍵から中間データを生成する処理):
(1−1)256ビットの暗号鍵を、32ビットごとに8個のデータk0,k1,・・・k7に分割する(図3参照)
(1−2) (1−1)で分割した32ビットを入力とし、32ビットを出力する非線型関数Mを用いて、以下の(1−3)から(1−6)の計算により、中間データa(i),b(i),c(i),d(i)の生成をi=0,1,2について行なう(図3参照)。また、非線型関数Mについて、(3−1)から(3−6)を実行する。
【0057】
(1−3) a(i)=M(Ta(k0,i)XOR Ua(k1,i)を計算する。ただし、Ta(k0,i)=M(k0)+M(4i),Ua(k1,i)=M(k1)×(i+1)である。尚、XORは、排他的論理和演算を表す。
【0058】
(1−4) b(i)=M(Tb(k2,i) XOR Ub(k3,i)を計算する。ただし、Tb(k3,i)=M(k2)+M(4i+1),Ub(k3,i)=M(k3)×(i+1)である。
【0059】
(1−5) c(i)=M(Tc(k4,i) XOR Uc(k5,i)を計算する。ただし、Tc(k4,i)=M(k4)+M(4i+2),Uc(k5,i)=M(k5)×(i+1)である。
【0060】
(1−6)d(i)=M(Td(k6,i) XOR Ud(k7,1))を計算する。ただし、Td(k6,i)=M(k6)+M(4i+3),Ud(k7,i)=M(k7)×(i+1)である。
【0061】
(2) 第2段階の処理(中間データから指定された段数rの拡大鍵を生成する処理):
(2−1)r段数の拡大鍵ExKeyr(r=0.1・・)について、以下の(2−2)から(2−4)に従い計算を行なう(図4の(a)参照)。
【0062】
(2−2) Xr=Zr=r mod3,Yr=Wr=r+[r/3]mod3(式(1))で表される数列X,Y,Z,Wを用いて、(X,Y,Z,W)=(a(Xr),b(Yr),c(Zr),d(Wr))とする。
【0063】
(2−3) r’=(r+[r/36])mod12を満たすr’に関して、(X、Y、Z、W)=ORDER_12(X,Y,Z,W,r’)で示されるデータ並び替えを行なう。ただし、ORDER_12(X,Y,Z,W,r’)は、図5の(c)に従う。
【0064】
(2−4) ExKeyr=G(X,Y,Z,W)により、r段数の拡大鍵を計算する。ただし、G(X,Y,Z,W)=((x<<<1)+Y) XOR (((Z<<<1)−W)<<<1)であり、<<<1は1ビット左巡回シフトを表す(図4の(b)参照)。
【0065】
(3) 非線型関数Mの演算処理:
(3−1) 32ビット入力mから、以下の(3−2)から(3−6)に従い、32ビットのwを出力する(図6の(a)参照)。
【0066】
(3−2) mをビット分割した値m0,・・・m5を、以下に従って与える。
m0=(mの第0ビット目から第5ビット)
m1=(mの第6ビット目から第10ビット)
m2=(mの第11ビット目から第15ビット)
m3=(mの第16ビット目から第20ビット)
m4=(mの第21ビット目から第25ビット)
m5=(mの第26ビット目から第31ビット)
(3−3) 5ビットの入力に対し5ビットを出力する非線型変形関数S5,6ビットの入力に対し6ビットを出力する非線型変換関数S6を用いて、
s0=S6(m0)
s1=S5(m1)
s2=S5(m2)
s3=S5(m3)
s4=S5(m4)
s5=S6(m5)
ここで、S5、S6を既述した図6の(b)、(c)にそれぞれ示す。
【0067】
(3−4) v=s0|s1|s2|s3|s4|s5を計算する。|は、ビット値の連結を表す。
(3−5) vのi番目のビット値vi,および5ビット入力から32ビットを出力する変換テーブルMDSを用いて、
w=(v0×MDS(0))XOR(v1×MDS(1))XOR・・・XOR(v31×MDS(31))を計算する。ただし、vi×MDS(i)は、
vi=0のとき0、vi=1のときMDS(i)である。また、MDSは図7の(d)に従う。
【0068】
(3−6) wを出力する。
【0069】
【発明の効果】
以上説明したように、本発明によれば、第1段階で暗号鍵から中間データを生成し、第2段階で中間データから任意のデータを選択して非可逆変換を行ない任意の段数の拡大鍵を生成する構成を採用しているため、拡大鍵を非可逆変換を経て高速生成して共通鍵方式の安全性を高めることが可能となる。これにより、
(1) 例えば中間データを1個生成するためには大きな処理時間が必要であるあるが、拡大鍵生成装置5により、必要な中間データの個数を少なくでき、安全性の高い拡大鍵を高速に生成できる。
【0070】
(2) また、生成した拡大鍵ExKey0,ExKey1,・・・ExKeyn−1の全てを記憶せずに、暗号化あるいは復号化の処理の途中で、必要となる拡大鍵のみを生成する場合、指定した段数rの拡大鍵のみを高速生成できるという顕著な特徴がある。これの効果を以下説明する。
【0071】
一般的に共通鍵暗号方式は、暗号化でExKey0,ExKey1,・・・ExKeyn−1の順に拡大鍵が用いられる場合、復号化では、ExKeyn−1・・・ExKey1,ExKey0のように、暗号化とは逆の順で拡大鍵が用いられる。ここで、ExKey1を生成するのにExKey0の値を必要とする拡大鍵生成方式を用いて(既述した図9参照)、逐次生成を行なった場合、ExKey1は直接生成することができず、先にExKey0を生成してこれを用いてExKey1を生成することとなり、その分、復号化の拡大鍵生成時間が暗号化よりも遅くなる。
【0072】
これに対し、本発明は、他の拡大鍵とは独立して、任意の段数rを指定して拡大鍵を生成できるため、拡大鍵をExKey0,ExKey1,・・・ExKeyn−1の順に生成するのも、ExKeyn−1・・・ExKey1,ExKey0の順に生成するのも、同じ処理時間で行なうことができるという顕著な特徴がある。
【0073】
以上のように、本発明では、拡大鍵の逐次生成を行なう場合でも、暗号化と復号化の処理時間を同じにして、復号化の拡大鍵生成時間を暗号化よりも遅くなることを防ぐ顕著な効果がある。
【図面の簡単な説明】
【図1】本発明のシステム構成図である。
【図2】本発明の動作説明フローチャートである。
【図3】本発明の説明図(中間データ)である。
【図4】本発明の説明図(拡大鍵)である。
【図5】本発明の説明図である。
【図6】本発明の説明図(非線型関数演算、その1)である。
【図7】本発明の説明図(非線型関数演算、その2)である。
【図8】共通鍵方式の説明図である。
【図9】従来のDESのアルゴリズムの全体のブロック図である。
【符号の説明】
1:暗号化装置
2:暗号化処理装置
3:拡大鍵処理装置
4:中間データ生成装置
5;拡大鍵生成装置
M:非線型関数
G:非可逆関数
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an extended key generation device, an extended key generation program, and a recording medium that generate an extended key from an encryption key.
[0002]
[Prior art]
FIG. 8 shows a configuration of an encryption process using a common common key encryption. The encryption device in FIG. 8 receives plaintext and an encryption key and outputs a ciphertext, and is composed of an encryption processing device and an extended key generation device. The encryption processing apparatus performs n stages of processing in the order of encryption processing 1 to encryption processing n. The extended key processing device sequentially generates the extended key n from the extended key 1 used in each of the n stages of encryption processing based on the input encryption key. The generation of the expanded key is an important problem, and high speed and security are required.
[0003]
Conventionally, there is a DES extended key generation method as a method capable of high-speed processing. In this DES extended key generation method, as shown in the extended key generation apparatus on the right side of FIG. 9, an encryption key is input and an extended key n is generated from the extended key 1 only by cyclic shift and bit transposition. Is fast.
[0004]
As a more secure method, there is a MARS extended key generation method (MARS-a candidate cipher for AES, THE First AES Conference 1998 p1-p9).
[0005]
[Problems to be solved by the invention]
In the former DES extended key generation method of FIG. 9 described above, since the extended key is generated only by cyclic shift and bit transposition (see the portion * on the right side of FIG. 9), the processing is fast, but the extended key is generated. There is a problem that the bit information of the encryption key can be easily obtained from the bit information. For this reason, if even one of the n extended keys leaks information, the information of the encryption key is also leaked, which causes a problem in safety.
[0006]
In addition, the latter MARS extended key generation method described above cannot obtain encryption key information easily from expanded key information. Therefore, although it is highly secure, it performs high-speed processing because many operations are repeated. There was a problem that I could not.
[0007]
In order to solve these problems, the present invention generates intermediate data from the encryption key in the first stage, selects arbitrary data from the intermediate data in the second stage, performs irreversible conversion, and expands the key with an arbitrary number of stages. Is generated at high speed through irreversible transformation to increase the security of the common key method.
[0008]
[Means for Solving the Problems]
Means for solving the problem will be described with reference to FIG.
In FIG. 1, an encryption device 1 receives plaintext and an encryption key, outputs ciphertext, and includes an extended key processing device 3 and the like.
[0009]
The extended key processing device 3 generates an extended key from an encryption key. Here, the extended key processing device 3 includes an intermediate data generating device 4 and an extended key generating device 5.
The intermediate data generation device 4 receives a cryptographic key and generates a plurality of intermediate data.
[0010]
The extended key generation device 5 generates an extended key having a specified number of stages r from a plurality of i intermediate data.
Next, the operation will be described.
[0011]
The intermediate data generation device 4 divides the input bit string of the encryption key into a plurality of groups, performs a plurality of operations i on the divided bit strings of the respective groups, and generates a plurality of i calculation results. A plurality of i calculation results for each group are subjected to a calculation for combining the corresponding calculation results into one among a plurality of groups to generate a plurality of i intermediate data, and the extended key generation device 5 designates the number r of the extended key designated r 1 is selected from a plurality of intermediate data, and the selected intermediate data is irreversibly converted to generate an expanded key having r stages.
[0012]
At this time, as the bit string of the input encryption key, a bit string obtained by calculating a non-linear function on the bit string of the input encryption key is used.
In addition, a logical operation is performed as a single operation.
[0013]
In addition, after performing a calculation to be combined into one, a non-linear function is calculated to generate intermediate data.
Further, the irreversible conversion is performed after the selected intermediate data is transposed according to the number of stages r.
[0014]
Therefore, intermediate data is generated from the encryption key in the first stage, and arbitrary data is selected from the intermediate data in the second stage and subjected to irreversible conversion to generate an extended key having an arbitrary number of stages. It is possible to increase the security of the common key method by generating at high speed through reversible conversion.
[0015]
DETAILED DESCRIPTION OF THE INVENTION
Next, embodiments and operations of the present invention will be described in detail sequentially with reference to FIGS.
[0016]
FIG. 1 shows a system configuration diagram of the present invention.
In FIG. 1, an encryption device 1 receives a plaintext and an encryption key, outputs a ciphertext, and includes an encryption processing device 2 and an extended key processing device 3.
[0017]
The encryption processing device 2 performs n steps of encryption processing (1) to encryption processing (n) based on the extended key 1 to the extended key n, and creates and outputs a ciphertext. . In the encryption process (1) to the encryption process (n), the extended key n is received from the extended key 1 generated by the extended key processing device 3, the respective encrypted processes are performed, and the ciphertext is output from the final stage. .
[0018]
The extended key processing device 3 generates an extended key from an encryption key. Here, the extended key processing device 3 includes an intermediate data generating device 4 and an extended key generating device 5.
The intermediate data generation device 4 receives a cryptographic key and generates a plurality of i intermediate data (see FIGS. 2 and 3).
[0019]
The extended key generation device 5 generates an extended key having a specified number of stages r from a plurality of i intermediate data (see FIGS. 2 and 4).
Next, the operation when generating an extended key from the encryption key under the configuration of FIG. 1 according to the order of the flowchart of FIG. 2 will be described in detail.
[0020]
FIG. 2 shows a flowchart for explaining the operation of the present invention.
In FIG. 2, S1 inputs a user key. In this case, an encryption key (user key) is input to the encryption device 1 in FIG. 1 together with plaintext. As a result, the intermediate data generation device 4 constituting the extended key processing device 3 of FIG. 1 has taken in the user key (encryption key).
[0021]
S2 calculates a non-linear function M. As shown in FIG. 3, which will be described later, the bit string of the encryption key is divided into 8 groups, and a nonlinear function M is calculated for the bit string of each group (described later with reference to FIGS. 6 and 7).
[0022]
S3 adds a constant when the number is even.
S4 multiplies a constant when odd. In S3 and S4, as shown in FIG. 3 described later, a constant is added to the bit string after the calculation of the nonlinear function M when the number is even, and the constant is multiplied when the number is odd.
[0023]
In S5, an exclusive OR is calculated. As shown in FIG. 3, which will be described later, an exclusive OR operation is performed on the bit string obtained by adding the constant in S4 and the bit string obtained by multiplying the constant.
[0024]
S6 calculates a non-linear function M. This calculates the non-linear function M to the bit string after the calculation in S5, and generates intermediate data. In S4, S5, and S6, after adding and multiplying a plurality of constants (for example, three constants corresponding to i = 0, 1, and 2 in the case of FIG. 3), an exclusive OR operation is performed. Each of the linear function operations is performed, and in the case of FIG. 3, three intermediate data are generated.
[0025]
Through the above S1 to S6, it is possible to create intermediate data consisting of a plurality of pieces (three in FIG. 3) that have undergone irreversible conversion in accordance with the configuration of FIG. 3, for example, with the user key (encryption key) as an input. Become.
[0026]
In S7 of FIG. 2, the stage number r is input. This is to input the number r of the extended key to be created. As a result, according to the present invention, it is possible to directly create an extended key having the specified number of steps in subsequent S8 to S11.
[0027]
In S8, a corresponding value is selected from the intermediate data. In this case, the corresponding intermediate data is selected one by one from the plurality of intermediate data i in FIG.
[0028]
S9 performs transposition according to the number of stages r. This is the data rearrangement processing apparatus of FIG. 4A, which inputs the number of stages r and transposes the intermediate data selected in S8 (see FIGS. 5C and 5D).
[0029]
S10 performs irreversible conversion G of the intermediate data after transposition (see FIG. 4B).
S11 outputs r-stage expanded keys. This outputs the data after the calculation in S10 as an expanded key of r stages.
[0030]
In S12, it is determined whether or not the end. If YES, the process ends. In the case of NO, the process returns to S7 to create the next designated expanded key having the specified number of stages r.
From S7 to S11, based on a plurality of i intermediate data created in S1 to S6, one intermediate data is selected according to the designated number of stages r, transposed according to the number of stages r, and then the irreversible conversion is performed. This makes it possible to generate an extended key having a designated number of stages r at high speed through irreversible conversion. Details will be sequentially described below.
[0031]
FIG. 3 is an explanatory diagram (intermediate data) of the present invention.
In FIG. 3, k0 to k7 in the upper stage are bit strings obtained by sequentially dividing the bit string of the encryption key (user key) into eight.
[0032]
M in the upper and lower stages represents a nonlinear function operation (see FIGS. 6 and 7 described later). + Represents addition of a constant. Here, the addition of M (4i) is performed by adding the value of the constant M when i = 0, 1, 2 when the subscript k of the divided bit string is, for example, the even number of S3 in FIG. This means that the above three are output. Similarly, for M (4i + 1), M (4i + 2), and M (4i + 3), it represents that three values obtained by adding the values of the constant M when i = 0, 1, and 2 are output.
[0033]
X represents a constant multiplication. Here, i + 1 multiplication is performed by multiplying three values obtained by multiplying constant values when i = 0, 1, 2 when the subscript k of the divided bit string is, for example, the odd number of S4 in FIG. Indicates output.
[0034]
+ Represents that an exclusive OR operation is performed on the result of addition and multiplication.
a i to d i represent the outputs of h intermediate data. Here, three pieces of output intermediate data from a i to d i (i = 0, 1, 2) are represented.
[0035]
As described above, after the encryption key is divided into eight groups and the nonlinear function M is calculated for each bit string, the even number is added with three constants and the odd number is multiplied with three constants, It is possible to combine the corresponding data obtained by addition and multiplication into one by exclusive OR operation, and further calculate the non-linear function M to generate three intermediate data.
[0036]
FIG. 4 is an explanatory diagram (extended key) of the present invention.
FIG. 4A shows a system configuration for generating an extended key by selecting one from i pieces of intermediate data based on the number of stages r.
[0037]
In FIG. 4A, the intermediate data here is intermediate data (intermediate data) generated by the configuration of FIG. 3 consisting of a i , b i , c i , d i (i = 0, 1, 2). Key).
[0038]
The select value determination device uses any i of the intermediate data a i , b i , c i , d i (i = 0, 1, 2) based on the number r of the expanded key to be created. Is to be selected. The determination is made according to equation (1) in FIG.
[0039]
The selector follows X r , Y r , Z r , W r determined by the select value determining device, and here, intermediate data a (X r ), b (Y r ), C (Z r ), and d (W r ) one by one.
[0040]
The data rearrangement processing apparatus rearranges (transposes) the selected intermediate data a (X r ), b (Y r ), c (Z r ), and d (W r ) based on the number of stages r. Is. This transposition is a transposition corresponding to the number of stages r as shown in FIG.
[0041]
The G (X, Y, Z, W, r) calculation device generates an extended key E x Key r based on the rearranged intermediate data (X, Y, Z, W). This generates an extended key E x Key r with the configuration shown in FIG.
[0042]
With the above configuration, it is possible to specify the stage number r from the intermediate data and generate an expanded key with the stage number r. Details will be sequentially described below.
FIG. 4B shows a detailed configuration of the G (X, Y, Z, W) calculation apparatus shown in FIG.
[0043]
In FIG. 4B, 1-bit left cyclic shift is a cyclic shift of a data bit string in the left direction by 1 bit.
The exclusive logical sum is an operation of exclusive logical sum of two data.
[0044]
Addition is to add two data.
Subtraction is to subtract other data from one data.
By connecting the above circuits as shown in the figure, an extended key can be generated from intermediate data (X, Y, Z, W) after selection and transposition based on the designated number of stages.
[0045]
FIG. 5 shows an explanatory diagram of the present invention.
FIG. 5A shows an equation (1) used when selecting one of the intermediate data of i pieces having the stage number r. The formula (1) shown is as follows.
[0046]
Xr = Zr = rmod 3
Y r = W r = r + [r / 3] mod 3
FIG. 5B schematically shows the expression (1) in FIG. This is a value obtained by actually calculating the value of the expression (1) in FIG. 5A, and is a value for selecting one of the three values 0, 1, and 2 when the number of stages is r. , 9 circulate.
[0047]
5A and 5B, a value corresponding to the stage number r (one of the three values i = 0, 1, and 2) is determined, and in FIG. 4A described above. It becomes possible to select (X r , Y r , Z r , W r ) determined by the number of stages r from i pieces of intermediate data.
[0048]
FIG. 5C shows an order table. This order table shows the order (order) when rearranging (replacement) the intermediate data (X r , Y r , Z r , W r ) of the number r of stages selected in (a) and (b) of FIG. To decide. Here, rearrangement is performed as shown in the rearrangement order on the right side in association with the left stage number r (executed by the data rearrangement processing device in FIG. 4A).
[0049]
Next, the non-linear function calculation will be described with reference to FIGS.
FIG. 6A shows an example of the overall configuration of the calculation of the nonlinear function M. Here, a state in which a user key (encryption key) m (for example, 32 bits) is input and a nonlinear function M is calculated to generate a result w (32 bits) will be described.
[0050]
(1) The 32 bits of the user key are sequentially divided into m0, m1, m2, m3, m4, and m5 by 6, 5, 5, 5, and 56 bits, as shown in the figure.
(2) m1, m2, m3, and m4 divided into 5 bits are converted into values of S5 (x) corresponding to the corresponding x according to the table of S5 (x) in FIG. 6B.
[0051]
(3) Similarly, m0 and m6 divided into 6 bits are respectively converted into values of S6 (x) corresponding to the corresponding x according to the table of S6 (x) in FIG.
(4) According to (2) and (3), the data v in FIG.
[0052]
(5) Place the data v generated in (4) in the determinant schematically shown in (e) of FIG. 7 at the position indicated by the arrow from (d) of FIG. To calculate w on the right side. As a result, a result (an operation result of the non-linear function M) obtained by the XOR calculation apparatus using the MDS in FIG. 6A is obtained.
[0053]
Thus, for example, the non-linear function M in FIG. 3 can be calculated according to the order shown in the configuration of FIG.
6B shows an example of a table of S5 (x) in FIG. 6A, and FIG. 6C shows an example of a table of S6 (x) in FIG. 6A.
[0054]
(C) of FIG. 7 shows constants (constants used in the XOR calculation apparatus using MDS) when performing the matrix calculation of the nonlinear function M, and (d) of FIG. 7 is a matrix performed in the XOR calculation apparatus using MDS. An operation is schematically shown.
[0055]
Next, the first-stage process for generating intermediate data from the user key described above and the second-stage process for generating an expanded key having the specified number of stages r from the intermediate data will be described using mathematical expressions and symbols.
[0056]
(1) First stage processing (processing for generating intermediate data from a user key):
(1-1) A 256-bit encryption key is divided into 8 pieces of data k0, k1,... K7 every 32 bits (see FIG. 3).
(1-2) Using the non-linear function M that inputs the 32 bits divided in (1-1) and outputs 32 bits, the following calculations (1-3) to (1-6) Data a (i), b (i), c (i), and d (i) are generated for i = 0, 1, and 2 (see FIG. 3). For the non-linear function M, (3-1) to (3-6) are executed.
[0057]
(1-3) a (i) = M (Ta (k0, i) XOR Ua (k1, i) is calculated, where Ta (k0, i) = M (k0) + M (4i), Ua (k1) , I) = M (k1) × (i + 1), where XOR represents an exclusive OR operation.
[0058]
(1-4) b (i) = M (Tb (k2, i) XOR Ub (k3, i) is calculated, where Tb (k3, i) = M (k2) + M (4i + 1), Ub (k3) , I) = M (k3) × (i + 1).
[0059]
(1-5) c (i) = M (Tc (k4, i) XOR Uc (k5, i) is calculated, where Tc (k4, i) = M (k4) + M (4i + 2), Uc (k5 , I) = M (k5) × (i + 1).
[0060]
(1-6) d (i) = M (Td (k6, i) XOR Ud (k7, 1)) is calculated. However, Td (k6, i) = M (k6) + M (4i + 3), Ud (k7, i) = M (k7) × (i + 1).
[0061]
(2) Second stage process (process for generating an expanded key having a specified number of stages r from intermediate data):
(2-1) With respect to the expanded key ExKeyr (r = 0.1...) Having r stages, calculation is performed according to the following (2-2) to (2-4) (see (a) of FIG. 4).
[0062]
(2-2) Xr = Zr = r mod 3, Yr = Wr = r + [r / 3] mod 3 (X, Y, Z, W) Z, W) = (a (Xr), b (Yr), c (Zr), d (Wr)).
[0063]
(2-3) For r ′ satisfying r ′ = (r + [r / 36]) mod 12, data represented by (X, Y, Z, W) = ORDER — 12 (X, Y, Z, W, r ′) Rearrange. However, ORDER — 12 (X, Y, Z, W, r ′) follows (c) of FIG.
[0064]
(2-4) ExKeyr = G (X, Y, Z, W) is used to calculate an expanded key having r stages. However, G (X, Y, Z, W) = ((x << 1) + Y) XOR (((Z <<<< 1) -W) << 1), << 1 is 1 It represents a bit left cyclic shift (see FIG. 4B).
[0065]
(3) Processing of nonlinear function M:
(3-1) A 32-bit w is output from the 32-bit input m according to the following (3-2) to (3-6) (see (a) in FIG. 6).
[0066]
(3-2) Values m0,..., M5 obtained by dividing m into bits are given as follows.
m0 = (0th bit to 5th bit of m)
m1 = (6th bit to 10th bit of m)
m2 = (11th bit to 15th bit of m)
m3 = (16th bit to 20th bit of m)
m4 = (21st bit to 25th bit of m)
m5 = (26th bit to 31st bit of m)
(3-3) Non-linear transformation function S5 that outputs 5 bits for a 5-bit input, and a non-linear conversion function S6 that outputs 6 bits for a 6-bit input,
s0 = S6 (m0)
s1 = S5 (m1)
s2 = S5 (m2)
s3 = S5 (m3)
s4 = S5 (m4)
s5 = S6 (m5)
Here, S5 and S6 are respectively shown in FIGS. 6B and 6C described above.
[0067]
(3-4) v = s0 | s1 | s2 | s3 | s4 | s5 is calculated. | Represents the concatenation of bit values.
(3-5) Using the i-th bit value vi of v and the conversion table MDS that outputs 32 bits from a 5-bit input,
w = (v0 × MDS (0)) XOR (v1 × MDS (1)) XOR... XOR (v31 × MDS (31)) is calculated. However, vi × MDS (i) is
When vi = 0, it is 0, and when vi = 1, it is MDS (i). Also, MDS follows (d) of FIG.
[0068]
(3-6) Output w.
[0069]
【The invention's effect】
As described above, according to the present invention, the intermediate data is generated from the encryption key in the first stage, the arbitrary data is selected from the intermediate data in the second stage, and the irreversible conversion is performed, and the extended key having an arbitrary number of stages Therefore, it is possible to increase the security of the common key method by generating an extended key at a high speed through an irreversible transformation. This
(1) For example, a large amount of processing time is required to generate one piece of intermediate data, but the number of pieces of necessary intermediate data can be reduced by the extended key generation device 5 and a highly secure extended key can be generated at high speed. Can be generated.
[0070]
(2) Also, when generating only the necessary extended key during encryption or decryption processing without storing all of the generated extended keys ExKey0, ExKey1,... ExKey-1, There is a remarkable feature that only the expanded key having the number of stages r can be generated at high speed. The effect of this will be described below.
[0071]
In general, in the case where the extended key is used in the order of ExKey0, ExKey1,... The expanded keys are used in the reverse order. Here, when an extended key generation method that requires the value of ExKey0 to generate ExKey1 (see FIG. 9 described above) is used for sequential generation, ExKey1 cannot be generated directly, Then, ExKey0 is generated and ExKey1 is generated using this, and the extended key generation time for decryption is accordingly slower than encryption.
[0072]
On the other hand, according to the present invention, an extended key can be generated by designating an arbitrary number of stages r independently of other extended keys. Therefore, extended keys are generated in the order of ExKey0, ExKey1,... ExKey-1. However, there is a remarkable feature that the generation of ExKey-1... ExKey 1 and ExKey 0 can be performed in the same processing time.
[0073]
As described above, in the present invention, even when the extended key is generated sequentially, the encryption and decryption processing times are made the same, and the extended key generation time for decryption is prevented from becoming slower than the encryption. There is a great effect.
[Brief description of the drawings]
FIG. 1 is a system configuration diagram of the present invention.
FIG. 2 is a flowchart explaining the operation of the present invention.
FIG. 3 is an explanatory diagram (intermediate data) of the present invention.
FIG. 4 is an explanatory diagram (extended key) of the present invention.
FIG. 5 is an explanatory diagram of the present invention.
FIG. 6 is an explanatory diagram of the present invention (nonlinear function calculation, part 1).
FIG. 7 is an explanatory diagram of the present invention (nonlinear function calculation, part 2).
FIG. 8 is an explanatory diagram of a common key method.
FIG. 9 is an overall block diagram of a conventional DES algorithm.
[Explanation of symbols]
1: Encryption device 2: Encryption processing device 3: Extended key processing device 4: Intermediate data generation device 5; Extended key generation device M: Non-linear function G: Non-reversible function

Claims (6)

暗号鍵から拡大鍵を生成する拡大鍵生成装置において、
入力された暗号鍵のビット列を複数のグループに分割し、これら分割した各グループのビット列に演算を複数i回それぞれ行なって複数iの演算結果を生成し、グループ毎に複数iの中間データを生成する中間データ生成手段と、
指定された拡大鍵の段数rをもとに、上記グループに含まれる上記複数iの中間データから1つを選択し、選択された各グループの中間データを段数rに従い並べ替えを行ない、 非可逆変換して段数rの拡大鍵を生成する拡大鍵生成手段と
を備えたことを特徴とする拡大鍵生成装置。
In an extended key generation device that generates an extended key from an encryption key,
The input encryption key bit string is divided into a plurality of groups, and a plurality of i operations are performed on the divided bit strings of each group to generate a plurality of i calculation results, and a plurality of i intermediate data is generated for each group. Intermediate data generating means for
Based on the specified number r of the expanded key, one is selected from the plurality of i intermediate data included in the group, and the intermediate data of each selected group is rearranged according to the number r, thereby irreversibly. An expanded key generation device comprising expanded key generation means for converting and generating an expanded key having r stages.
上記入力された暗号鍵のビット列として、入力された暗号鍵のビット列に非線型関数を演算したビット列としたことを特徴とする請求項1記載の拡大鍵生成装置。  2. The extended key generation apparatus according to claim 1, wherein the bit string of the input encryption key is a bit string obtained by calculating a nonlinear function on the bit string of the input encryption key. 上記グループ毎の中間データを生成する演算として、論理演算したことを特徴とする請求項1記載の拡大鍵生成装置。2. The extended key generation apparatus according to claim 1, wherein a logical operation is performed as the operation for generating the intermediate data for each group . 上記グループ毎の中間データを生成する演算として、非線型関数を演算したことを特徴とする請求項1記載の拡大鍵生成装置。2. The extended key generation apparatus according to claim 1, wherein a non-linear function is calculated as the calculation for generating the intermediate data for each group . コンピュータを、
入力された暗号鍵のビット列を複数のグループに分割し、これら分割した各グループのビット列に演算を複数i回それぞれ行って複数iの演算結果を生成し、グループ毎に複数iの中間データを生成する中間データ生成手段と、
指定された拡大鍵の段数rをもとに、上記グループに含まれる上記複数iの中間データから1つを選択し、選択された各グループの中間データを段数rに従い並べ替えを行ない、 非可逆変換して段数rの拡大鍵を生成する拡大鍵生成手段と
して機能させるプログラムを記録したコンピュータ読取可能な記録媒体。
Computer
The input encryption key bit string is divided into a plurality of groups, each of the divided bit strings is subjected to a plurality of i operations to generate a plurality of i operation results, and a plurality of i intermediate data is generated for each group. Intermediate data generating means for
Based on the specified number r of the expanded key, one is selected from the plurality of i intermediate data included in the group, and the intermediate data of each selected group is rearranged according to the number r, thereby irreversibly. A computer-readable recording medium recorded with a program that functions as expanded key generation means for converting and generating an expanded key having the number of stages r.
コンピュータを、
入力された暗号鍵のビット列を複数のグループに分割し、これら分割した各グループのビット列に演算を複数i回それぞれ行って複数iの演算結果を生成し、グループ毎に複数iの中間データを生成する中間データ生成手段と、
指定された拡大鍵の段数rをもとに、上記グループに含まれる上記複数iの中間データから1つを選択し、選択された各グループの中間データを段数rに従い並べ替えを行ない、 非可逆変換して段数rの拡大鍵を生成する拡大鍵生成手段と
して機能させるための拡大鍵生成プログラム。
Computer
The input encryption key bit string is divided into a plurality of groups, each of the divided bit strings is subjected to a plurality of i operations to generate a plurality of i operation results, and a plurality of i intermediate data is generated for each group. Intermediate data generating means for
Based on the specified number r of the expanded key, one is selected from the plurality of i intermediate data included in the group, and the intermediate data of each selected group is rearranged according to the number r, thereby irreversibly. An expanded key generation program for functioning as expanded key generation means for converting and generating an expanded key having the number of stages r.
JP2001211558A 2000-07-13 2001-07-12 Extended key generation device, extended key generation program, and recording medium Expired - Fee Related JP3942073B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001211558A JP3942073B2 (en) 2000-07-13 2001-07-12 Extended key generation device, extended key generation program, and recording medium

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2000-212482 2000-07-13
JP2000212482 2000-07-13
JP2001211558A JP3942073B2 (en) 2000-07-13 2001-07-12 Extended key generation device, extended key generation program, and recording medium

Publications (2)

Publication Number Publication Date
JP2002091296A JP2002091296A (en) 2002-03-27
JP3942073B2 true JP3942073B2 (en) 2007-07-11

Family

ID=26595947

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001211558A Expired - Fee Related JP3942073B2 (en) 2000-07-13 2001-07-12 Extended key generation device, extended key generation program, and recording medium

Country Status (1)

Country Link
JP (1) JP3942073B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4515716B2 (en) * 2002-04-03 2010-08-04 パナソニック株式会社 Extended key generation device, encryption device, and encryption system
JP4859536B2 (en) * 2006-05-30 2012-01-25 三菱電機株式会社 Data converter
JP4909018B2 (en) 2006-11-16 2012-04-04 富士通株式会社 Encryption device for common key encryption

Also Published As

Publication number Publication date
JP2002091296A (en) 2002-03-27

Similar Documents

Publication Publication Date Title
EP1172964B1 (en) Extended key preparing apparatus, extended key preparing method, recording medium and computer program
KR100435052B1 (en) Encryption device
JP4127472B2 (en) Data conversion apparatus, data conversion method and program for data conversion apparatus, and computer-readable recording medium
JP3818263B2 (en) AES encryption processing device, AES decryption processing device, AES encryption / decryption processing device, AES encryption processing method, AES decryption processing method, and AES encryption / decryption processing method
US6298136B1 (en) Cryptographic method and apparatus for non-linearly merging a data block and a key
JP5229315B2 (en) Encryption device and built-in device equipped with a common key encryption function
US7096369B2 (en) Data transformation apparatus and data transformation method
JP5272417B2 (en) Data conversion apparatus, data conversion method, and computer program
US20070140478A1 (en) Encryption apparatus and encryption method
JP2001324924A (en) Device and method for ciphering, device and method for deciphering, and arithmetic operation device
JP3180836B2 (en) Cryptographic communication device
JP3942073B2 (en) Extended key generation device, extended key generation program, and recording medium
EP1087425A1 (en) Method for the cryptographic conversion of binary data blocks
JP6089668B2 (en) ENCRYPTION PROCESSING CIRCUIT, DECRYPTION PROCESSING CIRCUIT, METHOD THEREOF, AND PROGRAM THEREOF
JPH1124558A (en) Ciphering device
JPH09269727A (en) Ciphering method and ciphering device
JPWO2008117804A1 (en) Pseudorandom number generator for stream cipher, program and method
JP5354914B2 (en) Encryption processing device, decryption processing device, and program
JP2010507813A (en) ENCRYPTION METHOD AND ENCRYPTION APPARATUS FOR IMPROVING OPERATION PERFORMANCE OF A CENTRAL PROCESSOR
KR100350207B1 (en) Method for cryptographic conversion of l-bit input blocks of digital data into l-bit output blocks
JP5488608B2 (en) Block encryption apparatus, block encryption method and program
Hassan New Approach for Modifying DES Algorithm Using 4-States Multi-keys
JP3017726B2 (en) Data converter
Tvrdý Cryptanalytic attacks on the cipher PRINCE
JPH06102820A (en) Cyphering device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040423

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060928

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061017

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061215

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: 20070313

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070330

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110413

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110413

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120413

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130413

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140413

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees