JP2005534965A - 暗号化及び復号化装置及び方法 - Google Patents

暗号化及び復号化装置及び方法 Download PDF

Info

Publication number
JP2005534965A
JP2005534965A JP2004524910A JP2004524910A JP2005534965A JP 2005534965 A JP2005534965 A JP 2005534965A JP 2004524910 A JP2004524910 A JP 2004524910A JP 2004524910 A JP2004524910 A JP 2004524910A JP 2005534965 A JP2005534965 A JP 2005534965A
Authority
JP
Japan
Prior art keywords
encryption
values
data
series
encrypted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2004524910A
Other languages
English (en)
Inventor
ジミー クリスチャン ホッツ
Original Assignee
エクストリーム セキュリティー ソリューションズ リミテッド リミテッド ライアビリティ カンパニー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by エクストリーム セキュリティー ソリューションズ リミテッド リミテッド ライアビリティ カンパニー filed Critical エクストリーム セキュリティー ソリューションズ リミテッド リミテッド ライアビリティ カンパニー
Publication of JP2005534965A publication Critical patent/JP2005534965A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Abstract

【課題】 暗号化及び復号化装置及び方法を提供する。
【解決手段】 データを暗合化/復号化する装置及び方法は、(a)各々がデータ値を暗合化/復号化値へ変換でき、データ値はデータのユニットに対応し、暗合化/復号化値は暗合化/復号化データのユニットに対応する、第1の複数の暗合テーブル、(b)各々があるパターンを持つ一連の値を含む、第2の複数の選択トラック、(c)第2の複数の選択トラックに接続されて、一連の組合された値を生成するために選択トラックの対応した値を組合わせるように構成されたトラック・ミキサー、(d)第1の複数の暗合テーブル及びトラック・ミキサーに接続されて、一連の組合された値中の組合された値に従いそのユニットに対して選択された暗号テーブルを使用してデータの各ユニットを暗合化/復号化データのユニットへ変換するように構成された暗合化/復号化モジュール、を備える。

Description

本願は、2002年7月27日に出願された同じ発明者の米国仮特許出願シリアル番号60/399,092の優先権を主張する。
本発明は暗号及び暗号システムに関する。より詳細には、本発明はデータの暗号化及び復号化装置及び方法、暗号化/復号化システムを自動的に設定する装置及び方法、暗号化/復号化方法を使用して第2装置を認証するための装置及び方法、そして暗号化/復号化システムのために使用される擬似乱数発生器に関する。
現在、さまざまな分野でいくつかの暗号方法が使用されている。暗号化システム(クリプトシステム)は、データ、特に、重要なデータが意図されない者による盗難、盗聴、又はハッキングされることを防止する。また、暗号化システムは、ユーザ間、さまざまなコンピュータ・システム間、及びユーザとコンピュータ・システム間の認証のために使用される。理想的には、暗号は、元の入力データを適当なキー無しには復号又は読むことが不可能な暗号化データに変形する。
暗号化システムは、例えば、対称的暗号化システム及び非対称的暗号化システムに分類するなど、いくつかの方法で分類できる。対称的暗号化システムはまた、情報を暗号化及び復号化するために単一のキー(秘密キー)を使用する秘密キー暗号と呼ばれる。1つのキーしかないから、安全なキーの交換の形式を必要とする(クーリエにより、人手により等)。非対称的暗号は、メッセージなどのデータを暗号化するために1つ(公開キー)、及び、それを復号化するために別のキー(プライベート・キー)の一対のキーを使用する、公開キー暗号と呼ばれる。
データ暗号規格(DES)は、単一の56ビット・キーを使用する対称的アルゴリズムである最も知られた暗号アルゴリズムの1つである。DESは、元のデータ(「平文」)をブロックに分割し、各ブロックが暗号化されたデータ(「暗号文」)を作成するために個別に複数ラウンド(反復して)処理されるブロック暗号を使用する。
他の従来の暗号アルゴリズム及び方法は、例えば、デジタル署名メッセージに典型的に使用される暗号ハッシュ関数、乱数発生器、一時パッド、158ビット・キーを使用するDESの安全形式である三重DES、128ビット・キーを使用したブロック・モード秘密キー暗号アルゴリズムである国際データ暗号アルゴリズム(IDEA)、RC4(広く使用されている対称キー・アルゴリズム)等を含む。さらに、先進暗号規格(AES)は、128ビット、192ビット、又は、256ビットの3つのキー長さを二者択一的に持つより強力な暗号スキームを提供する。
典型的に、コード破壊者又は攻撃者は、重要な情報を見るため又は暗号システムを利用するために正しいキーを見つけようと試みる。コード破壊者は、典型的に、正しいキーが発見されるまで数百万のキーを試すために数百又は数千のコンピュータを使用する。暗号文を解読するために可能なキーの全てを試す方法は、暴力攻撃と呼ばれる。暴力攻撃は、もし弱いキー又はパスワードが使用されるとしばしば成功するが、もし長いキーが使用されてキーが数と文字とが意味のないパターンで混合ものからなると困難である。システムの弱さは試す必要のあるキー数を減少する。さらに、暗号アルゴリズムを解析又は暗号システムの特定のパターンを発見するなどの他の多くの攻撃が存在する。
コンピュータに基づいた技術の絶え間の無い発展により、破られないと思われた安全方法は不十分になっている。例えば、DESの56ビット・キーのサイズはもはや暴力攻撃に対して安全とは見なされない。コンピュータの性能が絶えず改良されるにつれて、より安全なデータ転送及び記憶機構に対する必要性が増加している。したがって、政府の安全性から個人のオンライン取引までの全てのレベルについて、たとえ数千のスーパー・コンピュータを使用しても破ることが実際上不可能な暗号化システムを提供することが望まれる。
データを暗号化/復号化する装置。この装置は、(a)各々がデータ値を暗号化/復号化値へ変換可能であり、データ値はデータのユニットに対応し、暗号化/復号化値は暗号化/復号化データのユニットに対応している第1の複数の暗号テーブルと、(b)各々があるパターンを持つ一連の値を含む第2の複数の選択トラックと、(c)第2の複数の選択トラックに結合されて、一連の結合された値を生成するために選択トラックの対応する値を結合するように構成されたトラック・ミキサーと、(d)第1の複数の暗号テーブル及びトラック・ミキサーに結合されて、一連の結合された値中の結合された値に従いそのユニットに対して選択された暗号テーブルを使用してデータの各ユニットを暗号化/復号化データのユニットに変換するように構成された暗号/復号モジュールと、を含む。
本発明の1つの観点によると、装置はさらに、装置に独特な識別コードと、識別コードに関連した暗号/復号ファイルとして第1の複数の暗号テーブルと第2の複数の選択トラックとを含んだ第1データベース・メモリとを含む。第1データベース・メモリはさらに、暗号/復号ファイルとして、選択トラックの各々の値を修正しそして各選択トラックを別のトラックへ結合する方法を決定することができる設定パラメータの一組を含むことができる。
本発明の1つの観点によると、装置はさらに、第1データベース・メモリ上の暗号/復号ファイルとは異なる少なくとも1つの第2暗号/復号ファイルを記憶するように設計された第2データベース・メモリを含み、そして、第1メモリ上の暗号/復号ファイルは第2暗号/復号ファイルを送信のために暗号化し、又は、暗号化された第2暗号/復号ファイルを復号するように構成されている。
元のデータを暗号化/復号化データへ暗号化/復号化する方法。この方法は、(a)各々がデータ値を暗号化/復号化値へ変換可能であり、データ値はデータのユニットに対応し、暗号化/復号化値は暗号化/復号化データのユニットに対応している第1の複数の暗号テーブルを設け、(b)各々があるパターンを持つ一連の値を含む第2の複数の選択トラックを設け、(c)一連の結合された値を生成するために選択トラックの対応する値を結合し、(d)一連の結合された値の中の対応する結合された値に従いデータの各ユニットに対する暗号テーブルを選択し、(e)そのユニットに対して選択された暗号テーブルを使用してデータの各ユニットを暗号化/復号化データのユニットに変換する、ことを含む。
本発明の1つの観点によると、方法はさらに、(f)データベース・メモリ内に記憶されたソース・ファイルの中から第2の複数のソース・ファイルを選択し、(g)選択されたソース・ファイルの各々から一連の値を生成することを含む。方法はさらに、(h)設定パラメータを使用して一連の値の各々を修正すること、及び、(i)各トラックの値を他のトラックと結合するために使用されるべき数学演算を選択すること、の少なくとも1つを含んでも良い。
元のデータを暗号化/復号化データへ暗号化/復号化する装置。この装置は、(a)各々がデータ値を暗号化/復号化値へ変換可能であり、データ値はデータのユニットに対応し、暗号化/復号化値は暗号化/復号化データのユニットに対応している第1の複数の暗号テーブルを設ける手段と、(b)各々があるパターンを持つ一連の値を含む第2の複数の選択トラックを設ける手段と、(c)一連の結合された値を生成するために選択トラックの対応する値を結合する手段と、(d)一連の結合された値中の対応する結合された値に従いデータの各ユニットに対して暗号テーブルを選択する手段と、(e)そのユニットに対して選択された暗号テーブルを使用してデータの各ユニットを暗号化/復号化データのユニットに変換する手段と、を含む。
本発明の1つの観点によると、装置はさらに、(f)データベース・メモリ内に記憶されたソース・ファイルの中から第2の複数のソース・ファイルを選択する手段と、(g)選択されたソース・ファイルの各々から一連の値を生成する手段とを含む。装置はさらに、(h)設定パラメータを使用して一連の値の各々を修正する手段と、及び、(i)各トラックの値を他のトラックと結合するために使用されるべき数学演算を選択する手段と、の内の少なくとも1つを含んでも良い。装置はさらに、(j)各ユニットのデータ長を選択する手段と、及び、(k)選択する手段の操作と変換する手段とを同期させる手段と、の内の少なくとも1つを含んでも良い。
本発明の1つの観点によると、第1の複数の暗号テーブルは、データ値を暗号化/復号化値に変換するように構成された第1暗号テーブルと、データ値を暗号化/復号化値に変換するように構成された第2暗号テーブルとを含み、第2暗号テーブルの各々は対応する第1暗号テーブルにより暗号化/復号化された暗号化/復号化値を元のデータ値へ逆変換することができ、第1暗号テーブルの各々は対応する第2暗号テーブルにより暗号化/復号化された暗号化/復号化値を元のデータ値へ逆変換することができる。
本発明の1つの観点によると、第1の複数の暗号テーブルの各々はテーブル位置アドレスと関連付けられていて、そして装置はさらに第2暗号テーブルを対応する第1暗号テーブルから所定量のオフセットのテーブル位置アドレスと関連付けるための手段をさらに含む。暗号テーブルを選択する手段は、(d1)もしデータが暗号化されるならば、一連の結合された値を使用する暗号テーブルを選択する手段と、(d2)もしデータが復号化されるならば、所定のオフセットを持つ一連の結合された値を使用する暗号テーブルを選択する手段とを含む。暗号テーブルを選択する手段は、(d3)もしデータが送信されるならば、一連の結合された値を使用する暗号テーブルを選択する手段と、(d4)もしデータが受信されるならば、所定のオフセットを持つ一連の結合された値を使用する暗号テーブルを選択する手段とを含む。代替的に、装置は第1暗号テーブルの各々と対応する第2暗号テーブルの間に一対一の関連を提供する手段を含んでよい。
本発明の1つの観点によると、装置はさらに、結合された一連の値をテーブル位置アドレスと関連付ける手段と、テーブル位置アドレスと関連付けられた暗号テーブルを選択する手段とを含む。
装置と方法は、自動的に第2装置上の第2装置に独特な識別コードを含む暗号器/復号器及び識別コードと関連した設定ファイルを設定する。設定ファイルはデータを暗号化/復号化できる。装置は、第2装置から識別コードを受信する手段と、設定ファイルを含むデータベース・メモリから識別コードと関連した設定ファイルを検索する手段と、複数の暗号テーブルの中から暗号テーブルの一組を選択する手段と、複数の選択トラックの中から選択トラックの一組を選択する手段と、選択トラックの各々はソース・ファイルを使用して生成されたあるパターンを持つ一連の値を含み、複数の設定パラメータの中から設定パラメータの一組を選択する手段と、暗号テーブルの一組と選択トラックの一組と設定パラメータの一組とを識別コードに関連付ける手段と、暗号テーブルの一組と選択トラックの一組と設定パラメータの一組とを設定ファイルを使用して暗号化する手段と、暗号化された暗号テーブルの一組と暗号化された選択トラックの一組と暗号化された設定パラメータの一組とを第2装置へ送信する手段とを含む。方法は、(a)装置から識別コードを受信し、(b)設定ファイルを含むデータベース・メモリから識別コードと関連した設定ファイルを検索し、(c)複数の暗号テーブルの中から暗号テーブルの一組を選択し、(d)複数の選択トラックの中から選択トラックの一組を選択し、選択トラックの各々はソース・ファイルを使用して生成されたあるパターンを持つ一連の値を含み、(e)複数の設定パラメータの中から設定パラメータの一組を選択し、(f)暗号テーブルの一組と選択トラックの一組と設定パラメータの一組とを識別コードに関連付け、(g)暗号テーブルの一組と選択トラックの一組と設定パラメータの一組とを設定ファイルを使用して暗号化し、そして、(h)暗号化された暗号テーブルの一組と暗号化された選択トラックの一組と暗号化された設定パラメータの一組とを第2装置へ送信すること、を含む。
装置と方法は、第2装置に独特な識別コードと識別コードに関連した設定ファイルとを持つ第2装置を認証する。設定ファイルはデータを暗号化/復号化できる。装置は、第2装置から識別コードを受信する手段と、設定ファイルを含むデータベース・メモリから識別コードと関連した設定ファイルを検索する手段と、一連の値を生成して第2装置へその一連の値を送信する手段と、検索された設定ファイルを使用して一連の値を暗号化する手段と、暗号化された一連の値から第1チェック・サムを計算する手段と、第2装置においてその設定ファイルを使用して暗号化された一連の値から計算された第2チェック・サムを第2装置から受信する手段と、第2チェック・サムが第1チェック・サムと一致するかどうかを決定する手段と、もし第2チェック・サムが第1チェック・サムと一致したならば第2装置を認証する手段とを含む。方法は、(a)第2装置から識別コードを受信し、(b)設定ファイルを含むデータベース・メモリから識別コードと関連した設定ファイルを検索し、(c)一連の値を生成して第2装置へその一連の値を送信し、(d)検索された設定ファイルを使用して一連の値を暗号化し、(e)暗号化された一連の値から第1チェック・サムを計算し、(f)第2装置においてその設定ファイルを使用して暗号化された一連の値から計算された第2チェック・サムを第2装置から受信し、(g)第2チェック・サムが第1チェック・サムと一致するかどうかを決定し、そして、(h)もし第2チェック・サムが第1チェック・サムと一致したならば第2装置を認証することを含む。
本発明の1つの観点は、元のデータを暗号化/復号化データへ暗号化/復号化する方法を実行するために機械により実行可能な命令のプログラムを有形的に具現化した機械により読取可能なプログラム記憶装置を提供する。ここで、この方法は、(a)各々がデータ値を暗号化/復号化値へ変換可能であり、データ値はデータのユニットに対応し、暗号化/復号化値は暗号化/復号化データのユニットに対応している第1の複数の暗号テーブルを提供し、(b)各々があるパターンを持つ一連の値を含む第2の複数の選択トラックを提供し、(c)一連の結合された値を生成するために選択トラックの対応する値を結合し、(d)一連の結合された値の中の対応する結合された値に従いデータの各ユニットに対する暗号テーブルを選択し、(e)そのユニットに対して選択された暗号テーブルを使用してデータの各ユニットを暗号化/復号化データのユニットに変換する、ことを含む。
また、本発明の1つの観点は、装置に独特な識別コード及び識別コードに関連してデータを暗号化/復号化できる設定ファイルを含んだ装置上の暗号器/復号器を自動的に設定する方法を実行するために機械により実行可能な命令のプログラムを有形的に具現化した機械により読取可能なプログラム記憶装置を提供する。ここで、この方法は、(a)装置から識別コードを受信し、(b)設定ファイルを含むデータベース・メモリから識別コードと関連した設定ファイルを検索し、(c)複数の暗号テーブルの中から暗号テーブルの一組を選択し、(d)複数の選択トラックの中から選択トラックの一組を選択し、選択トラックの各々はソース・ファイルを使用して生成されたあるパターンを持つ一連の値を含み、(e)複数の設定パラメータの中から設定パラメータの一組を選択し、(f)暗号テーブルの一組と選択トラックの一組と設定パラメータの一組とを識別コードに関連付け、(g)暗号テーブルの一組と選択トラックの一組と設定パラメータの一組とを設定ファイルを使用して暗号化し、そして、(h)暗号化された暗号テーブルの一組と暗号化された選択トラックの一組と暗号化された設定パラメータの一組とを装置へ送信すること、を含む。
本発明の1つの観点は、装置に独特な識別コード及び識別コードに関連してデータを暗号化/復号化できる設定ファイルを含んだ装置を認証する方法を実行するために機械により実行可能な命令のプログラムを有形的に具現化した機械により読取可能なプログラム記憶装置を提供する。ここで、この方法は、(a)装置から識別コードを受信し、(b)設定ファイルを含むデータベース・メモリから識別コードと関連した設定ファイルを検索し、(c)一連の値を生成して装置へその一連の値を送信し、(d)検索された設定ファイルを使用して一連の値を暗号化し、(e)暗号化された一連の値から第1チェック・サムを計算し、(f)装置においてその設定ファイルを使用して暗号化された一連の値から計算された第2チェック・サムを装置から受信し、(g)第2チェック・サムが第1チェック・サムと一致するかどうかを決定し、そして、(h)もし第2チェック・サムが第1チェック・サムと一致したならば装置を認証することを含む。
擬似乱数生成器は、(a)複数の選択トラックを生成するように構成された選択トラック生成器と、(b)選択トラック生成器に結合されて、一連の結合された値を生成するために選択されたトラックの対応する値を結合するように構成されたトラック・ミキサーとを含む。選択トラック生成器は、複数のソース・ファイルを記憶するメモリと、メモリに結合されて選択されたソース・ファイルから一連の値を生成するように構成されたトラック・パターン・マネージャとを含む。トラック・パターン・マネージャはさらに、設定パラメータを用いて一連の値の各々を修正し、及び/又は、各トラックを他のトラックと結合するために使用される数学的演算を選択するように構成されている。
本発明の実施及び原理を説明するために、添付図面を参照して以下の詳細な説明にて、本発明の1つ又は複数の実施の形態を説明する。
(詳細な説明)
本発明の実施の形態が、暗号及び復号方法及び装置として、以下に詳細に説明される。当業者には、以下の本発明の詳細な説明が説明目的のみであり、限定する意図がないことが理解できる。この開示を読む当業者には本発明の他の実施の形態が容易に示唆される。以下に、添付図面を参照して本発明の実現を詳細にする。同じ参照符号が図面中及び以下の詳細な説明中で同一または同等の部分を示すために使用される。
簡潔さのために、ここには実現のためのルーチンの特徴の全てを記載しないし図示もしない。もちろん、実際の実現を開発する際、アプリケーション関連及びビジネス関連制約との一致など、開発者の特定の目標を達成するために、数多くの実現特有の決定がなされなければならず、そして、この特定の目標が開発者毎にそして実現毎に変化することが理解される。このような開発努力は複雑で時間がかかるが、それでもこの開示を読んだ当業者にとってはルーチンのエンジニアリングであることが理解できる。
本発明の1つの実施の形態では、部品、プロセス・ステップ、及び/又はデータ構造はさまざまなタイプのオペレーテイング・システム(OS)、計算プラットホーム、ファームウェア、コンピュータ・プログラム、コンピュータ言語、及び/又は、汎用マシンを使用して実現できる。方法は、処理回路上で実行されるプログラム・プロセスとして実行できる。処理回路は、プロセッサ及びオペレーテイング・システム、又は、スタンドアロン装置のさまざまな組合わせの形を取ることができる。プロセスは、このようなハードウェア、ハードウェア単体、又はそれらのいずれかの組合わせにより実行される命令として実現できる。ソフトウェアは、機械により読取可能なプログラム記憶装置上に記憶される。
さらに、当業者は、フィールド・プログラマブル・ゲートアレイ(FPGA)及びコンプレックス・プログラマブル・ロジックデバイス(CPLD)、アプリケーション・スペシフイック集積回路(ASIC)等を含むフィールド・プログラマブル・ロジックデバイス(FPLD)、ハードワイヤ装置など汎用性質の少ない装置も、ここに開示された本発明の精神及び範囲から逸脱することなく使用できることを理解できる。
本発明の1つの実施の形態によると、方法は、米国カリフォルニア州パル・アルトのサン・マイクロシステム社から入手できるソラリス(登録商標)、ワシントン州レドモンドのマイクロソフト社から入手できるマイクロソフト(登録商標)ウインドウズ(登録商標)XP及びウインドウズ(登録商標)2000、又は、いくつかのベンダーから入手できるリナックスなどのUnix(登録商標)オペレーテイング・システムのさまざまなバージョンなどのOSを走らせるパーソナル・コンピュータ、ワークステーション・コンピュータ、メインフレーム・コンピュータ、又は、高性能サーバーなどのデータ処理コンピュータ上で実現できる。方法は、複数プロセッサ・システム上、又は、入力装置、出力装置、ディスプレイ、ポインティング・デバイス、メモリ、記憶装置、プロセッサへ及びからデータを転送するためのメディア・インターフェイス等などのさまざまな周辺装置を含んだ計算環境中で実現できる。さらに、このようなコンピュータ・システム又は計算環境はローカル又はインターネットを介してネットワーク接続できる。
本発明の文脈において、「ネットワーク」という用語は、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、インターネット、ケーブル・テレビジョン・システム、電話システム、無線通信システム、光ファイバ・ネットワーク、ATMネットワーク、フレーム・リレー・ネットワーク、人工衛星通信システムなどを含む。このようなネットワークは、当業者に良く知られているので、これ以上は記載しない。
図1は、本発明を実現するのに適したコンピュータ・システム100のブロック図である。図1に示すように、コンピュータ・システム100は、中央プロセッサ104、システム・メモリ106(典型的にRAM)、入力/出力(I/O)コントローラ108、ディスプレイ・アダプタ112を経由したディスプレイ・スクリーン110などの外部装置、シリアル・ポート114及び116、キーボード118、固定ディスク・ドライブ120、フレキシブルディスク・ドライブ124、及びCD−ROM128を受け入れ可能なCD−ROMプレイヤー126などの主なサブシステムを相互接続するバス102を含む。シリアル・ポート114を経由して接続されたポインテイング装置130(例えば、マウス)及びシリアル・ポート116を経由して接続されたモデム132など、多くの他の装置が接続できる。モデム132は、POP(ポイント・オブ・プレゼンス)を経由してインターネットヘ又は電話リンクを解してリモート・サーバーへの直接接続を提供する。代替的に、ネットワーク・インターフェイス・アダプター134が当業者に既知のいずれかのネットワーク・インターフェイス・システム(例えば、イーサネット(登録商標)、xDSL、アップルトークTM)を使用したローカル又はワイド・エリア・ネットワークへのインターフェイスとして使用できる。
多くの他の装置又はサブシステム(図示しない)が同様な態様で接続できる。また、後で説明するように、本発明を実施するためには、図1に示された装置の全ては必要ではない。さらに、装置及びサブシステムは、図1に示されるとは異なった方法で相互接続できる。図1に示されるようなコンピュータ・システムの動作は業界には容易に知られているから、本明細書を複雑にしないために詳細には説明しない。本発明を実現するためのコードはシステム・メモリ106中に動作可能に配置され、又は、固定ディスク120、フレキシブル・ディスク124、又は、CD−ROM128などの記憶媒体上に記憶される。
図2は、本発明の1つの実施の形態によるデータの暗号化/復号化のための装置20を概略的に示す。本明細書では、暗号化/復号化は一般に暗号化及び復号化を実行することを意味する。しかし、また、この言葉は暗号化のみが実行され又は復号化のみが実行される場合を含む。図2に示すように、装置20は、第1の複数の暗号テーブル22、第2の複数の選択トラック24、トラック・ミキサー26、及び、暗号/復号モジュール(暗号器/復号器)28を含む。また、装置20は、入力データ30を受取り、そして、暗号化/復号化データ32を出力するように構成されている。もし、入力データ30が元のデータ(平文)である場合、装置20は入力データ30を暗号化して、暗号化データ(暗号文)32を出力する。もし、入力データ30が暗号化データ(暗号文)である場合、装置20は入力データ30を復号化して、復号化データ(又は、平文)32を出力する。
入力データ30は、メモリ上のファイル内に記憶され、そして暗号化又は復号化のために装置20に読み込まれる。入力データ30は、例えば、リアルタイム通信で送信されるオーディオ又はビデオ・データのリアルタイムで送信されるデータ・ストリームでもよい。同様に、暗号化/復号化データ32は、メモリ内に記憶されても良く、又は、データのストリームとしてリアルタイム通信で送信されてもよい。
暗号テーブル22の各々は、データ値を暗号化/復号化値へ変換できる。データ値は入力データ30のユニットに対応し、そして暗号化/復号化値は暗号化/復号化データ32のユニットに対応している。すなわち、装置20は入力データ30をあるデータ・ユニット、すなわち、ある数のデータ・ビット、により処理する。例えば、4、8、又は、16ビットを使用できる。しかし、ユニット・データ大きさは、単一ビットから、例えば、オーディオ又はビデオ・データ・ファイルのデータ・ビットの大きなストリングまでのどんな大きさであってよい。また、装置20は、データ・ユニットについてビット長を選択するためにデータ・ステップ大きさ選択器(図示しない)を含むことができる。デフォルト値は、8ビット(1バイト)として設定されている。
選択トラック24の各々は、あるパターンを持つ一連の値を含む。トラック・ミキサー26は選択トラック24に接続されていて、一連の組合わせられた値34を生成するために複数の選択トラック中の対応する値を組合わせる。暗号/復号モジュール28は、入力データ30の各ユニットを暗号化/復号化データ32のユニットへ、組合わせられた一連の値34中の組合わせられた値に従いそのユニットに対して選択された暗号テーブルを使用して変換する。
図2に示すように、暗号/復号モジュール28は、一連の組合わせられた値34中の現在の組合わせられた値に従い暗号テーブル22中から1つの暗号テーブルを選択するテーブル選択器36を含む。さらに、装置20は複数のソース・ファイル40から第2の複数の選択トラック24を生成する選択トラック生成器38を含む。
本発明の1つの実施の形態によると、暗号テーブルは、データ値から暗号化/復号化値へ1対1の変換を提供するためにユニット・データの全ての可能な値の各々に1つのインスタンスを含んだデータ・テーブルである。例えば、全ての可能な値は、行と列の格子、すなわち、行列に配列されて表される。図3Aは、暗号テーブルの構造を説明するために表示された暗号テーブル(「ユニタリ」暗号テーブル)50の一例を示す。暗号テーブル50は、各8ビット・データ値をそのデータ値自身(ユニタリ変換)へ変換し、従って、暗号のために使用されない。図3Aに示されるように、行位置52は第1ニブル(MSB4ビット)を表し、そして列位置54は1バイト(8ビット)入力データの第2ニブル(LSB4ビット)を表す。値は16進表示(0、1、..、F)で表示される。行及び列位置により指定される行列セルは、行列データ値の暗号化値を含む。暗号テーブル50はユニタリ変換(すなわち、暗号化しない)を行うため、各セルは元のデータ値自身を含む。
図3B及び図3Cは、実際に入力データ値を暗号化/復号化値へ変換する暗号テーブル60及び70をそれぞれ示す。行列セルは256の可能な値(00、01、..、FF)の同じ組を含むが、それらの位置は暗号テーブルの各々ではシャッフルされて再配置される。理論的には、256!(=256x255x254x...x2x1)の暗号テーブルがこの1バイト変換のために存在する(ユニタリ・テーブルを含む)。暗号テーブルの所望の数は、暗号テーブルの組を形成するために可能な暗号テーブルの中から選択される。選ばれた暗号テーブルの組又はグループは、暗号テーブル・バンクと呼ばれる。好ましくは、できる限り多くのデータ値が各暗号テーブル中で元のデータ値と異なる暗号値に変換される。暗号テーブル・バンク中の暗号テーブルは同様に互いにできる限り独特であることが好ましい。暗号テーブルはどんなサイズでもよい。例えば、暗号テーブル・バンクの大きさは、上述したように256、又は、512、1024、2048、4096等である。さらに、暗号テーブルは実際のテーブル・フォーマットに限定されず、入力データ値から暗号値への一対一の変換を行う限りいずれのフォーマットも使用できる。さらに、どんな数の暗号テーブルも暗号テーブル・バンク中に含むことができ、そして、暗号テーブル・バンクの大きさはカスタマイズできる。デフォルトのバンクの大きさは256テーブルである。
本発明の1つの実施の形態によると、暗号テーブル・バンク中の暗号テーブルの各々はテーブル位置アドレスを持ち、そして暗号テーブルはそのテーブル位置アドレスを使用して指定及び/又は選択される。例えば、このようなテーブル位置アドレスは暗号テーブル・バンク中の位置、又は、暗号テーブルを記憶する特定のメモリのメモリ・アドレスである。暗号テーブル・バンク中の暗号テーブルは番号が付けられて、そしてテーブル番号が暗号テーブルを選択するために使用されてもよい。
本発明の1つの実施の形態によると、選択トラック生成器38(図2)は以下の様に選択トラックを生成する。複数のソース・ファイル40はメモリ内に記憶されたデータ又はファイルであり、選択トラックを生成するために使用される。ソース・ファイル40は、オーディオ・ファイル(例えば、ノイズ・ファイル)、グラフイックス・ファイル(例えば、勾配ファイル)、パスワード(いずれの長さ及びいずれの数)、波形及びその変調、数学的関数(例えば、周期関数)、波形ルックアップ・テーブル等を含む。ソース・ファイル40は、使用時にプラグ挿入されるユニバーサル・シリアル・バス(USB)メモリ装置などのハードウェア・キーを含む。図4A及び図4Bは、ソース・ファイル40の例を示す。図4Aは、オーディオ・ノイズ・ファイルの部分の生の16進データを示し、そして、図4Bは、勾配グラフイック・ファイルの部分の生の16進データを示す。両データにおいて、各行上に、ファイル・アドレスが最左列から16バイトのデータで16進表示により示されている。さらに、選択トラックは、数学的変調器又はリアルタイム源としての発振器など、純ソフトウェア・モジュールにより生成できる。あるパターンを生成することのできるどんなソフトウェアも使用でき、そしてどんな同期技術もどんな数の選択トラックについて使用できる。
ソース・ファイル中に含まれるデータは、例えば、トラック・パターン・マネージャなどのソフトウェア・モジュールを使用して対応する一連の値に変換される。どんな数のソース・ファイルも所望の数の選択トラックを生成するために使用できる。ソース・ファイル中のデータが一連の値に変換される時、各値のビット数(ミキサー・ステップ・サイズ)が選択できる。このビット数は、入力データの各ユニットに対する暗号テーブルを選択するプロセスに使用できる。例えば、ミキサー・ステップ・サイズが8ビットであり、そして3つの選択トラックが存在する場合、8ビット値が各選択トラックから取られて、そして、3つの8ビット値が組合わせられて組合わせられた値になる。組合わせられた値は8ビットを越えるかもしれず、もし必要ならば、クリッピングなしにバッファされる。また、組合わせられた値は、例えば、値を組合わせる数学的演算が引算を含むため、負の値であるかもしれない。
さらに、ミキサー・ステップ・サイズは入力データが暗号化/復号化される入力データのユニット・サイズ(データ・ステップ・サイズ)から独立であることに注意する。例えば、オーディオ・データの場合、入力データは32ビット又は64ビット・ワードにより処理され、そして、各選択トラックの8ビットが32ビット(又は、64ビット)入力データを暗号化するための1つの暗号テーブルを選択するために使用される(組合わせられた後)。ミキサー・ステップ・サイズは8ビットに限定されず、ミキサー・ステップ・サイズのためにどんなビット数、例えば、4ビット、8ビット、16ビット等、が使用できる。もし、ミキサー・ステップ・サイズがnビットならば、一連の値(選択トラック値)の各値は、8ビットの場合について上述したように、nビットを持つ。
一連の選択トラック値が組合わせられる前、それらはある設定パラメータを用いて修正することができる。一連の値を生成し、さまざまなパラメータを設定し、そして設定パラメータにより値を修正するプロセスはリアルタイムで実行され(暗号/復号プロセスと同じ時間で)る。また、前処理されてデータ・ファイルとして記憶できる。
設定パラメータは、一連の値が対応するソース・ファイルからどのように生成されるかを指定できる。例えば、このような設定パラメータは、値、「引算値」及び「掛算値」を含む。設定パラメータ200は、装置20のための手動設定又はこれらのコンポーネント及びファイルを編集するためのユーザ・インターフェイスとして使用できる。しかし、これらの設定は、例えば、どんなタイプの擬似乱数発生器を使用して、設定パラメータのプールの中から自動的に選択できる。設定スクリーン及びその中のパラメータ値は例示のために表示されたものであり、限定する意図も網羅的な意図もないことに注意すべきである。
トラック・ミキサー26は、選択トラックの各々からの値を組合わせて、入力データを暗号化/復号化する必要がある限り、各ステップについて組合わせられた値を生成する。新暗号テーブル選択が、各プロセス・ステップで、すなわち、入力データの各ユニット長に対して、発生する。そして、一連の組合わせられた値が入力データの現在処理されているユニットについて暗号テーブルの1つを選択するために使用される。入力データの次のユニットが処理される時、一連の次の組合わせられた値がこの次のユニットを処理するために次の暗号テーブルを選択するために使用される。すなわち、この意味では、暗号テーブルの選択(テーブル選択ステップ)は、入力データの暗号化/復号化(データ処理ステップ)と同期する。
トラック・ミキサー26から入手できる可能な組合わせられた値の数(すなわち、可能なテーブル選択数)は、暗号テーブル・バンク内の暗号テーブル22の実際の数よりも大きいであろう。可能な選択数は、選択トラック数に、(可能なステップ・サイズ値+可能なオフセット値)を掛け、選択トラックを組合わせるために使用された数学的演算の他の可能な数を掛けたものと同じほどに大きい。しかし、可能な組合わせられた値は、いずれの組合わせられた値が選択テーブルの1つと関連付けられるように暗号テーブル・バンク・サイズ(すなわち、暗号テーブルの数)にラップ・オンできる。例えば、組合わせられた値は、暗号テーブル・バンク中の暗号テーブルの実際の数を収容するために正及び負の方向へ共にラップできる。もし、256個のテーブルが使用される場合、例えば、ゼロに基づく番号システム(すなわち、暗号テーブル(0)乃至(255))を使用し、そして、組合わせられた値(258)が正方向にラップされる時は暗号テーブル(2)を選択する。組合わせられた値(−10)が負方向へラップされる時は暗号テーブル(246)を選択する。選択値(512)はそれが正方向にラップされる時に暗号テーブル(0)を選択する。その他も同様である。ラッピング・プロセスを使用して、どんな組合わせられた値を暗号テーブルの1つ又はそれらのテーブル位置アドレスと関連付ける。
複数の暗号テーブル・バンクが使用でき、所望ならば、暗号テーブル・バンクはテーブル選択及び暗号化/復号化ステップと同期してスイッチ又は変更できる。このような暗号テーブル・バンク変更は、例えば、同期ステップへタイム・スタンピングすることにより、リアルタイム通信で自動的に実行できる。このようなバンク変更情報は、暗号/復号プロセスの際に使用できる又はリアルタイムで送信できそしてデータ・ストリームと同期して送信できる自動化機能として記憶される。
図7は、本発明の1つの実施の形態によるトラック・ミキサー26による選択トラックの混合又は組合わせプロセスを概略的に示す。図7の下側に、例示として、図5と同様な図形表示の選択トラック220−226を示す。この例では、選択トラック220−226は、それぞれ、オーディオ・ノイズ・ファイル、オーディオ波形、変調源、及びループ化パスワードを使用して生成される。図7の上側に、最初の16プロセス・ステップ(第1ステップ240と第16ステップ242との間)についての選択トラック220−226の対応する一連230−236の実際の値を示す。上側部分の最初の行は暗号選択ステップ(ETS)250を表示する。
図7に示すように、各ステップで、選択トラック230−236の対応する値は、一連の組合わせられた値252を生成するために組合わせられた(混合された)値に組合わせられる。この例では、組合わせられた値は対応する選択トラック値の和である。もし、暗号テーブル・バンクが256個の暗号テーブルを持つ場合、いくつかの組合わせられた値は暗号テーブルの数を超える。従って、上述したように、このように超過した数は正又は負にラップされる。各暗号テーブル・バンクはどのようにテーブル選択のラップが発生するかについての情報を含むことができる。
図8は、本発明の1つの実施の形態による入力(元の)データを暗号化データへ暗号化/復号化する方法を示す。最初に、暗号テーブル、選択トラック、及び選択トラック及びトラック・ミキサーのための他の設定パラメータの選択が、暗号化/復号化プロセス(300)のために行われる。例えば、図6に示される設定スクリーン200のような暗号化/復号化セッション・エディタ(ソフトウェア・ツール)が、この選択のために使用される。ここで、「暗号化/復号化セッション」は必要なコンポーネント(暗号テーブル・バンク、選択トラックなど)の特定の組とそれらの設定を使用して与えられた入力データについての暗号化/復号化操作を意味する。次に、入力データ、例えば、暗号化/復号化されるべきあるファイル又はデータ・ストリーム源が選択され(302)、そして暗号化/復号化プロセスのための操作モードが選択される(304)。例えば、暗号化又は復号化プロセス、リアルタイム処理、単方向、複数又は双方向通信が選択される。そして、選択されたプロセスが実行される。
図9Aは、本発明の1つの実施の形態による暗号化操作のプロセス流れを概略的に示す。この暗号化プロセスは上記の装置20又は装置20を実現するどんなプログラム・モジュールを使用して実行される。各プロセス・ステップで、元のデータ310のユニット長が取られる。例えば、元のデータはユニットごとにファイルから読み取られるか、又は、データ・ストリームがデータ源(送信されるべきオーディオ/音声メッセージなど)からリアルタイムで受信されてユニットごとに取られる。ユニット長は、例えば、データ・ステップ・サイズ(この場合は8ビット)で指定されたビット数により分解される1バイトである。
上述したように、選択トラック312とトラック・ミキサー314を使用して、一連の組合わせられた値が生成されて、暗号テーブル・バンク318から暗号テーブルを選択するために使用される(316)。上述したように、現在選択された暗号テーブルを使用して、元のデータが暗号化され(320)、そして暗号化データ322が出力される。この暗号化プロセスの際、入力データのユニットを取ること及び暗号テーブルの選択が同期化され、そして、新しい暗号テーブルが元のデータの各ユニットに対して選択される(324)。
図9Bは、本発明の1つの実施の形態による復号化操作のプロセス流れを概略的に示す。この復号化プロセスは上記装置20又は装置20を実現するどんなプログラム・モジュールを使用して実行できる。各プロセス・ステップでは、暗号化データ330のユニット長が取られる。例えば、暗号化データはユニットごとにファイルから読み取られるか、又は、データ・ストリームがリアルタイム送信又は通信で受信されてユニットごとに取られる。ユニット長は、例えば、データ・ステップ・サイズ(この場合は8ビット)で指定されたビット数により分解される1バイトである。
上述したように、選択トラック332及びトラック・ミキサー334を使用して、一連の組合わせられた値が生成されて、暗号テーブル・バンク338から暗号テーブルを選択するために使用される(336)。上述したように、現在選択された暗号テーブルを使用して、暗号化データが復号化されて(340)、元のデータ342が出力される。しかし、復号化プロセスでは、暗号化値が暗号テーブルの行列セル内に見つけられ、そして、対応する元の値はそのセルの行−列位置により得られる。すなわち、1バイト・データ・サイズの場合、行位置は元のデータの第1のニブルを表し、そして、列位置は元のデータの第2のニブルを表す。従って、基本暗号テーブル・バンクを使用するこの実施の形態では、復号化プロセスは暗号化値に対する行列セルを探索することが必要である。しかし、暗号テーブル・バンクは以下に説明するように操作速度を最適化するために構成できる。この復号化プロセスの間、暗号化データのユニットを取ること及び暗号テーブルを選択することが同期化され、新しい暗号テーブルが暗号化データの各ユニットに対して選択される(344)。
図9Aで説明された暗号化プロセス及び図9Bで説明された復号化プロセスは、別々に実行でき、又は、双方向通信又は取引において同時的に実行できる。
図10は、本発明の1つの実施の形態による暗号化及び復号化プロセスの一例を概略的に示す。この例では、ユニット・データ長(ステップ・サイズ)は4ビット(1ニブル)である。図10に示されるように、入力データは2進(bin)及び16進(Hex)の両方で表され、そして暗号テーブルは各プロセス・ステップに対して列の形式であらわされる(ETS)。元のデータストリング(ADD747)352が、暗号化データストリング(1B44A)352へ暗号化される。暗号化データストリング(1B44A)352が、対応する暗号化ステップで使用されたのと同じ暗号化テーブルを使用して、元のデータ(ADD747)354へ復号化される。
上記実施の形態で説明したように、正確に同じ暗号テーブル・バンクが暗号化及び復号化操作の両方に使用される(基本暗号テーブル・バンク)。しかし、もし、同じ暗号テーブル・バンクが復号化のために使用されると、復号化プロセスは、暗号化値と一致するセル値を探索するために、僅かに長い処理時間を有する(なお、大変高速ではあるが)。従って、基本暗号テーブル・バンクを使用して処理速度を最適化するために、暗号化/復号化プロセスは本発明の1つの実施の形態では逆方向へ動作することが可能である(逆オプション)。すなわち、暗号化プロセスは、図9Bに示される復号化プロセスのために使用される「逆」の態様で暗号テーブルを使用して実行できる(すなわち、元のデータ値に対する行列セル値を探索し、そして行−列位置から暗号化値を得る)。逆もまた同じである。したがって、暗号化装置又は復号化装置のいずれかの内の高速の方が、探索操作を含む僅かにより強度の処理を実行する。あるデータが暗号化フォーマットで記憶されていて、そして同じ装置でデータが検索され又は読み出される時に復号化処理が必要な場合、この逆オプションが基本暗号テーブル・バンクを用いて高速のデータ検索を可能にするために使用することができる。
本発明の1つの実施の形態によると、暗号テーブル・バンクは、互いに逆変換(反転ルックアップ)を提供する2組の暗号テーブルを含む(相補的暗号テーブル・バンク)。暗号テーブル・バンクは、共にデータ値を暗号化/復号化値へ変換するように構成された第1暗号テーブル(第1組)及び第2暗号テーブル(第2組)を含む。第1暗号テーブルの各々は第2組にその対応を持ち、対応の第2暗号テーブルは対応する第1暗号テーブルにより暗号化/復号化された暗号化/復号化値を元のデータ値に逆変換することができる。同様に、第1暗号テーブルの各々は対応する第2暗号テーブルにより暗号化/復号化された暗号化/復号化値を元のデータ値に逆変換することができる。
例えば、図3B中の暗号テーブル60では、B5(hex)の行−列アドレス(入力データ値に対応する)は、92(hex)の値を有する。従って、その対応する暗号テーブルは反転ルックアップ・テーブルを提供するために行−列アドレス92(hex)にB5(hex)の値を有する。従って、対応暗号テーブルは6D(hex)の行−列アドレスに、4E(hex)の値を有する。このタイプの暗号テーブル・バンクは、同じ暗号テーブルが同じ方法で暗号化/復号化のために使用でき(探索操作なしに)、そして追加的なオーバーヘッドは暗号化又は復号化プロセスのいずれかに適用されるテーブル位置アドレスのためのオフセットだけである。
従って、本発明のこの実施の形態によると、第1及び第2暗号テーブルの各々は、テーブル位置アドレス、例えば、暗号テーブル・バンク位置、に関連付けられており、そして第2暗号テーブルは対応する第1暗号テーブルのそれとは所定量だけオフセットされたテーブル位置アドレスを持つ。このオフセットは、暗号テーブル・バンク中の暗号テーブルの数を2で割ったものに等しい。例えば、もし、暗号テーブル・バンク中に256個の暗号テーブルが存在すれば、オフセット値は126である。従って、もし、元のデータが暗号テーブル#10(又は、十進法でテーブル位置アドレス10)を使用して暗号化された場合、データの復号化は暗号テーブル#136(又は、十進法でテーブル位置アドレス136)を使用して実行される。これはオフセット値をラッピング(組合わせられた値をテーブル選択アドレスと関連付ける時)と共にテーブル位置アドレスに加えることにより行われる。すなわち、もし、バンク中に256個の暗号テーブルが存在する場合、128がそのアドレスに加えられて、256(もし、暗号テーブルが1−256として番号付けられている場合)の後にラップ・アラウンドして1へ戻る、又は、255(もし、暗号テーブルが0−255として番号付けられている場合)の後に0へ戻る。
リアルタイム通信(単方向又は双方向)でのデータ・ストリームの場合、反対端の装置は相対するオフセット手順を使用する。すなわち、例えば、もし、送信装置がその暗号化プロセスで暗号テーブル選択をオフセットする場合、受信装置はその復号プロセスをオフセットしない。同様に、もし、送信装置がその暗号プロセスにおいて暗号テーブル選択をオフセットしない場合、受信装置はその復号プロセスで暗号テーブル選択をオフセットする。すなわち、通信装置の内のどちらか1つのみがオフセットを使用する必要がある。
上述したように、本発明の1つの実施の形態によると、これらの暗号テーブル組の位置は、暗号テーブル・バンクの第1半分内の非反転のそれらに対応するテーブルに対して正確な相対的な位置の暗号テーブル・バンクの第2半分内に反転テーブルが置かれる態様でもって、暗号テーブル・バンク内に配列される。このタイプの暗号テーブル・バンク内の暗号テーブル位置を、簡潔さのために、64の位置を持つ暗号テーブル・バンクを使用して説明する。
図11Aは、本発明の1つの実施の形態による、暗号化(送信)操作400及び復号化(受信)操作402の間に相補的暗号テーブル・バンクを使用する暗号テーブル選択機能の一例を示す。64のテーブル位置(1A,1B,...,8H)は、対応する行−列アドレスでの行列セルにより表される(テーブル位置アドレス)。暗号テーブルはそれらのテーブル位置アドレス、すなわち、セル位置により識別されて選択される。暗号テーブル・バンクの第2半分(行5−8)は影が付けられている。
行1、列A−H(すなわち、アドレス1A乃至1H)上の暗号テーブルは、それらの反転した対応物を行5、列A−H(すなわち、アドレス5A乃至5H)にそれぞれ有する。同様に、行2、列A−H(すなわち、アドレス2A乃至2H)上の暗号テーブルは、それらの反転した対応物を行6、列A−H(すなわち、アドレス6A乃至6H)にそれぞれ有する。行3、列A−H(すなわち、アドレス3A乃至3H)上の暗号テーブルは、それらの反転した対応物を行7、列A−H(すなわち、アドレス7A乃至7H)にそれぞれ有する。行4、列A−H(すなわち、アドレス4A乃至4H)上の暗号テーブルは、それらの反転した対応物を行8、列A−H(すなわち、アドレス8A乃至8H)にそれぞれ有する。
例えば、入力データのユニットが送信操作(暗号操作400中のイベント1)で暗号テーブル2A(暗号テーブルはそのアドレスにより識別される)を使用して暗号化される時、暗号化データは同じ暗号テーブル・バンクを使用した受信操作で暗号テーブル6Aを使用して復号化される(復号操作402中のイベント1)。図11Bは、イベント1−8の暗号操作で使用される暗号テーブルと復号操作で使用されるそれとの関係を示し(左ボックス)、また、相補的行位置間の関係を示す(右ボックス)。
暗号テーブル・バンク(相補的テーブル・バンク)のこのタイプ及びテーブル位置ルックアップ方法を使用して、暗号テーブル中の探索プロセス無しに暗号テーブルの正確に同じバンクが暗号化及び復号化の両方のために使用できる。
図12A及び図12Bは、図11A及び図11Bと同様な本発明の別の実施の形態を概略的に示す。図11A及び図11Bの上記実施の形態(相補的暗号テーブル・バンク)では、復号プロセスのための暗号テーブル(反転テーブル)は、データの暗号化のために使用された暗号テーブルから所定のオフセットにより得られる。この実施の形態では、暗号テーブル・バンクも第1暗号テーブル及び同数の対応する第2暗号テーブル(すなわち、第1暗号テーブルの反転テーブル)を含む。しかし、反転テーブルは、全ての暗号テーブルが同じ暗号テーブル・バンク中にそれに対応する反転テーブルを持つ限り、暗号テーブル・バンクのどんな位置/アドレスに置くことができる。また、この暗号テーブル配置もテーブルの同じ組を送信/暗号化側及び受信/復号化側に置くことを可能にするが、暗号テーブル・バンク中に含まれる暗号テーブルと同じ大きさの2つの追加のルックアップ・テーブルを必要とする。余分の1つのルックアップ・テーブルは送信/暗号プロセスのために使用され、他は受信/復号プロセスのために使用されて、そして各ルックアップ・テーブルは対応する反転テーブル位置へのマッピング(又は再指向)を提供する。
図12Aは、暗号化(送信)操作404及び復号化(受信)操作406の際に再指向暗号テーブル・バンクを使用する暗号テーブル選択機能の一例を概略的に示す。ここでは、反転テーブルは異なる行で同じ列に位置している(すなわち、行再指向)。図12Bは、イベント1−8に対して暗合操作で使用される暗合テーブルと復号操作で使用されるそれとの間の関係を示し(左ボックス)、また、図12Aに示される再指向暗合テーブル・バンクに対して再指向行位置の間の関係を示す(右ボックス)。実際の適用では、反転テーブルの探索は行再指向ではなく単一セル再指向とするこができる。また、再指向マッピングはどんなタイプのテーブルに適用でき、そして反転ルックアップ組を持つテーブルに限定されない。
本発明の1つの実施の形態によると、1つが暗号化のため、そして他が復号化のための2組のテーブル・バンクを提供できる。すなわち、第1暗合テーブル・バンクは元のデータ値を暗号化値へ変換するように構成された暗号テーブルを含み、そして第2暗合テーブル・バンクは暗号化値を元のデータ値へ変換するように構成された暗合テーブルを含む。第1暗合テーブル・バンクは、暗号化のみ又は暗号化データの送信のみに使用される、暗合テーブルの全組である。第2暗合テーブル・バンクも、第1暗合テーブル・バンクの反転テーブルの全組であり、そして、対応する反転テーブルは第1暗合テーブル・バンク中の非反転暗合テーブルのアドレスと正確に同じアドレスに位置する。各反転テーブルは与えられた暗号テーブルから上述したのと同じ方法で得ることができる。復号プロセスのための専用の別の暗合テーブルを提供することにより、復号側の探索プロセスを無くすることができ、よって、復号プロセスは暗合プロセスと同じ高速に実行される。この方法は、最高速のルックアップを可能にするが、相対する暗号/復号プロセスを実行する時、全反転テーブル・バンクを使用することが必要である。
また、暗合テーブル・バンク最適化のタイプは、上記した設定スクリーン200(図6)を使用して選択できる。さらに、上述の暗合テーブル及び他のルックアップ・テーブルはデジタル的にサインされたデータ(ハッシュ関数を使用して)又はサインされないデータが本発明を実現した装置又はソフトウェアと互換可能になるように変換できる。
本発明の1つの実施の形態によると、トラック・ミキサー26の1つ又は複数の操作、選択トラック生成器38、及びさまざまなパラメータの設定の操作は、暗号化/復号化操作の前に前処理してもよい。このような前処理オプションは本発明の応用に従い選択できる。例えば、複数のソース・ファイルの選択、各選択トラックの一連の値の生成、選択トラック値の修正、数学的演算の選択、及び、対応する値の組合わせなどの1つ又は複数は前処理でき、そして、結果として得られたデータをメモリに記憶できる。さらに、値オフセット、ステップ・オフセット、ファイル・セグメント検索の設定などの機能は所望ならば前処理できる。このような前処理はより高速な暗合化/復号化性能を提供する。
本発明の1つの実施の形態によると、暗号化/復号化プロセスで使用されるコンポーネント、ファイル、及び他のデータと情報はさまざまなファイルへグループ化できる。例えば、「セッション・ファイル」は、1つの暗号化/復号化セッションを完全に再構成するために必要(かつ十分)な全てのコンポーネントを含むことができる。例えば、セッション・ファイルは、暗合テーブル・バンク、全ての選択トラック、及びそれらの設定パラメータを含む。セッション・ファイルは選択トラックを生成するために使用されるどんなソース・ファイルを含まない。しかし、いずれかの設定パラメータは追加の安全対策のために除外されてもよい。「セッション・マスター・ファイル」は1つの暗合化/復号化セッションを完全に再構築するのに必要な全てのコンポーネント、及び、プロセスで使用されるどんなコンポーネントを含むことができる。例えば、セッション・マスター・ファイルは、暗合テーブル・バンク、全ての選択トラック、及び、それらの設定パラメータ、及び全てのソース・ファイルを含む。さらに、「セッション・パケット」は、安全のために除外されたどんな設定パラメータを除いて、セッション・マスターと同じコンポーネントを含んでよい。「暗合テーブル・バンク」は、暗合テーブルのグループ、例えば、256、512、1024、2048又は4096個の暗合テーブルを含む。暗合テーブル・バンクは、上述したように、テーブル選択のラッピングがどのように発生するかについての選択を含むことができる。また、「トラック・パケット」は、どんなソース・ファイルを含む、選択トラックの組を完全に再構築に必要な全てを含むが、いずれの設定値は、追加の安全の目的のために、空のままにしてよい。「単一テーブル」は、例えば、256バイト配列の単一暗合テーブルを含む。「テーブル選択トラック」は、選択トラックを複製するために使用される全ての値、設定パラメータ、及びデータ記述を含んだ大変小さいファイルである。保存操作の際、いくつかのオプションがこのデータの全ての部分又はどんな部分をも含むために提供できる。そして、オプションとして、この選択トラックに関連したどんなファイルもトラック・パケットに追加できる。
さらに、所望ならば、ファイルを見て、編集し、そして編集したファイルを保存するためヘックス編集ウインドウ中にファイルを表示するヘックス・エディターが使用できる。ヘックス・エディター・ウインドウは、16バイトの16進(ベース16)データが続くアドレス列及び右側に列に行の16バイトのヘックス・データに対して等価の対応するアスキー文字の表示が続くものとしてファイルを表示する。ヘックス又はアスキーは所望ならば編集でき、そして編集されたデータは保存される。選択トラックのグラフイック表示に対しては、波形エディタも使用できる。波形エディタは、ファイル(選択トラック)を見て、編集して、所望ならば編集されたファイルを保存するためにグラフィカル波形ウインドウ内に表示する。ファイルのアドレス(プロセス・ステップ)は水平軸である。より低いアドレスは左側で、より高いアドレスは右側である。データの各ステップの値は垂直軸上に示される。より低い値は底であり、より高い値は頂上である。ステップ・サイズは、8ビット、16ビット、24ビット、32ビット等である。典型的に、8又は16ビットが使用される。ファイルは所望ならばいくつかの描画ツールにより編集でき、そして編集されたファイルが保存される。
図13は、本発明の1つの実施の形態による装置502上の暗合器/復号器を自動的に設定するためのシステム500を概略的に示す。システム500は、セルラー電話システム、無線又は有線ローカル・エリア・ネットワーク(LAN)、共有ファイル・サーバー・システム(ダウンローディング及び/又はアップローディング・ファイル)、ライブ・ブロードキャステイング・システム、ボイス・オーバーIP及びリアルタイム転送を使用したいずれのシステムであってよい。装置502はデータを暗号化/復号化できる。図13に示すように、装置502は、装置に独特な識別コード504、及び、識別コードに関連した暗合化/復号化ファイル(設定ファイル)508を含んだ第1データベース・メモリ506を含む。また、装置502は、第1データベース・メモリ506上の暗号化/復号化ファイル(設定ファイル)とは異なる少なくとも1つの第2暗号化/復号化ファイル(セッション・ファイル)を記憶するように指示された第2データベース・メモリ510を含む。
識別コード504は、特定の物理的装置又は仮想的装置(ソフトウェア内で生成される)又はプログラム・モジュールを暗号化/復号化ファイルの指定された組へ関連付けることができる。識別コードは、デジタル・データと相互作用する又は応答するどんな装置(物理的又は仮想的)の一部として生成できてそれに関連付けることができる。装置502は、限定的ではなく、セルラー電話機及びその他の通信装置、クレジット・カード、外部記憶装置、ユニバーサル・スタンダード・バス(UBS)装置などのプラグイン装置、ファイヤウォール装置、完全なコンピュータ装置、ビデオゲーム・コンソール、エンターテインメント・ボックス、ハンドヘルド装置、コンピュータ上に存在するソフトウェア・モジュール又は個別プログラム等を含む。
設定ファイル508は、第1の複数の暗合テーブル(暗合テーブル・バンク)及び第二の複数の選択トラックを含む。上記の実施の形態と同様に、暗合テーブルの各々はデータ値を暗号化/復号化値へ変換することができる。データ値はデータのユニットに対応し、そして暗号化/復号化値は暗号化/復号化データのユニットに対応する。蒸気のいずれかの暗合テーブル・バンクは設定ファイルのために使用できる。選択トラックの各々はあるパターンを持った一連の値を含む。設定ファイル508はさらに、各選択トラックの値を修正しそして各選択トラックを他のトラックと組合わせる方法を決定することができる設定パラメータの組を含む。
また、装置502は、トラック・ミキサー・モジュール及び暗号化/復号化モジュール(図示しない)を含む。トラック・ミキサー・モジュールは、第1データベース・メモリ506へ結合され(そして、第2データベース・メモリ510へ)、そしてパラメータに従い一連の組合わせられた値を生成するために選択トラックの対応する値を組合わせるように構成されている。暗号化/復号化モジュールは、第1データベース・メモリ506へ結合され(そして、第2データベース・メモリ510へ)、そしてトラック・ミキサー・モジュールへ、そしてデータの各ユニットを暗号化/復号化データの各ユニットへ一連の組合わせられた値中の組合わせられた値に従いそのユニットに対して選択された暗合テーブルを使用して変換するように構成されている。
設定ファイル508は、送信のために別の暗号化/復号化ファイル(セッション・ファイル)を暗号化し、又は、暗号化されたフォーマットで受信された別の暗号化/復号化ファイルを復号化するように構成されている。典型的に、設定ファイル508は、セッション・ファイルとして同じ要素とデータ・タイプを含み、典型的に認証及びセッション・ファイルの他の組を安全に送信するために使用される。大変小さいメモリを持つ装置では、設定ファイル508はセッション・ファイルとしてさえ機能する。この場合、装置は第2メモリ510のためのメモリ空間を持たないであろう。より大きなメモリを持つ装置は複数のセッション・ファイルを維持できる。
識別コード504自身は、選択トラック及びトラック・ミキサーを使用して生成できることに注意する。従って、装置502は、識別コード504をそのまま含む代わりに、この目的のために少量のデータ(選択トラック及び/又は設定パラメータ)の組を含むことができる。識別コード504のための選択トラック及び/又は設定パラメータは、設定ファイル508の一部、又は、設定ファイル508からは分離されたデータ組であってよい。この方法では、所望のどんな長さ(大変長くできる)の識別コード504を少量のデータの組(選択トラック)から生成できる。
識別コード504及びそれと関連した設定ファイル508を使用して、暗合器/復号器は以下に説明するように証明サイト512から自動的に装置502上で設定される。証明サイト512は、コンピュータ・ネットワーク(近い又は遠い)を介して、インターネットを介して、無線通信等を介して、装置502と通信可能なサーバー又はメイン・コンピュータであってよい。証明サイト512は、装置502及び他の装置、例えば、装置520と522を含む証明サイト512と通信する複数の装置のための設定ファイル516を維持する。設定ファイル516は、対応する装置の識別コードと関連している。
自動的設定プロセスにおいては、証明サイト512は最初に識別コード504を例えば装置502から受信する。識別コード504と関連した設定ファイル516aが設定ファイル516を含むデータベース・メモリから検索される。設定ファイル516aは設定ファイル508と同一である。証明サイト512は、例えば、擬似乱数生成器を使用して装置502のためのセッション・ファイルを自動的に生成(集合)する。例えば、暗合テーブルの組は、装置502のための暗合テーブル・バンクを集合するために複数の暗合テーブルの中から(又は、暗合テーブルの母組から)選択される。暗合テーブルを選択する際、ソース・ファイル40、選択トラック生成器38、及び上述した(図2中の装置20で)トラック・ミキサーは擬似乱数生成器として使用できる。また、既成選択トラック24及びトラック・ミキサー26が擬似乱数生成器として使用できる。一連の組合わせられた値に基づいて暗号テーブルを選択する同じ方法が、暗合テーブルの小組を生成するために使用できる。
また、選択トラックの組は複数の選択トラックの中から選択される。選択トラックの母組はデータベースに既に記憶されていてよい。そうでなければ、選択トラックの組は、暗合テーブル選択と同じ方法でソース・ファイル40を選択しそして各トラックについてパラメータを設定することにより、選択トラック生成器38を使用して新規に生成してよい。ソース・ファイルは、ファイル、パスワード、オフセット、テーブル、及び他のデータのライブラリイから得られる。さらに、選択された選択トラックの設定パラメータの組も、同じ方法でパラメータの対応する母組から選択される。これらの選択プロセスは、上述したように擬似乱数生成器を使用して、又は、このような選択プロセスを実行できる専門ツール(ソフトウェア・モジュール)を使用して行われる。
暗合テーブル、選択トラック、及び設定パラメータの選択された組は、自動的に生成されたセッション・ファイル518aを形成する。そして、セッション・ファイル518aは設定ファイル516aを使用して暗号化され、装置502へ送信される。また、セッション・ファイル518aは識別コード504との関連性と共に証明サイト512に記憶される。
装置502は、暗号化されたセッション・ファイル518aを受信して、それを設定ファイル508を用いて復号化し、そしてそれをこのようなセッション・ファイルを記憶するために指定された第2データベース・メモリ510内に記憶する。
本発明の1つの実施の形態によると、装置502が既に持っているいくつかのコンポーネントがセッション・ファイル518aの一部として使用できる。例えば、装置502はセッション・ファイルのそれと同じタイプのコンポーネント及び/又はファイルを含む設定ファイル508を持つから、コンポーネント及び/又はファイルの全て又はいくつかはセッション・ファイルの一部として使用できる。この場合、証明サイト512がセッション・ファイル518aを生成する時、それはまた設定ファイル516aの中からコンポーネントを選択する。例えば、セッション・ファイル518aは設定ファイル516a(すなわち、508)の選択トラックの全て又はいくつか及び1つ又は複数の追加の選択トラックを使用してもよい。この方法では、追加の選択トラック及びどの選択トラックが使用されるべきかの指示のみが暗号化されて、セッション・ファイル518aに関する情報として装置502へ送信される。セッション・ファイル518aに関する情報は、設定ファイルのどの暗合テーブルが使用されるべきかの指示(全暗合テーブル・バンクでもよい)及び選択トラックの新しい組、既存の選択トラックの使用の指示及び設定パラメータの新しい組、どの選択トラック及び設定パラメータが使用されるべきかの指示及び暗合テーブルの新しい組、又は、これらの組合わせを含む。この実施の形態では、装置502はセッション・ファイル518aの新しいコンポーネントの全部を記憶する必要がない。それはシステム上に既に存在するコンポーネントを利用できる。
他の装置520、522等は、装置502と同様にして設定できる。1つの装置502が安全な方法で別の装置520と通信したい場合、それらは証明サイト512を経由してできる。例えば、装置502は、上述しように、その識別コード504を使用して証明サイト512との通信を開始し、そして装置520との安全な通信を要求する。証明サイト512は装置502のためのセッション・ファイル518aを生成して、上述したように、それを設定ファイル516aを使用して装置502へ安全に送信する。また、証明サイト512は装置520(すなわち、その識別コード524)に関連した設定ファイル516bを検索し、セッション・ファイル518aを設定ファイル516bを用いて暗号化し、それを装置520へ送信する。装置520内の設定ファイル526は設定ファイル516bと同一であるから、装置520は装置502との安全な通信のために使用する暗号化セッション・ファイル518aを受信して成功的に復号化する。このようにして、装置502と装置520は異なる設定ファイルを持つが、それらは安全に通信することができる同じセッション・ファイル518aを持つことができる。
もし、指定されたメモリ510が十分に大きければ、装置502は装置520と通信するためにセッション・ファイル518a、及び、例えば、別の装置522と通信するために証明装置512により同様に生成された別のセッション・ファイルを維持してもよい。セルラー電話機の場合、このようなセッション・ファイルは呼出し番号との関連性と共に記憶してもよい。
例えば、装置522がセッション・ファイルを生成するために十分なメモリと計算能力を持つ場合、装置522は証明装置512と同様に操作でき、そして、装置502は安全な通信のために直接的に装置522と通信できる。
この実施の形態によると、識別コード及びそれと関連した特定の設定ファイルを使用して、1つ又は複数の追加のセッション・ファイルが遠隔の場所から安全に送信される。AESなどの方法のレガシー・サポートを必要とするシステムについてさえ、そのシステムへの安全キー・コードの送信は上述した暗号化/復号化方法を利用することで達成できる。
図14は、本発明の1つの実施の形態による設定ファイル及びセッション・ファイルのためのバックアップ・システムを概略的に示す。特定の識別コードに関連したセッション・ファイルを構成するさまざまなコンポーネント及びデータは、保護の冗長レイヤーとしてどんな数の証明サイトに記憶できる。例えば、図14に示すように、証明サイト542が装置540のためのセッション・ファイル544を生成する時、全セッション・ファイル544は証明サイト542に記憶できる。さらに、全セッション・ファイル544又はその一部は1つ又は複数の他の証明サイト546及び548に記憶できる。例えば、選択トラックに対する設定パラメータ(選択トラック・データ)は、1つ又は複数の異なる証明サイトに記憶でき、そして元の証明サイト542は選択トラック・データの代わりに他の証明サイトへのポインタ560を記憶する。さらに、追加の安全策のため、装置540は選択トラック・データ無しにセッション・ファイルを受信し又は維持し、そして、必要な時に選択トラック・データを得る。選択トラック・データは元の証明サイト542から、元の証明サイト542を介して他の証明サイトから、又は、他の証明サイトから直接に得ることができる。これらの証明サイトは、例えば、コンピュータ・ネットワーク、無線通信、インターネット等を経由して装置540からアクセスできる。図14に示すように、装置540は、必要なファイル又はデータを記憶している証明サイトを指示するポインタ550を持つことができる。
本発明の1つの実施の形態によると、どの1つの証明サイトも完全なセッション・ファイル544を維持しない。しかし、セッション・ファイル544は分割されていくつかの証明サイト、例えば、証明サイト542、546及び548、に分散される。例えば、選択トラックは、第1選択トラックが証明サイト542に記憶され、第2選択トラックが証明サイト546に記憶され、第3選択トラックが証明サイト548に記憶され、第4選択トラックが証明サイト542に記憶される等のように、分散できる。暗合テーブル・バンク、設定パラメータ、ソース・ファイルなどのどんな他のコンポーネント又はファイルも同様な方法で分散でき、又は、コンポーネント毎に異なる証明サイトに記憶できる。さらに、上述したある回転分散スキームを利用して、このような分散されたバックアップ・ファイルが自動的にセッション・ファイル544のために生成できる。この実施の形態によると、証明サイトの1つが完全なセッション・ファイルを持たないため、もし1つの証明サイトが攻撃されて(仮想的又は物理的に)、その情報が盗まれても、攻撃者はコードを破るためにセッション・ファイルを再構成することはできない。さらに、セッション・ファイルを分割して分散する時、例えば、ある理由により証明サイトの1つが利用不可能になる場合に備えて、セッション・ファイルの各コンポーネントを冗長性を与えるために複数の場所に維持してもよい。
さらに、本発明の1つの実施の形態によると、さまざまな選択トラックがオンライン仮想文字の在庫の部分として記憶できる。従って、選択トラックの完全な組の集合はそのコンポーネントをトラック・ミキサー上に置くために仮想空間に各文字が合うようにすることが必要であり、暗号化/復号化キーとして動作する正確に一連の組合わせられた値を生成する。このプロセスは、あるタイプのグループ安全性手段を与える。
図15は、本発明の1つの実施の形態による装置601の認証方法を示す。認証されるべき装置601は、例えば、前の実施の形態で説明された装置502であり、セルラー電話機及び他の通信装置、クレジット・カード、外部記憶装置、ユニバーサル・スタンダード・バス(USB)装置などのプラグイン装置、ファイヤウォール装置、完全なコンピュータ・システム、ビデオゲーム・コンソール、エンターテインメント・ボックス、ハンドヘルド装置等を含む。装置601は、装置に独特な識別コード及び上述したように識別コードに関連した設定ファイル618を持つ。
図15に示すように、認証されるべき装置601は、その識別コードを証明サイト603に送信する(600)。証明サイト603は装置601から識別コードを受信し(602)、識別コードに関連した設定ファイルを設定ファイル604を含んだデータベース・メモリから検索する(606)。証明サイト603は一連の値を生成して装置601へ一連の値を送信する(608)。一連の値は任意又は擬似乱数的に選択されたデータ・ストリングである。証明サイト603では、一連の値が検索された設定ファイル612を用いて暗号化され(610)、そして第1チェック・サムが暗号化された一連の値から計算される(614)。例えば、第1チェック・サムは暗合化された一連の値の各バイトを加算することにより得られる。しかし、チェック・サムはどんな数学的関数を使用して得ることができ、また、複数のチェック・サムが使用できる。
装置601は一連の値を受信し(616)、そしてそれ自身の設定ファイル618を用いて一連の値を暗合化する(620)。設定ファイル618及び設定ファイル612は共に同じ識別コードに関連しており、従って、同一である。装置601も証明サイトと同じ方法でチェック・サム(第2チェック・サム)を計算して(622)、それを証明サイトに戻す(624)。
証明サイト603は、装置601からチェック・サムを受信し(626)、そして受信されたチェック・サムが計算されたチェック・サムと一致するかどうかを決定する(628)。もし、2つのチェック・サムが一致しなければ、装置601は認証を失敗して、エラー・メッセージが送信される(630)。もし、2つのチェック・サムが一致した場合、証明サイト603は装置601を認証し(632)、そして安全通信又は取引が開始される(634)。上述したように、どんな数学的関数を使用して導出できるいかなる数のチェック・サムも、冗長性とより安全な証明及び認証プロセスを提供するために使用できる。
この認証方法は、上述したシステム500のようなさまざまなシステムで使用できる。この実施の形態では、特定の識別コードが使用されるから、口座番号又はパスワードなどの重要な情報は電話回線、インターネット、又は、他の通信チャンネルでは転送できない。従って、本発明の実施の形態はより安全な取引を提供する。
クレジット・カード取引又は銀行取引などの取引では、例えば、識別コードは商人識別コード又は顧客識別コードであってよい。銀行又はクレジット・カード取引では、商人(銀行)識別コードはローカル銀行マシンに存在し、そして顧客識別コードは顧客口座番号と共に顧客のクレジット・カード上に記憶されてよい。カードを操作する時、口座番号と識別コードの両方が銀行マシン上のローカル暗合化装置を使用して読まれる。しかし、識別コードのみが他のパーティ(又は、銀行のメイン・コンピュータ又はサーバーなどの証明サイト)へ送信される。
証明サイトでは、顧客の実際の口座番号が識別コードを使用して検索されて、上述した選択トラックの1つを生成するためにソース・ファイルとして使用される。さらに、顧客のPIN又はパスワード(識別コードと関連した)も証明サイトで別の選択トラックを生成するために使用される(これもクレジット・カードに対する元の設定ファイルの選択トラックである)。この方法で、特定の顧客の設定ファイルが暗合プロセスに使用するために検索され、又は、再構築される。装置(この例のクレジット・カードなど)が大変小さいメモリを持つ場合、設定ファイルは上述したようにセッション・ファイルとして使用できる。いずれの場合も、チェック・サムのみが取引を確認するために装置へ戻される。
本発明の1つの実施の形態によると、選択トラックの各々はキー長を持ち、これによりトラックのあるパターンが繰返される。好ましくは、ある選択トラックのキー長は別の選択トラックのキー長と異なるか、又は、少なくとも1つのキー長が別のものと異なる。本発明の1つの実施の形態では、どのキー長も別のキー長に2nを掛けて得られるものではなく、又は、別のキー長を2nで割ることにより得られるものではない。ここで、nは整数である。本発明の1つの実施の形態によると、キー長間の差はキー長よりも実質的に小さい。すなわち、選択トラックは同様な(近い)キー長を持ち、そしてそれらの間の差は相対的に小さい。例えば、キー長は、999、1000、及び1001である。また、これらのキー長は、別のキー長に2nを掛けることにより、又は、別のキー長を2nで割ることにより得られないという、上記条件を満足する。典型的に、キー長は全ての選択トラックが異なるキー長を持つように選択される。しかし、同じキー長又は相対的に小さなキー長を持つ余分な選択トラックが選択トラックのさらなる混合のために追加されてもよい。
本発明の1つの実施の形態によると、上述したように、互いに平方でも部分でもなく、また、各々が異なる長さの小さなデータ部分が不定回数繰返される(すなわち、それぞれのデータ・パターンが繰返される又はループするキー長が互いに等しくない)複数のデータ・ストリームを組合わせることにより、極端に長い独特なデータ・ストリームが生成できる。独特なデータ・ストリームは全ての個別のデータ部分がそれらの開始に戻る点までそれ自身を繰返さない。そして、この点が極端に長いキー長を与える(導出されたキー長)。したがって、この暗合方法は暴力攻撃又は導出されたキーを発見することを不可能にする。
上述したように、暗合テーブルを選択するための一連の組合わせられた値は、パスワード又はあるオーディオ・ノイズ・ファイルなどの小さなソース・ファイルから生成される。しかし、実際は、どんな大きさのファイルも使用できる。以下の例及び公式では、どのキー長も別のキー長に2nを掛けたり又は別のキー長に2nで割ることにより得られない(換言すると、キー長間にはオクターブ関係がない)と仮定し、そして、この結果がAES技術を使用して得られた可能なキー数と比較される。
異なるキー長の選択トラックを混合することにより生成された一連の組合わせられた値のループバック・ポイント(ビットで)は、バイトでの各トラックのキー長をバイトで互いのトラックのキー長で掛算し(各トラックに対して)、そして8を掛算することにより(各バイトのビット数)、導かれる。この結果は、それ自身が繰返す前に一連の組合わせられた値を構成するビット数(N)を表す。従って、導出されたキーの可能な組合わせ数は、2Nで与えられる。
(例1)
20,000バイト、19,999バイト、及び19,998バイトのキー長を持つ3つの選択トラックは、導出されたキー長N=(20,000)x(19,999)x(19,998)x8=63,990,400,320,000を生成する。従って、導出されたキーの可能な組合わせは、263,990,400,320,000存在する。さらに、攻撃者が導出されたキー長自身を知るためには、攻撃者は個別の選択トラックの全てのキー長を知らなければならない。そして、可能なキー長の何兆の組合わせを検査しなければならない。そして、これらの可能なキー長の各々について膨大な可能なキー組合わせを検査しなければならない。
(例2)
40,000バイト、26,680バイト、39,875バイト及び47,860バイトのキー長を持つ4つの選択トラックは、導出されたキー長N=(40,000)x(26,680)x(39,875)x(47,860)x8=16,293,305,248,000,000,000を生成する。従って、導出されたキーの可能な組合わせは、216,293,305,248,000,000,000存在する。
(例3)
1,000バイト、992バイト、975バイト及び832バイトのキー長を持つより小さな選択トラックは、導出されたキー長N=(1,000)x(992)x(975)x(832)x8=6,437,683,200,000を生成する。従って、導出されたキーの可能な組合わせの数は、26,437,683,200,000存在する。
もし、既存の選択トラックの1つと等しいキー長を持つ余分の選択トラック、例えば、例3で1,000バイトのキー長を持つ第5のトラックが追加されると、この追加は可能な組合わせの数を増加しないことに注意する。なぜならば、同じキー長は一連の組合わせられた値中の「ルックバック・ポイント」を変えないからである。しかし、別の分割又はキー長と等しい余分な選択トラックの追加は暴力攻撃に対する保護を増加しないが、このような追加は、データを復号化するために混合選択トラック値(すなわち、一連の組合わせられた値)中に存在すべき値を追加するため、パスワード保護又は追加の安全コンポーネントとしてなお有用であり、従って、保護の追加のレイヤーを提供する。
例に使用されたキー長及びこれらの数は例示であり、どんな意味でも限定的又は網羅的であることを意図しない。しかし、異なるキー長を持つ少なくとも3つの選択トラックを使用することが好ましい。
AESと比較すると、本発明の1つの実施の形態による暗合化/復号化システムの強さが理解できる。AESは、128ビット、192ビット、及び256ビットの3つのキー長を使用する。キーの可能な組合わせ数は、それぞれ、2128、2192、2256のみである。十進法では、これらの数は、128ビット・キーについては、2128≒3.4x1038、192ビット・キーについては、2192≒6.2x1057、256ビット・キーについては、2256≒1.1x1077、である。これと比較して、DESキーは56ビット長であり、約7.2x1016の可能なDESキーが存在することを意味する。
本発明による可能なキーの組合わせ数の2のべき乗とAESのそれとを比較すると、当業者には理解されるように本発明による暗合システムはどんな暴力攻撃によっても事実上破壊されない。さらに、暗合テーブルは、データの1バイト又は一連のバイト又はニブル又はそれ以下の新しい各ユニットに対して変更できる。
さらに、本発明による暗合システムにより暗合化されたコードを破壊するために(暴力攻撃以外により)、攻撃者はセッション・ファイルを再構成するために全てのコンポーネント及びパラメータを持たなければならない。上述したように、これらのコンポーネント及びパラメータは同じ場所に記憶されているとは限らず、コンポーネント及びパラメータの一部は装置中に前もってインストールされていて、通信チャンネルを介して送信されない。さらに、このようなコンポーネント及びパラメータは必要ならば別々に送信でき(個別に又はグループで)、又は、全てのパーティがそれらのコンポーネントを提供した時にだけ暗合化情報が復号できるように複数の仮想又は現実のエンティテイ又はパーティ間に分配できる。さらに、どんな数のパーティも同じ暗合/復号スキーム(すなわち、同じセッション・ファイル)を共有できる。
また、データはメモリ又はどんな記憶装置内に記憶されている時は暗合化されたままに留まることができ、そしてそれが読み出される又は使用される時に容易に復号化される。例えば、記憶装置から暗合化データを読み出す時、暗合化/復号化プロセスのための全てのコンポーネント及びパラメータは、パスワードタイプ・スクリーンを介して必要なデータ又は情報を入力することにより開始できる。そして、暗合化/復号化プロセスは、ログオフ、時間切れ、又はクローズ命令等のユーザ定義イベントが発生するまで、セッション中、アクティブに留まる。
さらに、システム・クロック、例えば、年、月、日、時間、分(例えば、20030727)などの日付情報は、時間制限キーを生成するための選択トラックとして使用できる。システム・クロック・データの全て又はどんな部分(月及び日、時間のみ等)は、選択トラックの生成のために使用できる。この値は手動で又は自動で予め設定でき、それに適用できる数学関数(乗数等)を持つことができる。例えば、システム・クロックの日付データが選択トラックとして使用される時、ある日付により暗合化されたデータは、復号化操作も変化するシステム・クロックを使用しているから、同じ日付でのみ復号化される(システム・クロックが同期化されていると仮定する)。もし、前もって設定された日付暗合化のために使用されると、復号化はその前もって設定された日付でのみ可能である。同様に、もし、ある日付と時間(24時間システム)を含む時間スタンプが選択トラックとして使用されると、暗合化データはその日の特定の時間の間のみ読むことができる。このようにして、どんな重要な情報を限られた及び/又は指定された期間の間のみ復号化可能又は読取可能にできる。さらに、どんなタイプのカウンタも選択トラックとして使用できる。例えば、もし、カウンタのMSBが選択トラックとして使用されると、キーは、例えば、カウンタが同じ暗合化ファイルへアクセスする数、暗合化/復号化セッションの数等を数えたイベントの限定された回数の間のみ有効である。
さらに、上述したように、どんな長さのデータ(文字的にメガバイトのデータ)は、各々があるキー長を持ついくつかの少量のデータ(すなわち、選択トラック)から生成できるから、選択トラック及び設定パラメータの特定の組合わせが特定のデータを生成する時、この暗合化方法はデータ圧縮技術として使用できる。
さらに、本発明は、本発明により暗合化/復号化されデータをファイヤウォール又はフィルタを通過できるようにすることにより、ファイヤウォール・システム及び/又は電子メール・フィルタリング・システムの一部として使用できる。電子すかし又はデジタル署名もセッション・ファイル及び暗合化された出力ファイルに組み込むことができる。
本発明の実施の形態及び応用が説明されたが、本明細書を読んだ当業者にはさまざまな修正がここに開示された本発明のコンセプトから逸脱することなく可能であることが明らかである。従って、本発明は請求項の精神を除いて制限されるべきでない。
本発明を実現するに適したコンピュータ・システムを概略的に示すブロック図。 本発明の1つの実施の形態によるデータを暗号化/復号化する装置を概略的に示す図。 本発明の1つの実施の形態による暗号テーブルの構造を説明するために中に8ビットのユニット・データ・サイズのための暗号テーブル(ユニタリ・テーブル)の一例を概略的に示す図。 本発明の1つの実施の形態による暗号/復号に使用される8ビットのユニット・データ・サイズのための暗号テーブルの一例を概略的に示す図。 本発明の1つの実施の形態による暗号/復号に使用される8ビットのユニット・データ・サイズのための暗号テーブルの一例を概略的に示す図。 本発明の1つの実施の形態によるソース・ファイルとして使用されるオーディオ雑音ファイルの部分の生16進データを示す図。 本発明の1つの実施の形態によるソース・ファイルとして使用される勾配グラフイック・ファイルの部分の生16進データを示す図。 本発明の1つの実施の形態による一連の値が図形的に表示された選択トラックの一例を概略的に示す図。 本発明の1つの実施の形態による選択トラックと暗号テーブルとのための設定スクリーンの一例を概略的に示す図。 本発明の1つの実施の形態によるトラック・ミキサーによる選択トラックのミキシングのプロセスを概略的に示す図。 本発明の1つの実施の形態による入力(元の)データを暗号化/復号化データへ暗号化/復号化する方法を概略的に示す図。 本発明の1つの実施の形態による暗号化操作のプロセス流れを概略的に示す図。 本発明の1つの実施の形態による復号化操作のプロセス流れを概略的に示す図。 本発明の1つの実施の形態による暗号化及び復号化プロセスの一例を概略的に示す図。 本発明の1つの実施の形態による暗号化(送信)プロセス及び復号化(受信)プロセスの際の相補的暗号化テーブル・バンクの暗号テーブル選択機能の例を概略的に示す図。 図11Aに示される相補的暗号化テーブル・バンク中の相補的行位置間の関係(右ボックス)、及び、暗号化(送信)プロセスと復号化(受信)プロセスに使用される暗号テーブル間の関係(左ボックス)を示す図。 本発明の1つの実施の形態による暗号化(送信)プロセス及び復号化(受信)プロセスの際の再指向暗号テーブル・バンク中の暗号テーブル選択機能の一例を概略的に示す図。 図12Aに示される再指向暗号化テーブル・バンク中の再指向行位置間の関係(右ボックス)、及び、暗号化(送信)プロセスと復号化(受信)プロセスに使用される暗号テーブル間の関係(左ボックス)を示す図。 本発明の1つの実施の形態による装置上の暗号器/復号器を自動的に設定するシステムを概略的に示す図。 本発明の1つの実施の形態による設定ファイル及びセッション・ファイルのためのバックアップ・システムを概略的に示す図。 本発明の1つの実施の形態による装置を認証する方法を概略的に示す図。

Claims (59)

  1. データを暗合化/復号化するための装置であって、
    第1の複数の暗合テーブルであって、暗合テーブルの各々がデータ値を暗合化/復号化値へ変換でき、データ値はデータのユニットに対応し、暗合化/復号化値は暗合化/復号化データのユニットに対応している、暗合テーブルと、
    第2の複数の選択トラックであって、選択トラックの各々があるパターンを持つ一連の値を含む、選択トラックと、
    前記第2の複数の選択トラックに接続されて、一連の組合された値を生成するために選択トラックの対応した値を組合わせるように構成されたトラック・ミキサーと、
    前記第1の複数の暗合テーブル及び前記トラック・ミキサーに接続されて、一連の組合された値中の組合された値に従ってそのユニットに対して選択された暗号テーブルを使用してデータの各ユニットを暗合化/復号化データのユニットへ変換するように構成された暗合化/復号化モジュールと、
    を備えた前記装置。
  2. 複数のソース・ファイルから第2の複数の選択トラックを生成するように構成された選択トラック生成器を、
    さらに備えた請求項1に記載の装置。
  3. ユニットのためのデータ長を選択するように構成されたデータ・ステップ・サイズ選択器を、
    さらに備えた請求項1に記載の装置。
  4. リアルタイムで送信されるデータのストリームを暗合化/復号化するために、前記テーブル選択器及び前記暗合化/復号化モジュールの操作が同期化されている請求項1に記載の装置。
  5. 前記第1の複数の暗合テーブルが、
    元のデータ値を暗合化値に変換するように構成された暗合テーブルを含む第1テーブル・バンクと、
    暗合化値を元のデータ値へ変換するように構成された暗合テーブルを含む第2テーブル・バンクと、
    を含む請求項1に記載の装置。
  6. 前記第1の複数の暗合テーブルが、
    データ値を暗合化/復号化値に変換するように構成された第1暗合テーブルと、
    データ値を暗合化/復号化値へ変換するように構成された第2暗合テーブルであって、第2暗合テーブルの各々は対応する第1暗合テーブルにより暗合化/復号化された暗合化/復号化値を元のデータ値へ逆変換することができ、第1暗合テーブルの各々は対応する第2暗合テーブルにより暗合化/復号化された暗合化/復号化値を元のデータ値へ逆変換することができる、第2暗合テーブルと、
    を含む請求項1に記載の装置。
  7. 第1の複数の暗合テーブルの各々がテーブル位置アドレスと関連付けられていて、そして第2暗合テーブルが対応する第1暗合テーブルのそれより所定量のオフセットされたテーブル位置アドレスを持つ請求項6に記載の装置。
  8. 前記暗合化/復号化モジュールが、
    前記第1の複数の暗合テーブル及び前記トラック・ミキサーに接続されたテーブル選択器であって、前記テーブル選択器が一連の組合わせられた値をテーブル位置アドレスと関連付けるように構成されている、テーブル選択器を、
    含み、前記テーブル選択器がさらに、
    もし、データが暗合化又は送信される場合、一連の組合わせられた値を使用して暗合テーブルを選択し、そして
    もし、データが復号化又は受信される場合、一連の組合わせられた値を所定のオフセットと共に使用して暗合テーブルを選択する、
    ように構成されている請求項6に記載の装置。
  9. 第1暗合テーブルの各々と対応する第2暗合テーブルとの間に一対一の関連性を提供するルックアップ・テーブルを、
    さらに備える請求項6に記載の装置。
  10. 暗合テーブルが、可能なデータ値の各々を元のデータ値とは異なる可能なデータ値の1つである対応する暗合化/復号化値へ変換することができる請求項1に記載の装置。
  11. 前記選択トラック生成器が、
    複数のソース・ファイルを記憶するメモリと、
    前記メモリに接続されて、選択されたソース・ファイルから一連の値を生成するように構成されたトラック・パターン・マネージャと、
    を含む請求項1に記載の装置。
  12. 前記トラック・パターン・マネージャはさらに、設定パラメータを使用して各々の一連の値を修正するように構成されている請求項11に記載の装置。
  13. 前記トラック・パターン・マネージャはさらに、各トラックの値を他のトラックと組合わせるために使用される数学的演算を選択するように構成されている請求項11に記載の装置。
  14. 前記装置に独特な識別コードと、
    前記第1の複数の暗合テーブル及び前記第2の複数の選択トラックを識別コードに関連した暗合化/復号化ファイルとして含む第1データベース・メモリと、
    をさらに備えた請求項1に記載の装置。
  15. 前記第1データベース・メモリはさらに暗合化/復号化ファイルとして、
    各々の前記選択トラックの値を修正することができ、そして各選択トラックを他のトラックへ組合わせる方法を決定する設定パラメータの組を、
    含む請求項14に記載の装置。
  16. 第1データベース・メモリ上の暗合化/復号化ファイルとは異なる少なくとも1つの第2暗合化/復号化ファイルを記憶するように構成された第2データベース・メモリを、
    さらに備える請求項14に記載の装置。
  17. 第1メモリ上の暗合化/復号化ファイルは、送信のために第2暗合化/復号化ファイルを暗合化し、又は、暗合化された第2暗合化/復号化ファイルを復号化するように構成されている請求項16に記載の装置。
  18. 選択トラックの各々は、そのトラックのあるパターンが繰返されるキー長を持つ請求項1に記載の装置。
  19. 選択トラックのキー長は、別の選択トラックのキー長と異なる請求項18に記載の装置。
  20. どのキー長も、別のキー長に2nを掛けることにより、又は、別のキー長を2nで割ることにより得られない、但し、nは整数、請求項19に記載の装置。
  21. キー長間の差が、キー長よりも実質的に小さい請求項18に記載の装置。
  22. 元のデータを暗合化/復号化データへ暗合化/復号化するための方法であって、
    各々がデータ値を暗合化/復号化値へ変換でき、データ値はデータのユニットに対応し、暗合化/復号化値は暗合化/復号化データのユニットに対応している、第1の複数の暗合テーブルを提供し、
    各々があるパターンを持つ一連の値を含む、第2の複数の選択トラックを提供し、
    一連の組合された値を生成するために選択トラックの対応する値を組合わせ、
    一連の組合された値中の組合された値に従ってデータの各ユニットに対して暗号テーブルを選択し、
    そのユニットに対して選択された暗号テーブルを使用して、データの各ユニットを暗合化/復号化データのユニットへ変換する、
    ことを含む前記方法。
  23. データベース・メモリ内に記憶されているソース・ファイルの中から第2の複数のソース・ファイルを選択し、
    選択されたソース・ファイルの各々から一連の値を生成する、
    ことをさらに含む請求項22に記載の方法。
  24. 設定パラメータを使用して一連の値の各々を修正する、
    ことをさらに含む請求項23に記載の方法。
  25. 各トラックの値を他のトラックと組合わせるために使用される数学的演算を選択する、
    ことをさらに含む請求項24に記載の方法。
  26. 前記第2の複数のソース・ファイルを選択すること、
    前記一連の値を生成すること、
    前記修正すること、
    前記数学的演算を選択すること、及び
    前記対応する値を組合わせること、の少なくとも1つを前処理し、
    選択されたソース・ファイルから生成された一連の値、
    設定パラメータにより修正された一連の値、及び
    一連の組合わせられた値、の少なくとも1つをデータベース・メモリ中に記憶する、
    ことをさらに含む請求項25に記載の方法。
  27. ユニットのデータ長を選択する、
    ことをさらに含む請求項22に記載の方法。
  28. リアルタイムで送信されるデータのストリームを暗合化/復号化するため、前記選択すること及び前記変換することを同期化させる、
    ことをさらに含む請求項22に記載の方法。
  29. 前記第1の複数の暗合テーブルが、
    元のデータ値を暗合化値に変換するように構成された暗合テーブルを含む第1テーブル・バンクと、
    暗合化値を元のデータ値へ変換するように構成された暗合テーブルを含む第2テーブル・バンクと、
    を含む請求項22に記載の方法。
  30. 前記第1の複数の暗合テーブルが、
    データ値を暗合化/復号化値に変換するように構成された第1暗合テーブルと、
    データ値を暗合化/復号化値へ変換するように構成された第2暗合テーブルであって、第2暗合テーブルの各々は対応する第1暗合テーブルにより暗合化/復号化された暗合化/復号化値を元のデータ値へ逆変換することができ、第1暗合テーブルの各々は対応する第2暗合テーブルにより暗合化/復号化された暗合化/復号化値を元のデータ値へ逆変換することができる、第2暗合テーブルと、
    を含む請求項22に記載の方法。
  31. 第1の複数の暗合テーブルの各々が、テーブル位置アドレスに関連付けられていて、
    第2暗合テーブルを、対応する第1暗合テーブルのそれより所定量のオフセットされたテーブル位置アドレスに関連付け、
    もし、データが暗合化又は送信される場合、一連の組合わせられた値を使用して暗合テーブルを選択し、
    もし、データが復号化又は受信される場合、一連の組合わせられた値を所定のオフセットと共に使用して暗合テーブルを選択する、
    ことをさらに含む請求項30に記載の方法。
  32. 第1暗合テーブルの各々と対応する第2暗合テーブルとの間に一対一の関連性を提供する、
    ことをさらに含む請求項30に記載の方法。
  33. 暗合テーブルが、可能なデータ値の各々を元のデータ値とは異なる可能なデータ値の1つの対応する暗合化/復号化値へ変換することができる請求項22に記載の方法。
  34. 前記暗合テーブルを選択することが、
    一連の組合された値をテーブル位置アドレスと関連付け、
    テーブル位置アドレスと関連付けられた暗合テーブルを選択する、
    ことを含む請求項22に記載の方法。
  35. 装置に独特な識別コード及びデータを暗合化/復号化できる識別コードに関連した設定ファイルを含んだ装置上の暗合器/復号器を自動的に設定する方法であって、
    装置から識別コードを受信し、
    設定ファイルを含んだデータベース・メモリから識別コードに関連した設定ファイルを検索し、
    以下を含むセッション・ファイルを生成し、
    複数の暗合テーブルの中から一組の暗合テーブルを選択し、
    各々があるパターンを持った一連の値を含んだ複数の選択トラックの中から一組の選択トラックを選択し、及び
    複数の設定パラメータの中から一組の設定パラメータを選択し、
    セッション・ファイルを識別コードと関連付け、
    設定ファイルを使用してセッション・ファイルの情報を暗合化し、
    装置へセッション・ファイルの暗合化された情報を送信する、
    ことを含む前記方法。
  36. セッション・ファイルの情報が、
    暗合テーブルの組、
    選択トラックの組、及び
    設定パラメータの組、
    を含む請求項35に記載の方法。
  37. セッション・ファイルの情報が、
    どの暗合テーブルが使用されるべきかの指示、
    どの選択トラックが使用されるべきかの指示、及び
    どの設定パラメータが使用されるべきかの指示、
    の少なくとも1つを含む請求項35に記載の方法。
  38. データベース・メモリ内に、識別コードとの関連性と一緒にセッション・ファイルの情報を記憶する、
    ことをさらに含む請求項35に記載の方法。
  39. 第2データベース・メモリ内の異なった場所に、識別コードと関連を持つ暗合テーブルの組、選択トラックの組、及び、設定パラメータの組の少なくとも1つを記憶する、
    ことをさらに含む請求項38に記載の方法。
  40. 第2データベース・メモリが、コンピュータ・ネットワークを介して装置からアクセス可能である請求項38に記載の方法。
  41. 前記選択トラックの組を選択することが、
    あるパターンを生成できるデータを含んだソース・ファイルを選択し、
    あるパターンを発生できるソフトウェア・モジュールを選択する
    ことを含む請求項35に記載の方法。
  42. 前記暗合テーブルの組を選択することが、
    設定ファイルの暗合テーブルの一組を選択する、
    ことを含む請求項35に記載の方法。
  43. 前記選択トラックの組を選択することが、
    設定ファイルの少なくとも1つの選択トラックを選択する、
    ことを含む請求項35に記載の方法。
  44. 前記設定パラメータの組を選択することが、
    設定ファイルの少なくとも1つの設定パラメータを選択する、
    ことを含む請求項35に記載の方法。
  45. 装置に独特な識別コード及びデータを暗合化/復号化できる識別コードに関連した設定ファイルを含んだ装置を認証する方法であって、
    装置から識別コードを受信し、
    設定ファイルを含んだデータベース・メモリから識別コードに関連した設定ファイルを検索し、
    一連の値を生成し、そして、一連の値を装置へ送信し、
    検索された設定ファイルを使用して一連の値を暗合化し、
    暗合化された一連の値から第1チェック・サムを計算し、
    装置の設定ファイルを使用して暗合化された一連の値から装置において計算された第2チェック・サムを装置から受信し、
    第2チェック・サムが第1チェック・サムと一致するかどうかを決定し、
    第2チェック・サムが第1チェック・サムと一致する場合、装置を認証する、
    ことを含む前記方法。
  46. 第2装置に独特な識別コード及びデータを暗合化/復号化できる識別コードに関連した設定ファイルを含んだ第2装置上の暗合器/復号器を自動的に設定するための装置であって、
    第2装置から識別コードを受信する手段と、
    設定ファイルを含んだデータベース・メモリから識別コードに関連した設定ファイルを検索する手段と、
    複数の暗合テーブルの中から一組の暗合テーブルを選択する手段と、
    各々がソース・ファイルを使用して生成されたあるパターンを持った一連の値を含んだ複数の選択トラックの中から一組の選択トラックを選択する手段と、
    複数の設定パラメータの中から一組の設定パラメータを選択する手段と、
    暗合テーブルの組、選択トラックの組、及び、設定パラメータの組を識別コードと関連付ける手段と、
    設定ファイルを使用して暗合テーブルの組、選択トラックの組、及び、設定パラメータの組を暗合化する手段と、
    第2装置へ、暗合テーブルの暗合化された組、選択トラックの暗合化された組、及び、設定パラメータの暗合化された組を送信する手段と、
    を備えた前記自動的に設定するための装置。
  47. データベース・メモリ内に、識別コードとの関連性と共に、暗合テーブルの組、選択トラックの組、及び、設定パラメータの組を記憶する手段、
    をさらに備えた請求項46に記載の装置。
  48. 第2データベース・メモリ内の異なった場所に、識別コードとの関連性と共に、暗合テーブルの組、選択トラックの組、及び、設定パラメータの組の少なくとも1つを記憶する手段、
    をさら備えた請求項47に記載の装置。
  49. 第2データベース・メモリが、コンピュータ・ネットワークを介して第2装置からアクセス可能である請求項48に記載の装置。
  50. 第2装置に独特な識別コード及びデータを暗合化/復号化できる識別コードに関連した設定ファイルを含んだ第2装置を認証する装置であって、
    第2装置から識別コードを受信する手段と、
    設定ファイルを含んだデータベース・メモリから識別コードに関連した設定ファイルを検索する手段と、
    一連の値を生成して、一連の値を第2装置へ送信する手段と、
    検索された設定ファイルを使用して一連の値を暗合化する手段と、
    暗合化された一連の値から第1チェック・サムを計算する手段と、
    第2装置の設定ファイルを使用して暗合化された一連の値から第2装置において計算された第2チェック・サムを第2装置から受信する手段と、
    第2チェック・サムが第1チェック・サムと一致するかどうかを決定する手段と、
    第2チェック・サムが第1チェック・サムと一致する場合、第2装置を認証する手段と、
    を備えた前記認証する装置。
  51. 元のデータを暗合化/復号化データへ暗合化/復号化する方法を実行するために機械により実行可能なプログラム命令を有形的に具体化した、機械読取可能なプログラム記憶装置であって、前記方法が、
    各々がデータ値を暗合化/復号化値へ変換でき、データ値はデータのユニットに対応し、暗合化/復号化値は暗合化/復号化データのユニットに対応している、第1の複数の暗合テーブルを提供し、
    各々が対応するソース・ファイルを使用して生成されたあるパターンを持つ一連の値を含む、第2の複数の選択トラックを提供し、
    一連の組合された値を生成するために選択トラックの対応する値を組合わせ、
    一連の組合された値中の組合された値に従ってデータの各ユニットに対して暗号テーブルを選択し、
    そのユニットに対して選択された暗号テーブルを使用して、データの各ユニットを暗合化/復号化データのユニットへ変換する、
    ことを含む前記記憶装置。
  52. 装置に独特な識別コード及びデータを暗合化/復号化できる識別コードに関連した設定ファイルを含んだ装置上の暗合器/復号器を自動的に設定する方法を実行するために機械により実行可能なプログラム命令を有形的に具体化した、機械読取可能なプログラム記憶装置であって、前記方法が、
    装置から識別コードを受信し、
    設定ファイルを含んだデータベース・メモリから識別コードに関連した設定ファイルを検索し、
    複数の暗合テーブルの中から一組の暗合テーブルを選択し、
    各々がソース・ファイルを使用して生成されたあるパターンを持った一連の値を含んだ複数の選択トラックの中から一組の選択トラックを選択し、
    複数の設定パラメータの中から一組の設定パラメータを選択し、
    一組の暗合テーブル、一組の選択トラック、及び、一組の設定パラメータを識別コードと関連付け、
    設定ファイルを使用して、一組の暗合テーブル、一組の選択トラック、及び、一組の設定パラメータを暗合化し、
    暗合化された一組の暗合テーブル、暗合化された一組の選択トラック、及び、暗合化された一組の設定パラメータを装置へ送信する、
    ことを含む前記記憶装置。
  53. 装置に独特な識別コード及びデータを暗合化/復号化できる識別コードに関連した設定ファイルを含んだ装置を認証する方法を実行するために機械により実行可能なプログラム命令を有形的に具体化した、機械読取可能なプログラム記憶装置であって、前記方法が、
    装置から識別コードを受信し、
    設定ファイルを含んだデータベース・メモリから識別コードに関連した設定ファイルを検索し、
    一連の値を生成して、一連の値を装置へ送信し、
    検索された設定ファイルを使用して一連の値を暗合化し、
    暗合化された一連の値から第1チェック・サムを計算し、
    装置の設定ファイルを使用して暗合化された一連の値から装置で計算された第2チェック・サムを装置から受信し、
    第2チェック・サムが第1チェック・サムと一致するかどうかを決定し、
    第2チェック・サムが第1チェック・サムと一致する場合、装置を認証する、
    ことを含む前記記憶装置。
  54. 各々が対応するソース・ファイルを使用して生成されたあるパターンを持つ一連の値を含む複数の選択トラックを生成するように構成され選択トラック生成器であって、
    複数のソース・ファイルを記憶するメモリ、及び
    前記メモリに接続されて、選択されたソース・ファイルから一連の値を生成するように構成されたトラック・パターン・マネージャを含む、前記選択トラック生成器と、
    前記選択トラック生成器に接続されて、一連の組合わせられた値を生成するために選択トラックの対応する値を組合わせるように構成されたトラック・ミキサーと、を備え、
    前記トラック・マネージャがさらに、設定パラメータを使用して各一連の値を修正するように構成されている擬似乱数生成器。
  55. 前記トラック・パターン・マネージャがさらに、各トラックの値を他のトラックと組合わせるために使用される数学的演算を選択するように構成されている請求項54に記載の擬似乱数生成器。
  56. 選択トラックの各々が、トラックのあるパターンが繰返されるキー長を持つ請求項54に記載の擬似乱数生成器。
  57. 選択トラックのキー長はどれも、別の選択トラックのキー長と等しくない請求項56に記載の擬似乱数生成器。
  58. どのキー長も、別のキー長に2nを掛けることにより、又は、別のキー長を2nで割ることにより得られない、但し、nは整数、請求項56に記載の擬似乱数生成器。
  59. キー長間の差が、キー長よりも実質的に小さい請求項57に記載の擬似乱数生成器。
JP2004524910A 2002-07-27 2003-07-25 暗号化及び復号化装置及び方法 Pending JP2005534965A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US39909202P 2002-07-27 2002-07-27
PCT/US2003/023473 WO2004012384A2 (en) 2002-07-27 2003-07-25 Apparatus and method for enctyption and decryption

Publications (1)

Publication Number Publication Date
JP2005534965A true JP2005534965A (ja) 2005-11-17

Family

ID=31188542

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004524910A Pending JP2005534965A (ja) 2002-07-27 2003-07-25 暗号化及び復号化装置及び方法

Country Status (9)

Country Link
US (1) US20050226408A1 (ja)
EP (1) EP1527551A2 (ja)
JP (1) JP2005534965A (ja)
KR (1) KR20060014356A (ja)
CN (1) CN1771688A (ja)
AU (1) AU2003265307A1 (ja)
BR (1) BR0313013A (ja)
RU (1) RU2005105304A (ja)
WO (1) WO2004012384A2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007079123A (ja) * 2005-09-14 2007-03-29 Railway Technical Res Inst 通信システム、送信側装置、受信側装置及びプログラム
JP2014098773A (ja) * 2012-11-13 2014-05-29 Forecast Communications Inc 暗号システム、復号サーバ、暗号方法、及び復号プログラム
JP2014102856A (ja) * 2014-02-14 2014-06-05 Universal Entertainment Corp 通信システム及び遊技機

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7630492B2 (en) * 2002-10-03 2009-12-08 Daniel Lecomte Secure audio stream scramble system
US7730296B2 (en) * 2003-02-12 2010-06-01 Broadcom Corporation Method and system for providing synchronous running encoding and encryption
DE10345457A1 (de) * 2003-09-30 2005-04-28 Infineon Technologies Ag Verfahren und Vorrichtung zur Ver- und Entschlüsselung
JP4696449B2 (ja) * 2004-01-09 2011-06-08 ソニー株式会社 暗号化装置およびその方法
KR100636150B1 (ko) * 2004-07-01 2006-10-19 삼성전자주식회사 암호화 모듈을 포함하는 멀티미디어 장치
US8677123B1 (en) 2005-05-26 2014-03-18 Trustwave Holdings, Inc. Method for accelerating security and management operations on data segments
JP2007122843A (ja) 2005-10-31 2007-05-17 Toshiba Corp 情報再生装置及び方法
US7945921B2 (en) * 2007-03-01 2011-05-17 Microsoft Corporation Cross application domain late binding to non-local types
JP5273141B2 (ja) * 2008-04-15 2013-08-28 日本電気株式会社 調整値付きブロック暗号装置、暗号生成方法および記録媒体
US8627103B2 (en) * 2008-05-23 2014-01-07 Koninklijke Philips N.V. Identity-based encryption of data items for secure access thereto
US8364567B2 (en) * 2008-12-29 2013-01-29 Bank Of America Corporation Secure platforms for financial transaction applications
US8116453B2 (en) * 2008-12-29 2012-02-14 Bank Of America Corporation Gaming console-specific user authentication
US8676659B1 (en) 2009-07-23 2014-03-18 Bank Of America Corporation Methods and apparatuses for facilitating financial transactions using gamer tag information
US9087080B2 (en) 2009-10-14 2015-07-21 Trice Imaging, Inc. Systems and methods for converting and delivering medical images to mobile devices and remote communications systems
US11206245B2 (en) * 2009-10-14 2021-12-21 Trice Imaging, Inc. Systems and devices for encrypting, converting and interacting with medical images
US11948678B2 (en) * 2009-10-14 2024-04-02 Trice Imaging, Inc. Systems and devices for encrypting, converting and interacting with medical images
US11462314B2 (en) 2009-10-14 2022-10-04 Trice Imaging, Inc. Systems and devices for encrypting, converting and interacting with medical images
US9712498B2 (en) 2009-10-14 2017-07-18 Trice Imaging, Inc. Systems and devices for encrypting, converting and interacting with medical images
US20120063597A1 (en) * 2010-09-15 2012-03-15 Uponus Technologies, Llc. Apparatus and associated methodology for managing content control keys
KR101049072B1 (ko) * 2011-02-17 2011-07-15 (주)케이사인 식별 데이터를 이용하여 맵핑하는 방법
RU2462338C1 (ru) * 2011-03-24 2012-09-27 Михаил Григорьевич Афонькин Способ маркировки объекта с целью его идентификации
WO2013162402A1 (ru) * 2012-04-27 2013-10-31 Pryakhin Evgeniy Ivanovich Способ защиты цифровой информации
DE102013109979A1 (de) 2012-09-12 2014-04-10 Ableton Ag Dynamisches diatonisches Musikinstrument
US20140270165A1 (en) * 2013-03-15 2014-09-18 Alexandre Andre DURAND Cryptographic system based on reproducible random sequences
KR101537993B1 (ko) * 2014-01-09 2015-07-20 한국전자통신연구원 파형 데이터 저장 방법 및 그 장치
CN103888937B (zh) * 2014-03-31 2017-06-20 北京科技大学 一种适用于无线传感器网络aes加密的低开销快速轮加密装置及方法
CN104093029B (zh) * 2014-07-22 2017-10-13 哈尔滨工业大学(威海) 一种基于新时空混沌系统的视频加密算法
EP3195518A1 (en) * 2014-09-14 2017-07-26 Alexandre Durand Cryptographic system based on reproducible random sequences
US10419208B2 (en) * 2016-06-02 2019-09-17 Wipro Limited Method and system for encrypting data
US10367637B2 (en) * 2016-07-22 2019-07-30 Qualcomm Incorporated Modular exponentiation with transparent side channel attack countermeasures
US11563555B2 (en) * 2017-09-26 2023-01-24 Thales Dis Cpl Usa, Inc. Management of encryption agents in data storage systems
US10657091B2 (en) * 2018-07-26 2020-05-19 International Business Machines Corporation Speculative execution in a distributed streaming system
KR101932680B1 (ko) * 2018-09-27 2018-12-26 (주)아이엔아이 데이터를 안전하게 보호하는 암호화 키 생성 모듈
US11470471B2 (en) 2019-07-19 2022-10-11 Rosemount Aerospace, Inc. Wireless baseband signal transmission with dynamic control logic to improve security robustness
US11509633B2 (en) * 2019-10-21 2022-11-22 Rosemount Aerospace, Inc. Dynamic security approach for WAIC baseband signal transmission and reception
CN110765478B (zh) * 2019-11-07 2020-07-31 城云科技(中国)有限公司 一种大数据信息安全存储加密系统及其方法
CN113496679B (zh) * 2020-03-19 2022-10-04 川奇光电科技(扬州)有限公司 显示装置及其驱动保护方法
CN112019701B (zh) * 2020-09-08 2021-09-21 中国人民解放军海军航空大学 一种采用非线性低通滤波实现图像加密的方法
CN114338182B (zh) * 2021-12-29 2024-04-12 中国电信股份有限公司 数据加密方法及装置、非易失性存储介质、电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4853962A (en) * 1987-12-07 1989-08-01 Universal Computer Consulting, Inc. Encryption system
US5414771A (en) * 1993-07-13 1995-05-09 Mrj, Inc. System and method for the creation of random sequences and for the cryptographic protection of communications
JPH07312593A (ja) * 1994-05-17 1995-11-28 Nec Corp オンライン伝文暗号化装置
JPH0993242A (ja) * 1995-09-27 1997-04-04 Nec Eng Ltd データ送受信装置
JP2001175166A (ja) * 1999-12-20 2001-06-29 Nec Network Sensa Kk 符号変換方法及び符号変換装置
JP3188940B2 (ja) * 1989-08-17 2001-07-16 クリプテック・インク 暗号化システム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4583962A (en) * 1984-12-07 1986-04-22 Litens Automotive Inc. Timing belt tensioner with damped constant spring tensioning and belt tooth disegagement prevention

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4853962A (en) * 1987-12-07 1989-08-01 Universal Computer Consulting, Inc. Encryption system
JP3188940B2 (ja) * 1989-08-17 2001-07-16 クリプテック・インク 暗号化システム
US5414771A (en) * 1993-07-13 1995-05-09 Mrj, Inc. System and method for the creation of random sequences and for the cryptographic protection of communications
JPH07312593A (ja) * 1994-05-17 1995-11-28 Nec Corp オンライン伝文暗号化装置
JPH0993242A (ja) * 1995-09-27 1997-04-04 Nec Eng Ltd データ送受信装置
JP2001175166A (ja) * 1999-12-20 2001-06-29 Nec Network Sensa Kk 符号変換方法及び符号変換装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007079123A (ja) * 2005-09-14 2007-03-29 Railway Technical Res Inst 通信システム、送信側装置、受信側装置及びプログラム
JP4734069B2 (ja) * 2005-09-14 2011-07-27 公益財団法人鉄道総合技術研究所 通信システム、送信側装置、受信側装置及びプログラム
JP2014098773A (ja) * 2012-11-13 2014-05-29 Forecast Communications Inc 暗号システム、復号サーバ、暗号方法、及び復号プログラム
JP2014102856A (ja) * 2014-02-14 2014-06-05 Universal Entertainment Corp 通信システム及び遊技機

Also Published As

Publication number Publication date
US20050226408A1 (en) 2005-10-13
KR20060014356A (ko) 2006-02-15
RU2005105304A (ru) 2005-09-20
WO2004012384A3 (en) 2004-11-18
AU2003265307A1 (en) 2004-02-16
BR0313013A (pt) 2005-08-09
EP1527551A2 (en) 2005-05-04
WO2004012384A2 (en) 2004-02-05
CN1771688A (zh) 2006-05-10

Similar Documents

Publication Publication Date Title
JP2005534965A (ja) 暗号化及び復号化装置及び方法
US6125185A (en) System and method for encryption key generation
US8249255B2 (en) System and method for securing communications between devices
US11509463B2 (en) Timestamp-based shared key generation
US20090022319A1 (en) Method and apparatus for securing data and communication
US20040228485A1 (en) Method and apparatus for the generation of public key based on a user-defined ID in a cryptosystem
US20230299947A1 (en) Computer implemented system and method for sharing a common secret
US11438145B2 (en) Shared key generation based on dual clocks
US20080181397A1 (en) Secure data transmission and storage using limited-domain functions
Rushdi et al. A pedagogical multi-key multi-stage package to secure communication channels
Gohel Introduction to Network & Cybersecurity
JP2002063139A (ja) 端末装置、サーバ装置および端末認証方法
CN116866029B (zh) 随机数加密数据传输方法、装置、计算机设备及存储介质
Pulyala et al. Portable Cloud-Based Data Storage Security Using Dual Encryption
WO2024020666A1 (en) End to end encryption with roaming capabilities
Adamović Development of a Cryptographic Solution Based on Kerberos for Database Security
Rath et al. Cryptography and network security lecture notes
JP2024514627A (ja) デュアルクロックに基づく共有鍵の生成
ASCII et al. Green Global Foundation©
Kshirsagar et al. Result Paper on Public Auditing by using KERBEROS to Secure Cloud Storage
Lakshmiraghavan et al. Encryption and Signing
Dable et al. Design and Implement Enhancing Security in Multi Cloud Storage System using Distributed File System
JP2002044073A (ja) 暗号化方式及び復号化方式
JP2002072872A (ja) データセキュリティ装置、データセキュリティ方法及びその記録媒体
Jaiganesh et al. Security management in Kerberos V5 for GSM network

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060725

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091207

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100308

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100315

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100802