JP2005018310A - データ変換方法および装置 - Google Patents
データ変換方法および装置 Download PDFInfo
- Publication number
- JP2005018310A JP2005018310A JP2003180561A JP2003180561A JP2005018310A JP 2005018310 A JP2005018310 A JP 2005018310A JP 2003180561 A JP2003180561 A JP 2003180561A JP 2003180561 A JP2003180561 A JP 2003180561A JP 2005018310 A JP2005018310 A JP 2005018310A
- Authority
- JP
- Japan
- Prior art keywords
- data
- data conversion
- state transition
- unit
- conversion circuit
- 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.)
- Withdrawn
Links
Images
Abstract
【課題】実行時にデータ変換の処理スループットを保ったままデータ変換の複雑度を向上させること。
【解決手段】入力データを再構成可能ハードウェア上に構成したデータ変換回路Cにより変換して出力データとする。外部から受信する鍵データに基づきデータ変換規則を生成し、該生成したデータ変換規則に基づき再構成可能ハードウェア上に前記データ変換回路Cを設定する。
【選択図】 図1
【解決手段】入力データを再構成可能ハードウェア上に構成したデータ変換回路Cにより変換して出力データとする。外部から受信する鍵データに基づきデータ変換規則を生成し、該生成したデータ変換規則に基づき再構成可能ハードウェア上に前記データ変換回路Cを設定する。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、ある対象データの内容を鍵データに従って別のデータに変換するデータ変換方法およびその装置に関するものである。
【0002】
【従来の技術】
以下、セルラーオートマトンを使用した暗号化/復号化装置をデータ変換装置の一例として説明を行う。以下では、データの暗号化/復号化装置がデータ変換装置に相当する。
【0003】
[基本となるデータ変換方式(非特許文献1)]
まず、具体例を示す基礎となる、セルラーオートマトンを利用した共通鍵暗号方式によるデータの暗号化/復号化処理のアルゴリズムについて説明する。この処理は次のような考え方を基本としている。まず、平文データをセルラーオートマトンを構成する各セルの初期状態としてセットする。そして、秘密鍵からセルラーオートマトンの状態遷移規則(部分変換規則)を生成する。セルラーオートマトンは生成された規則に従って状態遷移を繰り返し、状態遷移後の各セルの状態が暗号文データとなる。なお、この処理における秘密鍵が鍵データに相当する。
【0004】
前提とするセルラーオートマトンは図22のようなn個のセルで構成される一次元のものである。C0,C1,・・・,Cn−1はそれぞれセルラーオートマトンを形成するセルであり、各セルはそれぞれ0または1の2つの状態のいずれかをとる。各セルは記憶素子mおよび演算部πを持つ。各セルの状態をs0,s1,・・・,sn−1と表すと、セルラーオートマトンの系全体の状態Sを次の式
で表すことが可能である。
【0005】
各セルにはそれぞれ次状態を決定するための状態遷移規則が定義される。C0,C1,・・・,Cn−1の各セルの状態遷移規則をそれぞれπ0,π1,・・・,πn−1と表わすとし、系全体の状態遷移規則をΠと表わすとする。各セルは時刻がtからt+1に推移すると、状態遷移規則Πに従って状態s0,s1,・・・,sn−1を更新する。時刻tにおける系全体の状態をS(t)、各セルの状態をそれぞれs0(t),s1(t),・・・,sn−1(t)と表すとする。また、状態遷移規則Πにより遷移することを明示するため、S(t+1)=Π・S(t)とも表記する。
【0006】
例えば、セルの数(ビット数)n=4で、状態遷移規則Πが以下のように定義されている場合、
S(t)は図23のような変化を起こす。図23において、節点中の各数字はある時刻tにおける系全体の状態S(t)の値を、節点間を接続する矢印は時刻tが1増加したときの系全体の状態Sの変化を表す。
【0007】
さて、系全体の状態S(t)の変化は状態遷移規則Πに依存して一般には様々な形態をとる。しかし、状態遷移規則Πを適切に選択することにより、図23のように周期的に初期状態に戻るような状態遷移を起こさせることが可能である。図23の状態遷移では8つの状態で構成される状態遷移のサイクルが2つ存在している。
【0008】
このような状態遷移のサイクルをもつセルラーオートマトンでは、任意の時刻tについて次の式
が成立する。ただし、Π2rは状態遷移規則Πによる状態遷移を2r回行うことを示す。従って、2rは状態遷移のサイクル1つを構成する状態の数である。これを状態遷移周期と呼ぶ。2rは一般に最小の状態遷移周期の任意の倍数をとることが可能であるが、以下では、2rはそれらのうち最小のものに限定する。つまり、
とする。
【0009】
この性質を利用すると、任意の状態SについてT=ΠrS,S=ΠrT、S≠TなるTを定めることが可能である。例えば、図23では2r=8であるため、これを元にS、Tの組を計算すると次の
ようになる。
【0010】
この関係により、状態遷移規則Πから状態Sの値域0≦S<24における整数の変換規則が得られる。これを状態遷移規則Πのデータ変換規則と呼ぶ。データ変換規則は一般に非線形なものとなるため、これら{S,T}の組から状態遷移規則Πを計算するのは困難である。従って、このデータ変換規則を暗号化処理に利用することが可能である。具体的には、平文データを初期状態としてセルラーオートマトンにセットし、これを秘密鍵から生成した状態遷移規則Πにより状態遷移をさせることで、平文データの暗号化が可能である。なお、その原理から、この暗号化方式における暗号文データからの平文データの取得は初期状態に暗号文データをセットし、同様に状態遷移規則Πにより状態遷移させ、状態Sを取り出すことで可能である。
【0011】
より一般的には、状態遷移規則を複数用意し、これを多重に作用させることでさらに暗号の安全性を高める。つまり、秘密鍵から状態遷移規則をΠ0,Π1,・・・,Πp−1のp種類を生成し、それぞれの状態遷移規則に対する状態遷移周期をそれぞれ2r0,2r1,・・・,2rp−1として算出する。そして、セルラーオートマトンの初期状態として平文データをセットし、
を計算することで暗号化を行う。
【0012】
この暗号化方式における暗号強度は、セルラーオートマトンを構成するセルの数nと多重に作用させる状態遷移規則の数pに依存する。つまり、セルの数nが大きいほど、また状態遷移規則の数pが大きいほど暗号の強度は増大する。
【0013】
[従来の装置構成方式]
上記の暗号化/復号化方式の従来の実現方法には大きく2つある。1つは計算機上にプログラムしたソフトウェアによる方法で、もう1つは専用ハードウェアによる方法である。図24にソフトウェアによる実現方法の一例を示す。図24の例はn個のセルで構成されるセルラーオートマトンでのp個の状態遷移規則による暗号化/復号化の処理である。
【0014】
ソフトウェアによる処理では各セルの状態遷移を順次計算して処理を行うため、ステップA5を
回処理する必要がある。ただし、2rjは状態遷移規則Πjにおける状態遷移周期である。
【0015】
次に、図25にセルラーオートマトンを利用した、専用ハードウェアによる従来の暗号化装置の例を示す。この例もn個のセルで構成されたセルラーオートマトンによる暗号化/復号化処理を実現するものである。この暗号化装置はデータ変換部R0と制御部X0から構成される。データ変換部R0はセル状態保持メモリM0,M1,・・・,Mn−1及び状態遷移規則定義メモリRAMから構成される。データ変換部R0にはnビットのアドレスバスABとnビットのデータバスDBが存在し、アドレスバスABは状態遷移規則定義メモリRAMのアドレスポートAP、セル状態保持メモリM0,M1,・・・,Mn−1及び制御部X0と接続されている。またデータバスDBは平文データ/暗号文データIをやりとりする人出力部、制御部X0、状態遷移規則定義メモリRAM及びセル状態保持メモリM0,M1,・・・,Mn−1とそれぞれ接続されている。一方、制御部X0はデータ変換部R0のアドレスバスAB、データバスDBとの接続を利用して状態遷移規則定義メモリRAMにアクセスする機能と鍵データKを受信する機能を持つ。
【0016】
この暗号化装置では、鍵データKを制御部X0が受信し、データ変換部R0の動作を制御部X0が制御することで動作する。制御部X0の制御手順の一例を図26に示す。鍵データKと平文データ/暗号文データIが送られると制御部X0が動作を開始する。なお、Iは暗号化処理時は平文データ、復号化処理時は暗号文データである。最初に制御部X0はステップB1のようにセル状態保持メモリM0,M1,・・・,Mn−1にデータIをセットするようにデータ変換部R0に指示する。次にステップB2のように、制御部X0は鍵データKから状態遷移規則の列Π0,Π1,・・・,Πp−1、及びそれらの状態遷移周期2r0,2r1,・・・,2rp−1を算出する。続いて、ステップB4のように状態遷移規則定義メモリRAMに状態遷移規則を書き込む。具体的には、セルラーオートマトンの系の状態をアドレスとし、次の状態をデータとして状態遷移規則定義メモリRAMに書き込む。
【0017】
ステップB5にあるように、セル状態保持メモリM0,M1,・・・,Mn−1をアドレスとして状態遷移規則定義メモリRAMを読み出し、セル状態保持メモリM0,M1,・・・,Mn−1に書き戻せば、セルラーオートマトンの状態遷移が計算可能である。この処理を状態遷移周期の半分だけ行うように制御部X0がデータ変換部R0に指示する。ステップB5が終了した後、制御部X0はステップB6、ステップB7を処理をしてステップB4に戻る。これで状態遷移規則Π0の処理は終了である。この後、状態遷移規則定義メモリRAMに次の状態遷移規則を書き込み、次の状態遷移を計算する。この繰り返しを行い、全ての状態遷移規則の処理が終了した後、制御部X0はステップB8のようにセル状態保持メモリM0,M1,・・・,Mn−1をデータバスDBに出力するように指示し、暗号化/復号化処理は終了する。
【0018】
【非特許文献1】パリマル パル チャウドリ、ディパンウィッタ ロイ チョードハリ、スクマル ナンディ、サンタヌ チャトパディヤ著、「付加的セルラーオートマトン」、26−55頁、IEEEコンピュータソサエティプレス、1997年 ISBN O−8186−7717−1(Parimal Pal Chaudhuri,Dipanwita Roy Chowdhury,Sukumar Nandi,and Santanu Chattopadhyay.”Additive Cellular Automata”,pp.26−55.IEEE Computer Society Press, 1997.ISBN O−8186−7717−1.)。
【0019】
【発明が解決しようとする課題】
上記したソフトウェアでは逐次実行が基本となるため、この繰り返し処理を行っている間は他の状態遷移規則の計算はできない。従って、ソフトウェアではステップA5の処理回数が増大すると暗号化/復号化処理のスループットが低下する。つまり、ソフトウェアによる実現方法ではセルの数nまたは状態遷移規則の数pを増加させて暗号強度を高めると、暗号化/復号化処理のスループットが低下するという欠点がある。
【0020】
上記した専用ハードウェアによる従来の暗号化/復号化装置では、セルラーオートマトンの構成セル数nがハードウェアの設計時に決定されてしまい、高い機密性の要求される暗号化/復号化処理を行う要求が発生した場合、nの追加によって暗号強度を向上させるのが困難であるという欠点がある。また、暗号強度を向上させるために状態遷移規則の数pを増大させる場合についても、それに応じてステップB5の処理回数が増加するため、暗号化/復号化処理のスループットが低下するという欠点がある。
【0021】
なお、上記ソフトウェアによる方法と専用ハードウェアによる方法を組み合わせた方法も考えられるが、どちらの方法も暗号強度の向上に対して暗号処理のスループットが低下するという欠点を解決することは出来ないため、両者の組み合わせでもこの欠点を解決することが出来ない。
【0022】
加えて、専用ハードウェアによる従来の暗号化/復号化装置では、実用的に考えられる暗号強度においてスループットが保持可能なように装置を設計するため、最も使用頻度が高いと思われる平均的な強度の暗号処理では設計したハードウェアの能力が余剰するという欠点がある。
【0023】
本発明はこれらの欠点を除去するためになされたもので、第1の目的は、実行時に回路の書き換えが可能な再構成可能ハードウェアを利用し、データの変換規則を実行時に再構成可能ハードウェア上に設定することで、データ変換の処理スループットを保ったまま複雑なデータ変換を実現可能たらしめることである。
【0024】
第2の目的は、実行時の変換規則の再構成可能なハードウェアの設定内容を変更することで、データ変換処理のスループットを状況に応じて柔軟に変更し、データ変換処理に必要な資源を最適な量に調整可能とすることである。
【0025】
【課題を解決するための手段】
請求項1にかかる発明は、入力データを再構成可能ハードウェア上に構成したデータ変換部により変換して出力データとするデータ変換方法であって、外部から受信した鍵データに基づきデータ変換規則を生成し、該生成したデータ変換規則に基づき前記再構成可能ハードウェア上に前記データ変換部を構成してデータ変換を行うことを特徴とするデータ変換方法とした。
【0026】
請求項2にかかる発明は、請求項1に記載のデータ変換方法において、前記データ変換規則は逐次実行される複数の部分変換規則の集合で構成し、各部分変換規則毎に独立に動作可能な機能で前記データ変換部を構成することを特徴とするデータ変換方法とした。
【0027】
請求項3にかかる発明は、請求項1又は2に記載のデータ変換方法において、前記データ変換規則を前記鍵データおよび外部から受信する制約条件に基づき生成し、該制約条件はデータ変換の処理単位、要求暗号強度、要求処理スループット、要求消費電力等の条件を設定することを特徴とするデータ変換方法とした。
【0028】
請求項4にかかる発明は、外部から受信した鍵データに基づきデータ変換規則を生成する制御部と、回路の書き換えが可能な再構成可能ハードウェア上に構成され入力データを変換して出力データとするデータ変換部とを具備し、前記データ変換部には前記再構成可能ハードウェア上に前記データ変換規則に基づくデータ変換回路が構成されていることを特徴とするデータ変換装置とした。
【0029】
請求項5にかかる発明は、請求項4に記載のデータ変換装置において、前記データ変換部の前記データ変換回路は、前記データ変換規則を逐次実行可能な複数の部分変換規則に対応し且つ独立動作可能な複数の状態遷移演算手段の集合で構成されていることを特徴とするデータ変換装置とした。
【0030】
請求項6にかかる発明は、請求項4又は5に記載のデータ変換装置において、前記制御部は外部から前記鍵データおよび制約条件を受信して前記鍵データおよび前記制約条件に基づき前記データ変換規則を生成し、前記データ変換部は前記制約条件によりデータ変換の処理単位、要求暗号強度、要求処理スループット、要求消費電力等の条件を設定したデータ変換を行うよう前記データ変換回路が設定されていることを特徴とするデータ変換装置とした。
【0031】
【発明の実施の形態】
[第1の実施形態](請求項1、4) 第1の実施形態のデータ暗号化/復号化装置の構成例を図1に示す。この装置は制御部Xとデータ変換部Rで構成される。制御部Xは鍵データKを受信し、構成データYをデータ変換部Rに送信する機能を持つ。一方、データ変換部Rは平文データあるいは暗号文データIを受信し、暗号文データあるいは平文データOを送信する機能を持つ。この装置が暗号化処理を行う場合にはIは平文データ、Oは暗号文データであり、復号化処理を行う場合にはIは暗号文データ、Oは平文データとなる。データ変換部Rは再構成可能ハードウェアDで構成され、該再構成可能ハードウェアD上にはデータ変換回路Cが構成される。なお、制御部Xも再構成可能ハードウェアDの一部として実現されていても良い。
【0032】
図1の構成によって暗号化処理を行う場合の動作を図1においてセルの数(ビット数)n=4、状態遷移規則(部分変換規則)の数p=1の場合を例にとって説明する。p=1であるため、状態遷移規則はΠ0の1つである。まず、制御部Xは鍵データKを外部から受信する。鍵データKは4ビットで構成されるとし、Kの各ビットKi(0≦i<4)の値に応じてXはi番目のセルの状態遷移規則πiを次の
のように生成するとする。
【0033】
例えば、鍵データKがK3=1、K2=1、K1=1、K0=1である場合、式6で表わされる状態遷移規則の計算を行う回路は図2のようになる。図2のπ0,π1,π2,π3がそれぞれ式6で示される状態遷移規則を計算する回路(XNOR)となっている。図2では、セルラーオートマトンの現状態をI0,I1,I2,I3として入力し、状態遷移の結果をO0,O1,O2,O3として出力する。K3=1、K2=1、K1=1、K0=1である場合、その状態遷移は図3のようになる。状態遷移周期が8となるので、変換規則は状態遷移の演算を4回線り返すことで実現可能である。従って、データ変換回路Cの構成としては図4のようなものが考えられる。
【0034】
なお、実際にこれを装置として実現する際には、K3、K2、K1、K0から状態遷移周期を求める必要がある。式6で表わされるセルラーオートマトンの場合、あるj(0≦j<n)において、j≦i<j+aの範囲で常にKi=1である、という性質を満たすaの集合のうち最大の要素をLとし、rを2(r−1)−1<L≦2r−1を満たす整数とすると、状態遷移周期は2rとなる、という性質があるため(参考文献1)、これを利用して算出する。例えば、K3=1、K2=1、K1=1、K0=1である場合、連続してKi=1となるiの数は4が最大であるため、L=4である。従って、r=3となり、状態遷移周期は2r=8となる。
【0035】
参考文献1:ワーナ プリエス、アドニオス タナイラキス、ハワード C カード著、「セルラーオートマトンの群の性質およびVLSIへの応用」、IEEEトランザクション オン コンピュータ、C−35巻、12号,1013−1024頁、1986年12月(Werner Pries,Adonios Thanailakis,and Howard C.Card ”Group properties of cellular auomata and vlsi applications” IEEE Transactions on Computers,Vol.C−35,No.12,pp.1013−1024,December 1986.)。
【0036】
制御部Xは図4で示す回路を表す構成データYを生成し、再構成可能ハードウェアDに送信する。再構成可能ハードウェアDは構成データYを受信すると、構成データYに従って再構成可能ハードウェアD上にデータ変換回路Cに相当する回路を設定し、データ変換回路Cが回路として動作する状態になる。
【0037】
データ変換回路Cの構成が終了した後、制御部Xは平文データIを4ビット単位でデータ変換部Rに送信するように指示する。送信された平文データはデータ変換回路Cによって演算が行われ、演算結果が暗号文データOとして出力される。これにより、暗号化処理が完了する。
【0038】
この第1の実施形態では、データ変換部Rが再構成可能ハードウェアD上に構成されるため、データ変換処理の複雑さに応じて回路を変更することで、データ変換処理のスループットを調整可能であるという利点がある。
【0039】
[第2の実施形態](請求項2、5)
第2の実施形態は第1の実施形態のデータ変換回路Cの具体的な構成方法に相当する。第2の実施形態として図1におけるデータ変換回路Cの構成例を図5に示す。データ変換回路Cは置換演算ユニットT0,T1,・・・,Tn−1がパイプライン状に接続された形をとる。具体的には、平文データ/暗号文データIが置換演算ユニットT0に入力され、その置換演算ユニットT0の出力が置換演算ユニットT1に入力され、というようにそれぞれが直列に接続された形をとる。そして、置換演算ユニットTn−1の出力が暗号文データ/平文データOとなっている。
【0040】
置換演算ユニットT0,T1,・・・,Tn−1はそれぞれ状態遷移規則Π0,Π1,・・・,Πn−1により作成されるデータ変換規則を実現する。置換演算ユニットT0,T1,・・・,Tn−1の構成例を図6に示す。各データ変換規則は逐次実行される複数の状態遷移規則(部分変換規則)の集合で構成される。すなわち、各置換演算ユニットTi(0≦i<p)は状態遷移演算ユニット(状態遷移演算手段)Si0,Si1,・・・,Si(ri−1)がパイプライン状に接続された形をとる。具体的には、入力Ii0,Ii1,・・・,Ii(n−1)が状態遷移演算ユニットSi0に入力され、その状態遷移演算ユニットSi0の出力が状態遷移演算ユニットSi1に入力され、というようにそれぞれが直列に接続された形をとる。そして、状態遷移演算ユニットSi(ri−1)の出力が置換演算ユニットTiの出力となっている。
【0041】
状態遷移演算ユニットSi0,Si1,・・・,Si(ri−1)はそれぞれ状態遷移規則Πiで規定される状態遷移の演算を1回行う機能を持つ。状態遷移演算ユニットSi0,Si1,・・・,Si(ri−1)の構成例を図7に示す。状態遷移演算ユニットSi0,Si1,・・・,Si(ri−1)は全て同じ機能であるため、一つだけを代表して図7に示している。これを以下状態遷移演算ユニットSiと表記する。状態遷移演算ユニットSiは、状態遷移規則Πiで規定される状態遷移の演算を1回行うセル演算ユニットπi0,πi1,・・・,πi(n−1)と演算結果を格納する1ビット記憶素子mi0,mi1,・・・,mi(n−1)から構成される。状態遷移演算ユニットSiへの入力データにおいて、それぞれj−1,j,j+1ビットめの入力はセル演算ユニットπijに入力され、その演算結果が記憶素子mijに格納される。そして記憶素子mijの内容が状態遷移演算ユニットSiのjビットめの出力データとなっている。
【0042】
このような構成を持ったデータ変換回路Cの具体的な動作を、セルの数(ビット数)n=4、状態遷移規則の数p=1の場合を例に説明する。この場合、状態遷移規則は1つである。そこで、その1つの状態遷移規則として、次のような場合
を例とする。
【0043】
この場合、置換演算ユニットはT0のみである。そして、上の状態遷移規則における状態遷移は図8のようになる。従って、状態遷移周期は8となる。このため、T0は8/2=4つの状態遷移演算ユニットSi0,Si1,Si2,Si3から構成される。そして、各状態遷移演算ユニット内の状態遷移演算回路πi0,πi1,πi2,πi3はそれぞれ2入力のXNOR回路となる。従って、データ変換回路Cは図9のようになる。
【0044】
図9のデータ変換回路Cの動作をI0=0、I1=0、I2=0、I3=0という平文データ/暗号文データが入力された場合を例に説明する。各状態遷移演算ユニットSi0,Si1,Si2,Si3は図8のような状態遷移を計算するので、最初に1ビット記憶素子m00,m01,m02,m03には10進数で15が格納される。すなわちm00=1,m01=1,m02=1,m03=1となる。そして、この値からさらに状態遷移が計算され、1ビット記憶素子m10,m11,m12,m13には10進数で7が格納される。すなわちm10=1,m11=1,m12=1,m13=0となる。以下、同様に、1ビット記憶素子m20,m21,m22,m23には10進数で11が格納される。すなわちm20=1,m21=1,m22=0,m23=1となる。最後に、1ビット記憶素子m30,m31,m32,m33には10進数で1が格納される。すなわちm30=1,m31=0,m32=0,m33=0となる。そして、これが暗号文データ/平文データOとなる。すなわち、O0=1,O1=0,O2=0,O3=0となる。以上の動作によって、データ変換回路Cはデータの変換を行う。
【0045】
再度データ変換回路C全体の構成を見ると、データ変換回路Cは状態遷移演算ユニットを単位とするパイプライン処理によってデータの暗号化を行っていることが分かる。データ変換回路Cは全体で暗号化/復号化の処理を行うが、その内部は逐次的に、かつ各々が独立に実行可能なセルラーオートマトンの状態遷移演算の集合で構成されている。なお、図9は1回の状態遷移演算をパイプライン処理の単位としたデータ変換回路Cの構成であるが、図10のように2回の状態遷移演算をパイプライン処理の単位としたデータ変換回路Cの構成も考えられる。
【0046】
このようなデータ変換回路Cの構成方法が第2の実施形態である。この構成では、暗号化/復号化処理の実行時に制御部Xが鍵データKを受信してからデータ変換回路Cを構成するため、実行時に決定されるセルの数nおよび状態遷移規則の数pに応じてデータ変換回路Cを構成可能である。従って、セルの数nを増加させても各セルの状態遷移を計算する並列度を実行時に増加させられるため、例えば1度に変換するデータのサイズを増大させた場合でもスループットを低下させることなく処理が可能であるという利点がある。また、状態遷移規則の数pを増加させても、各セルの状態遷移を計算するパイプラインの段数を実行時に増加させられるため、例えば暗号強度を増大させた場合でもスループットを低下させることなく処理が可能であるという利点がある。
【0047】
加えて、その他の利点として、データ変換回路Cの回路規模を制限することにより、一般的に回路規模が小さい回路は消費電力が小さいという性質を利用して、データ変換回路Cを許容された消費電力で動作させることが可能である、という利点もある。
【0048】
[第3の実施形態](請求項3、6)
第3の実施形態のデータ暗号化/復号化装置の構成例を図11に示す。この装置は制御部Xとデータ変換部Rで構成される。制御部Xは鍵データKと制約条件Wを受信し、構成データYをデータ変換部Rに送信する機能を持つ。一方、データ変換部Rは平文データ/暗号文データIを受信し、暗号文データ/平文データOを送信する機能を持つ。この装置が暗号化処理を行う場合、Iとして平文データが入力され、Oとして暗号文データが出力される。一方、復号化処理を行う場合、Iとして暗号文データが入力され、Oとして平文データが出力される。データ変換部Rは再構成可能ハードウェアDで構成され、再構成可能ハードウェアD上にはデータ変換回路Cが構成される。なお、制御部Xも再構成可能ハードウェアDの一部として実現されていても良い。
【0049】
前記した第2の実施形態の説明で分かるように、第2の実施形態におけるデータ変換回路Cの構成方法は、セルの数nおよび状態遷移規則の数pを柔軟に変更可能な能力を持つ。これを利用して、データ変換の処理単位、要求暗号強度、要求処理スループット、要求消費電力に応じた制約条件Wを制御部Xに入力し、制御部Xがこの制約条件Wに応じた構成データYを構成し、その構成データYにより再構成可能ハードウェアD上にデータ変換回路Cを設定すれば、要求された制約条件Wに応じた適切な実現形態でデータ変換処理が可能になるという利点がある。
【0050】
以下それぞれの実施例を示す。以下では、制約条件Wに応じて処理形態を変更する実施例として、制約条件WをW0,W1,W2の3ビットで構成する場合について説明する。制御部XはW0の値によってデータ変換回路Cで構成されるパイプラインの段数を変更する。具体的には、W0=0のとき図12のようにデータ変換回路Cのパイプラインを1回の状態遷移演算を単位として構成し、W0=1のとき図13のようにデータ変換回路Cのパイプラインを2回の状態遷移演算を単位として構成するとする。また、制御部XはW1の値によってデータ変換回路Cによって実現するセルラーオートマトンの状態遷移規則の数pを変更する。具体的には、W1=0のとき制御部Xはデータ変換のために状態遷移規則を1つ使用し、W1=1のとき2つ使用するとする。最後に、制御部XはW2の値によってデータ変換回路Cで実現するセルラーオートマトンの構成セル数を変更する。具体的には、W2=0のときセルの数nを4とし、W2=1のとき8とする。鍵データKは4、8、16ビットのいずれかの幅を持つとし、鍵データKに応じて制御部Xは必要な数の状態遷移規則を生成する。
【0051】
<データ変換の処理単位を変更する実施例>
データ変換の処理単位を変更する場合はW2を変更する。データ変換の処理単位を小さくとりたい場合は、外部からW0=0,W1=0,W2=0を制約条件Wとして制御部Xに入力し、鍵データKとして4ビットの値を制御部Xに入力する。この場合、制約条件Wの意味から、制御部Xは▲1▼1回の状態遷移演算をパイプライン処理の単位とする、▲2▼状態遷移規則が1つ、▲3▼セル数が4のセルラーオートマトンの状態遷移演算を行う、ようなデータ変換回路Cの構成データYを生成する。
【0052】
一例として、制御部Xは鍵データKの各ビットKi(0≦i<4)の値に応じてi番目のセルの状態遷移規則πiを次の
のように生成するとして説明する。
【0053】
制御部Xはこの状態遷移1回をパイプライン処理の単位として構成するデータ変換回路Cの構成データYを生成する。データ変換回路Cを決定するには鍵データKから生成した状態遷移規則によるセルラーオートマトンの状態遷移周期を求める必要がある。式8で表わされるセルラーオートマトンの場合、あるj(0≦j<4)において、j≦i<j+aの範囲で常にKi=1である、という性質を満たすaの集合のうち最大の要素をLとし、rを2(r−1)−1<L≦2r−1を満たす整数とすると、状態遷移周期は2rとなる、という性質があるため(参考文献1)、これを利用して算出する。例えば、K3=1,K2=1,K1=1,K0=1である場合、連続してKi=1となるiの数は4が最大であるため、L=4である。従って、r=3となり、状態遷移周期は2r=8となる。
【0054】
以上から、制御部Xはデータ変換回路Cを図14のように構成する。データ変換回路Cは平文データ/暗号文データIを入力として受信し、暗号文データ/平文データをOとして出力する。この例の場合、データ変換に利用する状態遷移規則は1つなので、データ変換回路Cは置換演算ユニットT0の1つから構成される。そして、状態遷移周期が8であるため、置換演算ユニットT0は4つの状態遷移演算ユニットS00,S01,S02,S03をパイプライン状に接続した構成となっている。各状態遷移演算ユニットは状態遷移を計算する論理回路と、計算結果を記憶する1ビット記憶素子から構成される。例えば、状態遷移演算ユニットS00では4つのXNOR演算回路と4つの1ビット記憶素子m00,m01,m02,m03から構成される。
【0055】
制御部Xは図14のようなデータ変換回路Cを表す構成データYを生成し、再構成可能ハードウェアDに送信する。再構成可能ハードウェアDは構成データYを受信すると、構成データYに従って再構成可能ハードウェアD上にデータ変換回路Cに相当する回路を設定し、データ変換回路Cが回路として動作する状態になる。
【0056】
データ変換回路Cの構成が終了した後、制御部Xは平文データ/暗号文データIを4ビット単位でデータ変換部Rに送信するように外部に指示する。これによって外部から平文データ/暗号文データIが送信され、送信された平文データ/暗号文データIはデータ変換回路Cによって演算が行われ、演算結果が暗号文データ/平文データOとして出力される。これによりデータ変換処理が完了する。
【0057】
一方、データ変換の処理単位を大きくとりたい場合は、外部からW0=0,W1=0,W2=1を制約条件Wとして制御部Xに入力し、鍵データKとして8ビットの値を制御部Xに入力する。この場合、制約条件Wの意味から、制御部Xは▲1▼1回の状態遷移演算をパイプライン処理の単位とする、▲2▼状態遷移規則が1つ、▲3▼セル数が8のセルラーオートマトンの状態遷移演算を行う、ようなデータ変換回路Cの構成データYを生成する。
【0058】
例えば、制御部Xは鍵データKの各ビットKi(0≦i<8)の値に応じてi番目のセルの状態遷移規則πiを次の
のように生成するとする。
【0059】
制御部Xはこの状態遷移1回をパイプライン処理の単位として構成するデータ変換回路Cの構成データYを生成する。データ変換回路Cを決定するには鍵データKから生成した状態遷移規則によるセルラーオートマトンの状態遷移周期を求める必要がある。式9で表わされるセルラーオートマトンの場合、あるj(0≦j<8)において、j≦i<j+aの範囲で常にKi=1である、という性質を満たすaの集合のうち最大の要素をLとし、rを2(r−1)−1<L≦2r−1を満たす整数とすると、状態遷移周期は2rとなる、という性質があるため(参考文献1)、これを利用して算出する。例えば、K7=1,K6=1,K5=1,K4=1,K3=1,K2=1,K1=1,K0=1である場合、連続してKi=1となるiの数は8が最大であるため、L=8である。従って、r=4となり、状態遷移周期は2r=16となる。
【0060】
以上から、制御部Xはデータ変換回路Cを図15のように構成する。データ変換回路Cは平文データ/暗号文データIを入力として受信し、暗号文データ/平文データOを出力する。この例の場合、データ変換に利用する状態遷移規則は1つなので、データ変換回路Cは置換演算ユニットT0の1つから構成される。そして、状態遷移周期が16であるため、置換演算ユニットT0は8つの状態遷移演算ユニットS00,S01,S02,S03,S04,S05,S06,S07をパイプライン状に接続した構成となっている。各状態遷移演算ユニットは状態遷移を計算する論理回路と、計算結果を記憶する1ビット記憶素子から構成される。例えば、状態遷移演算ユニットS00では8つのXNOR回路と8つの1ビット記憶素子m00,m01,m02,m03,m04,m05,m06,m07から構成される。
【0061】
制御部Xは図15のようなデータ変換回路Cを表す構成データYを生成し、再構成可能ハードウェアDに送信する。構成可能ハードウェアDは構成データYを受信すると、構成データYに従って再構成可能ハードウェアD上にデータ変換回路Cに相当する回路を設定し、データ変換回路Cが回路として動作する状態になる。
【0062】
データ変換回路Cの構成が終了した後、制御部Xは平文データ/暗号文データIを8ビット単位でデータ変換部Rに送信するように外部に指示する。これによって外部から平文データ/暗号文データIが送信され、送信された平文データ/暗号文データIはデータ変換回路Cによって演算が行われ、演算結果が暗号文データ/平文データ0として出力される。これによりデータ変換処理が完了する。
【0063】
<暗号強度を変更する実施例>
暗号強度を変更する場合はW1,W2を変更する。例えば、低い暗号強度で良い場合には、外部からW0=0、W1=0、W2=0を制約条件Wとして制御部Xに入力し、鍵データKとして4ビットの値を制御部Xに入力する。この場合、制約条件Wの意味から、制御部Xは▲1▼1回の状態遷移演算をパイプライン処理の単位とする、▲2▼状態遷移規則が1つ、▲3▼セル数が4のセルラーオートマトンの状態遷移演算を行う、ようなデータ変換回路Cの構成データYを生成する。
【0064】
例えば、制御部Xは鍵データKの各ビットKi(0≦i<4)の値に応じてi番目のセルの状態遷移規則πiを次の
のように生成するとする。
【0065】
制御部Xはこの状態遷移1回をパイプライン処理の単位として構成するデータ変換回路Cの構成データYを生成する。データ変換回路Cを決定するには鍵データKから生成した状態遷移規則によるセルラーオートマトンの状態遷移周期を求める必要がある。式10で表わされるセルラーオートマトンの場合、あるj(0≦j<4)において、j≦i<j+aの範囲で常にKi=1である、という性質を満たすaの集合のうち最大の要素をLとし、rを2(r−1)−1<L≦2r−1を満たす整数とすると、状態遷移周期は2rとなる、という性質があるため(参考文献1)、これを利用して算出する。例えば、K3=1,K2=1,K1=1,K0=1である場合、連続してKi=1となるiの数は4が最大であるため、L=4である。従って、r=3となり、状態遷移周期は2r=8となる。
【0066】
以上から、制御部Xはデータ変換回路Cを図16のように構成する。データ変換回路Cは平文データ/暗号文データIを入力として受信し、暗号文データ/平文データOを出力する。この例の場合、データ変換に利用する状態遷移規則は1つなので、データ変換回路Cは置換演算ユニットT0の1つから構成される。そして、状態遷移周期が8であるため、置換演算ユニットT0は4つの状態遷移演算ユニットS00,S01,S02,S03をパイプライン状に接続した構成となっている。各状態遷移演算ユニットは状態遷移を計算する論理回路と、計算結果を記憶する1ビット記憶素子から構成される。例えば、状態遷移演算ユニットS00では4つのXNOR回路と4つの1ビット記憶素子m00,m01,m02,m03から構成される。
【0067】
制御部Xは図16のようなデータ変換回路Cを表す構成データYを生成し、再構成可能ハードウェアDに送信する。再構成可能ハードウェアDは構成データYを受信すると、構成データYに従って再構成可能ハードウェアD上にデータ変換回路Cに相当する回路を設定し、データ変換回路Cが回路として動作する状態になる。
【0068】
データ変換回路Cの構成が終了した後、制御部Xは平文データ/暗号文データIを4ビット単位でデータ変換部Rに送信するように外部に指示する。これによって外部から平文データ/暗号文データIが送信され、送信された平文データ/暗号文データIはデータ変換回路Cによって演算が行われ、演算結果が暗号文データ/平文データOとして出力される。これによりデータ変換処理が完了する。
【0069】
一方、高い暗号強度が要求される場合には、外部からW0=0,W1=1,W2=1を制約条件Wとして制御部Xに入力し、鍵データKとして16ビットの値を制御部Xに入力する。この場合、制約条件Wの意味から、制御部Xは▲1▼1回の状態遷移演算をパイプライン処理の単位とする、▲2▼状態遷移規則が2つ、▲3▼セル数が8のセルラーオートマトンの状態遷移演算を行う、ようなデータ変換回路Cの構成データYを生成する。
【0070】
例えば、制御部Xは鍵データKの各ビットKi(0≦i<16)の値に応じてKi(0≦i<8)では1つめの状態遷移規則Π0のi番目のセルの状態遷移規則πiを次の
のように生成するとする。
【0071】
また、Ki(8≦i<16)では2つめの状態遷移規則Π1のi−8番目のセルの状態遷移規則πi−8を次の
のように生成するとする。
【0072】
制御部Xはこの状態遷移1回をパイプライン処理の単位として構成するデータ変換回路Cの構成データYを生成する。データ変換回路Cを決定するには鍵データKから生成した状態遷移規則によるセルラーオートマトンの状態遷移周期を求める必要がある。式11、式12で表わされるセルラーオートマトンの場合、式11、式12の状態遷移規則それぞれについて、あるj(0≦j<8)において、j≦i<j+aの範囲で常にKi=1である、という性質を満たすaの集合のうち最大の要素をLとし、rを2(r−1)−1<L≦2r−1を満たす整数とすると、状態遷移周期は2rとなる、という性質があるため(参考文献1)、これを利用して状態遷移周期を算出する。例えば、Ki=1(0≦i<16)の場合、1つめの状態遷移規則Π0では連続してKi=1となるiの数は8が最大であるため、L=8である。従って、r=4となり、Π0の状態遷移周期は16となる。また、2つめの状態遷移親則Π1では連続してKi=1となるiの数は8が最大であるため、L=8である。従ってr=4となり、Π1の状態遷移周期は16となる。
【0073】
以上から、制御部Xはデータ変換回路Cを図17のように構成する。データ変換回路Cは平文データ/暗号文データIを入力として受信し、暗号文データ/平文データOを出力する。この例の場合、データ変換に利用する状態遷移規則は2つなので、データ変換回路Cは置換演算ユニットT0,T1から構成される。そして、それぞれの状態遷移規則における状態遷移周期が16であるため、置換演算ユニットT0は8つの状態遷移演算ユニットS00,S01,S02,S03,S04,S05,S06,S07をパイプライン状に接続した構成に、置換演算ユニットT1は8つの状態遷移演算ユニットS10,S11,S12,S13,S14,S15,S16,S17をパイプライン状に接続した構成に、それぞれなっている。各状態遷移演算ユニットは状態遷移を計算する論理回路と、計算結果を記憶する1ビット記憶素子から構成される。例えば、状態遷移演算ユニットS00では8つのXNOR回路と8つの1ビット記憶素子m00,m01,m02,m03,m04,m05,m06,m07から構成される。
【0074】
制御部Xは図17のようなデータ変換回路Cを表す構成データYを生成し、再構成可能ハードウェアDに送信する。再構成可能ハードウェアDは構成データYを受信すると、構成データYに従って再構成可能ハードウェアD上にデータ変換回路Cに相当する回路を設定し、データ変換回路Cが回路として動作する状態になる。
【0075】
データ変換回路Cの構成が終了した後、制御部Xは平文データ/暗号文データIを8ビット単位でデータ変換部Rに送信するように外部に指示する。これによって外部から平文データ/暗号文データIが送信され、送信された平文データ/暗号文データIはデータ変換回路Cによって演算が行われ、演算結果が暗号文データ/平文データOとして出力される。これによりデータ変換処理が完了する。
【0076】
図16のデータ変換回路Cが4ビットのセルラーオートマトンの状態遷移規則を1つだけ使用して暗号化を行うのに対し、図17のデータ変換回路Cは8ビットのセルラーオートマトンの状態遷移規則を2つ使用して暗号化を行うため、後者のほうがより暗号強度が高くなる。
【0077】
<処理スループットを変更する実施例>
処理スループットを変更する場合はW0を変更する。例えば、低い処理スループットで良い場合には、外部からW0=1、W1=0、W2=0を制約条件Wとして制御部Xに入力し、鍵データKとして4ビットの値を制御部Xに入力する。この場合、制約条件Wの意味から、制御部Xは▲1▼2回の状態遷移演算をパイプライン処理の単位とする、▲2▼状態遷移規則が1つ、▲3▼セル数が4のセルラーオートマトンの状態遷移演算を行う、ようなデータ変換回路Cの構成データYを生成する。
【0078】
例えば、制御部XはKの各ビットKi(0≦i<4)の値に応じてi番目のセルの状態遷移規則πiを次の
のように生成するとする。
【0079】
制御部Xはこの状態遷移2回をパイプライン処理の単位として構成するデータ変換回路Cの構成データYを生成する。データ変換回路Cを決定するには鍵データKから生成した状態遷移規則によるセルラーオートマトンの状態遷移周期を求める必要がある。式13で表わされるセルラーオートマトンの場合、あるj(0≦j<4)において、j≦i<j+aの範囲で常にKi=1である、という性質を満たすaの集合のうち最大の要素をLとし、rを2(r−1)−1<L≦2r−1を満たす整数とすると、状態遷移周期は2rとなる、という性質があるため(参考文献1)、これを利用して算出する。例えば、K3=1、K2=1、K1=1、K0=1である場合、連続してKi=1となるiの数は4が最大であるため、L=4である。従って、r=3となり、状態遷移周期は2r=8となる。
【0080】
以上から、データ変換回路Cは図18のようになるため、制御部Xはこれを表す構成データYを生成し、再構成可能ハードウェアDに送信する。再構成可能ハードウェアDは構成データYを受信すると、構成データYに従って再構成可能ハードウェアD上にデータ変換回路Cに相当する回路を設定し、データ変換回路Cが回路として動作する状態になる。
【0081】
データ変換回路Cの構成が終了した後、制御部Xは平文データ/暗号文データIを4ビット単位でデータ変換部Rに送信するように外部に指示する。これによって外部から平文データ/暗号文データIが送信され、送信された平文データ/暗号文データIはデータ変換回路Cによって演算が行われ、演算結果が暗号文データ/平文データOとして出力される。これによりデータ変換処理が完了する。
【0082】
一方、高い処理スループットが要求される場合には、外部からW0=0、W1=0、W2=0を制約条件Wとして制御部Xに入力し、鍵データKとして4ビットの値を制御部Xに入力する。
【0083】
この場合、制約条件Wの意味から、制御部Xは▲1▼1回の状態遷移演算をパイプライン処理の単位とする、▲2▼状態遷移規則が1つ、▲3▼セル数が4のセルラーオートマトンの状態遷移演算を行う、ようなデータ変換回路Cの構成データYを生成する。
【0084】
例えば、制御部XはKの各ビットKi(0≦i<4)の値に応じてi番目のセルの状態遷移規則πiを次の
のように生成するとする。
【0085】
制御部Xはこの状態遷移1回をパイプライン処理の単位として構成するデータ変換回路Cの構成データYを生成する。データ変換回路Cを決定するには鍵データKから生成した状態遷移規則によるセルラーオートマトンの状態遷移周期を求める必要がある。式14で表わされるセルラーオートマトンの場合、あるj(0≦j<4)において、j≦i<j+aの範囲で常にKi=1である、という性質を満たすaの集合のうち最大の要素をLとし、rを2(r−1)−1<L≦2r−1を満たす整数とすると、状態遷移周期は2rとなる、という性質があるため(参考文献1)、これを利用して算出する。例えば、K3=1,K2=1,K1=1,K0=1である場合、連続してKi=1となるiの数は4が最大であるため、L=4である。従って、r=3となり、状態遷移周期は2r=8となる。
【0086】
以上から、データ変換回路Cは図19のようになるため、制御部Xはこれを表す構成データYを生成し、再構成可能ハードウェアDに送信する。再構成可能ハードウェアDは構成データYを受信すると、構成データYに従って再構成可能ハードウェアD上にデータ変換回路Cに相当する回路を設定し、データ変換回路Cが回路として動作する状態になる。
【0087】
データ変換回路Cの構成が終了した後、制御部Xは平文データ/暗号文データIを4ビット単位でデータ変換部Rに送信するように外部に指示する。これによって外部から平文データ/暗号文データIが送信され、送信された平文データ/暗号文データIはデータ変換回路Cによって演算が行われ、演算結果が暗号文データ/平文データOとして出力される。これによりデータ変換処理が完了する。
【0088】
図18のデータ変換回路Cは状態遷移の演算2回をパイプライン処理の単位とするのに対し、図19のデータ変換回路Cは状態遷移の演算1回をパイプライン処理の単位とするため、後者のほうがより処理スループットを高くすることが可能である。
【0089】
<消費電力を変更する実施例>
消費電力を変更する場合はW0を変更する。例えば、消費電力を低く抑える場合には、外部からW0=1,W1=0,W2=0を制約条件Wとして制御部Xに入力し、鍵データKとして4ビットの値を制御部Xに入力する。この場合、制約条件Wの意味から、制御部Xは▲1▼2回の状態遷移演算をパイプライン処理の単位とする、▲2▼状態遷移規則が1つ、▲3▼セル数が4のセルラーオートマトンの状態遷移演算を行う、ようなデータ変換回路Cの構成データYを生成する。
【0090】
例えば、制御部Xは鍵データKの各ビットKi(0≦i<4)の値に応じてi番目のセルの状態遷移規則πiを次の
のように生成するとする。
【0091】
制御部Xはこの状態遷移2回をパイプライン処理の単位として横成するデータ変換回路Cの構成データYを生成する。データ変換回路Cを決定するには鍵データKから生成した状態遷移規則によるセルラーオートマトンの状態遷移周期を求める必要がある。式15で表わされるセルラーオートマトンの場合、あるj(0≦j<4)において、j≦i<j+aの範囲で常にKi=1である、という性質を満たすaの集合のうち最大の要素をLとし、rを2(r−1)−1<L≦2r−1を満たす整数とすると、状態遷移周期は2rとなる、という性質があるため(参考文献1)、これを利用して算出する。例えば、K3=1,K2=1,K1=1,K0=1である場合、連続してKi=1となるiの数は4が最大であるため、L=4である。従って、r=3となり、状態遷移周期は2r=8となる。
【0092】
以上から、データ変換回路Cは図20のようになるため、制御部Xはこれを表す構成データYを生成し、再構成可能ハードウェアDに送信する。再構成可能ハードウェアDは構成データYを受信すると、構成データYに従って再構成可能ハードウェアD上にデータ変換回路Cに相当する回路を設定し、データ変換回路Cが回路として動作する状態になる。
【0093】
データ変換回路Cの構成が終了した後、制御部Xは平文データ/暗号文データIを4ビット単位でデータ変換部Rに送信するように外部に指示する。これによって外部から平文データ/暗号文データIが送信され、送信された平文データ/暗号文データIはデータ変換回路Cによって演算が行われ、演算結果が暗号文データ/平文データOとして出力される。これによりデータ変換処理が完了する。
【0094】
一方、消費電力を多くとれる場合には、外部からW0=0,W1=0,W2=0を制約条件Wとして制御部Xに入力し、鍵データKとして4ビットの値を制御部Xに入力する。この場合、制約条件Wの意味から、制御部Xは▲1▼1回の状態遷移演算をパイプライン処理の単位とする、▲2▼状態遷移規則が1つ、▲3▼セル数が4のセルラーオートマトンの状態遷移演算を行う、ようなデータ変換回路Cの構成データYを生成する。
【0095】
例えば、制御部Xは鍵データKの各ビットKi(0≦i<4)の値に応じてi番目のセルの状態遷移規則πiを次の
のように生成するとする。
【0096】
制御部Xはこの状態遷移1回をパイプライン処理の単位として構成するデータ変換回路Cの構成データYを生成する。データ変換回路Cを決定するには鍵データKから生成した状態遷移規則によるセルラーオートマトンの状態遷移周期を求める必要がある。式16で表わされるセルラーオートマトンの場合、あるj(0≦j<4)において、j≦i<j+aの範囲で常にKi=1である、という性質を満たすaの集合のうち最大の要素をLとし、rを2(r−1)−1<L≦2r−1を満たす整数とすると、状態遷移周期は2rとなる、という性質があるため(参考文献1)、これを利用して算出する。例えば、K3=1,K2=1,K1=1,K0=1である場合、連続してKi=1となるiの数は4が最大であるため、L=4である。従って、r=3となり、状態遷移周期は2r=8となる。
【0097】
以上から、データ変換回路Cは図21のようになるため、制御部Xはこれを表す構成データYを生成し、再構成可能ハードウェアDに送信する。再構成可能ハードウェアDは構成データYを受信すると、構成データYに従って再構成可能ハードウェアD上にデータ変換回路Cに相当する回路を設定し、データ変換回路Cが回路として動作する状態になる。
【0098】
データ変換回路Cの構成が終了した後、制御部Xは平文データ/暗号文データIを4ビット単位でデータ変換部Rに送信するように外部に指示する。これによって外部から平文データ/暗号文データIが送信され、送信された平文データ/暗号文データIはデータ変換回路Cによって演算が行われ、演算結果が暗号文データ/平文データOとして出力される。これによりデータ変換処理が完了する。
【0099】
図20のデータ変換回路Cは4ビットのセルラーオートマトンの状態遷移を2回の状態遷移を単位としたパイプライン処理により行うのに対し、図21のデータ変換回路Cは4ビットのセルラーオートマトンの状態遷移を1回の状態遷移を単位としたパイプライン処理により行うため、前者のほうが実現に必要な回路規模が小さくなり、結果として処理に必要な消費電力を小さく抑えることが可能である。
【0100】
<その他の実施例>
第3の実施形態における各実施例はデータ変換の処理単位、暗号強度、処理スループット、消費電力の各要求に応じて2つの回路の選択肢を用意し、制約条件Wにより制御部Xがデータ変換回路Cを選択する形式となっているが、データ変換回路Cの実現の原理から、より細かい条件によるデータ変換回路Cの実現形態の制御が可能であることは容易に推測可能である。
【0101】
以上のように、データ変換の処理単位、要求暗号強度、要求処理スループット、要求消費電力に応じて制約条件Wを制御部Xに入力し、制御部Xが制約条件Wに応じたデータ変換回路Cを構成し、その構成データYにより再構成可能ハードウェアD上にデータ変換回路Cを設定すれば、要求された制約条件Wに応じた適切な実現形態でデータ変換処理が可能になるという利点がある。
【0102】
【発明の効果】
本発明により、実行時にデータ変換の処理スループットを保ったままデータ変換の複雑度を向上させることが可能となる。また、実行時の環境の制約条件に応じて処理スループットを動的に調整しながらデータ変換処理が可能となる。
【図面の簡単な説明】
【図1】第1の実施形態のデータ暗号化/復号化装置のブロック図である。
【図2】セルラーオートマトンの状態遷移規則の計算を行う回路図である。
【図3】セルラーオートマトンの系全体の状態遷移の説明図である。
【図4】再構成可能ハードウェア上に実現するセルラーオートマトンによるデータ変換回路の回路図である。
【図5】第2の実施形態のデータ変換回路Cのブロック図である。
【図6】図5のデータ変換回路Cを構成する置換演算ユニットのブロック図である。
【図7】図6の置換演算ユニットを構成する状態遷移演算ユニットのブロック図である。
【図8】セルラーオートマトンの系全体の状態遷移の説明図である。
【図9】データ変換回路Cの具体的な一例の回路図である。
【図10】データ変換回路Cの具体的な別の一例の回路図である。
【図11】第3の実施形態のデータ暗号化/復号化装置のブロック図である。
【図12】一段のパイプラインでセルラーオートマトンの状態遷移を1回計算する実施例の回路図である。
【図13】一段のパイプラインでセルラーオートマトンの状態遷移を2回計算する実施例の回路図である。
【図14】データ変換の処理単位を4ビットとした場合のデータ変換回路Cの具体的な一例の回路図である。
【図15】データ変換の処理単位を8ビットとした場合のデータ変換回路Cの具体的な一例の回路図である。
【図16】暗号強度をそれほど必要としない場合のデータ変換回路Cの具体的な一例の回路図である。
【図17】暗号強度を必要とする場合のデータ変換回路Cの具体的な構成の一例の回路図である。
【図18】スループットを要求されない場合のデータ変換回路Cの具体的な一例の回路図である。
【図19】スループットを要求される場合のデータ変換回路Cの具体的な一例の回路図である。
【図20】消費電力を抑えたい場合のデータ変換回路Cの具体的な一例の回路図である。
【図21】消費電力を抑えない場合のデータ変換回路Cの具体的な一例の回路図である。
【図22】従来のセルラーオートマトンの基本構成のブロック図である。
【図23】セルラーオートマトンの系全体の状態遷移の説明図である。
【図24】セルラーオートマトンを利用した暗号化/復号化方式のソフトウェアによる実現例を説明するためのフローチャートである。
【図25】セルラーオートマトンを利用した暗号化/復号化方式の専用ハードウェアによる実現例を説明するためのブロック図である。
【図26】図25における制御部X0の制御のフローチャートである。
【符号の説明】
X,X0:制御部、K:鍵データ、R,R0:データ変換部、C:データ変換回路、D:再構成可能ハードウェア、Y:構成データ、W:制約条件、RAM:演算定義メモリ、AP:アドレスポート、DP:データポート、AB:アドレスバス、DB:データバス、M:セル状態保持メモリ
【発明の属する技術分野】
本発明は、ある対象データの内容を鍵データに従って別のデータに変換するデータ変換方法およびその装置に関するものである。
【0002】
【従来の技術】
以下、セルラーオートマトンを使用した暗号化/復号化装置をデータ変換装置の一例として説明を行う。以下では、データの暗号化/復号化装置がデータ変換装置に相当する。
【0003】
[基本となるデータ変換方式(非特許文献1)]
まず、具体例を示す基礎となる、セルラーオートマトンを利用した共通鍵暗号方式によるデータの暗号化/復号化処理のアルゴリズムについて説明する。この処理は次のような考え方を基本としている。まず、平文データをセルラーオートマトンを構成する各セルの初期状態としてセットする。そして、秘密鍵からセルラーオートマトンの状態遷移規則(部分変換規則)を生成する。セルラーオートマトンは生成された規則に従って状態遷移を繰り返し、状態遷移後の各セルの状態が暗号文データとなる。なお、この処理における秘密鍵が鍵データに相当する。
【0004】
前提とするセルラーオートマトンは図22のようなn個のセルで構成される一次元のものである。C0,C1,・・・,Cn−1はそれぞれセルラーオートマトンを形成するセルであり、各セルはそれぞれ0または1の2つの状態のいずれかをとる。各セルは記憶素子mおよび演算部πを持つ。各セルの状態をs0,s1,・・・,sn−1と表すと、セルラーオートマトンの系全体の状態Sを次の式
で表すことが可能である。
【0005】
各セルにはそれぞれ次状態を決定するための状態遷移規則が定義される。C0,C1,・・・,Cn−1の各セルの状態遷移規則をそれぞれπ0,π1,・・・,πn−1と表わすとし、系全体の状態遷移規則をΠと表わすとする。各セルは時刻がtからt+1に推移すると、状態遷移規則Πに従って状態s0,s1,・・・,sn−1を更新する。時刻tにおける系全体の状態をS(t)、各セルの状態をそれぞれs0(t),s1(t),・・・,sn−1(t)と表すとする。また、状態遷移規則Πにより遷移することを明示するため、S(t+1)=Π・S(t)とも表記する。
【0006】
例えば、セルの数(ビット数)n=4で、状態遷移規則Πが以下のように定義されている場合、
S(t)は図23のような変化を起こす。図23において、節点中の各数字はある時刻tにおける系全体の状態S(t)の値を、節点間を接続する矢印は時刻tが1増加したときの系全体の状態Sの変化を表す。
【0007】
さて、系全体の状態S(t)の変化は状態遷移規則Πに依存して一般には様々な形態をとる。しかし、状態遷移規則Πを適切に選択することにより、図23のように周期的に初期状態に戻るような状態遷移を起こさせることが可能である。図23の状態遷移では8つの状態で構成される状態遷移のサイクルが2つ存在している。
【0008】
このような状態遷移のサイクルをもつセルラーオートマトンでは、任意の時刻tについて次の式
が成立する。ただし、Π2rは状態遷移規則Πによる状態遷移を2r回行うことを示す。従って、2rは状態遷移のサイクル1つを構成する状態の数である。これを状態遷移周期と呼ぶ。2rは一般に最小の状態遷移周期の任意の倍数をとることが可能であるが、以下では、2rはそれらのうち最小のものに限定する。つまり、
とする。
【0009】
この性質を利用すると、任意の状態SについてT=ΠrS,S=ΠrT、S≠TなるTを定めることが可能である。例えば、図23では2r=8であるため、これを元にS、Tの組を計算すると次の
ようになる。
【0010】
この関係により、状態遷移規則Πから状態Sの値域0≦S<24における整数の変換規則が得られる。これを状態遷移規則Πのデータ変換規則と呼ぶ。データ変換規則は一般に非線形なものとなるため、これら{S,T}の組から状態遷移規則Πを計算するのは困難である。従って、このデータ変換規則を暗号化処理に利用することが可能である。具体的には、平文データを初期状態としてセルラーオートマトンにセットし、これを秘密鍵から生成した状態遷移規則Πにより状態遷移をさせることで、平文データの暗号化が可能である。なお、その原理から、この暗号化方式における暗号文データからの平文データの取得は初期状態に暗号文データをセットし、同様に状態遷移規則Πにより状態遷移させ、状態Sを取り出すことで可能である。
【0011】
より一般的には、状態遷移規則を複数用意し、これを多重に作用させることでさらに暗号の安全性を高める。つまり、秘密鍵から状態遷移規則をΠ0,Π1,・・・,Πp−1のp種類を生成し、それぞれの状態遷移規則に対する状態遷移周期をそれぞれ2r0,2r1,・・・,2rp−1として算出する。そして、セルラーオートマトンの初期状態として平文データをセットし、
を計算することで暗号化を行う。
【0012】
この暗号化方式における暗号強度は、セルラーオートマトンを構成するセルの数nと多重に作用させる状態遷移規則の数pに依存する。つまり、セルの数nが大きいほど、また状態遷移規則の数pが大きいほど暗号の強度は増大する。
【0013】
[従来の装置構成方式]
上記の暗号化/復号化方式の従来の実現方法には大きく2つある。1つは計算機上にプログラムしたソフトウェアによる方法で、もう1つは専用ハードウェアによる方法である。図24にソフトウェアによる実現方法の一例を示す。図24の例はn個のセルで構成されるセルラーオートマトンでのp個の状態遷移規則による暗号化/復号化の処理である。
【0014】
ソフトウェアによる処理では各セルの状態遷移を順次計算して処理を行うため、ステップA5を
回処理する必要がある。ただし、2rjは状態遷移規則Πjにおける状態遷移周期である。
【0015】
次に、図25にセルラーオートマトンを利用した、専用ハードウェアによる従来の暗号化装置の例を示す。この例もn個のセルで構成されたセルラーオートマトンによる暗号化/復号化処理を実現するものである。この暗号化装置はデータ変換部R0と制御部X0から構成される。データ変換部R0はセル状態保持メモリM0,M1,・・・,Mn−1及び状態遷移規則定義メモリRAMから構成される。データ変換部R0にはnビットのアドレスバスABとnビットのデータバスDBが存在し、アドレスバスABは状態遷移規則定義メモリRAMのアドレスポートAP、セル状態保持メモリM0,M1,・・・,Mn−1及び制御部X0と接続されている。またデータバスDBは平文データ/暗号文データIをやりとりする人出力部、制御部X0、状態遷移規則定義メモリRAM及びセル状態保持メモリM0,M1,・・・,Mn−1とそれぞれ接続されている。一方、制御部X0はデータ変換部R0のアドレスバスAB、データバスDBとの接続を利用して状態遷移規則定義メモリRAMにアクセスする機能と鍵データKを受信する機能を持つ。
【0016】
この暗号化装置では、鍵データKを制御部X0が受信し、データ変換部R0の動作を制御部X0が制御することで動作する。制御部X0の制御手順の一例を図26に示す。鍵データKと平文データ/暗号文データIが送られると制御部X0が動作を開始する。なお、Iは暗号化処理時は平文データ、復号化処理時は暗号文データである。最初に制御部X0はステップB1のようにセル状態保持メモリM0,M1,・・・,Mn−1にデータIをセットするようにデータ変換部R0に指示する。次にステップB2のように、制御部X0は鍵データKから状態遷移規則の列Π0,Π1,・・・,Πp−1、及びそれらの状態遷移周期2r0,2r1,・・・,2rp−1を算出する。続いて、ステップB4のように状態遷移規則定義メモリRAMに状態遷移規則を書き込む。具体的には、セルラーオートマトンの系の状態をアドレスとし、次の状態をデータとして状態遷移規則定義メモリRAMに書き込む。
【0017】
ステップB5にあるように、セル状態保持メモリM0,M1,・・・,Mn−1をアドレスとして状態遷移規則定義メモリRAMを読み出し、セル状態保持メモリM0,M1,・・・,Mn−1に書き戻せば、セルラーオートマトンの状態遷移が計算可能である。この処理を状態遷移周期の半分だけ行うように制御部X0がデータ変換部R0に指示する。ステップB5が終了した後、制御部X0はステップB6、ステップB7を処理をしてステップB4に戻る。これで状態遷移規則Π0の処理は終了である。この後、状態遷移規則定義メモリRAMに次の状態遷移規則を書き込み、次の状態遷移を計算する。この繰り返しを行い、全ての状態遷移規則の処理が終了した後、制御部X0はステップB8のようにセル状態保持メモリM0,M1,・・・,Mn−1をデータバスDBに出力するように指示し、暗号化/復号化処理は終了する。
【0018】
【非特許文献1】パリマル パル チャウドリ、ディパンウィッタ ロイ チョードハリ、スクマル ナンディ、サンタヌ チャトパディヤ著、「付加的セルラーオートマトン」、26−55頁、IEEEコンピュータソサエティプレス、1997年 ISBN O−8186−7717−1(Parimal Pal Chaudhuri,Dipanwita Roy Chowdhury,Sukumar Nandi,and Santanu Chattopadhyay.”Additive Cellular Automata”,pp.26−55.IEEE Computer Society Press, 1997.ISBN O−8186−7717−1.)。
【0019】
【発明が解決しようとする課題】
上記したソフトウェアでは逐次実行が基本となるため、この繰り返し処理を行っている間は他の状態遷移規則の計算はできない。従って、ソフトウェアではステップA5の処理回数が増大すると暗号化/復号化処理のスループットが低下する。つまり、ソフトウェアによる実現方法ではセルの数nまたは状態遷移規則の数pを増加させて暗号強度を高めると、暗号化/復号化処理のスループットが低下するという欠点がある。
【0020】
上記した専用ハードウェアによる従来の暗号化/復号化装置では、セルラーオートマトンの構成セル数nがハードウェアの設計時に決定されてしまい、高い機密性の要求される暗号化/復号化処理を行う要求が発生した場合、nの追加によって暗号強度を向上させるのが困難であるという欠点がある。また、暗号強度を向上させるために状態遷移規則の数pを増大させる場合についても、それに応じてステップB5の処理回数が増加するため、暗号化/復号化処理のスループットが低下するという欠点がある。
【0021】
なお、上記ソフトウェアによる方法と専用ハードウェアによる方法を組み合わせた方法も考えられるが、どちらの方法も暗号強度の向上に対して暗号処理のスループットが低下するという欠点を解決することは出来ないため、両者の組み合わせでもこの欠点を解決することが出来ない。
【0022】
加えて、専用ハードウェアによる従来の暗号化/復号化装置では、実用的に考えられる暗号強度においてスループットが保持可能なように装置を設計するため、最も使用頻度が高いと思われる平均的な強度の暗号処理では設計したハードウェアの能力が余剰するという欠点がある。
【0023】
本発明はこれらの欠点を除去するためになされたもので、第1の目的は、実行時に回路の書き換えが可能な再構成可能ハードウェアを利用し、データの変換規則を実行時に再構成可能ハードウェア上に設定することで、データ変換の処理スループットを保ったまま複雑なデータ変換を実現可能たらしめることである。
【0024】
第2の目的は、実行時の変換規則の再構成可能なハードウェアの設定内容を変更することで、データ変換処理のスループットを状況に応じて柔軟に変更し、データ変換処理に必要な資源を最適な量に調整可能とすることである。
【0025】
【課題を解決するための手段】
請求項1にかかる発明は、入力データを再構成可能ハードウェア上に構成したデータ変換部により変換して出力データとするデータ変換方法であって、外部から受信した鍵データに基づきデータ変換規則を生成し、該生成したデータ変換規則に基づき前記再構成可能ハードウェア上に前記データ変換部を構成してデータ変換を行うことを特徴とするデータ変換方法とした。
【0026】
請求項2にかかる発明は、請求項1に記載のデータ変換方法において、前記データ変換規則は逐次実行される複数の部分変換規則の集合で構成し、各部分変換規則毎に独立に動作可能な機能で前記データ変換部を構成することを特徴とするデータ変換方法とした。
【0027】
請求項3にかかる発明は、請求項1又は2に記載のデータ変換方法において、前記データ変換規則を前記鍵データおよび外部から受信する制約条件に基づき生成し、該制約条件はデータ変換の処理単位、要求暗号強度、要求処理スループット、要求消費電力等の条件を設定することを特徴とするデータ変換方法とした。
【0028】
請求項4にかかる発明は、外部から受信した鍵データに基づきデータ変換規則を生成する制御部と、回路の書き換えが可能な再構成可能ハードウェア上に構成され入力データを変換して出力データとするデータ変換部とを具備し、前記データ変換部には前記再構成可能ハードウェア上に前記データ変換規則に基づくデータ変換回路が構成されていることを特徴とするデータ変換装置とした。
【0029】
請求項5にかかる発明は、請求項4に記載のデータ変換装置において、前記データ変換部の前記データ変換回路は、前記データ変換規則を逐次実行可能な複数の部分変換規則に対応し且つ独立動作可能な複数の状態遷移演算手段の集合で構成されていることを特徴とするデータ変換装置とした。
【0030】
請求項6にかかる発明は、請求項4又は5に記載のデータ変換装置において、前記制御部は外部から前記鍵データおよび制約条件を受信して前記鍵データおよび前記制約条件に基づき前記データ変換規則を生成し、前記データ変換部は前記制約条件によりデータ変換の処理単位、要求暗号強度、要求処理スループット、要求消費電力等の条件を設定したデータ変換を行うよう前記データ変換回路が設定されていることを特徴とするデータ変換装置とした。
【0031】
【発明の実施の形態】
[第1の実施形態](請求項1、4) 第1の実施形態のデータ暗号化/復号化装置の構成例を図1に示す。この装置は制御部Xとデータ変換部Rで構成される。制御部Xは鍵データKを受信し、構成データYをデータ変換部Rに送信する機能を持つ。一方、データ変換部Rは平文データあるいは暗号文データIを受信し、暗号文データあるいは平文データOを送信する機能を持つ。この装置が暗号化処理を行う場合にはIは平文データ、Oは暗号文データであり、復号化処理を行う場合にはIは暗号文データ、Oは平文データとなる。データ変換部Rは再構成可能ハードウェアDで構成され、該再構成可能ハードウェアD上にはデータ変換回路Cが構成される。なお、制御部Xも再構成可能ハードウェアDの一部として実現されていても良い。
【0032】
図1の構成によって暗号化処理を行う場合の動作を図1においてセルの数(ビット数)n=4、状態遷移規則(部分変換規則)の数p=1の場合を例にとって説明する。p=1であるため、状態遷移規則はΠ0の1つである。まず、制御部Xは鍵データKを外部から受信する。鍵データKは4ビットで構成されるとし、Kの各ビットKi(0≦i<4)の値に応じてXはi番目のセルの状態遷移規則πiを次の
のように生成するとする。
【0033】
例えば、鍵データKがK3=1、K2=1、K1=1、K0=1である場合、式6で表わされる状態遷移規則の計算を行う回路は図2のようになる。図2のπ0,π1,π2,π3がそれぞれ式6で示される状態遷移規則を計算する回路(XNOR)となっている。図2では、セルラーオートマトンの現状態をI0,I1,I2,I3として入力し、状態遷移の結果をO0,O1,O2,O3として出力する。K3=1、K2=1、K1=1、K0=1である場合、その状態遷移は図3のようになる。状態遷移周期が8となるので、変換規則は状態遷移の演算を4回線り返すことで実現可能である。従って、データ変換回路Cの構成としては図4のようなものが考えられる。
【0034】
なお、実際にこれを装置として実現する際には、K3、K2、K1、K0から状態遷移周期を求める必要がある。式6で表わされるセルラーオートマトンの場合、あるj(0≦j<n)において、j≦i<j+aの範囲で常にKi=1である、という性質を満たすaの集合のうち最大の要素をLとし、rを2(r−1)−1<L≦2r−1を満たす整数とすると、状態遷移周期は2rとなる、という性質があるため(参考文献1)、これを利用して算出する。例えば、K3=1、K2=1、K1=1、K0=1である場合、連続してKi=1となるiの数は4が最大であるため、L=4である。従って、r=3となり、状態遷移周期は2r=8となる。
【0035】
参考文献1:ワーナ プリエス、アドニオス タナイラキス、ハワード C カード著、「セルラーオートマトンの群の性質およびVLSIへの応用」、IEEEトランザクション オン コンピュータ、C−35巻、12号,1013−1024頁、1986年12月(Werner Pries,Adonios Thanailakis,and Howard C.Card ”Group properties of cellular auomata and vlsi applications” IEEE Transactions on Computers,Vol.C−35,No.12,pp.1013−1024,December 1986.)。
【0036】
制御部Xは図4で示す回路を表す構成データYを生成し、再構成可能ハードウェアDに送信する。再構成可能ハードウェアDは構成データYを受信すると、構成データYに従って再構成可能ハードウェアD上にデータ変換回路Cに相当する回路を設定し、データ変換回路Cが回路として動作する状態になる。
【0037】
データ変換回路Cの構成が終了した後、制御部Xは平文データIを4ビット単位でデータ変換部Rに送信するように指示する。送信された平文データはデータ変換回路Cによって演算が行われ、演算結果が暗号文データOとして出力される。これにより、暗号化処理が完了する。
【0038】
この第1の実施形態では、データ変換部Rが再構成可能ハードウェアD上に構成されるため、データ変換処理の複雑さに応じて回路を変更することで、データ変換処理のスループットを調整可能であるという利点がある。
【0039】
[第2の実施形態](請求項2、5)
第2の実施形態は第1の実施形態のデータ変換回路Cの具体的な構成方法に相当する。第2の実施形態として図1におけるデータ変換回路Cの構成例を図5に示す。データ変換回路Cは置換演算ユニットT0,T1,・・・,Tn−1がパイプライン状に接続された形をとる。具体的には、平文データ/暗号文データIが置換演算ユニットT0に入力され、その置換演算ユニットT0の出力が置換演算ユニットT1に入力され、というようにそれぞれが直列に接続された形をとる。そして、置換演算ユニットTn−1の出力が暗号文データ/平文データOとなっている。
【0040】
置換演算ユニットT0,T1,・・・,Tn−1はそれぞれ状態遷移規則Π0,Π1,・・・,Πn−1により作成されるデータ変換規則を実現する。置換演算ユニットT0,T1,・・・,Tn−1の構成例を図6に示す。各データ変換規則は逐次実行される複数の状態遷移規則(部分変換規則)の集合で構成される。すなわち、各置換演算ユニットTi(0≦i<p)は状態遷移演算ユニット(状態遷移演算手段)Si0,Si1,・・・,Si(ri−1)がパイプライン状に接続された形をとる。具体的には、入力Ii0,Ii1,・・・,Ii(n−1)が状態遷移演算ユニットSi0に入力され、その状態遷移演算ユニットSi0の出力が状態遷移演算ユニットSi1に入力され、というようにそれぞれが直列に接続された形をとる。そして、状態遷移演算ユニットSi(ri−1)の出力が置換演算ユニットTiの出力となっている。
【0041】
状態遷移演算ユニットSi0,Si1,・・・,Si(ri−1)はそれぞれ状態遷移規則Πiで規定される状態遷移の演算を1回行う機能を持つ。状態遷移演算ユニットSi0,Si1,・・・,Si(ri−1)の構成例を図7に示す。状態遷移演算ユニットSi0,Si1,・・・,Si(ri−1)は全て同じ機能であるため、一つだけを代表して図7に示している。これを以下状態遷移演算ユニットSiと表記する。状態遷移演算ユニットSiは、状態遷移規則Πiで規定される状態遷移の演算を1回行うセル演算ユニットπi0,πi1,・・・,πi(n−1)と演算結果を格納する1ビット記憶素子mi0,mi1,・・・,mi(n−1)から構成される。状態遷移演算ユニットSiへの入力データにおいて、それぞれj−1,j,j+1ビットめの入力はセル演算ユニットπijに入力され、その演算結果が記憶素子mijに格納される。そして記憶素子mijの内容が状態遷移演算ユニットSiのjビットめの出力データとなっている。
【0042】
このような構成を持ったデータ変換回路Cの具体的な動作を、セルの数(ビット数)n=4、状態遷移規則の数p=1の場合を例に説明する。この場合、状態遷移規則は1つである。そこで、その1つの状態遷移規則として、次のような場合
を例とする。
【0043】
この場合、置換演算ユニットはT0のみである。そして、上の状態遷移規則における状態遷移は図8のようになる。従って、状態遷移周期は8となる。このため、T0は8/2=4つの状態遷移演算ユニットSi0,Si1,Si2,Si3から構成される。そして、各状態遷移演算ユニット内の状態遷移演算回路πi0,πi1,πi2,πi3はそれぞれ2入力のXNOR回路となる。従って、データ変換回路Cは図9のようになる。
【0044】
図9のデータ変換回路Cの動作をI0=0、I1=0、I2=0、I3=0という平文データ/暗号文データが入力された場合を例に説明する。各状態遷移演算ユニットSi0,Si1,Si2,Si3は図8のような状態遷移を計算するので、最初に1ビット記憶素子m00,m01,m02,m03には10進数で15が格納される。すなわちm00=1,m01=1,m02=1,m03=1となる。そして、この値からさらに状態遷移が計算され、1ビット記憶素子m10,m11,m12,m13には10進数で7が格納される。すなわちm10=1,m11=1,m12=1,m13=0となる。以下、同様に、1ビット記憶素子m20,m21,m22,m23には10進数で11が格納される。すなわちm20=1,m21=1,m22=0,m23=1となる。最後に、1ビット記憶素子m30,m31,m32,m33には10進数で1が格納される。すなわちm30=1,m31=0,m32=0,m33=0となる。そして、これが暗号文データ/平文データOとなる。すなわち、O0=1,O1=0,O2=0,O3=0となる。以上の動作によって、データ変換回路Cはデータの変換を行う。
【0045】
再度データ変換回路C全体の構成を見ると、データ変換回路Cは状態遷移演算ユニットを単位とするパイプライン処理によってデータの暗号化を行っていることが分かる。データ変換回路Cは全体で暗号化/復号化の処理を行うが、その内部は逐次的に、かつ各々が独立に実行可能なセルラーオートマトンの状態遷移演算の集合で構成されている。なお、図9は1回の状態遷移演算をパイプライン処理の単位としたデータ変換回路Cの構成であるが、図10のように2回の状態遷移演算をパイプライン処理の単位としたデータ変換回路Cの構成も考えられる。
【0046】
このようなデータ変換回路Cの構成方法が第2の実施形態である。この構成では、暗号化/復号化処理の実行時に制御部Xが鍵データKを受信してからデータ変換回路Cを構成するため、実行時に決定されるセルの数nおよび状態遷移規則の数pに応じてデータ変換回路Cを構成可能である。従って、セルの数nを増加させても各セルの状態遷移を計算する並列度を実行時に増加させられるため、例えば1度に変換するデータのサイズを増大させた場合でもスループットを低下させることなく処理が可能であるという利点がある。また、状態遷移規則の数pを増加させても、各セルの状態遷移を計算するパイプラインの段数を実行時に増加させられるため、例えば暗号強度を増大させた場合でもスループットを低下させることなく処理が可能であるという利点がある。
【0047】
加えて、その他の利点として、データ変換回路Cの回路規模を制限することにより、一般的に回路規模が小さい回路は消費電力が小さいという性質を利用して、データ変換回路Cを許容された消費電力で動作させることが可能である、という利点もある。
【0048】
[第3の実施形態](請求項3、6)
第3の実施形態のデータ暗号化/復号化装置の構成例を図11に示す。この装置は制御部Xとデータ変換部Rで構成される。制御部Xは鍵データKと制約条件Wを受信し、構成データYをデータ変換部Rに送信する機能を持つ。一方、データ変換部Rは平文データ/暗号文データIを受信し、暗号文データ/平文データOを送信する機能を持つ。この装置が暗号化処理を行う場合、Iとして平文データが入力され、Oとして暗号文データが出力される。一方、復号化処理を行う場合、Iとして暗号文データが入力され、Oとして平文データが出力される。データ変換部Rは再構成可能ハードウェアDで構成され、再構成可能ハードウェアD上にはデータ変換回路Cが構成される。なお、制御部Xも再構成可能ハードウェアDの一部として実現されていても良い。
【0049】
前記した第2の実施形態の説明で分かるように、第2の実施形態におけるデータ変換回路Cの構成方法は、セルの数nおよび状態遷移規則の数pを柔軟に変更可能な能力を持つ。これを利用して、データ変換の処理単位、要求暗号強度、要求処理スループット、要求消費電力に応じた制約条件Wを制御部Xに入力し、制御部Xがこの制約条件Wに応じた構成データYを構成し、その構成データYにより再構成可能ハードウェアD上にデータ変換回路Cを設定すれば、要求された制約条件Wに応じた適切な実現形態でデータ変換処理が可能になるという利点がある。
【0050】
以下それぞれの実施例を示す。以下では、制約条件Wに応じて処理形態を変更する実施例として、制約条件WをW0,W1,W2の3ビットで構成する場合について説明する。制御部XはW0の値によってデータ変換回路Cで構成されるパイプラインの段数を変更する。具体的には、W0=0のとき図12のようにデータ変換回路Cのパイプラインを1回の状態遷移演算を単位として構成し、W0=1のとき図13のようにデータ変換回路Cのパイプラインを2回の状態遷移演算を単位として構成するとする。また、制御部XはW1の値によってデータ変換回路Cによって実現するセルラーオートマトンの状態遷移規則の数pを変更する。具体的には、W1=0のとき制御部Xはデータ変換のために状態遷移規則を1つ使用し、W1=1のとき2つ使用するとする。最後に、制御部XはW2の値によってデータ変換回路Cで実現するセルラーオートマトンの構成セル数を変更する。具体的には、W2=0のときセルの数nを4とし、W2=1のとき8とする。鍵データKは4、8、16ビットのいずれかの幅を持つとし、鍵データKに応じて制御部Xは必要な数の状態遷移規則を生成する。
【0051】
<データ変換の処理単位を変更する実施例>
データ変換の処理単位を変更する場合はW2を変更する。データ変換の処理単位を小さくとりたい場合は、外部からW0=0,W1=0,W2=0を制約条件Wとして制御部Xに入力し、鍵データKとして4ビットの値を制御部Xに入力する。この場合、制約条件Wの意味から、制御部Xは▲1▼1回の状態遷移演算をパイプライン処理の単位とする、▲2▼状態遷移規則が1つ、▲3▼セル数が4のセルラーオートマトンの状態遷移演算を行う、ようなデータ変換回路Cの構成データYを生成する。
【0052】
一例として、制御部Xは鍵データKの各ビットKi(0≦i<4)の値に応じてi番目のセルの状態遷移規則πiを次の
のように生成するとして説明する。
【0053】
制御部Xはこの状態遷移1回をパイプライン処理の単位として構成するデータ変換回路Cの構成データYを生成する。データ変換回路Cを決定するには鍵データKから生成した状態遷移規則によるセルラーオートマトンの状態遷移周期を求める必要がある。式8で表わされるセルラーオートマトンの場合、あるj(0≦j<4)において、j≦i<j+aの範囲で常にKi=1である、という性質を満たすaの集合のうち最大の要素をLとし、rを2(r−1)−1<L≦2r−1を満たす整数とすると、状態遷移周期は2rとなる、という性質があるため(参考文献1)、これを利用して算出する。例えば、K3=1,K2=1,K1=1,K0=1である場合、連続してKi=1となるiの数は4が最大であるため、L=4である。従って、r=3となり、状態遷移周期は2r=8となる。
【0054】
以上から、制御部Xはデータ変換回路Cを図14のように構成する。データ変換回路Cは平文データ/暗号文データIを入力として受信し、暗号文データ/平文データをOとして出力する。この例の場合、データ変換に利用する状態遷移規則は1つなので、データ変換回路Cは置換演算ユニットT0の1つから構成される。そして、状態遷移周期が8であるため、置換演算ユニットT0は4つの状態遷移演算ユニットS00,S01,S02,S03をパイプライン状に接続した構成となっている。各状態遷移演算ユニットは状態遷移を計算する論理回路と、計算結果を記憶する1ビット記憶素子から構成される。例えば、状態遷移演算ユニットS00では4つのXNOR演算回路と4つの1ビット記憶素子m00,m01,m02,m03から構成される。
【0055】
制御部Xは図14のようなデータ変換回路Cを表す構成データYを生成し、再構成可能ハードウェアDに送信する。再構成可能ハードウェアDは構成データYを受信すると、構成データYに従って再構成可能ハードウェアD上にデータ変換回路Cに相当する回路を設定し、データ変換回路Cが回路として動作する状態になる。
【0056】
データ変換回路Cの構成が終了した後、制御部Xは平文データ/暗号文データIを4ビット単位でデータ変換部Rに送信するように外部に指示する。これによって外部から平文データ/暗号文データIが送信され、送信された平文データ/暗号文データIはデータ変換回路Cによって演算が行われ、演算結果が暗号文データ/平文データOとして出力される。これによりデータ変換処理が完了する。
【0057】
一方、データ変換の処理単位を大きくとりたい場合は、外部からW0=0,W1=0,W2=1を制約条件Wとして制御部Xに入力し、鍵データKとして8ビットの値を制御部Xに入力する。この場合、制約条件Wの意味から、制御部Xは▲1▼1回の状態遷移演算をパイプライン処理の単位とする、▲2▼状態遷移規則が1つ、▲3▼セル数が8のセルラーオートマトンの状態遷移演算を行う、ようなデータ変換回路Cの構成データYを生成する。
【0058】
例えば、制御部Xは鍵データKの各ビットKi(0≦i<8)の値に応じてi番目のセルの状態遷移規則πiを次の
のように生成するとする。
【0059】
制御部Xはこの状態遷移1回をパイプライン処理の単位として構成するデータ変換回路Cの構成データYを生成する。データ変換回路Cを決定するには鍵データKから生成した状態遷移規則によるセルラーオートマトンの状態遷移周期を求める必要がある。式9で表わされるセルラーオートマトンの場合、あるj(0≦j<8)において、j≦i<j+aの範囲で常にKi=1である、という性質を満たすaの集合のうち最大の要素をLとし、rを2(r−1)−1<L≦2r−1を満たす整数とすると、状態遷移周期は2rとなる、という性質があるため(参考文献1)、これを利用して算出する。例えば、K7=1,K6=1,K5=1,K4=1,K3=1,K2=1,K1=1,K0=1である場合、連続してKi=1となるiの数は8が最大であるため、L=8である。従って、r=4となり、状態遷移周期は2r=16となる。
【0060】
以上から、制御部Xはデータ変換回路Cを図15のように構成する。データ変換回路Cは平文データ/暗号文データIを入力として受信し、暗号文データ/平文データOを出力する。この例の場合、データ変換に利用する状態遷移規則は1つなので、データ変換回路Cは置換演算ユニットT0の1つから構成される。そして、状態遷移周期が16であるため、置換演算ユニットT0は8つの状態遷移演算ユニットS00,S01,S02,S03,S04,S05,S06,S07をパイプライン状に接続した構成となっている。各状態遷移演算ユニットは状態遷移を計算する論理回路と、計算結果を記憶する1ビット記憶素子から構成される。例えば、状態遷移演算ユニットS00では8つのXNOR回路と8つの1ビット記憶素子m00,m01,m02,m03,m04,m05,m06,m07から構成される。
【0061】
制御部Xは図15のようなデータ変換回路Cを表す構成データYを生成し、再構成可能ハードウェアDに送信する。構成可能ハードウェアDは構成データYを受信すると、構成データYに従って再構成可能ハードウェアD上にデータ変換回路Cに相当する回路を設定し、データ変換回路Cが回路として動作する状態になる。
【0062】
データ変換回路Cの構成が終了した後、制御部Xは平文データ/暗号文データIを8ビット単位でデータ変換部Rに送信するように外部に指示する。これによって外部から平文データ/暗号文データIが送信され、送信された平文データ/暗号文データIはデータ変換回路Cによって演算が行われ、演算結果が暗号文データ/平文データ0として出力される。これによりデータ変換処理が完了する。
【0063】
<暗号強度を変更する実施例>
暗号強度を変更する場合はW1,W2を変更する。例えば、低い暗号強度で良い場合には、外部からW0=0、W1=0、W2=0を制約条件Wとして制御部Xに入力し、鍵データKとして4ビットの値を制御部Xに入力する。この場合、制約条件Wの意味から、制御部Xは▲1▼1回の状態遷移演算をパイプライン処理の単位とする、▲2▼状態遷移規則が1つ、▲3▼セル数が4のセルラーオートマトンの状態遷移演算を行う、ようなデータ変換回路Cの構成データYを生成する。
【0064】
例えば、制御部Xは鍵データKの各ビットKi(0≦i<4)の値に応じてi番目のセルの状態遷移規則πiを次の
のように生成するとする。
【0065】
制御部Xはこの状態遷移1回をパイプライン処理の単位として構成するデータ変換回路Cの構成データYを生成する。データ変換回路Cを決定するには鍵データKから生成した状態遷移規則によるセルラーオートマトンの状態遷移周期を求める必要がある。式10で表わされるセルラーオートマトンの場合、あるj(0≦j<4)において、j≦i<j+aの範囲で常にKi=1である、という性質を満たすaの集合のうち最大の要素をLとし、rを2(r−1)−1<L≦2r−1を満たす整数とすると、状態遷移周期は2rとなる、という性質があるため(参考文献1)、これを利用して算出する。例えば、K3=1,K2=1,K1=1,K0=1である場合、連続してKi=1となるiの数は4が最大であるため、L=4である。従って、r=3となり、状態遷移周期は2r=8となる。
【0066】
以上から、制御部Xはデータ変換回路Cを図16のように構成する。データ変換回路Cは平文データ/暗号文データIを入力として受信し、暗号文データ/平文データOを出力する。この例の場合、データ変換に利用する状態遷移規則は1つなので、データ変換回路Cは置換演算ユニットT0の1つから構成される。そして、状態遷移周期が8であるため、置換演算ユニットT0は4つの状態遷移演算ユニットS00,S01,S02,S03をパイプライン状に接続した構成となっている。各状態遷移演算ユニットは状態遷移を計算する論理回路と、計算結果を記憶する1ビット記憶素子から構成される。例えば、状態遷移演算ユニットS00では4つのXNOR回路と4つの1ビット記憶素子m00,m01,m02,m03から構成される。
【0067】
制御部Xは図16のようなデータ変換回路Cを表す構成データYを生成し、再構成可能ハードウェアDに送信する。再構成可能ハードウェアDは構成データYを受信すると、構成データYに従って再構成可能ハードウェアD上にデータ変換回路Cに相当する回路を設定し、データ変換回路Cが回路として動作する状態になる。
【0068】
データ変換回路Cの構成が終了した後、制御部Xは平文データ/暗号文データIを4ビット単位でデータ変換部Rに送信するように外部に指示する。これによって外部から平文データ/暗号文データIが送信され、送信された平文データ/暗号文データIはデータ変換回路Cによって演算が行われ、演算結果が暗号文データ/平文データOとして出力される。これによりデータ変換処理が完了する。
【0069】
一方、高い暗号強度が要求される場合には、外部からW0=0,W1=1,W2=1を制約条件Wとして制御部Xに入力し、鍵データKとして16ビットの値を制御部Xに入力する。この場合、制約条件Wの意味から、制御部Xは▲1▼1回の状態遷移演算をパイプライン処理の単位とする、▲2▼状態遷移規則が2つ、▲3▼セル数が8のセルラーオートマトンの状態遷移演算を行う、ようなデータ変換回路Cの構成データYを生成する。
【0070】
例えば、制御部Xは鍵データKの各ビットKi(0≦i<16)の値に応じてKi(0≦i<8)では1つめの状態遷移規則Π0のi番目のセルの状態遷移規則πiを次の
のように生成するとする。
【0071】
また、Ki(8≦i<16)では2つめの状態遷移規則Π1のi−8番目のセルの状態遷移規則πi−8を次の
のように生成するとする。
【0072】
制御部Xはこの状態遷移1回をパイプライン処理の単位として構成するデータ変換回路Cの構成データYを生成する。データ変換回路Cを決定するには鍵データKから生成した状態遷移規則によるセルラーオートマトンの状態遷移周期を求める必要がある。式11、式12で表わされるセルラーオートマトンの場合、式11、式12の状態遷移規則それぞれについて、あるj(0≦j<8)において、j≦i<j+aの範囲で常にKi=1である、という性質を満たすaの集合のうち最大の要素をLとし、rを2(r−1)−1<L≦2r−1を満たす整数とすると、状態遷移周期は2rとなる、という性質があるため(参考文献1)、これを利用して状態遷移周期を算出する。例えば、Ki=1(0≦i<16)の場合、1つめの状態遷移規則Π0では連続してKi=1となるiの数は8が最大であるため、L=8である。従って、r=4となり、Π0の状態遷移周期は16となる。また、2つめの状態遷移親則Π1では連続してKi=1となるiの数は8が最大であるため、L=8である。従ってr=4となり、Π1の状態遷移周期は16となる。
【0073】
以上から、制御部Xはデータ変換回路Cを図17のように構成する。データ変換回路Cは平文データ/暗号文データIを入力として受信し、暗号文データ/平文データOを出力する。この例の場合、データ変換に利用する状態遷移規則は2つなので、データ変換回路Cは置換演算ユニットT0,T1から構成される。そして、それぞれの状態遷移規則における状態遷移周期が16であるため、置換演算ユニットT0は8つの状態遷移演算ユニットS00,S01,S02,S03,S04,S05,S06,S07をパイプライン状に接続した構成に、置換演算ユニットT1は8つの状態遷移演算ユニットS10,S11,S12,S13,S14,S15,S16,S17をパイプライン状に接続した構成に、それぞれなっている。各状態遷移演算ユニットは状態遷移を計算する論理回路と、計算結果を記憶する1ビット記憶素子から構成される。例えば、状態遷移演算ユニットS00では8つのXNOR回路と8つの1ビット記憶素子m00,m01,m02,m03,m04,m05,m06,m07から構成される。
【0074】
制御部Xは図17のようなデータ変換回路Cを表す構成データYを生成し、再構成可能ハードウェアDに送信する。再構成可能ハードウェアDは構成データYを受信すると、構成データYに従って再構成可能ハードウェアD上にデータ変換回路Cに相当する回路を設定し、データ変換回路Cが回路として動作する状態になる。
【0075】
データ変換回路Cの構成が終了した後、制御部Xは平文データ/暗号文データIを8ビット単位でデータ変換部Rに送信するように外部に指示する。これによって外部から平文データ/暗号文データIが送信され、送信された平文データ/暗号文データIはデータ変換回路Cによって演算が行われ、演算結果が暗号文データ/平文データOとして出力される。これによりデータ変換処理が完了する。
【0076】
図16のデータ変換回路Cが4ビットのセルラーオートマトンの状態遷移規則を1つだけ使用して暗号化を行うのに対し、図17のデータ変換回路Cは8ビットのセルラーオートマトンの状態遷移規則を2つ使用して暗号化を行うため、後者のほうがより暗号強度が高くなる。
【0077】
<処理スループットを変更する実施例>
処理スループットを変更する場合はW0を変更する。例えば、低い処理スループットで良い場合には、外部からW0=1、W1=0、W2=0を制約条件Wとして制御部Xに入力し、鍵データKとして4ビットの値を制御部Xに入力する。この場合、制約条件Wの意味から、制御部Xは▲1▼2回の状態遷移演算をパイプライン処理の単位とする、▲2▼状態遷移規則が1つ、▲3▼セル数が4のセルラーオートマトンの状態遷移演算を行う、ようなデータ変換回路Cの構成データYを生成する。
【0078】
例えば、制御部XはKの各ビットKi(0≦i<4)の値に応じてi番目のセルの状態遷移規則πiを次の
のように生成するとする。
【0079】
制御部Xはこの状態遷移2回をパイプライン処理の単位として構成するデータ変換回路Cの構成データYを生成する。データ変換回路Cを決定するには鍵データKから生成した状態遷移規則によるセルラーオートマトンの状態遷移周期を求める必要がある。式13で表わされるセルラーオートマトンの場合、あるj(0≦j<4)において、j≦i<j+aの範囲で常にKi=1である、という性質を満たすaの集合のうち最大の要素をLとし、rを2(r−1)−1<L≦2r−1を満たす整数とすると、状態遷移周期は2rとなる、という性質があるため(参考文献1)、これを利用して算出する。例えば、K3=1、K2=1、K1=1、K0=1である場合、連続してKi=1となるiの数は4が最大であるため、L=4である。従って、r=3となり、状態遷移周期は2r=8となる。
【0080】
以上から、データ変換回路Cは図18のようになるため、制御部Xはこれを表す構成データYを生成し、再構成可能ハードウェアDに送信する。再構成可能ハードウェアDは構成データYを受信すると、構成データYに従って再構成可能ハードウェアD上にデータ変換回路Cに相当する回路を設定し、データ変換回路Cが回路として動作する状態になる。
【0081】
データ変換回路Cの構成が終了した後、制御部Xは平文データ/暗号文データIを4ビット単位でデータ変換部Rに送信するように外部に指示する。これによって外部から平文データ/暗号文データIが送信され、送信された平文データ/暗号文データIはデータ変換回路Cによって演算が行われ、演算結果が暗号文データ/平文データOとして出力される。これによりデータ変換処理が完了する。
【0082】
一方、高い処理スループットが要求される場合には、外部からW0=0、W1=0、W2=0を制約条件Wとして制御部Xに入力し、鍵データKとして4ビットの値を制御部Xに入力する。
【0083】
この場合、制約条件Wの意味から、制御部Xは▲1▼1回の状態遷移演算をパイプライン処理の単位とする、▲2▼状態遷移規則が1つ、▲3▼セル数が4のセルラーオートマトンの状態遷移演算を行う、ようなデータ変換回路Cの構成データYを生成する。
【0084】
例えば、制御部XはKの各ビットKi(0≦i<4)の値に応じてi番目のセルの状態遷移規則πiを次の
のように生成するとする。
【0085】
制御部Xはこの状態遷移1回をパイプライン処理の単位として構成するデータ変換回路Cの構成データYを生成する。データ変換回路Cを決定するには鍵データKから生成した状態遷移規則によるセルラーオートマトンの状態遷移周期を求める必要がある。式14で表わされるセルラーオートマトンの場合、あるj(0≦j<4)において、j≦i<j+aの範囲で常にKi=1である、という性質を満たすaの集合のうち最大の要素をLとし、rを2(r−1)−1<L≦2r−1を満たす整数とすると、状態遷移周期は2rとなる、という性質があるため(参考文献1)、これを利用して算出する。例えば、K3=1,K2=1,K1=1,K0=1である場合、連続してKi=1となるiの数は4が最大であるため、L=4である。従って、r=3となり、状態遷移周期は2r=8となる。
【0086】
以上から、データ変換回路Cは図19のようになるため、制御部Xはこれを表す構成データYを生成し、再構成可能ハードウェアDに送信する。再構成可能ハードウェアDは構成データYを受信すると、構成データYに従って再構成可能ハードウェアD上にデータ変換回路Cに相当する回路を設定し、データ変換回路Cが回路として動作する状態になる。
【0087】
データ変換回路Cの構成が終了した後、制御部Xは平文データ/暗号文データIを4ビット単位でデータ変換部Rに送信するように外部に指示する。これによって外部から平文データ/暗号文データIが送信され、送信された平文データ/暗号文データIはデータ変換回路Cによって演算が行われ、演算結果が暗号文データ/平文データOとして出力される。これによりデータ変換処理が完了する。
【0088】
図18のデータ変換回路Cは状態遷移の演算2回をパイプライン処理の単位とするのに対し、図19のデータ変換回路Cは状態遷移の演算1回をパイプライン処理の単位とするため、後者のほうがより処理スループットを高くすることが可能である。
【0089】
<消費電力を変更する実施例>
消費電力を変更する場合はW0を変更する。例えば、消費電力を低く抑える場合には、外部からW0=1,W1=0,W2=0を制約条件Wとして制御部Xに入力し、鍵データKとして4ビットの値を制御部Xに入力する。この場合、制約条件Wの意味から、制御部Xは▲1▼2回の状態遷移演算をパイプライン処理の単位とする、▲2▼状態遷移規則が1つ、▲3▼セル数が4のセルラーオートマトンの状態遷移演算を行う、ようなデータ変換回路Cの構成データYを生成する。
【0090】
例えば、制御部Xは鍵データKの各ビットKi(0≦i<4)の値に応じてi番目のセルの状態遷移規則πiを次の
のように生成するとする。
【0091】
制御部Xはこの状態遷移2回をパイプライン処理の単位として横成するデータ変換回路Cの構成データYを生成する。データ変換回路Cを決定するには鍵データKから生成した状態遷移規則によるセルラーオートマトンの状態遷移周期を求める必要がある。式15で表わされるセルラーオートマトンの場合、あるj(0≦j<4)において、j≦i<j+aの範囲で常にKi=1である、という性質を満たすaの集合のうち最大の要素をLとし、rを2(r−1)−1<L≦2r−1を満たす整数とすると、状態遷移周期は2rとなる、という性質があるため(参考文献1)、これを利用して算出する。例えば、K3=1,K2=1,K1=1,K0=1である場合、連続してKi=1となるiの数は4が最大であるため、L=4である。従って、r=3となり、状態遷移周期は2r=8となる。
【0092】
以上から、データ変換回路Cは図20のようになるため、制御部Xはこれを表す構成データYを生成し、再構成可能ハードウェアDに送信する。再構成可能ハードウェアDは構成データYを受信すると、構成データYに従って再構成可能ハードウェアD上にデータ変換回路Cに相当する回路を設定し、データ変換回路Cが回路として動作する状態になる。
【0093】
データ変換回路Cの構成が終了した後、制御部Xは平文データ/暗号文データIを4ビット単位でデータ変換部Rに送信するように外部に指示する。これによって外部から平文データ/暗号文データIが送信され、送信された平文データ/暗号文データIはデータ変換回路Cによって演算が行われ、演算結果が暗号文データ/平文データOとして出力される。これによりデータ変換処理が完了する。
【0094】
一方、消費電力を多くとれる場合には、外部からW0=0,W1=0,W2=0を制約条件Wとして制御部Xに入力し、鍵データKとして4ビットの値を制御部Xに入力する。この場合、制約条件Wの意味から、制御部Xは▲1▼1回の状態遷移演算をパイプライン処理の単位とする、▲2▼状態遷移規則が1つ、▲3▼セル数が4のセルラーオートマトンの状態遷移演算を行う、ようなデータ変換回路Cの構成データYを生成する。
【0095】
例えば、制御部Xは鍵データKの各ビットKi(0≦i<4)の値に応じてi番目のセルの状態遷移規則πiを次の
のように生成するとする。
【0096】
制御部Xはこの状態遷移1回をパイプライン処理の単位として構成するデータ変換回路Cの構成データYを生成する。データ変換回路Cを決定するには鍵データKから生成した状態遷移規則によるセルラーオートマトンの状態遷移周期を求める必要がある。式16で表わされるセルラーオートマトンの場合、あるj(0≦j<4)において、j≦i<j+aの範囲で常にKi=1である、という性質を満たすaの集合のうち最大の要素をLとし、rを2(r−1)−1<L≦2r−1を満たす整数とすると、状態遷移周期は2rとなる、という性質があるため(参考文献1)、これを利用して算出する。例えば、K3=1,K2=1,K1=1,K0=1である場合、連続してKi=1となるiの数は4が最大であるため、L=4である。従って、r=3となり、状態遷移周期は2r=8となる。
【0097】
以上から、データ変換回路Cは図21のようになるため、制御部Xはこれを表す構成データYを生成し、再構成可能ハードウェアDに送信する。再構成可能ハードウェアDは構成データYを受信すると、構成データYに従って再構成可能ハードウェアD上にデータ変換回路Cに相当する回路を設定し、データ変換回路Cが回路として動作する状態になる。
【0098】
データ変換回路Cの構成が終了した後、制御部Xは平文データ/暗号文データIを4ビット単位でデータ変換部Rに送信するように外部に指示する。これによって外部から平文データ/暗号文データIが送信され、送信された平文データ/暗号文データIはデータ変換回路Cによって演算が行われ、演算結果が暗号文データ/平文データOとして出力される。これによりデータ変換処理が完了する。
【0099】
図20のデータ変換回路Cは4ビットのセルラーオートマトンの状態遷移を2回の状態遷移を単位としたパイプライン処理により行うのに対し、図21のデータ変換回路Cは4ビットのセルラーオートマトンの状態遷移を1回の状態遷移を単位としたパイプライン処理により行うため、前者のほうが実現に必要な回路規模が小さくなり、結果として処理に必要な消費電力を小さく抑えることが可能である。
【0100】
<その他の実施例>
第3の実施形態における各実施例はデータ変換の処理単位、暗号強度、処理スループット、消費電力の各要求に応じて2つの回路の選択肢を用意し、制約条件Wにより制御部Xがデータ変換回路Cを選択する形式となっているが、データ変換回路Cの実現の原理から、より細かい条件によるデータ変換回路Cの実現形態の制御が可能であることは容易に推測可能である。
【0101】
以上のように、データ変換の処理単位、要求暗号強度、要求処理スループット、要求消費電力に応じて制約条件Wを制御部Xに入力し、制御部Xが制約条件Wに応じたデータ変換回路Cを構成し、その構成データYにより再構成可能ハードウェアD上にデータ変換回路Cを設定すれば、要求された制約条件Wに応じた適切な実現形態でデータ変換処理が可能になるという利点がある。
【0102】
【発明の効果】
本発明により、実行時にデータ変換の処理スループットを保ったままデータ変換の複雑度を向上させることが可能となる。また、実行時の環境の制約条件に応じて処理スループットを動的に調整しながらデータ変換処理が可能となる。
【図面の簡単な説明】
【図1】第1の実施形態のデータ暗号化/復号化装置のブロック図である。
【図2】セルラーオートマトンの状態遷移規則の計算を行う回路図である。
【図3】セルラーオートマトンの系全体の状態遷移の説明図である。
【図4】再構成可能ハードウェア上に実現するセルラーオートマトンによるデータ変換回路の回路図である。
【図5】第2の実施形態のデータ変換回路Cのブロック図である。
【図6】図5のデータ変換回路Cを構成する置換演算ユニットのブロック図である。
【図7】図6の置換演算ユニットを構成する状態遷移演算ユニットのブロック図である。
【図8】セルラーオートマトンの系全体の状態遷移の説明図である。
【図9】データ変換回路Cの具体的な一例の回路図である。
【図10】データ変換回路Cの具体的な別の一例の回路図である。
【図11】第3の実施形態のデータ暗号化/復号化装置のブロック図である。
【図12】一段のパイプラインでセルラーオートマトンの状態遷移を1回計算する実施例の回路図である。
【図13】一段のパイプラインでセルラーオートマトンの状態遷移を2回計算する実施例の回路図である。
【図14】データ変換の処理単位を4ビットとした場合のデータ変換回路Cの具体的な一例の回路図である。
【図15】データ変換の処理単位を8ビットとした場合のデータ変換回路Cの具体的な一例の回路図である。
【図16】暗号強度をそれほど必要としない場合のデータ変換回路Cの具体的な一例の回路図である。
【図17】暗号強度を必要とする場合のデータ変換回路Cの具体的な構成の一例の回路図である。
【図18】スループットを要求されない場合のデータ変換回路Cの具体的な一例の回路図である。
【図19】スループットを要求される場合のデータ変換回路Cの具体的な一例の回路図である。
【図20】消費電力を抑えたい場合のデータ変換回路Cの具体的な一例の回路図である。
【図21】消費電力を抑えない場合のデータ変換回路Cの具体的な一例の回路図である。
【図22】従来のセルラーオートマトンの基本構成のブロック図である。
【図23】セルラーオートマトンの系全体の状態遷移の説明図である。
【図24】セルラーオートマトンを利用した暗号化/復号化方式のソフトウェアによる実現例を説明するためのフローチャートである。
【図25】セルラーオートマトンを利用した暗号化/復号化方式の専用ハードウェアによる実現例を説明するためのブロック図である。
【図26】図25における制御部X0の制御のフローチャートである。
【符号の説明】
X,X0:制御部、K:鍵データ、R,R0:データ変換部、C:データ変換回路、D:再構成可能ハードウェア、Y:構成データ、W:制約条件、RAM:演算定義メモリ、AP:アドレスポート、DP:データポート、AB:アドレスバス、DB:データバス、M:セル状態保持メモリ
Claims (6)
- 入力データを再構成可能ハードウェア上に構成したデータ変換部により変換して出力データとするデータ変換方法であって、
外部から受信した鍵データに基づきデータ変換規則を生成し、該生成したデータ変換規則に基づき前記再構成可能ハードウェア上に前記データ変換部を構成してデータ変換を行うことを特徴とするデータ変換方法。 - 請求項1に記載のデータ変換方法において、
前記データ変換規則は逐次実行される複数の部分変換規則の集合で構成し、各部分変換規則毎に独立に動作可能な機能で前記データ変換部を構成することを特徴とするデータ変換方法。 - 請求項1又は2に記載のデータ変換方法において、
前記データ変換規則を前記鍵データおよび外部から受信する制約条件に基づき生成し、該制約条件はデータ変換の処理単位、要求暗号強度、要求処理スループット、要求消費電力等の条件を設定することを特徴とするデータ変換方法。 - 外部から受信した鍵データに基づきデータ変換規則を生成する制御部と、回路の書き換えが可能な再構成可能ハードウェア上に構成され入力データを変換して出力データとするデータ変換部とを具備し、
前記データ変換部には前記再構成可能ハードウェア上に前記データ変換規則に基づくデータ変換回路が構成されていることを特徴とするデータ変換装置。 - 請求項4に記載のデータ変換装置において、
前記データ変換部の前記データ変換回路は、前記データ変換規則を逐次実行可能な複数の部分変換規則に対応し且つ独立動作可能な複数の状態遷移演算手段の集合で構成されていることを特徴とするデータ変換装置。 - 請求項4又は5に記載のデータ変換装置において、
前記制御部は外部から前記鍵データおよび制約条件を受信して前記鍵データおよび前記制約条件に基づき前記データ変換規則を生成し、
前記データ変換部は前記制約条件によりデータ変換の処理単位、要求暗号強度、要求処理スループット、要求消費電力等の条件を設定したデータ変換を行うよう前記データ変換回路が設定されていることを特徴とするデータ変換装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003180561A JP2005018310A (ja) | 2003-06-25 | 2003-06-25 | データ変換方法および装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003180561A JP2005018310A (ja) | 2003-06-25 | 2003-06-25 | データ変換方法および装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005018310A true JP2005018310A (ja) | 2005-01-20 |
Family
ID=34181516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003180561A Withdrawn JP2005018310A (ja) | 2003-06-25 | 2003-06-25 | データ変換方法および装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005018310A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006236325A (ja) * | 2005-01-25 | 2006-09-07 | Matsushita Electric Ind Co Ltd | データ処理装置 |
JP2010263623A (ja) * | 2009-05-04 | 2010-11-18 | Mediatek Singapore Pte Ltd | 再構成可能(reconfigurable)、及び、拡張可能(scalable)な暗号化/復号(encryption/decryption)モジュールによるコーディング装置と方法 |
CN101697116B (zh) * | 2009-10-27 | 2011-11-09 | 飞天诚信科技股份有限公司 | 数据变换方法及装置 |
CN101783924B (zh) * | 2010-01-27 | 2011-12-28 | 武汉大学 | 基于fpga平台和演化硬件的图像加解密系统及其方法 |
CN103026332A (zh) * | 2010-06-10 | 2013-04-03 | 美光科技公司 | 可编程装置、层次并行机、用于提供状态信息的方法 |
-
2003
- 2003-06-25 JP JP2003180561A patent/JP2005018310A/ja not_active Withdrawn
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006236325A (ja) * | 2005-01-25 | 2006-09-07 | Matsushita Electric Ind Co Ltd | データ処理装置 |
JP4676888B2 (ja) * | 2005-01-25 | 2011-04-27 | パナソニック株式会社 | データ処理装置 |
JP2010263623A (ja) * | 2009-05-04 | 2010-11-18 | Mediatek Singapore Pte Ltd | 再構成可能(reconfigurable)、及び、拡張可能(scalable)な暗号化/復号(encryption/decryption)モジュールによるコーディング装置と方法 |
CN101697116B (zh) * | 2009-10-27 | 2011-11-09 | 飞天诚信科技股份有限公司 | 数据变换方法及装置 |
CN101783924B (zh) * | 2010-01-27 | 2011-12-28 | 武汉大学 | 基于fpga平台和演化硬件的图像加解密系统及其方法 |
CN103026332A (zh) * | 2010-06-10 | 2013-04-03 | 美光科技公司 | 可编程装置、层次并行机、用于提供状态信息的方法 |
JP2013534660A (ja) * | 2010-06-10 | 2013-09-05 | マイクロン テクノロジー, インク. | 状態情報を提供するためのプログラム可能装置、階層型並列マシン、方法 |
US9519860B2 (en) | 2010-06-10 | 2016-12-13 | Micron Technology, Inc. | Programmable device, hierarchical parallel machines, and methods for providing state information |
US10191788B2 (en) | 2010-06-10 | 2019-01-29 | Micron Technology, Inc. | Programmable device, heirarchical parallel machines, and methods for providing state information |
US11003515B2 (en) | 2010-06-10 | 2021-05-11 | Micron Technology, Inc. | Programmable device, hierarchical parallel machines, and methods for providing state information |
US11604687B2 (en) | 2010-06-10 | 2023-03-14 | Micron Technology, Inc. | Programmable device, hierarchical parallel machines, and methods for providing state information |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20160132943A (ko) | 단열 양자 계산을 통한 디지털 로직 제한 문제 해결 | |
JP4128395B2 (ja) | データ変換装置 | |
JP4890976B2 (ja) | 暗号処理装置 | |
Chang et al. | Signature gateway: Offloading signature generation to IoT gateway accelerated by GPU | |
Broscius et al. | Exploiting parallelism in hardware implementation of the DES | |
Yang et al. | Compact hardware implementation of a SHA-3 core for wireless body sensor networks | |
KR20050078271A (ko) | 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법 | |
CN114615069B (zh) | 一种Quartet轻量级加密算法的实现装置及方法 | |
CN117240601B (zh) | 加密处理方法、加密处理电路、处理终端及存储介质 | |
CN108400866B (zh) | 一种粗粒度可重构密码逻辑阵列 | |
JP2005018310A (ja) | データ変換方法および装置 | |
JP2002040932A (ja) | データ暗号化標準アルゴリズムを利用する暗号化装置 | |
CN116366248B (zh) | 基于紧凑指令集扩展的Kyber实现方法及系统 | |
CN112564890A (zh) | 一种加速sm4算法的方法、装置、处理器及电子设备 | |
JP2001051832A (ja) | 乗算剰余演算方法および乗算剰余回路 | |
JP2006510067A (ja) | ラインドールのサブバイトファンクションの小さなハードウェア実現 | |
CN114826560B (zh) | 一种轻量级分组密码cref实现方法及系统 | |
US11977883B2 (en) | Reconfigurable crypto-processor | |
JPWO2009090689A1 (ja) | 暗号化装置及び暗号処理方法 | |
Jungk et al. | On FPGA-based implementations of the SHA-3 candidate Grøstl | |
JP2725610B2 (ja) | 秘密鍵暗号方法及び装置 | |
Jungk et al. | On FPGA-based implementations of Gr\{o} stl | |
Korobeynikov | Effective implementation of" Kuznyechik" block cipher on FPGA with OpenCL platform | |
Modi et al. | Effective hardware architectures for LED and PRESENT ciphers for resource-constrained applications | |
El-Hadedy et al. | Reco-Pi: a reconfigurable cryptoprocessor for π-cipher |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060905 |