JP3292362B2 - 素数生成装置、素因数判定装置、および制限付き素数生成装置 - Google Patents

素数生成装置、素因数判定装置、および制限付き素数生成装置

Info

Publication number
JP3292362B2
JP3292362B2 JP22668295A JP22668295A JP3292362B2 JP 3292362 B2 JP3292362 B2 JP 3292362B2 JP 22668295 A JP22668295 A JP 22668295A JP 22668295 A JP22668295 A JP 22668295A JP 3292362 B2 JP3292362 B2 JP 3292362B2
Authority
JP
Japan
Prior art keywords
prime
prime number
factor
bits
input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP22668295A
Other languages
English (en)
Other versions
JPH0973269A (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 JP22668295A priority Critical patent/JP3292362B2/ja
Publication of JPH0973269A publication Critical patent/JPH0973269A/ja
Application granted granted Critical
Publication of JP3292362B2 publication Critical patent/JP3292362B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、例えば情報セキュ
リティの分野で公開鍵暗号に用いる鍵となる素数を生成
する素数生成装置、素因数判定装置、および制限付き素
数生成装置に関する。
【0002】
【従来の技術】素因数分解の困難性に基づく公開鍵暗号
方式では、秘密鍵として512bit 程度の大きな素数を
用いる。2つの素数P,Qの積Nが与えられてもP,Q
を求めることが困難であれば、Nを公開してもP,Qを
知られる恐れはない。しかし、P,Qの構造によって
は、Nの素因数分解が容易になる場合がある。
【0003】Nの素因数分解を困難にするために素数P
が満たすべき条件として、X509標準では次の項目を
挙げている。Qについても同様。
【0004】(1)P+1が大きな素因数sを持つこと (2)P−1が大きな素因数rを持つこと (3)r−1が大きな素因数tを持つこと (4)Pはランダムであること どれだけ大きければよいかは攻撃法や計算機の進歩に依
存している。素数Pのビット数をpb,P+1の素因数
sをsbビット、P−1の素因数rをrbビットとし
て、rb+sb<pbの場合には以下の素数生成法を利
用することが可能である。
【0005】 (a)tbビットの素数tを生成 (b)r=x*t+1となるrbビットの素数rを生成 (c)sbビットの素数sを生成 (d)ri=1/r mod sを計算 (e)P=2(ys−ri)r+1となるpbビットの
素数Pを生成
【0006】
【発明が解決しようとする課題】上述した従来法では、
rb+sb<pbでなければならず、上述した(2)の
条件を満たすためにrbを大きく取るとsbを小さくせ
ざるを得ない。
【0007】図5は従来法の詳細を示している。この従
来法では、xやyを+の方向に増加させて素数を探索し
ているが、素数の間隔は一様でないので、一方向にだけ
探索すると他の素数よりも高い確率で出現する素数が存
在し得る。例えば、r1=x1t+1,r2=x2
t+1,r3=x3t+1なる素数r1,r2,r3
を考えると、xを2ずつ増加させて調べる従来法ではx
の初期値がxの区間(x2,x3)に入った場合は必ず
x3側へ向かい、結果として必ずr3が選ばれる。区間
(x1,x2)よりも(x2,x3)の方が大きい場
合、r2が選ばれる確率はr3が選ばれる確率に比較し
て小さくなってしまう。(4)の条件を満たすには、生
成される素数の出現確率には片寄りがないことが望まし
い。
【0008】本発明は、上記に鑑みてなされたもので、
その目的とするところは、P−1,P+1が含むべき素
因数のビット数のいずれもがPのビット数の1/2以上
となるような安全性の高い素数を生成するとともに素数
の出現確率が比較的均等である素数生成装置、素因数判
定装置、および制限付き素数生成装置を提供することに
ある。
【0009】
【課題を解決するための手段】上記目的を達成するた
め、請求項1記載の本発明は、乱数生成器および素数判
定器を備え、rを素数、xを乱数とするときp=x*r
+1からなる素数pを生成する素数生成装置であって、
素数pのビット数pb,p−1の素因数とする素数r,
xの最大値xx,xの最小値xm,xの終了値xs,x
m≦x≦xxなる偶数の乱数x、および乱数xdが外部
より入力されたとき、p=x*r+1を計算する第1の
手段と、pを前記素数判定器へ入力し、pが素数と判定
された場合にpを出力して処理を停止し、pが素数でな
いと判定された場合に第3の手段に処理を渡す第2の手
段と、xdの値に応じてxから2を減じるかまたはxに
2を加え、xがxmより小さくなった場合はxをxxと
し、xがxxより大きくなった場合はxをxmとし、x
がxsと等しい場合には第4の手段に処理を渡し、xが
xsに等しくない場合には第1の手段に処理を渡す第3
の手段と、入力条件pb,rを満たす素数pが存在しな
いという信号を出力して停止する第4の手段とを有する
ことを要旨とする。
【0010】また、請求項2記載の本発明は、請求項1
記載の発明において、前記第1の手段では、xがxsま
たはxxまたはxmと等しい場合にのみp=x*r+1
を計算し、それ以外の場合には、xdの値に応じてpに
2*rを加えるかまたは減じた結果をpとすることを要
旨とする。
【0011】更に、請求項3記載の本発明は、素数pお
よび整数sbが入力された時、p+1がsbビット以上
の素因数を持つかどうかを判定する素因数判定装置であ
って、2から順番に素数を格納した記憶手段である素数
テーブル、素数判定器および除算器を備え、前記素数テ
ーブルの最小の値を読み出してkに格納するとともにp
+1をレジスタsに格納し、このkとsを第2の手段に
渡す第1の手段と、sとkを除算器へ入力し、sがkで
割り切れた場合は出力商をsとして第3の手段に処理を
渡し、sがkで割り切れなかった場合は前記素数テーブ
ルに記憶された前記kの次に大きな素数をkに格納して
第4の手段に処理を渡す第2の手段と、sのビット数|
s|をカウントし、|s|がsbより小さい場合にp+
1はsbビット以上の素因数を持たないとの判定結果を
出力して停止し、|s|がsb以上の場合に第4の手段
に処理を渡す第3の手段と、前記素数テーブルにkより
大きな素数がある場合は前記第2の手段に処理を戻し、
前記素数テーブルにkより大きな素数がない場合は第5
の手段に処理を渡す第4の手段と、前記素数判定器にs
を入力し、sが素数の場合はp+1はsbビット以上の
素因数を持つとの判定結果を出力し、sが素数でない場
合はp+1はsbビット以上の素因数を持たないとの判
定結果を出力して停止する第5の手段とを有することを
要旨とする。
【0012】請求項4記載の本発明は、乱数生成器およ
び素数判定器を備え、rを素数、xを乱数とするときp
=x*r+1からなる素数pを生成する素数生成装置で
あって、素数pのビット数pb,p−1の素因数とする
素数r,xの最大値xx,xの最小値xm,xの終了値
xs,xm≦x≦xxなる偶数の乱数x、および乱数x
dが外部より入力されたとき、p=x*r+1を計算す
る第1の手段、pを前記素数判定器へ入力し、pが素数
と判定された場合にpを出力して処理を停止し、pが素
数でないと判定された場合に第3の手段に処理を渡す第
2の手段、xdの値に応じてxから2を減じるかまたは
xに2を加え、xがxmより小さくなった場合はxをx
xとし、xがxxより大きくなった場合はxをxmと
し、xがxsと等しい場合には第4の手段に処理を渡
し、xがxsに等しくない場合には第1の手段に処理を
渡す第3の手段および入力条件pb,rを満たす素数p
が存在しないという信号を出力して停止する第4の手段
を有する素数生成装置と、素数pおよび整数sbが入力
された時、p+1がsbビット以上の素因数を持つかど
うかを判定する素因数判定装置であって、2から順番に
素数を格納した記憶手段である素数テーブル、素数判定
器および除算器を備え、前記素数テーブルの最小の値を
読み出してkに格納するとともにp+1をレジスタsに
格納し、このkとsを第2の手段に渡す第1の手段、s
とkを除算器へ入力し、sがkで割り切れた場合は出力
商をsとして第3の手段に処理を渡し、sがkで割り切
れなかった場合は前記素数テーブルに記憶された前記k
の次に大きな素数をkに格納して第4の手段に処理を渡
す第2の手段、sのビット数|s|をカウントし、|s
|がsbより小さい場合にp+1はsbビット以上の素
因数を持たないとの判定結果を出力して停止し、|s|
がsb以上の場合に第4の手段に処理を渡す第3の手
段、前記素数テーブルにkより大きな素数がある場合は
前記第2の手段に処理を戻し、前記素数テーブルにkよ
り大きな素数がない場合は第5の手段に処理を渡す第4
の手段、前記素数判定器にsを入力し、sが素数の場合
はp+1はsbビット以上の素因数を持つとの判定結果
を出力し、sが素数でない場合はp+1はsbビット以
上の素因数を持たないとの判定結果を出力して停止する
第5の手段を有する素因数判定装置と、乱数生成器と、
素数判定器とを備え、整数pb,rb,sb,tbが外
部より入力されたとき、p−1がrbビットの素因数r
を持ち、p+1がsbビットの素因数sを持ち、r−1
がtbビットの素因数を持つような素数pを生成する制
限付き素数生成装置であって、前記乱数生成器を駆動し
てtbビットの乱数tを生成する第1の手段と、tを前
記素数判定器に入力し、tが素数の場合には第3の手段
に処理を渡し、tが素数でない場合には第1の手段に処
理を戻す第2の手段と、2rb−1/tをxrxとし、2
rb−1/tをxrmとし、乱数生成器を駆動してxrm
≦xrs≦xrxとなるxrsを生成し、レジスタxr
をxrsで初期化し、乱数生成器を駆動して乱数をxr
dへ格納する第3の手段と、ビット数rb、素数t、乱
数xr、最大値xrx、最小値xrm、終了値xrsお
よび乱数xrdを前記素数生成装置に入力し、素数が出
力された場合はrへ格納して第5の手段に処理を渡し、
または入力条件を満たす素数が存在しないという信号が
出力された場合には前記第1の手段に処理を渡す第4の
手段と、2pb−1/rをxpxとし、2pb−1/rをx
pmとし、乱数生成器を駆動してxpm≦xps≦xp
xとなる偶数のxpsを生成し、レジスタxpをxps
で初期化し、乱数生成器を駆動して出力乱数をxpdへ
格納する第5の手段と、ビット数pb、素数r、乱数x
p、最大値xpx、最小値xpm、終了値xpsおよび
xpdを前記素数生成装置に入力し、素数が出力された
場合はpへ格納して第7の手段に処理を渡し、または入
力条件を満たす素数が存在しないという信号が出力され
た場合は前記第3の手段に処理を戻す第6の手段と、素
数pと整数sbを前記素因数判定装置に入力し、p+1
はsbビットの素因数を持たないと判定された場合は前
記第5の手段に処理を戻し、p+1がsbビットの素因
数を持つと判定された場合にはpを出力して停止する第
7の手段とを有することを要旨とする。
【0013】本発明では、最初に上述した条件(2),
(3)を満たす素数Pを生成し、次いでその素数が上述
した条件(1)を満たすかどうかを高速に確認する。ま
た、素数Pを探索する場合には探索の方向を乱数によっ
て決定する。
【0014】まず、素数生成装置は、生成する素数pの
ビット数pb,p−1の素因数とする素数r,xの最大
値xx,xの最小値xm,xの終了値xs,xm≦x≦
xxなる偶数の乱数x、および乱数xdを外部より受け
付けて、p=x*r+1を計算してpを素数判定器へ入
力し、pが素数でない場合にはxdの値に応じて、xか
ら2を減じるかまたはxに2を加え、その結果xがxm
より小さくなった場合はxをxxとし、xがxxより大
きくなった場合はxをxmとする。また、xがxsと等
しくなった場合には、入力条件pb,rを満たす素数p
が存在しないという信号を出力して停止する。xがxs
と等しくならなかった場合は、再びp=x*r+1を計
算して素数判定を行い、pが素数となるまでこれを繰り
返すように構成する。
【0015】次に、乱数生成器と素数判定器を繰り返し
用いてtbビットの素数tを生成する。素数tが得られ
たら、xx=(2rb−1)/t,xm=2rb-1/tとし
てxの最大値xxと最小値xmを求める。乱数生成器を
駆動してxm≦xs≦xxなる偶数の乱数xsを生成
し、xをxsで初期化する。更に乱数生成器を駆動して
乱数xdを得る。これらrb,t,xx,xm,xs,
x,xdを素数生成装置へ入力し、rbビットの素数r
を得る。
【0016】素数rが得られたら、同様にしてrからP
を生成する。yx=(2pb−1)/r,ym=2pb-1
rとしてyの最大値yxと最小値ymを求める。乱数生
成器を駆動してym≦ys≦yxなる偶数の乱数ysを
生成し、yをysで初期化する。更に乱数生成器を駆動
して乱数ydを得る。pb,r,yx,ym,ys,
y,ydを素数生成装置へ入力し、pbビットの素数P
を得る。
【0017】最後に、P+1がsbビット以上の大きな
素因数sを持つかどうかを判定する。適当なビット数以
下の素数を全て格納した素数テーブルを予め作ってお
く。まずkを0に、sをP+1に初期化する。
【0018】kより大きな最小の素数を素数テーブルか
ら読み出してkに格納する。sがkで割り切れる場合は
sをkで割り切れなくなるまで繰り返して割る。sがs
bビットより小さくなってしまったら、P+1は大きな
素因数を持たないことを意味するので、Pの生成をやり
直す。テーブル中の素数全てについてsに対する除算を
試しても、sがsbビットより大きい場合は、sが大き
な素因数かどうかを素数判定器にsを入力して判定す
る。sが素数でない場合は、Pの生成をやり直す。sが
素数の場合は、P+1がsbビット以上の大きな因数s
を含んでいるので、Pを条件を満たす素数として出力す
る。
【0019】以上の手段により、x,yを増加させる
か、減少させるかを乱数によって決定することで、より
ランダムな素数を生成することができる。
【0020】また、x,yをr,P生成後も保持してお
き、rまたはPが条件に合わない素数であった場合に、
x,yの探索を最初からやり直すのではなく、更新を再
開してrまたはPを探索するようにすることでtやsを
生成し直す時間を削除できる。
【0021】P+1を小さな素数で可能なかぎり除した
後、素数判定器へ入力することによって、rbの値に制
約を受けない大きなビット数sbの素因数sを含むP+
1なる素数Pを検出することができる。
【0022】
【発明の実施の形態】以下、図面を用いて本発明の実施
の形態について説明する。
【0023】図1は、本発明の一実施形態の構成を示す
ブロック図であり、図2は、図1に示す実施形態に使用
されている素数生成装置の構成を示すブロック図であ
る。
【0024】図1に示す実施形態は、乱数生成器11、
素数判定器13、除算器15、乱数発生器21、素数生
成装置17、除算器25、乱数生成器31、素数生成装
置27、除算器35、素数テーブル19、素数判定器2
3を有する。また、図2に示す素数生成装置は、乗算
器、加算器、減算器、比較器からなる算術演算回路(以
下、ALUと略称する)41、素数判定器43、乗数x
の値を更新する乗数更新部45を有する。
【0025】まず、図4を参照して、図2に示す素数生
成装置の作用を説明する。
【0026】図2および図4において、生成する素数p
のビット数pb,p−1の素因数とする素数r,xの最
大値xx,xの最小値xm,xの終了値xs,xm≦x
≦xxなる偶数の乱数x、および1bit の乱数xdを外
部より受け付けて、ALU41を駆動してp=xr+
1を計算し、pを素数判定器43へ入力する(ステップ
S41)。pが素数でない場合には(ステップS42)
乗数更新部45を駆動してxを更新する。xの更新はx
dが1の時xにx−2を格納し(ステップS43,S4
4)、またはxdが0の時xにx+2を格納する(ステ
ップS43,S45)。その結果xがxmより小さくな
った場合はxをxxとし、xがxxより大きくなった場
合はxをxmとする(ステップS46〜S49)。ま
た、ステップS50でxがxsと等しくなった場合に
は、入力条件pb,rを満たす素数pが存在しないとい
う信号を出力して停止する(ステップS51)。xがx
sと等しくならなかった場合は、再びp=xr+1を
計算して素数判定を行い、pが素数となるまでこれを繰
り返し、素数pが得られたらこれを出力して停止する構
成とする。
【0027】まず、乱数生成器11の480bit の乱数
出力tを素数判定器13へ入力する(ステップS1
1)。素数となるtが得られるまで繰り返し行う(ステ
ップS12)。素数tが得られたら、除算器15へ2
496 −1とtを入力してその出力をxxとし、xx=
[(2496 −1)/t]を得る。ここで、[a]はaを
越えない最大の整数を表す記号とする。同様に、除算器
15へ2495 とtを入力して出力をxmとし、xm=
[2495 /t]を得る(ステップS13)。続いて、乱
数生成器21を駆動し、xm≦xs≦xxとなるxsを
生成し、xにxsを格納する。また、乱数生成器21を
駆動し、その出力の最下位1bit の値をxdへ格納する
(ステップS14)。
【0028】496,xx,xm,xs,x,xdを素
数生成装置17へ入力し、496bit の素数rを得る
(ステップS15)。素数生成装置17が入力条件を満
たす素数が存在しないという信号を出力した場合は、t
の生成をやり直す(ステップS16)。
【0029】素数rが得られたら、除算器25へ2512
−1とrを入力してその出力をyxとし、yx=[(2
512 −1)/r]を得る。同様に、除算器25へ2511
とrを入力して出力をymとし、ym=[2511 /r]
を得る(ステップS17)。続いて、乱数生成器31を
駆動し、ym≦ys≦yxとなるysを生成し、yにy
sを格納する。また、乱数生成器を駆動し、その出力の
最下位1bit の値をydへ格納する(ステップS1
8)。
【0030】512,yx,ym,ys,y,ydを素
数生成装置27へ入力し、512bit の素数Pを得る
(ステップS19)。素数生成装置27が入力条件を満
たす素数が存在しないという信号を出力した場合は、r
の生成をやり直す(ステップS20)。
【0031】素数Pが得られたら、P+1が496bit
以上の素因数sを含んでいるかどうかを判定する。8ビ
ット以下の素数を全て格納した素数テーブルを予め作っ
ておく。
【0032】まず、kの初期値を0とし、kより大きな
最小の素数(=2)を素数テーブル19から読み出して
kに格納するとともにP+1をsに格納する。(ステッ
プS21)。sとkを除算器35へ入力し、sがkで割
り切れる場合は出力商を改めてsと置く(ステップS2
2、S24)。sがkで割り切れなかった場合には、素
数テーブル19に記憶された素数の中でkの次に大きな
ものを改めてkに格納し、後述するステップS26に進
む(ステップS23)。ステップS25では、上記ステ
ップS24で格納されたsのビット数をカウントし、こ
のビット数が496bit より小さくなってしまったら、
P+1は496bit 以上のビット数を有する素因数を持
たないことを意味するので、ステップS18に戻ってP
の生成をやり直す。sのビット数が496bit より大き
い場合はステップS26に進む。ステップS26では、
kと素数テーブル19に記憶された素数の比較を行う。
素数テーブル19にkより大きな素数がある場合はステ
ップS22に処理を戻し、他方素数テーブル19にkよ
り大きな素数がない場合はステップS27に進む。ステ
ップS27では、sを素数判定器23に入力し、sが大
きな素因数かどうかを判定する。sが素数でない場合
は、Pの生成をステップS18に戻ってやり直す。sが
素数の場合は、P+1が496bit 以上のビット数を有
する大きな素因数sを含んでいるので、Pを条件を満た
す素数として出力する。
【0033】
【発明の効果】以上説明しように、本発明によれば、素
数Pのビット数をpb,P−1が含むべき素因数のビッ
ト数をrb,P+1が含むべき素因数のビット数をsb
として、rb,sbがともに大きな場合にもrbビット
の素因数をP−1が含み、sbビットの素因数をP+1
が含むようなpbビットのランダムな素数Pを効率よく
生成することができる。
【図面の簡単な説明】
【図1】本発明の一実施形態の構成を示すブロック図で
ある。
【図2】図1に示す実施形態に使用されている素数生成
装置の構成を示すブロック図である。
【図3】図1に示す実施形態の作用を示すフローチャー
トである。
【図4】図2に示す素数生成装置の作用を示すフローチ
ャートである。
【図5】従来法の作用を示すフローチャートである。
【符号の説明】
11,21,31 乱数生成器 13,23,43 素数判定器 15,25,35 除算器 17,27 素数生成装置 19 素数テーブル 41 ALU 45 乗数更新部
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平2−37383(JP,A) RSA暗号鍵高速生成方式,電子情報 通信学会論文誌,1989年 3月25日,J 72−D−I 第3号,p.213−220 Strong Primes are Easy to Find,Lect ure Notes in Compu ter Science,Vol.209, p.216−223 (58)調査した分野(Int.Cl.7,DB名) G09C 1/00 650 G06F 17/10 H04L 9/30 JICSTファイル(JOIS)

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 乱数生成器および素数判定器を備え、r
    を素数、xを乱数とするときp=x*r+1からなる素
    数pを生成する素数生成装置であって、 素数pのビット数pb,p−1の素因数とする素数r,
    xの最大値xx,xの最小値xm,xの終了値xs,x
    m≦x≦xxなる偶数の乱数x、および乱数xdが外部
    より入力されたとき、p=x*r+1を計算する第1の
    手段と、 pを前記素数判定器へ入力し、pが素数と判定された場
    合にpを出力して処理を停止し、pが素数でないと判定
    された場合に第3の手段に処理を渡す第2の手段と、 xdの値に応じてxから2を減じるかまたはxに2を加
    え、xがxmより小さくなった場合はxをxxとし、x
    がxxより大きくなった場合はxをxmとし、xがxs
    と等しい場合には第4の手段に処理を渡し、xがxsに
    等しくない場合には第1の手段に処理を渡す第3の手段
    と、 入力条件pb,rを満たす素数pが存在しないという信
    号を出力して停止する第4の手段と を有することを特徴とする素数生成装置。
  2. 【請求項2】 前記第1の手段において、xがxsまた
    はxxまたはxmと等しい場合にのみp=x*r+1を
    計算し、それ以外の場合には、xdの値に応じてpに2
    *rを加えるかまたは減じた結果をpとすることを特徴
    とする請求項1記載の素数生成装置。
  3. 【請求項3】 素数pおよび整数sbが入力された時、
    p+1がsbビット以上の素因数を持つかどうかを判定
    する素因数判定装置であって、 2から順番に素数を格納した記憶手段である素数テーブ
    ル、素数判定器および除算器を備え、前記素数テーブル
    の最小の値を読み出してkに格納するとともにp+1を
    レジスタsに格納し、このkとsを第2の手段に渡す第
    1の手段と、 sとkを除算器へ入力し、sがkで割り切れた場合は出
    力商をsとして第3の手段に処理を渡し、sがkで割り
    切れなかった場合は前記素数テーブルに記憶された前記
    kの次に大きな素数をkに格納して第4の手段に処理を
    渡す第2の手段と、 sのビット数|s|をカウントし、|s|がsbより小
    さい場合にp+1はsbビット以上の素因数を持たない
    との判定結果を出力して停止し、|s|がsb以上の場
    合に第4の手段に処理を渡す第3の手段と、 前記素数テーブルにkより大きな素数がある場合は前記
    第2の手段に処理を戻し、前記素数テーブルにkより大
    きな素数がない場合は第5の手段に処理を渡す第4の手
    段と、 前記素数判定器にsを入力し、sが素数の場合はp+1
    はsbビット以上の素因数を持つとの判定結果を出力
    し、sが素数でない場合はp+1はsbビット以上の素
    因数を持たないとの判定結果を出力して停止する第5の
    手段と を有することを特徴とする素因数判定装置。
  4. 【請求項4】 乱数生成器および素数判定器を備え、r
    を素数、xを乱数とするときp=x*r+1からなる素
    数pを生成する素数生成装置であって、素数pのビット
    数pb,p−1の素因数とする素数r,xの最大値x
    x,xの最小値xm,xの終了値xs,xm≦x≦xx
    なる偶数の乱数x、および乱数xdが外部より入力され
    たとき、p=x*r+1を計算する第1の手段、pを前
    記素数判定器へ入力し、pが素数と判定された場合にp
    を出力して処理を停止し、pが素数でないと判定された
    場合に第3の手段に処理を渡す第2の手段、xdの値に
    応じてxから2を減じるかまたはxに2を加え、xがx
    mより小さくなった場合はxをxxとし、xがxxより
    大きくなった場合はxをxmとし、xがxsと等しい場
    合には第4の手段に処理を渡し、xがxsに等しくない
    場合には第1の手段に処理を渡す第3の手段および入力
    条件pb,rを満たす素数pが存在しないという信号を
    出力して停止する第4の手段を有する素数生成装置と、 素数pおよび整数sbが入力された時、p+1がsbビ
    ット以上の素因数を持つかどうかを判定する素因数判定
    装置であって、2から順番に素数を格納した記憶手段で
    ある素数テーブル、素数判定器および除算器を備え、前
    記素数テーブルの最小の値を読み出してkに格納すると
    ともにp+1をレジスタsに格納し、このkとsを第2
    の手段に渡す第1の手段、sとkを除算器へ入力し、s
    がkで割り切れた場合は出力商をsとして第3の手段に
    処理を渡し、sがkで割り切れなかった場合は前記素数
    テーブルに記憶された前記kの次に大きな素数をkに格
    して第4の手段に処理を渡す第2の手段、sのビット
    数|s|をカウントし、|s|がsbより小さい場合に
    p+1はsbビット以上の素因数を持たないとの判定結
    果を出力して停止し、|s|がsb以上の場合に第4の
    手段に処理を渡す第3の手段、前記素数テーブルにkよ
    り大きな素数がある場合は前記第2の手段に処理を戻
    し、前記素数テーブルにkより大きな素数がない場合は
    第5の手段に処理を渡す第4の手段、前記素数判定器に
    sを入力し、sが素数の場合はp+1はsbビット以上
    の素因数を持つとの判定結果を出力し、sが素数でない
    場合はp+1はsbビット以上の素因数を持たないとの
    判定結果を出力して停止する第5の手段を有する素因数
    判定装置と、 乱数生成器と、素数判定器とを備え、 整数pb,rb,sb,tbが外部より入力されたと
    き、p−1がrbビットの素因数rを持ち、p+1がs
    bビットの素因数sを持ち、r−1がtbビットの素因
    数を持つような素数pを生成する制限付き素数生成装置
    であって、 前記乱数生成器を駆動してtbビットの乱数tを生成す
    る第1の手段と、 tを前記素数判定器に入力し、tが素数の場合には第3
    の手段に処理を渡し、tが素数でない場合には第1の手
    段に処理を戻す第2の手段と、 2rb−1/tをxrxとし、2rb−1/tをxrmと
    し、乱数生成器を駆動してxrm≦xrs≦xrxとな
    るxrsを生成し、レジスタxrをxrsで初期化し、
    乱数生成器を駆動して乱数をxrdへ格納する第3の手
    段と、 ビット数rb、素数t、乱数xr、最大値xrx、最小
    値xrm、終了値xrsおよび乱数xrdを前記素数生
    成装置に入力し、素数が出力された場合はrへ格納して
    第5の手段に処理を渡し、または入力条件を満たす素数
    が存在しないという信号が出力された場合には前記第1
    の手段に処理を渡す第4の手段と、 2pb−1/rをxpxとし、2pb−1/rをxpmと
    し、乱数生成器を駆動してxpm≦xps≦xpxとな
    る偶数のxpsを生成し、レジスタxpをxpsで初期
    化し、乱数生成器を駆動して出力乱数をxpdへ格納す
    る第5の手段と、 ビット数pb、素数r、乱数xp、最大値xpx、最小
    値xpm、終了値xpsおよびxpdを前記素数生成装
    置に入力し、素数が出力された場合はpへ格納して第7
    の手段に処理を渡し、または入力条件を満たす素数が存
    在しないという信号が出力された場合は前記第3の手段
    に処理を戻す第6の手段と、 素数pと整数sbを前記素因数判定装置に入力し、p+
    1はsbビットの素因数を持たないと判定された場合は
    前記第5の手段に処理を戻し、p+1がsbビットの素
    因数を持つと判定された場合にはpを出力して停止する
    第7の手段と を有することを特徴とする制限付き素数生成装置。
JP22668295A 1995-09-04 1995-09-04 素数生成装置、素因数判定装置、および制限付き素数生成装置 Expired - Fee Related JP3292362B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP22668295A JP3292362B2 (ja) 1995-09-04 1995-09-04 素数生成装置、素因数判定装置、および制限付き素数生成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP22668295A JP3292362B2 (ja) 1995-09-04 1995-09-04 素数生成装置、素因数判定装置、および制限付き素数生成装置

Publications (2)

Publication Number Publication Date
JPH0973269A JPH0973269A (ja) 1997-03-18
JP3292362B2 true JP3292362B2 (ja) 2002-06-17

Family

ID=16849008

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22668295A Expired - Fee Related JP3292362B2 (ja) 1995-09-04 1995-09-04 素数生成装置、素因数判定装置、および制限付き素数生成装置

Country Status (1)

Country Link
JP (1) JP3292362B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024178797A1 (zh) * 2023-02-27 2024-09-06 司徒莉薇 一种能计算p=np的超级矩阵计算机

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3835896B2 (ja) 1997-07-30 2006-10-18 富士通株式会社 素数生成装置,B−smooth性判定装置及び記録媒体
JP3518672B2 (ja) 1998-11-27 2004-04-12 村田機械株式会社 素数生成装置及び暗号システム
JP3833412B2 (ja) 1999-04-09 2006-10-11 富士通株式会社 有限体演算における表現データ生成装置および方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
RSA暗号鍵高速生成方式,電子情報通信学会論文誌,1989年 3月25日,J72−D−I 第3号,p.213−220
Strong Primes are Easy to Find,Lecture Notes in Computer Science,Vol.209,p.216−223

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024178797A1 (zh) * 2023-02-27 2024-09-06 司徒莉薇 一种能计算p=np的超级矩阵计算机

Also Published As

Publication number Publication date
JPH0973269A (ja) 1997-03-18

Similar Documents

Publication Publication Date Title
US7831651B2 (en) Method and apparatus for modular inversion for information security and recording medium with a program for implementing the method
US7945784B1 (en) Method and system to perform secret sharing
US6751318B2 (en) Method and apparatus for digital signature authentication
US6038581A (en) Scheme for arithmetic operations in finite field and group operations over elliptic curves realizing improved computational speed
US8504602B2 (en) Modular multiplication processing apparatus
JPH0720778A (ja) 剰余計算装置、テーブル作成装置および乗算剰余計算装置
US7912216B2 (en) Elliptic curve cryptosystem optimization using two phase key generation
EP0704124A1 (en) A cryptographic method
US6404890B1 (en) Generating RSA moduli including a predetermined portion
JP4977300B2 (ja) 暗号法及び装置
JP3292362B2 (ja) 素数生成装置、素因数判定装置、および制限付き素数生成装置
JP2000010479A (ja) モンゴメリ・リダクション装置及び記録媒体
US6609141B1 (en) Method of performing modular inversion
JP3833412B2 (ja) 有限体演算における表現データ生成装置および方法
JP3123820B2 (ja) 有限可換群における演算器
JP3434220B2 (ja) 逆元演算装置、及びそのプログラム記録媒体
JP3796867B2 (ja) 素数判定方法および装置
Arazi et al. On calculating multiplicative inverses modulo $2^{m} $
Knezevic et al. Modular reduction without precomputational phase
JP2510303B2 (ja) べき乗剰余演算装置
JP3332270B2 (ja) べき乗演算装置
JP3992883B2 (ja) 演算装置及び演算方法
Mohammadi et al. A fast and secure RSA public key cryptosystem
JPH10254683A (ja) 剰余算装置、情報処理装置及び剰余算方法
JPH0237383A (ja) 素数生成方式

Legal Events

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

Free format text: PAYMENT UNTIL: 20090329

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees