(57)【要約】【課題】暗号化又は復号化のための鍵情報を用いることなく、ディジタル通信情報を暗号化し且つ解読することができることを目的とする。【解決手段】暗号化処理は平文の構成要素に対応して発生させた複数の乱数列を組合わせて生成した乱数列を送信し、復号化処理はこの乱数列を受信すると所定の分割ルールに従って部分乱数列に分解し、そして各部分乱数列が従う分布関数を特定することで平文の構成要素を復号化する。このため従来のような暗号鍵を用いて暗号化する必要はなく、且つ復号化においても部分乱数列というブロック化した情報から得られる有意な内容を抽出することにより平文への解読を行うことが可能で、第三者によって暗号文が解読されることを防止できる。また、期待した分布特性と異なる部分乱数列の箇所を検出することで改ざん位置を容易に特定することが可能であり、通信経路上におかれた暗号文に対するセキュリティ性を格段と向上させることができる。【選択図】図１
2008205815.tif 000002
【特許請求の範囲】
【請求項１】
所定の分布関数に従って発生させた乱数を用いて情報を暗号化する情報処理装置であって、
平文の構成要素に応じて複数の分布関数を設定し、当該分布関数に従う任意の乱数列を発生させる乱数発生手段と、
前記平文の情報に基づき乱数列を生成する暗号化処理手段とを備え、
前記暗号化処理手段は、
(i)前記平文の構成要素ごとに、前記複数の分布関数の中から対応の分布関数を決定し、当該対応の分布関数に従う乱数列を発生するよう前記乱数発生手段に指示し、
(ii)前記指示を受けて前記乱数発生手段が発生した乱数列を順次連結させて平文全体の乱数列を生成する、ことを特徴とした情報処理装置。
【請求項２】
複数の乱数列が連結した乱数列を平文情報に復号化する情報処理装置であって、
任意の乱数列の頻度期待値と、所定の分布関数に従って発生させた乱数列に関する理論統計的に導出した頻度期待値とを任意の許容幅を考慮しながら比較し、両者の頻度期待値が一致したときは前記任意の乱数列は前記所定の分布関数と関連性があると判定する乱数列検定手段と、
乱数列を平文情報に戻すための復号化処理手段とを備え、
前記復号化処理手段は、
(i)前記複数の乱数列が連結した乱数列を所定の分割ルールに従って分割して複数の部分乱数列を生成し、
(ii)前記乱数列検定手段により、前記部分乱数列ごとに、あらかじめ定義した前記分布関数の何れと関連性があるかを識別し、
(iii)前記所定の分布関数と、前記平文情報の構成要素との対応関係が定義された関係情報を基に、前記識別した分布関数に従う部分乱数列を平文情報に変換する、ことを特徴とした情報処理装置。
【請求項３】
乱数を用いて情報を暗号化し、且つ乱数が従う分布関数の識別に基づき暗号文を復号化する情報処理装置であって、
(1)情報通信回線を介して外部と接続する受信手段および送信手段と、
(2)相手に送りたい平文を乱数列に変換する暗号化処理手段であって、
(I)前記平文の構成要素に応じて複数の分布関数を設定し、当該分布関数に従う任意の乱数列を発生させる乱数発生部と、
(II)(i)前記平文の構成要素ごとに、前記複数の分布関数の中から対応の分布関数を決定し、当該対応の分布関数に従う乱数列を発生するよう前記乱数発生手段に指示し、
(ii)前記指示を受けて前記乱数発生手段が発生した乱数列を順次連結させて平文全体の乱数列を生成する乱数列生成部と、を含む前記暗号化処理手段と、
(3)任意の乱数列における乱数値の出現頻度期待値と、所定の分布関数に従って発生させた乱数列に関して理論統計的に導出した乱数値出現頻度期待値とを任意の許容幅を考慮しながら比較し、両者の頻度期待値が一致したときは前記任意の乱数列は前記所定の分布関数と関連性があると判定する乱数列検定手段と、
(4)前記受信手段により受信された複数の乱数列が連結した乱数列を平文情報に変換する復号化処理手段であって、
(III)(i)前記複数の乱数列が連結した乱数列を所定の分割ルールに従って分割して複数の部分乱数列を生成する乱数分割部と、
(ii)前記乱数列検定手段により、前記部分乱数列ごとに、あらかじめ定義した前記分布関数の何れと関連性があるかを識別する分布関数識別部と、
(iii)平文の構成要素と前記分布関数の対応関係に基づき、前記識別した分布関数に対応する平文に変換する平文変換部と、を含む前記復号化処理手段と、
(5)前記暗号化手段によって変換した乱数列、又は前記復号化手段によって変換した平文情報を前記情報通信回線を介して外部に送信する情報処理装置。
【請求項４】
所定の分布関数に従って発生させた乱数を用いて情報を暗号化する情報処理方法であって、
平文の構成要素に応じて複数の分布関数を設定し、任意の乱数発生手段に指示して当該分布関数に従う任意の乱数列を発生させる処理と、
前記平文の構成要素ごとに、前記複数の分布関数の中から対応の分布関数を決定し、当該対応の分布関数に従う乱数列を発生するよう前記乱数発生手段に指示する処理と、
前記指示を受けて前記乱数発生手段が発生した乱数列を順次連結させて平文全体の乱数列を生成する処理と、を含む情報処理方法。
【請求項５】
複数の乱数列が連結した乱数列を平文情報に復号化する情報処理方法であって、
任意の乱数列における乱数値の出現の頻度期待値と、任意の乱数発生手段に対して所定の分布関数に従って発生させた乱数列に関する理論乱数値出現頻度期待値とを任意の許容幅を考慮しながら比較し、両者の理論乱数値出現頻度期待値が一致したときは前記任意の乱数列は前記所定の分布関数と関連性があると判定する乱数列検定処理と、
前記複数の乱数列が連結した乱数列を所定の分割ルールに従って分割して複数の部分乱数列を生成する処理と、
前記乱数列検定処理を用いて、前記部分乱数列ごとに、あらかじめ定義した前記分布関数の何れと関連性があるかを識別する処理と、
メモリに記憶された、前記所定の分布関数と、前記平文情報の構成要素との対応関係が定義された関係情報を参照することにより、前記識別した分布関数に従う部分乱数列を平文情報に変換する処理と、を含む情報処理方法。
【請求項６】
乱数を用いて情報を暗号化し、且つ乱数が従う分布関数の識別に基づき暗号文を復号化する情報処理方法であって、
(1)情報通信回線を介して外部からの情報を取得する情報受信処理と、
(2)相手に送りたい平文を乱数列に変換する暗号化処理であって、
(I)前記平文の構成要素に応じて複数の分布関数を設定し、当該分布関数に従う任意の乱数列を任意の乱数発生手段を用いて発生させる処理と、
(II)(i)前記平文の構成要素ごとに、前記複数の分布関数の中から対応の分布関数を決定し、当該対応の分布関数に従う乱数列を発生するよう前記乱数発生手段に指示する処理と、
(ii)前記指示を受けて前記乱数発生手段が発生した乱数列を順次連結させて平文全体の乱数列を生成する処理と、を含む前記暗号化処理と、
(3)任意の乱数列における乱数値の出現頻度期待値と、所定の分布関数に従って任意の乱数発生手段を用いて発生させた乱数列の乱数値の出現理論頻度期待値とを任意の許容幅を考慮しながら比較し、両者の頻度期待値が一致したときは前記任意の乱数列は前記所定の分布関数と関連性があると判定する乱数列検定処理と、
(4)前記情報受信処理で受信した乱数列を平文情報に変換する復号化処理であって、
(III)(i)前記受信した乱数列は複数の乱数列が連結した乱数列であって、当該乱数列を所定の分割ルールに従って分割して複数の部分乱数列を生成する処理と、
(ii)前記乱数列検定処理を用いて、前記部分乱数列ごとに、あらかじめ定義した前記分布関数の何れと関連性があるかを識別する処理と、
(iii)メモリに記憶された、前記所定の分布関数と、前記平文情報の構成要素との対応関係が定義された関係情報を参照することにより、前記識別した分布関数に従う部分乱数列を平文に変換する処理と、
(5)前記暗号化処理によって変換した乱数列、又は前記復号化処理によって変換した平文情報を前記情報通信回線を介して外部に送信する処理と、を含む情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、乱数分布の異なる乱数列を組合わせて生成した暗号文を通信する方法及び装置に関し、特に、乱数列が従う乱数分布特性の相違を部分乱数列毎に検出することにより暗号文のデータを生成及び識別する技術に係るものである。
【背景技術】
【０００２】
近年、情報化社会の進展によりディジタルデータの信頼性向上が非常に重要になっており、これに伴いディジタルデータの伝送に対するセキュリティ性の要求がますます増大してきている。このため、データの機密性を確保したり、あるいは、データに対する不正アクセスやコピーの防止などを目的にデータを暗号化することが一般に行なわれている。暗号技術の研究はめざましい進展を続けており、例えば共通鍵による暗号化手段としては、ブロック暗号方式のDES(Data Encryption Standard)やNTTのFEAL等、或いはストリーム暗号方式のバーナム(Vernam)暗号等がある。これらの暗号化手段を利用してディジタルデータを暗号化することにより、データ機密性を確保したり、不正アクセスやコピーの防止を図ることができる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、これまでは暗号文の生成及び解読にあたり、送受信者の双方で鍵情報を取得しておかなければならなかった。例えば共通鍵を用いた暗号化方式では、暗号文の生成に使用した暗号化鍵を復号化鍵として情報の受け手に秘匿して渡す必要がある。上記バーナム暗号方式の場合は、平文（メッセージ）と、鍵情報として使用する乱数列との排他的論理和をとるアルゴリズムで暗号文を作成する。バーナム暗号方式はこのような単純なアルゴリズムであり、使用する乱数列の乱数性が良ければ暗号文のみの情報からは解読不可能な暗号とされているが、受信者に乱数列を秘密状態で渡すことができなければこのアルゴリズムのロバスト性は何の意味もないことになってしまう。したがって、共通鍵による暗号化方式の場合は鍵情報の盗難が問題で、ネットワーク等の通信経路上で如何に鍵情報を安全に配布できるかにかかっている。
【０００４】
なお、公開鍵を用いた暗号化方式では、送信者は受信者によって公開された鍵を入手して暗号文を生成する。したがって、共通鍵のような暗号化鍵と同一の鍵を受信者に安全に配布する必要はない。その代わりに、暗号化に使用する鍵が公開され誰もが鍵情報を入手可能になってしまうので、鍵の改ざんがなされていないか、また鍵が正当な所有者（受信者）のものであるかを証明するためにディジタル証明書を利用しなければならないという別の処理が発生してしまう。
そこで、本発明は、暗号化又は復号化のための鍵情報を用いることなく、ディジタル通信情報を暗号化し且つ解読することができることを目的とする。
【課題を解決するための手段】
【０００５】
本発明による所定の分布関数に従って発生させた乱数を用いて情報を暗号化する情報処理装置又はその方法は、（１）平文の構成要素に応じて複数の分布関数を設定し、当該分布関数に従う任意の乱数列を発生させ、及び（２）前記平文の情報に基づき乱数列を生成する手段又は処理を含み、前記平文情報に基づき乱数列を生成する際には、(i)前記平文の構成要素ごとに、前記複数の分布関数の中から対応の分布関数を決定し、当該対応の分布関数に従う乱数列を発生するよう前記乱数発生手段に指示し、(ii)前記指示を受けて前記乱数発生手段が発生した乱数列を順次連結させて平文全体の乱数列を生成する。
【０００６】
本発明による複数の乱数列が連結した乱数列を平文情報に復号化する情報処理装置又はその方法は、（１）任意の乱数列の頻度期待値と、所定の分布関数に従って発生させた乱数列に関する理論統計的に導出した頻度期待値とを任意の許容幅を考慮しながら比較し、両者の頻度期待値が一致したときは前記任意の乱数列は前記所定の分布関数と関連性があると判定し、及び（２）乱数列を平文情報に戻すために復号化する手段又は処理を含み、前記復号化する際には、(i)前記複数の乱数列が連結した乱数列を所定の分割ルールに従って分割して複数の部分乱数列を生成し、(ii)前記乱数列と所定の分布関数とを判定する手段又は処理により、前記部分乱数列ごとに、あらかじめ定義した前記分布関数の何れと関連性があるかを識別し、(iii)前記所定の分布関数と、前記平文情報の構成要素との対応関係が定義された関係情報を基に、前記識別した分布関数に従う部分乱数列を平文情報に変換する。
【０００７】
本発明による乱数を用いて情報を暗号化し、且つ乱数が従う分布関数の識別に基づき暗号文を復号化する情報処理装置又はその方法は、(１)情報通信回線を介して外部と接続する受信し且つ送信する手段又は処理と、及び(２)相手に送りたい平文を乱数列に変換する暗号化する手段又は処理を含み、当該暗号化の際には、(I)前記平文の構成要素に応じて複数の分布関数を設定し、当該分布関数に従う任意の乱数列を発生させ、(II)(i)前記平文の構成要素ごとに、前記複数の分布関数の中から対応の分布関数を決定し、当該対応の分布関数に従う乱数列を発生するよう指示し、(ii)前記指示を受けて発生させた乱数列を順次連結させて平文全体の乱数列を生成するようにし、更に、(３)任意の乱数列における乱数値の出現頻度期待値と、所定の分布関数に従って発生させた乱数列に関して理論統計的に導出した乱数値出現頻度期待値とを任意の許容幅を考慮しながら比較し、両者の頻度期待値が一致したときは前記任意の乱数列は前記所定の分布関数と関連性があると判定する乱数列検定のための手段又は処理と、(４)受信した複数の乱数列が連結した乱数列を平文情報に変換する復号化のための手段又は処理、とを含み、当該復号化の際には、(III)(i)前記複数の乱数列が連結した乱数列を所定の分割ルールに従って分割して複数の部分乱数列を生成し、(ii)前記乱数列検定手段により、前記部分乱数列ごとに、あらかじめ定義した前記分布関数の何れと関連性があるかを識別し、(iii)平文の構成要素と前記分布関数の対応関係に基づき、前記識別した分布関数に対応する平文に変換し、及び(５)暗号化された乱数列、又は復号化された平文情報を情報通信回線を介して外部に送信する。
【発明の効果】
【０００８】
本発明の情報処理装置又は情報処理方法によれば、暗号化処理は、平文の構成要素に対応して発生させた複数の乱数列を組合わせて生成した乱数列を通信経路上に送信し、復号化処理は、この乱数列を受信すると所定の分割ルールに従って部分乱数列に分解し、そして各部分乱数列が従う分布関数を特定することにより平文の構成要素を復号化するので、従来のような暗号鍵を用いて情報を暗号化する必要はなく、且つ復号化においても部分乱数列というブロック化した情報から得られる有意な内容を抽出することにより平文への解読を行うので、第三者によって暗号文が解読されることを防止できる。また、通信経路上で漏洩した暗号文に意図しない改ざんがなされたときでも、期待した分布特性と異なる部分乱数列の箇所を検出することで改ざん位置を容易に特定することが可能であり、通信経路上におかれた暗号文に対するセキュリティ性を格段と向上させることができる。
【発明を実施するための最良の形態】
【０００９】
以下に図面を参照しながら、本発明の情報通信装置の一実施形態について説明する。
＜暗号文の生成について＞
本発明の情報通信装置によって行われるディジタル情報の暗号／復号処理は、送信者側からのディジタル情報（以下、「平文」という。）の内容を乱数列に変換した上で受信者へ送信する。したがって、仮に第三者が乱数列に変換された平文を取得できたとしても直ちにその内容が知見されることはなく、乱数列への変換処理がいわゆる暗号化の機能を担っているといえる。しかも従来のように鍵情報を使用して乱数列に変換しているのとは異なり、複数の乱数分布から得られる各特性の相違を乱数値に反映させることで、平文データを複数の乱数分布に従う任意の乱数列に変換している点が特徴である。
【００１０】
本実施形態では、以下の説明を簡略化するため、伝送の対象となる平文が２進数の数列の「０１０１」であるとして話を進めていく。
本発明の情報通信装置は、平文を乱数列にするために平文の各データ単位の乱数列、即ち、部分乱数列を作ってそれらを集合させる。例えば、「０１０１」でいえば、最初のビットの「０」に対応する部分乱数列Ｘ1、次のビットの「１」に対応する部分乱数列Ｘ2、次のビットの「０」に対応する部分乱数列Ｘ3、更に次のビットの「１」に対応する部分乱数列Ｘ4を順次作成して繋ぎ合せてできる、Ｘ1＋Ｘ2＋Ｘ3＋Ｘ4を平文全体の乱数列Ｘとする。ところで、自然乱数は指数分布や正規分布などの理論期待値を計算することができる統計分布に従うことが知られおり、例えば、擬似乱数はこれらの分布に基づいてコンピュータによってソフトウェア的に発生させたものである。したがって、所定の統計分布に従う部分乱数列を生成させたり、或いは各部分乱数列Ｘi（ｉ＝１〜４）を検定して各部分乱数列が従う分布の特性を把握することが可能である。
【００１１】
本実施形態の場合、平文データ例「０１０１」の各ビットが「０」及び「１」の何れかの値であるため、２つの異なる分布（分布Ａ,分布Ｂ）を用意し、それぞれの分布を基に乱数列Ｘiを構築する。つまり、乱数列Ｘ＝Ｘ1＋Ｘ2＋Ｘ3＋Ｘ4は、分布Ａ＋分布Ｂ＋分布Ａ＋分布Ｂと考えて、分布Ａに従う部分乱数列と分布Ｂに従う部分乱数列とを交互につなげる。ただし、Ｘ1とＸ3は共に同一の分布Ａに従うように発生させる部分乱数列であるが、部分乱数列の具体的な乱数値が同一であるとは限らない。分布Ａに従う乱数列は無数に生成できるのであって、むしろ部分乱数列Ｘ1とＸ3の乱数値が異なっている方が、暗号の解読されにくさを表す暗号強度が大きくなるので好ましい。即ち、部分乱数列Ｘ1,Ｘ3が具体的にどのような乱数値で構成されているかというミクロ的な視点でみるのでなく、それぞれの部分乱数列の全体がどのような分布に従っているのかというマクロ的な見方が重要となる。本発明の情報通信装置は、ブロック単位で検定すれば分布Ａに従うとみなせる部分乱数列Ｘ1,Ｘ3が生成されるよう乱数発生回路を調整／設定する。分布Ｂに従うＸ2とＸ4についても同様である。
【００１２】
ここで、部分乱数列Ｘ1,Ｘ3が得られたとき、分布Ａに従っているのか否かを検定する方法について説明しておきたい。この検定方法は、実際には後述する暗号文の解読（復号化）の際に乱数列から平文データを識別するときに実行される処理であるが、裏を返せば復号化処理で乱数列を逆処理すれば平文に戻るよう、暗号化処理において本願固有の技術思想で平文を乱数列に変換しているのであり、本発明の技術的内容の理解を容易にするために復号化処理の説明に先立って述べておくこととする。
【００１３】
各事象が他の事象と独立に生起してランダムに変動する場合、事象が単位時間あたりに生起する頻度は期待値ｎのポアソン(Poisson)分布に従う。そして、その事象が生起する時間間隔ｔの確率密度関数は、事象が生起する平均の時間間隔をｔとすれば、λｅ-λt（λ：単位時間当たりの平均乱数発生回数）の指数分布で表わされる。そこで、乱数列生成の基となる分布（分布Ａや分布Ｂ）として指数分布を挙げることにする。
【００１４】
いま、１つの時間間隔（ｔ）が計測されると、時間ｔに応じて０〜２５５のうちの何れか１つの値を割当てるとする。つまり、クロック信号を発生するクロック信号発生手段と、前記クロック信号のクロック回数をカウントする（本実施形態では２５５を最大カウント値とするがこれに限定するものではない。）カウント手段とを含む計時手段によって、各時間間隔ｔに対応するクロック回数を決定する。当然ながら、時間間隔ｔが長くなるほどクロック回数が増加することになるが、クロック回数が２５５を超えた段階でカウントを零にリセットすれば、任意の時間間隔ｔに対して０〜２５５の何れか１つの値を対応させることができる。そして、２５６個の桁の発生回数カウンタによって、何れかの値が割当てられる度に対応の発生回数カウンタをインクリメントして各値の発生頻度を記録する。このため、時間間隔ｔが指数分布に従っていると判断できれば、ｔはランダムに変動する事象が生起した時間間隔となるので乱数値としてみなすことができる。
【００１５】
また、時間間隔ｔが所定の指数分布Ａに従っているか否かの判断を以下のように行う。  指数分布ｆ（ｔ）＝λｅ-λt（λは単位時間当たりの平均乱数発生回数）について、時間間隔（ｔ）の理論期待値Ｅ（ｔ）は１／λであることが知られている。したがって、時間間隔ｔが指数分布Ａに従うとすれば、０〜２５５値の各発生頻度の期待値を単位時間当たりの平均乱数発生回数λより理論的に且つ容易に計算することができる。また、λは乱数の生成レートを意味し、且つ制御可能なパラメータであるので、λを調整することで所望の指数分布Ａを設定することが可能である。
【００１６】
時間間隔ｔに含まれる測定誤差などのばらつきの影響で、時間間隔ｔの期待値が理論期待値と近似するものの厳密に一致しないことがある。このような場合も時間間隔ｔが指数分布に従っていないとみなし、乱数性を否定してしまうのは現実的ではない。そこで、発生回数カウンタで計測したカウント値が、０〜２５５の各発生頻度の理論期待値に所定の上下幅をもたせた範囲内に入っているならば、時間間隔ｔが指数分布に従っており、その結果、０〜２５５のデータ列は期待値１／λの指数分布に従う真正な乱数列であると処理する。これに対して、上記範囲内から逸脱してしまう発生頻度（カウント値）がある場合は、設定した期待値１／λの指数分布に従う真正な乱数列でないと処理する。
このような乱数性の検定方法によれば、入手した乱数列が所望のλで定義した指数分布に従っているのか否かを容易に判断することができる。
【００１７】
上記乱数列検定法の基本概念をより具体的に理解するには、図２に示すグラフが参考になる。図２中の黒丸は、計測した時間間隔ｔに対応する０〜２５５（横軸）に対する発生回数、即ち頻度の一例を表している。縦軸が対数目盛りであることから分かるように、指数関数の発生回数を対数軸でプロットすると、傾き−λの直線となる。即ち、この直線が各０〜２５５の理論期待値Ｅ（ｔ）を示している。また、この理論期待値に対する合理的な上下幅の範囲を示したのが、図中の２つの破線である。理論期待値の上方に位置するのが上限閾値線であり、下方に位置するのが下限閾値線である。したがって、本実施形態の乱数検定法は、各０〜２５５の発生頻度のばらつきが上限閾値線及び下限閾値線の範囲内であるか否かを検定することになる。実際の時間間隔（ｔ）のばらつきは期待値を中心として正規分布に従って分散すると考えられるので、これを統計学的表現で表せば、Ｅ（ｔ）±υσ（σ：ばらつきの程度）となる。例えば、±σ,±２σ,±３σ…となるにつれ、理論期待値Ｅ（ｔ）からのずれ幅が大きくなり、乱数列の検証の信頼度は小さくなっていく。逆にいえば、Ｅ（ｔ）±６σやＥ（ｔ）±７σといった、真正な乱数列であればかなりの高確率でその範囲内に存在するであろう合理的な検定幅を設定したにもかかわらず、計測した発生回数の中にこの幅を逸脱してしまうものが存在したときは、乱数値０〜２５５の集合が、所望のλで定義した指数分布に従う真正な乱数列を構成していないと推定してもかまわない。
【００１８】
このように、上記乱数列検定法は上限閾値線及び下限閾値線の範囲から逸脱してしまう発生回数を発見すれば、乱数列０〜２５５が設定したλに基づく指数分布に従っていないと判断する。そこで、暗号化処理においては、上記範囲内に各０〜２５５の発生頻度が必ず存在するように乱数値を発生させ、乱数性を維持し且つ期待値１／λの指数分布に従う部分乱数列を生成する。乱数値の発生には、物理現象に基づいて生じる物理量で乱数値を定義することが可能な任意の発生源（例えば、抵抗、ダイオード等の半導体、あるいは導体を熱雑音発生源）を使用し、これら熱雑音源から独立な事象として発生するパルスのパルス間隔を上述した時間間隔ｔである乱数値とすることができる。或いは、コンピュータのソフトウェア処理で擬似的に乱数値を発生させるようにしてもよい。
【００１９】
図１（ａ）は、本実施形態の乱数検定方法によって、傾きλaをもつ指数分布Ａに従うと判断される乱数値を発生した例である。また、指数分布Ｂに従う部分乱数列を発生させるために、傾きλaとは異なる傾きλbを設定したときの指数分布Ｂの対数グラフが図１（ｂ）である。本実施形態では、平文データ例「０１０１」の一つのビット「０」又は「１」について４．８Ｋ個の乱数値の集合を対応させている。即ち、部分乱数列Ｘiに含まれる乱数値の数を４．８Ｋ個に設定している。
なお、乱数列検定方法の信頼性にも影響するので各部分乱数列に含まれる乱数値の数は一定数以上を必要とし、具体的な数は平文データの大きさとの関係から適宜決定すればよく、固定的にする必要はない。また、部分乱数列間で必ずしも同一の数に統一させる必要もない。
【００２０】
本実施形態の平文データ例「０１０１」に相当する乱数列Ｘは、Ｘ1＋Ｘ2＋Ｘ3＋Ｘ4であり、Ｘ1及びＸ3が指数分布Ａ、そしてＸ2及びＸ4が指数分布Ｂに従うことから、乱数発生手段が平文を頭から解釈していったときに、「０」の場合は指数分布Ａに従って４．８Ｋ個の乱数値を発生させ、「１」の場合は指数分布Ｂに従って４．８Ｋ個の乱数値を発生させていくことを繰り返し、それぞれ発生させた部分乱数列を単純に結合させることで暗号文を完成する。ここで留意すべき点は、先頭（左）から１ビット目の「０」と、３ビット目の「０」に対応する部分乱数列Ｘ1及びＸ3は、同一の乱数列ではないという点である。２ビット目の「１」と、４ビット目の「１」に対応する部分乱数列Ｘ2及びＸ4についても同様である。同一の指数分布からは無数の乱数列を生成することができるので、例えば、指数分布Ａに従う乱数列を２進数表現したとき、「01001101011…101」,「1100101011…011」,…が存在するとすれば、Ｘ1のために前者の「01001101011…101」を、そしてＸ3のために後者の「1100101011…011」を採用するのが望ましい。同一の乱数列を使用すれば、その規則性から平文データの内容を推測される可能性が高くなるのでこれを防止するためである。
以上の処理が本発明の暗号化処理で行われる基本内容である。そして、情報通信装置は、このように複数の部分乱数を結合させて完成した乱数列Ｘを受信者に送信する。
【００２１】
いま、受信者に向けて送信した乱数列が第三者に漏れてしまったとしよう。この第三者は、従来のような暗号文を解く鍵情報を持っていないので（そもそも、本発明では鍵情報自体が無いので第三者に鍵情報が渡るという概念が生じ得ない。）、乱数列の各値の並び方から平文データに解読することを試みるだろう。しかしながら、本発明による暗号文の乱数列は、例えば、01001101011…101…………1100101011…011…………であり、乱数値の一つ一つの値に暗号文を解読する上での直接的な意味があるわけではない。ある所定の長さの乱数値のかたまり（部分乱数列）として捉えたときにはじめて暗号文としての意味が出てくる。したがって、指数分布Ａ及び指数分布Ｂそれぞれのλ値、部分乱数列を構成する乱数の数（上記例では４．８Ｋ個）、及び乱数検定方法での上下限閾値幅に関する情報を把握した上で、部分乱数列ごとに指数分布Ａ又は指数分布Ｂに従っているかを判断しない限り、暗号文のみから平文への解読は不可能である。本発明の情報通信装置は、乱数列の各値自体には解読の手がかりとなる意味を何ら持たせないことで、仮に通信経路上で乱数列が不正に漏洩されたとしても解読できないようにしているのである。
特に、実際に暗号化する場合に、１ビット目の「０」は約４Ｋ個分の乱数値、そして３ビット目の「０」は約２Ｋ個分の乱数値を対応させるというように、可変長ブロックの部分乱数列を用いるようにすれば暗号強度が格段に高くなるであろう。
【００２２】
＜暗号文の解読について＞
次に、平文を乱数列に変換して暗号化処理を施したデータが受信者に送信された後の復号化処理について説明する。暗号化処理のところで、本実施形態における具体的な乱数列検証方法については既に説明してあるので、ここでは重複する説明は省略する。
図１の下半分は、復号化処理の概念を表している。暗号化処理において、複数の分布に従う部分乱数列を結合して平文が作られているので、まず、受信者は受信した暗号文を部分乱数列に分割する。例えば４．８Ｋの固定長と決めておけば、先頭から４．８Ｋ個分ずつの乱数値を切り出していけばよい。
【００２３】
次に、受信者は、分割した部分乱数列ごとに、当該部分乱数列がどの分布に従って発生させた乱数列であるのかを、暗号処理部での乱数発生レートのλ値や上下限閾値幅の情報を使った上述の乱数検証方法に基づいて識別する。図１下部に示すように、各部分乱数列は、対数グラフで表せば所定の傾きで表現される複数の直線に変換されることがわかるので、暗号化される前の平文データがどのような「０」及び「１」の組合わせになっているのかを知ることができる。このとき、分布Ａが平文の「０」に対応し、分布Ｂが平文の「１」に対応するという対応関係は、例えば関係テーブルとして定義して記憶し、暗号及び復号化処理の際に参照できるようにしておけばよい。
【００２４】
このように、本発明の情報通信装置を使えば、送信者は鍵情報を用いずに平文データを暗号化処理することができ、且つ受信者も鍵情報を必要とせずに暗号文を解読することができる。しかも、暗号文の乱数列の１つずつの値が平文データの内容を直接的に反映していないことから、暗号文が漏れて第三者が乱数値を取得しても、平文データへの復元をすることができない。よって、本発明を用いたデータ伝送はデータセキュリティを従来よりも格段に向上させることができるという技術的効果がある。また、本乱数列検定法によって、指数分布Ａの傾きでもなければ指数分布Ｂの傾きでもない、暗号化処理で設定した分布以外の乱数列が存在すると判断できれば、暗号文が何らかの理由で正常に送信されていないことや、通信経路上で改ざんされた事実及び改ざん位置の発見にも利用できることから、本発明の技術的意義は極めて大きい。
【００２５】
（応用例について）
時間間隔ｔを計時するために有限カウンタを使用する場合に生じ得る問題として、数値出現頻度が指数分布になることがあげられる。すなわち、小さな数が出現する割合が、大きな数の其れより大きいと言うことである。乱数というからには一様性（無規則性）ができるだけ担保されるべきという考えの下、この問題を解消するために、生成された乱数列の値に対して排他的論理和の演算処理、即ち隣り合わせの個々の乱数値に対して、ＸＯＲによるＢＩＴ撹拌を行い、出現頻度がほぼ等しく平坦になった結果値を最終的な乱数値とする処理が行われることもありうる。排他的論理和演算が実行された乱数列は、暗号の解読され難さを表す「乱数強度」が高くなるからである。そこで、本実施形態の情報通信装置の暗号化処理においても、部分乱数列を結合して生成した乱数列に排他的論理和による演算処理を１又はそれ以上施して乱数列が一様性になるようにしてもよい。
【００２６】
また、上記排他的論理和演算（ＸＯＲ）が実行された乱数列を受信者に送信する場合は、どのような組合わせの部分乱数列に対してＸＯＲを施し、しかも何段階の繰り返しを行ったか等のＸＯＲルールを事前に送信者及び受信者の間で事前に決めておけばよい。暗号文としての乱数列を受信した受信者は、まず、上記ＸＯＲルールを逆に辿って受信乱数列に排他的論理和演算を施すことで、平坦化された乱数列をＸＯＲ処理される前の乱数列に解くことができる。その後の復号化処理は、上述したとおりで実施すればよい。
【００２７】
なお、平文データが「０」及び「１」以外の他のコードを含む場合は、部分乱数列が従う乱数分布の種類を増やすことで分布２,分布３,…を対応させればよい。本実施形態では、上述したように分布Ａや分布Ｂを指数分布として定義したが、これに限定するものではなく、正規分布やその他の分布関数を含むものである。
また、平文データは数字、文字、画像などのあらゆる種類の情報を含むものであり、したがって本発明の情報通信装置は、情報化社会で処理されるディジタル情報の暗号／復号化のための利用として期待できるものである。
【００２８】
（実施例）
上述した本実施形態の情報通信装置の構成例を図３に示す。図３に示すように、情報通信装置１は、乱数発生回路[Ａ]１０、乱数発生回路[Ｂ]１１、暗号回路１２、復号回路１３、入出力回路１４、暗号化データ格納部１８、入出力回路１４、送受信回路１９、ＣＰＵ１５、ＲＯＭ１６、ＲＡＭ１７を含んだ構成である。
乱数発生回路[Ａ]１０は、所定の分布（例えば、指数分布）Ａの乱数を発生するための回路であり、乱数発生回路[Ｂ]１１は、分布Ａとは異なる分布特性を有する分布Ｂの乱数を発生するための回路である。
入出力回路１４は外部のＰＣ等と接続し、平文データの入力及び出力を行い、送受信回路１９は暗号化処理された暗号データ（乱数列）を外部に送信したり、外部から送信された暗号データを受信する。
暗号回路１２は、入出力回路１４を介して入力された平文データの各要素を、乱数発生回路[Ａ]１０又は乱数発生回路[Ｂ]１１によって発生された任意の個数の乱数列と対応付ける。上記例で言えば、平文データが”０”であれば、乱数発生回路[Ａ]１０によって発生される、約４Ｋ個の乱数値からなる部分乱数列を対応させ、また平文データが”１”であれば、乱数発生回路[Ｂ]１１によって発生される、約４Ｋ個の乱数値からなる部分乱数列を対応させる。そして、平文データの要素の並びにあわせて、発生された複数の部分乱数列を合体させ、暗号文としての乱数列を作成する。
暗号化データ格納部１８は、必要に応じて、暗号回路１２において平文データを暗号化し乱数列として形成した送信データを格納したり、送受信回路１９で受信したデータの暗号化データを格納する。
復号回路１３は、暗号化データ格納部１８に格納された暗号化データ（乱数列）を分割して複数の部分乱数列をつくる。そして、部分乱数列ごとに、上述した乱数列検定方法によって乱数が従う分布関数を特定する。上記例では、暗号化データを、約４Ｋ個の乱数値で１つの部分乱数値をつくり、分布Ａ又は分布Ｂの理論期待値と適合するかを調べる。さらに、分布Ａならば”０”、分布Ｂならば”１”という対応関係が定義された関係テーブルを参照し、暗号化データを平文データに復号する。
ＲＯＭ１６は、本情報処理装置１全体の制御を行う制御プログラムを記憶する。また、上記関係テーブルを記憶する。
ＣＰＵ１５は、ＲＯＭ１６に記憶された制御プログラムを読み出して、当該プログラムを実行して本情報処理装置１の各回路の動作を司る。
ＲＡＭ１７は、ＣＰＵ１５が制御プログラムを読み出したときの展開先としての領域、及び各種制御を実行するときの作業領域である。
【図面の簡単な説明】
【００２９】
【図１】本発明の暗号／復号化処理を表す概念図である。
【図２】本発明の乱数生成検定方法の基本概念を示す図である。
【図３】本発明の情報処理装置を実現する一実施例のブロック構成図である。
【符号の説明】
【００３０】
１      情報通信装置
１０    乱数発生回路[Ａ]
１１    乱数発生回路[Ｂ]
１２    暗号回路
１３    復号回路
１４    入出力回路
１５    ＣＰＵ
１６    ＲＯＭ
１７    ＲＡＭ
１８    暗号化データ格納部
１９    送受信回路
【図１】
2008205815.tif 000003
【図２】
2008205815.tif 000004
【図３】
2008205815.tif 000005