(57)【要約】【課題】コンピュータが読み取り可能のデータの暗号化に関して人による書き換えや伝送を容易にすること。【解決手段】暗号化されたワンタイムパッド鍵が物理的媒体によって又は中央提供からのコンピュータネットワークによって利用者に分配される、ワンタイムパッド暗号化システム。各ワンタイムパッド鍵は、鍵管理を容易にする鍵識別番号を有する。暗号化された各データセットは、メッセージがいかなる順序でも解読することができるように解読開始のためのワンタイムパッド鍵内のオフセットを識別するヘッダを含む。暗号化開始の前に、残りの不使用の鍵の長さは、暗号化されるべきデータセットの長さと比較される。人による書換え及び伝送を容易にするために、暗号化されたデータは、キーボードでの使用が容易な３８個のキーのサブセットとして表すことができ、好ましくは、２６個の西欧アルファベットの大文字、又はこれらに６個の数字を追加した計３２個の文字である。そのような暗号化を達成するために特化されたワンタイムパッド鍵はバイナリ暗号化ために用いることもできる。暗号化制御ボタンは、ユーザインターフェースへの付加としてワードプロセッサ及び他のプログラムに追加される。【選択図】図１
2004501532.tif 000002
【特許請求の範囲】
【請求項１】
暗号化されたバイト列からなるワンタイムパッド通信鍵であってランダムバイト列を組み立て、鍵暗号化用鍵を用いる暗号化処理の実行により前記ランダムバイト列を暗号化し、搬送体に挿入することによって作られたワンタイムパッド通信鍵を含む、コンピュータが読み込み可能のデータ搬送体。
【請求項２】
前記搬送体は物理的及び携帯可能のデータ記憶装置である、請求項１に記載の搬送体。
【請求項３】
前記搬送体はコンピュータ内の電子通信による搬送波信号である、請求項１に記載の搬送体。
【請求項４】
一対の、請求項１に記載の搬送体であって、各搬送体の前記通信鍵は、前記一対の搬送体の一方のための前記鍵暗号化用鍵と同一である鍵暗号化用鍵で暗号化される、一対の搬送体。
【請求項５】
一対の、請求項１に記載の搬送体であって、各搬送体の前記通信鍵は、前記一対の搬送体の一方のための前記鍵暗号化用鍵と異なる鍵暗号化用鍵で暗号化される、一対の搬送体。
【請求項６】
各搬送体の前記通信鍵はワンタイムパッド鍵で暗号化される、請求項４に記載の搬送体。
【請求項７】
各搬送体の前記通信鍵は反復鍵で暗号化される、請求項４に記載の搬送体。
【請求項８】
各搬送体の前記通信鍵は反復鍵で暗号化される、請求項２に記載の搬送体。
【請求項９】
前記ランダムバイト列のバイト値はバイト値セットに限定され、前記バイト値セットは、前記暗号化用鍵による前記暗号化処理が前記セットの外側に配置される暗号化されたバイト値を生じさせるように、全ての可能のバイト値より少ないバイト値を含む、請求項１に記載の搬送体。
【請求項１０】
サーバが、暗号化された一対のワンタイムパッド通信鍵の一方を送信側に及び他方を受信側にネットワークを通じて提供するための方法であって、
ａ．　ランダム数字発生器からのランダム数字列を受けること、
ｂ．　識別子で始まるワンタイムパッド通信鍵を作成するために前記ランダム数字列を用いること、及び
ｃ．　鍵暗号化用鍵で暗号化された前記通信鍵のコピーをコンピュータネットワークを通じてデータセットの送信側及びデータセットの受信側に伝送することを含む、方法。
【請求項１１】
前記鍵は複数のブロックを含み、各ブロックは該ブロックに関係づけられたブロック識別子を有する、請求項１０に記載の方法。
【請求項１２】
前記ブロックは連続４時間以上の連続的なストリームにおいて作成され、伝送される、請求項１１に記載の方法。
【請求項１３】
前記鍵暗号化方法はワンタイムパッド方法である、請求項１０に記載の方法。
【請求項１４】
前記鍵暗号化方法は反復鍵方法である、請求項１０に記載の方法。
【請求項１５】
前記通信鍵は、前記受信側のための前記鍵暗号化用鍵と同一である前記送信側のための鍵暗号化用鍵で暗号化される、請求項１０に記載の方法。
【請求項１６】
データセットを暗号化すべくコンピュータがワンタイムパッド通信鍵を用いるための方法であって、
ａ．　識別子を有する暗号化されたワンタイムパッド通信鍵を有すること、
ｂ．　前記ワンタイムパッド通信鍵を解読すること、
ｃ．　データセットを暗号化するために前記ワンタイムパッド通信鍵を用いること、及び
ｄ．　前記ワンタイムパッド通信鍵のための前記識別子と共に前記データセットを受信側に伝送することを含む、方法。
【請求項１７】
前記コンピュータはネットワークに接続され、前記ワンタイムパッド通信鍵は前記ネットワークを通じてサーバから受けられる、請求項１６に記載の方法。
【請求項１８】
前記通信鍵は複数のブロックを含み、前記識別子は前記ブロックに関係づけられたブロック識別子を含む、請求項１７に記載の方法。
【請求項１９】
各ブロックの一部は前記データセットを暗号化するために用いられ、各ブロックの残りの部分は捨てられる、請求項１８に記載の方法。
【請求項２０】
前記鍵解読方法はワンタイムパッド方法である、請求項１６に記載の方法。
【請求項２１】
前記鍵解読方法は反復鍵方法である、請求項１６に記載の方法。
【請求項２２】
前記データセットを暗号化する方法はバイナリ暗号化による、請求項１６に記載の方法。
【請求項２３】
前記データセットを暗号化する方法は、キー入力可能の文字セットを有する暗号文を生じさせる、請求項１６に記載の方法。
【請求項２４】
コンピュータが、暗号化されたデータセットを受け、該データセットを解読するためにワンタイムパッド通信鍵を用いる方法であって、
ａ．　暗号化されたワンタイムパッド通信鍵を有すること、
ｂ．　前記ワンタイムパッド通信鍵を解読すること、
ｃ．　暗号化されたデータセットを受けること、及び
ｄ．　前記データセットを解読するために前記ワンタイムパッド通信鍵を用いることを含む、方法。
【請求項２５】
前記コンピュータはネットワークに接続され、前記ワンタイムパッド通信鍵は前記ネットワークを通じてサーバから受けられる、請求項２４に記載の方法。
【請求項２６】
前記通信鍵は複数のブロックを含み、各ブロックは該ブロックに関係づけられたブロック識別子を有する、請求項２５に記載の方法。
【請求項２７】
各ブロックの一部は前記データセットを解読するために用いられ、各ブロックの残りの部分は捨てられる、請求項２６に記載の方法。
【請求項２８】
前記鍵解読方法はワンタイムパッド方法である、請求項２４に記載の方法。
【請求項２９】
前記鍵解読方法は反復鍵方法である、請求項２５に記載の方法。
【請求項３０】
前記データセットを解読する方法はバイナリ解読法による、請求項２４に記載の方法。
【請求項３１】
前記データセットはキー入力可能の文字セットを有する暗号文を含み、前記解読の方法は前記文字セットの文字数に基づく、請求項２４に記載の方法。
【請求項３２】
人が暗号文を容易に読みかつキー入力をすることができるように平文の文字を暗号化する方法であって、
ａ．　西欧アルファベットの少なくとも２６個の文字を含むキー入力可能の暗号文文字セットを有すること、
ｂ．　西欧アルファベットの少なくとも２２個の小文字とは異なる平文の各文字を、前記平文の文字を表すように定義された前記キー入力可能の暗号文文字セットの一対の２文字であって該２文字の一つの文字は２文字対においてのみ用いられ、これによって、２文字対の存在を示す２文字と置換すること、及び
ｃ．　暗号化方法を用いることによって、前記暗号文を生じさせるべく前記中間の文の各文字を前記キー入力可能の暗号文文字セットの文字と置換することを含む、方法。
【請求項３３】
前記暗号化方法はワンタイムパッド方法である、請求項３２に記載の方法。
【請求項３４】
前記キー入力可能の暗号文文字セットは３２個の文字を含む、請求項３２に記載の方法。
【請求項３５】
メタデータが、バイナリ暗号化又はキー入力可能の文字セット暗号化のいずれかを示す前記データセットに追加される、請求項３２に記載の方法。
【請求項３６】
人が暗号文を容易に読みかつキー入力をすることができる暗号文の文字のデータセットを解読する方法であって、
ｄ．　西欧アルファベットの少なくとも２６個の文字を含むキー入力可能の暗号文文字セットを用いる暗号文にデータセットを有すること、
ｅ．　鍵を用いて前記データセットを解読することによって中間文を生じさせること、及び
ｆ．　平文の文字を表すように定義された前記キー入力可能の暗号文文字セットの一対の２文字を示すために用いられる文字を含む前記中間文の文字対を識別し、各文字対と前記表された平文の文字とを置換することを含む、方法。
【請求項３７】
前記解読方法はワンタイムパッド通信鍵を用いる、請求項３６に記載の方法。
【請求項３８】
前記キー入力可能の暗号文文字セットは３２個の文字を含む、請求項３６に記載の方法。
【請求項３９】
さらに、解読のために前記鍵の使用を開始するための前記鍵のオフセット位置を決定するためのオフセットを特定する前記データセットを有するメタデータを用いることを含む、請求項２７に記載の方法。
【請求項４０】
キー入力可能の暗号文文字を生じさせるためのワンタイムパッド通信鍵であってバイト値が４８又はそれより少ない値に制限されたランダムバイト列を組み立て、前記ランダムバイト列のコピーを前記搬送体に挿入することによって作られたワンタイムパッド通信鍵を含む、コンピュータが読み込み可能のデータ搬送体。
【請求項４１】
前記搬送体は物理的及び携帯可能のデータ記憶装置である、請求項４０に記載の搬送体。
【請求項４２】
前記搬送体はコンピュータ内の電子通信による搬送波信号である、請求項４０に記載の搬送体。
【請求項４３】
前記バイト値は３２又はそれより少ない値に制限される、請求項４０に記載の方法。
【請求項４４】
前記ランダムバイト列はこれが前記搬送体に挿入される前に暗号化される、請求項４０に記載の方法。
【請求項４５】
前記暗号化方法は反復鍵方法である、請求項４４に記載の方法。
【請求項４６】
キー入力可能の文字暗号文又はバイナリ暗号文を生じさせるために通信暗号化用鍵を用いるコンピュータ方法であって、
ａ．　データセットと暗号化用鍵とを有すること、
ｂ．　前記データセットがキー入力可能の暗号文文字及びバイナリ形式のいずれに暗号化されるかの選択を利用者から受けること、
ｃ．　利用者がキー入力可能の暗号文文字を選択したとき、前記データセットを、バイト値が４８又はそれより少ない値に制限されるバイト列からなるキー入力可能の暗号文文字に暗号化するべく前記暗号化用鍵を用いること、及び
ｄ．　利用者がバイナリ形式を選択したとき、バイト値が制限されないバイト列からなるバイナリ形式に前記データセットを暗号化するべく前記暗号化用鍵を用いることを含む、方法。
【請求項４７】
前記暗号化用鍵はワンタイムパッド通信鍵である、請求項４６に記載の方法。
【請求項４８】
前記暗号化用鍵は、暗号化され、また、前記データセットを暗号化するために前記鍵が用いられる前に鍵暗号化用鍵で解読される、請求項４７に記載の方法。
【請求項４９】
前記暗号化用鍵は反復暗号化用鍵である、請求項４６に記載の方法。
【請求項５０】
さらに、前記暗号化されたデータセットがバイナリ形式及びキー入力可能の暗号文文字形式のいずれであるかを示すヘッダを前記暗号化されたデータセットに追加することを含む、請求項４６に記載の方法。
【請求項５１】
前記キー入力可能の暗号文バイト値は３２又はそれより少ないバイト値に制限される、請求項４６に記載の方法。
【請求項５２】
キー入力可能の文字暗号文又はバイナリ暗号文を解読するための通信暗号化用鍵を用いるコンピュータ方法であって、
ａ．　暗号化されたデータセットと解読用鍵とを有すること、
ｂ．　前記データセットがキー入力可能の暗号文文字又はバイナリ形式から解読されるべきか否かの指示を受けること、
ｃ．　前記指示がキー入力可能の暗号文文字セットであるとき、バイト値が４８又はそれより少ない値であるバイト列からなるキー入力可能の文字暗号文から前記データセットを解読するために前記解読用鍵を用いること、及び
ｄ．　前記指示がバイナリ形式であるとき、バイト値が制限されないバイト列からなるバイナリ形式から前記データセットを解読するために前記解読用鍵を用いることを含む、方法。
【請求項５３】
前記解読用鍵はワンタイムパッド鍵である、請求項５２に記載の方法。
【請求項５４】
前記解読用鍵は暗号化され、前記鍵は、前記データセットを解読するために前記鍵が用いられる前に鍵暗号化用鍵によって解読される、請求項５３に記載の方法。
【請求項５５】
前記解読用鍵は反復暗号化用鍵である、請求項５２に記載の方法。
【請求項５６】
さらに、前記データセットがバイナリ形式及びキー入力可能の暗号文文字形式のいずれであるかを示す前記暗号化されたデータセットのヘッダから前記情報を受けることを含む、請求項５２に記載の方法。
【請求項５７】
前記キー入力可能の暗号文バイト値は３２又はそれより少ない値に制限される、請求項５２に記載の方法。
【請求項５８】
既に用いられたワンタイムパッド暗号化用鍵が用いられる可能性を最小にするためのコンピュータ方法であって、
ａ．　ワンタイムパッド暗号化用鍵を挿入するための命令をコンピュータシステムに受けること、
ｂ．　前記暗号化用鍵を挿入し、前記鍵を識別する識別子を前記コンピュータシステムのレジストリに配置すること、及び
ｃ．　前記鍵を再挿入するように命令を受けたとき、前記識別子のための前記レジストリを調べ、前記識別子が存在するときには前記鍵のさらなる使用を中止させるように動作することを含む、方法。
【請求項５９】
さらに、前記鍵が用いられたとき、どの部分が用いられずに残っているかを示し、前記用いられずに残っている部分が閾値より小さいときにのみさらなる使用を中止させるように動作する前記レジストリに使用情報を追加することを含む、請求項５８に記載の方法。
【請求項６０】
さらに、前記閾値より大きな部分が用いられずに残っている間に前記鍵を削除するための命令を受けたとき、前記閾値より大きな部分が用いられずに残っている場合においてもさらなる使用を中止するように動作することを含む、請求項５９に記載の方法。
【請求項６１】
データ及び関係づけられたメタデータを含む、コンピュータが読み込み可能のデータ搬送体であって、
ａ．　前記メタデータはオフセット数字を含み、及び
ｂ．　前記データは、前記オフセット数字によって特定された鍵内の位置で始まるワンタイムパッド暗号化処理でデータセットを暗号化することによって、エンコード化がされる、搬送体。
【請求項６２】
前記搬送体はコンピュータ内の電子通信による搬送波信号である、請求項６１に記載の搬送体。
【請求項６３】
前記搬送体は物理的及び携帯可能のデータ記憶装置である、請求項６１に記載の搬送体。
【請求項６４】
前記メタデータは、前記鍵を識別する鍵識別番号を含む、請求項６１に記載の方法。
【請求項６５】
前記メタデータは、エラーのために前記データを調べるための情報を含む、請求項６１に記載の方法。
【請求項６６】
コンピュータが、特定のオフセットを有する暗号化されたデータを受け、前記データセットを解読するために前記オフセットを用いるための方法であって、
ａ．　ワンタイムパッド通信鍵を有すること、
ｂ．　暗号化されたデータセットを特定のオフセットと共に受けること、及び
ｃ．　前記オフセットによって特定された前記鍵の位置で始まる前記ワンタイムパッド通信鍵を用いて前記データセットを解読することを含む、方法。
【請求項６７】
前記データは、前記鍵を識別する鍵識別番号を含む、請求項６６に記載の方法。
【請求項６８】
前記データは、エラーのために前記データを調べるための情報を含む、請求項６６に記載の方法。
【請求項６９】
コンピュータが、特定のオフセットを有する暗号化されたデータセットを生じさせるための方法であって、
ａ．　ワンタイムパッド通信鍵を有すること、
ｂ．　前記鍵内のオフセット位置で始まるデータセットを暗号化するために前記鍵を用いること、及び
ｃ．　前記オフセット位置を特定するオフセット数字を前記データセットに追加することを含む、方法。
【請求項７０】
前記鍵を識別する鍵識別番号が前記データセットに追加される、請求項６９に記載の方法。
【請求項７１】
エラーのために前記データセットを調べるための情報が前記データセットに追加される、請求項６９に記載の方法。
【請求項７２】
データ及び関係づけられたメタデータを含む、コンピュータが読み取り可能のデータ搬送体であって、
ｃ．　前記メタデータは、暗号化用鍵を識別する識別子を含み、
ｄ．　前記データは、前記暗号化用鍵でデータセットを暗号化することによってエンコード化がされる、搬送体。
【請求項７３】
前記搬送体はコンピュータ内の電子通信による搬送波信号である、請求項７２に記載の搬送体。
【請求項７４】
前記搬送体は物理的及び携帯可能のデータ記憶装置である、請求項７２に記載の搬送体。
【請求項７５】
前記暗号化用鍵は、前記データが暗号化されたワンタイムパッド暗号化用鍵である、請求項７２に記載の搬送体。
【請求項７６】
前記メタデータは、前記データの暗号化が開始された前記ワンタイムパッド暗号化用鍵内の位置を示すオフセット数字を含む、請求項７５に記載の搬送体。
【請求項７７】
前記メタデータは、エラーのために前記データを調べるための情報を含む、請求項７２に記載の搬送体。
【請求項７８】
コンピュータが、暗号化されたデータセットを受け、該データセットを解読するための通信鍵を用いる方法であって、
ａ．　識別子を有する通信鍵を有すること、
ｂ．　暗号化されたデータセットを前記通信鍵のための識別子と共に受けること、
ｃ．　前記通信鍵を選択するために前記識別子を用いること、及び
ｄ．　前記データセットを解読するために前記通信鍵を用いることを含む、方法。
【請求項７９】
前記コンピュータはネットワークに接続され、前記通信鍵は前記ネットワークを通じてサーバから受けられる、請求項７８に記載の方法。
【請求項８０】
前記通信鍵はワンタイムパッド鍵である、請求項７９に記載の方法。
【請求項８１】
前記通信鍵は複数のブロックを含み、各ブロックは該ブロックに関係づけられたブロック識別子を有する、請求項８０に記載の方法。
【請求項８２】
各ブロックの一部は前記データセットを解読するために用いられ、各ブロックの残りの部分は捨てられる、請求項８１に記載の方法。
【請求項８３】
前記データセットを解読する方法はバイナリ暗号化による、請求項７８に記載の方法。
【請求項８４】
前記データセットはキー入力可能の文字セットを有する暗号文を含み、解読の方法は前記文字セットの文字数に基づく、請求項７８に記載の方法。
【請求項８５】
コンピュータが、ワンタイムパッド通信鍵がデータセットを暗号化するために十分の長さを有するか否かを決定する方法であって、
ａ．　用いられずに残っている前記鍵の量の記録を有する暗号化されたワンタイムパッド通信鍵を有すること、
ｂ．　前記通信鍵で暗号化されるべきデータセットを有すること、
ｃ．　前記データセットの長さを決定すること、
ｄ．　前記長さと、用いられずに残っている前記鍵の量とを比較すること、及びｅ．　前記長さが、用いられずに残っている前記鍵の量より長いとき、前記データセットを暗号化するために前記鍵の使用を中止するように動作することを含む、方法。
【請求項８６】
前記データセットを暗号化する方法はバイナリ暗号化による、請求項８５に記載の方法。
【請求項８７】
ａ．前記データセットは文を含み、
ｂ．　前記長さが決定される前に、前記データセットは、４８又はそれより少ない文字数に制限された文字セットによって表された中間文に拡張され、
ｃ．　前記データセットを暗号化する方法は、キー入力可能の文字セットを有する暗号文を生じさせる、請求項８５に記載の方法。
【請求項８８】
ワードプロセッサユーザインターフェースへの追加を用いてワードプロセッサプログラムによって表示された情報の暗号化を利用者が命令することができるようにパーソナルコンピュータでコンピュータプログラムによって実行する方法であって、
ａ．　ワードプロセッサプログラムで表示された情報の選択を利用者から受けること、
ｂ．　前記ワードプロセッサプログラムのための視覚的ユーザインターフェース内に、前記情報を暗号化するための命令記号を前記利用者に提示すること、
ｃ．　前記命令記号の選択を前記利用者から受け、これに応じて、前記情報を暗号化すること、及び
ｄ．　前記情報の前記暗号化された版を前記表示装置に提示することを含む、方法。
【請求項８９】
前記暗号化はワンタイムパッド方法によって実行される、請求項８８に記載の方法。
【請求項９０】
前記情報は文であり、前記暗号化された版はキー入力可能の暗号文文字セットで表される、請求項８８に記載の方法。
【請求項９１】
ワードプロセッサユーザインターフェースへの追加を用いてワードプロセッサプログラムで表示された情報の解読を利用者が命令することができるようにパーソナルコンピュータでコンピュータプログラムによって実行する方法であって、
ａ．　表示装置に表示された暗号化された情報の選択を利用者から受けること、ｂ．　前記ワードプロセッサプログラムのための視覚的ユーザインターフェース内に、前記情報を解読するための命令記号を前記利用者に提示すること、
ｃ．　前記命令記号の選択を前記利用者から受け、これに応じて、前記情報を解読すること、及び
ｄ．　前記情報の前記解読された版を前記表示装置に提示することを含む、方法。
【請求項９２】
前記暗号化はワンタイムパッド方法によって実行される、請求項９１に記載の方法。
【請求項９３】
前記暗号化された情報は、キー入力可能の暗号文文字セットで呈示される、請求項９１に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータが読み取り可能のデータを暗号化することに関し、特に、ワンタイムパッド（ｏｎｅ−ｔｉｍｅ−ｐａｄ）暗号化方法、及び、人による書き換えや伝送を容易にするためのキー入力可能の暗号文文字セットの使用に関する。
【０００２】
【従来の技術】
コンピュータの出現以前は、適切な鍵を有する当事者（ｐａｒｔｙ）が平文を見るべくメッセージを解読することができるように、平文を暗号化して暗号文にするために、多くの方法が改良された。このような方法は、典型的には人がペンと紙で実行するものや、後には電信や電報あるいはテレタイプでの使用のために改良されたものであった。
【０００３】
暗号化及び解読のための鍵がメッセージと同じぐらい長いとき、該方法は「ワンタイムパッド（以下「ＯＴＰ」という。）」暗号化方法として参照され、鍵又は鍵の派生を２回以上用いなければならないときのように、鍵がメッセージより短いとき、該方法は「反復鍵」暗号化方法として参照される。
【０００４】
コンピュータが最初に開発されたとき、暗号化用鍵の保存のための記憶装置は、扱うには高価かつ困難であった。ワンタイムパッド暗号化用鍵のための鍵は、メッセージと同じぐらい長く、ただ一度のみ用いられなければならない。したがって、反復鍵はワンタイムパッド鍵に関して好んで用いられた。なぜなら、それらは、非常に小さく、典型的には、数百又は数千倍も小さく、再利用することができるからである。公開鍵暗号方式として知られた、民間に普及している反復鍵は、暗号化及び解読のために、別々のかつ関連のある公開鍵と秘密鍵とを用いる。
【０００５】
十分に大きな暗号化されたメッセージサンプル及び十分に大きなメモリを有する十分に速いコンピュータを与えられれば、いかなる反復鍵暗号方式をも破ることができる。コンピュータ処理速度及び記憶容量の最近の増加に伴い、十分な秘密性を提供すると以前には考えられていた反復鍵暗号化方法が破られている。破ることができないと立証可能な唯一の暗号化方法がワンタイムパッドである。
【０００６】
ワンタイムパッド暗号方式の原形式は、ランダムな順序の２６個のアルファベット文字、１０個の数字及びわずかの句読点からなる鍵を用いて実行される。メッセージは、鍵と同じ文字セットに限定される。それがどのように機能するかを説明するために、３８個の文字の文字セットを想定する。各文字にゼロから３７までの範囲の値を割り当てるとき、暗号化処理は、メッセージの第１の文字とランダム鍵の第１の文字とを結合し、次いで、メッセージの第２の文字とランダム鍵の第２の文字とを結合することによって行われる。この結合処理は、桁上げを不要にする基礎３８（法３８）における文字値の加法又は減法とすることができ、暗号解読処理はこの逆である。したがって、値３５に値５を加えた合計は、値２を生じさせる。同様に、値２から値５を減じた結果は値３５になる。このようなワンタイムパッド暗号化処理は、鍵がセットの許可済みの数の文字と同じ数の可能な値を用いるとすれば、文字セットのいかなる数の文字でも実行することができる。したがって、２５６の可能の値を有する８ビットのバイトを暗号化するために、法２５６における加法（又は減法）が用いられる。可能の文字の数が２のべき数である二進数で機能するとき、暗号化処理又は解読処理は、法の加法又は減法と同じ結果を生じさせるために、排他的論理和演算を用いて極めて迅速に実行することができる。
【０００７】
１メガバイトのコンピュータ用ファイルを暗号化することは、再利用することができない１メガバイトの鍵を必要とする。非常に長い鍵を記憶するための安価なＣＤ及びＤＶＤの開発によって、コンピュータ通信のためにワンタイムパッド暗号化を用いることは現実になっている。
【０００８】
【課題を解決する解決手段、作用及び効果】
概要
インターネットの到来は、大きなワンタイムパッド鍵が、インターネットのようなネットワークに接続されたコンピュータに分配されることを可能にしている。ネットワークで分配されたワンタイムパッド鍵が傍受されてメッセージを解読するために用いられることがないように、ワンタイムパッド通信鍵それ自体が、鍵暗号化用鍵で暗号化されている。
【０００９】
鍵暗号化用鍵は、反復鍵又はワンタイムパッド鍵とすることができる。通信鍵が送信側及び受信側の双方に分配されたとき、両伝送を傍受する人が同一の内容を受け、その内容を解読することを助けるあらゆる内容の違いをも用いることができないように、鍵暗号化用鍵は両関係者のために同一であるとすることができる。これに代えて、分配された各鍵をただ一つのパーティすなわち当事者らのみが用いることができることを確実にするために、通信鍵は、固有の鍵暗号化用鍵で暗号化することができる。
【００１０】
有限長さの鍵を送信側及び受信側のそれぞれに分配する代わりに、サーバは、識別子を有する連続した鍵列を送信側及び受信側に送るように構成することができ、送信側及び受信側は、鍵列の一部を取り込み、それらを、自分たちのメッセージを暗号化及び解読するために用いることができる。この処理によって、ワンタイムパッド鍵列は、送信側及び受信側による使用のためにいつでも連続的に伝送することができ、結果として、終わりのない鍵になる。
【００１１】
連続的に伝送された鍵の受信ブロックは、用いられるまでバッファーに記憶される。送信側と受信側との間の通信が、各受信ブロックの全てを用いるために十分の帯域幅を要求しないとき、各ブロックの残りは捨てられる。
【００１２】
ワンタイムパッド通信鍵がＣＤ又はＤＶＤのような物理的媒体に分配されたとき、鍵データの暗号化は、通信プログラムの特定のコピーを除いて、通信鍵を解読するための適切な鍵暗号化用鍵で鍵を使用不能にさせる。
【００１３】
通信鍵が物理的媒体に記録されたとき、鍵は、全てのブロックの始めで開始するように用いることができるように、各ブロックのための識別子でブロックに分割され、鍵内の位置はオフセット数字で識別される。オフセット数字は、メッセージを解読するための鍵内の開始点を示すように、暗号化されたメッセージのためのメタデータヘッダとして含まれる。
【００１４】
同様に、メタデータヘッダは、受信側のコンピュータシステムでの鍵とメッセージとの整合を容易にするために、鍵の識別子を含む。また、メタデータヘッダは、長さとエラーチェックコードとを含み、両者とも、暗号化されたメッセージのエラーを調べるために用いられる。
【００１５】
物理的な媒体で受けたものであれ、ネットワークを通じた通信によって受けたものであれ、有限長さの鍵が用いられたとき、暗号化が始まる前に、メッセージの長さは、暗号化処理を完了するために鍵が十分に長いことを確実にするために、鍵の長さと比較される。
【００１６】
現代の西欧文字セットは、大文字、小文字、数字、記号及び句読点を含む９０個以上の文字を含む。標準のキーボードでシフトキーの使用を要求する文字は使用において不都合であり、０（ゼロ）とＯ（アルファベットのオー）とのような区別が困難の文字は、人が読む場合に不明瞭である。したがって、暗号文は、伝送処理における連結方法として人によってキー入力をされるか又は人によって話されるべきであるとき、シフトキーを用いることなくキー入力をすることができ、視覚的に区別することが容易である、各文字の大文字及び小文字のいずれかのみと付加的な記号のみとを含む制限された文字セットを用いることが好都合である。これは、キー入力可能の暗号文文字セットとして参照される。
【００１７】
一実施例において、この文字セットは、西欧アルファベットの２６個の大文字からなる。他の実施例において、文字セットは、２６個の大文字に６個の数字を追加した計３２個の文字からなる。３２が二進法演算を容易にする２のべきで求められる数であることから、３２個の文字を有する文字セットは確かな利点を有する。
【００１８】
メッセージを伝送するためのキー入力可能の暗号文文字セット（そのほぼ全ては３２個以上の文字を許す文字セットを用いる）を用いるために、平文文字のいくつかは２個の暗号文文字で表される。暗号文文字の数を最小にするために、最も一般的な２２個又は２６個の平文文字のそれぞれは、他の全てが２個の暗号文文字で表されている間、１つの暗号文文字で表される。
【００１９】
キー入力可能の暗号文文字セットへの暗号化のために好適なワンタイムパッド鍵は、各バイト値がキー入力可能の暗号文文字セット（４８個又はそれより少ない）の値の数、好ましくは、２６個又は３２個に限定されたランダムバイト列からなる。暗号化の前に、平文は、キー入力可能の暗号文文字セットのみを含む中間文になるように長くされる。次いで、中間文は、文字セットの文字数に限定されたバイト値を有するランダムバイト列で暗号化されたワンタイムパッドである。可能のバイト値が、２５６個の全ての可能の値より少なくない値に限定されている場合であっても、ワンタイムパッド通信鍵は、２５６個の全ての可能の値による暗号文へのバイナリ暗号化のために用いることができ、これにより、各鍵は２回使用される。
【００２０】
ワンタイムパッド暗号化用鍵が２回用いられたとき秘密が漏れるので、各鍵のための鍵識別番号は、コンピュータシステムのファイルに半永久的に書かれ、このファイルは、鍵が予め入力されていないことを確実にするために鍵が入力されたとき調べられる。ウィンドウズ（登録商標）オペレーティングシステムにおいて、このファイルは、「レジストリ」として知られている。この半永久的記録を削除するためには、前記オペレーティングシステムをコンピュータ装置に完全に再インストールするか又は特定のプログラムを、予め組み込まれた鍵をレジストリから削除するために、例えば、ウィンドウズ（登録商標）において提供される、レグエディット・エグゼ（ＲＥＧＥＤＩＴ．ＥＸＥ）と呼ばれる保守プログラムを用いることによって動作させなければならない。
【００２１】
開示のクライアントコンピュータ用の暗号化及び解読のコンピュータプログラムは、いかなるファイルタイプのいかなるコンピュータファイルでも動作する。このプログラムは、サブフォルダ及びファイルの全てを含むフォルダを暗号化することができる。暗号化ボタンが解読ボタンと共にワードプロセッサユーザインターフェースに示されるように、制御がワードプロセッサのためのユーザインターフェースに組み込まれ、同様のことを他のプログラムのためにすることができる。表示された情報が選択され、暗号化ボタンが押されたとき、表示されたデータが暗号化される。プログラムがキー入力可能の暗号文文字セットモードに構成されているとき、暗号化された情報は、好ましい文字セットで表示される。バイナリ暗号化モードが選択されたとき、暗号化された情報は、非表示文字を表す箱記号で表示されるか又は暗号化されたバイト値が表される表示可能の文字で表示される。
【００２２】
【発明の実施の形態】
以下の用語において、「平文（ｐｌａｉｎｔｅｘｔ）」は、文字及び記号のいずれかの暗号化されていない原バイトデータ又はバイナリバイトに参照される。マイクロソフト社ワード２０００をワード２０００と呼び、マイクロソフト社ウィンドウズ（登録商標）９８及びマイクロソフト社ウィンドウズ（登録商標）２０００のそれぞれをウィンドウズ（登録商標）９８及びウィンドウズ（登録商標）２０００と呼ぶ。
【００２３】
本発明の好ましい実施例は、破る又は解読することができない暗号文の作成を確実なものにするために、ワンタイムパッドアルゴリズムの完全版に一致するワンタイムパッド（以下「ＯＴＰ」という）暗号を用いて暗号化及び解読を実行するＩＢＭ社機互換パーソナルコンピュータにおいてマイクロソフト社のウィンドウズ（登録商標）９８やウィンドウズ（登録商標）２０００で動作するコンピュータプログラムである。
【００２４】
このプログラムは、以下のようなものを含み、いかなるメッセージ、他のデータ組をも暗号化し、その解読をする。
【００２５】
１．いかなるタイプの画像ファイル及び全てのエクセル形式ファイルをも含む、ウィンドウズ（登録商標）９８及びウィンドウズ（登録商標）２０００のプログラムによって作成された全てのファイル。
【００２６】
２．ワード２０００のツールバーに「暗号」及び「解読」ボタンを追加することによって文書内に作られる、ワード２０００の文書のサブセクション。
【００２７】
３．あらゆるサブフォルダの階層へのウィンドウズ（登録商標）フォルダ及びそれらのファイル内容、それら全階層のための１つの暗号化されたファイルを作ること。暗号が解読されとき、階層及びファイル内容は、以前の構造の完全なコピーに再び組み立てられる。
【００２８】
４．クリップボード内のウィンドウズ（登録商標）クリップボードの原文又は暗号文の内容。クリップボードを用いて、プログラムは、暗号化又は解読された文の情報をＲＡＭに記憶させることができ、このような情報を、ディスクに記憶させることなく、電子メールや他のウィンドウズ（登録商標）プログラムに組み入れることができる。これは、電子顕微鏡媒体走査及び他の技術によってハードディスク駆動装置のような磁気的記憶媒体の深い層の消去済み情報が発見されることを防止する。
【００２９】
５．プログラムのテキストウィンドウに示されたテキストメッセージ。
【００３０】
プログラムは、ファイルの十分な記憶及び導入能力を有し、暗号化及び解読されたファイルをあらゆるコンピュータ記憶媒体に記憶させることができる。
【００３１】
暗号化及び解読のための鍵
【００３２】
図１に示すように、２つの整合ＯＴＰ鍵５及び６、４及び７は、鍵中央提供１によって作成され、それを、使用のために各加入者２及び３に分配する。鍵４、５、６、７は、ＣＤやＤＶＤ−ＲＯＭ又は他のコンピュータ記憶媒体に記憶される。整合鍵は、ファイル又はテキストを暗号化又は解読するために、受信側と送信側とに所有されていなければならない。各鍵の各部分は、ただ１回の秘密を確実にするために、１回の暗号化のために用いられる。交換鍵は、製造業者からの許可の下で利用者によって作られた乱数発生器を用いてＯＴＰ鍵の中央源を提供する製造業者から購入される。鍵用ＣＤ及びＤＶＤ−ＲＯＭはコピー保護がされていてもよい。
【００３３】
鍵は、依頼者の要求及び記憶媒体の容量によっていかなる長さであってもよい。鍵データは、好ましくは、スウェーデン国のプロテゴ（Ｐｒｏｔｅｇｏ）社製の製品名ＳＧ１００と呼ばれる商業上入手可能な乱数発生器から作られる。
【００３４】
プログラムは、超大容量アレイ（以下「ＶＬＳＡ」という。）を含むあらゆるコンピュータ記憶媒体から鍵で動作する。しかし、秘密保持の理由から、プログラム鍵が、安全でないネットワークに接続されたコンピュータのハードディスクに組み込まれることは推奨されない。大きな鍵データベースのために、秘密通信装置又は単一コンソールサポート（以下「ＳＣＳ」という。）サーバと呼ばれる、申し込みデータベースの制御において組み込まれたサーバは、以下に説明するように、ＶＬＳＡを管理する。
【００３５】
プログラム機能
【００３６】
プログラムは、２つの主要モードで動作する。すなわち、人が暗号を読むことができない純二進法モードと、暗号文が結果として２６個の全て大文字の西欧アルファベット文字又はこの２６個の文字に６個の数字を追加した計３２個の文字において生じるキー入力可能の暗号文モードとである。バイナリ暗号化処理は非常に簡単であるので、プログラムのカーネル（ｋｅｒｎｅｌ）は、現在のウィンドウズ（登録商標）９８又はウィンドウズ（登録商標）２０００を有するコンピュータで音声又は実時間映像の通信を暗号化するために十分に速い。プログラムによって暗号化された原平文は、いかなる方法によっても破壊や変更がされず、その原位置に留まる。
【００３７】
プログラムは、ポップアップメニューを通して、利用者が主プログラムウィンドウを開いたり、ウィンドウズ（登録商標）クリップボードの内容を暗号化又は解読を行ったり、又はプログラムを閉じたりすることができるように、ウィンドウズ（登録商標）システムトレイにアイコンの記号を配置する。システムトレイのアイコンは、システムトレイに留まり、コンピュータが開始される各時刻に導入される、すなわちロードがされる。
【００３８】
図２に示すように、プログラムは、鍵の使用がプログラムによって調査されかつ利用者のために表示されたとき、鍵管理ウィンドウ２０を表示する。鍵がステータスバーの「鍵残存」の表示部及び各鍵のための鍵管理ウィンドウに「残存」データ表示部２１によって表示されたとき、鍵は、利用者によって削除され、再び使用されることはない。プログラムは、選択された鍵が、要求された暗号化量を処理するために十分に大きくなければ、暗号化が行われることを許可しない。鍵残存ステータスバーウィンドウは、選択された鍵に残った全バイト数を表示する。「カレント鍵」ステータスバーウィンドウは、利用者の個人名（ｇｉｖｅｎ　ｎａｍｅ）の提供又は利用者の認証がされていなければ、選択された鍵の鍵識別番号を表示する。複数の鍵は、１つのＣＤ又は他の記憶媒体に記憶することができ、全てが、プログラムの鍵管理ウィンドウを通して管理される。このようにして、複数のタイプの通信装置は、単純な２局装置から、より複雑な装置においてまで実行することができる。
【００３９】
原文暗号化文字セット
【００４０】
キー入力可能の暗号文モードでの原文暗号化の間、プログラムは、全ての句読点及び印字不能文字を含む全ての文字を、アスキー（ＡＳＣＩＩ、情報交換用米国標準コード）型の大文字ＡからＺまでの文字に変換し、結果として、人が読みかつキーボードで迅速にキーを打つことが容易な暗号文になる。図３に示すように、減少化がされた文字セットは、暗号文をファクシミリ文書又は他の紙上の文字のような印刷媒体からコンピュータに入力するような、非コンピュータに関連する暗号文転写を容易にする。それは、また、音声、モールス信号及び他の非コンピュータの直接伝送法によって、暗号文の伝送における正確さを促進する。ただ１つの大文字又は小文字を用いることによって、シフトキーを打つ必要性がない。大文字は、小文字と比べて、眼での識別が容易である。２６個の異なる文字は、５２個の異なる大文字及び小文字、６２個のアルファベット及び数字又はコンピュータ用標準キーボードの９４個の可能の文字と比べて、人が識別し、作業をすることに関して容易である。
【００４１】
標準コンピュータでの暗号文の各表示が適切な文字を示すように、キー入力可能の暗号文は、好ましい実施例において、標準８ビットアスキー値を用いる。しかし、２６個のみの文字がバイナリ数字で表されているとき、５ビットのみが必要である。５ビットは全部で３２個の文字を表すことができるので、６個を追加した文字を、暗号文をいかなる大きなものにさせることなく表すことができる。また、５ビットバイナリ数字の全ての可能の値が暗号文のために用いられたとき、暗号化のためのランダム文字は、一度に長いランダムビット列の５ビットを得ること、及び、好ましくは、ルークアップテーブルで８ビット表現形式に変換することにより作成することができ、これによって、いかなるランダムビットの源も、送信側、及び同じランダムバイナリビットの源にアクセスする受信側の双方に効率よく提供されるように用いることができる。
【００４２】
暗号文文字セットの３２個の文字を用いることの利益を好都合に用いるために、本発明に係る他の実施例においては、さらに、６個の文字が追加されている。好ましい文字は、１０個のアラビア数字のうちの６個である。なぜなら、全てのキーボードで使うことができ、モールス信号での表現を有するからである。１０個のうちのいかなる６個であってもよいが、好ましくは、前記６個は、２から７の数である。０（ゼロ）は、それがＯ（アルファベットのオー）に非常によく似ていることから、避けるべきである。１は、それが、ｌ、Ｌ及び｜に非常によく似ていることから、避けるべきである。６、８及び９は、ぼやけた又は不鮮明であとき、区別することが難しい。不鮮明な文字が特定のセットに限定されていることを知っていれば、その文字を判断することは最も容易であり、範囲が隣接していれば、可能な範囲の数を利用者に説明することは最も容易である。これらのことから、範囲２から７が好ましい。
【００４３】
シフトキーを用いることなく標準コンピュータで容易に打つことができる４８個の文字に設定される、２６個の文字、３２個の文字又は他の容易にキー入力をすることができる文字のいずれを用いる場合でも、文字セットは、好ましくは、キー入力可能の暗号文文字セットである。
【００４４】
キー入力可能の暗号文文字セットには３６個のみ又は４８個のみがあるので、結果として生じた、キー入力可能の暗号文文字セットに設定されたあらゆる標準文字の減少は、多くの文字が、キー入力可能の２個の文字として表され、平文文字とは異なる、非常に多くの暗号文になることが必要である。３２個の文字セットが用いられたとき、全ての小文字は、１対１の関係であり、ランダム暗号文文字に暗号化される。アクセントの付いた小文字を含む全ての非小文字は、暗号文の２個のランダム記号によって表される。この方法は、多くのメッセージが主として小文字からなるので、暗号文の展開を生じさせることを支援する。２６個の可能の文字のための１対１関係及び他の全ての文字のための２対１関係を用いるこの方法によって、表すことのできる文字の数は、２６＋３２×３２×３２×３２＝１，０４８，６０２個である。この数は、中国語の文字を含む全てのアルファベットの全ての既知の文字を表すために十分である。
【００４５】
２６個の文字を用いるこの実施例において、アルファベットの始めの２２個の小文字ａからｖは、暗号文との１対１の関係を与えられ、ｗ，ｘ，ｙ及びｚを含む残りの全ての文字は、暗号文の２個の文字で表される。これは、全部で２２＋２６×２６×２６×２６＝４５６，９９８個の文字の表現を可能にし、この数は、全ての既知の言語における全ての既知の文字を表すために十分である。
【００４６】
１対１又は２対１の関係を作るためのアルゴリズムは、以下のように実行される。まず、ａからｖ（３２個の文字セットの実施例においてはａからｚである。）とは異なるどの文字をも、Ｗ、Ｘ、Ｙ又はＺ（３２個の文字セットの実施例においては２から７である。）で始まる２個の文字の表現に置き換えることによって中間文を作成する。これは、平文の全ての文字を、許可された文字のセットに減少させる。次いで、中間文の２６個又は３２個の文字のそれぞれを、２６個又は３２個の文字の他の１つを鍵の２６個又は３２個の文字の隣の１つと結合させてランダムに生じた２６個又は３２個の文字の他の１つと置き換えることによって行う通常の方法でワンタイムパッド暗号化を行う。
【００４７】
テキストモードにおいて、プログラムは、ゼロ損失圧縮アルゴリズムを用いて出力ファイルの大きさを減少させるために、利用者に選択を提案する。この提案された選択オプションによって、プログラムの出力暗号ファイルは、記憶する前に自動的に大きさが著しく減少される。好ましいアルゴリズムは、ピーケー・ウェア社（ＰＫ　Ｗａｒｅ，　Ｉｎｃ．）（ＵＲＬはｈｔｔｐ：／／ｗｗｗ．ｐｋｗａｒｅ．ｃｏｍである。）製のソフトウェア製品名ピーケー・ジップ（ＰＫ　Ｚｉｐ）の分配者から認可される。暗号文の各文字は８ビットで表され、可能な２５６個の８ビット文字の外部にテキストモード暗号文の２６個又は３６個のみの異なる文字があるので、より大きな量のゼロ損失圧縮がテキストモードで可能である。バイナリモードにおいて、暗号文が完全にランダムであり、全ての可能なバイト値が用いられるので、圧縮は不可能である。
【００４８】
非ランダムにされた鍵
【００４９】
テキストで用いるために、前記したように、暗号文は、２６個又は３２個の文字からなる。したがって、ワンタイムパッド暗号化処理における使用のために、鍵は、これらの２６個又は３２個の文字のみを有し、各文字の発生回数は完全にランダムである。３２個の文字を用いる実施例のために、これは、あらゆる長いランダムビット列で開始し、一度にそれらを５個得ることによって達成される。原列がランダムであるとき、各５ビットのバイトは、３２個の可能の値のそれぞれをランダムに含む。８ビットアスキー値を用いて３２個のキー入力可能の文字を表すために、ルークアップテーブルは迅速にアスキー（ＡＳＣＩＩ）に変換する。したがって、３２個の文字の場合の実施例のために、同じ鍵データを、１１回に鍵を５ビット得るテキスト暗号化にも、また１回に８ビットを用いるバイナリ暗号化のいずれにのためにも用いることができ、テキストモードにおいて鍵の最後をより長くさせる。これに代えて、２６個の文字を用いる実施例又は３２個の文字を用いる実施例のいずれかのために、ランダムバイト列をたった２６個又は３２個の文字に減少させることは、ランダムバイト発生器を用いること（又は一度にランダムビットを８個を得ること、いずれも同じことである。）及びセット内の文字を表す２６又は３２のバイト以外の全てのバイトを捨てることによって達成される。
【００５０】
しかし、単なるランダム鍵ＣＤ又は他の鍵媒体がプログラムでの使用のために利用者に分配されたとき、媒体は、ランダムの文字又は数字の源として暗号化プログラムで用いることができる。同様に、プログラムは、ランダムの文字又は数字のいかなる源でも用いることができる。商業上の理由のために、好ましくは、プログラムのみが認可済みＣＤで使用可能であり、ＣＤのみが認可済みプログラムで使用可能である。したがって、鍵がディスクに記録される前に、鍵は、鍵にもはやランダム順序の文字を与えない逆アルゴリズムによって処理される。鍵媒体に記録された鍵が非ランダムであるとき、鍵は、鍵を再びランダムにさせる逆アルゴリズムによって、鍵を動作させることなく暗号化のために使用可能ではない。ランダム鍵で開始し、鍵を非ランダムにさせ、使用時に鍵を再びランダムにするこの処理は、非ランダム形式が各バイトのための２５６個の可能の値のいずれをも用いることができることから、２６個又は３２個の文字からなる８ビットバイトの原鍵と非ランダム形式の８ビットバイトの鍵との間の１対１の関係によって容易に達成することができる。
【００５１】
通信鍵がＣＤ、ＤＶＤ又は他の媒体に記録される前に各通信鍵を非ランダムにするために、多くの異なったアルゴリズムが用いられる。適切な方法は、何回も用いられたバイトの開始で通信鍵をＸＯＲ（排他的論理和演算）することによって、反復鍵で各鍵を暗号化用鍵に暗号化することである。バイト列は、好ましくは、１，０００バイトと５０，０００バイトとの間の長さを有し、ファイルとして記憶される。ＸＯＲ処理がバイト列の終わりに達したとき、ファイルポインタはファイルの始めにリセットされ、バイト列はファイルがファイル終了の表示部に達するまで再使用される。いかなる反復鍵の暗号は、バーナム（Ｖｅｒｎａｍ）、自動鍵又はＤＥＳのように用いられてもよい。
【００５２】
未加工の鍵データの反復鍵の不鮮明性によって、通信鍵は、利用者によって通常の方法で読み又は変更すること、又は競争相手の暗号化プログラムによってコピー及び使用することはできない。プログラムが鍵ファイルを読み込んだとき、鍵は、プログラムが用いる鍵の部分を解読するために、鍵自体の組み込み鍵暗号化用鍵を用いる。プログラムの版のために、全てのプログラムが同時に動作し、その版のための全ての鍵が全てのプログラムで動作するように、鍵暗号化用鍵は、プログラムの各場合において同じであり、各鍵の各場合において作成される。
【００５３】
バイナリ暗号化のための鍵の使用
【００５４】
音声及び映像の暗号化は人による入力を実際的でないものにさせる量であることから、プログラムのバイナリ暗号化の利用者選択オプションは、キー入力可能の暗号文文字セットを用いない。その代わりに、それは、８ビットバイトの原データを表すために暗号において２５６個の可能の全ての８ビットバイトを用いる。プログラムのバイナリ暗号化モードにおいて、各鍵のバイトと各平文のバイトとの間には直接の関係があり、結果として、鍵のバイトと平文のバイトとの間に１対１の関係がある。
【００５５】
キー入力可能の暗号文暗号化とバイナリ暗号との両方を行うことができるプログラムの版のために、キー入力可能の暗号文暗号化のために用いられる同じ鍵は、バイナリ暗号化のために用いることができる。鍵が２６文字の暗号化のために用いられるとき、暗号化処理は、鍵とを結合し、暗号文を作成するために、基礎の２６個の付加のためのアルゴリズムを用い、桁上げを捨て（２６付加法）、バイナリへの変換をする。バイナリ暗号化のために、処理は、非常に迅速に行われる。なぜなら、付加法は、暗号文を作成するために、平文と鍵とについて排他的論理和演算（ＸＯＲ）をビット毎に単純に実行することによって、バイナリで行うことができる。鍵が２６個のアスキー文字の８ビット値のみを含むので、各バイトは、２つのビット位置において同じ値を有する。したがって、各バイトのビットに関して、鍵は完全にはランダムでなく、暗号文の各バイトの２ビットは、容易に解読することができる。しかし、バイトレベルで、鍵における各バイトの値はランダムであり、残りのビットは解読されない。したがって、鍵は、秘密漏洩がなく、キー入力可能の暗号文暗号化のためと同様にバイナリ暗号化のために用いることができ、バイナリ暗号化は、全ての可能のバイト値と同じくらい速く動作する。
【００５６】
鍵ディスク内容
【００５７】
１以上の鍵を含む各記憶媒体は、３２バイトディスクＩＤで識別され、該ＩＤは、全ての共通のファイルシステムのファイル名において許可された文字（マイクロソフト社のシステムにおいては５８個の大文字・小文字を区別しない文字）のみからなる地球規模での固有識別番号（以下「ＧＵＩＤ」という。）である。好ましくは、各ＧＵＩＤは、ランダムの関係とは異なる後続文字間のアルゴリズムの関係で作成される。鍵ディスクを作成するための許可を受けた各利用者は、鍵作成処理の間各ディスクのために固有ディスクＩＤのＧＵＩＤを作成する。ディスクＩＤは、ファイル内容と同じ３２バイト名を有するファイルで記憶媒体に記憶される。
【００５８】
本発明に係る装置の１つの実施例において、マイクロソフト社によって公開されたＧＵＩＤ作成アルゴリズムが用いられる。このプログラムの２種類のコピーが、同一である２つのＧＵＩＤを作成することは理論的に可能であるが、その可能性は、極めて小さく、容認するに十分小さい。マイクロソフト社のＧＵＩＤ作成システムは、句読点としての中括弧及びダッシュを有する英数文字を用いる。ディスクＩＤとして使用のために、マイクロソフト社によって作成された中括弧及びダッシュは除去される。
【００５９】
他の実施例において、人が読みかつキー入力の容易さのために、ＧＵＩＤのために用いられる文字は、好ましくは、３２個のキー入力可能の暗号文文字（Ａ〜Ｚ及び２〜７である。）である。２つのＧＵＩＤが同じでないことを確実にするために、３２個の文字ＧＵＩＤの最後の４文字は、その特定のディスクの製造業者を識別するために蓄えられ、１，０４８，５７６個（３２×３２×３２×３２）の可能の製造業者の識別を可能にする。始めの２８個の文字は、全ての可能の数字（３２２８個）が用いられるまでは同じ数字を決して２回作成しないプログラムによって満たされる。
【００６０】
記憶媒体の各鍵のための情報は、その媒体のために必要であるいかなるファイル配置形式をも用いる大きなファイル内容として記憶される以下のデータからなる。
【００６１】
１．　最初の３２個の８ビットバイトは鍵識別番号（以下「ＫＩＮ」という。）であり、この番号は、前記したようにディスクＩＤにおいて許可された同じ文字を用いる地球規模の固有識別子である。再び、最後の４つの識別子は、一実施例において、鍵の製造業者を識別する。単純化のために、鍵暗号化を反復することは、ＫＩＮを含む、鍵ファイルの全内容に適用される。鍵がディスクに記憶されたとき、鍵識別番号は、非反復鍵暗号化形式において、媒体のファイルシステム内のファイル名としてファイルアロケーションテーブルにコピーがされる。
【００６２】
２．　一実施例において、ディスクＩＤは、他の記憶媒体にコピーをされるべく該ＩＤが鍵媒体の内容のために異なるように、第２の３２バイトとして記憶され、再設置され、再利用される。
【００６３】
３．　鍵自体は、原データの暗号化のために用いられる２６個又は３２個の文字の長いバイト列であり、反復鍵暗号化形式で記憶される。
【００６４】
好ましくは、一つの鍵（鍵識別番号を含む）又は１対の鍵は、これらは一つは暗号化のため及び他の一つは解読のためのものであり、ディスクＩＤファイルを除き、全媒体、通常はＣＤ又はＤＶＤを満たす。しかし、いかなる数の鍵も１つの記憶媒体に記憶することができ、媒体で用いられるいかなるファイル構成方法によっても、ファイルとしてそれぞれ記憶することができる。
【００６５】
鍵ファイル名は、暗号化用鍵のためのドットＥＮＣ（．ＥＮＣ）のファイル拡張子又は解読用鍵のためのドットＤＥＣ（．ＤＥＣ）のファイル拡張子が後続する、前記したようなＫＩＮからなる。以下に、ＫＩＮ及び鍵対のためのファイル名のために用いられるＧＵＩＤの例を示す。
【００６６】
【数１】
2004501532.tif 000003
【００６７】
鍵がコンピュータシステムに組み込まれたとき、鍵のオフセット数字（鍵の使用可能部分が最初に始まる鍵ファイルにおける配置が、始めの３２バイトＫＩＮに続く第３３番目のバイトである。）、大きさ、名前及びディスクＩＤは、コンピュータの常駐レジストリに記憶される。これらのレジストリの登録は、プログラムがインストールされる限りシステムに残り、鍵名、ディスクＩＤ及びオフセットからなる鍵情報は、プログラムが今後そのシステムで再インストールされる場合において、該プログラムがアンインストールされた後にレジストリに残る。特定のアンインストール処理は、プログラムの標準アンインストール機能とは別に、常駐レジストリデータを除去するために必要である。プログラムのアンインストール後のレジストリデータの持続は、最新時にプログラムがインストールされる他の場合であれば、鍵の故意でない再利用を防止することの助けになる。
【００６８】
もちろん、いかなる暗号体系も故意に誤用することができ、結果として、秘密閉鎖になる。１対のＣＤ又は同じ鍵を含む他の鍵媒体が、以前に鍵を用いなかった第１の対のコンピュータシステムで再び用いられることを防止する技術手段はない。このことは、深さ攻撃における分析を容易にするために、攻撃者が同じ鍵が用いられる大量のメッセージのコピーを受け取るとき、第１及び第２の利用者の両者のために秘密を漏らすので、利用者は、いかなるＣＤ又は用いられた鍵を含む他の記憶媒体を破壊するために強い誘因を有する。
【００６９】
暗号文の内容
【００７０】
プログラムによって作成された暗号文の本体は、以下のヘッダ情報（メタデータ）を含む。
【００７１】
【数２】
2004501532.tif 000004
【００７２】
ＫＩＮは、メッセージを作成するために用いられる鍵を識別する。オフセットは、プログラムが暗号化を開始するための使用可能の鍵（３２バイトのＫＩＮに後続する）の開始からの開始位置を表す。暗号化されたメッセージの長さは、観察されたメッセージの長さとこの数字とを単純に比較することによって、エラー検査を容易にさせるために用いられる。ＣＲＣは、エラー検出において用いられる暗号文のチェックサムである。バイナリ／テキストの表示は、受けるプログラムにバイナリモード又はキー入力可能の暗号文モードで暗号化するか否かを指示する。
【００７３】
各メッセージのオフセットが、プログラムがその特定の鍵内のメッセージの暗号化をどこで開始しなければならないかを識別するので、暗号化されたメッセージは、解読された鍵内の適切なインデックスを維持するために暗号化される順において暗号化されたメッセージが解読されるべき伝統的なワンタイムパッドとは異なり、いかなる順においても暗号化される、
【００７４】
ＣＲＣ（チェックサム処理）は、１００万文字の範囲の一つの文字の置換、減算又は加算を検出することができるアルゴリズムを用いる。１つの文字を他方の文字に変えるエラーは一般に筋の通らないものであるが、１つの文字をでさえ減じる又は加えることによって長さを変えることは、いかなる手段によってもメッセージを解読できないものにさせる。したがって、たった一つの文字が加えられるか又は減じられたとき、プログラムは暗号文を解読することを防止され、これにより、１対１の文字関係の検査はプログラムの設計において必須である。置換は、それが平文の１及び２文字との間でのみ影響するので、少なくとも有害である。しかし、ＣＲＣアルゴリズムは、首尾よく、それらを見つける。
【００７５】
プログラム動作
【００７６】
図２に示すように、鍵管理ウィンドウによってアクセスされた機能を用いて、媒体に記憶された各鍵が、以下のようにすることができる。
【００７７】
１．　インストールされる。インストールボタン２２は、鍵管理ウィンドウ２０における、反復鍵暗号化された鍵識別番号及び鍵使用情報とともにディスクＩＤ番号をウィンドウズ（登録商標）レジストリ（又は他のオペレーティングシステムのための同様のレジストリ）に登録し、鍵管理ウィンドウ２０に鍵情報を表示する。鍵ＣＤがインストールされないか又は鍵ＣＤが有効なディスクＩＤを含まないとき、メッセージは、インストールを行うことができないことを利用者に伝える。
【００７８】
２．　使用のために選択される。暗号化は、選択ボタン２３で選択された鍵で実行される。
【００７９】
３．　使用データとともに他のシステムから移動されるすなわちインポートされる。使用データは、インポートされた鍵の使用部分が再利用されないことを確実にするために用いられる。使用データは、ネットワークを通じてインポートされるか又はインポートボタン２４でフロッピー（登録商標）ディスクから読まれる。
【００８０】
４．　使用データと共に他のシステムに移動されるすなわちエクスポートされる。使用データは、鍵再利用が生じないことを確実にすることが必要である情報を受信システムに提供する。使用データは、ネットワークを通じてエクスポートされるか又はエクスポートボタン２５でフロッピー（登録商標）ディスクから読まれる。
【００８１】
５．　利用者の個人名で再命名されるすなわちリネームされる。初期化鍵名のために、鍵管理ウィンドウは、反復鍵暗号化された鍵識別番号（鍵識別番号として２行下にも鍵管理ウィンドウ２０に表示される。）のコピーを表示する。鍵名を右クリックすれば、利用者が「ジムのオフィス（Ｊｉｍ’ｓ　Ｏｆｆｉｃｅ）」又は「シアトルセンター（Ｓｅａｔｔｌｅ　Ｃｅｎｔｅｒ）」のようなあらゆる好ましい名前で鍵をリネームすることを可能にするメニューが示される。使用鍵の再組み込みをする意図をもって、原鍵名又はファイル名が利用者によって変更されたとき、埋め込まれたＫＩＮは、反復鍵暗号化された各新規鍵のＫＩＮと、コンピュータのレジストリに列挙された予め組み込まれた鍵のＫＩＮとを比較することによって、鍵再利用を防止する。組み込みは、整合があれば、許可されない。鍵名及び鍵ファイル名のいずれも比較においては用いられない。ＫＩＮは、あらゆる変更にもかかわらず鍵を、利用者によって作られた鍵名又は鍵ファイル名に、識別するために常に用いられる。
【００８２】
６．　削除される。削除ボタン２６を押すことによっていったん削除されると、鍵は、コンピュータのプログラムの組み込みが維持されている間、そのコンピュータで再利用することはできない。鍵を削除することは、鍵が完全に用いられ、盗まれることによって感染され、損傷され、又は他の不適当な状態にされたことを示すためにウィンドウズ（登録商標）レジストリを更新する。
【００８３】
鍵を都合のよい名前にリネームすることは、どの鍵を選択するかを利用者が知ることを容易にする。鍵を選択するために、利用者は、鍵管理ウィンドウの鍵の名前をクリックし、「選択」ボタンを押す。選択された鍵が、現在挿入されているＣＤ又は他の鍵記憶媒体に存在しないとき、プログラムは、適切な媒体を挿入するように利用者に求める。この要求は、選択された鍵を含む媒体が挿入されるか又は選択処理が取り消されるまで、繰り返される。
【００８４】
鍵が組み込まれたとき、ＫＩＮはプログラムによって読み込まれ、反復鍵は、暗号化され、ＧＵＩＤを作成するためのアルゴリズムに従って有効なＧＵＩＤとして認証される。ＧＵＩＤは、許された文字のみを含むことを確実にするために検査される。ＧＵＩＤは、ランダムの相関関係とは異なる後続文字間でのアルゴリズム相関関係で作成され、この相関関係は確かめられる。ＫＩＮが確かめられたとき、それは、その鍵のためのセクションの鍵管理ウィンドウ２０に表示される。ＫＩＮが正しくないか又は欠けているとき、プログラムは、関係ある鍵が組み込まれることを許可しない。
【００８５】
プログラムは、以下に説明する利用者選択オプションを含む一般オプションダイアログボックスを表示する。
【００８６】
「ウィンドウズ（登録商標）が起動したとき、プログラムを背景で動作させる」。このオプションは、メインプログラムを開くための代わりの方法として、暗号化及び解読の機能への容易なアクセスのためにプログラムのためのアイコンをシステムトレイに配置する。
【００８７】
「暗号化されたファイル及びフォルダのためのＺＩＰファイルを作成する」。この機能は、暗号化の最後のステップとして、自動的に、ファイルを標準のＺＩＰファイル形式に変換する。これは、ファイルを小さくし、何回も迅速にネットワーク伝送を行う。
【００８８】
「暗号化及び解読のファイルのための使用ウィザード」。このオプションは、ファイル及びフォルダの暗号化及び解読において利用者に指示するために、有益な手順案内すなわちウィザードを開く。
【００８９】
「迅速な暗号化及び解読」。このオプションは、経験を持った利用者がファイルを暗号化及び解読するために、ひとつのダイアログボックスを開く。
【００９０】
直接通信モード
【００９１】
プログラムは、２点の両位置が識別鍵を有するとき、２点間での直接通信のために用いられる。これは、直接通信モードと呼ばれる。２つの位置、以下のテーブルの位置Ａと位置Ｂとの間の通信は、プログラムが機能する最も基礎的な方法である。
【００９２】
【数３】
2004501532.tif 000005
【００９３】
「Ａの暗号化用鍵」は、「Ｂの解読用鍵」と、鍵の内容において同一である。「Ａの解読用鍵」は、「Ｂの暗号化用鍵」と、鍵の内容において同一である。位置Ａで、用いられたＡ暗号化用鍵量はプログラムによって追跡及び記憶され、位置Ｂで、Ｂ解読用鍵のために同じことが起こる。位置Ｂが位置Ａからのメッセージを受け取ったとき、Ｂ解読用鍵は、メッセージヘッダによって示されたオフセットで開始するメッセージを解読するために用いられる。
【００９４】
メッセージ及び鍵の内容が、鍵に埋め込まれたＫＩＮとメッセージヘッダに埋め込まれたＫＩＮ及びオフセットデータとによって結びつけられるので、解読用鍵は、受信側が秘密漏洩なく特定の暗号化メッセージを読むことを望む度に何度も用いることができる。特定のメッセージを暗号化するために用いられた鍵は他のあらゆるメッセージのために決して用いられず、したがって、暗号化されたメッセージを解読することができる回数に制限はない。これは、ドライブウェイ（Ｄｒｉｖｅｗａｙ）や同様のオンラインビジネスのような公開記憶センターに大量又は少量のメッセージを記憶させなければならない人々にとって、非常に有益である。暗号化されたメッセージは、利用者が鍵使用の課金なく望む回数だけダウンロードされ、解読される。
【００９５】
両局での暗号化用鍵は消耗可能であり、これは、メッセージが送出されたとき、暗号化用鍵はそれが他のメッセージを暗号化するためには非常に小さすぎるほどになるまで用いられることを意味する。したがって、プログラムは、残りの暗号化用鍵が、現在のメッセージのために非常に小さすぎ、利用者が他の鍵を選択又は組み込むことを促進させることを、利用者に伝える。対照によって、解読用鍵は、望む回数だけ用いられ、保存された暗号化メッセージが解読のために決して必要でなくなるまで、保たれる。
【００９６】
選択された鍵のために残っている暗号化用鍵の量は、鍵のファイル名又は利用者の割り当て名と共にプログラムのステータスバーに表示される。
【００９７】
いかなる２局も、それらの暗号化用鍵が消費され、それらが新規の鍵セットを組み込み再び始めるときまで、通信することができる。鍵セットは、１対のＣＤの各鍵のための６５０ＭＢ、ＤＶＤ−ＲＯＭの８ギガバイト又は十分に大きな記憶媒体のあらゆる容量と同じ大きさとすることができる
【００９８】
ＳＣＳサーバ通信
【００９９】
秘密通信システムサーバは、物理的に鍵を交換することができない２以上の人々間での、直接の、暗号化された通信を可能にする。通常、図１に示すように、通信することを望むパーティの１つは、中央源から整合されたセットを入手し、鍵ＣＤ又は他の記憶媒体を他方に物理的に渡し、通信を開始する。ある場合において、源から第１のパーティへの、又はそれらのいずれかから第２のパーティへの鍵ディスクの物理的引き渡しは可能ではない。この場合には、図１に示す鍵引き渡しは、図４に示す電子的通信によって達成される。
【０１００】
図４に示すように、２以上の人々がＳＣＳサービスに加入したとき、彼らは、それぞれ、プログラムと、ＳＣＳ分配センタからの通信鍵を人々がダウンロードすること許可するＳＣＳ鍵暗号化用鍵とを含む、ＣＤ又はより大きな記憶媒体を送られる。ダウンロードされた通信鍵はＳＣＳ鍵暗号化用鍵で暗号化され、これにより、ＳＣＳ鍵暗号化用鍵を有するパーティのみが暗号化又は解読のために通信鍵を用いることができる。ＳＣＳ鍵を有する暗号化は、ＫＩＮを含まない。通信鍵はＳＣＳ鍵で暗号化されるので、前記したような他の反復鍵不鮮明性は必要でない。各パーティがその通信鍵セットのコピーをダウンロードし、解読した後、関係のあるパーティは、ＳＣＳ分配センタを介してパーティの暗号化メッセージを渡すことなく、直接互いに交信するために、通信鍵を用いる。
【０１０１】
これは秘密性を高める、なぜなら、鍵がＳＣＳ分配センタからダウンロードされたとき該鍵はＳＣＳデータベースにおいて破壊されるからである。ＳＣＳデータベースは、鍵加入の所有者によってそのように要求されなければ、ダウンロードされた通信鍵のコピーを維持しない。ダウンロードされた鍵を用いる、加入者間の通信は、図４に示すように、通常、彼ら自身の電話回線、衛星装置又はインターネットを通じて、異なる接続によって行われる。
【０１０２】
図４に示すように、鍵の獲得は、以下の処理又はこの処理の変形によって制御される。加入者Ａ４２は、加入者Ｂの通信鍵組を要求する。ＳＣＳ分配センタ４１が加入者Ｂの通信鍵組を公開するために、交換が、加入者Ｂ４３によって予め認可されなければならない。認可後、加入者Ａは加入者Ｂの鍵組をダウンロードしてもよく、加入者Ｂは加入者Ａの鍵組をダウンロードすることができる。その後、ＳＣＳ分配センタの外部で、加入者Ａと加入者Ｂとの間で直接に通信が行われる。
【０１０３】
ＳＣＳ分配センタ４１は、通信鍵のコピーが加入者に送られたとき、そうするように特に要求されていなければ、コンピュータのコピーを破壊する。利用者の要求により保存された鍵すなわちアーカイブされた鍵は、利用者の費用負担で予め決められた時間又は期間、離れたＳＣＳ分配センタのサーバに保管される。
【０１０４】
前記したように、サーバによる伝送の前に、通信鍵自体は、加入のときにＳＣＳサービスへの各加入者に分配されるＳＣＳ鍵暗号化用鍵によって暗号化される。通信鍵は、要求によって作成され、ＳＣＳ鍵で暗号化され、通信を望む加入者に伝送されたとき、破壊される。暗号化された通信鍵は、５１２、１０２４又はそれより大きなブロックであるパケットの形で伝送され、各ブロックはＳＣＳサーバで破壊される前にプログラムによる動作において受け取られるように確かめられ、鍵を破滅させることからの伝送エラーを防止する。ＳＣＳ暗号化用鍵は、通信鍵を暗号化するために用いられ、非加入者又は他の非許可加入者によって傍受されて用いられることから通信鍵のブロックを防止する。他の加入者は、加入者間の認証なしに他方の加入者のために意図された通信鍵セットを獲得して用いることはできない。プログラムは、各通信鍵を利用者間での通信のために準備し、各通信鍵をそれが各利用者によって受け取られたとき解読する。
【０１０５】
最大の安全のために、ＳＣＳ鍵暗号化用鍵は、好ましくは、ダウンロードされるべき通信鍵セットと同じ長さを有するワンタイムパッド鍵であり、また、好ましくは、ＣＤやＤＶＤに物理的に配信されるか又はこれに代えてネットワークダウンロードによって配信される。サーバに保管された整合ＳＣＳ鍵暗号化用鍵が消費されたとき、加入者は、加入を更新するためのオプションを有し、ＣＤ、ＤＶＤ又は他の移動可能のコンピュータ記憶媒体に記憶された、又はネットワークダウンロードによって送られた、新規のＳＣＳ鍵を受け取る。
【０１０６】
この実施例においては、バイナリ暗号化のためにのみ用いられるので、通信鍵は、好ましくは、全ての可能のバイト値を用いる。したがって、ＳＣＳ鍵で暗号化されるべき平文は単に全ての可能のバイト値のランダムな順序にあることから、反復鍵を用いる暗号化方法は、平文が首尾よく解読されたとき人又はコンピュータによって平文が認識できないので、十分である。ＫＩＮは、このファイル名からわかるように、暗号化されていない。したがって、ＳＣＳ鍵は、異なるＳＣＳ鍵が各セットの交信する利用者に与えられるという条件で、ＲＳＡ公開鍵暗号化やＤＥＳ暗号化又は自動鍵暗号化や多くの他の方法のための反復鍵とすることができる。
【０１０７】
選択的に、開始位置、長さ及び終了位置でのそれぞれの通信鍵を送信側及び受信側にダウンロードすることに代えてり、ＳＣＳサーバは、終了することなく作成しかつ決して終わらない通信鍵を両パーティに伝送するように、また、暗号化キーＳＣＳ鍵で暗号化されるように、さらに、各ブロックの開始位置にブロック識別子を有するブロックに浸入されるように構成することができる。各ブロックのための望ましい長さは、１キロバイトと１メガバイトとの間にある。各ブロックのための好都合な識別子は、それが伝送される日時である。この場合において、秘密手段によって、１つのパーティは、送信側が、受信側に送られるメッセージを暗号化することを開始するために用いるブロックの識別子（日時）を他のパーティに特定する。次いで、受信側は、ＳＣＳサーバから送られた、ブロック識別子で開始する鍵を記録することを開始し、送信側から受け取られるメッセージを暗号解読するために決して終わらない十分な鍵を記録する。
【０１０８】
受けられた鍵及びメッセージは、いかなる長さの時間のために保持することができる。これに代えて、鍵は、揮発性メモリ（又は非持久記憶装置）のみに、メッセージと同様に鍵を消去する前に暗号解読のためにそれを用いるために十分長い時間のみにおいて保持することができる。次いで、メッセージのコピーを傍受したいかなる傍受者も、その全てのコピーが破壊されるので、送信側、ＳＣＳサーバ又は受信側に解読用鍵を明らかにさせることはできない。送信側も、またＳＣＳサーバも、コピーを決して保存せず、代わりに、それをオンザフライで作成するか又は用いるのみである。
【０１０９】
決して終わらない鍵は、実時間音声又は映像会議通信を暗号化するためにオンザフライで解読及び利用することができるような十分の速度で両パーティに作成し、伝送することができる。同時の二重通信のために、２つの決して終わらない鍵は同時に各パーティに伝送される。鍵作成速度は、そのような音声又は映像通信の最も速い速度のみを必要とする。バッファ装置は、速度の相違を調整するために用いることができる。通信が、鍵が供給される速度より遅いとき、暗号化は、平衡を放棄して、鍵の各ブロックの部分のみを用いる。
【０１１０】
中断することなく永久に連続して作成され、伝送される代わりに、鍵は、労働時間の間の毎日８時間や特定の４時間又は６時間のような、送信側及び受信側のために十分な時間にわたって単に作成し、伝送することができる。
【０１１１】
アーカイブ能力
【０１１２】
プログラムは、ファイルを、公開データベース又はローカルマルチユーザコンピュータへの記憶のために暗号化することができる。図５は、公開的にアクセス可能のあらゆるタイプの記憶装置５２に保存されたファイルを示す。
【０１１３】
公開記憶装置に記憶された暗号済みの全ファイルは全ての人によってダウンロードすることができるが、図５のシステム５１に示すように、これらのファイルに関係づけられた鍵を有する利用者のみが、それらを解読し、読むことができる。記憶装置は、記憶された暗号済みファイルを消去又は変更しうる行いで他の物理的かつハッカーの攻撃に対する通常基準を維持することを必要とするが、このふるい落としが記憶装置でのファイル機密性に関係する。暗号文への付加又は削減からなる損傷を復元することができなければ、ファイルは解読されない。置換損傷は、プログラムによって検出され、損傷ファイルは、解読のために捨てられる。
【０１１４】
多目的に使用可能の通信構造
【０１１５】
プログラムは、異なった方法で、複数の局間で通信するように構成することができる。３、４、５、８、１０及び２０の局又はあらゆる数の局のための鍵セットは、マスタ局、及び互いに、制限されたか又は自由な基準に基づいて、通信することができる。
【０１１６】
図６に示すように、プログラムは、互いの間で秘密に通信することができない３つのサブ局６２、６３及び６４と秘密に通信することができる。各サブ局の通信は、マスター局６１で受けとられ、暗号解読され、個々の応答がマスタ局から各サブ局へ送られる。サブ局３が誤ってサブ局１又は２からの通信を受けたとき、それを暗号解読することはできない。
【０１１７】
図２に示す鍵管理ウィンドウ２０は、複合鍵配列を扱うことを容易にする。各鍵は、個別に例えば「サブ局１」と呼ぶことができる。これは、特定の局のための適切な鍵を用いることの困難性を大いに減少させる。前記したように、利用者が、現在挿入されているＣＤにない鍵を選択したとき、プログラムは、挿入されるべき正しいＣＤを要求して、鍵選択における起こりうる誤りを減少させる。
【０１１８】
図７に示すように、相関関係は、サブ局７２、７３、７４がマスター局７１と同様に互いに秘密に通信することを可能にするように確立することができる。この通信形式は、広い地域別区域にわたって、又はデータが特定の部門内に記憶されるべきかつ企業内インターネットに記憶されるべき企業内に広がる調査グループ内で十分に機能することができる。
【０１１９】
プログラムは、多目的に用いることができるように設計されており、あらゆる通信の要求に整合するように構成することができる。たとえば、部門責任者は、暗号漏洩の心配をすることなく公開データベース又はインターネットを通じて部門長と交信することができる。部門長に送られた責任者の報告は、部門長の鍵を所有することを許可されない他のあらゆる人によって読まれることがない。
【０１２０】
認証、デジタル署名及び生体計測データ
【０１２１】
認証は、プログラムの暗号文プロトコルに組み込まれている。デジタル署名と同様に、鍵を所有する個人のみが、反対局からのメッセージを暗号解読することができる。メッセージが送信側の鍵で首尾よく解読されたとき、プログラムのロジックは、それは送信側の鍵にアクセスする人によって暗号化されなければならない条件を余儀なくさせる。したがって、プログラムが関係している限り、メッセージは、暗号化用鍵の所有者に源を発していれば本物であり、したがって、認証される。この認証処理は、鍵の窃盗のようにプログラムが確認することが不可能である他の変数は、生じなかったと仮定する。認証のほとんどの形式のように、暗号化のディスク又はデジタルの署名又は公開鍵暗号化装置のＰＧＰ鍵又は個人鍵は盗まれ、泥棒は認証された利用者である。プログラムは、また、暗号解読できない暗号文にある認証の他のレベルを加えることによって、メッセージ内容を有するパスワード又はＰＩＮ（個人識別番号）や生体計測データを暗号化することができる。
【図面の簡単な説明】
【図１】
コンピュータネットワークを通じて又はディスク上で、ワンタイムパッド通信鍵を作成し、それらを利用者に分配する処理を示す図。
【図２】
各利用者のための鍵管理ウィンドウを示す図。
【図３】
キー入力可能暗号文の文字セットがどのように用いられるかを示す図。
【図４】
サーバによってワンタイムパッド通信の分配に付加的な詳細を示す図。
【図５】
暗号化が、利用者によってにみ引き出されるべき秘密情報の安全な記憶のために単一の利用者によってどのように用いられるかを示す図。
【図６】
３つのサブ局のそれぞれとの分離秘密通信を示す図。
【図７】
４つのパーティの全部によってアクセス可能の秘密通信を示す図。
【符号の説明】
１　鍵中央提供
２、３　加入者
４、５、６、７　鍵
２０　鍵管理ウィンドウ
２１　残存データ表示部
４１　ＳＣＳ分配センタ
４２　加入者Ａ
４３　加入者Ｂ
５１　システム
５２　記憶装置
６１、７１　マスター局
６２、６３、６４、７２、７３、７４　サブ局
【図１】
2004501532.tif 000006
【図２】
2004501532.tif 000007
【図３】
2004501532.tif 000008
【図４】
2004501532.tif 000009
【図５】
2004501532.tif 000010
【図６】
2004501532.tif 000011
【図７】
2004501532.tif 000012
【国際公開パンフレット】
2004501532.tif 000013
2004501532.tif 000014
2004501532.tif 000015
2004501532.tif 000016
2004501532.tif 000017
2004501532.tif 000018
2004501532.tif 000019
2004501532.tif 000020
2004501532.tif 000021
2004501532.tif 000022
2004501532.tif 000023
2004501532.tif 000024
2004501532.tif 000025
2004501532.tif 000026
2004501532.tif 000027
2004501532.tif 000028
2004501532.tif 000029
2004501532.tif 000030
2004501532.tif 000031
2004501532.tif 000032
2004501532.tif 000033
2004501532.tif 000034
2004501532.tif 000035
2004501532.tif 000036
2004501532.tif 000037
2004501532.tif 000038
2004501532.tif 000039
2004501532.tif 000040
2004501532.tif 000041
2004501532.tif 000042
2004501532.tif 000043
2004501532.tif 000044
2004501532.tif 000045
2004501532.tif 000046
2004501532.tif 000047
2004501532.tif 000048
2004501532.tif 000049
2004501532.tif 000050
2004501532.tif 000051
2004501532.tif 000052
2004501532.tif 000053
2004501532.tif 000054
【国際調査報告】
2004501532.tif 000055