JP2000502822A - 高速で安全な暗号化のための改良された暗号的に安全な疑似ランダム・ビット・ジェネレータ - Google Patents
高速で安全な暗号化のための改良された暗号的に安全な疑似ランダム・ビット・ジェネレータInfo
- Publication number
- JP2000502822A JP2000502822A JP10510104A JP51010498A JP2000502822A JP 2000502822 A JP2000502822 A JP 2000502822A JP 10510104 A JP10510104 A JP 10510104A JP 51010498 A JP51010498 A JP 51010498A JP 2000502822 A JP2000502822 A JP 2000502822A
- Authority
- JP
- Japan
- Prior art keywords
- random
- bit
- function
- secure
- bit string
- 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
Links
- 230000006870 function Effects 0.000 claims description 113
- 238000000034 method Methods 0.000 claims description 58
- 230000008569 process Effects 0.000 claims description 22
- 230000006837 decompression Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000007792 addition Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 1
- AZFKQCNGMSSWDS-UHFFFAOYSA-N MCPA-thioethyl Chemical compound CCSC(=O)COC1=CC=C(Cl)C=C1C AZFKQCNGMSSWDS-UHFFFAOYSA-N 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000008014 freezing Effects 0.000 description 1
- 238000007710 freezing Methods 0.000 description 1
- 238000010899 nucleation Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000005295 random walk Methods 0.000 description 1
- 238000001583 randomness test Methods 0.000 description 1
- 230000008929 regeneration Effects 0.000 description 1
- 238000011069 regeneration method Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000000528 statistical test Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- 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
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
-
- 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/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/122—Hardware reduction or efficient architectures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
(57)【要約】
暗号的に安全な疑似ランダム・ビット・ジェネレータ(100)は、フロントエンド・ジェネレータ(102)、セレクタ(104)、ランダム関数プロセッサ(106)、グラフ・プロセッサ(108)、およびビットに関する排他的論理和回路(110)を含む。この暗号的に安全な疑似ランダム・ビット・ジェネレータ(100)は、ビット・ストリングに対するある一方向関数を使用することによりビット・ストリングを伸長する。加えて、ビット・ストリングは、拡大グラフを用いて他の入力ビット・ストリングから生成される。伸長されたビット・ストリングおよび拡大グラフからのビット・ストリングは、ビットに関する排他的論理和回路において結合される。
Description
【発明の詳細な説明】
高速で安全な暗号化のための改良された暗号的に 安全な疑似ランダム・ビット・ジェネレータ 関連出願
本特許出願は以下の米国仮特許出願の利益を主張する。
Ramaranthnam Venkatesan についての1996年8月16日に出願された「改
良された疑似ランダム・ジェネレータ」("An Improved Pseudo-RandomGenerator
")とタイトル付けされたシリアル番号60/023,960
Ramaranthnam Venkatesan についての1997年1月8日に出願された「高速
で安全な暗号化」("Fast and Secure Encryption")とタイトル付けされたシリア
ル番号60/035,220
これらの仮出願の内容を参照によりここに取り入れる。本特許出願の主題は1
996年5月7日にWilliam A.Aiello、Sivararnakrishnan Rajagopalan および
Ramaranthnam Venkatesan を発明者として発行された「疑似ランダム・ジェネレ
ータ」("Pseudo-Random Generator")とタイトル付けされた米国特許第5,51
5,307号の主題にも関連する。本特許は、本特許出願の譲受人であるBellC
ommunications Research,Inc.に譲渡されている。この特許の内容を参照により
ここに取り入れる。本発明の背景 本発明の分野
本発明は高速で安全な暗号化を提供する装置および方法に向けられている。高
速で安全な暗号化を、長く安全なランダム・ビット・ストリングを高速に提供す
る改良された暗号的に安全な疑似ランダム・ビット・ジェネレータにより提供す
る。
関連技術の説明
ランダム・ナンバー(または以下で議論する見かけ上のランダム・ナンバー)
の生成は多くのプロセスで用いられる。ランダム・ナンバーを補助入力として用
いるプロセスには、ソーティング、複雑なシステムのシミュレーションおよびテ
スト、暗号化、ならびに他の暗号プロセスが含まれる。高速暗号アプリケーショ
ンは、物理デバイスから直接には十分速く生成できない長いストリングのランダ
ム・ナンバーをしばしば必要とする。
補助入力の「ランダムさ」がプロセスにとって非常に重要な場合がある。例え
ば、ランダム・ナンバー・ジェネレータの「ランダムさ」は暗号の安全性にとっ
てしばしば重要である。質の悪いランダム・ナンバー・ジェネレータは、敵によ
る暗号システムの攻撃を許し得る相関および再生問題を引き起こすことがある。
他方、完全なランダム・ナンバー・ジェネレータを実現することは不可能かもし
れない。真のランダム・シーケンスをコンピュータ上で生成することは不可能で
あると信じられている。それは、データをコンピュータに入力し、コンピュータ
がプログラムされた予測可能なプロセスをデータに対して実行し、およびコンピ
ュータが(プロセスを知っている誰かに対して)予測可能な出力を生成するから
である。
その結果、疑似ランダム・シーケンス・ジェネレータが開発された。疑似ラン
ダム・シーケンス・ジェネレータは非常に大きな数のランダム・ビットを提供す
る。疑似ランダム・ジェネレータは時々ランダムに「見える」ジェネレータとし
て定義される。すなわち、それはよく知られたランダムさの統計的テストをパス
する。汎用疑似ランダム・ジェネレータは、一定の暗号アプリケーションなどの
多くのアプリケーションにとって都合が悪い。例えば、暗号アプリケーションに
用いられるジェネレータが暗号的に安全であることは重要である。これは以下の
ことを意味する。
ジェネレータをG(s)=R,s∈{0,1}n,R∈{0,1}m,m>nと
する。ここで、
Rは生成されたランダム・ビット・ストリングである。
sはビット・ストリングのシードである。
nは整数である。そして、
mはビット・ストリングのビット数である。
そして、ビット・テストは以下の方法で行われる。
sを秘密にしたまま、1ビットを除いたRのすべてを明らかにする:
R=b1,b2,...,bi+1,...,bm
そして、すべてのビットbiに対して、実行可能な実行時間を有するすべてのア
ルゴリズムが1/2より大きい確率で明らかにされていないビットを予測可能で
あるべきではない。もちろん、シードsについて徹底的なサーチを行い、ビット
を正確に計算することは可能であるが、それには実行不可能な時間がかかる。暗
号的に強固であることの要件は、この徹底的なサーチがこの攻撃を行うほとんど
最高の方法であることを要求する。すなわち、上で議論した汎用疑似ランダム・
ジェネレータの「ランダムに見えること」に加えて、「暗号的に安全な疑似ラン
ダム(CSPR:cryptogaraphically secure pseudo-random)ビット・ジェネレ
ータ」は時々予測できないことと定義される。すなわち、シーケンスを生成する
アルゴリズムまたはハードウェア、およびビット・ストリングのすべての以前の
ビットの完全な知識を与えられたとしても、次のランダム・ナンバーが何である
かを予測することが計算的に実行不可能である。
好ましい実施形態においては、CSPRビット・ジェネレータは、短いランダ
ムなシードを入力として受け取り、そして(DESまたは一方向ハッシュ関数な
どの)一方向関数(one-way function)を繰り返し用いて、真のランダム・ビット
・ストリングと区別できない長い疑似ランダム・ビット・ストリングを生成する
。(簡単にいえば、一方向関数とは、簡単に計算できるが、その範囲の大部分に
ついて逆にすることが難しい関数である。)
従来のCSPRビット・ジェネレータに関する1つの問題は、ソフトウェアの
暗号化において経験される。ソフトウェアの暗号化は、ビデオ・ストリームの暗
号化およびTCP/IPレイヤの暗号化などの多くのリアルタイム・アプリケー
ションにおいて、ボトルネックを与える。例えば、ワークステーション上でビデ
オ・オンライン・ソフトウェアを暗号化するためにDESのような暗号を用いる
典型的な試みは、数秒後のビデオのフリージング・アップをもたらす。これは、
暗号化を実行するのに典型的に必要な追加のオーバーヘッドが大きいという事実
による。暗号化を追加したときにパフォーマンスが大きく変化しないような小さ
なオーバーヘッドのみを追加するアルゴリズムを有することが望ましい。同様の
コメントが、インターネット・アプリケーションのカーネル・レベルにおけるパ
ケットの暗号化について当てはまる。
この問題に対する1つの解決策は、新しい暗号化アルゴリズムをデザインする
ことであるが、この解決策は実用的ではない。なぜなら、新しい暗号システムが
安全であると信用される前に、新しいアルゴリズムが研究され、暗号システム上
で実行され、新しいアルゴリズムは攻撃により暗号システムを破るであろうから
である。代わりに、いかなる(信用された)既存の暗号に対しても(代わりとし
て)用いることができる高速アルゴリズムを開発し、それを攻撃することは、信
用された暗号または別の信用された暗号プロセスを攻撃することを含むというこ
とを論ずることもできる。信用されている暗号の例は、もちろんDESである。
しかしながら、何か1つの特定の暗号に依存することを避け、いかなる暗号をも
用いることができることが好ましい。その結果、新しいアルゴリズムは、実際に
用いられているものと同じくらい安全であろう。この場合、正式な論証およびそ
の実際のテストされた含蓄を有するべきである。しかし、ユーザは新しい構造に
ついてのより消耗的で高価な暗号解読を避けることができる。
第2のより実用的な解決策は、上記の米国特許第5,515,307号(「’
307特許」)において見つかる。’307特許における発明の好ましい実施形
態では、遅い疑似ランダム・ナンバー・ジェネレータを、長いランダム・ビット
・ストリングを生成するプレプロセッシング・ステップとして用いている。そし
て、ランダム・アフィン・コード(Random Affine Codes)および拡大グラフ(expa
ndergraphs)に基づくいくつかの特殊な構造を用いて、このストリングを「伸長
」(“stretches”)する。’307には、いかなる暗号をも用いることができる
デバイスについて記述されている。このデバイスは、長いストリングを提供し、
証明可能な安全特性を有するランダム・ナンバー・ジェネレータである。
本発明の目的は、ソフトウェア暗号化の際のボトルネックを削減するCSPR
ビット・ジェネレータを提供することである。
本発明の別の目的は、暗号化の際のオーバヘッドを削減することである。
本発明のさらに別の目的は、改良されたCSPRビット・ジェネレータを用い
た高速で安全な暗号化を提供することである。
本発明のさらなる目的は、以前のCSPRビット・ジェネレータに比べて使用
するメモリが少ないCSPRビット・ジェネレータを提供することである。本発明の概要
これらの、および他の本発明の目的は、本発明による暗号的に安全な疑似ラン
ダム・ビット・ジェネレータにより達成される。本発明では、疑似ランダム・ナ
ンバー・ジェネレータを、長いランダム・ビット・ストリングを生成するプレプ
ロセッシング・ステップとして用いている。その後、ビット・ストリングに対し
てある一方向関数を実行することにより、ビット・ストリングを「伸長」する。
好ましい実施形態においては、拡大グラフに基づく特殊な構造も用いる。一方向
関数および拡大グラフにより生成されるストリングについて互いに排他的論理和
をとる(exclusive-ored)ことが好ましい。
好ましい実施形態では、以下の方式で動作がなされる。遅いが安全なジェネレ
ータG0を想定する。
1.G0を用いて、ランダム・ナンバーx1、x2,...,xnを生成する。
2.伸長関数を用いて、ランダム・ナンバーをR=r1,r2,,...,rnに伸長
する。ここで、各riはxiよりもあらかじめ決められた量だけ長い。
3.Rを1回のパッド(one-time pad)として暗号化のために用いることができ
る。
このプロセスは、長く、ランダムで、暗号的に安全なビット・ストリングを提
供する。このビット・ストリングは、ビデオ・ストリーム暗号化、TCP/IP
レイヤ暗号化などのリアルタイム、オンライン暗号化に適した暗号化プロセスを
サポートするのに十分なくらい速い。図面の簡単な説明
これらの、および他の本発明の特徴は以下の図面を参照することにより明らか
にされる:
図1は、本発明によるCSPRビット・ジェネレータの好ましい実施形態を示
すブロック・ダイアグラムであり;
図2は、ランダム関数プロセッサの動作を示すブロック・ダイアグラムであり
;
図3は、本発明によるCSPRの第2の実施形態のブロック・ダイアグラムで
ある。好ましい実施形態の詳細な説明
説明の明確化のため、本発明を以下のセクションにより説明する。
I.概観
本発明の動作および構造の概観を図1を参照して提供する。
II.ランダム関数プロセッサ
ランダム関数プロセッサを図2を参照して説明する。
III.グラフ・プロセッサおよび排他的論理和回路
グラフ・プロセッサおよび排他的論理和回路を簡単に説明する。本発明の第2
の実施形態を図3を参照して説明する。
IV.本発明を用いた暗号化
本発明によるCSPRビット・ジェネレータを用いた暗号化方法を説明する。
V.本発明の有利な点および実装
本発明に関する有利な点および実装の問題を論ずる。
VI.結論
結論を提供する。
I.概観
図1は、本発明による改良された暗号的に安全な疑似ランダム・ビット・ジェ
ネレータ100の第1の好ましい実施形態のブロック・ダイアグラムである。デ
バイスには、フロントエンド・ジェネレータ102、セレクタ104、ランダム
関数プロセッサ106、グラフ・プロセッサ108、および排他的論理和回路(
XOR)110が含まれる。フロントエンド・ジェネレータ102は3つの入力
を受け取る:第1のシードxO、第2のシードh、およびランダム・キーm。疑
似ランダム・ジェネレータ100はこれらの入力を用いてランダム・ビット・ス
トリングztを出力する。
ジェネレータ100は、ランダム・ビット・ストリングbiをフロントエンド
・ジェネレータ102から受け取る。受け取ったビットはその後、ランダム関数
プロセッサ106およびグラフ・プロセッサ108により実行されるプロセスに
より「伸長」される(以下で論ずるように、いくつかのアプリケーションに適し
た
ランダム・ビット・ストリングを、グラフ・プロセッサ108を用いないで生成
することも考えられる)。この「伸長」プロセスは、フロントエンド・ジェネレ
ータ102により提供されるものよりも大きいランダム・ビット・ストリングを
提供する。このジェネレータ100は、長く、ランダムで、暗号的に安全なビッ
ト・ストリングを出力する。このジェネレータ100は、ビデオ・ストリーム暗
号化、TCP/IPレイヤ暗号化などのリアルタイム、オンライン暗号化に適し
た暗号化プロセスをサポートするのに十分なくらい速い。
好ましい実施形態において、伸長は2つのプロセスP0およびP1により実行さ
れる。(1つのプロセスだけを実行することも代替的に考えられる。)これらの
プロセスの出力について互いにXORをとり、ランダム・ビット・ストリングzt
を生成する。
プロセスは以下のように要約される:
1.G0を用いて、ランダム・ナンバーx1、x2,...,xnを生成する。
2.伸長関数を用いて、すべてのランダム・ナンバーをR=r1,r2,...,rn
に伸長する。ここで、各ナンバーriはナンバーxiよりもあらかじめ決められ
た量だけ長い。
3.Rを1回のパッドとして暗号化のために用いることができる。
Rについて別のビット・ストリングと排他的論理和をとり、ztを生成するこ
ともできる。ランダム・ビット・ストリングztは高速かつ安全であり、さらに
CSPRビット・ジェネレータは、’307特許に記載されたデバイスよりも使
用するメモリが少ない。1回のパッドのアプリケーションにおいて、2の当事者
は、例えば64ビットの秘密のシードを共有することができる。このシードを本
発明のデバイスに適用すると、同じランダム・パッドが生成される。したがって
、第1の当事者は本発明のデバイスをCSPRビット・ジェネレータとして用い
てメッセージを暗号化することができる。本発明のデバイスをやはりCSPRビ
ット・ジェネレータとして用いる第2の当事者は、同じ秘密のシードをデバイス
に適用することにより、暗号化されたメッセージを解読することができる。
図1に示すフロントエンド・ジェネレータ102は暗号的に強いことが好まし
く、遅いが暗号的に安全なジェネレータとすることができる。フロントエンド・
ジェネレータは、例えば’307特許に記載されたフロントエンド・ジェネレー
タとすることができる。フロントエンド・ジェネレータの出力はランダム・ビッ
ト・ストリングbiである。(以下の議論はランダムさの弱いビットに対しても
当てはまることに留意されたい。)フロントエンド・ジェネレータ102からの
ビット・ストリングbiはセレクタ104により受け取られる。セレクタ104
は受け取ったビットの行き先を決定する。第1のLビットのブロックをランダム
関数プロセッサ106に送り、第2のLビットのブロックをグラフ・プロセッサ
108に送り、ビット・ストリームをグラフ・プロセッサ108に送ることが好
ましい。
ランダム関数プロセッサ106は、受け取ったビット・ブロック(ランダム・
ナンバーxi)をより長いナンバー(ri)に「伸長」する。比較的短い時間にお
ける繰り返しのランダム・ナンバー(すなわち、224ストリングに約1つの繰り
返しストリング)を避けるために、伸長されたストリングをグラフ・プロセッサ
108の出力と結合してもよい。ランダム関数プロセッサ106およびグラフ・
プロセッサ108の出力は、排他的論理和回路110により互いに結合される。
2つのプロセッサの出力について互いにXORをとる。結果として生じるビット
・ストリングはztである。
II.ランダム関数プロセッサ
本発明にはシンプルで実用的な伸長メカニズムが含まれる。当該メカニズムは
、’307特許に記載されたデバイスとの比較において、約2キロビットのメモ
リしか必要としないが、同等の効率性を有する。約2キロビットのメモリは、’
307特許のデバイスが必要とするメモリよりもかなり少ない。’307特許の
デバイスは約0.25メガバイトのメモリを使用する。このメカニズムはランダ
ム関数プロセッサ106により実行される。ランダム関数プロセッサ106の動
作を図2に示す。
好ましい実施形態において、ランダム関数プロセッサは以下の方式で動作する
ことができる。
1.H(K,x)は入力“x”に対してランダム関数のようにふるまう暗号関
数を示し、キー“k”はランダムに選ばれるものとする。(適切な暗号関数には
、DES、3DES、すべての安全なハッシュ関数、またはMD5、MD4およ
び
SHAなどのハッシュ関数の組合せが含まれる。)
2.K1,K2,...,Krを“r”キーとし、各キーは十分大きな長さ(例えば
128ビット)であるとする。
3.xtビットをH(K1,Xt),H(K2,Xt),...,H(Kr,xt)としてRt
ビットにマッピングする。
説明のため、ジェネレータ100は、フロントエンド・ジェネレータ106に
よる48ビット長のランダム・ストリングを受け取るものと仮定する。この48
ビット・ストリングを256ビット・ストリングに伸長することができる。伸長
は、同一のビット・ストリングに対して2つの異なる一方向関数(MD4および
MD5など)を計算して2つのより長いランダム・ナンバーを生成し、2つのよ
り長いランダム・ナンバーを連結(concatenating)(または付加)することにより
行う。例えば、48ビットのランダム・ナンバーxtを以下のように伸長するこ
とができる:MD5 (Xt)゜MD4(xt)(ここで、゜は連結を表す)。もちろん
、他の一方向関数も本発明に用いるのに適している。
多くの48ビット・ランダム・ナンバーX1,...,xnが与えられたとき、各ラ
ンダム・ナンバーをこの方法により伸長することができる。その結果、結合され
た256ビット・ストリングのすべてが形式的なセンスではなおランダムに見え
る。ストリングを伸長したときにランダムに見えるこの特性は、これらのハッシ
ュ関数を圧縮関数として用いるときにこれらのハッシュ関数に必要とされる衝突
安全特性(collision secure property)とはまったく異なることに留意されたい
。
伸長関数はランダム・ナンバーxをさらに伸長することもできる。
F1,F2,F3,F4を、以下で示す仮定A.5を満たす関数のファミリーから
独立に選んだランダム関数とする。ここで、g:{0,1}n→{0,1}4Nを以
下のように定義する:g(x)=F1(x),F2(x),F3(x),F4(x)。
この関数は異なるキーを有する安全なハッシュ関数にすぎない:例えば、g(x)
=MD5(K1,x)°MD5(K2,x)°MD5(K3,x)°MD5(K4,x)。
キーは秘密に保つことが好ましい。ある者はエンベロープ法を用いたいと望むか
もしれない。この代替法では、種々の関数に対してコードを保有する必要がなく
、いくつかの最適化により装置のパフォーマンスを向上させることができる。敵
は、
選択の入力においてMD5を評価することができないことに留意されたい。この
差が非常に重要なのは、一方向ハッシュ関数の出力のみが与えられたときに、一
方向ハッシュ関数を攻撃する方法が知られていないからである。事実、ここで、
敵はMD5への入力すら知らない;入力はランダムであり、知られていない。
他の関数も適切な伸長関数となり得ることが考えられる。適切な伸長関数はパ
ラメータ(n,N,q)を有し、以下の特性を有する関数Fである。ここで、n
はランダム・ナンバーのビット数であり、Nは伸長されたランダム・ナンバーの
ビット数であり、qは法(modulus)である。xi,i≧1を真にランダムなビット
のシーケンス、すなわち0・1の値をつけられたベルヌーイ・シーケンス(zero-
one valued Bernoulli sequence)により生成されたシーケンスとする。伸長関数
は以下のように定義できる:
1 F:{0,1}n→{0,1}N,N>n
2 出力F(x1),F(x2),...,F(xq)のシーケンスは、同じ長さのラン
ダム・ストリングのシーケンスと区別できない。
関数に対する制約はどれくらいシビアであろうか?Fは決してランダム関数で
はなく、この条件はかなり緩やかである。これを理解するために、安全なハッシ
ュ関数についての以下の仮定のシーケンスを考慮されたい。いくつかのものは多
くの研究者により仮定されたものである。
A.1 Fは固定関数(fixed function)(例えば、SHA、MD5 F(x)
=MD5(x)) である。敵は質問x1を作成し、値F(x1)を取得し、場合に
よってはこの値に依存して次の質問x2を生成し、値F(x2)を見て、適応し
てさらに質問x3を生成するなど。出力F (x1),F (x2),...,F(xq)は
、同じ長さの真にランダムな入力と区別できない。
A.2 Fを関数のファミリーから選ぶ(例えば、秘密キーKを有するMD5
。F(x)=MD5 (K,x))。敵は質問x1を作成し、値F(x1)を取得し
、場合によってはこの値に依存して次の質問x2を生成し、値F(x2)を見て
、適応してさらに質問x3を生成するなど。出力F (x1),F (x2),...,F(
xq)は、
同じ長さの真にランダムな入力と区別できない。(選ばれたメッセージ攻撃。)
A.3 Fを関数のファミリーから選ぶ(例えば、秘密キーKを有するMD5
。F(x)=MD5 (K,x))。敵は一群として質問のシーケンスx1,x2,x3
,...,xqを生成し、その後これらのすべてのポイントに対する関数の値を同時
に質問する。出力F (x1),F (x2),...,F(xq)は、同じ長さの真にラン
ダムな入力と区別できない。(選ばれたメッセージ攻撃。)
A.4 Fを関数のファミリーから選ぶ(例えば、秘密キーKを有するMD5
。F(x)=MD5 (K,x))。敵は公平なコイン・フリップ(coin flips)を用
い、ランダムな質問のシーケンスx1,x2,x3,...,xqを生成し、これらのポ
イントに対する関数の値を一群として質問する。出力F (x1),F (x2),...,
F(xq)は、同じ長さの真にランダムな入力と区別できない。(知られたランダ
ムなメッセージ攻撃。)
A.5 Fを関数のファミリーから選ぶ。例えば、秘密キーKを有するMD5
。F(x)=MD5 (K,x)。公平なコイン・フリップの秘密のソースは、ラ
ンダムな質問のシーケンスx1,x2,x3,...,xqを生成し、敵はこれらのラン
ダムな質問を知らない。出力F(x1),F(x2),...,F(xq)は、同じ長さの
真にランダムな入力と区別できない。(ランダムな知られていないメッセージ攻
撃。)
ここで述べた特性は、衝突抵抗特性(collision resistant property)よりもか
ない弱い。関数は、実際、(入力よりも)長いシーケンスを出力し、ローカルな
独立の仮定(例えば、二面独立(two-wise independence))の下でも、関数はほ
とんどどこでも一対一であり、したがって、ささいな理由により衝突がない。
特性A.5は標準疑似ランダム関数よりも弱い。標準関数とは異なり、質問は
(a)ランダムであり、(b)関数値を真にランダムなストリングと区別するア
ルゴリズムに知られていない。
さらに、関数自体を疑似ランダム方式で選ぶことができる。この場合、関数自
体がすべての評価に対して変化する。したがって、最も弱い可能な仮定は、弱ラ
ンダムな知られていないメッセージ攻撃に対する変化する関数のセキュリティで
ある。
III.グラフ・プロセッサおよび排他的論理和回路
グラフ・プロセッサ108および排他的論理和回路の動作は、’307特許出
願に詳しく記載されている。これらの記載を参照によりここに取り入れる。
1.グラフ・プロセッサ
グラフ・プロセッサの動作を簡単に説明する。ランダム関数プロセッサ106
により実行される伸長関数gは、繰り返し時間(ビット・ストリングが繰り返し
を始める時間)を考慮する場合には、十分に安全ではないかもしれない。ランダ
ム・ナンバーxiがランダムに生成されたシーケンスG0(xi),i≧1である場
合、伸長されたナンバーは、時間22Nよりもむしろ2n/2において誕生日パラド
ックス攻撃の影響を受けやすい。これはxiシーケンスが時間2n/2で繰り返すか
らである。(簡単に言えば、誕生日パラドックスとは、特定の誕生日の1人より
も、同じランダムな誕生日の2人の方が統計的に見つけやすいということである
。)2つの同じストリングを有することは、敵が暗号システムを「破る」ことを
助ける。この問題を解決するのに、拡大グラフにおけるランダム・ウォークを用
いることができる。拡大グラフに基づく追加により、ランダム関数プロセッサ上
で効率的に実行できるいかなるタイプの統計的攻撃をも避けることができる。
遅いが完全なまたは安全なフロントエンド・ジェネレータ102G0がランダ
ム・ビット・ストリングを提供するものと仮定する。x←G0(.)は、xが、長
さ|x|のランダム・ストリングを割り当てられたナンバーであることを示し、
その割当ては、G0をコールし、適切な長さ(すなわち、上述の長さL)のラン
ダム・ビットの次のブロックを取得することによる。2Lノードのd−レギュラ
拡大グラフを用いることが好ましい。各ノードは、Lビット・ストリングにより
ラベル付けされる。グラフがd−レギュラなので、グラフをカラー{1,...,d
}によりエッジ・カラーする(edge-colored)ことができる。すべてのノードy,
1≦r≦dについて、近隣(y,r)は、カラーrのエッジを横切ることにより
到達するyの近隣(neighbor)を示すものとする。
ここで、ランダムな近隣に移動することは、マシンのワードごとのシフトおよ
び加算を必要とする。プロセスを、a,bによりラベル付けされたノードについ
て説明する。同じノードに1/2の確率で留まるか、ランダムに(a,b+2a
)または(a,b−2a)または(a,b+2a+1)または(a,b−2a+
1)または(a+2b,b)または(a+2b−1,b)または(a−2b,b
)または(a−2b+1,b)に移動するかのどちらかである。追加の時間およ
びハードウェアは最小量である:ナンバーごとの少しのシフトおよび加算;スロ
ーダウンは無視することができる。ここで、すべての追加はモジュラ(modular)
であり、モジュラは標準のマシンのハードウェアには通常実装されている。
代替的に、伸長関数gの繰り返し時間を考慮しないのであれば、グラフ・プロ
セッサをジェネレータから除去してもよい。図3は、そのような疑似ランダム・
ビット・ジェネレータ300のブロック・ダイアグラムである。疑似ランダム・
ビット・ジェネレータは、フロントエンド・ジェネレータ302、セパレータ3
04、ランダム関数プロセッサ306、および排他的論理和回路(XOR)31
0を有する。フロントエンド・ジェネレータ302は3つの入力を受け取る:第
1のシードx0、第2のシードh、およびランダム・キーm。疑似ランダム・ジ
ェネレータ300はこれらの入力を用いて、ランダム・ビット・ストリングzt
を出力する。
フロントエンド・ジェネレータ302はランダム・ビット・ストリングbiを
出力する。フロントエンド・ジェネレータ302からのビット・ストリングbi
は、セレクタ304により受け取られる。セレクタ304は受け取ったビットの
行き先を決定する。第1のLビットのブロックをランダム関数プロセッサ306
に送り、第2のLビットのブロックをXOR回路308に直接送ることが好まし
い。ランダム関数プロセッサ306の出力、およびセレクタ304からの第2の
Lビットのブロックは、排他的論理和回路310により互いに結合される。2つ
のビット・ストリングについて互いにXORをとる。結果として生じるビット・
ストリングはztである。
2.排他的論理和回路
排他的論理和回路の動作を簡単に説明する。ランダム・ビット生成プロセスG
全体は2つのサブ・プロセスを含む:(ランダム関数プロセッサ106により実行
される)P0、および(グラフ・プロセッサ108により実行される)P1 °各プ
ロセスはLビット・ナンバーのシーケンスを生成する。ストリングをさらに処理
ットに関する排他的論理和(bitwise exclusive-or)を表す。排他的論理和回路の
出力はztである。XORプロセスは、出力ストリングがプロセスP0およびP1
の望ましい特性を受け継ぐことを可能にする。このランダム・ストリングを、長
いランダム・ビット・ストリングを迅速に必要とするアプリケーションに用いる
ことができる。そのようなアプリケーションにはリアルタイム・アプリケーショ
ン、例えばビデオ・ストリームおよびTCP/IPレイヤ暗号化が含まれる。
IV.本発明を用いた暗号化
図3のCSPRビット・ジェネレータ(すなわち、グラフ・プロセッサなし)
を用いて、以下の方式で暗号化を行うことができる。
1.G0(s)=x’1,x’2,...,X’mを安全なランダム・ジェネレータと
する。gk(x)を上述の伸長関数とする。この実施形態において、これは、各
インボケーション(invocation)に対して異なるランダム隠れキー(random hidden
key)を用いた、MD5などの一方向関数のいくつかのインボケーションにすぎな
い。
2.ファイルを暗号化するために(この説明ではファイルは長さLの多くのブ
ロックにセグメント化されていると仮定する)、以下のことが実行される。L=
4Nと仮定する。以下の二者択一の2つのケースを考慮する。
a.ブロックはナンバー付けされていない。このことが好ましいケースがあ
る。例えば、各ブロックは短すぎることがある。いかなるケースにおいても、入
力ファイルFが適切な長さであると仮定して、暗号化を以下のように行う。
暗号化を行うファイルの次のブロックをFiとする。次のxiをGを用いて
b.各ブロックにはシーケンス・ナンバーiが割り当てられている。ナンバ
ーiをランダム化する関数h(i)=yiが与えられているものと仮定する。そ
して、上のケースaにおけるxiの代わりにyiが伸長される。
図1のCSPRビット・ジェネレータ(すなわち、グラフ・プロセッサ108
あり)を用いて、以下の方式で暗号化を行うことができる。
Hは、上述のランダムさの条件を満たす一方向関数を示す。
H1,H2,H3,H4は、異なるランダム・キーによりあらかじめ固定された一
方向関数を示すものとする。ここで:
for i:=1,2,...do
・x’i←G0(.)
P0:
xi:=H1(x’i)・H2(x’i)・H3(x’i)・H4(x’i)
P1:
b←G0,b∈{0,1}
if (b=0) yi:=yi−1(同じノードに留まる)
else r←G0,r∈{1,...,d},yi=近隣(yi-1,r)(ランダ
ムな近隣に移動する)V.本発明の有利な点および実装
本発明は、従来のCSPRビット・ジェネレータに対して、そして’307特
許に記載された疑似ランダム・ビット・ジェネレータに対してもいくつかの有利
な点を有する。
第1に、実用の点から見ると、MD4、MD5などの一方向関数はDESより
も約10倍速い。これらの一方向関数が非常に速いので、フロントエンド・ジェ
ネレータは、DES(または他の暗号)に基づくかなり安全な(そして遅いと推
定される)暗号化を用いることができる。これらの一方向関数は形式的センスで
はDESと同じくらい破ることが困難である。
第2に、上述のジェネレータはシーケンシャルである。ある者はそれを、ブロ
ック・ナンバーが与えられると、そのブロック・ナンバーに対応するランダム・
ストリングを計算できるというセンスにおける「ランダム・アクセス」にしたい
と望むであろう。これは、キーまたはDESを有する安全なハッシュのシードと
してブロック・ナンバーを用いることにより簡単に実現される。実装問題:ブロック暗号および安全なハッシュ関数を用いることが考えられる
。
上述の構造は、以下のことを考慮して作成される。
ハッシュ関数:
最近の攻撃でさえも、これらのハッシュ関数の一方向関数の特性を破らない。
事実、一方向ハッシュ関数のこの側面を攻撃する真剣な努力はなされていないと
いってもいいであろう。大規模なランダムさのテストにおいて、A.5で使用す
る際の関数のふるまいのランダムさにおけるいかなる顕著な矛盾も見い出されな
い。我々はいかなる形においてもそれらの衝突抵抗特性に依存せず、それらの「
一方向性」およびランダムさにのみ依存して入力を伸長する。したがって、圧縮
関数としてよりも、単射関数(injective function)としてほぼ的確にふるまう(
すなわち、取るに足らない入力の一部を除くすべてに対して)。これは、理にか
なった仮定の下で衝突問題を明らかに回避する。
暗号:
DESのような暗号のランダムさの特性は非常に強力である。
パフォーマンス問題:暗号のスピードは、処理するビット数に関し、ハッシュ
関数のスピードよりも約1オーダー小さい。
以下のことを用いて初期化の時間をスピードアップすることができる。入力バ
ッファを512ビットのランダム・ビットで満たすこととする。そして、MD5
の出力を{0,1}128に一様に分配する。したがって、h∈{0,1}128であ
る内部変数hのいかなる値に対しても、MD5(x)=hとなる512ビット・
ストリングxが存在する。
ここで説明したCSPRビット・ジェネレータは’307デバイスに匹敵する
スピードを有する。ここで与えたアルゴリズムは、従来のデバイスと比べて、相
当少ないメモリしか必要とせず、カーネル・レベルのアプリケーションにより適
している。’307特許デバイスおよび本発明の双方とも、数十メガビットの範
囲で解読を行うことができる。これは、いくつかのプラットフォームにおける普
通のDES暗号化よりも1オーダー速い。正確なスピードはプラットフォームお
よび使用する伸長関数に依存する。
VI.結論
改良された暗号的に安全な疑似ランダム・ビット・ジェネレータについて説明
した。本ジェネレータは長いビット・ストリングを高速に提供するが、従来のデ
バイスよりも使用するメモリは少ない。ビット・ストリングは、リアルタイム暗
号化アプリケーションで用いるのに十分長く、十分速く、そして十分安全である
。オーバーヘッドは、カーネル・レベル・アプリケーションで用いるのに十分な
くらい小さい。
上述の本発明の実施形態は説明のみを意図したものである。当該技術に熟達し
た者は、以下の請求の範囲の精神および範囲から離れることなく、非常に多くの
代替実施形態を考え出すことができる。
─────────────────────────────────────────────────────
フロントページの続き
(81)指定国 EP(AT,BE,CH,DE,
DK,ES,FI,FR,GB,GR,IE,IT,L
U,MC,NL,PT,SE),CA,JP
Claims (1)
- 【特許請求の範囲】 1.ランダム・ナンバーをより長いランダム・ナンバーに伸長する方法であって 、 a.前記ランダム・ナンバーを受け取るステップと、 b.前記ランダム・ナンバーに対して一方向関数を実行し、前記より長いラン ダム・ナンバーを提供するステップと を備えることを特徴とする方法。 2.請求項1に記載の方法において、前記より長いランダム・ナンバーを暗号化 のために1回のパッドとして用いるステップをさらに備えることを特徴とする方 法。 3.請求項1に記載の方法において、前記ランダム・ナンバーを受け取る前記ス テップは、暗号的に安全なランダム・ナンバーを受け取るステップをさらに備え ることを特徴とする方法。 4.請求項1に記載の方法において、前記一方向関数を実行する前記ステップは 、ランダム関数のようにふるまう暗号関数を実行するステップをさらに備えるこ とを特徴とする方法。 5.請求項1に記載の方法において、前記一方向関数を実行する前記ステップは 、 a.前記ランダム・ナンバーに対して複数の一方向関数を実行し、複数のより 長いランダム・ナンバーを生成するステップと、 b.前記より長いランダム・ナンバーを連結するステップと をさらに備えることを特徴とする方法。 6.請求項5に記載の方法において、前記複数の一方向関数は、疑似ランダム方 式により選択されることを特徴とする方法。 7.請求項1に記載の方法において、前記一方向関数を実行する前記ステップは 、 a.異なるキーを用いて前記ランダム・ナンバーに対して安全なハッシュ関数 を実行し、複数のより長いランダム・ナンバーを生成するステップと、 b.前記より長いランダム・ナンバーを連結するステップと をさらに備えることを特徴とする方法。 8.請求項1に記載の方法において、前記ランダム・ナンバーは第1のランダム ・ナンバーであり、前記より長いランダム・ナンバーは第1のより長いランダム ・ナンバーであり、前記方法は、 a.第2のランダム・ナンバーを受け取るステップと、 b.前記第2のランダム・ナンバーに対して拡大グラフ関数を実行し、第2の より長いランダム・ナンバーを生成するステップと、 c.前記第1および第2のより長いランダム・ナンバーを結合するステップと をさらに備えることを特徴とする方法。 9.請求項8に記載の方法において、前記結合するステップは、前記第1および 第2のより長いランダム・ナンバーに対して排他的論理和関数を実行するステッ プを備えることを特徴とする方法。 10.暗号的に安全なランダム・ナンバーを高速に生成する方法であって、 a.安全なランダム・ビット・ストリングを生成するステップと、 b.前記安全なランダム・ビット・ストリングに対して一方向関数を実行し、 より長いランダム・ビット・ストリングを生成するステップと、 c.前記より長いランダム・ビット・ストリングに別のビット・ストリングを 結合するステップと を備えることを特徴とする方法。 11.請求項10に記載の方法において、前記一方向関数を実行するステップは 、 a.前記安全なランダム・ビット・ストリングに対して複数の一方向関数を実 行し、複数のより長いランダム・ビット・ストリングを生成するステップと、 b.前記より長いランダム・ビット・ストリングを連結するステップと を備えることを特徴とする方法。 12.請求項11に記載の方法において、前記複数の一方向関数は、疑似ランダ ム方式により選択されることを特徴とする方法。 13.請求項10に記載の方法において、前記一方向関数を実行する前記ステッ プは、 a.異なるキーを用いて前記安全なランダム・ビット・ストリングに対して安 全なハッシュ関数を実行し、複数のより長いランダム・ビット・ストリングを生 成するステップと、 b.前記より長いランダム・ビット・ストリングを連結するステップと をさらに備えることを特徴とする方法。 14.請求項10に記載の方法において、前記結合するステップは、 a.第2の安全なランダム・ビット・ストリングを受け取るステップと、 b.前記第2の安全なランダム・ビット・ストリングに対して拡大グラフ関数 を実行し、第2のより長いランダム・ビット・ストリングを生成するステップと 、 c.前記第1および第2のより長いランダム・ビット・ストリングを結合する ステップと をさらに備えることを特徴とする方法。 15.請求項14に記載の方法において、前記結合するステップは、前記第1お よび第2のより長いランダム・ナンバーに対して排他的論理和関数を実行するス テップを備えることを特徴とする方法。 16.暗号的に安全な疑似ランダム(CSPR)ビット・ジェネレータであって 、 a.安全なランダム・ビット・ストリングを出力するように構成されたフロン トエンド・ジェネレータと、 b.ランダム関数プロセッサであって、 (1)前記安全なランダム・ビット・ストリングの一部を少なくとも受け取 り、 (2)前記安全なランダム・ビット・ストリングの前記受け取った部分に対 して一方向関数を実行し、 (3)前記安全なランダム・ビット・ストリングの前記受け取った部分より 長いランダム・ビット・ストリングを出力する ように構成されたランダム関数プロセッサと を備えたことを特徴とするCSPRビット・ジェネレータ。 17.請求項16に記載のCSPRビット・ジェネレータにおいて、前記ランダ ム関数プロセッサはさらに、 a.前記ビット・ストリングの前記受け取った部分に対して複数の一方向関数 を実行し、複数のより長いランダム・ビット・ストリングを生成し、 b.前記より長いランダム・ビット・ストリングを連結する ように構成されたことを特徴とするCSPRビット・ジェネレータ。 18.請求項17に記載のCSPRビット・ジェネレータにおいて、前記複数の 一方向関数は、疑似ランダム方式により選択されることを特徴とするCSPRビ ット・ジェネレータ。 19.請求項16に記載のCSPRビット・ジェネレータにおいて、前記ランダ ム関数プロセッサはさらに、 a.異なるキーを用いて前記ランダム・ビット・ストリングに対して安全なハ ッシュ関数を実行し、複数のより長いランダム・ビット・ストリングを生成し、 b.前記より長いランダム・ビット・ストリングを連結する ように構成されたことを特徴とするCSPRビット・ジェネレータ。 20.請求項16に記載のCSPRビット・ジェネレータにおいて、 a.前記フロントエンド・ジェネレータから前記安全なビット・ストリングの 第2の一部を少なくとも受け取り、拡大されたビット・ストリングを出力するよ うに構成され、前記第2の一部は前記ランダム関数プロセッサにより受け取られ る前記部分とは異なるグラフ・プロセッサと、 b.排他的論理和回路であって、 (1)前記より長いランダム・ビット・ストリングおよび前記拡大されたビ ット・ストリングを受け取り、 (2)排他的論理和プロセスを実行することにより前記受け取ったビット・ ストリングを結合する ように構成された排他的論理和回路と をさらに備えたことを特徴とするCSPRビット・ジェネレータ。
Applications Claiming Priority (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US2396096P | 1996-08-16 | 1996-08-16 | |
| US60/023,960 | 1996-08-16 | ||
| US3522097P | 1997-01-08 | 1997-01-08 | |
| US60/035,220 | 1997-01-08 | ||
| PCT/US1997/014574 WO1998007251A1 (en) | 1996-08-16 | 1997-08-15 | Improved cryptographically secure pseudo-random bit generator for fast and secure encryption |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2000502822A true JP2000502822A (ja) | 2000-03-07 |
Family
ID=26697852
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP10510104A Pending JP2000502822A (ja) | 1996-08-16 | 1997-08-15 | 高速で安全な暗号化のための改良された暗号的に安全な疑似ランダム・ビット・ジェネレータ |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US6104811A (ja) |
| EP (1) | EP0906678A1 (ja) |
| JP (1) | JP2000502822A (ja) |
| CA (1) | CA2262551C (ja) |
| WO (1) | WO1998007251A1 (ja) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2006022058A1 (ja) * | 2004-08-26 | 2006-03-02 | Nec Corporation | 暗号文生成装置、平文復元装置 |
| WO2006112114A1 (ja) * | 2005-03-31 | 2006-10-26 | Matsushita Electric Industrial Co., Ltd. | データ暗号化装置及びデータ暗号化方法 |
| WO2008053650A1 (fr) * | 2006-10-30 | 2008-05-08 | Nec Corporation | Dispositif de cryptage par blocs d'une clé commune, procédé, programme et support d'enregistrement |
| US8577032B2 (en) | 2007-08-06 | 2013-11-05 | Nec Corporation | Common key block encryption device, common key block encryption method, and program |
| JP2016535310A (ja) * | 2013-08-30 | 2016-11-10 | クアルコム,インコーポレイテッド | 素数の生成および記憶のための方法および装置 |
Families Citing this family (34)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE19914407A1 (de) * | 1999-03-30 | 2000-10-05 | Deutsche Telekom Ag | Verfahren zur Ableitung von Identifikationsnummern |
| US6643374B1 (en) | 1999-03-31 | 2003-11-04 | Intel Corporation | Duty cycle corrector for a random number generator |
| US6795837B1 (en) | 1999-03-31 | 2004-09-21 | Intel Corporation | Programmable random bit source |
| FR2794592B1 (fr) * | 1999-06-04 | 2001-08-24 | France Telecom | Generateur de bits pour l'etablissement d'une clef secrete de cryptage et procede correspondant |
| SG101428A1 (en) * | 1999-09-01 | 2004-01-30 | Ibm | Random number generator |
| ATE368981T1 (de) * | 2000-03-29 | 2007-08-15 | Vadium Technology Inc | Einmalige pad-verschlüsselung mit zentralschlüsseldienst und schlüsselfähigen zeichen |
| US6687721B1 (en) | 2000-03-31 | 2004-02-03 | Intel Corporation | Random number generator with entropy accumulation |
| US6792438B1 (en) | 2000-03-31 | 2004-09-14 | Intel Corporation | Secure hardware random number generator |
| US7350083B2 (en) * | 2000-12-29 | 2008-03-25 | Intel Corporation | Integrated circuit chip having firmware and hardware security primitive device(s) |
| US6675113B2 (en) * | 2002-03-26 | 2004-01-06 | Koninklijke Philips Electronics N.V. | Monobit-run frequency on-line randomness test |
| US7190791B2 (en) * | 2002-11-20 | 2007-03-13 | Stephen Laurence Boren | Method of encryption using multi-key process to create a variable-length key |
| US7227955B2 (en) * | 2003-02-07 | 2007-06-05 | Magiq Technologies, Inc. | Single-photon watch dog detector for folded quantum key distribution system |
| US8000475B1 (en) * | 2003-04-28 | 2011-08-16 | Bigband Networks Inc. | System and method for encrypting and modulating video streams |
| US7177888B2 (en) * | 2003-08-01 | 2007-02-13 | Intel Corporation | Programmable random bit source |
| US7698557B2 (en) * | 2003-12-22 | 2010-04-13 | Guardtime As | System and method for generating a digital certificate |
| CN100390697C (zh) * | 2004-01-14 | 2008-05-28 | 凌阳科技股份有限公司 | 以检查比特对处理器指令进行加密保护的装置及方法 |
| CN100353274C (zh) * | 2004-01-14 | 2007-12-05 | 凌阳科技股份有限公司 | 以保护位元码对—程序进行加密保护的装置 |
| US7770014B2 (en) * | 2004-04-30 | 2010-08-03 | Microsoft Corporation | Randomized signal transforms and their applications |
| CA2483760A1 (en) * | 2004-10-25 | 2006-04-25 | Thomas E. Chalker | System and method for a secure, scalable wide area file system |
| US20080253561A1 (en) * | 2004-12-17 | 2008-10-16 | Nec Corporation | Common-Key Block Encryption Device Common-Key Block Encryption Method, and Common-Key Block Encryption Program |
| WO2007026287A1 (en) * | 2005-08-30 | 2007-03-08 | Koninklijke Philips Electronics N.V. | Method and device for generating random number generator seeds |
| US8250363B2 (en) * | 2005-09-29 | 2012-08-21 | Hewlett-Packard Development Company, L.P. | Method of provisioning devices with one-time pad data, device for use in such method, and service usage tracking based on one-time pad data |
| US7382876B2 (en) * | 2005-11-01 | 2008-06-03 | Microsoft Corporation | Hash function constructions from expander graphs |
| US8438381B2 (en) | 2007-03-16 | 2013-05-07 | Telefonaktiebolaget Lm Ericsson (Publ) | Securing IP traffic |
| US8489659B2 (en) * | 2007-10-19 | 2013-07-16 | Schneider Electric USA, Inc. | Pseudorandom number generation |
| US8824677B1 (en) * | 2009-05-29 | 2014-09-02 | Symantec Corporation | Provably secure and efficient pseudorandom number generation |
| KR101104985B1 (ko) * | 2009-11-06 | 2012-01-16 | 양창근 | 난수 생성 방법 및 시스템 |
| US9778912B2 (en) * | 2011-05-27 | 2017-10-03 | Cassy Holdings Llc | Stochastic processing of an information stream by a processing architecture generated by operation of non-deterministic data used to select data processing modules |
| US8805795B2 (en) * | 2011-06-20 | 2014-08-12 | Bank Of America Corporation | Identifying duplicate messages in a database |
| US8572134B2 (en) | 2011-06-20 | 2013-10-29 | Bank Of America Corporation | Transforming and storing messages in a database |
| FR3092923B1 (fr) * | 2019-02-19 | 2021-05-21 | Sangle Ferriere Bruno | Méthode cryptographique de vérification des données |
| US11956367B2 (en) * | 2019-02-19 | 2024-04-09 | Bruno SANGLE-FERRIERE | Cryptographic method for verifying data |
| US12301549B2 (en) * | 2019-02-19 | 2025-05-13 | Bruno SANGLE-FERRIERE | Cryptographic method for verifying data |
| FR3140457B1 (fr) | 2022-10-04 | 2024-08-30 | Marbeuf Conseil Et Rech | Méthode d’amélioration de hachage d’un fichier |
Family Cites Families (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4944009A (en) * | 1988-02-25 | 1990-07-24 | Massachusetts Institute Of Technology | Pseudo-random sequence generator |
| US5148485A (en) * | 1990-07-20 | 1992-09-15 | Ericsson Ge Mobile Communications Holding, Inc. | Encrypton system for digital cellular communications |
| US5251165A (en) * | 1992-04-09 | 1993-10-05 | James Iii J Colin | Two phase random number generator |
| US5420928A (en) * | 1994-01-25 | 1995-05-30 | Bell Communications Research, Inc. | Pseudo-random generator |
| US5515307A (en) * | 1994-08-04 | 1996-05-07 | Bell Communications Research, Inc. | Pseudo-random generator |
| US5598154A (en) * | 1994-12-02 | 1997-01-28 | Unisys Corporation | Apparatus and method for generating and utilizing pseudonoise code sequences |
| US5541996A (en) * | 1994-12-12 | 1996-07-30 | Itt Corporation | Apparatus and method for a pseudo-random number generator for high precision numbers |
| US5727063A (en) * | 1995-11-27 | 1998-03-10 | Bell Communications Research, Inc. | Pseudo-random generator |
| US5892829A (en) * | 1997-01-08 | 1999-04-06 | Bell Communications Research, Inc. | Method and apparatus for generating secure hash functions |
-
1997
- 1997-08-15 US US08/911,690 patent/US6104811A/en not_active Expired - Fee Related
- 1997-08-15 WO PCT/US1997/014574 patent/WO1998007251A1/en not_active Ceased
- 1997-08-15 JP JP10510104A patent/JP2000502822A/ja active Pending
- 1997-08-15 EP EP97942381A patent/EP0906678A1/en not_active Withdrawn
- 1997-08-15 CA CA002262551A patent/CA2262551C/en not_active Expired - Fee Related
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2006022058A1 (ja) * | 2004-08-26 | 2006-03-02 | Nec Corporation | 暗号文生成装置、平文復元装置 |
| WO2006112114A1 (ja) * | 2005-03-31 | 2006-10-26 | Matsushita Electric Industrial Co., Ltd. | データ暗号化装置及びデータ暗号化方法 |
| JP4823904B2 (ja) * | 2005-03-31 | 2011-11-24 | パナソニック株式会社 | データ暗号化装置及びデータ暗号化方法 |
| US8094811B2 (en) | 2005-03-31 | 2012-01-10 | Panasonic Corporation | Data encryption device and data encryption method |
| WO2008053650A1 (fr) * | 2006-10-30 | 2008-05-08 | Nec Corporation | Dispositif de cryptage par blocs d'une clé commune, procédé, programme et support d'enregistrement |
| JP5141558B2 (ja) * | 2006-10-30 | 2013-02-13 | 日本電気株式会社 | 共通鍵ブロック暗号化装置、その方法、そのプログラム、及び記録媒体 |
| US8577032B2 (en) | 2007-08-06 | 2013-11-05 | Nec Corporation | Common key block encryption device, common key block encryption method, and program |
| JP5402632B2 (ja) * | 2007-08-06 | 2014-01-29 | 日本電気株式会社 | 共通鍵ブロック暗号化装置、共通鍵ブロック暗号化方法及びプログラム |
| JP2016535310A (ja) * | 2013-08-30 | 2016-11-10 | クアルコム,インコーポレイテッド | 素数の生成および記憶のための方法および装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| CA2262551A1 (en) | 1998-02-19 |
| CA2262551C (en) | 2002-09-17 |
| WO1998007251A1 (en) | 1998-02-19 |
| EP0906678A1 (en) | 1999-04-07 |
| US6104811A (en) | 2000-08-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2000502822A (ja) | 高速で安全な暗号化のための改良された暗号的に安全な疑似ランダム・ビット・ジェネレータ | |
| Bernstein | The Salsa20 family of stream ciphers | |
| US5892829A (en) | Method and apparatus for generating secure hash functions | |
| Wu | A new stream cipher HC-256 | |
| AU2005200388B2 (en) | Stream cipher design with revolving buffers | |
| US12328384B2 (en) | Scrambler apparatus and method in particular for cryptographic applications, and descrambler apparatus and method therefor | |
| Hammood et al. | Enhancing security and speed of RC4 | |
| Paul et al. | Quad-RC4: merging four RC4 states towards a 32-bit stream cipher | |
| Zagi et al. | A novel serpent algorithm improvement by the key schedule increase security | |
| Tsunoo et al. | The most efficient distinguishing attack on VMPC and RC4A | |
| Joux et al. | A chosen iv attack against turing | |
| Cook et al. | Elastic block ciphers: the basic design | |
| JP3358954B2 (ja) | 擬似ランダムビット列生成器及びそれを使用する暗号通信方法 | |
| ALMashrafi et al. | Analysis of indirect message injection for mac generation using stream ciphers | |
| Jawad et al. | Enhancement A5/1 stream cipher algorithm as lightweight generator | |
| Rose et al. | The t-class of SOBER stream ciphers | |
| Hashem et al. | A proposed modification on RC4 algorithm by increasing its randomness | |
| Kherad et al. | A new symmetric cryptography algorithm to secure e-commerce transactions | |
| Henricksen | Tiny Dragon-an encryption algorithm for wireless sensor networks | |
| Fauzan et al. | SARX-128: A Lightweight Sponge-Based Stream Cipher with Speck Block Cipher | |
| Lin et al. | Guess and determine attack on sosemanuk | |
| Kakarla et al. | Variable length packet cipher using catalan sequence | |
| Naik et al. | Comparison of Different Encryption Algorithm and Proposing an Encryption Algorithm | |
| Henricksen et al. | Rekeying issues in the MUGI stream cipher | |
| Saeb | The Chameleon Cipher-192 (CC-192)-A Polymorphic Cipher. |