JP2003309551A - 暗号鍵保管装置 - Google Patents

暗号鍵保管装置

Info

Publication number
JP2003309551A
JP2003309551A JP2002113261A JP2002113261A JP2003309551A JP 2003309551 A JP2003309551 A JP 2003309551A JP 2002113261 A JP2002113261 A JP 2002113261A JP 2002113261 A JP2002113261 A JP 2002113261A JP 2003309551 A JP2003309551 A JP 2003309551A
Authority
JP
Japan
Prior art keywords
encryption key
unit
storage
storage device
key
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
JP2002113261A
Other languages
English (en)
Inventor
Hiroki Ueda
広樹 植田
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 JP2002113261A priority Critical patent/JP2003309551A/ja
Publication of JP2003309551A publication Critical patent/JP2003309551A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

(57)【要約】 【課題】ICカード等に記憶容量が少ない短いビット長
の秘密鍵の一部のみを記録し、少ない演算量で、記録し
たビット長よりも長い秘密鍵を生成する。 【解決手段】lを2以上の正の整数とし、p1,p2,・・
・,plを素数とし、φ=(p1−1)×(p2−1)×・
・・×(pl−1)とし、e,dをed≡1modφを満た
す正の整数とし、Σi=1 l|pi|+|e|ビットの長さを持
つ記憶領域を用意する場合において、 Σi=1 l|pi|+|
e|ビットの記憶領域にp1,p2,・・・,pl,eをそれぞ
れ記憶し、外部から暗号鍵取り出しの要求を受けた場
合、p1,p2,・・・,plを記憶部から取り出し、算術演
算部を用いてφ=(p1−1)×(p2−1)×・・・×
(pl−1)を計算し、上記で計算されたφと、記憶部
から取り出したeを用いてed≡1modφを満たすdを
計算し、秘密鍵p1,p2,・・・,plおよびdを返却す
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、主に暗号技術で用
いられる暗号鍵の保管処理に関するものである。
【0002】
【従来の技術】ネットワーク上では通信相手が物理的に
見えないため、通信相手が誰であるかを特定する相手認
証が必要となる。その実現手段の一つとして、暗号技術
を用いたディジタル署名技術が有効である。ディジタル
署名は、公開鍵暗号によって実現される。署名生成用鍵
と署名検証用鍵とが異なっており、通常は署名検証用鍵
を一般に公開し、署名生成用鍵は当該所有者が秘密に保
持する。公開される署名検証用鍵から署名生成用鍵を求
めることは、鍵の長さをある程度大きくすれば、現在の
数学的理論および計算機の計算能力をもってしても現実
的な時間には完了しないものと信じられている。
【0003】上記性質をもつ公開鍵暗号の具体的な実現
にはいくつかの方法があるが、最も有名な方法としてR
SA方式がある。RSA方式ははじめての公開鍵暗号と
して1977年に発表されたもので、素因数分解の困難
性を安全性の根拠にしている(岡本、山本、「現代暗
号」、産業図書、P.110、1997を参照)。素因数分解の
困難性とは、素数pとqがあった場合、乗算n=pqを
行うことは簡単であるが、逆にnからpとqを求めるこ
とは難しいことをいう。nの桁数が大きくなるにつれて
必要な計算時間は増大し、例えば、64桁と65桁の素
数の乗算結果である129桁の数を素因数分解するため
に、1994年に600台の計算機を8カ月用いたこと
が報告されている(岡本、太田「暗号・ゼロ知識証明・
数論」、共立出版、p.150、1995を参照)。他には離散
対数問題の困難性に基づく公開鍵暗号も提案されている
が、扱いが簡単であることから素因数分解の困難性に基
づく公開鍵暗号がもっとも利用されており、その中でも
RSA方式がもっとも多く利用されている。
【0004】以後、署名生成用鍵を秘密鍵といい、署名
検証用鍵を公開鍵という。RSA方式では、素数pとq
を用意し、n=pqを計算する。またφ=(p−1)
(q−1)を計算して、ed≡1 modφを満たす正の整
数e,dを計算する。公開鍵はn,eであり、秘密鍵は
p,q,dを含んだもの、あるいはn,dを含んだもので
ある。秘密鍵は、所有者が秘密に保持している。署名生
成を行う場合、署名対象メッセージMに対して、秘密鍵
n,dを用いてS=Md modnを計算する。秘密鍵として
p,q,dを保持している場合、n=pqを計算してS=
d modnを計算してもよいし、また中国剰余定理を用
いて、Md modp, Md modqからMd modnを構成して
もよい。このSが署名であり、MおよびSを受信相手に
送信する。受信者は、公開鍵n,eを用いてSemodnを
計算する。これがMと等しければ署名Sが正しいことを
知る。もし等しくなければ、SはMの署名ではない。
【0005】この署名技術を用いて、相手認証を実現す
ることができる。通信相手がZであることを確認する場
合、まず乱数Rを生成して、通信相手にRを送信すると
同時に、このRに対してディジタル署名を生成するよう
に要求する。通信相手が結果Tを返してきたら、Zの公
開鍵を用いてTを検証する。もしも検証が正しければ、
通信相手はZの秘密鍵を持っていることがわかり、それ
は通信相手がZであることを意味している(Bruce Schne
ier,「Applied Cryptography」,2nd edition,John-Wile
y and Sons, p.52, 1996を参照)。変数aに対して、そ
のビット長を|a|で表す。通常、「tビットRSA方
式」と呼ばれる時には、|n|=tである。また、|p|と
|q|はtの半分程度である場合がほとんどである。これ
は、nの素因数分解を困難にするためである。e,dは
ed≡1modφを満たす正の整数であるが、式1つに対
して変数が2つあるため、e,dのどちらか一方の値を
適当に定め、その後にもう一方の値を決定することにな
る。eは公開鍵であることから、特に長さがtであるこ
とを必要としない。現実には、tに比べて非常に小さい
ビット数を選択している。このeに対して、ed≡1mo
dφを満たす正の整数dはφ−1以下で一意に決定でき
る。通常、|d|はt付近になることが多い。さて、公開
鍵暗号においては、前述の通り、秘密鍵は所有者のみが
保持していいることを前提に正しく利用できる。したが
って、秘密鍵は他人に知られないように注意深く保管さ
れなければならない。
【0006】ICカードは、そのような保管に用いられ
る媒体として広く利用されつつある。コンピュータのハ
ードディスクなどと異なり、他人がICカード内部の内
容を読み取ることが困難であるためである。これによ
り、システム全体の安全性を高めており、今後多くの利
用が予想される。ところでこのような方法で秘密鍵を保
管する場合、次のような問題点があった。すなわち、I
Cカードには記憶容量の点で、コンピュータ機器と比べ
て著しく制限がある。また素因数分解アルゴリズムの発
展やコンピュータパワーの増大にともない、安全とされ
る鍵長は増大している。そのため、ICカードの中の記
憶部に秘密鍵が収まらない場合が生じる。
【0007】
【発明が解決しようとする課題】本発明はこのような背
景のもとになされたものであり、RSA方式の秘密鍵の
うち一部のみを記憶することにより記憶容量を減らし、
秘密鍵が必要な際に足りない秘密鍵部分を再度計算する
ものである。再計算部分の処理量は、剰余乗算十数回分
に相当し、署名生成に要する時間の数十分の一から数百
分の一程度であり、処理全体の時間にほとんど影響を与
えない。
【0008】
【課題を解決するための手段】上記課題を解決するため
に、本発明は、lを2以上の正の整数とし、p1,p2,・
・・,plを素数とし、φ=(p1−1)×(p2−1)×
・・・×(pl−1)とし、eおよびdを、ed≡1mod
φを満たす正の整数とする。秘密鍵は、p1,p2,・・
・,pl,dであり、公開鍵は、n=p1×p2×・・・×
l,eである。記憶部には、p1,p2,・・・,pl,eを
保存しておく。鍵の取り出し要求があった場合、まずp
1,p2,・・・,plを記憶部から取り出し、次にφ=(p
1−1)×(p2−1)×・・・×(pl−1)を計算す
る。続いて記憶部から取り出したeを用いて、ed≡1
modφを満たすdを計算する。これで秘密鍵は揃ったの
で、p1,p2,・・・,plおよびdを通信部を通して外部
へ返却する。通常、RSA方式を用いる場合、前述の通
り|e|<|d|であることがほとんどのため、記憶領域が
|d|−|e|ビット節約される。
【0009】
【発明の実施の形態】以下、図を用いて本発明に基づく
実施例を説明する。図1は、本発明の実施例を示す暗号
鍵保管装置の構成図である。通信部は他装置との情報送
受信に用いられ、暗号鍵取り出し要求を受け付けたり、
結果である暗号鍵を出力する箇所である。記憶部は、暗
号鍵の保管を行なう。算術演算部は多倍長整数の乗算や
剰余乗算などを行い足らない秘密鍵部分を計算する箇所
である。制御部はこれら各部を制御する箇所である。
【0010】図2は、暗号鍵保管装置の暗号鍵取り出し
要求に対する手順を示すフローチャートである。(S0)記
憶部には、p1,p2,・・・,pl,eを保存しておく。(S
1)通信部は鍵の取り出し要求を受け付けた場合、まず(S
2)p1,p2,・・・,plを記憶部から取り出し、算術演算
部はφ=(p1−1)×(p2−1)×・・・×(pl
1)を計算する。続いて(S3)記憶部から取り出したeを
用いて、算術演算部はed≡1modφを満たすdを計算
する。(S4)これで秘密鍵は揃ったので、p1,p2,・・
・,plおよびdを通信部を通して外部へ返却する。
【0011】具体的な例として、1024ビットRSA
方式の場合を考える。素数を2つ使用するものとし、l
=2とする。2つの素数p1,p2を生成し、n=p12
とすれば|n|=1024である。通常、|p1|,|p2|は
ほとんど同じ値を取るように選ぶ。以下、|p1|=|p2|
=512であるとする。φ=(p1−1)(p2−1)を
計算し、正の整数eとして、(e,φ)=1を満足す
る、すなわちeとφが互いに素であるものを選択する。
このeに関する条件は、ed≡1modφとなる正の整数
dが存在するためのものである(高木、「初等整数論講
義」、第二版、共立出版、p.29、1971を参照。)。eの
値は公開されているものであるから、とくに1024ビ
ットの長さを必要としない。署名検証時においては、e
は冪乗計算の指数に使われるものであり、冪乗計算は指
数のビット長が大きければ大きいほど時間がかかり、ま
た、指数を二進数展開したときに1を多く含めば含むほ
ど時間がかかる。したがって、eとして(e,φ)=1
を満たし、なおかつビットの長さが短く、さらに二進数
展開したときに0を多く含むように選択することで、署
名検証にかかる処理時間を短くすることができる。実際
の利用ではeの値として65537が選ばれることがほ
とんどである。この値は17ビットであって1024ビ
ットに比べて格段に小さく、かつ216+1であることか
ら、二進数展開したときに1はほとんど含まない。本例
では(65537,φ)=1を満足するものとし、eと
して65537を選択するもとのする。得られたp1,p
2とeを、記憶部へ格納する。ここで必要な記憶容量
は、|p1|=|p2|=512と|e|=17であるから、5
12+512+17=1041ビットですむことに注意
する。
【0012】(例1)鍵の取り出し要求があった場合、
記憶部からp1,p2を読み出してくる。読み出した後、
φ=(p1−1)(p2−1)を計算し、続いてeを読み
出してed≡1modφを満たす正の整数dを計算する。
この計算は、|φ|ビット乗余演算十数回程度の処理量で
あって、ほとんど無視できる(計算方法については、高
木、「初等整数論講義」、第二版、共立出版、p.28、19
71を参照。)。最後に、p1,p2およびdを要求に対し
て返却する。RSA方式での署名生成には、p1,p2,d
があれば署名生成が行えるので、p1,p2,dを返却する
ことで問題はない。ここで、秘密鍵p1,p2,dをそのま
ま記憶していた場合、dは通常1024ビット相当の大
きさを持つので、|p1|+|p2|+|d|は、おおよそ20
48ビット程度になり、先に見積もった1041ビット
に比べて2倍弱大きいことになる。
【0013】(例2)やはり1024ビットRSA方式
の場合を考える。素数を2つ使用する場合とし、l=2
とする。前述の例と同様に2つの素数p1,p2を生成
し、eとして65537を選択し、p1,p2,eを記憶す
る。鍵の取り出し要求があった場合、記憶部からp1,p
2とeを読み出し、前述の例と同様にdを計算する。こ
こで、さらにn=p1,p2を計算し、nとdを要求に対
して返却する。RSA方式での署名生成にはn,dがあ
れば署名生成が行なえるのでn,dを返却することで問
題はない。RSAの鍵表現方法としては、PKCS(Pub
lic-key cryptographystandards)#1方式が事実上の標
準であるが、そのPKCS#1ではRSA秘密鍵として
nも含まれているため、他の装置がnを必要とする場合
では、このようにnを返却に含める。ここで必要な記憶
容量は、|p1|=|p2|=512と|e|=17であるか
ら、512+512+17=1041ビットですむこと
に注意する。
【0014】(例3)やはり1024ビットRSA方式
の場合を考える。素数を2つ使用する場合とし、l=2
とする。前述の例と同様に2つの素数p1,p2を生成
し、eとして65537を選択し、p1,p2,n(=p1
2),eを記憶する。前述の例に比べ、記憶容量は|n|
=1024ビット増加するが、nの再計算が必要無くな
るため、高速に処理できる。
【0015】(例4)やはり1024ビットRSA方式
の場合を考える。素数を2つ使用する場合とし、l=2
とする。ここでは、eをシステム固有の値と仮定し、本
例では65537とする。前述の例と同様に二つの素数
1,p2を生成するが、φ=(p1−1)(p2−1)を
計算して、このφがeと互いに素であるように生成す
る。このようにp1,p2を生成することにより、ed≡
1modφを満たす正の整数dが計算できる。得られた
1,p2を記憶部へ格納する。ここで必要な記憶容量
は、|p1|=|p2|=512であるから、512+512
=1024ビットですむことに注意する。鍵の取り出し
要求があった場合、記憶部からp1,p2を読み出してく
る。読み出した後、φ=(p1−1)(p2−1)を計算
し、システム固有の値e=65537を用いてed≡1
modφを満たす正の整数dを計算する。最後に、p1,p2
およびdを要求に対して返却する。
【0016】(例5)やはり1024ビットRSA方式
の場合を考える。素数を2つ使用する場合とし、l=2
とする。eはシステム固有の65537とし、前述の例
と同様にdが存在するように2つの素数p1,p2を生成
し、p1,p2を記憶する。鍵の取り出し要求があった場
合、記憶部からp1,p2を読み出し、前述の例と同様に
dを計算する。ここで、さらにn=p12を計算し、n
とdを要求に対して返却する。RSA方式での署名生成
にはn,dがあれば署名生成が行えるので、n,dを返却
することで問題はない。RSAの鍵表現方法としては、
PKCS#1方式が事実上の標準であるが、そのPKC
S#1ではRSA秘密鍵としてnも含まれているため、
他の装置がnを必要とする場合では、このようにnを返
却に含める。ここで必要な記憶容量は、|p1|=|p2|=
512と|e|=17であるから、512+512=10
24ビットですむことに注意する。
【0017】(例6)やはり1024ビットRSA方式
の場合を考える。素数を2つ使用する場合とし、l=2
とする。eはシステム固有の値である65537とし、
前述の例と同様にdが存在するように2つの素数p1,p
2を生成し、p1,p2,n(=p12)を記憶する。前述
の例と比べ、記憶容量は、|n|=1024ビット増加す
るが、nの再計算が必要無くなるため、高速に処理でき
る。
【0018】
【発明の効果】以上のように、本発明は、主に暗号技術
で用いられる暗号鍵の保管処理に関するものであり、暗
号鍵取り出しの際に必要な情報を再計算させることによ
り、ICカード等の使用記憶領域を削減したものであ
る。
【図面の簡単な説明】
【図1】本発明の暗号鍵保管装置の構成図。
【図2】本発明の暗号鍵保管装置の暗号鍵取り出し要求
に対する手順を示すフローチャート。

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】記憶部、算術演算部、通信部、これら各部
    を制御する制御部からなる暗号鍵保管装置であって、 lを2以上の正の整数とし、p1,p2,・・・,plを素数
    とし、φ=(p1−1)×(p2−1)×・・・×(pl
    −1)とし、e,dをed≡1modφを満たす正の整数と
    し、Σi=1 l|pi|+|e|ビットの長さを持つ記憶領域を
    記憶部に用意する場合、Σi=1 l|pi|+|e|ビットの記
    憶領域にp1,p2,・・・,pl,eをそれぞれ記憶する手
    段と、 外部から通信部を通して暗号鍵取り出し要求を受け付け
    た場合、p1,p2,・・・,plを記憶部から取り出し、算
    術演算部を用いてφ=(p1−1)×(p2−1)×・・
    ・×(pl−1)を計算する手段と、 上記で計算されたφと、記憶部から取り出したeを用い
    てed≡1modφを満たすdを計算する手段と、 秘密鍵p1,p2,・・・,plおよびdを通信部を通して外
    部へ返却する手段と、を備えたことを特徴とする暗号鍵
    保管装置。
  2. 【請求項2】請求項1に記載の暗号鍵保管装置におい
    て、 算術演算部を用いてn=p1×p2×・・・×plを計算
    してdと共にnを通信部を通して外部へ返却する手段を
    備えたことを特徴とする暗号鍵保管装置。
  3. 【請求項3】請求項2に記載の暗号鍵保管装置におい
    て、 Σi=1 l|pi|+|n|+|e|ビットの長さを持つ記憶領域
    を記憶部に用意する場合、Σi=1 l|pi|+|n|+|e|ビ
    ットの記憶領域にp1,p2,・・・,pl,n,eをそれぞれ
    記憶する手段を備えたことを特徴とする暗号鍵保管装
    置。
  4. 【請求項4】記憶部、算術演算部、通信部、これら各部
    を制御する制御部からなる暗号鍵保管装置であって、 lを2以上の正の整数とし、eを3以上の奇数とし、p
    1,p2,・・・,plを、φ=(p1−1)×(p2−1)×
    ・・・×(pl−1)がeと互いに素となるような素数
    とし、dを、ed≡1modφを満たす正の整数とし、Σ
    i=1 l|pi|ビットの長さを持つ記憶領域を記憶部に用意
    する場合、 Σi=1 l|pi|ビットの記憶領域にp1,p2,・
    ・・,plをそれぞれ記憶する手段と、 外部から通信部を通して暗号鍵取り出し要求を受け付け
    た場合、p1,p2,・・・,plを記憶部から取り出し、算
    術演算部を用いてφ=(p1−1)×(p2−1)×・・
    ・×(pl−1)を計算する手段と、 上記で計算されたφを用いてed≡1modφを満たすd
    を計算する手段と、 秘密鍵p1,p2,・・・,plおよびdを通信部を通して外
    部へ返却する手段と、を備えたことを特徴とする暗号鍵
    保管装置。
  5. 【請求項5】請求項4に記載の暗号鍵保管装置におい
    て、 算術演算部を用いてn=p1×p2×・・・×plを計算
    してdと共にnを通信部を通して外部へ返却する手段を
    備えたことを特徴とする暗号鍵保管装置。
  6. 【請求項6】請求項5に記載の暗号鍵保管装置におい
    て、 Σi=1 l|pi|+|n|ビットの長さを持つ記憶領域を記憶
    部に用意する場合、Σi=1 l|pi|+|n|ビットの記憶領
    域にp1,p2,・・・,pl,nをそれぞれ記憶する手段を
    備えたことを特徴とする暗号鍵保管装置。
JP2002113261A 2002-04-16 2002-04-16 暗号鍵保管装置 Pending JP2003309551A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002113261A JP2003309551A (ja) 2002-04-16 2002-04-16 暗号鍵保管装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002113261A JP2003309551A (ja) 2002-04-16 2002-04-16 暗号鍵保管装置

Publications (1)

Publication Number Publication Date
JP2003309551A true JP2003309551A (ja) 2003-10-31

Family

ID=29395493

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002113261A Pending JP2003309551A (ja) 2002-04-16 2002-04-16 暗号鍵保管装置

Country Status (1)

Country Link
JP (1) JP2003309551A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007124055A (ja) * 2005-10-25 2007-05-17 Nippon Hoso Kyokai <Nhk> コンテンツ配信装置、ライセンス発行装置、課金装置およびコンテンツ視聴端末、ならびに、ライセンス要求生成プログラム、ライセンス生成プログラムおよび課金プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007124055A (ja) * 2005-10-25 2007-05-17 Nippon Hoso Kyokai <Nhk> コンテンツ配信装置、ライセンス発行装置、課金装置およびコンテンツ視聴端末、ならびに、ライセンス要求生成プログラム、ライセンス生成プログラムおよび課金プログラム

Similar Documents

Publication Publication Date Title
CN108965258B (zh) 一种基于全同态加密的云环境数据完整性验证方法
US5146500A (en) Public key cryptographic system using elliptic curves over rings
CA2228185C (en) Verification protocol
JP4575283B2 (ja) 暗号装置、復号装置、プログラム及び方法
US7472276B2 (en) Data card verification system
RU2376651C2 (ru) Использование изогений для разработки криптосистем
JP4137385B2 (ja) 公開鍵および秘密鍵による暗号化方法
CA2262549C (en) Accelerating public-key cryptography by precomputing randomly generated pairs
US7469048B2 (en) Methods for point compression for jacobians of hyperelliptic curves
JP3158118B2 (ja) 認証情報の認証確認用システム
US7908641B2 (en) Modular exponentiation with randomized exponent
US7912216B2 (en) Elliptic curve cryptosystem optimization using two phase key generation
KR20000071078A (ko) 유한 필드상의 이산 대수 암호시스템의 원분 다항식 구조
CN109039640B (zh) 一种基于rsa密码算法的加解密硬件系统及方法
US20060251247A1 (en) Encryption apparatus, decryption apparatus, key generation apparatus, program and method therefor
WO1998007253A9 (en) Accelerating public-key cryptography by precomputing randomly generated pairs
JP4809310B2 (ja) エンティティの真正性又はメッセージの完全性を証明するための方法、システム、デバイス
CN111325535A (zh) 基于椭圆曲线偏移的区块链私钥管理方法、系统及存储介质
JP4772965B2 (ja) エンティティの真正性および/またはメッセージの完全性を証明するための方法
US20090138718A1 (en) Method of generating a signature with &#34;tight&#34; security proof, associated verification method and signature scheme based on the diffie-hellman model
JP2003309551A (ja) 暗号鍵保管装置
KR102019369B1 (ko) 단일파형공격을 차단하기 위한 타원곡선 암호화 장치 및 방법
US20090044017A1 (en) Signature and verifying method, and signature and verifying device
JP3434251B2 (ja) メッセージ回復型署名システム及びそのプログラム記録媒体
Zhu Survey of computational assumptions used in cryptography broken or not by Shor's algorithm

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050124

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20061004

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070619

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20071016