JPH09501811A - 擬似ランダム・ジェネレータ - Google Patents
擬似ランダム・ジェネレータInfo
- Publication number
- JPH09501811A JPH09501811A JP7519642A JP51964295A JPH09501811A JP H09501811 A JPH09501811 A JP H09501811A JP 7519642 A JP7519642 A JP 7519642A JP 51964295 A JP51964295 A JP 51964295A JP H09501811 A JPH09501811 A JP H09501811A
- Authority
- JP
- Japan
- Prior art keywords
- encoder
- input
- output
- block
- seed
- 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
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/125—Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
- Investigating Or Analysing Materials By The Use Of Chemical Reactions (AREA)
Abstract
(57)【要約】
暗号に強い擬似ランダム・ビット・ストリームを生成する方法とそれに付随する回路は、安全なブロック暗号エンコーダを利用する。典型的には、各ブロック暗号エンコーダは第1のシードとランダム・キーを入力として有している。最も基本的な方法と回路の実現においては、各エンコーダの出力は、フィード・バックして自分の入力に結合している。第1のシードは初期の入力として用いられる。各引き続く入力は直前の出力である。暗号に強い擬似ランダム・ビット・ストリーム中の各ビットは、エンコーダへの各入力と第2のシードとの内積に関連している。
Description
【発明の詳細な説明】
擬似ランダム・ジェネレータ
発明の分野
本発明は、一般的には擬似ランダム・ビット・ジェネレータ(pseudo-random b
it generator)に関し、特に、暗号的に強い擬似ランダム・ビット(cryptographi
cally strong pseudo-random bits) 生成するための回路と付随する方法に関す
る。
発明の背景
相当多数の重要なプロセスおよび方法が、真のランダム(乱数:random)であ
るとされている補助入力を使用している。そのようなプロセスや方法の例は、ソ
ート、シミュレーションと複雑なシステムのテスト、暗号化、および多数の他の
暗号のプリミティブが含まれている。十分な長さの真のランダムの補助入力を生
成することは難しい。典型的には、補助入力は、擬似ランダム・ビット・ジェネ
レータにより作成されている。正式な言い方ではないが、擬似ランダム・ビット
・ジェネレータは、短い真のランダム列(string)を取り入れ、長い「擬似ランダ
ム(pseudo-random) 」列を作成するプロセスまたは方法である。
多数の擬似ランダム・ビット・ジェネレータ、たとえば、よく用いられている
線形合同(linear congruential) ビット・ジェネレータ等が、従来技術の文献で
提案され、議論されている。これらのビット・ジェネレータの利用性を評価する
とき、通常のアプローチは、各ビット・ジェネレータを標準の経験的および分析
的な統計によるテストのもとに置き、ジェネレータが許容できるランダム・ビッ
トを作成しているかを決定する。標準のテストに合格したこれらのジェネレータ
は、しばしば、使用されるさまざまな目的に対して十分によい擬似ランダム・ビ
ット・ストリームを作成するとみなされる。
しかしながら、この仮定は誤りであることがある。たとえば、線形合同ビット
・ジェネレータは、汎用であるとは言えないことが示されている。それは、この
出力を短い期間観察すると、将来の出力を正確に計算することができるからであ
る。次のジェネレータのビットを予測する方法が示されている:所定の多項式、
その多項式で定義される代数的な数の連続する出力桁。他の例では、よく知られ
た物理系のモンテカルロ・シミュレーションにおいて、シミュレーションの入力
にいくつかのよく知られたジェネレータを使用したとき、既知の値とかけ離れた
結果が得られることが、最近示されている。
一方、ある伝統的なジェネレータは、汎用ではないかもしれないが、ある目的
に対しては十分であることがある。たとえば、いくつかのサンプル・ビット・ジ
ェネレータ(線形合同を含む)、厳密な意味で、いくつかの特定の応用に対して
十分である。簡単にいうと、伝統的なジェネレータで十分であると知られている
例があり、これらでは不十分であると知られている例があるということである。
他のすべての場合は、保証はない。その上、複雑な方法やプロセスに対して、伝
統的なジェネレータは、十分なランダム出力を作成すると証明されているとは限
らない。
最近になって、擬似ランダム・ビットの生成に対する異なるアプローチが、「
一方向性(one-way)」関数(function)の理論を基礎として、開発された。ここに
おける議論としては、一方向性関数は、簡単に計算できるが、その範囲の圧倒的
なフラクション(fraction)のため、逆算することが難しい関数のことである。こ
の概念に留意して、「暗号に強い擬似ランダム(cryptographically strong pse
udo-randam:CSPR)・ビット・ジェネレータ」は、短い、真にランダムなシ
ード(seed:種)を入力として取り、そして、一方向性関数を繰り返し使用して
、長い擬似ランダム・ビット列を作成する。その結果、CSPRビット・ジェネ
レータの出力と真にランダムなビット列との間で、区別することのできる実行可
能な技術やプロシジャ(procedure)はない。また、CSPRビット・ジェネレー
タは、一方向性関数を逆算するに必要な時間に比べて短い時間の実行時間におけ
る、すべての統計学的なテストをパスすることが知られている。特に、真にラン
ダムなビットではなくCSPRビットをテストや他の応用に使用しても、
その実行時間が一方向性関数を逆算する時間に関して小さい環境においては、結
果において、はっきり示せる違いは生じない。
上記のCSPRビット・ジェネレータの直接的な多数の応用に加えて、これら
のビット・ジェネレータは、暗号に強い擬似ランダム関数(CSPR関数)を計
算するのに使用される。これらの関数は、2つのパラメータ、すなわち、関数イ
ンデックスおよび関数入力をとる。ランダムに選ばれた固定インデックスに対し
て、インデックスの知識がない相手方は、関数入力を選ぶことができず、そのた
め、実現可能な時間内に結果をもたらした関数値の1ビットも予測できない。相
手方が、自分の選んだ多数の関数入力に対応した関数値をすでに見ていたとして
も、このことは真である。
CSPR関数はいくつかの応用を有している。2つの重要な応用を次に示す。
第1は、それらは、AとBとが秘密キーを共有している場合に、機密保持されて
いないチャネルを介して、A側をB側に識別する単純なプロトコルに使用されて
いる。共有キーはCSPR関数インデックスとして使用する。Bは、Aであると
主張しているチャネルの相手側に、ランダム関数入力で質問する。Aのみが正し
い関数値で応答する。
第2に、CSPR関数は、並列または分散して計算する場合に、独立したラン
ダム・ビットを各プロセスに分配するのに使用される。単一のシードが各プロセ
スに同報(broadcast)される。この共有シードはCSPR関数インデックスとし
て使用される。自分のプロセス識別番号を関数入力として使用し、各プロセスは
、そのランダム・シードとしてCSPR関数値を計算する。各プロセスは、この
シードとCSPRビット・ジェネレータを使用して、CSPRビットを自分自身
で使用するために計算する。
発明の概要
暗号に強い擬似ランダム・ビット・ジェネレータと関数が、回路と付随する方
法で実現されており、それは、安全なブロック暗号エンコーダ(block cypher en
coder)を利用して、暗号に強い擬似ランダム・ビット・ジェネレータを実現し
ている。
広くは、本発明の直列演算の様態の一つによれば、暗号に強い擬似ランダム・
ビットのストリームは、同じ長さの第1と第2のシード、および、固定のランダ
ム・エンコーダ・キーを有するブロック暗号エンコーダから生成される。第1の
シードは、ブロック暗号エンコーダへの最初の入力として使用される。ブロック
暗号エンコーダへの引き続く各入力は、ブロック暗号エンコーダの最新の出力と
して供給される。暗号に強い擬似ランダム・ビットのストリーム中の各ビットは
、ブロック暗号エンコーダへの入力と第2のシードとの間の内積(inner product
)に対応して決定される。
本発明の直列演算の他の様態によれば、暗号に強い擬似ランダム・ビットのス
トリームは、すべて同じ長さの第1のシードとS個の複数の第2のシード、およ
び、固定のランダム・エンコーダ・キーを有するブロック暗号エンコーダから生
成される。第1のシードは、ブロック暗号エンコーダの最初の入力として使用さ
れる。ブロック暗号エンコーダへの引き続く各入力は、ブロック暗号エンコーダ
の最新の出力として供給される。暗号に強い擬似ランダム・ビットのストリーム
中のS個の連続するビットは、ブロック暗号エンコーダへの入力とS個の第2の
シードとの間のS個の別個の内積に対応して決定される。
本発明の並列演算の様態によれば、Nずつのグループの暗号に強い擬似ランダ
ム・ビットのストリームは、各々が異なる固定のランダム・キーを有するN個の
ブロック暗号・エンコーダ、および、すべて同じ長さである、N個の第1のシー
ドとN個の第2のシードから生成される。各第1のシードは、対応するブロック
暗号エンコーダの一つの入力として使用される。各ブロック暗号エンコーダへの
引き続く各入力は、ブロック暗号エンコーダの最新の出力として供給される。暗
号に強い擬似ランダム・ビットのストリーム中の各グループの出力ビットは、各
エンコーダへの入力と対応する第2のシードとの間の内積に対応して決定される
。
本発明の並列演算の他の様態によれば、NSずつのグループの暗号に強い擬似
ランダム・ビットのストリームは、各々が異なる固定のランダム・キーを有する
N個のブロック暗号・エンコーダ、および、すべて同じ長さである、N個の第1
のシードとNS個の第2のシードから生成される。各第1のシードは、ブロック
暗号エンコーダの一つの入力として使用される。ブロック暗号エンコーダへの引
き続く各入力は、ブロック暗号エンコーダの最新の出力として供給される。暗号
に強い擬似ランダム・ビットのストリーム中の各グループの出力ビットは、各エ
ンコーダへの入力とS個の第2のシードとの間のS個の内積に対応して決定され
る。
本発明の直列演算のまた別の様態によれば、暗号に強い擬似ランダム・ビット
のストリームは、各々が異なる固定のランダム・エンコーダ・キーを有する2つ
のブロック暗号エンコーダ、および、同じ長さの第1と第2のシードから生成さ
れる。2つのブロック暗号エンコーダは、第1のエンコーダの出力が第2のエン
コーダの入力として利用できるように接続されている。その上、一旦第1のシー
ドが第1のエンコーダで処理されると、第2のエンコーダの出力が第1のエンコ
ーダの次の入力となる。暗号に強い擬似ランダム・ビットのストリームは、第1
のエンコーダへの連続する入力と第2のシードとの間の内積に対応して決定され
る。
本発明の直列演算のなおまた別の様態によれば、暗号に強い擬似ランダム・ビ
ットのストリームは、各々が異なる固定のランダム・エンコーダ・キーを有する
2つのブロック暗号エンコーダ、および、すべて同じ長さである第1のシードと
S個の第2のシードから決定される。2つのブロック暗号エンコーダは、第1の
エンコーダの出力が第2のエンコーダの入力として利用できるように接続されて
いる。その上、一旦第1のシードが第1のエンコーダで処理されると、第2のエ
ンコーダの出力が第1のエンコーダの次の入力となる。暗号に強い擬似ランダム
・ビットのストリームは、第1のエンコーダへの連続する入力とS個の第2のシ
ードとの間のS個の内積に対応して決定される。
本発明の結合した直列並列演算の様態によれば、Nずつの集合(セット)の暗
号に強い擬似ランダム・ビットのストリームは、各々が異なる固定のランダム・
エンコーダ・キーを有するNずつのグループの2ブロック暗号エンコーダ、およ
び、すべて同じ長さである、N個の第1のシードとN個の第2のシードから生成
される。各2ブロック暗号エンコーダは、第1のエンコーダの出力が第2のエン
コーダの入力として利用できるように接続されている。その上、一旦N個の第1
シードからの対応する第1のシードが第1のエンコーダで処理されると、第2の
エンコーダの出力が第1のエンコーダの次の入力となる。暗号に強い擬似ランダ
ム・ビットのストリームの各集合中の出力ビットは、各2ブロック暗号エンコー
ダの第1エンコーダへの連続する入力とN個の第2のシードからの対応する第2
のシードとの間のN個の内積に対応して決定される。
本発明の結合した直列並列演算の他の様態によれば、NSずつの集合の暗号に
強い擬似ランダム・ビットのストリームは、各々が異なる固定のランダム・エン
コーダ・キーを有するNずつのグループの2ブロック暗号エンコーダ、および、
すべて同じ長さであるN個の第1のシードとNS個の第2のシードから生成され
る。各2ブロック暗号エンコーダは、第1のエンコーダの出力が第2のエンコー
ダの入力として利用できるように接続されている。その上、一旦N個の第1のシ
ードからの対応する第1のシードが第1のエンコーダで処理されると、第2のエ
ンコーダの出力が第1のエンコーダの次の入力となる。暗号に強い擬似ランダム
・ビットのストリームの各集合中の出力ビットは、第1のエンコーダへの連続す
る入力とNグループの2ブロック・エンコーダの各々に対応するS個の第2のシ
ードとの間のNS個の内積に対応して決定される。
本発明の擬似ランダム関数の様態によれば、暗号に強い擬似ランダム関数値は
関数インデックスおよび関数入力により計算される。関数インデックスは長さn
の第1と第2のシードおよびブロック暗号エンコーダ(blcok cypher encoder)に
対するキーを含んでいる。関数入力は、長さmの列(ストリング)である。ビッ
ト・ポインタは、関数入力の最下位ビットを指すように初期化される。各ブロッ
ク暗号化器(block cypher)は、その出力を入力にフィードバックするように構成
されている。現在のブロック暗号化器の入力は、初期には第1のシードの値とな
るように割り当てられている。長さ2nの出力ストリームは、ブロック暗号エン
コーダの2nの連続する入力と第2のシードとの2nの内積に対応して生成され
る。ビット・ポインタが最上位ビットを指していない場合、2つのステップの1
つが完了される。すなわち、(1)ビット・ポインタで指されている関数入力中
の入力ビットが第1のビット値である場合、出力ストリームの最初のnビットが
現在の暗号入力となる; または、(2)ビット・ポインタで指されている関数
入力中のビットが第2のビット値である場合、出力ストリームの最後のnビット
が現在の暗号入力となる。どちらの場合も、ビット・ポインタはインクレメント
され、長さ2nの別の出力ストリームが現在のブロック暗号入力を使用して計算
される。ビット・ポインタが最上位ビットを指している場合、関数値は、関数入
力の最上位ビットが第1のビット値であるときは前の出力ストリームの最初のn
ビットとなるように決定され、または、関数入力の最上位ビットが第2のビット
値であるときは最後のnビットとなるように決定される。
本発明の工夫した様態の特徴は、CSPR関数は、前述した概要に示したCS
PRビット・ジェネレータのどれにでも基づくことができる。
本発明の構造と動作は、添付した図面とともに、例示した実施例の詳細な説明
の考察から理解される。
図面の簡単な説明
図1は、本発明による直列の暗号に強いランダム・ビット・ジェネレータの例
を示すブロック図である。
図2は、本発明による直列の暗号に強いランダム・ビット・ジェネレータの他
の例を示すブロック図である。
図3は、本発明による並列の暗号に強いランダム・ビット・ジェネレータの例
を示すブロック図である。
図4は、本発明による直列の安全な暗号に強いランダム・ビット・ジェネレー
タの他の例を示すブロック図である。
詳細な説明
本発明を説明するために役に立つターム(単語)と表現を紹介するために、概
観の議論からまず提示する。この概観に続き、本発明の例示的な実施例を説明す
る。
概観
長さMの入力に対する「実行可能な(feasible)」計算は、Cがある固定した定
数であるとき、M、M2、またはMCに比例した時間がかかる。「実行不可能な(i
nfeasible)」計算は、実行できない計算である。関数Fは、計算するのに実行可
能であるが、その範囲内のランダムな要素に対して逆に計算することは実行不可
能である場合に、「一方向性(one-way) 」である。ある関数は、一方向性であり
、しかも長さが保存され1対1対応である、すなわち、F(x)=yとすると、
xとyの長さが等しいとともに、すべてのyに対して厳密に1つのxが存在する
場合に、一方向性「置換(permutation) 」である。今後、Fは一方向性置換を示
している。
バイナリ列(binary string) の2つの分布μ1、μ2は、どんな実行可能な計算
によっても、μ1またはμ2のもとで生成された所与の列が確率1/2+ε(n)
(ε(n)は無視できる、すなわち、ε(n)=1/T(n):T(n)実行で
きない計算の実行時間)で推測される場合、「区別することができない(indisti
nguishable) 」とする。「暗号に強い擬似ランダム分布(cryptographically str
ong pseudo-randam distribution) 」は一様な分布と区別することができない。
暗号に強い擬似ランダムビット・ジェネレータGは、長さXのランダム・シー
ドxを受入れ、および長さY=XO(1)のより長いビット列yを出力し、しかも、
出力の分布は擬似ランダムである。これは、yの一つのビットも、yの他のビッ
トを見ることにより、予測することができないことを意味する。
従来の技術で開示されている最新の実現方法は、暗号に強い擬似ランダム・ビ
ット・ジェネレータを一方向性関数を利用して構成しているが、本発明の主題は
、ブロック暗号エンコーダを基礎としている。このようなエンコーダは、データ
暗号化規格(Data Encryption Standard:DES)により実現している。DES
は、FIPS pub46、1977年1月にthe National Bureau of Standar
ds,Department of Commerceから出版された。DESは、十分に早いインプリメ
ンテーションを有しており、商業的に入手可能である。たとえば、装置
タイプのVM009は、アリゾナ州TempleのVLI Technology Inc.から入手可能
であり、DESをインプリメントしている。ブロック暗号エンコーダは、入力と
してランダム・キーkおよびサイズXの入力列xをとり、サイズXの出力列を作
成する。固定キーkに対するブロック暗号エンコーダの出力yは、F(k,x)
と表現され、置換(permutation) である。さらに、本発明は、従来技術の実現方
法と比較して、入力シードのより効果的な使用を可能にしている。
例示的な実施例
概観で言及したように、本発明のジェネレータは、「ブロック暗号」エンコー
ダを基礎とすることにより実施されている。ブロック暗号エンコーダが、暗号に
強い擬似ランダム・ビット・ジェネレータを構成する基礎的構成要素として用い
られている一つの様態は、図1を参照して説明される。図1では、直列のブロッ
ク暗号エンコーダは、エレメント150で示されている。ブロック暗号化器15
0により行われる置換は、Fと示されている。ランダム・キー・ジェネレータ1
40から供給される、固定されたランダム・キーkは、バス141を介してブロ
ック暗号エンコーダ150の1つの入力とし使用される。ブロック暗号エンコー
ダの他の入力は、入力レジスタ130からバス131を介して供給され、この入
力は、出力バス131上にxiと表されているビットの集合(セット)として供
給されているのが示されている。入力レジスタ130は2つの入力、すなわち、
バス111上から第1シード・ジェネレータ110が供給している第1のシード
xoと、フィードバック・バス151により供給される、xi+1と表されているブ
ロック・エンコーダ150の出力とを有している。入力レジスタ130は、xiが
最初に値xoと割り当てられ、その一方、引き続くすべてのxiの値は、最新のxi
の値を更新された値xi+1で上書きすることで供給されるように動作する。エン
コーダ150への入力xiは、内積デバイス160への1つの入力としても、こ
れもバス131を介して使用される。その上、内積デバイス160は、バス12
1を介して、第2シード・ジェネレータ120により供給される第2のシードh
を、一つの入力として有している。一般的に、第1と第2の
シードの長さは等しい。ランダム・キーの長さは、第1と第2のシードと同じ長
さである必要はない。ランダム・キーの長さは、通常、ブロック暗号化器がどの
ように作動するかによる。内積デバイス160は、<xi,h>=biと表される
内積を、次のように決定する: (a)xiとhとのビット同士のアンドを計算
する; および、(b)上記のビット同士のアンドからすべてのビットのパリテ
ィを内積の結果として出力する。すなわち、1のビットの数が偶数ある場合は0
を出力し、1のビットの数が奇数ある場合は1を出力する。各biビットは連続
して出力リード線161に供給される。
ブロック暗号エンコーダが、暗号に強い擬似ランダム・ビット・ジェネレータ
を構成する基礎的構成要素として用いられている他の実施例は、図2を参照して
説明される。図2では、直列のブロック暗号エンコーダは、エレメント250で
示されている。ブロック暗号化器250により行われる置換は、Fと示されてい
る。ランダム・キー・ジェネレータ240から供給される、固定されたランダム
・キーkは、バス241を介してブロック暗号エンコーダ250の1つの入力と
し使用される。ブロック暗号エンコーダの他の入力は、入力レジスタ230から
バス231を介して供給され、この入力は、出力バス231上にxiと表されて
いるビットの集合として供給されているのが示されている。入力レジスタ230
は2つの入力、すなわち、バス211上から第1シード・ジェネレータ210が
供給している第1のシードxoと、フィードバック・バス251により供給され
る、xi+1と表されているブロック・エンコーダ250の出力とを有している。
入力レジスタ230は、xiが最初に値xoと割り当てられ、その一方、引き続く
すべてのxiの値は、最新のxiの値を更新された値xi+1で上書きすることで供
給されるように、動作する。エンコーダ250への入力xiは、内積デバイス2
60への1つの入力としても、これもバス231を介して使用される。その上、
内積デバイス260は、バス221を介して、第2シード・ジェネレータ220
により供給されるS個の第2のシードh1,h2,・・・,hsを、入力として有して
いる。一般的に、第1のシード、S個のシード、およびランダム・キーの長さは
すべて等しい。内積デバイス260は、i番目のサイクルの間、{<xi,h1>
,<xi,h2>,・・・,<xi,hs>}(または、
うに決定する: (a)xiとhj(j=1,2,・・・,S)とのビット同士のア
ンドを計算する; および、(b)上記のビット同士のアンドからのすべてのビ
ットのパリティをj番目の内積の結果として出力する。すなわち、1のビットの
数が偶数ある場合は0を出力し、1のビットの数が奇数ある場合は1を出力する
。j番目の内積の結果はビットであり、bjと表わされ、内積デバイス260の
出力バス261上に現れる暗号に強い擬似ランダム・ビットのストリームを構成
する連続的なSビットの集合のj番目のビットである。i番目のサイクルに対す
るバス261上の出力を表す他の方法は、図2に示すbij(j=1,2,・・・,
S)である。
ブロック暗号エンコーダが、暗号に強い擬似ランダム・ビット・ジェネレータ
を構成する基礎的構成要素として用いられているもう一つの実施例は、図3を参
照して説明される。図3では、並列のブロック暗号エンコーダ構成350,35
5,・・・中の一つのブロック暗号エンコーダは、エレメント350で示されてい
る。ブロック暗号エンコーダ350により行われる置換は、Fと示されている。
図3中のエレメント310,320,330,340,350,および360は
、図1中のエレメント110,120,130,140,150,および160
に関して説明したのと同様に作動する。同様に、図3中のエレメント315,3
25,335,345,355,および365は、図1中のエレメント110,
120,130,140,150,および160に関して説明したのと同様に作
動する。残りのエンコーダ(図示せず)に対しても同様である。
特に、ランダム・キー・ジェネレータ340から供給される、固定されたラン
ダム・キーk1は、バス341を介してブロック暗号エンコーダ350の1つの
入力とし使用される。ブロック暗号エンコーダの他の入力は、入力レジスタ33
0からバス331を介して供給され、この入力は、出力バス331上にxi 1と表
されているビットの集合として供給されているのが示されている。入力レジスタ
330は2つの入力、すなわち、バス311上から第1シード・ジェネレータ3
10が供給している第1のシードxo 1と、フィードバック・バス351によ
している。入力レジスタ330は、xi 1が最初に値xo 1と割り当てられ、その一
きすることで供給されるように、動作する。エンコーダ350への入力xi 1は、
内積デバイス360への1つの入力としても、これもバス331を介して使用さ
れる。その上、内積デバイス360は、バス321を介して、第2シード・ジェ
ネレータ320により作成される第2のシードh1を、一つの入力として有して
いる。一般的に、第1のシードxo 1、第2のシードh1、およびランダム・キー
k1の長さは等しい。内積デバイス360は、<xi 1,h>=bi 1と表される内
積を、次のように決定する: (a)si 1とhiとのビット同士のアンドを計算
する; および、(b)上記のビット同士のアンドからすべてのビットのパリテ
ィを内積の結果として出力する。すなわち、1のビットの数が偶数ある場合は0
を出力し、1のビットの数が奇数ある場合は1を出力する。各bi 1ビットは出力
リード線361に供給される。
その上、ランダム・キー・ジェネレータ345から供給される、固定されたラ
ンダム・キーk2は、バス346を介してブロック暗号エンコーダ355の1つ
の入力とし使用される。ブロック暗号エンコーダの他の入力は、入力レジスタ3
35からバス336を介して供給され、この入力は、出力バス336上にxi 2と
表されているビットの集合として供給されているのが示されている。入力レジス
タ335は2つの入力、すなわち、バス316上から第1シード・ジェネレータ
315が供給している第1のシードxo 2と、フィードバック・バス356によ
している。入力レジスタ335は、xi 2が最初に値xo 2と割り当てられ、その一
きすることで供給されるように、動作する。エンコーダ355への入力xi 2は、
内積デバイス360への1つの入力としても、これもバス336を介して使用さ
れる。その上、内積デバイス365は、バス326を介して、第2シード・ジェ
ネレータ325により作成される第2のシードh2を、一つの入力として有して
いる。一般的に、第1のシードxo 1、第2のシードh2、およびランダム・キー
k2の長さは等しい。内積デバイス365は、<xi 2,h>≡bi 2と表される内
集合を、次のように決定する: (a)si 2とh1とのビット同士のアンドを計
算する;および、(b)上記のビット同士のアンドからすべてのビットのパリテ
ィを内積の結果として出力する。すなわち、1のビットの数が偶数ある場合は0
を出力し、1のビットの数が奇数ある場合は1を出力する。各bi 2ビットは出力
リード線361に供給される。
最後に、i番目のサイクル間の並列ビットbi 1,bi 2,・・・の作成を制御する
ため、タイミング・デバイス370が、各ブロック暗号エンコーダ330,33
5,・・・,および各内積デバイス360,365,・・・に結合され、所望のサイク
ル時間間隔の間、並列ビットを出力する。
上記のすべてのインプリメンテーションは、所定のブロック暗号エンコーダの
出力を自分の入力にフィードバックして、実際は、処理のためのランダム・シー
ドの連続としていると考えられる。追加的な安全な手段を供給するために、図4
のインプリメンテーションが用いられる。特に、図4を参照して、2つのブロッ
ク暗号エンコーダ450および455が、暗号に強い擬似ランダム・ビット・ジ
ェネレータを構成する基礎的構成要素として用いられている。図4では、第1の
ブロック暗号エンコーダがエレメント450で示され、第2のブロック暗号エン
コーダがエレメント455で示されている。各ブロック暗号エンコーダにより行
われる置換は、Fと示されている。ブロック暗号エンコーダ450の出力は、バ
ス451を介してブロック暗号エンコーダの入力に接続されている。ランダム・
キー・ジェネレータ440から供給される、第1の固定されたランダム・キーk1
は、バス441を介してブロック暗号エンコーダ450の1つの入力とし使用
される。ランダム・キー・ジェネレータ445から供給される、第2の固定され
たランダム・キーk2は、バス446を介してブロック暗号エンコーダ455の
1つの入力とし使用される。ブロック暗号エンコーダの他の入力は、入力レジス
タ430からバス431を介して供給され、この入力は、出力バス431上にxi
と表されているビットの集合として供給されているのが示されている。入力レ
ジスタ430は2つの入力、すなわち、バス411上から第1シード・ジェネレ
ータ410が供給している第1のシードxoと、フィードバック・バス456に
より供給される、xi+1と表されているブロック・エンコーダ
455の出力とを有している。入力レジスタ430は、xiが最初に値xoと割り
当てられ、その一方、引き続くすべてのxiの値は、最新のxiの値を更新された
値xi+1で上書きすることで供給されるように、動作する。エンコーダ450へ
の入力xiは、内積デバイス460への1つの入力としても、これもバス431
を介して使用される。その上、内積デバイス460は、バス421を介して、第
2シード・ジェネレータ420により作成される第2のシードhを、一つの入力
として有している。一般的に、第1と第2のシードおよびランダム・キーkiと
k2の長さは等しい。内積デバイス460は、<xi,h>≡biと表される内積
を、次のように決定する: (a)xiとhとのビット同士のアンドを計算する
; および、(b)上記のビット同士のアンドからすべてのビットのパリティを
内積の結果として出力する。すなわち、1のビットの数が偶数ある場合は0を出
力し、1のビットの数が奇数ある場合は1を出力する。各biビットは連続して
出力リード線461に供給される。
この分野の当業者には、図2の実施例に関する教示により、図3のシードh1
,h2,・・・または図4のシードhが複数のシード(すなわちh2→hi 1,h2 1,・・・
)に置き換えることができ、それにより、サイクルごとの内積に対する複数ビ
ットが生成されることは、明確である。また、図4の2ブロック・エンコーダが
、単一ブロック・エンコーダを教示する実施例と結合して、暗号に強い擬似ラン
ダム出力ビットのストリームを生成する、結合した直列並列の変形を生じること
もまた明確である。
擬似ランダム関数の実施例
G()が、前の節で述べたように、入力列(input string)x,k,およびh(
xおよびhはnビット列)としてとるCSPRビット・ジェネレータを表すとす
る。H()がCSPR関数を表すとする。G()は、H()を計算するために使
用される。実は、G()の入力である列x,k,およびhは、ともにH()の関
数インデックスである。H()の関数入力が、mビット列であるdと表示される
とする。H()のこの表示のため、G()は長さ2nの列を出力する。最
初のnビットはy 0と表示され、2番目のnビットはy 1と表示される。b
it(d,i)(これはビット・ポインタの短い表現である)をi番目の関数入
力とする。H(x,k,h,d)は次のように計算される。
1.x 0=x.
2.for i=1 to m,
a.G(x (i−1),k,h)=y 0y 1を計算
b.if bit(d,i)=0,then x i=y 0,else
if bit(d,i)=1,then x i=y 1
c.x mを出力
上記のH(x,k,h,d)を決定するテクニックは、図1に関して述べた最
も基本的なジェネレータG()を参照して記述している。図2,図3および図4
で、または、それらの組み合わせで示されているように、ここに開示されている
他のCSPRビット・ジェネレータが、上記のやりかたに対してわずかな修正を
加えるだけで、CSPR関数を計算できることは明確である。
上記に述べた実施例は、本発明に関する原理を簡単に例示するものであること
を理解すべきである。この原理の思想と範囲を具現する他の実施例は、この分野
の当業者が容易に考えることができる。このように、ここで述べた回路構成は、
例示のために示した特定の形態に限定されることはなく、他の実施例は、添付さ
れている請求の範囲の範囲にのみ限定されることを理解すべきである。
Claims (1)
- 【特許請求の範囲】 1.固定のランダム・エンコーダ・キーを有するブロック暗号エンコーダ、およ び、同じ長さの第1と第2のシードを備える暗号に強い擬似ランダム・ビットの ストリームを生成する方法において、 (a)前記第1のシードを前記ブロック暗号エンコーダへの最初の入力として 入力するステップと、 (b)前記ブロック暗号エンコーダの前記入力と、前記第2のシードとの間の 内積に対応するストリーム中の出力ビットを生成するステップと、 (c)前記ブロック暗号エンコーダの前記出力を前記ブロック暗号エンコーダ への次の入力としてフィート・バックし、ステップ(b)に戻るステップと を備えたことを特徴とする方法。 2.請求項1記載の方法において、前記出力ビットを生成する前記ステップは、 前記ブロック暗号エンコーダの前記入力と前記第2のシードとのビットごとの アンドをとるステップと、 ビットごとのアンドをとる前記ステップのパリティを前記出力ビットとして出 力するステップと を含むことを特徴とする方法。 3.固定のランダム・エンコーダ・キーを有するブロック暗号エンコーダ、およ び、同じ長さの第1のシードとS個の第2のシードを備える暗号に強い擬似ラン ダム・ビットのストリームを生成する方法において、 (a)前記第1のシードを前記ブロック暗号エンコーダへの最初の入力として 入力するステップと、 (b)前記ブロック暗号エンコーダの前記入力と、前記S個の第2のシードと の間のS個の内積に対応するストリーム中のS個の出力ビットを生成するステッ プと、 (c)前記ブロック暗号エンコーダの前記出力を前記ブロック暗号エンコーダ への次の入力としてフィード・バックし、ステップ(b)に戻るステップと を備えたことを特徴とする方法。 4.請求項3記載の方法において、前記S個の出力ビットを生成する前記ステッ プは、 前記ブロック暗号エンコーダの前記入力と前記S個の第2のシードの対応する 1つとのビットごとのアンドをとるステップと、 ビットごとのアンドをとる前記ステップのパリティを、前記S個の出力ビット の対応する1つとして出力するステップと を含むことを特徴とする方法。 5.各々が異なる固定のランダム・エンコーダ・キーを有するN個のブロック暗 号エンコーダ、および、すべて同じ長さのN個の第1とN個の第2のシードを備 えるNずつのグループの暗号に強い擬似ランダム・ビットのストリームを生成す る方法において、 (a)前記第1のシードI(I=1,2,…,N)を前記対応するエンコーダ Iへの最初の入力として入力するステップと、 (b)前記エンコーダIの前記入力と、前記対応する前記第2のシードIとの 間の内積に対応する各グループ中の出力ビットIをコンカレントに生成するステ ップと、 (c)各エンコーダIの前記出力を次の入力としてフィード・バックし、ステ ップ(b)に戻るステップと を備えたことを特徴とする方法。 6.請求項5記載の方法において、前記出力ビットIを生成する前記ステップは 、 前記エンコーダIの入力と前記第2のシードIとのビットごとのアンドをとる ステップと、 ビットごとのアンドをとる前記ステップのパリティを、前記出力ビットIとし て出力するステップと を含むことを特徴とする方法。 7.各々が異なる固定のランダム・キーを有するN個のブロック暗号エンコーダ 、および、すべて同じ長さのN個の第1のシードとNS個の第2のシードを備え るNSずつのグループの暗号に強い擬似ランダム・ビットのストリームを生成す る方法において、 (a)前記第1のシードI(I=1,2,…,N)を前記対応するエンコーダ Iへの最初の入力として入力するステップと、 (b)前記エンコーダIの前記入力と、前記対応する第2のシードI,Jとの 間の内積に対応するNS個のビットの各グループ中の出力ビットI,J(J=1 ,2,…,S)をコンカレントに生成するステップと、 (c)各エンコーダIの前記出力を次の入力としてフィード・バックし、ステ ップ(b)に戻るステップと を備えたことを特徴とする方法。 8.請求項7記載の方法において、前記出力ビットI,J(J=1,2,…,S )を生成する前記ステップは、 前記エンコーダIの入力と前記第2のシードI,J(J=1,2,…,S)と のビットごとのアンドをとるステップと、 ビットごとのアンドをとる前記ステップのパリティを、前記出力ビットI,J (J=1,2,…,S)として出力するステップと を含むことを特徴とする方法。 9.固定のランダム・エンコーダ・キーが前記エンコーダの各々について異なる 2つのブロック暗号エンコーダ、および、同じ長さの第1と第2のシードを備え る暗号に強い擬似ランダム・ビットのストリームを生成する方法において、 (a)前記2つのブロック暗号エンコーダを、前記第1のエンコーダの出力が 前記第2のエンコーダの入力として使用するように相互結合するステップと、 (b)前記第1のシードを、前記第1のエンコーダへの最初の入力として入力 するステップと、 (c)前記第1のエンコーダの前記入力と、前記第2のシードとの間の内積に 対応するストリーム中の出力ビットを生成するステップと、 (d)前記第2のエンコーダの前記出力を、前記第1のエンコーダへの次の入 力としてフィード・バックし、ステップ(c)に戻るステップと を備えたことを特徴とする方法。 10.請求項9記載の方法において、前記出力ビットを生成する前記ステップは 、 前記第1のエンコーダの前記入力と前記第2のシードとのビットごとのアンド をとるステップと、 ビットごとのアンドをとる前記ステップのパリティを、前記出力ビットとして 出力するステップと を含むことを特徴とする方法。 11.固定のランダム・エンコーダ・キーが前記エンコーダの各々について異な る2つのブロック暗号エンコーダ、および、すべて同じ長さの第1のシードとS 個の第2のシードを備える暗号に強い擬似ランダム・ビットのストリームを生成 する方法において、 (a)前記2つのブロック暗号エンコーダを、前記第1のエンコーダの出力が 前記第2のエンコーダの入力として使用するように相互接続するステップと、 (b)前記第1のシードを、前記第1のエンコーダへの最初の入力として入力 するステップと、 (c)前記第1のエンコーダの前記入力と、前記S個の第2のシードとの間の S個の内積に対応するストリーム中のS個の出力ビットを生成するステップと、 (d)前記第2のエンコーダの前記出力を、前記第1のエンコーダへの次の入 力としてフィート・バックし、ステップ(c)に戻るステップと を備えたことを特徴とする方法。 12.請求項11記載の方法において、前記S個の出力ビットを生成する前記ス テップは、 前記第1のエンコーダの前記入力と前記S個の第2のシードの対応する1つと のビットごとのアンドをとるステップと、 ビットごとのアンドをとる前記ステップのパリティを、前記S個の出力ビット の対応する1つとして出力するステップと を含むことを特徴とする方法。 13.2ブロック・エンコーダの各エンコーダについて固定のランダム・エンコ ーダ・キーが異なる複数のN個の2ブロック暗号・エンコーダ、および、すべて 同じ長さのN個の第1のシードとN個の第2のシードを備えるNずつの集合の暗 号に強い擬似ランダム・ビットのストリームを生成する方法において、 (a)前記2ブロック・エンコーダを、前記第1のエンコーダの出力が前記第 2のエンコーダの入力として使用するように相互結合するステップと、 (b)前記第1のシードI(I=1,2,…,N)を、2ブロック・エンコー ダIに対応する前記第1のエンコーダへの最初の入力として入力するステップと 、 (c)前記2ブロック・エンコーダIの前記入力と、前記対応する第2のシー ドIとの間の内積に対応する集合中の対応する1つにおける出力ビットIをコン カレントに生成するステップと、 (d)前記2ブロック・エンコーダIの各第2のエンコーダの前記出力を、前 記2ブロック・エンコーダIの前記第1のエンコーダへの次の入力としてフィー ト・バックし、ステップ(c)に戻るステップと を備えたことを特徴とする方法。 14.請求項13記載の方法において、前記出力ビットIを生成する前記ステッ プは、 前記2ブロック・エンコーダIの前記第1のエンコーダの前記入力と前記対応 する第2のシードIとのビットごとのアンドをとるステップと、 ビットごとのアンドをとる前記ステップのパリティを、前記出力ビットIとし て出力するステップと を含むことを特徴とする方法。 15.2ブロック・エンコーダの各エンコーダについて固定のランダム・エンコ ーダ・キーが異なる複数のN個の2ブロック暗号・エンコーダ、およびすべて同 じ長さのN個の第1のシードとNS個の第2のシードを備えるNSずつの集合の 暗号に強い擬似ランダム・ビットのストリームを生成する方法において、 (a)前記2ブロック・エンコーダの各々を、前記第1のエンコーダの出力が 前記第2のエンコーダの入力として使用するように相互接続するステップと、 (b)前記第1のシードI(I=1,2,…,N)を、2ブロック・エンコー ダIに対応する前記第1のエンコーダへの最初の入力として入力するステップと 、 (c)前記2ブロック・エンコーダIの前記第1のエンコーダへの前記入力と 、前記対応する第2のシードI,Jとの間の内積に対応するNSビットの集合中 の対応する1つにおける出力ビットI,J(J=1,2,…,S)をコンカレン トに生成するステップと、 (d)各2ブロック・エンコーダIの各第2のエンコーダの前記出力を、各2 ブロック・エンコーダIの前記第1のエンコーダへの次の入力としてフィート・ バックし、ステップ(c)に戻るステップと を備えたことを特徴とする方法。 16.請求項15記載の方法において、前記出力ビットI,J(J=1,2,… ,S)を生成する前記ステップは、 前記2ブロック・エンコーダIの前記入力と前記第2のシードI,J(J=1 ,2,…,S)とのビットごとのアンドをとるステップと、 ビットごとのアンドをとる前記ステップのパリティを、前記出力ビットI,J (J=1,2,…,S)として出力するステップと を含むことを特徴とする方法。 17.関数インデックスが、各長さnの第1と第2のシードおよびブロック暗号 エンコーダに対するキーにより構成されており、関数への入力がmビット列で構 成されている暗号に強い擬似ランダム関数を生成する方法において、 (a)前記ブロック暗号エンコーダの出力を、前記ブロック暗号エンコーダの 入力にフィード・バックするステップと、 (b)前記ブロック暗号エンコーダに前記キーを入力し、現在のシードを初期 の第1のシードとして識別するステップと、 (c)ビット・ポインタを関数入力の最下位ビットを指すように初期設定する ステップと、 (d)前記現在のシードを前記ブロック暗号エンコーダに入力し、ブロック暗 号エンコーダの2nの連続する入力と前記第2のシードとの間の2nの内積に対 応する長さ2nの出力ストリームを生成するステップと、 (e)前記ビット・ポインタが最上位ビットを指していない場合は、ステップ (f)を続け、その他の場合は、ステップ(h)に進むステップと、 (f)前記ビット・ポインタが指している前記関数入力中のビットが第1のビ ット値である場合、前記出力ストリームの最初のnビットを前記ブロック暗号エ ンコーダへの現在のシードとして選択し、前記ビット・ポインタをインクリメン トし、かつ、ステップ(d)に戻るステップと、 (g)前記ビット・ポインタが指している前記関数入力中のビットが第2のビ ット値である場合、前記出力ストリームの最後のnビットを前記ブロック暗号エ ンコーダへの現在のシードとして選択し、前記ビット・ポインタをインクリメン トし、かつ、ステップ(d)に戻るステップと、 (h)前記関数入力の最上位ビットが第1のビット値である場合、前記出力ス トリームの最初のnビットを関数値とするステップ、または、 (i)前記関数入力の最上位ビットが第2のビット値である場合、前記出力ス トリームの最後のnビットを関数値とするステップと を備えたことを特徴とする方法。 18.同じ長さの第1と第2のシードを利用する暗号に強い擬似ランダム・ビッ トのストリームを生成する回路において、 固定のランダム・エンコーダ・キーを有するブロック暗号エンコーダと、 前記ブロック暗号エンコーダの入力に結合され、前記第1のシードを前記ブロ ック暗号エンコーダへの最初の入力として入力する手段と、 該前記ブロック暗号エンコーダの前記入力に結合され、前記ブロック暗号エン コーダへの前記入力と前記第2のシードとの間の内積に対応するストリーム中の 出力ビットを生成する手段と、 前記ブロック暗号エンコーダの前記入力および出力に結合され、前記ブロック 暗号エンコーダの前記出力を、前記ブロック暗号エンコーダへの入力としてフィ ート・バックする手段と を備えたことを特徴とする回路。 19.請求項18記載の回路において、前記出力ビットを生成する手段は、 前記ブロック暗号エンコーダの前記入力に結合され、前記ブロック暗号エンコ ーダの前記入力と前記第2のシードとのビットごとのアンドをとる手段と、 ビットごとのアンドをとる前記手段に結合され、ビットごとのアンドをとる前 記手段の前記出力のパリティを決定し、かつ、前記パリティを前記出力ビットと して出力する手段と を含むことを特徴とする回路。 20.すべて同じ長さの第1のシードとS個の第2のシードを利用する暗号に強 い擬似ランダム・ビットのストリームを生成する回路において、 固定のランダム・エンコーダ・キーを有するブロック暗号エンコーダと、 前記ブロック暗号エンコーダの前記入力に結合され、前記第1のシードを前記 ブロック暗号エンコーダへの最初の入力として入力する手段と、 前記ブロック暗号エンコーダの前記入力に結合され、前記ブロック暗号エンコ ーダへの前記入力と前記S個の第2のシードとの間のS個の内積に対応するスト リーム中のS個の出力ビットを生成する手段と、 前記ブロック暗号エンコーダの前記入力および出力に結合され、前記ブロック 暗号エンコーダの前記出力を、前記ブロック暗号エンコーダへの入力としてフィ ート・バックする手段と を備えたことを特徴とする回路。 21.請求項20記載の回路において、前記S個の出力ビットを生成する前記手 段は、 前記ブロック暗号エンコーダの前記入力に結合され、前記ブロック暗号エンコ ーダの前記入力と前記S個の第2のシードの対応する1つとのビットごとのアン ドをとる手段と、 ビットごとのアンドをとる前記手段に結合され、ビットごとのアンドをとる前 記手段の前記出力のパリティを決定し、かつ、前記パリティを前記S個の出力ビ ットの対応する1つとして出力する手段と を含むことを特徴とする回路。 22.すべて同じ長さのN個の第1とNS個の第2のシードを利用するNSずつ のグループの暗号に強い擬似ランダム・ビットのストリームを生成する回路にお いて、 各エンコーダが異なる固定のランダム・キーを有するN個のブロック暗号エン コーダと、 前記N個のブロック暗号エンコーダの入力に結合され、前記第1のシードI( I=1,2,…,N)を前記対応するエンコーダIへの最初の入力として入力す る手段と、 前記N個のブロック暗号エンコーダの各々の前記入力に結合され、各エンコー ダIへの前記入力と前記対応する第2のシードI,Jとの間の内積に対応する各 NSビットずつのグループ中の出力ビットI,J(J=1,2,…,S)をコン カレントに生成する手段と、 前記エンコーダの各々の前記入力および出力に結合され、前記エンコーダIの 前記出力を、前記自分への次の入力としてフィート・バックする手段と を備えたことを特徴とする回路。 23.請求項22記載の回路において、前記出力ビットI,J(J=1,2,… ,S)を生成する前記手段は、 前記エンコーダの前記入力に結合され、前記エンコーダIの前記入力と前記第 2のシードI,J(J=1,2,…,S)とのビットごとのアンドをとる手段と 、 ビットごとのアンドをとる前記手段に結合され、前記ビットごとのアンドをと る手段の前記パリティを前記出力ビットI,J(J=1,2,…,S)として出 力する手段と を含むことを特徴とする回路。 24.同じ長さの第1と第2のシードを利用する暗号に強い擬似ランダム・ビッ トのストリームを生成する回路において、 固定のランダム・エンコーダ・キーが各エンコーダに対して異なる、2つのブ ロック暗号エンコーダと、 前記2つのエンコーダに結合され、前記第1のエンコーダの出力が前記第2の エンコーダの入力となるように前記2つのエンコーダを相互接続する手段と、 前記第1のエンコーダに結合され、前記第1のシードを前記第1のエンコーダ への最初の入力として入力する手段と、 前記第1のエンコーダに結合され、前記第1のエンコーダへの前記入力と前記 第2のシードとの間の内積に対応するストリーム中の出力ビットを生成する手段 と、 前記エンコーダに結合され、前記第2のエンコーダの前記出力を、前記第1の エンコーダへの引き続く入力としてフィード・バックする手段と を備えたことを特徴とする回路。 25.請求項24記載の回路において、前記出力ビットを生成する前記手段は、 前記第1のエンコーダの前記入力に結合され、前記第1のエンコーダの前記入 力と前記第2のシードとのビットごとのアンドをとる手段と、 ビットごとのアンドをとる前記手段に結合され、ビットごとのアンドをとる前 記手段の前記出力のパリティを決定し、かつ、前記パリティを前記出力ビットと して出力する手段と を含むことを特徴とする回路。 26.すべて同じ長さの第1のシードとS個の第2のシードを利用する暗号に強 い擬似ランダム・ビットのストリームを生成する回路において、 固定のランダム・エンコーダ・キーが各エンコーダに対して異なる、2つのブ ロック暗号エンコーダと、 前記2つのエンコーダに結合され、前記第1のエンコーダの出力が前記第2の エンコーダの入力となるように前記2つのエンコーダを相互接続する手段と、 前記第1のエンコーダに結合され、前記第1のシードを前記第1のエンコーダ への最初の入力として入力する手段と、 前記第1のエンコーダに結合され、前記第1のエンコーダへの前記入力と前記 S個の第2のシードとの間のS個の内積に対応するストリーム中のS個の出力ビ ットを生成する手段と、 前記エンコーダに結合され、前記第2のエンコーダの前記出力を、前記第1の エンコーダへの引き続く入力としてフィード・バックする手段と を備えたことを特徴とする回路。 27.請求項26記載の回路において、前記S個の出力ビットを生成する前記手 段は、 前記第1のエンコーダに結合され、前記第1のエンコーダの前記入力と前記S 個の第2のシードの対応する1つとのビットごとのアンドをとる手段と、 ビットごとのアンドをとる前記手段に結合され、各対応するビットごとのアン ドをとることからもたらされるパリティを決定し、かつ、各ビットごとのアンド をとることの前記パリティを前記S個の出力ビットの対応する1つとして出力す る手段と を含むことを特徴とする回路。 28.すべて同じ長さのN個の第1のシードとN個の第2のシードを利用するN ずつの集合の暗号に強い擬似ランダム・ビットのストリームを生成する回路にお いて、 各2ブロック・エンコーダについて、固定のランダム・エンコーダ・キーが前 記2ブロック・エンコーダの各エンコーダに対して異なる、複数のN個の2ブロ ック暗号エンコーダと、 前記N個の2ブロック・エンコーダに結合され、前記第1のエンコーダの出力 が前記第2のエンコーダの入力として使用されるように前記各2ブロック・エン コーダを相互接続する手段と、 前記N個の2ブロック・エンコーダに結合され、前記第1のシードI(I=1 ,2,…,N)を前記2ブロック・エンコーダIの前記対応する第1のエンコー ダへの最初の入力として入力する手段と、 各エンコーダIの前記第1のエンコーダの入力に結合され、前記2ブロック・ エンコーダIへの前記入力と対応する前記第2のシードIとの間の内積に対応す る各集合中の出力ビットIをコンカレントに生成する手段と、 各2ブロック・エンコーダIに結合され、各2ブロック・エンコーダIの前記 第2のエンコーダの前記出力を、各2ブロック・エンコーダIの前記第1のエン コーダへの次の入力としてフィード・バックする手段と を備えたことを特徴とする回路。 29.請求項28記載の回路において、前記出力ビットIを生成する手段は、 各2ブロック・エンコーダIの前記第1のエンコーダに結合され、前記2ブロ ック・エンコーダIの前記第1のエンコーダへの前記入力と前記対応する第2の シードIとのビットごとのアンドをとる手段と、 ビットごとのアンドをとる前記手段に結合され、ビットごとのアンドをとる前 記手段のパリティを前記出力ビットIとして出力する手段と を含むことを特徴とする回路。 30.すべて同じ長さのN個の第1のシードとNS個の第2のシードを利用する NSずつの集合の暗号に強い擬似ランダム・ビットのストリームを生成する回路 において、 前記2ブロック・エンコーダの各々について、固定のランダム・エンコーダ・ キーが前記2ブロック・エンコーダの各エンコーダに対して異なる、複数のN個 の2ブロック暗号エンコーダと、 前記N個の2ブロック・エンコーダに結合され、前記第1のエンコーダの出力 が前記第2のエンコーダの入力となるように各2ブロック・エンコーダを相互接 続する手段と、 前記N個の2ブロック・エンコーダに結合され、前記第1のシードI(I=1 ,2,…,N)を2ブロック・エンコーダIの前記対応する第1のエンコーダへ の最初の入力として入力する手段と、 各エンコーダIの前記第1のエンコーダの入力に結合され、前記2ブロック・ エンコーダIの前記第1のエンコーダへの前記入力と前記対応する第2のシード I,Jとの間の内積に対応するNSビットごとの各集合中の出力ビットI,J( J=1,2,…,S)をコンカレントに生成する手段と、 各2ブロック・エンコーダIに結合され、各2ブロック・エンコーダIの各第 2のエンコーダの前記出力を、各2ブロック・エンコーダIの前記第1のエンコ ーダへの次の入力としてフィード・バックする手段と を備えたことを特徴とする回路。 31.請求項30記載の回路において、前記出力ビットI,J(J=1,2,… ,S)を生成する前記手段は、 各2ブロック・エンコーダIの前記第1のエンコーダに結合され、各2ブロッ ク・エンコーダIの前記第1のエンコーダへの前記入力と前記第2のシードI, J(J=1,2,…,S)とのビットごとのアンドをとる手段と、 ビットごとのアンドをとる前記手段に結合され、ビットごとのアンドをとる前 記手段のパリティを前記出力ビットI,J(J=1,2,…,S)として出力す る手段と を含むことを特徴とする回路。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/186,208 US5420928A (en) | 1994-01-25 | 1994-01-25 | Pseudo-random generator |
US08/186,208 | 1994-01-25 | ||
PCT/US1995/000716 WO1995020278A1 (en) | 1994-01-25 | 1995-01-18 | Pseudo-random generator |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH09501811A true JPH09501811A (ja) | 1997-02-18 |
Family
ID=22684068
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP7519642A Pending JPH09501811A (ja) | 1994-01-25 | 1995-01-18 | 擬似ランダム・ジェネレータ |
Country Status (5)
Country | Link |
---|---|
US (1) | US5420928A (ja) |
EP (1) | EP0741936A4 (ja) |
JP (1) | JPH09501811A (ja) |
CA (1) | CA2179497C (ja) |
WO (1) | WO1995020278A1 (ja) |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3507119B2 (ja) * | 1994-03-15 | 2004-03-15 | キヤノン株式会社 | 擬似乱数生成装置とそれを用いた通信装置 |
US5515307A (en) * | 1994-08-04 | 1996-05-07 | Bell Communications Research, Inc. | Pseudo-random generator |
US7260834B1 (en) | 1999-10-26 | 2007-08-21 | Legal Igaming, Inc. | Cryptography and certificate authorities in gaming machines |
US7690043B2 (en) * | 1994-12-19 | 2010-03-30 | Legal Igaming, Inc. | System and method for connecting gaming devices to a network for remote play |
US6272223B1 (en) * | 1997-10-28 | 2001-08-07 | Rolf Carlson | System for supplying screened random numbers for use in recreational gaming in a casino or over the internet |
US6298360B1 (en) * | 1995-05-26 | 2001-10-02 | Sun Microsystems, Inc. | Method and apparatus for generating a highly random number while using existing circuitry |
NL1000669C2 (nl) * | 1995-06-26 | 1996-12-31 | Nederland Ptt | Werkwijze en inrichtingen voor het overdragen van data met controle op transmissiefouten. |
US5664016A (en) * | 1995-06-27 | 1997-09-02 | Northern Telecom Limited | Method of building fast MACS from hash functions |
US5727063A (en) * | 1995-11-27 | 1998-03-10 | Bell Communications Research, Inc. | Pseudo-random generator |
WO1998007251A1 (en) * | 1996-08-16 | 1998-02-19 | Bell Communications Research, Inc. | Improved cryptographically secure pseudo-random bit generator for fast and secure encryption |
US5910956A (en) * | 1996-11-05 | 1999-06-08 | Northrop Gruman Corporation | Random time interval generator |
JPH1153173A (ja) * | 1997-08-07 | 1999-02-26 | Nec Corp | 擬似乱数発生方法及び装置 |
JP3092567B2 (ja) * | 1997-10-31 | 2000-09-25 | 日本電気株式会社 | 暗号鍵の生成方法および装置 |
US6055316A (en) * | 1997-12-26 | 2000-04-25 | Sun Microsystems, Inc. | System and method for deriving an appropriate initialization vector for secure communications |
US6215876B1 (en) | 1997-12-31 | 2001-04-10 | Transcrypt International, Inc. | Apparatus for and method of detecting initialization vector errors and maintaining cryptographic synchronization without substantial increase in overhead |
US6249582B1 (en) | 1997-12-31 | 2001-06-19 | Transcrypt International, Inc. | Apparatus for and method of overhead reduction in a block cipher |
DE69939254D1 (de) * | 1999-06-22 | 2008-09-18 | Hitachi Ltd | Kryptografisches Gerät und Verfahren |
ATE403272T1 (de) * | 1999-12-22 | 2008-08-15 | Ericsson Telefon Ab L M | Verfahren und elektrische vorrichtung für die leistungsfähige generierung von mehrfachraten- pseudozufallsfolgen |
US6760739B2 (en) | 2001-03-01 | 2004-07-06 | Corrent Corporation | Pipelined digital randomizer based on permutation and substitution using data sampling with variable frequency and non-coherent clock sources |
JP3525146B2 (ja) * | 2001-11-05 | 2004-05-10 | 独立行政法人 科学技術振興機構 | 乱数列出力装置、乱数列出力方法、プログラムならびに、情報記録媒体 |
US7227951B2 (en) * | 2001-11-06 | 2007-06-05 | Ntt Docomo, Inc. | Enhanced ANSI X9.17 pseudorandom number generators with forward security |
US9251649B2 (en) | 2002-10-09 | 2016-02-02 | Zynga Inc. | System and method for connecting gaming devices to a network for remote play |
US7277548B2 (en) * | 2002-10-23 | 2007-10-02 | Ndosa Technologies, Inc. | Cryptographic method and computer program product for use in wireless local area networks |
US7502475B2 (en) * | 2003-11-14 | 2009-03-10 | Broadcom Corporation | Method and system for secure key generation |
US7698557B2 (en) * | 2003-12-22 | 2010-04-13 | Guardtime As | System and method for generating a digital certificate |
US8594323B2 (en) * | 2004-09-21 | 2013-11-26 | Rockstar Consortium Us Lp | Method and apparatus for generating large numbers of encryption keys |
US7496616B2 (en) * | 2004-11-12 | 2009-02-24 | International Business Machines Corporation | Method, apparatus and system for resistance to side channel attacks on random number generators |
EP1659728A1 (en) | 2004-11-17 | 2006-05-24 | Broadcom Corporation | Method and system for secure key generation |
US8183980B2 (en) * | 2005-08-31 | 2012-05-22 | Assa Abloy Ab | Device authentication using a unidirectional protocol |
US20080132222A1 (en) * | 2006-11-30 | 2008-06-05 | Brady Colin P | Wireless communication using a picocell station having its own phone number |
US20090153290A1 (en) * | 2007-12-14 | 2009-06-18 | Farpointe Data, Inc., A California Corporation | Secure interface for access control systems |
WO2010019593A1 (en) * | 2008-08-11 | 2010-02-18 | Assa Abloy Ab | Secure wiegand communications |
ES2485501T3 (es) * | 2008-08-14 | 2014-08-13 | Assa Abloy Ab | Lector de RFID con heurísticas de detección de ataques incorporadas |
US8811615B2 (en) * | 2009-08-05 | 2014-08-19 | Verayo, Inc. | Index-based coding with a pseudo-random source |
US10452877B2 (en) | 2016-12-16 | 2019-10-22 | Assa Abloy Ab | Methods to combine and auto-configure wiegand and RS485 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4316055A (en) * | 1976-12-30 | 1982-02-16 | International Business Machines Corporation | Stream/block cipher crytographic system |
US4654480A (en) * | 1985-11-26 | 1987-03-31 | Weiss Jeffrey A | Method and apparatus for synchronizing encrypting and decrypting systems |
US5297207A (en) * | 1993-05-24 | 1994-03-22 | Degele Steven T | Machine generation of cryptographic keys by non-linear processes similar to processes normally associated with encryption of data |
-
1994
- 1994-01-25 US US08/186,208 patent/US5420928A/en not_active Expired - Lifetime
-
1995
- 1995-01-18 JP JP7519642A patent/JPH09501811A/ja active Pending
- 1995-01-18 EP EP95909268A patent/EP0741936A4/en not_active Withdrawn
- 1995-01-18 WO PCT/US1995/000716 patent/WO1995020278A1/en not_active Application Discontinuation
- 1995-01-18 CA CA002179497A patent/CA2179497C/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP0741936A1 (en) | 1996-11-13 |
CA2179497A1 (en) | 1995-07-27 |
CA2179497C (en) | 2000-04-18 |
EP0741936A4 (en) | 2000-04-12 |
US5420928A (en) | 1995-05-30 |
WO1995020278A1 (en) | 1995-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH09501811A (ja) | 擬似ランダム・ジェネレータ | |
US5727063A (en) | Pseudo-random generator | |
US5515307A (en) | Pseudo-random generator | |
KR101564601B1 (ko) | 메시지의 암호 해싱 및 데이터 암호화의 유사-난수 생성을 위한 암호화 방법 및 그 장치 | |
CN106941407B (zh) | 一种平台数据动态加密的方法和装置 | |
US7142675B2 (en) | Sequence generator and method of generating a pseudo random sequence | |
WO2005073842A1 (ja) | 擬似乱数生成装置および擬似乱数生成プログラム | |
WO1995010148A1 (en) | Multistream encryption system for secure communication | |
US11997200B2 (en) | Generating unique cryptographic keys from a pool of random elements | |
EP0907269B1 (en) | Encryption device for information in binary code | |
Deepthi et al. | Design, implementation and analysis of hardware efficient stream ciphers using LFSR based hash functions | |
Kaur et al. | 3D—Playfair cipher using LFSR based unique random number generator | |
JP2830842B2 (ja) | 擬似乱数発生装置 | |
JP3816558B2 (ja) | 暗号システム | |
EP0619659A2 (en) | A shrinking generator for cryptosystems | |
Deng et al. | Extending RC4 to construct secure random number generators | |
Kumar et al. | New signal security system for multimedia data transmission using genetic algorithms | |
RU2111620C1 (ru) | Способ шифрования блоков данных | |
CA2238545C (en) | An improved pseudo-random generator | |
Dahiya et al. | Comparative study of popular cryptographic techniques | |
Singh et al. | 3D—Playfair cipher using Linear Feedback Shift Register | |
RU2030836C1 (ru) | Способ шифрования цифровой подписи двоичного сообщения (албер-подпись) | |
El-Nahas | Hyperchaotic Chen System Based Audio Signal Encryption | |
RU2106753C1 (ru) | Способ криптографического преобразования блоков данных | |
RU2119260C1 (ru) | Способ шифрования двоичной информации |