JP2003271058A - 素因数抽出方法、素数及び冪の決定方法、素因数抽出装置、素因数抽出プログラム - Google Patents

素因数抽出方法、素数及び冪の決定方法、素因数抽出装置、素因数抽出プログラム

Info

Publication number
JP2003271058A
JP2003271058A JP2002076400A JP2002076400A JP2003271058A JP 2003271058 A JP2003271058 A JP 2003271058A JP 2002076400 A JP2002076400 A JP 2002076400A JP 2002076400 A JP2002076400 A JP 2002076400A JP 2003271058 A JP2003271058 A JP 2003271058A
Authority
JP
Japan
Prior art keywords
prime
power
prime factor
factor extraction
mod
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
JP2002076400A
Other languages
English (en)
Inventor
Koji Senda
浩司 千田
Shigenori Uchiyama
成憲 内山
Taiichi Saito
泰一 斉藤
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 JP2002076400A priority Critical patent/JP2003271058A/ja
Publication of JP2003271058A publication Critical patent/JP2003271058A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 計算効率の良い素因数抽出方法及び装置を提
案する。 【解決手段】 小さな素数Liと自然数eiを素数の冪乗
i eiの積が2uを超えるように用意し、Liの取り方と
してrとLi−1が互に素でありei≧2であれば更にr
とLiが互に素なものとし、一つのLiが割り切ればその
iを出力して終了し、全てのLiがNを割り切らない場
合、λ(Li ei)がs×kiを割り切るような最小の自然
数kiを求め、Li eiを法としたki個の異なるNkiのki
乗根Aij全てをPr(mod Li ei)の候補とし、全
てのiについてjを一つ選び、それらi、jによって与
えられるm個のAij(mod Li ei)から中国人剰
余定理を用いて、Liの積Mを法としたPrの候補を求
め、r-1 mod φ(M)を求める。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は素因数分解を目的と
するための方法及びその装置、プログラムに関するもの
であり、おもに素因数分解の困難性を安全性の根拠とす
るセキュリティ技術に多く応用されている情報セキュリ
ティの分野に関する。
【0002】
【従来の技術】従来の技術として例えば、千田、内山、
斎藤「N=pr×q型の合成数(rは大きい)に対する
新しい素因数分解アルゴリズム」SCIS2000、電
子情報通信学会情報セキュリティ研究専門委員会主催、
2000年がある。これは合成数Nが素数p、q、自然
数rに対してpr×qという形に限定した場合の素因数
分解方法を与えており、具体的にはいくつかの素数の冪
乗Li eiを用意し、r×kiがλ(Li ei)で割り切れる
ような最小の自然数kiを求め(λはカーマイケル関
数)、NがLiと互に素であればpの値に関わらずNki
=(pr×q)ki=q ki(mod Li ei)が成り立つこ
とを利用してLi eiを法としたqの候補を求め、中国人
の剰余定理(詳しくは例えば産業図書株式会社発行、岡
本龍明、山本博資共著、現代暗号15頁参照)を用いて
その候補を持ち上げてそれによって得られた各々のqの
候補でNを割ることでNの素因子qを求める方法であ
る。
【0003】
【発明が解決しようとする課題】千田らの従来の方法で
は、N=pr×qs型の合成数に適用した場合、素数の冪
乗の形をしたLi eiの積が、prまたはqsを超えるよう
にLi、eiを取る必要がある。本発明では、千田らの従
来の方法を拡張し、N=pr×qs型の合成数に対する素
因数分解方法についてLi eiの積が、pまたはqを超え
るようにLi、eiを取れば十分である方法を与えてい
る。これにより、従来に比べて計算効率を良くすること
ができ、r、sが大きくなるにつれてその効果は従来に
対して大きいものとなる。また本発明の目的は、素因数
分解の困難性を安全性の根拠とするセキュリティ技術に
対する安全性を評価する新しい尺度を与えることにあ
る。
【0004】
【課題を解決するための手段】この発明の請求項1で
は、合成数Nを入力して、その素因数を出力することを
目的とする素因数抽出方法であり、Nは素数P、Qおよ
び自然数r、sに対してN=Pr×Qsという形であるこ
とが予め分かっており、その上でr、sの値とPあるい
はQのビットサイズであるuあるいはvも予め与えられ
ている特別な条件のもとで有効な方法であり、いくつか
の小さな素数Li(i=1,2,…,m)と自然数ei
り求まる素数の冪乗Li eiをrとLi−1が互に素であり
i≧2であれば更にrとLiが互に素なものとし、また
i=1,2,…,mについてLi eiの積が2uを超えるよ
うに用意し、もし少なくとも一つのLiがNを割り切れ
ばそのLiを出力し、すべてのLiがNを割り切らない場
合、λ(Li ei)がs×kiを割り切るような最小の自然
数ki(i=1,2,…,ki)を求め(λはカーマイケ
ル関数)、Li eiを法としたki個の異なるNkiのki
根Aij(j=1,2,…,m)全てをPr(mod
i ei)の候補とし、全てのi(1≦i≦m)について
j(1≦j≦ki)を一つ選び、それらi、jによって
与えられるm個のAij(mod Li ei)から中国人
の剰余定理を用いて、Li eiの積Mを法としたPrの候補
を求め、r-1 mod φ(M)を求め(φはオイラー
関数)、Pr(mod M)の候補をr-1 mod φ
(M)乗してP(mod M)の候補とすることで、そ
れらを全て整数に持ち上げたもの各々でNを割ること
で、割り切れた候補をNの素因子Pとして出力する、素
因数抽出方法を提案する。
【0005】この発明の請求項2では、請求項1記載の
素因数抽出方法において、素数の冪乗Li eiの積が2u
超えない場合でも、素数の冪乗Li eiの積Mを法として
得たPrの候補を元にP(mod M)の候補を求め、
それから2uを超える法でのPの候補を求め、逐次整数
に持ち上げたものでNを割ることで、割り切れた候補を
Nの素因子Pとして出力する、素因数抽出方法を提案す
る。この発明の請求項3では、請求項1、2記載の何れ
かの素因数抽出方法において、Qの候補を求めることに
よりNの素因数を抽出する、素因数抽出方法を提案す
る。
【0006】この発明の請求項4では、請求項1、2記
載の何れかの素因数抽出方法において、kの初期値を1
とし、k×sがλ(Bi di)を割り切るようなBi、di
をそれぞれLi、eiとし、rとLi−1が互に素であり
i≧2であれば更にrとLiが互に素である条件を満た
さなければLi、eiを取り直し、Li eiの積が必要とす
る大きさに満たない場合はkを+1して同様の操作を行
い、これをLi eiの積が必要とする大きさを満たすまで
繰り返していくことで素因数抽出に必要な素数L iとそ
の冪eiを決定する、素数及び冪の決定方法を提案す
る。
【0007】この発明の請求項5では、請求項1、2記
載の何れかの素因数抽出方法において、素因数抽出に必
要な素数Liとその冪eiの決定に、多くのLiとその冪
iを予め貯えておき、その中でλ(Li ei)がs×ki
を割り切るような最小の自然数k iを求め、kiの積が最
小となり、かつkiに対応したLi、eiが、rとLi−1
が互に素でありei≧2であれば更にrとLiが互に素で
ある条件を満たすような複数のLi、eiを素因数抽出に
必要な素数Liとその冪eiとして選ぶ、素数及び冪の決
定方法を提案する。
【0008】この発明の請求項6では、請求項3記載の
素因数抽出方法において、kの初期値を1とし、k×r
がλ(Bi di)を割り切るようなBiiをそれぞれLi
iとし、sとLi−1が互に素でありei≧2であれば
更にsとLiが互に素である条件を満たさなければLi
iを取り直し、Li eiの積が必要とする大きさに満たな
い場合はkを+1して同様の操作を行い、これをLi ei
の積が必要とする大きさを満たすまで繰り返していくこ
とで素因数抽出に必要な素数Liとその冪eiを決定す
る、素数及び冪の決定方法を提案する。
【0009】この発明の請求項7では、請求項3記載の
素因数抽出方法において、素因数抽出に必要な素数Li
とその冪eiの決定に、多くのLiとその冪eiを予め貯
えておき、その中でλ(Li ei)がr×kiを割り切るよ
うな最小の自然数k iを求め、kiの積が最小となり、か
つkiに対応したLi、eiが、sとLi−1が互に素であ
りei≧2であれば更にsとLiが互に素である条件を満
たすような複数のLi、eiを素因数抽出に必要な素数L
iとその冪eiとして選ぶ、素数及び冪の決定方法を提案
する。
【0010】この発明の請求項8では、素因数抽出方法
に用いられる素因数抽出装置であって、合成数N=Pr
×Qs、素数PあるいはQのビットサイズ、uあるいは
v、自然数r、sを入力として、Nの素因数を出力する
ために、入力数、内部計算結果を記憶しておく記憶部
と、冪乗演算を処理する冪乗部と、いくつかの都合の良
い小さな素数あるいはその冪乗を決定する素数導出部
と、冪乗根を求める冪乗根導出部と、乗算を処理する乗
算部と、除算を処理する除算部と、2数の大小を判定す
る判定部と、中国人の剰余定理を用いた演算を処理する
中国人剰余定理演算部と、逆元を求める逆元部と、ある
法の上での元をより大きな法の元に持ち上げる変換部
と、装置内部全体の制御を行う制御部と、を具備する素
因数抽出装置を提案する。
【0011】この発明の請求項9では、コンピュータが
読み取り可能な符号によって記述され、上記請求項1乃
至3記載の素因数抽出方法の何れかを実行する素因数抽
出プログラムを提案する。この発明の請求項10では、
コンピュータから読み取り可能な符号によって記述さ
れ、上記請求項4乃至7記載の素数及び冪の決定方法の
何れかを実行する素数及び冪の決定プログラムを提案す
る。
【0012】
【発明の実施の形態】以下に、本発明の実施の形態につ
いて図面を参照して詳細に説明する。第1、第2の実施
形態共に、素因数を抽出する対象となる合成数Nは素数
P、Q及び自然数r、sに対してN=Pr×Qsという形
で表現でき、またそのことが予め分かっており、その上
でr、sの値とPあるいはQのビットサイズ、uあるい
はvも予め与えられているものとする。r、sが与えら
れたときrとsの最大公約数GCD(r、s)が1より
大きな整数tであるとき、N1/tを求めることは素因数
分解よりも易しい。現在まで最も有効な素因数分解法は
数体篩法、楕円曲線法とされ、これらはそれぞれ対象と
なる合成数のサイズ、その最小素因子のサイズに対して
準指数時間で動作するアルゴリズムとなる。これに対し
てN1/tを求めるためには合成数Nのサイズの高々多項
式時間で十分である。このことから以降N1/t=Pr/t×
s/tに対して素因数PあるいはQを求める問題に置き
換えるために、rとsは互に素であることを仮定する。
すなわち整数t=1とする。
【0013】まず請求項1に基づきいくつかの小さな素
数Li(i=1,2,…,m)と自然数eiより求まる素
数の冪乗Li eiの積が2uを超えるように用意して素因数
Pを求める方法を第1の実施形態として説明する。また
ここでは、素数Li、冪eiの決定方法を請求項4に従っ
たものとする。次に、請求項2、3に基づきいくつかの
小さな素数Liと自然数eiに対して素数の冪乗Li ei
積が2v未満の値Tであるときに素因数Qを求める方法
を第2の実施形態として説明する。またここでは、素数
i、冪eiの決定方法を請求項7に従ったものとする。
【0014】ここでは第1の実施形態について説明す
る。図1に第1の実施形態における、合成数Nを入力、
Nの素因数Pを出力Sとする素因数抽出装置11とその
内部構成を示す。素因数抽出装置11は記憶部13に、
予めN=Pr×Qsに対する自然数r、s及びPのビット
サイズuが格納されている。まず初期値kを1とし、
r、s、uを記憶部13から取り出して冪乗部15より
uを計算してその結果を記憶部13に格納した後λ
(Li ei)|(k×s)を満たすような素数Li、自然数
iを素数導出部17より求める。
【0015】ここでλはカーマイケル関数、a|bでa
はbを割り切ることを意味する。尚、Liの取り方とし
てrとLi−1が互に素でありei≧2であれば更にrと
Liが互に素である条件を満たさない場合は取り除く。
i、eiの求め方、すなわち素数導出部17の動作とし
て、効率はよくないもののLiを2、3、5、…と小さ
な素数から順に動かしてそれぞれについて(Li−1)
|(k×s)が成り立つか調べ、成り立った場合にその
後の処理としてλ(Li ei)|(k×s)となる最大の
自然数eiをei=1、2、…と動かし、rとLi−1が
互に素でありei≧2であれば更にrとLiが互に素であ
る条件を満たさない場合は取り除くことができる。
【0016】Liを動かしていったときLi−1がk×s
を超えた場合はLiより大きな素数について上記関係が
成り立たないことは明らかなため、素数導出部17はL
iがk×sを超えた場合はkを+1する。そして再度Li
を2、3、5、…と小さな素数から順に動かすことを実
行する。ここで上記方法について効率を改善した方法は
いくつか上げることができるが、いくつかの方法は明ら
かであり、また本質ではないため省略する。この操作に
よって得られたLi eiは、順次k=kiとペアで記憶部1
3に格納される。また初期値を1としたMに対して、乗
算部29よりM=M×Li eiを計算し、2uを記憶部13
から取り出して判定部19よりM>2uが成り立つか調
べる。成り立てばLiの生成を終了する。成り立たない
場合は引き続きLiを生成する。また生成した素数Li
れぞれについて逐次Nを割り切るか除算部27により調
べる。割り切れば素因数抽出装置11はそのLiを出力
して処理を全て終了する。以降、選んだ全ての素数Li
がNを割り切らないものとして話を進める。
【0017】以上の操作は合成数Nが与えられる前の事
前演算として処理することができる。これらの制御は制
御部33が実行する。上記操作をフローチャートとして
図2に示す。積が2uを超えるような素数の冪乗の組
{Li ei}が用意できたら次のフェーズに移る。Liの個
数をmとする。まず初期値dを1とし、記憶部13に格
納された組{Ld ed、kd}を取り出す。そして冪乗部1
5よりNkdを計算し、Nkd=Adj kd(mod
d ed)を満たすAdj、すなわちNkd(mod
d ed)のkd乗根を冪乗根導出部21により全て求めて
記憶部13に格納する。Adjの求め方、すなわち冪乗
根導出部21の動作として、素数の冪乗を法とした多項
式の根の効率的な求め方はいくつか知られているため、
それらの一つを用いることにする。但しその詳細は本質
でないため省略する。Adjは高々kd個で与えられ
る。すなわちjは最大で1からkdまで動く。
【0018】以上の処理が終了したらdを+1してd≦
mである間にこの処理を繰り返す。上記操作表をフロー
チャートとして図3示す。次に、記憶部13に格納され
たAdjからPrの候補を求める方法について説明す
る。1≦j≦kdのうち必ずpr=Adj(mod Ld
ed)が成り立つようなjが存在する。この事実から中国
人の剰余定理を用いて真のPr(mod M)を計算す
る。ここではMはLd edの積である。
【0019】まずd=1,2,…,mに対してそれぞれ
一つずつ1≦j≦kdなるjを選んでAdj(mod
d ed)を記憶部13から取り出し、中国人の剰余定理
(詳しくは前著参照)を実行する中国人剰余演算部23
より、取り出したAdj(mod Ld ed)からX(m
od M)を求める。Xは取り出した全てのAdj(m
od Ld ed)に対してX=Adj(mod Ld ed)が
成り立つような値である。いま中国人の剰余定理を実行
したことにより、Xはkd(d=1,2,…,m)の積
だけある。kdの積をK、c番目のXをXcとする。Xc
(1≦c≦K)はPr(mod M)の候補であり、そ
の中に必ず真のものが存在する。
【0020】次に、逐次求めたXcからPr(mod
M)の候補をP(mod M)の候補に変換し、それが
真の素因数Pかどうか判定し、Nの素因数Pを求める方
法について述べる。まず逆元部31よりz=r-1mod
φ(M)を求め(φはオイラー関数)、P r(mod
M)の候補を冪乗部15よりz乗することでP(mod
M)の候補とすることができる。Xc z(1≦c≦K)
はP(mod M)の候補であり、その中に必ず真のも
のが存在する。尚、r-1mod φ(M)が存在するこ
とはGCD(r、φ(M))=1であることが必要十分
であり、φ(M)はφ(Li e i)の積と等しく、φ(Li
ei)=Li ei-1×(Li−1)はrと互に素であることが
保証されているためz=r-1mod φ(M)は必ず
(一意に)存在する。
【0021】Xc z(mod M)が求まれば、P<Mか
つXc zはMを法とした元であるため、変換部25より逐
次整数に持ち上げて(単にXc z(mod M)を0以上
M未満の整数に置き換えれば良い)、それが除算部27
よりNを割り切るか調べる。割り切らなければcを+1
して同様の手法によりXcを求めてNを割り切るか調べ
ればよい。割り切れた場合、素因数抽出装置11はその
整数に持ち上げたXc zを出力して終了する。上記操作を
フローチャートとして図4に示す。
【0022】次に第2の実施形態について説明する。図
5に第1の実施形態における、合成数Nを入力、Nの素
因数Qを出力とする素因数抽出装置41とその内部構成
を示す。素因数抽出装置41は記憶部43に、予めN=
r×Qsに対する自然数r、s及びQのビットサイズv
が格納されている。またいくつかの小さな素数Li及び
閾値Tも予め記憶部43に格納されている。Tは2v
り小さな自然数とする。記憶部43に格納された全ての
iの中からLi|Nを満たすものが存在する場合、その
iをNの素因数として出力し終了する。以降Li|Nを
満たすようなL iが記憶部43に格納されてないものと
して話を進める。
【0023】まず初期値kを1とし、r、s、Li(i
=1,2,3,…,m)を取り出し、(Li−1)|
(k×r)を満たすような素数Liを選ぶ。上記式を満
たすかどうかの判定は素数導出部47により行われる。
上記式を満たす全てのLiに対して、逐次素数導出部4
7はλ(Li ei)|(k×r)を満たす最大の自然数ei
を求め、この操作によって得られたLi eiはrとLi−1
が互に素でありei≧2であれば更にrとLiが互に素で
ある場合に限り、順次k=kiとペアで記憶部43に格
納される。取り出したLiに対して素数導出部47の処
理が終了した場合kを+1し、予め記憶部43に格納さ
れたrとLi−1が互に素である全てのLiが、
{Li ei、ki}として再度記憶部43に格納されるまで
上記処理を繰り返す。制御部63はこれらの全ての動作
を制御する。
【0024】上記操作をフローチャートとして図6に示
す。次に記憶部43に格納された{Li ei、ki}から、
i eiの積がTを超え、かつkiの積が最小となるような
複数の{Li ei、ki}の組を選び、それらの組以外は記
憶部43から削除する。上記方法は記憶部43、上算部
59、判定部49の構成から明らかなため省略するが、
この処理はNが与えられる前の事前処理として行うこと
ができるため、多くのLiを記憶部43に予め格納して
おく方が実処理部での演算量を小さくすることができ
る。
【0025】積がTを超えるような素数の冪乗の組{L
i ei}が用意できたら次のフェーズに移る。まず、初期
値dを1とし、記憶部43に格納された組{Ld ed
d}を取り出す。そして冪乗部45よりNkdを計算
し、Nkd=Adj kd(mod Ld ed)を満たすAdj
を冪乗根導出部51により全て求めて記憶部43に格納
する。Adjの求め方、すなわち冪乗根導出部51の動
作として、第1の実施形態同様、素数の冪乗を法とした
多項式の根の効率的な求め方はいくつか知られているた
めそれらの一つを用いることにする。Adjは高々kd
個で与えられる。すなわちjは最大で1からkdまで動
く。
【0026】以上の処理が終了したらdを+1してd≦
mである間この処理を繰り返す。上記操作は第1の実施
形態の図3同様となる。次に記憶部43に格納されたA
djからQsの候補を求める方法について説明する。1
≦j≦kdのうち必ずQs=Adj(mod Ld ed)が
成り立つようなjが存在する。この事実から中国人の剰
余定理を用いて真のQs(mod M)を計算する。こ
こでMはLd edの積である。
【0027】まずd=1,2,…,mから一つずつ1≦
j≦kdなるjを選びAdj kd(mod Ld ed)を記憶
部43から取り出し、中国人の剰余定理を実行する中国
人剰余演算部53より、取り出したAdj(mod L
d ed)からX(mod M)を求める。Xは取り出した
全てのAdj(mod Ld ed)に対してX=Ad
j(mod Ld ed)が成り立つような値である。いま中
国人の剰余定理を実行したことにより、Xはkd(d=
1,2,…,m)の積だけある。kdの積をK、c番目
のXをXcとする。Xc(1≦c≦K)はQs(mod
M)の候補であり、その中に必ず真のものが存在する。
【0028】次に逐次求めたXcからQs(mod M)
の候補を第1の実施形態同様、Q(mod M)の候補
に変換する。これは第1の実施形態同様、逆元部61よ
りz=s-1modφ(M)を求め、Qs(mod M)
の候補を冪乗部45よりz乗することで明らかにQ(m
odM)の候補とすることができる。Xc z(1≦c≦
K)はQ(mod M)の候補であり、その中に必ず真
のものが存在する。上記処理においてTは2vよりも小
さいためT<Mの条件でのみ与えられたMに対しても、
Q(mod M)の候補から整数Qの候補への自然な持
ち上げは一般にはできない。そこでQ=Q(mod
M)+n×Mである事実を用いて(nは0以上(2v
Q(mod M))/M)以下の整数)、nを0,1,
2,…と動かしてそれがQとなっているか調べればよ
い。具体的には、初期値dを1とし、変換部55よりY
=Xd z(mod M)+n×Mについて、初期値nを0
とし、n≦(2v−Qz(mod M))/M)である限
りYがNを割り切るか除算部57により調べ、割り切れ
ば素因数抽出装置41はYを出力して終了し、割り切ら
なければnを+1し、n>(2v−Qz(mod M))
/M)であればd=1,2,…,mから一つずつ1≦j
≦kdなるjを選びAdj(mod Ld ed)を記憶部4
3から取り直して同様の処理を繰り返す。
【0029】上記操作をフローチャートとして図7に示
す。以上説明した素因数抽出方法、素数及び冪の決定方
法はコンピュータが読み取り可能な符号によって記述さ
れたプログラムによってコンピュータ上で実行される。
コンピュータプログラムはCD等の記憶媒体又は通信回
線を通じてコンピュータにインストールされ、CPU等
により実行される。
【0030】
【発明の効果】素因数又は素因数の冪乗を抽出する対象
となる合成数Nは素数P、Qおよび自然数r、sに対し
てN=Pr×Qsという形で表現することができ、またそ
のことが予め分かっており、その上でr、sの値とPあ
るいはQのビットサイズであるuあるいはvも予め与え
られている場合に有効な、Nの素因数を抽出する方法で
あり、単にNの非自明な因数を知ることを目的とする場
合に用いることができ、また本発明により素因数分解の
困難性を安全性の根拠とするような暗号方式に対して安
全性を評価する新しい尺度を追加することができる。特
にr、s、u、vまたはそのいくつかが与えられていな
い場合でもそれらを推測し本発明の方法を繰り返し実行
することも可能である。
【図面の簡単な説明】
【図1】この発明の一実施例を説明するためのブロック
図。
【図2】図1に示した実施例の動作を説明するためのフ
ローチャート。
【図3】図2に示したフローチャートの一部を詳細に説
明するためのフローチャート。
【図4】図2に示したフローチャートの一部を詳細に説
明するためのフローチャート。
【図5】この発明の他の実施例を説明するためのブロッ
ク図。
【図6】図5に示した実施例の動作を説明するためのフ
ローチャート。
【図7】図6に示したフローチャートの一部を詳細に説
明するためのフローチャート。
【符号の説明】
11 素因数抽出装置 23、53 中国人
剰余演算部 13、43 記憶部 25、55
変換部 15、45 冪乗部 27、57
除算部 17、47 素数導出部 29、59
乗算部 19、49 判定部 31、61
逆元部 21、51 冪乗根導出部 33、63
制御部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 斉藤 泰一 東京都千代田区大手町二丁目3番1号 日 本電信電話株式会社内 Fターム(参考) 5J104 AA18 AA23 AA24 NA18

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 合成数Nを入力して、その素因数を出力
    することを目的とする素因数抽出方法であり、 Nは素数P、Qおよび自然数r、sに対してN=Pr×
    sという形であることが予め分かっており、その上で
    r、sの値とPあるいはQのビットサイズであるuある
    いはvも予め与えられている特別な条件のもとで有効な
    方法であり、 いくつかの小さな素数Li(i=1,2,…,m)と自
    然数eiより求まる素数の冪乗Li eiをrとLi−1が互
    に素でありei≧2であれば更にrとLiが互に素なもの
    とし、またi=1,2,…,mについてLi eiの積が2u
    を超えるように用意し、もし少なくとも一つのLiがN
    を割り切ればそのLiを出力し、 すべてのLiがNを割り切らない場合、λ(Li ei)がs
    ×kiを割り切るような最小の自然数ki(i=1,2,
    …,ki)を求め(λはカーマイケル関数)、Li eiを法
    としたki個の異なるNkiのki乗根Aij(j=1,
    2,…,m)全てをPr(mod Li ei)の候補とし、 全てのi(1≦i≦m)についてj(1≦j≦ki)を
    一つ選び、それらi、jによって与えられるm個の
    ij(mod Li ei)から中国人の剰余定理を用い
    て、Li eiの積Mを法としたPrの候補を求め、 r-1 mod φ(M)を求め(φはオイラー関数)、
    r(mod M)の候補をr-1 mod φ(M)乗
    してP(mod M)の候補とすることで、 それらを全て整数に持ち上げたもの各々でNを割ること
    で、割り切れた候補をNの素因子Pとして出力する、 ことを特徴とする素因数抽出方法。
  2. 【請求項2】 請求項1記載の素因数抽出方法におい
    て、 素数の冪乗Li eiの積が2uを超えない場合でも、素数の
    冪乗Li eiの積Mを法として得たPrの候補を元にP(m
    od M)の候補を求め、それから2uを超える法での
    Pの候補を求め、逐次整数に持ち上げたものでNを割る
    ことで、割り切れた候補をNの素因子Pとして出力す
    る、 ことを特徴とする素因数抽出方法。
  3. 【請求項3】 請求項1、2記載の何れかの素因数抽出
    方法において、 Qの候補を求めることによりNの素因数を抽出する、 ことを特徴とする素因数抽出方法。
  4. 【請求項4】 請求項1、2記載の何れかの素因数抽出
    方法において、 kの初期値を1とし、k×sがλ(Bi di)を割り切る
    ようなBi、diをそれぞれLi、eiとし、rとLi−1
    が互に素でありei≧2であれば更にrとLiが互に素で
    ある条件を満たさなければLi、eiを取り直し、Li ei
    の積が必要とする大きさに満たない場合はkを+1して
    同様の操作を行い、これをLi eiの積が必要とする大き
    さを満たすまで繰り返していくことで素因数抽出に必要
    な素数L iとその冪eiを決定する、 ことを特徴とする素数及び冪の決定方法。
  5. 【請求項5】 請求項1、2記載の何れかの素因数抽出
    方法において、 素因数抽出に必要な素数Liとその冪eiの決定に、多く
    のLiとその冪eiを予め貯えておき、その中でλ(Li
    ei)がs×kiを割り切るような最小の自然数k iを求
    め、kiの積が最小となり、かつkiに対応したLi、ei
    が、rとLi−1が互に素でありei≧2であれば更にr
    とLiが互に素である条件を満たすような複数のLi、e
    iを素因数抽出に必要な素数Liとその冪eiとして選
    ぶ、 ことを特徴とする素数及び冪の決定方法。
  6. 【請求項6】 請求項3記載の素因数抽出方法におい
    て、 kの初期値を1とし、k×rがλ(Bi di)を割り切る
    ようなBiiをそれぞれLi、eiとし、sとLi−1が
    互に素でありei≧2であれば更にsとLiが互に素であ
    る条件を満たさなければLi、eiを取り直し、Li ei
    積が必要とする大きさに満たない場合はkを+1して同
    様の操作を行い、これをLi eiの積が必要とする大きさ
    を満たすまで繰り返していくことで素因数抽出に必要な
    素数Liとその冪eiを決定する、 ことを特徴とする素数及び冪の決定方法。
  7. 【請求項7】 請求項3記載の素因数抽出方法におい
    て、 素因数抽出に必要な素数Liとその冪eiの決定に、多く
    のLiとその冪eiを予め貯えておき、その中でλ(Li
    ei)がr×kiを割り切るような最小の自然数k iを求
    め、kiの積が最小となり、かつkiに対応したLi、ei
    が、sとLi−1が互に素でありei≧2であれば更にs
    とLiが互に素である条件を満たすような複数のLi、e
    iを素因数抽出に必要な素数Liとその冪eiとして選
    ぶ、 ことを特徴とする素数及び冪の決定方法。
  8. 【請求項8】 素因数抽出方法に用いられる素因数抽出
    装置であって、 合成数N=Pr×Qs、素数PあるいはQのビットサイ
    ズ、uあるいはv、自然数r、sを入力として、Nの素
    因数を出力するために、 入力数、内部計算結果を記憶しておく記憶部と、 冪乗演算を処理する冪乗部と、 いくつかの都合の良い小さな素数あるいはその冪乗を決
    定する素数導出部と、 冪乗根を求める冪乗根導出部と、 乗算を処理する乗算部と、 除算を処理する除算部と、 2数の大小を判定する判定部と、 中国人の剰余定理を用いた演算を処理する中国人剰余定
    理演算部と、 逆元を求める逆元部と、 ある法の上での元をより大きな法の元に持ち上げる変換
    部と、 装置内部全体の制御を行う制御部と、 を具備する素因数抽出装置。
  9. 【請求項9】 コンピュータが読み取り可能な符号によ
    って記述され、上記請求項1乃至3記載の素因数抽出方
    法の何れかを実行する素因数抽出プログラム。
  10. 【請求項10】 コンピュータから読み取り可能な符号
    によって記述され、上記請求項4乃至7記載の素数及び
    冪の決定方法の何れかを実行する素数及び冪の決定プロ
    グラム。
JP2002076400A 2002-03-19 2002-03-19 素因数抽出方法、素数及び冪の決定方法、素因数抽出装置、素因数抽出プログラム Pending JP2003271058A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002076400A JP2003271058A (ja) 2002-03-19 2002-03-19 素因数抽出方法、素数及び冪の決定方法、素因数抽出装置、素因数抽出プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002076400A JP2003271058A (ja) 2002-03-19 2002-03-19 素因数抽出方法、素数及び冪の決定方法、素因数抽出装置、素因数抽出プログラム

Publications (1)

Publication Number Publication Date
JP2003271058A true JP2003271058A (ja) 2003-09-25

Family

ID=29205186

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002076400A Pending JP2003271058A (ja) 2002-03-19 2002-03-19 素因数抽出方法、素数及び冪の決定方法、素因数抽出装置、素因数抽出プログラム

Country Status (1)

Country Link
JP (1) JP2003271058A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011095284A (ja) * 2009-10-27 2011-05-12 Nippon Telegr & Teleph Corp <Ntt> パラメータ設定装置、離散対数計算装置、事前計算装置、パラメータ設定方法、離散対数計算方法、事前計算方法、プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011095284A (ja) * 2009-10-27 2011-05-12 Nippon Telegr & Teleph Corp <Ntt> パラメータ設定装置、離散対数計算装置、事前計算装置、パラメータ設定方法、離散対数計算方法、事前計算方法、プログラム

Similar Documents

Publication Publication Date Title
US6611597B1 (en) Method and device for constructing elliptic curves
WO2015164996A1 (zh) 椭圆域曲线运算方法和椭圆域曲线运算器
US9401805B2 (en) Encrypting device, encrypting method, and recording medium
Malik Efficient implementation of elliptic curve cryptography using low-power digital signal processor
US20030142820A1 (en) Device and method for calculation on elliptic curve
CN102109974A (zh) 适用于椭圆曲线密码安全保护的随机点生成方法
US20020126838A1 (en) Modular exponentiation calculation apparatus and modular exponentiation calculation method
JP5553773B2 (ja) 楕円曲線上の点のスカラー倍を計算する装置及び方法
CN114527956A (zh) 抗spa攻击的国密sm2算法中非定点标量乘法的计算方法
Rezai et al. High-performance modular exponentiation algorithm by using a new modified modular multiplication algorithm and common-multiplicand-multiplication method
CN111897578A (zh) 一种特征为2的椭圆曲线上标量乘的并行处理方法及装置
CN114840174B (zh) 一种使用多乘法器快速实现蒙哥马利模乘的系统及方法
Liu et al. Efficient ECC scalar multiplication algorithm based on symmetric ternary in wireless sensor networks
JP2003271058A (ja) 素因数抽出方法、素数及び冪の決定方法、素因数抽出装置、素因数抽出プログラム
Howe et al. Compact and provably secure lattice-based signatures in hardware
KR101548174B1 (ko) 모듈러스의 음의 역원을 구하는 방법
Mohamed et al. Improved fixed-base comb method for fast scalar multiplication
JP4398904B2 (ja) 乱数系列生成装置、乱数系列生成方法、演算処理装置、演算処理方法及びプログラム
Jarvinen et al. Efficient circuitry for computing τ-adic non-adjacent form
Filippone On the discrete logarithm problem for elliptic curves over local fields
Leca et al. Combining point operations for efficient elliptic curve cryptography scalar multiplication
Brar et al. Design and implementation of block method for computing NAF
Mohammadi et al. Efficient design of Elliptic curve point multiplication based on fast Montgomery modular multiplication
Aswathy et al. Modified RSA public key algorithm
JP2000321979A (ja) 多項式演算装置、楕円曲線位数計算装置、楕円曲線生成装置及び楕円曲線暗号システム