JP2004004603A - Extension key generation apparatus, enciphering apparatus and enciphering system - Google Patents
Extension key generation apparatus, enciphering apparatus and enciphering system Download PDFInfo
- 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
Links
Images
Abstract
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をそれぞれ求める。
【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をそれぞれ求める。
【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を求める。
【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をそれぞれ算出する。
【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を求める。
【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)に示される関係が成立する。
【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をそれぞれ算出する。
【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】
【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をそれぞれ算出する。
【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
[0004]
The expanded
[0005]
The expanded keys output from the
[0006]
The data disturbing unit 5 is connected to the expanded
[0007]
FIG. 17 is a diagram showing the internal configuration of each of the
[0008]
Each of the
[0009]
Each of the
[0010]
Each of the
[0011]
Hereinafter, the encryption processing of the Rijndael encryption method performed by the
[0012]
The data input to the
[0013]
[0014]
Each of the
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
[0016]
The exclusive OR
[0017]
The
[0018]
SK = Y0‖Y1‖Y2‖Y3 (6)
Each of the
[0019]
FIG. 18 is a diagram showing the internal configuration of a decryption device using the Rijndael encryption method. The
[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
[0021]
The predetermined operations executed by
[0022]
However, unlike the
[0023]
The expanded key inverse generation unit 8 is connected to the
[0024]
The expanded keys output from the reverse
[0025]
The inverse data disturber 7 is connected to the
[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
[0027]
FIG. 19 is a diagram showing the internal configuration of each of the reverse
[0028]
Each of the reverse
[0029]
Each of the inverse
[0030]
Each of the reverse
[0031]
Hereinafter, the decryption process of the Rijndael encryption method performed by the
[0032]
The
[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
[0034]
The reverse key conversion processing executed by each of the reverse
The exclusive OR
[0035]
The
T = Rcon (+) Perm (ROTL8 (Z3)) (10)
[0036]
The exclusive OR
Z0 = T (+) Y0 (11)
[0037]
The
SK = Z0‖Z1‖Z2‖Z3 (12)
[0038]
Each of the reverse
[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
[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
[0041]
Next, the operation of the
[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
[0044]
On the other hand, as shown in FIG. 18, in the inverse data disturbing unit 7 of the
[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
[0046]
Also, as shown in FIG. 21, in an ETC (Electronic Toll Collection)
[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
[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
[0061]
The
[0062]
FIG. 2 is a block diagram illustrating an internal configuration of the
[0063]
Each of the
[0064]
FIG. 3 is a block diagram showing the internal configuration of the
[0065]
The expanded
[0066]
The expanded
[0067]
The
[0068]
FIG. 4 is a block diagram showing the internal configuration of the final
[0069]
The expanded
[0070]
The exclusive OR
[0071]
Hereinafter, the operation of the
The overall processing flow of the
[0072]
The
[0073]
The
[0074]
The
[0075]
Hereinafter, similar processing is executed in the
[0076]
The
[0077]
The data conversion processing executed by each of the
[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
A = B0‖B1‖B2‖B3 (14)
[0080]
The
[0081]
The
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
[0086]
The
Y = C0‖C1‖C2‖C3 (16)
[0087]
A key conversion process executed by each of the
[0088]
The expanded key calculation process executed by the expanded
The exclusive OR
A = X1 (+) X3 (17)
[0089]
The data replacement unit 212 receives the data A from the exclusive-
[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
C = B (+) X2 (19)
[0092]
The exclusive OR operation unit 214 receives the data C from the exclusive OR
D = C (+) X1 (20)
[0093]
The exclusive OR
E = D (+) X0 (21)
[0094]
The
SK = C‖E (22)
[0095]
Next, a process (output calculation process) of calculating the first to fourth output data Y0 to Y3 in the
[0096]
The
[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
[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
[0100]
The reverse
[0101]
FIG. 7 is a block diagram showing the internal configuration of the
[0102]
Each of the inverse
[0103]
FIG. 8 is a block diagram showing the internal configuration of the
[0104]
FIG. 9 is a block diagram showing the internal configuration of the reverse
[0105]
The expanded
[0106]
The extended
[0107]
The output
[0108]
The final
Hereinafter, the operation of the
[0109]
The overall processing flow of the
The
[0110]
The reverse
[0111]
The inverse
[0112]
The reverse
[0113]
The inverse
[0114]
Hereinafter, the same operation is performed in the reverse
[0115]
The inverse
[0116]
An inverse data conversion process performed by each of the inverse
The
Y = A0‖A1‖A2‖A3 (27)
[0117]
The
[0118]
The inverse
[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
[0122]
That is, a relationship expressed by the following equation (29) is established between the replacement table Sbox and the reverse replacement table InvSbox.
[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
[0125]
The
Z = B0‖B1‖B2‖B3 (30)
[0126]
A key correction process performed by the
[0127]
The
[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
Next, the meaning of the shift amount in the
[0130]
Assuming that the first to fourth output data Y0 to Y3 obtained by the
[0131]
When the same processing is executed for the
[0132]
[Table 1]
[0133]
Although FIG. 8 shows an example of the
[0134]
Similarly, the number of cyclic bit shifts in the
[0135]
The reverse key conversion process executed by the reverse
[0136]
The expanded key calculation process executed by the expanded
The exclusive OR
A = Y1 (+) Y3 (35)
[0137]
The data replacement unit 412 receives the data A from the exclusive OR
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
C = B (+) Y2 (37)
[0140]
The exclusive OR
D = C (+) Y1 (38)
[0141]
The exclusive OR
E = D (+) Y0 (39)
[0142]
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
[0144]
The
[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
[0147]
However, as shown in FIG. 6, in
[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
[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
[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
[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
[0152]
Further, in the
[0153]
Note that the
[0154]
Furthermore, the
[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
[0156]
Even with such conversion, similar to the
[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
[0158]
Furthermore, the exclusive OR
[0159]
Furthermore, the exclusive OR
[0160]
Furthermore, the exclusive OR
[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
[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
FIG. 2 is a block diagram illustrating an example of a configuration of
FIG. 3 is a block diagram illustrating an example of a configuration of
FIG. 4 is a block diagram illustrating an example of a configuration of a final
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
FIG. 7 is a block diagram illustrating an example of a configuration of inverse
FIG. 8 is a block diagram illustrating an example of a configuration of a
FIG. 9 is a block diagram illustrating an example of a configuration of reverse
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
FIG. 13 is a diagram for explaining a
FIG. 14 is a diagram for explaining a
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
FIG. 17 is a block diagram showing a configuration of
FIG. 18 is a block diagram illustrating a configuration of a
FIG. 19 is a block diagram showing a configuration of reverse
FIG. 20 is a block diagram showing a configuration of a
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
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に記載の拡大鍵生成装置。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に記載の拡大鍵生成装置。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.
ことを特徴とする請求項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に記載の拡大鍵生成装置。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.
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)
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)
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) |
-
2003
- 2003-03-12 JP JP2003067218A patent/JP4515716B2/en not_active Expired - Fee Related
Patent Citations (12)
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)
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 |