JP4802228B2 - 鍵生成装置及びプログラム - Google Patents
鍵生成装置及びプログラム Download PDFInfo
- Publication number
- JP4802228B2 JP4802228B2 JP2008208962A JP2008208962A JP4802228B2 JP 4802228 B2 JP4802228 B2 JP 4802228B2 JP 2008208962 A JP2008208962 A JP 2008208962A JP 2008208962 A JP2008208962 A JP 2008208962A JP 4802228 B2 JP4802228 B2 JP 4802228B2
- Authority
- JP
- Japan
- Prior art keywords
- prime number
- integer
- prime
- storage means
- writing
- 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.)
- Active
Links
Images
Description
復号 :M=CD mod N
ここで、公開鍵N,E及び秘密鍵Dの間には、2つの素数P,Qに基づく(1)式及び(2)式に示す関係がある。
ED=1 mod ((P−1)(Q−1)) (2)
ここで用いる鍵のビット数は、暗号解読を困難にするために十分大きい必要があり、現時点では公開鍵Nが1024ビット、あるいは2048ビットが推奨されている。
Mq=C{D_q} mod Q
M=(((Mp−Mq)×qInv) mod P)×Q+Mq
なお、{D_p}の表記はDpを表し、{D_q}の表記はDqを表す。CRT用の秘密鍵Dp,Dq及び逆元qInvと、RSAの秘密鍵D及び公開鍵Eとは、以下に示す関係がある。
Dq=D mod (Q−1)
EDp=1 mod (P−1) (3)
EDq=1 mod (Q−1) (4)
qInv=Q-1 mod P
CRTを用いたRSA復号は、CRTを用いない場合と比較して3倍から4倍程度高速化されるが、小さなベキ指数Eを用いる暗号化と比較するとまだ低速である。
判定の結果、整数Pが素数でない場合には、ステップS4に戻り、CRT用の秘密鍵Dpを生成し直してステップS6で素数と判定されるまで、各ステップS4〜S6の処理をくり返す。
本発明の一つの局面によれば、鍵生成処理の最初に、P−1の素因子として含ませるnrビットの素数Rを生成し、次にneビットの奇数Eを生成し、ne+n{d_p}−np−nrビットの中間変数Kpを生成し、Dp=E-1 mod KpRを満たすn{d_p}ビットのDpを生成し、P=1+(EDp−1)/Kpを計算し、Pが素数となるまでこれを繰り返し、Qに関しても同様に実行する構成により、非特許文献2の方法においてP−1に素因子Rを持たせることができるため、暗号化及び復号の処理速度をバランスさせるように鍵を生成できると共に、p−1法による素因数分解を回避でき、より強固なRSA暗号方式の鍵を生成することができる。
図1は本発明の第1の実施形態に係る鍵生成装置の構成を示す模式図である。この鍵生成装置100は、ICカード又はPC(Personal Computer)などの計算機の鍵生成部として構成されており、ハードウェア構成、又はハードウェア資源とソフトウェアの組み合わせ構成により、RSA方式の鍵データを生成する処理を実行する。組み合わせ構成のソフトウェアとしては、予めネットワーク又は記憶媒体から鍵生成装置100にインストールされ、鍵生成装置100の各機能を実現させるためのプログラムが用いられる。
鍵生成装置100においては、乱数生成部104が、ビット数ne+n{d_p}−np−nrの第2中間変数Kqをランダムに生成し、この第2中間変数Kqを揮発性メモリ105に書き込む(ステップS18)。
従って、p−1法に対する耐性を持つように素数Rのビット数nrを指定した上で、本実施形態を実施することにより、暗号化と復号の処理時間をバランスするように鍵を生成可能であり、さらにP−1、Q−1に大きな素因子を持たせることができるため、より強固なRSA暗号方式の鍵を生成することができる。
ne=160,n{d_p}=354,np=512
ne=512,n{d_p}=269,np=512
にあてはめると、前者の場合はnr<2となり、素数Rが選べないため、本実施形態で説明したアルゴリズムは非特許文献2と同じものとなる。後者の場合はnr<269であるため、十分大きな(例えばnpの半分のビットサイズnr=256)を選ぶことができるため、本実施形態が有用であることが確かめられる。
図3に示す処理は、図2に示すステップS12に代えて、互いに異なる素数Rp,Rqを算出するステップS12a,S12bを設け、図2に示すステップS15,S19のmod KpR,mod KqRに代えて、ステップS15’ではmod KpRpとし、ステップS19’ではmod KqRqとしたものである。
図3におけるステップS17,S21において、整数PあるいはQが素数でないと判定されたときにそれぞれステップS15’,S19’に戻っていたが、図4のように、それぞれステップS14,S18に戻ってもよい。このように図4に示す処理に変形しても、図3に示す処理を同様に実施して同様の効果を得ることができる。
次に、本発明の第2の実施形態に係る鍵生成装置について説明するが、前述した図面と同一部分には同一符号を付してその詳しい説明を省略し、ここでは異なる部分について主に述べる。
条件2:gcd(a(p-1)/R−1,P)=1
ここで、gcdは最大公約数を表す。
整数P,Qが素数であるか否かを判定する方法としては、大きく分けて確率的素数判定方法と確定的素数判定方法との2種類の方法が知られている。
Claims (4)
- RSA暗号方式の鍵データを生成するための鍵生成装置であって、
前記鍵データとしての奇数E、秘密鍵Dp,Dq及び素数P,Qと、当該鍵データを生成するための素数R及び中間変数Kp,Kqとを記憶するための記憶手段と、
ビット数ne,n{d_p},np,nrを指定するための手段と、
前記ビット数nrの素数Rを生成し、この素数Rを前記記憶手段に書き込む手段と、
前記ビット数neの奇数Eをランダムに生成し、この奇数Eを前記記憶手段に書き込む手段と、
前記ビット数ne,n{d_p},np,nrに基づき、ビット数ne+n{d_p}−np−nrの第1中間変数Kpをランダムに生成し、この第1中間変数Kpを前記記憶手段に書き込む手段と、
前記記憶手段を参照しながら前記奇数E、前記第1中間変数Kp、前記素数R及び前記ビット数n{d_p}と、式Dp=E-1 mod KpRとに基づいて、前記ビット数n{d_p}の第1秘密鍵Dpを生成し、この第1秘密鍵Dpを前記記憶手段に書き込む第1秘密鍵生成手段と、
前記記憶手段を参照しながら前記奇数E、前記第1秘密鍵Dp及び前記第1中間変数Kpと、式P=1+(EDp−1)/Kpとに基づいて、整数Pを算出する整数P算出手段と、
前記整数Pを素数判定する第1素数判定手段と、
この素数判定の結果、前記整数Pが素数のとき、この素数Pを前記記憶手段に書き込む手段と、
前記素数判定の結果、前記整数Pが素数でないとき、前記整数Pが素数と判定されるまで、前記第1秘密鍵生成手段、前記整数P算出手段及び前記第1素数判定手段を繰り返し実行させる手段と、
前記ビット数ne+n{d_p}−np−nrの第2中間変数Kqをランダムに生成し、この第2中間変数Kqを前記記憶手段に書き込む手段と、
前記記憶手段を参照しながら前記奇数E、前記第2中間変数Kq、前記素数R及び前記ビット数n{d_p}と、式Dq=E-1 mod KqRとに基づいて、前記ビット数n{d_p}の第2秘密鍵Dqを生成し、この第2秘密鍵Dqを前記記憶手段に書き込む第2秘密鍵生成手段と、
前記記憶手段を参照しながら前記奇数E、前記第2秘密鍵Dq及び前記第2中間変数Kqと、式Q=1+(EDq−1)/Kqとに基づいて、整数Qを算出する整数Q算出手段と、
前記整数Qを素数判定する第2素数判定手段と、
この素数判定の結果、前記整数Qが素数のとき、この素数Qを前記記憶手段に書き込む手段と、
前記第2素数判定手段による素数判定の結果、前記整数Qが素数でないとき、前記整数Qが素数と判定されるまで、前記第2秘密鍵生成手段、前記整数Q算出手段及び前記第2素数判定手段を繰り返し実行させる手段と、
前記記憶手段を参照して前記奇数E、前記秘密鍵Dp,Dq及び前記素数P,Qを前記RSA暗号方式の鍵データとして出力する手段と、
を備えたことを特徴とする鍵生成装置。 - 請求項1に記載の鍵生成装置において、
前記第1及び第2素数判定手段は、確定的素数判定方法を用いて素数判定を実行することを特徴とする鍵生成装置。 - RSA暗号方式の鍵データを生成し且つ記憶手段を備えた鍵生成装置に用いられるプログラムであって、
前記鍵生成装置を、
ビット数ne,n{d_p},np,nrを指定するための手段、
前記ビット数nrの素数Rを生成し、この素数Rを前記記憶手段に書き込む手段、
前記ビット数neの奇数Eをランダムに生成し、この奇数Eを前記記憶手段に書き込む手段、
前記ビット数ne,n{d_p},np,nrに基づき、ビット数ne+n{d_p}−np−nrの第1中間変数Kpをランダムに生成し、この第1中間変数Kpを前記記憶手段に書き込む手段、
前記記憶手段を参照しながら前記奇数E、前記第1中間変数Kp、前記素数R及び前記ビット数n{d_p}と、式Dp=E-1 mod KpRとに基づいて、前記ビット数n{d_p}の第1秘密鍵Dpを生成し、この第1秘密鍵Dpを前記記憶手段に書き込む第1秘密鍵生成手段、
前記記憶手段を参照しながら前記奇数E、前記第1秘密鍵Dp及び前記第1中間変数Kpと、式P=1+(EDp−1)/Kpとに基づいて、整数Pを算出する整数P算出手段、
前記整数Pを素数判定する第1素数判定手段、
この素数判定の結果、前記整数Pが素数のとき、この素数Pを前記記憶手段に書き込む手段、
前記素数判定の結果、前記整数Pが素数でないとき、前記整数Pが素数と判定されるまで、前記第1秘密鍵生成手段、前記整数P算出手段及び前記第1素数判定手段を繰り返し実行させる手段と、
前記ビット数ne+n{d_p}−np−nrの第2中間変数Kqをランダムに生成し、この第2中間変数Kqを前記記憶手段に書き込む手段、
前記記憶手段を参照しながら前記奇数E、前記第2中間変数Kq、前記素数R及び前記ビット数n{d_p}と、式Dq=E-1 mod KqRとに基づいて、前記ビット数n{d_p}の第2秘密鍵Dqを生成し、この第2秘密鍵Dqを前記記憶手段に書き込む第2秘密鍵生成手段、
前記記憶手段を参照しながら前記奇数E、前記第2秘密鍵Dq及び前記第2中間変数Kqと、式Q=1+(EDq−1)/Kqとに基づいて、整数Qを算出する整数Q算出手段、
前記整数Qを素数判定する第2素数判定手段、
この素数判定の結果、前記整数Qが素数のとき、この素数Qを前記記憶手段に書き込む手段、
前記第2素数判定手段による素数判定の結果、前記整数Qが素数でないとき、前記整数Qが素数と判定されるまで、前記第2秘密鍵生成手段、前記整数Q算出手段及び前記第2素数判定手段を繰り返し実行させる手段と、
前記記憶手段を参照して前記奇数E、前記秘密鍵Dp,Dq及び前記素数P,Qを前記RSA暗号方式の鍵データとして出力する手段、
として機能させるためのプログラム。 - 請求項3に記載のプログラムにおいて、
前記第1及び第2素数判定手段は、確定的素数判定方法を用いて素数判定を実行する手段、として前記鍵生成装置を機能させるプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008208962A JP4802228B2 (ja) | 2008-08-14 | 2008-08-14 | 鍵生成装置及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008208962A JP4802228B2 (ja) | 2008-08-14 | 2008-08-14 | 鍵生成装置及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010044262A JP2010044262A (ja) | 2010-02-25 |
JP4802228B2 true JP4802228B2 (ja) | 2011-10-26 |
Family
ID=42015689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008208962A Active JP4802228B2 (ja) | 2008-08-14 | 2008-08-14 | 鍵生成装置及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4802228B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107888385B (zh) * | 2017-12-27 | 2020-12-22 | 数安时代科技股份有限公司 | Rsa模数生成方法、rsa密钥生成方法、计算机设备及介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3626340B2 (ja) * | 1996-12-26 | 2005-03-09 | 株式会社東芝 | 暗号装置及び暗号鍵生成方法、並びに素数生成装置及び素数生成方法 |
JP3750295B2 (ja) * | 1997-08-05 | 2006-03-01 | 富士ゼロックス株式会社 | 素数生成方法および装置 |
JP4664514B2 (ja) * | 2001-03-14 | 2011-04-06 | 株式会社東芝 | 素数生成装置及びプログラム |
JP3518680B2 (ja) * | 2001-07-16 | 2004-04-12 | 村田機械株式会社 | 素数生成装置 |
-
2008
- 2008-08-14 JP JP2008208962A patent/JP4802228B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2010044262A (ja) | 2010-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10277395B2 (en) | Cryptographic key-generation with application to data deduplication | |
CA2792267C (en) | Verifying implicit certificates and digital signatures | |
TW201320701A (zh) | 資訊處理裝置、資訊處理方法及程式 | |
JP2010049215A (ja) | パラメータ生成装置、暗号処理システム、方法およびプログラム | |
JP2010049213A (ja) | 暗号化装置、復号装置、暗号通信システム、方法及びプログラム | |
JP7238977B2 (ja) | 匿名署名システム及び匿名署名方法 | |
JP4690819B2 (ja) | 楕円曲線暗号におけるスカラー倍計算方法およびスカラー倍計算装置 | |
JP4802228B2 (ja) | 鍵生成装置及びプログラム | |
KR102132685B1 (ko) | 순서 노출 암호화를 위한 장치 및 방법 | |
JP2008136193A (ja) | 署名生成装置、署名検証装置、それらの方法及びプログラム | |
JP4848957B2 (ja) | 署名および検証方法ならびに署名および検証装置 | |
JP5679344B2 (ja) | 署名鍵難読化システム、署名鍵難読化方法、難読化された署名鍵を用いた暗号化署名システム、難読化された署名鍵を用いた暗号化署名方法とプログラム | |
Czypek | Implementing multivariate quadratic public key signature schemes on embedded devices | |
JP5300373B2 (ja) | 代数的トーラスを用いたデータ圧縮処理を行う装置およびプログラム | |
JP5038866B2 (ja) | 暗号通信方法、暗号化装置、復号装置、及びそれらのプログラム | |
JP5210712B2 (ja) | 圧縮rsa係数の計算方法 | |
JP2017223822A (ja) | 暗号文処理システム、暗号文処理サーバ、及び暗号文処理方法 | |
JP5032955B2 (ja) | 暗号通信方法、暗号化装置、復号装置、及びそれらのプログラム | |
JP4836676B2 (ja) | 素数生成プログラム | |
JP2007218997A (ja) | 素数生成装置、プログラム及び方法 | |
WO2011033642A1 (ja) | 署名生成装置及び署名検証装置 | |
JP5964759B2 (ja) | 計算システム | |
WO2023228408A1 (ja) | パラメータ生成システム、パラメータ生成方法、及びパラメータ生成プログラム | |
JP5355263B2 (ja) | 鍵共有装置、鍵共有方法及びプログラム | |
WO2012176408A1 (ja) | 署名検証方法、署名検証システム及び署名検証プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110426 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110510 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110622 |
|
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: 20110712 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110808 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140812 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4802228 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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 |