(57)【特許請求の範囲】
【請求項１】
通信システムであって、
ａ）発信スペースと、
ｂ）通信チャネルと、
ｃ）前記通信チャネルを通して、前記発信スペースと関連する着信スペースとを備え、
ｄ）前記発信スペースが、
１）入力記号Ｉtに基づいて出力記号Ｏtを発生するための暗号化エンジンと、
２）暗号キー、暗号テキスト／キーの関係、および前記入力記号を受信するための手段とを含み、
ｅ）前記着信スペースが、
１）前記通信チャネルを通して、前記発信スペースから受信した前記出力記号に基づいて、暗号化した記号Ｉ’tを発生するための解読エンジンと、
２）解読キーと解読テキスト／キーの関係とを受信するための手段とを含み、
ｆ）αN，αN-1，．．．，α1，α0が、前記暗号キーにより定義されるＮ＋１個の追加変形であり、πN，πN-1，．．．，π 2，π１が、前記暗号キーにより定義されるＮ個の順列であり、Ｗが、前記暗号キーにより定義される各順列がとりうる数である場合に、前記暗号テキスト／キーの関係が、Ｏt＝αN（ｔ）＋πN［αN-1（ｔ）＋πN-1［αN-2（ｔ）＋．．．＋π2［α1（ｔ）＋π1［Ｉt＋α0（ｔ）］］．．．］］，ｍｏｄ Ｗになるように前記暗号化エンジンを制御し、
ｇ）πi-1が、順列πiの逆処理として前記解読キーにより定義され、α’N，α’N-1，．．．，α’1、α’0が、前記解読キーにより定義されるＮ＋１個の追加変形であり、Ｗが前記解読キーにより定義される各逆順列のとりうる数である場合に、前記解読テキスト／キーの関係が、Ｉ’t＝π1-1［π2-1［π3-1．．．［πN-1-1［πN-1［Ｏt−α’N（ｔ）］−α’N-1（ｔ）］−．．．−α’3（ｔ）］−α’2（ｔ）］−α’1（ｔ）］−α’0（ｔ），ｍｏｄ Ｗになるように前記解読エンジンを制御する通信システム。
【請求項２】
請求項１記載の通信システムにおいて、前記暗号化エンジンが、さらに、順列がとりうるＷ個の各組を記憶するためのＷ個の参照用テーブルを含む通信システム。
【請求項３】
請求項１記載の通信システムにおいて、前記暗号化エンジンが、さらに、順列の可能なＷ個の組の中のＭ個の使用できる組を記憶するためのＭ＜Ｗの関係を満たすＭ個の参照用テーブルを含む通信システム。
【請求項４】
請求項１記載の通信システムにおいて、前記暗号化エンジンが、さらに、順列の可能なＷ個の組の中のＭ個の使用できる組から予め選択した順列のＮ個の組を記憶するためのＮ＜Ｍ＜Ｗの関係を満たすＮ個の参照用テーブルを含む通信システム。
【請求項５】
請求項１記載の通信システムにおいて、α（ｔ）が階段関数である通信システム。
【請求項６】
請求項５記載の通信システムにおいて、Ｒが素数である場合に、αx（ｔ），Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝が、ｔがＲの整数倍に等しい各数値のΠxに対するシーケンスを増加させる通信システム。
【請求項７】
請求項５記載の通信システムにおいて、Ｒが素数である場合に、αx（ｔ）、Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝が、ｔがＲの整数倍に等しい各数値に対するΠxのシーケンスを減少させる通信システム。
【請求項８】
請求項５記載の通信システムにおいて、Ｒが素数である場合に、αx（ｔ）、Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝が、ｔがＲの整数倍に等しい場合を除いて、ｔの各数値に対するΠxのシーケンスを増加させる通信システム。
【請求項９】
請求項５記載の通信システムにおいて、Ｒが素数である場合に、αx（ｔ）、Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝が、ｔがＲの整数倍に等しい場合を除いて、ｔの各数値に対するΠxのシーケンスを減少させる通信システム。
【請求項１０】
請求項１記載の通信システムにおいて、Ｉ’tがＩtに対応する通信システム。
【請求項１１】
通信システムであって、
ａ）発信スペースと、
ｂ）通信チャネルと、
ｃ）前記通信チャネルを通して、前記発信スペースと関連する着信スペースとを備え、
ｄ）前記発信スペースが、
１）入力記号Ｉt、暗号キー、および暗号テキスト／キーの関係を受信するための手段と、
２）αN，αN-1，．．．，α1，α0が、前記暗号キーにより定義されるＮ＋１個の追加変形であり、π N，π N-1，．．．，π 2，π１が、前記暗号キーにより定義されるＮ個の順列であり、Ｗが、前記暗号キーにより定義される各順列のとりうる数である場合に、Ｏt＝αN（ｔ）＋π N［αN-1（ｔ）＋π N-1［αN-2（ｔ）＋．．．＋π 2［α1（ｔ）＋π 1［Ｉt＋α0（ｔ）］］．．．］］，ｍｏｄ Ｗになるように、入力記号に基づいて出力記号Ｏtを発生するために、前記暗号テキスト／キーの関係を制御することができる暗号化エンジンとを含み、
ｅ）前記着信スペースが、
１）解読キーと解読テキスト／キーの関係とを受信する手段と、
２）π i-1が、順列π iの逆処理として前記解読キーにより定義され、α’N，α’N-1，．．．，α’1，α’0が、前記解読キーにより定義されるＮ＋１個の追加変形であり、Ｗは前記解読キーにより定義される各逆順列のとりうる数である場合に、Ｉ’t＝π 1-1［π 2-1［π 3-1．．．［π N-1-1［π N-1［Ｏt−α’N（ｔ）］−α’N-1（ｔ）］−．．．−α’3（ｔ）］−α’2（ｔ）］−α’1（ｔ）］−α’0（ｔ）、ｍｏｄ Ｗになるように、前記通信チャネルを通して、前記発信スペースから受信した前記出力記号に基づいて解読記号Ｉ’tを発生するように制御することができる解読エンジンとを含む通信システム。
【請求項１２】
請求項１１記載の通信システムにおいて、前記暗号化エンジンが、さらに、順列の可能なＷ個の各組を記憶するためのＷ個の参照用テーブルを含む通信システム。
【請求項１３】
請求項１１記載の通信システムにおいて、前記暗号化エンジンが、さらに、順列の可能なＷ個の組の中のＭ個の使用できる組を記憶するためのＭ＜Ｗの関係を満たすＭ個の参照用テーブルを含む通信システム。
【請求項１４】
請求項１１記載の通信システムにおいて、前記暗号化エンジンが、さらに、順列の可能なＷ個の組の中のＭ個の使用できる組から予め選択した順列のＮ個の組を記憶するためのＮ＜Ｍ＜Ｗの関係を満たすＮ個の参照用テーブルを含む通信システム。
【請求項１５】
請求項１１記載の通信システムにおいて、α（ｔ）が階段関数である通信システム。
【請求項１６】
請求項１５記載の通信システムにおいて、Ｒが素数である場合に、αx（ｔ），Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝が、ｔがＲの整数倍に等しい各数値に対するΠxのシーケンスを増加させる通信システム。
【請求項１７】
請求項１５記載の通信システムにおいて、Ｒが素数である場合に、αx（ｔ），Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝が、ｔがＲの整数倍に等しい各数値に対するΠxのシーケンスを減少させる通信システム。
【請求項１８】
請求項１５記載の通信システムにおいて、Ｒが素数である場合に、αx（ｔ），Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝が、ｔがＲの整数倍に等しい場合を除いて、ｔの各数値に対するΠxのシーケンスを増加させる通信システム。
【請求項１９】
請求項１５記載の通信システムにおいて、Ｒが素数である場合に、αx（ｔ），Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝が、ｔがＲの整数倍に等しい場合を除いて、ｔの各数値に対するΠxのシーケンスを減少させる通信システム。
【請求項２０】
請求項１１記載の通信システムにおいて、Ｉ’tがＩtに対応する通信システム。
【請求項２１】
通信システムであって、
ａ）第一のコンピュータと、
ｂ）通信チャネルと、
ｃ）前記通信チャネルを通して、前記第一コンピュータに接続している第二のコンピュータとを備え、
ｄ）前記第一のコンピュータが、
１）入力記号Ｉtを受信するための記号入力ポートと、
２）暗号キーを受信するための暗号キー入力ポートと、
３）暗号テキスト／キーの関係を記憶するための第一のメモリと、
４）αN，αN-1，．．．，α1，α0が、前記暗号キーにより定義されるＮ＋１個の追加変形であり、π N，π N-1，．．．，π 2，π１が、前記暗号キーにより定義されるＮ個の順列であり、Ｗが、前記暗号キーにより定義される各順列のとりうる数である場合に、Ｏt＝αN（ｔ）＋πN［αN-1（ｔ）＋πN-1［αN-2（ｔ）＋．．．＋π2［α1（ｔ）＋π1［Ｉt＋α0（ｔ）］］．．．］］，ｍｏｄ Ｗになるように、前記暗号テキスト／キーの関係により制御される、前記入力記号に基づいて出力記号Ｏtを発生するための第一のマイクロプロセッサとを含み、
ｅ）前記第二のコンピュータが、
１）解読キーを受信するための解読キー入力ポートと、
２）解読テキスト／キーの関係を記憶するための第二のメモリと、
３）πi-1が、順列πiの逆順列として前記解読キーにより定義され、α’N，α’N-1，．．．，α’1，α’0が、前記解読キーにより定義されるＮ＋１個の追加変形であり、Ｗが、前記解読キーにより定義される各逆順列のとりうる数である場合に、Ｉ’t＝π1-1［π2-1［π3-1．．．［πN-1-1［πN-1［Ｏt−α’N（ｔ）］−α’N-1（ｔ）］−．．．−α’3（ｔ）］−α’2（ｔ）］−α’1（ｔ）］−α’0（ｔ），ｍｏｄ Ｗになるように、前記解読テキスト／キーの関係により制御される、前記通信チャネルを通して、前記発信スペースから受信した前記出力記号に基づいて暗号記号Ｉ’tを発生するための第二のマイクロプロセッサとを含む通信システム。
【請求項２２】
請求項２１記載の通信システムにおいて、前記第一のコンピュータが、さらに、順列の可能なＷ個の各組を記憶するためのＷ個の参照用テーブルを含む通信システム。
【請求項２３】
請求項２１記載の通信システムにおいて、前記第一のコンピュータが、さらに、順列の可能なＷ個の組の中のＭ個の使用できる組を記憶するためのＭ＜Ｗの関係を満たすＭ個の参照用テーブルを含む通信システム。
【請求項２４】
請求項２１記載の通信システムにおいて、前記第一のコンピュータが、さらに、順列の可能なＷ個の組の中のＭ個の使用できる組から予め選択した順列のＮ個の組を記憶するためのＮ＜Ｍ＜Ｗの関係を満たすＮ個の参照用テーブルを含む通信システム。
【請求項２５】
請求項２１記載の通信システムにおいて、α（ｔ）が階段関数である通信システム。
【請求項２６】
請求項２５記載の通信システムにおいて、Ｒが素数である場合に、αx（ｔ），Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝が、ｔがＲの整数倍に等しい各数値に対するΠxのシーケンスを増加させる通信システム。
【請求項２７】
請求項２５記載の通信システムにおいて、Ｒが素数である場合に、αx（ｔ），Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝が、ｔがＲの整数倍に等しい各数値に対するΠxのシーケンスを減少させる通信システム。
【請求項２８】
請求項２５記載の通信システムにおいて、Ｒが素数である場合に、αx（ｔ），Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝が、ｔがＲの整数倍に等しい場合を除いて、ｔの各数値のに対するΠxのシーケンスを増加させる通信システム。
【請求項２９】
請求項２５記載の通信システムにおいて、Ｒが素数である場合に、αx（ｔ），Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝が、ｔがＲの整数倍に等しい場合を除いて、ｔの各数値に対するΠxのシーケンスを減少させる通信システム。
【請求項３０】
請求項２１記載の通信システムにおいて、Ｉ’tがＩtに対応する通信システム。
【請求項３１】
発信スペースと着信スペースとの間の通信方法であって、
ａ）前記発信スペースにおいて、入力記号、暗号キー、および暗号テキスト／キーの関係を受信するための手段を用いて入力記号Ｉtを受信するステップと、
ｂ）αN，αN-1，．．．，α1，α0が、Ｎ＋１個の所定の追加変形であり、π N，π N-1，．．．，π 2，π１が、Ｎ個の所定の順列であり、Ｗが、各順列のとりうる数である場合に、Ｏt＝αN（ｔ）＋π N［αN-1（ｔ）＋π N-1［αN-2（ｔ）＋．．．＋π 2［α1（ｔ）＋π 1［Ｉt＋α0（ｔ）］］．．．］］，ｍｏｄ Ｗになるように、暗号化エンジンを用いて前記入力信号に基づいて出力記号Ｏtを発生するステップと、
ｃ）前記着信スペースのところで解読キーと解読テキスト／キーの関係を受信する手段を用いて前記出力記号を受信するステップと、
ｄ）π i-1が、前記所定の順列πiの逆処理であり、α’N，α’N-1，．．．，α’1，α’0が、Ｎ＋１個の所定の追加変形であり、Ｗが、各逆順列のとりうる数である場合に、Ｉ’t＝π 1-1［π 2-1［π 3-1．．．［π N-1-1［π N-1［Ｏt−α’N（ｔ）］−α’N-1（ｔ）］−．．．−α’3（ｔ）］−α’2（ｔ）］−α’1（ｔ）］−α’0（ｔ），ｍｏｄ Ｗになるように、解読エンジンを用いて前記受信出力記号に基づいて解読記号Ｉ’tを発生するステップとを含む方法。
【請求項３２】
請求項３１記載の方法において、前記出力記号の発生前に、暗号化エンジンを用いて、Ｗ個の参照用テーブルから、順列の可能なＷ個の組を検索するステップを含む方法。
【請求項３３】
請求項３１記載の方法において、さらに、前記出力記号の発生前に、暗号化エンジンを用いて、順列の可能なＷ個の組の中のＭ個の使用可能な組をＭ＜Ｗの関係を満たすＭ個の参照用テーブルから検索するステップを含む方法。
【請求項３４】
請求項３１記載の方法において、さらに、前記出力記号の発生前に、暗号化エンジンを用いて、順列の可能なＷ個の組の中のＭ個の使用可能な組から予め選択した順列のＮ個の組をＮ＜Ｍ＜Ｗの関係を満たすＮ個の参照用テーブルから検索するステップを含む方法。
【請求項３５】
請求項３１記載の方法において、α（ｔ）が階段関数である通信システム。
【請求項３６】
請求項３５記載の方法において、さらに、Ｒが素数である場合に、αx（ｔ），Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝が、ｔがＲの整数倍に等しい各数値に対するΠxのシーケンスを増加させる方法。
【請求項３７】
請求項３５記載の方法において、Ｒが素数である場合に、αx（ｔ），Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝が、ｔがＲの整数倍に等しい各数値に対するΠxのシーケンスを減少させる方法。
【請求項３８】
請求項３５記載の方法において、Ｒが素数である場合に、αx（ｔ），Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝が、ｔがＲの整数倍に等しい場合を除いて、ｔの各数値に対するΠxのシーケンスを増加させる方法。
【請求項３９】
請求項３５記載の方法において、Ｒが素数である場合に、αx（ｔ），Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝が、ｔがＲの整数倍に等しい場合を除いて、ｔの各数値に対するΠxのシーケンスを減少させる方法。
【請求項４０】
請求項３１記載の方法において、Ｉ’tがＩtに対応する通信システム。
【請求項４１】
記憶媒体であって、
インターフェース手段と、
Ｉtが、入力記号であり、αN，αN-1，．．．，α1，α0が、キーにより定義されるＮ＋１個の追加変形であり、π N，π N-1，．．．，π 2，π１が、前記キーにより定義されるＮ個の順列であり、Ｗが、前記キーにより定義される各順列のとりうる数である場合に、Ｏt＝αN（ｔ）＋πN［αN-1（ｔ）＋πN-1［αN-2（ｔ）＋．．．＋π2［α1（ｔ）＋π1［Ｉt＋α0（ｔ）］］．．．］］，ｍｏｄ Ｗとなるように出力記号Ｏtを発生するための、前記インターフェースを通して、マイクロプロセッサを制御するための手段とを含む記憶媒体。
【請求項４２】
請求項４１記載の記憶媒体において、α（ｔ）が階段関数である記憶媒体。
【請求項４３】
請求項４２記載の記憶媒体において、Ｒが素数である場合に、αx（ｔ），Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝が、ｔがＲの整数倍に等しい各数値に対するΠxのシーケンスを増加させる記憶媒体。
【請求項４４】
請求項４２記載の通信システムにおいて、Ｒが素数である場合に、αx（ｔ），Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝が、ｔがＲの整数倍に等しい各数値に対するΠxのシーケンスを減少させる通信システム。
【請求項４５】
請求項４２記載の通信システムにおいて、Ｒが素数である場合に、αx（ｔ），Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝が、ｔがＲの整数倍に等しい場合を除いて、ｔの各数値に対するΠxのシーケンスを増加させる通信システム。
【請求項４６】
請求項４２記載の通信システムにおいて、Ｒが素数である場合に、αx（ｔ），Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝が、ｔがＲの整数倍に等しい場合を除いて、ｔの各数値に対するΠxのシーケンスを減少させる通信システム。
【請求項４７】
記憶媒体であって、
インターフェース手段と、
Ｏtが受信した記号であり、αN，αN-1，．．．，α1，α0が、あるキーにより定義されるＮ＋１個の追加変形であり、π1-1、π2-1、π3-1，．．．，πN-1-1、πN-1が、前記キーにより定義されるＮ個の逆順列であり、Ｗが、前記キーにより定義される各逆順列のとりうる数である場合に、Ｉ’t＝π 1-1［π 2-1［π 3-1．．．［π N-1-1［π N-1［Ｏt−αN（ｔ）］−αN-1（ｔ）］−．．．−α3（ｔ）−α2（ｔ）］−α1（ｔ）］−α0（ｔ），ｍｏｄ Ｗになるように発生した記号Ｉ’tを形成するように、前記インターフェースを通して、マイクロプロセッサを制御するための手段とを備える記憶媒体。
【請求項４８】
請求項４７記載の記憶媒体において、α（ｔ）が階段関数である記憶媒体。
【請求項４９】
請求項４７記載の記憶媒体において、Ｒが素数である場合に、αx（ｔ），Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝が、ｔがＲの整数倍に等しい各数値に対するΠxのシーケンスを増加させる記憶媒体。
【請求項５０】
請求項４８記載の通信システムにおいて、Ｒが素数である場合に、αx（ｔ），Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝が、ｔがＲの整数倍に等しい各数値に対するΠxのシーケンスを減少させる通信システム。
【請求項５１】
請求項４８記載の通信システムにおいて、Ｒが素数である場合に、αx（ｔ），Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝が、ｔがＲの整数倍に等しい場合を除いて、ｔの各数値に対するΠxのシーケンスを増加させる通信システム。
【請求項５２】
請求項４８記載の通信システムにおいて、Ｒが素数である場合に、αx（ｔ），Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝が、ｔがＲの整数倍に等しい場合を除いて、ｔの各数値に対するΠxのシーケンスを減少させる通信システム。
【発明の詳細な説明】
【０００１】
（発明の属する技術分野）
本発明は、暗号システムに関する。特に、平文テキスト・メッセージを暗号化し、暗号文テキスト通信を解読するためのシステムに関する。
【０００２】
（発明の背景）
現代世界においては、通信は多くの異なる通信媒体により種々の異なる方法で、当事者間で行われる。電子通信が、情報を伝送するための効率的な方法として、次第に広く使用されるようになっているが、媒体としての即時性を持っているために、特に、電子メールが盛んに使用されている。
都合の悪いことに、電子通信は、特に、プライバシーの面で種々の欠点を持っているものの、同時に種々の利点を持っている。電子通信は、盗聴する意図がない人でも盗聴することができる。セルラー電話による音声通信のような無線通信、および電子メールは、特に、盗聴に弱い。
【０００３】
電子通信のプライバシーの問題が指摘されていて、この問題に対する解決策が提案されてきた。一つの解決策は、電子通信のプライバシーを保護するために、暗号を使用する方法である。暗号は、送信または記憶したメッセージの暗号化またはコード化と、その後で行われる受信または検索したメッセージの解読または復号を含む。メッセージは、通常、デジタル信号、またはデジタル化したアナログ信号の形をしている。このような通信であれば、送信中に傍受されたり、正式に許可を受けていないものにより、記憶装置から取り出された場合でも、暗号化されたメッセージを解読する手段を持たない盗聴者にとって、そのメッセージは価値のないものに過ぎない。
【０００４】
暗号を使用するシステムの場合には、通信を暗号化する側は、コード化デバイスまたは暗号化エンジンを備える。コード化デバイスは、平文の（暗号化されていない）テキスト・メッセージ、および暗号キーを受け入れ、その平文通信とそのキーに対して予め定められている暗号関係に従って、その平文テキスト・メッセージを暗号化する。すなわち、上記メッセージは、暗号文の（暗号化された）テキスト・メッセージを作成するために、テキスト／キーの関係が定める所定の方法で、キーにより操作される。
同様に、通信を解読する側は、復号デバイスまたは解読デバイスを備える。復号デバイスは、暗号文テキスト・メッセージおよび暗号キーを受け取り、暗号文テキスト・メッセージおよびキーに対して、予め定められている解読関係に従って、キーにより暗号文テキストを解読する。すなわち、上記メッセージは、元の平文テキスト・メッセージに対応する新しい平文テキスト・メッセージを作成するために、テキスト／キーの関係が定める所定の方法で、キーにより操作される。
【０００５】
上記キーおよび上記関連が、通信プロセス中に適用される方法、およびキーが管理される方法により、暗号化スキームが決定される。従来から使用されている多くの暗号スキームが、現在でも使用されている。例えば、これら暗号化スキームの中で、最も広く使用されているのは、公開キー暗号スキームであろう。このタイプのスキームの場合、使用されるキーは、実際には、任意の個人、または団体の大きなグループが入手することができる公開キー構成要素と、特定の通信に特有の個人キー構成要素との組合せである。
【０００６】
特定の暗号化スキームが、用途に適しているかどうかを判断する際の重要な考慮事項は、暗号の解読の難易度である。すなわち、正式に許可を受けていない人が、暗号テキスト・メッセージを解読する際の難易度である。正式に許可を受けていない人は、多数の方法で、あるシステムの暗号を解読しようと試みる。暗号システムに対して、最も一般的に行われている解読方法を三つ挙げると、全キー・チェック解読法（試行錯誤解読法）、差動暗号分析法、および代数的解読法である。もっと複雑なテキスト／キー関係と、もっと長いキーを選択する解読方法が二つある。これらの方法を使用すれば、暗号化スキームを解読に対して強くするが、システムが高価なものになり、動作が遅くなる。それ故、暗号解読を防止するために、優れた暗号スキームを考案しない限りは、保護の対象になるプライバシーのレベルを決定する際に、折り合いをつけなければならない。
特定の用途の制約に適する暗号化スキームを選択した場合には、テキスト／キーの関係が、通常、その暗号の解読に対する難易度のレベルの決定要因になる。この難易度が、通信に関連する当事者が、その通信を秘密にしておける信頼性に影響を与える。
【０００７】
（発明の概要）
それ故、本発明の一つの目的は、電子通信のプライバシーを保護するための方法および装置を提供することである。
本発明のさらにもう一つの目的は、デジタル・データをコード化し、解読するための方法および装置を提供することである。
【０００８】
本発明の一実施形態は、通信システムを含み、その通信システムは、発信スペースと、通信チャネルと、上記通信チャネルを通して、上記発信スペースと関連する着信スペースを含む。発信スペースは、入力記号Ｉtに基づいて出力記号Ｏtを発生するための暗号化エンジンと、暗号キー、暗号テキスト／キーの関係、および入力記号を受信するための手段とを含む。着信スペースは、通信チャネルを通して、発信スペースから受信した出力記号に基づいて解読記号Ｉ’tを発生するための解読エンジンと、解読キーおよび解読テキスト／キーの関係を受信するための手段とを含む。暗号テキスト／キーの関係が、Ｏt＝αN（ｔ）＋πN［αN-1（ｔ）＋πN-1［αN-2（ｔ）＋．．．＋π2［α1（ｔ）＋π1［Ｉt＋α0（ｔ）］］．．．］］、ｍｏｄ  Ｗになるように暗号化エンジンを制御する。この場合、αN，αN-1，．．．，α1，α0は、暗号キーにより定義されるＮ＋１個の追加変形であり、πN，πN-1，．．．，π2，π0は、暗号キーにより定義されるＮ個の順列であり、Ｗは、暗号キーにより定義される各順列に対する可能性の関数である。解読テキスト／キーの関係が、Ｉ’t＝π1-1［π2-1［π3-1．．．［πN-1-1［πN-1［Ｏt−α’N（ｔ）］−α’N-1（ｔ）］−．．．−α’3（ｔ）］−α’2（ｔ）］−α’1（ｔ）］−α’0（ｔ）、ｍｏｄ  Ｗになるように解読エンジンを制御する。この場合、πi-1は、順列πiの逆として、解読キーにより定義され、α’N，α’N-1，．．．，α’1、α’0は、解読キーにより定義されるＮ＋１個の追加変形であり、Ｗは、解読キーにより定義される逆の各順列に対する可能性の数である。
【０００９】
この実施形態をある観点から見た場合、暗号化エンジンは、さらに、順列の可能なＷ個の各組を記憶するためのＷ個の参照用テーブルを含む。この実施形態を別の観点から見た場合、暗号化エンジンは、さらに、順列の可能なＷ個の組の中の、Ｍ個の使用できる組を記憶するためのＭ＜Ｗ個の参照用テーブルを含む。この実施形態を別の観点から見た場合、暗号化エンジンは、さらに、順列の可能なＷ個の組の中の、Ｍ個の使用できる組から予め選択した、Ｎ個の組の順列を記憶するためのＮ＜Ｍ＜Ｗ個の参照用テーブルを含む。この実施形態を別の観点から見た場合、α（ｔ）は階段関数である。この実施形態を別の観点から見た場合、αx（ｔ）、Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝は、ｔがＲの整数倍に等しい各数値に対するΠxのシーケンスを増加させる。この場合、Ｒは素数である。この実施形態を別の観点から見た場合、αx（ｔ）、Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝は、ｔがＲの整数倍に等しい各数値に対するΠxのシーケンスを減少させる。この場合、Ｒは素数である。この実施形態を別の観点から見た場合、αx（ｔ）、Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝は、ｔがＲの整数倍に等しい場合を除いて、ｔの各数値に対するΠxのシーケンスを増加させる。この場合、Ｒは素数である。この実施形態を別の観点から見た場合、αx（ｔ）、Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝は、ｔがＲの整数倍に等しい場合を除いて、ｔの各数値に対するΠxのシーケンスを増加させる。この場合、Ｒは素数である。この実施形態を別の観点から見た場合、Ｉ’tはＩtに対応する。
【００１０】
本発明の他の実施形態は、通信システムを含み、その通信システムは、発信スペースと、通信チャネルと、上記通信チャネルを通して、上記発信スペースと関連する着信スペースとを含む。発信スペースは、入力記号Ｉt、暗号化キー、および暗号テキスト／キーの関係を受信するための受信機、およびＯt＝αN（ｔ）＋πN［αN-1（ｔ）＋πN-1［αN-2（ｔ）＋．．．＋π2［α1（ｔ）＋π1［Ｉt＋α0（ｔ）］］．．．］］、ｍｏｄ  Ｗとなるように、入力記号に基づいて出力記号Ｏtを発生するための暗号テキスト／キーの関係により制御することができる暗号化エンジンを含む。この場合、αN，αN-1，．．．，α1，α0は、暗号キーにより定義されるＮ＋１個の追加変形であり、πN，πN-1，．．．，π2，π0は、暗号キーにより定義されるＮ個の順列であり、Ｗは、暗号キーにより定義される各順列に対する可能性の数である。着信スペースは、解読キー、および解読テキスト／キーの関係を受信するための受信機、およびＩ’t＝π1-1［π2-1［π3-1．．．［πN-1-1［πN-1［Ｏt−α’N（ｔ）］−α’N-1（ｔ）］−．．．−α’3（ｔ）］−α’2（ｔ）］−α’1（ｔ）］−α’0（ｔ）、ｍｏｄ  Ｗになるように、通信チャネルを通して、発信スペースから受信した出力記号に基づいて解読記号Ｉ’tを発生するように制御することができる解読エンジンを含む。この場合、πi-1は、順列πiの逆として、解読キーにより定義され、α’N，α’N-1，．．．，α’1、α’0は、解読キーにより定義されるＮ＋１個の追加変形であり、Ｗは、解読キーにより定義される各順列の逆に対する可能性の数である。
【００１１】
この実施形態をある観点から見た場合、暗号化エンジンは、さらに、順列の可能なＷ個の各組を記憶するためのＷ個の参照用テーブルを含む。この実施形態を別の観点から見た場合、暗号化エンジンは、さらに、順列の可能なＷ個の各組の中の、Ｍ個の使用できる組を記憶するためのＭ＜Ｗ個の参照用テーブルを含む。この実施形態を別の観点から見た場合、暗号化エンジンは、さらに、順列の可能なＷ個の組の中の、Ｍ個の使用できる組から予め選択した、Ｎ個の組の順列を記憶するためのＮ＜Ｍ＜Ｗ個の参照用テーブルを含む。この実施形態を別の観点から見た場合、α（ｔ）は階段関数である。この実施形態を別の観点から見た場合、αx（ｔ）、Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝は、ｔがＲの整数倍に等しい各数値に対するΠxのシーケンスを増加させる。この場合、Ｒは素数である。この実施形態を別の観点から見た場合、αx（ｔ）、Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝は、ｔがＲの整数倍に等しい各数値に対する、Πxのシーケンスを減少させる。この場合、Ｒは素数である。この実施形態を別の観点から見た場合、αx（ｔ）、Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝は、ｔがＲの整数倍に等しい場合を除いて、ｔの各数値に対するΠxのシーケンスを増加させる。この場合、Ｒは素数である。
この実施形態を別の観点から見た場合、αx（ｔ）、Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝は、ｔがＲの整数倍に等しい場合を除いて、ｔの各数値に対するΠxのシーケンスを減少させる。この場合、Ｒは素数である。この実施形態を別の観点から見た場合、Ｉ’tはＩtに対応する。
【００１２】
本発明の他の実施形態は、通信システムを含み、この通信システムは、第一のコンピュータと、通信チャネルと、上記通信チャネルを通して、上記第一コンピュータに接続している第二のコンピュータを含む。第一のコンピュータは、入力記号Ｉtを受信するための記号入力ポートと、暗号キーを受信するための暗号キー入力ポートと、暗号テキスト／キーの関係を記憶するための第一のメモリと、Ｏt＝αN（ｔ）＋πN［αN-1（ｔ）＋πN-1［αN-2（ｔ）＋．．．＋π2［α1（ｔ）＋π1［Ｉt＋α0（ｔ）］］．．．］］、ｍｏｄＷになるように、暗号テキスト／キーの関係により制御される、入力記号に基づいて出力記号Ｏtを発生するための第一のマイクロプロセッサを含む。この場合、αN，αN-1，．．．，α1，α0は、暗号キーにより定義されるＮ＋１個の追加変形であり、πN，πN-1，．．．，π2，π0は、暗号キーにより定義されるＮの順列であり、Ｗは暗号キーにより定義される各順列に対する可能性の数である。第二のコンピュータは、解読キーを受信するための解読キー入力ポートと、解読テキスト／キーの関係を記憶するための第二のメモリと、Ｉ’t＝π1-1［π2-1［π3-1．．．［πN-1-1［πN-1［Ｏt−α’N（ｔ）］−α’N-1（ｔ）］−．．．−α’3（ｔ）］−α’2（ｔ）］−α’1（ｔ）］−α0（ｔ）、ｍｏｄ  Ｗになるように、解読テキスト／キーの関係により制御される、通信チャネルを通して、発信スペースから受信した出力記号に基づいて暗号記号Ｉ’tを発生するための第二のマイクロプロセッサとを含む。この場合、πi-1は、順列πiの逆として解読キーにより定義され、α’N，α’N-1，．．．，α’1、α’0は、解読キーにより定義されるＮ＋１個の追加変形であり、Ｗは、解読キーにより定義される各順列の逆に対する可能性の数である。
【００１３】
この実施形態をある観点から見た場合、第一のコンピュータは、さらに、順列の可能なＷ個の各組を記憶するためのＷ個の参照用テーブルを含む。この実施形態を別の観点から見た場合、第一のコンピュータは、さらに、順列の可能なＷ個の各組の中の、Ｍ個の使用できる組を記憶するためのＭ＜Ｗ個の参照用テーブルを含む。この実施形態を別の観点から見た場合、第一のコンピュータは、さらに、順列の可能なＷ個の組の中の、Ｍ個の使用できる組から予め選択したＮ個の組の順列を記憶するためのＮ＜Ｍ＜Ｗ個の参照用テーブルを含む。この実施形態を別の観点から見た場合、α（ｔ）は階段関数である。この実施形態を別の観点から見た場合、αx（ｔ）、Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝は、ｔがＲの整数倍に等しい各数値に対するΠxのシーケンスを増加させる。この場合、Ｒは素数である。この実施形態を別の観点から見た場合、αx（ｔ）、Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝は、ｔがＲの整数倍に等しい各数値に対するΠxのシーケンスを減少させる。この場合、Ｒは素数である。この実施形態を別の観点から見た場合、αx（ｔ）、Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝は、ｔがＲの整数倍に等しい場合を除いて、ｔの各数値に対するΠxのシーケンスを増加させる。この場合、Ｒは素数である。この実施形態を別の観点から見た場合、αx（ｔ）、Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝は、ｔがＲの整数倍に等しい場合を除いて、ｔの各数値に対するΠxのシーケンスを減少させる。この場合、Ｒは素数である。この実施形態を別の観点から見た場合、Ｉ’tはＩtに対応する。
【００１４】
本発明は、また、発信スペースおよび着信スペースとの間の通信方法を提供する。上記方法は、発信スペースのところで入力記号Ｉtを受信するステップと、Ｏt＝αN（ｔ）＋πN［αN-1（ｔ）＋πN-1［αN-2（ｔ）＋．．．＋π2［α1（ｔ）＋π1［Ｉt＋α0（ｔ）］］．．．］］、ｍｏｄＷになるように、入力記号に基づいて出力記号Ｏtを発生するステップとを含む。この場合、αN，αN-1，．．．，α1，α0は、Ｎ＋１個の追加変形であり、πN，πN-1，．．．，π2，π0は、Ｎ個の所定の順列であり、Ｗは、各順列に対する可能性の関数である。その後で、出力記号は着信スペースのところで受信され、Ｉ’t＝π1-1［π2-1［π3-1．．．［πN-1-1［πN-1［Ｏt−α’N（ｔ）］−α’N-1（ｔ）］−．．．−α’3（ｔ）］−α’2（ｔ）］−α’1（ｔ）］−α’0（ｔ）、ｍｏｄ  Ｗになるように、受信した出力記号に基づいて解読記号Ｉ’tが発生する。この場合、πi-1は、所定の順列πiの逆であり、α’N，α’N-1，．．．，α’1、α’0は、Ｎ＋１個の所定の追加変形であり、Ｗは、各順列の逆に対する可能性の数である。
【００１５】
この方法を別の観点から見た場合、順列の可能なＷ個の組は、出力記号の発生前に、Ｗ個の参照用テーブルから検索される。この方法を別の観点から見た場合、順列の可能なＷ個の組の中の、Ｍ個の使用できる組が、出力記号の発生前に、Ｍ＜Ｗ個の参照用テーブルから検索される。この方法を別の観点から見た場合、順列の可能なＷ個の組の中の、使用可能なＭ個の組から予め選択されたＮ個の組が、出力記号の発生前に、Ｎ＜Ｍ＜Ｗ個の参照用テーブルから検索される。この方法を別の観点から見た場合、α（ｔ）は階段関数である。この方法を別の観点から見た場合、αx（ｔ）、Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝は、ｔがＲの整数倍に等しい各数値に対するΠxのシーケンスを増加するために使用される。この場合Ｒは素数である。この方法を別の観点から見た場合、αx（ｔ）、Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝は、ｔがＲの整数倍に等しい各数値に対するΠxのシーケンスを減少させるために使用される。この場合Ｒは素数である。この方法を別の観点から見た場合、αx（ｔ）、Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝は、ｔがＲの整数倍に等しい場合を除いて、ｔの各数値に対するΠxのシーケンスを増加させるために使用される。この場合、Ｒは素数である。この方法をさらに別の観点から見た場合、αx（ｔ）、Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝は、ｔがＲの整数倍に等しい場合を除いて、ｔの各数値のΠxに対する、シーケンスを増加させるために使用される。この場合Ｒは素数である。この方法を別の観点から見た場合、αx（ｔ）、Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝は、ｔがＲの整数倍に等しい場合を除いて、ｔの各数値に対するΠxのシーケンスを減少させるために使用される。この場合Ｒは素数である。この実施形態を別の観点から見た場合、Ｉ’tはＩtに対応する。
【００１６】
本発明の他の実施形態は、磁気媒体を含み、上記磁気媒体は、インターフェースと、Ｏt＝αN（ｔ）＋πN［αN-1（ｔ）＋πN-1［αN-2（ｔ）＋．．．＋π2［α1（ｔ）＋π1［Ｉt＋α0（ｔ）］］．．．］］、ｍｏｄ  Ｗとなるように、出力記号Ｏtを発生するための、インターフェースを通して、マイクロプロセッサを制御するためのコントローラとを含む。この場合、Ｉtは、入力記号であり、αN，αN-1，．．．，α1，α0は、あるキーにより定義されるＮ＋個の１の追加変形であり、πN，πN-1，．．．，π2，π0は、上記キーにより定義されるＮ個の順列であり、Ｗは、上記キーにより定義される各順列に対する可能性の数である。
【００１７】
この実施形態を別の観点から見た場合、α（ｔ）は、階段関数である。この実施形態を別の観点から見た場合、αx（ｔ）、Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝は、Ｒの整数倍に等しい各数値に対するΠxのシーケンスを増加させる。この場合Ｒは素数である。この実施形態を別の観点から見た場合、αx（ｔ）、Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝は、ｔがＲの整数倍に等しい各数値に対する、Πxのシーケンスを減少させる。この場合Ｒは素数である。この実施形態を別の観点から見た場合、αx（ｔ）、Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝は、ｔがＲの整数倍に等しい場合を除いて、ｔの各数値に対するΠxのシーケンスを増加させる。この場合Ｒは素数である。この実施形態を別の観点から見た場合、αx（ｔ）、Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝は、ｔがＲの整数倍に等しい場合を除いて、ｔの各数値に対するΠxのシーケンスを減少させる。この場合Ｒは素数である。
【００１８】
本発明の他の実施形態は、磁気媒体を含み、上記磁気媒体は、インターフェースと、Ｉ’t＝π1-1［π2-1［π3-1．．．［πN-1-1［πN-1［Ｏt−αN（ｔ）］−αN-1（ｔ）］−．．．−α3（ｔ）−α2（ｔ）］−α1（ｔ）］−α0（ｔ）、ｍｏｄ  Ｗになるように、発生した記号Ｉ’tを形成するために、インターフェースを通して、マイクロプロセッサを制御するためのコントローラを含む。この場合、Ｏtは受信した記号であり、αN，αN-1，．．．，α1，α0は、あるキーにより定義されるＮ＋１の追加変形であり、π1-1、π2-1、π3-1，．．．，πN-1-1、πN-1は、上記キーにより定義されるＮ個の逆順列であり、Ｗは上記キーにより定義される各逆順列に対する可能性の数である。
【００１９】
この実施形態を別の観点から見た場合、α（ｔ）は、階段関数である。この実施形態を別の観点から見た場合、αx（ｔ）、Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝は、ｔがＲの整数倍に等しい各数値に対するΠxのシーケンスを増加させる。この場合Ｒは素数である。この実施形態を別の観点から見た場合、αx（ｔ）、Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝は、ｔがＲの整数倍に等しい各数値に対するΠxのシーケンスを減少させる。この場合Ｒは素数である。この実施形態を別の観点から見た場合、αx（ｔ）、Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝は、ｔがＲの整数倍に等しい場合を除いて、ｔの各数値に対するΠxのシーケンスを増加させる。この場合Ｒは素数である。この実施形態を別の観点から見た場合、αx（ｔ）、Ｘ＝｛０，１，２，．．．，Ｎ−１，Ｎ｝は、ｔがＲの整数倍に等しい場合を除いて、ｔの各数値に対するΠxのシーケンスを減少させる。この場合Ｒは素数である。
本発明の上記および他の目的、特徴および利点は、好適の実施形態を含む以下の詳細な説明を読めば明らかになるだろう。しかし、上記実施形態は本発明を制限するものではない。以下の説明は、添付の図面を参照しながら行う。
【００２０】
（発明の実施の形態）
図１について説明すると、通信は、発信スペース２と着信スペース４とを持つ。発信スペース２は、通信が発信される場所と時間とを定義する。着信スペース４は、通信が解読され、または解読が試みられる場所と時間とを定義する。発信スペース２および着信スペース４は、遠隔地に位置していてもよい。別の方法としては、発信スペース２と着信スペース４を同じ場所に設置して、時間的にずらすこともできる。発信スペース２と着信スペース４との間の空間および時間の一致は、特定の通信により異なる。発信スペース２および着信スペース４は、共通の通信チャネル６に関連する。この通信チャネル６は、セルラー音声電話呼出しの場合に、何もない空間のような物理的スペースを橋渡しすることができる。別の方法としては、通信チャネル６は、同じコンピュータ上で、第二のユーザが後で読むことができるように、第一のユーザが、コンピュータ上のメモリ内に残したメッセージのような発信スペース２と着信スペース４との間で、時間が経過している間の通信のための一時的な記憶装置であってもよい。通信チャネル６は、また、電子メール送信の場合の電話ケーブルと記憶メモリのような二つのものを組み合せたものであってもよい。
【００２１】
発信スペース２においては、元の平文テキスト・メッセージ８が受信され、暗号テキスト１６を作成するために、供給された暗号キー１０を使用して、暗号テキスト／キーの関係１４に従って暗号化される。暗号テキスト・メッセージ１６は、通信チャネル６を通して、着信スペース４のところで受信される。その後で、正しい解読キー２０を持つ正式に許可を受けた団体は、着信スペース４に暗号キー２０を供給することができる。この場合、暗号キーは、元の平文テキスト・メッセージ８に対応する新しい平文テキスト・メッセージ２４を作成するために、解読テキスト／キーの関係２２に従って、暗号テキスト・メッセージ１６に適用される。
【００２２】
発信スペース２および着信スペース４は、例えば、複数のコンピュータであってもよいし、または同じ一台のコンピュータであってもよい。例示としてのコンピュータは、テキスト／キーの関係を記憶するためのメモリの形をした、ある容量の記憶スペースであってもよい。制御構造体およびユーザから供給された、元の平文テキストおよびキーを記憶するための、ランダム・アクセス・メモリと一緒に、マイクロプロセッサおよび類似のコントローラを、各スペースに内蔵させ、暗号／解読エンジンの機能を実行することができる。キーボード、フロッピー・ディスク・ドライブ、ＣＤ−ＲＯＭドライブ、バイオメトリック・リーダ、または可視光線の信号源のモード機能を読み出すためのデバイスのような入力デバイス２６、２８も、発信ユーザからのキーおよび平文テキスト・メッセージ、および着信ユーザからのキーを受け取るために設置することができる。着信スペース４においては、着信ユーザに、新しい平文メッセージを提示するために、モニタ、ディスク・ドライブまたはオーディオ・スピーカのような出力デバイス３０を設置することができる。テキスト／キーの関係は、異なるユーザによりまたは異なる状況で、異なるテキスト／キーの関係を適用することができるようにするために、コンピュータのハード記憶装置内にではなく、フロッピー・ディスクまたは他の永久的または一時的な携帯用記憶装置上に記憶させることができる。
【００２３】
本発明のテキスト／キーの関係は、Ｎ＋１個の追加変形と一緒に、Ｎ個の一組の順列のインターレース状の関係に基づいている。入力通信が、複数のブロックの形で暗号化される場合には、ｔ個のブロックからなる入力平文テキスト・メッセージＩtは、出力暗号テキスト・メッセージＯtを形成するために、上記関係に従って暗号化される。順列、追加変形の最初の数値、およびテキスト／キーの関係の他のパラメータは、上記キーにより決定される。
【００２４】
図２に示すように、本発明のテキスト／キーの関係のマッピングは、下記のように、入力記号Ｉtから、出力記号Ｏtを形成する。
Ｏt＝Ｆt（Ｉt）＝αN（ｔ）＋πN［αN-1（ｔ）＋πN-1［αN-2（ｔ）＋．．．＋π2［α1（ｔ）＋π1［Ｉt＋α0（ｔ）］］．．．］］、ｍｏｄ  Ｗ
ここで、αN，αN-1，．．．，α1，α0は、Ｎ＋１個の追加変形であり、πN，πN-1，．．．，π2，π0は、Ｎ個の順列であり、Ｗは、各順列に対する可能性の数である。すなわち、入力記号Ｉtは、α0（ｔ）に加算されたモジュロ−Ｗであり、結果は、順列テーブルπ1で参照される。π1参照用テーブルからの出力は、α1（ｔ）に加算されたモジュロ−Ｗであり、以下同じ。ステップｔにおける、入力記号Ｉtのこのマッピングは、出力記号Ｏtを発生するために使用される。
【００２５】
対応する解読作業Ｆt-1の場合には、ステップｔにおける入力記号Ｉtが、出力記号Ｏtから入手したものでなければならない。この解読作業は、下記式により行われる。
Ｉt＝Ｆ-1（Ｏt）＝π1-1［π2-1［π3-1．．．［πN-1-1［πN-1［Ｏt−αN（０）］−α’N-1（０）］−．．．−α3（０）］−α2（０）］−α1（０）］−α0（０）、ｍｏｄ  Ｗ
ここで、πi-1は、順列πiを逆にしたものである。
すなわち、αN（０）は、出力記号キーＯtから、モジュロ−Ｗを差し引いたものであり、結果は、πN-1の順列テーブルから参照される。参照結果、αN-1（０）は、この結果からモジュロ−Ｗを差し引いたものであり、πN-1-1から参照される。以下同じ。
【００２６】
順列π1，π2，，．．．，πN-1，πNは、スペース０−Ｗを横切って取り出され、その結果、πに対する可能性はＷ！になる。実用上の目的のために、π用のＷ！の可能なテーブルの中の、もっと小さい数Ｍをユーザは使用することができ、特定の暗号周期のために、もっと少ない数Ｎを選択することができる。この場合、特定のＮ個のテーブルが、キー内の情報に基づいて決定される。Ｎ個の順列が選択されると、最初に各順列に適用するためのスタート点が、キー内の情報のより供給される。
【００２７】
追加の変形、α0，α1，．．．，αN-1，αNは、次の順列の数値を参照する前に、順列の変化量をどのようにしたらよいのかを決める数値である。追加変形により供給される増大関数は、カウントに依存するものであってもよいし、数値に依存するものであってもよい。例えば、カウントに依存する追加変形は、暗号化プロセス中に、Ｒ回毎に一つの場所で、以降の順列テーブルのシーケンスを増大することができる。この場合、Ｒは、好適には、大きな素数であることが好ましい。もう一つのカウントに依存する追加変形は、暗号化プロセス中に、Ｊ回毎に一つの場所で、以降の順列テーブルのシーケンスを増大することができる。この場合、Ｊは、好適には、異なる大きな素数であることが好ましい。さらに、もう一つのカウントに依存する追加変形は、躊躇、Ｌ回毎の場合は例外であるが、暗号化プロセス中に、毎回一つの場所で、以降の順列テーブルのシーケンスを増大することができる。この場合、Ｌは、好適には、異なる大きな素数であることが好ましい。数値に依存する追加変形は、例えば、前の順列テーブルまたは前の記号からの出力のような、前の出力の数値に従って、以降の順列テーブルのシーケンスを増大することができる。この数値は、以降のシーケンスを増大するかどうかを、決定するために使用できるばかりでなく、増大の大きさを決定するのにも使用することができる。
【００２８】
一例として、八つの順列と九つの追加変形を持つ特定のテキスト／キーの関係を説明するが、この例は本発明を制限するものではない。八つの順列、Π＝π1，π2，π3，π4，π5，π6，π7，π8が、例えば、元の平文テキスト・メッセージの２５６のブロックの中の、記号０，１，２，．．．，２５５に対して実行される。この例の場合には、八つの順列が、２５の順列の記憶している組から選択され、例えば、暗号キー内の最初の八つの記号により決定される。上記関係のステップｔのところで使用された九つの追加変形は、Ａ（ｔ）＝α0（ｔ），α1（ｔ），α2（ｔ），α3（ｔ），α4（ｔ），α5（ｔ），α6（ｔ），α7（ｔ），α8（ｔ）と指定される。ｔ＝０のところの最初の数値Ａ（０）は、例えば、暗号キー内の九つの記号により決定される。この例のテキスト／キーの関係の各適用の終わりのところで、追加変形Ａ（ｔ）は、決定論的に修正されるが、選択した八つの順列は、キーが変更されるまで、正しい位置に残る。Ａ（ｔ）を変更するためのプロセスは、テキスト／キーの関係の異なるモードに対して変化する。
【００２９】
Ａ（ｔ）を変更するための例示としてのプロセスを、ブロック暗号モードの一部として以下に説明する。Ｓ（ｔ）＝Ｓ4（ｔ），Ｓ3（ｔ），Ｓ2（ｔ），Ｓ1（ｔ）は、暗号化される時点ｔにおける、四つの記号からなる平文テキスト入力である。時点ｉ＝０、Ｓ（０）における上記平文テキストの最初の数値は、四つの記号からなる入力語である。
Ｉ（０）＝Ｉ4（０），Ｉ3（０），Ｉ2（０），Ｉ1（０）；すなわち、Ｓj（０）＝Ｉj（０）、Ｊ＝１，．．．，４
ｉ＝０，．．．，１５の場合、（この例の場合には、データの各ブロックに対して、１６回の暗号化が実行される）、例えば、状態Ｓ（ｔ）から、Ｓ（ｔ＋１）を下記のように計算することができる。
Ｓ4（ｔ＋１）＝Ｆt（Ｓ1（ｔ））
Ｓ3（ｔ＋１）＝Ｓ4（ｔ＋１）
Ｓ2（ｔ＋１）＝Ｓ3（ｔ＋１）
Ｓ1（ｔ＋１）＝Ｆt（Ｓ1（ｔ））＋Ｓ2（ｔ）
ここで、Ｆtは、Π、Ａ（ｔ）＝α0（ｔ），α1（ｔ），α2（ｔ），α3（ｔ），α4（ｔ），α5（ｔ），α6（ｔ），α7（ｔ），α8（ｔ）により定義されるｔ番目のＦ関数であり、下記のように発生する。
【００３０】
上記キーから、Ａ（ｔ）、ｔ＝１，２，３，．．．，１６を発生するために使用される、Π、Ａ（０）およびＸ（４）、Ｘ（３）、Ｘ（２）、Ｘ（１）が分かっている場合には、ブロック暗号の３６個の四つの記号からなる出力語が計算される。この全プロセス中、キーからの設定Ａ（０）が、テキスト／キーの関係で使用され、変更は行われない。
これにより、全部で１４４個の記号が形成され、その後で、これらの記号は、下記のように、１６９個の記号シーケンス、Ａ（１），．．．，Ａ（１６）に分割される。
Ａ（１）＝最初の九つの出力記号
Ａ（２）＝二番目の九つの出力記号
．．．
Ａ（１６）＝最後の九つの出力記号
Ａ（１），Ａ（２）．．．Ａ（１６）のこの計算は、好適には、キーがロードされる時点で実行することが好ましい。このことは、通信の処理を遥かに迅速にし、記憶要件を緩和するために行われる。
【００３１】
時点ｔ＝１６、Ｓ（１６）のところでの暗号テキスト出力は、出力Ｏ（０）、すなわち、入力語Ｉ（０）のブロック暗号変形である。すなわち、下記に示すものである。
Ｓ（１６）＝Ｓ4（１６），Ｓ3（１６），Ｓ2（１６），Ｓ1（１６）＝Ｏ（０）＝Ｏ4（０），Ｏ3（０），Ｏ2（０），Ｏ1（０）
シーケンスＡ（１），Ａ（２），．．．，Ａ（１６）は、ブロック暗号モードで、１６の順列を定義するために使用される一組の追加である。この出力を解読するには、逆の順列、および追加が、逆の順序、すなわち、Ａ（１６），Ａ（１５），．．．，Ａ（１）の順序で使用される。
【００３２】
ブロック暗号モードの機密保護は、テキスト／キーの関係、および反復非線形フィードバック関数の、暗号分析に強い混合特性の機密保護に基づいている。テキスト／キーの関係は、Ｗ個の素子のＷ！順列の全部の組から選択される、Ｍ個の一組の順列から選択される、Ｎ個のランダムに選択した順列の積からなる記号の順列である。上記Ｎ個の順列は、関数の各用途に関する、決定論的ではあるが、未知の規則により変化する。それ故、一つのブロックの処理中、異なる二つの回で、テキスト／キーの関係に、同じ記号が提示された場合には、その記号に適用される順列は、１／Ｗの確率において同じである。そのため、ブロック暗号のラウンドの全数内の不確かさが最大になる。
【００３３】
このシステムでテキスト／キーの関係を使用すると、暗号解読は非常に難しくなる。入力は、ランダムな素子を持ち、長さが制限されている。出力は、結果として得られる固定長の出力からのビットのサブセットに制限される。それ故、一つは、本発明の暗号ブロックと同じ複雑さの関係を分析するために通常必要な入出力語と一致しない。さらに、キーは、例えば、３０分程度の周期で、周期的に変化するので、一つのキーにより処理する入力の数は制限される。それ故、比較的小さな数の関数の数値と関連する、観察できる関数関係の不完全な性質により、本発明のブロック暗号の暗号分析に非常に難しいものになる。
【００３４】
ブロック暗号モードにおける処理の回数の数（例えば、１６）は、レジスタの内容の非線形混合が最大になるように選択される。そうすることより、各レジスタ内のデータは、多くの回数、テキスト／キーの関係に従って処理される。例えば、記号は、最初、段階１において、１６回の各処理の際に、テキスト／キーの関係で操作され、一方、記号は、最初に、レジスタの段階４において、およびテキスト／キーの関係に従って処理される最後に１２回操作される。それ故、ブロック暗号レジスタの各段階の内容は、高度に入れ子状態の出力−入力に関連する非線形関数になる。
【００３５】
フィードバックの構成は、少なくとも二つの有利な効果をもたらす。第一の効果は、線形素子により、存在するかもしれない任意のランダムでない状態が低減することである。第二の効果は、フィードバックの位置が、非線形シフト・レジスタに違いを迅速に導入し、出現した場合、ランダムの際に予想されるのと等しい確率で、その場所に上記違いを保持することである。段階１において、処理のために異なる記号が提示されると、テキスト／キーの関係は、次のステップで、レジスタの段階４に違いを確実に挿入し、また、レジスタの段階１に、違いを確率的に挿入する。それ故、段階１における一つの違いは、それ自身を、ブロック暗号処理の次のステップにおいて、高い確率と掛け合わせる効果を持つ。加算により、消去の可能性が何時でもあるが、選択したブロック暗号構成の場合には、それが起こる確率はランダムの場合より高い。ＤＳＳＳ形式のレジスタの最初の構成、すなわち、レジスタの段階４の最初の状態が異なる記号を含み、一方、レジスタの他の三つの段階が同じ内容を含む、二つの異なる時間について考えて見よう。この構成の場合には、テキスト／キーの関係が適用される前に遅延が最大になる。それ故、テキスト／キーの関係の各ステップが、順列であるので、ブロック暗号処理のステップ６において、レジスタの内容は、ＤＤＤＤとなり、確率はｐ＝１である。プロセスのステップ１０においては、レジスタの内容は、ＳＳＳＳとなり、確率は僅か（１／２）32になり、この確率は、ランダムの場合に予想される確率である。しかし、出力が形成される前のこの時点においては、まだ六つのステップを通過しなければならない。任意の他の最初の構成は、プロセスのもっと初期においてさえ違いを導入する。それ故、この設計は、差動暗号分析技術に強い。
【００３６】
例えば、そこからシステムのＭ＝２５の基本的順列が選択される、全部で２５６の素子のＷ＝２５６！の順列がある場合には、２５の基本的な順列の組の数は、約Ｗ25／Ｍ！であり、これは非常に大きな数である。しかし、この組の順列が既知のものであると考えた場合でも、キーの数は依然として非常に多い。置換えにより、２５の順列から八つの順列を選択した場合には、順列の可能な組の数は約２５8＝１０11である。ブロック暗号のために必要な１６の線形追加が、７２ビットのシーケンスにより定義される固定の未知の追加により、レジスタの未知の３２ビットの最初の状態に対するブロック暗号処理により発生する。そのため、さらに、２104＝１０31の可能性が生じる。２５の順列の既知の組に対するキー・スペース全体は、約１０42である。このキー・スペースは、全キー探索を行うのにたっぷり次の世紀まで掛かるほどであり、他の簡単な暗号分析法があったとしても、それにより解読されないほど十分に広いスペースである。
【００３７】
そこからキー変数が選択される２５６の素子上での順列の基本的な組の選択の他に、身元確認のための一意性を提供するブロック暗号の多数の変形がある。これら各変形は、性能に影響を与え、また機密保護にも影響を与える。例えば、非線形レジスタの長さを、もっと長い、またはもっと短いものを収容するように変更することができる。レジスタへの非線形フィードバックは、変更することができるし、可変性を導入するために、レジスタの増大の回数を変更することもできる。ブロック暗号処理の間に、一組の追加を発生するための技術を、ブロック暗号モード自身に無関係になるように変更することができる。
【００３８】
本発明のテキスト／キーの関係のブロック暗号モードの、暗号解読に対する抵抗力がどの程度のものか理解してもらうために、世界の暗号分析文献に記載されている最も一般的に行われている三つの暗号解読方法について説明する。これらの方法は、全キー・チェック法、または試行錯誤法、差動暗号分析法、および代数的解読法である。
【００３９】
全キー・チェック法は、偶然に有効なキーを発生するために、ビットの可能な各組合せを可能性のあるキーとして発生させ、それをシステムに適用する、非常に強引な方法である。八つの順列、π1，π2，π3，π4，π5，π6，π7，π8に対して、２５×２４×２３×２２×２１×２０×１９×１８＝４３，６０９，１０４，０００＝１０10.64の可能な選択があり、最初の追加変形に対して、２５６9＝１０21.67の可能な選択がある。最後に、Ａ（ｔ）、ｔ＝１，２，３，．．．，１６を発生するために使用する、最初のキーｆｉｌｌ、Ｘ（１）、Ｘ（２）、Ｘ（３）、Ｘ（４）に対して、２５６4＝１０9.63の可能な選択がある。
【００４０】
それ故、キーの多様性、またはキー・スペースの個数は、１０10.64+21.67+9.63＝１０41.94である。ある種の試行錯誤解読法の際に、すべての可能なキーを試す場合には、解読を行う人は、平均して、プロセスの途中で、または約１０41.64回試みた後で、正しいキーを発見することを期待する。このような暗号解読方法は、実際には不可能であり、現在の技術を使用しても、一つの世紀内に完了することはできない。そのキーが、例えば、３０分間のようは、ある固定の長さの時間の間だけ有効であると定義された場合には、全キー・チェック解読方法が、成功する確率は非常に低い。
恐らく、今日、最も一般的に行われている簡便な暗号分析方法は、差動暗号分析方法であろう。この暗号解読方法の基本的なアイデアは、出力の違いは、キーのあるサブセット、または恐らくもっと低い多様性をもつ関連キーによるものであると仮定して、非常に僅かな違いを持つ二つの（または、それ以上の）任意の語の暗号化されたバージョンを比較するという考えである。
【００４１】
下記の最善の場合のシナリオを上記暗号解読者に当てはめることができる。
１．一つのビットしか違わない３２ビットの入力語の複数の組を選択する。
２．ブロック暗号内の１６の各ステップについて、各ステップの後の結果を比較する。
３．キーの２１個の記号に対するこれらの違いおよび特定の選択の間の関連を参照する。
【００４２】
最初の八つのステップを通して、キー選択に関連しているかもしれない、決定論的違いを観察することができる。しかし、１６のステップの中の九つのステップの後では、２32の可能な違いのパターンのランダムな選択からは、違いのパターンを区別することはできない。この９番目のステップの後では、出力が発生する前に、アルゴリズムは、あと六つのステップを含み、そのため、暗号分析は、任意の試験の結果を使用することができる。これらの七つのステップは、さらに、違いのパターンをランダム化する。それ故、このタイプの暗号解読が成功する可能性は非常に低い。
【００４３】
結果は、代数的暗号解読法と比較して優れたものではない。順列が、順列マトリックスの形で表示された場合には、結果は０であり、一つのマトリックスは、各行および各列に正確に一つの数値を含む。本発明のテキスト／キーの関係の代数的表示の場合には、これらのマトリックスは、追加変形と種々に組み合わせて、一緒に掛け合わされる。結果は、一つの入力／出力マッピングに対する代数的表示が、８番目の次数の多項式になる。ブロック暗号モードの場合には、入力による出力に対する代数的表現は、もっと高い次数を持ち、遥かに複雑である。誰かが、高い多数の多項式のシステムを解くための方法を発見したとしても、ブロック暗号モードに対する方程式は、実際には解くことはできないだろう。
【００４４】
本発明の暗号システムに対する一つの実際的な適用は、敵／味方識別（ＩＦＦ）システムである。このようなシステムの場合には、目標は、暗号化した問い合わせ信号により識別し、問い合わせを行う。目標が味方である場合には、その目標は、問い合わせを解読することができるトランスポンダを備え、問い合わせが内蔵している情報を読み出し、その情報に基づいて、問い合わせを行った人に送信するために、暗号化した応答を発生する。問い合わせを行った人が、正しい応答ウィンドウ中に、正しい応答を受信した場合には、応答は有効であると評価され、目標は味方であると識別される。有効な応答を受信しなかった場合には、目標は空であるとの処理を受ける。
【００４５】
暗号化した信号は、問い合わせを行った人とトランスポンダとの間で送信されるので、キーが周期的に変化する場合には、各信号は有効なキー、マッピングキーの有効な組を持っていなければならない。下記の例の場合には、有効なキーは、機密保護の理由から、３０分毎に交換される。それ故、問い合わせを行った人およびトランスポンダは、それぞれ、それぞれの毎日の使命のために４８のキーがロードされているか、充填されていなければならない。ＩＦＦ装置に毎日入力される４８個の各キーは、２１の記号、Ｋ1，Ｋ2，Ｋ3，．．．，Ｋ21であり、これらの記号は、この例の場合には、下記のように使用される。
Ｋ1，Ｋ2，Ｋ3，Ｋ4，Ｋ5，Ｋ6，Ｋ7，Ｋ8＝π1，π2，π3，π4，π5，π6，π7，π8
Ｋ9，Ｋ10，Ｋ11，Ｋ12，Ｋ13，Ｋ14，Ｋ15，Ｋ16，Ｋ17＝α0（ｔ），α1（ｔ），α2（ｔ），α3（ｔ），α4（ｔ），α5（ｔ），α6（ｔ），α7（ｔ），α8（ｔ）
Ｋ18，Ｋ19，Ｋ20，Ｋ21＝Ｘ（１），Ｘ（２），Ｘ（３），Ｘ（４）
各キーが装置にロードされると、ＩＦＦ挑戦／応答の処理を遥かに速くするために、１４４個の追加記号Ａ（１）、Ａ（２），．．．，Ａ（１６）が計算され、これらの記号は、１６５個の記号、Ｋ1，Ｋ2，Ｋ3，．．．，Ｋ165全部に対する２１個のキー記号に添付される。それ故、一日当り４８個のキーに対する記憶要件は、４８×１６５＝７９２０記号、または、約８０００個の記号になる。
【００４６】
すでに説明したように、本発明の暗号化システムと一緒に使用するのに好適なキーは、下記の三つの部分を持つ。
１．１〜２５の整数の中からランダムに選択する八つの記号。
２．九つのランダムな記号。
３．四つのランダムな記号。
【００４７】
第一の八つの記号は、１〜２５の範囲内のランダムな数であるという要件を除けば、キーの発生に対する制約はない。しかし、キー発生プロセスは、故障やランダムでない特性が決して起こらないように、注意深くチェックしなければならない。任意の優れた周知のランダム化装置が、この目的に適している。
キーが発生すると、送信のためにキーを暗号化することができる。好適には、キーをグループ分けにして、各グループが３１×４８＝１４８８個のキーの一月分の供給量を含むことが好ましい。
キーの月毎のグループは、ＫＥＫに対して、例えば、１年のような設定暗号周期をサポートするために、物理的機密保護が適当になるような頻度をもつ、周期基準に基づいて手動で分配される、ｉＫｅｙｓ  Ｅｎｃｒｙｐｔｉｎｇ  Ｋｅｙｉ（ＫＥＫ）を使用して、上記のようにブロック暗号により暗号化することができる。
【００４８】
動作中のＩＦＦ装置でキーを関連づけるためには、他のガイドラインも適している。例えば、二日間だけ有効なキー、すなわち、今日／明日キーの場合、ＩＦＦ装置は、二日周期で主要な基地に帰ると仮定して、この装置に記憶しなければならない。そうでない場合には、このガイドラインが、怠けて、二日の周期の代わりに装置が基地局から離れている最長時間となる恐れがある。本発明のシステムを他の用途に使用する場合にも、類似の機密保護を考慮する必要がある。
【００４９】
例示としての、好適な実施形態を参照しながら本発明を説明してきた。しかし、本発明の範囲は、これらの開示の実施形態に限定されない。それどころか、本発明は、種々の修正および類似の装置を含む。それ故、特許請求の範囲を、上記のすべての修正および類似の装置を含むように、最も広い意味で解釈すべきである。例えば、本発明の例示としてのブロック暗号モードを詳細に説明してきたが、当業者であれば理解できると思うが、本明細書に記載した方法および装置は、本発明の精神および範囲から逸脱することなしに、ブロックの形でではなく、ストリームの形で受信し、処理した平文テキスト・メッセージにも容易に適用することができる。
【図面の簡単な説明】
【図１】  通信イベントを特徴とする暗号のブロック図である。
【図２】  本発明のテキスト／キーの関係の実行を示すブロック図である。
【図１】
0004053730.tif 000002
【図２】
0004053730.tif 000003