(57)【要約】【課題】  暗号のセキュリティー性を極めて高くし、しかも高速でリアルタイムに暗号化でき、且つメンテナンスも容易にする。【解決手段】  数列生成手段１２が、入力手段１１から与えられる初期値に基づいて、フラクタルを母関数とする非線型力学系を記述する数式によって暗号化処理のための数列を順次生成し、演算手段１３が、入力手段１１から与えられる平文データと数列生成手段１２によって生成される数列に対して所定の演算を行うことによって、平文データの暗号化処理を行い、その暗号化されたデータを出力手段１４が順次出力する。【選択図】      図１
2005210633.tif 000002
【特許請求の範囲】
【請求項１】
フラクタルを母関数とする非線型力学系を記述する数式に初期値をキーとして与えることによって順次算出する数列を用いて、平文データに対して暗号化処理を行うことを特徴とする暗号化方法。
【請求項２】
請求項１記載の暗号化方法において、
前記暗号化処理を、前記順次算出する数列の各要素を１バイトの整数データに変換し、該整数データと平文データの各バイトとを順次論理演算することによって行うことを特徴とする暗号化方法。
【請求項３】
請求項１記載の暗号化方法において、
前記暗号化処理を、前記順次算出する数列の各要素と平文データの各バイトとを順次数値演算することによって行うことを特徴とする暗号化方法。
【請求項４】
請求項２記載の暗号化方法において、
前記論理演算は、同じ演算処理を２度施せば元に戻る論理演算であることを特徴とする暗号化方法。
【請求項５】
請求項２又は４記載の暗号装置において
前記論理演算は、排他的論理和演算であることを特徴とする暗号化方法。
【請求項６】
請求項１乃至５のいずれか一項に記載の暗号化方法において、
前記初期値としてそれぞれ異なる値を与えて、前記暗号化処理を順次複数回行うことを特徴とする暗号化方法。
【請求項７】
平文データとその暗号化のキーとなる数列の初期値を入力する入力手段と、
該入力手段から与えられる初期値に基づき、フラクタルを母関数とする非線型力学系を記述する数式によって暗号化処理のための数列を順次生成する数列生成手段と、
前記入力手段から与えられる平文データと前記数列生成手段によって生成される数列に対して所定の演算を行うことによって、前記平文データの暗号化処理を行う演算手段と、
該演算手段によって暗号化されたデータを順次出力する出力手段と
を備えたことを特徴とする暗号化装置。
【請求項８】
請求れる項７記載の暗号化装置において、
前記演算手段は、前記数列生成手段によって生成さ数列の各要素を１バイトの整数データに変換し、該整数データと前記入力手段から与えられる平文データの各バイトとを順次論理演算することによって暗号化処理を行う手段であることを特徴とする暗号化装置。
【請求項９】
請求項７記載の暗号装置において、
前記演算手段は、前記数列生成手段によって生成さ数列の各要素と前記入力手段から与えられる平文データの各バイトとを順次数値演算することによって暗号化処理を行う手段であることを特徴とする暗号化装置。
【請求項１０】
請求項８記載の暗号化装置において
前記論理演算は、同じ演算処理を２度施せば元に戻る論理演算であることを特徴とする暗号化装置。
【請求項１１】
請求項８又は１０記載の暗化装置において、前記論理演算は、排他的論理和演算であることを特徴とする暗号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、通信、放送、電子マネー、クレジットカード、ＩＤカード等のセキュリティー確保のために、平文データを暗号化する暗号化方法および暗号化装置に関する。
【背景技術】
【０００２】
暗号とは、情報が第３者に漏れてもその意味がわからないよう、送り手と受け手だけが知っている規則に従って情報を変換することである。もとの情報を平文、変換した情報を暗号文、変換する作業のことを暗号化、暗号文を平文に戻す作業のことを復号という。また、暗号文の情報をもとに暗号化の規則を探して平文に戻すことを解読という。
【０００３】
このような暗号として、換字式の暗号が開発され、現代のデジタル暗号の基礎になっている。
換字式の暗号とは、元の文章の文字を一定の規則に従って他の文字に置き換えるものである。もっとも単純には、アルファベットを１文字あとのものに置き換えればよい。例えば、「ＯＰＥＮ」なら、Ｏ→Ｐ、Ｐ→Ｑ、Ｅ→Ｆ、Ｎ→Ｏに置き換え、「ＰＱＦＯ」となる。
【０００４】
しかし、このような単純なものでは、すぐに規則が見破られてしまう。そこで、１文字ごとにずらす文字数を変え、複数回の暗号化処理を行う等の試みが行われてきた。このとき、ずらす文字数を日によって変えれば、同じ暗号化手順を用いても、より解読されにくくなる。このずらす文字数が、共有鍵（キー）にあたり、これを持つ者のみが暗号文の復号を行うことができる。
【０００５】
例えば、「１２３４」を共有鍵としたときには、平文を４文字毎に区切って、１文字目は１文字ずらす、２文字目は２文字ずらす、３文字目は３文字ずらす、４文字目は４文字ずらすことにしておくと、「ＩＮＴＥＲＳＴＩＮＧ」は、「ＪＰＷＩＳＵＷＭＯＩ」となる。また、「３１４２」を共有鍵とすれば、「ＬＯＸＧＵＴＸＫＰＩ」となる。
【０００６】
暗号文を効率よく作成するためには、どうしても機械を用いることになるわけであるが、機械の構成は簡単には変えられないので、アルゴリズムを変えず、共有鍵のみを変えて別の換字体系を使うことができるこの方法は広く用いられてきた。換字の周期を非常に長くしたり、何度も換字を繰り返したりすれば解読は困難になるが、機械の性質上どうしても周期的な変換規則を用いなければならないので、大量のデータがあれば変換規則を推定することは可能である。
【０００７】
平文のデータがアルファベットでなく、デジタルデータになっても概念としては同じで、０と１をいかに置き換えるかということになる。デジタル暗号の代表的なものとして、ＤＥＳ暗号やＲＳＡ暗号がある。
ＤＥＳ暗号はデータを６４ビットごとに区切り、各ブロックに対して共有鍵を用いて平文データの暗号化処理を行う。それによって、データの偏りのない解読の困難な暗号文を作成することができ、同じ共有鍵を持つ相手だけが容易にこれを復号してもとの平文データを受け取ることができる。
【０００８】
また、ＲＳＡ暗号によれば、秘密鍵を手元に置いておくと同時に、これを用いて公開鍵を作成して相手に教える。この公開鍵を用いて暗号化処理を行ったデータは、公開鍵では復号できず、秘密鍵を用いてのみ復号できるため、秘密鍵と公開鍵を作成した者のみが復号して平文データを受け取ることができる。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかし、これらの従来の暗号化方法は以下のような問題を有している。
第１に、ＤＥＳ暗号やＲＳＡ暗号に限らず、これまで実用に供されてきた暗号化方法はもはや安全ではない。高速なコンピュータを用いれば、従来の暗化方法によって作成された暗号は、ＤＥＳ暗号のように複雑なものでも数日で解読できるとされている。
【００１０】
第２に、これまで用いられてきた暗号化アルゴリズムは複雑であり、暗号作成に時間がかかる。従って、高速通信やリアルタイム処理には向かない。
第３に、これまでの暗号化キーは固定長が採用されていて、セキュリティーの度合いを変化させることは至難の業であることが多い。
【００１１】
第４に、従来の暗号を用いて「画像」や「グラフ」、「音声」などを暗号化する場合、暗号自体がブロックに対する暗号化であるため、周期解析や周波数分析などにより暗号方式が解読される危険性が大きい。
第５に、これまでの暗号方式は複雑である為、暗号化アルゴリズムを変更するのが難しい。すなわち、メンテナンスに難点が多い。
【００１２】
この発明は、このような従来の問題を解決するためになされたものであり、解読アルゴリズムが存在し得ず、高速でリアルタイムの暗号化を可能にし、暗号化キーは不定長を採用でき、暗号化時間はキーの長さによらず、周波数解析等からは何の情報も得られず、且つ方式の変更が簡単であり、メンテナンスも容易な暗号化処理を可能にすることを目的とする。
【課題を解決するための手段】
【００１３】
この発明による暗号化方法は、上記の目的を達成するため、フラクタルを母関数とする非線型力学系を記述する数式に初期値をキーとして与えることによって順次算出する数列を用いて、平文データに対して暗号化処理を行うことを特徴とする。
【００１４】
上記暗号化処理を、順次算出する数列の各要素を１バイトの整数データに変換し、その整数データと平文データの各バイトとを順次論理演算することによって行うことができる。その論理演算は、同じ演算処理を２度施せば元に戻る論理演算とすることができる。これらの論理演算を排他的論理和演算にするとよい。
【００１５】
あるいは、上記暗号化処理を、順次算出する数列の各要素と平文データの各バイトとを順次数値演算することによって行うこともできる。
これらの暗号化方法において、上記初期値としてそれぞれ異なる値を与えて、上記暗号化処理を順次複数回行うとよい。
【００１６】
また、この発明による暗号化装置は、上記の目的を達成するため、平文データとその暗号化のキーとなる数列の初期値を入力する入力手段と、その入力手段から与えられる初期値に基づき、フラクタルを母関数とする非線型力学系を記述する数式によって暗号化処理のための数列を順次生成する数列生成手段と、上記入力手段から与えられる平文データと上記数列生成手段によって生成される数列に対して所定の演算を行うことによって、前記平文データの暗号化処理を行う演算手段と、その演算手段によって暗号化されたデータを順次出力する出力手段とを備えたものである。
【００１７】
上記演算手段は、上記数列生成手段によって生成さ数列の各要素を１バイトの整数データに変換し、その整数データと入力手段から与えられる平文データの各バイトとを順次論理演算することによって暗号化処理を行う手段であるとよい。
その論理演算は、同じ演算処理を２度施せば元に戻る論理演算とすることができ、それを排他的論理和演算としてもよい。
【００１８】
あるいは、上記演算手段が、上記数列生成手段によって生成さ数列の各要素と入力手段から与えられる平文データの各バイトとを順次数値演算することによって暗号化処理を行う手段であってもよい。
【００１９】
この発明による暗号化方法は、決定論的な方程式で記述され、しかもその解が予測不能であるような自然現象を用いる。すなわち、非線型な運動でしかも解析的に解くことが出来ないような力学系が示す、予測不可能な運動状態を利用する。
【００２０】
そのような力学系として、特に非線型運動の位相軌道がフラクタル図形となるようなものを利用する。このフラクタルは複雑に見えるけれども構造自体はシンプルである。しかし、力学系の運動の時間発展の予測は不可能である。このような非線型力学系は、暗号化にとって最も好ましい以下の利点がある。
【００２１】
第１に、位相軌道がフラクタルであるような非線型力学系の応答は、系自体の取り得る応答範囲は予測できるけれど、実際に系の取る行動は予測不可能である。例えば図２に示す例では運動系は０〜１の間の値を取ることは予測できても、実際に系の取る値はランダムであり、予測は出来ない。
【００２２】
しかし、その系はフラクタルを母函数とする力学系の運動方程式に従って行動しているため、その値は決定論的である。すなわち、運動系の取る値は決定論的に決まっているのであるが、その値が実現するまでは予めそれを予測することは不可能である。
【００２３】
第２に、簡単な非線型力学系を数値的かつ時間発展的に解くのは簡単であり速やかに解ける。しかも、その解自体は運動系の初期条件に極めて敏感である。すなわち、初期条件のわずかの違いが決定的な差となって現れる。従って、この解を用いて暗号化されたものは、「力学系と初期条件」を知らなければ、その運動からはそれがどのような系であるのかを解析できない。つまり、暗号化に要する時間は極めて僅かであるが、その解析は不可能である。
【００２４】
第３に、「暗号化キー」は初期条件の変更だけのために用いることができ、暗号化操作に無関係にできる。そのため、速やかな暗号化処理が可能である。上述したように初期条件のわずかな違いは決定的な差となって現れるため、解析不能であると同時に、柔軟な「暗号化キー」を使用可能である。
【００２５】
第４に、同一のモジュールを暗号化と復号化に共通に利用できる。「力学系と初期条件」さえ同じであれば、系の時間発展は決定論的であり、暗号化と復号化が全く同じプロセスであるためである。さらに、暗号化と復号化のモジュールをカスケードに並べることもできる。
【発明の効果】
【００２６】
以上のようなこの発明による暗号化方法および暗号化装置によれば、次のような効果が得られる。
１．解読アルゴリズムが存在し得ないので、暗号が第３者に解読される可能性が殆どない。
２．高速でリアルタイムの暗号化が可能である。
３．暗号化キーは不定長を採用でき、しかも暗号化時間はキーの長さによらない。
４．バイト単位の暗号化であり、かつ周波数解析等からは何の情報も得られないので、第３者に共通鍵を見破られる恐れが殆どない。
５．暗号化方式の変更は簡単であり、メンテナンスも容易である。
このように、セキュリティー確保にとって非常に好ましい暗号を作成することが可能である。
【発明を実施するための最良の形態】
【００２７】
以下、この発明を実施するための最良の形態を図面に基づいて具体的に説明する。
まず、この発明による暗号化方法を実施する暗号化装置の構成について説明する。図１はその暗号化装置の構成例を示すブロック図である。
【００２８】
この暗号化装置は、入力手段１１、数列生成手段１２、演算手段１３、および出力手段１４からなる。
入力手段１１は、数列生成手段１２に暗号の共有鍵（キー）となる数列の初期値を、演算手段１３に暗号化処理の対象となる平文データを入力する手段である
数列生成手段１２は、入力手段１１によって与えられる初期値に基づき、フラクタルを母関数とする非線型力学系を記述する方式（漸化式）によって、暗号化処理のための数列を生成する。
【００２９】
演算手段１３は、入力手段１１から入力される平文データと、数列生成手段１２によって生成される数列に対して所定の演算を行い、平文データの暗号化処理を行う手段である。
出力手段１４は、この演算手段１３によって暗号化された暗号データを順次出力する手段である。
【００３０】
数列生成手段１２と演算手段１３は、それぞれ専用の回路によって構成してもよいが、リードオンリメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ハードディスクなどの記憶装置等をシステムバスを用いて接続し、所要のプログラムに従って中央処理装置（ＣＰＵ）によって演算及び制御を行うマイクロコンピュータの機能によっても実現することができる。このようなプログラムを、光ディスクやメモリユニット等の所要の記録媒体に記録して提供することも可能である。
【００３１】
次に、図２を用いて、この暗号化装置における数列生成手段１２の機能について説明する。図２は、この数列生成手段１２によって生成される数列の各項の値を示した線図である。
【００３２】
この数列生成手段１２は、フラクタルを母関数とする非線型力学系を記述する方程式を用いているが、まずその利点について説明する。
ｇ(ｘ) を区間 ［０，１］における有界可測函数であるとし、Ψ(ｘ)を区間［０，１］から［０，１］への写像を行う非線型力学系とすると、次の数１のような函数F(ｔ，ｘ）はフラクタルである。このＦ(ｔ，ｘ) について、数２のような関数方程式（１）が成り立つ。
【数１】
2005210633.tif 000003
【数２】
2005210633.tif 000004
【００３３】
すなわち、フラクタルＦ(ｔ，ｘ) が与えられると、非線型力学系Ψ（ｘ）が決まる。そしてその位相軌道は、次の数３によって点列｛ｘｎ｝で与えられる。点列｛ｘｎ｝を初期値ｘ０から出発する軌道という。これは、フラクタルＦ(ｔ，ｘ) の上を動く。
【数３】
2005210633.tif 000005
【００３４】
フラクタルＦ（ｔ，ｘ） を母函数とする非線型力学系Ψ（ｘ） の挙動はランダムに揺らいでおり、解析的に表現することは特殊な例を除いてはできない。すなわち、位相軌道がフラクタルであるような非線型力学系の応答は、系自体の取り得る応答範囲は予測できるけれども、実際に系の取る行動は予測不可能である。
【００３５】
この例では、力学系は０〜１の間の値を取ることは予測できても、実際に系の取る値はランダムであり、予測出来ない。
系は図２に示すようにランダムな挙動をするが、フラクタルを母函数とする力学系の運動方程式に従って行動しているため、その値は決定論的である。したがって、運動系の取る値は決定論的に決まっているが、その値が実現するまでは、予めそれを予測することは不可能である。
【００３６】
さらに、点列｛ｘｎ｝を初期値ｘ０から出発する軌道といい、これは、フラクタルＦ(ｔ，ｘ) の上を動くが、初期値のわずかの変動により、大きく軌道が変化する。これがフラクタルの所以である。
【００３７】
したがって、暗号化の共有鍵として初期値 ｘ０ を与えれば、完全に別軌道を動き、かつ軌道間には相関が無いため、解読アルゴリズムが存在しない暗号化が達成される。
この実施形態の数列生成手段１２では、フラクタル母函数として数４のWeierstrass の函数を採用する。
【数４】
2005210633.tif 000006
【００３８】
ここで、ａ＝ｔ、b＝２  の場合を考え、これを前述のフラクタル方程式である数２のＦ(ｔ，ｘ）に代入してΨ(x) を求めると、
Ψ（ｘ）＝４ｘ（１−ｘ） と求められる。但し、ｇ(ｘ）は任意であるのでｇ(ｘ)＝ｘであるとした。これを数３の式に代入すると、その力学系の軌道方程式は、次の数５で与えられる。
【数５】
2005210633.tif 000007
【００３９】
ここで、初期値ｘ０を０＜ｘ０＜１の範囲で与えると、数列｛ｘｎ｝は図２に示すようなランダムな軌道を描く。この実施形態の数列生成手段１２では、具体的にはこの漸化式と、共有鍵（キー）として与えられた初期値ｘ０によって数列｛ｘｎ｝を生成する。
【００４０】
共有鍵として初期値ｘ０を直接与えてもよいが、初期値ｘ０は共有鍵そのものである必要はない。この実施の形態では、共有鍵を不定長文字列とし、初期値ｘ０は、
π×文字列の各文字のアスキーコードの和／（２５６×全文字数）
の小数部分とする。
【００４１】
もちろん、算出方法はこれに限られるものではない。文字列から
０＜ｘ０＜１なる数値を作り出す式であれば、共有鍵をパスワードのように使用できてよいが、最終的に０＜ｘ０＜１なるｘ０が与えられれば、どのような方法によってもよい。
【００４２】
数列生成手段１２は、まず与えられた共有鍵からｘ０を計算し、そのｘ０をｎ＝０とした数５の式に代入してｘ１を、これを更にｎ＝１とした数５の式に代入してｘ２を、というように次々と数列｛ｘｎ｝（ｎ＝１，２，…）を生成し、演算手段１３に入力する。
【００４３】
次に、図１における演算手段１３の動作について説明する。
演算手段１３には、入力手段１１から平文データが１バイトずつ、数列生成手段１２から数列の要素ｘｎが１つずつ順に入力される。
【００４４】
それによって演算手段１３は、まず数列の要素ｘｎに対して整数化処理を行い、１バイトの整数データとする。例えば、２５６×ｘｎの整数部分を取り、ｆ(ｘ) とする。そして、ｆ(ｘｎ) と平文データの各バイトＰｎとの排他的論理和をとる数６の演算処理を順次行うことによって暗号化処理を実行し、暗号データＡｎを生成する。
【数６】
2005210633.tif 000008
【００４５】
そして、生成した暗号データＡｎを出力手段１４に出力する。全ての平文データについてこの処理を行って、暗号化処理を完了する。出力された暗号データは、元の平文データと同じ大きさ（バイト数）のデータとなる。
【００４６】
この実施形態の暗号化装置で生成した暗号は、全く同じ装置を用いて復号することができる。次に、この復号動作について説明する。
暗号データの復号は、図１における入力手段１１にによって平文データの代わりに暗号データを入力し、暗号化に用いたのと同じ共通鍵を用いて、既に説明した暗号化処理と全く同じ処理を施すことにより行うことができる。
【００４７】
数列生成手段１２によって生成される数列は、与えられた初期値ｘ０を数５の漸化式に代入することによって逐次計算されるものであるから、初期値ｘ０が同じであれば数列の各要素ｘｎは常に同じものになる。
復号時には、演算手段１３には入力手段１１から暗号データＡｎが１バイトずつ、数列生成手段１２から数列の要素ｘｎが１つずつ順に入力される。
【００４８】
それによって、演算手段１３は暗号化処理の場合と同じように、まず数列の要素ｘｎに対して整数化処理を行い、１バイトの整数データとする。例えば、２５６×ｘｎの整数部分を取り、ｆ(ｘｎ) とする。
【００４９】
このｆ(ｘｎ) も、当然暗号化処理のときのｆ(ｘｎ) と同じ値となるので、
ｆ(ｘｎ) と暗号データの各バイトＡｎとの排他的論理和を順次とることによって復号処理を行い、もとの平文データＰｎを生成することができる。これは、数7に示すように、同じ排他的論理和演算を２回行うことになる。
【数７】
2005210633.tif 000009
【００５０】
そして、生成した平文データＡｎを、出力手段１４に出力する。全ての平文データについてこの処理を行って、復号化処理を完了する。
ここでは、整数化処理を演算手段１３で行う例を示したが、数列生成手段１２において整数化処理も行い、１バイトの整数データｆ(ｘｎ) を演算手段に入力するように構成すると、演算手段１３の構成を極めて簡略化することができる。
【００５１】
また、ここでは暗号データＡｎは排他的論理和を用いて生成したが、同じ処理を２度施せば元に戻るような論理演算や数値演算であれば他の演算処理でもかまわない。整数化処理も、数列の要素ｘｎをその不規則性を損わないで１バイトの整数に変換する処理であれば、他の処理によってもよいことは言うまでもない。また、数値演算を行う場合には、整数化処理は必須ではない。
【００５２】
次に、この実施形態の暗号化装置による実際の処理例を、図３及び図４を用いて説明する。図３は、この実施形態の暗号化装置の動作を実現するプログラムを作成し、コンピュータ上で動作させた場合の処理例を示す図である。図４は、その処理のスキーム図である。
図４において、「ＴＹＰＥ」は平文データを、「ＣＲＹＰＴ」は暗号化処理（復号処理）を、「ＫＥＹ」は初期値ｘ０を与えるための共通鍵を示す。
【００５３】
図３に示すように、平文のサンプルである「ｐｌａｎｅ．ｔｘｔ」というファイルの内容をコンソールに出力すると、図３のおけるＡの部分に示す平文データになる。これは、図４のＡの処理に相当する。
次に、この平文データに対し、暗号化処理であるＣＲＹＰＴを施したものを出力すると、図３におけるＢの部分に示す暗号データになり、暗号化が達成される。これは、図４のＢの処理に相当する。
【００５４】
さらに、この暗号データに対し、暗号化処理のＣＲＹＰＴを暗号化処理時と全く同じ共通鍵を用いて再度処理して出力すると、図３におけるＣの部分に平文データになり、Ａの部分に示した平文のサンプルのと全く同じ平文データが出力される。これは、図４のＣの処理に相当する。
【００５５】
先に述べたように、この実施形態の暗号化装置によれば、暗号化処理と全く同じ処理によって復号処理を行えるため、同じ処理を２回施した出力は、暗号化する前の平文データと全く同じものになるのである。
実際には、データの送り手が暗号化処理を１回施して暗号化して、そのデータを相手に送信し、受け手が暗号化に用いたのと同じ共通鍵を用いて復号処理を行うことにより、平文データを手に入れることになる。
【００５６】
ここでは、完全な平文データに対して暗号化処理を施す例を説明したが、他の装置あるいはプログラムによって平文データを作成しながら、できた部分から１バイトずつ演算手段１３に入力して、リアルタイムに暗号化処理を行うことも可能である。
【００５７】
この実施の形態の暗号化装置は、数列の生成にWeierstrass−高木関数を母関数とする漸化式を用いたが、用いる式はこれに限られるものではなく、Cantorの３進集合やKoch曲線でもよいし、フラクタルを母関数とする非線型力学系の軌道応答を記述する式であれば他のものでも構わない。例えば、Duffingの振動系やRayleigh−van der Polの自励弛緩振動系、個体数生物学におけるＭａｌｔｈｕｓ法則をあらわす系、陽子のベータトロン振動におけるArnold拡散現象などである。
【００５８】
これらの系を表わす非線型方程式を用いてもよい。その際には、初期値ｘ０の取りうる範囲は、選択した方程式に従って適切に定める。また、「暗号化キー」で方程式自体を選択するようにしてもよい。暗号化方式を変更する際には、その方程式を変更してもよい。しかし、当然のことながら、暗号化処理と復号処理は、同じ式を用いて行わなければならない。
【００５９】
次に、この発明による暗号化方法および暗号化装置の変形例について説明する。
この発明による暗号化方法および暗号化装置は、同じ構成の暗号化手段を多重に設けて暗号化処理を行うか、あるいは同じ暗号化手段を複数回用いて暗号化処理を行うことが可能である。すなわち、生成した暗号データに対し、さらに暗号化処理を行うことが可能である。
【００６０】
図５にその構成を示す。ここで「ＣＲＹＰＴ」は、暗号化手段による暗号化処理を示す。それぞれの「ＫＥＹ」は各処理での共有鍵である。
各暗号化処理は既に説明した通り行うが、生成される暗号データＡｎは、平文データＰｎとバイト単位では対応する順に並んでいるため、何度でも同じ処理に供することができる。
【００６１】
ただし、同じ共有鍵を用いて暗号化処理を行うと、既に述べたように復号処理になってしまうので、各段階での暗号化処理はそれぞれ異なった共有鍵を用いて行う。このように、複数回の暗号化処理をそれぞれ異なる共有鍵を用いて重ねて行うことにより、暗号の強度をより高めることができる。
【００６２】
各処理は、１つの暗号化手段によって繰り返し行ってもよいが、複数の暗号化手段を設けて順次行ってもよい。あるいは図１に示した数列生成手段１２によって一度に複数の数列ｘ１ｎ，ｘ２ｎ，……，ｘｎｎを生成し、演算手段１３によってこれら全ての数列を用いて数８のように暗号化処理を行ってもよい。
【数８】
2005210633.tif 000010
【００６３】
このような複数段階の暗号化処理を行った暗号データを復号する際にも、１段階の場合と同じように、暗号化処理とを同じ処理を再度施せばよい。また、排他的論理和のように、交換法則が成り立つ演算で暗号化処理を行う場合には、暗号化処理と復号処理において用いる共有鍵の順番は任意でよい。
【産業上の利用可能性】
【００６４】
以上の説明から明らかなように、この発明による暗号化方法および暗号化装置によれば、セキュリティー確保にとって非常に好ましい暗号を作成することが可能である。従って、簡便でかつセキュリティーの非常に高い暗号化の可能な暗号化装置を提供することができる。
【図面の簡単な説明】
【００６５】
【図１】この発明による暗号化方法を実施する暗号装置の構成例を示すブロック図である。
【図２】図１に示した暗号化装置の数列生成手段によって生成される数列の各項の値を示す線図である。
【図３】図１に示した暗号化装置の動作を実現するプログラムを作成し、コンピュータ上で動作させた場合の処理例を示す図である。
【図４】図３の処理例に対応する各処理のスキーム図である。
【図５】この発明による暗号化方法および暗号化装置の変形例を示すスキーム図である。
【符号の説明】
【００６６】
１１：入力手段      １２：数列生成手段
１３：演算手段      １４：出力手段
【図１】
2005210633.tif 000011
【図２】
2005210633.tif 000012
【図３】
2005210633.tif 000013
【図４】
2005210633.tif 000014
【図５】
2005210633.tif 000015