JP3711821B2 - 素数生成方法及び装置及び素数生成プログラムを格納した記憶媒体 - Google Patents
素数生成方法及び装置及び素数生成プログラムを格納した記憶媒体 Download PDFInfo
- Publication number
- JP3711821B2 JP3711821B2 JP33490599A JP33490599A JP3711821B2 JP 3711821 B2 JP3711821 B2 JP 3711821B2 JP 33490599 A JP33490599 A JP 33490599A JP 33490599 A JP33490599 A JP 33490599A JP 3711821 B2 JP3711821 B2 JP 3711821B2
- Authority
- JP
- Japan
- Prior art keywords
- bits
- bit
- prime number
- storage area
- value
- 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 - Lifetime
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public 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/3033—Public 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
Description
【発明の属する技術分野】
本発明は、素数生成方法及び装置及び素数生成プログラムを格納した記憶媒体に係り、特に、暗号技術で用いられる素数生成方法及び装置及び素数生成プログラムを格納した記憶媒体に関する。
【0002】
【従来の技術】
データを秘匿するためには暗号化技術が有効である。データの暗号化には、共通鍵暗号と公開鍵暗号がある。公開鍵暗号ではデータを暗号化する鍵と復号化する鍵が異なっており、通常は暗号化に用いる鍵を一般に公開し、復号化に用いる鍵は利用者が秘密に保持する。公開される暗号化に用いる鍵から復号化に用いる鍵を求めることは、現在の数学的理論及び計算機の計算能力をもってしても現実的な時間には完了しないものと信じられている。
【0003】
上記性質をもつ公開鍵暗号の具体的な実現にはいくつか方法があるが、最も有名な方法として、RSA暗号がある。RSA暗号は初めて公開鍵暗号として1977年に発表されたもので、素因数分解の困難性を安全性の根拠にしている(岡本、山本、「現代暗号」、産業図書、p.110 ,1997を参照)。素因数分解の困難性とは、素数pとqがあった場合、乗算n=qpを行うことは簡単であるが、逆にnからpとqを求めることは難しいことをいう。nの桁数が大きくなるにつれて必要な計算時間は増大し、例えば、64桁と65桁の素数の乗算結果である129桁の数を素因数分解するために、1994年に600台の計算機を8カ月用いたことが報告されている(岡本、太田編、「暗号・ゼロ知識証明・数論」、共立出版、p.150, 1995 を参照)。他には、離散対数の問題の困難性に基づく公開鍵暗号も提案されているが、扱いが簡単であることから素因数分解の困難性に基づく公開鍵暗号が最も利用されており、その中でもRSA暗号が最も多く利用されている。
【0004】
RSA暗号は、上述の通り素因数分解の安全性に根拠をおいているために、もしnの素因数分解に成功したならば、そのnを用いた暗号文が第三者によって解読されてしまう。従って、nの素因数分解が困難であるようにしなければならない。既存の素因数分解法のうち、RSA暗号を破るために用いられる可能性のある方法は、その多くが素因数のビットサイズに比例して処理時間がかかる。そのため、nが1024ビットであったとしても、pが24ビットでqが1000ビットであったとするならば、pのサイズが小さいために素因数分解される可能性が高い。よって、nのサイズが1024ビットであれば、pとqはそれぞれ512ビット程度にしておくことが推奨される。
【0005】
一般に、p,qを素数としてn=pqのビットサイズをl(エル)として「l(エル)ビットRSA暗号」と呼ばれる。現在商用目的には、1024ビットが推奨され、軍事目的などさらに高度な安全性が必要な場面では、2048ビットが推奨されている。従って、素数としては、512ビットや1024ビットの長さを持たせることが求められる。
【0006】
素数を生成するためには、まず、乱数を発生させ、必要なビットサイズを持つ奇数を取得し、その値が素数であるかどうかを検査する。もし、素数判定に失敗すれば、別の奇数を再び乱数によって発生させ、検査を続ける。
素数判定にはいくつか方法があり、例えば、Rabin 法がある(Rabin, M.O.,"Probabilistic Algorithm for Testing Primality," J.Number Theory 12, pp.128-138, 1980 を参照)。
【0007】
また、素数は、無限に存在することが素数定理によって保証されており、判定に失敗したときの次の候補を適切に選択すれば有限回で処理は終了する(素数定理については「数学セミナーリーティングス、数の世界、日本評論社、p.97,1982 」を参照)。ここで、乱数の発生には、多くの場合決定論的な方法が用いられる。即ち、乱数系列の初期値を設定し、その値とある関数fを用いて系列{rn }を生成する。
【0008】
【発明が解決しようとする課題】
しかしながら、上記のような方法で素数を生成し、暗号鍵を作成する場合、次のような問題がある。
即ち、あるネットワークシステムにおいて大量に暗号鍵を作成しなければならない場合、その暗号鍵の一意性の保証が必要となる。もし同じ素数が生成された場合、その過程で用いられた乱数が同じである可能性があり、また、乱数生成が決定論的であればその後に生成される素数も同じである可能性があるため、結果としてRSA暗号鍵が同じになることが考えられる。このような事態において、鍵が暗号処理に利用された場合には他人に暗号文を復号される危険があること、また、署名処理に利用された場合には他人へのなりすましが結果として可能となる。特に、署名鍵がシステム内部で重複すると、本人性確認の手段として暗号処理を用いたとしても、その信頼性が満足されない。電子商取引などを行うには確実な本人性確認が必要とされ、即ち、鍵の重複を避けることがシステムに求められる。
【0009】
本発明は、上記の点に鑑みなされたもので、大量に生成される素数の一意性を保証し、かつそのためのメモリ使用量を低減させることが可能な素数生成方法及び装置及び素数生成プログラムを格納した記憶媒体を提供することを目的とする。
【0010】
【課題を解決するための手段】
図1は、本発明の原理を説明するための図である。
本発明(請求項1)は、データを秘匿化するための暗号技術で用いられる素数を生成するための素数生成方法において、
kを正の整数とし、mをk未満の正の整数とし、wを2m 未満の正の整数とし、kビットとmビットの長さを持つ記憶領域をそれぞれ用意する場合において、
mビットの記憶領域に予め与えられた初期値を設定し(ステップ1)、
周期がwで値域が{1,2,…,2m −1}である数列を計算し(ステップ2)、
外部から通信手段を介して素数生成の要求を受けた場合(ステップ3)、mビットの記憶領域を入力値として数列における入力値の次の値を計算し(ステップ4)、mビットの値を、kビットの記憶領域の所定の場所へコピーし(ステップ5)、
k−mビットの乱数を発生させ、kビットの記憶領域のうち、残ったk−mビットにコピーし(ステップ6)、kビットの整数とみなして素数判定を行い(ステップ7)、素数であれば、そのkビットデータを通信手段を介して外部へ返却し(ステップ8)、素数でなければ、再び乱数発生を行う(ステップ6)。
【0011】
本発明(請求項2)は、nをk以下の正の整数とし、m+n<kを満たすものとし、kビットのmビットとnビットの長さを持つ記憶領域をそれぞれ用意する場合において、
nビットの記憶領域に予め与えられた初期値を設定し、
計算されたnビットの値を、kビットの記憶領域の所定の場所にコピーし、
k−m−nビットの乱数を発生させ、kビットの記憶領域のうち、残ったk−m−nビットにコピーし、kビットの整数とみなして素数判定を行い、素数であれば、該kビットデータを通信部を介して外部へ返却し、素数でなければ再び乱数発生を行う処理を繰り返す。
【0012】
図2は、本発明の原理構成図である。
本発明(請求項3)は、データを秘匿化するための暗号技術で用いられる素数を生成するための素数生成装置であって、
kを正の整数とし、mをk未満の正の整数とし、wを2m 未満の正の整数とし、kビットとmビットの長さを持つ記憶領域11 、12 をそれぞれ用意する場合において、
mビットの記憶領域12 に予め与えられた初期値を設定する初期値設定手段2と、
周期がwで、値域が{1,2,…,2m −1}である数列を計算する計算手段3と、
外部から通信手段を介して素数生成の要求を受けた場合、mビットの記憶領域を入力値として上記の数列における入力値の次の値を計算し、mビットの値を、kビットの記憶領域11 の所定の場所へコピーするコピー手段4と、
k−mビットの乱数を発生させ、kビットの記憶領域のうち、残ったk−mビットにコピーし、kビットの整数とみなして素数判定を行い、素数であれば、そのkビットデータを通信手段を介して外部へ返却し、素数でなければ、再び乱数発生を行う乱数発生手段5とを有する。
【0013】
本発明(請求項4)は、データを秘匿化するための暗号技術で用いられる素数を生成するための素数生成装置であって、
nをk以下の正の整数とし、m+n<kを満たすものとし、kビットのmビットとnビットの長さを持つ記憶領域をそれぞれ用意する場合において、
nビットの記憶領域に予め与えられた初期値を設定する初期値設定手段と、
計算されたnビットの値を、kビットの記憶領域の所定の場所にコピーするコピー手段と、
k−m−nビットの乱数を発生させ、kビットの記憶領域のうち、残ったk−m−nビットにコピーし、kビットの整数とみなして素数判定を行い、素数であれば、該kビットデータを通信部を介して外部へ返却し、素数でなければ再び乱数発生を行う乱数発生手段とを有する。
【0014】
本発明(請求項5)は、データを秘匿化するための暗号技術で用いられる素数を生成するための素数生成プログラムを格納した記憶媒体であって、
kを正の整数とし、mをk未満の正の整数とし、wを2m 未満の正の整数とし、kビットとmビットの長さを持つ記憶領域をそれぞれ用意する場合において、mビットの記憶領域に予め与えられた初期値を設定する初期値設定プロセスと、
周期がwで値域が{1,2,…,2m −1}である数列を計算する計算プロセスと、
外部から通信プロセスを介して素数生成の要求を受けた場合、mビットの記憶領域を入力値として上記の数列における入力値の次の値を計算し、mビットの値を、kビットの記憶領域の所定の場所へコピーするコピープロセスと、
k−mビットの乱数を発生させ、kビットの記憶領域のうち、残ったk−mビットにコピーし、kビットの整数とみなして素数判定を行い、素数であれば、そのkビットデータを通信プロセスを介して外部へ返却し、素数でなければ、再び乱数発生を行う乱数発生プロセスとを有する。
【0015】
本発明(請求項6)は、データを秘匿化するための暗号技術で用いられる素数を生成するための素数生成プログラムを格納した記憶媒体であって、
nをk以下の正の整数とし、m+n<kを満たすものとし、kビットのmビットとnビットの長さを持つ記憶領域をそれぞれ用意する場合において、
nビットの記憶領域に予め与えられた初期値を設定する初期値設定プロセスと、
計算されたnビットの値を、kビットの記憶領域の所定の場所にコピーするコピープロセスと、
k−m−nビットの乱数を発生させ、kビットの記憶領域のうち、残ったk−m−nビットにコピーし、kビットの整数とみなして素数判定を行い、素数であれば、該kビットデータを通信部を介して外部へ返却し、素数でなければ再び乱数発生を行う乱数発生プロセスとを有する。
【0016】
上記のように、数列{si }としてmビットの数列を用いた場合、個々の値としては、0から2m −1までの2m 通りが考えられる。この数列の周期をwとする。このとき、初期値s1 を用いて生成した数列は、i番目の値をsi とおくと、sw までの値は全て異なる値である。各si を素数の一部として考慮することにより、この装置が返却する値に重複がないことが最初のw個について保証できる。
【0017】
次に、記憶容量については、この数列は、直前の値si-1 を用いれば、次の値si が得られる。従って、直前の数列の値si-1 を記憶しておけばよい。よって、素数生成の個数にかかわらず、記憶領域としてはmビットで充分である。
一般に一意性を確保するためには、以前に生成された素数や、素数から生成される暗号鍵を記憶装置に保持しておき、過去に生成したものと比較させることにより、一意性の判断を行うことができるが、記憶する数が多くなるに従い、記憶装置の増大化、検索時間の増大化を招くが、本発明によれば、周期が非常に長く、かつ、直前の値から次の値を求めることができる数列の値を素数の一部とすることによって、過去に生成した素数を記憶することなく、一意性を確保し、記憶装置や、生成時間の増大を防ぐことが可能となる。
【0018】
【発明の実施の形態】
図3は、本発明の素数生成装置の構成を示す。
同図に示す素数生成装置は、制御部10、データ記憶部20、通信部30、50、算術演算部40から構成される。
同図において、点線枠は、制御部10において本発明の処理における各処理部のコントロールを行う範囲である。
【0019】
算術演算部40は、乱数の発生、LFSRの計算、素数判定を行うRabin 法の計算処理を行う。
算術演算部40で行う数列の生成には、線形フィードバックシフトレジスタ(以下、LFSR)を用いる。LFSRは、数列を生成するアルゴリズムであり、数列における直前の値を入力として次の値を出力する。また、mビットの数を入出力するLFSRは、1から2m −1までの値を出力し、その周期は、2m −1となる。なお、LFSRの構造については、「Bruce Schneier, Applied Cryptography, 2nd edition, John-Wiley and Sons, p.372, 1996 」に示されている。
【0020】
データ記憶部20には、予めLFSRの直前の出力値あるいは初期値であるsi-1 が格納され、処理終了時には、出力データsi を格納する。
上記の構成における算術演算部40は、図2における初期値設定手段2、計算手段3、コピー手段4、乱数発生手段5の各手段を含む。当該算術演算部40では、kを正の整数とし、mをk未満の正の整数とし、wを2m 未満の正の整数とし、uを0以上の整数とし、vを0以上の整数とし、u+v=k−mを満たすものとする。mビットの数s1 を数列の初期値とし、システムを最初に起動する際に、初期値s1 を設定しておく。また、数列のそれぞれの値は、mビットの長さとする。
【0021】
算術演算部40が素数生成の要求を通信部30を介して取得すると、まず、直前の数列の値si-1 から次の値であるmビットの数si を得る。次に、uビットの乱数ru とvビットの乱数rv を生成する。そして、kビットの数として、
R=ru 2m+v +si 2v +rv
とする。右辺のそれぞれの値は、u,m,vビットであることと、
u+v+m=k
とする。
【0022】
最後に、Rが素数であるか否かをRabin 法を用いて検証する。もし、Rが合成数である場合には、乱数rv の生成、あるいは、乱数ru の生成に戻って上記の処理を再度行う。但し、si の再生成は行わない。Rが素数であるならば、この値を通信部50を介して外部に返却する。
【0023】
【実施例】
以下、図面と共に本発明の実施例を説明する。
図4は、本発明の一実施例のkビット素数の内部構成を示し、図5は、本発明の一実施例のkビット素数の内部構成(固有の値を含む)を示す。
図4では、LFSRの出力値を乱数の一部に埋め込んだ場合の構成を示している。一般に、kビットの素数を生成する場合には、真にkビットの長さを持つ値、即ち最上位ビットに1が立っている値を求められる。従って、図4、図5では、それぞれ最上位ビットに1を置いている。
【0024】
LFSRの出力値を、素数Rのどの部分に埋め込むかについては、特に制限はない。また、一つの纏まった部分として埋め込むのではなく、いくつかの部分に分解してRの中に埋め込んでもよい。但し、最下位ビット付近には、図中のvビット文の乱数部(rv )が示すように一つのまとまった部分として乱数成分を埋め込む形を採った方が確実な素数生成として推奨される。即ち、素数定理によると、例えば、512ビットの場合、素数である確率は約500分の1であって、vを比較的多く採ってある値r0 v を中心として、r0 v ±Mの範囲を探索すれば(ここでMは、ある正の整数)、その検索範囲中に素数が入る確率が結果として大きくなるからである。
【0025】
図5では、LFSRの出力だけでなく、固有の値もRの中に埋め込まれている。これは、素数及び素数から構成される暗号鍵を生成するサーバが、あるネットワークシステム内に複数台存在し、かつシステムとして素数や暗号鍵の一意性を保証しなければならない場合に有効である。固有の値としては、例えば、サーバの製造IDなどを割り当てればよい。この場合も、上記のように、固有の値を一つのまとまった部分として埋め込むのではなく、いくつかの部分に分解してRの中に埋め込んでもよい。
【0026】
例として、k=512,m=64,n=32,v=352とし、LFSRは、64ビットの入出力を行うものとする。これにより、まず、固有の値として
【0027】
【数1】
【0028】
を入れることができる。このフィールドには、例えば、サーバの製造IDなどを入れることが可能となる。また、LFSRの出力ビットはm=64ビットとなる。従って、
【0029】
【数2】
【0030】
個の異なる素数を生成することが保証できる。
システム起動時に、初期値s1 を定めて指定しておく。素数生成の要求があると、まず、LFSRを用いて直前の出力値si-1 から新しい出力値si を得る。これをデータ記憶部20にて記憶しておくと同時に、si をRの然るべき位置に複写する。また、32ビットの固有の値を、同じRの然るべき位置へ複写しておく。
【0031】
残ったuビット分の領域とvビット分の領域に対し、それぞれuビットとvビットの乱数(ru ,rv )を生成して然るべき位置に複写する。ここでは、図5にあるように、rv を複写する領域は一つの纏まった部分としてRの最下位を含んだ領域であるとする。但し、これらの過程において、Rの最上位ビットは1が立つようにしておく。また、2を除いて素数は奇数であるから、同様に最下位ビットも1が立つようにしておく。
【0032】
従って、vビット分の領域に複写される乱数rv の最下位ビットは、常に1が立っているものと仮定してよい。
こうして得られたRに対して、Rabin 法を用いて素数検査を行う。合成数と判断された場合には、rv に2を足す、あるいは、2を減じて隣の奇数を表すようにして再びvビット分の領域に複写し、得られたRに対して、Rabin 法による素数判定を行うことを繰り返す。ここで、Rそのものに2を足したり、2を減じたりすると、繰り上がりあるいは、繰り下がりによってmビット分の領域やnビット分の領域に影響を及ぼす可能性があるため、ここでの操作はvビット分の領域に限定するべきである。また、このような操作を行った結果、rv がvビットを超えたり、負の値になった場合には、2v を減じる、あるいは、2v を足すなどの操作を行って1から2v −1の範囲内に値を保持しておく。素数検査に合格した場合には、Rを返却する。
【0033】
また、本発明では、算術演算部40の動作を図1のフローチャートに示すように、kビット、mビットの記憶領域に初期値を設定するプロセス、周期がwで値域が{1,2,…,2m −1}である数列を計算するプロセス、素数生成要求時に、mビットの記憶領域を入力値として計算された数列における入力値の次の値を計算して、mビットの記憶領域へ格納するプロセス、計算されたmビットの値を、kビットの記憶領域へコピーするプロセス、k−mビットの乱数を発生させ、kビットの記憶領域のうち、残ったk−mビットの領域にコピーするプロセス、素数判定の結果、素数である場合には、kビットデータを素数として外部に出力するプロセス、素数でない場合には再度乱数を発生させるプロセスからなるプログラムを構築する。さらに、当該プログラムを素数生成装置として利用されるコンピュータに接続されるディスク装置や、フロッピーディスク、CD−ROM等の可搬記憶媒体に格納しておき、本発明を実施する際にインストールすることにより、容易に本発明を実現することができる。
【0034】
なお、本発明は、上記の実施例に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【0035】
【発明の効果】
上述のように、本発明によれば、主に暗号技術で用いられる素数生成処理において、生成された素数の一意性を容易に保証しつつ、使用記憶領域を削減することができる。
【図面の簡単な説明】
【図1】本発明の原理を説明するための図である。
【図2】本発明の原理構成図である。
【図3】本発明の素数生成装置の構成図である。
【図4】本発明の一実施例のkビット素数の内部構造を示す。
【図5】本発明の一実施例のkビット素数の内部構造(固有の値を含む)を示す。
【符号の説明】
1 記憶領域
11 kビット記憶領域
12 mビット記憶領域
2 初期値設定手段
3 計算手段
4 コピー手段
5 乱数発生手段
10 制御部
20 データ記憶部
30、50 通信部
40 算術演算部
Claims (6)
- データを秘匿化するための暗号技術で用いられる素数を生成するための素数生成方法において、
kを正の整数とし、mをk未満の正の整数とし、wを2m 未満の正の整数とし、kビットとmビットの長さを持つ記憶領域をそれぞれ用意する場合において、
mビットの記憶領域に予め与えられた初期値を設定し、
周期がwで値域が{1,2,…,2m −1}である数列を計算し、
外部から通信手段を介して素数生成の要求を受けた場合、mビットの記憶領域を入力値として前記数列における入力値の次の値を計算し、mビットの値を、kビットの記憶領域の所定の場所へコピーし、
k−mビットの乱数を発生させ、kビットの記憶領域のうち、残ったk−mビットにコピーし、kビットの整数とみなして素数判定を行い、素数であれば、そのkビットデータを通信手段を介して外部へ返却し、素数でなければ、再び乱数発生を行うことを特徴とする素数生成方法。 - nをk以下の正の整数とし、m+n<kを満たすものとし、kビットのmビットとnビットの長さを持つ記憶領域をそれぞれ用意する場合において、
nビットの記憶領域に予め与えられた初期値を設定し、
計算されたnビットの値を、kビットの記憶領域の所定の場所にコピーし、
k−m−nビットの乱数を発生させ、kビットの記憶領域のうち、残ったk−m−nビットにコピーし、kビットの整数とみなして素数判定を行い、素数であれば、該kビットデータを通信部を介して外部へ返却し、素数でなければ再び乱数発生を行う請求項1記載の素数生成方法。 - データを秘匿化するための暗号技術で用いられる素数を生成するための素数生成装置であって、
kを正の整数とし、mをk未満の正の整数とし、wを2m 未満の正の整数とし、kビットとmビットの長さを持つ記憶領域をそれぞれ用意する場合において、
mビットの記憶領域に予め与えられた初期値を設定する初期値設定手段と、
周期がwで値域が{1,2,…,2m −1}である数列を計算する計算手段と、
外部から通信手段を介して素数生成の要求を受けた場合、mビットの記憶領域を入力値として上記の数列における入力値の次の値を計算し、mビットの値を、kビットの記憶領域の所定の場所へコピーするコピー手段と、
k−mビットの乱数を発生させ、kビットの記憶領域のうち、残ったk−mビットにコピーし、kビットの整数とみなして素数判定を行い、素数であれば、そのkビットデータを通信手段を介して外部へ返却し、素数でなければ、再び乱数発生を行う乱数発生手段とを有することを特徴とする素数生成装置。 - データを秘匿化するための暗号技術で用いられる素数を生成するための素数生成装置であって、
nをk以下の正の整数とし、m+n<kを満たすものとし、kビットのmビットとnビットの長さを持つ記憶領域をそれぞれ用意する場合において、
nビットの記憶領域に予め与えられた初期値を設定する初期値設定手段と、
計算されたnビットの値を、kビットの記憶領域の所定の場所にコピーするコピー手段と、
k−m−nビットの乱数を発生させ、kビットの記憶領域のうち、残ったk−m−nビットにコピーし、kビットの整数とみなして素数判定を行い、素数であれば、該kビットデータを通信部を介して外部へ返却し、素数でなければ再び乱数発生を行う乱数発生手段とを有することを特徴とする素数生成装置。 - データを秘匿化するための暗号技術で用いられる素数を生成するための素数生成プログラムを格納した記憶媒体であって、
kを正の整数とし、mをk未満の正の整数とし、wを2m 未満の正の整数とし、kビットとmビットの長さを持つ記憶領域をそれぞれ用意する場合において、mビットの記憶領域に、予め与えられた初期値を設定する初期値設定プロセスと、
周期がwで値域が{1,2,…,2m −1}である数列を計算する計算プロセスと、
外部から通信プロセスを介して素数生成の要求を受けた場合、mビットの記憶領域を入力値として上記の数列における入力値の次の値を計算し、mビットの値を、kビットの記憶領域の所定の場所へコピーするコピープロセスと、
k−mビットの乱数を発生させ、kビットの記憶領域のうち、残ったk−mビットにコピーし、kビットの整数とみなして素数判定を行い、素数であれば、そのkビットデータを通信プロセスを介して外部へ返却し、素数でなければ、再び乱数発生を行う乱数発生プロセスとを有することを特徴とする素数生成プログラムを格納した記憶媒体。 - データを秘匿化するための暗号技術で用いられる素数を生成するための素数生成プログラムを格納した記憶媒体であって、
nをk以下の正の整数とし、m+n<kを満たすものとし、kビットのmビットとnビットの長さを持つ記憶領域をそれぞれ用意する場合において、
nビットの記憶領域に予め与えられた初期値を設定する初期値設定プロセスと、
計算されたnビットの値を、kビットの記憶領域の所定の場所にコピーするコピープロセスと、
k−m−nビットの乱数を発生させ、kビットの記憶領域のうち、残ったk−m−nビットにコピーし、kビットの整数とみなして素数判定を行い、素数であれば、該kビットデータを通信部を介して外部へ返却し、素数でなければ再び乱数発生を行う乱数発生プロセスとを有することを特徴とする素数生成プログラムを格納した記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP33490599A JP3711821B2 (ja) | 1999-11-25 | 1999-11-25 | 素数生成方法及び装置及び素数生成プログラムを格納した記憶媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP33490599A JP3711821B2 (ja) | 1999-11-25 | 1999-11-25 | 素数生成方法及び装置及び素数生成プログラムを格納した記憶媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001154580A JP2001154580A (ja) | 2001-06-08 |
JP3711821B2 true JP3711821B2 (ja) | 2005-11-02 |
Family
ID=18282561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP33490599A Expired - Lifetime JP3711821B2 (ja) | 1999-11-25 | 1999-11-25 | 素数生成方法及び装置及び素数生成プログラムを格納した記憶媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3711821B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9182943B2 (en) | 2013-03-08 | 2015-11-10 | Qualcomm Incorporated | Methods and devices for prime number generation |
US9800407B2 (en) * | 2013-08-30 | 2017-10-24 | Qualcomm Incorporated | Methods and apparatuses for prime number generation and storage |
KR102200132B1 (ko) * | 2018-12-31 | 2021-01-08 | 한양대학교 산학협력단 | 오일러체를 이용한 소수 검사 방법 및 장치 |
WO2021076119A1 (en) * | 2019-10-16 | 2021-04-22 | Hewlett-Packard Development Company, L.P. | Generating prime numbers |
CN113900476A (zh) * | 2021-10-11 | 2022-01-07 | 吴鸿邦 | 一种高效分解素数与合成破译rsa密码的新型算法 |
-
1999
- 1999-11-25 JP JP33490599A patent/JP3711821B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2001154580A (ja) | 2001-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108965258B (zh) | 一种基于全同态加密的云环境数据完整性验证方法 | |
Yun et al. | On protecting integrity and confidentiality of cryptographic file system for outsourced storage | |
Naor et al. | Universal one-way hash functions and their cryptographic applications | |
JP5147412B2 (ja) | 楕円曲線乱数生成 | |
JP4575283B2 (ja) | 暗号装置、復号装置、プログラム及び方法 | |
Tahir et al. | A new secure and lightweight searchable encryption scheme over encrypted cloud data | |
US10484170B2 (en) | Custom encryption function for communications between a client device and a server device | |
JP2004534333A (ja) | コンピュータネットワークにおける分散データ処理に関する統合された保護方法及びシステム | |
WO2019114122A1 (zh) | 登录信息的加密方法、装置、电子设备及介质 | |
US7000110B1 (en) | One-way function generation method, one-way function value generation device, proving device, authentication method, and authentication device | |
JP3871996B2 (ja) | データ分割管理方法及びプログラム | |
GB2399906A (en) | Delegating authority | |
US11349668B2 (en) | Encryption device and decryption device | |
Khedr et al. | Cryptographic accumulator-based scheme for critical data integrity verification in cloud storage | |
CN111698088A (zh) | 密钥轮换方法、装置、电子设备及介质 | |
US11645409B2 (en) | Search and access pattern hiding verifiable searchable encryption for distributed settings with malicious servers | |
CN109495270A (zh) | 数字签名生成中的临时乱数到消息的结合 | |
CN114257366A (zh) | 信息同态处理方法、装置、设备及计算机可读存储介质 | |
JPH10240128A (ja) | 暗号装置、暗号鍵生成方法及び暗号鍵管理方法、並びに素数生成装置及び素数生成方法 | |
JP3711821B2 (ja) | 素数生成方法及び装置及び素数生成プログラムを格納した記憶媒体 | |
JP5171787B2 (ja) | サインクリプションシステムおよびサインクリプション生成方法 | |
Abo-Alian et al. | Auditing-as-a-service for cloud storage | |
CN114760072B (zh) | 签名及验签方法、装置及存储介质 | |
Tsoutsos et al. | Efficient detection for malicious and random errors in additive encrypted computation | |
Odelu et al. | A secure effective dynamic group password-based authenticated key agreement scheme for the integrated EPR information system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040706 |
|
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: 20050726 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050808 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 3711821 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080826 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090826 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090826 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100826 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100826 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110826 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120826 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130826 Year of fee payment: 8 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
EXPY | Cancellation because of completion of term |