JP2004004603A - Extension key generation apparatus, enciphering apparatus and enciphering system - Google Patents

Extension key generation apparatus, enciphering apparatus and enciphering system Download PDF

Info

Publication number
JP2004004603A
JP2004004603A JP2003067218A JP2003067218A JP2004004603A JP 2004004603 A JP2004004603 A JP 2004004603A JP 2003067218 A JP2003067218 A JP 2003067218A JP 2003067218 A JP2003067218 A JP 2003067218A JP 2004004603 A JP2004004603 A JP 2004004603A
Authority
JP
Japan
Prior art keywords
data
key
unit
expanded
conversion
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
Application number
JP2003067218A
Other languages
Japanese (ja)
Other versions
JP4515716B2 (en
JP2004004603A5 (en
Inventor
Kaoru Yokota
横田 薫
Motoji Omori
大森 基司
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2003067218A priority Critical patent/JP4515716B2/en
Publication of JP2004004603A publication Critical patent/JP2004004603A/en
Publication of JP2004004603A5 publication Critical patent/JP2004004603A5/ja
Application granted granted Critical
Publication of JP4515716B2 publication Critical patent/JP4515716B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide an enciphering system by which a difference in processing time between encoding time and decoding time is reduced and a random and safety extension key is generated. <P>SOLUTION: The system comprises: an extension key calculation part 210 which receives first to fourth input data X0 to X3, performs data replacement and data merge processing to the first to fourth input data X0 to X3 and calculates the extension key SK; and an output calculation part 230 which performs prescribed circulation bit shift processing to each of the first to fourth input data X0 to X3, replaces data positions and thereafter calculates first to fourth output data Y0 to Y3 which become input to a key conversion part at a next stage or a final key conversion part. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明は、暗号化システムに関し、特に、暗号時と復号時とでの処理時間の差が少なく、かつ、ランダム性の高い拡大鍵を生成可能な暗号化システムに関する。
【0002】
【従来の技術】
近年、デジタル通信が急速に普及してきたが、健全な産業の発展やプライバシーを保護する等の観点から、通信におけるデータの機密性を確保するためのデータ暗号方式が要求されている。また、暗号方式の実現においては、安全性のみならず暗号処理の高速性や実装の簡便性も要求される。このような暗号方式の一般的構成では、暗号化の対象となるデータは、固定サイズのブロックに分割され、各ブロックが所定の暗号鍵に基づいてデータ撹乱処理されて、暗号文が生成される。
【0003】
(第1の従来例)
このような暗号方式の1つに米国の次世代標準暗号であるAES(Advanced Encryption Standard)として制定されたRijndael暗号がある。図16は、Rijndael暗号方式を用いた暗号化装置の内部構成を示す図である。暗号化装置1300は、128ビットの暗号鍵EKから各128ビットの拡大鍵SK0〜SK10を生成し出力する拡大鍵生成部6と、拡大鍵生成部6に接続され、拡大鍵生成部6より拡大鍵SK0〜SK10を受け、拡大鍵SK0〜SK10を用いて128ビットデータの平文PTに対して所定のデータ変換処理を繰り返し行うことによりデータ撹乱を行い、128ビットの暗号文CTを作成するデータ撹乱部5とを含む。
【0004】
拡大鍵生成部6は、暗号鍵EKを受け、暗号鍵EKを4つの32ビットのデータブロックD0,D1,D2およびD3に分割して出力するデータ分割部600と、データ分割部600に接続され、データ分割部600よりデータブロックD0〜D3を受け、それらに後述する所定の演算を施し、拡大鍵SK1と4つの32ビットのデータブロックとを生成し、出力する鍵変換部60と、各々、前段の鍵変換部に接続され、前段の鍵変換部より4つの32ビットのデータブロックを受け、それらに後述する所定の演算を施し、拡大鍵と4つの32ビットのデータブロックとを生成し、出力する鍵変換部61〜69とを含む。
【0005】
鍵変換部61〜69から出力される拡大鍵を、それぞれ拡大鍵SK2〜SK10と定義する。また、鍵変換部69は、4つのデータブロックを出力するが、それらは、他の処理には利用されない。さらに、拡大鍵生成部6は、暗号鍵EKを拡大鍵SK0として出力する。
【0006】
データ撹乱部5は、拡大鍵生成部6に接続され、拡大鍵SK0を受け、平文PTと拡大鍵SK0との間でビットごとの排他的論理和演算を実行し、出力する鍵加算部500と、鍵加算部500および鍵変換部60に接続され、鍵加算部500より出力されたデータを拡大鍵SK1に基づいて変換するデータ変換部50と、鍵変換部61〜68にそれぞれ接続され、前段のデータ変換部より出力されたデータを拡大鍵SK2〜SK9に基づいてそれぞれ変換するデータ変換部51〜58と、データ変換部58および鍵変換部69に接続され、データ変換部58より出力されたデータを拡大鍵SK10に基づいて変換し、暗号文CTを出力する最終データ変換部59とを含む。
【0007】
図17は、鍵変換部60〜69の各々の内部構成を示す図である。鍵変換部60〜69の各々は、各32ビットの第1〜第4入力データX0〜X3に基づいて、後述する鍵変換処理を実行し、第1〜第4出力データY0〜Y3および128ビットの拡大鍵SKを出力する。
【0008】
鍵変換部60〜69の各々は、第4入力データX3を受け、当該入力データX3を上位ビット方向(左方向)に8ビットだけ巡回ビットシフトし、結果を出力するデータ回転部601と、データ回転部601に接続され、データ回転部601より演算結果を受け、当該演算結果に所定の置換処理を施し、結果を出力するデータ置換部602と、データ置換部602に接続され、データ置換部602より置換結果を受け、当該置換結果とあらかじめ定められた32ビットの定数Rconとの間でビットごとの排他的論理和演算を実行し、データTを出力する排他的論理和演算部603とを含む。
【0009】
鍵変換部60〜69の各々は、排他的論理和演算部603に接続され、第1入力データX0と排他的論理和演算部603より出力されるデータTとを受け、第1入力データX0とデータTとの間でビットごとの排他的論理和演算を実行し、第1出力データY0を出力する排他的論理和演算部604と、排他的論理和演算部604に接続され、第2入力データX1と排他的論理和演算部604での演算結果とを受け、第2入力データX1と当該演算結果との間でビットごとの排他的論理和演算を実行し、第2出力データY1を出力する排他的論理和演算部605とをさらに含む。
【0010】
鍵変換部60〜69の各々は、排他的論理和演算部605に接続され、第3入力データX2と排他的論理和演算部605での演算結果とを受け、第3入力データX2と当該演算結果との間でビットごとの排他的論理和演算を実行し、第3出力データY2を出力する排他的論理和演算部606と、排他的論理和演算部606に接続され、第4入力データX3と排他的論理和演算部606での演算結果とを受け、第4入力データX3と当該演算結果との間でビットごとの排他的論理和演算を実行し、第4出力データY3を出力する排他的論理和演算部607と、排他的論理和演算部604〜607に接続され、第1〜第4出力データY0〜Y3を連結して拡大鍵SKを出力するデータ連結部608とをさらに含む。各部で実行される処理の詳細については、以下に示す暗号化処理の説明中で行なう。
【0011】
以下、暗号化装置1300により実行されるRijndael暗号方式の暗号化処理について簡単に説明する。図16に示されるように、拡大鍵生成部6は、暗号鍵EKをそのまま拡大鍵SK0としてデータ撹乱部5内部の鍵加算部500に出力する。鍵加算部500は、平文PTと拡大鍵SK0との間でビット毎の排他的論理和演算を実行し、その結果をデータ変換部50に出力する。データ分割部600は、暗号鍵EKを上位ビットから32ビットずつ4つのデータブロックD0,D1,D2およびD3に分割して、鍵変換部60に出力する。
【0012】
データ変換部50に入力されたデータは、データ変換部50からデータ変換部58の順で、各データ変換部において順次データ変換処理され、最終的に最終データ変換部59で処理された結果が暗号文CTとして出力される。
【0013】
データ変換部50〜58は、拡大鍵SK1〜SK9に基づいて、データ変換処理をそれぞれ行なう。また、最終データ変換部59は、拡大鍵SK10に基づいて、データ変換処理を行なう。拡大鍵SK1〜SK10は、拡大鍵生成部6内部の鍵変換部60〜69において生成され、データ撹乱部5のデータ変換部50〜58および最終データ変換部59にそれぞれ供給される。即ち、データ撹乱部5は、以下に示す1段の処理群を10段実行し、暗号文CTを生成する。
【0014】
鍵変換部60〜69の各々は、第1〜第4入力データX0〜X3(各32ビット)を受け、鍵変換処理を実行し、拡大鍵SK(128ビット)及び、第1〜第4出力データY0〜Y3を出力する。データ回転部601、データ置換部602および排他的論理和演算部603は、第4入力データX3に対して、次式(1)で表される演算を実行することにより、データTを計算する。
T=Rcon(+)Perm(ROTL8(X3))     …(1)
【0015】
ここで、ROTL8(X)は、データXを上位ビット方向(左方向)に8ビットだけ巡回ビットシフトした結果を表す。Perm(X)は、データXに対して所定の置換処理を施した結果を表す。演算子「(+)」はビット毎の排他的論理和演算を表す。定数Rconは、鍵変換部60〜69のそれぞれで異なる32ビットの固定値データである。
【0016】
排他的論理和演算部604〜607は、このようにして求められたデータTを用い、次式(2)〜(5)で表される演算を実行することにより、第1〜第4出力データY0〜Y3をそれぞれ求める。

Figure 2004004603
【0017】
データ連結部608は、次式(6)で表される関係を有する拡大鍵SKを求める。演算子「‖」は、データの連結を表す。すなわち、次式(6)は、各32ビットの第1〜第4出力データY0〜Y3を連結することにより、128ビットの拡大鍵SKが得られることを示している。
【0018】
SK=Y0‖Y1‖Y2‖Y3               …(6)
鍵変換部60〜69の各々は、上述の処理の結果得られる拡大鍵SKおよび第1〜第4出力データY0〜Y3を出力する。
【0019】
図18は、Rijndael暗号方式を用いた復号装置の内部構成を示す図である。復号装置1400は、128ビットの暗号鍵EKから、暗号化時とは逆の順序で各128ビットの拡大鍵SK10〜SK0を生成する拡大鍵逆生成部8と、拡大鍵逆生成部8に接続され、拡大鍵逆生成部8より拡大鍵SK10〜SK0を受け、拡大鍵SK10〜SK0を用いて128ビットの暗号文CTに対し、所定の逆データ撹乱処理を実行し、復号文DTを出力する逆データ撹乱部7とを含む。
【0020】
拡大鍵逆生成部8は、暗号鍵EKを受け、上位から32ビットずつ、4つのデータブロックに分割するデータ分割部800と、データ分割部800に接続され、4つのブロックを受け、それらに所定の演算を施し、4つの32ビットのデータブロックを出力する鍵変換部80と、各々、前段の鍵変換部に接続され、前段の鍵変換部より4つの32ビットのデータブロックを受け、それらに所定の演算を施し、後段の鍵変換部に4つの32ビットのデータブロックを生成し、出力する鍵変換部81〜88と、鍵変換部88に接続され、鍵変換部88より4つの32ビットのデータブロックを受け、それらに所定の演算を施し、拡大鍵SK10と4つの32ビットのデータブロックとを生成し、出力する鍵変換部89とを含む。
【0021】
鍵変換部80〜89で実行される所定の演算は、鍵変換部60〜69で実行される所定の演算とそれぞれ同様であるため、鍵変換部80〜89の各々は、図17に示される鍵変換部と同様の構成を有する。このため、その詳細な説明はここでは繰返さない。
【0022】
ただし、鍵変換部80〜88は、鍵変換部60〜68とは異なり、拡大鍵SK1〜SK9を出力しない。このため、鍵変換部80〜88の各々の構成は、図17に示す鍵変換部の構成からデータ連結部608を除いた構成であってもよい。
【0023】
拡大鍵逆生成部8は、鍵変換部89に接続され、鍵変換部89より出力される4つの32ビットのデータブロックを受け、それらに後述する逆鍵変換処理を施し、拡大鍵SK9と4つの32ビットのデータブロックとを生成し、出力する逆鍵変換部90と、各々、前段の逆鍵変換部に接続され、前段の逆鍵変換部より4つの32ビットのデータブロックを受け、それらに後述する逆鍵変換処理を施し、拡大鍵と4つの32ビットのデータブロックとを生成し、出力する逆鍵変換部91〜99とをさらに含む。
【0024】
逆鍵変換部90〜99より出力される拡大鍵は、それぞれ拡大鍵SK9〜SK0である。逆鍵変換部99は、4つのデータブロックを出力するが、それらは、他の処理には利用されない。
【0025】
逆データ撹乱部7は、鍵変換部89に接続され、鍵変換部89より拡大鍵SK10を受け、暗号文CTと拡大鍵SK10とを用い、最終データ変換部59で実行される変換処理の逆変換処理を実行し、処理結果を出力する最終逆データ変換部70と、最終逆データ変換部70および逆鍵変換部90に接続され、最終逆データ変換部70および逆鍵変換部90から処理結果および拡大鍵SK9をそれぞれ受け、データ変換部58で実行される変換処理の逆変換処理を実行し、処理結果を出力する逆データ変換部71とを含む。
【0026】
逆データ撹乱部7は、各々前段の逆データ変換部に接続されるとともに、逆鍵変換部91〜98にそれぞれ接続され、逆鍵変換部91〜98より拡大鍵SK8〜SK1をそれぞれ受け、データ変換部57〜50で実行される変換処理の逆変換処理をそれぞれ実行し、処理結果を出力する逆データ変換部72〜79と、逆データ変換部79および逆鍵変換部99に接続され、逆データ変換部79および逆鍵変換部99から処理結果および拡大鍵SK0をそれぞれ受け、鍵加算部500で実行される変換処理の逆変換処理を実行し、復号文DTを出力する鍵加算部700とをさらに含む。
【0027】
図19は、逆鍵変換部90〜99の各々の内部構成を示す図である。逆鍵変換部90〜99の各々は、各32ビットの第1〜第4入力データY0〜Y3に基づいて、鍵変換部60〜69および80〜89の各々で実行される鍵変換処理の逆変換に相当する逆鍵変換処理を実行し、第1〜第4出力データZ0〜Z3および128ビットの拡大鍵SKを出力する。
【0028】
逆鍵変換部90〜99の各々は、第3入力データY2と第4入力データY3との間でビットごとの排他的論理和演算を実行し、第4出力データZ3を出力する排他的論理和演算部901と、第2入力データY1と第3入力データY2との間でビットごとの排他的論理和演算を実行し、第3出力データZ2を出力する排他的論理和演算部902と、第1入力データY0と第2入力データY1との間でビットごとの排他的論理和演算を実行し、第2出力データZ1を出力する排他的論理和演算部903とを含む。
【0029】
逆鍵変換部90〜99の各々は、排他的論理和演算部901に接続され、排他的論理和演算部901の出力を受け、当該出力を上位ビット方向(左方向)に8ビットだけ巡回ビットシフトし、結果を出力するデータ回転部905と、データ回転部905に接続され、データ回転部905より演算結果を受け、当該演算結果に所定の置換処理を施し、結果を出力するデータ置換部906とをさらに含む。
【0030】
逆鍵変換部90〜99の各々は、データ置換部906に接続され、データ置換部906より置換結果を受け、当該置換結果と逆鍵変換部90〜99の各々であらかじめ定められた32ビットの定数Rconとの間でビットごとの排他的論理和演算を実行し、データTを出力する排他的論理和演算部907と、排他的論理和演算部907に接続され、排他的論理和演算部907よりデータTを受け、第1入力データY0とデータTとの間でビットごとの排他的論理和演算を実行し、第1出力データZ0を出力する排他的論理和演算部904と、排他的論理和演算部904〜901に接続され、第1〜第4出力データZ0〜Z3を連結して拡大鍵SKを出力するデータ連結部908とをさらに含む。各部で実行される処理の詳細については、以下に示す復号処理の説明中で行なう。
【0031】
以下、復号装置1400により実行されるRijndael暗号方式の復号処理について簡単に説明する。図18に示されるように、データ分割部800は、128ビットの暗号鍵EKを上位ビットから32ビットずつ4つのデータブロックに分割する。これら4つのデータブロックに基づいて、鍵変換部80〜89において鍵変換処理が順次実行される。上述したように、鍵変換部80〜89で実行される鍵変換処理は、図16に示す鍵変換部60〜69実行される鍵変換処理と同様である。ただし、鍵変換部80〜88でそれぞれ生成される拡大鍵SK1〜SK9は、その後の処理には利用されない。
【0032】
鍵変換部89は、生成された拡大鍵SKを拡大鍵SK10として最終逆データ変換部70に出力する。その後、逆鍵変換部90〜99は、拡大鍵SK9〜SK0をそれぞれ順次生成する。鍵変換部89および逆鍵変換部90〜99で実行される処理と並行して、最終逆データ変換部70、逆データ変換部71〜79および鍵加算部700は、拡大鍵SK10〜SK0にそれぞれ基づいて、所定の処理を実行する。鍵加算部700は最終的に復号文DTを生成し、出力する。
【0033】
次に、逆データ撹乱部7で実行される処理についてより詳細に説明する。逆データ撹乱部7で実行される処理は、図16に示す暗号化装置1300のデータ撹乱部5で実行される処理の逆変換に相当する。即ち、はじめに、最終逆データ変換部70が、拡大鍵SK10を用いて最終データ変換部59で実行される処理の逆変換処理を実行する。その後、逆データ変換部71〜79は、拡大鍵SK9〜SK1をそれぞれ用いて、データ変換部58〜50で実行される処理の逆変換処理をそれぞれ実行する。最後に、鍵加算部700は、拡大鍵SK0を用いて、鍵加算部500で実行される処理の逆変換処理を実行し、復号文DTを生成し、出力する。このように、復号時には、暗号化時とは逆の順序で拡大鍵を生成する必要がある。
【0034】
図19に示される逆鍵変換部90〜99の各々で実行される逆鍵変換処理について説明する。
排他的論理和演算部901〜903は、次式(7)〜(9)で表される演算をそれぞれ実行することにより、第2〜第4出力データZ1〜Z3をそれぞれ求める。
Figure 2004004603
【0035】
データ回転部905、データ置換部906および排他的論理和演算部907は、第4出力データZ3に対して次式(10)で表される演算を実行することにより、データTを計算する。
T=Rcon(+)Perm(ROTL8(Z3))    …(10)
【0036】
排他的論理和演算部904は、データTと第1入力データY0とのビットごとの排他的論理和である第1出力データZ0を次式(11)に従い求める。
Z0=T(+)Y0                   …(11)
【0037】
データ連結部908は、次式(12)に従い、第1〜第4出力データZ0〜Z3を結合し、128ビットの拡大鍵SKを生成する。
SK=Z0‖Z1‖Z2‖Z3              …(12)
【0038】
逆鍵変換部90〜99の各々は、上述の処理の結果得られる拡大鍵SKおよび第1〜第4出力データZ0〜Z3を出力する。
【0039】
図17に示されるように、本方式によれば、暗号化時に、データ置換部602が非線形処理を実行する。非線形処理されたデータの影響は、排他的論理和演算部604〜607を介して、拡大鍵SKおよびすべての出力データにおよぶ。このため、本方式は簡易な鍵変換処理でありながら、ランダム性の高い拡大鍵生成を実現することができる。
【0040】
(第2の従来例)
第2の従来例として米国標準暗号であるDES(Data Encryption Standard)がある。図20はDES方式による暗号化装置で用いられる鍵変換部10の構成を示す図である。鍵変換部10は、巡回シフト部101および102と、巡回シフト部101および102に接続されたデータ連結部103と、データ連結部103に接続されたデータ縮約部104とを含む。
【0041】
次に、鍵変換部10の動作について簡単に説明する。巡回シフト部101は、28ビットの第1入力データに対して所定ビット数の巡回ビットシフト処理を実行し第1巡回シフトデータを生成する。巡回シフト部102は、28ビットの第2入力データに対して所定ビット数の巡回ビットシフト処理を実行し第2巡回シフトデータを生成する。第1巡回シフトデータおよび第2巡回シフトデータは、それぞれ第1出力データおよび第2出力データとして鍵変換部10から出力される。一方、データ連結部103は、第1巡回シフトデータと第2巡回シフトデータとを連結して56ビットデータとし、当該データをデータ縮約部104に出力する。データ縮約部104は、入力されたデータからあらかじめ定められたビット位置の48ビット分のデータを抽出し、拡大鍵を出力する。
【0042】
DES方式による暗号化装置によれば、拡大鍵の生成は、基本的にデータシフト処理およびデータ抽出処理により実現されているため、暗号化時と復号時とで、拡大鍵を生成する際に、同じ拡大鍵生成処理を適用可能である。このため、第1の従来例のように、暗号化時と復号時とで、拡大鍵の生成に必要な処理量が異なるということがない。
【0043】
しかしながら、これらの従来例では、以下のような問題点がある。第1の従来例の暗号方式においては、暗号化時と比べて、復号時の拡大鍵生成処理に時間がかかるという問題がある。その理由について以下に説明する。図16に示されるように、暗号化装置1300のデータ撹乱部5において、最初に処理を実行する鍵加算部500には、暗号鍵EKがそのまま使用される。このため、データ撹乱部5と拡大鍵生成部6は、並行してそれぞれの処理を実行することが可能である。
【0044】
一方、図18に示されるように、復号装置1400の逆データ撹乱部7において、最初に処理を実行する最終逆データ変換部70は、拡大鍵逆生成部8より供給される拡大鍵SK10を使用しなければならない。拡大鍵SK10を求めるためには、鍵変換部80〜89において鍵変換処理を実行する必要がある。すなわち、最終逆データ変換部70は、10回の鍵変換処理が実行された後でなければ処理を開始することができない。このため、復号処理は、これらの鍵変換処理の待ち時間だけ、暗号化処理と比べて時間がかかることになる。
【0045】
このように、暗号化処理と復号処理との間で処理時間の極端に処理時間の差が生じる場合には、次のような問題が生じる。例えば、送信機と受信機との間でリアルタイムにデータをやり取りするような通信システムについて考える。このような通信システムに第1の従来例で説明した暗号化装置1300および復号装置1400を用いた場合には、送信機がリアルタイムでデータを暗号化して送信できたとしても、受信機は復号に時間がかかるためリアルタイムで暗号文を復号することができない。このため、受信機には受信した暗号化データを一時的に蓄積するためのバッファが必要となり、受信機のコストアップにつながってしまうという問題がある。
【0046】
また、図21のように、高速道路の料金所に取り付けられるETC(Electronic Toll Collection)システム1800では、自動車1801に取り付けられた車載器1802と料金所アンテナ1804との間でのデータ通信を行ない、相互認証を行なう。自動車1801は、通常、ETCシステム1800のゲートを停止することなく通過するため、ETCシステム1800では、高速の応答速度が要求される。このため、ETCシステム1800に従来の暗号化装置1300および復号装置1400を用いる場合には、高速なハードウェアが必要になるという問題がある。
【0047】
一方、第2の従来例では、第1の従来例のような「復号時の拡大鍵生成に要する時間が暗号化時に比べて大きい」という問題は解消される。しかし、拡大鍵のランダム性が不十分であるという問題がある。
【0048】
第2の従来例では、巡回ビットシフトされたデータを連結したものから所定位置のビットを抜き出したデータを拡大鍵としている。即ち、拡大鍵を生成する処理に、データ融合処理や置換処理などが使用されていないため、拡大鍵に十分なランダム性がない。これにより、第2の従来例の拡大鍵生成処理では、弱鍵と呼ばれる安全性の低い鍵が存在するという問題がある(DES方式による弱鍵については、たとえば、非特許文献1参照。)。
【0049】
【非特許文献1】
Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone, ”Handbook of Applied Cryptography”, CRC Press, 1997, pp.256−pp.259
【0050】
そこで、本発明は、このような状況に鑑みてなされたものであり、暗号化時と復号時とで処理時間の差を少なくすることができる暗号化システムを提供することを目的とする。
【0051】
また、ランダム性が高く、安全性の高い拡大鍵を生成可能な暗号化システムを提供することも目的とする。
【0052】
【課題を解決するための手段】
上記目的を達成するために、本発明に係る拡大鍵生成装置は、暗号鍵データを入力とし、複数の拡大鍵データを出力する拡大鍵生成装置であって、前記暗号鍵データを複数の部分鍵データに分割するデータ分割手段と、前記複数の部分鍵データを入力とし、前記複数の拡大鍵データを出力する一列に接続された複数の鍵変換手段とを備え、前記複数の鍵変換手段の各々は、前記複数の部分鍵データまたは前段の鍵変換手段からの複数の出力データを複数の入力データとして受け、前記複数の入力データの各々について、各ビットの値が相互に干渉しない固定的な変換処理を実行し、後段の鍵変換手段への複数の出力データを算出する出力算出部と、前記複数の入力データを融合して、前記拡大鍵データを算出する拡大鍵算出部とを有することを特徴とする。
【0053】
このように、出力算出部と拡大鍵算出部とを分離可能とし、出力算出部での処理が入力データに対し各ビットの値が相互に干渉しない固定的な変換処理とすることにより、所定段数の出力算出部の処理と等価な処理部を生成することができる。従って、復号時には、一端、上記した等価な処理部でデータを生成した後、鍵変換手段で実行される処理の逆変換処理を順次実行することにより、暗号文データの復号に利用される拡大鍵データを順次生成することが可能となる。よって、復号時には所定段数の出力算出部の処理を実行する必要がなくなり、暗号化時と復号時とで処理時間の差を少なくすることができる。
【0054】
また、拡大鍵算出部は、複数の部分データを融合して拡大鍵データを算出していることより、ランダム性が高く、安全性の高い拡大鍵を提供することができる。
【0055】
例えば、前記出力算出部は、前記複数の入力データのうちの少なくとも1つに対し、所定のビット数だけ巡回シフト操作を実行し、前記所定のビット数は、前記巡回シフト操作が施される前記入力データのビット数の約数ではない。
【0056】
このように巡回シフト操作のビット数を巡回シフト操作が施される入力データの約数ではなくすることにより、入力データに複数回の巡回シフト操作を施したとしても、元の入力データと同一の入力データは生成されにくくなる。このため、ランダム性が高く、安全性の高い拡大鍵を提供することができる。
【0057】
また、前記拡大鍵算出部は、前記複数の入力データの融合における途中過程および前記複数の入力データのうちの少なくとも1つのデータに対し、所定の置換テーブルに基づいた置換処理を実行する。
【0058】
置換処理のような非線形な処理を挿入することにより、ランダム性が高く、安全性の高い拡大鍵を提供することができる。
本発明は、このような拡大鍵生成装置として実現することができるだけでなく、このような拡大鍵生成装置を備える暗号化装置として実現したり、このような拡大鍵生成装置を用いて暗号化された暗号文データを復号する復号装置として実現することもできる。また、暗号化装置と復号装置とからなる暗号化システムとして実現することもできるし、拡大鍵生成方法や、コンピュータを拡大鍵生成装置として機能させるためのプログラムとしても実現することができる。このようなプログラムは、CD−ROM(Compact Disk−Read Only Memory)などの記録媒体やインターネット等の伝送媒体を介して広く流通させることができるのは言うまでもない。
【0059】
【発明の実施の形態】
以下、本発明に係る暗号化システムの実施の形態について図面を用いて詳細に説明する。暗号化システムは、後述する暗号化装置と復号装置とから構成される。
【0060】
図1は、本発明の実施の形態に係る暗号化装置の構成の一例を示すブロック図である。
データ暗号化装置1100は、128ビットの暗号鍵EKを元に、各64ビットの8個の拡大鍵SK0〜SK7を生成する拡大鍵生成部2と、拡大鍵生成部2に接続され、拡大鍵生成部2より拡大鍵SK0〜SK7を受け、拡大鍵SK0〜SK7を用いて平文PTに対して所定のデータ変換処理を繰り返し実行することによりデータ撹乱を行ない、64ビットの暗号文CTを生成するデータ撹乱部1とを含む。
【0061】
データ撹乱部1は、8個のデータ変換部11〜18を縦列に連結したものから構成される。拡大鍵生成部2は、データ分割部20と、7個の鍵変換部21〜27と、1個の最終鍵変換部28とを縦列に連結したものから構成される。
【0062】
図2は、データ変換部11〜18の内部構成を示すブロック図である。データ変換部11〜18の各々は、鍵変換部21〜27および最終鍵変換部28のいずれかに接続され、そのいずれかより拡大鍵SK(SK0〜SK7のいずれか)を受け、拡大鍵SKと入力データXとの間でビットごとの排他的論理和演算を実行し、データAを出力する排他的論理和演算部111と、排他的論理和演算部111に接続され、排他的論理和演算部111よりデータAを受け、データAを4つのデータブロックB0〜B3に分割するデータ分割部112とを含む。
【0063】
データ変換部11〜18の各々は、データ分割部112に接続され、データ分割部112よりデータブロックB0〜B3を受け、データブロックB0〜B3を後述する方法によりデータブロックC0〜C3にそれぞれ置換するデータ置換部113〜116と、データ置換部113〜116に接続され、データ置換部113〜116よりデータブロックC0〜C3を受け、データブロックC0〜C3を後述する方法により連結し、データYを出力するデータ連結部117とをさらに含む。
【0064】
図3は、鍵変換部21〜27の内部構成を示すブロック図である。鍵変換部21〜27の各々は、データ分割部20または前段の鍵変換部より各32ビットの第1〜第4入力データX0〜X3を受け、第1〜第4入力データX0〜X3より64ビットの拡大鍵SKを算出する拡大鍵算出部210と、第1〜第4入力データX0〜X3より次段の鍵変換部または最終鍵変換部28への入力となる第1〜第4出力データY0〜Y3を算出する出力算出部230とを含む。
【0065】
拡大鍵算出部210は、第2入力データX1と第4入力データX3との間でビットごとの排他的論理和演算を実行し、32ビットのデータAを算出する排他的論理和演算部211と、排他的論理和演算部211に接続され、排他的論理和演算部211よりデータAを受け、データAを後述する方法によりデータBに置換するデータ置換部212と、データ置換部212に接続され、データ置換部212よりデータBを受け、データBと第3入力データX2との間でビットごとの排他的論理和演算を実行し、データCを算出する排他的論理和演算部213とを含む。
【0066】
拡大鍵算出部210は、排他的論理和演算部213に接続され、排他的論理和演算部213よりデータCを受け、データCと第2入力データX1との間でビットごとの排他的論理和演算を実行し、データDを算出する排他的論理和演算部214と、排他的論理和演算部214に接続され、排他的論理和演算部214よりデータDを受け、データDと第1入力データX0との間でビットごとの排他的論理和演算を実行し、データEを算出する排他的論理和演算部215と、排他的論理和演算部213および215に接続され、排他的論理和演算部213および215よりデータCおよびデータEをそれぞれ受け、データCおよびデータEを連結して64ビットの拡大鍵SKとして出力するデータ連結部216とをさらに含む。
【0067】
出力算出部230は、第1入力データX0を下位ビット方向(右方向)に1ビットだけ巡回ビットシフトし、第4出力データY3として出力するデータ回転部217と、第2入力データX1を下位ビット方向(右方向)に5ビットだけ巡回ビットシフトし、第1出力データY0として出力するデータ回転部218と、第3入力データX2を下位ビット方向(右方向)に9ビットだけ巡回ビットシフトし、第2出力データY1として出力するデータ回転部219と、第4入力データX3を下位ビット方向(右方向)に13ビットだけ巡回ビットシフトし、第3出力データY2として出力するデータ回転部220とを含む。
【0068】
図4は、最終鍵変換部28の内部構成を示すブロック図である。最終鍵変換部28は、図3に示される鍵変換部の構成から出力算出部230を取り除いた構成になっている。最終鍵変換部28は、拡大鍵算出部280を含む。
【0069】
拡大鍵算出部280は、排他的論理和演算部281と、排他的論理和演算部281に接続されたデータ置換部282と、データ置換部282に接続された排他的論理和演算部283と、排他的論理和演算部283に接続された排他的論理和演算部284と、排他的論理和演算部284に接続された排他的論理和演算部285と、排他的論理和演算部283および285に接続されたデータ連結部286とを含む。
【0070】
排他的論理和演算部281,283〜285、データ置換部282およびデータ連結部286の構成は、図3に示される拡大鍵算出部210の排他的論理和演算部211,213〜215、データ置換部212およびデータ連結部216の構成とそれぞれ同様である。このため、その詳細な説明はここでは繰返さない。
【0071】
以下、図1〜図5を用いて、暗号化装置1100の動作について説明する。
図1に示される暗号化装置1100の全体的な処理の流れについて説明する。拡大鍵生成部2内部のデータ分割部20は、128ビットの暗号鍵EKを上位から32ビットずつの4つのデータブロックに分割し、鍵変換部21に出力する。鍵変換部21は、入力された4つのブロックに対して後述する鍵変換処理を実行し、64ビットの拡大鍵SK0及び4つの32ビットのデータブロックを算出する。鍵変換部21は、拡大鍵SK0をデータ変換部11に出力し、算出された4つのデータブロックを次段の鍵変換部22に出力する。
【0072】
データ変換部11は、入力された拡大鍵SK0を元に、64ビットの平文PTに対して後述するデータ変換処理を施し、64ビットのデータを算出する。データ変換部11は、算出されたデータを次段のデータ変換部12に出力する。
【0073】
鍵変換部22は、前段の鍵変換部21から入力された4つの32ビットのデータブロックに対して鍵変換部21と同様の鍵変換処理を実行し、拡大鍵SK1および4つの32ビットのデータブロックを算出する。鍵変換部22は、拡大鍵SK1をデータ変換部12に出力し、算出された4つのデータブロックを次段の鍵変換部23に出力する。
【0074】
データ変換部12は、入力された拡大鍵SK1を元に、前段のデータ変換部11から入力されたデータに対してデータ変換部11と同様のデータ変換処理を実行し、64ビットのデータを算出する。データ変換部12は、算出されたデータを次段のデータ変換部13へ出力する。
【0075】
以下、同様の処理が鍵変換部23〜27およびデータ変換部13〜17において実行される。最終鍵変換部28は、鍵変換部27より入力された4つのデータブロックに対して後述する最終鍵変換処理を施し、拡大鍵SK7を求め、データ変換部18に出力する。
【0076】
データ変換部18は、拡大鍵SK7を元にデータ変換部17からの入力データに対してデータ変換部11と同様のデータ変換処理を実行し、64ビットの暗号文CTを算出し、出力する。
【0077】
図2に示されるデータ変換部11〜18の各々で実行されるデータ変換処理について説明する。データ変換部11〜18の各々は、64ビットの入力データXに対して64ビットの拡大鍵SKに基づくデータ変換処理を施して、64ビットの出力データYを出力する。入力データXは、平文PTまたは前段のデータ変換部より出力されるデータのいずれかである。拡大鍵SKは、鍵変換部21〜28よりそれぞれ出力されるSK0〜SK7のいずれかである。
【0078】
排他的論理和演算部111は、次式(13)で示される入力データXと拡大鍵SKとのビットごとの排他的論理和演算を実行し、64ビットのデータAを求める。
A=X(+)SK                    …(13)
【0079】
データ分割部112は、排他的論理和演算部111よりデータAを受け、データAを4つの上位ビットから16ビットずつ4つのデータブロックB0,B1,B2およびB3に分割する。即ち、データAとデータブロックB0〜B3との間には、次式(14)に示される関係が成立する。
A=B0‖B1‖B2‖B3               …(14)
【0080】
データ分割部112は、4つのデータブロックB0〜B3をデータ置換部113〜116にそれぞれ出力する。
【0081】
データ置換部113は、データ分割部112より入力された16ビットデータB0を元に、次式(15)に従い16ビットのデータC0を求める。
C0=Sbox[B0h]‖Sbox[B0l]      …(15)
【0082】
ここで、Sboxは置換テーブルを表している。置換テーブルSboxは、図5に示すような256個の要素を有する配列から構成され、各要素は8ビットのデータからなる。B0hはデータB0の上位8ビット、B0lはデータB0の下位8ビットのデータを表す。
【0083】
すなわち、Sbox[B0h]は、置換テーブルSboxのB0h番目の要素を表しており、Sbox[B0l]は、置換テーブルSboxのB0l番目の要素を表している。データC0は、これら2つの要素を連結して作成されたデータである。
【0084】
ここで用いられる置換テーブルSboxは、「盛合志帆,青木和麻呂,神田雅透,高嶋洋一,松本勉著『既知のブロック暗号攻撃に対する安全性を考慮したS−boxの構成法』(電子情報通信学会技術研究報告,ISEC98−13)」(訳語:Shiho Moriai, Kazumaro Aoki, Masayuki Kanda, Youichi Takashima, Kazuo Ohta ``S−box design considering the security against known attackson block ciphers’’, Technical Report of IEICE, Vol.98 No.48, ISEC98−13,(in Japanese), (July, 1998).)に記載されたものを用いる。ただし、置換テーブルSboxは、これ以外のものであってもよく、これに限定されるものではない。
【0085】
データ置換部114〜116は、データ分割部112よりデータブロックB1〜B3をそれぞれ受け、データブロックC1〜C3をそれぞれ求め、出力する。データ置換部114〜116の各々で実行される処理は、データ置換部113で実行される処理と同様であるため、その詳細な説明はここでは繰返さない。
【0086】
データ連結部117は、データ置換部113〜116よりデータブロックC0〜C3をそれぞれ受け、次式(16)に従い、データブロックC0〜C3を連結し、64ビットのデータYを求め、出力する。
Y=C0‖C1‖C2‖C3               …(16)
【0087】
図3に示される鍵変換部21〜27の各々で実行される鍵変換処理について説明する。鍵変換部21〜27の各々は、第1〜第4入力データX0〜X3に対して、後述する拡大鍵算出処理と出力算出処理とを実行し、拡大鍵SKと第1〜第4出力データY0〜Y3とを算出し、出力する。第1〜第4入力データX0〜X3は、データ分割部20または前段の鍵変換部より出力される4つの32ビットのデータブロックである。拡大鍵SKは、データ変換部11〜17にそれぞれ入力されるSK0〜SK6のいずれかである。
【0088】
拡大鍵算出部210において実行される拡大鍵算出処理に説明する。
排他的論理和演算部211は、次式(17)に従い、第2入力データX1と第4入力データX3との間でビットごとの排他的論理和演算を実行し、32ビットのデータAを求める。
A=X1(+)X3                   …(17)
【0089】
データ置換部212は、排他的論理和演算部211よりデータAを受け、データ変換部11〜18で用いた置換テーブルと同一の置換テーブルSboxを用いて、次式(18)で示される32ビットデータBを求める。
Figure 2004004603
【0090】
但し、データAを上位から8ビットずつに分割したデータの値をそれぞれA0,A1,A2,A3とする。
【0091】
排他的論理和演算部213は、データ置換部212よりデータBを受け、次式(19)に従い、データBと第3入力データX2との間でビットごとの排他的論理和演算を実行し、32ビットのデータCを求める。
C=B(+)X2                    …(19)
【0092】
排他的論理和演算部214は、排他的論理和演算部213よりデータCを受け、次式(20)に従い、データCと第2入力データX1との間でビットごとの排他的論理和演算を実行し、32ビットのデータDを求める。
D=C(+)X1                    …(20)
【0093】
排他的論理和演算部215は、排他的論理和演算部214よりデータDを受け、次式(21)に従い、データDと第1入力データX0との間でビットごとの排他的論理和演算を実行し、32ビットのデータEを求める。
E=D(+)X0                    …(21)
【0094】
データ連結部216は、排他的論理和演算部213および215よりデータCおよびEをそれぞれ受け、次式(22)に従い、データCおよびEを連結し、64ビットの拡大鍵SKとして出力する。
SK=C‖E                      …(22)
【0095】
次に、出力算出部230において第1〜第4出力データY0〜Y3を算出する処理(出力算出処理)について説明する。
【0096】
データ回転部217〜220は、次式(23)〜(26)にそれぞれ従い、第4出力データY3、第1出力データY0、第2出力データY1および第3出力データY2をそれぞれ算出する。
Figure 2004004603
【0097】
ここで、ROTR1(X)、ROTR5(X)、ROTR9(X)およびROTR13(X)は、データXを下位ビット方向(右方向)にそれぞれ1ビット、5ビット、9ビットおよび13ビットずつ巡回ビットシフトした結果を表す。
【0098】
図4に示される最終鍵変換部28で実行される最終鍵変換処理について説明する。最終鍵変換部28の拡大鍵算出部280は、図3に示される拡大鍵算出部210と同様の動作をして拡大鍵SK7を算出する。このため、その詳細な説明はここでは繰返さない。
【0099】
図6は、本発明の実施の形態に係る復号装置の構成の一例を示すブロック図である。
データ復号装置1200は、128ビットの暗号鍵EKを元に、暗号化時とは逆の順番で、各64ビットの8個の拡大鍵SK7〜SK0を生成する拡大鍵逆生成部4と、拡大鍵逆生成部4に接続され、拡大鍵逆生成部4より拡大鍵SK7〜SK0を受け、拡大鍵SK7〜SK0を用いて暗号文CTに対して後述する逆データ変換処理を繰り返し実行することにより復号文DTを生成する逆データ撹乱部3とを含む。
【0100】
逆データ撹乱部3は、8個の逆データ変換部31〜38を縦列に連結したものから構成される。拡大鍵逆生成部4は、鍵補正部40と7個の逆鍵変換部41〜47と1個の最終鍵変換部48とを縦列に連結したものから構成される。
【0101】
図7は、逆データ変換部31〜38の内部構成を示すブロック図である。逆データ変換部31〜38の各々は、64ビットの入力データY(暗号文CTまたは前段の逆データ変換部の出力データ)を受け、データYを4つのデータブロックA0〜A3に分割するデータ分割部311と、データ分割部311に接続され、データ分割部311よりデータブロックA0〜A3を受け、データブロックA0〜A3を後述する方法によりデータブロックB0〜B3にそれぞれ置換する逆データ置換部312〜315とを含む。
【0102】
逆データ変換部31〜38の各々は、逆データ置換部312〜315に接続され、逆データ置換部312〜315よりデータブロックB0〜B3を受け、データブロックB0〜B3を連結して出力するデータ連結部316と、データ連結部316に接続され、データ連結部316より出力される連結結果を受け、当該連結結果と拡大鍵SKとの間でビットごとの排他的論理和演算を実行し、データZを出力する排他的論理和演算部317とをさらに含む。
【0103】
図8は、鍵補正部40の内部構成を示すブロック図である。鍵補正部40は、各32ビットの第1〜第4入力データI0〜I3を受け、後述する処理を実行し、第1〜第4出力データJ0〜J3を算出する。鍵補正部40は、第1入力データI0を下位ビット方向(右方向)に51ビットだけ巡回ビットシフトし、第2出力データJ1として出力するデータ回転部401と、第2入力データI1を下位ビット方向(右方向)に47ビットだけ巡回ビットシフトし、第3出力データJ2として出力するデータ回転部402と、第3入力データI2を下位ビット方向(右方向)に43ビットだけ巡回ビットシフトし、第4出力データJ3として出力するデータ回転部403と、第4入力データI3を下位ビット方向(右方向)に55ビットだけ巡回ビットシフトし、第1出力データJ0として出力するデータ回転部404とを含む。
【0104】
図9は、逆鍵変換部41〜47の内部構成を示すブロック図である。逆鍵変換部41〜47の各々は、鍵補正部40または前段の逆鍵変換部より各32ビットの第1〜第4入力データY0〜Y3を受け、第1〜第4入力データY0〜Y3より64ビットの拡大鍵SKを算出する拡大鍵算出部410と、第1〜第4入力データY0〜Y3より次段の逆鍵変換部または最終鍵変換部48への入力となる第1〜第4出力データZ0〜Z3を算出する出力逆算出部430とを含む。
【0105】
拡大鍵算出部410は、第2入力データY1と第4入力データY3との間でビットごとの排他的論理和演算を実行し、32ビットのデータAを算出する排他的論理和演算部411と、排他的論理和演算部411に接続され、排他的論理和演算部411よりデータAを受け、データAを後述する方法によりデータBに置換するデータ置換部412と、データ置換部412に接続され、データ置換部412よりデータBを受け、データBと第3入力データY2との間でビットごとの排他的論理和演算を実行し、データCを算出する排他的論理和演算部413とを含む。
【0106】
拡大鍵算出部410は、排他的論理和演算部413に接続され、排他的論理和演算部413よりデータCを受け、データCと第2入力データY1との間でビットごとの排他的論理和演算を実行し、データDを算出する排他的論理和演算部414と、排他的論理和演算部414に接続され、排他的論理和演算部414よりデータDを受け、データDと第1入力データY0との間でビットごとの排他的論理和演算を実行し、データEを算出する排他的論理和演算部415と、排他的論理和演算部413および415に接続され、排他的論理和演算部413および415よりデータCおよびデータEをそれぞれ受け、データCおよびデータEを連結して64ビットの拡大鍵SKとして出力するデータ連結部416とをさらに含む。
【0107】
出力逆算出部430は、第1入力データY0を上位ビット方向(左方向)に5ビットだけ巡回ビットシフトし、第2出力データZ1として出力するデータ回転部417と、第2入力データY1を上位ビット方向(左方向)に9ビットだけ巡回ビットシフトし、第3出力データZ2として出力するデータ回転部418と、第3入力データY2を上位ビット方向(左方向)に13ビットだけ巡回ビットシフトし、第4出力データZ3として出力するデータ回転部419と、第4入力データY3を上位ビット方向(左方向)に1ビットだけ巡回ビットシフトし、第1出力データZ0として出力するデータ回転部420とを含む。
【0108】
図6に示す最終鍵変換部48は、図4に示される最終鍵変換部28と同様の構成を有する。このため、その詳細な説明はここでは繰返さない。
以下、図6〜図12を用いて、復号装置1200の動作について説明する。
【0109】
図6に示される復号装置1200の全体的な処理の流れについて説明する。
拡大鍵逆生成部4内部の鍵補正部40は、128ビットの暗号鍵EKを内部で4つの32ビットのデータブロックに分割した後、後述する鍵補正処理を実行し、4つの32ビットのデータブロックを算出する。鍵補正部40は、算出された4つのデータブロックを逆鍵変換部41に出力する。
【0110】
逆鍵変換部41は、入力された4つのデータブロックを元に後述する逆鍵変換処理を実行し、64ビットの拡大鍵SK7と、4つの32ビットのデータブロックとを算出する。逆鍵変換部41は、拡大鍵SK7を逆データ変換部31に出力し、4つのデータブロックを次段の逆鍵変換部42に出力する。
【0111】
逆データ変換部31は、入力された拡大鍵SK7を元に64ビットの暗号文CTに対して後述する逆データ変換処理を実行し、64ビットのデータを算出して次段の逆データ変換部32に出力する。
【0112】
逆鍵変換部42は、前段の逆鍵変換部41から入力された4つのデータブロックを元に、逆鍵変換部41と同様の処理を実行して拡大鍵SK6と、4つのデータブロックとを算出する。逆鍵変換部42は、拡大鍵SK6を逆データ変換部32に出力し、算出された4つのデータブロックを逆鍵変換部43に出力する。
【0113】
逆データ変換部32は、拡大鍵SK6を元に前段の逆データ変換部31から入力されたデータに対して、逆データ変換部31と同様の逆データ変換処理を施し、64ビットのデータを算出し、次段の逆データ変換部33に出力する。
【0114】
以下、同様の操作が逆鍵変換部43〜47および逆データ変換部33〜37において実行される。最終鍵変換部48は、逆鍵変換部47より入力された4つのデータブロックに対して、図4に示される最終鍵変換部28で用いた最終鍵変換処理と同様の処理を施し、拡大鍵SK0を求め、逆データ変換部38に出力する。
【0115】
逆データ変換部38は、拡大鍵SK0を元に逆データ変換部37からの入力データに対して逆データ変換部31と同様の逆データ変換処理を施し、64ビットの復号文DTを算出し、出力する。
【0116】
図7に示される逆データ変換部31〜38の各々で実行される逆データ変換処理について説明する。
データ分割部311は、64ビットのデータY(暗号文CTまたは前段の逆データ変換部より出力されるデータZ)を上位から16ビットずつ4つのデータブロックA0,A1,A2,A3に分割する。即ち、データYとデータブロックA0〜A3との間には、次式(27)に示される関係が成立する。
Y=A0‖A1‖A2‖A3                …(27)
【0117】
データ分割部311は、データブロックA0〜A3を逆データ置換部312〜315にそれぞれ出力する。
【0118】
逆データ置換部312は、データ分割部311より入力された16ビットデータA0を元に、次式(28)に従い16ビットのデータブロックB0を求める。
Figure 2004004603
【0119】
ここで、InvSboxは上述した置換テーブルSboxの逆置換を実行する逆置換テーブルを表している。逆置換テーブルは、図10に示すような256個の要素を有する配列から構成され、各要素は8ビットのデータからなる。A0hはデータブロックA0の上位8ビット、A0lはデータブロックA0の下位8ビットのデータを表す。
【0120】
すなわち、InvSbox[A0h]は、逆置換テーブルInvSboxのA0h番目の要素を表しており、InvSbox[A0l]は、逆置換テーブルInvSboxのA0l番目の要素を表している。データブロックB0は、これら2つの要素を連結して作成されたデータである。
【0121】
ここで用いられる逆置換テーブルInvSboxは、暗号化時に、図2に示すデータ置換部113〜116で用いられる置換テーブルSboxを元にして作成されたものである。
【0122】
すなわち、置換テーブルSboxと逆置換テーブルInvSboxとの間には次式(29)に示される関係が成立する。
Figure 2004004603
【0123】
図11は、置換テーブルSboxと逆置換テーブルInvSboxとの関係を説明するための具体例を示す図である。例えば、Sbox[79]の値が2進数表現で「00110100」であったとする。「00110100」を10進数表現すると「52」になる。また、10進数「79」を2進数表現すると「01001111」となる。したがって、InvSbox[52]の値は2進数表現で「01001111」となる。
【0124】
逆データ置換部313〜315は、データ分割部311よりデータブロックA1〜A3をそれぞれ受け、データブロックB1〜B3をそれぞれ求め、出力する。逆データ置換部313〜315の各々で実行される処理は、逆データ置換部312で実行される処理と同様であるため、その詳細な説明はここでは繰返さない。
【0125】
データ連結部316は、逆データ置換部312〜315よりデータブロックB0〜B3を受け、次式(30)に従い、データブロックB0〜B3を連結し、64ビットのデータZを求め、出力する。
Z=B0‖B1‖B2‖B3               …(30)
【0126】
図8に示される鍵補正部40で実行される鍵補正処理について説明する。鍵補正部40は、128ビットの暗号鍵EKを入力として処理を実行するが、暗号鍵EKの上位ビットから32ビットずつを第1〜第4入力データI0〜I3とする。
【0127】
データ回転部401〜404は、次式(31)〜(34)にそれぞれ従い、第2出力データJ1、第3出力データJ2、第4出力データJ3および第1出力データJ0をそれぞれ算出する。
Figure 2004004603
【0128】
ここで、ROTR51(I),ROTR47(I),ROTR43(I),ROTR55(I)は、データIを下位ビット方向(右方向)にそれぞれ51ビット,47ビット,43ビットおよび55ビットずつ巡回ビットシフトした結果を表す。
【0129】
最終的に、鍵補正部40は、第1〜第4出力データJ0〜J3を出力する。
次に、鍵補正部40のデータ回転部401におけるシフト量の意味について説明する。鍵変換部21に入力された第1〜第4入力データX0〜X3は、図3の出力算出部230においてデータ回転処理され、表1に示されるように第1〜第4出力データY0〜Y3としてROTR5(X1)、ROTR9(X2)、ROTR13(X3)およびROTR1(X0)がそれぞれ得られる。
【0130】
鍵変換部21で得られた第1〜第4出力データY0〜Y3を、鍵変換部22の第1〜第4入力データX0〜X3とすると、同様のデータ回転処理が行なわれ、表1に示されるように、鍵変換部22の第1〜第4出力データY0〜Y3としてROTR14(X2)、ROTR22(X3)、ROTR14(X0)およびROTR6(X1)がそれぞれ得られる。
【0131】
同様の処理を鍵変換部23〜27についても実行すると、表1に示されるような結果が得られる。したがって、鍵補正部40を図8に示すような構成にすることにより、鍵変換部21〜27までの処理を実行したのと等価な結果が得られる。
【0132】
【表1】
Figure 2004004603
【0133】
なお、図8は、鍵変換部が7段の場合の鍵補正部40の例を示したが、鍵変換部の段数に関わらず、鍵補正部を作成することは可能である。たとえば、鍵変換部が6段の場合には、鍵補正部40の代わりに、図12に示すような鍵補正部160を用いることができる。鍵補正部160は、表1を元にして作られたものである。なお、鍵補正部160のデータ回転部1601〜1604は、入力データを下位ビット方向(右方向)にそれぞれ42ビット、34ビット、42ビットおよび50ビットずつ巡回ビットシフトする処理を実行する。しかし、32ビットの巡回ビットシフトは0ビットの巡回ビットシフト(すなわち、何も処理をしないこと)と等価である。このため、データ回転部1601〜1604における巡回ビットシフト数をそれぞれ10ビット、2ビット、10ビットおよび18ビットとし、巡回ビットシフト数を削減することも可能である。
【0134】
また、図8に示される鍵補正部40のデータ回転部401〜404における巡回ビットシフト数も同様に、それぞれ19ビット、15ビット、11ビットおよび23ビットとそれぞれ削減することも可能である。
【0135】
図9に示される逆鍵変換部41〜47で実行される逆鍵変換処理について説明する。逆鍵変換部41〜47の各々は、第1〜第4入力データY0〜Y3に対して、後述する拡大鍵算出処理とデータ変換処理とを実行し、拡大鍵SKと第1〜第4出力データZ0〜Z3とを算出し、出力する。第1〜第4入力データY0〜Y3は、鍵補正部40または前段の逆鍵変換部より出力される4つの32ビットのデータブロックである。拡大鍵SKは、逆データ変換部31〜37にそれぞれ入力されるSK7〜SK1のいずれかである。
【0136】
拡大鍵算出部410で実行される拡大鍵算出処理について説明する。
排他的論理和演算部411は、次式(35)に従い、第2入力データY1と第4入力データY3との間でビットごとの排他的論理和演算を実行し、32ビットのデータAを求める。
A=Y1(+)Y3                   …(35)
【0137】
データ置換部412は、排他的論理和演算部411よりデータAを受け、暗号化時にデータ変換部11〜18で用いた置換テーブルと同一の置換テーブルSboxを用いて、次式(36)で示される関係を有する32ビットデータBを求める。
B=Sbox[A0]‖Sbox[A1]‖Sbox[A2]‖Sbox[A3]                           …(36)
【0138】
但し、データAを上位から8ビットずつに分割したデータをそれぞれA0,A1,A2,A3とする。
【0139】
排他的論理和演算部413は、データ置換部412よりデータBを受け、次式(37)に従い、データBと第3入力データY2との間でビットごとの排他的論理和演算を実行し、32ビットデータCを求める。
C=B(+)Y2                    …(37)
【0140】
排他的論理和演算部414は、排他的論理和演算部413よりデータCを受け、次式(38)に従い、データCと第2入力データY1との間でビットごとの排他的論理和演算を実行し、32ビットデータDを求める。
D=C(+)Y1                    …(38)
【0141】
排他的論理和演算部415は、排他的論理和演算部414よりデータDを受け、次式(39)に従い、データDと第1入力データY0との間でビットごとの排他的論理和演算を実行し、32ビットデータEを求める。
E=D(+)Y0                     …(39)
【0142】
データ連結部416は、排他的論理和演算部413および415よりデータCおよびEをそれぞれ受け、次式(40)に従い、データCおよびEを連結し、64ビットの拡大鍵SKとして出力する。
SK=C‖E                       …(40)
【0143】
次に、出力逆算出部430において第1〜第4出力データZ0〜Z3を算出する処理(データ変換処理)について説明する。
【0144】
データ回転部417〜420は、次式(41)〜(44)にそれぞれ従い、第2出力データZ1、第3出力データZ2、第4出力データZ3および第1出力データZ0をそれぞれ算出する。
Figure 2004004603
【0145】
ここで、ROTL5(Y),ROTL9(Y),ROTL13(Y),ROTL1(Y)は、データYを上位ビット方向(左方向)にそれぞれ5ビット、9ビット、13ビットおよび1ビットずつ巡回ビットシフトした結果を表す。
【0146】
以下、上述した本実施の形態における暗号化システムの効果について、従来の技術と対比しながら説明する。
図17に示されるように、第1の従来例では、復号装置1400において、最終逆データ変換部70で用いられる拡大鍵SK10を求めるために、9回分の鍵変換部の処理をオーバーヘッドとして実行する必要があった。これによって、第1の従来例の復号処理は暗号化処理と比べて大幅に処理時間がかかるという問題点がある。
【0147】
しかし、図6に示されるように、本実施の形態に係る復号装置1200においては、上記オーバーヘッドに相当する処理は、鍵補正部40における処理だけである。これは、図3に示す鍵変換部の出力算出部230における処理を7回繰り返し実行することに相当するが、データ回転処理の場合、rビット(rは整数)のデータ回転処理を7回繰り返す処理は、(7×r)ビットのデータ回転処理を1回行うことと等価である。これにより、出力算出部230の処理を7回繰り返すことは、鍵補正部40に示すように、データ回転処理を4回実行することと等価である。このとき、両者のオーバーヘッドの処理量を比較すると以下のようになる。
【0148】
第1の従来例では、1回の鍵変換部の処理に、5回の排他的論理和演算と、1回の置換処理と、1回のデータ回転処理とが必要である。このため、これを9回行なうと、45回の排他的論理和演算と、9回の置換処理と、9回のデータ回転処理とがオーバーヘッドとして必要である。一方、本実施の形態に係る復号装置1200においては、オーバーヘッドとして必要な処理は、4回のデータ回転処理のみである。
【0149】
即ち、第1の従来例と比べて本発明の方が上記オーバーヘッドははるかに少ないことがわかる。これは、図3に示される鍵変換部において、拡大鍵を算出する拡大鍵算出部210と、次段の鍵変換部への入力となる出力算出部230とを分離し、出力算出部230をデータ回転処理のみにより構成したことによる。
【0150】
また、データ回転処理を、ハードウェアで実装する場合には信号線の配線パターンをアレンジすることで実現できるためにデータ遅延は生じない。このため、図6に示す復号装置1200をハードウェアで実現する場合、実質的にはオーバーヘッドはゼロとみなすことができる。また、復号装置1200をソフトウェアで実現する場合でも、巡回ビットシフト操作は大抵のプロセッサでは高速処理可能であるため、オーバーヘッドは無視できるくらい小さなものになるといえる。
【0151】
次に、システムにおいて生成される拡大鍵のランダム性について検討する。暗号化時において、図3に示される鍵変換部21〜27内部のデータ置換部212の出力は、排他的論理和演算部213〜215によるデータ融合処理によって拡大鍵の全てに影響を与えるようになっている。すなわち、データ置換部212の置換テーブルを用いた非線形な処理の影響は、排他的論理和演算部213〜215によるデータ融合処理によって拡大鍵の全範囲に及ぶようになっている。このことは、第1の従来例の鍵変換部60〜69と同等の効果を奏している。また、排他的論理和部演算部211および213〜215で実行されるデータ融合処理には、第1〜第4入力データX0〜X3のすべてが入力データとして使用されている。このため、暗号鍵EKの値が1ビットでも変化すると、それによって生成される拡大鍵SK0〜SK7は全て変化することがいえる。以上のことから、生成される拡大鍵には十分なランダム性が得られているといえる。
【0152】
さらに、出力算出部230内部のデータ回転部217〜220では、データ回転数として1,5,9および13ビットがそれぞれ用いられている。これらのビット数は、データ回転部217の各々に入力されるビット数(32ビット)の約数ではない。これに対して、第2の従来例では、図17に示されるようにビット回転部601においてビット数8という32の約数がデータ回転のビット数として用いられている。この違いにより、本実施の形態におけるデータ回転部では、以下に説明するような効果がある。例えば、16進数表記で、33333333の32ビットデータの場合、8ビットのデータ回転を行った結果も、33333333となりデータ回転によるデータの変化はない。11111111や55555555といったデータに対しても同様である。しかし、本実施の形態のように32の約数ではないビット数によるデータ回転では、上記のようなことが起こるのは、16進数表記でFFFFFFFF及び00000000のデータの場合のみであり、それ以外の入力データに対しては、出力データは入力データと異なる値になる。即ち、本実施の形態のデータ回転部の方が高いデータ撹乱性能を実現していることになる。本実施の形態では鍵変換部21〜27内部の出力算出部230に、入力データのビット数の約数ではない回転数を有するデータ回転部を用いることによって、出力算出部230においても、高いデータ撹乱性能を実現している。
【0153】
なお、出力算出部230では、全ての32ビットデータブロックに対してデータ回転処理を行っているが、これは、この構成に限られるものではなく、4つのデータブロックのうち少なくとも1つに対してデータ回転処理を行えばよい。また、データ回転数も本実施の形態に示す数値に限られるものではなく、データブロックサイズの約数でなければ、その他の回転数であってもよい。
【0154】
さらにまた、出力算出部230は、データ回転処理でなくても、第1〜第4入力データX0〜X3に対して、各ビットの値が相互に干渉しないような固定的な変換処理を実行してもよい。例えば、データ回転部217の代わりに図13に示すようなビット入れ替え部1500を用いてもよい。ビット入れ替え部1500は、32ビットの第1入力データX0を受け、各ビットの値が相互に干渉しないようにビット位置を入れ替え、第4出力データY3として出力するものである。
【0155】
このような変換であっても、各ビットの値が相互に干渉しないため、図8に示すような鍵補正部を作成することは可能である。
また、データ回転部217の代わりに図14(a)に示すような特定のビット値のみを反転させる、ビット反転部1520を用いてもよい。なお、図14(a)に示すビット反転部1520は、図14(b)に示す排他的論理和演算部1540と等価である。
【0156】
このような変換であっても、ビット入れ替え部1500と同様に、各ビットの値が相互に干渉しないため、図8に示すような鍵補正部を作成することは可能である。
【0157】
また、本実施の形態では、データ変換部として図2に示すような構成のものを用いているが、この構成に限られるものではない。
さらに、本実施の形態では、平文および暗号文のサイズを64ビット、暗号鍵のサイズを128ビット、拡大鍵のサイズを64ビットとそれぞれしているが、このデータサイズに限られるものではない。また、図1に示すデータ撹乱部1におけるデータ変換処理の段数を8段としているが、この段数に限られるものでもない。
【0158】
さらにまた、図3に示される鍵変換部の排他的論理和演算部211は、4つの32ビットのデータのうち2つのデータに対して排他的論理和演算を行っているが、この構成に限られるものではない。排他的論理和演算部211は、第1〜第4入力データX0〜X3を連結した128ビットのデータから得られる少なくとも2つの任意の部分データに対して排他的論理和演算を行う構成であれば、どのような構成であってもよい。
【0159】
さらに、排他的論理和演算部213は、データ置換部212によって置換変換されたデータBと第1〜第4入力データX0〜X3のうちのいずれかのデータとの間で排他的論理和演算を行っているが、この構成に限られるものではない。排他的論理和演算部213は、データBと第1〜第4入力データX0〜X3を連結した128ビットのデータから得られる少なくとも1つの任意の部分データとの間で排他的論理和演算を実行するような構成であってもよい。
【0160】
さらにまた、排他的論理和演算部211,213〜215は、データ融合方法として排他的論理和演算を用いているが、これは加算、減算、乗算のような2つ以上の入力データから1つの出力データを算出するような処理であれば何でも良い。
【0161】
図15は、本実施の形態に係る暗号化システムを応用したDVDプレーヤーの外観図である。DVDプレーヤー1700は、挿入されたDVD1702のコンテンツの内容の認証を行なう際に、図6に示される復号装置1200を有することが可能であるが、この際の認証処理を高速に実行することが可能となるため、DVD1702を挿入してから実際にDVD1702のコンテンツが再生されるまでの時間を早くすることができる。
【0162】
【発明の効果】
以上の説明から明らかなように、本発明に係る暗号化システムによると、第1の従来例のように拡大鍵生成処理と次段の拡大鍵生成処理の入力を求める処理とを一部分に同一の処理回路を用いて実行するのではなく、拡大鍵算出部と出力算出部とに分離し、実行する。
【0163】
拡大鍵算出部は、複数のデータを融合して、拡大鍵を算出する。出力算出部は、n回(nは自然数)繰り返した処理が等価な簡易処理に変換できるようなデータ回転処理を用いる。これにより、第1の従来例のように暗号時と比べて復号時のオーバーヘッド処理が極端に大きくなることがない。よって、暗号化処理時間と復号処理時間とがほとんど変わらないようにすることができる。
【0164】
また第2の従来例のように、拡大鍵算出部は、単純なビット入れ替え処理ではなく、置換テーブルによる非線形な置換処理とデータ融合処理とを組み合わせた複雑な処理を用いている。このため、置換テーブルを用いた非線形処理の影響がすべての拡大鍵におよび、かつ、暗号鍵が変化すると、その変化が生成されるすべての拡大鍵におよぶという特徴を有する。このため、ランダム性の高い拡大鍵生成処理を実現することができる。
【0165】
以上のように、本発明に係る暗号化システムによれば、第1の従来例と第2の従来例との課題を同時に解決することができる。
以上のように本発明に係る暗号化システムにより、高速かつ安全性の高い暗号処理、認証処理などが可能になる。このため、実行速度と安全性との両面で厳しい仕様が求められるシステムなどに使用されることにより、その実用的価値は極めて高い。
【図面の簡単な説明】
【図1】本発明の実施の形態に係る暗号化装置1100の構成の一例を示すブロック図である。
【図2】本発明の実施の形態に係るデータ変換部11〜18の構成の一例を示すブロック図である。
【図3】本発明の実施の形態に係る鍵変換部21〜27の構成の一例を示すブロック図である。
【図4】本発明の実施の形態に係る最終鍵変換部28の構成の一例を示すブロック図である。
【図5】置換テーブルSboxを説明するための図である。
【図6】本発明の実施の形態に係る復号装置1200の構成の一例を示すブロック図である。
【図7】本発明の実施の形態に係る逆データ変換部31〜38の構成の一例を示すブロック図である。
【図8】本発明の実施の形態に係る鍵補正部40の構成の一例を示すブロック図である。
【図9】本発明の実施の形態に係る逆鍵変換部41〜47の構成の一例を示すブロック図である。
【図10】逆置換テーブルInvSboxを説明するための図である。
【図11】置換テーブルSboxと逆置換テーブルInvSboxとの関係を説明するための具体例を示す図である。
【図12】鍵補正部160の構成の一例を示すブロック図である。
【図13】ビット入れ替え部1500を説明するための図である。
【図14】ビット反転部1520とそれと等価な排他的論理和演算部1540とを説明するための図である。
【図15】本実施の形態に係る暗号化システムを応用したDVD(Digital Versatile Disk)プレーヤーの外観図である。
【図16】第1の従来例に係る暗号化装置1300の構成を示すブロック図である。
【図17】第1の従来例に係る鍵変換部60〜69の構成を示すブロック図である。
【図18】第1の従来例に係る復号装置1400の構成を示すブロック図である。
【図19】第1の従来例に係る逆鍵変換部90〜99の構成を示すブロック図である。
【図20】第2の従来例に係る鍵変換部10の構成を示すブロック図である。
【図21】ETCシステムを説明するための図である。
【符号の説明】
1,5 データ撹乱部
2,6 拡大鍵生成部
3,7 逆データ撹乱部
4,8 拡大鍵逆生成部
10,21〜27,60〜69,80〜89 鍵変換部
11〜18,50〜58 データ変換部
20,112,311,600,800 データ分割部
28,48 最終鍵変換部
31〜38,71〜79 逆データ変換部
40 鍵補正部
41〜47,90〜99 逆鍵変換部
59 最終データ変換部
70 最終逆データ変換部
101〜102 巡回シフト部
103,117,216,286,316,416,608,908 データ連結部
104 データ縮約部
111,211,213〜215,281,283〜285,317,411,413〜415,603〜607,901〜904,907,1540 排他的論理和演算部
113〜116,212,282,412,602,906 データ置換部
210,280,410 拡大鍵算出部
217〜220,401〜404,417〜420,601,905,1601〜1604 データ回転部
230 出力算出部
312〜315 逆データ置換部
430 出力逆算出部
500,700 鍵加算部
1100,1300  暗号化装置
1200,1400 復号装置
1500 ビット入れ替え部
1520 ビット反転部
1700 DVDプレーヤー1700
1702 DVD
1800 ETCシステム
1801 自動車
1802 車載器
1804 料金所アンテナ[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an encryption system, and more particularly, to an encryption system that has a small difference in processing time between encryption and decryption and can generate an extended key with high randomness.
[0002]
[Prior art]
2. Description of the Related Art In recent years, digital communication has rapidly become widespread, but a data encryption method for ensuring data confidentiality in communication is demanded from the viewpoints of healthy industrial development and protection of privacy. In addition, realization of the encryption method requires not only security but also high-speed encryption processing and easy implementation. In a general configuration of such an encryption method, data to be encrypted is divided into fixed-size blocks, and each block is subjected to data disruption processing based on a predetermined encryption key to generate a ciphertext. .
[0003]
(First conventional example)
One of such cryptosystems is the Rijndael cipher established as AES (Advanced Encryption Standard), which is a next-generation standard cipher in the United States. FIG. 16 is a diagram showing the internal configuration of an encryption device using the Rijndael encryption method. The encryption device 1300 is connected to the extended key generation unit 6 for generating and outputting the 128-bit extended keys SK0 to SK10 from the 128-bit encryption key EK, and is connected to the extended key generation unit 6. Data is disturbed by receiving keys SK0 to SK10 and repeatedly performing a predetermined data conversion process on plaintext PT of 128-bit data using extended keys SK0 to SK10 to generate 128-bit ciphertext CT. Unit 5.
[0004]
The expanded key generation unit 6 is connected to the data division unit 600 that receives the encryption key EK, divides the encryption key EK into four 32-bit data blocks D0, D1, D2, and D3 and outputs the data block. And a key conversion unit 60 that receives the data blocks D0 to D3 from the data division unit 600, performs a predetermined operation described later, generates an expanded key SK1 and four 32-bit data blocks, and outputs It is connected to the key conversion unit of the preceding stage, receives four 32-bit data blocks from the key conversion unit of the preceding stage, performs a predetermined operation to be described later, and generates an expanded key and four 32-bit data blocks. And output key conversion units 61 to 69.
[0005]
The expanded keys output from the key conversion units 61 to 69 are defined as expanded keys SK2 to SK10, respectively. Further, the key conversion unit 69 outputs four data blocks, but they are not used for other processing. Further, the expanded key generator 6 outputs the encryption key EK as the expanded key SK0.
[0006]
The data disturbing unit 5 is connected to the expanded key generation unit 6, receives the expanded key SK0, performs an exclusive OR operation for each bit between the plaintext PT and the expanded key SK0, and outputs the result. , A data conversion unit 50 connected to the key addition unit 500 and the key conversion unit 60 for converting data output from the key addition unit 500 based on the expanded key SK1, and key conversion units 61 to 68, respectively. Are connected to the data converters 51 to 58 for respectively converting the data output from the data converters based on the expanded keys SK2 to SK9, the data converter 58 and the key converter 69, and output from the data converter 58. A final data conversion unit 59 that converts data based on the expanded key SK10 and outputs a ciphertext CT.
[0007]
FIG. 17 is a diagram showing the internal configuration of each of the key conversion units 60 to 69. Each of the key conversion units 60 to 69 executes a key conversion process to be described later based on each of the 32-bit first to fourth input data X0 to X3, and outputs the first to fourth output data Y0 to Y3 and 128 bits. Is output.
[0008]
Each of the key conversion units 60 to 69 receives the fourth input data X3, cyclically shifts the input data X3 by 8 bits in the upper bit direction (left direction), and outputs a result. A data replacement unit 602 that is connected to the rotation unit 601 and receives a calculation result from the data rotation unit 601, performs a predetermined replacement process on the calculation result, and outputs the result; and a data replacement unit 602 that is connected to the data replacement unit 602. An exclusive OR operation unit 603 that receives the replacement result, performs an exclusive OR operation for each bit between the replacement result and a predetermined 32-bit constant Rcon, and outputs data T. .
[0009]
Each of the key conversion units 60 to 69 is connected to the exclusive OR operation unit 603, receives the first input data X0 and the data T output from the exclusive OR operation unit 603, and receives the first input data X0 and An exclusive-OR operation unit 604 that performs an exclusive-OR operation for each bit with the data T and outputs first output data Y0, and is connected to the exclusive-OR operation unit 604, and outputs the second input data. Upon receiving X1 and the result of the operation performed by the exclusive OR operation unit 604, an exclusive OR operation is performed for each bit between the second input data X1 and the operation result, and the second output data Y1 is output. An exclusive OR operation unit 605 is further included.
[0010]
Each of the key conversion units 60 to 69 is connected to the exclusive OR operation unit 605, receives the third input data X2 and the operation result of the exclusive OR operation unit 605, and receives the third input data X2 and the operation result. An exclusive OR operation is performed for each bit with the result, and an exclusive OR operation unit 606 that outputs the third output data Y2 is connected to the exclusive OR operation unit 606, and the fourth input data X3 And the operation result of the exclusive OR operation unit 606, perform an exclusive OR operation for each bit between the fourth input data X3 and the operation result, and output the fourth output data Y3 And a data connection unit 608 connected to the exclusive OR operation units 607 and 604 to 607 and connecting the first to fourth output data Y0 to Y3 to output the expanded key SK. The details of the processing executed by each unit will be described later in the description of the encryption processing.
[0011]
Hereinafter, the encryption processing of the Rijndael encryption method performed by the encryption device 1300 will be briefly described. As shown in FIG. 16, the expanded key generation unit 6 outputs the encryption key EK as it is to the key addition unit 500 inside the data disturbance unit 5 as the expanded key SK0. Key addition section 500 executes an exclusive OR operation for each bit between plaintext PT and expanded key SK0, and outputs the result to data conversion section 50. The data dividing unit 600 divides the encryption key EK into four data blocks D0, D1, D2, and D3 in 32-bit units from the upper bits, and outputs the data blocks to the key conversion unit 60.
[0012]
The data input to the data conversion unit 50 is sequentially subjected to data conversion processing in each data conversion unit in the order from the data conversion unit 50 to the data conversion unit 58, and finally the result processed by the final data conversion unit 59 is encrypted. Output as sentence CT.
[0013]
Data conversion units 50 to 58 perform data conversion processing based on expanded keys SK1 to SK9, respectively. Further, final data conversion section 59 performs data conversion processing based on expanded key SK10. The expanded keys SK1 to SK10 are generated in the key converters 60 to 69 inside the expanded key generator 6 and supplied to the data converters 50 to 58 and the final data converter 59 of the data disturbance unit 5, respectively. That is, the data disturbing unit 5 executes the following one-stage processing group for ten stages to generate a ciphertext CT.
[0014]
Each of the key conversion units 60 to 69 receives the first to fourth input data X0 to X3 (each of 32 bits), executes a key conversion process, expands the key SK (128 bits), and outputs the first to fourth output data. The data Y0 to Y3 are output. The data rotation unit 601, the data replacement unit 602, and the exclusive OR operation unit 603 calculate the data T by executing an operation represented by the following equation (1) on the fourth input data X3.
T = Rcon (+) Perm (ROTL8 (X3)) (1)
[0015]
Here, ROTL8 (X) represents the result of cyclically shifting data X by 8 bits in the upper bit direction (leftward). Perm (X) indicates a result of performing a predetermined replacement process on the data X. The operator “(+)” represents an exclusive OR operation for each bit. The constant Rcon is 32-bit fixed value data different in each of the key conversion units 60 to 69.
[0016]
The exclusive OR operation units 604 to 607 execute the operations represented by the following equations (2) to (5) using the data T thus obtained, thereby obtaining the first to fourth output data. Y0 to Y3 are obtained respectively.
Figure 2004004603
[0017]
The data linking unit 608 obtains an expanded key SK having a relationship represented by the following equation (6). The operator “$” represents data concatenation. That is, the following equation (6) indicates that a 128-bit expanded key SK can be obtained by connecting the first to fourth output data Y0 to Y3 each having 32 bits.
[0018]
SK = Y0‖Y1‖Y2‖Y3 (6)
Each of the key conversion units 60 to 69 outputs the expanded key SK obtained as a result of the above processing and the first to fourth output data Y0 to Y3.
[0019]
FIG. 18 is a diagram showing the internal configuration of a decryption device using the Rijndael encryption method. The decryption device 1400 is connected to the extended key inverse generation unit 8 that generates the extended keys SK10 to SK0 of 128 bits in the reverse order from the encryption key EK from the 128-bit encryption key EK, and the extended key inverse generation unit 8 The extended keys SK10 to SK0 are received from the extended key inverse generation unit 8, and a predetermined inverse data disturbance process is performed on the 128-bit cipher text CT using the extended keys SK10 to SK0 to output a decrypted text DT. And an inverse data disturbance unit 7.
[0020]
The extended key inverse generation unit 8 receives the encryption key EK, and divides the data into four data blocks by the upper 32 bits at a time. The data division unit 800 is connected to the data division unit 800 and receives the four blocks. And a key conversion unit 80 that outputs four 32-bit data blocks, and each is connected to the preceding key conversion unit, receives four 32-bit data blocks from the previous key conversion unit, and receives them. A predetermined operation is performed to generate four 32-bit data blocks in a subsequent key conversion unit, which are connected to the key conversion units 81 to 88 for output and the key conversion unit 88, and are output from the key conversion unit 88 to the four 32-bit data blocks. And a key conversion unit 89 for generating and outputting an expanded key SK10 and four 32-bit data blocks.
[0021]
The predetermined operations executed by key conversion units 80 to 89 are the same as the predetermined operations executed by key conversion units 60 to 69, respectively. Therefore, each of key conversion units 80 to 89 is shown in FIG. It has the same configuration as the key conversion unit. Therefore, detailed description thereof will not be repeated here.
[0022]
However, unlike the key conversion units 60 to 68, the key conversion units 80 to 88 do not output the expanded keys SK1 to SK9. Therefore, each of the key conversion units 80 to 88 may have a configuration in which the data connection unit 608 is removed from the configuration of the key conversion unit shown in FIG.
[0023]
The expanded key inverse generation unit 8 is connected to the key conversion unit 89, receives the four 32-bit data blocks output from the key conversion unit 89, performs an inverse key conversion process (described later) on them, and expands the expanded keys SK9 and SK4. And a reverse key converter 90 for generating and outputting two 32-bit data blocks, each of which is connected to the preceding reverse key converter and receives four 32-bit data blocks from the preceding reverse key converter. And an inverse key conversion section 91 to 99 for generating an expanded key and four 32-bit data blocks and outputting the same.
[0024]
The expanded keys output from the reverse key converters 90 to 99 are expanded keys SK9 to SK0, respectively. The reverse key converter 99 outputs four data blocks, which are not used for other processing.
[0025]
The inverse data disturber 7 is connected to the key converter 89, receives the expanded key SK10 from the key converter 89, and uses the ciphertext CT and the expanded key SK10 to perform the reverse of the conversion process performed by the final data converter 59. It is connected to a final inverse data converter 70 and an inverse key converter 90, which performs a conversion process and outputs a processing result, and outputs the processing result from the final inverse data converter 70 and the inverse key converter 90. And an extended key SK9, respectively, and performs an inverse conversion process of the conversion process executed by the data conversion unit 58, and outputs a processing result.
[0026]
The inverse data disturber 7 is connected to the inverse data converters at the preceding stage and connected to the inverse key converters 91 to 98, respectively, and receives the expanded keys SK8 to SK1 from the inverse key converters 91 to 98, respectively. The inverse data conversion units 72 to 79, which execute the inverse conversion processes of the conversion processes executed by the conversion units 57 to 50 and output the processing results, are connected to the inverse data conversion unit 79 and the inverse key conversion unit 99, respectively. The key addition unit 700 receives the processing result and the expanded key SK0 from the data conversion unit 79 and the inverse key conversion unit 99, respectively, performs a reverse conversion process of the conversion process performed by the key addition unit 500, and outputs a decrypted text DT. Further included.
[0027]
FIG. 19 is a diagram showing the internal configuration of each of the reverse key conversion units 90 to 99. Each of the reverse key conversion units 90 to 99 performs the reverse of the key conversion process performed by each of the key conversion units 60 to 69 and 80 to 89 based on the 32-bit first to fourth input data Y0 to Y3. The reverse key conversion process corresponding to the conversion is executed, and the first to fourth output data Z0 to Z3 and the 128-bit expanded key SK are output.
[0028]
Each of the reverse key conversion units 90 to 99 performs an exclusive OR operation for each bit between the third input data Y2 and the fourth input data Y3, and outputs the fourth output data Z3. An operation unit 901, an exclusive OR operation unit 902 that performs an exclusive OR operation for each bit between the second input data Y1 and the third input data Y2 and outputs third output data Z2, An exclusive OR operation unit 903 that performs an exclusive OR operation for each bit between the one input data Y0 and the second input data Y1 and outputs the second output data Z1.
[0029]
Each of the inverse key conversion units 90 to 99 is connected to the exclusive OR operation unit 901, receives the output of the exclusive OR operation unit 901, and converts the output by 8 bits in the upper bit direction (left direction). A data rotator 905 that shifts and outputs a result, and is connected to the data rotator 905, receives a calculation result from the data rotator 905, performs a predetermined replacement process on the calculation result, and outputs a result. And further.
[0030]
Each of the reverse key conversion units 90 to 99 is connected to the data replacement unit 906, receives a replacement result from the data replacement unit 906, and receives the replacement result and a 32-bit predetermined by each of the reverse key conversion units 90 to 99. An exclusive-OR operation unit 907 that executes an exclusive-OR operation for each bit with the constant Rcon and outputs data T, and is connected to the exclusive-OR operation unit 907 and is connected to the exclusive-OR operation unit 907. An exclusive OR operation unit 904 that receives the data T, performs an exclusive OR operation for each bit between the first input data Y0 and the data T, and outputs the first output data Z0; And a data linking unit 908 connected to the sum calculating units 904 to 901 to link the first to fourth output data Z0 to Z3 and output the expanded key SK. Details of the processing executed by each unit will be described in the following description of the decoding processing.
[0031]
Hereinafter, the decryption process of the Rijndael encryption method performed by the decryption device 1400 will be briefly described. As shown in FIG. 18, the data dividing unit 800 divides the 128-bit encryption key EK into four data blocks, each of which includes 32 bits from the upper bits. Based on these four data blocks, key conversion processing is sequentially performed in key conversion units 80 to 89. As described above, the key conversion process executed by the key conversion units 80 to 89 is the same as the key conversion process executed by the key conversion units 60 to 69 shown in FIG. However, the expanded keys SK1 to SK9 generated by the key conversion units 80 to 88 are not used for the subsequent processing.
[0032]
The key conversion unit 89 outputs the generated expanded key SK to the final inverse data conversion unit 70 as the expanded key SK10. Thereafter, the reverse key conversion units 90 to 99 sequentially generate the expanded keys SK9 to SK0, respectively. In parallel with the processing executed by the key conversion unit 89 and the reverse key conversion units 90 to 99, the final reverse data conversion unit 70, the reverse data conversion units 71 to 79, and the key addition unit 700 transmit the expanded keys SK10 to SK0 respectively. Based on this, a predetermined process is executed. Key addition section 700 finally generates and outputs decrypted text DT.
[0033]
Next, the processing executed by the inverse data disturbance unit 7 will be described in more detail. The process executed by the inverse data disturbing unit 7 corresponds to the inverse conversion of the process executed by the data disturbing unit 5 of the encryption device 1300 shown in FIG. That is, first, the final inverse data conversion unit 70 performs an inverse conversion process of the process executed by the final data conversion unit 59 using the expanded key SK10. Thereafter, the inverse data conversion units 71 to 79 execute the inverse conversion processes of the processes executed by the data conversion units 58 to 50, respectively, using the expanded keys SK9 to SK1. Finally, the key adding unit 700 performs an inverse conversion process of the process performed by the key adding unit 500 using the expanded key SK0, and generates and outputs a decrypted text DT. As described above, at the time of decryption, it is necessary to generate an expanded key in the reverse order of the encryption.
[0034]
The reverse key conversion processing executed by each of the reverse key conversion units 90 to 99 shown in FIG. 19 will be described.
The exclusive OR operation units 901 to 903 obtain the second to fourth output data Z1 to Z3 by executing the operations represented by the following equations (7) to (9), respectively.
Figure 2004004603
[0035]
The data rotation unit 905, the data replacement unit 906, and the exclusive OR operation unit 907 calculate the data T by executing the operation represented by the following equation (10) on the fourth output data Z3.
T = Rcon (+) Perm (ROTL8 (Z3)) (10)
[0036]
The exclusive OR operation unit 904 obtains first output data Z0, which is an exclusive OR for each bit of the data T and the first input data Y0, according to the following equation (11).
Z0 = T (+) Y0 (11)
[0037]
The data linking unit 908 combines the first to fourth output data Z0 to Z3 according to the following equation (12) to generate a 128-bit expanded key SK.
SK = Z0‖Z1‖Z2‖Z3 (12)
[0038]
Each of the reverse key conversion units 90 to 99 outputs the expanded key SK obtained as a result of the above processing and the first to fourth output data Z0 to Z3.
[0039]
As shown in FIG. 17, according to the present method, the data replacement unit 602 executes a non-linear process at the time of encryption. The influence of the data subjected to the non-linear processing affects the extended key SK and all output data via the exclusive OR operation units 604 to 607. For this reason, this method can realize the generation of an extended key with high randomness, while performing a simple key conversion process.
[0040]
(Second conventional example)
As a second conventional example, there is a DES (Data Encryption Standard) which is a US standard encryption. FIG. 20 is a diagram showing a configuration of the key conversion unit 10 used in the encryption device based on the DES system. Key conversion section 10 includes cyclic shift sections 101 and 102, data link section 103 connected to cyclic shift sections 101 and 102, and data reduction section 104 connected to data link section 103.
[0041]
Next, the operation of the key conversion unit 10 will be briefly described. The cyclic shift unit 101 performs a cyclic bit shift process of a predetermined number of bits on the 28-bit first input data to generate first cyclic shift data. The cyclic shift unit 102 performs a cyclic bit shift process of a predetermined number of bits on the 28-bit second input data to generate second cyclic shift data. The first cyclic shift data and the second cyclic shift data are output from the key conversion unit 10 as first output data and second output data, respectively. On the other hand, data linking section 103 links the first cyclic shift data and the second cyclic shift data into 56-bit data, and outputs the data to data reduction section 104. Data reduction section 104 extracts 48-bit data at a predetermined bit position from the input data, and outputs an expanded key.
[0042]
According to the encryption device based on the DES system, since the generation of the expanded key is basically realized by the data shift process and the data extraction process, when the expanded key is generated at the time of encryption and decryption, The same extended key generation processing can be applied. For this reason, unlike the first conventional example, the amount of processing required to generate an expanded key does not differ between encryption and decryption.
[0043]
However, these conventional examples have the following problems. In the first conventional encryption method, there is a problem that it takes more time to generate an expanded key at the time of decryption than at the time of encryption. The reason will be described below. As shown in FIG. 16, in the data disturbing unit 5 of the encryption device 1300, the encryption key EK is used as it is in the key adding unit 500 that executes the processing first. Therefore, the data disturbance unit 5 and the expanded key generation unit 6 can execute their respective processes in parallel.
[0044]
On the other hand, as shown in FIG. 18, in the inverse data disturbing unit 7 of the decryption device 1400, the final inverse data conversion unit 70 that executes processing first uses the expanded key SK10 supplied from the expanded key inverse generation unit 8. Must. In order to obtain the expanded key SK10, it is necessary to execute a key conversion process in the key conversion units 80 to 89. That is, the final reverse data conversion unit 70 can start the process only after the key conversion process has been performed ten times. For this reason, the decryption process takes longer than the encryption process by the waiting time of the key conversion process.
[0045]
As described above, when the processing time is extremely different between the encryption processing and the decryption processing, the following problem occurs. For example, consider a communication system in which data is exchanged between a transmitter and a receiver in real time. In the case where the encryption device 1300 and the decryption device 1400 described in the first conventional example are used in such a communication system, even if the transmitter can encrypt and transmit data in real time, the receiver performs decryption. Since it takes time, the cipher text cannot be decrypted in real time. For this reason, the receiver needs a buffer for temporarily storing the received encrypted data, which leads to an increase in the cost of the receiver.
[0046]
Also, as shown in FIG. 21, in an ETC (Electronic Toll Collection) system 1800 attached to a tollgate on a highway, data communication is performed between an onboard unit 1802 attached to an automobile 1801 and a tollgate antenna 1804, Perform mutual authentication. Since the automobile 1801 normally passes through the gate of the ETC system 1800 without stopping, the ETC system 1800 requires a high response speed. Therefore, when the conventional encryption device 1300 and conventional decryption device 1400 are used in the ETC system 1800, there is a problem that high-speed hardware is required.
[0047]
On the other hand, the second conventional example solves the problem that "the time required for generating an expanded key at the time of decryption is longer than that at the time of encryption" as in the first conventional example. However, there is a problem that the randomness of the expanded key is insufficient.
[0048]
In the second conventional example, data obtained by extracting a bit at a predetermined position from a concatenation of cyclically bit-shifted data is used as an extended key. That is, since data fusion processing, replacement processing, and the like are not used in the processing for generating an expanded key, the expanded key does not have sufficient randomness. As a result, in the extended key generation process of the second conventional example, there is a problem that a low security key called a weak key exists (for a weak key based on the DES method, see Non-Patent Document 1, for example).
[0049]
[Non-patent document 1]
Alfred J. et al. Menezes, Paul C.M. van Oorschot, Scott A. Vanstone, "Handbook of Applied Cryptography", CRC Press, 1997, pp. 256-pp. 259
[0050]
Therefore, the present invention has been made in view of such a situation, and an object of the present invention is to provide an encryption system capable of reducing a difference in processing time between encryption and decryption.
[0051]
It is another object of the present invention to provide an encryption system that can generate an extended key with high randomness and high security.
[0052]
[Means for Solving the Problems]
In order to achieve the above object, an extended key generation device according to the present invention is an extended key generation device that receives encryption key data as input, and outputs a plurality of expansion key data, wherein the encryption key data includes a plurality of partial keys. A data dividing unit that divides the data into a plurality of pieces of partial key data, and a plurality of key converting units that are connected in a row to output the plurality of expanded key data. Receives the plurality of partial key data or the plurality of output data from the key conversion means at the preceding stage as a plurality of input data, and for each of the plurality of input data, a fixed conversion in which the value of each bit does not interfere with each other. An output calculation unit that executes processing and calculates a plurality of output data to a subsequent key conversion unit, and an expanded key calculation unit that calculates the expanded key data by fusing the plurality of input data. And it features.
[0053]
As described above, the output calculation unit and the extended key calculation unit can be separated from each other, and the processing in the output calculation unit is a fixed conversion process in which the value of each bit does not interfere with the input data. And a processing unit equivalent to the processing of the output calculation unit. Therefore, at the time of decryption, after the data is generated by the equivalent processing unit described above, the inverse conversion process of the process performed by the key conversion unit is sequentially performed, whereby the expanded key used for decryption of the ciphertext data is obtained. Data can be sequentially generated. Therefore, it is not necessary to execute the processes of the output calculation units of a predetermined number of stages at the time of decryption, and it is possible to reduce the difference in processing time between the time of encryption and the time of decryption.
[0054]
Further, since the expanded key calculation unit calculates expanded key data by fusing a plurality of partial data, it is possible to provide an expanded key with high randomness and high security.
[0055]
For example, the output calculation unit performs a cyclic shift operation on at least one of the plurality of input data by a predetermined number of bits, and the predetermined number of bits is subjected to the cyclic shift operation. It is not a divisor of the number of bits of the input data.
[0056]
By making the number of bits of the cyclic shift operation not a divisor of the input data to be subjected to the cyclic shift operation in this manner, even if the input data is subjected to the cyclic shift operation a plurality of times, the same as the original input data is obtained. Input data is less likely to be generated. Therefore, it is possible to provide an extended key having high randomness and high security.
[0057]
Further, the expanded key calculation unit executes a replacement process based on a predetermined replacement table with respect to an intermediate process in the fusion of the plurality of input data and at least one of the plurality of input data.
[0058]
By inserting a non-linear process such as a replacement process, an extended key with high randomness and high security can be provided.
The present invention can be implemented not only as such an extended key generation device, but also as an encryption device including such an extended key generation device, or encrypted using such an extended key generation device. It can also be realized as a decryption device that decrypts ciphertext data. Further, the present invention can be realized as an encryption system including an encryption device and a decryption device, and can also be realized as an extended key generation method or a program for causing a computer to function as an extended key generation device. Needless to say, such a program can be widely distributed via a recording medium such as a CD-ROM (Compact Disk-Read Only Memory) or a transmission medium such as the Internet.
[0059]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of an encryption system according to the present invention will be described in detail with reference to the drawings. The encryption system includes an encryption device and a decryption device described below.
[0060]
FIG. 1 is a block diagram illustrating an example of a configuration of an encryption device according to an embodiment of the present invention.
The data encryption device 1100 is based on the 128-bit encryption key EK, and generates an expanded key generation unit 2 that generates eight expanded keys SK0 to SK7 each having 64 bits. Receiving the expanded keys SK0 to SK7 from the generating unit 2, the data is disturbed by repeatedly executing a predetermined data conversion process on the plaintext PT using the expanded keys SK0 to SK7, thereby generating a 64-bit ciphertext CT. And a data disturbance unit 1.
[0061]
The data disturbance unit 1 is configured by connecting eight data conversion units 11 to 18 in cascade. The expanded key generation unit 2 is configured by connecting a data division unit 20, seven key conversion units 21 to 27, and one final key conversion unit 28 in a column.
[0062]
FIG. 2 is a block diagram illustrating an internal configuration of the data conversion units 11 to 18. Each of the data conversion units 11 to 18 is connected to one of the key conversion units 21 to 27 and the final key conversion unit 28, receives the expanded key SK (one of SK0 to SK7) from any of them, and receives the expanded key SK. An exclusive-OR operation for executing a bit-by-bit exclusive-OR operation between the input data X and the input data X, and an exclusive-OR operation unit 111 connected to the exclusive-OR operation unit 111 for outputting data A; A data division unit 112 that receives the data A from the unit 111 and divides the data A into four data blocks B0 to B3.
[0063]
Each of the data conversion units 11 to 18 is connected to the data division unit 112, receives the data blocks B0 to B3 from the data division unit 112, and replaces the data blocks B0 to B3 with the data blocks C0 to C3 by a method described later. The data replacement units 113 to 116 are connected to the data replacement units 113 to 116, receive the data blocks C0 to C3 from the data replacement units 113 to 116, connect the data blocks C0 to C3 by a method described later, and output the data Y. And a data connection unit 117.
[0064]
FIG. 3 is a block diagram showing the internal configuration of the key conversion units 21 to 27. Each of the key conversion units 21 to 27 receives the first to fourth input data X0 to X3 of 32 bits from the data division unit 20 or the preceding key conversion unit, and receives 64 bits from the first to fourth input data X0 to X3. An expanded key calculation unit 210 for calculating a bit expansion key SK, and first to fourth output data to be input to the next-stage key conversion unit or the final key conversion unit 28 based on the first to fourth input data X0 to X3 An output calculation unit 230 for calculating Y0 to Y3.
[0065]
The expanded key calculation unit 210 performs an exclusive OR operation for each bit between the second input data X1 and the fourth input data X3, and performs an exclusive OR operation unit 211 for calculating data A of 32 bits. Are connected to the exclusive OR operation unit 211, receive the data A from the exclusive OR operation unit 211, and are connected to the data replacement unit 212 that replaces the data A with the data B by a method described later. , An exclusive OR operation unit 213 that receives data B from the data replacement unit 212, performs an exclusive OR operation for each bit between the data B and the third input data X2, and calculates data C. .
[0066]
The expanded key calculation unit 210 is connected to the exclusive OR operation unit 213, receives the data C from the exclusive OR operation unit 213, and performs an exclusive OR operation for each bit between the data C and the second input data X1. An exclusive-OR operation unit 214 for executing an operation and calculating data D, and connected to the exclusive-OR operation unit 214, receiving the data D from the exclusive-OR operation unit 214, receiving the data D and the first input data An exclusive OR operation unit 215 that performs an exclusive OR operation for each bit with X0 to calculate data E, and is connected to the exclusive OR operation units 213 and 215, and is connected to the exclusive OR operation unit. And a data linking unit 216 for receiving data C and data E from 213 and 215, respectively, and linking the data C and data E to output a 64-bit expanded key SK.
[0067]
The output calculation unit 230 cyclically shifts the first input data X0 by one bit in the lower bit direction (right direction) and outputs the fourth input data X3 as a fourth output data Y3. A data rotator 218 that cyclically shifts by 5 bits in the direction (rightward) and outputs the first output data Y0, and cyclically shifts the third input data X2 by 9 bits in the lower bit direction (rightward), A data rotator 219 that outputs the second output data Y1 and a data rotator 220 that cyclically shifts the fourth input data X3 by 13 bits in the lower bit direction (rightward) and outputs the third output data Y2. Including.
[0068]
FIG. 4 is a block diagram showing the internal configuration of the final key conversion unit 28. The final key conversion unit 28 has a configuration in which the output calculation unit 230 is removed from the configuration of the key conversion unit shown in FIG. The final key conversion unit 28 includes an expanded key calculation unit 280.
[0069]
The expanded key calculation unit 280 includes an exclusive OR operation unit 281, a data replacement unit 282 connected to the exclusive OR operation unit 281, an exclusive OR operation unit 283 connected to the data replacement unit 282, The exclusive OR operation unit 284 connected to the exclusive OR operation unit 283, the exclusive OR operation unit 285 connected to the exclusive OR operation unit 284, and the exclusive OR operation units 283 and 285 And a data connection unit 286 connected thereto.
[0070]
The exclusive OR operation units 281, 283 to 285, the data replacement unit 282, and the data concatenation unit 286 are configured by the exclusive OR operation units 211, 213 to 215 of the expanded key calculation unit 210 shown in FIG. The configurations of the unit 212 and the data connection unit 216 are the same. Therefore, detailed description thereof will not be repeated here.
[0071]
Hereinafter, the operation of the encryption device 1100 will be described with reference to FIGS.
The overall processing flow of the encryption device 1100 shown in FIG. 1 will be described. The data division unit 20 inside the expanded key generation unit 2 divides the 128-bit encryption key EK into four data blocks of 32 bits each from the higher order, and outputs the data block to the key conversion unit 21. The key conversion unit 21 performs a key conversion process described later on the four input blocks, and calculates a 64-bit expanded key SK0 and four 32-bit data blocks. The key conversion unit 21 outputs the expanded key SK0 to the data conversion unit 11, and outputs the calculated four data blocks to the key conversion unit 22 in the next stage.
[0072]
The data conversion unit 11 performs a data conversion process described later on the 64-bit plaintext PT based on the input expanded key SK0, and calculates 64-bit data. The data converter 11 outputs the calculated data to the data converter 12 at the next stage.
[0073]
The key conversion unit 22 performs the same key conversion processing as that performed by the key conversion unit 21 on the four 32-bit data blocks input from the key conversion unit 21 at the preceding stage, and expands the expanded key SK1 and the four 32-bit data. Calculate the block. The key conversion unit 22 outputs the expanded key SK1 to the data conversion unit 12, and outputs the calculated four data blocks to the key conversion unit 23 at the next stage.
[0074]
The data conversion unit 12 performs the same data conversion processing as that performed by the data conversion unit 11 on the data input from the data conversion unit 11 at the preceding stage based on the input expanded key SK1, and calculates 64-bit data. I do. The data converter 12 outputs the calculated data to the data converter 13 at the next stage.
[0075]
Hereinafter, similar processing is executed in the key conversion units 23 to 27 and the data conversion units 13 to 17. The final key conversion unit 28 performs a later-described final key conversion process on the four data blocks input from the key conversion unit 27, obtains an expanded key SK7, and outputs it to the data conversion unit 18.
[0076]
The data conversion unit 18 performs the same data conversion processing as that of the data conversion unit 11 on the input data from the data conversion unit 17 based on the expanded key SK7, calculates and outputs a 64-bit cipher text CT.
[0077]
The data conversion processing executed by each of the data conversion units 11 to 18 shown in FIG. 2 will be described. Each of the data converters 11 to 18 performs a data conversion process on the 64-bit input data X based on the 64-bit expanded key SK, and outputs 64-bit output data Y. The input data X is either the plaintext PT or data output from the preceding data conversion unit. The expanded key SK is one of SK0 to SK7 output from the key conversion units 21 to 28, respectively.
[0078]
The exclusive OR operation unit 111 performs an exclusive OR operation for each bit of the input data X and the expanded key SK represented by the following equation (13) to obtain 64-bit data A.
A = X (+) SK (13)
[0079]
The data division unit 112 receives the data A from the exclusive OR operation unit 111, and divides the data A into four data blocks B0, B1, B2, and B3 each of 16 bits from the four upper bits. That is, a relationship represented by the following equation (14) is established between the data A and the data blocks B0 to B3.
A = B0‖B1‖B2‖B3 (14)
[0080]
The data division unit 112 outputs the four data blocks B0 to B3 to the data replacement units 113 to 116, respectively.
[0081]
The data replacing unit 113 obtains 16-bit data C0 based on the 16-bit data B0 input from the data dividing unit 112 according to the following equation (15).
C0 = Sbox [B0h] ‖Sbox [B0l] (15)
[0082]
Here, Sbox represents a replacement table. The replacement table Sbox is composed of an array having 256 elements as shown in FIG. 5, and each element is composed of 8-bit data. B0h represents upper 8 bits of data B0, and B01 represents lower 8 bits of data B0.
[0083]
That is, Sbox [B0h] represents the B0h-th element of the replacement table Sbox, and Sbox [B0l] represents the B01-th element of the replacement table Sbox. Data C0 is data created by connecting these two elements.
[0084]
The replacement table Sbox used here is described in “S-box construction method considering security against known block cipher attacks” by Shiho Morai, Kazuma Aoki, Masatoshi Kanda, Yoichi Takashima, Tsutomu Matsumoto (electronic information communication Engineers technical report, ISEC98-13) "(translation: Shiho Moriai, Kazumaro Aoki, Masayuki Kanda, Youichi Takashima, Kazuo Ohta` `S-box design considering the security against known attackson block ciphers '', technical report of IEICE, Vol.98 No.48, ISEC98-13, (in Japan), (Jully, 1998). Is used. However, the replacement table Sbox may be something other than this, and is not limited to this.
[0085]
The data replacement units 114 to 116 receive the data blocks B1 to B3 from the data division unit 112, find and output the data blocks C1 to C3, respectively. The processing executed in each of data replacement sections 114 to 116 is the same as the processing executed in data replacement section 113, and thus detailed description thereof will not be repeated here.
[0086]
The data connection unit 117 receives the data blocks C0 to C3 from the data replacement units 113 to 116, connects the data blocks C0 to C3 according to the following equation (16), obtains 64-bit data Y, and outputs the data.
Y = C0‖C1‖C2‖C3 (16)
[0087]
A key conversion process executed by each of the key conversion units 21 to 27 shown in FIG. 3 will be described. Each of the key conversion units 21 to 27 executes an expanded key calculation process and an output calculation process, which will be described later, on the first to fourth input data X0 to X3, and outputs the expanded key SK and the first to fourth output data. Y0 to Y3 are calculated and output. The first to fourth input data X0 to X3 are four 32-bit data blocks output from the data division unit 20 or the key conversion unit at the preceding stage. The expanded key SK is one of SK0 to SK6 input to the data conversion units 11 to 17, respectively.
[0088]
The expanded key calculation process executed by the expanded key calculator 210 will be described.
The exclusive OR operation unit 211 performs an exclusive OR operation for each bit between the second input data X1 and the fourth input data X3 according to the following equation (17), and obtains 32-bit data A. .
A = X1 (+) X3 (17)
[0089]
The data replacement unit 212 receives the data A from the exclusive-OR operation unit 211 and uses the same replacement table Sbox as the replacement table used in the data conversion units 11 to 18 to generate a 32-bit data represented by the following equation (18). Find data B.
Figure 2004004603
[0090]
However, the values of the data obtained by dividing the data A into 8 bits at a time from the high order are A0, A1, A2, and A3, respectively.
[0091]
The exclusive OR operation unit 213 receives the data B from the data replacement unit 212, and performs an exclusive OR operation for each bit between the data B and the third input data X2 according to the following equation (19): Find 32-bit data C.
C = B (+) X2 (19)
[0092]
The exclusive OR operation unit 214 receives the data C from the exclusive OR operation unit 213, and performs an exclusive OR operation for each bit between the data C and the second input data X1 according to the following equation (20). Execute to obtain 32-bit data D.
D = C (+) X1 (20)
[0093]
The exclusive OR operation unit 215 receives the data D from the exclusive OR operation unit 214, and performs an exclusive OR operation for each bit between the data D and the first input data X0 according to the following equation (21). Execute to obtain 32-bit data E.
E = D (+) X0 (21)
[0094]
The data linking unit 216 receives the data C and E from the exclusive OR operation units 213 and 215, respectively, links the data C and E according to the following equation (22), and outputs it as a 64-bit expanded key SK.
SK = C‖E (22)
[0095]
Next, a process (output calculation process) of calculating the first to fourth output data Y0 to Y3 in the output calculation unit 230 will be described.
[0096]
The data rotation units 217 to 220 calculate the fourth output data Y3, the first output data Y0, the second output data Y1, and the third output data Y2, respectively, according to the following equations (23) to (26).
Figure 2004004603
[0097]
Here, ROTR1 (X), ROTR5 (X), ROTR9 (X), and ROTR13 (X) indicate that data X is a cyclic bit of 1 bit, 5 bits, 9 bits, and 13 bits each in the lower bit direction (right direction). Indicates the shifted result.
[0098]
The final key conversion processing executed by the final key conversion unit 28 shown in FIG. 4 will be described. The expanded key calculation unit 280 of the final key conversion unit 28 calculates the expanded key SK7 by performing the same operation as that of the expanded key calculation unit 210 shown in FIG. Therefore, detailed description thereof will not be repeated here.
[0099]
FIG. 6 is a block diagram illustrating an example of a configuration of the decoding device according to the embodiment of the present invention.
The data decryption apparatus 1200 includes, based on the 128-bit encryption key EK, an extended key inverse generation unit 4 that generates eight extended keys SK7 to SK0 each having 64 bits in the reverse order of the encryption, and It is connected to the key inverse generation unit 4, receives the extended keys SK7 to SK0 from the extended key inverse generation unit 4, and repeatedly executes an inverse data conversion process (described later) on the ciphertext CT using the extended keys SK7 to SK0. And an inverse data disturbance unit 3 for generating a decrypted text DT.
[0100]
The reverse data disturbance unit 3 is configured by connecting eight reverse data conversion units 31 to 38 in cascade. The expanded key reverse generation unit 4 is configured by connecting a key correction unit 40, seven reverse key conversion units 41 to 47, and one final key conversion unit 48 in a cascade.
[0101]
FIG. 7 is a block diagram showing the internal configuration of the inverse data converters 31 to 38. Each of the inverse data converters 31 to 38 receives 64-bit input data Y (ciphertext CT or output data of the preceding inverse data converter) and divides the data Y into four data blocks A0 to A3. And an inverse data replacement unit 312 connected to the unit 311 and the data division unit 311 to receive the data blocks A0 to A3 from the data division unit 311 and replace the data blocks A0 to A3 with the data blocks B0 to B3 by a method described later. 315.
[0102]
Each of the inverse data conversion units 31 to 38 is connected to the inverse data replacement units 312 to 315, receives the data blocks B0 to B3 from the inverse data replacement units 312 to 315, and connects and outputs the data blocks B0 to B3. The connection unit 316 is connected to the data connection unit 316, receives the connection result output from the data connection unit 316, performs an exclusive OR operation on each bit between the connection result and the expanded key SK, An exclusive OR operation unit 317 for outputting Z.
[0103]
FIG. 8 is a block diagram showing the internal configuration of the key correction unit 40. The key correction unit 40 receives the 32-bit first to fourth input data I0 to I3, executes a process described later, and calculates first to fourth output data J0 to J3. The key correction unit 40 cyclically shifts the first input data I0 by 51 bits in the lower bit direction (rightward) and outputs the second input data I1 as lower output bits. A data rotator 402 that performs a cyclic bit shift by 47 bits in the direction (right direction) and outputs the result as the third output data J2; and a cyclic bit shift of the third input data I2 by 43 bits in the lower bit direction (right direction). A data rotator 403 that outputs the fourth output data J3 as a fourth output data J3 and a data rotator 404 that cyclically shifts the fourth input data I3 by 55 bits in the lower bit direction (rightward) and outputs the same as the first output data J0. Including.
[0104]
FIG. 9 is a block diagram showing the internal configuration of the reverse key converters 41 to 47. Each of the reverse key conversion units 41 to 47 receives the first to fourth input data Y0 to Y3 of 32 bits from the key correction unit 40 or the preceding reverse key conversion unit, and receives the first to fourth input data Y0 to Y3. An expanded key calculation unit 410 for calculating a 64-bit expanded key SK, and first to fourth input data to be input to the next-stage inverse key conversion unit or final key conversion unit 48 based on the first to fourth input data Y0 to Y3. And an output inverse calculation unit 430 for calculating four output data Z0 to Z3.
[0105]
The expanded key calculation unit 410 performs an exclusive OR operation for each bit between the second input data Y1 and the fourth input data Y3, and calculates an exclusive OR operation unit 411 that calculates 32-bit data A. Are connected to the exclusive OR operation unit 411, receive the data A from the exclusive OR operation unit 411, and are connected to the data replacement unit 412 that replaces the data A with the data B by a method described later. , An exclusive OR operation unit 413 that receives data B from the data replacement unit 412, performs an exclusive OR operation for each bit between the data B and the third input data Y2, and calculates data C. .
[0106]
The extended key calculation unit 410 is connected to the exclusive OR operation unit 413, receives the data C from the exclusive OR operation unit 413, and performs an exclusive OR operation for each bit between the data C and the second input data Y1. An exclusive-OR operation unit 414 that executes an operation to calculate data D, and is connected to the exclusive-OR operation unit 414, receives the data D from the exclusive-OR operation unit 414, and receives the data D and the first input data. An exclusive-OR operation unit 415 that performs an exclusive-OR operation for each bit with Y0 to calculate data E, and is connected to exclusive-OR operation units 413 and 415, and is connected to the exclusive-OR operation unit. And a data linking unit 416 for receiving data C and data E from 413 and 415, respectively, and linking the data C and data E to output a 64-bit expanded key SK.
[0107]
The output inverse calculation unit 430 cyclically shifts the first input data Y0 by 5 bits in the upper bit direction (left direction) and outputs the second input data Y1 as the second output data Z1. A data rotator 418 that cyclically shifts by 9 bits in the bit direction (left direction) and outputs it as the third output data Z2, and cyclically shifts the third input data Y2 by 13 bits in the upper bit direction (left direction). , A data rotator 419 that outputs the fourth output data Z3 as a fourth bit, and a data rotator 420 that cyclically shifts the fourth input data Y3 by one bit in the upper bit direction (leftward) and outputs the same as the first output data Z0. including.
[0108]
The final key conversion unit 48 shown in FIG. 6 has the same configuration as the final key conversion unit 28 shown in FIG. Therefore, detailed description thereof will not be repeated here.
Hereinafter, the operation of the decoding device 1200 will be described with reference to FIGS.
[0109]
The overall processing flow of the decoding device 1200 shown in FIG. 6 will be described.
The key correction unit 40 inside the expanded key inverse generation unit 4 internally divides the 128-bit encryption key EK into four 32-bit data blocks, executes a key correction process described later, and executes the four 32-bit data Calculate the block. The key correction unit 40 outputs the calculated four data blocks to the reverse key conversion unit 41.
[0110]
The reverse key conversion unit 41 performs a reverse key conversion process described later based on the four input data blocks, and calculates a 64-bit expanded key SK7 and four 32-bit data blocks. The reverse key conversion unit 41 outputs the expanded key SK7 to the reverse data conversion unit 31, and outputs four data blocks to the next-stage reverse key conversion unit 42.
[0111]
The inverse data conversion unit 31 performs an inverse data conversion process (described later) on the 64-bit cipher text CT based on the input expanded key SK7, calculates 64-bit data, and performs the next-stage inverse data conversion unit. 32.
[0112]
The reverse key conversion unit 42 performs processing similar to that performed by the reverse key conversion unit 41 based on the four data blocks input from the reverse key conversion unit 41 at the preceding stage to convert the expanded key SK6 and the four data blocks. calculate. The reverse key conversion unit 42 outputs the expanded key SK6 to the reverse data conversion unit 32, and outputs the calculated four data blocks to the reverse key conversion unit 43.
[0113]
The inverse data conversion unit 32 performs the same inverse data conversion processing as that performed by the inverse data conversion unit 31 on the data input from the inverse data conversion unit 31 in the preceding stage based on the expanded key SK6 to calculate 64-bit data. Then, the data is output to the next-stage inverse data converter 33.
[0114]
Hereinafter, the same operation is performed in the reverse key conversion units 43 to 47 and the reverse data conversion units 33 to 37. The final key conversion unit 48 performs the same process as the final key conversion process used in the final key conversion unit 28 shown in FIG. 4 on the four data blocks input from the inverse key conversion unit 47, SK0 is obtained and output to the inverse data converter 38.
[0115]
The inverse data conversion unit 38 performs the same inverse data conversion process as the inverse data conversion unit 31 on the input data from the inverse data conversion unit 37 based on the expanded key SK0, and calculates a 64-bit decrypted text DT, Output.
[0116]
An inverse data conversion process performed by each of the inverse data conversion units 31 to 38 shown in FIG. 7 will be described.
The data division unit 311 divides the 64-bit data Y (the ciphertext CT or the data Z output from the previous-stage inverse data conversion unit) into four data blocks A0, A1, A2, and A3 in 16-bit units from the higher order. That is, the relationship represented by the following equation (27) is established between the data Y and the data blocks A0 to A3.
Y = A0‖A1‖A2‖A3 (27)
[0117]
The data division unit 311 outputs the data blocks A0 to A3 to the inverse data replacement units 312 to 315, respectively.
[0118]
The inverse data replacement unit 312 obtains a 16-bit data block B0 based on the 16-bit data A0 input from the data division unit 311 according to the following equation (28).
Figure 2004004603
[0119]
Here, InvSbox represents a reverse replacement table for performing reverse replacement of the above-described replacement table Sbox. The reverse replacement table is composed of an array having 256 elements as shown in FIG. 10, and each element is composed of 8-bit data. A0h represents the upper 8 bits of the data block A0, and A01 represents the lower 8 bits of the data block A0.
[0120]
That is, InvSbox [A0h] represents the A0h-th element of the reverse replacement table InvSbox, and InvSbox [A01] represents the A01-th element of the reverse replacement table InvSbox. The data block B0 is data created by connecting these two elements.
[0121]
The reverse replacement table InvSbox used here is created at the time of encryption based on the replacement table Sbox used in the data replacement units 113 to 116 shown in FIG.
[0122]
That is, a relationship expressed by the following equation (29) is established between the replacement table Sbox and the reverse replacement table InvSbox.
Figure 2004004603
[0123]
FIG. 11 is a diagram illustrating a specific example for describing the relationship between the replacement table Sbox and the reverse replacement table InvSbox. For example, suppose that the value of Sbox [79] is “00110100” in binary notation. "00110100" is represented as a decimal number "52". When the decimal number "79" is represented in binary, it becomes "01001111". Therefore, the value of InvSbox [52] is “01001111” in binary notation.
[0124]
The inverse data replacement units 313 to 315 receive the data blocks A1 to A3 from the data division unit 311 respectively, obtain and output the data blocks B1 to B3, respectively. The processing executed in each of inverse data replacement sections 313 to 315 is the same as the processing executed in inverse data replacement section 312, and therefore, detailed description thereof will not be repeated here.
[0125]
The data connection unit 316 receives the data blocks B0 to B3 from the inverse data replacement units 312 to 315, connects the data blocks B0 to B3 according to the following equation (30), obtains 64-bit data Z, and outputs the data Z.
Z = B0‖B1‖B2‖B3 (30)
[0126]
A key correction process performed by the key correction unit 40 shown in FIG. 8 will be described. The key correction unit 40 executes the process using the 128-bit encryption key EK as an input, and sets 32 bits from the upper bits of the encryption key EK as the first to fourth input data I0 to I3.
[0127]
The data rotation units 401 to 404 respectively calculate the second output data J1, the third output data J2, the fourth output data J3, and the first output data J0 according to the following equations (31) to (34).
Figure 2004004603
[0128]
Here, ROTR51 (I), ROTR47 (I), ROTR43 (I), and ROTR55 (I) are data bits each having a cyclic bit of 51 bits, 47 bits, 43 bits, and 55 bits in the lower bit direction (right direction). Indicates the shifted result.
[0129]
Finally, the key correction unit 40 outputs the first to fourth output data J0 to J3.
Next, the meaning of the shift amount in the data rotation unit 401 of the key correction unit 40 will be described. The first to fourth input data X0 to X3 input to the key conversion unit 21 are subjected to data rotation processing in the output calculation unit 230 in FIG. 3, and as shown in Table 1, the first to fourth output data Y0 to Y3 ROTR5 (X1), ROTR9 (X2), ROTR13 (X3) and ROTR1 (X0) are obtained.
[0130]
Assuming that the first to fourth output data Y0 to Y3 obtained by the key conversion unit 21 are the first to fourth input data X0 to X3 of the key conversion unit 22, a similar data rotation process is performed. As shown, ROTR14 (X2), ROTR22 (X3), ROTR14 (X0) and ROTR6 (X1) are obtained as the first to fourth output data Y0 to Y3 of the key conversion unit 22, respectively.
[0131]
When the same processing is executed for the key conversion units 23 to 27, the result shown in Table 1 is obtained. Therefore, by configuring the key correction unit 40 as shown in FIG. 8, a result equivalent to executing the processing of the key conversion units 21 to 27 can be obtained.
[0132]
[Table 1]
Figure 2004004603
[0133]
Although FIG. 8 shows an example of the key correction unit 40 in the case where the number of key conversion units is seven, the key correction unit can be created regardless of the number of key conversion units. For example, when the number of key conversion units is six, a key correction unit 160 as shown in FIG. 12 can be used instead of the key correction unit 40. The key correction unit 160 is made based on Table 1. The data rotation units 1601 to 1604 of the key correction unit 160 execute a process of cyclically shifting input data by 42 bits, 34 bits, 42 bits, and 50 bits in the lower bit direction (rightward), respectively. However, a cyclic bit shift of 32 bits is equivalent to a cyclic bit shift of 0 bits (that is, no processing is performed). Therefore, the number of cyclic bit shifts in data rotators 1601 to 1604 can be 10 bits, 2 bits, 10 bits, and 18 bits, respectively, to reduce the number of cyclic bit shifts.
[0134]
Similarly, the number of cyclic bit shifts in the data rotation units 401 to 404 of the key correction unit 40 shown in FIG. 8 can be similarly reduced to 19 bits, 15 bits, 11 bits, and 23 bits, respectively.
[0135]
The reverse key conversion process executed by the reverse key conversion units 41 to 47 shown in FIG. 9 will be described. Each of the reverse key conversion units 41 to 47 executes an expanded key calculation process and a data conversion process, which will be described later, on the first to fourth input data Y0 to Y3, and outputs the expanded key SK and the first to fourth output data. Data Z0 to Z3 are calculated and output. The first to fourth input data Y0 to Y3 are four 32-bit data blocks output from the key correction unit 40 or the inverse key conversion unit at the preceding stage. The expanded key SK is one of SK7 to SK1 input to the inverse data converters 31 to 37, respectively.
[0136]
The expanded key calculation process executed by the expanded key calculator 410 will be described.
The exclusive OR operation unit 411 performs an exclusive OR operation for each bit between the second input data Y1 and the fourth input data Y3 according to the following equation (35), and obtains 32-bit data A. .
A = Y1 (+) Y3 (35)
[0137]
The data replacement unit 412 receives the data A from the exclusive OR operation unit 411, and uses the same replacement table Sbox as the replacement table used in the data conversion units 11 to 18 at the time of encryption, and is represented by the following equation (36). 32-bit data B having the relationship shown in FIG.
B = Sbox [A0] ‖Sbox [A1] ‖Sbox [A2] ‖Sbox [A3] (36)
[0138]
However, data obtained by dividing the data A into 8 bits at a time from the high order are A0, A1, A2, and A3, respectively.
[0139]
The exclusive OR operation unit 413 receives the data B from the data replacement unit 412, and performs an exclusive OR operation for each bit between the data B and the third input data Y2 according to the following equation (37): Find 32-bit data C.
C = B (+) Y2 (37)
[0140]
The exclusive OR operation unit 414 receives the data C from the exclusive OR operation unit 413, and performs an exclusive OR operation for each bit between the data C and the second input data Y1 according to the following equation (38). Execute to obtain 32-bit data D.
D = C (+) Y1 (38)
[0141]
The exclusive OR operation unit 415 receives the data D from the exclusive OR operation unit 414, and performs an exclusive OR operation for each bit between the data D and the first input data Y0 according to the following equation (39). Execute to obtain 32-bit data E.
E = D (+) Y0 (39)
[0142]
Data linking section 416 receives data C and E from exclusive OR operation sections 413 and 415, respectively, links data C and E according to the following equation (40), and outputs the result as 64-bit expanded key SK.
SK = C‖E (40)
[0143]
Next, a process (data conversion process) of calculating the first to fourth output data Z0 to Z3 in the output reverse calculation unit 430 will be described.
[0144]
The data rotation units 417 to 420 calculate the second output data Z1, the third output data Z2, the fourth output data Z3, and the first output data Z0, respectively, according to the following equations (41) to (44).
Figure 2004004603
[0145]
Here, ROTL5 (Y), ROTL9 (Y), ROTL13 (Y), and ROTL1 (Y) indicate that data Y is a cyclic bit for each of 5 bits, 9 bits, 13 bits, and 1 bit in the upper bit direction (left direction). Indicates the shifted result.
[0146]
Hereinafter, the effect of the above-described encryption system according to the present embodiment will be described in comparison with the related art.
As shown in FIG. 17, in the first conventional example, in order to obtain the expanded key SK10 used in the final inverse data conversion unit 70, the decryption device 1400 executes the processing of the key conversion unit nine times as overhead. Needed. As a result, there is a problem in that the decryption processing of the first conventional example takes much longer processing time than the encryption processing.
[0147]
However, as shown in FIG. 6, in decryption apparatus 1200 according to the present embodiment, the processing corresponding to the overhead is only processing in key correction section 40. This is equivalent to repeatedly executing the processing in the output calculation section 230 of the key conversion section shown in FIG. 3 seven times. In the case of the data rotation processing, the data rotation processing of r bits (r is an integer) is repeated seven times. The processing is equivalent to performing (7 × r) bit data rotation processing once. Thus, repeating the process of the output calculation unit 230 seven times is equivalent to executing the data rotation process four times as shown in the key correction unit 40. At this time, the processing amounts of the overheads are compared as follows.
[0148]
In the first conventional example, one process of the key conversion unit requires five exclusive OR operations, one replacement process, and one data rotation process. Therefore, if this operation is performed nine times, 45 exclusive OR operations, nine replacement processes, and nine data rotation processes are required as overhead. On the other hand, in decoding apparatus 1200 according to the present embodiment, the processing required as overhead is only four data rotation processings.
[0149]
That is, it is understood that the overhead is much smaller in the present invention than in the first conventional example. In the key conversion unit shown in FIG. 3, the expanded key calculation unit 210 that calculates the expanded key and the output calculation unit 230 that is an input to the next key conversion unit are separated from each other. This is due to the configuration using only data rotation processing.
[0150]
Further, when the data rotation processing is implemented by hardware, it can be realized by arranging the wiring patterns of the signal lines, so that no data delay occurs. Therefore, when the decoding device 1200 illustrated in FIG. 6 is realized by hardware, the overhead can be substantially regarded as zero. Even when the decoding device 1200 is implemented by software, the cyclic bit shift operation can be performed at high speed by most processors, so that the overhead is negligibly small.
[0151]
Next, the randomness of the expanded key generated in the system will be examined. At the time of encryption, the output of the data replacement unit 212 inside the key conversion units 21 to 27 shown in FIG. 3 is made to affect all the expanded keys by the data fusion processing by the exclusive OR operation units 213 to 215. Has become. In other words, the influence of the non-linear processing using the replacement table of the data replacement unit 212 is applied to the entire range of the expanded key by the data fusion processing by the exclusive OR operation units 213 to 215. This has the same effect as the key conversion units 60 to 69 of the first conventional example. In addition, in the data fusion processing executed by the exclusive OR operation units 211 and 213 to 215, all of the first to fourth input data X0 to X3 are used as input data. Therefore, if the value of the encryption key EK changes even by one bit, it can be said that all of the extended keys SK0 to SK7 generated thereby change. From the above, it can be said that the generated expanded key has sufficient randomness.
[0152]
Further, in the data rotation units 217 to 220 inside the output calculation unit 230, 1, 5, 9 and 13 bits are used as the data rotation speed, respectively. These bit numbers are not divisors of the bit number (32 bits) input to each of the data rotation units 217. On the other hand, in the second conventional example, as shown in FIG. 17, the bit rotation unit 601 uses a divisor of 32, which is the number of bits 8, as the number of bits for data rotation. Due to this difference, the data rotator according to the present embodiment has the following effects. For example, in the case of 32-bit data of 3333333 in hexadecimal notation, the result of performing 8-bit data rotation is 3333333, and there is no change in data due to the data rotation. The same applies to data such as 11111111 and 55555555. However, in the data rotation using the number of bits that is not a divisor of 32 as in the present embodiment, the above-described phenomenon occurs only in the case of the data of FFFFFFFF and 00000000 in hexadecimal notation, and other than that. For the input data, the output data has a different value from the input data. That is, the data rotator of the present embodiment realizes higher data disturbance performance. In the present embodiment, by using a data rotator having a rotation speed that is not a divisor of the number of bits of the input data as the output calculation unit 230 inside the key conversion units 21 to 27, even in the output calculation unit 230, high data Realizes disturbance performance.
[0153]
Note that the output calculation unit 230 performs data rotation processing on all 32-bit data blocks, but this is not limited to this configuration, and at least one of the four data blocks Data rotation processing may be performed. Further, the data rotation speed is not limited to the numerical value shown in the present embodiment, but may be another rotation speed as long as it is not a divisor of the data block size.
[0154]
Furthermore, the output calculation unit 230 performs a fixed conversion process on the first to fourth input data X0 to X3 such that the values of the bits do not interfere with each other, even if the data rotation process is not performed. You may. For example, a bit swap unit 1500 as shown in FIG. 13 may be used instead of the data rotation unit 217. The bit swapping unit 1500 receives the 32-bit first input data X0, swaps the bit positions so that the values of the bits do not interfere with each other, and outputs the result as the fourth output data Y3.
[0155]
Even with such conversion, since the values of the bits do not interfere with each other, it is possible to create a key correction unit as shown in FIG.
Further, instead of the data rotation unit 217, a bit inversion unit 1520 for inverting only a specific bit value as shown in FIG. The bit inversion unit 1520 shown in FIG. 14A is equivalent to the exclusive OR operation unit 1540 shown in FIG.
[0156]
Even with such conversion, similar to the bit exchange unit 1500, the values of the bits do not interfere with each other, so that it is possible to create a key correction unit as shown in FIG.
[0157]
Further, in the present embodiment, a data converter having a configuration as shown in FIG. 2 is used, but the present invention is not limited to this configuration.
Further, in the present embodiment, the size of the plaintext and the ciphertext is 64 bits, the size of the encryption key is 128 bits, and the size of the expanded key is 64 bits. However, the present invention is not limited to this data size. Further, although the number of stages of the data conversion process in the data disturbance unit 1 shown in FIG. 1 is set to eight, the number is not limited to eight.
[0158]
Furthermore, the exclusive OR operation unit 211 of the key conversion unit shown in FIG. 3 performs an exclusive OR operation on two of the four 32-bit data. It is not something that can be done. The exclusive OR operation unit 211 is configured to perform an exclusive OR operation on at least two arbitrary partial data obtained from 128-bit data obtained by connecting the first to fourth input data X0 to X3. Any configuration may be used.
[0159]
Furthermore, the exclusive OR operation unit 213 performs an exclusive OR operation between the data B replaced and converted by the data replacement unit 212 and any one of the first to fourth input data X0 to X3. It does, but it is not limited to this configuration. An exclusive OR operation unit 213 executes an exclusive OR operation between the data B and at least one arbitrary partial data obtained from 128-bit data obtained by connecting the first to fourth input data X0 to X3. The configuration may be as follows.
[0160]
Furthermore, the exclusive OR operation units 211, 213 to 215 use an exclusive OR operation as a data fusion method, which is one of two or more input data such as addition, subtraction, and multiplication. Any process may be used as long as it calculates output data.
[0161]
FIG. 15 is an external view of a DVD player to which the encryption system according to the present embodiment is applied. When authenticating the content of the inserted DVD 1702, the DVD player 1700 can have the decryption device 1200 shown in FIG. 6, but can perform the authentication process at this time at high speed. Therefore, the time from insertion of the DVD 1702 to actual reproduction of the content of the DVD 1702 can be shortened.
[0162]
【The invention's effect】
As is apparent from the above description, according to the encryption system of the present invention, as in the first conventional example, the extended key generation process and the process of requesting the input of the next-stage extended key generation process are partially the same. Instead of using a processing circuit, it is separated into an expanded key calculation unit and an output calculation unit and executed.
[0163]
The expanded key calculation unit calculates an expanded key by fusing a plurality of data. The output calculation unit uses a data rotation process that can convert a process repeated n times (n is a natural number) into an equivalent simple process. This prevents the overhead processing at the time of decryption from becoming extremely large as compared with the time of encryption as in the first conventional example. Therefore, the encryption processing time and the decryption processing time can be hardly changed.
[0164]
Further, as in the second conventional example, the expanded key calculation unit uses not a simple bit replacement process but a complicated process combining a nonlinear replacement process using a replacement table and a data fusion process. For this reason, there is a feature that the effect of the non-linear processing using the replacement table affects all extended keys, and when the encryption key changes, the change affects all generated extended keys. For this reason, an extended key generation process with high randomness can be realized.
[0165]
As described above, according to the encryption system of the present invention, it is possible to simultaneously solve the problems of the first conventional example and the second conventional example.
As described above, the encryption system according to the present invention enables high-speed and highly secure encryption processing, authentication processing, and the like. Therefore, when used in a system or the like that requires strict specifications in terms of both execution speed and safety, its practical value is extremely high.
[Brief description of the drawings]
FIG. 1 is a block diagram showing an example of a configuration of an encryption device 1100 according to an embodiment of the present invention.
FIG. 2 is a block diagram illustrating an example of a configuration of data conversion units 11 to 18 according to the embodiment of the present invention.
FIG. 3 is a block diagram illustrating an example of a configuration of key conversion units 21 to 27 according to the embodiment of the present invention.
FIG. 4 is a block diagram illustrating an example of a configuration of a final key conversion unit 28 according to the embodiment of the present invention.
FIG. 5 is a diagram for explaining a replacement table Sbox.
FIG. 6 is a block diagram illustrating an example of a configuration of a decoding device 1200 according to an embodiment of the present invention.
FIG. 7 is a block diagram illustrating an example of a configuration of inverse data conversion units 31 to 38 according to the embodiment of the present invention.
FIG. 8 is a block diagram illustrating an example of a configuration of a key correction unit 40 according to the embodiment of the present invention.
FIG. 9 is a block diagram illustrating an example of a configuration of reverse key conversion units 41 to 47 according to the embodiment of the present invention.
FIG. 10 is a diagram for explaining a reverse replacement table InvSbox.
FIG. 11 is a diagram illustrating a specific example for explaining a relationship between a replacement table Sbox and an inverse replacement table InvSbox.
FIG. 12 is a block diagram illustrating an example of a configuration of a key correction unit 160.
FIG. 13 is a diagram for explaining a bit replacement unit 1500.
FIG. 14 is a diagram for explaining a bit inversion unit 1520 and an exclusive OR operation unit 1540 equivalent thereto.
FIG. 15 is an external view of a DVD (Digital Versatile Disk) player to which the encryption system according to the present embodiment is applied.
FIG. 16 is a block diagram showing a configuration of an encryption device 1300 according to a first conventional example.
FIG. 17 is a block diagram showing a configuration of key conversion units 60 to 69 according to the first conventional example.
FIG. 18 is a block diagram illustrating a configuration of a decoding device 1400 according to a first conventional example.
FIG. 19 is a block diagram showing a configuration of reverse key conversion units 90 to 99 according to the first conventional example.
FIG. 20 is a block diagram showing a configuration of a key conversion unit 10 according to a second conventional example.
FIG. 21 is a diagram illustrating an ETC system.
[Explanation of symbols]
1,5 Data disturbance unit
2,6 Extended key generator
3,7 Reverse data disturber
4,8 Extended key reverse generator
10, 21-27, 60-69, 80-89 Key conversion unit
11-18, 50-58 Data converter
20,112,311,600,800 Data division unit
28, 48 Final key conversion unit
31-38, 71-79 Inverse data converter
40 key correction unit
41-47, 90-99 Reverse key conversion unit
59 Final data converter
70 Final inverse data converter
101-102 cyclic shift unit
103,117,216,286,316,416,608,908 Data connection part
104 Data Reduction Unit
1111, 211, 213 to 215, 281, 283 to 285, 317, 411, 413 to 415, 603 to 607, 901 to 904, 907, 1540 Exclusive OR operation unit
113 to 116, 212, 282, 412, 602, 906 Data replacement unit
210, 280, 410 Extended key calculation unit
217 to 220, 401 to 404, 417 to 420, 601, 905, 1601 to 1604 Data rotation unit
230 output calculator
312-315 reverse data replacement unit
430 Output inverse calculation unit
500,700 key adder
1100,1300 Encryption device
1200,1400 decoding device
1500 bit replacement part
1520 bit inversion unit
1700 DVD Player 1700
1702 DVD
1800 ETC system
1801 car
1802 On-board unit
1804 Tollgate antenna

Claims (21)

暗号鍵データを入力とし、複数の拡大鍵データを出力する拡大鍵生成装置であって、
前記暗号鍵データを複数の部分鍵データに分割するデータ分割手段と、
前記複数の部分鍵データを入力とし、前記複数の拡大鍵データを出力する一列に接続された複数の鍵変換手段とを備え、
前記複数の鍵変換手段の各々は、
前記複数の部分鍵データまたは前段の鍵変換手段からの複数の出力データを複数の入力データとして受け、前記複数の入力データの各々について、各ビットの値が相互に干渉しない固定的な変換処理を実行し、後段の鍵変換手段への複数の出力データを算出する出力算出部と、
前記複数の入力データを融合して、前記拡大鍵データを算出する拡大鍵算出部とを有する
ことを特徴とする拡大鍵生成装置。
An extended key generation device that receives encryption key data as input and outputs a plurality of extended key data,
Data dividing means for dividing the encryption key data into a plurality of partial key data,
A plurality of key conversion means connected to a row for inputting the plurality of partial key data and outputting the plurality of expanded key data,
Each of the plurality of key conversion means,
The plurality of partial key data or the plurality of output data from the key conversion means at the preceding stage is received as a plurality of input data, and for each of the plurality of input data, a fixed conversion process in which the value of each bit does not interfere with each other is performed. An output calculation unit that executes and calculates a plurality of output data to a subsequent key conversion unit;
An expanded key generation unit, comprising: an expanded key calculation unit that calculates the expanded key data by fusing the plurality of input data.
前記出力算出部は、前記複数の入力データのうちの少なくとも1つに対し、ビット位置をあらかじめ定められた規則に従い変更する
ことを特徴とする請求項1に記載の拡大鍵生成装置。
The expanded key generation device according to claim 1, wherein the output calculation unit changes a bit position of at least one of the plurality of input data according to a predetermined rule.
前記出力算出部において実行される前記変換処理は、前記入力データのあらかじめ定められたビット位置の値の反転処理である
ことを特徴とする請求項1に記載の拡大鍵生成装置。
The expanded key generation device according to claim 1, wherein the conversion process executed by the output calculation unit is a process of inverting a value of a predetermined bit position of the input data.
前記出力算出部は、前記複数の入力データのうちの少なくとも1つに対し、所定のビット数だけ巡回シフト操作を実行する
ことを特徴とする請求項1に記載の拡大鍵生成装置。
The expanded key generation device according to claim 1, wherein the output calculation unit performs a cyclic shift operation on at least one of the plurality of input data by a predetermined number of bits.
前記所定のビット数は、前記巡回シフト操作が施される前記入力データのビット数の約数ではない
ことを特徴とする請求項4に記載の拡大鍵生成装置。
The expanded key generation apparatus according to claim 4, wherein the predetermined number of bits is not a divisor of the number of bits of the input data on which the cyclic shift operation is performed.
前記出力算出部は、前記巡回シフト操作を実行した後に、前記複数の入力データの位置をあらかじめ定められた規則に従って入れ替え、前記複数の出力データを算出する
ことを特徴とする請求項4に記載の拡大鍵生成装置。
5. The output calculation unit according to claim 4, wherein after performing the cyclic shift operation, the output calculation unit replaces positions of the plurality of input data according to a predetermined rule, and calculates the plurality of output data. 6. Extended key generator.
前記拡大鍵算出部は、前記複数の入力データの融合における途中過程および前記複数の入力データのうちの少なくとも1つのデータに対し、所定の置換テーブルに基づいた置換処理を実行する
ことを特徴とする請求項4に記載の拡大鍵生成装置。
The expanded key calculation unit performs a replacement process based on a predetermined replacement table on an intermediate process in the fusion of the plurality of input data and on at least one of the plurality of input data. The expanded key generation device according to claim 4.
前記拡大鍵算出部は、前記複数の入力データの融合における途中過程および前記複数の入力データのうちの少なくとも1つのデータに対し、所定の置換テーブルに基づいた置換処理を実行する
ことを特徴とする請求項1に記載の拡大鍵生成装置。
The expanded key calculation unit performs a replacement process based on a predetermined replacement table on an intermediate process in the fusion of the plurality of input data and on at least one of the plurality of input data. The expanded key generation device according to claim 1.
前記拡大鍵算出部は、
前記複数の入力データの中から少なくとも2つの入力データを融合して第1の融合データを生成する第1の融合部と、
前記第1の融合データに対し、前記所定の置換テーブルに基づいた置換処理を実行し、置換データを出力するデータ置換部と、
前記置換データと、前記複数の入力データの中から得られる少なくとも1つの入力データとを融合して第2の融合データを生成する第2の融合部と、
少なくとも前記第2の融合データを含むデータを入力とし、前記拡大鍵データを作成する拡大鍵作成部とを含む
ことを特徴とする請求項8に記載の拡大鍵生成装置。
The expanded key calculation unit,
A first fusion unit that fuses at least two input data from the plurality of input data to generate first fusion data;
A data replacement unit that performs a replacement process on the first fusion data based on the predetermined replacement table and outputs replacement data;
A second fusion unit that fuses the replacement data and at least one input data obtained from the plurality of input data to generate second fusion data;
The expanded key generation device according to claim 8, further comprising: an expanded key generation unit that receives data including at least the second fusion data and generates the expanded key data.
前記拡大鍵算出部は、前記複数の入力データの融合の途中結果と最終結果とを連結して前記拡大鍵データを作成する
ことを特徴とする請求項8に記載の拡大鍵生成装置。
9. The expanded key generation apparatus according to claim 8, wherein the expanded key calculation unit generates the expanded key data by linking an intermediate result and a final result of the fusion of the plurality of input data.
暗号鍵データを用いて平文データを暗号化する暗号化装置であって、
請求項1に記載の拡大鍵生成装置と、
前記平文データを前記拡大鍵生成装置より生成される複数の拡大鍵データに基づいて暗号化し、暗号文データを生成する手段とを備える
ことを特徴とする暗号化装置。
An encryption device for encrypting plaintext data using encryption key data,
An extended key generation device according to claim 1,
Means for encrypting the plaintext data based on a plurality of pieces of expanded key data generated by the expanded key generation apparatus to generate ciphertext data.
暗号鍵データを用いて平文データを暗号化する暗号化装置であって、
請求項4に記載の拡大鍵生成装置と、
前記平文データを前記拡大鍵生成装置より生成される複数の拡大鍵データに基づいて暗号化し、暗号文データを生成する手段とを備える
ことを特徴とする暗号化装置。
An encryption device for encrypting plaintext data using encryption key data,
An extended key generation device according to claim 4,
Means for encrypting the plaintext data based on a plurality of pieces of expanded key data generated by the expanded key generation apparatus to generate ciphertext data.
暗号鍵データを用いて平文データを暗号化する暗号化装置であって、
請求項5に記載の拡大鍵生成装置と、
前記平文データを前記拡大鍵生成装置より生成される複数の拡大鍵データに基づいて暗号化し、暗号文データを生成する手段とを備える
ことを特徴とする暗号化装置。
An encryption device for encrypting plaintext data using encryption key data,
An extended key generation device according to claim 5,
Means for encrypting the plaintext data based on a plurality of pieces of expanded key data generated by the expanded key generation apparatus to generate ciphertext data.
暗号鍵データを用いて平文データを暗号化する暗号化装置であって、
請求項8に記載の拡大鍵生成装置と、
前記平文データを前記拡大鍵生成装置より生成される複数の拡大鍵データに基づいて暗号化し、暗号文データを生成する手段とを備える
ことを特徴とする暗号化装置。
An encryption device for encrypting plaintext data using encryption key data,
An extended key generation device according to claim 8,
Means for encrypting the plaintext data based on a plurality of pieces of expanded key data generated by the expanded key generation apparatus to generate ciphertext data.
暗号鍵データを用いて暗号文データを復号する復号装置であって、
前記暗号鍵データを受け、複数の拡大鍵データを請求項1に記載の拡大鍵生成装置とは逆の順序で生成する拡大鍵逆生成手段と、
前記複数の拡大鍵データに基づいて、前記暗号文データを復号する逆データ撹乱手段とを備え、
前記拡大鍵逆生成手段は、
前記請求項1に記載の拡大鍵生成装置のうちの所定段数の鍵変換部の処理を1段の処理で実行する鍵補正部と、
一列に接続された複数の逆鍵変換部とを有し、
前記複数の逆鍵変換部は、各々、前記鍵補正部からの出力データまたは前段の逆鍵変換部からの出力データを入力データとして受け、前記入力データより前記拡大鍵データと後段の逆鍵変換部への出力データを作成し、作成される拡大鍵データは前記請求項1に記載の拡大鍵生成装置での作成順序とは逆である
ことを特徴とする復号装置。
A decryption device for decrypting ciphertext data using encryption key data,
An extended key inverse generating means for receiving the encryption key data and generating a plurality of extended key data in the reverse order to the extended key generation device according to claim 1;
On the basis of the plurality of expanded key data, comprising an inverse data disturbance means for decrypting the ciphertext data,
The expanded key inverse generation means,
A key correction unit that executes the processing of the key conversion unit of a predetermined number of stages in the expanded key generation device according to claim 1 in one-stage processing;
A plurality of reverse key conversion units connected in a row,
The plurality of inverse key conversion units each receive output data from the key correction unit or output data from a preceding inverse key conversion unit as input data, and receive the expanded key data and a subsequent inverse key conversion from the input data. 2. A decryption device for generating output data to a unit, wherein the generated expanded key data is in the reverse order of generation by the expanded key generation device according to claim 1.
暗号鍵データを用いて暗号文データを復号する復号装置であって、
前記暗号鍵データを受け、複数の拡大鍵データを請求項4に記載の拡大鍵生成装置とは逆の順序で生成する拡大鍵逆生成手段と、
前記複数の拡大鍵データに基づいて、前記暗号文データを復号する逆データ撹乱手段とを備え、
前記拡大鍵逆生成手段は、
前記請求項4に記載の拡大鍵生成装置のうちの所定段数の鍵変換部の処理を1段の処理で実行する鍵補正部と、
一列に接続された複数の逆鍵変換部とを有し、
前記複数の逆鍵変換部は、各々、前記鍵補正部からの出力データまたは前段の逆鍵変換部からの出力データを入力データとして受け、前記入力データより前記拡大鍵データと後段の逆鍵変換部への出力データを作成し、作成される拡大鍵データは前記請求項4に記載の拡大鍵生成装置での作成順序とは逆である
ことを特徴とする復号装置。
A decryption device for decrypting ciphertext data using encryption key data,
An extended key reverse generating means for receiving the encryption key data and generating a plurality of expanded key data in the reverse order of the expanded key generating apparatus according to claim 4;
On the basis of the plurality of expanded key data, comprising an inverse data disturbance means for decrypting the ciphertext data,
The expanded key inverse generation means,
A key correction unit that executes the processing of the key conversion unit of a predetermined number of stages in the expanded key generation device according to claim 4 in one-stage processing;
A plurality of reverse key conversion units connected in a row,
The plurality of inverse key conversion units each receive output data from the key correction unit or output data from a preceding inverse key conversion unit as input data, and receive the expanded key data and a subsequent inverse key conversion from the input data. 5. A decryption apparatus, wherein output data to a unit is generated, and the generated expanded key data is in the reverse order of the generation order in the expanded key generation apparatus according to claim 4.
暗号鍵データを用いて暗号文データを復号する復号装置であって、
前記暗号鍵データを受け、複数の拡大鍵データを請求項5に記載の拡大鍵生成装置とは逆の順序で生成する拡大鍵逆生成部手段と、
前記複数の拡大鍵データに基づいて、前記暗号文データを復号する逆データ撹乱手段とを備え、
前記拡大鍵逆生成手段は、
前記請求項5に記載の拡大鍵生成装置のうちの所定段数の鍵変換部の処理を1段の処理で実行する鍵補正部と、
一列に接続された複数の逆鍵変換部とを有し、
前記複数の逆鍵変換部は、各々、前記鍵補正部からの出力データまたは前段の逆鍵変換部からの出力データを入力データとして受け、前記入力データより前記拡大鍵データと後段の逆鍵変換部への出力データを作成し、作成される拡大鍵データは前記請求項5に記載の拡大鍵生成装置での作成順序とは逆である
ことを特徴とする復号装置。
A decryption device for decrypting ciphertext data using encryption key data,
An extended key inverse generation unit that receives the encryption key data and generates a plurality of extended key data in the reverse order to the extended key generation device according to claim 5,
On the basis of the plurality of expanded key data, comprising an inverse data disturbance means for decrypting the ciphertext data,
The expanded key inverse generation means,
A key correction unit that executes processing of a key conversion unit of a predetermined number of stages in the expanded key generation device according to claim 5 in one-stage processing,
A plurality of reverse key conversion units connected in a row,
The plurality of inverse key conversion units each receive output data from the key correction unit or output data from a preceding inverse key conversion unit as input data, and receive the expanded key data and a subsequent inverse key conversion from the input data. 6. A decryption device, wherein output data to a unit is created, and the created expanded key data is in the reverse order of creation by the expanded key generation device according to claim 5.
暗号鍵データを用いて暗号文データを復号する復号装置であって、
前記暗号鍵データを受け、複数の拡大鍵データを請求項8に記載の拡大鍵生成装置とは逆の順序で生成する拡大鍵逆生成手段と、
前記複数の拡大鍵データに基づいて、前記暗号文データを復号する逆データ撹乱手段とを備え、
前記拡大鍵逆生成手段は、
前記請求項8に記載の拡大鍵生成装置のうちの所定段数の鍵変換部の処理を1段の処理で実行する鍵補正部と、
一列に接続された複数の逆鍵変換部とを有し、
前記複数の逆鍵変換部は、各々、前記鍵補正部からの出力データまたは前段の逆鍵変換部からの出力データを入力データとして受け、前記入力データより前記拡大鍵データと後段の逆鍵変換部への出力データを作成し、作成される拡大鍵データは前記請求項8に記載の拡大鍵生成装置での作成順序とは逆である
ことを特徴とする復号装置。
A decryption device for decrypting ciphertext data using encryption key data,
An extended key reverse generation means for receiving the encryption key data and generating a plurality of expanded key data in the reverse order to the expanded key generation device according to claim 8,
On the basis of the plurality of expanded key data, comprising an inverse data disturbance means for decrypting the ciphertext data,
The expanded key inverse generation means,
9. A key correction unit that executes processing of a key conversion unit of a predetermined number of stages in the expanded key generation device according to claim 8 in one-stage processing;
A plurality of reverse key conversion units connected in a row,
The plurality of inverse key conversion units each receive output data from the key correction unit or output data from a preceding inverse key conversion unit as input data, and receive the expanded key data and a subsequent inverse key conversion from the input data. 9. A decrypting device, wherein output data to a unit is created, and the created expanded key data is in the reverse order of creation by the expanded key generating device according to claim 8.
暗号鍵データを用いて平文データを暗号化し、暗号文データを生成する暗号化装置と、
前記暗号鍵データを用いて前記暗号文データを復号する復号装置とを備え、
前記暗号化装置は、
前記暗号鍵データを入力とし、複数の拡大鍵データを出力する拡大鍵生成手段と、
前記複数の拡大鍵データに基づいて、前記平文データを暗号化するデータ撹乱手段とを有し、
前記拡大鍵生成手段は、
前記暗号鍵データを複数の部分鍵データに分割するデータ分割部と、
前記複数の部分鍵データを入力とし、前記複数の拡大鍵データを出力する一列に接続された複数の鍵変換部とを含み、
前記複数の鍵変換部の各々は、
前記複数の部分鍵データまたは前段の鍵変換部からの複数の出力データを複数の入力データとして受け、前記複数の入力データの各々について、各ビットの値が相互に干渉しない固定的な変換処理を実行し、後段の鍵変換部への複数の出力データを算出する出力算出部と、
前記複数の入力データを融合して、前記拡大鍵データを算出する拡大鍵算出部とを含む
ことを特徴とする暗号化システム。
An encryption device that encrypts plaintext data using the encryption key data and generates encrypted data;
A decryption device that decrypts the ciphertext data using the encryption key data,
The encryption device,
An expanded key generation unit that receives the encryption key data as input and outputs a plurality of expanded key data;
Based on the plurality of expanded key data, having a data disturbance means to encrypt the plaintext data,
The expanded key generation means includes:
A data dividing unit that divides the encryption key data into a plurality of partial key data,
A plurality of key conversion units connected to a row that receives the plurality of partial key data as input and outputs the plurality of expanded key data,
Each of the plurality of key conversion units,
The plurality of partial key data or the plurality of output data from the key conversion unit at the preceding stage is received as a plurality of input data, and for each of the plurality of input data, a fixed conversion process in which each bit value does not interfere with each other is performed. An output calculation unit that executes and calculates a plurality of output data to a key conversion unit in a subsequent stage;
An encryption key calculation unit for calculating the expansion key data by fusing the plurality of input data.
暗号鍵データを入力とし、複数の拡大鍵データを出力する拡大鍵生成方法であって、
暗号鍵データを複数の部分鍵データに分割するステップと、
前記複数の部分鍵データを入力とし、複数の拡大鍵データを出力する一連の複数の鍵変換ステップとを含み、
前記複数の鍵変換ステップの各々は、
前記複数の部分鍵データまたは前段の鍵変換ステップで出力される複数の出力データを複数の入力データとし、前記複数の入力データの各々について、各ビットの値が相互に干渉しない固定的な変換処理を実行し、後段の鍵変換ステップで用いられる複数の出力データを算出するステップと、
前記複数の入力データを融合して、前記拡大鍵データを算出するステップとを含む
ことを特徴とする拡大鍵生成方法。
An extended key generation method for inputting encryption key data and outputting a plurality of extended key data,
Dividing the encryption key data into a plurality of partial key data;
A plurality of key conversion steps of inputting the plurality of partial key data and outputting a plurality of expanded key data,
Each of the plurality of key conversion steps includes:
A fixed conversion process in which the plurality of partial key data or the plurality of output data output in the preceding key conversion step is used as a plurality of input data, and for each of the plurality of input data, the value of each bit does not interfere with each other. And calculating a plurality of output data used in the subsequent key conversion step,
Fusing the plurality of input data to calculate the expanded key data.
コンピュータを、平文データに対して暗号鍵データを用いて暗号化処理を行なう暗号化装置として機能させるためのプログラムであって、
前記暗号化装置は、
前記暗号鍵データを入力とし、複数の拡大鍵データを出力する拡大鍵生成手段と、
前記平文データを前記複数の拡大鍵データに基づいて暗号化し、暗号文データを生成する手段とを備え、
前記拡大鍵生成手段は、
前記暗号鍵データを複数の部分鍵データに分割するデータ分割部と、
前記複数の部分鍵データを入力とし、前記複数の拡大鍵データを出力する一列に接続された複数の鍵変換部とを有し、
前記複数の鍵変換部の各々は、
前記複数の部分鍵データまたは前段の鍵変換部からの複数の出力データを複数の入力データとして受け、前記複数の入力データの各々について、各ビットの値が相互に干渉しない固定的な変換処理を実行し、後段の鍵変換部への複数の出力データを算出する出力算出部と、
前記複数の入力データを融合して、前記拡大鍵データを算出する拡大鍵算出部とを含む
ことを特徴とするプログラム。
A program for causing a computer to function as an encryption device that performs encryption processing on plaintext data using encryption key data,
The encryption device,
An expanded key generation unit that receives the encryption key data as input and outputs a plurality of expanded key data;
Means for encrypting the plaintext data based on the plurality of expanded key data, and generating ciphertext data,
The expanded key generation means includes:
A data dividing unit that divides the encryption key data into a plurality of partial key data,
A plurality of key conversion units connected to a line that receives the plurality of partial key data as input and outputs the plurality of expanded key data,
Each of the plurality of key conversion units,
The plurality of partial key data or the plurality of output data from the key conversion unit at the preceding stage is received as a plurality of input data, and for each of the plurality of input data, a fixed conversion process in which each bit value does not interfere with each other is performed. An output calculation unit that executes and calculates a plurality of output data to a key conversion unit in a subsequent stage;
A program, comprising: an expanded key calculation unit that calculates the expanded key data by fusing the plurality of input data.
JP2003067218A 2002-04-03 2003-03-12 Extended key generation device, encryption device, and encryption system Expired - Fee Related JP4515716B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003067218A JP4515716B2 (en) 2002-04-03 2003-03-12 Extended key generation device, encryption device, and encryption system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002101074 2002-04-03
JP2003067218A JP4515716B2 (en) 2002-04-03 2003-03-12 Extended key generation device, encryption device, and encryption system

Publications (3)

Publication Number Publication Date
JP2004004603A true JP2004004603A (en) 2004-01-08
JP2004004603A5 JP2004004603A5 (en) 2006-03-02
JP4515716B2 JP4515716B2 (en) 2010-08-04

Family

ID=30446595

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003067218A Expired - Fee Related JP4515716B2 (en) 2002-04-03 2003-03-12 Extended key generation device, encryption device, and encryption system

Country Status (1)

Country Link
JP (1) JP4515716B2 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008503162A (en) * 2004-06-14 2008-01-31 ザ・ユニバーシティ・オブ・ノース・カロライナ・アット・グリーンズボロ System and method for digital content security
WO2009087972A1 (en) * 2008-01-09 2009-07-16 Nec Corporation Data transmission device, data reception device, methods therefor, recording medium, and data communication system therefor
JP2010182342A (en) * 2009-02-03 2010-08-19 Hitachi Ltd Method of evaluating reproduced signal and optical disk drive
JP2010186558A (en) * 2010-06-03 2010-08-26 Hitachi Ltd Method of evaluating reproduction signal and optical disk device
JP2010250881A (en) * 2009-04-14 2010-11-04 Hitachi Ltd Recording condition adjusting method and optical disc device
JP2011150748A (en) * 2010-01-20 2011-08-04 Hitachi Consumer Electronics Co Ltd Method for adjusting recording conditions and optical disk device
KR101312374B1 (en) * 2011-07-25 2013-09-27 소프트포럼 주식회사 Data size adjustment apparatus and method

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05501925A (en) * 1989-08-17 1993-04-08 クリプテック・インク encryption system
JPH06102821A (en) * 1992-09-22 1994-04-15 Sony Corp Cyphering device
JPH06102820A (en) * 1992-09-22 1994-04-15 Sony Corp Cyphering device
JPH0927803A (en) * 1995-07-11 1997-01-28 Nippon Telegr & Teleph Corp <Ntt> Ciphering/deciphering device
JPH1124559A (en) * 1997-06-30 1999-01-29 Nippon Telegr & Teleph Corp <Ntt> Ciphering device
JPH11338345A (en) * 1998-05-28 1999-12-10 Nippon Telegr & Teleph Corp <Ntt> Code key schedule device and recording medium with its program recorded
JP2000056679A (en) * 1998-08-11 2000-02-25 Fujitsu Ltd Key schedule apparatus for des
JP2000066586A (en) * 1998-08-24 2000-03-03 Toshiba Corp Data processor and communication system as well as recording medium
JP2001142395A (en) * 1999-08-31 2001-05-25 Matsushita Electric Ind Co Ltd Extended key generator, ciphering/deciphering device, extended key generating method and recording medium
JP2002023622A (en) * 2000-07-12 2002-01-23 Toshiba Corp Ciphering device, deciphering device, device and method for generating extended key, and recording medium
JP2002091296A (en) * 2000-07-13 2002-03-27 Fujitsu Ltd Device and program for generating expanded key, and recording medium
JP2002366029A (en) * 2001-06-13 2002-12-20 Fujitsu Ltd Encipherment safe against dpa(differential power analysis)

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05501925A (en) * 1989-08-17 1993-04-08 クリプテック・インク encryption system
JPH06102821A (en) * 1992-09-22 1994-04-15 Sony Corp Cyphering device
JPH06102820A (en) * 1992-09-22 1994-04-15 Sony Corp Cyphering device
JPH0927803A (en) * 1995-07-11 1997-01-28 Nippon Telegr & Teleph Corp <Ntt> Ciphering/deciphering device
JPH1124559A (en) * 1997-06-30 1999-01-29 Nippon Telegr & Teleph Corp <Ntt> Ciphering device
JPH11338345A (en) * 1998-05-28 1999-12-10 Nippon Telegr & Teleph Corp <Ntt> Code key schedule device and recording medium with its program recorded
JP2000056679A (en) * 1998-08-11 2000-02-25 Fujitsu Ltd Key schedule apparatus for des
JP2000066586A (en) * 1998-08-24 2000-03-03 Toshiba Corp Data processor and communication system as well as recording medium
JP2001142395A (en) * 1999-08-31 2001-05-25 Matsushita Electric Ind Co Ltd Extended key generator, ciphering/deciphering device, extended key generating method and recording medium
JP2002023622A (en) * 2000-07-12 2002-01-23 Toshiba Corp Ciphering device, deciphering device, device and method for generating extended key, and recording medium
JP2002091296A (en) * 2000-07-13 2002-03-27 Fujitsu Ltd Device and program for generating expanded key, and recording medium
JP2002366029A (en) * 2001-06-13 2002-12-20 Fujitsu Ltd Encipherment safe against dpa(differential power analysis)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008503162A (en) * 2004-06-14 2008-01-31 ザ・ユニバーシティ・オブ・ノース・カロライナ・アット・グリーンズボロ System and method for digital content security
WO2009087972A1 (en) * 2008-01-09 2009-07-16 Nec Corporation Data transmission device, data reception device, methods therefor, recording medium, and data communication system therefor
JP2010182342A (en) * 2009-02-03 2010-08-19 Hitachi Ltd Method of evaluating reproduced signal and optical disk drive
US8107339B2 (en) 2009-02-03 2012-01-31 Hitachi Consumer Electronics Co., Ltd. Method of evaluating reproduce signal and optical disc drive
US8154973B2 (en) 2009-02-03 2012-04-10 Hitachi Consumer Electronics Co., Ltd. Method of evaluating reproduce signal and optical disc drive
JP2010250881A (en) * 2009-04-14 2010-11-04 Hitachi Ltd Recording condition adjusting method and optical disc device
US8085640B2 (en) 2009-04-14 2011-12-27 Hitachi Consumer Electronics Co., Ltd. Adjusting method for recording condition and optical disc device
US8264932B2 (en) 2009-04-14 2012-09-11 Hitachi Consumer Electronics Co., Ltd. Adjusting method for recording condition and optical disc device
JP2011150748A (en) * 2010-01-20 2011-08-04 Hitachi Consumer Electronics Co Ltd Method for adjusting recording conditions and optical disk device
JP2010186558A (en) * 2010-06-03 2010-08-26 Hitachi Ltd Method of evaluating reproduction signal and optical disk device
KR101312374B1 (en) * 2011-07-25 2013-09-27 소프트포럼 주식회사 Data size adjustment apparatus and method

Also Published As

Publication number Publication date
JP4515716B2 (en) 2010-08-04

Similar Documents

Publication Publication Date Title
AU2003213318B2 (en) Block cipher apparatus using auxiliary transformation
US8165288B2 (en) Cryptographic processing apparatus and cryptographic processing method, and computer program
US8396210B2 (en) Cryptographic processing apparatus and cryptographic processing method, and computer program
US20140192973A1 (en) Encryption processing apparatus, encryption processing method, and computer program
KR100377172B1 (en) Key Scheduller of encryption device using data encryption standard algorithm
JPWO2009087972A1 (en) Data transmitting apparatus, data receiving apparatus, methods thereof, computer program, and data communication system thereof
JP2011512562A (en) Random encryption and decryption method for access and communication data
JP2017216619A (en) Information processing device, information processing method and program
EP1351430B1 (en) Expansion key generating device, encryption device and encryption system
KR20050078271A (en) Hardware cryptographic engine and method improving power consumption and operation speed
JP5617845B2 (en) ENCRYPTION DEVICE, ENCRYPTION METHOD, AND PROGRAM
JP4515716B2 (en) Extended key generation device, encryption device, and encryption system
JP5182295B2 (en) Encryption apparatus and encryption processing method
JP4189439B2 (en) Cryptographic processing apparatus, data conversion method, data conversion program, recording medium, and integrated circuit
RU2738321C1 (en) Cryptographic transformation method and device for its implementation
Labbi et al. Symmetric encryption algorithm for RFID systems using a dynamic generation of key
KR100494560B1 (en) Real time block data encryption/decryption processor using Rijndael block cipher and method therefor
JP3190648B2 (en) Data encryption apparatus and method
JPH10153954A (en) Ciphering device
KR100316025B1 (en) Encryption and decryption device using data encryption standard algorithm
KR100546777B1 (en) Apparatus and method for SEED Encryption/Decryption, and F function processor therefor
JP2870532B2 (en) Cryptographic converter
JPH10153955A (en) Ciphering device
Özkaynak et al. Fast software implementation of des for lightweight platforms
CN116132015A (en) Balanced universal key expansion quick method

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060112

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090707

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090828

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4515716

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130521

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130521

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees