JPH07193565A - 疑似乱数を用いた通信方法とその装置 - Google Patents
疑似乱数を用いた通信方法とその装置Info
- Publication number
- JPH07193565A JPH07193565A JP5331241A JP33124193A JPH07193565A JP H07193565 A JPH07193565 A JP H07193565A JP 5331241 A JP5331241 A JP 5331241A JP 33124193 A JP33124193 A JP 33124193A JP H07193565 A JPH07193565 A JP H07193565A
- Authority
- JP
- Japan
- Prior art keywords
- pseudo
- random number
- mod
- communication
- pseudo random
- 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.)
- Granted
Links
Abstract
する疑似乱数を用いた通信方法とその装置を提供するこ
とを目的とする。 【構成】 疑似乱数生成装置1は、自乗剰余演算装置2
と論理演算装置3を備える。自乗剰余演算装置2は、初
期値y0と剰余演算の法であるNと互いに素である任意
の定数Rから、次式に示す演算を連鎖的に行い、y1 ,
y2 ,…を生成する。yi+1 =(yi 2+M・N)/R
(i=0,1,2,…)、ただし、M=yi 2・N’mo
d R、N’=−N-1 mod R。 R(=2t)はNと互
いに素な整数である。自乗剰余演算装置2のyi+1出力
線5に、シーケンシャルに出力されるy1,y2,…の各値
は論理演算装置3に入力される。論理演算装置3では、
入力されたy1,y2,…の任意の(単数/複数)ビットを
切り出して、それを疑似乱数として出力線6に疑似乱数
を出力する。
Description
タの秘匿、発信者・着信者の認証、暗号鍵の共有、零知
識証明プロトコル等で必要な乱数生成を用いた通信方法
とその装置に関する。また、例えば、モンテカルロシミ
ュレーション等で必要な乱数生成方法とその装置に関す
る。
での生成した乱数列のみからその時点以降に生成する乱
数が容易に予測できないことが必要である。文献「Prim
alityand Cryptography」(Evangelos Kranakis著、J
OHN WILEY&SONS発行、pp.108-137)に
は、上の条件を満たす疑似乱数系列が掲載されている。
るとビットbi は,X0 を任意に与える初期値、p,q
をp≡q≡3(mod4)である素数として、 Xi+1 =Xi 2 mod N (i=0,1,2,…) (式1) bi =lsb(Xi )(i=1,2,…) (式2) によって与えれる(ただし、N=p・q,lsbは最下
位ビットを表わす)。
(辻重男、笠原正雄編著、昭晃堂発行、pp.86 )には、
別の疑似乱数列生成方法が掲載されている。
ビットbi は、x0 を任意に与える初期値、p,qを素
数、eをL(Lはp−1とq−1の最小公倍数)と互い
に素な数として、 xi+1 =xi e mod N (i=0,1,2,…) (式3) bi =lsb(xi )(i=1,2,…) (式4) によって与えられる(ただし、N=p・q,lsbは最
下位ビットを表わす)。
1 ,b2 ,…,bi のみからbi+1を求めることは、N
を因数分解するのと同程度の手間が必要であることが知
られている。つまり、ある時点までに生成された疑似乱
数列のみからその時点以降に生成されるべき乱数を求め
るための計算量は、Nを因数分解するのに必要な計算量
と同等であることが知られている。ただし、Nを因数分
解することを計算量的に困難にするためにはp,qを数
百ビット程度にする必要がある。このように、ある時点
までに生成された乱数列のみからその時点以降に生成さ
れるべき乱数を予測することが計算量的に困難となるよ
うな方法により生成された乱数は、暗号学的に安全な疑
似乱数と呼ばれている。
で示される乗算剰余と呼ばれる演算に含まれる。 Q=υ・ν mod N (Q,υ,νは整数) (式5) このような乗算剰余を効率的に演算する方法としてモン
ゴメリ法(P.L.Montgomery “Modular multiplicatio
n without trial division”Math.of Computation,vo
l.44,1985,pp.519-521 参照)が知られている。このモ
ンゴメリ法を用いれば、法Nによる除算を行うことなく
演算できるので、通常の乗算剰余より効率的に処理でき
る。
ont(υ,ν)とすると、Mont(υ,ν)は互い
に素な数であるRを用いて、 Mont(υ,ν)≡υ・ν・R-1(mod N) (式6) により与えられる。
t(υ,ν)を得るために Mont(υ,ν)=(υ・ν+M・N)/R (式7) ただし、 M=υ・ν・N’mod R (式8) N’=−N-1 mod R (式9) という演算を行っている。
数)とすればRとNは互いに素な整数になる。この場
合、Rによる除算及び剰余演算は実質的な演算を必要と
せず、Mont(υ,ν)を乗算と加算のみで高速に計
算できる。
の計算手順は、式(1)と同じパラメ−タとNと互いに
素な数であるRを用いて、 y0 =R・X0 mod N (式10) yi+1 =R-1・yi 2 mod N (i=0,1,2,…) (式11) によって与えられる。
れる系列を比較すると、 yi =R・Xi mod N (i=0,1,2,…) (式12) となり、式(11)で生成される系列yi (i=0,
1,2,…)は、式(1)で生成される系列Xi (i=
0,1,2…)にRを掛けたものになっている。よって
従来では、暗号学的に安全な疑似乱数系列として、Xi
の最下位ビットの系列であるbi を生成するために、演
算で得られたyi に対し、 Xi =R-1・yi mod N (i=0,1,2,…) (式13) という演算を行う必要があった。
乗剰余演算を繰り返すことによって実行することができ
る。具体的に乗算剰余の繰り返しによって、べき乗剰余
xi+1 =xi e mod N(i=0,1,2,…,s)を
順次計算する手順は以下の[アルゴリズム1]に示すよう
になる。また、そのフローチャートを図13に示す。た
だし、ただし、eをkビットからなる整数でe=[ek
ek-1…e2 e1 ]で表わすとする。 [アルゴリズム1] INPUT x0 ,e,N、s (**1) FOR i=0 TO s (**2) xi+1 =1 FOR j=k TO 1 IF ej =1 THEN xi+1=xi+1・xi mod N IF j>1 THEN xi+1=xi+1・xi+1 mod N NEXT OUTPUT xi+1 (=xi e mod N) NEXT (**9)
e、N、sの各値を入力する。ここで、sは剰余演算の
繰り返し数である。ライン(**2)のFOR文は、ライ
ン(**9)までの処理を、変数iに関して「0」から
「s」まで繰り返すコマンドであり、べき乗剰余xi+1
(i=0,1,2,…,s)を順次求める処理を繰り返
させる。
算剰余の繰り返しによるべき乗剰余xi+1 =xi e mo
d N を計算する手順は以下のようになる。ただし、R
はNと互いに素である整数とし、eは先程と同じくkビ
ットからなる整数でe=[e k ek-1 …e2 e1 ]で表
わせるとする。このアルゴリズムを実行すれば、式
(2)で得られる系列xi (i=0,1,2,…,s)
を得ることができる。 [アルゴリズム2] INPUT x0 ,e,N,s,RR =R2 mod N FOR i=0 TO s yi=Mont(xi ,RR) (*1) yi+1=Mont(1,RR) (*2) FOR j=k TO 1 IF ej =1 THEN yi+1 =Mont(yi+1,yi) IF j>1 THEN yi+1 =Mont(yi+1,yi+1) NEXT xi+1 =Mont(yi+1,1) (*3) OUTPUT xi+1 (=xi e mod N) NEXT [アルゴリズム2]に従って式(2)をモンゴメリ法によ
り計算する場合に、jに対するFOR−NEXT部分の
出力として得られる系列yi+1 (i=0,1,2,…,
s)は、式(1)と同じパラメ−タとNと互いに素な数
であるRを用いて、 y0 =R・x0 mod N (式14) yi+1 =R-(e-1)・yi e mod N (i=0,1,2,…) (式15) と表わされる。
i+1 (i=0,1,2,…)と式(15)で生成される
系列yi+1 (i=0,1,2,…)とを比較すると、 yi =R・xi mod N (i=0,1,2,…) (式16) となっている。つまり、[アルゴリズム2]に従って式
(3)をモンゴメリ法により計算する場合に、jに対す
るFOR−NEXT部分の出力として得られる系列y
i+1 (i=0,1,2,…s)は、式(3)で得られる
系列xi+1 (i=0,1,2,…s)に対して式(1
6)のような関係にある。
用いないべき乗剰余演算の[アルゴリズム1]で得られる
演算結果xi+1(xi e mod N)を、モンゴメリ法を
用いたべき剰余演算の[アルゴリズム2]により得るため
には、[アルゴリズム2]の式(*1)により、xiをyi
=Mont(xi,RR)(=R・xi mod N)に補
正し、式(*3)により出力xi+1としてjに対するF
OR−NEXT部分の出力として得られるyi+1からx
i+1=Mont(yi+1,1)(=R-1・yi+1 mod
N)と補正する必要があった。
た安全な疑似乱数生成方法を用いた場合には、p,qを
数百ビット程度にする必要があるため演算量が大きく、
特に式(1)、式(3)部分の計算量が大きいため、高
速に疑似乱数を生成できず、その疑似乱数に基づいて通
信データの生成/再生を高速に行えないという問題があ
った。
で、安全な疑似乱数をより高速にかつ容易に生成し高速
に通信データの生成/再生を行う疑似乱数を用いた通信
方法とその装置を提供することを目的とする。
め、本発明の疑似乱数を用いた通信方法とその装置は、
以下の構成を備える。即ち、所定の値Nを法とし、所定
の初期値X0と、所定の値Cとに基づいて、漸化式Xi+1
=C・Xi 2 mod N をi=0,1,2,...,sの順で繰り返し
計算し、数列X1,X2,X3,...Xs+1を求める計算工程
と、前記数列から所定部分を抽出し、その抽出された抽
出データを疑似乱数データとする抽出工程と、前記疑似
乱数データに基づいて、通信データを生成/再生する通
信工程とを備える。
所定の初期値X0と、所定の値Cとに基づいて、漸化式
Xi+1=C・Xi e mod N をi=0,1,2,...,sの順で繰
り返し計算し、数列X1,X2,X3,...Xs+1を求め、前記
数列から所定部分を抽出し、その抽出された抽出データ
を疑似乱数データとすし、前記疑似乱数データに基づい
て、通信データを生成/再生する通信工程とを備える。
とし、所定の初期値X0と、所定の値Cとに基づいて、
漸化式Xi+1=C・Xi 2 mod N をi=0,1,2,...,sの
順で繰り返し計算し、数列X1,X2,X3,...Xs+1を求め
る計算手段と、前記数列から所定部分を抽出し、その抽
出された抽出データを疑似乱数データとする抽出手段
と、前記疑似乱数データに基づいて、通信データを生成
/再生する通信手段と、を備える。
所定の初期値X0と、所定の値Cとに基づいて、漸化式
Xi+1=C・Xi e mod N をi=0,1,2,...,sの順で繰
り返し計算し、数列X1,X2,X3,...Xs+1を求める計算
手段と、前記数列から所定部分を抽出し、その抽出され
た抽出データを疑似乱数データとする抽出手段と、前記
疑似乱数データに基づいて、通信データを生成/再生す
る通信手段と、を備える。
定の初期値X0と、所定の値Cとに基づいて、漸化式X
i+1=C・Xi 2 mod N をi=0,1,2,...,sの順で繰り
返し計算し、数列X1,X2,X3,...Xs+1を求め、前記数
列から所定部分を抽出し、その抽出された抽出データを
疑似乱数データとすし、前記疑似乱数データに基づい
て、通信データを生成/再生する。
所定の初期値X0と、所定の値Cとに基づいて、漸化式
Xi+1=C・Xi e mod N をi=0,1,2,...,sの順で繰
り返し計算し、数列X1,X2,X3,...Xs+1を求め、前記
数列から所定部分を抽出し、その抽出された抽出データ
を疑似乱数データとし、前記疑似乱数データに基づい
て、通信データを生成/再生する。
とし、所定の初期値X0と、所定の値Cとに基づいて、
漸化式Xi+1=C・Xi 2 mod N をi=0,1,2,...,sの
順で繰り返し計算し、数列X1,X2,X3,...Xs+1を、計
算手段が求め、前記数列から所定部分を、抽出手段が抽
出し、その抽出された抽出データを疑似乱数データと
し、通信手段が、前記疑似乱数データに基づいて、通信
データを生成/再生する。
所定の初期値X0と、所定の値Cとに基づいて、漸化式
Xi+1=C・Xi e mod N をi=0,1,2,...,sの順で繰
り返し計算し、数列X1,X2,X3,...Xs+1を、計算手段
が求め、前記数列から所定部分を、抽出手段が抽出し、
その抽出された抽出データを疑似乱数データとし、前記
疑似乱数データに基づいて、通信手段が通信データを生
成/再生する。
実施例について、以下、適宜図を参照しながら説明す
る。
学的に暗算な疑似乱数系列として式(12)のyi から
直接、 αi =lsb(yi )(i=0,1,2,…) (式17) によって得られたαi を用いることにより、式(13)
の演算を省くことを可能にし、出力乱数の安全性を低下
させることなく疑似乱数の生成速度を向上させたもので
ある。
は、Xi+1 からbi を求めることが非常に困難であるこ
と、つまりbi がXi+1のハードコアビットであること
を利用している。式(11)、(17)を用いた疑似乱
数生成の場合もXi+1 にある定数Rを掛けたyi+1 から
αi を求めることは非常に困難である。つまり、αiは
yi+1 のハードコアビットであるので、式(11)、式
(17)を用いた疑似乱数生成の安全性も、式(1)を
用いた疑似乱数生成と同程度である。
3)の処理を行うことなく、式(1)と同程度の安全性
を有する疑似乱数列をより高速に、或はより小さな回路
規模で生成することを可能にし、本実施例の方法を用い
ることで、高速に通信データの生成/再生を行うことが
できる。
似乱数生成の安全性も式(1)を用いた疑似乱数生成と
同程度であることの証明を行う。その前に用いる記号等
を簡単に定義する。詳しくは、文献「現代暗号理論」
(池野、小山著、昭和61年発行、電子情報通信学会、
14−15、95−96)参照されたい。・平方剰余:
X2 ≡c(modp)に解があるときcはpの平方剰
余、解がないときは平方非剰余という。
とし、X≠ 0 (mod p)のとき、 (x/p)= 1 :xがpの平方剰余の時 ―1 :xがpの平方非剰余の時 ・Z* N:Nと互いに素で0からN―1までの範囲の整
数。
=p・q(p,qは素数)に対し、ヤコビ記号(x/
N)は、ルジャンドル記号(x/p)を用いて、 (x/N)=(x/p)(x/q) で表される。 ・Z* N(+1)={x∈Z* N|(x/N)=1} ・Z* N(―1)={x∈Z* N|(x/N)=―1} ・Q1={x∈Z* N|(x/p)=(x/q)=1} ・Q2={x∈Z* N|(x/p)=(x/q)=―1} ・Q3={x∈Z* N|(x/p)=―(x/q)=1} ・Q4={x∈Z* N|(x/p)=―(x/q)=―
1} 式(11)、式(17)を用いた疑似乱数生成の安全性
が式(1)を用いた疑似乱数生成の安全性と同じである
ことを示すのは次の命題を証明することに等しい。 [命題]「式(11)、(17)より生成された疑似乱数
列αi+1 ,αi+2 ,…からαi を正しく推測できるな
ら、任意のc(c∈Z* N(+1))に対して、その平方
剰余を判定できる。」 [証明]R∈Q1の時、任意のc(c∈Z* N(+1))に
対して、 b=R・c mod N yi+1 =R-1・b2 modN とし、yi+1 を初期値として、式(11)、式(17)
によりαi+1 ,αi+2 ,…を生成する。
)とすると、 Z1 ≡−Z2 (mod N) Z3 ≡−Z4 (mod N) より、仮定を用いて、 αi =lsb(z1) を予想することができる。よって、 αi =lsb(b)なら b∈Q1 そのときc∈Q1 αi ≠lsb(b)なら b∈Q2 そのときc∈Q2 同様にR∈Q2 ,R∈Q3 ,R∈Q4 の時も、cの平方
剰余性を判定できる。
数生成装置1の構成を示す図である。疑似乱数生成装置
1は、自乗剰余演算装置2と、論理演算装置3から構成
される。
演算の法であるNと互いに素である任意の定数Rから、
次式に示す演算を連鎖的に行い、y1 ,y2 ,…を生成
する。 yi+1 =R-1・yi 2 mod N (i=0,1,2,…) (式18) N=p・q (式19) ただし、p、qは、p≡q≡3(mod 4)である素
数。
たy1 ,y2 ,…は、yi+1出力線5にシーケンシャル
に出力される。
にモンゴメリ法と呼ばれるものである。モンゴメリ法で
は、実際に計算結果yi+1 を得るために、次式の演算を
行う。 yi+1 =(yi 2+M・N)/R (i=0,1,2,…) (式20) ただし、 M=yi 2・N’mod R (式21) N’=−N-1 mod R (式22) ここで、Nは奇数であるので、R=2t (tは任意の整
数)とすればRとNは互いに素な整数になる。この場
合、Rによる除算及び剰余演算は実質的な演算を必要と
せず、yi+1 を乗算と加算演算で高速に計算できる。
ばハードウエアで構成する場合には、加算機と、乗算器
と、Rによる除算及び剰余演算のためのビットシフトを
行うシフタ等の基本演算器を備えることによって、容易
にモンゴメリの方法による演算を実行できる。さらに、
文献「モンゴメリー法を用いたべき乗アルゴリズムとシ
ストリックアレイ」(岩村、松本、今井;vol.92,No.13
4,pp.49-54,1992 )に示される公知のモンゴメリ演算回
路を用いることもできる。
シーケンシャルに出力されるy1 ,y2 ,…の各値は論
理演算装置3に入力される。論理演算装置3では、入力
されたy1,y2,…のそれぞれ下位log2n(但し、nはN
の2進表示による桁数)ビットの範囲にある任意の(単
数/複数)ビットを切り出して、それを疑似乱数として
出力線6に疑似乱数を出力する。例えば、下位log2nビ
ット全てを疑似乱数としてもよいし、最下位ビットだけ
を疑似乱数として出力してもよい。
より構成する場合には、入力された入力されたyi (i
=1,2,…)をパラレルでラッチし、その下位log2n
ビットを純にシリアルに出力するようなパラレル入力シ
リアル出力のシフトレジスタを用いることができる。
方法をソフトウエアで実現するための疑似乱数生成プロ
グラムを搭載したデータ処理装置15の構成を示す図で
ある。ここで、CPU10は、疑似乱数生成プログラム
を搭載したデータ処理装置15全体の制御を行う。キー
ボード11は、疑似乱数生成プログラムの起動コマンド
や疑似乱数生成プログラムのための各種パラメータ値な
どの入力を行う。ROM13には、本実施例の疑似乱数
を生成する疑似乱数生成プログラム等が予め格納されて
おり、CPU10によって読み出されながら実行され
る。RAM14は、疑似乱数生成プログラムを実行させ
るなどの作業領域であり、また疑似乱数生成結果が格納
される。
過程を説明するフローチャートである。以下このフロー
チャートに基づき疑似乱数生成プログラムの処理過程を
説明する。疑似乱数生成プログラムは、式(7)〜式
(9)の演算の実行を基本としている。
る素数を任意に選び、pとqに設定する。そして、p・
qの乗算を行い、結果をNに設定する。そして、Nと互
いに素な任意の数をRに設定する。さらに、R=2tを
満たす「t」値を計算する。またさらに、「−N-1 mo
d R」を計算して、結果をN’に設定する。
の初期値をy0にセットする。
の演算を行い、結果をN’に設定する。
を示すiを「0」に初期化する。
2t」を計算して、結果をMに設定する。尚、ここで、
「yi 2・N’」を2tで割る処理が基本になるので、除
算は「yi 2・N’」を「t」ビットシフト処理すればよ
いので高速に処理できる。
2t」の演算を行い、結果をyi+1に設定する。ここでの
除算も「t」ビットシフトが基本となるので高速に処理
できる。
定位置のビット列を切り出して、rand(i)に設定
する。尚、rand(i)は1次元の配列である。
と比較して、i値がEnd値より小さければ、ステップ
S9へ進む。尚、End値は、予め生成したい乱数列の
量に対応して設定されている。これは、例えば、キーボ
ード11からでもよいし、本疑似乱数生成プログラムを
呼び出す別のプログラムで設定してもよい。
めにiをカウントアップする。そして、ステップS5か
らの処理に戻り、次の乱数の生成を継続する。
dに一連の疑似乱数列が生成される。
を示してきたが、一般に自乗演算結果X2に任意の定数
Cを掛けた数C・X2に対し剰余演算を行い、その結果
得られるy=C・X2 modNの所定ビットから疑似乱
数を生成することもできる。図4は、第2の実施例によ
る疑似乱数生成装置20の構成を示す図である。疑似乱
数生成装置20は、自乗剰余演算装置21と論理演算装
置22から構成される。
意の定数Cから、次式に基づく演算を連鎖的に行い、y
1,y2,…を生成する。 yi+1 =C・yi 2 mod N (i=0,1,2,…) N=p・q ただし、p,qはp≡q≡3(mod4)である素数。
図4の自乗剰余演算装置21に示された演算、即ち、 yi 2 mod N C・yi 2 mod N は、両者とも乗算剰余演算であるため、自乗剰余装置2
1を構成としては、乗算剰余演算を行えるものであれば
よい。特にハードウエアにより構成する場合には、文献
「並列処理によるRSA暗号装置の構成法」(岩村、松
本、今井;電子情報通信学会論文A、vol.J75-A,No.8,p
p.1301-1311,1992)に示される公知の乗算剰余演算回路
を用いることもできる。自乗剰余演算装置からの出力
は、論理演算装置に入力される。論理演算装置では入力
されたy1,y2,…のそれぞれ下位log2n(ただし、nは
Nの2進表示による桁数)ビットの範囲にある任意の
(複数/単数)ビットから疑似乱数を生成し出力する。
のそれぞれ下位log2nビットの範囲にある任意のビット
を疑似乱数として出力することができる。例えば、下位
log2nビット全てを疑似乱数とすることも、最下位ビッ
トだけを疑似乱数として出力することもできる。
によれば、暗号学的に安全な疑似乱数をモンゴメリ法に
より生成する場合、式(11)により得られるyi の所
定のビットを疑似乱数として用いることにより、安全性
を低下させることなく、従来必要であった式(13)の
演算を不要にできる。そのことにより、従来と同程度の
安全性を有する疑似乱数列を高速に、或はより小さな回
路規模で生成することが可能である。
装置で生成された疑似乱数を用いることで、高速に通信
データの生成/再生を行うことができる。
乱数生成器は、[アルゴリズム2]の式(*3)で示され
た演算を省くことにより、式(3)と同程度の安全性を
有する疑似乱数列をより高速に、或はより小さな回路規
模で生成することを可能とすることを目的としている。
された演算を省いた時の[アルゴリズム3]を以下に示
す。 [アルゴリズム3] INPUT x0 ,e,N,RR =R2 mod N y0 =Mont(x0,RR) FOR i=0 TO s yi+1 =Mont(1,RR ) FOR j=k TO 1 IF ej =1 THEN yi+1 =Mont(yi+1 ,yi ) IF j>1 THEN yi+1 =Mont(yi+1 ,yi+1 ) NEXT OUTPUT yi+1 (=R-(e-1)・yi e mod N) NEXT この[アルゴリズム3]を実行することによりえられる系
列yi (i=0,1,2,…,s)は、式(15)によ
り示される。式(*3)を省略した場合の第5の実施例
による疑似乱数生成器は、暗号学的に疑似乱数系列とし
ての式(15)のyi から αi =lsb(yi )(i=0,1,2,…) (式23) によって得られたαi を用いる。
疑似乱数生成の安全性について考察する。式(3)で用
いた疑似乱数生成の安全性は、xi+1 からbi を求める
ことが困難であること、つまりbi がxi+1 のハードコ
アビットであることを利用している。式(15)で得ら
れる系列yi(i=0,1,2,…)は、式(3)で得
られる系列xi (i=0,1,2,…)に定数Rを掛け
てNで剰余をとった値である(式(16)参照)。よっ
て、xi+1 からbi =lsb(xi )を求めることが非
常に困難であれば、xi+1 に定数Rを掛けてNで剰余を
とったyi+1 (=R・xi+1 mod N)からαi=ls
b(yi)(lsb(R・xi mod N))を求めることも非
常に困難である。つまり、ai はyi+1のハードコアビ
ットであるので、式(15)と式(23)を用いた疑似
乱数生成の安全性も式(3)を用いた疑似乱数生成と同
程度である。
実行するための処理フローを説明する。
各値を入力する。ここで、sは剰余演算の繰り返し数で
ある。
RR)の演算を行い、その結果をy0に設定する。ここ
で、Mont(x0 ,RR)は、x0 ,RRを変数とし、
式(7)、式(8)、式(9)の演算を行う関数であ
る。但し、式(9)は、予め計算しておくことができ、
N’は定数として扱えるため、実際には、式(7)、式
(8)を演算してMont(x0 ,RR)を求める。式
(7)、式(8)の演算において、法Rは予め2tで表
現されているため、必要な除算は、ビットシフトで実行
できる。
数のカウンタiを、まず「0」に初期化する。そして、
このステップにエントリするごとに、カウンタiをカウ
ントアップし、次のステップへ進む。カウントアップは
sまで行う。
RR)の演算を行い、その結果をyi+1に設定する。
ントするビットポインタjを、まずkに設定する。ここ
で、kはeのビット長であり予め設定されているとす
る。そして、このステップにエントリするごとに、ビッ
トポインタjをカウントダウンし、次のステップへ進
む。カウントダウンは1まで行う。
指定されるeのビットが「1」であるかどうかチェック
する。そして、「1」であればステップS16へ進み、
Mont(yi+1,yi)の演算を行い、その結果をy
i+1に設定する。「0」であればステップS17へ進
む。
「1」以上かどうかチェックし、「1」以上でなけれ
ば、ステップS28へ進む。「1」以上であればステッ
プS18へ進み、「Mont(yi+1,yi+1)」の演算
をおこない、その結果をyi+1に設定する。
「k〜1」区間の値であるかチェックし、その区間値で
あれば、ステップS14からの剰余演算処理へ戻る。そ
の区間値以外であればステップS100へ進む。
2,...)を記憶装置等に格納する。
〜s」区間の値であるかチェックし、その区間値であれ
ば、ステップS12からの処理に戻り、次の剰余演算処
理を行う。その区間値以外であれば、剰余演算処理を終
了する。
93である。べき乗余剰演算装置93は演算はアルゴリ
ズム3に従って初期値x0 ,剰余演算の法であるN,N
と互いにそである任意の定数R、べきeから、以下の演
算を連鎖的に行ない、y1,y2,…を生成する。 y0 =R・x0 mod N (式24) yi+1 =R-(e-1)・yi e mod N (i=0,1,2,…) (式25) ここで、N=p・q ただし、p,qは素数。
装置90では、アルゴリズム3を実行している。べき乗
余剰演算装置90の入力は初期値x0,べきe,演算の
法N,定数R,RR=R2 modN,iに対する繰り返
し演算回数sである。べき乗余剰演算装置90からはy
i+ 1 (i=0,1,…,s)が順次出力される。べき乗
余剰演算装置90は、入力バッファ94、判定部96、
モンゴメリ演算器95、メモリ98、出力部97からな
る。べき乗余剰演算装置90の動作手順を次に述べる。 1.入力バッファ94にはx0 ,e,N,R,RR ,s
が入力される。入力バッファ94に入力されたe,sは
判定部96に入力される。判定部96では、eを[ek
ek-1 …e2 e1 ]のkビットに分解する。更に判定部
96が備えるi及びjに対する2つのカウンタに対して
i=0,j=kと設定する。入力バッファ94に入力さ
れたR,Nはモンゴメリ演算器95に設定され、モンゴ
メリ演算の初期値x0 ,RR はメモリ98に保持され
る。
ンゴメリ演算器95においてy0 が算出され、y1 =R
と共にモンゴメリ演算の初期値としてメモリ98に保持
される。
j =1及びj>1を判定し、判定結果に応じてメモリ9
8に対するアドレス信号を出力する。メモリ98はyi
とyi+1を保持するが、yi+1はモンゴメリ演算器95の
出力結果により随時更新される。メモリ98は、判定部
96からのアドレス信号に応じて、モンゴメリ演算の出
力yi+1 を記憶し、判定部96からのアドレス信号に応
じて読み出し、モンゴメリ演算器95へyi+1あるいは
yiを出力する。モンゴメリ演算器95はメモリ98か
らの出力に応じてモンゴメリ演算を行なう。判定部96
のjに対するカウンタを1カウントダウンさせ、j=0
となるまでこの手順を繰り返す。
部97に対しイネーブル信号を出し、出力部97はj=
0の時のyi+1をラッチする。出力部97はラッチした
yi+1をべき乗余剰演算結果として出力し、同時にyi+1
をモンゴメリ演算器95の次の入力としてメモリ98で
保持する。判定部96のiに対するカウンタを1カウン
トアップさせ、i=sとなるまで手順3.、手順4.を
繰り返す。
出力は、論理演算装置91に入力される。論理演算装置
91では、入力されたy1 ,y2 ,…のそれぞれ下位l
og2n(但し、nはNの2進表示による桁数)ビット
の範囲にある任意の(複数/単位)ビットから疑似乱数
を生成し、出力する。
2 ,…のそれぞれ下位log2nビットの範囲にある任
意のビットを疑似乱数として出力することができる。例
えば、下位log2nビット全てを疑似乱数とすること
も、最下位ビットだけを疑似乱数として出力することも
できる。
により構成する場合には、入力されたyi (i=1,
2,…)をパラレルでラッチし、その下位log2nビ
ットを順次シリアルに出力するパラレル入力シリアル出
力のシフトレジスタを用いることができる。
ルゴリズム2]において従来必要であった式(*3)の
処理を省いた[アルゴリズム3]の計算手順により、式
(3)と同程度の安全性を有する疑似乱数列をより高速
に、或はより小さな回路規模で生成できる。
装置で生成された疑似乱数を用いることで、高速に通信
データの生成/再生を行うことができる。
乱数生成器は、[アルゴリズム2]の式(*1)、式(*
3)で示された演算を両方とも省くことにより、式
(3)と同程度の安全性を有する疑似乱数列をより高速
に、或はより小さな回路規模で生成することを可能とす
ることを目的としている。
示す。 [アルゴリズム4] INPUT y0 (=x0),e,N,R FOR i=0 TO s yi+1=R FOR j=k TO 1 IF ej =1 THEN yi+1 =Mont(yi+1,yi) IF j>1 THEN yi+1 =Mont(yi+1,yi+1) NEXT OUTPUT yi+1 (=R-(e-1)・yi e mod N) NEXT このアルゴリズムを実行することによりえられる系列y
i (i=0,1,2,…,s)は、Nと互いに素である
Rを用いて、 y0 =x0 mod N (式26) yi+1 =R-(e-1)・yi e mod N (i=0,1,2,…) (式27) と表わされる。この場合、式(3)で生成される系列x
i (i=0,1,2,…)と式(27)で生成される系
列yi (i=0,1,2,…)とを比較すると、 yi =R**(1-ei)・xi modN(i=0,1,2,…) (式28) となっている。尚、ここで、「R**(1-ei)」は、Rの(1
-ei)乗を意味するものとする。
本実施例による疑似乱数生成器は、暗号学的に安全な疑
似乱数系列として式(27)のyi から、 ai’=lsb(yi) (i=0,1,2,…) (式29) によって得られたai’を用いる。
3)を省略した場合と同じことが言える。式(27)で
得られる系列yi (i=0,1,2,…)は、式(3)
で得られる系列xi (x=0,1,2,…)に定数R**
(1-ei+1)を掛けてNで剰余をとった値である(式(2
8)参照)。
を求めることが非常に困難であれば、xi+1 に定数R**
(1-ei+1)を掛けてNで剰余をとった yi+1(=(R**(1-ei+1)・xi+1) mod N)から ai '=lsb(yi)(=lsb((R**(1-ei+1)・xi)
mod N))を求めることも非常に困難である。つま
り、ai 'はyi+1のハードコアビットであるので、式
(27)と式(29)を用いた疑似乱数生成の安全性も
式(3)を用いた疑似乱数生成と同程度である。
実行するための処理フローを説明する。
の各値を入力する。ここで、sは剰余演算の繰り返し数
である。
し数のカウンタiを、まず「0」に初期化する。そし
て、このステップにエントリするごとに、カウンタiを
カウントアップし、次のステップへ進む。カウントアッ
プはsまで行う。
する。
イントするビットポインタjを、まずkに設定する。こ
こで、kはeのビット長であり予め設定されているとす
る。そして、このステップにエントリするごとに、ビッ
トポインタjをカウントダウンし、次のステップへ進
む。カウントダウンは1まで行う。ステップS204で
は、ビットポインタjで指定されるeのビットが「1」
であるかどうかチェックする。そして、「1」であれば
ステップS205へ進み、Mont(yi+1,yi)の演
算を行い、その結果をyi+1に設定する。「0」であれ
ばステップS206へ進む。
が「1」以上かどうかチェックし、「1」以上でなけれ
ば、ステップS207進む。「1」以上であればステッ
プS208へ進み、「Mont(yi+1,yi+1)」の演
算をおこない、その結果をy i+1に設定する。
が「k〜1」区間の値であるかチェックし、その区間値
であれば、ステップS203からの剰余演算処理へ戻
る。その区間値以外であればステップS209へ進む。
2,...)を記憶装置等に格納する。
〜s」区間の値であるかチェックし、その区間値であれ
ば、ステップS12からの処理に戻り、次の剰余演算処
理を行う。その区間値以外であれば、剰余演算処理を終
了する。
83の構成を示す図である。疑似乱数生成装置83は、
べき乗剰余演算装置80と論理演算装置81を備える。
べき乗剰余演算装置80は演算を[アルゴリズム4]に従
って、初期値y0 ,剰余演算の法であるN,Nと互いに
素である任意の定数R、べきe等を入力バッファ84に
入力する。この入力は、例えばキーボード11を用いて
入力する。モンゴメリ演算器85では、入力バッファ8
4から、N,R、y0の各値を入力し、次式に相当する
演算を行いyi+1 (i=0,1,2,...)の数列、即ち、y1
,y2 ,…を順次求める。 yi+1 =R-(e-1)・yi e mod N (i=0,1,2,…) (式30) ただし、N=p・q p,qは素数 e: e≧2を満たす任意の定数 尚、p,qは予め設定されているとする。また、N(=
p・q)も予め計算されているとする。モンゴメリ演算
器85での実際の演算方法は、上式を直接計算するので
はなく、モンゴメリ法を適用した以下に示す等価式に基
づいて演算を行う。
メリ法による演算Mont(u,v)は前述のように、
式(7)〜式(9)の演算を行なっている。
t (tは任意の整数)とすればRとNは互いに素な整数
になる。この場合、Rによる乗算及び剰余演算は実質的
な演算を必要とせず、Mont(u,v)を乗算と加算
のみで高速に計算できる。よって、このモンゴメリ法に
よる演算の繰り返しにより実現できるべき乗剰余演算も
高速に計算できる。
実行している。べき乗剰余演算装置80の入力バッファ
84に対する入力は初期値y0 (=x0),べきe,演
算の法N,定数R,iに対する繰り返し演算回数sであ
る。べき乗剰余演算装置80の出力部87からはyi+1
(i=0,1,…,s)が順次出力される。べき乗剰余
演算装置80は、入力バッファ84、判定部86、モン
ゴメリ演算器85、メモリ88、出力部87を備える。
べき乗剰余演算装置80の動作の手順を述べる。 1.入力バッファにはyo =(x0 ),e,N,R,s
が入力される。入力手段に入力されたe,sは判定部8
6に入力される。判定部86では、eを[ek ek-1 …
e2 e1 ]のkビットに分解する。更に判定部86が備
えるi及びjに対する2つのカウンタに対してi=0,
j=kと設定する。入力バッファ84に入力されたR,
Nはモンゴメリ演算器85に設定され、モンゴメリ演算
の初期値y 0 ,y1 =Rはメモリ88に保持される。
j =1及びj>1を判定し、判定結果に応じてメモリ8
8に対するアドレス信号を出力する。メモリ88はyi
とyi+ 1 を保持するが、yi+1 はモンゴメリ演算器85
の出力結果により随時更新される。メモリ88は判定部
86からのアドレス信号に応じてモンゴメリ演算器85
の出力yi+1 を記憶し、判定部86からのアドレス信号
に応じて読み出しモンゴメリ演算器85へyi+1 あるい
はyi を出力する。モンゴメリ演算器85はメモリ88
からの出力に応じてモンゴメリ演算を行なう。判定部8
6のjに対するカウンタを1カウンタダウンさせ、j=
0となるまでこの手順を繰り返す。
87に対し、イネーブル信号を出し、出力部87はj=
0の時のyi+1をラッチする。出力部87はラッチした
yi+1をべき乗剰余演算結果として出力し、同時にyi+1
をモンゴメリ演算器85の次の入力としてメモリ88
で保持する。判定部86のiに対するカウンタを1カウ
ントアップさせ、i=sとなるまで手順2.と手順3.
を繰り返す。
y0 (=x0),e,N,Rの各入力値をラッチし保持
するレジスタ、判定部86としてはej =1及びj>1
を判定する比較器とi及びjに対するカウンタとアドレ
ス指定信号やイネーブル信号を出力する論理回路で構成
できる。メモリ88は書き込み/読み出しがランダムに
行なえるRAM、出力部87としては判定部86からの
イネーブル信号に応じてyi+1 の出力値をラッチし保持
するレジスタ等で構成できる。
て、例えばハードウエアにより構成する場合には、加算
器と、乗算器と、Rによる除算剰余演算のためのビット
シフトをシフタ等の基本要素から構成できる。更に、文
献、「モンゴメリ法を用いたべき乗アルゴリズムとシス
トリックアレイ」(岩村,松本,今井;信学技報,vol.
92,No.134,pp.49-54,1992 )に示される公知のモンゴメ
リ演算回路を用いることもできる。
理演算装置81に入力される。論理演算装置81では、
入力されたy1 ,y2 ,…のそれぞれ下位log2n
(但し、nはNの2進表示による桁数)ビットの範囲に
ある任意の(複数/単位)ビットから疑似乱数を生成
し、出力する。
2 ,…のそれぞれ下位log2nビットの範囲にある任
意のビットを疑似乱数として出力することができる。例
えば、下位log2nビット全てを疑似乱数とすること
も、最下位ビットだけを疑似乱数として出力することも
できる。
により構成する場合には、入力されたyi (i=1,
2,…)をパラレルでラッチし、その下位log2nビ
ットを順次シリアルに出力するパラレル入力シリアル出
力のシフトレジスタを用いることができる。
ば、[アルゴリズム2]において従来必要であった式(*
1),式(*3)の処理を省いた[アルゴリズム4]の計
算手順により、式(3)と同程度の安全性を有する疑似
乱数列をより高速に、あるいはより小さな回路規模で生
成することを可能にしたものである。
る乗算剰余演算の高速化に加えて、[アルゴリズム2]に
必要であった入力に対する変換と出力を得るための変換
が不要になるので、演算全体としての高速化が期待でき
る。
装置で生成された疑似乱数を用いることで、高速に通信
データの生成/再生を行うことができる。
は、モンゴメリ法による疑似乱数生成方法を示したが、
一般にべき乗演算結果xe に任意の定数Cを掛けた数C
・xe に対し剰余演算を行ない、その結果得られるy=
C・xe mod Nの所定ビットから疑似乱数を生成す
ることもできる。
装置の構成図73である。べき乗余剰演算装置70は初
期値x0 ,剰余演算の法であるN,べきeから、次式の
演算を連鎖的に行ない、x1 ,x2 ,…を生成する。 xi+1 =xi e mod N (i=0,1,2,…) (式31) ここで、N=p・q ただし、p,qを素数 e(≧2)は任意の定数。 乗算剰余演算器70は入力値xi+1 (i=0,1,2,
…)、剰余演算の法であるNから、 yi+1 =C・xi+1 mod N (i=0,1,2,…) (式32) という演算を行ない、y1 ,y2 ,…を生成する。
ズム1]を実行している。べき乗剰余演算装置70の入
力は、初期値x0 ,べきe,演算の法N,iに対する繰
り返し演算回数sである。べき乗剰余演算装置70から
はxi+1 (i=0,1,…,s)が順次出力される。べ
き乗剰余演算装置70は、入力バッファ74、判定部7
6、乗算剰余演算器75、メモリ78、出力部77から
なる。
順を述べる。 1.入力バッファ74には、x0 ,e,N,sが入力さ
れる。入力バッファ74に入力されたe,sは判定部7
6に入力される。判定部76ではeを[ek ek- 1 …e
2 e1 ]のkビットに分解する。更に判定部76が備え
るi及びjに対する2つのカウンタに対してi=0,j
=kと設定する。入力バッファ74に入力されたR,N
は乗算剰余演算器75に設定され、乗算剰余演算の初期
値x0 ,x 1 =1はメモリ78に保持される。
は、ej =1及びj>1を判定し、判定結果に応じてメ
モリ78に対するアドレス信号を出力する。メモリ78
はxi とxi+1を保持するが、xi+1は乗算剰余演算器7
5の出力結果により随時更新される。メモリ78は判定
部76からのアドレス信号に応じて乗算剰余演算の出力
x i+1を記憶し、判定部76からのアドレス信号に応じ
て読み出し、乗算剰余演算器75へ、xi+1あるいはxi
を出力する。乗算剰余演算器75は、メモリ78からの
出力に応じて乗算剰余演算を行なう。判定部76のjに
対するカウンタを1カウントダウンさせ、j=0となる
までこの手順を繰り返す。
77に対しイネーブル信号を出し、出力部77はj=0
の時のxi+1 をラッチする。出力部77はラッチしたy
i+1をべき乗剰余演算結果として出力し、同時にxi+1を
乗算剰余演算器75の次の入力としてメモリ78で保持
する。判定部76のiに対するカウンタを1カウントア
ップさせ、i=sとなるまで手順2.、手順3.を繰り
返す。
0 ,e,N,sの各入力値をラッチし保持するレジス
タ、判定部76としてはej =1及びj>1を判定する
比較器とi及びjに対するカウンタとアドレス指定信号
やイネーブル信号を出力する論理回路で構成できる。メ
モリ78は書き込み/読み出しがランダムに行なえるR
AM、出力部77としては判定部76からのイネーブル
信号に応じてxi+1 の出力値をラッチし保持するレジス
タ等で容易に構成できる。
演算の繰り返しで実現できる。べき乗剰余演算装置70
及び乗算剰余器での乗算剰余演算を、例えばハードウエ
アにより構成する場合には、文献 「並列処理によるR
SA暗号装置の構成b法」(岩村,松本,今井;電子情
報通信学会論文誌A,vol.J75-A,No.8,pp.1301-1311,19
92)に示される公知の乗算剰余演算方法を用いることも
できる。
算装置71に入力される。論理演算装置71では入力さ
れたy1,y2 ,…のそれぞれ下位log2 n(但し、
nはNの2進表示による桁数)ビットの範囲にある任意
の(複数/単数)ビットから疑似乱数を生成し、出力す
る。
2 ,…のそれぞれ下位log2 nビットの範囲にある任
意のビットを疑似乱数として出力することができる。例
えば、下位log2 nビット全てを疑似乱数とすること
も、最下位ビットだけを疑似乱数として出力することも
できる。
装置で生成された疑似乱数を用いることで、高速に通信
データの生成/再生を行うことができる。
に、上記の疑似乱数生成方法によって生成された疑似乱
数は解析に対して強いので、この疑似乱数を暗号化方式
に用いることにより安全な暗号通信が実現できる。以
下、通信文と乱数との間でビット毎に排他的論理和をと
る暗号化方式(ストリーム暗号)による暗号通信ネット
ワークにおいて、以上説明してきた実施例の乱数生成器
を用いた暗号通信での応用例を以下説明する。
かつ秘密の暗号鍵を共有している共通鍵暗号通信ネット
ワーク30を示す。A,B,C,…,Nはそのネットワ
ークの各加入者である。通信ネットワーク34は、ネッ
トワークの加入者A,B,C,…,N31間の通信を可
能とするネットワークである。各加入者A,B,C,
…,Nの下の各サークル内の各符号KAB,KAC,…は、
それぞれの加入者が共有している暗号鍵を意味する。例
えば、各符号KAB,KAC,…は、それぞれ加入者A−B
間、加入者A−C間で共有している暗号鍵,…を示して
いる。
暗号装置及び複合装置を含む通信装置の構成をブロック
図により示したものである。
通信システムにおけるA、B間の秘匿通信の様子を示し
ている。
器45から受信者Bの利用する受信器46への暗号通信
は以下の手順で行う。
ている秘密の鍵KABの全て又は一部を乱数生成器40の
初期値として、乱数生成器40に設定し、乱数系列ki
(41)を生成させる。
1)と、予め作られた通信文mi(42)をビット毎に
排他的論理和「mi(+)ki」を排他的論理和器43で計
算し、その結果の暗号文ciを受信器46に送信する。
ている秘密の鍵KABの全て又は一部を受信器Bの乱数生
成器47の初期値として乱数生成器47に設定し、乱数
系列k i を生成させる。
と受信した暗号文ciをビット毎に排他的論理和「c
i(+)ki」をとり、その出力が通信文mi(48)として
復元される。
その秘密の鍵KABを知っているので受け取った暗号文を
本来の通信文に複合でき、それ以外の加入者(C〜N)
はその暗号文をする際に用いられた秘密の鍵を知らない
のでその内容を知ることができない。このことにより秘
匿通信が実現される。
配布されているのではなく、暗号通信を行うに先立って
送・受信者間で暗号鍵を共有する必要がある携帯のネッ
トワークにおいても、公知の鍵共有を行えば同じ手順で
暗号通信を実現することができる。
ワークでは通信文の送信者と受信者の間で固有かつ秘密
の鍵を共有しているので、暗号文を受け取り、意味をな
す通信文に複号できるということは、通信文がその鍵の
もう一人の所有者から送信されたということを受診者に
保証している。そのため、第3の実施例に示した秘匿通
信システムでは、通信の発信者及び着信者の認証も行う
ことができる。
装置で生成された疑似乱数を用いることで、高速に通信
データの生成/再生を行う暗号通信ネットワークを実現
できる。
らかじめ暗号鍵が配布されているのではなく、暗号通信
を行うに先立って送・受信者間で暗号鍵を共有する必要
がある形態のネットワークにおいて、盗聴の可能性のあ
る通信路を介した場合でも安全に暗号鍵を共有できる方
式としてDiffie-Hellmanの方式(W.Doffie and M.E.Hel
lman “ Direction in crytography ”,IEEE,IT,vol.
IT-22,No.6,1976 )が良く知られている。その際に用い
る乱数として本実施例により生成した乱数を用いること
ができる。
で同じものを持つ必要はないため、乱数発生器に設定す
る初期値は任意の値を用いればよい。
システムに適用しても1つの機器から成る装置に適用し
ても良い。また、本発明は、システム或は装置にプログ
ラムを供給することによって達成される場合にも適用で
きることはいうまでもない。
号学的に安全な疑似乱数をモンゴメリ法により生成する
場合、式(15あるいは式(25により得られるyi の
所定ビットを疑似乱数として用いることにより、安全性
を低下させることなく、従来必要であった式(*3)あ
るいは式(*1),式(*3)の演算を不要にしたもの
である。そのことにより、従来と同程度の安全性を有す
る疑似乱数をより高速に、あるいはより小さな回路規模
で生成することが可能である。そのため、その生成され
た疑似乱数を用いることで、高速に通信データの生成/
再生を行うことができる。
全な疑似乱数をより高速にかつ容易に生成し高速に通信
データの生成/再生を行うことができる。
示す図である。
理装置の図である。
フローチャートである。
法の一例を示す図である。
フローチャートである。
示す図である。
ートである。
示す図である。
示す図である。
ークを示す図である。
る。
匿通信の様子を示す図である。
Claims (14)
- 【請求項1】 疑似乱数を用いた通信方法であって、 所定の値Nを法とし、所定の初期値X0と、所定の値C
とに基づいて、漸化式Xi+1=C・Xi 2 mod N をi=
0,1,2,...,sの順で繰り返し計算し、数列X1,X2,
X3,...Xs+1を求める計算工程と、 前記数列から所定部分を抽出し、その抽出された抽出デ
ータを疑似乱数データとする抽出工程と、 前記疑似乱数データに基づいて、通信データを生成/再
生する通信工程と、を備えることを特徴とする疑似乱数
を用いた通信方法。 - 【請求項2】 前記漸化式は、モンゴメリ法に基づいて
演算されることを特徴とする請求項1に記載の疑似乱数
を用いた通信方法。 - 【請求項3】 前記モンゴメリ法に基づいて演算される
前記漸化式の数列解は、 前記所定のNと互いに素な整数Rを選択し、 モンゴメリ法による漸化式 Xi+1=(Xi 2 + (Xi 2 ・(−N-1 mod R) mod
R)・N)/R (i=0,1,2,...,s)の演算によって得られ
ることを特徴とする請求項2に記載の疑似乱数を用いた
通信方法。 - 【請求項4】 前記整数Rは、tを整数とする2tべき
形式で置き換え可能で、 前記モンゴメリ法による漸化式の前記整数Rによる除算
項は、その除算項の非除数をtビットシフトすることで
計算されることを特徴とする請求項3に記載の疑似乱数
を用いた通信方法。 - 【請求項5】 疑似乱数を用いた通信方法であって、 所定の値Nを法とし、所定の初期値X0と、所定の値C
とに基づいて、漸化式Xi+1=C・Xi e mod N をi=
0,1,2,...,sの順で繰り返し計算し、数列X1,X2,
X3,...Xs+1を求める計算工程と、 前記数列から所定部分を抽出し、その抽出された抽出デ
ータを疑似乱数データとする抽出工程と、 前記疑似乱数データに基づいて、通信データを生成/再
生する通信工程と、を備えることを特徴とする疑似乱数
を用いた通信方法。 - 【請求項6】 前記漸化式は、モンゴメリ法に基づいて
演算されることを特徴とする請求項5に記載の疑似乱数
を用いた通信方法。 - 【請求項7】 前記モンゴメリ法に基づいて演算される
前記漸化式の数列解は、u、vを整数の引き数とし、Q
を出力結果とする乗算剰余式 Q=(u・v+(u・v・(-N-1 mod R) mod R)
・N)/R の演算を行う演算工程を備えることを特徴とする請求項
6に記載の疑似乱数生成方法。 - 【請求項8】 疑似乱数を用いた通信装置であって、 所定の値Nを法とし、所定の初期値X0と、所定の値C
とに基づいて、漸化式Xi+1=C・Xi 2 mod N をi=
0,1,2,...,sの順で繰り返し計算し、数列X1,X2,
X3,...Xs+1を求める計算手段と、 前記数列から所定部分を抽出し、その抽出された抽出デ
ータを疑似乱数データとする抽出手段と、 前記疑似乱数データに基づいて、通信データを生成/再
生する通信手段と、を備えることを特徴とする疑似乱数
を用いた通信装置。 - 【請求項9】 前記漸化式は、モンゴメリ法に基づいて
演算されることを特徴とする請求項8に記載の疑似乱数
を用いた通信装置。 - 【請求項10】 前記モンゴメリ法に基づいて演算され
る前記漸化式の数列解は、 前記所定のNと互いに素な整数Rを選択し、 モンゴメリ法による漸化式 Xi+1=(Xi 2 + (Xi 2 ・(−N-1 mod R) mod
R)・N)/R (i=0,1,2,...,s)の演算によって得られ
ることを特徴とする請求項9に記載の疑似乱数を用いた
通信装置。 - 【請求項11】 前記整数Rは、tを整数とする2tべ
き形式で置き換え可能で、 前記モンゴメリ法による漸化式の前記整数Rによる除算
項は、その除算項の非除数をtビットシフトすることで
計算されることを特徴とする請求項10に記載の疑似乱
数を用いた通信装置。 - 【請求項12】 疑似乱数を用いた通信装置であって、 所定の値Nを法とし、所定の初期値X0と、所定の値C
とに基づいて、漸化式Xi+1=C・Xi e mod N をi=
0,1,2,...,sの順で繰り返し計算し、数列X1,X2,
X3,...Xs+1を求める計算手段と、 前記数列から所定部分を抽出し、その抽出された抽出デ
ータを疑似乱数データとする抽出手段と、 前記疑似乱数データに基づいて、通信データを生成/再
生する通信手段と、を備えることを特徴とする疑似乱数
を用いた通信装置。 - 【請求項13】 前記漸化式は、モンゴメリ法に基づい
て演算されることを特徴とする請求項12に記載の疑似
乱数を用いた通信装置。 - 【請求項14】 前記モンゴメリ法に基づいて演算され
る前記漸化式の数列解は、u、vを整数の引き数とし、
Qを出力結果とする乗算剰余式 Q=(u・v+(u・v・(-N-1 mod R) mod R)
・N)/R の演算を行う演算手段を備えることを特徴とする請求項
13に記載の疑似乱数生成装置。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP33124193A JP3591857B2 (ja) | 1993-12-27 | 1993-12-27 | 擬似乱数生成方法及び装置、通信方法及び装置 |
US08/350,110 US5666419A (en) | 1993-11-30 | 1994-11-29 | Encryption device and communication apparatus using same |
EP94308810A EP0656709B1 (en) | 1993-11-30 | 1994-11-29 | Encryption device and apparatus for encryption/decryption based on the Montgomery method using efficient modular multiplication |
DE69434422T DE69434422T2 (de) | 1993-11-30 | 1994-11-29 | Verfahren und Anordnung zur Verschlüsselung/Entschlüsselung auf der Basis des Montgomery-Verfahrens unter Verwendung von effizienter modularer Multiplikation |
AT94308810T ATE299631T1 (de) | 1993-11-30 | 1994-11-29 | Verfahren und anordnung zur verschlüsselung/entschlüsselung auf der basis des montgomery-verfahrens unter verwendung von effizienter modularer multiplikation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP33124193A JP3591857B2 (ja) | 1993-12-27 | 1993-12-27 | 擬似乱数生成方法及び装置、通信方法及び装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07193565A true JPH07193565A (ja) | 1995-07-28 |
JP3591857B2 JP3591857B2 (ja) | 2004-11-24 |
Family
ID=18241480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP33124193A Expired - Fee Related JP3591857B2 (ja) | 1993-11-30 | 1993-12-27 | 擬似乱数生成方法及び装置、通信方法及び装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3591857B2 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008523728A (ja) * | 2004-12-09 | 2008-07-03 | インテル コーポレイション | 暗号化処理のスピードを向上させるための方法及び装置 |
JP2011010277A (ja) * | 2009-06-24 | 2011-01-13 | Intel Corp | 格納されている入力値および格納されているカウント値を利用する暗号化鍵生成 |
JP5875719B1 (ja) * | 2015-01-29 | 2016-03-02 | 日本電信電話株式会社 | 乱数生成装置、乱数生成方法、およびプログラム |
US11228426B2 (en) | 2018-07-25 | 2022-01-18 | Fujitsu Limited | Communication device that performs encrypted communication and communication system |
-
1993
- 1993-12-27 JP JP33124193A patent/JP3591857B2/ja not_active Expired - Fee Related
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008523728A (ja) * | 2004-12-09 | 2008-07-03 | インテル コーポレイション | 暗号化処理のスピードを向上させるための方法及び装置 |
JP2011010277A (ja) * | 2009-06-24 | 2011-01-13 | Intel Corp | 格納されている入力値および格納されているカウント値を利用する暗号化鍵生成 |
US8971530B2 (en) | 2009-06-24 | 2015-03-03 | Intel Corporation | Cryptographic key generation using a stored input value and a stored count value |
US9800409B2 (en) | 2009-06-24 | 2017-10-24 | Intel Corporation | Cryptographic key generation using a stored input value and a stored count value |
US10341099B2 (en) | 2009-06-24 | 2019-07-02 | Intel Corporation | Cryptographic key generation using a stored input value and a stored count value |
JP5875719B1 (ja) * | 2015-01-29 | 2016-03-02 | 日本電信電話株式会社 | 乱数生成装置、乱数生成方法、およびプログラム |
US11228426B2 (en) | 2018-07-25 | 2022-01-18 | Fujitsu Limited | Communication device that performs encrypted communication and communication system |
US11722294B2 (en) | 2018-07-25 | 2023-08-08 | Fujitsu Limited | Communication device that performs encrypted communication and communication system |
Also Published As
Publication number | Publication date |
---|---|
JP3591857B2 (ja) | 2004-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0656709B1 (en) | Encryption device and apparatus for encryption/decryption based on the Montgomery method using efficient modular multiplication | |
US7120248B2 (en) | Multiple prime number generation using a parallel prime number search algorithm | |
CN109039640B (zh) | 一种基于rsa密码算法的加解密硬件系统及方法 | |
US6795553B1 (en) | Method and apparatus for modular inversion for information security and recording medium with a program for implementing the method | |
US20110161390A1 (en) | Modular multiplication processing apparatus | |
EP1708081B1 (en) | Method and device for calculating a Montgomery conversion parameter | |
JP2009229615A (ja) | データ処理システム及びデータ処理方法 | |
JP2008252299A (ja) | 暗号処理システム及び暗号処理方法 | |
JPH11305995A (ja) | 計算装置のデ―タ処理高速化方法および装置。 | |
US7024560B2 (en) | Power-residue calculating unit using Montgomery algorithm | |
US6480606B1 (en) | Elliptic curve encryption method and system | |
Tahir | Design and Implementation of RSA Algorithm using FPGA | |
KR100508092B1 (ko) | 저전력 모듈로 곱셈을 수행하는 연산장치 | |
Omorog et al. | Enhanced pseudorandom number generator based on Blum-Blum-Shub and elliptic curves | |
US7319750B1 (en) | Digital circuit apparatus and method for accelerating preliminary operations for cryptographic processing | |
US6609141B1 (en) | Method of performing modular inversion | |
JPH07193565A (ja) | 疑似乱数を用いた通信方法とその装置 | |
JP2007187908A (ja) | サイドチャネル攻撃に耐性を有するモジュラーべき乗算計算装置及びモジュラーべき乗算計算方法 | |
US7113593B2 (en) | Recursive cryptoaccelerator and recursive VHDL design of logic circuits | |
KR101548174B1 (ko) | 모듈러스의 음의 역원을 구하는 방법 | |
KR101472800B1 (ko) | 공개키 암호화 연산에서의 윈도우의 크기를 변경하는 방법 | |
KR101112570B1 (ko) | 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치, 방법 및 그 기록 매체 | |
Schinianakis et al. | RNS-Based Public-Key Cryptography (RSA and ECC) | |
US7403965B2 (en) | Encryption/decryption system for calculating effective lower bits of a parameter for Montgomery modular multiplication | |
US7480380B2 (en) | Method for efficient generation of modulo inverse for public key cryptosystems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20031205 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040106 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040308 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20040312 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040813 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040824 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080903 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090903 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090903 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100903 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100903 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110903 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110903 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120903 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |