JPH09179726A - 擬似乱数発生装置 - Google Patents

擬似乱数発生装置

Info

Publication number
JPH09179726A
JPH09179726A JP7336920A JP33692095A JPH09179726A JP H09179726 A JPH09179726 A JP H09179726A JP 7336920 A JP7336920 A JP 7336920A JP 33692095 A JP33692095 A JP 33692095A JP H09179726 A JPH09179726 A JP H09179726A
Authority
JP
Japan
Prior art keywords
random number
circuit
pseudo random
pseudo
shift register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP7336920A
Other languages
English (en)
Inventor
Michio Shimada
道雄 島田
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 JP7336920A priority Critical patent/JPH09179726A/ja
Priority to AU75396/96A priority patent/AU7539696A/en
Priority to CA 2193196 priority patent/CA2193196A1/en
Priority to EP96120661A priority patent/EP0782069A1/en
Publication of JPH09179726A publication Critical patent/JPH09179726A/ja
Pending 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • H04L9/0668Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator producing a non-linear pseudorandom sequence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/12Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/122Hardware reduction or efficient architectures

Abstract

(57)【要約】 【課題】装置規模が小さくてすみ、線形フィードバック
・シフトレジスタのみからなる少数の擬似乱数発生回路
によって非線形性の大きな擬似乱数系列を発生でき、ス
トリーム暗号に適した擬似乱数発生装置を提供する。 【解決手段】n個の擬似乱数発生回路1011〜101n
と、これらn個の擬似乱数発生回路1011〜101n
出力を非線形結合してその結果を出力する結合関数回路
102と、結合関数回路102の出力がシフト入力とし
て入力するシフトレジスタ103と、シフトレジスタ1
03の内部状態のうち予め定められた複数のビットの非
線形結合を計算する非線形関数回路104とを設け、非
線形関数回路104での計算結果が擬似乱数を表わすビ
ットストリームとして出力端子108から出力されるよ
うにする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、擬似乱数を発生す
る擬似乱数発生装置に関し、特に、複数の擬似乱数発生
回路を有しこれら擬似乱数発生回路の出力を非線形結合
して擬似乱数を出力する擬似乱数発生装置に関する。
【0002】
【従来の技術】通信システムや計算機システムにおいて
は、許可されていない者が不正に情報を取得することな
どを防止するために、情報に擬似乱数を排他的論理和で
加算して暗号に変換したり、暗号に擬似乱数を排他的論
理和で加算して元の情報を復元したりするストリーム暗
号装置などが使用される。
【0003】情報への不正なアクセスを防ぐための暗号
化に使用される擬似乱数は、以下に説明するように、非
線形性が高いことが必須であり、そのため、暗号化に使
用される擬似乱数の発生方法として、結合関数と呼ばれ
る非線形関数によって複数の擬似乱数発生回路の出力を
非線形結合して非線形性のより高い擬似乱数を生成する
方法が、従来より広く知られている。以下、擬似乱数発
生回路とは、線形フィードバック・シフトレジスタな
ど、擬似乱数を与える基本的な回路のことを指し、擬似
乱数発生装置とは、1または複数の擬似乱数発生回路を
含んでより非線形性の高い擬似乱数を発生する装置のこ
とを言う。
【0004】ここで非線形結合とは、線形結合ではない
結合のことである。ビットx1,…,xn,…の線形結合と
は、y=x1+x2+…+xnやy=x1+x2+…+xn+1
など、排他的論理和"+"だけを使ってビットyを与える
ことである。したがって、ビットx1,…,xn,…の非線
形結合とは、y=x1*x2+x2*x3+…+xn*x1
ど、論理積"*"と排他的論理和"+"の両方(否定論理を
含んでもよい)を使ってビットyを与えることであり、
yを与える式をどのように変形しても線形結合に帰着し
ないようなものである。また、非線形結合の非線形性と
は、yを与える式の次数のことであり、式の次数が大き
いほど非線形性が高いとされる。なお、非線形関数の入
力(結合されるべき擬似乱数発生回路の数)を増やすほ
ど、非線形性の高い非線形結合が実現可能になる。
【0005】図4は、従来の擬似乱数発生装置の一例の
構成を示す機能ブロック図である。この擬似乱数発生装
置はn個の擬似乱数発生回路4011〜401nと、これ
らn個の擬似乱数発生回路4011〜401nの出力を非
線形結合して擬似乱数を出力端子408から出力する結
合関数回路402と、制御パルス(クロック)が入力す
る入力端子405と、モード制御用の入力端子406
と、初期状態と呼ばれるビット系列を入力するための入
力端子407とから構成されている。n個の擬似乱数発
生回路4011〜401nは、いずれも、入力端子405
〜407に接続しており、入力端子406に"0"が供給
されている時に入力端子405に制御パルスが入力され
た場合には、入力端子407から供給される初期状態を
取り込んで内部状態として保持し、入力端子406に"
1"が供給されている場合には、入力端子405に制御
パルスが1個入力されるごとに擬似乱数を出力するよう
に構成されている。なお、擬似乱数発生回路4011
401nには、一般に、それぞれ異なる初期状態が供給
される。
【0006】図4の擬似乱数発生装置を用いて擬似乱数
を発生させる場合には、まず、入力端子407に初期状
態を供給し、次に、入力端子406に"0"を供給して、
入力端子405に制御パルスを1個入力する。そして、
入力端子406に"1"を供給する。するとそれ以降は、
入力端子405に制御パルスを1個入力するごとに、各
擬似乱数発生回路4011〜401nの出力を結合関数回
路402によって非線形結合して得られた擬似乱数が、
出力端子408から得られる。
【0007】しかしながら、図4に示す擬似乱数発生装
置は、しばしば、各擬似乱数発生回路4011〜401n
に設定された初期状態がコリレーション・アタックと呼
ばれる解読方法によって推定されてしまい、その結果、
暗号の不正な解読を許してしまうという問題点がある。
すなわち、ある擬似乱数発生回路401j(1≦j≦
n)の出力で条件付けたときの結合関数回路402の出
力の条件付き確率分布が一様でない場合には、その擬似
乱数発生回路401jと等価な擬似乱数系列発生回路を
想定し、この擬似乱数系列発生回路の出力系列と結合関
数回路402の出力系列との相関が最大になるようにそ
の擬似乱数系列発生回路の初期状態を求めることで、擬
似乱数発生回路401jに与えられた初期状態を知るこ
とができる。このような性質があると、ストリーム暗号
の擬似乱数発生装置としては使えない。なお、コリレー
ション・アタックに関しては、R. A. Rueppel(ルェペ
ル)著、"Analysis and Design of Stream Ciphers(ア
ナリシス・アンド・デザイン・オブ・ストリーム・サイ
ファーズ)", Springer-Verlag(スプリンガー・ヴァー
ラグ)社、1986年の第92頁から第141頁にその
詳しい解説がある。
【0008】そこで本発明者は、コリレーション・アタ
ックによる解読を防ぐために、特開平7−104976
号公報において、結合関数回路が出力するビットストリ
ームをそのまま擬似乱数として使うのではなく、結合関
数回路の出力を畳み込んで得られるビットストリームを
擬似乱数として用いる擬似乱数発生装置を提案した。そ
のようにすれば、ある擬似乱数発生回路の出力で条件付
けたときの擬似乱数の条件付き確率分布がほぼ一様にな
り、コリレーション・アタックが困難になる。
【0009】図5は、コリレーション・アタック対策を
施した従来の擬似乱数発生装置の一例を示す機能ブロッ
ク図である。この擬似乱数発生装置は、図4に示す擬似
乱数発生装置において、結合関数回路402と出力端子
408との間に、シフトレジスタ410と排他的論理和
回路411を挿入した構成である。シフトレジスタ41
0は、入力端子405〜407にも接続しており、入力
端子406に"0"が供給されている時に入力端子405
に制御パルスが入力すると、入力端子507から供給さ
れている初期状態と呼ばれるビット系列を内部状態とし
て保持し、入力端子506に"1"が供給されている場合
には、入力端子505に制御パルスが1個入力されるご
とに、内部状態を1ビットだけ右にシフトし、左端のビ
ットに結合関数回路402の出力を保持するように構成
されている。また、排他的論理和回路411は、シフト
レジスタ410の内部状態のうち予め決められた複数の
ビットの線形結合を計算するものであり、その計算結果
が擬似乱数として出力端子408から出力される。な
お、図示点線で示されるように、結合関数回路402の
出力も排他的論理和回路411に入力するようにしても
よい。
【0010】図5に示す擬似乱数発生装置を用いて擬似
乱数を発生させる場合には、まず、入力端子407に初
期状態を供給し、次いで入力端子406に"0"を供給し
て、入力端子405に制御パルスを1個入力する。そし
て、入力端子406に"1"を供給する。するとそれ以降
は、入力端子405に制御パルスを1個入力するごと
に、出力端子408から擬似乱数が得られる。
【0011】図6は、シフトレジスタ410の内部構成
を示す回路図である。このシフトレジスタ410はm段
構成であり、クロック入力端子415と、モード切り換
え信号入力端子416と、このシフトレジスタ410に
内部状態を設定するための内部状態入力端子417と、
このシフトレジスタ410の内部状態を出力するための
内部状態出力端子418と、シフト入力端子419と、
モード切り換え信号入力端子416に入力した信号に応
じて選択動作を行うm個の2入力セレクタ4211〜4
21mと、クロック入力端子415に入力した信号をク
ロックとしセレクタ4211〜421mの出力をそれぞれ
入力とするm個のD型フリップフロップ4221〜42
mによって構成されている。なお、D型フリップフロ
ップ4221〜422mの出力系列のことをこのシフトレ
ジスタ410の内部状態という。図5に示される状態で
は、このシフトレジスタのクロック入力端子415は入
力端子405に接続し、モード切り換え信号入力端子4
16は入力端子406に接続し、内部状態入力端子41
7は入力端子407に接続し、シフト入力端子419は
結合関数回路402の出力に接続している。
【0012】図示左端のセレクタ4211には、シフト
入力端子419を介して結合関数回路402(図5参
照)が入力するとともに、内部状態入力端子417から
入力した内部状態のうちの1ビットが入力する。その他
のセレクタ421j(J=2,…,m)には、それぞれ、
D型フリップフロップ421j-1の出力と、内部状態入
力端子417から入力した内部状態のうちのそれぞれに
固有の1ビットとが入力する。そして、各セレクタ42
1〜421mは、モード切り換え信号入力端子416か
ら"0"が供給されている時に、それぞれ内部状態入力端
子417から供給されるビットを選択して出力し、モー
ド切り換え信号入力端子416から"1"が供給されてい
るときには、シフト入力端子419や前段のD型フリッ
プフロップ4221〜422m-1から入力する信号を選択
して出力する。各D型フロップフロップ4221〜42
mは、クロック入力端子415から制御パルスが1個
入るごとに、それぞれ、セレクタ4211〜421mの出
力を保持して、保持している値を出力する。これらD型
フロップフリップ4221〜422mの出力は、mビット
並列に、内部状態出力端子418から出力され、これら
のうちのいくつかのビットが排他的論理和回路411
(図5参照)に入力する。
【0013】次に、各擬似乱数発生回路4011〜40
nの構成について説明する。擬似乱数発生回路4011
〜401nとしては、例えば、図7に示すように線形フ
ィードバック・シフトレジスタのみで構成された擬似乱
数発生回路501を使用することもできるし、図8に示
すように非線形関数回路と線形フィードバック・シフト
レジスタを組み合わせた擬似乱数発生回路511を使用
することもできるし、さらにはここで述べるのとは異な
る回路構成のものも使用することもできる。
【0014】まず、図7を用いて線形フィードバック・
シフトレジスタのみからなる擬似乱数発生回路501を
説明する。この擬似乱数発生回路501は、シフトレジ
スタ502と排他的論理和回路503とから構成されて
いる。シフトレジスタ502は、段数は異なっていても
よいが図6に示すシフトレジスタ410と同様の構造を
持つものである。シフトレジスタ502のクロック入力
端子、モード切り換え信号入力端子、内部状態入力端子
(いずれも図6参照)は、それぞれ、入力端子405,
406,407に接続している。そして、シフトレジス
タ502の内部状態出力端子(図6参照)からの出力の
うち予め決められたビットだけが排他的論理和回路50
3に供給され、排他的論理和回路503の出力が、出力
端子504から出力されるとともに、シフトレジスタ5
02のシフト入力端子(図6)に供給されている。な
お、排他的論理和回路503は、入力された各ビットの
データの排他的論理和を計算して、その結果を出力する
ものである。
【0015】図7に示す擬似乱数発生回路501は、い
わゆるM系列発生回路であり、この回路単独で発生させ
た擬似乱数のランダム性はあまり良くなく、また、初期
状態を容易に推定することができるので、単独では暗号
化のために使用することには適さない。
【0016】図8に示す擬似乱数発生回路511は、シ
フトレジスタ512と排他的論理和回路513の他に、
非線形関数回路514を有している。シフトレジスタ5
12は、段数は異なっていてもよいが図6に示すシフト
レジスタ410と同様の構造を持つものである。シフト
レジスタ512のクロック入力端子、モード切り換え信
号入力端子、内部状態入力端子(いずれも図6参照)
は、入力端子405,406,407に接続している。そ
して、シフトレジスタ512の内部状態出力端子(図6
参照)からの出力のうち予め決められたビットが排他的
論理和回路513に供給されて、排他的論理和回路51
3の出力がシフトレジスタ512のシフト入力端子(図
6)に供給されている。なお、排他的論理和回路513
は、入力された各ビットのデータの排他的論理和を計算
して、その結果を出力するものである。さらに、シフト
レジスタ512の内部状態出力端子からの出力の全ビッ
トあるいは予め定められたビットが非線形関数回路51
4に入力して非線形結合され、この非線形結合された結
果が擬似乱数として出力端子515から出力される。
【0017】次に、結合関数について説明する。結合関
数とは、既に述ベたように、入力されたビットの非線形
結合をとって、その結果を出力するものである。結合関
数を出力する結合関数回路は、論理関数回路やリード・
オンリ・メモリあるいはそれらの組合せによって実現で
きる。図9は3入力の結合関数回路450を示す機能ブ
ロック図である。すなわちこの結合関数回路450は、
図4や図5の擬似乱数発生装置においてN=3(擬似乱
数発生回路の数が3個)の場合に、結合関数回路402
として使用できるものである。
【0018】この結合関数回路は、否定回路451と、
2つの2入力論理積回路452,453と、2入力排他
的論理和回路454と、それぞれ異なる擬似乱数発生回
路が発生する擬似乱数が入力する3個の入力端子455
1〜4553と、排他的論理和回路454の出力に接続さ
れた出力端子458とによって構成されている。第1の
入力端子4551に入力した擬似乱数は第1の論理積回
路452の一方の入力に供給され、第2の入力端子45
2に入力した擬似乱数は第1の論理積回路452の他
方の入力と否定回路451に供給される。第2の論理積
回路453には、第3の入力端子4553に入力した擬
似乱数と、否定回路451で反転された第2の入力端子
4552からの擬似乱数が入力する。そして、各論理積
回路452,453は、それぞれへの入力の論理積を計
算して結果を排他的論理和回路454に出力し、排他的
論理和回路454は、第1の論理積回路452の出力と
第2の論理積回路453の出力の排他的論理和を計算し
てその結果を出力端子458から出力する。
【0019】
【発明が解決しようとする課題】以上、従来の擬似乱数
発生装置についてやや詳しく説明したが、上述の従来の
擬似乱数発生装置には、回路規模を小さくしようとする
と非線形性の小さい擬似乱数しか生成できず、一方、非
線形性の大きな擬似乱数を発生させるようとすると装置
規模が大きくなるという問題点がある。すなわち、回路
規模を小さくするためには、擬似乱数発生回路として線
形フィードバック・シフトレジスタのみからなるものを
使用することが有効であるが、そうすると、非線形変換
を行うのが結合関数回路だけとなり、非線形性の大きな
擬似乱数を得ることができなくなる。また、回路規模を
小さくするために擬似乱数発生回路の個数自体を減らし
た場合には、結合関数への入力数が減ることとなって結
合関数の非線形性が小さくなり、非線形性がさらに小さ
な擬似乱数しか得られなくなる。逆に、得られる擬似乱
数の非線形性を大きくするためには擬似乱数発生回路と
して非線形関数回路と線形フィードバック・シフトレジ
スタを組み合わせたものを用いることが有効であるが、
そうすると、非線形関数回路を実現するための複雑な論
理回路やリード・オンリ・メモリ(ROM)が擬似乱数
発生回路の個数だけ必要になってしまい、回路規模が必
然的に大きくなる。また、擬似乱数の非線形性を大きく
するために結合関数への入力数を増やすと、その分、擬
似乱数発生回路の数も増やさなければならない。
【0020】本発明の目的は、上述した従来の擬似乱数
発生装置の抱える問題点を解決し、線形フィードバック
・シフトレジスタのみからなる少数の擬似乱数発生回路
によって非線形性の大きな擬似乱数系列を発生でき、ス
トリーム暗号に適した擬似乱数発生装置を提供すること
にある。
【0021】
【課題を解決するための手段】本発明の第1の擬似乱数
発生装置は、同一のクロックが入力し相互に同期して動
作する複数の擬似乱数発生回路と、各擬似乱数発生回路
の出力を非線形関数で結合して出力する結合関数回路
と、クロックに同期して記憶内容を一端から他端に向う
方向に1ビットずつシフトするとともに結合関数回路の
出力を一端に記憶するシフトレジスタと、シフトレジス
タの記憶ビットのうち所定の複数の記憶ビットの値を非
線形結合して出力する非線形関数回路とを有し、クロッ
クに同期して非線形関数回路より擬似乱数を出力する。
【0022】本発明の第2の擬似乱数発生装置は、同一
のクロックが入力し相互に同期して動作する複数の擬似
乱数発生回路と、各擬似乱数発生回路の出力を非線形関
数で結合して出力する結合関数回路と、シフトレジスタ
と、シフトレジスタの記憶ビットのうち所定の複数の記
憶ビットの値を非線形結合して出力する非線形関数回路
と、結合関数回路の出力と非線形関数回路の出力との排
他的論理和を計算して出力する排他的論理和回路とを有
し、シフトレジスタは、クロックに同期して記憶内容を
一端から他端に向う方向に1ビットずつシフトするとと
もに排他的論理和回路の出力を一端に記憶し、擬似乱数
がクロックに同期して非線形関数回路より出力される。
【0023】本発明の第3の擬似乱数発生装置は、入力
するクロックに同期して動作する単一の擬似乱数発生回
路と、シフトレジスタと、シフトレジスタの記憶ビット
のうち所定の複数の記憶ビットの値を非線形結合して出
力する非線形関数回路と、擬似乱数発生回路の出力と非
線形関数回路の出力との排他的論理和を計算して出力す
る排他的論理和回路とを有し、シフトレジスタは、クロ
ックに同期して記憶内容を一端から他端に向う方向に1
ビットずつシフトするとともに排他的論理和回路の出力
を一端に記憶し、擬似乱数がクロックに同期して非線形
関数回路より出力される。
【0024】本発明においては、擬似乱数発生回路とし
て、線形フィードバック・シフトレジスタを好ましく使
用できる。また、擬似乱数発生回路とシフトレジスタに
初期値を設定する初期値設定回路を設けるようにするよ
い。さらに、結合関数回路の出力も非線形関数回路に入
力し、非線形関数回路によって、シフトレジスタの記憶
ビットのうち所定の複数の記憶ビットの値と結合関数回
路の出力とが非線形結合して出力されるようにしてもよ
い。
【0025】以下、本発明についてさらに詳しく説明す
る。
【0026】図5に示す従来の擬似乱数発生装置では、
結合関数回路402の出力系列をシフトレジスタ410
に保持し、シフトレジスタ410の内部状態のすべてあ
るいは予め決められた一部のビットを排他的論理和回路
411によって線形結合して擬似乱数を生成していた。
このように構成すると、ある擬似乱数発生回路401 j
(1≦j≦N)の出力で条件付けたときの擬似乱数の条
件付き確率分布がほぼ一様になるため、コリレーション
・アタックが困難になる。このような手法は、物理的な
方法で発生される乱数(例えば、サイコロを振って決め
られる乱数)の分布を一様にする目的でも、長年にわた
って用いられてきた。このため、コリレーション・アタ
ックを防ぐためには、線形結合が有用だと考えられてい
た。
【0027】しかしながら、線形結合によって条件付き
確率が一様になるのは、線形結合の線形性によるもので
はなく、線形結合の一様性によるものである。ここで、
一様とは、ランダムに与えられたビットを結合すること
により、ほば等確率に"0"と"1"を生ずることである。
したがって、一様な非線形結合であれば、線形結合の代
りに用いても、コリレーション・アタックを防ぐことが
可能なはずである。
【0028】そこで本発明では、図5に示す従来の擬似
乱数発生装置における排他的論理和回路の代りに、一様
な非線形結合を行う非線形関数回路を使用し、結合関数
回路の出力が入力するシフトレジスタの内部状態をこの
非線形関数回路によって非線形結合して擬似乱数として
出力する。このように構成することにより、コリレーシ
ョン・アタックを防ぐという性質を保ったまま、擬似乱
数の非線形性を高められる。さらに本発明では、結合関
数回路とシフトレジスタとの間に排他的論理和回路を設
け、非線形関数回路の出力と結合関数回路の出力を排他
的論理和で足し込んだものがシフトレジスタに入力する
ように構成することができる。このように構成すると、
非線形関数回路の出力がシフトレジスタにフィードバッ
クされることになり、非線形関数回路で行われる非線形
結合の非線形性が小さい場合であっても、xの2乗がx
2に、その2乗がx4に、さらにその2乗がx8にという
具合に非線形性の低い変換の繰り返しが非線形性の高い
変換に帰着することから、非線形性がさらに高められた
擬似乱数を得ることが可能になる。
【0029】
【発明の実施の形態】次に、本発明の実施の形態につい
て、図面を参照して説明する。
【0030】《第1の実施の形態》図1は、本発明の第
1の実施の形態の擬似乱数発生装置の構成を示す機能ブ
ロック図である。この擬似乱数発生装置は、n個の擬似
乱数発生回路1011〜101nと、これらn個の擬似乱
数発生回路1011〜101nの出力を非線形結合してそ
の結果を出力する結合関数回路102と、結合関数回路
102の出力がシフト入力として入力するシフトレジス
タ103と、シフトレジスタ103の内部状態のうち予
め定められた複数のビット(シフトレジスタ103の全
記憶ビットでもよい)の非線形結合を計算する非線形関
数回路104と、制御パルス(クロック)が入力する入
力端子105と、モード制御用の入力端子106と、初
期状態と呼ばれるビット系列を入力するための入力端子
107とを有し、非線形関数回路104での計算結果が
擬似乱数を表わすビットストリームとしてクロックに同
期して出力端子108から出力されるように構成されて
いる。なお、図示点線で示されるように、結合関数回路
102の出力も非線形関数回路104に入力するように
してもよい。
【0031】n個の擬似乱数発生回路1011〜101n
は、いずれも、入力端子105〜107に接続してお
り、入力端子106に"0"が供給されている時に入力端
子105に制御パルスが入力された場合には、入力端子
107から供給される初期状態を取り込んで内部状態と
して保持し、入力端子106に"1"が供給されている場
合には、入力端子105に制御パルスが1個入力される
ごとに擬似乱数を出力する。この擬似乱数発生回路10
1〜101nとしては、上述の図7に示したような線形
フィードバック・シフトレジスタのみからなるものを好
ましく使用できる。また、シフトレジスタ104は、入
力端子105〜107にも接続しており、入力端子10
6に"0"が供給されている時に入力端子105に制御パ
ルスが入力すると、入力端子107から供給されている
初期状態と呼ばれるビット系列を内部状態として保持
し、入力端子106に"1"が供給されている場合には、
入力端子505に制御パルスが1個入力されるごとに、
内部状態を1ビットだけ右にシフトし、左端のビットに
結合関数回路102の出力を保持するように構成されて
いる。シフトレジスタ104としては、例えば、上述の
図6に示す構成のものを使用することができる。
【0032】上述の説明から明らかなように、擬似乱数
発生回路1011〜101n、結合関数回路102、入力
端子105〜107は、それぞれ、図4及び図5におけ
る擬似乱数発生回路4011〜401n、結合関数回路4
02、入力端子405〜407に対応し、シフトレジス
タ103は、図5のシフトレジスタ410に対応する。
また、結合関数回路102と非線形関数回路104は、
この分野での慣例に従って別の名称で呼んでいるが、ど
ちらも非線形結合を行う回路であるという点では同様の
ものである(入力ビット数や内部構造は異なるかもしれ
ないが)。
【0033】非線形関数回路104としては、一様な非
線形結合を行う回路であれば任意のものを使用できる。
例えば、リード・オンリ・メモリ(ROM)を用いたル
ック・アップ・テーブル形式の構成とすることができ
る。具体的には、図10(a)に示すように、ROM15
1に"0"と"1"とを個数が等しくなるように書き込んで
おき、非線形関数回路104に対する複数の入力をこの
ROM151の複数のアドレス入力端子それぞれへのア
ドレス入力とみて、このROM151からの1ビットの
データ出力を非線形関数回路104の出力とするような
構成とすることができる。非線形関数回路104の入力
数、すなわちROMに対する入力ビット数が増えた場合
には、1個のROMを用いたのでは実現できなくなる
が、そのような場合には、図10(b)に示すように、上
述したROM151を複数用意してこれらROM151
の出力を排他的論理和回路152に入力し、この排他的
論理和回路152の出力を非線形関数回路104の出力
とするように構成すればよい。
【0034】なお、擬似乱数発生回路1011〜101n
及びシフトレジスタ103には、入力端子107を介し
て一般に、それぞれ異なる初期状態が供給される。各擬
似乱数発生回路1011〜101nやシフトレジスタ10
3に供給される初期状態は、それぞれ、それらの内部ビ
ット幅に応じて複数のビットであるから、入力端子10
7のビット幅は、これら擬似乱数発生回路1011〜1
01nやシフトレジスタ103の内部ビット幅の総和と
なるようにするとよい。あるいは、内部状態設定のため
の制御が個別に行えるような構成とするよい。図示した
例では、各擬似乱数発生回路1011〜101n及びシフ
トレジスタ103に初期状態のビット系列を設定するた
めに、入力端子107に、これら擬似乱数発生回路10
1〜101nやシフトレジスタ103の初期状態を発生
する初期状態設定回路110が接続されている。
【0035】この擬似乱数発生装置を用いて擬似乱数を
発生させる場合には、まず、擬似乱数発生回路1011
〜101n及びシフトレジスタ103の初期状態を初期
値設定回路110によって入力端子107に供給する。
次いで、入力端子106に"0"を供給して入力端子10
5に制御パルスを1個入力する。その結果、各擬似乱数
発生回路1011〜101n及びシフトレジスタ103に
初期状態が設定される。そして、入力端子106に"1"
を供給すると、それ以降は、入力端子105に制御パル
スを1個入力するごとに、出力端子108から1ビット
ずつ擬似乱数が得られる。
【0036】《第2の実施の形態》次に、本発明の第2
の実施の形態について、図2を用いて説明する。図2に
示す擬似乱数発生装置は、図1に示すものと比べ、結合
関数回路102とシフトレジスタ103との間に排他的
論理和回路111が挿入され、シフトレジスタ103の
シフト入力には、結合関数回路102の出力ではなく排
他的論理和回路111の出力が入力する点で異なってい
る。排他的論理和回路111は、結合関数回路102の
出力と非線形関数回路104の出力との排他的論理和を
求めて出力する。この擬似乱数発生装置では、排他的論
理和回路111を介して非線形関数回路104の出力が
シフトレジスタ103にフィードバックされるので、非
線形関数回路104の非線形性が小さい場合であって
も、非線形性の大きな擬似乱数を出力端子108から得
ることができる。この擬似乱数発生装置を用いて擬似乱
数を発生させるときの手順は、図1に示す擬似乱数発生
装置での手順と同じである。
【0037】《第3の実施の形態》上述の各実施の形態
の擬似乱数発生装置は、出力端子108に接続する非線
形関数回路104によって非線形性を高めているので、
特に第2の実施の形態のように非線形関数回路104の
出力をシフトレジスタ103にフィードバックさせる場
合には、擬似乱数発生回路の個数を1個としても、十分
に非線形性の高い擬似乱数を得ることができる。図3
は、このような構成の擬似乱数発生装置を示している。
この擬似乱数発生装置では、単一の擬似乱数発生回路1
01が設けられている。擬似乱数発生回路が1個なので
結合関数回路は不要であり、この擬似乱数発生回路10
1の出力がそのまま排他的論理和回路111に入力して
いる。その他の構成や擬似乱数発生のための手順は第2
の実施の形態におけるものと同様である。
【0038】
【発明の効果】以上説明したように本発明は、ある擬似
乱数発生回路の出力で条件付けたときの擬似乱数の条件
付き確率分布を一様にするために、線形結合回路でなく
一様な非線形結合を行う非線形関数回路を使用している
ので、擬似乱数の非線形性が高められ、コリレーション
・アタックに強い擬似乱数を発生でき、ストリーム暗号
に適した擬似乱数発生装置が実現できるという効果があ
る。また、擬似乱数発生回路として単純な線形フィード
バック・シフトレジスタを使用しても擬似乱数の非線形
性が高いので、小規模な装置で非線形性の高い擬似乱数
を発生できるようになり、擬似乱数発生装置を低コスト
で実現できるようになる。
【0039】また、非線形関数回路の出力が排他的論理
和回路を介してシフトレジスタにフィードバックするよ
うに構成した場合には、非線形変換の繰返しが行われる
ことになって、非線形関数回路の非線形性が小さい場合
でも非線形性のより大きな擬似乱数を生成できるように
なり、したがって、非線形関数回路の規模を小さくする
ことができるようになる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態の擬似乱数発生装置
の構成を示す機能ブロック図である。
【図2】本発明の第2の実施の形態の擬似乱数発生装置
の構成を示す機能ブロック図である。
【図3】本発明の第3の実施の形態の擬似乱数発生装置
の構成を示す機能ブロック図である。
【図4】従来の擬似乱数発生装置の一例を示す機能ブロ
ック図である。
【図5】コリレーション・アタック対策の施された従来
の擬似乱数発生装置の一例を示す機能ブロック図であ
る。
【図6】シフトレジスタの構成例を示す回路図である。
【図7】線形フィードバック・シフトレジスタを利用し
た擬似乱数発生回路を示す機能ブロック図である。
【図8】非線形関数回路と線形フィードバック・シフト
レジスタを利用した擬似乱数発生回路を示す機能ブロッ
ク図である。
【図9】3入力の結合関数回路を示す回路図である。
【図10】(a),(b)は、それぞれ、非線形関数回路の構
成例を示す回路図である。
【符号の説明】
101,1011〜101n,4011〜401n 擬似乱
数発生回路 102,402,450 結合関数回路 103,403,410,502,512 シフトレジス
タ 104,514 非線形関数回路 105〜107,405〜407 入力端子 108,408 出力端子 110 初期値発生回路 151 ROM 111,152,411,454,503,513 排他
的論理和回路 415 クロック入力端子 416 モード切り換え信号入力端子 417 内部状態入力端子 418 内部状態出力端子 419 シフト入力端子 4211〜421m セレクタ 4221〜422m D型フリップフロップ 451 否定回路 453,453 論理積回路

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 同一のクロックが入力し相互に同期して
    動作する複数の擬似乱数発生回路と、 前記各擬似乱数発生回路の出力を非線形関数で結合して
    出力する結合関数回路と、 前記クロックに同期して記憶内容を一端から他端に向う
    方向に1ビットずつシフトするとともに前記結合関数回
    路の出力を前記一端に記憶するシフトレジスタと、 前記シフトレジスタの記憶ビットのうち所定の複数の記
    憶ビットの値を非線形結合して出力する非線形関数回路
    とを有し、 前記クロックに同期して前記非線形関数回路より擬似乱
    数を出力することを特徴とする擬似乱数発生装置。
  2. 【請求項2】 同一のクロックが入力し相互に同期して
    動作する複数の擬似乱数発生回路と、 前記各擬似乱数発生回路の出力を非線形関数で結合して
    出力する結合関数回路と、 シフトレジスタと、 前記シフトレジスタの記憶ビットのうち所定の複数の記
    憶ビットの値を非線形結合して出力する非線形関数回路
    と、 前記結合関数回路の出力と前記非線形関数回路の出力と
    の排他的論理和を計算して出力する排他的論理和回路と
    を有し、 前記シフトレジスタは、前記クロックに同期して記憶内
    容を一端から他端に向う方向に1ビットずつシフトする
    とともに前記排他的論理和回路の出力を前記一端に記憶
    し、擬似乱数が前記クロックに同期して前記非線形関数
    回路より出力されることを特徴とする擬似乱数発生装
    置。
  3. 【請求項3】 入力するクロックに同期して動作する単
    一の擬似乱数発生回路と、 シフトレジスタと、 前記シフトレジスタの記憶ビットのうち所定の複数の記
    憶ビットの値を非線形結合して出力する非線形関数回路
    と、 前記擬似乱数発生回路の出力と前記非線形関数回路の出
    力との排他的論理和を計算して出力する排他的論理和回
    路とを有し、 前記シフトレジスタは、前記クロックに同期して記憶内
    容を一端から他端に向う方向に1ビットずつシフトする
    とともに前記排他的論理和回路の出力を前記一端に記憶
    し、擬似乱数が前記クロックに同期して前記非線形関数
    回路より出力されることを特徴とする擬似乱数発生装
    置。
  4. 【請求項4】 前記擬似乱数発生回路と前記シフトレジ
    スタに初期値を設定する初期値設定回路をさらに有する
    請求項1乃至3いずれか1項に記載の擬似乱数発生装
    置。
  5. 【請求項5】 前記結合関数回路の出力も前記非線形関
    数回路に入力し、前記非線形関数回路が前記シフトレジ
    スタの記憶ビットのうち所定の複数の記憶ビットの値と
    前記結合関数回路の出力とを非線形結合して出力する請
    求項1または2に記載の擬似乱数発生装置。
  6. 【請求項6】 前記擬似乱数発生回路が線形フィードバ
    ック・シフトレジスタである請求項1乃至5いずれか1
    項に記載の擬似乱数発生装置。
JP7336920A 1995-12-25 1995-12-25 擬似乱数発生装置 Pending JPH09179726A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP7336920A JPH09179726A (ja) 1995-12-25 1995-12-25 擬似乱数発生装置
AU75396/96A AU7539696A (en) 1995-12-25 1996-12-16 Pseudorandom number generator
CA 2193196 CA2193196A1 (en) 1995-12-25 1996-12-17 Pseudorandom number generator
EP96120661A EP0782069A1 (en) 1995-12-25 1996-12-20 Pseudorandom number generator

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7336920A JPH09179726A (ja) 1995-12-25 1995-12-25 擬似乱数発生装置

Publications (1)

Publication Number Publication Date
JPH09179726A true JPH09179726A (ja) 1997-07-11

Family

ID=18303859

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7336920A Pending JPH09179726A (ja) 1995-12-25 1995-12-25 擬似乱数発生装置

Country Status (4)

Country Link
EP (1) EP0782069A1 (ja)
JP (1) JPH09179726A (ja)
AU (1) AU7539696A (ja)
CA (1) CA2193196A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004032098A1 (ja) * 2002-10-07 2004-04-15 Kobayashi, Akira 疑似乱数発生方法及び疑似乱数発生器
WO2005073842A1 (ja) * 2004-01-30 2005-08-11 Victor Company Of Japan, Limited 擬似乱数生成装置および擬似乱数生成プログラム
WO2008013083A1 (fr) * 2006-07-25 2008-01-31 Nec Corporation Générateur de nombres pseudo-aléatoires, dispositif de cryptage de flux et programme
JP2009151587A (ja) * 2007-12-21 2009-07-09 Hitachi Displays Ltd 表示装置

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3022439B2 (ja) * 1997-09-24 2000-03-21 日本電気株式会社 擬似乱数発生方法および装置
DE19910729C1 (de) 1999-03-11 2000-11-02 Richard Vogts Zufallszahlengenerator sowie Verfahren zur Erzeugung von Zufallszahlen
US6895090B1 (en) 1999-04-30 2005-05-17 Texas Instruments Incorporated Pseudo-noise sequence with insertion having variant length and position
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
FR2832231B3 (fr) * 2001-11-15 2003-12-19 Jean Luc Stehle Procede pour generer des nombres aleatoires
AT412747B (de) 2002-03-05 2005-06-27 Rene-Michael Mag Cordes Codegenerator und vorrichtung zur synchronen oder asynchronen sowie permanenten identifikation oder ver- und endschlüsselung von daten beliebiger länge
DE10339999B4 (de) * 2003-08-29 2005-07-14 Infineon Technologies Ag Pseudozufallszahlengenerator
ATE484790T1 (de) * 2004-08-09 2010-10-15 Telecom Italia Spa Verfahren und vorrichtung zum erzeugen von zufallsdaten
US8150900B2 (en) 2004-08-09 2012-04-03 Telecom Italia S.P.A. Random number generation based on logic circuits with feedback
GB0522531D0 (en) 2005-11-04 2005-12-14 Isis Innovation Security in computing networks
WO2007052045A2 (en) * 2005-11-04 2007-05-10 Isis Innovation Limited Security in computing networks
CN100459493C (zh) * 2005-12-29 2009-02-04 北京浦奥得数码技术有限公司 流密码生成器、随机数生成方法、加密系统及加密方法
US10922052B2 (en) * 2015-10-12 2021-02-16 Oracle International Corporation Generating pseudorandom number sequences by nonlinear mixing of multiple subsidiary pseudorandom number generators
CN112379858B (zh) * 2020-11-13 2024-01-26 北京灵汐科技有限公司 随机数的产生方法及装置、电子设备和可读存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4202051A (en) * 1977-10-03 1980-05-06 Wisconsin Alumni Research Foundation Digital data enciphering and deciphering circuit and method
US4161041A (en) * 1978-10-06 1979-07-10 The United States Of America As Represented By The Secretary Of The Air Force Pseudo random number generator apparatus
JP2541480B2 (ja) * 1993-10-06 1996-10-09 日本電気株式会社 擬似乱数発生装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004032098A1 (ja) * 2002-10-07 2004-04-15 Kobayashi, Akira 疑似乱数発生方法及び疑似乱数発生器
WO2005073842A1 (ja) * 2004-01-30 2005-08-11 Victor Company Of Japan, Limited 擬似乱数生成装置および擬似乱数生成プログラム
WO2008013083A1 (fr) * 2006-07-25 2008-01-31 Nec Corporation Générateur de nombres pseudo-aléatoires, dispositif de cryptage de flux et programme
JP5136416B2 (ja) * 2006-07-25 2013-02-06 日本電気株式会社 擬似乱数生成装置、ストリーム暗号処理装置及びプログラム
JP2009151587A (ja) * 2007-12-21 2009-07-09 Hitachi Displays Ltd 表示装置

Also Published As

Publication number Publication date
AU7539696A (en) 1997-07-03
EP0782069A1 (en) 1997-07-02
CA2193196A1 (en) 1997-06-26

Similar Documents

Publication Publication Date Title
JPH09179726A (ja) 擬似乱数発生装置
Courtois et al. Algebraic attacks on stream ciphers with linear feedback
US6831979B2 (en) Cryptographic accelerator
JP4700051B2 (ja) 暗号装置及び暗号方法
EP1398901B1 (en) Feistel type encryption method and apparatus protected against DPA attacks
CA2578316C (en) Table splitting for cryptographic processes
US9325494B2 (en) Method for generating a bit vector
JPH07104976A (ja) 擬似乱数発生装置
KR20020006475A (ko) 암호화장치, 복호장치 및 확대키 생성장치, 확대키생성방법 및 기록매체
US10419207B2 (en) Cryptographic apparatuses and methods for encrypting and decrypting data using automata
JPH1153173A (ja) 擬似乱数発生方法及び装置
Wegener et al. Spin me right round rotational symmetry for FPGA-specific AES: Extended version
Ghebleh et al. A novel efficient image encryption scheme based on chained skew tent maps
Al-Neaimi et al. New Approach for Modifying Blowfish Algorithm by Using Multiple Keys
KR20000029634A (ko) 암호처리장치,아이씨카드및암호처리방법
US5909494A (en) System and method for constructing a cryptographic pseudo random bit generator
Gafsi et al. Hardware implementation of a strong pseudorandom number generator based block‐cipher system for color image encryption and decryption
JP2830842B2 (ja) 擬似乱数発生装置
US8995659B2 (en) Parameterized random data generator providing a sequence of bytes with uniform statistical distribution
JP2001005384A (ja) 乱数生成方法
JPH10308720A (ja) M系列を任意にシフトする回路
Courtois et al. Algebraic cryptanalysis of the data encryption standard
Roy et al. Two efficient fault-based attacks on CLOC and SILC
Caballero-Gil et al. New attack strategy for the shrinking generator
KR100200531B1 (ko) 암호화 방법 및 시스템