説明

アルゴリズム可変型暗号装置、アルゴリズム可変型復号装置、アルゴリズム可変型暗号方法、アルゴリズム可変型復号方法およびプログラム

【課題】一定の安全性と処理性能を保証しつつ、鍵によりアルゴリズムを可変するアルゴリズム可変型暗号装置、アルゴリズム可変型復号装置、およびその方法、プログラムを提供する。
【解決手段】所定の処理を複数回実行するラウンド関数から構成されるアルゴリズム可変型暗号装置であって、前記ラウンド関数が、入力される鍵ビット情報に応じて、アルゴリズムが可変する部分と常に固定の部分とから構成されるアルゴリズム可変型暗号装置である。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一定の安全性と処理性能を保証するアルゴリズム可変型暗号装置、アルゴリズム可変型復号装置、アルゴリズム可変型暗号方法、アルゴリズム可変型復号方法およびプログラムに関する。
【背景技術】
【0002】
近年、インターネットの目覚しい普及により、コンピュータを利用した様々なサービスが提供されている。こうして提供されるサービスの多くは、その通信内容を秘匿化するために暗号が利用されている。ここで、暗号方式としては、1つの鍵で暗号化と復号化とを行う共通鍵暗号方式が一般的であるが、この共通鍵暗号方式は、大きくブロック暗号方式とストリーム暗号方式とに大別される。
【0003】
ストリーム暗号方式の一例としては、乱数系列のビットデータを入力し、変換されたビットデータを複数の内部メモリから出力する非線形関数器であって、入力した乱数系列のビットデータと複数の内部メモリのうち一部の内部メモリデータとを加算する加算器と、入力データを非線形置換する非線形置換器と、を備え、複数の内部メモリが少なくとも非線形置換器を介して、環状に接続されるストリーム暗号装置が提案されている(例えば、特許文献1参照。)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006−327982号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
また、近年、アルゴリズム公開型の暗号アルゴリズムが主流となっているが、安全性を考慮して、アルゴリズムを秘匿にする方式もある。しかしながら、アルゴリズム秘匿型の方式においては、リバースエンジニアリングを考慮した場合、アルゴリズムを固定とせず、鍵によりアルゴリズムを変更するアルゴリズム可変型暗号にしたいという要求がある。
【0006】
そこで、本発明は、上述の課題に鑑みてなされたものであり、一定の安全性と処理性能を保証しつつ、鍵によりアルゴリズムを可変するアルゴリズム可変型暗号装置、アルゴリズム可変型復号装置、アルゴリズム可変型暗号方法、アルゴリズム可変型復号方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明は、上記の課題を解決するために、以下の事項を提案している。なお、理解を容易にするために、本発明の実施形態に対応する符号を付して説明するが、これに限定されるものではない。
【0008】
(1)本発明は、所定の処理を複数回実行するラウンド関数から構成されるアルゴリズム可変型暗号装置であって、前記ラウンド関数が、入力される鍵ビット情報に応じて、アルゴリズムが可変する部分と常に固定の部分とから構成されることを特徴とするアルゴリズム可変型暗号装置を提案している。
【0009】
この発明によれば、ラウンド関数が、入力される鍵ビット情報に応じて、アルゴリズムが可変する部分と常に固定の部分とから構成される。したがって、鍵ビット情報によりアルゴリズムの特定部分を可変できることから、一定の安全性と処理性能を保証することができる。
【0010】
(2)本発明は、(1)のアルゴリズム可変型暗号装置について、前記ラウンド関数が、入力されたデータを所定バイトごとに区切ったデータ群を鍵ビット情報に応じて入れ替える第1の巡回シフト手段(例えば、図1の巡回シフト部110a、110bに相当)と、前記第1の巡回シフト手段に接続される排他的論理和演算手段(例えば、図1の排他的論理和演算器120a、120bに相当)において演算の実行の有無を鍵ビット情報に応じて決定する演算決定手段(例えば、図1の演算決定部130a、130bに相当)と、前記排他的論理和演算手段の演算結果に対して非線形処理を行う非線形関数器(例えば、図1の非線形関数器140a、140bに相当)と、からなり、前記第1の巡回シフト手段、演算決定手段、非線形関数器の処理を所定回数実行することを特徴とするアルゴリズム可変型暗号装置を提案している。
【0011】
この発明によれば、ラウンド関数の第1の巡回シフト手段は、入力されたデータを所定バイトごとに区切ったデータ群を鍵ビット情報に応じて入れ替える。演算決定手段は、第1の巡回シフト手段に接続される排他的論理和演算手段において演算の実行の有無を鍵ビット情報に応じて決定する。非線形関数器は、排他的論理和演算手段の演算結果に対して非線形処理を行う。そして、第1の巡回シフト手段、演算決定手段、非線形関数器の処理を所定回数実行する。つまり、アルゴリズムの可変部分は、安全性と性能に影響を与えない第1の巡回シフト手段と演算決定手段とで構成されるため、上記の方式でアルゴリズムを可変しても、安全性や性能を一定のレベルに保つことができる。
【0012】
(3)本発明は、(2)のアルゴリズム可変型暗号装置について、前記演算決定手段(例えば、図1の演算決定部130a、130bに相当)が、「1」あるいは「0」からなる1ビットの鍵ビット情報により、前記排他的論理和演算手段における演算の実行を決定することを特徴とするアルゴリズム可変型暗号装置を提案している。
【0013】
この発明によれば、演算決定手段が、「1」あるいは「0」からなる1ビットの鍵ビット情報により、排他的論理和演算手段における演算の実行を決定する。具体的には、鍵ビット情報が「1」の時には、入力データに「1」をかけて出力し、鍵ビット情報が「0」の時には、入力データに「0」をかけて出力する。そのため、1ビットの鍵ビット情報により、排他的論理和演算手段における演算の実行の可否を決定することができる。
【0014】
(4)本発明は、(2)または(3)のアルゴリズム可変型暗号装置について、前記非線形関数(例えば、図1の非線形関数器140a、140bに相当)が、非線形置換と線形置換とから構成されることを特徴とするアルゴリズム可変型暗号装置を提案している。
【0015】
この発明によれば、非線形関数が、非線形置換と線形置換とから構成される。
【0016】
(5)本発明は、(4)のアルゴリズム可変型暗号装置について、前記非線形関数(例えば、図1の非線形関数器140a、140bに相当)がAESのラウンド関数であることを特徴とするアルゴリズム可変型暗号装置を提案している。
【0017】
この発明によれば、非線形関数がAESのラウンド関数である。つまり、AESのラウンド関数は、逆変換関数が存在するため、この逆変換関数を用いることにより、復号処理を行うことができる。
【0018】
(6)本発明は、(1)から(5)のアルゴリズム可変型暗号装置について、前記ラウンド関数が、前記入力データのビット数以上の前記鍵ビット情報が入力されるまで、前記所定の処理を実行することを特徴とするアルゴリズム可変型暗号装置を提案している。
【0019】
この発明によれば、ラウンド関数が、入力データのビット数以上の鍵ビット情報が入力されるまで、所定の処理を実行する。つまり、本発明のアルゴリズム可変型暗号装置の安全性は、非線形関数により担保されているが、少なくとも、入力データのビット数以上の鍵ビット情報が入力されるまで、所定の処理を実行することにより、鍵に依存することなく安全性を担保することができる。
【0020】
(7)本発明は、(2)に記載のアルゴリズム可変型暗号装置において暗号化されたデータを復号するラウンド関数から構成されるアルゴリズム可変型復号装置であって、前記ラウンド関数が、暗号化されたデータを入力し、該入力されたデータを所定バイトごとに区切ったデータ群を鍵ビット情報に応じて前記第1の巡回シフト手段と逆方向に巡回させる第2の巡回シフト手段(例えば、図3の巡回シフト部150a、150bに相当)と、前記第2の巡回シフト手段に接続される排他的論理和演算手段(例えば、図3の排他的論理和演算器120a、120bに相当)において演算の実行の有無を鍵ビット情報に応じて決定する演算決定手段(例えば、図3の演算決定部130a、130bに相当)と、前記排他的論理和演算手段の演算結果に対して前記非線形関数の逆関数を用いて非線形処理を行う非線形関数器(例えば、図3の非線形関数器160a、160bに相当)と、からなり、前記第2の巡回シフト手段、演算決定手段、非線形関数器の処理を所定回数実行することを特徴とするアルゴリズム可変型復号装置を提案している。
【0021】
この発明によれば、ラウンド関数の第2の巡回シフト手段は、暗号化されたデータを入力し、入力されたデータを所定バイトごとに区切ったデータ群を鍵ビット情報に応じて第1の巡回シフト手段と逆方向に巡回させる。演算決定手段は、第2の巡回シフト手段に接続される排他的論理和演算手段において演算の実行の有無を鍵ビット情報に応じて決定する。非線形関数器は、排他的論理和演算手段の演算結果に対して非線形関数の逆関数を用いて非線形処理を行う。そして、第2の巡回シフト手段、演算決定手段、非線形関数器の処理を所定回数実行する。したがって、巡回シフト手段の巡回方向を逆方向とし、非線形関数の逆関数を用いることにより、アルゴリズム可変型暗号装置において暗号化された情報を簡易に復号することができる。
【0022】
(8)本発明は、所定の処理を複数回実行し、第1の巡回シフト手段と排他的論理和演算器と非線形関数器とからなるラウンド関数により構成されるアルゴリズム可変型暗号装置におけるアルゴリズム可変型暗号方法であって、前記ラウンド関数の第1の巡回シフト手段が、データを入力し、該入力されたデータを所定バイトごとに区切ったデータ群を鍵ビット情報に応じて入れ替える第1のステップ(例えば、図2のステップS101に相当)と、前記ラウンド関数の前記第1の巡回シフト手段に接続される排他的論理和演算器において演算の実行の有無を鍵ビット情報に応じて決定する第2のステップ(例えば、図2のステップS102に相当)と、前記排他的論理和演算器の演算結果に対して前記非線形関数器が、非線形処理を行う第3のステップ(例えば、図2のステップS103に相当)と、前記第1のステップから第3のステップを前記所定回数実行する第4のステップ(例えば、図2のステップS104に相当)と、を備えたことを特徴とするアルゴリズム可変型暗号方法を提案している。
【0023】
この発明によれば、ラウンド関数の第1の巡回シフト手段が、データを入力し、該入力されたデータを所定バイトごとに区切ったデータ群を鍵ビット情報に応じて入れ替え、ラウンド関数の第1の巡回シフト手段に接続される排他的論理和演算器において演算の実行の有無を鍵ビット情報に応じて決定し、排他的論理和演算器の演算結果に対して非線形関数器が、非線形処理を行う。そして、第1のステップから第3のステップを所定回数実行する。つまり、アルゴリズムの可変部分は、安全性と性能に影響を与えない第1の巡回シフト手段と演算決定手段とで構成されるため、上記の方式でアルゴリズムを可変しても、安全性や性能を一定のレベルに保つことができる。
【0024】
(9)本発明は、(8)に記載のアルゴリズム可変型暗号方法において暗号化されたデータを復号し、所定の処理を複数回実行し、第2の巡回シフト手段と排他的論理和演算器と非線形関数器からなるラウンド関数により構成されるアルゴリズム可変型復号装置におけるアルゴリズム可変型復号方法であって、前記ラウンド関数の第2の巡回シフト手段が、暗号化されたデータを入力し、該入力されたデータを所定バイトごとに区切ったデータ群を鍵ビット情報に応じて前記第1の巡回シフト手段と逆方向に巡回させる第1のステップ(例えば、図4のステップS201に相当)と、前記ラウンド関数の前記第2の巡回シフト手段に接続される排他的論理和演算器において演算の実行の有無を鍵ビット情報に応じて決定する第2のステップ(例えば、図4のステップS202に相当)と、前記排他的論理和演算器の演算結果に対して前記非線形関数の逆関数を用いて前記非線形関数器が非線形処理を行う第3のステップ(例えば、図4のステップS203に相当)と、前記第1のステップから第3のステップを前記所定回数実行する第4のステップ(例えば、図4のステップS204に相当)と、を備えたことを特徴とするアルゴリズム可変型復号方法を提案している。
【0025】
この発明によれば、ラウンド関数の第2の巡回シフト手段が、暗号化されたデータを入力し、入力されたデータを所定バイトごとに区切ったデータ群を鍵ビット情報に応じて第1の巡回シフト手段と逆方向に巡回させ、ラウンド関数の第2の巡回シフト手段に接続される排他的論理和演算器において演算の実行の有無を鍵ビット情報に応じて決定し、排他的論理和演算器の演算結果に対して非線形関数の逆関数を用いて非線形関数器が非線形処理を行う。そして、第1のステップから第3のステップを所定回数実行する。したがって、巡回シフト手段の巡回方向を逆方向とし、非線形関数の逆関数を用いることにより、アルゴリズム可変型暗号装置において暗号化された情報を簡易に復号することができる。
【0026】
(10)本発明は、所定の処理を複数回実行し、第1の巡回シフト手段と排他的論理和演算器と非線形関数器とからなるラウンド関数により構成されるアルゴリズム可変型暗号装置におけるアルゴリズム可変型暗号方法をコンピュータに実行させるプログラムであって、前記ラウンド関数の第1の巡回シフト手段が、データを入力し、該入力されたデータを所定バイトごとに区切ったデータ群を鍵ビット情報に応じて入れ替える第1のステップ(例えば、図2のステップS101に相当)と、前記ラウンド関数の前記第1の巡回シフト手段に接続される排他的論理和演算器において演算の実行の有無を鍵ビット情報に応じて決定する第2のステップ(例えば、図2のステップS102に相当)と、前記排他的論理和演算器の演算結果に対して前記非線形関数器が、非線形処理を行う第3のステップ(例えば、図2のステップS103に相当)と、前記第1のステップから第3のステップを前記所定回数実行する第4のステップ(例えば、図2のステップS104に相当)と、をコンピュータに実行させるプログラムを提案している。
【0027】
この発明によれば、ラウンド関数の第1の巡回シフト手段が、データを入力し、該入力されたデータを所定バイトごとに区切ったデータ群を鍵ビット情報に応じて入れ替え、ラウンド関数の第1の巡回シフト手段に接続される排他的論理和演算器において演算の実行の有無を鍵ビット情報に応じて決定し、排他的論理和演算器の演算結果に対して非線形関数器が、非線形処理を行う。そして、第1のステップから第3のステップを所定回数実行する。つまり、アルゴリズムの可変部分は、安全性と性能に影響を与えない第1の巡回シフト手段と演算決定手段とで構成されるため、上記の方式でアルゴリズムを可変しても、安全性や性能を一定のレベルに保つことができる。
【0028】
(11)本発明は、(10)のアルゴリズム可変型暗号方法において暗号化されたデータを復号し、所定の処理を複数回実行し、第2の巡回シフト手段と排他的論理和演算器と非線形関数器からなるラウンド関数により構成されるアルゴリズム可変型復号装置におけるアルゴリズム可変型復号方法をコンピュータに実行させるプログラムであって、前記ラウンド関数の第2の巡回シフト手段が、暗号化されたデータを入力し、該入力されたデータを所定バイトごとに区切ったデータ群を鍵ビット情報に応じて前記第1の巡回シフト手段と逆方向に巡回させる第1のステップ(例えば、図4のステップS201に相当)と、前記ラウンド関数の前記第2の巡回シフト手段に接続される排他的論理和演算器において演算の実行の有無を鍵ビット情報に応じて決定する第2のステップ(例えば、図4のステップS202に相当)と、前記排他的論理和演算器の演算結果に対して前記非線形関数の逆関数を用いて前記非線形関数器が非線形処理を行う第3のステップ(例えば、図4のステップS203に相当)と、前記第1のステップから第3のステップを前記所定回数実行する第4のステップ(例えば、図4のステップS204に相当)と、をコンピュータに実行させるプログラムを提案している。
【0029】
この発明によれば、ラウンド関数の第2の巡回シフト手段が、暗号化されたデータを入力し、入力されたデータを所定バイトごとに区切ったデータ群を鍵ビット情報に応じて第1の巡回シフト手段と逆方向に巡回させ、ラウンド関数の第2の巡回シフト手段に接続される排他的論理和演算器において演算の実行の有無を鍵ビット情報に応じて決定し、排他的論理和演算器の演算結果に対して非線形関数の逆関数を用いて非線形関数器が非線形処理を行う。そして、第1のステップから第3のステップを所定回数実行する。したがって、巡回シフト手段の巡回方向を逆方向とし、非線形関数の逆関数を用いることにより、アルゴリズム可変型暗号装置において暗号化された情報を簡易に復号することができる。
【発明の効果】
【0030】
本発明によれば、安全性や性能を一定レベルに保ちつつ、鍵ビット情報により、アルゴリズムを可変することができるという効果がある。
【図面の簡単な説明】
【0031】
【図1】本発明に係るアルゴリズム可変型暗号装置の構成を示す図である。
【図2】本発明に係るアルゴリズム可変型暗号装置の処理を示す図である。
【図3】本発明に係るアルゴリズム可変型復号装置の構成を示す図である。
【図4】本発明に係るアルゴリズム可変型復号装置の処理を示す図である。
【発明を実施するための形態】
【0032】
以下、本発明の実施形態について、図面を用いて、詳細に説明する。
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組合せを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
【0033】
<アルゴリズム可変型暗号装置の構成>
図1を用いて、本発明に係るアルゴリズム可変型暗号装置の構成について説明する。なお、本実施形態に係るアルゴリズム可変型暗号装置は、所定の処理を複数回実行するラウンド関数から構成されるものであり、ラウンド関数が、入力される鍵ビット情報に応じて、アルゴリズムが可変する部分と常に固定の部分とからなる。
【0034】
本実施形態に係るアルゴリズム可変型暗号装置は、ラウンド関数から構成され、その詳細は、図1に示すように、巡回シフト部110a、110bと、排他的論理和演算器120a、120bと、演算決定部130a、130bと、非線形関数器140a、140bとから構成されている。図1では、128ビットの平文データを暗号化するアルゴリズム可変型暗号装置を例示して説明する。なお、本実施形態では、巡回シフト部、排他的論理和演算器、非線形関数器からなるブロックが2つ並列されている場合を例示しているが、並列数は、これに限らず、3つ以上でもよい。
【0035】
巡回シフト部110a、110bは、入力されたデータを所定バイトごとに区切ったデータ群を鍵ビット情報に応じて入れ替える。具体的には、128ビットの入力データを4バイトの倍数分、例えば、右へ巡回シフトするものとする。すなわち、4バイトごとに区切られた入力データを鍵ビットnに応じて入れ替える処理である。このため高速に実装することができる。また、このときシフトパターンは4通りあるため、2ビットの鍵ビットの入力が可能である。
【0036】
排他的論理和演算器120a、120bは、2つの入力データに対して、排他的論理和演算を実行する。
【0037】
演算決定部130a、130bは、巡回シフト部110a、110bに接続される排他的論理和演算器120a、120bにおいて演算の実行の有無を鍵ビット情報に応じて決定する。具体的には、鍵ビットに応じてデータに「0」をかけるか「1」をかけるかを決定する。つまり、鍵ビットが「0」である場合には、排他的論理和演算器120a、120bに入力されるビット列はオール「0」となるため、実際は排他的論理和演算が実行されない。本処理に対しては、1ビットの鍵ビットが入力可能である。
【0038】
非線形関数器140a、140bは、排他的論理和演算器120a、120bの演算結果に対して非線形処理を行う。非線形関数器140a、140bは、非線形置換と線形変換から構成される関数である。この関数は、逆変換関数が存在すればどのような関数でも良いが、AESのラウンド関数が好ましい。なお、この関数は鍵ビットに関係なく変化しない。
【0039】
本実施形態に係るアルゴリズム可変型暗号装置においては、1ラウンドで、2*2+1*2=6ビットの鍵ビットを入力できる。そのため、Nラウンドの処理を実行すると、6Nビットの鍵ビットを実行できる。そのため、本実施形態のように、128ビットの鍵を入力するためには、22ラウンドあれば良い。また、本実施形態に係るアルゴリズム可変型暗号装置の安全性は、本質的に、非線形関数器140a、140bによって担保されている。そのため、ラウンド数が十分大きければ、鍵に関係なく安全性が保証される。また、本実施形態に係るアルゴリズム可変型暗号装置においては、鍵スケジュールを必要としないというメリットがある。
【0040】
<アルゴリズム可変型暗号装置の処理>
図2を用いて、本発明に係るアルゴリズム可変型暗号装置の処理について説明する。
【0041】
まず、ラウンド関数の巡回シフト部110a、110bが、データを入力し、その入力されたデータを所定バイトごとに区切ったデータ群を鍵ビット情報に応じて入れ替える(ステップS101)。
【0042】
次に、ラウンド関数の巡回シフト部110a、110bに接続される排他的論理和演算器120a、120bにおいて演算の実行の有無を鍵ビット情報に応じて決定する(ステップS102)。
【0043】
さらに、排他的論理和演算器120a、120bの演算結果に対して非線形関数器140a、140bが、非線形処理を行い(ステップS103)、そして、ステップS101からステップS103を所定回数実行する(ステップS104)。
【0044】
したがって、以上説明したように、本実施形態によれば、アルゴリズムの可変部分は、安全性と性能に影響を与えない第1の巡回シフト手段と演算決定手段とで構成されるため、上記の方式でアルゴリズムを可変しても、安全性や性能を一定のレベルに保つことができる。
【0045】
<アルゴリズム可変型復号装置の構成>
図3を用いて、本発明に係るアルゴリズム可変型復号装置の構成について説明する。本実施形態に係るアルゴリズム可変型復号装置は、上記のアルゴリズム可変型暗号装置により暗号化したデータを復号するものである。
【0046】
本実施形態に係るアルゴリズム可変型復号装置は、ラウンド関数から構成され、その詳細は、図3に示すように、巡回シフト部150a、150bと、排他的論理和演算器120a、120bと、演算決定部130a、130bと、非線形関数器160a、160bとから構成されている。図3では、128ビットの暗号文データを復号化するアルゴリズム可変型復号装置を例示して説明する。なお、本実施形態では、巡回シフト部、排他的論理和演算器、非線形関数器からなるブロックが2つ並列されている場合を例示しているが、並列数は、これに限らず、3つ以上でもよい。また、第1の実施形態と同一の符号を付す構成要素については、同様の機能を有するものであることから、その詳細な説明は、省略する。
【0047】
巡回シフト部150a、150bは、暗号化されたデータを入力し、その入力されたデータを所定バイトごとに区切ったデータ群を鍵ビット情報に応じて巡回シフト部110a、110bと逆方向に巡回させる。
【0048】
非線形関数器160a、160bは、排他的論理和演算器120a、120bの演算結果に対して非線形処理を行う。非線形関数器160a、160bは、非線形関数器140a、140bの逆変換関数で構成されている。
【0049】
<アルゴリズム可変型復号装置の処理>
図4を用いて、本発明に係るアルゴリズム可変型暗号装置の処理について説明する。
【0050】
まず、ラウンド関数の巡回シフト部150a、150bが、暗号化されたデータを入力し、該入力されたデータを所定バイトごとに区切ったデータ群を鍵ビット情報に応じて巡回シフト部110a、110bと逆方向に巡回させる(ステップS201)。
【0051】
次に、ラウンド関数の巡回シフト部150a、150bに接続される排他的論理和演算器120a、120bにおいて演算の実行の有無を鍵ビット情報に応じて決定する(ステップS202)。
【0052】
さらに、排他的論理和演算器120a、120bの演算結果に対して非線形関数器160a、160bが、非線形処理を行い(ステップS203)、そして、ステップS201からステップS203を所定回数実行する(ステップS204)。
【0053】
したがって、以上説明したように、本実施形態によれば、巡回シフト手段の巡回方向を逆方向とし、非線形関数の逆関数を用いることにより、アルゴリズム可変型暗号装置において暗号化された情報を簡易に復号することができる。
【0054】
なお、アルゴリズム可変型暗号装置およびアルゴリズム可変型復号装置の処理をコンピュータ読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムをアルゴリズム可変型暗号装置およびアルゴリズム可変型復号装置に読み込ませ、実行することによって本発明のアルゴリズム可変型暗号装置およびアルゴリズム可変型復号装置を実現することができる。ここでいうコンピュータシステムとは、OSや周辺装置等のハードウェアを含む。
【0055】
また、「コンピュータシステム」は、WWW(World Wide Web)システムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されても良い。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
【0056】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【0057】
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【0058】
110a;巡回シフト部
110b;巡回シフト部
120a;排他的論理和演算器
120b;排他的論理和演算器
130a;演算決定部
130b;演算決定部
140a;非線形関数器
140b;非線形関数器
150a;巡回シフト部
150b;巡回シフト部
160a;非線形関数器
160b;非線形関数器

【特許請求の範囲】
【請求項1】
所定の処理を複数回実行するラウンド関数から構成されるアルゴリズム可変型暗号装置であって、
前記ラウンド関数が、入力される鍵ビット情報に応じて、アルゴリズムが可変する部分と常に固定の部分とから構成されることを特徴とするアルゴリズム可変型暗号装置。
【請求項2】
前記ラウンド関数が、
入力されたデータを所定バイトごとに区切ったデータ群を鍵ビット情報に応じて入れ替える第1の巡回シフト手段と、
前記第1の巡回シフト手段に接続される排他的論理和演算手段において演算の実行の有無を鍵ビット情報に応じて決定する演算決定手段と、
前記排他的論理和演算手段の演算結果に対して非線形処理を行う非線形関数器と、
からなり、
前記第1の巡回シフト手段、演算決定手段、非線形関数器の処理を所定回数実行することを特徴とする請求項1に記載のアルゴリズム可変型暗号装置。
【請求項3】
前記演算決定手段が、「1」あるいは「0」からなる1ビットの鍵ビット情報により、前記排他的論理和演算手段における演算の実行を決定することを特徴とする請求項2に記載のアルゴリズム可変型暗号装置。
【請求項4】
前記非線形関数が、非線形置換と線形置換とから構成されることを特徴とする請求項2または請求項3に記載のアルゴリズム可変型暗号装置。
【請求項5】
前記非線形関数がAESのラウンド関数であることを特徴とする請求項4に記載のアルゴリズム可変型暗号装置。
【請求項6】
前記ラウンド関数が、前記入力データのビット数以上の前記鍵ビット情報が入力されるまで、前記所定の処理を実行することを特徴とする請求項1から請求項5に記載のアルゴリズム可変型暗号装置。
【請求項7】
前記請求項2に記載のアルゴリズム可変型暗号装置において暗号化されたデータを復号するラウンド関数から構成されるアルゴリズム可変型復号装置であって、
前記ラウンド関数が、
暗号化されたデータを入力し、該入力されたデータを所定バイトごとに区切ったデータ群を鍵ビット情報に応じて前記第1の巡回シフト手段と逆方向に巡回させる第2の巡回シフト手段と、
前記第2の巡回シフト手段に接続される排他的論理和演算手段において演算の実行の有無を鍵ビット情報に応じて決定する演算決定手段と、
前記排他的論理和演算手段の演算結果に対して前記非線形関数の逆関数を用いて非線形処理を行う非線形関数器と、
からなり、
前記第2の巡回シフト手段、演算決定手段、非線形関数器の処理を所定回数実行することを特徴とするアルゴリズム可変型復号装置。
【請求項8】
所定の処理を複数回実行し、第1の巡回シフト手段と排他的論理和演算器と非線形関数器とからなるラウンド関数により構成されるアルゴリズム可変型暗号装置におけるアルゴリズム可変型暗号方法であって、
前記ラウンド関数の第1の巡回シフト手段が、データを入力し、該入力されたデータを所定バイトごとに区切ったデータ群を鍵ビット情報に応じて入れ替える第1のステップと、
前記ラウンド関数の前記第1の巡回シフト手段に接続される排他的論理和演算器において演算の実行の有無を鍵ビット情報に応じて決定する第2のステップと、
前記排他的論理和演算器の演算結果に対して前記非線形関数器が、非線形処理を行う第3のステップと、
前記第1のステップから第3のステップを前記所定回数実行する第4のステップと、
を備えたことを特徴とするアルゴリズム可変型暗号方法。
【請求項9】
前記請求項8に記載のアルゴリズム可変型暗号方法において暗号化されたデータを復号し、所定の処理を複数回実行し、第2の巡回シフト手段と排他的論理和演算器と非線形関数器からなるラウンド関数により構成されるアルゴリズム可変型復号装置におけるアルゴリズム可変型復号方法であって、
前記ラウンド関数の第2の巡回シフト手段が、暗号化されたデータを入力し、該入力されたデータを所定バイトごとに区切ったデータ群を鍵ビット情報に応じて前記第1の巡回シフト手段と逆方向に巡回させる第1のステップと、
前記ラウンド関数の前記第2の巡回シフト手段に接続される排他的論理和演算器において演算の実行の有無を鍵ビット情報に応じて決定する第2のステップと、
前記排他的論理和演算器の演算結果に対して前記非線形関数の逆関数を用いて前記非線形関数器が非線形処理を行う第3のステップと、
前記第1のステップから第3のステップを前記所定回数実行する第4のステップと、
を備えたことを特徴とするアルゴリズム可変型復号方法。
【請求項10】
所定の処理を複数回実行し、第1の巡回シフト手段と排他的論理和演算器と非線形関数器とからなるラウンド関数により構成されるアルゴリズム可変型暗号装置におけるアルゴリズム可変型暗号方法をコンピュータに実行させるプログラムであって、
前記ラウンド関数の第1の巡回シフト手段が、データを入力し、該入力されたデータを所定バイトごとに区切ったデータ群を鍵ビット情報に応じて入れ替える第1のステップと、
前記ラウンド関数の前記第1の巡回シフト手段に接続される排他的論理和演算器において演算の実行の有無を鍵ビット情報に応じて決定する第2のステップと、
前記排他的論理和演算器の演算結果に対して前記非線形関数器が、非線形処理を行う第3のステップと、
前記第1のステップから第3のステップを前記所定回数実行する第4のステップと、
をコンピュータに実行させるプログラム。
【請求項11】
前記請求項10に記載のアルゴリズム可変型暗号方法において暗号化されたデータを復号し、所定の処理を複数回実行し、第2の巡回シフト手段と排他的論理和演算器と非線形関数器からなるラウンド関数により構成されるアルゴリズム可変型復号装置におけるアルゴリズム可変型復号方法をコンピュータに実行させるプログラムであって、
前記ラウンド関数の第2の巡回シフト手段が、暗号化されたデータを入力し、該入力されたデータを所定バイトごとに区切ったデータ群を鍵ビット情報に応じて前記第1の巡回シフト手段と逆方向に巡回させる第1のステップと、
前記ラウンド関数の前記第2の巡回シフト手段に接続される排他的論理和演算器において演算の実行の有無を鍵ビット情報に応じて決定する第2のステップと、
前記排他的論理和演算器の演算結果に対して前記非線形関数の逆関数を用いて前記非線形関数器が非線形処理を行う第3のステップと、
前記第1のステップから第3のステップを前記所定回数実行する第4のステップと、
をコンピュータに実行させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate