JP3320928B2 - 暗号化システム - Google Patents
暗号化システムInfo
- Publication number
- JP3320928B2 JP3320928B2 JP29772594A JP29772594A JP3320928B2 JP 3320928 B2 JP3320928 B2 JP 3320928B2 JP 29772594 A JP29772594 A JP 29772594A JP 29772594 A JP29772594 A JP 29772594A JP 3320928 B2 JP3320928 B2 JP 3320928B2
- Authority
- JP
- Japan
- Prior art keywords
- value
- values
- pseudo
- register
- function
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/45—Structures or tools for the administration of authentication
- G06F21/46—Structures or tools for the administration of authentication by designing passwords or checking the strength of passwords
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/80—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in storage media based on magnetic or optical technology, e.g. disks with sectors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/85—Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/007—Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/04—Masking or blinding
- H04L2209/046—Masking or blinding of operations, operands or results of the operations
Description
【0001】
【産業上の利用分野】本発明は、全般的にデータ暗号化
の方法に関し、さらに詳細には従来のプロセッサ・プラ
ットホームにおいて高速でかつ計算効率の高い、ソフト
ウェアにより最適化された暗号化技法に関する。
の方法に関し、さらに詳細には従来のプロセッサ・プラ
ットホームにおいて高速でかつ計算効率の高い、ソフト
ウェアにより最適化された暗号化技法に関する。
【0002】
【従来の技術】暗号システムは、安全でないチャネル上
を通信されるメッセージのプライバシーと真正さを保証
するために広く使用されている。多くの応用分野では、
暗号化を高いデータ伝送速度で実行することが必要であ
るが、この要件は、通常は、これをサポートする暗号ハ
ードウェアの助けで達成される。しかしこのようなハー
ドウェアは、大部分の従来のコンピュータ・システム上
で使用可能ではない。その上、暗号ハードウェアが利用
可能な場合でも、ハードウェア中でよく走るように設計
されたアルゴリズムが、ソフトウェア実行に最適化され
たアルゴリズムほど、そのソフトウェアでうまく働かな
いことが判明している。データ暗号化規格(DES)の
ハードウェアで効率のよいアルゴリズムも例外ではな
い。
を通信されるメッセージのプライバシーと真正さを保証
するために広く使用されている。多くの応用分野では、
暗号化を高いデータ伝送速度で実行することが必要であ
るが、この要件は、通常は、これをサポートする暗号ハ
ードウェアの助けで達成される。しかしこのようなハー
ドウェアは、大部分の従来のコンピュータ・システム上
で使用可能ではない。その上、暗号ハードウェアが利用
可能な場合でも、ハードウェア中でよく走るように設計
されたアルゴリズムが、ソフトウェア実行に最適化され
たアルゴリズムほど、そのソフトウェアでうまく働かな
いことが判明している。データ暗号化規格(DES)の
ハードウェアで効率のよいアルゴリズムも例外ではな
い。
【0003】ソフトウェアでの効率的な実行のための暗
号化方法を設計しようというこれまでの試みが従来技術
で知られている。これらの機能のいくつかは、米国特許
第5003597号明細書、及びR.マークル(Merkl
e)の論文"Fast Software Encryption Functions", Adv
ances in Cryptology, CRYPTO '90 Proceedings, Sprin
ger-Verlag に記載されている。一般に、マークルの技
法は、左半分と右半分の2つの半体を有するデータ入力
に作用することにより、固定長暗号または「ブロック」
暗号を構築するというものである。左半分は、擬似乱数
表にアクセスして表値を取り出すためのインデックスと
して使用される。次にその値がデータ入力の右半分と排
他的OR(XOR)され、結果が左半分として再ラベル
される。次に元の左半分が所定の量だけ回転され、右半
分と再ラベルされる。その後同様にして、データ入力が
完全にランダム化されるまでこの反復過程が継続され
る。高速を達成するため、一実施例では、擬似乱数表が
予め計算される。
号化方法を設計しようというこれまでの試みが従来技術
で知られている。これらの機能のいくつかは、米国特許
第5003597号明細書、及びR.マークル(Merkl
e)の論文"Fast Software Encryption Functions", Adv
ances in Cryptology, CRYPTO '90 Proceedings, Sprin
ger-Verlag に記載されている。一般に、マークルの技
法は、左半分と右半分の2つの半体を有するデータ入力
に作用することにより、固定長暗号または「ブロック」
暗号を構築するというものである。左半分は、擬似乱数
表にアクセスして表値を取り出すためのインデックスと
して使用される。次にその値がデータ入力の右半分と排
他的OR(XOR)され、結果が左半分として再ラベル
される。次に元の左半分が所定の量だけ回転され、右半
分と再ラベルされる。その後同様にして、データ入力が
完全にランダム化されるまでこの反復過程が継続され
る。高速を達成するため、一実施例では、擬似乱数表が
予め計算される。
【0004】
【発明が解決しようとする課題】マークルの技法及び他
の既知のソフトウェア指向のブロック暗号は、従来技術
のハードウェア技術の暗号化技法に勝る利点を提供す
る。とはいえ、従来のプロセッサ・プラットホームにお
いて高速で計算効率の高い、改善されたソフトウェアで
効率のよい(Software-efficient)暗号化技法を提供す
ることが依然必要とされている。
の既知のソフトウェア指向のブロック暗号は、従来技術
のハードウェア技術の暗号化技法に勝る利点を提供す
る。とはいえ、従来のプロセッサ・プラットホームにお
いて高速で計算効率の高い、改善されたソフトウェアで
効率のよい(Software-efficient)暗号化技法を提供す
ることが依然必要とされている。
【0005】本発明の一目的は、インデックス値とキー
から擬似ランダム・ビット・シーケンスを生成する、ソ
フトウェアで効率のよい擬似ランダム機能を提供するこ
とである。インデックスは短い(例えば32ビット)
が、出力ビット・シーケンスは潜在的に非常に長い。擬
似ランダム・ビット・ストリングはストリーム暗号の構
築に有用である。
から擬似ランダム・ビット・シーケンスを生成する、ソ
フトウェアで効率のよい擬似ランダム機能を提供するこ
とである。インデックスは短い(例えば32ビット)
が、出力ビット・シーケンスは潜在的に非常に長い。擬
似ランダム・ビット・ストリングはストリーム暗号の構
築に有用である。
【0006】
【課題を解決するための手段】上述の擬似ランダム機能
は、好ましくはインデックス値"n"と暗号化キーから擬
似ランダム・ビット・シーケンスを生成する、暗号「オ
ブジェクト」である。この方法は、暗号化キーを事前処
理して擬似乱数値の表にすることから始まる。次にこの
インデックスと表からの1組の値を使って、複数のレジ
スタの初期値を生成する。次に所定の混合関数を使っ
て、レジスタの現在値を取り、この現在値と表から取り
出した1つまたは複数の他のレジスタの部分によって決
定される値との関数でこの現在値を置き換えることによ
り、若干のレジスタの初期値が部分的に修正される。こ
うしてレジスタを修正した後、その結果得られる値を、
表から導かれた他の擬似乱数値と所定のマスク関数とを
使ってマスクする。マスクされたレジスタ値を次に連結
して、擬似ランダム・ビット・ストリングにすると1つ
の繰返し処理が完了する。その後の繰返し処理は、擬似
ランダム・ビット・ストリングを所望の長さまで成長さ
せるために行われる。
は、好ましくはインデックス値"n"と暗号化キーから擬
似ランダム・ビット・シーケンスを生成する、暗号「オ
ブジェクト」である。この方法は、暗号化キーを事前処
理して擬似乱数値の表にすることから始まる。次にこの
インデックスと表からの1組の値を使って、複数のレジ
スタの初期値を生成する。次に所定の混合関数を使っ
て、レジスタの現在値を取り、この現在値と表から取り
出した1つまたは複数の他のレジスタの部分によって決
定される値との関数でこの現在値を置き換えることによ
り、若干のレジスタの初期値が部分的に修正される。こ
うしてレジスタを修正した後、その結果得られる値を、
表から導かれた他の擬似乱数値と所定のマスク関数とを
使ってマスクする。マスクされたレジスタ値を次に連結
して、擬似ランダム・ビット・ストリングにすると1つ
の繰返し処理が完了する。その後の繰返し処理は、擬似
ランダム・ビット・ストリングを所望の長さまで成長さ
せるために行われる。
【0007】こうして生成されたストリームは、たとえ
ば、平文の「ストリング」を特定の「位置」に関して暗
号化するのに有用な、擬似ランダム・ビット・シーケン
スである。擬似ランダム・ビット・シーケンスの長さ
は、平文ストリングのビット数と同じ長さである。した
がって、本発明の暗号化方法は、様々なタイプのソフト
ウェア暗号に使用できるように独特の方法で適合され
る。たとえば、安全でない通信チャネル上でのメッセー
ジの暗号化に関する応用例では、「ストリング」は特定
のメッセージであり、「位置」はデータ・ストリームに
おけるメッセージの位置を識別する連続番号である。こ
の応用例では、暗号化キーは、その通信セッションを保
護するキーである。別の応用例であるディスクの暗号化
では、「ストリング」は、ディスクに書き込まれるある
いはディスクから読み取られるデータの特定のセクタを
表し、「位置」は、大容量記憶装置上でのそのセクタの
位置を識別するインデックスである。ディスク暗号化の
応用例では、表の生成に使用されるキーは、ユーザが入
力したパスワードから導出することが好ましい。通常
は、各応用例において、特定の「ストリング」がそのス
トリングと本発明の擬似ランダム機能から出力される擬
似ランダム・ビット・ストリームとのXORによって暗
号化される。
ば、平文の「ストリング」を特定の「位置」に関して暗
号化するのに有用な、擬似ランダム・ビット・シーケン
スである。擬似ランダム・ビット・シーケンスの長さ
は、平文ストリングのビット数と同じ長さである。した
がって、本発明の暗号化方法は、様々なタイプのソフト
ウェア暗号に使用できるように独特の方法で適合され
る。たとえば、安全でない通信チャネル上でのメッセー
ジの暗号化に関する応用例では、「ストリング」は特定
のメッセージであり、「位置」はデータ・ストリームに
おけるメッセージの位置を識別する連続番号である。こ
の応用例では、暗号化キーは、その通信セッションを保
護するキーである。別の応用例であるディスクの暗号化
では、「ストリング」は、ディスクに書き込まれるある
いはディスクから読み取られるデータの特定のセクタを
表し、「位置」は、大容量記憶装置上でのそのセクタの
位置を識別するインデックスである。ディスク暗号化の
応用例では、表の生成に使用されるキーは、ユーザが入
力したパスワードから導出することが好ましい。通常
は、各応用例において、特定の「ストリング」がそのス
トリングと本発明の擬似ランダム機能から出力される擬
似ランダム・ビット・ストリームとのXORによって暗
号化される。
【0008】以上、本発明のより重要な目的のいくつか
の概要を示した。これらの目的は、本発明のより顕著な
特徴及び応用例の一部を例示するものにすぎないと解釈
されたい。ここに開示する本発明を異なる形で適用し、
あるいは後述のように本発明を修正することにより、他
の多くの有益な結果が達成できる。したがって、好まし
い実施例に関する下記の詳細な説明を参照すれば、本発
明の他の目的がわかり、本発明がより完全に理解されよ
う。
の概要を示した。これらの目的は、本発明のより顕著な
特徴及び応用例の一部を例示するものにすぎないと解釈
されたい。ここに開示する本発明を異なる形で適用し、
あるいは後述のように本発明を修正することにより、他
の多くの有益な結果が達成できる。したがって、好まし
い実施例に関する下記の詳細な説明を参照すれば、本発
明の他の目的がわかり、本発明がより完全に理解されよ
う。
【0009】
【実施例】本発明の擬似ランダム機能は、ソフトウェア
で効率的に実行されるように最適化されており、従来型
設計の32ビット・プロセッサで実施することが好まし
い。そのようなプロセッサには、たとえばIntel3
86TM、Intel 486TM、PentiumTMプロ
セッサならびに32ビットの縮小命令セット・コンピュ
ータ(RISC)プロセッサが含まれる。これらの実行
ビークルが好ましいが、以下に詳記する好ましい実施例
における本発明は、任意のバイト・アドレスおよび汎用
32ビット・プロセッサに適している。
で効率的に実行されるように最適化されており、従来型
設計の32ビット・プロセッサで実施することが好まし
い。そのようなプロセッサには、たとえばIntel3
86TM、Intel 486TM、PentiumTMプロ
セッサならびに32ビットの縮小命令セット・コンピュ
ータ(RISC)プロセッサが含まれる。これらの実行
ビークルが好ましいが、以下に詳記する好ましい実施例
における本発明は、任意のバイト・アドレスおよび汎用
32ビット・プロセッサに適している。
【0010】本明細書では便宜上下記の表記法を使用す
る。32ビット・ストリングを「ワード」で表し、8ビ
ット・ストリングを「バイト」で表す。空のストリング
はλで表す。長さtのストリングの各ビットをx
0x1...xt-1と番号を付ける。16進数はその前に"
0x"を付け、10進数10−15をそれぞれ記号"a"
−"f"で表す。ワードyをtビットずつ右循環シフトす
ることをy>>>tで表す。言い換えれば、y>>>t
のビットiはy(i-t)mod32である。記号"∧"、"∨"でビ
ットごとのAND、ORを表す。式A+Bは、符号なし
のワードAとBの桁上げを無視した和を表す。すなわ
ち、ワードAとBのsum mod32である。記号"
‖"は連結演算子を表す。記号odd(・)は、その引
数が奇数である場合にのみ真となる述部を意味する。記
号A[i]は、アレイAのi番目のエントリを表す。
る。32ビット・ストリングを「ワード」で表し、8ビ
ット・ストリングを「バイト」で表す。空のストリング
はλで表す。長さtのストリングの各ビットをx
0x1...xt-1と番号を付ける。16進数はその前に"
0x"を付け、10進数10−15をそれぞれ記号"a"
−"f"で表す。ワードyをtビットずつ右循環シフトす
ることをy>>>tで表す。言い換えれば、y>>>t
のビットiはy(i-t)mod32である。記号"∧"、"∨"でビ
ットごとのAND、ORを表す。式A+Bは、符号なし
のワードAとBの桁上げを無視した和を表す。すなわ
ち、ワードAとBのsum mod32である。記号"
‖"は連結演算子を表す。記号odd(・)は、その引
数が奇数である場合にのみ真となる述部を意味する。記
号A[i]は、アレイAのi番目のエントリを表す。
【0011】以下の説明で使用する、いくつかの変数を
「レジスタ」と呼ぶ。本明細書では「レジスタ」はプロ
セッサに関連する物理レジスタに対応するものであるこ
ともそうでないこともある。それは特定の「値」をもつ
と言える構造体(construct)である。あるレジスタ
(n1,n2,n3,n4)は初期設定され、アルゴリズム
の多くのステップでその値を保持する。他のレジスタ
(A、B、C、D)は、より頻繁に変化し得る値をも
つ。あらゆるレジスタは、特定の時間に「現在値」をも
つ。後でわかるように、本発明の方法の一態様によれ
ば、レジスタの「現在値」は通常、その現在値と擬似乱
数値の表から導出された値との関数でその現在値を置き
換えることによって修正される。
「レジスタ」と呼ぶ。本明細書では「レジスタ」はプロ
セッサに関連する物理レジスタに対応するものであるこ
ともそうでないこともある。それは特定の「値」をもつ
と言える構造体(construct)である。あるレジスタ
(n1,n2,n3,n4)は初期設定され、アルゴリズム
の多くのステップでその値を保持する。他のレジスタ
(A、B、C、D)は、より頻繁に変化し得る値をも
つ。あらゆるレジスタは、特定の時間に「現在値」をも
つ。後でわかるように、本発明の方法の一態様によれ
ば、レジスタの「現在値」は通常、その現在値と擬似乱
数値の表から導出された値との関数でその現在値を置き
換えることによって修正される。
【0012】次に具体的に図1を参照すると、キー"a"
から生成された1組の表T、R、Sの制御下で32ビッ
トのインデックス"n"からLビットのストリングy=S
EAL a (n)を生成する方法を詳述したプロセス流れ
図が示されている。この方法は、キー"a"を事前処理し
て好ましくは3つの表T、R、Sに入力することにより
開始する。このステップは、キー"a"を入力として受け
取る表作成手順10を使って実行される。この特定の例
では、キーは160ビット・ストリングであり、これを
下記の関数Gと一緒に使って3つの表を定義する。3つ
の表を使用することが好ましいが、3つの表を、3つの
異なる部分をもつ単に1つの表あるいはアレイと考える
こともできる。したがって3つの異なる表という記述は
単に例示的なものであって制限と見なすべきではなく、
本発明を実施するのに他の表のグループまたは構造も有
用である。
から生成された1組の表T、R、Sの制御下で32ビッ
トのインデックス"n"からLビットのストリングy=S
EAL a (n)を生成する方法を詳述したプロセス流れ
図が示されている。この方法は、キー"a"を事前処理し
て好ましくは3つの表T、R、Sに入力することにより
開始する。このステップは、キー"a"を入力として受け
取る表作成手順10を使って実行される。この特定の例
では、キーは160ビット・ストリングであり、これを
下記の関数Gと一緒に使って3つの表を定義する。3つ
の表を使用することが好ましいが、3つの表を、3つの
異なる部分をもつ単に1つの表あるいはアレイと考える
こともできる。したがって3つの異なる表という記述は
単に例示的なものであって制限と見なすべきではなく、
本発明を実施するのに他の表のグループまたは構造も有
用である。
【0013】表中の擬似乱数値は、当技術分野で既知の
任意の1つまたは複数のアルゴリズムを使って指定され
る。どのアルゴリズムを使用するかは本発明にとって重
要ではなく、この目的にどんな安全な擬似乱数生成機構
も有用であると考えられる。すなわち、擬似乱数生成機
構は、安全ハッシュ・アルゴリズム、ブロック暗号、ス
トリーム暗号などから導出することができる。たとえ
ば、表の生成に使用されるアルゴリズムは、DES、M
D5、安全ハッシュ・アルゴリズム(SHA)あるいは
それらの任意の組合せに基づくものでよい。ここに例示
する実施例では、関数Gは米国標準機構「デジタル署名
規格」、連邦情報処理標準刊行物XX草案−1993年
2月に記載されている。関数Gは、米国標準機構「安全
ハッシュ規格」、連邦情報処理標準刊行物180に記載
の安全ハッシュ・アルゴリズム(SHA)に基づいてい
る。SHA及びこの特定の関数Gの詳細は、これらの参
照文献に出ている(これらの参照文献では、表記G
(a,i)の代わりに表記Ga(i)が使用されてい
る)。
任意の1つまたは複数のアルゴリズムを使って指定され
る。どのアルゴリズムを使用するかは本発明にとって重
要ではなく、この目的にどんな安全な擬似乱数生成機構
も有用であると考えられる。すなわち、擬似乱数生成機
構は、安全ハッシュ・アルゴリズム、ブロック暗号、ス
トリーム暗号などから導出することができる。たとえ
ば、表の生成に使用されるアルゴリズムは、DES、M
D5、安全ハッシュ・アルゴリズム(SHA)あるいは
それらの任意の組合せに基づくものでよい。ここに例示
する実施例では、関数Gは米国標準機構「デジタル署名
規格」、連邦情報処理標準刊行物XX草案−1993年
2月に記載されている。関数Gは、米国標準機構「安全
ハッシュ規格」、連邦情報処理標準刊行物180に記載
の安全ハッシュ・アルゴリズム(SHA)に基づいてい
る。SHA及びこの特定の関数Gの詳細は、これらの参
照文献に出ている(これらの参照文献では、表記G
(a,i)の代わりに表記Ga(i)が使用されてい
る)。
【0014】キー"a"が160ビット・ストリングであ
り、iが0≦i<232の整数であるとすると、G
a(i)は160ビットの値である。表構築のため、G
を表作成手順10によって再インデックスし、そのイメ
ージが160ビット・ワードではなく32ビット・ワー
ドである関数を構築する。関数ΓはΓa(i)=Hi
imod5で定義される。Γ値の表は、G値の表を左から
右、上から下に読んだものである。次いで表作成手順1
0は、好ましくは下記のように各表を定義する。 0≦i<512であるすべてのiについて、T[i]=Γa(i) 0≦j<256であるすべてのjについて、S[j]=Γa(0x1000+ j) R[k]=Γa(0x2000+k) したがって表Tは512ワード・エントリを有し、各エ
ントリは長さ32ビットである。表SとRのエントリも
32ビット・ワードである。表Sは256エントリを有
し、表Rは可変長である。
り、iが0≦i<232の整数であるとすると、G
a(i)は160ビットの値である。表構築のため、G
を表作成手順10によって再インデックスし、そのイメ
ージが160ビット・ワードではなく32ビット・ワー
ドである関数を構築する。関数ΓはΓa(i)=Hi
imod5で定義される。Γ値の表は、G値の表を左から
右、上から下に読んだものである。次いで表作成手順1
0は、好ましくは下記のように各表を定義する。 0≦i<512であるすべてのiについて、T[i]=Γa(i) 0≦j<256であるすべてのjについて、S[j]=Γa(0x1000+ j) R[k]=Γa(0x2000+k) したがって表Tは512ワード・エントリを有し、各エ
ントリは長さ32ビットである。表SとRのエントリも
32ビット・ワードである。表Sは256エントリを有
し、表Rは可変長である。
【0015】図1に戻ると、表TとRは初期設定手順1
2で使用され、初期設定手順12にはインデックス"n"
と長さ制御変数"l"も入力として受け取る。変数"l"は
最初"0"に設定され、その上限は出力ストリームの所望
の最終長さに依存する。初期設定手順12はレジスタ
(A、B、C、D、n1、n2、n3、n4)に対する1組
の初期値を生成する。第1のレジスタ群(A、B、C、
D)は、後述のアルゴリズムの特定の「繰返し(iterat
ion)」処理中にその値が変更される。第2のレジスタ
群(n1、n2、n3、n4)は、「繰返し」処理中ずっと
その値が一定のままである。この方法はさらに、1組の
混合機能(mixing function)M1...MNと1組のマ
スク機能(masking function)B1...BNを実施す
る。ただし、Nは64であることが好ましい。各混合機
能Miは対応するマスク機能Biを有し、1回の「繰返
し」処理に一般に1対のこうした機能が含まれる。すな
わち混合機能M1とマスク機能B1がこの方法の1回目の
繰返し処理中に実施され、以下同様である。64回の繰
返し全体でアルゴリズムの「フェーズ」が定義され、各
フェーズは初期設定手順12の呼出しによって開始す
る。特定のフェーズが完了すると、"l"の値が増分され
る。
2で使用され、初期設定手順12にはインデックス"n"
と長さ制御変数"l"も入力として受け取る。変数"l"は
最初"0"に設定され、その上限は出力ストリームの所望
の最終長さに依存する。初期設定手順12はレジスタ
(A、B、C、D、n1、n2、n3、n4)に対する1組
の初期値を生成する。第1のレジスタ群(A、B、C、
D)は、後述のアルゴリズムの特定の「繰返し(iterat
ion)」処理中にその値が変更される。第2のレジスタ
群(n1、n2、n3、n4)は、「繰返し」処理中ずっと
その値が一定のままである。この方法はさらに、1組の
混合機能(mixing function)M1...MNと1組のマ
スク機能(masking function)B1...BNを実施す
る。ただし、Nは64であることが好ましい。各混合機
能Miは対応するマスク機能Biを有し、1回の「繰返
し」処理に一般に1対のこうした機能が含まれる。すな
わち混合機能M1とマスク機能B1がこの方法の1回目の
繰返し処理中に実施され、以下同様である。64回の繰
返し全体でアルゴリズムの「フェーズ」が定義され、各
フェーズは初期設定手順12の呼出しによって開始す
る。特定のフェーズが完了すると、"l"の値が増分され
る。
【0016】第1群のレジスタ(A、B、C、D)の初
期値は、第1の繰返し処理中に線15aを介して第1の
混合機能M1に送られる。混合機能M1はまた線17を介
して第2群のレジスタ(n1、n2、n3、n4)の初期値
をも受け取る。後でわかるように、機能M1は1組の修
正命令を含み、これらの命令は、これらのレジスタのた
めに線15b上に1組の「事前出力」値を生成するため
に、レジスタ(A、B、C、D)の値を乱数化する働き
をする。対応するマスク機能B1は、これらの事前出力
値と、線19を介して表Sからの1組の値とを受け取
る。マスク機能B1は、表Sからのこの1組の値を使っ
て、対応する混合機能からの事前出力レジスタ値を「マ
スク」して、擬似ランダム・ビットy1のデータ・スト
リングを生成する。
期値は、第1の繰返し処理中に線15aを介して第1の
混合機能M1に送られる。混合機能M1はまた線17を介
して第2群のレジスタ(n1、n2、n3、n4)の初期値
をも受け取る。後でわかるように、機能M1は1組の修
正命令を含み、これらの命令は、これらのレジスタのた
めに線15b上に1組の「事前出力」値を生成するため
に、レジスタ(A、B、C、D)の値を乱数化する働き
をする。対応するマスク機能B1は、これらの事前出力
値と、線19を介して表Sからの1組の値とを受け取
る。マスク機能B1は、表Sからのこの1組の値を使っ
て、対応する混合機能からの事前出力レジスタ値を「マ
スク」して、擬似ランダム・ビットy1のデータ・スト
リングを生成する。
【0017】線15b上のレジスタ(A、B、C、D)
の事前出力値は、マスク機能B1に供給される他に、次
の繰返しの混合機能、この場合はM2にも入力として与
えられることが好ましい。混合機能はまた、線17を介
して第2のレジスタ群(n1、n2、n3、n4)の初期値
を受け取る。前述のように、これらの値は初期設定プロ
セス12で初期設定され、そのフェーズ中一定である。
第2のレジスタ群の初期値は第1群のレジスタの(前回
の繰返しからの)事前出力値(場合によっては初期値)
を修正するのに使用され、混合機能(この場合はM2)
が、インデックスnに結合された情報に対してより直接
的に依存することを許容する。線15c上の混合機能M
2の出力はマスク機能B2に供給され、マスク機能B2は
これらの事前出力値と線19を介した表Sからの新しい
1組の値とを受け取る。マスク機能B2は、この表Sか
らの1組の値を使って、対応する混合機能からの事前出
力レジスタ値を「マスク」して、擬似ランダム・ビット
のデータ・ストリングy2を生成する。
の事前出力値は、マスク機能B1に供給される他に、次
の繰返しの混合機能、この場合はM2にも入力として与
えられることが好ましい。混合機能はまた、線17を介
して第2のレジスタ群(n1、n2、n3、n4)の初期値
を受け取る。前述のように、これらの値は初期設定プロ
セス12で初期設定され、そのフェーズ中一定である。
第2のレジスタ群の初期値は第1群のレジスタの(前回
の繰返しからの)事前出力値(場合によっては初期値)
を修正するのに使用され、混合機能(この場合はM2)
が、インデックスnに結合された情報に対してより直接
的に依存することを許容する。線15c上の混合機能M
2の出力はマスク機能B2に供給され、マスク機能B2は
これらの事前出力値と線19を介した表Sからの新しい
1組の値とを受け取る。マスク機能B2は、この表Sか
らの1組の値を使って、対応する混合機能からの事前出
力レジスタ値を「マスク」して、擬似ランダム・ビット
のデータ・ストリングy2を生成する。
【0018】このようにして繰返し処理が続く。各繰返
し処理から出力された特定のデータ・ストリングが連結
されて、出力データ・ストリームが成長する。本発明に
よれば、表Sは、S表値の1回の通過が64回の繰返し
に相当するのに十分なサイズにフォーマットされる。先
に指摘したように、このサイクルが「フェーズ」であ
る。あるフェーズで十分な長さの出力ストリームが生成
されなかった場合、"l"を1だけ増分した後、初期設定
プロセス12を新たに呼び出すことによって新しいフェ
ーズを開始する。このプロセスは新しいR値を使用し、
再度サイクルを開始して各レジスタ(A、B、C、D、
n1、n2、n3、n4)の新しい初期値を生成する。その
後再度フェーズの繰返しを始める。出力ストリームの長
さが所望の値になると、このプロセス全体が停止する。
し処理から出力された特定のデータ・ストリングが連結
されて、出力データ・ストリームが成長する。本発明に
よれば、表Sは、S表値の1回の通過が64回の繰返し
に相当するのに十分なサイズにフォーマットされる。先
に指摘したように、このサイクルが「フェーズ」であ
る。あるフェーズで十分な長さの出力ストリームが生成
されなかった場合、"l"を1だけ増分した後、初期設定
プロセス12を新たに呼び出すことによって新しいフェ
ーズを開始する。このプロセスは新しいR値を使用し、
再度サイクルを開始して各レジスタ(A、B、C、D、
n1、n2、n3、n4)の新しい初期値を生成する。その
後再度フェーズの繰返しを始める。出力ストリームの長
さが所望の値になると、このプロセス全体が停止する。
【0019】初期設定プロセス12の1つの特定の実施
例を図2に示す。このルーチンは、"n"と"l"を(T、
R)に依存する形で第1のレジスタ群(A、B、C、
D)及び第2のレジスタ群(n1、n2、n3、n4)にマ
ップする。初期設定プロセスの最初の実行または呼出し
は、第1フェーズのレジスタ値を形成するためにnとR
[0]、R[1]、R[2]、R[3]の値を用いて行
われる。先に指摘したように、必要ならばこの手順を再
度(すなわち、R[4]...R[7],R
[8]...R[11],など)実行して、追加のレジ
スタ値の組を生成し、出力データ・ストリームの成長を
続けさせる。
例を図2に示す。このルーチンは、"n"と"l"を(T、
R)に依存する形で第1のレジスタ群(A、B、C、
D)及び第2のレジスタ群(n1、n2、n3、n4)にマ
ップする。初期設定プロセスの最初の実行または呼出し
は、第1フェーズのレジスタ値を形成するためにnとR
[0]、R[1]、R[2]、R[3]の値を用いて行
われる。先に指摘したように、必要ならばこの手順を再
度(すなわち、R[4]...R[7],R
[8]...R[11],など)実行して、追加のレジ
スタ値の組を生成し、出力データ・ストリームの成長を
続けさせる。
【0020】図2の最初の4行を見るとわかるように、
第1フェーズ中にこの手順はインデックスnと表Rから
の第1組の値R[0]...R[3]とを使用して、レ
ジスタA、B、C、Dの値を生成する。次の4行では、
このルーチンはいくつかの機能を実行してレジスタA、
B、C、Dをさらにランダム化する。すなわち、たとえ
ば行5は以下のステップを含んでいる。 P←A&0x7fc; B←B+T[P/4]; A←A>>>9
第1フェーズ中にこの手順はインデックスnと表Rから
の第1組の値R[0]...R[3]とを使用して、レ
ジスタA、B、C、Dの値を生成する。次の4行では、
このルーチンはいくつかの機能を実行してレジスタA、
B、C、Dをさらにランダム化する。すなわち、たとえ
ば行5は以下のステップを含んでいる。 P←A&0x7fc; B←B+T[P/4]; A←A>>>9
【0021】この表記法を説明すると次のようになる。
同行中の第1の命令で、ルーチンはレジスタAの0x7
fcにある値の一部分として中間変数Pを指定する。次
にレジスタAのこの部分を表Tに対するインデックスと
して使う("T[P/4]"の表現で示す)。P/4とい
う表記法は、形式的には4による割算であるが、本実施
においては、この命令がP/4ワードの単位ではなくP
バイトの単位でアレイTをインデックスすることを意味
するにすぎない。次に表Tの位置T[P/4]にある擬
似ランダム値が検索され、桁上げを無視してレジスタB
中のワードと加算される。この和がレジスタBに置き換
わる。これは第2の命令の効果である。一般化すると、
表現"B←B+T[P/4]"は、レジスタBの現在値を
とり、その現在値をその現在値と表Tから取り出した値
との関数で置き換える。後者の値は、別のレジスタ値、
すなわちレジスタAのビット21...29(0x7f
c)で表される値によって決まる。第2ステップでレジ
スタ値Bが修正された後、レジスタAの値が所定の量だ
け回転され、レジスタAに戻される。これは、命令"A
←A>>>9."の効果である。これでルーチンの行5
が完了する。
同行中の第1の命令で、ルーチンはレジスタAの0x7
fcにある値の一部分として中間変数Pを指定する。次
にレジスタAのこの部分を表Tに対するインデックスと
して使う("T[P/4]"の表現で示す)。P/4とい
う表記法は、形式的には4による割算であるが、本実施
においては、この命令がP/4ワードの単位ではなくP
バイトの単位でアレイTをインデックスすることを意味
するにすぎない。次に表Tの位置T[P/4]にある擬
似ランダム値が検索され、桁上げを無視してレジスタB
中のワードと加算される。この和がレジスタBに置き換
わる。これは第2の命令の効果である。一般化すると、
表現"B←B+T[P/4]"は、レジスタBの現在値を
とり、その現在値をその現在値と表Tから取り出した値
との関数で置き換える。後者の値は、別のレジスタ値、
すなわちレジスタAのビット21...29(0x7f
c)で表される値によって決まる。第2ステップでレジ
スタ値Bが修正された後、レジスタAの値が所定の量だ
け回転され、レジスタAに戻される。これは、命令"A
←A>>>9."の効果である。これでルーチンの行5
が完了する。
【0022】このルーチンの行6〜8は類似の機能を提
供する。行8の後、レジスタD、B、A、Cに残ってい
る値は、行9の命令(n1、n2、n3、n4)←(D、
B、A、C)で示されるように、値n1、n2、n3、n4
として定義される。次いで、ルーチンの最後の4行で示
されるように、レジスタ値A、B、C、Dに対して追加
の処理が行われ、ランダム化プロセスが完了する。第1
組の値R[0]...R[4]について手順が実行され
た後、このルーチンは4つのレジスタA、B、C、Dの
それぞれ、及び4つのレジスタn1、n2、n3、n4のそ
れぞれについて1組の初期値を生成したわけである。
供する。行8の後、レジスタD、B、A、Cに残ってい
る値は、行9の命令(n1、n2、n3、n4)←(D、
B、A、C)で示されるように、値n1、n2、n3、n4
として定義される。次いで、ルーチンの最後の4行で示
されるように、レジスタ値A、B、C、Dに対して追加
の処理が行われ、ランダム化プロセスが完了する。第1
組の値R[0]...R[4]について手順が実行され
た後、このルーチンは4つのレジスタA、B、C、Dの
それぞれ、及び4つのレジスタn1、n2、n3、n4のそ
れぞれについて1組の初期値を生成したわけである。
【0023】次に図3を参照すると、レジスタ(A、
B、C、D)の値をどのように使用して、32ビットの
インデックス値nをLビットのストリングSEAL
a(n)に展開するかが示されている。特定の"i"値に
ついて、行1〜8及び11は混合機能Miに対応し、こ
の機能は、表Tから取り出した追加の値と他の回転命令
及び動作命令を使用して、レジスタ(A、B、C、D)
の値に対してさらにランダム化機能を実行する。
B、C、D)の値をどのように使用して、32ビットの
インデックス値nをLビットのストリングSEAL
a(n)に展開するかが示されている。特定の"i"値に
ついて、行1〜8及び11は混合機能Miに対応し、こ
の機能は、表Tから取り出した追加の値と他の回転命令
及び動作命令を使用して、レジスタ(A、B、C、D)
の値に対してさらにランダム化機能を実行する。
【0024】次に混合機能の好ましい実施例について述
べる。すなわち、たとえばこの機能の行1は別々の4つ
の命令を実行する。第1の命令"P←A&0x7fc"
は、指定された位置にあるレジスタAの断片を取り出
す。第2の命令"B←B+T[P/4]"は、今はP中に
あるレジスタAの断片を表Tへのインデックスとして使
用し、次いで表Tから取り出した値を桁上げは無視して
レジスタBの現在値と加算し、結果をレジスタBに戻
す。第3の命令"A←A>>>9."はレジスタAの値を
回転する。第4の命令は、(第2命令で修正された後
の)レジスタBと(第3命令で回転された後の)レジス
タAの排他的ORを生成する。第4の命令の結果はレジ
スタBに戻される。次にレジスタB中の新たに定義され
た値を、行2の命令"Q←B&0x7fc"により、ルー
チンの次の行(行2)のインデックスとして使用し、図
のようにプロセスが継続される。
べる。すなわち、たとえばこの機能の行1は別々の4つ
の命令を実行する。第1の命令"P←A&0x7fc"
は、指定された位置にあるレジスタAの断片を取り出
す。第2の命令"B←B+T[P/4]"は、今はP中に
あるレジスタAの断片を表Tへのインデックスとして使
用し、次いで表Tから取り出した値を桁上げは無視して
レジスタBの現在値と加算し、結果をレジスタBに戻
す。第3の命令"A←A>>>9."はレジスタAの値を
回転する。第4の命令は、(第2命令で修正された後
の)レジスタBと(第3命令で回転された後の)レジス
タAの排他的ORを生成する。第4の命令の結果はレジ
スタBに戻される。次にレジスタB中の新たに定義され
た値を、行2の命令"Q←B&0x7fc"により、ルー
チンの次の行(行2)のインデックスとして使用し、図
のようにプロセスが継続される。
【0025】一般化すると、各行の第2の命令は特定の
レジスタの現在値を取り、その現在値をその現在値と表
Tから取り出した値との関数(たとえば+、XORな
ど)で置き換えることがわかる。さらに、表Tから取り
出されこの機能で使用される値は、他のレジスタから導
出された1つまたは複数の値によって、すなわち各行の
第1の命令によって決定される。すなわち、たとえばレ
ジスタAの値の一部分が、行1で命令"P←A&0x7
fc"のための(レジスタBを修正するための)インデ
ックスとして使用され、行3ではレジスタCとレジスタ
Aが(Pにより)表インデックス値を生成する。後者の
インデックスは命令"P←(P+C)&0x7fc"によ
って生成される。
レジスタの現在値を取り、その現在値をその現在値と表
Tから取り出した値との関数(たとえば+、XORな
ど)で置き換えることがわかる。さらに、表Tから取り
出されこの機能で使用される値は、他のレジスタから導
出された1つまたは複数の値によって、すなわち各行の
第1の命令によって決定される。すなわち、たとえばレ
ジスタAの値の一部分が、行1で命令"P←A&0x7
fc"のための(レジスタBを修正するための)インデ
ックスとして使用され、行3ではレジスタCとレジスタ
Aが(Pにより)表インデックス値を生成する。後者の
インデックスは命令"P←(P+C)&0x7fc"によ
って生成される。
【0026】行1〜8に示されている命令の特定のシー
ケンスは、特にハードウェアで実施するように設計され
た暗号化アルゴリズムと比較して、計算上効率のよいこ
とがわかっており、従来のプロセッサ・プラットフォー
ムで十分にランダム化されたレジスタ値を非常に高速に
生成する。
ケンスは、特にハードウェアで実施するように設計され
た暗号化アルゴリズムと比較して、計算上効率のよいこ
とがわかっており、従来のプロセッサ・プラットフォー
ムで十分にランダム化されたレジスタ値を非常に高速に
生成する。
【0027】行1〜8の処理が実行された後、ルーチン
は行9に進んでマスク処理を実行する。具体的には、行
9は図1のマスク処理Biの1つに対応する。この処理
では、1組の値(たとえば順次ワードであるS
[0]...S[3])が表Sから得られ、当該のマス
ク処理の実行後に存在するレジスタ(A、B、C、D)
の事前出力値を「マスク」するのに使用される。この
「マスク」処理を、(第1組のレジスタ(A、B、C、
D)の)各レジスタ値について実行して、マスクされた
レジスタ値を生成することが好ましい。例示した命令を
見るとわかるように、レジスタB中の事前出力値のマス
ク処理は命令"B+S[4i−4]"の一部分によって実
行される。表Sから取り出した順次ワードを使って、命
令が示すように他のレジスタC、D、Aに対しても類似
のマスク動作が行われる。
は行9に進んでマスク処理を実行する。具体的には、行
9は図1のマスク処理Biの1つに対応する。この処理
では、1組の値(たとえば順次ワードであるS
[0]...S[3])が表Sから得られ、当該のマス
ク処理の実行後に存在するレジスタ(A、B、C、D)
の事前出力値を「マスク」するのに使用される。この
「マスク」処理を、(第1組のレジスタ(A、B、C、
D)の)各レジスタ値について実行して、マスクされた
レジスタ値を生成することが好ましい。例示した命令を
見るとわかるように、レジスタB中の事前出力値のマス
ク処理は命令"B+S[4i−4]"の一部分によって実
行される。表Sから取り出した順次ワードを使って、命
令が示すように他のレジスタC、D、Aに対しても類似
のマスク動作が行われる。
【0028】マスクされたレジスタ値が連結されて、混
合機能Miとそれに対応するマスク機能Biによって定義
される機能(関数)SEALa(n)の特定の繰返し用
のデータ・ストリングyiが形成される。特定の繰返し
用のデータ・ストリングyiを形成した後、このアルゴ
リズムはステップ11の命令を実行して、レジスタ値
(n1、n2、n3、n4)を使ってマスクされていないレ
ジスタ値(A、B、C、D)を修正し、その後に次の繰
返し処理に入る。
合機能Miとそれに対応するマスク機能Biによって定義
される機能(関数)SEALa(n)の特定の繰返し用
のデータ・ストリングyiが形成される。特定の繰返し
用のデータ・ストリングyiを形成した後、このアルゴ
リズムはステップ11の命令を実行して、レジスタ値
(n1、n2、n3、n4)を使ってマスクされていないレ
ジスタ値(A、B、C、D)を修正し、その後に次の繰
返し処理に入る。
【0029】先に指摘したように、表Sから4つ組(Tu
ple)がなくなると、機能は図2に戻って、R表からの
次の1組の値について初期設定プロセスを再実行する。
新しいレジスタ値が決定されると、図3の"for i"
ループが再始動される。
ple)がなくなると、機能は図2に戻って、R表からの
次の1組の値について初期設定プロセスを再実行する。
新しいレジスタ値が決定されると、図3の"for i"
ループが再始動される。
【0030】本発明の擬似ランダム機能を使用して特定
のアプリケーションについて十分な出力ビットが収集さ
れると、図2の外側ループが行10の命令によって破ら
れる。先に指摘したように、変数Lは所望の出力ストリ
ームの長さであり、Lは大きな限界をもつ、たとえばL
≦64x1024x8ビットと仮定する。本発明の機能
はL'個のビットを生成するとビットの生成を停止す
る。L'は128の最小倍数であり、少なくともLであ
る。メッセージ暗号化の応用例では、Lが4096x8
ビットより小さいことがしばしばあるが、パーソナル・
コンピュータ上でのディスク暗号化の場合はLは通常5
12x8ビットである。
のアプリケーションについて十分な出力ビットが収集さ
れると、図2の外側ループが行10の命令によって破ら
れる。先に指摘したように、変数Lは所望の出力ストリ
ームの長さであり、Lは大きな限界をもつ、たとえばL
≦64x1024x8ビットと仮定する。本発明の機能
はL'個のビットを生成するとビットの生成を停止す
る。L'は128の最小倍数であり、少なくともLであ
る。メッセージ暗号化の応用例では、Lが4096x8
ビットより小さいことがしばしばあるが、パーソナル・
コンピュータ上でのディスク暗号化の場合はLは通常5
12x8ビットである。
【0031】図3を見るとわかるように、一般に特定の
レジスタが修正されたとき、+演算とXOR演算を交互
に行なうことが望ましいことが判明している。すなわ
ち、行1でレジスタBの値が+演算子を使って修正さ
れ、行5でBの値がXOR演算子を使って修正される。
同様に行9の処理中に様々なレジスタを横切ってこれら
の演算を交互に行なうことも望ましい。このような演算
が好ましいものの、図3に示した特定のアルゴリズムは
本発明の範囲を制限するものと見なすべきではない。た
とえば、ある種の応用例では同一の演算子(+またはX
OR)をずっと使用するのが望ましいこともある。行1
〜4のそれぞれの第4の命令(その目的はA、B、C、
Dの高位ビットにおける情報をより速やかに「拡散(di
ffuse)」させることである)を省略することすら望ま
しいことがある。別法として、各行の第3の命令におけ
る回転の度合を変化させ、あるいは異なる行が異なる回
転命令をもつようにすることもできる。このアルゴリズ
ムの基本目的に影響を与えずに特定の機能(+、XO
R)の順序を変え、あるいは数多くの方法で変化させる
こともできる。これらの変形はすべて、長さの増大する
擬似ランダム機能が表駆動式制御の下でインデックス値
をLビットのストリングに展開するという、本発明の発
明に十分に含まれるものと見なすべきである。
レジスタが修正されたとき、+演算とXOR演算を交互
に行なうことが望ましいことが判明している。すなわ
ち、行1でレジスタBの値が+演算子を使って修正さ
れ、行5でBの値がXOR演算子を使って修正される。
同様に行9の処理中に様々なレジスタを横切ってこれら
の演算を交互に行なうことも望ましい。このような演算
が好ましいものの、図3に示した特定のアルゴリズムは
本発明の範囲を制限するものと見なすべきではない。た
とえば、ある種の応用例では同一の演算子(+またはX
OR)をずっと使用するのが望ましいこともある。行1
〜4のそれぞれの第4の命令(その目的はA、B、C、
Dの高位ビットにおける情報をより速やかに「拡散(di
ffuse)」させることである)を省略することすら望ま
しいことがある。別法として、各行の第3の命令におけ
る回転の度合を変化させ、あるいは異なる行が異なる回
転命令をもつようにすることもできる。このアルゴリズ
ムの基本目的に影響を与えずに特定の機能(+、XO
R)の順序を変え、あるいは数多くの方法で変化させる
こともできる。これらの変形はすべて、長さの増大する
擬似ランダム機能が表駆動式制御の下でインデックス値
をLビットのストリングに展開するという、本発明の発
明に十分に含まれるものと見なすべきである。
【0032】このソフトウェア効率のよい(software-e
fficient)擬似ランダム機能およびその暗号化への使用
は、多数の異なるオペレーティング・システムの下で多
数の異なるコンピュータで実施することができる。たと
えば、パーソナル・コンピュータ、ミニコンピュータ、
メインフレーム・コンピュータ、あるいは他のコンピュ
ータの分散ネットワーク中で走るコンピュータがこれら
の目的に有用である。コンピュータの具体的選択はディ
スク及びディスク記憶要件によってのみ制限されるが、
本発明ではIBM PS/2TMシリーズのコンピュータ
が使用できる。IBMのPS/2シリーズのコンピュー
タに関する詳細は、「技術解説書パーソナル・システム
/2モデル50、60システム」IBM社、部品番号6
8x2224、注文番号S68X−2224、及び「技
術解説書パーソナル・システム/2(モデル80)」I
BM社、部品番号68x2256、注文番号S68X−
2254を参照されたい。IBMPS/2パーソナル・
コンピュータが走行できる1つのオペレーティング・シ
ステムは、IBMのOS/2 2.0TMである。IBM
OS/2 2.0オペレーティング・システムに関す
る詳細は、「OS/2 2.0技術ライブラリ・プログ
ラミングの手引」、Vol.1、2、3バージョン2.
00、注文番号10G6261、10G6495、10
G6494を参照されたい。
fficient)擬似ランダム機能およびその暗号化への使用
は、多数の異なるオペレーティング・システムの下で多
数の異なるコンピュータで実施することができる。たと
えば、パーソナル・コンピュータ、ミニコンピュータ、
メインフレーム・コンピュータ、あるいは他のコンピュ
ータの分散ネットワーク中で走るコンピュータがこれら
の目的に有用である。コンピュータの具体的選択はディ
スク及びディスク記憶要件によってのみ制限されるが、
本発明ではIBM PS/2TMシリーズのコンピュータ
が使用できる。IBMのPS/2シリーズのコンピュー
タに関する詳細は、「技術解説書パーソナル・システム
/2モデル50、60システム」IBM社、部品番号6
8x2224、注文番号S68X−2224、及び「技
術解説書パーソナル・システム/2(モデル80)」I
BM社、部品番号68x2256、注文番号S68X−
2254を参照されたい。IBMPS/2パーソナル・
コンピュータが走行できる1つのオペレーティング・シ
ステムは、IBMのOS/2 2.0TMである。IBM
OS/2 2.0オペレーティング・システムに関す
る詳細は、「OS/2 2.0技術ライブラリ・プログ
ラミングの手引」、Vol.1、2、3バージョン2.
00、注文番号10G6261、10G6495、10
G6494を参照されたい。
【0033】あるいは、コンピュータ・システムは、A
IXTMオペレーティング・システム上で走行するIBM
RISCシステム/6000TM系列のコンピュータで
もよい。RISCシステム/6000の様々なモデル
が、IBM社の多くの刊行物、たとえば「RISCシス
テム/6000、7073および7016パワーステー
ション及びパワーサーバ・ハードウェア技術解説書」、
注文番号SA23−2644−00に記載されている。
AIXオペレーティング・システムは、「一般概念及び
手順−RISCシステム/6000用AIXバージョン
3」、注文番号SC23−2202−00ならびにIB
Mコーポレーションの他の刊行物に記載されている。
IXTMオペレーティング・システム上で走行するIBM
RISCシステム/6000TM系列のコンピュータで
もよい。RISCシステム/6000の様々なモデル
が、IBM社の多くの刊行物、たとえば「RISCシス
テム/6000、7073および7016パワーステー
ション及びパワーサーバ・ハードウェア技術解説書」、
注文番号SA23−2644−00に記載されている。
AIXオペレーティング・システムは、「一般概念及び
手順−RISCシステム/6000用AIXバージョン
3」、注文番号SC23−2202−00ならびにIB
Mコーポレーションの他の刊行物に記載されている。
【0034】そのような1つのコンピュータを図4に示
す。図のコンピュータ20は、システム・ユニット21
とキーボード22とマウス23と表示装置24を備えて
いる。表示装置24の画面26は、グラフィカル・ユー
ザ・インターフェース(GUI)を提示するために使用
される。オペレーティング・システムによってサポート
されるグラフィカル・ユーザ・インターフェースを使用
すると、ユーザは、ポイント・アンド・シュート入力方
法、すなわち画面26の特定の位置にあるデータ・オブ
ジェクトを表すアイコンにマウス・ポインタ25を移動
し、マウス・ボタンを押してユーザ・コマンドまたは選
択を実行する方法を使用することができる。
す。図のコンピュータ20は、システム・ユニット21
とキーボード22とマウス23と表示装置24を備えて
いる。表示装置24の画面26は、グラフィカル・ユー
ザ・インターフェース(GUI)を提示するために使用
される。オペレーティング・システムによってサポート
されるグラフィカル・ユーザ・インターフェースを使用
すると、ユーザは、ポイント・アンド・シュート入力方
法、すなわち画面26の特定の位置にあるデータ・オブ
ジェクトを表すアイコンにマウス・ポインタ25を移動
し、マウス・ボタンを押してユーザ・コマンドまたは選
択を実行する方法を使用することができる。
【0035】図5は、図4に示したパーソナル・コンピ
ュータの構成要素の構成図を示す。システム・ユニット
21は、1本または複数のシステム・バス31を含み、
このバスに様々な構成要素が結合され、このバスによっ
て様々な構成要素間の通信が実現される。マイクロプロ
セッサ32がシステム・バス31に接続され、やはりシ
ステム・バス31に接続された読取り専用メモリ(RO
M)33とランダム・アクセス・メモリ(RAM)34
によってサポートされる。IBMマルチメディアPS/
2シリーズのコンピュータ中のマイクロプロセッサは、
386型または486型マイクロプロセッサを含むIn
telマイクロプロセッサ・ファミリの1つである。た
だし、上記のように、68000、68020または6
8030マイクロプロセッサなどMotorola社の
マイクロプロセッサ・ファミリや、IBM、Hewle
tt Packard、Sun、Intel、Moto
rola及びその他製の様々なRISCマイクロプロセ
ッサを含むが、それだけには限定されないその他のマイ
クロプロセッサを特定のコンピュータ中で使用すること
もできる。
ュータの構成要素の構成図を示す。システム・ユニット
21は、1本または複数のシステム・バス31を含み、
このバスに様々な構成要素が結合され、このバスによっ
て様々な構成要素間の通信が実現される。マイクロプロ
セッサ32がシステム・バス31に接続され、やはりシ
ステム・バス31に接続された読取り専用メモリ(RO
M)33とランダム・アクセス・メモリ(RAM)34
によってサポートされる。IBMマルチメディアPS/
2シリーズのコンピュータ中のマイクロプロセッサは、
386型または486型マイクロプロセッサを含むIn
telマイクロプロセッサ・ファミリの1つである。た
だし、上記のように、68000、68020または6
8030マイクロプロセッサなどMotorola社の
マイクロプロセッサ・ファミリや、IBM、Hewle
tt Packard、Sun、Intel、Moto
rola及びその他製の様々なRISCマイクロプロセ
ッサを含むが、それだけには限定されないその他のマイ
クロプロセッサを特定のコンピュータ中で使用すること
もできる。
【0036】ROM33は、他のコードの他に、とりわ
け対話などの基本ハードウェア動作やディスク・ドライ
ブ及びキーボードを制御する基本入出力システム(BI
OS)を格納している。RAM34は主メモリであり、
それにオペレーティング・システムやアプリケーション
・プログラムがロードされる。メモリ管理チップ35は
システム・バス31に接続され、RAM34とハード・
ディスク・ドライブ36とフロッピー・ディスク・ドラ
イブ37の間でのデータのやり取りを含めて直接メモリ
・アクセス動作を制御する。CD ROM42もシステ
ム・バス31に結合され、大量のデータ、たとえばマル
チメディア・プログラムや大型データベースの格納に使
用される。
け対話などの基本ハードウェア動作やディスク・ドライ
ブ及びキーボードを制御する基本入出力システム(BI
OS)を格納している。RAM34は主メモリであり、
それにオペレーティング・システムやアプリケーション
・プログラムがロードされる。メモリ管理チップ35は
システム・バス31に接続され、RAM34とハード・
ディスク・ドライブ36とフロッピー・ディスク・ドラ
イブ37の間でのデータのやり取りを含めて直接メモリ
・アクセス動作を制御する。CD ROM42もシステ
ム・バス31に結合され、大量のデータ、たとえばマル
チメディア・プログラムや大型データベースの格納に使
用される。
【0037】このシステム・バス31には、キーボード
制御装置38、マウス制御装置39、ビデオ制御装置4
0、オーディオ制御装置41など様々な入出力制御装置
も接続されている。キーボード制御装置38はキーボー
ド22用のハードウェア・インターフェースを提供し、
マウス制御装置39はマウス23用のハードウェア・イ
ンターフェースを提供し、ビデオ制御装置40は表示装
置24用のハードウェア・インターフェースであり、オ
ーディオ制御装置41はスピーカ25aと25b用のハ
ードウェア・インターフェースである。トークンリング
・アダプタなどの入出力制御装置50は、ネットワーク
56を介した同様の構成の他のデータ処理システムとの
通信を可能にする。
制御装置38、マウス制御装置39、ビデオ制御装置4
0、オーディオ制御装置41など様々な入出力制御装置
も接続されている。キーボード制御装置38はキーボー
ド22用のハードウェア・インターフェースを提供し、
マウス制御装置39はマウス23用のハードウェア・イ
ンターフェースを提供し、ビデオ制御装置40は表示装
置24用のハードウェア・インターフェースであり、オ
ーディオ制御装置41はスピーカ25aと25b用のハ
ードウェア・インターフェースである。トークンリング
・アダプタなどの入出力制御装置50は、ネットワーク
56を介した同様の構成の他のデータ処理システムとの
通信を可能にする。
【0038】本発明の1つの好ましい実施態様は、ラン
ダム・アクセス・メモリ34に常駐するコード・モジュ
ール中の1組の命令としてのものである。コンピュータ
・システムが必要とするまで、この1組の命令は、別の
コンピュータ・メモリ、たとえばハード・ディスク・ド
ライブ36に、あるいは最終的にCD ROM42で使
用するために光ディスクに、あるいは最終的にフロッピ
ー・ディスク・ドライブ37で使用するためにフロッピ
ー・ディスクに格納しておくことができる。図に示すよ
うに、オペレーティング・システム60及びプレゼンテ
ーション・マネージャ62は、RAM34に常駐する。
ダム・アクセス・メモリ34に常駐するコード・モジュ
ール中の1組の命令としてのものである。コンピュータ
・システムが必要とするまで、この1組の命令は、別の
コンピュータ・メモリ、たとえばハード・ディスク・ド
ライブ36に、あるいは最終的にCD ROM42で使
用するために光ディスクに、あるいは最終的にフロッピ
ー・ディスク・ドライブ37で使用するためにフロッピ
ー・ディスクに格納しておくことができる。図に示すよ
うに、オペレーティング・システム60及びプレゼンテ
ーション・マネージャ62は、RAM34に常駐する。
【0039】本明細書で述べる擬似ランダム機能のクラ
スの様々な適用例は極めて多様であるが、ここでいくつ
かの適用例について説明する。ただし、これらの例は例
示にすぎず、本発明の機能の用途を制限するものではな
い。これらの適用例には、ローカル・エリア・ネットワ
ーク(LAN)メッセージ暗号化、ディスク暗号化、フ
ァイル暗号化、擬似乱数生成が含まれる。
スの様々な適用例は極めて多様であるが、ここでいくつ
かの適用例について説明する。ただし、これらの例は例
示にすぎず、本発明の機能の用途を制限するものではな
い。これらの適用例には、ローカル・エリア・ネットワ
ーク(LAN)メッセージ暗号化、ディスク暗号化、フ
ァイル暗号化、擬似乱数生成が含まれる。
【0040】高速ソフトウェア暗号を必要とする典型的
な適用例では、遠隔パートナへの通信セッションの間中
または特定の機械へのログイン・セッション中ずっとデ
ータ暗号化が必要である。どちらの場合も、セッション
を保護するキー"a"が、セッションのセットアップ時に
決定される。通常は、このセッションのセットアップに
は少なくとも数ミリ秒かかり、したがって時間がクリテ
ィカルな動作ではない。したがって、このとき、比較的
短いキー"a"を(それより簡潔でない)このキー専用の
暗号変換の表現に変換するのに数ミリ秒を要してもかま
わない。したがって、本発明はこの適用例に非常に有用
である。
な適用例では、遠隔パートナへの通信セッションの間中
または特定の機械へのログイン・セッション中ずっとデ
ータ暗号化が必要である。どちらの場合も、セッション
を保護するキー"a"が、セッションのセットアップ時に
決定される。通常は、このセッションのセットアップに
は少なくとも数ミリ秒かかり、したがって時間がクリテ
ィカルな動作ではない。したがって、このとき、比較的
短いキー"a"を(それより簡潔でない)このキー専用の
暗号変換の表現に変換するのに数ミリ秒を要してもかま
わない。したがって、本発明はこの適用例に非常に有用
である。
【0041】
【0042】
【0043】
【0044】本発明のもう1つの適用例は、すべてのデ
ィスク・アクセスを透過的に暗号化する装置ドライバで
ある。この適用例では、キーaはセッション・キーでは
なく、ユーザuがそのマシンをオンにしたときに入力す
るパスワードpuから導出されるストリングである。オ
ペレーティング・システムがハード・ディスクからi番
目のセクタの読取りを試みるとき、そこ(すなわちスト
リングx)からデータが読み取られ、それをSEALa
(i)とXORすることによって非暗号化される。セク
タの長さと同様のSEALのビットが使用される。同様
に、オペレーティング・システムがi番目のセクタへの
書込みを試みるとき、書き込むべきデータがまずSEA
La(i)とXORすることによって暗号化される。そ
の内容を暗号化すべきディスクが複数ある場合、2つの
セクタが同じインデックスを受け取らないように、各デ
ィスクごとにインデックスが選択される。
ィスク・アクセスを透過的に暗号化する装置ドライバで
ある。この適用例では、キーaはセッション・キーでは
なく、ユーザuがそのマシンをオンにしたときに入力す
るパスワードpuから導出されるストリングである。オ
ペレーティング・システムがハード・ディスクからi番
目のセクタの読取りを試みるとき、そこ(すなわちスト
リングx)からデータが読み取られ、それをSEALa
(i)とXORすることによって非暗号化される。セク
タの長さと同様のSEALのビットが使用される。同様
に、オペレーティング・システムがi番目のセクタへの
書込みを試みるとき、書き込むべきデータがまずSEA
La(i)とXORすることによって暗号化される。そ
の内容を暗号化すべきディスクが複数ある場合、2つの
セクタが同じインデックスを受け取らないように、各デ
ィスクごとにインデックスが選択される。
【0045】図7は、装置ドライバ内でサポートされ
る、このようなディスクの暗号化を容易にするための擬
似ランダム機能を示す、図5のコンピュータの一部分を
示す。ここでは、装置ドライバの語は、終了・現在常駐
プログラムも含む。この例では、コンピュータは、大容
量記憶装置、この場合は図5のコンピュータのハード・
ディスク36向けの読取りコールまたは書込みコールを
インターセプトする装置ドライバ76をサポートする。
この読取りまたは書込みコールは、オペレーティング・
システム78から装置ドライバ76に送られる。オペレ
ーティング・システムは、ユーザがコンピュータをオン
するときに入力するパスワードpuを受け取る、ログイ
ン機能80をサポートする。ログイン機能は、そのパス
ワードをキー処理機能82に渡し、キー処理機能は表
T、R、Sを生成する。これらの表が擬似ランダム機能
84に供給され、擬似ランダム機能は暗号化機能86に
よってディスク・データを暗号化する。
る、このようなディスクの暗号化を容易にするための擬
似ランダム機能を示す、図5のコンピュータの一部分を
示す。ここでは、装置ドライバの語は、終了・現在常駐
プログラムも含む。この例では、コンピュータは、大容
量記憶装置、この場合は図5のコンピュータのハード・
ディスク36向けの読取りコールまたは書込みコールを
インターセプトする装置ドライバ76をサポートする。
この読取りまたは書込みコールは、オペレーティング・
システム78から装置ドライバ76に送られる。オペレ
ーティング・システムは、ユーザがコンピュータをオン
するときに入力するパスワードpuを受け取る、ログイ
ン機能80をサポートする。ログイン機能は、そのパス
ワードをキー処理機能82に渡し、キー処理機能は表
T、R、Sを生成する。これらの表が擬似ランダム機能
84に供給され、擬似ランダム機能は暗号化機能86に
よってディスク・データを暗号化する。
【0046】擬似ランダム機能のもう1つの適用例はフ
ァイル暗号化である。この場合はストリングはデータ・
ファイルであり、インデックスはその特定のファイルに
関連する独自のファイル識別子である。図8に、ファイ
ル・システム中でローカル及び遠隔のファイル暗号化を
容易にするためにサポートされる擬似ランダム機能を示
す、図5のコンピュータの一部分を示す。この代表例で
は、適用業務がアクセスしたファイルは、ローカル・フ
ァイル・システム88内に常駐することもあり、通信リ
ンク92を介してローカル・ファイル・システム88か
らアクセス可能なリモート・ファイル・システム90内
に常駐することもある。図7の場合と同様に、ログイン
機能80がユーザの名前とパスワードを決め、それらを
キー処理機能82に渡し、このキー処理機能が表T、
R、Sを生成する。これらの表が擬似ランダム機能84
に供給され、擬似ランダム機能は、擬似ランダム・ビッ
ト・ストリングを生成し、暗号化機能86がそれを使っ
てデータ・ファイルを暗号化する。ファイル・システム
は、読取り要求及び書込み要求を送るための適切なイン
ターフェースを含んでいる。
ァイル暗号化である。この場合はストリングはデータ・
ファイルであり、インデックスはその特定のファイルに
関連する独自のファイル識別子である。図8に、ファイ
ル・システム中でローカル及び遠隔のファイル暗号化を
容易にするためにサポートされる擬似ランダム機能を示
す、図5のコンピュータの一部分を示す。この代表例で
は、適用業務がアクセスしたファイルは、ローカル・フ
ァイル・システム88内に常駐することもあり、通信リ
ンク92を介してローカル・ファイル・システム88か
らアクセス可能なリモート・ファイル・システム90内
に常駐することもある。図7の場合と同様に、ログイン
機能80がユーザの名前とパスワードを決め、それらを
キー処理機能82に渡し、このキー処理機能が表T、
R、Sを生成する。これらの表が擬似ランダム機能84
に供給され、擬似ランダム機能は、擬似ランダム・ビッ
ト・ストリングを生成し、暗号化機能86がそれを使っ
てデータ・ファイルを暗号化する。ファイル・システム
は、読取り要求及び書込み要求を送るための適切なイン
ターフェースを含んでいる。
【0047】もう1つの適用例は、予見不能なビットの
供給源を必要とするソフトウェア適用業務に有用な、高
速擬似乱数生成である。この場合、ランダム・キー"a"
は、SEALa(i1)‖SEALa(i2)‖...によ
って定義されるずっと長い擬似ランダム・ストリングに
拡張される。ただし、(i1、i2...)はインデック
スの簡単なシーケンス(たとえば0、1、2、...)
である。
供給源を必要とするソフトウェア適用業務に有用な、高
速擬似乱数生成である。この場合、ランダム・キー"a"
は、SEALa(i1)‖SEALa(i2)‖...によ
って定義されるずっと長い擬似ランダム・ストリングに
拡張される。ただし、(i1、i2...)はインデック
スの簡単なシーケンス(たとえば0、1、2、...)
である。
【0048】上記に開示した特定の実施例を基礎として
利用して、本発明と同じ目的を実施するための他のルー
チンを適当に修正または設計できることが当事者には理
解できよう。たとえば、好ましい実施例では本発明を3
2ビット・プロセッサで実施するが、この方法は64ビ
ット・マシンを含む他の実行ビークルにも適用できるこ
とが容易に理解できよう。"n"の長さなど他のパラメー
タも容易に増大しあるいはその他の形で変更することが
できる。
利用して、本発明と同じ目的を実施するための他のルー
チンを適当に修正または設計できることが当事者には理
解できよう。たとえば、好ましい実施例では本発明を3
2ビット・プロセッサで実施するが、この方法は64ビ
ット・マシンを含む他の実行ビークルにも適用できるこ
とが容易に理解できよう。"n"の長さなど他のパラメー
タも容易に増大しあるいはその他の形で変更することが
できる。
【0049】
【発明の効果】本発明により、所定の繰返し処理により
所望の長さの擬似ランダム・ビット・ストリングを生成
できるようになるので、例えばDES等のハードウェア
効率はよい既存の暗号化手法に比して、よりソフトウェ
ア効率の高い(すなわち、あらゆるアプリケーションに
適合しうる)暗号化が可能になる。
所望の長さの擬似ランダム・ビット・ストリングを生成
できるようになるので、例えばDES等のハードウェア
効率はよい既存の暗号化手法に比して、よりソフトウェ
ア効率の高い(すなわち、あらゆるアプリケーションに
適合しうる)暗号化が可能になる。
【図1】キー"a"から生成される1組の表T、R、Sの
制御下で32ビットのインデックス"n"を擬似ランダム
Lビット・ストリングSEALa(n)にマップするた
めの本発明の擬似ランダム機能の一部分のプロセス流れ
を示す図である。
制御下で32ビットのインデックス"n"を擬似ランダム
Lビット・ストリングSEALa(n)にマップするた
めの本発明の擬似ランダム機能の一部分のプロセス流れ
を示す図である。
【図2】図1の初期設定プロセスを示す図である。
【図3】擬似ランダム・ビット・ストリングSEALa
(n)を生成するための擬似ランダム機能の好ましい実
施例を示す図である。
(n)を生成するための擬似ランダム機能の好ましい実
施例を示す図である。
【図4】擬似ランダム機能を実施する際に使用し、この
関数を暗号化のために使用するための、システム・ユニ
ット、キーボード、マウス及び表示装置を備えるコンピ
ュータを示す図である。
関数を暗号化のために使用するための、システム・ユニ
ット、キーボード、マウス及び表示装置を備えるコンピ
ュータを示す図である。
【図5】図4に示したコンピュータのアーキテクチャ構
成図である。
成図である。
【図6】ディスク暗号化を容易にするために装置ドライ
バ中でサポートされる擬似ランダム機能を示す図5のコ
ンピュータの一部分を示す図である。
バ中でサポートされる擬似ランダム機能を示す図5のコ
ンピュータの一部分を示す図である。
【図7】ローカル・ファイル暗号化と遠隔ファイル暗号
化の両方を容易にするためにファイル・システム中でサ
ポートされる擬似ランダム機能を示す、図5のコンピュ
ータの一部分を示す図である。
化の両方を容易にするためにファイル・システム中でサ
ポートされる擬似ランダム機能を示す、図5のコンピュ
ータの一部分を示す図である。
フロントページの続き (72)発明者 ドン・コパースミス アメリカ合衆国10562 ニューヨーク州 オシニング フェリス56 ピー1 (72)発明者 フィリップ・ダブリュー・ロガウェイ アメリカ合衆国78758 テキサス州オー スチン クリプル・クリーク・ドライブ 1620
Claims (3)
- 【請求項1】キーからあらかじめ計算された擬似ランダ
ムな数の表をデータ暗号化に有用な擬似ランダム・ビッ
ト・ストリングに変換する暗号化システムであって、 (a)インデックス値および前記表からの1組の値を用
いて1組のレジスタのための初期値を生成する手段と、 (b)前記レジスタの現在値を取り、この現在値と前記
表から取り出した値の関数でこの現在値を置換えること
により前記レジスタの少なくともいくつかを混合する手
段と、 (c)手段(b)で修正されたレジスタ値を連結して、
擬似ランダム・ビット・ストリングを生成する手段と、 (d)擬似ランダム・ビット・ストリングが所望の長さ
になるまで前記手段(b)と(c)の動作を所定回数反
復させる手段と、 を含む暗号化システム。 - 【請求項2】インデックス値およびキーに関してデータ
・ストリングを暗号化する暗号化システムであって、 (a)前記キーを予め処理して擬似ランダム値の第1、
第2、および第3の表を生成する手段と、 (b)インデックス値および前記第1の表からの第1の
組の値を用いて前記第3の表からの値を第1および第2
の組のレジスタ値にマップする手段と、 (c)レジスタの現在値を取り、この現在値と前記第3
の表から取り出した値の関数でこの現在値を置換えるこ
とにより前記レジスタの少なくともいくつかを混合する
手段と、 (d)前記第2の表からの第1の組の値を用いて、前記
手段(c)で混合されたレジスタ値をマスクする手段
と、 (e)マスクされたレジスタ値を連結して擬似ランダム
・ビット・ストリングを生成する手段と、 (f)第2の表からの第2の組の値に対して前記手段
(c)ないし(e)を動作させる手段と、 (g)擬似ランダム・ビット・ストリングが所望の長さ
になるまで第1の表からの第2の組の値に対して前記手
段(b)ないし(f)を動作させる手段と、 を含む暗号化システム。 - 【請求項3】インデックス値および暗号化キーに関して
データ・ストリングを暗号化する暗号化システムであっ
て、 (a)インデックス値および前記暗号化キーから予め計
算された擬似ランダム数の表からの1組の値を用いて1
組のレジスタのための初期値を生成する手段と、 (b)前記レジスタの現在値を取り、この現在値と前記
表から取り出した値の関数でこの現在値を置換えること
により前記レジスタの少なくともいくつかを混合する手
段と、 (c)手段(b)で修正されたレジスタ値を連結して、
擬似ランダム・ビット・ストリングを生成する手段と、 (d)擬似ランダム・ビット・ストリングが所望の長さ
になるまで前記手段(b)と(c)の動作を所定回数反
復させる手段と、 (e)擬似ランダム・ビット・ストリングとデータ・ス
トリングとを組み合わせることによりデータ・ストリン
グを暗号化する手段と、 を含む暗号化システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/163,054 US5454039A (en) | 1993-12-06 | 1993-12-06 | Software-efficient pseudorandom function and the use thereof for encryption |
US163054 | 1993-12-06 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07199808A JPH07199808A (ja) | 1995-08-04 |
JP3320928B2 true JP3320928B2 (ja) | 2002-09-03 |
Family
ID=22588290
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP29772594A Expired - Fee Related JP3320928B2 (ja) | 1993-12-06 | 1994-12-01 | 暗号化システム |
Country Status (5)
Country | Link |
---|---|
US (4) | US5454039A (ja) |
EP (1) | EP0658022B1 (ja) |
JP (1) | JP3320928B2 (ja) |
DE (1) | DE69431390T2 (ja) |
SG (1) | SG44363A1 (ja) |
Families Citing this family (238)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5454039A (en) * | 1993-12-06 | 1995-09-26 | International Business Machines Corporation | Software-efficient pseudorandom function and the use thereof for encryption |
US5652868A (en) * | 1994-09-27 | 1997-07-29 | International Business Machines Corporation | Data processor having BIOS decryption of emulated media images |
US7362775B1 (en) | 1996-07-02 | 2008-04-22 | Wistaria Trading, Inc. | Exchange mechanisms for digital information packages with bandwidth securitization, multichannel digital watermarks, and key management |
US6724554B1 (en) | 1995-03-10 | 2004-04-20 | Iomega Corporation | Read/write protect scheme for a disk cartridge and drive |
US5644444A (en) * | 1995-03-10 | 1997-07-01 | Iomega Corporation | Read/write protect scheme for a disk cartridge and drive |
JP3865775B2 (ja) * | 1995-04-11 | 2007-01-10 | キネテック インコーポレイテッド | データ処理システムにおけるデータの識別 |
US5613004A (en) | 1995-06-07 | 1997-03-18 | The Dice Company | Steganographic method and device |
KR100281869B1 (ko) * | 1995-07-28 | 2001-02-15 | 윤종용 | 보안 기능을 갖는 개인용 컴퓨터, 그의 보안 방법 및 그 보안 장치의 설치 및 제거방법 |
US6070198A (en) * | 1995-10-19 | 2000-05-30 | Hewlett-Packard Company | Encryption with a streams-based protocol stack |
US6014445A (en) * | 1995-10-23 | 2000-01-11 | Kabushiki Kaisha Toshiba | Enciphering/deciphering apparatus and method incorporating random variable and keystream generation |
US5724428A (en) * | 1995-11-01 | 1998-03-03 | Rsa Data Security, Inc. | Block encryption algorithm with data-dependent rotations |
US6205249B1 (en) | 1998-04-02 | 2001-03-20 | Scott A. Moskowitz | Multiple transform utilization and applications for secure digital watermarking |
US7664263B2 (en) | 1998-03-24 | 2010-02-16 | Moskowitz Scott A | Method for combining transfer functions with predetermined key creation |
FI102235B1 (fi) * | 1996-01-24 | 1998-10-30 | Nokia Telecommunications Oy | Autentikointiavainten hallinta matkaviestinjärjestelmässä |
JP3747520B2 (ja) * | 1996-01-30 | 2006-02-22 | 富士ゼロックス株式会社 | 情報処理装置及び情報処理方法 |
US6122379A (en) * | 1996-05-30 | 2000-09-19 | Deloitte & Touche Inc. | Method and apparatus for performing simultaneous data compression and encryption |
US6530019B1 (en) * | 1996-06-12 | 2003-03-04 | Dell U.S.A., L.P. | Disk boot sector for software contract enforcement |
US7177429B2 (en) | 2000-12-07 | 2007-02-13 | Blue Spike, Inc. | System and methods for permitting open access to data objects and for securing data within the data objects |
US7457962B2 (en) | 1996-07-02 | 2008-11-25 | Wistaria Trading, Inc | Optimization methods for the insertion, protection, and detection of digital watermarks in digitized data |
US7346472B1 (en) | 2000-09-07 | 2008-03-18 | Blue Spike, Inc. | Method and device for monitoring and analyzing signals |
US7095874B2 (en) | 1996-07-02 | 2006-08-22 | Wistaria Trading, Inc. | Optimization methods for the insertion, protection, and detection of digital watermarks in digitized data |
US5889868A (en) | 1996-07-02 | 1999-03-30 | The Dice Company | Optimization methods for the insertion, protection, and detection of digital watermarks in digitized data |
US7159116B2 (en) | 1999-12-07 | 2007-01-02 | Blue Spike, Inc. | Systems, methods and devices for trusted transactions |
EP1076902A4 (en) * | 1996-08-05 | 2001-05-23 | Ttr Technologies Ltd | DIGITAL OPTICAL MEDIA AUTHENTICATION AND COPY PROTECTION PROCEDURE |
US5751812A (en) * | 1996-08-27 | 1998-05-12 | Bell Communications Research, Inc. | Re-initialization of an iterated hash function secure password system over an insecure network connection |
US5793869A (en) * | 1996-10-11 | 1998-08-11 | Claflin, Jr.; Raymond E. | Method and apparatus for encoding and data compressing text information |
US8225089B2 (en) | 1996-12-04 | 2012-07-17 | Otomaku Properties Ltd., L.L.C. | Electronic transaction systems utilizing a PEAD and a private key |
US7730317B2 (en) * | 1996-12-20 | 2010-06-01 | Wistaria Trading, Inc. | Linear predictive coding implementation of digital watermarks |
WO1998032070A1 (en) * | 1997-01-17 | 1998-07-23 | Picturetel Corporation | Pseudo-random number generator exploiting processors having instruction-level parallelism and the use thereof for encryption |
US6125185A (en) * | 1997-05-27 | 2000-09-26 | Cybercash, Inc. | System and method for encryption key generation |
JP3595145B2 (ja) * | 1997-06-02 | 2004-12-02 | 三菱電機株式会社 | 暗号通信システム |
US6219662B1 (en) | 1997-07-10 | 2001-04-17 | International Business Machines Corporation | Supporting database indexes based on a generalized B-tree index |
US6253196B1 (en) | 1997-07-10 | 2001-06-26 | International Business Machines Corporation | Generalized model for the exploitation of database indexes |
US6266663B1 (en) | 1997-07-10 | 2001-07-24 | International Business Machines Corporation | User-defined search using index exploitation |
US6278994B1 (en) | 1997-07-10 | 2001-08-21 | International Business Machines Corporation | Fully integrated architecture for user-defined search |
US6192358B1 (en) | 1997-07-10 | 2001-02-20 | Internatioanal Business Machines Corporation | Multiple-stage evaluation of user-defined predicates |
US6285996B1 (en) | 1997-07-10 | 2001-09-04 | International Business Machines Corp. | Run-time support for user-defined index ranges and index filters |
CA2210199A1 (en) | 1997-07-11 | 1999-01-11 | Mitel Corporation | Method and apparatus for the generation of non-linear confusion data |
WO1999008411A2 (en) * | 1997-08-08 | 1999-02-18 | Jonathan Stiebel | New operation for key insertion with folding |
US6032257A (en) * | 1997-08-29 | 2000-02-29 | Compaq Computer Corporation | Hardware theft-protection architecture |
CA2302784A1 (en) | 1997-09-17 | 1999-03-25 | Frank C. Luyster | Improved block cipher method |
US6252958B1 (en) * | 1997-09-22 | 2001-06-26 | Qualcomm Incorporated | Method and apparatus for generating encryption stream ciphers |
US6510228B2 (en) * | 1997-09-22 | 2003-01-21 | Qualcomm, Incorporated | Method and apparatus for generating encryption stream ciphers |
JPH11161552A (ja) * | 1997-11-28 | 1999-06-18 | Fujitsu Ltd | 可換記憶媒体のデータ保護方法及び、これを適用した記憶装置 |
IL122393A0 (en) | 1997-12-01 | 1998-06-15 | Ttr Technologies Ltd | A code word for use in digital optical media and a method of generation thereof |
US6259789B1 (en) * | 1997-12-12 | 2001-07-10 | Safecourier Software, Inc. | Computer implemented secret object key block cipher encryption and digital signature device and method |
DE69812564T2 (de) * | 1997-12-15 | 2003-12-11 | Koninkl Philips Electronics Nv | Elektronische Vorrichtung mit einem Speicherschutzgerät und Verfahren zum Datenschuts in einem Speicher |
US6055316A (en) * | 1997-12-26 | 2000-04-25 | Sun Microsystems, Inc. | System and method for deriving an appropriate initialization vector for secure communications |
US6513111B2 (en) | 1998-02-09 | 2003-01-28 | Reuters, Ltd | Method of controlling software applications specific to a group of users |
US6363487B1 (en) * | 1998-03-16 | 2002-03-26 | Roxio, Inc. | Apparatus and method of creating a firewall data protection |
US6732293B1 (en) | 1998-03-16 | 2004-05-04 | Symantec Corporation | Method, software and apparatus for recovering and recycling data in conjunction with an operating system |
JP4169822B2 (ja) * | 1998-03-18 | 2008-10-22 | 富士通株式会社 | 記憶媒体のデータ保護方法、その装置及びその記憶媒体 |
US7246246B2 (en) * | 1998-04-17 | 2007-07-17 | Iomega Corporation | System for keying protected electronic data to particular media to prevent unauthorized copying using a compound key |
US7107246B2 (en) * | 1998-04-27 | 2006-09-12 | Esignx Corporation | Methods of exchanging secure messages |
US6269163B1 (en) | 1998-06-15 | 2001-07-31 | Rsa Security Inc. | Enhanced block ciphers with data-dependent rotations |
US6131165A (en) * | 1998-06-18 | 2000-10-10 | Sun Microsystems, Inc. | Permit for controlling access to services in protected memory systems |
US6138235A (en) * | 1998-06-29 | 2000-10-24 | Sun Microsystems, Inc. | Controlling access to services between modular applications |
US6075865A (en) | 1998-07-01 | 2000-06-13 | Tecsec Incorporated | Cryptographic communication process and apparatus |
US6389425B1 (en) | 1998-07-09 | 2002-05-14 | International Business Machines Corporation | Embedded storage mechanism for structured data types |
GB9818186D0 (en) * | 1998-08-20 | 1998-10-14 | Undershaw Global Limited | Improvements in and relating to data communication |
GB9818187D0 (en) * | 1998-08-20 | 1998-10-14 | Undershaw Global Limited | Improvements in and relating to access control |
JP3679936B2 (ja) * | 1998-11-27 | 2005-08-03 | 東芝ソリューション株式会社 | 暗復号装置及び記憶媒体 |
US6473861B1 (en) | 1998-12-03 | 2002-10-29 | Joseph Forte | Magnetic optical encryption/decryption disk drive arrangement |
US6463537B1 (en) * | 1999-01-04 | 2002-10-08 | Codex Technologies, Inc. | Modified computer motherboard security and identification system |
EP1169806A1 (en) * | 1999-03-16 | 2002-01-09 | Valentin Alexandrovich Mischenko | Method and apparatus for encoding and decoding information |
US7664264B2 (en) | 1999-03-24 | 2010-02-16 | Blue Spike, Inc. | Utilizing data reduction in steganographic and cryptographic systems |
US7055055B1 (en) | 1999-04-23 | 2006-05-30 | Symantec Corporation | Write cache flushing method for reducing data corruption |
US6792108B1 (en) | 1999-06-08 | 2004-09-14 | Universite de Montrëal | Aperiodic encryption for digital data |
US6367010B1 (en) | 1999-07-02 | 2002-04-02 | Postx Corporation | Method for generating secure symmetric encryption and decryption |
US7051055B1 (en) | 1999-07-09 | 2006-05-23 | Symantec Corporation | Optimized disk storage defragmentation with swapping capabilities |
WO2001004801A1 (en) * | 1999-07-09 | 2001-01-18 | Wild File, Inc. | Optimized disk storage defragmentation with swapping capabilities |
DE19932769A1 (de) * | 1999-07-14 | 2001-03-08 | Roellgen Bernd | Während der Laufzeit veränderbare kryptographische Methode |
US7475246B1 (en) | 1999-08-04 | 2009-01-06 | Blue Spike, Inc. | Secure personal content server |
JP3782351B2 (ja) * | 1999-10-20 | 2006-06-07 | 富士通株式会社 | 可変長鍵暗号システム |
US7278016B1 (en) * | 1999-10-26 | 2007-10-02 | International Business Machines Corporation | Encryption/decryption of stored data using non-accessible, unique encryption key |
US6928551B1 (en) | 1999-10-29 | 2005-08-09 | Lockheed Martin Corporation | Method and apparatus for selectively denying access to encoded data |
US6792113B1 (en) * | 1999-12-20 | 2004-09-14 | Microsoft Corporation | Adaptable security mechanism for preventing unauthorized access of digital data |
US6748536B1 (en) * | 2000-01-13 | 2004-06-08 | Visteon Global Technologies, Inc. | Key security system for vehicle-based information node |
JP3587751B2 (ja) * | 2000-01-25 | 2004-11-10 | 村田機械株式会社 | 共通鍵生成器,暗号通信方法,暗号通信システム及び記録媒体 |
WO2001063383A1 (en) * | 2000-02-24 | 2001-08-30 | Mischenko Valentin Alexandrovi | Method for providing authorized access to personal computer data resources |
DE60129682T2 (de) * | 2000-03-29 | 2008-04-30 | Vadium Technology Inc., Seattle | Einmalige pad-verschlüsselung mit zentralschlüsseldienst und schlüsselfähigen zeichen |
US20070129955A1 (en) * | 2000-04-14 | 2007-06-07 | American Express Travel Related Services Company, Inc. | System and method for issuing and using a loyalty point advance |
US8046256B2 (en) | 2000-04-14 | 2011-10-25 | American Express Travel Related Services Company, Inc. | System and method for using loyalty rewards as currency |
US7215771B1 (en) | 2000-06-30 | 2007-05-08 | Western Digital Ventures, Inc. | Secure disk drive comprising a secure drive key and a drive ID for implementing secure communication over a public network |
US20050063256A1 (en) * | 2000-06-30 | 2005-03-24 | Selinfreund Richard H. | Data storage in optical discs |
US6638593B2 (en) | 2000-06-30 | 2003-10-28 | Verification Technologies, Inc. | Copy-protected optical media and method of manufacture thereof |
WO2002002301A1 (en) | 2000-06-30 | 2002-01-10 | Verification Technologies Inc. | Copy-protected optical media and method of manufacture thereof |
US7003674B1 (en) * | 2000-07-31 | 2006-02-21 | Western Digital Ventures, Inc. | Disk drive employing a disk with a pristine area for storing encrypted data accessible only by trusted devices or clients to facilitate secure network communications |
US7155616B1 (en) | 2000-07-31 | 2006-12-26 | Western Digital Ventures, Inc. | Computer network comprising network authentication facilities implemented in a disk drive |
US7660415B2 (en) | 2000-08-03 | 2010-02-09 | Selinfreund Richard H | Method and apparatus for controlling access to storage media |
US7127615B2 (en) | 2000-09-20 | 2006-10-24 | Blue Spike, Inc. | Security based on subliminal and supraliminal channels for data objects |
US6862354B1 (en) | 2000-09-29 | 2005-03-01 | Cisco Technology, Inc. | Stream cipher encryption method and apparatus that can efficiently seek to arbitrary locations in a key stream |
US7900057B2 (en) * | 2000-11-03 | 2011-03-01 | Enova Technology Corporation | Cryptographic serial ATA apparatus and method |
US7398225B2 (en) * | 2001-03-29 | 2008-07-08 | American Express Travel Related Services Company, Inc. | System and method for networked loyalty program |
US7398226B2 (en) | 2000-11-06 | 2008-07-08 | American Express Travel Related Services Company, Inc. | System and method for networked loyalty program |
FR2817067B1 (fr) * | 2000-11-21 | 2003-02-21 | Cyber Comm | Procede et dispositif d'authentification de documents electroniques au moyen d'une signature numerique |
US20020095604A1 (en) * | 2001-01-18 | 2002-07-18 | Hausler Jean-Philippe D. | Encryption system and method |
JP3724399B2 (ja) * | 2001-01-23 | 2005-12-07 | 株式会社日立製作所 | 疑似乱数生成装置またはそれを用いた暗号復号処理装置 |
US7222101B2 (en) | 2001-02-26 | 2007-05-22 | American Express Travel Related Services Company, Inc. | System and method for securing data through a PDA portal |
US7584149B1 (en) * | 2001-02-26 | 2009-09-01 | American Express Travel Related Services Company, Inc. | System and method for securing data through a PDA portal |
GB0116016D0 (en) * | 2001-06-29 | 2001-08-22 | Simoco Digital Systems Ltd | Communications systems |
US6973571B2 (en) * | 2001-07-03 | 2005-12-06 | Bank Of America Corporation | System, apparatus, and method for performing cryptographic validity services |
JP3695581B2 (ja) * | 2001-08-08 | 2005-09-14 | ソニー株式会社 | 記録装置および記録方法、記録媒体、並びに、電子カメラ |
US7197142B2 (en) * | 2001-08-24 | 2007-03-27 | Alten Alexander I | System and methods for a vernam stream cipher |
US6986050B2 (en) * | 2001-10-12 | 2006-01-10 | F-Secure Oyj | Computer security method and apparatus |
US7415571B1 (en) | 2001-10-31 | 2008-08-19 | Western Digital Ventures, Inc. | Disk drive and method for using a mailbox file associated with a disk storage medium for performing a function characterized by contents of the mailbox file |
US7543117B1 (en) | 2001-10-31 | 2009-06-02 | Western Digital Ventures, Inc. | Method for installing a mailbox file associated with a disk storage medium |
US8935297B2 (en) | 2001-12-10 | 2015-01-13 | Patrick J. Coyne | Method and system for the management of professional services project information |
JP4408601B2 (ja) * | 2001-12-27 | 2010-02-03 | 富士通株式会社 | 情報再生装置およびセキュアモジュール |
US7242768B2 (en) | 2002-01-14 | 2007-07-10 | Lenovo (Singapore) Pte. Ltd. | Super secure migratable keys in TCPA |
JP4122777B2 (ja) * | 2002-01-18 | 2008-07-23 | 日本ビクター株式会社 | コンテンツ記録再生装置 |
US7236592B2 (en) * | 2002-02-01 | 2007-06-26 | International Business Machines Corporation | Efficient stream cipher system and method |
JP3730926B2 (ja) * | 2002-03-14 | 2006-01-05 | 京セラ株式会社 | ヘリカル型アンテナの設計方法 |
US6845908B2 (en) * | 2002-03-18 | 2005-01-25 | Hitachi Semiconductor (America) Inc. | Storage card with integral file system, access control and cryptographic support |
US7287275B2 (en) | 2002-04-17 | 2007-10-23 | Moskowitz Scott A | Methods, systems and devices for packet watermarking and efficient provisioning of bandwidth |
US7464265B2 (en) * | 2002-05-03 | 2008-12-09 | Microsoft Corporation | Methods for iteratively deriving security keys for communications sessions |
US8335915B2 (en) * | 2002-05-14 | 2012-12-18 | Netapp, Inc. | Encryption based security system for network storage |
JP4007873B2 (ja) * | 2002-07-09 | 2007-11-14 | 富士通株式会社 | データ保護プログラムおよびデータ保護方法 |
GB2391082B (en) * | 2002-07-19 | 2005-08-03 | Ritech Internat Ltd | Portable data storage device with layered memory architecture |
US7209561B1 (en) * | 2002-07-19 | 2007-04-24 | Cybersource Corporation | System and method for generating encryption seed values |
US8386797B1 (en) * | 2002-08-07 | 2013-02-26 | Nvidia Corporation | System and method for transparent disk encryption |
AU2003298560A1 (en) * | 2002-08-23 | 2004-05-04 | Exit-Cube, Inc. | Encrypting operating system |
US20040131182A1 (en) * | 2002-09-03 | 2004-07-08 | The Regents Of The University Of California | Block cipher mode of operation for constructing a wide-blocksize block cipher from a conventional block cipher |
US7146499B2 (en) * | 2002-09-30 | 2006-12-05 | International Business Machines Corporation | Security system for replicated storage devices on computer networks |
US7076666B2 (en) * | 2002-10-17 | 2006-07-11 | Sony Corporation | Hard disk drive authentication for personal video recorder |
US20040247116A1 (en) * | 2002-11-20 | 2004-12-09 | Boren Stephen Laurence | Method of generating a stream cipher using multiple keys |
US7190791B2 (en) * | 2002-11-20 | 2007-03-13 | Stephen Laurence Boren | Method of encryption using multi-key process to create a variable-length key |
JP4655452B2 (ja) * | 2003-03-24 | 2011-03-23 | 富士ゼロックス株式会社 | 情報処理装置 |
US7097107B1 (en) | 2003-04-09 | 2006-08-29 | Mobile-Mind, Inc. | Pseudo-random number sequence file for an integrated circuit card |
US7055039B2 (en) * | 2003-04-14 | 2006-05-30 | Sony Corporation | Protection of digital content using block cipher crytography |
US7346160B2 (en) * | 2003-04-23 | 2008-03-18 | Michaelsen David L | Randomization-based encryption apparatus and method |
US7480798B2 (en) * | 2003-06-05 | 2009-01-20 | International Business Machines Corporation | System and method for representing multiple security groups as a single data object |
US7430671B2 (en) * | 2004-03-31 | 2008-09-30 | Nortel Networks Limited | Systems and methods for preserving confidentiality of sensitive information in a point-of-care communications environment |
US20050086079A1 (en) * | 2003-09-19 | 2005-04-21 | Graves Alan F. | Integrated and secure architecture for delivery of communications services in a hospital |
US7376836B2 (en) * | 2003-09-19 | 2008-05-20 | Nortel Networks Limited | Systems and methods for preventing an attack on healthcare data processing resources in a hospital information system |
US20080209513A1 (en) * | 2003-09-19 | 2008-08-28 | Nortel Networks Limited | Systems and methods for preventing an attack on healthcare data processing resources in a hospital information system |
JP2007506392A (ja) * | 2003-09-22 | 2007-03-15 | イムプシス ディジタル セキュリティ アクチボラゲット | データ通信機密保護の仕組みおよび方法 |
US7287133B2 (en) | 2004-08-24 | 2007-10-23 | Symantec Operating Corporation | Systems and methods for providing a modification history for a location within a data store |
US7577806B2 (en) | 2003-09-23 | 2009-08-18 | Symantec Operating Corporation | Systems and methods for time dependent data storage and recovery |
US7409587B2 (en) | 2004-08-24 | 2008-08-05 | Symantec Operating Corporation | Recovering from storage transaction failures using checkpoints |
US7730222B2 (en) | 2004-08-24 | 2010-06-01 | Symantec Operating System | Processing storage-related I/O requests using binary tree data structures |
US7631120B2 (en) | 2004-08-24 | 2009-12-08 | Symantec Operating Corporation | Methods and apparatus for optimally selecting a storage buffer for the storage of data |
US7239581B2 (en) | 2004-08-24 | 2007-07-03 | Symantec Operating Corporation | Systems and methods for synchronizing the internal clocks of a plurality of processor modules |
US7991748B2 (en) | 2003-09-23 | 2011-08-02 | Symantec Corporation | Virtual data store creation and use |
US7827362B2 (en) | 2004-08-24 | 2010-11-02 | Symantec Corporation | Systems, apparatus, and methods for processing I/O requests |
US7577807B2 (en) | 2003-09-23 | 2009-08-18 | Symantec Operating Corporation | Methods and devices for restoring a portion of a data store |
US7904428B2 (en) | 2003-09-23 | 2011-03-08 | Symantec Corporation | Methods and apparatus for recording write requests directed to a data store |
US7296008B2 (en) | 2004-08-24 | 2007-11-13 | Symantec Operating Corporation | Generation and use of a time map for accessing a prior image of a storage device |
US7725760B2 (en) | 2003-09-23 | 2010-05-25 | Symantec Operating Corporation | Data storage system |
US7366299B2 (en) * | 2003-09-26 | 2008-04-29 | International Business Machines Corporation | Method for encrypting and decrypting data using derivative equations and factors |
GB0402909D0 (en) * | 2004-02-10 | 2004-03-17 | Stegostik Ltd | Data storage |
US7162647B2 (en) * | 2004-03-11 | 2007-01-09 | Hitachi, Ltd. | Method and apparatus for cryptographic conversion in a data storage system |
US8300824B1 (en) * | 2004-04-08 | 2012-10-30 | Cisco Technology, Inc. | System and method for encrypting data using a cipher text in a communications environment |
US7593532B2 (en) * | 2004-04-22 | 2009-09-22 | Netapp, Inc. | Management of the retention and/or discarding of stored data |
US7085561B1 (en) * | 2004-05-03 | 2006-08-01 | Itt Manufacturing Enterprises, Inc. | Embedded channel analysis for RF data modem |
DE102004032894A1 (de) * | 2004-07-07 | 2006-02-09 | Giesecke & Devrient Gmbh | Ausspähungsgeschütztes Berechnen eines maskierten Ergebniswertes |
DE102004032893B4 (de) * | 2004-07-07 | 2015-02-05 | Giesecke & Devrient Gmbh | Ausspähungsgeschütztes Berechnen eines maskierten Ergebniswertes |
US7421589B2 (en) * | 2004-07-21 | 2008-09-02 | Beachhead Solutions, Inc. | System and method for lost data destruction of electronic data stored on a portable electronic device using a security interval |
WO2006048703A1 (en) * | 2004-11-05 | 2006-05-11 | Synaptic Laboratories Limited | Process of and apparatus for encoding a signal |
US7949665B1 (en) | 2004-11-19 | 2011-05-24 | Symantec Corporation | Rapidly traversing disc volumes during file content examination |
US8155306B2 (en) * | 2004-12-09 | 2012-04-10 | Intel Corporation | Method and apparatus for increasing the speed of cryptographic processing |
JP4518969B2 (ja) * | 2005-01-25 | 2010-08-04 | 株式会社トリニティーセキュリティーシステムズ | 携帯通信装置、バックアップ装置、バックアップ方法、およびバックアッププログラム |
US7330965B2 (en) * | 2005-02-09 | 2008-02-12 | International Business Machines Corporation | Multi-tiered boot list |
US20060198515A1 (en) * | 2005-03-03 | 2006-09-07 | Seagate Technology Llc | Secure disc drive electronics implementation |
US8219823B2 (en) | 2005-03-04 | 2012-07-10 | Carter Ernst B | System for and method of managing access to a system using combinations of user information |
CN100421090C (zh) * | 2005-04-29 | 2008-09-24 | 英华达股份有限公司 | 储存元件的资料保护方法及系统 |
US8898452B2 (en) | 2005-09-08 | 2014-11-25 | Netapp, Inc. | Protocol translation |
US7886158B2 (en) * | 2005-09-08 | 2011-02-08 | Hitachi, Ltd. | System and method for remote copy of encrypted data |
WO2007029330A1 (ja) * | 2005-09-09 | 2007-03-15 | Mitsubishi Denki Kabushiki Kaisha | 擬似乱数生成装置 |
US20070088770A1 (en) * | 2005-10-14 | 2007-04-19 | Ming-Tsung Chiang | Structure for re-arranging file allocation index by memory block |
WO2007047346A2 (en) | 2005-10-14 | 2007-04-26 | Symantec Operating Corporation | Technique for timeline compression in a data store |
GB0521664D0 (en) * | 2005-10-25 | 2005-11-30 | Cryptara Ltd | A method of generating a random key |
US7886161B2 (en) * | 2005-11-11 | 2011-02-08 | Computer Associates Think, Inc. | Method and system for intercepting transactions for encryption |
US8230487B2 (en) * | 2005-12-21 | 2012-07-24 | International Business Machines Corporation | Method and system for controlling access to a secondary system |
US8185576B2 (en) | 2006-03-14 | 2012-05-22 | Altnet, Inc. | Filter for a distributed network |
US8668146B1 (en) | 2006-05-25 | 2014-03-11 | Sean I. Mcghie | Rewards program with payment artifact permitting conversion/transfer of non-negotiable credits to entity independent funds |
US8684265B1 (en) | 2006-05-25 | 2014-04-01 | Sean I. Mcghie | Rewards program website permitting conversion/transfer of non-negotiable credits to entity independent funds |
US9704174B1 (en) | 2006-05-25 | 2017-07-11 | Sean I. Mcghie | Conversion of loyalty program points to commerce partner points per terms of a mutual agreement |
US10062062B1 (en) | 2006-05-25 | 2018-08-28 | Jbshbm, Llc | Automated teller machine (ATM) providing money for loyalty points |
US8376224B2 (en) | 2006-05-25 | 2013-02-19 | Sean I. Mcghie | Self-service stations for utilizing non-negotiable credits earned from a game of chance |
US8342399B1 (en) | 2006-05-25 | 2013-01-01 | Mcghie Sean I | Conversion of credits to funds |
US7703673B2 (en) | 2006-05-25 | 2010-04-27 | Buchheit Brian K | Web based conversion of non-negotiable credits associated with an entity to entity independent negotiable funds |
US8162209B2 (en) | 2006-05-25 | 2012-04-24 | Buchheit Brian K | Storefront purchases utilizing non-negotiable credits earned from a game of chance |
US8171307B1 (en) | 2006-05-26 | 2012-05-01 | Netapp, Inc. | Background encryption of disks in a large cluster |
US9762536B2 (en) * | 2006-06-27 | 2017-09-12 | Waterfall Security Solutions Ltd. | One way secure link |
US8687800B2 (en) | 2006-08-15 | 2014-04-01 | Alcatel Lucent | Encryption method for message authentication |
US8397083B1 (en) | 2006-08-23 | 2013-03-12 | Netapp, Inc. | System and method for efficiently deleting a file from secure storage served by a storage system |
US8181011B1 (en) | 2006-08-23 | 2012-05-15 | Netapp, Inc. | iSCSI name forwarding technique |
IL177756A (en) * | 2006-08-29 | 2014-11-30 | Lior Frenkel | Encryption-based protection against attacks |
US7971234B1 (en) | 2006-09-15 | 2011-06-28 | Netapp, Inc. | Method and apparatus for offline cryptographic key establishment |
US7995759B1 (en) | 2006-09-28 | 2011-08-09 | Netapp, Inc. | System and method for parallel compression of a single data stream |
US8042155B1 (en) | 2006-09-29 | 2011-10-18 | Netapp, Inc. | System and method for generating a single use password based on a challenge/response protocol |
US8190905B1 (en) | 2006-09-29 | 2012-05-29 | Netapp, Inc. | Authorizing administrative operations using a split knowledge protocol |
US8245050B1 (en) | 2006-09-29 | 2012-08-14 | Netapp, Inc. | System and method for initial key establishment using a split knowledge protocol |
US7853019B1 (en) | 2006-11-30 | 2010-12-14 | Netapp, Inc. | Tape failover across a cluster |
IL180020A (en) * | 2006-12-12 | 2013-03-24 | Waterfall Security Solutions Ltd | Encryption -and decryption-enabled interfaces |
IL180748A (en) * | 2007-01-16 | 2013-03-24 | Waterfall Security Solutions Ltd | Secure archive |
JP5365512B2 (ja) * | 2007-03-28 | 2013-12-11 | 日本電気株式会社 | ソフトウェアicカードシステム、管理サーバ、端末、サービス提供サーバ、サービス提供方法及びプログラム |
CN101286338B (zh) * | 2007-04-12 | 2010-06-02 | 鸿富锦精密工业(深圳)有限公司 | 电子设备及其数据加密方法与数据解密方法 |
US8607046B1 (en) | 2007-04-23 | 2013-12-10 | Netapp, Inc. | System and method for signing a message to provide one-time approval to a plurality of parties |
US8611542B1 (en) | 2007-04-26 | 2013-12-17 | Netapp, Inc. | Peer to peer key synchronization |
US8824686B1 (en) | 2007-04-27 | 2014-09-02 | Netapp, Inc. | Cluster key synchronization |
US8037524B1 (en) | 2007-06-19 | 2011-10-11 | Netapp, Inc. | System and method for differentiated cross-licensing for services across heterogeneous systems using transient keys |
US20100005317A1 (en) * | 2007-07-11 | 2010-01-07 | Memory Experts International Inc. | Securing temporary data stored in non-volatile memory using volatile memory |
US8196182B2 (en) | 2007-08-24 | 2012-06-05 | Netapp, Inc. | Distributed management of crypto module white lists |
US9774445B1 (en) | 2007-09-04 | 2017-09-26 | Netapp, Inc. | Host based rekeying |
US8223205B2 (en) | 2007-10-24 | 2012-07-17 | Waterfall Solutions Ltd. | Secure implementation of network-based sensors |
US7983423B1 (en) | 2007-10-29 | 2011-07-19 | Netapp, Inc. | Re-keying based on pre-generated keys |
US20090158299A1 (en) * | 2007-10-31 | 2009-06-18 | Carter Ernst B | System for and method of uniform synchronization between multiple kernels running on single computer systems with multiple CPUs installed |
US20100031057A1 (en) * | 2008-02-01 | 2010-02-04 | Seagate Technology Llc | Traffic analysis resistant storage encryption using implicit and explicit data |
US8103844B2 (en) * | 2008-02-01 | 2012-01-24 | Donald Rozinak Beaver | Secure direct platter access |
US9152636B2 (en) * | 2008-03-07 | 2015-10-06 | Leadcom Technology Co., Ltd. | Content protection system in storage media and method of the same |
US8738531B1 (en) * | 2008-07-08 | 2014-05-27 | InfoWatch | Cryptographic distributed storage system and method |
US8194858B2 (en) * | 2009-02-19 | 2012-06-05 | Physical Optics Corporation | Chaotic cipher system and method for secure communication |
US20100217977A1 (en) * | 2009-02-23 | 2010-08-26 | William Preston Goodwill | Systems and methods of security for an object based storage device |
CN101859306B (zh) * | 2009-04-07 | 2013-01-23 | 日电(中国)有限公司 | 盲化索引表产生方法和设备、联合关键字搜索方法和设备 |
CN101957902B (zh) * | 2009-07-20 | 2014-03-26 | 日电(中国)有限公司 | 扩展盲化倒排索引表产生方法和设备、联合关键字搜索方法和设备 |
US8499359B1 (en) * | 2010-12-14 | 2013-07-30 | Symantec Corporation | Data loss prevention using an ephemeral key |
TW201243643A (en) * | 2011-04-22 | 2012-11-01 | Inst Information Industry | Hierarchical encryption/decryption device and method thereof |
US8837720B2 (en) | 2012-03-16 | 2014-09-16 | Paul de Roulet | Cryptographically secure pseudorandom number generator |
US9635037B2 (en) | 2012-09-06 | 2017-04-25 | Waterfall Security Solutions Ltd. | Remote control of secure installations |
TWI601063B (zh) * | 2012-09-19 | 2017-10-01 | 聯想企業解決方案(新加坡)有限公司 | 使用亂數產生器的電腦系統與資料處理方法 |
US9083510B1 (en) * | 2013-03-13 | 2015-07-14 | Emc Corporation | Generation and management of crypto key for cloud data |
US20140283141A1 (en) * | 2013-03-15 | 2014-09-18 | Apple Inc. | Switching a Mobile Device from Operating in a Primary Access Mode to a Secondary Access Mode |
CA2914785C (en) | 2013-04-18 | 2019-12-17 | RISOFTDEV, Inc. | System and methods for encrypting data |
US9419975B2 (en) | 2013-04-22 | 2016-08-16 | Waterfall Security Solutions Ltd. | Bi-directional communication over a one-way link |
CN103530581A (zh) * | 2013-10-09 | 2014-01-22 | 中国联合网络通信集团有限公司 | 硬盘加密方法和操作系统 |
IL235175A (en) | 2014-10-19 | 2017-08-31 | Frenkel Lior | Secure desktop remote control |
US10372695B2 (en) * | 2014-12-27 | 2019-08-06 | Intel Corporation | Technologies for computing rolling hashes |
US9904803B2 (en) * | 2015-03-25 | 2018-02-27 | Intel Corporation | Technologies for hardening data encryption with secure enclaves |
US9843592B2 (en) | 2015-10-14 | 2017-12-12 | Sony Interactive Entertainment America Llc | Fast multicast messaging encryption and authentication |
IL250010B (en) | 2016-02-14 | 2020-04-30 | Waterfall Security Solutions Ltd | Secure connection with protected facilities |
US10515226B2 (en) * | 2016-11-21 | 2019-12-24 | Dell Products, L.P. | Systems and methods for protected local backup |
US10360391B2 (en) | 2017-04-03 | 2019-07-23 | International Business Machines Corporation | Verifiable keyed all-or-nothing transform |
EP3454502B1 (en) * | 2017-09-07 | 2020-08-05 | Nxp B.V. | Transceiver system |
KR102019362B1 (ko) * | 2018-11-26 | 2019-09-09 | 제주대학교 산학협력단 | Cctv 영상 데이터 분산 처리 장치 및 그 방법 |
CN112887079B (zh) * | 2021-03-11 | 2022-10-04 | 中国石油大学(华东) | 基于一段随机比特序列生成的变换加密算法 |
KR102292526B1 (ko) * | 2021-03-23 | 2021-08-24 | 주식회사 두두아이티 | 네트워크 비디오 레코더를 위한 보안 인증 장치 및 방법 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS516628A (ja) * | 1974-07-08 | 1976-01-20 | Hitachi Ltd | |
JPS6273331A (ja) * | 1985-09-27 | 1987-04-04 | Hitachi Ltd | 1対1対応乱数表の作成方式 |
JPS63285578A (ja) * | 1987-05-01 | 1988-11-22 | フィリップス エレクトロニクス ネムローゼ フェンノートシャップ | ディジタル信号暗号化の方法と装置 |
JPH03162119A (ja) * | 1989-11-21 | 1991-07-12 | Sony Corp | 符号発生装置 |
JPH05257679A (ja) * | 1992-03-13 | 1993-10-08 | Toshiba Corp | 盗用防止機能付きコンピュータシステム |
JPH05316104A (ja) * | 1992-05-13 | 1993-11-26 | Mega Chips:Kk | 符号化装置および復号化装置 |
JPH0675524A (ja) * | 1992-02-17 | 1994-03-18 | Fujitsu F I P Kk | ストリーム暗号処理装置 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3639690A (en) * | 1969-09-10 | 1972-02-01 | Motorola Inc | Digital privacy system |
CH530742A (de) * | 1970-08-24 | 1972-11-15 | Ciba Geigy Ag | Vorrichtung zur Erzeugung von Schlüsselimpulsfolgen |
SE380696B (sv) * | 1974-03-20 | 1975-11-10 | Philips Svenska Ab | Sett att alstra en pseudoslumpbitfoljd och anordning for utforande av settet. |
US4074066A (en) * | 1976-04-26 | 1978-02-14 | International Business Machines Corporation | Message verification and transmission error detection by block chaining |
US4238854A (en) * | 1977-12-05 | 1980-12-09 | International Business Machines Corporation | Cryptographic file security for single domain networks |
US4319079A (en) * | 1979-09-13 | 1982-03-09 | Best Robert M | Crypto microprocessor using block cipher |
FR2467515A1 (fr) * | 1979-10-10 | 1981-04-17 | Telediffusion Fse | Systeme de chiffrement et de dechiffrement d'un signal numerique |
US4593353A (en) * | 1981-10-26 | 1986-06-03 | Telecommunications Associates, Inc. | Software protection method and apparatus |
US4520232A (en) * | 1982-04-30 | 1985-05-28 | Wilson William J | Polygraphic encryption-decryption system |
US4668103A (en) * | 1982-04-30 | 1987-05-26 | Wilson William J | Polygraphic encryption-decryption communications system |
US4734796A (en) * | 1983-04-14 | 1988-03-29 | Amiram Grynberg | Technique for preventing unauthorized copying of information recorded on a recording medium and a protected recording medium |
US4596898A (en) * | 1984-03-14 | 1986-06-24 | Computer Security Systems, Inc. | Method and apparatus for protecting stored and transmitted data from compromise or interception |
US4888798A (en) * | 1985-04-19 | 1989-12-19 | Oms, Inc. | Modular software security |
US4787027A (en) * | 1985-09-20 | 1988-11-22 | Ncr Corporation | System using an adapter board to couple a personal computer to a plurality of peripherals in a financial environment |
JP2558682B2 (ja) * | 1987-03-13 | 1996-11-27 | 株式会社東芝 | 知的ワ−クステ−シヨン |
US4944009A (en) * | 1988-02-25 | 1990-07-24 | Massachusetts Institute Of Technology | Pseudo-random sequence generator |
US5003598A (en) * | 1989-01-23 | 1991-03-26 | Kunstadt George H | Secure communication system |
US5003597A (en) * | 1989-12-21 | 1991-03-26 | Xerox Corporation | Method and apparatus for data encryption |
US5060265A (en) * | 1990-07-23 | 1991-10-22 | Motorola, Inc. | Method of protecting a linear feedback shift register (LFSR) output signal |
JPH0522281A (ja) * | 1991-07-15 | 1993-01-29 | Mitsubishi Electric Corp | 秘話装置 |
US5212729A (en) * | 1992-01-22 | 1993-05-18 | Schafer Randy J | Computer data security device and method |
US5454039A (en) * | 1993-12-06 | 1995-09-26 | International Business Machines Corporation | Software-efficient pseudorandom function and the use thereof for encryption |
-
1993
- 1993-12-06 US US08/163,054 patent/US5454039A/en not_active Expired - Lifetime
-
1994
- 1994-11-09 SG SG1995002314A patent/SG44363A1/en unknown
- 1994-11-09 EP EP94308250A patent/EP0658022B1/en not_active Expired - Lifetime
- 1994-11-09 DE DE69431390T patent/DE69431390T2/de not_active Expired - Lifetime
- 1994-12-01 JP JP29772594A patent/JP3320928B2/ja not_active Expired - Fee Related
- 1994-12-06 US US08/349,778 patent/US5677952A/en not_active Expired - Fee Related
-
1995
- 1995-06-07 US US08/478,176 patent/US5675652A/en not_active Expired - Lifetime
-
1997
- 1997-03-31 US US08/831,463 patent/US5835597A/en not_active Expired - Lifetime
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS516628A (ja) * | 1974-07-08 | 1976-01-20 | Hitachi Ltd | |
JPS6273331A (ja) * | 1985-09-27 | 1987-04-04 | Hitachi Ltd | 1対1対応乱数表の作成方式 |
JPS63285578A (ja) * | 1987-05-01 | 1988-11-22 | フィリップス エレクトロニクス ネムローゼ フェンノートシャップ | ディジタル信号暗号化の方法と装置 |
JPH03162119A (ja) * | 1989-11-21 | 1991-07-12 | Sony Corp | 符号発生装置 |
JPH0675524A (ja) * | 1992-02-17 | 1994-03-18 | Fujitsu F I P Kk | ストリーム暗号処理装置 |
JPH05257679A (ja) * | 1992-03-13 | 1993-10-08 | Toshiba Corp | 盗用防止機能付きコンピュータシステム |
JPH05316104A (ja) * | 1992-05-13 | 1993-11-26 | Mega Chips:Kk | 符号化装置および復号化装置 |
Also Published As
Publication number | Publication date |
---|---|
DE69431390T2 (de) | 2003-06-05 |
EP0658022B1 (en) | 2002-09-18 |
DE69431390D1 (de) | 2002-10-24 |
US5675652A (en) | 1997-10-07 |
SG44363A1 (en) | 1997-12-19 |
US5454039A (en) | 1995-09-26 |
US5835597A (en) | 1998-11-10 |
EP0658022A3 (en) | 2000-06-14 |
JPH07199808A (ja) | 1995-08-04 |
EP0658022A2 (en) | 1995-06-14 |
US5677952A (en) | 1997-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3320928B2 (ja) | 暗号化システム | |
US8683218B2 (en) | System and method for N-dimensional encryption | |
US5651069A (en) | Software-efficient message authentication | |
US5673319A (en) | Block cipher mode of operation for secure, length-preserving encryption | |
US6185304B1 (en) | Method and apparatus for a symmetric block cipher using multiple stages | |
US5003597A (en) | Method and apparatus for data encryption | |
CA2491702C (en) | System and method for generating encryption seed values | |
US6185679B1 (en) | Method and apparatus for a symmetric block cipher using multiple stages with type-1 and type-3 feistel networks | |
US8085933B2 (en) | Cipher for disk encryption | |
US8050401B2 (en) | High speed configurable cryptographic architecture | |
Andem | A cryptanalysis of the tiny encryption algorithm | |
US6189095B1 (en) | Symmetric block cipher using multiple stages with modified type-1 and type-3 feistel networks | |
WO2019114122A1 (zh) | 登录信息的加密方法、装置、电子设备及介质 | |
JPH1173101A (ja) | 高速ブロック暗号化方法,及び,コンピュータで使用可能な媒体 | |
US20040120518A1 (en) | Matrix multiplication for cryptographic processing | |
CN111756520A (zh) | 超低时延高级加密标准 | |
JP3012732B2 (ja) | ブロック暗号処理装置 | |
CN110034918B (zh) | 一种sm4加速方法和装置 | |
US7505586B2 (en) | Method for computer-based encryption and decryption of data | |
JP2004004784A (ja) | ハッシュ・アルゴリズムを実装するためのシステム及び方法 | |
Abubaker et al. | DAFA-A Lightweight DES Augmented Finite Automaton Cryptosystem | |
CN117891432A (zh) | 一种随机数生成方法、装置及电子设备 | |
TW202248913A (zh) | 機器學習模型檔案解密方法及用戶裝置 | |
Kaminsky | CS 4005-705-01 Cryptography I | |
KR20030083292A (ko) | 해시 함수를 사용하는 암호화 가속 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080621 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |