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

擬似乱数発生装置

Info

Publication number
JP2830842B2
JP2830842B2 JP8142057A JP14205796A JP2830842B2 JP 2830842 B2 JP2830842 B2 JP 2830842B2 JP 8142057 A JP8142057 A JP 8142057A JP 14205796 A JP14205796 A JP 14205796A JP 2830842 B2 JP2830842 B2 JP 2830842B2
Authority
JP
Japan
Prior art keywords
output
supplied
pseudo
random number
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.)
Expired - Lifetime
Application number
JP8142057A
Other languages
English (en)
Other versions
JPH09325881A (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
Nippon Electric Co Ltd
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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP8142057A priority Critical patent/JP2830842B2/ja
Publication of JPH09325881A publication Critical patent/JPH09325881A/ja
Application granted granted Critical
Publication of JP2830842B2 publication Critical patent/JP2830842B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は擬似乱数発生装置に
関し、特に通信システムや計算機システムにおいて採用
され、許可されていない者が不正に情報を取得すること
等を防止するために、情報に擬似乱数を排他的論理和で
加算して暗号に変換したり暗号に擬似乱数を排他的論理
和で加算して元の情報を復元するストリーム暗号装置等
に用いられる擬似乱数発生装置に関する。
【0002】
【従来の技術】従来から広く知られている暗号として、
ストリーム暗号と呼ばれるものがある。これは、擬似乱
数発生装置によって生成される擬似乱数系列と、送信す
る情報系列との排他的論理和を、暗号系列として送信す
るものである。なお、一般的には、情報系列が“000
0・・・”であっても不正解読ができないように、スト
リーム暗号が設計される。情報系列が“0000・・
・”の場合には、ストリーム暗号の出力する暗号系列か
ら情報系列を不正解読することと、擬似乱数から擬似乱
数発生装置の内部状態を推定することとは等価である。
このため、以下では、「ストリーム暗号が不正解読され
るという代わりに、単に「擬似乱数発生装置が不正解読
される」ということもある。
【0003】また、従来から広く知られている擬似乱数
発生装置として、複数の線形フィードバック・シフトレ
ジスタ(Linear Feedback Shift
Register;以下、LFSRと略す)の出力す
る擬似乱数を、結合関数と呼ばれる非線形関数によって
非線形結合して、より非線形性の高い擬似乱数を生成す
る方法がある。ここで、非線形結合とは線形結合ではな
い結合のことであり、ビットx1 ,…,xn (nは正の
整数、以下同じ)の線形結合とはy=x1 +x2 +…x
n やy=x1 +x2 +…xn +1など、排他的論理和+
だけを使ってビットyを与えることである。言い換える
と、、ビットx1 ,…,xn の非線形結合とは、y=x
1 *x2 +x2 *x3 +…+xn *x1 等、論理積*と
排他的論理和+との両方を使ってビットyを与えること
であり、yを与える式をどのように変形しても線形結合
に帰着しないようなものである。また、非線形結合の非
線形性とは、yを与える式の次数のことであり、式の次
数が大きいほど非線形性が高いといわれる。なお、当然
のことながら、結合関数の入力を増やせば増やすほど、
非線形性の高い非線形結合が実現可能になる。
【0004】図6は、従来の擬似乱数発生装置の構成を
示すブロック図である。図において、n個のLFSR5
01−1〜501−nは、入力端子511に“0”が供
給されているときには、入力端子510にパスが入力さ
れると、入力端子512から供給される初期状態と呼ば
れるビット系列を、内部状態として保持する。なお、そ
れぞれのLFSR501−1〜501−nには、一般に
はLFSR毎に異なった初期状態が供給される。また、
LFSR501−1〜501−nは、入力端子511に
“1”が供給されているときには、入力端子510にパ
ルスが1個入力される毎に、擬似乱数を出力する。n個
のLFSR501−1〜501−nの出力する擬似乱数
は、結合関数回路502に入力され、結合関数回路50
2の出力が、擬似乱数として出力端子513から出力さ
れる。
【0005】なお、図6の擬似乱数発生装置に、擬似乱
数を発生させるには、次のようにする。まず、入力端子
512に初期状態を供給する。次に、入力端子511に
“0”を供給して、入力端子510にパルス(あるいは
クロックと呼ぶ)を1個入力する。そして、入力端子5
11に“1”を供給する。すると、それ以降は、入力端
子510にパルスを1個入力する毎に、出力端子513
から擬似乱数が得られる。
【0006】図7は、LFSR501−1〜501−n
を示す機能ブロック図である。図において、シフトレジ
スタ601は、入力端子611に“0”が供給されてい
るときには、入力端子610にパルスが入力されると、
入力端子612から供給される初期状態と呼ばれるビッ
ト系列を、内部状態として保持する。また、シフトレジ
スタ601は、入力端子611に“1”が供給されてい
るときには、入力端子610にパルスが1個入力される
と、保持されているビット系列を右側に1ビットだけシ
フトして、排他的論理和回路602の出力をビット系列
の左端のビットとして保持する。なお、ビット系列の右
端に保持されていたビットは、保持されているビット系
列が右側に1ビットだけシフトされると、捨てられる。
【0007】また、シフトレジスタ601に保持されて
いるビット系列は、出力端子613に供給されている。
排他的論理和回路602は、シフトレジスタ601に保
持されているビット系列のうち、予め決められた位置に
あるビットの排他的論理和を計算して、計算結果をシフ
トレジスタ601に供給する。排他的論理和回路602
の出力は、出力端子614にも供給されており、それが
擬似乱数として出力される。LFSR501−1〜50
1−nの構造は全て同一であるが、シフトレジスタ60
1の長さと、シフトレジスタ601に記憶されているビ
ットのうち排他的論理和回路602に供給されるビット
の位置は、一般に、LFSR毎に異なっている。なお、
入力端子610,611,612には、それぞれ図6の
入力端子510,511,512から入力される値が供
給されており、出力端子614の出力は図6の結合関数
502に供給されている。出力端子613の出力は、図
6においては、使われていない。
【0008】結合関数回路502とは、入力されたビッ
トの非線形結合をとってその結果を出力する結合関数の
機能を持つものであり、論理関数回路やリード・オン・
メモリ(ROM)あるいはそれらの組合わせによって表
現される。図8は、4入力の結合関数回路502の一例
を示す機能ブロック図である。これは、n=4とした擬
似乱数発生装置で使われるもので、4個のLFSR50
1−1〜501−4の出力する擬似乱数が、それぞれ入
力端子701−1〜701−4に供給される。
【0009】論理積回路701は、入力端子710−1
に供給される値と入力端子710−2に供給される値の
論理積を計算して、その結果を出力する。論理積回路7
02は、入力端子710−1に供給される値と入力端子
710−3に供給される値の論理積を計算して、その結
果を出力する。論理積回路703は、入力端子710−
2に供給される値と入力端子710−3に供給される値
の論理積を計算して、その結果を出力する。排他的論理
和回路704は、論理積回路701の出力と論理積回路
702の出力と論理積回路703の出力と入力端子71
0−4に供給される値との排他的論理和を計算し、計算
結果を出力端子711から出力する。出力端子711の
出力は図6の出力端子513に供給されている。
【0010】しかしながら、従来の擬似乱数発生装置の
LFSR501−1〜501−nに与えられた初期状態
は、しばしば、コリレーション・アタック(corre
lation attack)と呼ばれる解読方法で推
定されてしまう。すなわち、あるLFSR501−j
(j=1〜n)の出力で条件付けたときの結合関数回路
502の出力の条件付き確率分布が一様でない場合に
は、そのLFSR501−jと等価なLFSRの出力系
列と結合関数回路502の出力系列との相関を最大にす
るような等価LFSRの初期状態を総当りで求めること
で、LFSR501−jに与えられた初期状態が求めら
れてしまう。
【0011】また、一般的に、あるt個のLFSRの出
力で条件付けたときの結合関数回路502の出力の条件
付き確率分布が一様でない場合には、それらのt個のL
FSRと等価なt個のLFSRの出力系列と結合関数回
路502の出力系列との相関を最大にするようなt個の
等価LFSRの初期状態を総当りで求めることで、t個
のLFSRに与えられた初期状態が求められる。なお、
以上の説明では、説明の便宜上、結合関数回路502の
出力系列からLFSRの初期状態を推定することを考え
たが、情報系列は理想的な乱数ではなく冗長度を持って
いるので、以上の操作において、結合関数回路502の
出力系列の代わりに暗号系列を用いても、LFSRの初
期状態を推定できる。すなわち、コリレーション・アタ
ックは、情報系列が“0000・・・”でない場合で
も、実行可能である。
【0012】なお、注意しておくが、何次までのコリレ
ーション・アタックが実行できるか否かは、結合関数の
性質だけでなく、t個のLFSRの段数の合計にも依存
して決まる。例えば、t個のLFSRの段数の合計が6
4ビットであれば、求める初期状態を総当りで求めるこ
とが困難になるので、t次のコリレーション・アタック
は実行できないが、t個のLFSRの段数の合計が20
ビットであれば、t次のコリレーション・アタックは容
易に実行できる。
【0013】このため、従来は、(t+1)次のコリレ
ーション・アタックが実行できなくなるほどLFSRの
段数を増やすと共に、t個のLFSRの出力で条件付け
たときの結合関数の出力の条件付き確率分布が一様であ
るような結合関数を用いて、t次のコリレーション・ア
タックを防いでいた。なお、そのような結合関数は、t
次コリレーション・イミューン(correlatio
n immune)であると言われる。例えば、4入力
の結合関数を用いる場合には、結合関数を1次コリレー
ション・イミューンにできることが知られているので、
2次のコリレーション・アタックが実行できないように
LFSRの段数が選択される。なお、図6の4入力結合
関数回路は、1次コリレーション・イミューンであるこ
とが知られている。
【0014】なお、従来の擬似乱数発生装置及びコリレ
ーション・アタックや4入力結合関数に関しては、例え
ば、特開平7−104976号公報や、1986年にス
プリンガー・ヴァーラグから刊行されたルェッペル著
「アナリシス・アンド・デザイン・オブ・ストリーム・
サイファー」(R. A. Rueppel著Anal
ysis and Design of Stream
Ciphers, Springer−Verla
g, 1986)の第92頁から第141頁にかけて
や、島田道雄著「結合関数の無相関性について」(第1
7回情報理論とその応用シンポジウム予稿集1994
年)の第53頁から第56頁にかけて詳しい解説があ
る。
【0015】
【発明が解決しようとする課題】従来の擬似乱数発生装
置の問題点は、上述した文献(島田道雄著「結合関数の
無相関性について」)で示されているように、コリレー
ション・イミューンな結合関数を使っていても、差分コ
リレーション・アタックで解読できるということであ
る。その理由は、例えば、図6の4入力結合関数回路を
考えてみれば分かる。図8の4入力結合関数回路の場合
には、入力端子710−4の入力が線形結合しているの
で、入力端子710−4に擬似乱数を供給しているLF
SRの周期をLとすると、時刻tと時刻L+tとにおけ
る結合関数の出力の差分をとることで、そのLFSRの
出力の影響が結合関数の出力の差分に出なくなるように
することができる。そうすると、4入力の結合関数に基
づく擬似乱数発生装置を1次コリレーション・アタック
で解読することが、3入力結合関数に基づく擬似乱数発
生装置を1次コリレーション・アタックで解読すること
に帰着してしまう。3入力結合関数は、1次コリレーシ
ョン・イミューンにできないので、1次コリレーション
・アタックで簡単に解読されてしまう。
【0016】本発明は上述した従来技術の欠点を解決す
るためになされたものであり、その目的は、LFSRの
段数や個数を増やさずに、LFSRに供給されるクロッ
ク信号を制御することで、ストリーム暗号に適した擬似
乱数発生装置を提供することである。
【0017】
【課題を解決するための手段】本発明による擬似乱数発
生装置は、クロック信号が入力される毎に内部状態を更
新して擬似乱数を生成するn個(nは正の整数、以下同
じ)のフィードバックシフトレジスタと、このn個のフ
ィードバックシフトレジスタの各出力を結合して擬似乱
数を生成するt次(tは正の整数、以下同じ)コリレー
ションイミューンな結合関数回路とを含む擬似乱数発生
装置であって、外部からL個(Lは正の整数、以下同
じ)のクロックが供給される毎に前記n個のフィードバ
ックシフトレジスタの内部状態に依存して信号を生成す
る信号選択手段と、外部からL個のクロックが供給され
る毎に前記信号選択手段から供給される信号に依存して
長さLでハミング重みがL×t/n以下の互いに異なる
n種類の2値系列を生成し、この2値系列に従ってクロ
ックを前記フィードバックシフトレジスタに供給する信
号発生手段とを含むことを特徴とする。
【0018】
【発明の実施の形態】本発明の作用は以下の通りであ
る。
【0019】さて、良く考えてみると、コリレーション
・アタックが成功するためには、次の2つの条件が必要
であることが分かる。すなわち、第1の条件は、解読者
が擬似乱数発生装置のLFSRと等価なLFSRを持っ
ており、解読者が等価なLFSRの初期状態を適切に設
定することで、その等価LFSRに、擬似乱数発生装置
のLFSRと同じ擬似乱数系列を発生させられるという
ものである。また、第2の条件は、既に述べたように、
結合関数の入出力間に相関があるというものである。
【0020】これらの2つの条件が揃わないとコリレー
ション・アタックが実行できないのである。そして、従
来は、第2の条件を崩すことで、すなわち、結合関数の
入出力間に相関が出ないようにすることで、コリレーシ
ョン・アタックを防いでいたのである。
【0021】そこで本発明では、第1の条件を崩すこと
で、コリレーション・アタックを防ぐことにした。すな
わち、従来の擬似乱数発生装置では、それぞれのLFS
Rに常にクロック信号を供給していたのだが、本発明で
は、クロックのパルスを間引いてクロック信号のパター
ンを変化させることにした。すなわち、従来は、“00
00・・・・”というクロック信号を使っていたのに対
して、本発明では、それ以外の2値系列もクロック信号
として使用することにした。クロック信号のパターンを
解読者に秘密にしておけば、複製されたLFSRに擬似
乱数発生装置のLFSRと同じ擬似乱数発生系列を発生
させられないので、第1の条件が崩れ、コリレーション
・アタックが実行できなくなる。
【0022】なお、以上では、クロック信号を2値系列
として表現したが、2値系列のτ番目が“0”であると
いうことは、クロック信号のτ単位時刻にパルスが有る
ことを意味し、2値系列のτ番目が“1”であること
は、クロック信号のτ単位時刻にパルスが無いことを意
味する(“0”と“1”とを入れ替えても良いのだが、
説明の便宜上、このようにしておく)。また、単位時刻
とは、クロック信号の周期すなわちパルス1個の長さに
相当する時刻を“1”として測った時間のことである。
【0023】ただし、ただ単にランダムにクロック信号
のパターンを選択するのでは、擬似乱数発生装置の出力
する擬似乱数の周期が極端に短くなる危険性がある。例
えば、どのLFSRも周期Tビットの周期系列を擬似乱
数系列として出力したら、擬似乱数発生装置の出力する
擬似乱数系列も周期Tビットの周期系列になってしま
う。擬似乱数系列の周期が短いと、例えば、盗聴によっ
て得られた擬似乱数系列全体をメモリに記憶しておき、
それを暗号系列に排他的論理和で加算することで、簡単
に不正解読されてしまう。
【0024】そこで本発明では、次のような工夫によっ
て、擬似乱数の周期が短くなることを防いでいる。すな
わち、クロック信号として、互いに長さとハミング重み
とが等しいn個の2値系列から構成されるn個組を、予
め複数個選んでおき、それら複数個のn個組みからラン
ダムに1つのn個組を選択し、選択されたn個組みの各
2値系列を、n個のLFSRのそれぞれに逐次的に供給
する。例えば、n=4の場合には、次のようにする。
【0025】まず、4個組みとして、(0001,00
10,0100,1000)(4単位時刻分),(10
00,0100,0010,0001),(4単位時刻
分)(0,0,0,0)(1単位時刻分)を用意してお
く。そして、ある時刻に1番目の4個組みが選択された
ならば、その4個組みの2値系列の長さは“4”である
から、次の4単位時刻までは、LFSR501−1に
は、“0001”を、LFSR501−2には“001
0”を、LFSR501−3には“0100”を、LF
SR501−4には“1000”をそれぞれクロック信
号として供給する。すると、“1”の場合にクロックパ
ルスが間引かれ、次の4単位時刻後までには、どのLF
SRにも3個のパルスが供給されることになる。このこ
とは、結果だけを見れば、どのLFSRにも“000”
というクロック信号が供給されたのと等価である。つま
り、“0”の場合にはLFSRはシフト動作を行い、
“1”の場合にシフト動作を行わない。また、各LFS
Rに供給されるクロック信号の“1”の位置が互いに異
なるので、各LFSRに同一時刻に入力されるパルスの
うちの1つのみを間引くことになる。
【0026】以上のようにすれば、本擬似乱数発生装置
のLFSRの内部状態が、少なくとも特定の時刻におい
ては、従来の擬似乱数発生装置のLFSRの内部状態と
同様に推移する。このため、擬似乱数発生装置の出力す
る擬似乱数系列の周期が擬似乱数発生装置の出力する擬
似乱数発生系列の周期よりも短くなることはない。
【0027】ただし、ただ単にクロック信号として、互
いに長さとハミング重みとが等しい2値系列から構成さ
れるn個組を用いるのでは、依然として、簡単に不正解
読される危険性がある。なぜなら、前述の例において、
例えば、ハミング重みが“3”である(1110,11
01,1011,0111)という2値系列の4個組み
を用いると、ある時刻に出力された擬似乱数と次の時刻
に出力された擬似乱数との間に相関が生じることがある
からである。すなわち、4入力の結合関数は高々1次コ
リレーション・イミューンであり、クロック信号のハミ
ング重みが“3”であれば、ある時刻と次の時刻とでは
3個のLFSRの出力が等しくなることがあるからであ
る。
【0028】そこで、本発明では、結合関数がt次コリ
レーション・イミューンであれば、長さLのクロック信
号として、ハミング重みがLt/nであるような2値系
列だけを使用する。例えば、n=4の場合には、結合関
数が1次コリレーション・イミューンであれば、長さ
“4”のクロック信号として、ハミング重みが“1”で
あるような、“0001”,“0010”,“010
0”,“1000”といった“1”の位置が互いに異な
る2値系列だけを、n個組みの要素として使用するので
ある。そのようにすれば、ある時刻と次の時刻とで出力
が常に等しいのは1個のLFSRだけになるから、1次
コリレーション・イミューンな結合関数を使うことで、
ある時刻に出力された擬似乱数と次の時刻に出力された
擬似乱数との間に相関が生じることを防ぐことができ
る。
【0029】次に、本発明の実施例について図面を参照
して詳細に説明する。
【0030】図1は、本発明の擬似乱数発生装置の一実
施例の構成を示すブロック図であり、図6と同等部分は
同一符号により示されている。
【0031】図において、本実施例の擬似乱数発生装置
は、クロックが入力されるごとに1ビットの擬似乱数を
生成するn個のLFSR501−1〜501−nと、こ
れらn個のLFSRの出力する擬似乱数を非線形結合し
てビットを生成するt次コリレーション・イミューンな
結合関数回路と、n個のLFSRに記憶されたビットの
うち予め決められた一部又は全部のビットに予め決めら
れた非線形変換を施して予め決められた個数のビットを
出力する信号選択回路102と、信号選択回路102の
出力に依存して、長さがLでハミング重みがLt/n以
下であるようなn個の2値系列を、外部から入力される
クロックに同期して逐次に出力する信号発生回路103
と、外部から入力されるクロックと信号発生回路103
の出力との論理和を演算して、その演算結果をn個のL
FSRにクロックとして供給するn個の論理和回路10
1−1〜101−nとを含んで構成され、外部から入力
されるクロックに同期して結合関数回路502より擬似
乱数を出力する。
【0032】LFSR501−1〜501−nは、入力
端子111に“0”が供給されているときには、論理和
回路101−1〜101−nからパルスが供給される
と、入力端子112から供給される初期状態と呼ばれる
ビット系列を、内部状態として保持する。また、LFS
R501−1〜501−nは、入力端子111に“1”
が供給されているときには、論理和回路101−1〜1
01−nからパルスが供給されるごとに、内部状態を更
新すると共に擬似乱数を出力する。そして、LFSR5
01−1〜501−nの出力する擬似乱数が、結合関数
回路502に入力されて、結合関数回路502の出力
が、擬似乱数として出力端子113から出力される。L
FSR501−1〜501−nの内部状態は、信号選択
回路102に供給されている。なお、LFSR501−
1〜501−nの内部状態は、図7の出力端子613を
介して出力される。
【0033】信号選択回路102については、後で詳し
く述べるが、LFSR501−1〜501−nの内部状
態に対して予め決められた非線形変換を施して、予め決
められた数のビットを発生する。信号発生回路103に
ついては、後で詳しく述べるが、信号選択回路102の
出力に応じて、予め決められたクロック信号を生成し
て、論理和回路101−1〜101−nに供給する。論
理和回路101−1〜101−nは、入力端子110か
ら供給されるパルス系列と、信号発生回路103から供
給されるクロック信号との論理和をとることで、クロッ
ク信号に対応するパルス系列を生成して、そのパルス系
列を、それぞれLFSR501−1〜501−nに供給
する。
【0034】なお、図1の擬似乱数発生装置に擬似乱数
を発生させるには、次のようにする。まず、入力端子1
12に初期状態を供給する。次に、入力端子111に
“0”を供給して、入力端子110にパルスを1個入力
する。そして、入力端子111に“1”を供給する。す
ると、それ以降は、入力端子110にパルスを1個入力
するごとに、出力端子113から擬似乱数が得られる。
【0035】図2は、n=4とする図1の擬似乱数発生
装置で使われる信号選択回路102の基本構成の一例を
示す機能ブロック図である。図において、図1のLFS
R501−1〜501−4の出力が、それぞれ入力端子
210−1〜210−4に供給されている。配線201
は、予め決められた配線であり、入力端子210−1〜
210−4から供給される信号の予め決められた一部あ
るいは全部を、重複も許して出力する。配線201の出
力は、u個(uは正の整数、以下同じ)の論理積回路2
02−1〜202−uの出力は配線203に供給され
る。
【0036】配線203は予め決められた配線であり、
論理積回路202−1〜202−uから供給される信号
の予め決められた一部あるいは全部を、重複も許して出
力する。配線203の出力は、5個の排他的論理和回路
204−1〜204−5に供給され、排他的論理和回路
204−1〜204−5の出力は出力端子211から出
力される。そして、出力端子211の出力が、図1の信
号発生回路103に供給される。信号選択回路102の
出力は、LFSR501−1〜501−4の出力に依存
しているので、LFSR501−1〜501−4の全て
の初期状態を知らない第三者は、信号選択回路102の
出力を容易には推定できない。
【0037】図3は、n=4とする図1の擬似乱数発生
回路で用いられる信号発生回路103の基本構成の一例
を示す機能ブロック図である。図において、図1の入力
端子110から入力される信号が入力端子320に供給
され、図1の入力端子111から入力される信号が入力
端子321に供給され、図1の信号選択回路102の出
力が入力端子322に供給されている。カウンタ307
は、入力端子321に“0”が供給されているときに
は、論理和回路302からパルスが供給されると、カウ
ント値をゼロにする。また、カウンタ307は、入力端
子321に“1”が供給されているときには、論理和回
路302からパルスが供給されるごとに、カウント値を
“1”だけ増加し、また、保持されているカウント値
を、論理和回路306とデコーダ309とに供給する。
なお、カウント値が3から“1”だけ増加したときに
は、カウント値は“0”に戻るものとする。
【0038】レジスタ308は、論理和回路301から
パルスが供給されると、入力端子322に供給されてい
る5ビットを保持し、また、保持されている5ビットの
うち、左端のビットを論理和回路306に供給し、それ
以外の4ビットを転置回路310に供給する。デコーダ
309は、カウンタ307の出力が“x”であれば、右
から“x”ビット目が1であるような4ビットを出力す
る。すなわち、デコーダ309は、x=“0”,
“1”,“2”,“3”に対して、それぞれ“000
1”,“0010”,“0100”,“1000”を出
力する。転置回路310は、レジスタ308の出力に応
じて、デコーダ309の出力ビットの転置(すなわち位
置を入れ替えたもの)を出力する。なお、どういった転
置を行うかは、予め決められているものとする。
【0039】セレクタ311は、論理積回路304の出
力が“0”であれば、転置回路310の出力を選択して
出力し、論理積回路304の出力が“1”であれば、
“0000”を出力する。そして、セレクタ311の出
力が出力端子323から出力される。なお、出力端子3
23の出力は、図1の論理和回路101−1〜101−
5に供給される。
【0040】論理和回路306は、カウンタ307の出
力とレジスタ308の出力の左端ビットとの計3ビット
の論理和を計算して、その結果を出力する。否定回路3
05は、論理和回路306の出力を反転して、その結果
を出力する。論理積回路303は、入力端子321から
供給される信号と論理和回路306の出力の論理積を計
算して、その結果を出力する。論理積回路304は、入
力端子321から供給される信号と否定回路305の出
力との論理積を計算して、その結果を出力する。論理和
回路301は、入力端子320から供給される信号と論
理積回路303の出力との論理和を計算して、その結果
を出力する。論理和回路302は、入力端子320から
供給される信号と論理積回路304の出力との論理和を
計算して、その結果を出力する。
【0041】同図の信号発生回路の動作を説明すると、
次のようになる。入力端子321に“0”が供給されて
いるときに、入力端子320にパルスが供給されると、
カウンタ307のカウント値が“0”に設定されると共
に、入力端子322に供給されている5ビットがレジス
タ308に保持される。そして、入力端子321に
“1”が供給されており、かつ、カウンタ307のカウ
ント値が“0”であり、かつ、レジスタ308に保持さ
れている5ビットの左端のビットが“0”であれば、セ
レクタ311から“0000”が出力され、入力端子3
20にパルスが1個入力されると、レジスタ308には
入力端子322から供給される新しい5ビットが保持さ
れる。一方、入力端子321に“1”が供給されてお
り、かつ、カウンタ307のカウント値が“0”であ
り、かつ、レジスタ308に保持されている5ビットの
左端のビットが“1”であれば、次の4単位時刻後にカ
ウンタ307のカウント値が再び“0”になるまで、出
力端子323からハミング重みが“1”であるような4
ビットが出力される。
【0042】図4は、n=4とする図3の信号発生回路
103で用いられる転置回路310の基本構成の一例を
示す機能ブロック図である。図において、入力端子41
0−1〜410−4には、図3のデコーダ309の出力
が供給され、入力端子411には、図3のレジスタ30
8の出力の右4ビットが供給されている。入力端子41
0−1〜410−4に供給された信号は、配線401−
1に入力される。配線401−j(j=1,2,3,
4)は、4ビットの入力に対して予め決められた2通り
の配線によって、予め決められた互いに異なる2通りの
転置を施す。そして、夫々の転置結果を図中の左側と右
側とに出力し、夫々セレクタ402−jの左側と右側と
に供給する。
【0043】セレクタ402−j(j=1,2,3,
4)には、入力端子411に供給されている4ビットの
うち1ビットが供給されており、そのビットの値に応じ
て、左側あるいは右側の入力を選択して出力する。そし
て、セレクタ402−j(j=1,2,3)の出力は、
配線401−(j+1)に入力され、セレクタ402−
4の出力は、出力端子412−1〜412−4から出力
される。なお、出力端子412−1〜412−4から出
力された4ビットは、図3のセレクタ311の左側の入
力に供給される。
【0044】ところで、図1中の線形フィードバックシ
フトレジスタ501−1〜501−nに代えて、非線形
フィードバックシフトレジスタを用いても良い。図5
は、非線形フィードバックシフトレジスタの一構成例を
示すブロック図である。図において、シフトレジスタ8
01は、図7のLFSR501と同様の構造を持つもの
である。図中のシフトレジスタ801は、入力端子81
1に“0”が供給されているときに、入力端子810に
パルスが入力されると、入力端子812から供給される
初期状態と呼ばれるビット系列を、内部状態として保持
する。また、シフトレジスタ801は、入力端子811
に“1”が供給されているときに、入力端子810にパ
ルスが1個入力されると、保持されているビット系列を
右側に1ビットだけシフトして、排他的論理和回路80
2の出力をビット系列の左端のビットとして保持する。
なお、ビット系列の右端に保持されていたビットは、保
持されているビット系列が右側に1ビットだけシフトさ
れると、捨てられる。
【0045】また、シフトレジスタ801に保持されて
いるビット系列は、出力端子813と非線形関数回路8
03に供給されている。排他的論理和回路802は、シ
フトレジスタ801に保持されているビット系列のう
ち、予め決められた位置にあるビットの排他的論理和を
計算して、計算結果をシフトレジスタ801に供給す
る。非線形関数回路803は、シフトレジスタ801に
保持されているビット系列のうち、予め決められた位置
にあるビットの非線形結合を計算する。すなわち、予め
決められた位置にあるビットに対して、予め決められた
排他的論理和以外の論理演算を施す。そして、その計算
結果が擬似乱数として出力端子814から出力される。
【0046】要するに、線形フィードバックシフトレジ
スタの代わりに、非線形フィードバックレジスタを用い
て擬似乱数発生装置を構成した場合でもクロックパルス
を間引くことによってシフトレジスタの段数や個数を増
やさずに、ストリーム暗号化に適した擬似乱数を発生す
ることができるのである。
【0047】以上のように、本装置を用いて擬似乱数を
発生させれば、全てのLFSRの初期状態を知らない第
三者には、LFSRの内部状態がどのようなタイミング
で推移しているか推測できないので、一般的に用いられ
ている4入力の結合関数回路を使っていても、コリレー
ション・アタック及び差分コリレーション・アタックに
強い擬似乱数を発生できるのである。これにより、比較
的簡単な構成でありながら、ストリーム暗号に適した擬
似乱数発生装置が実現できる。
【0048】また、本装置では、結合関数回路において
非線形な変換が行われるだけでなく、信号選択回路にお
いても非線形な変換が行われ、その変換結果にも依存し
て擬似乱数が生成されるので、一般的に用いられている
4入力の結合関数回路を使っていても、非線形性の高い
擬似乱数を生成できるのである。これにより、ストリー
ム暗号に適した擬似乱数発生装置が実現できる。
【0049】要するに本装置では、複数のパルスから構
成されるクロックの入力に応じて夫々シフト動作するn
個のシフトレジスタと、このn個のシフトレジスタの各
出力を結合して擬似乱数を生成する結合関数回路とを含
み、n個のシフトレジスタに入力されるクロックのパル
スを間引いているのである。これにより、比較的簡単な
構成でありながら、ストリーム暗号に適した擬似乱数を
発生することができるのである。
【0050】
【発明の効果】以上説明したように本発明は、擬似乱数
を発生する線形(非線形)フィードバックシフトレジス
タへの入力クロックを間引くことにより、そのレジスタ
の初期状態を知らない第三者にはシフトレジスタの内部
状態がどのようなタイミングで推移しているのか推測で
きず、比較的簡単な回路構成でコリレーション・アタッ
クに強い擬似乱数を発生することができるという効果が
ある。
【図面の簡単な説明】
【図1】本発明の実施例による擬似乱数発生装置の構成
を示すブロック図である。
【図2】図1中の信号選択回路の内部構成例を示すブロ
ック図である。
【図3】図1中の信号発生回路の内部構成例を示すブロ
ック図である。
【図4】図3中の転置回路の内部構成例を示すブロック
図である。
【図5】図1中のLFSRの代わりに用いる非線形フィ
ードバックレジスタの内部構成例を示すブロック図であ
る。
【図6】従来の擬似乱数発生装置の構成を示すブロック
図である。
【図7】図6中のLFSRの内部構成例を示すブロック
図である。
【図8】図6中の結合関数回路の内部構成例を示すブロ
ック図である。
【符号の説明】
102 信号選択回路 103 信号発生回路 501―1〜501―n LFSR 502 結合関数回路

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 クロック信号が入力される毎に内部状態
    を更新して擬似乱数を生成するn個(nは正の整数、以
    下同じ)のフィードバックシフトレジスタと、このn個
    のフィードバックシフトレジスタの各出力を結合して擬
    似乱数を生成するt次(tは正の整数、以下同じ)コリ
    レーションイミューンな結合関数回路とを含む擬似乱数
    発生装置であって、外部からL個(Lは正の整数、以下
    同じ)のクロックが供給される毎に前記n個のフィード
    バックシフトレジスタの内部状態に依存して信号を生成
    する信号選択手段と、外部からL個のクロックが供給さ
    れる毎に前記信号選択手段から供給される信号に依存し
    て長さLでハミング重みがL×t/n以下の互いに異な
    るn種類の2値系列を生成し、この2値系列に従ってク
    ロックを前記フィードバックシフトレジスタに供給する
    信号発生手段とを含むことを特徴とする擬似乱数発生装
    置。
  2. 【請求項2】 前記フィードバックシフトレジスタは、
    線形フィードバックシフトレジスタであることを特徴と
    する請求項1記載の擬似乱数発生装置。
  3. 【請求項3】 前記フィードバックシフトレジスタは、
    非線形フィードバックシフトレジスタであることを特徴
    とする請求項1記載の擬似乱数発生装置。
  4. 【請求項4】 前記信号発生手段は、i種類目(iは正
    の整数、以下同じ)の2値系列のj番目(jは正の整
    数、以下同じ)が“0”ならば、時刻jにi番目のフィ
    ードバックレジスタにクロックを供給することを特徴と
    する請求項1〜3のいずれかに記載の擬似乱数発生装
    置。
JP8142057A 1996-06-05 1996-06-05 擬似乱数発生装置 Expired - Lifetime JP2830842B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8142057A JP2830842B2 (ja) 1996-06-05 1996-06-05 擬似乱数発生装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8142057A JP2830842B2 (ja) 1996-06-05 1996-06-05 擬似乱数発生装置

Publications (2)

Publication Number Publication Date
JPH09325881A JPH09325881A (ja) 1997-12-16
JP2830842B2 true JP2830842B2 (ja) 1998-12-02

Family

ID=15306419

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8142057A Expired - Lifetime JP2830842B2 (ja) 1996-06-05 1996-06-05 擬似乱数発生装置

Country Status (1)

Country Link
JP (1) JP2830842B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0123302D0 (en) * 2001-09-28 2001-11-21 Hw Comm Ltd Cipher apparatus
EP1391853A1 (fr) * 2001-11-30 2004-02-25 STMicroelectronics S.A. Diversification d'un identifiant unique d'un circuit intégré
JP4491706B2 (ja) * 2002-04-19 2010-06-30 ソニー株式会社 暗号化復号化装置およびデータ受信装置
JP3732188B2 (ja) 2003-03-31 2006-01-05 Necマイクロシステム株式会社 擬似乱数発生回路
DE102004010666B4 (de) * 2004-03-04 2006-02-02 Infineon Technologies Ag Schlüsselbitstromerzeugung
US20100128870A1 (en) * 2007-03-27 2010-05-27 Yukiyasu Tsunoo Pseudo-random number generation device, program, and method for stream encoding
US8689357B2 (en) * 2012-05-19 2014-04-01 Freescale Semiconductor, Inc. Tamper detector for secure module
RU173172U1 (ru) * 2016-02-01 2017-08-15 Открытое Акционерное Общество "Пеленг" Генератор псевдослучайных чисел с нелинейной обратной связью

Also Published As

Publication number Publication date
JPH09325881A (ja) 1997-12-16

Similar Documents

Publication Publication Date Title
Courtois et al. Algebraic attacks on stream ciphers with linear feedback
Krawczyk New hash functions for message authentication
JP2541480B2 (ja) 擬似乱数発生装置
US5541996A (en) Apparatus and method for a pseudo-random number generator for high precision numbers
US6763363B1 (en) Computer efficient linear feedback shift register
EP1821196B1 (en) Method and apparatus for seeding a cryptographic random number generator
US6069954A (en) Cryptographic data integrity with serial bit processing and pseudo-random generators
JP3022439B2 (ja) 擬似乱数発生方法および装置
US7142675B2 (en) Sequence generator and method of generating a pseudo random sequence
JP5462636B2 (ja) 平文メッセージを暗号化する方法及び装置
JPH0863097A (ja) データを暗号化するための対称暗号化方法およびシステム
JPH08505275A (ja) 暗号ストリームを発生させるための装置及び方法
JPH1153173A (ja) 擬似乱数発生方法及び装置
EP0782069A1 (en) Pseudorandom number generator
JP2830842B2 (ja) 擬似乱数発生装置
JPH10240500A (ja) 乱数生成装置及び方法、暗号化装置及び方法、復号装置及び方法、並びにストリーム暗号システム
Yakut et al. Secure and efficient hybrid random number generator based on sponge constructions for cryptographic applications
Turan et al. Statistical analysis of synchronous stream ciphers
US20070177728A1 (en) ARIA encryption/decryption apparatus and method, and method of generating initialization key for the same
US20040120521A1 (en) Method and system for data encryption and decryption
JP4470135B2 (ja) 擬似乱数生成システム
Berbain et al. D ecim v 2
WO2006116801A1 (en) Process of and apparatus for hashing
Lin et al. Related key chosen IV attacks on Decim v2 and Decim-128
JP2001005384A (ja) 乱数生成方法