(57)【特許請求の範囲】
【請求項１】
２つのステーション間でメッセージを暗号化して通信するために前記各ステーションにそれぞれ組み込まれる暗号化／解読装置であって、
送信側として動作する際に、ランダムセッションキーを生成するための手段と、
前記ランダムセッションキーの暗号イメージ（cryptographic image）を生成するための手段と、
前記ランダムセッションキーの暗号イメージを受信側の前記ステーションに送信するための手段と、
受信側として動作する際に、前記ランダムセッションキーを再現するための手段と、
送信側又は受信側として動作する際に、前記ランダムセッションキーを用いて、少なくとも１つのテーブルが逐次項のストリームからなるテーブルの集合を所定のアルゴリズムにより生成するための手段と、
前記テーブルの集合を記憶するための記憶装置と、
送信側として動作する際に、前記テーブルを用いて、その際に前記少なくとも１つのテーブルの各項を連続的に読み取り、メッセージの各逐次要素をその暗号イメージに変換するための手段とを備えることを特徴とする装置。
【請求項２】
送信側として動作する際に、前記ランダムセッションキーを生成するための手段が、伝送中に時々新しいランダムセッションキーを生成するようになっていることを特徴とする請求項１記載の装置。
【請求項３】
送信側として動作する際に、前記暗号イメージに変換するための手段が、少なくとも２つの前記テーブルを同時に読み取り、かつそれらの出力項を結合することにより、前記メッセージの前記各逐次要素をその暗号イメージに変換するようになっていることを特徴とする請求項１又は２記載の装置。
【請求項４】
前記テーブルの集合が複数の疑似ランダムストリームからなり、その各項が連続的に読み取られて１つに結合されることを特徴とする請求項３記載の装置。
【請求項５】
送信側として動作する際に、前記暗号イメージに変換するための手段が、１つの前記テーブルを読み取りかつ該テーブルの出力項を用いて別の前記テーブルを読み取ることにより、前記メッセージの前記各逐次要素をその暗号イメージに変換するようになっていることを特徴とする請求項１又は２記載の装置。
【請求項６】
前記テーブルの集合が少なくとも１つの置換えテーブルを含むことを特徴とする請求項１乃至５のいずれか記載の装置。
【請求項７】
前記テーブルの集合が少なくとも１つの変位テーブルを含むことを特徴とする請求項１乃至６のいずれか記載の装置。
【請求項８】
前記暗号イメージに変換するための手段が、前記メッセージの前記各逐次要素をその暗号イメージに変換する際に、前記集合の各テーブルを一度だけ使用することを特徴とする請求項１乃至７のいずれか記載の装置。
【発明の詳細な説明】
技術分野
本発明は、特に例えば電話、ファクシミリ又はコンピュータデータ通信の分野において、電子的に送信されるメッセージの自動暗号化及び解読のための装置に関する。
本発明は、高レベルの安全性を維持しながらも高速でメッセージを暗号化しかつ解読するための装置を提供することに関する。
発明の開示
本発明によれば、２つのステーションにそれぞれ組み込まれて、前記両ステーション間での暗号化された通信を可能にする暗号化／解読装置であって、セッションキーによりルックアップテーブルの集合を生成し、かつ該テーブルを記憶装置に一時的に記憶し、かつメッセージの各逐次要素を前記ルックアップテーブルを用いることによりコードに変換するようにしたことを特徴とする装置が提供される。
伝送又はセッション毎に新しいセッションキーが使用されること、従って各伝送又はセッションの開始時に新しいルックアップテーブルの集合が生成されることが理解される。前記セッションキーは、実際各伝送中に時々変更する（その結果新しいルックアップテーブルの集合が生成される）ことができる。
前記セットアップテーブルの集合は迅速に生成することができ、かつ前記メッセージの各要素（例えば、文字、ビット又はブロック）を符号化する手続きは、高レベルの安全性を維持しながらも迅速に実行することができる。
前記メッセージの各要素は、前記ルックアップテーブルのいずれかをアドレス指定することにより、そのコードに変換することができ、その出力は、別のルックアップテーブルをアドレス指定するのに用いられる等々である。前記変換手続きには、少なくとも２つのルックアップテーブルを同時にアドレス指定すること、及びその出力を結合する（例えば合算する）ことが含まれる。少なくとも１つの前記ルックアップテーブルは疑似ランダム順序（sequence）で構成することができ、その項（term）（又は項目（entries））は連続的に読み取られ、前記テーブルの最後の項が読み取られると、ポインタは最初の項に戻る。前記ポインタは、前記順序のいずれの所定の位置においても開始することができる。
送信側によるメッセージの暗号化及び受信側による正しい解読のために、送信側及び受信側双方の装置が、前記２つのステーションが対応するルックアップテーブルを生成できるように、各伝送（又はその一部分）について同じセッションキーを用いなければならないことが分かる。本願出願人による国際特許出願ＰＣＴ／ＧＢ９４／０２００４号明細書には、送信側装置がセッションキーを生成し、かつ同じセッションキーを受信側で再現するようにした装置の１つが記載されている。
【図面の簡単な説明】
以下に、添付図面を参照しつつ、実施例を用いて本発明の実施態様を詳細に説明する。
第１図は、送信側／受信側各ステーションにおいて使用される暗号化／解読装置の概略ブロック図である。
第２図は、本発明による高速暗号の一形態の演算を説明する概略フロー図である。
第３図は、本発明による高速暗号の別の形態の演算を説明する同様のフロー図である。
第４図は、本発明による装置により実行される暗号化手続きの実行例である。
第５図は、本発明による装置により実行される別の暗号化手続きの実行例である。
発明を実施するための最良の形態
第１図には、本発明による暗号化／解読装置が簡単な図式化した形で示されている。一般に、前記装置は通信装置（例えば、ファクシミリ装置）の一部分を形成することになる。前記装置は、通信しようとする別のステーションにおける対応する装置に暗号化したデータを送信し、かつそれから暗号化したデータを受信するための外部ポート１０を備える。また、前記装置は、局所的なホスト機器への又はそれからのデータの流れのためのポート１２を備える。更に前記装置は、外部ポート１０を介して送信されるデータを暗号化するため、及び外部ポート１０を介して受信されるデータを解読するために使用されるルックアップテーブルを一時的に保持するためのプログラムメモリ１６及びメモリ１８を有するマイクロプロセッサ１４を備える。
前記装置と別のステーションにある対応する装置との間における新しい伝送（又はセッション）毎に、新しいルックアップテーブルの集合が生成され、かつ前記両装置のメモリ１８内にプログラムされる。新しいルックアップテーブルの各集合は、新しいランダムセッションキーに従って生成される。前記２つの通信装置のプログラムメモリ１６には、前記ルックアップテーブルを生成（し、かつ次に使用）するための同じアルゴリズムが記憶され、それにより両装置が同じセッションキーから同じルックアップテーブルを生成する。一方の装置は送信側として動作し、前記ランダムセッションキーを生成して、これを暗号化した形で他方（即ち受信側）の装置に送る。前記セッションキーは、本願出願人による国際特許出願ＰＣＴ／ＧＢ９４／０２００４号明細書に記載されるような手法で、送信側で生成し、かつ受信側で再現することができる。前述したように、前記セッションキーは各伝送（又はセッション）中に時々変更することができる。
新しいルックアップテーブルの集合が送信側及び受信側の装置において、前記新しいセッションキーから一旦作られると、データの暗号化伝送を開始することができる。従って、送信側装置のポート１２おいて受信される普通のメッセージが、マイクロプロセッサ１４の制御下で前記ルックアップテーブルを用いて暗号化され、その後にデータポート１０を介して送信される。これに対応して受信側装置は、暗号化された前記メッセージを受け取りかつこれを解読する。
前記ルックアップテーブルが、後述するような幾つかのタイプＴ、ＩＴ、Ｄ、ＩＤ又はＰＲであると好都合である。各テーブルは４０００以上の項目を持つことができるが、様々なタイプのテーブルの基本的な文字は、次のように１０個の項目のみを用いて例示することができる。
置換え（transposition）テーブル（タイプＴ）は、数字又は文字が、例えば次のように、最初のものとは異なる順序になっている。
0003814687.tif 000002
逆（inverse）置換えテーブル（タイプＩＴ）は、これを前記Ｔテーブルに適応すると元の順序を復元する点において、上述したものとは逆のものである。
0003814687.tif 000003
変位（displacement）テーブル（タイプＤ）は、前記置換えテーブルから派生したものであり、それにより前記置き換えテーブルにおける各項目の正変位（positive displacemnet）がその最初の位置から与えられる。
0003814687.tif 000004
逆変位テーブル（タイプＩＴ）は、前記逆置換えテーブルに対応する変位テーブルである。
疑似ランダムテーブル（タイプＰＲ）は、特定の定義域において疑似ランダム的に生成された数字で構成される。
0003814687.tif 000005
ＰＲテーブルにおいて、前記定義域内の数字は、該テーブルのいずれの部分においても項目の選択が前の項目の選択に依存しないことから、省略することができ、かつ他のものを複製することができる。
第２図に示す実施例では、暗号化されるべきメッセージの各逐次文字が、上述したいずれかのタイプのものである第１のルックアツプテーブルを参照する。前記第１のルックアツプテーブルの出力は第２のルックアップテーブルをアドレス指定し、かつ第２のルックアップテーブルの出力が第３のルックアップテーブルをアドレス指定する等々である。このようにして、前記入力メッセージの連続する要素（例えば、文字、ビット又はブロック）が、送信側から受信側に伝送するために、最後のルックアップテーブルから対応する暗号化された出力の連続に変換される。
前記集合のルックアップテーブルは、暗号の複雑さを増すための手段として、様々な伝送について様々な順序で用いることができる。別の実施例では、主メッセージにおける各要素を、２つ又はそれ以上のルックアップテーブルを同時にアドレス指定し、かつそれらの出力を、第３図に示すように結合する（例えば、合算する）ことにより変換することができる。
コンピュータプログラミングの分野では、ルックアップテーブルの読み取りに要求されるステップが、要素毎の暗号化（element-by-element encryption）において通常実行される乗算及び除算ステップよりも少なく、それにより、ルックアップテーブルの集合が一旦生成されると、主として読出しテーブルに基づいたアルゴリズムにより迅速な暗号化が可能である。受信側における解読は、同様にして、即ち受信したメッセージの暗号化された各要素を、対応するルックアップテーブルの構成によりそれ自体の最初の要素に変換することにより行われる。
第４図は、単一のＴテーブルと単一のＰＲテーブルとを用いた実施例を示している。この実施例では、Ａ＝０、Ｂ＝１、・・・Ｚ＝２５であり、かつ全ての加算がモジュロ２６である。前記メッセージの各文字が前記置換えテーブルにより置き換えられた後、前記ＰＲテーブルの次の逐次項が加算されて、最初の文字を暗号化したものが提供される。
第５図は、２つのＤテーブルを用いた実施例を示している。しかしながら、第１のテーブル（Ｄ１）は、前記メッセージの文字毎に一度の回転シフト（即ち、下側の即ち出力行が１ステップ左側にシフトする）を行う。同様に第２テーブル（Ｄ２）が前記メッセージの２６文字毎に一度の回転シフトを行う。このように各文字について、第１テーブル（Ｄ１）の入力及び出力が１つに加算される。この結果を用いて第２テーブル（Ｄ２）をアドレス指定し、第２テーブル（Ｄ２）の対応する出力と合算する。
一般に前記セッションキーは、例えば１２桁までの長さの１０進数の数字で構成することができる。このようなセッションキーからＰＲテーブルを生成するための多くの手法が知られている。いずれの好適な方法を用いても、このようなセッションキーから置換えテーブルを生成することができ、その一例について次のテーブルを参照しながら説明する。
0003814687.tif 000006
前記セッションキーは、前記テーブルの最も右側にある縦列に記述されている。前記セッションキーの逐次項（前記列の最上部から開始する）を連続ステップで用いて、最上行に与えられている最初の順序（０、１、・・・９）を、最下行に与えられているＴテーブルに変換する。第１のステップでは、前記セッションキーの項「４」により、最初の行において、コラム４の項をコラム０の項と置き換える（第２の行における他の全ての項は第１の行のままである）ように指令する。第２のステップでは、前記セッションキーの項「１」により、コラム１における項をコラム１における項と置き換えるように指令する。第３のステップでは、前記セッションキーの項「３」により、コラム３の項をコラム２の項と置き換えるように指令する。このようにして、最後のステップにおいて、前記セッションキーの項「０」によりコラム０の項が最後のコラムの項と置き換えられるまで、手続が進められる。このようにしてＴテーブルが作られると、その各項が該Ｔテーブルの項のその対応する最初の項からの変位であるＤテーブルを生成することができる。
【図１】
0003814687.tif 000007
【図２】
0003814687.tif 000008
【図３】
0003814687.tif 000009
【図４】
0003814687.tif 000010
【図５】
0003814687.tif 000011