(57)【要約】【目的】擬似乱数またはＰＮ信号におけるコードの０と１の連なりの分布は確率分布である。ストリーム暗号化において、０の長い連なりのところでの文字抜けは避けられない。暗号コードをファイルに開いたとき、原文を解読する手がかりを残さないため、２重、３重に重ね合わせたストリーム暗号化を行う。【構成】ロジスティック写像に初期値を与え、擬似乱数またはＰＮ信号を生成し、原文ディジタルファイルとのＥＸＯＲ演算をとり、ストリーム暗号コードを生成する。文字抜けを防ぐため、複数回のストリーム暗号化を行う。【選択図】　　　　図１
2004126483.tif 000002
【特許請求の範囲】
【請求項１】
ロジスティック写像が生成する擬似乱数またはＰＮ信号を用いたストリーム暗号化システムにおいて、排他的論理和演算を重ね合わせることにより、文字等の抜けを防止することを特長とする、ストリーム暗号における情報の抜け防止方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
ディジタルコンピュータが産業のいろいろな分野で活用される時代となった。ディジタルコンピュータは、スタンドアロンとして単独でも使用されるが、多数のコンピュータが相互に接続されたネットワークとして活用されることも多い。ディジタルコンピュータのコアであるＣＰＵ（ｃｅｎｔｒａｌ　ｐｒｏｃｅｓｓｉｎｇ　ｕｎｉｔ）はオープンシステムとして作られている。ＯＳ（ｏｐｅｒａｔｉｎｇ　ｓｙｓｔｅｍ）もオープンシステムである。
【０００２】
オープンシステムのままでは、その中に記録されている情報は、誰でもアクセスして読むことができるだけでなく、書き換えることも自由である。保護されるべき、あるいは他人に秘密としたい情報の保護のために、いろいろな暗号が取り入れられている。しかし、完全な暗号は、本来オープンであり、ディジタルに限られているコンピュータにあっては難しい。少しでも、暗号の強度を増す努力が求められている。
【０００３】
【従来の技術】
ディジタルコンピュータは、ＯＳ上で浮動小数点６４ビット、有効数字５２ビットの計算能力をもってしても５２ビットコードのすべての組合せ、２５２〜１０１６通りでしかない。これ以上の組合せは、今日のディジタルコンピュータでは取り扱うことができない。ディジタルコンピュータが計算量が爆発的に増大する複雑な組合せ問題を苦手とする理由である。暗号は原理的には、この複雑な組合せ問題に属するため、強度の高い暗号システムを今日のディジタルコンピュータが苦手としても仕方がない。
【０００４】
ロジスティック写像（ｃ＝４．０）がリヤプノフ指数λ＝１ｎ２＝０．６９３・・・のカオスを生成することは知られている。カオスは周期の対極に位置する概念で、カオスの中には、いろいろな暗号が含まれていることが知られている。ストリーム暗号、ブロック暗号、圧縮暗号化などである。本案はストリーム暗号に関する。
【０００５】
ストリーム暗号は、１対１のコンパクトな暗号生成技術であり、情報量に増減がない。ロジスティック写像（ｃ＝４．０）を浮動小数点６４ビット、有効数字５２ビットでＯＳ上で逐次計算することによって生成するタイムシリーズＹｔ，１の擬似乱数（同相変換量子化観測で量子化分解能ｎ＝１）あるいは、逐次計算結果の有効数字５２ビットを並べたＰＮ信号でもよい。あるいは、５２ビット固定小数点乗算器ＦＰＧＡで１回の写像での出力１０４ビットから９６ビット（８または１６の倍数とする）を取り出して並べたＰＮ信号でもよい。初期値５２ビットが固有の擬似乱数Ｙｔ，１またはＰＮ信号を支配しているため、初期値を暗号鍵とし、擬似乱数またはＰＮ信号を暗号表とするストリーム暗号である。ただし、暗号表は逐次生成され、逐次演算に使用され、テーブルとして記録されることはない。
【０００６】
暗号化すべきディジタルファイルと暗号表との排他的論理和（ＥＸＯＲ）演算で暗号コードを生成する。暗号コードと暗号表との再度のＥＸＯＲ演算で原文がえられる。ストリーム暗号はディジタルコードのＥＸＯＲ演算の特長を活かした、１対１の逐次計算を活用した暗号である。
【０００７】
【発明が解決しようとする課題】
ディジタルファイルが英文の場合、８ビットアスキーコードの配列である。数字の場合も、８ビットアスキーコードの配列である。ディジタルファイルが日本語の場合、２Ｂ（バイト）で１文字をあらわしている。画像データの場合も、各セルの情報はＲ、Ｇ、Ｂそれぞれ８ビットの強度データの配列である。
【０００８】
暗号表となるロジスティック写像の擬似乱数Ｙｔ，１の連続する０または１ビットコードの分布は、図１に示すように、確率分布となっている。図１の擬似乱数の総データ量は２２１〜１００万点の場合である。すなわち、孤立した０または１は総データ量の１／８であり、連続する００、または１１は総データ量の１／１６である。連続する０または１の最も長いものは１９である確率が１本づつはあることを意味している。良い擬似乱数（周期に入っていない）であれば、擬似乱数は確率分布をしていなければならない。そうでなくなったときに、カオスは周期に入り、もはやカオスではなくなる。連続する０が１９ヶも連なっていると、文字をストリーム暗号化したとき、２・３文字は文字抜けすることが避けられない。
【０００９】
暗号表となるロジスティック写像のＰＮ信号の連続する０または１の分布が図２に示される。この例では、最大の連続する０の数、または１の数が３６にも達している。暗号コードを生成したあと、暗号コードを例えば英文とみなしてファイルを開くと、たいていは文字化けしていて意味不明であるが、数文字だけだが文字抜けすることが避けられない。暗号解読への手がかりを与えることになる。消す努力をしておかねばならない。
【００１０】
【課題を解決するための手段】
カオス・ストリーム暗号の暗号表である擬似乱数Ｙｔ，１やＰＮ信号の生成速度は、前者がＭＢ／ｓ、後者が１００ＭＢ／ｓと高速である。１冊の本をストリーム暗号化したとしても、数秒もかからない。従って、複数回のストリーム暗号化に何の問題もない。
【００１１】
カオスは複雑な組合せ問題の結果を見ているのであるから、予測不可能な性質をもつ。例えば、ある初期値から擬似乱数のタイムシリーズＹｔ，１を生成したとする。その長さが、図１の例のように２２１〜１００万ビットであったとしよう。００・・・０または１１・・・１が１９個連なるところがどこかに１箇所あるはずであるが、それがどこにあるかを予測することは難しい。それぞれの初期値について検索して調べると、決定される。どこにあらわれるかを、初期値を見ただけでは予測できない、いわゆるカオスの初期値敏感性である。
【００１２】
２つの初期値を与えて、２本の擬似乱数Ｙｔ，１を生成したとしよう。全体のデータ量を２２１〜１００万ビットとすると、連続する０が１９個並ぶ確率は１であるが、２本の１００万ビットを重ね合わせたとき、たまたま１９個の０の連なりが重なり合う確率はほとんどない。この性質を利用して、ストリーム暗号の文字抜けを防止することができる。
【００１３】
【作用】
ストリーム暗号において、１文字がそのまま抜ける可能性を検討してみよう。図１によれば、１００万ビットの擬似乱数Ｙｔ，１の中に０が８ヶ以上並んでいるところが約１０００ヶ所ある。そこでは１文字が抜け落ちる可能性がある。実際、テスト用に特定のアスキーコード、例えば小文字のａ＝０１１００００１を繰り返し入力したテスト用ファイルを用意し、ある初期値から生成した擬似乱数Ｙｔ，１との排他的論理和演算でストリーム暗号コードを生成し、英文ファイルとみなして聞いてみる。ａという文字が何文字抜け落ちているかを数える。１文字抜けたところが３６ヶ所あり、２文字抜けたところが１３ヶ所見つかった。
【００１４】
小文字ａを繰り返し入力したファイルは、完全に周期的なファイルである。暗号解読者が試みる手法である。コンピュータが管理保管するディジタルファイルには、このような周期性はない。小文字ａに注目して、暗号コードを英文ファイルとして開いたとき、出力されるａには２種類存在する。１つは、暗号表が００・・・０となったところで文字抜けしをしたａであり、他の１つはディジタルコードを擬似乱数のコードとをＥＸＯＲ演算した結果の化けたａである。暗号コードだけを見たのでは、この２つを区別することはできない。しかし、原文が英文ファイルであると推定するには十分な情報となる。
【００１５】
日本語は１６ビットコードである。日本語を図２のＰＮ信号でストリーム暗号化した場合、例えばひらがな”あ”を繰り返し入力した原文ファイルをストリーム暗号化し、その暗号コードを日本語ファイルと見なして開いてみると、ＰＮ信号が００・・・０と連なったところでは文字抜けを起こしている。ＰＮ信号が１１・・・１と連なったところでは、文字の反転コードが出力されている。８ビットコードの英文に対し、１６ビットコードの日本語の場合、ストリーム暗号コードを日本語とみなして開いたとき、ほとんどが文字化けしていて、内容の判別は不可能であるが、日本語で頻繁にあらわれるひらがな”は””の””と”・・・などは、文字抜けではないかと思われる情報が発見される。
【００１６】
【実施例】
英文、日本語あるいは数字だけのファイルを、１つの初期値から生成した擬似乱数でストリーム暗号化し、暗号コード１を生成する。暗号コード１を英文、日本語あるいは数字とみなしてそれぞれのファイルとして開くと、文字抜けを生じている。暗号コード１を他の初期値から生成した擬似乱数で再度ストリーム暗号化し、暗号コード２を生成する。暗号コード２を、同じように、英語、日本語あるいは数字のファイルとみなして開いてみると、文字化けした中にもとのコードの抜けたものを発見することがほとんど不可能となっている。
【００１７】
２回よりも、３回、４回と回数を増すほど効果が大きいと期待されるが、経験上２回のストリーム暗号化で十分である。
【００１８】
２回または複数回のストリーム暗号化を行うと、処理時間は２倍、３倍と増加する。しかし、擬似乱数の生成もＭＢ／ｓと高速であり、ＰＮ信号の生成も１００ＭＢ／ｓと高速であり、ストリーム暗号化のＥＸＯＲ演算もディジタルコンピュータにとっては基本論理演算であるから、十分に高速である。処理速度の遅延を心配する必要がない。また、擬似乱数の生成あるいはＰＮ信号の生成に同期して並列処理を実行することも容易である。
【００１９】
異なる初期値の擬似乱数またはＰＮ信号の生成において、初期値をシフトして乱数またはＰＮ信号を生成し、同期をとって復元するという手法は、産業技術としては大変便利な手法である。しかし、本案の効果をたしかなものとするためには、十分距離をとったシフトが必要である。
【００２０】
十分に確率分布が保証された擬似乱数またはＰＮ信号を用いたストリーム暗号は、解読不可能な暗号だと信じられている。しかし、本案では、長い００・・・０や１１・・・１、あるいは簡単なコードの配列例えば０１０１・・・０１や００１１００１１・・・００１１のような配列は、原文が何であるかを推定する情報すなわち文字抜けを生じていることを示した。このような暗号解読への手がかりは丹念に消しておく必要がある。
【００２１】
ロジスティック写像が生成する擬似乱数またはＰＮ信号は、初期値に固有であり、０または１の連なりの分布は確率分布である。初期値の異なる２本の擬似乱数の長い００・・・０や長い１１・・・１が相互に重なる確率は無視できるほど小さい。１回のストリーム暗号化では文字抜けは避けられないが、２回以上のストリーム暗号化では、文字抜けをなくすことができる。
【図面の簡単な説明】
【図１】擬似乱数の度数分布である。
【図２】ＰＮ信号の度数分布である。
【図１】
2004126483.tif 000003
【図２】
2004126483.tif 000004