JP3099081B2 - 疑似乱数生成装置 - Google Patents

疑似乱数生成装置

Info

Publication number
JP3099081B2
JP3099081B2 JP06102990A JP10299094A JP3099081B2 JP 3099081 B2 JP3099081 B2 JP 3099081B2 JP 06102990 A JP06102990 A JP 06102990A JP 10299094 A JP10299094 A JP 10299094A JP 3099081 B2 JP3099081 B2 JP 3099081B2
Authority
JP
Japan
Prior art keywords
random number
storage means
function
input
value
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
JP06102990A
Other languages
English (en)
Other versions
JPH07311675A (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP06102990A priority Critical patent/JP3099081B2/ja
Publication of JPH07311675A publication Critical patent/JPH07311675A/ja
Application granted granted Critical
Publication of JP3099081B2 publication Critical patent/JP3099081B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、疑似乱数生成装置に係
り、特に、相手認証、鍵配送等で必要となる長周期の乱
数を生成する疑似乱数生成装置に関する。
【0002】
【従来の技術】鍵配送、相手認証等では、外部から推測
できない安全な乱数が必要となっている。一般の乱数に
ついては、“KNUTH著:『準数値算法/乱数』p.
3、サイエンス社刊”で紹介されている様に、処理の正
当性検査の再現性、計算機資源のコンパクト化(メモリ
削減)の要請から、関数を使った乱数生成法が利用され
ている。
【0003】例えば、関数Fを使い、初期値R(0) より
順番に、乱数列R(1) 、R(2) 、R (3) 、…を生成す
る。個々に、乱数列の()内の添字は、乱数列Rの順番
を示すもので、R(i+1) =F(R(i) )(但し、i≧
0、整数)なる関係があるとする。初期値が決まると全
ての乱数列が決まるので、理想的な乱数列とは区別し、
乱数列R(0) 、R(1) 、R(2) 、R(3) 、…を疑似乱数
列と呼び、Fは疑似乱数関数と呼ぶ。
【0004】上記の乱数生成法における課題は、‖X‖
がXを取りうる全ての値の個数とすると、R(i+1) =F
(R(i) )で定義される疑似乱数列の周期が上限の‖R
‖(Rの取り得る値の全数)にいかに近づくか(長周期
の関数をいかに得るか)ということと、値の分布がばら
つくかどうかということである。つまり、長周期の関数
を得る場合には、Rが取り得る値は有限の‖R‖個であ
り、R(0) =R(i) となる時があるが、iの大きさが重
要となる。また、値の分布がばらつくかどうかについて
は、統計的な分布により評価できる。
【0005】図14は、従来の疑似乱数生成装置の構成
を示すブロック図である。同図に示す疑似乱数生成装置
1は、レジスタ2及び乱数関数回路3より構成される。
レジスタ2は、値Rが設定され、外部から起動信号4が
入力される毎に、乱数生成回路3から出力される値Fに
よりレジスタ2の蓄積値Rを更新し、レジスタ2は、そ
の値F(R)を保持する。なお、レジスタ2及び乱数関
数回路3は、これらの動作を制御系(図示せず)により
制御される。従って、起動信号4の入力を制御系が監視
し、制御系の制御により、乱数関数回路3がF
(R(i) )を生成し、レジスタ2にその値を出力する。
【0006】図15は、従来の疑似乱数生成装置の動作
を示すフローチャートである。疑似乱数生成装置1は、
外部から起動信号4が入力されるまで、待機し、起動信
号4が入力されると(ステップ1)、レジスタ2の疑似
乱数Rが乱数関数回路3の出力F(R)で更新される
(ステップ2)。
【0007】前述の上限の‖R‖に近づけることと、値
の分布をばらつかす要請に対してビット列をとびとびに
生成する非線形フィードバックシフトレジスタ等が研究
されている(辻井・笠原編著:『暗号と情報セキュリテ
ィ』、昭晃堂刊、p159参照)。
【0008】ところが、非線形フィードバックシフトレ
ジスタでは、初期値を任意に設定できる他は、固定的な
構造であり、数学的構造を解析される場合がある。相手
認証、鍵配送等の様に乱数列を利用する場合、多くの場
合に、乱数列の秘匿性も要求されるので、非線形フィー
ドバックシフトレジスタは使用することができない。
【0009】そこで、秘匿性という観点から、多くの場
合、値の分布のばらつく性質も満たす暗号関数fを利用
して疑似乱数関数Fを組み立てることが考えられてい
る。
【0010】
【発明が解決しようとする課題】しかしながら、上記の
暗号関数fを利用して疑似乱数関数Fを組み立てる考え
は、Fの入出力データのサイズが一般にfより大きいの
で、kを鍵とし、xを入力し、 y←f(x,k) (x,yともビット長が同じサイズ
のデータ) によりyを生成する時、暗号化関数fのサイズよりも大
きい乱数Rをfの入出力変数x,yのサイズ以下にn個
のブロックRi (i=0,1,…,n−1)に分割し、
R=(R0 ,R1 ,R2 ,…,Rn-2 ,Rn-1 )により
ブロックRi で乱数Rを表現する、i=0,1,…,n
−1に対し、ブロックRi ←f(Ri ,k)で更新し、
全体の乱数Rを生成する。
【0011】上記の暗号関数fによる従来の方法の周期
は、各ブロックRi は周期がそれぞれ‖f‖(‖x‖
は、xの取り得る全ての値の個数を示す)となり、Ri
を組み合わせたRの周期は、‖R‖となることが期待さ
れる。しかしながら、各ブロックRi の個々の周期は、
‖f‖の演算量で周期が特定できるので、乱数Rの乱数
列を推定しようとする場合、‖R‖=‖f‖^nの演算
量は、必要でなく、n×‖f‖程度となる。n並列の処
理が可能な場合、‖f‖程度の演算時間で推定可能であ
る。なお、x^yは、xをy乗することを示す。
【0012】本発明は、上記の点に鑑みなされたもので
あり、乱数Rの周期推定に必要な演算量は‖R‖程度で
あっても、最大周期を拡大し、容易にRの乱数列が推定
できないような長周期の乱数生成が可能となる疑似乱数
生成装置を提供することを目的とする。
【0013】
【課題を解決するための手段】本発明の疑似乱数生成装
置は、ディジタル論理回路により構成される暗号化関数
fにより、y←f(x,k)(入出力変数x,yともビ
ット長が同じで、kは暗号鍵で任意長の変数)を利用し
て、記憶手段に蓄積される乱数Rを起動信号が入力され
るタイミングで更新することにより疑似乱数を生成する
疑似乱数生成装置において、乱数Rのサイズが暗号化関
数fの入出力変数x,yのサイズよりも大きい場合に、
乱数Rを入出力変数x,yのサイズ以下のn個のブロッ
クRi (i=0,1,…,n−1)(以下、R=R0
1 ,R2 ,…,Rn-2 ,Rn-1)に分割して格納する
第1の記憶手段と、第1の記憶手段よりブロックRi
入力とし、暗号化関数fを組み合わせて乱数関数gi
生成する乱数関数回路と、乱数関数回路から入力される
外乱数関数gi により、第1の記憶手段の乱数Rのブロ
ックRi ←gi (Rr0,Rr1,Rr2,…,Rr m-1 (r
j ∈[0,n−1]、j∈[0,m−1],m≦nで、
j は、n個のブロックRi (i∈[0,n−1]から
特定のブロックRr j を選び出すインデックスである)
を更新する制御手段とを有する。
【0014】また、本発明の疑似乱数生成装置は、乱数
関数回路への帰還用の蓄積値FRを保持する第2の記憶
手段と、第2の記憶手段から入力される蓄積値FRのサ
イズを小さくして更新するための関数hを含む乱数関数
回路とを有し、制御手段は、第2の記憶手段からの入力
FRを乱数関数gi に加えて、Ri ←gi (Rr0,R
r1,Rr2,…、Rr m-1 ,FR)かつFR←h(Rr0
Rr1,Rr2,…,Rr m-1 ,FR)により、第1の記憶
手段の乱数Rを更新する。
【0015】また、本発明の上記の制御手段は、第2の
記憶手段の蓄積値FRをRn-1 で初期設定し(FR←R
n-1 )、第2の記憶手段の乱数Ri を第1の記憶手段の
値と第2の記憶手段の値をビット毎に排他論理和をと
り、その結果と暗号鍵kによりRi ←gi (Ri 、F
R)=f(Ri ◎FR,k)(但し、◎は排他的論理
和)とし、且つ、第2の記憶手段の蓄積値FRをRi
更新する処理(FR←Ri )をi=0からn−1まで逐
次処理する。
【0016】また、本発明の上記の制御手段は、第1の
記憶手段のブロックRi と、第2の記憶手段FRをp分
割し、第1の記憶手段のブロックをRi j (j=0,
1,…,p−1)によりRi =(Ri 0 ,Ri 1 ,…,
i p-1 )とし、第2の記憶手段の値をFRj (j=
0,1,…,p−1)によりFR=(FR0 ,FR1
…,FRp-1 )とし、t(x)は入力xをp分割した時
の最上位の値を選択的に出力する関数とし、FR←R
n-1 に初期設定し、 Ri j ←gi (Ri j ,FR)=Ri j ◎t(f(F
R,k) 且つ FR←(FR1 ,FR2 ,…,FRp-1 ,Ri j ) をj=0よりp−1までの逐次処理する処理を、i=0
よりn−1まで逐次処理する。
【0017】また、本発明の制御手段は、第1の記憶手
段のブロックRi をp分割し、Ri j (j=0,1,
…,p−1)により、Ri =(Ri 0 、Ri 1 、…、R
i p-1)とし、まず、第2の記憶手段の蓄積値FRをF
R←Rn-1 に初期設定し、t(x)は、入力xをp分割
した時の最上位の値を選択的に出力する関数とし、Ri
j ←gi (Ri j ,FR)=Ri j ◎t(f(FR,
k))かつFR←f(FR,k)により第1の記憶手段
と、第2の記憶手段をj=0よりp−1まで逐次更新す
る処理をi=0よりn−1まで逐次処理する。
【0018】また、本発明の制御手段は、暗号化関数f
により、y←f(x,k)(x,yともビト長が同じサ
イズ、kは鍵)を実行するとき、鍵にブロックRi を関
連させ、つまりk=(Rs(i+1)、Rs(i+2)、…、R
s(i+m))かつRi ←f(Ri ,k)(ここで、s(x)
=xmod n,mはkのデータ長分に必要なブロックRi
の個数(厳密には、|k|が|Ri |で割り切れる場
合、m=|k|/|Ri |、割り切れない場合、mは|
k|/|Ri |+1の小数点以下を切り捨てた値)ここ
で、|x|はxのビット長を表す)としてi=0,1,
…,n−1に関して更新し、乱数Rを生成して第1の記
憶手段の内容を更新する。
【0019】
【作用】本発明は、KNUTH著:『準数値算法/乱
数』、サイエンス社刊p.8記載の演習16、17、1
8で紹介されているように、乱数列x0 ,x1 ,…と
し、j個の初期値を入力し、連続する直前のj個の値に
より、次の値xi+1 ←F(x i ,xi-1 ,…,
i-j+1 )を生成する関数Fがあるとき、‖x‖が小さ
くてもxの周期の最大値を‖x‖^jに拡大できる。本
発明では、この論理を関数Fよりサイズが小さい暗号関
数fの組み合わせに拡張し、暗号化関数fの入出力変数
のサイズより小さいn個のブロックRi (i=0,1,
…,n−1)にRを分割し、Rを(R0 ,R1 ,R2
…,Rn-2 ,Rn-1 )で表す時、複数のブロックRi
暗号関数fの入力に関係付けることで、周期を拡大する
と共に、暗号の秘匿性の性質を利用する。
【0020】具体的には、暗号化関数fをy←f(x,
k)(x,yともビット長が同じで、kは暗号鍵で任意
長の変数)とするとき、n個以下のm個のブロックRi
を入力とし、fを組み合わせて構成した関数gi によ
り、ブロックRi ←gi (Rr0,Rr1 ,Rr2 ,…,
Rr m-1 )((rj ∈[0,n−1]、j∈[0,m−
1],m≦nで、rj は、n個のブロックRr j を選び
出すインデックスである)を更新することで、乱数Rを
更新する。
【0021】また、ブロックRi に関して、乱数関数回
路のgの入力として蓄積値のFRを加え、FRは、入力
サイズより出力サイズを小さくする関数hにより更新さ
れるものとし、Ri ←gi (Rr0,Rr1,Rr2,…,R
r m-1 ,FR)かつFR←h(Rr0,Rr1,Rr1,…,
Rr m-1 ,FR)により連鎖させ、ブロックRi の連鎖
のみならず、継続的に更新されるFRにより周期長を拡
大する。ここで、「連鎖」とは、古い世代のRi-1 が継
続的に次の世代のRi に影響を与えることである。
【0022】上記のような疑似乱数生成装置を構成する
ことにより、ブロックRi を乱数列の単位として考える
とき、関数gi によりそれだけでも‖f‖^mに拡大す
る。また、Ri が再帰的に更新されるので、乱数Rの理
想的な最大周期は、(‖f‖^m)^nに拡大する。し
かし、乱数Rの周期は、‖R‖以上になり得ないので、
最大周期は、(‖f‖^m)^nか‖R‖の小さい方に
なる。
【0023】さらに、蓄積値のFRを使う場合には、乱
数Rの更新前後の継続的な連鎖が関係するので、最大周
期は‖R‖×‖FR‖に拡大する。
【0024】
【実施例】以下、図面と共に本発明の実施例を詳細に説
明する。
【0025】[第1の実施例]図1は、本発明の第1の
実施例の疑似乱数生成装置の構成を示す。同図に示す疑
似乱数生成装置1は、乱数Rを入出力変数x,yのサイ
ズ以下のn個のブロックRi (i=0,1,…,n−
1)に分割して(以下、R=(R0 ,R1 ,R2,…,
n-2 ,Rn-1 )のようにブロックRi で乱数Rを表現
する)蓄積するレジスタ2と、レジスタ2のn個以下の
m個のブロックRi を入力とし、暗号化関数fを組み合
わせて構成する関数gi を生成する乱数関数回路3より
構成される。なお、上記のレジスタ2及び乱数関数回路
3は制御系(図示せず)により制御される。制御系は、
外部から起動信号4が入力されると、レジスタ2に対し
てブロックRi を乱数関数回路3に出力するように制御
し、乱数関数回路3は、レジスタ2からの出力を受けて
関数gi を生成してレジスタ2に出力するものである。
【0026】本実施例の疑似乱数生成装置1は、乱数関
数回路3の関数gi がy←f(x,y)なる入出力関係
がある暗号関数fを使う時、関数gi により、レジスタ
2のRのブロックRi ←gi (Rr0,Rr1,Rr2,…,
Rr m-1 )(rj ∈[0,n−1]、j∈[0,m−
1],m≦nで、rj は、n個のブロックRi (i∈
[0,n−1]から特定のブロックRr j を選び出すイ
ンデックスである)を更新することにより、乱数Rを生
成する。
【0027】図2は、本発明の第1の実施例の疑似乱数
生成装置の動作を示すフローチャートである。
【0028】レジスタ2は、初期化の有無に関わらず、
乱数Rを保持しており、起動信号4が外部から入力され
ると、疑似乱数更新処理が実行される(ステップ10
1)。
【0029】疑似乱数更新処理として、最初にカウント
値iを0とする(i=0)(ステップ102)。カウン
ト値iがレジスタ2のRのブロック数(n)以上となっ
た場合(i≧n)には、ステップ101に移行して、起
動信号4を待機し、i<nの場合には、乱数関数回路3
の関数gi を用いてレジスタ2の乱数RのブロックをR
i ←gi (Rr0,Rr1,Rr2,…,Rr m-1 )でレジス
タ2のブロックを更新し、カウント値iをインクリメン
トする。この処理をブロック数n分繰り返す(ステップ
104)。
【0030】上記の実施例により、関数gi により疑似
乱数列の周期が‖f‖^mに拡大する。
【0031】[第2の実施例]図3は、本発明の第2の
実施例の疑似乱数生成装置の構成を示す。同図中、図1
と同一構成部分は、同一符号を付し、その説明を省略す
る。
【0032】同図に示す疑似乱数生成装置1は、図1の
構成にレジスタ5を加え、さらに、乱数関数回路3は、
関数gi と関数hを含む構成である。関数hは、サイズ
の圧縮に用いられる一種のハッシュ関数であり、入力サ
イズに比べて出力サイズを小さくする。レジスタ5は、
乱数関数回路3への帰還用の蓄積値FRを保持する。レ
ジスタ5が保持する蓄積値FRは、乱数関数回路3の関
数hにより更新されるものとする。また、関数gi とこ
の蓄積値FRが加えられ、レジスタ2の乱数Rが更新さ
れる。レジスタ2の乱数Rは、乱数関数回路3で生成さ
れたRi ←gi(Rr0、Rr1、Rr2、…、Rr m-1 、F
R)かつFR←h(Rr0、Rr1、Rr2、…、Rr m-1
FR)により乱数Rが更新され、乱数Rを連鎖する。
【0033】図4は、本発明の第2の実施例の疑似乱数
生成装置の動作を示すフローチャートである。
【0034】ステップ201〜ステップ203は、第1
の実施例のステップ101〜ステップ103の動作と同
様である。レジスタ2が保持する乱数Rは、Ri ←gi
(Rr0、Rr1、Rr2、…、Rr m-1 、FR)とすること
により更新され、連鎖的な乱数が生成される。また、レ
ジスタ5が保持する関数FRは、FR←h(Rr0、R
r1、Rr2、…、Rr m-1 、FR)とすることにより更新
される(ステップ204)。
【0035】このように、本実施例においては、レジス
タ2が保持する乱数Ri が再帰的に更新されるので、こ
の場合の最大周期は、(‖f‖^m)^nに拡大され
る。
【0036】レジスタ5の蓄積値FRがない場合には、
レジスタ2のRは、直前の世代のRの影響しか受けず、
Rのサイズは、‖R‖で周期が決定されてしまう。しか
し、上記の実施例のような構成にすることにより、周期
は、‖R‖×‖FR‖となることにより、さらに周期が
拡大される。
【0037】[第3の実施例]図5は、本発明の第3の
実施例の疑似乱数生成装置の構成を示す。同図中、図
1、図3と同一構成部分には、同一符号を付し、その説
明を省略する。
【0038】図5に示す疑似乱数生成装置1の乱数関数
回路3は、暗号化関数fのみを有し、レジスタ5は、蓄
積値FRを有する。レジスタ3の蓄積値FRは、レジス
タ2のRn-1 により初期値設定される。乱数関数回路3
は、暗号鍵k及びレジスタ5の蓄積値FRとレジスタ2
からのRi の排他論理和が入力され、Ri ←f(Ri
FR,k)をレジスタ2に出力し、レジスタ2の値を更
新する。
【0039】図6は、本発明の第3の実施例の疑似乱数
生成装置の動作を示すフローチャートである。
【0040】起動信号4が入力されるまで、レジスタ2
の更新処理は待機し、入力されると以降の処理が実行さ
れる(ステップ301)。
【0041】初期設定として、レジスタ5の蓄積値FR
には、レジスタ2の一部のブロックRn-1 が設定され
る。また、カウント値i=0とする(ステップ30
2)。
【0042】次に、カウント値i≧nとなった場合に
は、ステップ301の処理に移行し、i<nの場合に
は、次の処理に移行する(ステップ303)。
【0043】レジスタ5の蓄積値FRは、レジスタ2か
らのRi で更新し(FR←Ri )、レジスタ2のR
i は、乱数関数回路3から出力されるgi (Ri 、F
R)=f(Ri ◎FR,k)(kは暗号鍵)により更新
され、レジスタ2の一部の乱数Riが更新される。この
処理をi=0からi=n−1まで逐次処理する(ステッ
プ304)。
【0044】[第4の実施例]図7は、本発明の第4の
実施例の疑似乱数生成装置の構成を示す。同図に示す疑
似乱数生成装置1は、分配手段11、レジスタ2、選択
手段12、レジスタ5、乱数関数回路3、排他論理和回
路13より構成される。
【0045】分配手段11は、乱数関数回路3の蓄積値
FRと乱数ブロックRi をp分割する。従って、乱数関
数回路3は、シフトレジスタとなる。
【0046】レジスタ2のRi は、Ri j (j=0,
1,…,p−1)により、 Ri =(Ri 0 ,Ri 1 ,…,Ri p-1 ) と分割され、乱数関数回路3のFRは、FRj (j=
0,1,…,p−1)により FR=(FR0 ,FR1 ,…,FRp-1 ) とし、t(x)は、入力xをp分割した時の最上位の値
を選択的に出力する関数とする。レジスタ5の蓄積値を
FR←Rn-1 に初期設定し、排他的論理和回路13で乱
数関数回路3の出力f(FR,k)と選択手段12で選
択された値Ri で選択された値Ri j の排他的論理和を
とり、 Ri j ←gi (Ri j ,FR)=Ri j ◎t(f(F
R,k) とし、且つ、レジスタ5をシフトする処理 FR←(FR1 ,FR2 ,…,FRp-1 ,Ri j ) をj=0よりp−1までの逐次処理する処理をi=0よ
りn−1まで逐次処理する。
【0047】図8は、本発明の第4の実施例の疑似乱数
生成装置の動作を示すフローチャートである。
【0048】起動信号4が入力されるまで、レジスタ2
の更新処理は待機し、入力されると以降の処理が実行さ
れる(ステップ401)。
【0049】レジスタ5の蓄積値FRについてFR←R
n-1 、カウント値i←0とする(ステップ402)。カ
ウント値iがn以上となったら、ステップ401により
起動信号4が入力されるまで待機する。それまで、以降
の処理を行う(ステップ403)。
【0050】カウント値jの初期設定を行う(j←0)
(ステップ404)。jが分割数p以上の場合には、ス
テップ405に以降し、カウント値iをインクリメント
する(i←i+1)(ステップ406)。
【0051】jがpより少ない場合には、乱数関数回路
3の内部の関数t、fにより、排他的論理和回路13に
おいてレジスタ2の出力Ri j と乱数関数回路3の出力
t(f(FR,k)の1ビット毎に排他論理和をとり、 Ri j ←Ri j ◎t(f(FR,k) Ri j とする。同時に、レジスタ5のFRの値を上位に
シフトし FR←(FR1 ,FR2 ,…,FRp-1 ,R1 j ) 乱数関数回路3の出力Ri j をレジスタ2の該当場所で
あるRi j に書き込み、レジスタ2の乱数を更新し、カ
ウント値jをインクリメントし(j←j+1)(ステッ
プ407)、ステップ406に移行する。この処理をカ
ウンタ値がj≧pとなるまで繰り返す。
【0052】[第5の実施例]図9は、本発明の第5の
実施例の疑似乱数生成装置の構成を示す。同図におい
て、図7の構成と同一構成部分には、同一符号を付す。
【0053】分配手段11は、ブロックRi をp分割
し、Ri j (j=0,1,…,p−1)によりRi
(Ri 0 ,Ri 1 ,…,Ri p-1 )とする。選択手段1
2は、レジスタ2の値Ri j を選択して、排他的論理和
回路13に出力する。レジスタ5は、前述の第4の実施
例のレジスタ5とは異なりシフトは行わず、乱数関数回
路3の出力で更新される。乱数関数回路3は、内部関数
として入力xをp分割した時の最上位の値を選択する関
数であるtと暗号化関数fを有し、f(FR,k)(k
は暗号鍵)でレジスタ5の蓄積値FRを更新する。排他
論理和回路13は、乱数関数回路3からの出力t(f
(FR,k))と選択手段12で選択されたレジスタ2
のRi j との排他論理和を取り、分配手段11に出力す
る。分配手段11は、排他論理和回路13から入力され
たブロックRi を分割してレジスタ2に書き込む。
【0054】図10は、本発明の第5の実施例の疑似乱
数生成装置の動作を示すフローチャートである。
【0055】ステップ501からステップ506までは
前述の第4の実施例と同様の動作を行う。
【0056】レジスタ2のRi j を更新する処理は、排
他的論理和回路13において、乱数関数回路3から出力
されるt(f(FR,k))と、選択手段12で選択さ
れたレジスタ2の値Ri j の排他的論理和をとり、 Ri j ←gi (Ri j ,FR) =Ri j ◎t(f(F
R,k)) とし、且つ、 FR←f(FR,k) とし、Ri j をレジスタ2に出力して、レジスタ2の一
部の値を更新し、カウント値jがj=0からp−1まで
の逐次更新処理をカウント値i=0よりn−1まで逐次
処理する(ステップ507)。
【0057】[第6の実施例]図11は、本発明の第6
の実施例の疑似乱数生成装置の構成を示す。同図に示す
疑似乱数生成装置は、レジスタ2、選択手段12、乱数
関数回路3より構成される。選択手段12は、乱数関数
回路3の入力値としてレジスタ2から出力された値Ri
を選択すると共に、鍵Rs(i+1)、Rs(i+2),Rs(i+m)
生成し、乱数関数回路3に入力する。乱数関数回路3
は、選択手段12から入力されたRi と鍵Rs(i+1)、R
s(i+2),Rs(i+m)によりRi ←f(Ri ,k)としてレ
ジスタ2の乱数Rを更新する。
【0058】本実施例は、暗号化関数fによりy←f
(x,k)(x,yともビット長が同じサイズ、kは
鍵)を実行するとき、鍵にブロックRi を関連させ、つ
まりk=(Rs(i+1)、Rs(i+2),…,Rs(i+m))かつR
i ←f(Ri ,k)(ここで、s(x)=xmod n)と
してi=0,1,…,n−1に関して更新し、乱数Rを
生成する。即ち、|k|が|Ri |で割り切れる場合に
は、m=|k|/|Ri |、割り切れない場合は、m=
|k|/|Ri |+1の小数点以下を切り捨てた値とす
る。
【0059】図12は、本発明の第6の実施例の乱数関
数回路の詳細を示す図である。同図において、乱数関数
回路3は、データランダム化部31において、選択手段
12から入力されるRi が入力され、鍵k=Rs(i+1)
s(i+2),…,Rs(i+m)が入力されると、鍵にブロック
i を関連させて、i=0,1,…,n−1に関して乱
数Rを生成し、レジスタ2の内容を更新する。
【0060】図13は、本発明の第6の実施例の疑似乱
数生成装置の動作を示すフローチャートである。
【0061】まず、制御信号4が入力されるまで待機し
(ステップ601)、入力されるとカウンタ値iを初期
設定する(i←0)(ステップ602)。次に、以下の
処理をi≧nとなるまで繰り返す。
【0062】乱数関数回路3において、選択手段12に
より入力された関数fのデータ入力値Ri と、入力され
た鍵Rs(i+1)、Rs(i+2),…,Rs(i+m)を暗号鍵kとす
る。ここで、乱数関数回路3は、R←(R,k)をレジ
スタ2に出力し、レジスタ2のRが更新される。カウン
タ値iをインクリメントする(i=i+1)。
【0063】
【発明の効果】上述のように、本発明によれば、暗号関
数fを用いて暗号関数のデータ入出力サイズよりも大き
い乱数Rを生成し、かつ最大周期は、Rのサイズ‖R‖
となる。また、乱数Rの更新前後を連鎖レジスタFRに
より関連付けることにより、最大周期を‖R‖から‖R
‖×‖FR‖とする。
【0064】このように、最大周期を拡大することによ
り、少なくとも、各種変数の取り得る場合の数を増大さ
せたので、単にx←f(x,k)で連鎖する乱数列の場
合とはことなり、長周期の乱数生成が可能となる。
【図面の簡単な説明】
【図1】本発明の第1の実施例の疑似乱数生成装置の構
成図である。
【図2】本発明の第1の実施例の疑似乱数生成装置の動
作を示すフローチャートである。
【図3】本発明の第2の実施例の疑似乱数生成装置の構
成図である。
【図4】本発明の第2の実施例の疑似乱数生成装置の動
作を示すフローチャートである。
【図5】本発明の第3の実施例の疑似乱数生成装置の構
成図である。
【図6】本発明の第3の実施例の疑似乱数生成装置の動
作を示すフローチャートである。
【図7】本発明の第4の実施例の疑似乱数生成装置の構
成図である。
【図8】本発明の第4の実施例の疑似乱数生成装置の動
作を示すフローチャートである。
【図9】本発明の第5の実施例の疑似乱数生成装置の構
成図である。
【図10】本発明の第5の実施例の疑似乱数生成装置の
動作を示すフローチャートである。
【図11】本発明の第6の実施例の疑似乱数生成装置の
構成図である。
【図12】本発明の第6の実施例の疑似乱数回路の詳細
を示す図である。
【図13】本発明の第6の実施例の疑似乱数生成装置の
動作を示すフローチャートである。
【図14】従来の疑似乱数生成装置のブロック図であ
る。
【図15】従来の疑似乱数生成装置の動作を示すフロー
チャートである。
【符号の説明】
1 疑似乱数生成装置 2 レジスタ 3 乱数関数回路 4 起動信号 5 レジスタ 11 分配手段 12 選択手段 31 データランダム化部
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G09C 1/00 - 5/00 H04K 1/00 - 3/00 H04L 9/00 G06F 7/58 INSPEC(DIALOG) JICSTファイル(JOIS)

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】 ディジタル論理回路により構成される暗
    号化関数fにより、y←f(x,k)(入出力変数x,
    yともビット長が同じで、kは暗号鍵で任意長の変数)
    を利用して、記憶手段に蓄積される乱数Rを起動信号が
    入力されるタイミングで更新することにより疑似乱数を
    生成する疑似乱数生成装置において、 該乱数Rのサイズが該暗号化関数fの入出力変数x,y
    のサイズよりも大きい場合に、該乱数Rを該入出力変数
    x,yのサイズ以下のn個のブロックRi (i=0,
    1,…,n−1)(以下、R=R0 ,R1 ,…,
    n-2 ,Rn-1 )に分割して格納する第1の記憶手段
    と、 該第1の記憶手段より該ブロックRi を入力とし、該暗
    号化関数fを組み合わせて乱数関数gi を生成する乱数
    関数回路と、 該乱数関数回路から入力される該乱数関数gi により、
    該第1の記憶手段の乱数RのブロックRi ←gi (R
    r0,Rr1,Rr2,…,Rr m-1 )(rj ∈[0,n−
    1]、j∈[0,m−1],m≦nで、rj は、n個の
    ブロックRi (i∈[0,n−1]から特定のブロック
    Rr j を選び出すインデックスである)を更新する制御
    手段とを有することを特徴とする疑似乱数生成装置。
  2. 【請求項2】 前記乱数関数回路への帰還用の蓄積値F
    Rを保持する第2の記憶手段と、 該第2の記憶手段から入力される蓄積値FR更新するた
    め、入力のサイズに比べ出力のサイズを小さくする関数
    hを含む前記乱数関数回路とを有し、 前記制御手段は、該第2の記憶手段からの入力FRを乱
    数関数gi に加えて、Ri ←gi (Rr0,Rr1,Rr2
    …、Rr m-1 ,FR)かつFR←h(Rr0,Rr1,R
    r2,…,Rr m-1 ,FR)とすることにより前記第1の
    記憶手段の乱数Rを更新する請求項1記載の疑似乱数生
    成装置。
  3. 【請求項3】 前記制御手段は、前記第2の記憶手段の
    蓄積値FRをRn-1で初期設定し(FR←Rn-1 )、前
    記第2の記憶手段の乱数Ri を前記第1の記憶手段の値
    と前記第2の記憶手段の値をビット毎に排他論理和をと
    り、その結果と前記暗号鍵kによりRi ←gi (Ri
    FR)=f(Ri ◎FR,k)(但し、◎はビット毎の
    排他的論理和)とし、且つ、該第2の記憶手段の該蓄積
    値FRをRi で更新する処理(FR←Ri )をi=0か
    らn−1まで逐次処理する請求項2記載の疑似乱数生成
    装置。
  4. 【請求項4】 前記制御手段は、前記第1の記憶手段の
    ブロックRi と、前記第2の記憶手段FRをp分割し、
    前記第1の記憶手段のブロックをRi j (j=0,1,
    …,p−1)によりRi =(Ri 0 ,Ri 1 ,…,Ri
    p-1 )とし、前記第2の記憶手段の値をFRj (j=
    0,1,…,p−1)によりFR=(FR0 ,FR1
    …,FRp-1 )とし、t(x)は入力xをp分割した時
    の最上位の値を選択的に出力する関数とし、FR←R
    n-1 に初期設定し、 Ri j ←gi (Ri j ,FR)=Ri j ◎t(f(F
    R,k) 且つ FR←(FR1 ,FR2 ,…,FRp-1 ,Ri j ) をj=0よりp−1までの逐次処理する処理を、i=0
    よりn−1まで逐次処理する請求項2記載の疑似乱数装
    置。
  5. 【請求項5】 前記制御手段は、前記第1の記憶手段の
    ブロックRi をp分割し、Ri j (j=0,1,…,p
    −1)により、Ri =(Ri 0 、Ri 1 、…、
    i p-1 )とし、まず、前記第2の記憶手段の蓄積値F
    RをFR←Rn-1 に初期設定し、t(x)は、入力xを
    p分割した時の最上位の値を選択的に出力する関数と
    し、Ri j ←gi (Ri j ,FR)=Ri j ◎t(f
    (FR,k))かつFR←f(FR,k)により前記第
    1の記憶手段と、前記第2の記憶手段をj=0よりp−
    1まで逐次更新する処理をi=0よりn−1まで逐次処
    理する請求項2記載の疑似乱数生成装置。
  6. 【請求項6】 前記制御手段は、前記暗号化関数fによ
    り、y←f(x,k)(x,yともビット長が同じサイ
    ズ、kは鍵)を実行するとき、鍵にブロックRi を関連
    させ、つまりk=(Rs(i+1)、Rs(i+2)、…、
    x(i+m))かつRi ←f(Ri ,k)(ここで、s
    (x)=xmod n,mはkのデータ長分に必要なブロッ
    クRi の個数(厳密には、|k|が|Ri |で割り切れ
    る場合、m=|k|/|Ri |、割り切れない場合、m
    は|k|/|Ri |+1の小数点以下を切り捨てた値)
    ここで、|x|は、xのビット長を表す)としてi=
    0,1,…,n−1に関して更新し、乱数Rを生成して
    前記第1の記憶手段の内容を更新する請求項1記載の疑
    似乱数生成装置。
JP06102990A 1994-05-17 1994-05-17 疑似乱数生成装置 Expired - Lifetime JP3099081B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP06102990A JP3099081B2 (ja) 1994-05-17 1994-05-17 疑似乱数生成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP06102990A JP3099081B2 (ja) 1994-05-17 1994-05-17 疑似乱数生成装置

Publications (2)

Publication Number Publication Date
JPH07311675A JPH07311675A (ja) 1995-11-28
JP3099081B2 true JP3099081B2 (ja) 2000-10-16

Family

ID=14342147

Family Applications (1)

Application Number Title Priority Date Filing Date
JP06102990A Expired - Lifetime JP3099081B2 (ja) 1994-05-17 1994-05-17 疑似乱数生成装置

Country Status (1)

Country Link
JP (1) JP3099081B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI113146B (fi) * 1999-10-19 2004-02-27 Setec Oy Menetelmä autentikointiviestin käsittelemiseksi, puhelinjärjestelmä, autentikointikeskus, tilaajalaite ja SIM-kortti
JP2005309148A (ja) * 2004-04-22 2005-11-04 Hitachi Ltd データ変換装置およびデータ変換方法

Also Published As

Publication number Publication date
JPH07311675A (ja) 1995-11-28

Similar Documents

Publication Publication Date Title
JP4842993B2 (ja) 選択された統計的アーティファクトを有する混合基数数生成器
US8180055B2 (en) Cryptographic system incorporating a digitally generated chaotic numerical sequence
CN1677917B (zh) 用于流式密码中的循环存储单元的方法和系统
US8320557B2 (en) Cryptographic system including a mixed radix number generator with chosen statistical artifacts
EP2962185B1 (en) Random number generator and stream cipher
JP3821631B2 (ja) 楕円曲線暗号におけるスカラー倍計算方法及び装置、並びに記憶媒体
KR100994841B1 (ko) 다중키를 이용한 스트림 암호 생성 방법 및 기록 매체
US20050097153A1 (en) Pseudorandom number generator
JP2008293034A (ja) タイミング攻撃を阻止する標準化されたモジュラべき乗を計算することにより復号メカニズムを実行する方法と装置
Ding The differential cryptanalysis and design of natural stream ciphers
CN116318660B (zh) 一种消息扩展与压缩方法及相关装置
US7933403B2 (en) ARIA encryption/decryption apparatus and method, and method of generating initialization key for the same
JP3302043B2 (ja) 暗号通信方法及びそのシステム
JP3099081B2 (ja) 疑似乱数生成装置
JP2004004341A (ja) べき乗剰余計算装置、べき乗剰余計算方法及びプログラム
EP1587237A1 (en) Security countermeasures for power analysis attacks
JP2001051832A (ja) 乗算剰余演算方法および乗算剰余回路
JP4765108B2 (ja) 公開鍵暗号化方法のための電子鍵を生成するための方法およびこの方法を使用するセキュア・ポータブル・オブジェクト
JP4629300B2 (ja) 暗号学的擬似乱数発生装置及びプログラム
JP2001142682A (ja) 乱数発生装置及び乱数発生方法
JP3796867B2 (ja) 素数判定方法および装置
JP2001154580A (ja) 素数生成方法及び装置及び素数生成プログラムを格納した記憶媒体
US11973866B2 (en) Cryptographic processing method, related electronic device and computer program
JP3881273B2 (ja) 暗号鍵生成装置、暗号鍵生成プログラムおよびそのプログラムを記録した記録媒体
Erdem et al. Use of Rijndael Block Cipher on J2ME Devices for encryption and hashing

Legal Events

Date Code Title Description
FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070818

Year of fee payment: 7

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080818

Year of fee payment: 8

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080818

Year of fee payment: 8

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090818

Year of fee payment: 9

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090818

Year of fee payment: 9

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100818

Year of fee payment: 10

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100818

Year of fee payment: 10

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110818

Year of fee payment: 11

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120818

Year of fee payment: 12

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130818

Year of fee payment: 13

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

EXPY Cancellation because of completion of term