JP2003122251A - 暗号情報生成方法と暗号情報生成装置、暗号情報生成プログラム及び記録媒体 - Google Patents

暗号情報生成方法と暗号情報生成装置、暗号情報生成プログラム及び記録媒体

Info

Publication number
JP2003122251A
JP2003122251A JP2001312929A JP2001312929A JP2003122251A JP 2003122251 A JP2003122251 A JP 2003122251A JP 2001312929 A JP2001312929 A JP 2001312929A JP 2001312929 A JP2001312929 A JP 2001312929A JP 2003122251 A JP2003122251 A JP 2003122251A
Authority
JP
Japan
Prior art keywords
prime
prime number
candidate
remainder
test
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
JP2001312929A
Other languages
English (en)
Inventor
Hiromi Nobukata
浩美 信方
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2001312929A priority Critical patent/JP2003122251A/ja
Publication of JP2003122251A publication Critical patent/JP2003122251A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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/302Public 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 involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)

Abstract

(57)【要約】 【課題】 素数を生成するための時間を短縮することに
より、暗号情報を高速に生成するための暗号情報生成方
法と装置、プログラム及び記録媒体を提供する。 【解決手段】 素数を用いて暗号情報を生成する暗号情
報生成装置であって、素数候補を生成する素数候補生成
部3と、複数の既知素数を乗算して素数積を生成する素
数積生成部5と、素数候補の素数積に対する第一の剰余
を演算する剰余演算部7と、第一の剰余を既知素数の各
々で除算し、複数の第二の剰余を演算するふるい演算部
9と、複数の第二の剰余がいずれも0とならない場合に
は、素数判定テストを実行する素数判定テスト実行部1
1と、素数判定テスト実行部11において素数であると
判定された素数候補を用いて暗号情報を生成するRSA
暗号生成部13とを備えたことを特徴とする暗号情報生
成装置1を提供する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は暗号情報生成方法と
暗号情報生成装置、暗号情報生成プログラム及び記録媒
体に関し、さらに詳しくは、素数を利用することによっ
て暗号情報を生成するための方法と装置、プログラム及
び記録媒体に関するものである。
【0002】
【従来の技術】ネットワークによる近年の情報通信にお
いては、情報に対するセキュリティが重要となってお
り、様々な暗号化技術が開発されているが、暗号鍵と復
号鍵とが異なる非対称暗号としてのRSA暗号が広く用
いられている。
【0003】ここで、RSA暗号に用いられる剰余数は
二つの素数の積とされるが、セキュリティを確保するた
めには定期的に上記二つの素数を更新することが望まれ
るため、RSA暗号化技術においては、繰り返し新たな
素数を生成する必要がある。
【0004】以下に、従来における素数生成方法を、図
3を参照しつつ説明する。まず、ステップS1において
は、乱数を用いることにより素数候補Pxを生成すると
共に、後述するふるい演算に用いる既知素数pの個数k
を設定する。
【0005】次に、ステップS2においてi=0と設定
する。そして、ステップS3においては、該素数候補P
xを既存の素数p(i)により除する(以下において、
この演算を「ふるい演算」と呼ぶ)ことによって、剰余
Riを算出する。このとき、ステップS4において剰余
Riが0か否か、すなわち該素数候補Pxが素数p
(i)により割り切れたか否かを判断し、該素数候補P
xが該素数p(i)の倍数であると判定される場合に
は、ステップS10へ進む。なお、ステップS10にお
いては、該素数候補Pxに2を加え、ステップS2へ戻
る。
【0006】一方、ステップS4において、該素数候補
Pxが既存の該素数p(i)の倍数でないと判定される
場合には、ステップS5においてiが(k−1)である
か否かを判定する。ここで、iが(k−1)でないと判
定された場合にはステップS20へ進み、該iに1を加
えてステップS3へ戻る。
【0007】また、iが(k−1)であると判定された
場合にはステップS6へ進み、フェルマー(Fermat)テ
ストやミラーラビン(Miller Rabin)テスト等を用いる
ことによって素数判定を行う。
【0008】そして、ステップS7において該素数候補
Pxが素数と判定される場合にはこの素数生成方法を終
了し、素数でないと判定される場合にはステップS30
へ進む。ここで、ステップS30においては該素数候補
Pxに2を加え、ステップS2へ戻る。
【0009】以上が従来の素数生成方法であるが、ステ
ップS3におけるふるい演算において用いられる既知素
数p(i)が小さい場合には、その倍数が多く存在する
ために、ステップS7において実行されるサイクル数の
多い素数判定テストの所要回数が削減され、素数生成時
間が短縮される。
【0010】しかしながら、上記既知素数p(i)が大
きくなるに従って、その既知素数p(i)でふるい落と
される素数候補の個数が減少する。そして、該既知素数
p(i)がある値を超えると、該ふるい演算により素数
判定テストが不要となって削減されるサイクル数より、
ふるい演算に要するサイクル数の方が大きくなり、結果
的に素数生成に要するサイクル数及び時間が増大する。
従ってこの場合には、結果的にRSA暗号情報を生成す
るために必要とされる時間が増大するという問題があ
る。
【0011】
【発明が解決しようとする課題】本発明は上記のような
問題を解消するためになされたもので、素数を生成する
ための時間を短縮することにより、暗号情報を高速に生
成するための暗号情報生成方法と暗号情報生成装置、プ
ログラム及び該プログラムが記録された記録媒体を提供
することを目的とする。
【0012】
【課題を解決するための手段】本発明の目的は、素数を
用いて暗号情報を生成する暗号情報生成方法であって、
まず複数の既知素数を乗算して素数積を生成し、素数候
補の素数積に対する第一の剰余を演算しておく。次に、
第一の剰余を既知素数の各々で除算し、複数の第二の剰
余を演算して、該第二の剰余がいずれも0とならない場
合には、フェルマーテストあるいはミラーラビンテスト
などからなる素数判定テストを実行する。そして、素数
判定テストにおいて素数であると判定された素数候補を
用いて暗号情報を生成することにより達成される。
【0013】このような手段によれば、素数候補を予め
素数積により除算して、該素数積に対する第一の剰余を
算出しておくことにより、素数生成に必要な総演算サイ
クル数を低減することができる。
【0014】また、いずれか一つの第二の剰余が0とな
り、あるいは素数判定テストにおいて素数候補が素数で
ないと判定された場合には、第一の剰余及び素数候補に
2を加算するのみで新たな素数候補に対する素数判定を
実行することができ、該新たな素数候補に対しては、上
記素数積による剰余演算は不要とされる。
【0015】また、素数候補について、複数の素数積に
対してそれぞれ第一の剰余を演算しておけば、素数生成
に必要とされる総演算サイクル数がさらに低減される。
【0016】
【発明の実施の形態】以下において、本発明の実施の形
態を図面を参照しつつ詳しく説明する。なお、図中同一
符号は同一または相当部分を示す。
【0017】RSA暗号では、情報システムのセキュリ
ティ度を保持するため、定期的に剰余演算で用いる剰余
数を変更する。ここで、剰余数は2個の素数の積である
ため、2個の素数を生成する必要がある。
【0018】例えば、1024ビットのRSA暗号の場合に
は、512ビットの素数を2個生成する必要がある。この
とき、ある数が素数であるか否かは、フェルマーテスト
またはミラーラビンテスト等で判定される。
【0019】ここで上記フェルマーテストは、フェルマ
ーの小定理、すなわちpが素数であるとき0<a<pで
ある任意の数aに対して以下の式(1)が成立するとい
う定理を利用したものである。
【0020】
【数1】 すなわち、上記aを(p−1)乗して素数候補pで剰余
を取り、結果が1である場合に該pは素数であると判定
するテストである。但し、pが素数でなくても演算結果
が1となる場合があるため、通常は複数のaに対して演
算を実行し、いずれの演算結果も1となる場合に初めて
該pを素数であると判定する。
【0021】このとき演算サイクル数は、モントゴメリ
ー法を用いる場合、データ幅をLとして乗算器の幅をα
とすると、次式(2)により近似される。
【0022】
【数2】 ここで例えば、1024ビットのRSA暗号を32ビットの乗
算器を用いて演算する場合、素数のビット幅は512ビ
ットであるため、上記式(2)においてL=512、α=
32をそれぞれ代入すると、一つの素数候補の演算に約
768Kサイクル要することが算出される。
【0023】一方、既知の素数による除算に要するサイ
クル数は、ほぼ被除数のデータ幅に等しい。従って例え
ば、512ビットの素数候補の除算は0.5Kサイクル程度
が必要とされる。このため、通常は既知の素数による除
算でふるい演算を行って、いづれの既知素数の倍数でも
ないと判定された数に対してフェルマーテストやミラー
ラビンテストが行われる。
【0024】また、ある数n以下の素数の個数は、素数
定理によりn/ln(n)で表わされるため、n付近に素
数が存在する確率は次式(3)により算出される。
【0025】
【数3】 ここで例えば、512ビットの数2512付近に素数が
存在する確率は、次式(4)のように計算される。
【0026】
【数4】 上記の結果から、この場合には、356個の数を調べた
とき、確率的に一個の素数が存在することになる。そし
て、このうち奇数は178個であることから、確率的に
は178個の奇数を調べることにより、一つの素数を見
出すことができることになる。
【0027】以下の表1は、(2511+3)から始ま
る178個の奇数を対象として、30個の既知素数{3,
5,7,11,・・・113,127}によりふるい演算を実行したと
き、各既知素数で割り切れた個数(ふるい落とされた個
数)と該個数の累積合計、及び該ふるい演算後の素数候
補数(フェルマーテストの対象とされる個数)を示すも
のである。
【0028】
【表1】 上記表1によれば、ふるい演算で用いる既知素数が大き
くなるに従って、ふるい落とされる素数候補の数は減少
して行く。これは、既知素数が大きくなるに従って、該
既知素数の倍数の個数が減少することに起因する。ま
た、例えば素数候補Aがある既知素数Bの倍数である場
合、該素数候補Aが既知素数Bより小さい既知素数Cの倍
数でもあるときには、素数候補Aは先に既知素数Cによる
ふるい演算によりふるい落とされてしまうため、該既知
素数Bによるふるいにかからないといったことが考えら
れる。
【0029】また、上記表1に示される場合には、10
個の既知素数を用いてふるい演算を実行した後に、53
個の素数候補が残っている。このとき、さらに10個の
既知素数によりふるい演算を実行すると、7個の素数候
補がふるい落とされている。これより、ふるい落とされ
た素数候補についてはフェルマーテストを実行しなくて
良いため、削減されたサイクル数は768K×7=53
76Kと算出される。
【0030】一方、10個のふるいを追加した事により
増加したサイクル数は、1回の除算における所要サイク
ル数を0.5Kサイクルとすると、次式により算出される。
0. 5K×(10×46+2×2+1×3+1×4+1×5+1×
7+1×9)=246Kこれより、5376Kと246Kの差であ
る5130Kサイクル分だけ、素数生成に要する演算サイク
ルが削減されたことになる。
【0031】また、表1に示されるように、1番目から
20番目までの20個の既知素数を用いてふるい演算を
実行した後には、46個の素数候補が残っている。この
とき、さらに21番目から30番目までの10個の既知
素数を用いてふるい演算を実行しても、ふるい落とされ
る素数候補は1個である。これより、1回のフェルマー
テストで必要なサイクル数分(約768Kサイクル)が
削減される。
【0032】一方、10個の既知素数を用いてふるい演
算を追加的に実行したことにより増加したサイクル数
は、0.5K×(45×10+1×5)=227.5Kと算出できるた
め、差し引き540.5Kサイクルしか削減されないことにな
る。
【0033】以上は、素数生成における最初の値を2
511+3とした場合の例であるが、最初の値を別な値
に設定して演算を開始したときには一個もふるいにかか
らない場合もあり、そのような場合は逆に所要演算サイ
クルの合計は増加する。
【0034】例えば、1番目から30番目までの30個
の既知素数を用いてふるい演算を実行した後に、残存す
る素数候補に対してさらに10個の素数を用いてふるい
演算を実行した場合等には、追加された該ふるい演算に
おいてふるい落とされる素数候補が無いことも十分考え
られ、このような場合にはふるい演算を増やせば増やす
ほど演算サイクル数が大幅に増加する状況が生じ得る。
【0035】本実施の形態に係る暗号情報生成方法は、
上記のような分析を踏まえ、ふるい演算におけるサイク
ル数を必要最小限とすることにより、結果的にRSA暗号
に必要とされる素数を生成するために必要なサイクル数
を削減するものとされる。
【0036】そして具体的には、素数候補をいくつかの
既知素数の積で除算し、次にその剰余Rを該積の構成因
子たる既知素数で剰余演算する。このとき、剰余Rが該
既知素数の倍数であると判定された場合には、該素数候
補及び剰余Rに2を加算し、剰余(R+2)を該既知素数
で剰余演算することにより、該既知素数の倍数であるか
否かの判定を行う。
【0037】以下において、図1を参照しつつ、本実施
の形態に係る素数生成方法を説明する。まず、ステップ
S1において、例えば乱数を用いることによって素数候
補Pxを生成すると共に、ふるいに用いる既知素数の個
数kを設定する。そして、次式(5)で表されるk個の
該既知素数の積(以下、単に「素数積」ともいう)Pを
生成する。
【0038】
【数5】 次に、ステップS2において素数候補Pxを素数積Pで
剰余演算する。素数候補Pxを素数積Pで割ったときの
商をA、剰余をRとすると、素数候補Pxは(A×P+
R)で表される。このとき、素数候補Pxを既知素数p
(i)で割ったときの剰余値Riは、Ri=Px mod p(i)
=(A×P+R)mod p(i) と表すことができる。ここ
で、Pは既知素数p(i)を含む既知素数の積であるた
め、Pは既知素数p(i)で割り切れる。これより、(A
×P)は既知素数p(i)で割り切れるため、結果的にRi
=R mod p(i)となる。従って、素数候補Pxを対象と
して既知素数p(i)によりふるいをかける場合には、剰
余Rを既知素数p(i)で割ったときの剰余が0となるか
否かが判定される。
【0039】以上のことから、ステップS3でi=0と
設定し、ステップS4において剰余Rを既知素数p(i)
で割るふるい演算を実行する。そして、ステップS5に
おいて剰余値Riが0となるか否か判定し、0である場
合にはステップS10へ進むと共に0でない場合にはス
テップS6へ進む。ここで、ステップS10では素数候
補Px及び剰余値Riにそれぞれ2を加算し、ステップ
S3へ戻る。なお、ステップS10における演算につい
ては、後に詳しく説明する。
【0040】一方、ステップS6ではiが(k−1)で
あるか否かが判定され、(k−1)である場合にはステ
ップS7へ進むと共に(k−1)でない場合にはステッ
プS20へ進む。
【0041】そして、ステップS20ではiに1を加算
してステップS4へ戻る。一方、ステップS7ではフェ
ルマーテスト等の素数判定テストを行い、フェルマーテ
ストの場合にはステップS8において剰余T(=a
Px−1 mod Px)が1となるか否か判定する。この
とき、剰余Tが1と判定された場合には素数生成動作を
終了すると共に、1でないと判定された場合にはステッ
プS30へ進む。
【0042】ここで、該新たな素数候補を素数積Pで割
ったときの剰余は、次式のように計算される。 (Px+2) mod P =(A×P+R+2) mod P=(R
+2) mod P このことから、新たな素数候補(Px+2)を素数積P
で割ったときの剰余は、素数候補Pxを素数積Pで割っ
たときの剰余Rに2を足した値を素数積Pで割ったとき
の剰余に等しくなるため、ステップS30では、素数候
補Px及び剰余値Riにそれぞれ2を加算してステップ
S3へ戻る。これにより、新たな素数候補(Px+2)
について、ステップS3よりふるい演算が実行される。
【0043】以上が本実施の形態に係る素数生成方法で
あるが、該素数生成方法を利用した暗号情報生成装置に
ついて以下に説明する。
【0044】図2は、本発明の実施の形態に係る暗号情
報生成装置1の構成を示すブロック図である。図2に示
されるように、暗号情報生成装置1は素数候補生成部3
と素数積生成部5、剰余演算部7、ふるい演算部9、素
数判定テスト実行部11及びRSA暗号生成部13を備
えたものである。ここで、剰余演算部7は素数候補生成
部3と素数積生成部5に接続され、ふるい演算部9は剰
余演算部7及び素数判定テスト実行部11に接続され、
素数判定テスト実行部11はふるい演算部9に接続され
る。また、RSA暗号生成部13は素数判定テスト実行
部11に接続される。
【0045】上記のような構成を有する暗号情報生成装
置1においては、素数候補生成部3は図1のステップS
1に示されるように素数候補Pxを生成する。また、素
数積生成部5は、外部から供給された既知素数の個数k
を示すデータに応じてk個の既知素数を乗じ、素数積P
を算出する。そして、剰余演算部7は素数候補生成部3
から供給された素数候補Pxと素数積生成部5から供給
された素数積Pを用いて、図1のステップS2に示され
た剰余演算を実行し、ふるい演算部9は図1のステップ
S3からステップS6まで(ステップS10及びステッ
プS20を含む)の動作を実行する。
【0046】また、素数判定テスト実行部11は、図1
のステップS7とステップS8及びステップS30の動
作を実行する。なお、ステップS30における動作によ
り算出されたデータはふるい演算部9へ供給されると共
に、生成された素数は素数データとしてRSA暗号生成
部13へ供給される。
【0047】そして、RSA暗号生成部13は、供給さ
れた該素数データを利用して二つの素数の積を算出し、
算出された積を剰余数として外部から供給された情報を
RSA暗号化する。これにより、該情報からRSA暗号
が生成される。
【0048】以下において、二つの実施例について説明
する。 [実施例1]上記ふるい演算に用いる既知素数の個数が例
えば30個である場合には、これらの素数積Pは、P=
p(0)×p(1)×p(2)×…×p(28)×p(29)=3×5×
7×…×113×127=2007 23846 96665 18094 547
22 05995 13022 56832 29426 23865(10進法)=000000
01 5f97af98 9d8bc265 615ae7ca 9955367d 13efe079
(16進法)と計算される。
【0049】ここで、素数候補Pxを2511+3とし
た場合には、PxをPで割った剰余RはPx mod P =0
0000001 15253d0c 23656208 11b9ea03 3528dd21 104a34
68(16進法)と算出され、1ワードを32ビットとす
ると剰余Rは6ワードとなる。このとき、素数候補Px
を既知素数p(i)で割った剰余値RiはRi=Px mod
p(i)=R mod p(i)と表せると共に、各既知素数による
ふるい演算で必要とされるサイクル数は被除数のビット
数にほぼ等しくなるため、約192サイクル(=32ビ
ット/ワード×6ワード)と算出される。
【0050】従来においては、該ふるい演算で必要とさ
れるサイクル数が約512サイクルであったことから、
本実施の形態に係る素数生成方法では、ふるい演算に要
するサイクル数は3/8に低減される。 [実施例2]例えば、剰余演算を行う剰余演算部7が扱う
被除数のデータ幅を32ビットとする。このとき、既知
素数の積(素数積P)を得るために小さい既知素数から
順次乗算して行き、該乗算結果が剰余演算部7の扱える
データの最大値(232−1)を超える直前の値を第一
の素数積とし、第一の素数積を構成する既知素数の最大
値の次に大きな既知素数から順次乗算を行って乗算結果
が(232−1)を超える直前の値を第二の素数積とす
る。以下同様にして、ふるい演算に用いる既知素数の最
大値までを含む素数積を事前に計算しておく。
【0051】そして剰余演算部7は、素数候補に対して
各素数積を用いて剰余演算を行い、その剰余を記憶す
る。次に、ふるい演算部9は、第一の素数積による該剰
余結果を剰余演算部7から読み出し、第一の素数積を構
成する既知素数で順に剰余演算を実行し、剰余結果が0
か否かの判定を行う。
【0052】このとき、剰余結果が0となった場合に
は、ふるい演算部9は該素数候補及び剰余演算部7に記
憶された全ての剰余値に2を加算して、次のふるい演算
を実行する。一方、上記剰余結果が0とならない場合に
は、ふるい演算部9は、次の素数積による剰余値を対象
としてふるい演算を実行する。このように、ふるい演算
における剰余結果が0とならない場合には、順次異なる
素数積による剰余値を対象としてふるい演算を実行し、
いずれのふるい演算においても剰余結果が0とならない
場合に、素数判定テスト実行部11により素数判定テス
トが実行される。
【0053】この場合、ふるい演算部9による剰余演算
の演算サイクル数は、被除数が1ワード(32ビット)
であるため32サイクルとなり、従来の場合における5
12サイクルの1/16に短縮される。
【0054】以下の表2は、30個の既知素数を積が
(232−1)を超えないように組み合わせたときの、
該素数積Pxi及び素数候補を(2511+3)とした
ときの該各素数積に対する剰余結果をそれぞれ示す。
【0055】
【表2】 上記表2に示される場合では、ふるい演算において、ま
ず最初の素数積に対する剰余値856659116を既知素数
3,5,…,29で順次除算し、その過程で剰余値が0
となる場合には、該素数候補及び剰余値に2を加算して
次のふるい演算を実行する。一方、上記過程で剰余値が
0とならない場合には、次の素数積に対する剰余値4854
1541を既知素数31,37,・・・,47で順次除算
し、上記と同様に剰余値が0となるか否かに応じた処理
を実行する。
【0056】このようにして、第六の素数積に対する剰
余値131を既知素数113及び127で除算し、剰余
値が0とならないことが確認された後には、図1のステ
ップS7に示された素数判定テストが実行される。
【0057】以上より、本発明の実施の形態に係る暗号
情報生成方法及び暗号情報生成装置によれば、素数を生
成するために必要とされる演算サイクル数を低減するこ
とにより、素数生成時間を短縮することができるため、
暗号情報を高速に生成することができる。なお、上記の
方法により生成される素数は、RSA暗号の生成に用い
られるのみならず、素数を用いた他の暗号情報の生成に
おいても有効に利用できる。
【0058】また、本発明の実施の形態に係る暗号情報
生成方法は、容易にプログラミングすることができ、該
プログラムをコンピュータ読み取り可能な記録媒体に記
録して、該記録媒体が装着されたコンピュータにより該
プログラムを実行することにより、容易に実現すること
ができる。
【0059】
【発明の効果】本発明に係る暗号情報生成方法と暗号情
報生成装置、暗号情報生成プログラム及び記録媒体によ
れば、素数生成に必要な演算サイクル数を低減すること
ができ、より高速に素数を得ることができるため、暗号
情報を高速に生成することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態に係る素数生成方法を示す
フローチャートである。
【図2】本発明の実施の形態に係る暗号情報生成装置の
構成を示すブロック図である。
【図3】従来の素数生成方法を示すフローチャートであ
る。
【符号の説明】
1 暗号情報生成装置、3 素数候補生成部、5 素数
積生成部、7 剰余演算部、9 ふるい演算部、11
素数判定テスト実行部、13 RSA暗号生成部。

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 素数を用いて暗号情報を生成する暗号情
    報生成方法であって、 素数候補を生成する第一のステップと、 複数の既知素数を乗算して素数積を生成する第二のステ
    ップと、 前記素数候補の前記素数積に対する第一の剰余を演算す
    る第三のステップと、 前記第一の剰余を前記既知素数の各々で除算し、複数の
    第二の剰余を演算する第四のステップと、 前記複数の第二の剰余がいずれも0とならない場合に
    は、フェルマーテストあるいはミラーラビンテストから
    なる素数判定テストを実行する第五のステップと、 前記素数判定テストにおいて素数であると判定された前
    記素数候補を用いて暗号情報を生成する第六のステップ
    とを有することを特徴とする暗号情報生成方法。
  2. 【請求項2】 前記第四のステップにおいていずれか一
    つの前記第二の剰余が0となり、あるいは前記第五のス
    テップにおいて前記素数候補が素数でないと判定された
    場合には、前記第一の剰余及び前記素数候補に2を加算
    して前記第四のステップに戻る請求項1に記載の暗号情
    報生成方法。
  3. 【請求項3】 前記第二のステップでは複数の前記素数
    積が生成され、 前記第三のステップでは前記素数候補について、前記複
    数の素数積に対して各々の前記第一の剰余を演算する請
    求項1に記載の暗号情報生成方法。
  4. 【請求項4】 素数を用いて暗号情報を生成する暗号情
    報生成装置であって、 素数候補を生成する素数候補生成手段と、 複数の既知素数を乗算して素数積を生成する素数積生成
    手段と、 前記素数候補の前記素数積に対する第一の剰余を演算す
    る剰余演算手段と、 前記第一の剰余を前記既知素数の各々で除算し、複数の
    第二の剰余を演算するふるい演算手段と、 前記複数の第二の剰余がいずれも0とならない場合に
    は、フェルマーテストあるいはミラーラビンテストから
    なる素数判定テストを実行する素数判定テスト手段と、 前記素数判定テストにおいて素数であると判定された前
    記素数候補を用いて暗号情報を生成する暗号情報生成手
    段とを備えたことを特徴とする暗号情報生成装置。
  5. 【請求項5】 コンピュータにより素数を用いて暗号情
    報を生成するためのプログラムが記録されたコンピュー
    タ読み取り可能な記録媒体であって、前記プログラム
    は、 前記コンピュータに対し、素数候補を生成させ、 複数の既知素数を乗算して素数積を生成させ、 前記素数候補の前記素数積に対する第一の剰余を演算さ
    せ、 前記第一の剰余を前記既知素数の各々で除算し、複数の
    第二の剰余を演算させ、 前記複数の第二の剰余がいずれも0とならない場合に
    は、フェルマーテストあるいはミラーラビンテストから
    なる素数判定テストを実行させ、 前記素数判定テストにおいて素数であると判定された前
    記素数候補を用いて暗号情報を生成させることを特徴と
    するコンピュータ読み取り可能な記録媒体。
  6. 【請求項6】 コンピュータにより素数を用いて暗号情
    報を生成するための暗号情報生成プログラムであって、
    前記コンピュータに、 素数候補を生成させ、 複数の既知素数を乗算して素数積を生成させ、 前記素数候補の前記素数積に対する第一の剰余を演算さ
    せ、 前記第一の剰余を前記既知素数の各々で除算し、複数の
    第二の剰余を演算させ、 前記複数の第二の剰余がいずれも0とならない場合に
    は、フェルマーテストあるいはミラーラビンテストから
    なる素数判定テストを実行させ、 前記素数判定テストにおいて素数であると判定された前
    記素数候補を用いて暗号情報を生成させることを特徴と
    する暗号情報生成プログラム。
JP2001312929A 2001-10-10 2001-10-10 暗号情報生成方法と暗号情報生成装置、暗号情報生成プログラム及び記録媒体 Pending JP2003122251A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001312929A JP2003122251A (ja) 2001-10-10 2001-10-10 暗号情報生成方法と暗号情報生成装置、暗号情報生成プログラム及び記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001312929A JP2003122251A (ja) 2001-10-10 2001-10-10 暗号情報生成方法と暗号情報生成装置、暗号情報生成プログラム及び記録媒体

Publications (1)

Publication Number Publication Date
JP2003122251A true JP2003122251A (ja) 2003-04-25

Family

ID=19131498

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001312929A Pending JP2003122251A (ja) 2001-10-10 2001-10-10 暗号情報生成方法と暗号情報生成装置、暗号情報生成プログラム及び記録媒体

Country Status (1)

Country Link
JP (1) JP2003122251A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005531031A (ja) * 2002-06-21 2005-10-13 アトメル・コーポレイション 暗号化適用のための推定素数の検査
JP2009229615A (ja) * 2008-03-21 2009-10-08 Renesas Technology Corp データ処理システム及びデータ処理方法
JP2011123356A (ja) * 2009-12-11 2011-06-23 Oki Semiconductor Co Ltd 素数生成装置、素数生成方法、及び素数生成プログラム
KR20190127704A (ko) * 2017-02-21 2019-11-13 탈레스 Dis 프랑스 Sa 암호화 애플리케이션을 위한 소수를 생성하기 위한 방법
EP3896896A1 (en) * 2020-04-17 2021-10-20 Juniper Networks, Inc. Prime number generation for encryption

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005531031A (ja) * 2002-06-21 2005-10-13 アトメル・コーポレイション 暗号化適用のための推定素数の検査
JP4756117B2 (ja) * 2002-06-21 2011-08-24 インサイド コンタクトレス ソシエテ アノニム 暗号化適用のための推定素数の検査
JP2009229615A (ja) * 2008-03-21 2009-10-08 Renesas Technology Corp データ処理システム及びデータ処理方法
JP2011123356A (ja) * 2009-12-11 2011-06-23 Oki Semiconductor Co Ltd 素数生成装置、素数生成方法、及び素数生成プログラム
KR20190127704A (ko) * 2017-02-21 2019-11-13 탈레스 Dis 프랑스 Sa 암호화 애플리케이션을 위한 소수를 생성하기 위한 방법
JP2020509407A (ja) * 2017-02-21 2020-03-26 タレス・ディス・フランス・エス・ア 暗号アプリケーションのための素数を生成する方法
KR102311943B1 (ko) 2017-02-21 2021-10-12 탈레스 Dis 프랑스 Sa 암호화 애플리케이션을 위한 소수를 생성하기 위한 방법
JP7055142B2 (ja) 2017-02-21 2022-04-15 タレス・ディス・フランス・エス・ア 暗号アプリケーションのための素数を生成する方法
EP3896896A1 (en) * 2020-04-17 2021-10-20 Juniper Networks, Inc. Prime number generation for encryption
US11411732B2 (en) 2020-04-17 2022-08-09 Juniper Networks, Inc. Prime number generation for encryption

Similar Documents

Publication Publication Date Title
Bernstein et al. On the correct use of the negation map in the Pollard rho method
JP2009229615A5 (ja)
US20040059767A1 (en) Masking of factorized data in a residue number system
JP5449576B2 (ja) 演算装置、演算装置の楕円スカラー倍算方法、楕円スカラー倍算プログラム、演算装置の剰余演算方法および剰余演算プログラム
JP5182364B2 (ja) サイドチャネル攻撃に対する耐タンパ性を有する暗号処理方法
CN101371285B (zh) 加密处理装置、加密处理方法
JP2005209095A (ja) 多倍長データ積和演算処理回路及びモンゴメリ積和剰余演算回路
JP3532860B2 (ja) 剰余系表現を利用した演算装置及び方法及びプログラム
JP2002229445A (ja) べき乗剰余演算器
JP5553773B2 (ja) 楕円曲線上の点のスカラー倍を計算する装置及び方法
JP2003122251A (ja) 暗号情報生成方法と暗号情報生成装置、暗号情報生成プログラム及び記録媒体
US7558817B2 (en) Apparatus and method for calculating a result of a modular multiplication
JP2004258141A (ja) モンゴメリ乗算剰余の多倍長演算のための演算装置
JP5336056B2 (ja) 高速モンゴメリパワーラダーアルゴリズムを利用する欠陥検出動作を具現するための二進有限体におけるポイント加算方法及び加算演算装置
JP5175983B2 (ja) 演算装置
Bernstein How to find smooth parts of integers
Koc et al. Fast software exponentiation in GF (2/sup k/)
Hodjat et al. A scalable and high performance elliptic curve processor with resistance to timing attacks
JP4341889B2 (ja) 楕円積和演算計算方法、楕円積和演算計算装置、プログラム及び記録媒体
JP2002304122A (ja) 曲線上の有理点群の部分群上元判定装置、そのプログラム及びその記録媒体
JP3390966B2 (ja) 平方数を法とした剰余演算装置及びそのプログラム記録媒体
JP3321416B2 (ja) 補正処理付演算装置およびそのプログラム記録媒体
JPH10187037A (ja) 素数判定方法および装置
JP2020140120A (ja) 演算処理方法、演算処理装置、及び半導体装置
JP2006500615A (ja) 向上したQuisquaterReduction