JP3022439B2 - 擬似乱数発生方法および装置 - Google Patents

擬似乱数発生方法および装置

Info

Publication number
JP3022439B2
JP3022439B2 JP9276517A JP27651797A JP3022439B2 JP 3022439 B2 JP3022439 B2 JP 3022439B2 JP 9276517 A JP9276517 A JP 9276517A JP 27651797 A JP27651797 A JP 27651797A JP 3022439 B2 JP3022439 B2 JP 3022439B2
Authority
JP
Japan
Prior art keywords
pseudo
random number
data
circuit
pseudorandom
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
Application number
JP9276517A
Other languages
English (en)
Other versions
JPH1195984A (ja
Inventor
道雄 島田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP9276517A priority Critical patent/JP3022439B2/ja
Priority to US09/226,102 priority patent/US6192385B1/en
Priority to CA002247910A priority patent/CA2247910A1/en
Priority to EP98118016A priority patent/EP0905611A3/en
Publication of JPH1195984A publication Critical patent/JPH1195984A/ja
Application granted granted Critical
Publication of JP3022439B2 publication Critical patent/JP3022439B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • G06F7/586Pseudo-random number generators using an integer algorithm, e.g. using linear congruential method
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は擬似乱数の発生方法
および装置に関するものである。
【0002】
【従来の技術】1つの擬似乱数発生回路に供給されるク
ロック信号を別の擬似乱数発生回路の出力する擬似乱数
に依存して操作することは古くから行われており、第2
次世界大戦中の機械式暗号にまで起源を遡ることができ
る。また、日本軍の暗号の専門家であった加藤正隆が著
した「基礎暗号学」(1989年サイエンス社発行)に
も、M系列発生器の出力を間引くことによって良質な擬
似乱数を発生できることが記述されている。しかしなが
ら、クロック信号を操作する擬似乱数発生装置には理論
的な解析が難しいという問題があった。
【0003】このため、理論的に評価されているのは、
後述の「段数の等しい線形フィードバック・シフトレジ
スタ(LFSR)」(特にM系列発生器と呼ばれるLF
SR)をカスケード接続した擬似乱数発生装置(図7)
に限られていた。しかしながら、このような従来の擬似
乱数発生装置には、ロックインの問題があり、ロックイ
ンを利用した暗号解読を防ぐために、多数のLFSRを
カスケード接続しなければならないという欠点があっ
た。
【0004】ロックインの問題とは、初段のLFSRが
出力する擬似乱数にもとづいて発生されたクロック制御
信号によっては、連続する複数のクロックの期間にわた
って次段のLFSRにクロックが供給されなくなる場合
があり、その際、残りのLFSRも動作を停止してしま
い、擬似乱数発生装置が出力する擬似乱数がこの期間中
同じ値をとってしまうという問題である。なお、この問
題および関連する事柄については、例えば、ゴールマン
とチャンバーズの著した論文「クロック・コントロール
ド・シフトレジスターズ:ア・レビュー」(Diete
r Gollmann and William G.
Chambers、 ”Clock−Controll
edShift Registers: A Revi
ew”、 IEEE Joournal onSele
cted Areas in Communicati
ons、 Vol.7、 No.4、 pp.525−
533、 May 1989)や、シュナイアによる
「アプライド・クリプトグラフィー」(Bruce S
chneier、 Applied Cryptogr
aphy :Protocols、Algorithm
s、 and Source Code in C、
2nd Edition、 John Wiley &
Sons、 1996)などの書籍に詳しく解説されて
いる。
【0005】図7は、擬似乱数発生回路として線形フィ
ードバック・シフトレジスタ(LFSR)をカスケード
接続した従来の擬似乱数発生装置の基本構成を示す機能
ブロック図である。図に示したように、この擬似乱数発
生装置は順番に配列されたn(nは正の整数)のLFS
R902を備え、各LFSR902はそれぞれmビット
(mは正の整数)の内部状態を持っている。そして、i
番目(iは正の整数)のLFSR902は、入力端子1
04に供給されている制御信号Lの値が論理”0”の時
には、i番目の論理和回路901からクロック信号が供
給されたら、入力端子105から供給されるn×mビッ
トのビット列のうちmビットのビット列を取り込んで内
部状態として保持し、一方、入力端子104に供給され
ている制御信号Lが論理”1”の時には、上記論理和回
路901からクロック信号が供給されるごとに、内部状
態を1クロックパルス分だけ進めるとともに、発生した
擬似乱数Xi(1ビット)を出力する。
【0006】i番目の排他的論理和回路802は、擬似
乱数Xiと、i−1番目の排他的論理和回路802が出
力する擬似乱数Yi-1との排他的論理和を計算し、計算
結果として得られる擬似乱数Yiを、クロック制御信号
としてi+1番目のLFSR902に供給すると共にi
+1番目の排他的論理和回路802に供給する。なお、
最後の排他的論理和回路802は、排他的論理和の計算
結果として得られる擬似乱数Ynをこの擬似乱数発生装
置の出力として出力端子106より出力する。
【0007】i番目の論理和回路901は、入力端子1
03から供給されるクロック信号CLKとクロック制御
信号Yi-1との論理和を計算して計算結果を出力するの
で、クロック制御信号Yi-1の論理値が論理”0”であ
れば、論理和回路901は入力端子103から供給され
たクロック信号をそのまま出力するが、クロック制御信
号Yi-1が論理”1”であれば、入力端子103から供
給されたクロック信号はこの論理和回路901で阻止さ
れる。そのため、クロック制御信号Yi-1が論理”0”
の時には、入力端子103からクロック信号が供給され
ると、i番目のLFSR902の内部状態が更新される
が、クロック制御信号Yi-1が論理”1”の時には、入
力端子103からクロック信号が供給されても、このL
FSR902の内部状態は更新されない。なお、クロッ
ク制御信号Y0は予め決められた定数であり、例えばY0
=0とする。
【0008】ここで図7の擬似乱数発生装置などを構成
するために用いる従来の擬似乱数発生回路について詳し
く説明しておく。図8は従来の基本的な構成の擬似乱数
発生回路の一例を示す機能ブロック図である。図におい
て、レジスタ205は、入力端子315からクロック信
号CLKが供給されると、セレクタ204が出力するm
ビットのデータを内部状態を表すデータとして保持し、
同時に保持したデータを関数発生回路202に供給す
る。関数発生回路202は、レジスタ205から供給さ
れるmビットのデータに対して予め決められた変換を施
し、1ビットを加えて合計m+1ビットのデータを発生
する。そして、このデータのm+1ビットのうちのmビ
ットをセレクタ204に供給し、一方、残りの1ビット
は擬似乱数として出力端子317から出力する。
【0009】セレクタ204は、入力端子314に供給
されている制御信号Lが論理”0”の時には、入力端子
313に供給されているmビットのデータを選択して出
力し、一方、入力端子314に供給されている制御信号
Lが論理”1”の時には、関数発生回路202が出力す
るmビットのデータを選択して出力する。この擬似乱数
発生回路では、関数発生回路202はレジスタ205の
現在の内部状態を表すデータを変換して出力し、レジス
タ205は、通常の動作状態においてクロック信号CL
Kの各クロックパルスが入力されるごとに、セレクタ2
04を通じて関数発生回路202が出力するデータを取
り込んで保持する。したがって、各クロックパルスが入
力されるごとに内部状態が変化し、変化した内部状態に
もとづいて関数発生回路202は擬似乱数を発生して端
子317から出力する。
【0010】図9は、特に非線形フィードバック・シフ
トレジスタと呼ばれる従来の擬似乱数発生回路の基本構
成を示す機能ブロック図である。図中、図8と同一の要
素には同一の符号が付されており、それらに関する説明
はここでは省略する。この擬似乱数発生回路は、関数発
生回路202の構成において上述した擬似乱数発生回路
と異なっている。すなわちこの擬似乱数発生回路では、
関数発生回路202は関数発生回路401およびシフタ
402により構成されている。関数発生回路401は、
mビットの入力データに対して1ビットのデータを出力
するものであり、出力データはシフタ402に供給する
と共に、出力端子317を通じて擬似乱数として出力す
る。シフタ402は、レジスタ205から供給されるm
ビットのデータを右に1ビットシフトさせて左側のm−
1ビットを取り出し、さらに、最左端に関数発生回路4
01からの1ビットの出力データを付加してmビットの
データとした上でセレクタ204を通じてレジスタ20
5に供給する。
【0011】したがってこの擬似乱数発生回路でも、関
数発生回路202はレジスタ205の現在の内部状態を
表すデータを、関数発生回路401およびシフタ402
の作用によって変換して出力し、レジスタ205は、通
常の動作状態においてクロック信号CLKの各クロック
パルスが入力されるごとに、セレクタ204を通じて関
数発生回路202が出力するデータを取り込んで保持す
る。したがって、各クロックパルスが入力されるごとに
内部状態が変化し、変化した内部状態にもとづいて関数
発生回路202は擬似乱数を発生して端子317から出
力する。
【0012】図10は、図7の擬似乱数発生装置を構成
する線形フィードバック・シフトレジスタの基本構成を
示す機能ブロック図である。図中、図8、図9と同一の
要素には同一の符号が付されており、それらに関する説
明はここでは省略する。図10に示したLFSR902
は、関数発生回路401が排他的論理和回路501によ
り構成されている点で図9の擬似乱数発生回路と異なっ
ている。排他的論理和回路501は、レジスタ205か
らのデータを構成するmビットのうち予め決められた複
数ビットの排他的論理和を算出し、結果を出力端子31
7に出力すると共に、シフタ402に供給する。
【0013】したがって、このLFSR902でも、関
数発生回路202はレジスタ205からの現在の内部状
態を表すデータを変換して出力し、レジスタ205は、
通常の動作状態においてクロック信号CLKの各クロッ
クパルスが入力されるごとに、セレクタ204を通じて
関数発生回路202が出力するデータを取り込んで保持
する。したがって、各クロックが入力されるごとに内部
状態が変化し、変化した内部状態にもとづいて関数発生
回路202は擬似乱数を発生し、端子317から出力す
る。このようなLFSR902で、発生される擬似乱数
の周期が2m−1である場合には、このLFSRは特に
M系列発生器と呼ばれる。
【0014】
【発明が解決しようとする課題】しかし、図7に示した
従来の擬似乱数発生装置では、入力端子103からクロ
ック信号が入力されても、クロック制御信号Yi-1が論
理”1”の時には、上記クロックは論理和回路901で
阻止され、したがって、LFSR902の内部状態は更
新されない。その結果、上述したロックインの問題が発
生し、ロックインを利用した暗号解読を防ぐべく、多数
のLFSR902をカスケード接続しなければならなく
なる。そのため、従来の擬似乱数発生装置は規模が大き
く、かつコスト高となっていた。また、装置の規模およ
びコストに配慮して設計した場合には、性能が抑えられ
る結果となっていた。
【0015】そこで本発明の目的は、ロックインの問題
を解決して小規模、低コストで、かつ暗号学的な安全性
の高い擬似乱数を発生できる擬似乱数発生方法および装
置を提供することにある。
【0016】
【課題を解決するための手段】本発明は上記目的を達成
するため、順序づけられた複数の擬似乱数発生回路を用
い、前段の前記擬似乱数発生回路が発生した第1の擬似
乱数にもとづいて各擬似乱数発生回路に第1の擬似乱数
を発生させ、前記複数の擬似乱数発生回路が発生した前
記第1の擬似乱数により第2の擬似乱数を発生する擬似
乱数発生方法において、各擬似乱数発生回路では、複数
のビットから成る状態データを保持し、保持した前記状
態データに応じて複数のビットから成る第1および第2
のデータを発生し、前記第1および第2のデータのうち
のいずれかのデータの特定のビットを、前段の前記擬似
乱数発生回路が発生した前記第1の擬似乱数にもとづい
て選択し前記第1の擬似乱数として出力し、前記第1お
よび第2のデータのうちのいずれかのデータの、前記特
定のビットを除いたデータを、前段の前記擬似乱数発生
回路が発生した前記第1の擬似乱数にもとづいて選択し
次に保持すべき前記状態データとすることを特徴とす
る。
【0017】本発明の擬似乱数発生方法はまた、保持し
た前記状態データに応じて複数のビットから成る順序づ
けられた複数のデータを発生し、前記複数のデータのう
ちの1番目のデータは前記状態データから直接発生し、
2番目以降のデータはそれぞれ1つ前のデータから発生
し、前記第1のデータは前記複数のデータのうちの最後
のデータを除くいずれかのデータであり、前記第2のデ
ータは前記複数のデータのうちの最後のデータであるこ
とを特徴とする。本発明は擬似乱数発生方法また、
0、S1を0<S0<S1を満たす整数として前記第1の
データは前記複数のデータのうちのS0番目のデータで
あって前記第2のデータはS1番目の前記データであ
り、iを1以上の整数としてi番目の前記擬似乱数発生
回路が発生する前記第1の擬似乱数の系列の周期をLi
とし、i番目の前記擬似乱数発生回路が発生する前記第
1の擬似乱数の系列の1周期中に出現する論理”1”の
数をWiとし、任意のiに対してLiと(Li-1−Wi-1
×S0+Wi-1×S1とが互いに素で、2より大きい任意
のiに対してLiとL1×L2×…×Li-2とが互いに素で
あることを特徴とする。
【0018】また、本発明の擬似乱数発生装置は、順序
づけられた複数の擬似乱数発生回路を備え、各擬似乱数
発生回路は前段の前記擬似乱数発生回路が発生した第1
の擬似乱数にもとづいて第1の擬似乱数を発生し、前記
複数の前記擬似乱数発生回路が発生した前記第1の擬似
乱数により第2の擬似乱数を発生する擬似乱数発生装置
において、各擬似乱数発生回路は、複数のビットから成
る状態データを、クロック信号の各クロックパルスに同
期して取り込んで保持するレジスタと、前記レジスタが
保持している前記状態データに応じて複数のビットから
成る第1および第2のデータをそれぞれ出力する第1お
よび第2の関数発生回路と、前記第1および第2の関数
発生回路がそれぞれ出力する前記第1および第2のデー
タのうちのいずれかのデータの特定のビットを、前段の
前記擬似乱数発生回路が発生した前記第1の擬似乱数に
もとづいて選択し前記第1の擬似乱数として出力する第
1のセレクタと、前記第1および第2の関数発生回路が
それぞれ出力する前記第1および第2のデータのうちの
いずれかの前記データの、前記特定のビットを除いたデ
ータを、前段の前記擬似乱数発生回路が発生した前記第
1の擬似乱数にもとづいて選択し前記レジスタに前記状
態データとして供給する第2のセレクタとを備えたこと
を特徴とする。
【0019】本発明の擬似乱数発生装置はまた、前記レ
ジスタが保持している状態データに応じて複数のビット
から成るデータをそれぞれ出力する順序づけられた複数
の関数発生回路を含み、1番目の前記関数発生回路は前
記レジスタが保持している前記状態データに直接したが
って前記データを出力し、2番目以降の前記関数発生回
路はそれぞれ1つ前の前記関数発生回路が出力したデー
タにしたがって前記データを出力し、前記第1の関数発
生回路は前記複数の関数発生回路のうちの最後の関数発
生回路を除くいずれかの関数発生回路であり、第2の前
記関数発生回路は前記複数の関数発生回路のうちの最後
の関数発生回路であることを特徴とする。本発明の擬似
乱数発生装置はまた、S0、S1を0<S0<S1を満たす
整数として前記第1の関数発生回路は前記複数の関数発
生回路のうちのS0番目の関数発生回路であって前記第
2の関数発生回路はS1番目の関数発生回路であり、i
を1以上の整数としてi番目の前記擬似乱数発生回路が
発生する前記第1の擬似乱数の系列の周期をLiとし、
i番目の前記擬似乱数発生回路が発生する前記第1の擬
似乱数の系列の1周期中に出現する論理”1”の数をW
iとし、任意のiに対してLiと(Li-1−Wi-1)×S0
+Wi-1×S1とが互いに素で、2より大きい任意のiに
対してLiとL1×L2×…×Li-2とが互いに素であるこ
とを特徴とする。
【0020】本発明の擬似乱数発生方法では、擬似乱数
発生回路において複数のビットから成る状態データを保
持し、保持した状態データに応じて複数のビットから成
る第1および第2のデータを発生する。そして、第1お
よび第2のデータのうちのいずれかのデータの特定のビ
ットを、前段の擬似乱数発生回路が発生した第1の擬似
乱数にもとづいて選択し第1の擬似乱数として出力す
る。一方、第1および第2のデータのうちのいずれかの
データの、上記特定のビットを除いたデータを、前段の
擬似乱数発生回路が発生した第1の擬似乱数にもとづい
て選択し次に保持すべき状態データとする。
【0021】また、本発明の擬似乱数発生装置では、擬
似乱数発生回路において、レジスタは、複数のビットか
ら成る状態データを、クロック信号の各クロックパルス
に同期して取り込んで保持し、第1および第2の関数発
生回路は、レジスタが保持している状態データに応じて
複数のビットから成る第1および第2のデータをそれぞ
れ出力する。そして、第1のセレクタは、第1および第
2の関数発生回路がそれぞれ出力する第1および第2の
データのうちのいずれかのデータの特定のビットを、前
段の擬似乱数発生回路が発生した第1の擬似乱数にもと
づいて選択し第1の擬似乱数として出力する。一方、第
2のセレクタは、第1および第2の関数発生回路がそれ
ぞれ出力する第1および第2のデータのうちのいずれか
のデータの、上記特定のビットを除いたデータを、前段
の擬似乱数発生回路が発生した第1の擬似乱数にもとづ
いて選択しレジスタに状態データとして供給する。した
がって、本発明では、各擬似乱数発生回路の状態データ
が表す各擬似乱数発生回路の内部状態は前段が発生した
擬似乱数に係わらず必ず変化し、そのためロックインの
問題は発生しない。
【0022】また、本発明の擬似乱数発生方法および擬
似乱数発生装置では、第1のデータまたは第1の関数発
生回路は複数のデータまたは複数の関数発生回路のうち
のS 0番目のデータまたは関数発生回路であって第2の
データまたは第2の関数発生回路はS1番目のデータま
たは関数発生回路であるとし、また、iを1以上の整数
としてi番目の擬似乱数発生回路が発生する第1の擬似
乱数の系列の周期をLi、i番目の擬似乱数発生回路が
発生する第1の擬似乱数の系列の1周期中に出現する論
理”1”の数をWiとした場合、任意のiに対してLi
(Li-1−Wi-1)×S0+Wi-1×S1とが互いに素で、
2より大きい任意のiに対してLiとL1×L2×…×L
i-2とが互いに素であるように、S0、S1およびLiが選
定される。したがって、本発明では周期が最大の擬似乱
数系列を発生することができる。
【0023】
【発明の実施の形態】次に本発明の実施の形態について
図面を参照して説明する。図1は本発明による擬似乱数
発生装置の一例の基本構成を示す機能ブロック図、図2
は図1の擬似乱数発生装置を構成する擬似乱数発生回路
を示す機能ブロック図である。以下ではこれらの図面を
参照して本発明による擬似乱数発生装置の実施の形態に
ついて説明し、同時に本発明による擬似乱数発生方法の
実施の形態について説明する。
【0024】図1に示したようにこの擬似乱数発生装置
100は、複数の擬似乱数発生回路101を備え、擬似
乱数発生回路101には、入力端子103を通じてクロ
ック信号CLKが入力され、入力端子104からは制御
信号Lが入力されている。また、入力端子105からは
各擬似乱数発生回路101が最初に保持するmビットの
データ(各擬似乱数発生回路101ごとに異なる)が入
力される。i番目(nを正の整数としてi=1、
2、...、n)の擬似乱数発生回路101が発生した
擬似乱数Xi(本発明に係わる第1の擬似乱数)は次段
(i+1番目)の擬似乱数発生回路101に状態制御信
号として入力される。ただし、最初の擬似乱数発生回路
101には、論理値が一定(本実施の形態では論理”
0”)の状態制御信号(X0)が入力されている。排他
的論理和回路102は、すべての擬似乱数発生回路10
1が発生した擬似乱数X1 nの排他的論理和を計算し、
計算結果をこの擬似乱数発生装置100が発生した擬似
乱数(本発明に係わる第2の擬似乱数)として出力端子
106を通じて出力する。
【0025】擬似乱数発生回路101は、後に詳しく説
明するように内部状態をスキップする機能を有し、具体
的には図2に示したように、レジスタ205、関数発生
回路2021、2022、セレクタ203、206によ
り構成されている。レジスタ205は、入力端子215
からクロック信号CLKの各クロックパルスが供給され
るごとに、セレクタ206が出力しているmビットのデ
ータを内部状態を表すデータ(本発明に係わる状態デー
タ)として取り込んで保持し、同時に、保持したデータ
を関数発生回路2021に出力する。
【0026】関数発生回路2021は、レジスタ205
から供給されるmビットのデータに対して予め決められ
た変換を施し、もとのデータより1ビット多いm+1ビ
ットのデータを発生し、発生したデータの各ビットのう
ちmビットを関数発生回路2022とセレクタ206と
に供給し、一方、残りの1ビット(本発明に係わる特定
のビット)をセレクタ203に供給する。関数発生回路
2022は関数発生回路2021と同様に構成され、関
数発生回路2021から供給されるmビットのデータに
対して予め決められた変換を施して、m+1ビットのデ
ータを発生し、発生したデータの各ビットのうちmビッ
トをセレクタ206に供給し、一方、残りの1ビットを
セレクタ203に供給する。なお、関数発生回路202
2は関数発生回路2021からのデータにもとづいて新
たなデータを発生するので、結局レジスタ205が保持
しているデータに応じて新たなデータを発生しているこ
とになる。
【0027】セレクタ206は、入力端子214から供
給される制御信号Lが論理”0”の時は、入力端子21
3から供給されるmビットのデータPIiを選択して出
力する。一方、入力端子214から供給される制御信号
Lが論理”1”の時は、入力端子216から供給される
前段(i−1番目)の擬似乱数発生回路101からの擬
似乱数Xi-1(状態制御信号)が論理”0”であれば関
数発生回路2021の出力データを選択して出力し、入
力端子216から供給される擬似乱数Xi-1が論理”
1”であれば関数発生回路2022の出力データを選択
して出力する。
【0028】また、セレクタ203は、入力端子216
から供給される擬似乱数Xi-1が論理”0”であれば、
関数発生回路2021の出力を選択して出力し、入力端
子216から供給される擬似乱数Xi-1が論理”1”で
あれば、関数発生回路2022の出力を選択して出力す
る。そして、このセレクタ203の出力が、i番目の擬
似乱数発生回路101が発生した擬似乱数Xiとして出
力端子217より出力される。
【0029】この擬似乱数発生回路101では、まず最
初に論理”0”の制御信号Lが入力され、入力端子21
3から供給されるデータPIiがセレクタ206を通じ
てレジスタ205に入力され、入力端子215からクロッ
ク信号CLKのクッロクパルスが入力されると、レジス
タはこのデータPIiを最初の状態データとして取り込
んで保持する。その後、制御信号Lは論理”1”に設定
され、以降、セレクタ203、206は前段の擬似乱数
発生回路101が発生した擬似乱数発生回路Xi-1の論
理値にしたがって、関数発生回路2021、2022の
いずれかが出力した1ビットおよびmビットのデータを
選択してそれぞれ出力端子217およびレジスタ205
に出力する。
【0030】このように、レジスタ205が保持したデ
ータは、関数発生回路2021、2024で変換され、
いずれかの関数発生回路2021、2024のデータが
セレクタ206を通じてレジスタ205に入力される。
そして、レジスタ205はクロック信号CLKの各クロ
ックパルスごとに、入力されたデータを新たな状態を表
すデータとして取り込み、保持する。そのため、この擬
似乱数発生回路101では、前段の擬似乱数発生回路1
01が発生した擬似乱数Xi-1の論理値に係わらず、ク
ロック信号CLKの各クロックパルスが入力されるごと
にレジスタ205は必ず新たなデータを取り込んで保持
し、したがって、各クロックパルスごとに必ず内部状態
が変化する。そして、このような内部状態の変化に応じ
て擬似乱数Xiが出力端子217から出力される。
【0031】なお、セレクタ206は、入力端子216
から供給される前段の擬似乱数発生回路101からの擬
似乱数Xi-1(状態制御信号)が論理”1”であれば関
数発生回路2022の出力を選択して出力するので、擬
似乱数Xi-1が論理”1”のときは、本来次の内部状態
を表すデータとして関数発生回路2021が出力してい
るデータはスキップされ、関数発生回路2022の出力
データがレジスタ205に保持される。
【0032】次に、このように構成された擬似乱数発生
装置100の動作について説明する。図1の擬似乱数発
生装置100に擬似乱数を発生させるには次のようにす
る。まず、各擬似乱数発生回路101の内部状態を初期
化するため、各擬似乱数発生回路101ごとに異なるm
ビットのデータを入力端子105に供給し、そして、入
力端子104に論理”0”の制御信号Lを供給して入力
端子103からはクロック信号CLKを供給する。その
結果、各擬似乱数発生回路101内の上記レジスタ20
5(図2)に入力端子105から供給したmビットのデ
ータがセレクタ206を通じてレジスタ205に入力さ
れ、保持される。
【0033】次に、入力端子104に論理”1”の制御
信号Lを供給し、入力端子103からはクロック信号C
LKを供給して通常の動作状態とする。これにより、各
擬似乱数発生回路101では、入力端子103から供給
したクロック信号の各クロックパルスがレジスタ205
に入力されるごとに、レジスタ205は、上述のように
して関数発生回路2021、2022が発生した新たな
状態を表すデータをセレクタ206を通じて取り込み、
保持する。その際、セレクタ206は、前段の擬似乱数
発生回路101が発生した擬似乱数Xi-1(状態制御信
号)の論理値にしたがって関数発生回路2021、20
22のいずれかが発生したデータを選択してレジスタ2
05に供給する。
【0034】そのため、各擬似乱数発生回路101で
は、前段の擬似乱数発生回路101が発生した擬似乱数
i-1の論理値が論理”0”あるいは論理”1”のいず
れであっても、クロック信号CLKの各クロックパルス
が入力されるごとにレジスタ205は必ず新たなデータ
を取り込んで保持し、したがって、各クロックパルスご
とに必ず内部状態が変化する。
【0035】そして、各擬似乱数発生回路101の関数
発生回路2021、2022はこの内部状態に応じて決
る1ビットのデータを発生してセレクタ203に出力
し、セレクタ203は前段の擬似乱数発生回路101が
発生した擬似乱数Xi-1の論理値にもとづいて関数発生
回路2021、2022からの上記1ビットのデータの
いずれかを選択し、出力端子217から擬似乱数Xi
して出力する。排他的論理和回路102は、すべての擬
似乱数発生回路101が発生した擬似乱数X1 nの排他
的論理和を計算し、計算結果をこの擬似乱数発生装置1
00が発生した擬似乱数として出力端子106を通じて
出力する。
【0036】このように本実施の形態の擬似乱数発生装
置100では、各擬似乱数発生回路101の内部状態は
前段が発生した擬似乱数(状態制御信号)の論理値に係
わらず必ず変化するので、ロックインの問題は発生しな
い。したがって、この擬似乱数発生装置100では暗号
学的に高い安全性を備えた擬似乱数を発生することがで
きる。また、多数の擬似乱数発生回路101を用いなく
とも安全性の高い擬似乱数を発生することができるの
で、装置の小型化および低コスト化を図ることが可能で
ある。
【0037】なお、この擬似乱数発生装置100では各
擬似乱数発生回路101において2つの関数発生回路を
用いたが、図3に示したようにさらに多くの関数発生回
路を配列することも可能である。この擬似乱数発生回路
110では、S0、S1を0<S0<S1を満たす整数とし
て、レジスタ205の保持データが入力される最初の関
数発生回路2020から数えてS0番目の関数発生回路
2021およびS1番目(最後)の関数発生回路202
2の出力データ(m+1ビット)がセレクタ203、2
06に供給されている。
【0038】この擬似乱数発生回路110でも、上述し
た擬似乱数発生回路101の場合と同様に、前段の擬似
乱数発生回路が発生した擬似乱数Xi-1の論理値に係わ
らず、クロック信号CLKの各クロックパルスが入力さ
れるごとにレジスタ205は必ず新たなデータを取り込
んで保持し、したがって、各クロックごとに必ず内部状
態が変化する。そして、このような内部状態の変化に応
じて擬似乱数Xiが出力端子217から出力される。そ
のため、擬似乱数発生回路110を用いた場合にもロッ
クインを起すことなく擬似乱数を発生することができ
る。
【0039】ただし、擬似乱数発生回路110ではより
多くの関数発生回路が必要であるから、装置の規模およ
びコストの点では不利となる。したがって、2つの関数
発生回路を用いた擬似乱数発生回路101は、装置の小
型化と、擬似乱数の暗号学的な安全性を両立できるとい
う点では最適である。なお、擬似乱数発生回路110に
おいてS0=1、S1=2とすると擬似乱数発生回路11
0は上述した擬似乱数発生回路101と同一構成とな
る。
【0040】本実施の形態の擬似乱数発生装置100で
は、各擬似乱数発生回路101のレジスタ205が保持
する内部状態を表すデータはすべてmビットで同一であ
るとしたが、本発明では従来と異なり、このビット数を
各擬似乱数発生回路101ごとに異なる値とすることも
可能である。そのような構成とした場合にも、各擬似乱
数発生回路101は上述の場合と基本的に同様に動作し
てそれぞれ擬似乱数を発生し、排他的論理和回路102
が各擬似乱数発生回路101が発生した擬似乱数の排他
的論理和を算出することで最終的な擬似乱数が得られ
る。そして、内部状態を表すデータのビット数を擬似乱
数発生回路ごとに変えることで多様性が増し、発生され
る擬似乱数はより質が向上して暗号学的な安全性は一層
高まる。
【0041】さらにパラメータを次のように最適化する
ことにより擬似乱数発生装置100の性能を一層高める
ことができる。ここでは、一般化のため擬似乱数発生装
置100は上記擬似乱数発生回路110で構成され、ま
た内部状態を表すデータのビット数は擬似乱数発生回路
ごとに任意に設定されているものとする。そして、i番
目の擬似乱数発生回路110が発生する擬似乱数系列の
周期をLiとし、i番目の擬似乱数発生回路110が発
生する擬似乱数系列の1周期中に出現する論理”1”の
数をWiとして、任意のiに対してLiと(Li-1
i-1)×S0+Wi-1×S1とが互いに素で、2より大き
い任意のiに対してLiとL1×L2×…×Li-2とが互い
に素となるように、S0、S1および周期Liを選定す
る。なお、擬似乱数発生装置100を図1のように擬似
乱数発生回路101で構成した場合は、S0、S1はS0
=1、S1=1に選定されているので、残る周期Liを上
記条件を満たすように選定することになる。S0、S1
よび周期Liをこのように選定することで、擬似乱数発
生装置100が出力する擬似乱数系列の周期を最大にす
ることができる。
【0042】このことは、次のようにして証明できる。
まず、図1において、擬似乱数Xi-1の周期がL1×L2
×……×Li-1で、その1周期中に出現する論理”0”
の数と論理”1”の数との比が(Li-1−Wi-1):W
i-1であると仮定する。このとき、i番目の擬似乱数発
生回路110(101)の内部状態は、L1×L2×……
×Li-1時間の後に、ちょうど{(Li-1−Wi-1)×S0
+Wi-11}×L1×L2×……×Li-2クロックパルス
分だけ更新される。
【0043】ところで、上述のように、任意のiに対し
てLiと(Li-1−Wi-1)×S0+Wi-1×S1とが互いに
素で、2より大きい任意のiに対してLiとL1×L2×
…×Li-2とが互いに素となるように、S0、S1および
周期Liを選定すると、擬似乱数Xi-1とi番目の擬似乱
数発生回路110(101)の内部状態の両方が同時に
ちょうど一巡するのは、L1×L2×……×Li-1×Li
間の後であるから、擬似乱数Xiの周期はL1×L2×…
…×Li-1×Liで、その間にi番目の擬似乱数発生回路
110(101)のどの内部状態も等しい回数だけスキ
ップされている。したがって、擬似乱数Xiの1周期中
に出現する論理”0”と論理”1”の数の比は(Li-1
−Wi-1):Wi-1となる。ところで、この仮定は、i=
2の場合には成り立っているから、以上の議論は、i=
2から出発して、i=2、3、...、nについてまで
適用できる。従って、擬似乱数Xnの周期(すなわち擬
似乱数発生装置100が発生する擬似乱数の周期)はL
1×L2×……×Lnとなる。そして、この周期は、それ
ぞれの周期がLiである擬似乱数発生回路を組み合わせ
て得られる擬似乱数の周期の最大値に等しい。したがっ
て、本実施の形態の擬似乱数発生装置100では、上記
条件を満たすようにS0、S1、および周期Liを選定す
ることで、擬似乱数発生装置100が出力する擬似乱数
系列の周期を最大にすることができる。
【0044】なお、図3の擬似乱数発生回路でS0
0、S1=1と選ぶと、擬似乱数発生回路110は図8
に示した擬似乱数発生回路と同一構成となり、その場
合、擬似乱数発生回路110の内部状態は、L1×L2×
……×Li-1時間の後に、Wi-1×L1×L2×……×L
i-2クロックパルス分だけ更新されることになるが、図
7に示した従来の擬似乱数発生装置では内部状態が常に
更新されるとは限らないので、ちょうどWi-1×L1×L
2×……×Li-2クロックパルス分だけ常に更新されると
は言えず、以上の議論は適用できない。
【0045】なお、擬似乱数発生装置100では排他的
論理和回路102により、各擬似乱数発生回路101が
発生した擬似乱数の排他的論理和を算出して擬似乱数を
得ているが、各擬似乱数発生回路101が発生した擬似
乱数に対して排他的論理和以外の演算を行って擬似乱数
を発生することも可能である。ただし、排他的論理和を
使うことが、擬似乱数の暗号学的な安全性と装置の小規
模化を両立できるという点で最適である。
【0046】また、排他的論理和回路102の代りに各
擬似乱数発生回路101ごとに排他的論理和回路を設け
る構成とすることも可能である。図4は、各擬似乱数発
生回路ごとに排他的論理和回路を設けた場合の発明の実
施の形態を示す機能ブロック図である。この擬似乱数発
生装置111では、各擬似乱数発生回路101ごとに排
他的論理和回路802が設けられ、i番目の排他的論理
和802の一方の入力端子にはi−1番目の排他的論理
和回路802が出力する擬似乱数Yi-1が入力され、も
う一方の入力端子にはi番目の擬似乱数発生回路101
が発生した擬似乱数Xiが入力されている。そして、i
−1番目の排他的論理和回路802からの擬似乱数Y
i-1が状態制御信号としてi番目の擬似乱数発生回路1
01に供給されている。また、最後の排他的論理和回路
802が算出した擬似乱数Ynがこの擬似乱数発生装置
111が発生した擬似乱数として出力端子106より出
力されている。
【0047】このような構成においても擬似乱数Xi
擬似乱数Yiとの性質は等しいので、擬似乱数発生装置
111は擬似乱数発生装置100と同様に動作し、した
がって擬似乱数発生装置100と同様の効果が得られ
る。そして、この擬似乱数発生装置111では、擬似乱
数発生回路101と排他的論理和802とを1つの集積
回路に搭載することができ、それらをカスケード接続す
ることによって所望の安全性を持つ擬似乱数発生装置を
簡単に構成できる。
【0048】図1の擬似乱数発生装置100を構成する
擬似乱数発生回路101は、図8に示した従来の擬似乱
数発生回路において、関数発生回路を複数にして上述の
ような内部状態のスキップ機能を持たせたものである。
したがって、図9に示した非線形フィードバック・シフ
トレジスタでも、この非線形フィードバック・シフトレ
ジスタの基本構成は図8の擬似乱数発生回路と同じであ
るから、同様にして容易にスキップ機能を持たせ、図1
の擬似乱数発生装置100において、擬似乱数発生回路
101の代りに用いることができる。そして、図8の非
線形フィードバック・シフトレジスタにスキップ機能を
持たせて利用した場合には、関数発生回路の構成が簡素
となるので装置の小型化に有効である。
【0049】また、図9に示したLFSRでも同様にし
て容易に内部状態のスキップ機能を持たせることがで
き、擬似乱数発生回路101の代りに用いることができ
る。この場合にも関数発生回路の構成が簡素となるので
装置の小型化に有効である。
【0050】なお、図2に示した擬似乱数発生回路10
1において、セレクタ206に供給されるmビットのデ
ータ、したがってまたレジスタ205に供給されるmビ
ットのデータはシリアルデータおよびパラレルデータの
いずれであってもかまわない。そして、内部状態を表す
データのビット数が擬似乱数発生回路101ごとに異な
る場合、1〜n(nは2以上の整数)の各擬似乱数発生
回路101に対して最初にそれぞれm1、m2、……、m
nビットのデータを供給するとき、これらのデータをm1
+m2+……+mnビットのビット列として入力端子21
3に供給し、各擬似乱数発生回路10のレジスタ205
には対応するビット列部分をそれぞれ保持させるように
することも可能である。
【0051】次に本発明の第2の実施の形態について説
明する。図5は、第2の実施の形態の擬似乱数発生装置
の基本構成を示す機能ブロック図、図6は図5の擬似乱
数発生装置を構成する擬似乱数発生回路を示す機能ブロ
ック図である。図中、図1、図2と同一の要素には同一
の符号が付されており、それらに関する詳しい説明はこ
こでは省略する。
【0052】この擬似乱数発生装置112が、擬似乱数
発生装置100と機能的に異なるのは複数ビットのデー
タとして擬似乱数を発生する点であり、一方、構成の点
では、擬似乱数発生回路601の構成が異なり、また関
数発生回路603が追加されている点で異なっている。
図5に示したようにこの擬似乱数発生装置112は、多
値の擬似乱数を発生する複数の擬似乱数発生回路601
を備え、擬似乱数発生回路601には、入力端子103
を通じてクロック信号CLKが入力され、入力端子10
4からは制御信号Lが入力されている。また、入力端子
105からは擬似乱数発生回路601が最初に保持する
mビットのデータが入力される。
【0053】i番目(nを正の整数としてi=1、
2、...、n)の擬似乱数発生回路601が発生した
擬似乱数Xi(kを2以上の整数としてkビットのデー
タ)は、各擬似乱数発生回路601ごとに設けられた関
数発生回路603に入力され、関数発生回路603はこ
の擬似乱数Xiに予め決められた変換を施して1ビット
のデータとし、擬似乱数Zi(状態制御信号)として次
段(i+1番目)の擬似乱数発生回路601に出力す
る。ただし、最初の擬似乱数発生回路601には、論理
値が一定(本実施の形態では論理”0”)の状態制御信
号(Z0)が入力されている。排他的論理和回路602
は、すべての擬似乱数発生回路601が発生した擬似乱
数X1 nのkビットのデータとしての排他的論理和を計
算し、計算結果をこの擬似乱数発生装置112が発生し
たkビットの擬似乱数として出力端子106を通じて出
力する。
【0054】i番目の擬似乱数発生回路601は図6に
示したように、レジスタ205、関数7021、702
2、セレクタ703、206により構成されている。レ
ジスタ205は、入力端子215からクロック信号CL
Kの1つのクロックパルスが供給されるごとに、セレク
タ206が出力しているmビットのデータを内部状態を
表すデータ(本発明に係わる状態データ)として保持
し、同時に、保持したデータを関数発生回路7021に
出力する。
【0055】関数発生回路7021は、レジスタ205
から供給されるmビットのデータに対して予め決められ
た変換を施し、もとのデータよりkビット多いm+kビ
ットのデータを発生し、発生したデータの各ビットのう
ちmビットを関数発生回路7022とセレクタ206と
に供給し、一方、残りのkビット(本発明に係わる特定
のビット)をセレクタ703に供給する。関数発生回路
7022は関数発生回路7021と同様に構成され、関
数発生回路7021から供給されるmビットのデータに
対して予め決められた変換を施して、m+kビットのデ
ータを発生し、発生したデータの各ビットのうちmビッ
トをセレクタ206に供給し、一方、残りのkビットを
セレクタ703に供給する。なお、関数発生回路702
2は関数発生回路7021からのデータにもとづいて新
たなデータを発生するので、結局レジスタ205が保持
しているデータに応じて新たなデータを発生しているこ
とになる。
【0056】セレクタ703は、入力端子216から供
給される前段からの擬似乱数Zi-1(状態制御信号)が
論理”0”であれば、関数発生回路7021の出力を選
択して出力し、入力端子216から供給される状態制御
信号Zi-1が論理”1”であれば、関数発生回路702
2の出力を選択して出力する。そして、このセレクタ7
03の出力が、擬似乱数発生回路601が発生したkビ
ットの擬似乱数Xiとして出力端子717より出力され
る。
【0057】この擬似乱数発生回路601でも、セレク
タ206は、入力端子216から供給される前段の擬似
乱数発生回路601からの状態制御信号Zi-1が論理”
1”であれば関数発生回路7022の出力を選択して出
力するので、状態制御信号Zi-1が論理”1”のとき
は、本来次の内部状態を表すデータとして関数発生回路
7021が出力しているデータはスキップされ、関数発
生回路7022の出力データがレジスタ205に保持さ
れる。
【0058】この擬似乱数発生回路601では、まず最
初に論理”0”の制御信号Lが入力され、入力端子21
3から供給されるデータPIiがセレクタ206を通じ
てレジスタ205に入力され、入力端子215からクロッ
ク信号CLKのクロックパルスが入力されると、レジス
タはこのデータPIiを最初の状態データとして取り込
んで保持する。その後、制御信号Lは論理”1”に設定
され、以降、セレクタ703、206は前段の関数発生
回路603が発生した擬似乱数Zi-1の論理値にしたが
って、関数発生回路7021、7022のいずれかが出
力したkビットおよびmビットのデータを選択してそれ
ぞれ出力端子717およびレジスタ205に出力する。
【0059】このように、レジスタ205が保持したデ
ータは、関数発生回路7021、7022で変換され、
いずれかの関数発生回路7021、7022のデータが
セレクタ206を通じてレジスタ205に入力される。
そして、レジスタ205はクロック信号CLKの各クロ
ックパルスごとに、入力されたデータを新たな状態を表
すデータとして取り込み、保持する。
【0060】そのため、この擬似乱数発生回路601で
は、前段の関数発生回路603が発生した擬似乱数Z
i-1の論理値に係わらず、クロック信号CLKの各クロ
ックパルスが入力されるごとにレジスタ205は必ず新
たなデータを取り込んで保持し、したがって、各クロッ
クごとに必ず内部状態が変化する。そして、このような
内部状態の変化に応じてkビットの擬似乱数Xiが出力
端子217から出力される。
【0061】次に、このように構成された擬似乱数発生
装置112の動作について説明する。図5の擬似乱数発
生装置112に擬似乱数を発生させるには次のようにす
る。まず、各擬似乱数発生回路601の内部状態を初期
化するためのmビットのデータ(擬似乱数発生回路60
1ごとに異なる)を入力端子105に供給し、そして、
入力端子104に論理”0”の制御信号Lを供給して入
力端子103からはクロック信号CLKを入力する。そ
の結果、各擬似乱数発生回路601内の上記レジスタ2
05(図6)に入力端子105から供給したmビットの
データがセレクタ206を通じてレジスタ205に入力
され、保持される。
【0062】次に、入力端子104に論理”1”の制御
信号Lを供給し、入力端子103からはクロック信号C
LKを供給して通常の動作状態とする。これにより、各
擬似乱数発生回路601では、入力端子103から供給
したクロック信号の各クロックパルスがレジスタ205
に入力されるごとに、レジスタ205は、上述のように
して関数発生回路7021、7022が発生した新たな
状態を表すデータをセレクタ206を通じて取り込み、
保持する。その際、セレクタ206は、前段の擬似乱数
発生回路601が発生した擬似乱数Xi-1を関数発生回
路603が変換して発生した擬似乱数Zi-1(状態制御
信号)の論理値にしたがって関数発生回路7021、7
022のいずれかが発生したデータを選択してレジスタ
205に供給する。
【0063】そのため、各擬似乱数発生回路601で
は、前段の擬似乱数発生回路601に対応する関数発生
回路603が発生した擬似乱数Zi-1(状態制御信号)
の論理値が論理”0”あるいは論理”1”のいずれであ
っても、クロック信号CLKの各クロックパルスが入力
されるごとにレジスタ205は必ず新たなデータを取り
込んで保持し、したがって、各クロックごとに必ず内部
状態が変化する。
【0064】そして、各擬似乱数発生回路601の関数
発生回路7021、7022はこの内部状態に応じて決
るkビットのデータを発生してセレクタ703に出力
し、セレクタ703は前段の擬似乱数発生回路601に
対応する関数発生回路603が発生した擬似乱数Zi-1
(状態制御信号)の論理値にもとづいて関数発生回路7
021、7022からの上記kビットのデータのいずれ
かを選択し、出力端子717からkビットの擬似乱数X
iとして出力する。排他的論理和回路602は、すべて
の擬似乱数発生回路601が発生した擬似乱数X1 n
排他的論理和を計算し、計算結果をkビットの擬似乱数
として出力端子606を通じて出力する。
【0065】したがってこの擬似乱数発生装置112で
も、各擬似乱数発生回路601の内部状態は前段が発生
した擬似乱数にもとづく状態制御信号の論理値に係わら
ず必ず変化するので、ロックインの問題は発生しない。
そのため、擬似乱数発生装置112では暗号学的に高い
安全性を備えた擬似乱数を発生することができる。ま
た、多数の擬似乱数発生回路601を用いなくとも安全
性の高い擬似乱数を発生することができるので、装置の
小型化および低コスト化を図ることが可能である。な
お、この擬似乱数発生装置112では各擬似乱数発生回
路601において2つの関数発生回路を用いたが、擬似
乱数発生装置100の場合と同様、擬似乱数発生回路1
10(図3)のようにさらに多くの関数発生回路を配列
することも可能である。ただし、そのような構成ではよ
り多くの関数発生回路が必要であるから、装置の規模お
よびコストの点では不利となる。したがって、2つの関
数発生回路を用いた擬似乱数発生回路601は、装置の
小型化と、擬似乱数の暗号学的な安全性を両立できると
いう点では最適である。
【0066】また、この擬似乱数発生装置112では、
各擬似乱数発生回路601のレジスタ205が保持する
内部状態を表すデータはすべてmビットで同一であると
したが、擬似乱数発生装置100の場合と同様に、この
ビット数を各擬似乱数発生回路601ごとに異なる値と
することも可能である。そのような構成とした場合に
も、各擬似乱数発生回路601は上述の場合と基本的に
同様に動作してそれぞれ擬似乱数を発生し、排他的論理
和回路602が各擬似乱数発生回路601が発生した擬
似乱数の排他的論理和を算出することで擬似乱数が得ら
れる。そして、内部状態を表すデータのビット数を擬似
乱数発生回路ごとに変えることで多様性が増し、発生さ
れる擬似乱数はより質が向上して暗号学的な安全性は一
層高まる。
【0067】さらに、この擬似乱数発生装置112にお
いてもパラメータを最適化することにより性能を一層高
めることができる。すなわち、i番目の擬似乱数発生回
路601が発生する擬似乱数系列の周期をLiとし、i
番目の関数発生回路603が出力する状態制御信号Zi
(擬似乱数系列)の1周期中に出現する論理”1”の数
をWiとして、任意のiに対してLiと(Li-1−Wi-1
×S0+Wi-1×S1とが互いに素で、2より大きい任意
のiに対してLiとL1×L2×…×Li-2とが互いに素と
なるように、S0、S1および周期Liを選定する。
【0068】なお、一般化のため擬似乱数発生回路60
1において内部状態を表すデータのビット数は擬似乱数
発生回路601ごとに任意に設定されているものとす
る。また、S0、S1は、擬似乱数発生回路110の場合
と同様、擬似乱数発生回路601において関数発生回路
をさらに多数配列した場合に、何番目の関数発生回路か
らセレクタ206にデータが供給されているかを表す数
であり、S0番目とS1番目の関数発生回路からセレクタ
206にデータが供給され、S1番目の関数発生回路が
最後の関数発生回路である。S0、S1および周期Li
上記条件を満たすように選定することで、擬似乱数発生
装置112が出力する擬似乱数系列の周期を最大にする
ことができる。このことは、擬似乱数発生装置100の
場合と同様にして証明できるので、ここではその証明は
省略する。なお、擬似乱数発生装置112ではS0
1、S1=2であるから、擬似乱数発生装置112の場
合は上記条件を満たすように周期Liを選定することに
なる。
【0069】擬似乱数発生装置112では排他的論理和
回路602により、各擬似乱数発生回路601が発生し
た擬似乱数の排他的論理和を算出して擬似乱数を得てい
るが、各擬似乱数発生回路601が発生した擬似乱数に
対して排他的論理和以外の演算を行って擬似乱数を発生
することも可能である。ただし、排他的論理和を使うこ
とが、擬似乱数の暗号学的な安全性と装置の小規模化を
両立できるという点で最適である。また、擬似乱数発生
装置111(図4)のように、排他的論理和回路602
の代りに各擬似乱数発生回路601ごとに排他的論理和
回路を設ける構成とすることも可能である。
【0070】
【発明の効果】以上説明したように本発明の擬似乱数発
生方法では、擬似乱数発生回路において複数のビットか
ら成る状態データを保持し、保持した状態データに応じ
て複数のビットから成る第1および第2のデータを発生
する。そして、第1および第2のデータのうちのいずれ
かのデータの特定のビットを、前段の擬似乱数発生回路
が発生した第1の擬似乱数にもとづいて選択し第1の擬
似乱数として出力する。一方、第1および第2のデータ
のうちのいずれかのデータの、上記特定のビットを除い
たデータを、前段の擬似乱数発生回路が発生した第1の
擬似乱数にもとづいて選択し次に保持すべき状態データ
とする。
【0071】また、本発明の擬似乱数発生装置では、擬
似乱数発生回路において、レジスタは、複数のビットか
ら成る状態データを、クロック信号の各クロックパルス
に同期して取り込んで保持し、第1および第2の関数発
生回路は、レジスタが保持している状態データに応じて
複数のビットから成る第1および第2のデータをそれぞ
れ出力する。そして、第1のセレクタは、第1および第
2の関数発生回路がそれぞれ出力する第1および第2の
データのうちのいずれかのデータの特定のビットを、前
段の擬似乱数発生回路が発生した第1の擬似乱数にもと
づいて選択し第1の擬似乱数として出力する。一方、第
2のセレクタは、第1および第2の関数発生回路がそれ
ぞれ出力する第1および第2のデータのうちのいずれか
のデータの、上記特定のビットを除いたデータを、前段
の擬似乱数発生回路が発生した第1の擬似乱数にもとづ
いて選択しレジスタに状態データとして供給する。
【0072】したがって、本発明では、各擬似乱数発生
回路の状態データが表す各擬似乱数発生回路の内部状態
は前段が発生した擬似乱数に係わらず必ず変化し、その
ためロックインの問題は発生しない。その結果、本発明
では暗号学的に高い安全性を備えた擬似乱数を発生でき
る。また、ロックインの問題がないので多数の擬似乱数
発生回路を用いなくとも安全性の高い擬似乱数を発生す
ることができ、装置の小型化および低コスト化を図るこ
とが可能である。そして、本発明では状態データのビッ
ト数を擬似乱数発生回路ごとに変えることが可能である
から、多様性を増大させて、発生される擬似乱数の質を
一層向上させ、暗号学的な安全性を一層高めることがで
きる。さらに、擬似乱数を複数のビットから成るデータ
として発生する多値の擬似乱数発生回路を用いることが
できるので、より利用範囲を拡大することができる。
【0073】また、本発明の擬似乱数発生方法および擬
似乱数発生装置では、第1のデータまたは第1の関数発
生回路は複数のデータまたは複数の関数発生回路のうち
のS0番目のデータまたは関数発生回路であって第2の
データまたは第2の関数発生回路はS1番目のデータま
たは関数発生回路であるとし、また、iを1以上の整数
としてi番目の擬似乱数発生回路が発生する第1の擬似
乱数の系列の周期をLi、i番目の擬似乱数発生回路が
発生する第1の擬似乱数の系列の1周期中に出現する論
理”1”の数をWiとした場合、任意のiに対してLi
(Li-1−Wi-1)×S0+Wi-1×S1とが互いに素で、
2より大きい任意のiに対してLiとL1×L2×…×L
i-2とが互いに素であるように、S0、S1およびLiが選
定される。したがって、本発明では周期が最大の擬似乱
数系列を発生することができる。
【図面の簡単な説明】
【図1】本発明による擬似乱数発生装置の一例の基本構
成を示す機能ブロック図である。
【図2】図1の擬似乱数発生装置を構成する擬似乱数発
生回路を示す機能ブロック図である。
【図3】より多くの関数発生回路を用いた擬似乱数発生
回路を示す機能ブロック図である。
【図4】各擬似乱数発生回路ごとに排他的論理和回路を
設けた場合の発明の実施の形態を示す機能ブロック図で
ある。
【図5】第2の実施の形態の擬似乱数発生装置の基本構
成を示す機能ブロック図である。
【図6】図5の擬似乱数発生装置を構成する擬似乱数発
生回路を示す機能ブロック図である。
【図7】線形フィードバック・シフトレジスタ(LFS
R)をカスケード接続した従来の擬似乱数発生装置の基
本構成を示す機能ブロック図である。
【図8】従来の基本的な構成の擬似乱数発生回路の一例
を示す機能ブロック図である。
【図9】非線形フィードバック・シフトレジスタと呼ば
れる従来の擬似乱数発生回路の基本構成を示す機能ブロ
ック図である。
【図10】図7の擬似乱数発生装置を構成する線形フィ
ードバック・シフトレジスタの基本構成を示す機能ブロ
ック図である。
【符号の説明】
100、111、112……擬似乱数発生装置、10
1、110、601……擬似乱数発生回路、102、6
02、802……排他的論理和回路、205……レジス
タ、203、206、703……セレクタ、603、2
021、2020、2022、7021、7022……
関数発生回路。
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 7/58 G09C 1/00 650

Claims (14)

    (57)【特許請求の範囲】
  1. 【請求項1】 順序づけられた複数の擬似乱数発生回路
    を用い、前段の前記擬似乱数発生回路が発生した第1の
    擬似乱数にもとづいて各擬似乱数発生回路に第1の擬似
    乱数を発生させ、前記複数の擬似乱数発生回路が発生し
    た前記第1の擬似乱数により第2の擬似乱数を発生する
    擬似乱数発生方法において、 各擬似乱数発生回路では、 複数のビットから成る状態データを保持し、 保持した前記状態データに応じて複数のビットから成る
    第1および第2のデータを発生し、 前記第1および第2のデータのうちのいずれかのデータ
    の特定のビットを、前段の前記擬似乱数発生回路が発生
    した前記第1の擬似乱数にもとづいて選択し前記第1の
    擬似乱数として出力し、 前記第1および第2のデータのうちのいずれかのデータ
    の、前記特定のビットを除いたデータを、前段の前記擬
    似乱数発生回路が発生した前記第1の擬似乱数にもとづ
    いて選択し次に保持すべき前記状態データとする、 ことを特徴とする擬似乱数発生方法。
  2. 【請求項2】 保持した前記状態データに応じて複数の
    ビットから成る順序づけられた複数のデータを発生し、 前記複数のデータのうちの1番目のデータは保持した前
    記状態データから直接発生し、2番目以降のデータはそ
    れぞれ1つ前のデータから発生し、 前記第1のデータは前記複数のデータのうちの最後のデ
    ータを除くいずれかのデータであり、 前記第2のデータは前記複数のデータのうちの最後のデ
    ータである、 ことを特徴とする請求項1記載の擬似乱数発生方法。
  3. 【請求項3】 S0、S1を0<S0<S1を満たす整数と
    して前記第1のデータは前記複数のデータのうちのS0
    番目のデータであって前記第2のデータはS1番目の前
    記データであり、 iを1以上の整数としてi番目の前記擬似乱数発生回路
    が発生する前記第1の擬似乱数の系列の周期をLi
    し、 i番目の前記擬似乱数発生回路が発生する前記第1の擬
    似乱数の系列の1周期中に出現する論理”1”の数をW
    iとし、 任意のiに対してLiと(Li-1−Wi-1)×S0+Wi-1
    ×S1とが互いに素で、2より大きい任意のiに対して
    iとL1×L2×…×Li-2とが互いに素である、 ことを特徴とする請求項2記載の擬似乱数発生方法。
  4. 【請求項4】 前記複数の擬似乱数発生回路により発生
    した前記第1の擬似乱数の排他的論理和を算出し、算出
    結果を前記第2の擬似乱数とすることを特徴とする請求
    項1記載の擬似乱数発生方法。
  5. 【請求項5】 前記複数の擬似乱数発生回路のそれぞれ
    に対応させて排他的論理和回路を設け、 各排他的論理和回路には、対応する前記擬似乱数発生回
    路が発生した前記第1の擬似乱数と、前段の前記擬似乱
    数発生回路に対応する前記排他的論理和回路が算出した
    擬似乱数との排他的論理和を算出させ、 最後の前記擬似乱数発生回路に対応する前記排他的論理
    和回路に算出させた擬似乱数を前記第2の擬似乱数とす
    る、 ことを特徴とする請求項1記載の擬似乱数発生方法。
  6. 【請求項6】 前記特定のビットは1つまたは複数のビ
    ットから成ることを特徴とする請求項1記載の擬似乱数
    発生方法。
  7. 【請求項7】 前記擬似乱数発生回路は非線型擬似乱数
    発生回路であることを特徴とする請求項1記載の擬似乱
    数発生方法。
  8. 【請求項8】 順序づけられた複数の擬似乱数発生回路
    を備え、各擬似乱数発生回路は前段の前記擬似乱数発生
    回路が発生した第1の擬似乱数にもとづいて第1の擬似
    乱数を発生し、前記複数の前記擬似乱数発生回路が発生
    した前記第1の擬似乱数により第2の擬似乱数を発生す
    る擬似乱数発生装置において、 各擬似乱数発生回路は、 複数のビットから成る状態データを、クロック信号の各
    クロックパルスに同期して取り込んで保持するレジスタ
    と、 前記レジスタが保持している前記状態データに応じて複
    数のビットから成る第1および第2のデータをそれぞれ
    出力する第1および第2の関数発生回路と、 前記第1および第2の関数発生回路がそれぞれ出力する
    前記第1および第2のデータのうちのいずれかのデータ
    の特定のビットを、前段の前記擬似乱数発生回路が発生
    した前記第1の擬似乱数にもとづいて選択し前記第1の
    擬似乱数として出力する第1のセレクタと、 前記第1および第2の関数発生回路がそれぞれ出力する
    前記第1および第2のデータのうちのいずれかの前記デ
    ータの、前記特定のビットを除いたデータを、前段の前
    記擬似乱数発生回路が発生した前記第1の擬似乱数にも
    とづいて選択し前記レジスタに前記状態データとして供
    給する第2のセレクタと、 を備えたことを特徴とする擬似乱数発生装置。
  9. 【請求項9】 前記レジスタが保持している状態データ
    に応じて複数のビットから成るデータをそれぞれ出力す
    る順序づけられた複数の関数発生回路を含み、 1番目の前記関数発生回路は前記レジスタが保持してい
    る前記状態データに直接したがって前記データを出力
    し、2番目以降の前記関数発生回路はそれぞれ1つ前の
    前記関数発生回路が出力したデータにしたがって前記デ
    ータを出力し、 前記第1の関数発生回路は前記複数の関数発生回路のう
    ちの最後の関数発生回路を除くいずれかの関数発生回路
    であり、 第2の前記関数発生回路は前記複数の関数発生回路のう
    ちの最後の関数発生回路である、 ことを特徴とする請求項8記載の擬似乱数発生装置。
  10. 【請求項10】 S0、S1を0<S0<S1を満たす整数
    として前記第1の関数発生回路は前記複数の関数発生回
    路のうちのS0番目の関数発生回路であって前記第2の
    関数発生回路はS1番目の関数発生回路であり、 iを1以上の整数としてi番目の前記擬似乱数発生回路
    が発生する前記第1の擬似乱数の系列の周期をLi
    し、 i番目の前記擬似乱数発生回路が発生する前記第1の擬
    似乱数の系列の1周期中に出現する論理”1”の数をW
    iとし、 任意のiに対してLiと(Li-1−Wi-1)×S0+Wi-1
    ×S1とが互いに素で、2より大きい任意のiに対して
    iとL1×L2×…×Li-2とが互いに素である、 ことを特徴とする請求項9記載の擬似乱数発生装置。
  11. 【請求項11】 前記複数の擬似乱数発生回路がそれぞ
    れ発生した前記第1の擬似乱数の排他的論理和を算出し
    て前記第2の擬似乱数として出力する排他的論理和回路
    を備えたことを特徴とする請求項8記載の擬似乱数発生
    装置。
  12. 【請求項12】 前記複数の擬似乱数発生回路のそれぞ
    れに対応する排他的論理和回路を有し、 各擬似乱数発生回路に対応する前記排他的論理和回路の
    一方の入力端子には対応する前記擬似乱数発生回路が発
    生した前記第1の擬似乱数が供給され、もう一方の入力
    端子は前段の前記擬似乱数発生回路に対応する排他的論
    理和回路の出力端子に接続され、 最後の前記擬似乱数発生回路に対応する前記排他的論理
    和回路から前記第2の擬似乱数が出力される、 ことを特徴とする請求項8記載の擬似乱数発生装置。
  13. 【請求項13】 前記特定のビットは1つまたは複数の
    ビットから成ることを特徴とする請求項8記載の擬似乱
    数発生装置。
  14. 【請求項14】 前記擬似乱数発生回路は非線型擬似乱
    数発生回路であることを特徴とする請求項8記載の擬似
    乱数発生装置。
JP9276517A 1997-09-24 1997-09-24 擬似乱数発生方法および装置 Expired - Fee Related JP3022439B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP9276517A JP3022439B2 (ja) 1997-09-24 1997-09-24 擬似乱数発生方法および装置
US09/226,102 US6192385B1 (en) 1997-09-24 1998-09-21 Pseudorandom number generating method and pseudorandom number generator
CA002247910A CA2247910A1 (en) 1997-09-24 1998-09-23 Pseudorandom number generating method and pseudorandom number generator
EP98118016A EP0905611A3 (en) 1997-09-24 1998-09-23 Pseudorandom number generating method and pseudorandom number generator

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9276517A JP3022439B2 (ja) 1997-09-24 1997-09-24 擬似乱数発生方法および装置

Publications (2)

Publication Number Publication Date
JPH1195984A JPH1195984A (ja) 1999-04-09
JP3022439B2 true JP3022439B2 (ja) 2000-03-21

Family

ID=17570583

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9276517A Expired - Fee Related JP3022439B2 (ja) 1997-09-24 1997-09-24 擬似乱数発生方法および装置

Country Status (4)

Country Link
US (1) US6192385B1 (ja)
EP (1) EP0905611A3 (ja)
JP (1) JP3022439B2 (ja)
CA (1) CA2247910A1 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11340799A (ja) * 1998-05-28 1999-12-10 Oki Electric Ind Co Ltd M系列発生回路、m系列の発生方法及びpn系列発生回路
JP3539870B2 (ja) * 1998-07-14 2004-07-07 株式会社日立製作所 乱数生成システム及び乱数生成方法
US6477251B1 (en) * 1998-11-25 2002-11-05 Gtech Rhode Island Corporation Apparatus and method for securely determining an outcome from multiple random event generators
US6636553B1 (en) * 1998-12-29 2003-10-21 Texas Instruments Incorporated Pseudorandom noise generator for WCDMA
US7190787B1 (en) * 1999-11-30 2007-03-13 Intel Corporation Stream cipher having a combiner function with storage based shuffle unit
US6647051B1 (en) * 1999-12-29 2003-11-11 Koninklijke Philips Electronics N.V. Zero delay mask for galois LFSR
US20020051537A1 (en) * 2000-09-13 2002-05-02 Rogaway Phillip W. Method and apparatus for realizing a parallelizable variable-input-length pseudorandom function
US6834291B1 (en) * 2000-10-27 2004-12-21 Intel Corporation Gold code generator design
US6678707B1 (en) 2000-10-30 2004-01-13 Hewlett-Packard Development Company, L.P. Generation of cryptographically strong random numbers using MISRs
JP4491706B2 (ja) 2002-04-19 2010-06-30 ソニー株式会社 暗号化復号化装置およびデータ受信装置
EP1361509B1 (en) * 2002-05-08 2013-07-10 Sap Ag Software delivery manager
US7822797B2 (en) * 2002-07-29 2010-10-26 Broadcom Corporation System and method for generating initial vectors
US20040024803A1 (en) * 2002-07-31 2004-02-05 Allen Montijo Cascaded modified PRBS counters form easily programmed and efficient large counter
JP3732188B2 (ja) 2003-03-31 2006-01-05 Necマイクロシステム株式会社 擬似乱数発生回路
US20050050122A1 (en) * 2003-09-02 2005-03-03 Andreas Blumenthal Object-oriented pseudo-random number generator interface
US7328228B2 (en) 2003-09-02 2008-02-05 Sap Aktiengesellschaft Mapping pseudo-random numbers to predefined number ranges
US7426666B2 (en) * 2004-05-18 2008-09-16 Lucent Technologies Inc. Noisy channel emulator for high speed data
WO2006024705A1 (fr) * 2004-08-02 2006-03-09 France Telecom Generation d'une sequence de donnees pseudo aleatoire
EP2056275A4 (en) * 2006-07-25 2011-05-04 Nec Corp PSEUDOZUFALLSZAHLENGENERATOR, STREAM ENCRYPTION DEVICE AND PROGRAM
US20080298583A1 (en) * 2007-05-31 2008-12-04 Lucent Technologies Inc. System and method of quantum encryption
JP5119417B2 (ja) * 2008-04-17 2013-01-16 ルネサスエレクトロニクス株式会社 擬似乱数生成装置
JP5113630B2 (ja) * 2008-05-30 2013-01-09 株式会社日立製作所 秘密分散方法、プログラム、及び装置
JP5171420B2 (ja) * 2008-06-18 2013-03-27 ルネサスエレクトロニクス株式会社 擬似乱数生成装置
KR20120095609A (ko) * 2011-02-21 2012-08-29 삼성전자주식회사 반도체 메모리 시스템 및 이의 프로그램 방법
JP6194136B2 (ja) * 2015-02-19 2017-09-06 三菱電機株式会社 疑似乱数生成装置及び疑似乱数生成プログラム
US10680810B2 (en) * 2016-10-26 2020-06-09 Nxp B.V. Method of generating an elliptic curve cryptographic key pair
JP2017118560A (ja) * 2017-02-06 2017-06-29 株式会社 エヌティーアイ データ処理装置、データ処理システム、及びデータ処理方法
CN111176610B (zh) * 2019-12-27 2022-03-25 北京百度网讯科技有限公司 量子随机数生成方法、装置、电子设备及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5257282A (en) * 1984-06-28 1993-10-26 Unisys Corporation High speed code sequence generator
JPH01206718A (ja) * 1988-02-12 1989-08-18 Fujitsu Ltd 乱数発生器
GB9003999D0 (en) * 1990-02-22 1990-04-18 Enfranchise Sixty Ltd Pseudo-random sequence generators
DE69326681T2 (de) * 1993-04-06 2000-02-10 Hewlett Packard Co Verfahren und Apparat zum Erzeugen von linearen Rückführungsschieberegistersequenzen
JPH09179726A (ja) * 1995-12-25 1997-07-11 Nec Corp 擬似乱数発生装置

Also Published As

Publication number Publication date
US6192385B1 (en) 2001-02-20
CA2247910A1 (en) 1999-03-24
JPH1195984A (ja) 1999-04-09
EP0905611A2 (en) 1999-03-31
EP0905611A3 (en) 2001-07-04

Similar Documents

Publication Publication Date Title
JP3022439B2 (ja) 擬似乱数発生方法および装置
JP2937919B2 (ja) 疑似乱数発生回路
JP3092567B2 (ja) 暗号鍵の生成方法および装置
JP4828068B2 (ja) コンピュータで効率的な線形フィードバック・シフト・レジスタ
JP4127472B2 (ja) データ変換装置及びデータ変換装置のデータ変換方法及びプログラム及びコンピュータ読み取り可能な記録媒体
JP3696209B2 (ja) シード生成回路、乱数生成回路、半導体集積回路、icカード及び情報端末機器
US7142675B2 (en) Sequence generator and method of generating a pseudo random sequence
WO2005073842A1 (ja) 擬似乱数生成装置および擬似乱数生成プログラム
US20050097153A1 (en) Pseudorandom number generator
KR100377172B1 (ko) 데이터 암호화 표준 알고리즘을 이용한 암호화 장치의 키스케쥴러
JP2005215688A (ja) S−box演算を用いるハードウェア暗号化/復号化装置及び、その方法
US8166086B2 (en) Method and circuit for generating random numbers, and computer program product therefor
CN112422272B (zh) 一种防功耗攻击的aes加密方法及电路
WO2012016588A1 (en) Bit sequence generator
JPH1153173A (ja) 擬似乱数発生方法及び装置
KR20140110142A (ko) 난수 발생기
JPH09179726A (ja) 擬似乱数発生装置
US9619206B2 (en) Pseudo-random bit sequence generator
Yakut et al. Secure and efficient hybrid random number generator based on sponge constructions for cryptographic applications
Deepthi et al. Design, implementation and analysis of hardware efficient stream ciphers using LFSR based hash functions
JP5171420B2 (ja) 擬似乱数生成装置
JP2830842B2 (ja) 擬似乱数発生装置
US20140289295A1 (en) Method for generating a random output bit sequence
JP2002217898A (ja) 擬似乱数生成システム
JP2917962B2 (ja) M系列を任意にシフトする回路

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees