(57)【要約】【目的】日本語ファイルを完全可逆的に約５０％に圧縮暗号化する。暗号コードはＧ１エントロピーがＧ１＝０．９９・・・と乱数化されている。【構成】日本語ファイルを１文字（１６ビット）単位で度数分布を調べ、頻度の高い順に１２ビットのゼロの多いコードを割り当て、Ｇ１エントロピーを下げる前処理を行い、カオスの圧縮展開テーブルを用いて圧縮暗号コードを生成する。展開は逆過程である。【選択図】　　　　図１
2004129177.tif 000002
【特許請求の範囲】
【請求項１】
カタカナ５０音、ひらがな５０音、第一水準漢字３０００語、記号を含む日本語テキストを、２バイト（１６ビット）をブロックとしてＧ１エントロピーを減少させる前処理を行い、カオスの展開テーブルを用いてＧ１エントロピーを指標として圧縮をすることを特長とする日本語テキストの圧縮方法。
【請求項２】
カタカナ５０音、ひらがな５０音、第一水準漢字３０００語、記号を含む日本語テキストを、２バイト（１６ビット）をブロックとしてＧ１エントロピーを減少させる前処理を行い、カオスの展開テーブルを用いてＧ１エントロピーを指標として圧縮をするにあたって、前処理テーブルと圧縮展開テーブルに順列を用いてコードの入れ替えを行う暗号鍵をセットしたことを特長とする圧縮暗号化の方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
ディジタルコンピュータの発展に伴って、日本社会の情報の公平で公正な管理が求められるようになった。電子政府構想や地方自治体の住民サービスにおいて高度に発展した情報管理システムの構築が求められている。日本語テキストの圧縮暗号化はそのための手段てあり、道具である。情報を保存・管理・転送するためには、圧縮すると同時に暗号鍵がセットされ、暗号鍵で情報を一元管理する。
【０００２】
【従来の技術】
ロジスティック写像が対称性のいいカオスを生成することは知られている。同相変換量子化したタイムシリーズの中には、ディジタルコードの圧縮と膨張が隠されている。圧縮と膨張は公平に存在している。産業技術として活用するときには、圧縮を協調し、膨張を抑制して取り出してよい。圧縮暗号化すべきディジタルファイル（本案ではアスキーコードでキーボードから入力した日本語テキスト）から切り出す入力ブロックサイズを一定にしたとき、制限された範囲の入出力伝達特性となる。入力コードすべての組合せに関してあらかじめ計算しておけば、カオスの圧縮展開テーブルとなる。
【０００３】
カオスの圧縮展開テーブルの作り方は一通りではない。入力コードのブロックサイズを可変にするテーブルも作成できる。入力コードと出力コード（圧縮コード）の対応関係も一意ではない。同じ長さのコードは、相互に重なり合わない限り、入れ替えることは自由である。この性質を利用して、順列で暗号鍵をセットすることができる。
【０００４】
【発明が解決しようとする課題】
本案で取り扱う日本語テキストは，カタカナ５０音、ひらがな５０音、第一水準漢字３０００語及び句読点などの記号である。種類の数は４０９６（＝２１２）以下とする。日本語テキストに現れるすべてのコードの種類が１２ビットコードで表現できる。本案はＧ１エントロピーを指標とした圧縮を行う。そのためには、いったんコードの置き換えをしてＧ１エントロピーを下げる必要がある。この処理を前処理という。日本語テキストに関しては、２文字（１６ビットコード）を１２ビットコードに置き換える、前処理テーブルが用意される。
【０００５】
Ｇ１エントロピーの定義はＧ１＝−ｐ（０）ｌｏｇ２ｐ（０）−ｐ（１）ｌｏｇ２である。ｐ（０）は、圧縮すべきディジタルファイルの総ビット数に対する０ビットの割合である。Ｐ（１）は総ビット数に対する１ビットの割合である。擬似乱数のＧ１エントロピーはＧ１＝０．９９９９・・・・である。圧縮暗号化した圧縮コードのＧ１エントロピーはＧ１＝０．９９・・・・にまで増大している。前処理テーブルを用いた前処理は，このＧ１エントロピーをＧ１＝０．００・・・・と、限りなく０に近づけることである。
【０００６】
【課題を解決するための手段】
前処理テーブルの作成は、圧縮すべきディジタルファイルのコードの分布を調べることから始まる。日本語テキストに関し、４ビットコードや８ビットコードの分布を調べると、それらのすべてのコードに度数分布を持っている。このようなサイズでのコードの置き換えでは、Ｇ１エントロピーを有効に下げることはできない。なお、英文の場合には、８ビットコードを６ビットコードに置き換える前処理テーブルが有効である。それは、アルファベット大文字、小文字、がそれぞれ２６ヶしかないからである。
【０００７】
日本語テキストの分布は、２文字単位（１６ビットコード）で分布を見たときに特徴的である。カタカナ５０音、ひらがな５０音、数字、第一水準漢字３０００語、記号など、１６ビットコード６５５３６種類のうち、４０９６種類（１２ビット）で表現できている。１６ビットコードの頻度の高いコードを、０（ゼロ）の多い１２ビットコードで置き換える前処理テーブルがＧ１エントロピーを下げるのに有効である。
【０００８】
Ｇ１エントロピーを下げるための前処理テーブルは、カオスの圧縮展開テーブルと同様、統一したテーブルである。日本語テキストに共通に作成される。前処理テーブルもカオスの圧縮展開テーブルも、プログラムに共通に管理される。
【０００９】
日本語テキストにおいて、例えばカタカナを全く使わないとか、ある専門用語が繰り返し多用されることがあらかじめ知られているときには、あるコードの出現頻度が高いときで、前処理テーブルをそのように修正するとよい。また、カタカナが全く使われることがないときには、前処理テーブルから対応するコードを取り除いて良い。
【００１０】
【作用】
前処理テーブルとＧ１エントロピーの関係を調べてみる。主としてＧ１エントロピーを決めているコードは、頻度の高い約１０％にすぎない。いろいろな日本語テキストについて統計を取って調べてみると、１６ビットコード（組合せの２文字）で５００〜６００種類に過ぎない。その１０％である５０〜６０ヶのコードがＧ１エントロピーの主要な部分を決めている。Ｇ１エントロピーに影響を与えないコードの入れ替えが暗号鍵である。暗号鍵は順列で与えられる。
【００１１】
例えば、頻度分布が５０位から６５位までの１６種類にコードの入れ替えを定義するとしよう。４ビットコード１６種類、６４ビットが暗号鍵となる。その順列の組合せの種類は１６！＝２．０９×１０１３通りもある。暗号鍵を使い捨てにできる十分な数である。
【００１２】
カオスの圧縮展開テーブルを、入力コードの幅を６ビット固定として作成したとしよう。６４種類がすべての入力コードに関し、あらかじめロジスティック写像とその同相変換量子化を計算し、圧縮コードと展開情報が可変長となるように作成される。入力コードと圧縮コードの重なり合わない入れ替えは自由である。この性質を利用して暗号鍵が定義される。
【００１３】
カオス圧縮テーブルの使い方として、圧縮コードに１の数をできるだけ増やさない努力が求められる。１の数が同じであるというコード間での入れ替えが暗号鍵の定義の仕方としては望ましい。
【００１４】
暗号鍵は、前処理テーブルにセットしても、カオスの圧縮展開テーブルの何れにセットしてもよい。両者にセットしてもよい。コードの重なり合わない入れ替えは固有の圧縮コードを生成する。暗号鍵が圧縮コードを一意に支配する関係が保証されているから、圧縮コードを暗号コードと見なして良い。
【００１５】
【実施例】
実施例をフローチャート図１を用いて説明する。本案の圧縮暗号化は４０の過程からなる。１は、暗号化すべき日本語テキストのディジタルファイルである。２はディジタルファイルを０又は１のビットを相互に独立だとみなした系であるとし、そのＧ１エントロピーを下げる前処理テーブルである。前処理テーブルは日本語２文字を１２ビットコードに置き換える。従って、暗号化すべきディジタルファイルに対し前処理後のディジタルファイルは１２／１６、すなわち７５％に圧縮されている。
【００１６】
前処理後のディジタルファイルのＧ１エントロピーは、Ｇ１＝０．６〜０．８程度の大きさである。日本語テキストの総ビット数に対する圧縮暗号化コードの割合を圧縮率だとすると、日本語ディジタルファイルの圧縮率は４５％〜６０％となる。平均的な文書について約５０％の圧縮ができる。
【００１７】
図１の圧縮展開テーブル３を繰り返す回数は１回あるいは２回である。ブロックサイズを４ビットコードと小さくしたときに２回有効で、６ビットブロックの時には１回有効である。回数と圧縮は必ずしも比例してはいない。本来、カオスを用いた圧縮展開は、入力コードも出力コードも可変長に設計される方が合理的であるが、テーブル化して実行するときには、どちらかを固定長にせざるを得ない。そのために、Ｇ１エントロピーに一致した圧縮率は得られない。しかし、Ｇ１エントロピーが圧縮可能な限界を与える、いい指標である。
【００１８】
圧縮展開テーブルとして、連続する０（ゼロ）を取り除く割合を落とし、その分１（イチ）が増える割合を抑えるテーブルを用意すると、Ｇ１エントロピーの１回１回当たりの増加を抑えることもできる。しかし、圧縮暗号コードの到達するゴールが、０と１が半分半分に混ざり合う、すなわち擬似乱数Ｇ１＝０．９９９９・・・・・である事に変わりない。なお、原文へ復帰する展開は図１の逆過程である。展開は完全に可逆的であって、１ビットも情報を失うことはない。
【００１９】
【発明の効果】
本案、圧縮暗号化の特長をまとめると以下のようになる。
（１）暗号鍵を前処理テーブルと圧縮展開テーブルの何れに置いても順列で定義できる
（２）日本語テキストに関し、１６ビットコードを１２ビットコードに置き換えＧ１エントロピーを０．６〜０．８に下げる前処理テーブルを作成する。
（３）前処理後のファイルに関し、圧縮展開テーブルので繰り返した圧縮ができる。
（４）定義された順列で与えられる暗号鍵が、圧縮暗号化コードを一意に支配している。圧縮暗号化コードは０と１の割合がほとんど等しくなるまでＧ１エントロピーを増大させている。圧縮可能な限界に到達している。
（５）Ｇ１エントロピーは圧縮可能性の目安となっている。
（６）圧縮率に目標値を与えることもできる。
【００２０】
キーボードのコード配置が英文アルファベットに優先して割り当てられている。８ビットアスキーコードも英文に対して優先して割り当てられている。日本語は、ひらがな、カタカナの他に漢字に対応しなければならない。そのために、８ビットコード２つを組み合わせて日本語１文字を表わさざるを得ない。このことはいっけん日本語に不利なよう見える。しかし、前処理で１６ビットコードを１２ビットコードに置き換えてＧ１エントロピーを下げると、英文で可能な圧縮率（５０〜６５％）を日本語テキストの圧縮率（４５〜６０％）が上回る。
【図面の簡単な説明】
【図１】日本語テキストの圧縮過程のブロック図である。
【符号の説明】
１　日本語テキスト　ディジタルファイル
２　分布にもとづくコード入れ換え（前処理）
３　圧縮展開テーブル
４　圧縮暗号コード
【図１】
2004129177.tif 000003