JP3518672B2 - 素数生成装置及び暗号システム - Google Patents

素数生成装置及び暗号システム

Info

Publication number
JP3518672B2
JP3518672B2 JP33818898A JP33818898A JP3518672B2 JP 3518672 B2 JP3518672 B2 JP 3518672B2 JP 33818898 A JP33818898 A JP 33818898A JP 33818898 A JP33818898 A JP 33818898A JP 3518672 B2 JP3518672 B2 JP 3518672B2
Authority
JP
Japan
Prior art keywords
prime number
prime
candidate
generating
equation
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
JP33818898A
Other languages
English (en)
Other versions
JP2000162968A (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.)
Murata Machinery Ltd
Original Assignee
Murata Machinery 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 Murata Machinery Ltd filed Critical Murata Machinery Ltd
Priority to JP33818898A priority Critical patent/JP3518672B2/ja
Priority to US09/448,728 priority patent/US7043018B1/en
Publication of JP2000162968A publication Critical patent/JP2000162968A/ja
Application granted granted Critical
Publication of JP3518672B2 publication Critical patent/JP3518672B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3033Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to pseudo-prime or prime number generation, e.g. primality test
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Mathematics (AREA)
  • Algebra (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computer Security & Cryptography (AREA)
  • Pure & Applied Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、暗号系に使用する
素数を生成する装置、及び、生成した素数を利用する暗
号システムに関する。
【0002】
【従来の技術】高度情報化社会と呼ばれる現代社会で
は、コンピュータネットワークを基盤として、ビジネス
上の重要な文書・画像情報が電子的な情報という形で伝
送通信されて処理される。このような電子情報は、容易
に複写が可能である、複写物とオリジナルとの区別が困
難であるという性質があり、情報保全の問題が重要視さ
れている。特に、「コンピュータリソースの共有」,
「マルチアクセス」,「広域化」の各要素を満たすコン
ピュータネットワークの実現が高度情報化社会の確立に
不可欠であるが、これは当事者間の情報保全の問題とは
矛盾する要素を含んでいる。このような矛盾を解消する
ための有効な手法として、人類の過去の歴史上主として
軍事,外交面で用いられてきた暗号技術が注目されてい
る。
【0003】暗号とは、情報の意味が当事者以外には理
解できないように情報を交換することである。暗号にお
いて、誰でも理解できる元の文(平文)を第三者には意
味がわからない文(暗号文)に変換することが暗号化で
あり、また、暗号文を平文に戻すことが復号であり、こ
の暗号化と復号との全過程をまとめて暗号系と呼ぶ。暗
号化の過程及び復号の過程には、それぞれ暗号化鍵及び
復号鍵と呼ばれる秘密の情報が用いられる。復号時には
秘密の復号鍵が必要であるので、この復号鍵を知ってい
る者のみが暗号文を復号でき、暗号化によって情報の秘
密性が維持され得る。
【0004】暗号化鍵と復号鍵とは、等しくても良い
し、異なっていても良い。両者の鍵が等しい暗号系は、
共通鍵暗号系と呼ばれ、米国商務省標準局が採用したD
ES(Data Encryption Standards)はその典型例であ
る。また、両者の鍵が異なる暗号系の一例として、公開
鍵暗号系と呼ばれる暗号系が提案された。この公開鍵暗
号系は、暗号系を利用する各ユーザが暗号化鍵と復号鍵
とを一対ずつ作成し、暗号化鍵を公開鍵リストにて公開
し、復号鍵のみを秘密に保持するという暗号系である。
公開鍵暗号系では、この一対となる暗号化鍵と復号鍵と
が異なり、一方向性関数を利用することによって暗号化
鍵から復号鍵を割り出せないという特徴を持たせてい
る。
【0005】公開鍵暗号系は、暗号化鍵を公開するとい
う画期的な暗号系であって、高度情報化社会の確立に必
要な上述した3つの要素に適合するものであり、情報通
信技術の分野等での利用を図るべく、その研究が活発に
行われ、典型的な公開鍵暗号系としてRSA暗号系が提
案された。このRSA暗号系は、一方向性関数として素
因数分解の困難さ(素因数分解問題)を利用して実現さ
れている。また、離散対数を解くことの困難さ(離散対
数問題)を利用した公開鍵暗号系も種々の手法(ElGama
l 暗号系等)が提案されている。
【0006】以上のように、現代の暗号系には、素因数
分解問題,離散対数問題を利用したものが多く展開され
ており、その暗号系を体系化するためには素数の問題が
極めて重要である。よって、真に素数である整数を短時
間で効率良く生成する手法の開発が望まれている。
【0007】一般的に素数を生成する場合には、まず、
素数候補を生成し、生成した素数候補が素数であるか否
かを判定(素数判定)し、素数と判定されたものを素数
として生成する。
【0008】素数判定にかける素数候補を生成するため
の標準的な方法として、次のような試行割算方法が行わ
れている。まず、奇数をランダムに発生させ、発生させ
たその奇数が所定の素数B以下の各素数で割り切れるか
否かを、小さい素数から順に(3,5,7,…,Bの順
に)調べていき、所定の素数D以下のすべての素数で割
り切れない場合に、その奇数を素数候補とする。
【0009】また、素数判定には、Rabin 法等の確率的
素数判定法とPocklington 法等の確定的素数判定法とが
ある。確率的素数判定法と確定的素数判定法とを比較す
ると、前者の判定法は、判定誤差が0ではないが処理時
間は短く、後者の判定法は、処理時間は長いが判定誤差
が0であるという特徴を有している。
【0010】
【発明が解決しようとする課題】ところで、素因数分解
問題を利用した、例えばRSA暗号系等の暗号系に素数
を使用する場合、用いる素数が素因数分解法の攻撃に強
い素数であることが望ましいことは勿論である。この素
因数分解法の代表的な方法として、P−1法,P+1法
が知られている。P−1法とは、N=PQ(P,Q:素
数)で表されるNについて、P−1が小さな素数の積の
みからなる場合、素因数分解アルゴリズムによってNの
素因数分解が比較適容易に解けるという攻撃法である。
また同様に、P+1法とは、N=PQ(P,Q:素数)
で表されるNについて、P+1が小さな素数の積のみか
らなる場合、素因数分解アルゴリズムによってNの素因
数分解が比較適容易に解けるという攻撃法である。
【0011】よって、特に暗号系に使用する素数を生成
する場合には、これらのP−1法及びP+1法(以下、
両方を合わせてP±1法という)に強い素数を効率的に
発生することが重要である。しかしながら、上述した従
来の素数生成方法では、この点が考慮されずにランダム
に素数候補が生成されるだけであり、P±1法に強い素
数を効率良く生成できないという問題がある。
【0012】本発明は斯かる事情に鑑みてなされたもの
であり、P±1法に強い素数を効率的に生成することが
できる素数生成装置及びその効率的に生成した素数を利
用する暗号システムを提供することを目的とする。
【0013】
【課題を解決するための手段】請求項1に係る素数生成
装置は、暗号系に使用する素数を生成する装置におい
て、素数候補を生成する生成手段と、生成した素数候補
が素数であるか否かを判定する判定手段と、所定の素数
以下のある素数pについて下記式(A)が成立する数A
を、前記判定手段にて素数判定を行う前に、素数候補か
ら除外する除外手段とを備えることを特徴とする A≡1 ( mod p) …(A)
【0014】
【0015】
【0016】請求項に係る素数生成装置は、暗号系に
使用する素数を生成する装置において、素数候補を生成
する生成手段と、生成した素数候補が素数であるか否か
を判定する判定手段と、所定の素数以下のある素数pに
ついて下記式(B)が成立する数Aを、前記判定手段に
素数判定を行う前に、素数候補から除外する除外手段
とを備えることを特徴とする。 A≡−1 (mod p) …(B)
【0017】請求項に係る素数生成装置は、暗号系に
使用する素数を生成する装置において、暗号系に使用す
る素数を生成する装置において、素数候補を生成する生
成手段と、生成した素数候補が素数であるか否かを判定
する判定手段と、所定の素数以下のある素数pについて
下記式(C)が成立する数Aを、前記判定手段にて素数
判定を行う前に、素数候補から除外する除外手段とを備
えることを特徴とする。 A≡0,±1 (mod p) …(C)
【0018】請求項に係る素数生成装置は、暗号系に
使用する素数を生成する装置において、奇数乱数を用い
て素数候補P′を生成する生成手段と、P′+1,P′
−1が8の倍数であるか9の倍数であるかを判断する
断手段と、P′+1及びP′−1が何れも8,9の何れ
の倍数でもない場合に、その素数候補P′に対してp3
〜pn (pn :n番目の素数)までの素数での割算を行
割算手段と、割算の結果下記式(D)が成立する素数
候補P′に対して素数判定を行う判定手段とを備える
とを特徴とする。
【0019】
【数3】
【0020】請求項に係る素数生成装置は、暗号系に
使用する素数を生成する装置において、奇数乱数を用い
て素数候補P′を生成する生成手段と、素数候補P′に
対してp1 〜pn (pn :n番目の素数)までの素数で
の割算を行う割算手段と、pi <pm (i:3≦i≦n
の整数,m:3<m<nの所定の整数)であるpi につ
いては下記式(E)が成立し、しかも、pi >pm であ
るpi については下記式(F)が成立する素数候補P′
に対して素数判定を行う判定手段とを備えることを特徴
とする。
【0021】
【数4】
【0022】
【0023】請求項に係る暗号システムは、平文を暗
号化鍵を用いて暗号文に変換する暗号化器と、前記暗号
文を復号鍵を用いて前記平文に変換する復号器とを備
え、前記暗号化鍵及び/または復号鍵に素数を利用する
暗号システムにおいて、前記素数として、請求項1〜
の何れかに記載の装置により生成した素数を用いるよう
に構成したことを特徴とする。
【0024】本発明では、ランダムに奇数を発生した
後、その発生した奇数を小さな素数で割って割り切れる
か否かを検証して割り切れる場合には素数候補としない
が、同時にその素数で割った際の余りが1または−1で
ある場合にも素数候補としない。このような処理を、1
つの発生した奇数に対して、所定の素数以下であって5
以上であるすべての素数について行い、そのすべての素
数について、割り切れない、かつ、余りが1または−1
にならないような奇数を素数候補として生成する。そし
て、このようにして生成した素数候補に対して素数判定
を行って、素数を生成する。よって、P±1法に強い素
数とはなりえない素数候補を、素数判定前の素数生成の
段階で除去するようにしたので、無駄な素数判定の時間
を省けて、P±1法に強い素数を極めて効率よく生成す
ることができる。
【0025】
【発明の実施の形態】以下、本発明をその実施の形態を
示す図面を参照して具体的に説明する。図1は、本発明
における暗号システムの一例を示す構成図であり、図1
は前述した公開鍵暗号系の1つであるRSA暗号系の構
成を示している。暗号化器1が平文Mを暗号化鍵(e,
N)を用いて暗号化して暗号文Cを作成し、復号器2が
この暗号文Cを元の平文Mに復号鍵(d,N)を用いて
復号する状態を示している。
【0026】ここで、暗号化Eと復号Dとのアルゴリズ
ムは、べき乗剰余演算を用いて次のように表される。 C=E(M)=Me (mod N) M=D(C)=Cd (mod N) 但し、e・d≡1(mod lcm(−1,−1)) N=P・Q(P,Qは大きな素数) e,N:公開鍵 d:秘密鍵 lcm(Least Common Multiple ):最小公倍数
【0027】図2は、例えば図1に示すようなRSA暗
号系で使用されるP±1法に強い素数(P,Q)を効率
良く生成する本発明の素数生成装置の構成図、図3は、
その素数生成の動作手順を示すフローチャートである。
図2に示すように、素数生成装置10は、素数候補P′を
生成する素数候補生成器3と、入力される素数候補P′
に対して確率的素数判定法または確定的素数判定法によ
る素数判定を行ってその判定結果を出力する素数判定器
4とを有する。
【0028】素数候補生成器3は、後述する方式に従っ
て素数候補P′を生成し(ステップS1)、生成した素
数候補P′を素数判定器4へ出力する(ステップS
2)。素数判定器4は、確率的素数判定法または確定的
素数判定法に基づいて、入力された素数候補P′が素数
であるか否かを判定する(ステップS3)。その判定の
結果、素数である場合には(S4:YES)、その素数
候補P′を素数として出力し(ステップS5)、素数で
ない場合には(S4:NO)、その素数候補P′を非素
数として出力する(ステップS6)。
【0029】上述の処理において、本発明は、素数候補
P′を生成する方法に特徴があり、P±1法に強い素数
となり得ない素数候補P′は生成しないようにして、P
±1法に強い素数となり得る素数候補P′のみを生成す
ることにより、P±1法に強い素数を効率的に生成でき
るようにしている。なお、素数判定は、一般的な判定法
を利用するので、その説明は省略する。
【0030】以下、本発明の特徴部分である素数候補生
成の方法について詳述する。まず、本発明の記述におい
て以下のことを定義する。 〔定義1〕Mを素数の集合と定義する。 〔定義2〕pn をn番目の素数とする。 〔定義3〕生成した素数候補が素数となる確率を素数の
生成率と定義する。
【0031】〔定理1:基本素数定理〕pi ≦xを満た
す素数pi の個数π(x)は下記式(1)で近似され
る。
【0032】
【数5】
【0033】奇数乱数を用いて生成した素数候補P′が
素数となる確率は、下記式(2)のように概ね見積もる
ことができる。
【0034】
【数6】
【0035】大きな素数候補P′が素数になる確率を上
記式(2)に従って計算することは困難である。よっ
て、素数候補P′がnビットである場合には、定理1を
用いて式(2)の近似式として下記式(3)を用いる。
【0036】
【数7】
【0037】素数PがP±1法に強い素数であるために
は、P±1が大きな素因数を持つことが必要である。こ
こで、P±1法への強度を評価するため、以下のような
指標関数を定義する。
【0038】〔定義4:指標関数〕P−1とP+1とを
掛け合わせた下記式(4)で示される関数F(P)を指
標関数と定義する。 F(P)=(P−1)(P+1) …(4)
【0039】素数Pについて、P−1,P+1は連続す
る偶数であるので、そのうちの何れか一方が4の倍数で
あって他方が2の倍数である。また、P−1,P,P+
1は連続する3数であってPが3の倍数ではないので、
P−1,P+1の何れか一方が3の倍数である。従っ
て、任意の素数Pについて24|F(P)となる。これに
よりP±1法に対して最も強い素数(最強素数)Pを以
下のように定義することができる。
【0040】〔定義5:最強素数〕素数Pについて、p
- ,p+ をそれぞれP−1,P+1の素因数とする。指
標関数が下記式(5)で表される素数を最強素数と定義
する。 F(P)=24・p- ・p+ …(5)
【0041】〔定義6〕最強素数の集合をMbestと定義
する。奇数乱数を用いて素数候補P′を生成した場合、
最強素数の生成率Prob(P′∈Mbest)は下記式(6)
のように見積もることができる。
【0042】
【数8】
【0043】P′及びP′の指標関数F(P′)をP′
1/2 以下の素数pi が割り切る確率を考えることによ
り、式(6)を導出する。 (i)pi =2の場合 P′−1,P′+1は連続する偶数であるので式(7)
を満たす。また、式(8)が成立し、P′は奇数である
ので、式(9)のように見積もることができる。
【0044】
【数9】
【0045】(ii)pi =3の場合 P′−1,P′,P′+1は連続する3数であるので、
式(10)を満たす。また、式(11)が成立するので、式
(12)のように見積もることができる。
【0046】
【数10】
【0047】(iii)pi ≧5の場合 下記式(13)を満たす。また、P′mod pi は等頻度で
0,1,…,pi −1の値をとるので、式(14)が成立
する。
【0048】
【数11】
【0049】従って、以上のことから、最強素数の生成
率を上記式(6)と見積もることができる。
【0050】大きな素数候補P′については、式(6)
を計算することは困難であるので、式(6)を変形し式
(3)を用いて近似することで最強素数の生成率を導出
する。
【0051】一般に下記式(15)が成立するので、式
(6)は下記式(16)のように変形できる。
【0052】
【数12】
【0053】但し、pi <P′1/2 を満たす最大のiを
nとし、αn ,βn はそれぞれ式(17),(18)を満た
すものとする。
【0054】
【数13】
【0055】まず、αn が収束することをはさみうち法
を用いて示す。i>2となる任意のiについて、pi
i-1 ≧2より、下記式(19)が明らかに成立し、下記
式(20)も成立する。
【0056】
【数14】
【0057】ここで、sn を式(21)のように設定し、
αn 及び式(21)を用いて式(20)を書き換えると、式
(22)及び(23)が成立する。
【0058】
【数15】
【0059】ここで、ζ(・)をゼータ関数とすると、
それは下記式(24)で定義され、これを用いると、ζ
(2)=π2 /6より、下記式(25)が成立する。
【0060】
【数16】
【0061】また、式(23)において、αk /sk-1
単調に増加し、αk /sk は単調に減少するので、はさ
みうち法によって、式(17)で示されるαn は収束す
る。
【0062】上限と下限との比は下記式(26)で示さ
れ、kの値を増やすと高速に1に近づきその収束速度は
非常に速い。式(23)について例えばk=10000 まで計
算した結果、下記式(27)で示すような値を得た。
【0063】
【数17】
【0064】また、βn についても同様に、i>2とな
る任意のiについて、pi −pi-1≧2となるので、下
記式(28)が明らかに成立する。また、αk の場合と同
様に、下記式(29)の関係を導くことができる。
【0065】
【数18】
【0066】よって、βn も急速に収束し、式(29)に
ついて例えばk=10000 まで計算した結果、下記式(3
0)で示すような値を得た。
【0067】
【数19】
【0068】従って、式(6)を以下の式(31)のよう
に近似することができる。
【0069】
【数20】
【0070】上述のように定義した最強素数は、P±1
法に対して非常に強度は高いが、数が少なくて、必ずし
も生成が容易であるとは言えず、実用的ではない。そこ
で、P±1の因数に比較的小さな素数を許す場合には、
P±1法に対して十分な強度を保ちつつ、しかも最強素
数に比べて容易に素数を生成できる。このように、実用
的に生成されるP±1法に強い素数(強素数)について
説明する。
【0071】P±1の因数が、大きな1つの素数と一定
値以下の小さな素数とでのみ構成される以下の素数を定
義する。 〔定義7:pm −強素数〕素数Pについて、p- ,p+
をそれぞれP−1,P+1のpm より大きな素因数とす
る。指標関数が下記式(32)で表される素数をpm −強
素数と定義する。
【0072】
【数21】
【0073】〔定義8〕pm −強素数の集合をMbetter
(m) と定義する。素数候補を奇数乱数を用いて生成した
場合、強素数の生成率は、最強素数と同様にして、下記
式(33)のように見積もることができる。
【0074】
【数22】
【0075】計算機を用いて実際に64ビットから128 ビ
ットまで2ビット毎に1000000 個の奇数乱数を生成し、
それが最強素数になる確率及びp9 −強素数になる確率
を計算した。その測定結果を図4に示す。なお、図4に
は、上記式(6)及び式(33)に従って算出した理論的
な予測値も併せて示す。最強素数については予測値と実
験値とがほとんど一致する結果が得られ、また、p9
強素数についても予測値と実験値とがほぼ一致する結果
が得られた。
【0076】素数Pが最強素数または強素数になるため
には、P±1が小さな素因数pi を持たないことが必要
である。即ち、下記式(34)が成立することが必要であ
る。
【0077】
【数23】
【0078】よって、素数候補P′を素数判定する前
に、試行割算を行い、P′≡0,±1(mod pi )とな
る素数候補を予め除去することにより、最強素数及び強
素数を効率的に生成することができる。以下、このよう
な生成法について具体的に説明する。
【0079】(第1実施の形態:最強素数の効率的生
成) 奇数乱数を用いて素数候補P′を生成し、P′±1が何
れも、8の倍数でなく、しかも9の倍数でないことを検
査した後、そのP′に対してp3 〜pn までの素数につ
いて試行割算を実行する。P′≡0,±1(mod pi
となった場合は別の素数候補を再生成して最初からやり
直す。全ての検査を通過したもののみについて最強素数
か否かの判定を行う。oddrandom( )を奇数乱数生成関
数、isbestprime(P′)をP′に対して最強素数判定を
行う関数として、以下に第1実施の形態のアルゴリムを
示す。
【0080】〈第1実施の形態のアルゴリム〉 LOOP: P′←oddrandom( ); if P′mod 8=1 or 7 then goto LOOP; if P′mod 9=0 or 1 or 3 or 6 or 8 then goto LOOP; for i=3 to n do begin if P′mod pi =1 or 0 or pi −1 then goto LOOP; end if isbestprime(P′)=TRUE then print P′,exit; else goto LOOP;
【0081】この第1実施の形態では、最強素数となり
得ない素数候補を素数判定前に除去するので、無駄な素
数判定の時間が省け、高速に効率良く最強素数を生成で
きる。
【0082】第1実施の形態及び従来の試行割算方法に
おいて、88ビットから160 ビットまで8ビット毎に最強
素数を100 個生成する時間を測定した。何れの方法にお
いてもp3 〜p500 までの素数で試行割算による検査を
実行した。この測定結果を図5に示す。例えば120 ビッ
トの素数において、第1実施の形態では、従来の試行割
算方法と比べて16倍程度の生成速度を示しており、最強
素数を極めて効率良く生成できていることが分かる。
【0083】(第2実施の形態:強素数の効率的生成)
奇数乱数を用いて素数候補P′を生成し、P′に対して
1 〜pn までの素数で試行割算を実行する。pi <p
m となるpi では、P′≡0(mod pi )となる場合の
み素数候補を再生成する。pi >pm となるpi につい
ては、第1実施の形態と同様に、P′≡0,±1(mod
i )となった場合に素数候補を再生成する。全ての検
査を通過したもののみについて強素数か否かの判定を行
う。isbetterprime(P′)をP′に対して強素数判定を
行う関数として、以下に第2実施の形態のアルゴリムを
示す。
【0084】〈第2実施の形態のアルゴリム〉 LOOP: P′←oddrandom( ); for i=2 to n do begin if P′mod pi =0 then goto LOOP; if i>m then if P′mod pi =1 or pi −1 then goto LOOP; end if isbetterprime(P′)=TRUE then print P′,exit; else goto LOOP;
【0085】この第2実施の形態においても、第1実施
の形態と同様に、強素数となり得ない素数候補を素数判
定前に除去するので、無駄な素数判定の時間が省け、高
速に効率良く強素数を生成できる。
【0086】第2実施の形態及び従来の試行割算方法に
おいて、88ビットから160 ビットまで8ビット毎にp4
−強素数を100 個生成する時間を測定した。何れの方式
においてもp3 〜p500 までの素数で試行割算による検
査を実行した。この測定結果を図6に示す。例えば120
ビットの素数において、第2実施の形態では、従来の試
行割算方法と比べて8倍程度の生成速度を示しており、
強素数を極めて効率良く生成できていることが分かる。
【0087】(第3実施の形態)ところで、最強素数ま
たは強素数程の強度は必要なく、P±1法に比較的強い
素数を高速に生成したいという要求も考えられる。この
ような場合には、第1実施の形態で用いた最強素数判定
関数isbestprime(P′)または第2実施の形態で用いた
強素数判定関数isbetterprime(P′)を、素数判定関数
isprime(P′)に置換するようにすれば、従来の試行割
算方法によって生成した素数よりもP±1法に強い素数
を非常に高速に生成することができる。
【0088】図7は、第3実施の形態と従来の試行割算
方法とに従って、100 ビットから300 ビットまで20ビッ
ト毎に1000個の素数を生成する際に要した時間を示すグ
ラフである。図7において、×は従来の試行割算方法に
よる素数生成の所要時間を表しており、1000番目までの
各素数で割り切れるか否かを検査した後に、素数判定を
施している。また、図7において、○は第3実施の形態
による素数生成の所要時間を表しており、従来と同様に
99番目までの各素数で割り切れるか否かを検査し、100
番目から1000番目の各素数まで第3実施の形態による検
査を行った後に、素数判定を施している。
【0089】確かに、第3実施の形態では従来例に比べ
て素数生成の所要時間は長くなっているが、従来例では
単に素数を生成しているだけであるのに対して、第3実
施の形態では、P±1法に対して比較的強い素数を生成
できる点を考えれば、この程度の増加は問題ではない。
また、ビット数が大きくなっても、その素数生成の所要
時間の増加率が、第3実施の形態では従来例とほとんど
変わらない。
【0090】なお、上述した実施の形態では、ある整数
を素数で割った際の余りが0,±1の何れでもない場合
にその整数を素数候補とすることとしたが、ある整数を
素数で割った際の余りが1である場合にその整数を素数
候補とするようにしても良く、また、ある整数を素数で
割った際の余りが−1である場合にその整数を素数候補
とするようにしても良い。
【0091】
【発明の効果】以上のように、本発明では、P±1法に
強い素数とはなり得ない素数候補を素数判定の前に除去
するようにしたので、P±1法に強い素数を効率良く生
成することが可能となる。よって、素因数問題,離散対
数問題を利用した暗号系の発展に本発明は寄与できる。
【図面の簡単な説明】
【図1】RSA暗号系の構成を示す模式図である。
【図2】本発明の素数生成装置の構成図である。
【図3】本発明における素数生成の動作手順を示すフロ
ーチャートである。
【図4】最強素数または強素数になる確率(予測値と実
験値)を示すグラフである。
【図5】第1実施の形態と従来例とにおける最強素数の
生成時間を示すグラフである。
【図6】第2実施の形態と従来例とにおける強素数の生
成時間を示すグラフである。
【図7】第3実施の形態と従来例とにおける素数生成の
所要時間を示すグラフである。
【符号の説明】
1 暗号化器 2 復号器 3 素数候補生成器 4 素数判定器 10 素数生成装置
フロントページの続き (56)参考文献 特開 平2−37383(JP,A) 特開 平9−73269(JP,A) 特開 平10−207363(JP,A) 特開 平10−144829(JP,A) 特開 平11−52852(JP,A) 特開 平11−52853(JP,A) 特殊な素数の分布に関する二,三の考 察,電子情報通信学会技術研究報告, 1997年 7月18日,Vol.97 No. 180,p.13−18 Fast Generation o f Secure RSA−Modul i with Almost Maxi mal Diversity,Lect ure Notes in Compu ter Science,1991年 2月 4日,Vol.434,p.636−647 Fast Generation o f Prime Numbers an d Secure Public−Ke y Cryptographic Pa rameters,Journal o f CRYPTOLOGY,1995年10月 30日,Vol.8 No.3,p.123 −155 (58)調査した分野(Int.Cl.7,DB名) G09C 1/00 650 G06F 17/10 JICSTファイル(JOIS)

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】 暗号系に使用する素数を生成する装置
    おいて、素数候補を生成する生成手段と、生成した素数
    候補が素数であるか否かを判定する判定手段と、所定の
    素数以下のある素数pについて下記式(A)が成立する
    数Aを、前記判定手段にて素数判定を行う前に、素数候
    補から除外する除外手段とを備えることを特徴とする素
    数生成装置A≡1 ( mod p) …(A)
  2. 【請求項2】 暗号系に使用する素数を生成する装置
    おいて、素数候補を生成する生成手段と、生成した素数
    候補が素数であるか否かを判定する判定手段と、所定の
    素数以下のある素数pについて下記式(B)が成立する
    数Aを、前記判定手段にて素数判定を行う前に、素数候
    補から除外する除外手段とを備えることを特徴とする素
    数生成装置A≡−1 ( mod p) …(B)
  3. 【請求項3】 暗号系に使用する素数を生成する装置に
    おいて、素数候補を生成する生成手段と、生成した素数
    候補が素数であるか否かを判定する判定手段と、所定の
    素数以下のある素数pについて下記式(C)が成立する
    数Aを、前記判定手段にて素数判定を行う前に、素数候
    補から除外する除外手段とを備えることを特徴とする素
    数生成装置。 A≡0,±1 (mod p) …(C)
  4. 【請求項4】 暗号系に使用する素数を生成する装置に
    おいて、奇数乱数を用いて素数候補P′を生成する生成
    手段と、P′+1,P′−1が8の倍数であるか9の倍
    数であるかを判断する判断手段と、P′+1及びP′−
    1が何れも8,9の何れの倍数でもない場合に、その素
    数候補P′に対してp 3 〜p n (p n :n番目の素数)
    までの素数での割算を行う割算手段と、割算の結果下記
    式(D)が成立する素数候補P′に対して素数判定を行
    判定手段とを備えることを特徴とする素数生成装置。 【数1】
  5. 【請求項5】 暗号系に使用する素数を生成する装置に
    おいて、奇数乱数を用いて素数候補P′を生成する生成
    手段と、素数候補P′に対してp 1 〜p n (p n :n番
    目の素数)までの素数での割算を行う割算手段と、p i
    <p m (i:3≦i≦nの整数,m:3<m<nの所定
    の整数)であるp i については下記式(E)が成立し、
    しかも、p i >p m であるp i については下記式(F)
    が成立する素数候補P′に対して素数判定を行う判定手
    段とを備えることを特徴とする素数生成装置。 【数2】
  6. 【請求項6】 平文を暗号化鍵を用いて暗号文に変換す
    る暗号化器と、前記暗号文を復号鍵を用いて前記平文に
    変換する復号器とを備え、前記暗号化鍵及び/または復
    号鍵に素数を利用する暗号システムにおいて、前記素数
    として、請求項1〜5の何れかに記載の装置により生成
    した素数を用いるように構成したことを特徴とする暗号
    システム。
JP33818898A 1998-11-27 1998-11-27 素数生成装置及び暗号システム Expired - Fee Related JP3518672B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP33818898A JP3518672B2 (ja) 1998-11-27 1998-11-27 素数生成装置及び暗号システム
US09/448,728 US7043018B1 (en) 1998-11-27 1999-11-24 Prime number generation method, prime number generation apparatus, and cryptographic system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP33818898A JP3518672B2 (ja) 1998-11-27 1998-11-27 素数生成装置及び暗号システム

Publications (2)

Publication Number Publication Date
JP2000162968A JP2000162968A (ja) 2000-06-16
JP3518672B2 true JP3518672B2 (ja) 2004-04-12

Family

ID=18315761

Family Applications (1)

Application Number Title Priority Date Filing Date
JP33818898A Expired - Fee Related JP3518672B2 (ja) 1998-11-27 1998-11-27 素数生成装置及び暗号システム

Country Status (2)

Country Link
US (1) US7043018B1 (ja)
JP (1) JP3518672B2 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020041683A1 (en) * 2000-09-29 2002-04-11 Hopkins Dale W. Method for selecting optimal number of prime factors of a modulus for use in a cryptographic system
US7233663B2 (en) * 2001-10-29 2007-06-19 Safenet, Inc. Key generation performance improvement
FR2841411B1 (fr) * 2002-06-19 2004-10-29 Gemplus Card Int Procede de generation de cles electroniques pour procede de crytographie a cle publique et objet portatif securise mettant en oeuvre le procede
US6718536B2 (en) * 2002-06-21 2004-04-06 Atmel Corporation Computer-implemented method for fast generation and testing of probable prime numbers for cryptographic applications
US7346637B2 (en) * 2003-07-31 2008-03-18 Indian Institute Of Technology Polynomial time deterministic method for testing primality of numbers
WO2005064843A1 (ja) * 2003-12-26 2005-07-14 Matsushita Electric Industrial Co.,Ltd. 素数算出装置及び方法並びに鍵発行システム
AU2007101000B4 (en) * 2006-10-16 2008-07-17 Peter Cedric Holland 'Zed mathematics' : a basis for determining the largest prime factor of a composite number
JP4859933B2 (ja) * 2007-01-19 2012-01-25 三菱電機株式会社 暗号文生成装置及び暗号通信システム及び群パラメータ生成装置
KR101405321B1 (ko) * 2007-03-16 2014-06-27 재단법인서울대학교산학협력재단 키 연산 방법 및 이를 이용한 공유 키 생성 방법
FR2946207A1 (fr) * 2009-05-28 2010-12-03 Proton World Internat Nv Protection d'une generation de nombres premiers pour algorithme rsa
JP2011123356A (ja) * 2009-12-11 2011-06-23 Oki Semiconductor Co Ltd 素数生成装置、素数生成方法、及び素数生成プログラム
CN102591618B (zh) * 2011-12-23 2014-12-10 飞天诚信科技股份有限公司 一种在嵌入式***中生成大素数的方法
RU2549129C1 (ru) * 2014-02-21 2015-04-20 Кирилл Николаевич Шихаев Способ тестирования чисел на простоту
KR102200132B1 (ko) * 2018-12-31 2021-01-08 한양대학교 산학협력단 오일러체를 이용한 소수 검사 방법 및 장치
US20220085998A1 (en) * 2020-09-11 2022-03-17 Cryptography Research, Inc. System and method to generate prime numbers in cryptographic applications

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4351982A (en) * 1980-12-15 1982-09-28 Racal-Milgo, Inc. RSA Public-key data encryption system having large random prime number generating microprocessor or the like
JPH0237383A (ja) 1988-07-27 1990-02-07 Hitachi Ltd 素数生成方式
US5351297A (en) * 1991-06-28 1994-09-27 Matsushita Electric Industrial Co., Ltd. Method of privacy communication using elliptic curves
US5159632A (en) * 1991-09-17 1992-10-27 Next Computer, Inc. Method and apparatus for public key exchange in a cryptographic system
US5497423A (en) * 1993-06-18 1996-03-05 Matsushita Electric Industrial Co., Ltd. Method of implementing elliptic curve cryptosystems in digital signatures or verification and privacy communication
JP3292362B2 (ja) 1995-09-04 2002-06-17 日本電信電話株式会社 素数生成装置、素因数判定装置、および制限付き素数生成装置
JPH10207363A (ja) 1997-01-28 1998-08-07 Mitsubishi Electric Corp 素数生成装置及び方法
JP3835896B2 (ja) 1997-07-30 2006-10-18 富士通株式会社 素数生成装置,B−smooth性判定装置及び記録媒体
JP3750295B2 (ja) 1997-08-05 2006-03-01 富士ゼロックス株式会社 素数生成方法および装置
US6411715B1 (en) * 1997-11-10 2002-06-25 Rsa Security, Inc. Methods and apparatus for verifying the cryptographic security of a selected private and public key pair without knowing the private key

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Fast Generation of Prime Numbers and Secure Public−Key Cryptographic Parameters,Journal of CRYPTOLOGY,1995年10月30日,Vol.8 No.3,p.123−155
Fast Generation of Secure RSA−Moduli with Almost Maximal Diversity,Lecture Notes in Computer Science,1991年 2月 4日,Vol.434,p.636−647
特殊な素数の分布に関する二,三の考察,電子情報通信学会技術研究報告,1997年 7月18日,Vol.97 No.180,p.13−18

Also Published As

Publication number Publication date
US7043018B1 (en) 2006-05-09
JP2000162968A (ja) 2000-06-16

Similar Documents

Publication Publication Date Title
EP0924895B1 (en) Encryption and decryption devices for public-key cryptosystems and recording medium with their processing programs recorded thereon
Caelli et al. PKI, elliptic curve cryptography, and digital signatures
Harn Public-key cryptosystem design based on factoring and discrete logarithms
JP3518672B2 (ja) 素数生成装置及び暗号システム
US6490352B1 (en) Cryptographic elliptic curve apparatus and method
JP3835896B2 (ja) 素数生成装置,B−smooth性判定装置及び記録媒体
Subhashini et al. Mapreduce methodology for elliptical curve discrete logarithmic problems–securing telecom networks
US20070177727A1 (en) Method of a public key encryption and a cypher communication both secure against a chosen-ciphertext attack
JPH11502321A (ja) ゼーター方向性関数に基づく多目的高速暗号化安全シーケンス発生装置
Singh et al. ID-based proxy signature scheme with message recovery
US20020041684A1 (en) Public-key encryption and key-sharing methods
Ranasinghe et al. A generalization of the ElGamal public-key cryptosystem
De Santis et al. Necessary and sufficient assumptions for non-interactive zero-knowledge proofs of knowledge for all NP relations
Kuppuswamy et al. A new efficient digital signature scheme algorithm based on block cipher
Kaya et al. Sharing DSS by the Chinese remainder theorem
JP4485122B2 (ja) 公開鍵暗号システム,署名システム,暗号通信システム,秘密鍵生成器,公開鍵生成器及びコンピュータプログラム
Rososhek Fast and secure modular matrix based digital signature
Kuppusamy et al. Practical client puzzles in the standard model
US20020015491A1 (en) Public key encryption method and communication system using public key cryptosystem
EP1124349B1 (en) Public key distribution using an approximate linear function
JP3518680B2 (ja) 素数生成装置
Rao Valluri et al. Public key authentication scheme over quaternions
Bansod et al. Secured and Quantum Resistant key Exchange Cryptography Methods–A Comparison
WO2003013052A1 (en) Cryptosystems based on non-commutatity
Jiang et al. Two methods of directly constructing probabilistic public-key encryption primitives based on third-order LFSR sequences

Legal Events

Date Code Title Description
A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040121

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20090206

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090206

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100206

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees