【課題を解決するための手段】
【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のステップを所定回数実行する。したがって、巡回シフト手段の巡回方向を逆方向とし、非線形関数の逆関数を用いることにより、アルゴリズム可変型暗号装置において暗号化された情報を簡易に復号することができる。