JP2005165290A - Rsa公開鍵生成装置、rsa復号装置及びrsa署名装置 - Google Patents

Rsa公開鍵生成装置、rsa復号装置及びrsa署名装置 Download PDF

Info

Publication number
JP2005165290A
JP2005165290A JP2004321241A JP2004321241A JP2005165290A JP 2005165290 A JP2005165290 A JP 2005165290A JP 2004321241 A JP2004321241 A JP 2004321241A JP 2004321241 A JP2004321241 A JP 2004321241A JP 2005165290 A JP2005165290 A JP 2005165290A
Authority
JP
Japan
Prior art keywords
rsa
public key
signature
prime number
text
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.)
Withdrawn
Application number
JP2004321241A
Other languages
English (en)
Other versions
JP2005165290A5 (ja
Inventor
Takatoshi Ono
貴敏 小野
Natsume Matsuzaki
なつめ 松崎
Yuichi Fuda
裕一 布田
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2004321241A priority Critical patent/JP2005165290A/ja
Publication of JP2005165290A publication Critical patent/JP2005165290A/ja
Publication of JP2005165290A5 publication Critical patent/JP2005165290A5/ja
Withdrawn legal-status Critical Current

Links

Images

Abstract

【課題】 ICカード等に使用される故障利用攻撃を成立させないRSA復号装置を提供する。
【解決手段】 このRSA復号装置は、外部から公開鍵を取得することなく、またデータ検証に用いる公開鍵の演算を高速に行う。RSA復号装置は、dp =d mod (p−1)を計算する剰余演算部412、及びp−1を法とした剰余体におけるdp の逆元を求める逆数演算部414を備え、dp の逆元を公開鍵として復号文の検証を行う。公開鍵をdの逆元として求めるのに比べ逆元演算のビット数が減少する分、高速な演算が可能となる。
【選択図】 図10

Description

本発明は、公開鍵暗号アルゴリズムの一つであるRSA暗号技術を用いた情報セキュリティ技術に関する。
従来より情報の秘匿、認証等を実現する手段として公開鍵暗号方式が知られている。
公開鍵暗号方式では、自分のみが保持する秘密鍵と、前記秘密鍵に対応し公開される公開鍵とのペアが生成され、前記公開鍵を用いて暗号化が行われ、前記秘密鍵を用いて復号が行われる。例えば、メッセージの暗号化通信においては、メッセージ送信者がメッセージ受信者の公開鍵を用いてメッセージを暗号化し、秘密鍵の保持者であるメッセージ受信者のみが、メッセージ受信者の秘密鍵を用いて、その暗号化メッセージを復号できる。
公開鍵暗号法は、処理演算量が多いという欠点はあるものの、秘密鍵を複数の利用者により共有する必要がないので、高セキュリティを必要とする場合によく用いられる。一般に良く知られている公開鍵暗号法としては、RSA暗号と楕円曲線暗号が存在する。
上述したような公開鍵暗号方式を用いることにより、第三者に知られないように、秘密情報を相手に送信することができるものの、特許文献1によると、例えば、ICカードが暗号処理を行なっているときに、不正な第三者が、異常クロック、異常電圧、異常電磁波、異常温度等を用いて、故意にエラーを引き起こし、暗号で用いている鍵や秘密情報を取り出せる可能性があり、脅威となっている。このような攻撃は、故障利用攻撃(DFA攻撃ともいう)と呼ばれている。
このような故障利用攻撃に対抗するために、特許文献2によると、ディジタル署名の作成を行う冪乗剰余計算を法nの素因数を用いて中国剰余定理(Chinese Remainder Theorem 、略称は、CRT)により高速で処理し、中国剰余定理による計算過程において生成されるデータとともに、該データについてのエラー検出符号を同時に計算して記憶しておき、ディジタル署名の作成の際に、前記データのエラー検出符号を再度計算し、記憶しておいたエラー検出符号と照合してデータの誤りを検出し、誤りを検出した時にはエラーステータスを返す技術を開示している。こうして、中国剰余定理を利用して高速に署名作成処理をするICカードの故障利用攻撃に対する安全性を高めている。
特開2002−261751号公報 特開平11−8616号公報
上述したように、従来技術によると、中国剰余定理を利用して署名作成処理をするICカードの故障利用攻撃に対する安全性を高めているものの、さらに、高速に情報セキュリティ処理を行うことが要望されている。
上記の要望に応えるために、本発明は、従来技術と比較して高速に情報セキュリティ演算を行うことができるRSA公開鍵生成装置、RSA復号装置、RSA署名装置、方法及びプログラムを提供することを目的とする。
上記の目的を達成するために、本発明は、RSA暗号方式の秘密鍵dから新たに公開鍵e’を生成するRSA公開鍵生成装置であって、素数qは、素数pと異なり、公開鍵eは、p−1とq−1との最小公倍数lcmと互いに素で、p−1>eを満たし、前記秘密鍵dは、lcmを法とする剰余体において公開鍵eの逆元であり、前記RSA公開鍵生成装置は、RSA暗号の秘密鍵d及び素数pを取得する取得手段と、取得された秘密鍵dと素数pを用い、素数p−1を法とする前記秘密鍵dの剰余dp を算出する剰余演算手段と、算出された前記剰余dp 及び取得された前記素数pを用い、素数p−1を法とする剰余体における前記剰余dp の逆元を算出し、算出した逆元を新たな公開鍵e' とする逆元演算手段とを備えることを特徴とする。
この構成によると、公開鍵を求めるために、逆元の演算の対象となる剰余dp は、秘密鍵dのおよそ半分のビット数の値であるので、逆元演算手段により、逆元演算にかかる時間が従来より大幅に短縮されるという効果がある。
また、本発明は、RSA暗号方式により生成された暗号文を復号するRSA復号装置であって、前記RSA公開鍵生成装置から、公開鍵e' を取得する公開鍵取得手段と、前記公開鍵eを用いて、RSA暗号方式により平文MがRSA暗号化されて生成された暗号文Cを取得する暗号文取得手段と、秘密鍵dを用いて、取得した前記暗号文CをRSA復号して復号文Dを生成するRSA復号手段と、取得した公開鍵e' を用いて、生成された復号文DをRSA暗号化して再暗号文C’を生成する再暗号化手段と、取得した暗号文Cと生成した再暗号文C’とを比較し、一致するか否かを判断する比較手段と、一致すると判断される場合に、生成された前記復号文Dを出力する出力手段とを備える。
この構成によると、比較手段により一致すると判断される場合に、生成された復号文を出力するので、故障利用攻撃に対抗することができる。
ここで、前記RSA復号手段は、請求項1のRSA公開鍵生成装置から、剰余dp を取得し、取得した剰余dp を用いて、中国剰余定理により、取得した前記暗号文CをRSA復号して復号文Dを生成するとしてもよい。
この構成によると、公開鍵を求めるために、逆元の演算の対象となる剰余dp をそのまま中国剰余定理アルゴリズムを用いるRSA復号のプロセスの中で用いることができるので、RSA復号等にかかる時間を短縮することができる。
また、本発明は、RSA署名方式により平文に署名を施して署名文を生成するRSA署名装置であって、前記RSA公開鍵生成装置から、公開鍵e' を取得する公開鍵取得手段と、秘密鍵dを用いて、平文MにRSA署名を施して署名文Sを生成する署名生成手段と、取得した公開鍵e’を用いて、署名文Sに、RSA署名回復を施して、復号文Dを生成する回復手段と、平文Mと、生成した復号文Dとを比較し、一致するか否かを判断する比較手段と、一致すると判断される場合に、生成された前記署名文Sを出力する出力手段とを備える。
この構成によると、比較手段により一致すると判断される場合に、生成された署名文を出力するので、故障利用攻撃に対抗することができる。
ここで、前記署名生成手段は、請求項1のRSA公開鍵生成装置から、剰余dp を取得し、取得した剰余dp を用いて、中国剰余定理により、前記平文MにRSA署名を施して署名文Sを生成するとしてもよい。
この構成によると、公開鍵を求めるために、逆元の演算の対象となる剰余dp をそのまま中国剰余定理アルゴリズムを用いるRSA署名のプロセスの中で用いることができるので、RSA署名にかかる時間を短縮することができる。
1.第1の実施の形態
本発明に係る1の実施の形態としての秘密通信システム10について説明する。
1.1 秘密通信システム10の構成
秘密通信システム10は、図1に示すように、レジスタ装置100とICカード300とから構成されている。
レジスタ装置100は、小売店に設置されており、小売店の販売担当者により操作され、利用者が購入した商品の購入額に応じて、特典であるポイントを発行する。レジスタ装置100は、発行したポイントを暗号化して暗号化ポイントを生成し、生成した暗号化ポイントをレジスタ装置100に接続されているカードリーダ200を介して、利用者のICカード300へ出力する。
ICカード300は、暗号化ポイントを受け取り、受け取った暗号化ポイントを復号して復号ポイントを生成し、生成した復号ポイントを記憶する。
利用者は、ICカード300に記憶された復号ポイントを次に商品を購入する際に、代金の一部として用いることができる。
1.2 ICカード300の公開鍵e及び秘密鍵dの生成
以下に示すようにして、鍵生成装置(図示していない)は、ICカード300の公開鍵e及び秘密鍵dを生成する。
(a)任意の相異なる2個の大きな素数p及び素数qを選び、その積nを計算する。 n=p×q
(b)(p−1)と(q−1)の最小公倍数Lを計算し、最小公倍数Lと互いに素で最小公倍数Lより小さい任意の整数e(公開鍵)を選ぶ。
L=LCM((p−1)、(q−1))
GCD(e、L)=1
1<e<L
ここで、LCM(X,Y)は、数Xと数Yとの最小公倍数を示し、GCD(X,Y)は、数Xと数Yとの最大公倍数を示す。LCMは、Least Common Multipleの略称であり、GCDは、Greatest Common Divisorの略称である。
(c)(b)で求めた公開鍵eと最小公倍数Lを基に、次の式を解き、秘密鍵dを求める。
ed=1 (mod L)
鍵生成装置は、素数p、素数q及び公開鍵eを予め、レジスタ装置100へ通知しておく。また、素数p、素数q及び秘密鍵dを予め、ICカード300へ通知しておく。
レジスタ装置100の公開鍵PK及び秘密鍵SKについても同様にして鍵生成装置により生成され、秘密鍵SKは、予め、レジスタ装置100へ通知され、公開鍵PKは、予め、ICカード300へ通知される。
1.3 レジスタ装置100の構成
レジスタ装置100は、図2に示すように、表示部101、表示部102、印字部103、入力部104、保管庫105、情報記憶部106、制御部107、認証部108、暗復号部109、入出力部110及び鍵記憶部111から構成されている。また、レジスタ装置100の入出力部110には、カードリーダ200が接続されている。
レジスタ装置100は、利用者から支払われる購入代金の決済、保管などを行う金銭レジスタ装置であり、また、利用者が購入した商品の購入額に応じて、特典であるポイントを発行し、発行したポイントを暗号化して暗号化ポイントを生成し、生成した暗号化ポイントを、カードリーダ200を介して、利用者のICカード300へ出力する。
レジスタ装置100は、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。前記ROMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、レジスタ装置100は、その一部の機能を達成する。
(1)鍵記憶部111
鍵記憶部111は、外部からアクセスができないように設けられており、図2に示すように、予め、ICカード300の公開鍵e、素数p、素数q及びレジスタ装置100の秘密鍵SKを記憶している。
公開鍵eは、RSA公開鍵暗号方式の鍵生成アルゴリズムにより生成されたICカード300の公開鍵であり、1024ビット長のデータ領域に格納されている。
素数p及び素数qは、任意の異なる大きな素数であり、それぞれ、512ビット長のデータ領域に格納されている。ここで、一例として、
p=
d32737e7 267ffe13 41b2d5c0 d150a81b 586fb313 2bed2f8d 5262864a 9cb9f30a
f38be448 598d413a 172efb80 2c21acf1 c11c520c 2f26a471 dcad212e ac7ca39d
であり、
q=
cc8853d1 d54da630 fac004f4 71f281c7 b8982d82 24a490ed beb33d3e 3d5cc93c
4765703d 1dd79164 2f1f116a 0dd852be 2419b2af 72bfe9a0 30e860b0 288b5d77
である。これらの表記は、16進数である。見やすいように、8桁ずつに区切って表示している。
秘密鍵SKは、RSA公開鍵暗号方式の鍵生成アルゴリズムにより生成されたレジスタ装置100の秘密鍵であり、1024ビット長のデータ領域に格納されている。
(2)情報記憶部106
情報記憶部106は、利用者を識別する利用者識別子、利用者の購入金額、購入日付、発行ポイントなど、利用者による商品の購入に関する情報を記憶するための領域を備えている。
(3)認証部108
認証部108は、カードリーダ200にICカード300が装着されたときに、入出力部110及びカードリーダ200を介して、以下に示すようにして、ICカード300との間で相互に機器認証を行う。ここで、機器認証は、チャレンジ−レスポンス型の認証である。
(レジスタ装置100によるICカード300の認証)
認証部108は、乱数R1 を生成し、生成した乱数R1 を入出力部110及びカードリーダ200を介して、ICカード300へ出力する。
また、認証部108は、ICカード300から、カードリーダ200及び入出力部110を介して、署名データS1 を受け取り、鍵記憶部111からICカード300の公開鍵e、素数p及び素数qを読み出す。次に、生成した乱数R1 にハッシュ関数Hashを施してハッシュ値H2 を生成する。
2 =Hash(R1
ここで、Hash(R1 )は、乱数R1 にハッシュ関数Hashを施して得られた値を示す。また、ハッシュ関数Hashの一例は、SHA−1である。
次に、認証部108は、n=p×qを計算し、S1 e (mod n)を計算し、生成したハッシュ値H2 と計算して得られた値S1 e (mod n)とを比較し、一致するなら、認証成功とみなし、一致しないなら認証失敗とみなす。
認証部108は、認証が成功した場合に、機器認証の成功の旨を示す情報を制御部107へ通知する。また、機器認証が失敗した場合に、機器認証の失敗の旨を示す情報を制御部107へ通知する。
機器認証が失敗した場合には、それ以降、レジスタ装置100は、当該ICカード300との間で情報の送受信は、行わない。
(ICカード300によるレジスタ装置100の認証)
認証部108は、ICカード300から、カードリーダ200及び入出力部110を介して、乱数R2 を受け取り、鍵記憶部111から秘密鍵SK、素数p及び素数qを読み出し、受け取った乱数R2 にハッシュ関数Hashを施してハッシュ値H3 を計算する。
3 =Hash(R2
次に、認証部108は、n=p×qを計算し、署名データS2 =(H3 SK (mod n)を計算し、計算して得られた署名データS2 を入出力部110及びカードリーダ200を介して、ICカード300へ出力する。
(4)入出力部110及びカードリーダ200
入出力部110は、制御部107の制御の元に、制御部107とカードリーダ200との間で、又は認証部108の制御の元に認証部108とカードリーダ200との間で、双方向に情報の送受信を行う。
カードリーダ200は、ICカード300と入出力部110との間で情報の送受信を行う。
(5)暗復号部109
(セッション鍵の出力)
暗復号部109は、乱数を生成し、生成した乱数をセッション鍵Mとする。次に、鍵記憶部111から、素数p、素数q及び公開鍵eを読み出し、整数n=p×qを計算し、セッション鍵M、整数n及び公開鍵eを用いて、暗号化セッション鍵C1 を次の式により算出する。
暗号化セッション鍵C1 =Me (mod n)
次に、算出して得られた暗号化セッション鍵C1 を入出力部110及びカードリーダ200を介して、ICカード300へ出力する。
(ポイントの出力)
暗復号部109は、制御部107からポイントPtを受け取り、生成したセッション鍵Mを鍵として用いて、受け取ったポイントPtに暗号化アルゴリズムE1 を施して、暗号化ポイントEtを生成する。
暗号化ポイントEt=E1 (セッション鍵M、ポイントPt)
ここで、E(A、B)は、鍵Aを用いて、平文Bに暗号化アルゴリズムEを施して得られた暗号文を示す。また、暗号化アルゴリズムE1 は、一例として、共通鍵暗号方式のDES(Data Encryption Standard)によるものである。
次に、暗復号部109は、暗号化ポイントEtを、入出力部110及びカードリーダ200を介して、ICカード300へ出力する。
(6)制御部107
制御部107は、小売店の販売担当者の操作により、利用者が購入した商品の購入額に応じて、特典であるポイントPtを生成し、生成したポイントPtを暗復号部109へ出力する。
また、制御部107は、レジスタ装置100を構成する他の構成要素を制御する。
(7)入力部104、表示部101、表示部102、印字部103及び保管庫105
入力部104は、レジスタ装置100の操作者から入力情報を受け付け、受け付けた入力情報を制御部107へ出力する。また、表示部101及び表示部102は、制御部107から表示すべき情報を受け取り、受け取った情報を表示する。
印字部103は、制御部107の制御により、各種情報を印刷する。
保管庫105は、紙幣や貨幣を保管する。
1.4 ICカード300の構成
ICカード300は、長さ約85mm、幅54mm、厚さ0.76mmの薄板状の樹脂から形成されており、外表面に接触端子を備え、内部にシステムLSI(大規模集積回路、Large Scale Integrated circuit)320が封入されている。
ICカード300は、図3に示すように、入出力部301、認証部302、復号部303、高速公開鍵演算部304、制御部305、再暗号化部306、情報記憶部307、復号部308及び鍵記憶部309から構成されており、認証部302、復号部303、高速公開鍵演算部304、制御部305、再暗号化部306、情報記憶部307、復号部308及び鍵記憶部309は、システムLSI320を形成している。
システムLSI320は、上記の複数の構成部を1個のチップ上に集積して製造された長多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、システムLSI320は、その一部の機能を達成する。
(1)鍵記憶部309
鍵記憶部309は、図3に示すように、予め、レジスタ装置100の公開鍵PK、素数p、素数q及びICカード300の秘密鍵dを記憶している。
公開鍵PKは、RSA公開鍵暗号方式の鍵生成アルゴリズムにより生成されたレジスタ装置100の公開鍵であり、1024ビット長のデータ領域に格納されている。
素数p及び素数qについては、上述した通りであり、それぞれ、512ビット長のデータ領域に格納されている。
秘密鍵dは、RSA公開鍵暗号方式の鍵生成アルゴリズムにより生成されたICカード300の秘密鍵であり、1024ビット長のデータ領域に格納されている。
(2)高速公開鍵演算部304
高速公開鍵演算部304は、図3に示すように、秘密鍵取得部311、剰余演算部312、逆数演算部313及び法演算部314から構成されている。
秘密鍵取得部311は、鍵記憶部309から秘密鍵d、素数p及び素数qを読み出し、読み出した秘密鍵d及び素数pを剰余演算部312へ出力し、また、読み出した素数p及び素数qを法演算部314へ出力する。
剰余演算部312は、秘密鍵取得部311から秘密鍵d及び素数pを受け取り、受け取った秘密鍵d及び素数pを用いて、
1 =d (mod p−1)
を算出し、算出して得られた数d1 及び素数pを逆数演算部313へ出力し、また、数d1 を復号部303へ出力する。
逆数演算部313は、剰余演算部312から数d1 及び素数pを受け取り、受け取った数d1 及び素数pを用いて、次式により、公開鍵e’を算出する。
e’=d1 -1 (mod p−1)
次に、逆数演算部313は、算出して得られた公開鍵e’を再暗号化部306及び認証部302へ出力する。
法演算部314は、秘密鍵取得部311から、素数p及び素数qを受け取り、受け取った素数p及び素数qを用いて、整数n=p×qを算出し、算出して得られた整数nを認証部302及び再暗号化部306へ出力する。
(3)認証部302
(レジスタ装置100によるICカード300の認証)
認証部302は、レジスタ装置100から、カードリーダ200及び入出力部301を介して、乱数R1 を受け取り、鍵記憶部309から素数p及び素数q及び秘密鍵dを読み出し、法演算部314から整数nを受け取り、受け取った乱数R1 を用いて、ハッシュ値H1 を次式により算出する。
1 =Hash(R1
次に、認証部302は、次式を順に演算することにより、署名データS1 を算出する。
a=p-1 (mod q)
1 =H1 (mod p)
2 =H1 (mod q)
2 =d (mod q−1)
1 =y1 d1 (mod p)
2 =y2 d2 (mod q)
1 ={a(x2 −x1 )(mod q)}p + x1
次に、計算して得られた署名データs1 を再暗号化部306へ出力し、再暗号化部306から、s1 e'(mod n)を受け取る。
次に、ハッシュ値H1 とs1 e'(mod n)とが一致する否かを判断し、一致しないと判断する場合には、何らかのエラーが発生したものとみなして、認証部302は、エラー発生を示すエラー情報を制御部305へ通知する。これ以降、ICカード300は、その動作を停止する。
一致すると判断する場合には、認証部302は、生成した署名データS1 を入出力部301及びカードリーダ200を介して、レジスタ装置100へ出力する。
(ICカード300によるレジスタ装置100の認証)
認証部302は、乱数R2 を生成し、生成した乱数R2 を、入出力部301及びカードリーダ200を介して、レジスタ装置100へ出力する。
次に、認証部302は、レジスタ装置100から、カードリーダ200及び入出力部301を介して、署名データS2 を受け取り、鍵記憶部309からレジスタ装置100の公開鍵PK、素数p及び素数qを読み出し、整数n=p×qを計算し、生成した乱数R2 を用いて、ハッシュ値H4 を計算する。
4 =Hash(R2
次に、認証部302は、S2 PK (mod n)を計算し、H4 とS2 PK (mod n)とが一致するか否かを判断し、一致するなら、認証成功とみなし、一致しないなら認証失敗とみなす。
認証部302は、認証が成功した場合に、機器認証の成功の旨を示す情報を制御部305へ通知する。また、機器認証が失敗した場合に、機器認証の失敗の旨を示す情報を制御部305へ通知する。
機器認証が失敗した場合には、それ以降、ICカード300は、レジスタ装置100との間で情報の送受信を、行わない。
(4)再暗号化部306
再暗号化部306は、逆数演算部313から公開鍵e’を受け取り、法演算部314から整数nを受け取り、次式を計算する。
1 e'(mod n)
次に、再暗号化部306は、得られた s1 e'(mod n)を認証部302へ出力する。
(5)制御部305
制御部305は、エラー情報、機器認証の成功の旨を示す情報、及び機器認証の失敗の旨を示す情報を受け取る。
制御部305は、認証部302からエラー情報を受け取ると、ICカード300を構成するその他の構成要素に対して、動作の停止を指示する。
制御部305は、認証部302から機器認証の失敗の旨を示す情報を受け取ると、ICカード300を構成するその他の構成要素に対して、動作の停止を指示する。一方、機器認証の成功の旨を示す情報を受け取ると、以降の動作を継続する。
(6)復号部303
復号部303は、レジスタ装置100からカードリーダ200及び入出力部301を介して、暗号化セッション鍵C1 を受け取る。
次に、復号部303は、鍵記憶部309から素数p及び素数qを受け取り、剰余演算部312から数d1 を受け取り、次式を順に演算することにより、復号セッション鍵xを算出する。
a=p-1 (mod q)
1 =C1 (mod p)
2 =C1 (mod q)
2 =d (mod q−1)
1 =y1 d1 (mod p)
2 =y2 d2 (mod q)
x={a(x2 −x1 )(mod q)}p + x1
次に、計算して得られた復号セッション鍵xを復号部308へ出力する。
(7)復号部308
復号部308は、レジスタ装置100から、カードリーダ200及び入出力部301を介して、暗号化ポイントEtを受け取り、復号部303から復号セッション鍵xを受け取り、受け取った復号セッション鍵xを鍵として用いて、受け取った暗号化ポイントEtに復号アルゴリズムD1 を施して復号ポイントDtを生成し、生成した復号ポイントDtを情報記憶部307へ書き込む。
ここで、復号アルゴリズムD1 は、共通鍵暗号方式のDESによるものであり、暗号化アルゴリズムE1 により生成された暗号文を復号する。
(8)入出力部301
入出力部301は、カードリーダ200を介してレジスタ装置100と、ICカード300を構成するその他の構成要素との間で情報の送受信を行う。
(9)情報記憶部307
情報記憶部307は、復号ポイントDtを記憶するための領域を備えている。
1.5 秘密通信システム10の動作
秘密通信システム10の動作について説明する。
(1)秘密通信システム10の全体の概要動作
秘密通信システム10の全体の概要動作について、図4に示すフローチャートを用いて説明する。
ICカード300が有する高速公開鍵演算部304の剰余演算部312は、
1 =d (mod p−1)を算出し(ステップS101)、逆数演算部313は、公開鍵e’=d1 -1 (mod p−1)を算出する(ステップS102)。
次に、レジスタ装置100は、ICカード300の認証を試み(ステップS103)、認証に失敗すると(ステップS104)、ICカード300との間の通信を終了する。認証に成功すると(ステップS104)、ICカード300との間の通信を継続する。
次に、ICカード300は、レジスタ装置100の認証を試み(ステップS105)、認証に失敗すると(ステップS106)、レジスタ装置100との間の通信を終了する。認証に成功すると(ステップS106)、レジスタ装置100との間の通信を継続する。
次に、レジスタ装置100は、セッション鍵を暗号化して暗号化セッション鍵を生成し、生成した暗号化セッション鍵をICカード300へ出力し、ICカード300は、暗号化セッション鍵を復号して復号セッション鍵を生成し(ステップS107)、レジスタ装置100は、セッション鍵を用いて、ポイントを暗号化して暗号化ポイントを生成し、生成した暗号化ポイントを送信し、ICカード300は、復号セッション鍵を用いて、暗号化ポイントを復号する(ステップS108)。
(2)レジスタ装置100によるICカード300の認証の動作
レジスタ装置100によるICカード300の認証の動作について、図5〜図6に示すフローチャートを用いて説明する。
レジスタ装置100の認証部108は、乱数R1 を生成し(ステップS121)、生成した乱数R1 を入出力部110及びカードリーダ200を介して、ICカード300へ出力する(ステップS122)。
ICカード300の認証部302は、レジスタ装置100から、カードリーダ200及び入出力部301を介して、乱数R1 を受け取り(ステップS122)、鍵記憶部309から素数p及び素数q及び秘密鍵dを読み出し、法演算部314から整数nを受け取り(ステップS123)、受け取った乱数R1 を用いて、ハッシュ値H1 =Hash(R1 )を算出する(ステップS124)。
次に、認証部302は、a=p-1 (mod q) を算出し(ステップS125)、
1 =H1 (mod p) を算出し(ステップS126)、
2 =H1 (mod q) を算出し(ステップS127)、
2 =d (mod q−1) を算出し(ステップS128)、
1 =y1 d1 (mod p) を算出し(ステップS129)、
2 =y2 d2 (mod q) を算出し(ステップS130)、
1 ={a(x2 −x1 )(mod q)}p + x1 を算出する(ステップS131)。
再暗号化部306は、逆数演算部313から公開鍵e’を受け取り、法演算部314から整数nを受け取り(ステップS132)、s1 e'(mod n)を計算する(ステップS133)。
認証部302は、ハッシュ値H1 とs1 e'(mod n)とが一致する否かを判断し、一致しないと判断する場合には(ステップS134)、何らかのエラーが発生したものとみなして、認証部302は、エラー発生を示すエラー情報を制御部305へ通知する。これ以降、ICカード300は、その動作を停止する。
一致すると判断する場合には(ステップS134)、認証部302は、生成した署名データS1 を入出力部301及びカードリーダ200を介して、レジスタ装置100へ出力する(ステップS141)。
次に、レジスタ装置100の認証部108は、ICカード300から、カードリーダ200及び入出力部110を介して、署名データS1 を受け取り(ステップS141)、鍵記憶部111からICカード300の公開鍵e、素数p及び素数qを読み出し(ステップS142)、次に、生成した乱数R1 にハッシュ関数Hashを施してハッシュ値H2 =Hash(R1 )を生成する(ステップS143)。
次に、認証部108は、n=p×qを計算し、S1 e (mod n)を計算し(ステップS144)、生成したハッシュ値H2 と計算して得られた値S1 e (mod n)とを比較し、一致するなら(ステップS145)、認証成功とみなし、一致しないなら(ステップS145)、認証失敗とみなす。
(3)ICカード300によるレジスタ装置100の認証の動作
ICカード300によるレジスタ装置100の認証の動作について、図7に示すフローチャートを用いて説明する。
ICカード300の認証部302は、乱数R2 を生成し(ステップS201)、生成した乱数R2 を、入出力部301及びカードリーダ200を介して、レジスタ装置100へ出力する(ステップS202)。
レジスタ装置100の認証部108は、ICカード300から、カードリーダ200及び入出力部110を介して、乱数R2 を受け取り(ステップS202)、鍵記憶部111から秘密鍵SK、素数p及び素数qを読み出し(ステップS203)、受け取った乱数R2 にハッシュ関数Hashを施してハッシュ値H3 =Hash(R2 )を計算する(ステップS204)。次に、認証部108は、n=p×qを計算し、署名データS2 =(H3 SK (mod n)を計算し(ステップS205)、計算して得られた署名データS2 を入出力部110及びカードリーダ200を介して、ICカード300へ出力する(ステップS206)。
次に、ICカード300の認証部302は、レジスタ装置100から、カードリーダ200及び入出力部301を介して、署名データS2 を受け取り(ステップS206)、鍵記憶部309からレジスタ装置100の公開鍵PK、素数p及び素数qを読み出し(ステップS207)、整数n=p×qを計算し、生成した乱数R2 を用いて、ハッシュ値H4 =Hash(R2 )を計算する(ステップS208)。次に、認証部302は、S2 PK (mod n)を計算し(ステップS209)、H4 とS2 PK (mod n)とが一致するか否かを判断し、一致するなら(ステップS210)、認証成功とみなし、一致しないなら(ステップS210)、認証失敗とみなす。
機器認証が失敗した場合には、それ以降、ICカード300は、レジスタ装置100との間で情報の送受信を、行わない。
(4)セッション鍵の受け渡しの動作
セッション鍵の受け渡しの動作について、図8に示すフローチャートを用いて説明する。
レジスタ装置100の暗復号部109は、乱数を生成し、生成した乱数をセッション鍵Mとする(ステップS251)。次に、鍵記憶部111から、素数p、素数q及び公開鍵eを読み出し、整数n=p×qを計算し、セッション鍵M、整数n及び公開鍵eを用いて、暗号化セッション鍵C1 =Me (mod n)を算出する(ステップS252)。次に、算出して得られた暗号化セッション鍵C1 を入出力部110及びカードリーダ200を介して、ICカード300へ出力する(ステップS253)。
次に、ICカード300の復号部303は、レジスタ装置100からカードリーダ200及び入出力部301を介して、暗号化セッション鍵C1 を受け取り(ステップS253)、次に、鍵記憶部309から素数p及び素数qを受け取り、剰余演算部312から数d1 を受け取り、次式を順に演算する。
a=p-1 (mod q) (ステップS256)
1 =C1 (mod p) (ステップS257)
2 =C1 (mod q) (ステップS258)
2 =d (mod q−1)(ステップS259)
1 =y1 d1 (mod p) (ステップS260)
2 =y2 d2 (mod q) (ステップS261)
x={a(x2 −x1 )(mod q)}p + x1 (ステップS262)
次に、計算して得られた復号セッション鍵xを復号部308へ出力する(ステップS263)。
(5)ポイントの秘密通信の動作
ポイントの秘密通信の動作について、図9に示すフローチャートを用いて説明する。
レジスタ装置100の制御部107は、小売店の販売担当者の操作により、利用者が購入した商品の購入額に応じて、特典であるポイントPtを生成する(ステップS291)。次に、暗復号部109は、生成したセッション鍵Mを鍵として用いて、ポイントPtに暗号化アルゴリズムE1 を施して、暗号化ポイントEt=E1 (セッション鍵M、ポイントPt)を生成し(ステップS292)、次に、暗号化ポイントEtを、入出力部110及びカードリーダ200を介して、ICカード300へ出力する(ステップS293)。
ICカード300の復号部308は、レジスタ装置100から、カードリーダ200及び入出力部301を介して、暗号化ポイントEtを受け取り(ステップS293)、復号部303から復号セッション鍵xを受け取り、受け取った復号セッション鍵xを鍵として用いて、受け取った暗号化ポイントEtに復号アルゴリズムD1 を施して復号ポイントDtを生成し(ステップS294)、生成した復号ポイントDtを情報記憶部307へ書き込む(ステップS295)。
1.6 e’が公開鍵となることの証明
ここでは、d1 =d (mod p−1)のとき、e’=d1 -1 (mod p−1)が公開鍵となることを証明する。
公開鍵e’は、e’=d-1 (mod LCM(p−1、q−1))により定義される。ここで、LCM(x、y)は、xとyとの最小公倍数を示す。
LCM(p−1、q−1)は、n×(p−1)と表現できるので、
e’×d=n×(m×(p−1))+1となる。
ここで、e<p−1とすると、
e’×(k×(p−1)+d1 )=n×(m×(p−1))+1
e’×d1 =(n×m−e×k)×(p−1)+1となり、
e’=d1 -1 (mod p−1)となる。
2.第2の実施の形態
本発明に係る別の実施の形態としてのRSA秘密通信システム20について説明する。
(1)RSA秘密通信システム20の構成
RSA秘密通信システム20は、図10に示すように、RSA暗号装置500、RSA復号装置400及びメモリカード600から構成されており、RSA暗号装置500及びRSA復号装置400は、ネットワーク50を介して接続されている。
RSA暗号方式における鍵生成において、相互に異なる大きい2個の素数p及び素数qについて、数n=p×qであり、p−1とq−1との最小公倍数lcmと互いに素で、p−1>eを満たす公開鍵eが生成される。また、最小公倍数lcmを法とする剰余体において公開鍵eの逆元が生成され、生成された逆元が秘密鍵dとなる。こうして生成された公開鍵eは、予めRSA暗号装置500に対して通知されている。
RSA暗号装置500は、RSA暗号方式により、公開鍵eを鍵として用いて、平文Mを暗号化して暗号文C=Me (mod n)を算出する。ここで、n=p×qである。
メモリカード600は、可搬型の半導体メモリであって、復号処理に用いる秘密鍵d、素数p及び素数qを予め記憶している。
RSA復号装置400は、RSA暗号装置500により生成された暗号文
C=Me (mod n)を復号する装置であって、図10に示すように、データ入力部401、LSI部420、データ出力部404及びデータ入力部406から構成されている。LSI部420は、システムLSIであって、データ復号部402、高速公開鍵演算部403及びデータ再暗号部405を含んでいる。また、高速公開鍵演算部403は、秘密鍵取得部411、剰余演算部412、法演算部413及び逆数演算部414を含んでいる。
データ入力部401は、復号対象である暗号文C=Me (mod n)をネットワーク50を介して、RSA暗号装置500から取得する。
データ入力部406は、メモリカード600から復号処理に用いる秘密鍵d、素数p及び素数qを取得する。
データ復号部402は、処理の高速化のため中国剰余定理(Chinese Remainder Theorem 、CRTと略す)により、データ入力部406により取得された秘密鍵d、素数p、素数q及び高速公開鍵演算部403により算出されたd1 を用いて、暗号文Cを復号して復号文Dを生成する。具体的には、以下に示す演算を行う。
a=p-1 (mod q)
1 =C (mod p)
2 =C (mod q)
2 =d (mod q−1)
1 =y1 d1 (mod p)
2 =y2 d2 (mod q)
D={a(x2 −x1 )(mod q)}p + x1
次に、データ復号部402は、生成した復号文Dをデータ出力部404及びデータ再暗号部405へ出力する。
高速公開鍵演算部403は、データ入力部406から秘密鍵e、素数p、素数qを取得し公開鍵e1 を演算する。一部の途中結果はデータ復号部402に送られ、復号演算に使用される。
高速公開鍵演算部403の秘密鍵取得部411は、データ入力部406から秘密鍵d、素数p及び素数qを取得する。
法演算部413は、素数pと素数qの乗算を行って整数nを算出する。
剰余演算部412は、秘密鍵d、素数p、素数qから
1 =d mod (p−1)の値を算出し、算出したd1 を保持する。
逆数演算部414は、p−1を法とする剰余体上でのd1
逆数e1 =d1 -1 (mod p−1)を算出し、次に、算出した逆数e1 を公開鍵として、データ再暗号部405へ出力する。また、d1 をデータ復号部402へ出力する。
データ再暗号部405は、高速公開鍵演算部403により生成された公開鍵e1 を用いて、データ復号部402により復号して生成された復号文Dを、再暗号化して再暗号文C’=De1 (mod n)を生成し、生成した再暗号文C’をデータ出力部404へ出力する。
データ出力部404は、データ再暗号部405により得られた再暗号文C’と、データ入力部401により得られた暗号文Cとを比較し、再暗号文C’と暗号文Cとが一致する場合、データ復号部402により得られた復号文Dを外部へ出力する。再暗号文C’と暗号文Cとが一致しない場合には、復号文Dを出力しない。
(2)RSA復号装置400におけるRSA復号の動作
次に、RSA復号装置400におけるRSA復号の動作について、図11に示すフローチャートを用いて説明する。
データ入力部401は、暗号文Cを取得し、データ入力部406は、秘密鍵d、素数p及び素数qを取得する(ステップS401)。
次に、高速公開鍵演算部403の秘密鍵取得部411は、秘密鍵d、素数p及び素数qを取得し、法演算部413は、素数pと素数qの乗算を行って整数nを算出し、剰余演算部412は、秘密鍵d、素数p、素数qから
1 =d mod (p−1)の値を算出し、d1 を保持し、逆数演算部414は、公開鍵e1 =d1 -1 (mod p−1)を算出する(ステップS402)。
次に、データ復号部402は、中国剰余定理(CRT)を用いて、暗号文Cを復号して復号文Dを生成する(ステップS403)。
データ再暗号部405は、高速公開鍵演算部403により生成された公開鍵e1 を用いて、復号文Dを、再暗号化して再暗号文C’を生成する(ステップS404)。
データ出力部404は、再暗号文C’と暗号文Cとを比較し、再暗号文C’と暗号文Cとが一致する場合(ステップS405)、復号文Dを外部へ出力する(ステップS406)。再暗号文C’と暗号文Cとが一致しない場合には(ステップS405)、復号文Dを出力することなく、故障が発生したことを示すメッセージを表示又は出力する(ステップS407)。
(3)まとめ
以上の第2の実施の形態によれば、公開鍵e1 の値を計算する逆数演算への入力が、従来の半分のビット長となる。逆元演算に必要なメモリ量は入力ビット長に比例し、処理時間は入力ビット長の2乗に比例するため、メモリ量、処理時間とも大幅に削減できることになる。さらに逆数演算の入力値となるd1 は中国剰余定理を用いた復号演算にも流用できるため、復号演算の処理時間も削減できる効果がある。
なお、この実施の形態では、d1 を計算する剰余演算部を高速公開鍵演算部内に置き、その値をデータ復号部に送って利用する構成を示したが、剰余演算部をデータ復号部内に置いてd1 を計算し、その値を高速公開鍵演算部に送るという形態としても良い。その場合、図11のフローチャートにおいて、上の高速公開鍵生成ステップ(ステップS402)と高速復号ステップ(ステップS403)の順序が逆転する。
3.第3の実施の形態
第2の実施の形態のRSA秘密通信システム20の変形例としての、RSA秘密通信システム30について説明する。
(1)RSA秘密通信システム30の構成
RSA秘密通信システム30は、RSA秘密通信システム20と類似の構成を有している。ここでは、RSA秘密通信システム20との相違点を中心として説明する。
RSA秘密通信システム30は、図12に示すように、RSA暗号装置500、RSA復号装置400b、CRT情報生成装置700及びメモリカード600bから構成されており、RSA暗号装置500及びRSA復号装置400は、ネットワーク50を介して接続されている。
メモリカード600bは、メモリカード600と同様の可搬型の半導体メモリであって、復号処理に用いる秘密鍵d、素数p及び素数qを予め記憶している。
CRT情報生成装置700は、メモリカード600bから秘密鍵d、素数p及び素数qを読み出し、読み出した秘密鍵d、素数p及び素数qを用いて、
1 =d mod (p−1)及び
2 =d mod (q−1)を算出し、算出して得られたd1 及びd2 をメモリカード600bへ書き込む。
RSA復号装置400bは、RSA復号装置400と同様の構成を有し、RSA暗号装置500により生成された暗号文
C=Me (mod n)を復号する装置であって、図12に示すように、データ入力部401、LSI部420b、データ出力部404及びデータ入力部406bから構成されている。LSI部420bは、LSI部420と同様の構成を有するシステムLSIであって、データ復号部402、高速公開鍵演算部403b及びデータ再暗号部405を含んでいる。また、高速公開鍵演算部403bは、秘密鍵取得部411b、法演算部413及び逆数演算部414を含んでいる。
データ入力部406bは、メモリカード600bから復号処理に用いる秘密鍵d、素数p、素数q、d1 及びd2 を取得する。
データ復号部402bは、データ入力部406bにより取得された秘密鍵d、素数p、素数q、d1 及びd2 を用いて、暗号文Cを復号して復号文Dを生成する。具体的には、以下に示す演算を行う。
a=p-1 (mod q)
1 =C (mod p)
2 =C (mod q)
1 =y1 d1 (mod p)
2 =y2 d2 (mod q)
D={a(x2 −x1 )(mod q)}p + x1
次に、データ復号部402bは、生成した復号文Dをデータ出力部404及びデータ再暗号部405へ出力する。
ここで、データ復号部402bは、 d2 =d (mod q−1)の演算を行わず、d2 をメモリカード600bから取得する点において、データ復号部402と異なる。
高速公開鍵演算部403bは、データ入力部406から秘密鍵e、素数p、素数q、d1 を取得し公開鍵e1 を演算する。一部の途中結果はデータ復号部402に送られ、復号演算に使用される。
高速公開鍵演算部403bの秘密鍵取得部411bは、データ入力部406bから素数p、素数q、d1 を取得する。
法演算部413は、素数pと素数qの乗算を行って整数nを算出する。
逆数演算部414は、p−1を法とする剰余体上でのd1
逆数e1 =d1 -1 (mod p−1)を算出し、次に、算出した逆数e1 を公開鍵として、データ再暗号部405へ出力する。
(2)RSA秘密通信システム30の動作
RSA秘密通信システム30の動作について、図13に示すフローチャートを用いて説明する。
CRT情報生成装置700は、メモリカード600bから秘密鍵d、素数p及び素数qを読み出し(ステップS431)、読み出した秘密鍵d、素数p及び素数qを用いて、d1 =d mod (p−1)及びd2 =d mod (q−1)を算出し(ステップS432)、算出して得られたd1 及びd2 をメモリカード600bへ書き込む(ステップS433)。
RSA復号装置400bのデータ入力部406bは、メモリカード600bから復号処理に用いる秘密鍵d、素数p、素数q、d1 及びd2 を取得する(ステップS434)。
データ入力部401は、RSA暗号装置500から、ネットワーク50を介して、暗号文Cを取得する(ステップS435)。
データ復号部402bは、データ入力部406bにより取得された秘密鍵d、素数p、素数q、d1 及びd2 を用いて、中国剰余定理により、暗号文Cを復号して復号文Dを生成する(ステップS436)。
次に、逆数演算部414は、逆数e1 =d1 -1 (mod p−1)を算出し(ステップS437)、データ再暗号部405は、公開鍵e1 を用いて、復号文Dを、再暗号化して再暗号文C’を生成する(ステップS438)。
次に、
データ出力部404は、再暗号文C’と暗号文Cとを比較し、再暗号文C’と暗号文Cとが一致する場合(ステップS439)、復号文Dを外部へ出力する(ステップS440)。再暗号文C’と暗号文Cとが一致しない場合には(ステップS439)、復号文Dを出力することなく、故障が発生したことを示すメッセージを表示又は出力する(ステップS441)。
(3)まとめ
以上説明したように、第3の実施の形態では、RSA復号装置は、従来の秘密鍵ではなく、あらかじめ中国剰余定理(CRT)の演算用に計算された秘密鍵を外部から取得する。つまり、d1 =d mod (p−1)、d2 =d mod (q−1)、p、qの値を取得する。なお、中国剰余定理の利用のしかたによって、外部から取得したデータのうちに、少なくともd1 が含まれていればよい。
データ復号部402と高速公開鍵演算部403bは、データ入力部406bにより取得した値を使用してそれぞれの処理を行う。従って、第2の実施の形態で示したように、データ復号部402と高速公開鍵演算部403の間で値d1 を送受信する必要はない。
値d1 が外部から取得されるため、高速公開鍵演算部403bにおいては、第2の実施の形態で示す剰余演算部412は必要ない。
なお、第3の実施の形態では、d1 =d mod (p−1)、d2 =d mod (q−1)、p、qを外部から取得するとしているが、中国剰余定理の利用のしかたによって、外部から取得したデータのうちに、少なくともd1 が含まれていればよい。
また、図13に示すフローチャートでは、高速復号ステップ(ステップS436)の後に、高速公開鍵取得ステップ(ステップS437)を実施するようにしてるいが、高速復号ステップと高速公開鍵取得ステップとは、どちらを先に行っても良い。つまり、高速公開鍵取得ステップ(ステップS437)の後に、高速復号ステップ(ステップS436)を実施してもよい。
第3の実施の形態によれば、実施の形態2の効果に加え、d2 を求めるための剰余演算も不要となり、さらに処理時間を削減できるという優れた効果がある。
なお、以上の説明ではRSA復号装置における例で説明したが、RSA署名生成装置についても同様に実施可能である。
またRSA復号装置、RSA署名生成装置に限らず、RSA秘密鍵からRSA公開鍵を取得する場合についても同様に実施可能である。
4.まとめ
本発明は、素数p、qと、p−1とq−1の最小公倍数lcmと互いに素で、p−1>eを満たす数eと、lcmを法とした剰余体においてeの逆元であるdと、pとqの積nを用い、(e,n)を公開鍵、(d,p,q)を秘密鍵として用いるRSA暗号において、前記秘密鍵(d,p,q)から前記公開鍵(e,n)を復元するRSA公開鍵復元装置であって、
RSA暗号の秘密鍵(d,p,q)を入力する第一の秘密鍵入力手段と、
前記第一の秘密鍵入力手段により入力された秘密鍵のdとpを用い、p−1を法としたdの剰余であるdp=d mod (p−1)を求める第一の剰余手段と、
前記第一の剰余手段により得られたdpと前記第一の秘密鍵入力手段により入力されたpを用い、p−1を法とした剰余体におけるdpの逆元を求める第一の逆元演算手段と、
前記第一の秘密鍵入力手段により入力された秘密鍵のpとqの積をnとし、前記第一の逆元演算手段により得られた逆元をeとして(e,n)をRSA公開鍵として出力する公開鍵出力手段とを備える。
また、本発明は、素数p、qと、p−1とq−1の最小公倍数lcmと互いに素で、p−1>eを満たす数eと、lcmを法とした剰余体においてeの逆元であるdと、pとqの積nを用い、(e,n)を公開鍵、(d,p,q)を秘密鍵として用いるRSA暗号において、前記公開鍵により暗号化された暗号文から、元の平文を復号するRSA復号装置であって、
暗号文Cを入力する暗号文入力手段と、
RSA暗号の秘密鍵(d,p,q)を入力する第二の秘密鍵入力手段と、
前記第二の秘密鍵入力手段により入力された秘密鍵を用い、前記暗号文入力手段により入力された暗号文Cから平文Pを復号する復号手段と、
前記第二の秘密鍵入力手段により入力された秘密鍵のdとpを用い、p−1を法としたdの剰余であるdp=d mod (p−1)を求める第二の剰余手段と、
前記第二の剰余手段により得られたdpと前記第二の秘密鍵入力手段により入力されたpを用い、p−1を法とした剰余体におけるdpの逆元を求める第二の逆元演算手段と、
前記第二の秘密鍵入力手段により入力された秘密鍵のpとqの積をnとし、前記第二の逆元演算手段により得られた逆元をeとして(e,n)をRSA公開鍵として保持する第一の公開鍵復元手段と、
前記第一の公開鍵復元手段により保持された公開鍵を用い、前記復号手段により求められた平文Pから暗号文C’を求める暗号手段と、
前記暗号手段で求められた暗号文C’と前記暗号文入力手段で入力された暗号文Cとを比較する第一の検算手段と、
前記第一の検算手段で比較した結果が一致する時のみ平文Pを出力する復号結果出力手段とを備える。
ここで、前記復号手段の代わりに、前記第二の秘密鍵入力手段により入力された秘密鍵と、前記第二の剰余手段により得られたdp を用い、中国剰余定理(CRT)を用いたアルゴリズムで前記暗号文入力手段により入力された暗号文Cから平文Pを復号するCRT復号手段を備えるとしてもよい。
ここで、前記第二の秘密鍵入力手段と、前記第二の剰余手段の代わりに、あらかじめ少なくともdp を含み中国剰余定理を用いたアルゴリズムに必要な値をRSA暗号の秘密鍵として入力する第三の秘密鍵入力手段を備え、
前記第二の逆元演算手段、前記第一の公開鍵復元手段、前記CRT復号手段は、前記第三の秘密鍵入力手段により入力された値を用いるとしてもよい。
ここで、さらに前記第一の検算手段で比較した結果が一致しない時、故障発生の旨を出力する第一のエラー出力手段を備えるとしてもよい。
また、本発明は、素数p、qと、p−1とq−1の最小公倍数lcmと互いに素で、p−1>eを満たす数eと、lcmを法とした剰余体においてeの逆元であるdと、pとqの積nを用い、(e,n)を公開鍵、(d,p,q)を秘密鍵として用いるRSA暗号において、平文から、署名文を生成するRSA署名生成装置であって、
平文Pを入力する平文入力手段と、
RSA暗号の秘密鍵(d,p,q)を入力する第四の秘密鍵入力手段と、
前記第四の秘密鍵入力手段により入力された秘密鍵を用い、前記平文入力手段により入力された平文Pから署名文Sを生成する署名生成手段と、
前記第四の秘密鍵入力手段により入力された秘密鍵のdとpを用い、p−1を法としたdの剰余であるdp=d mod (p−1)を求める第三の剰余手段と、
前記第三の剰余手段により得られたdpと前記第四の秘密鍵入力手段により入力されたpを用い、p−1を法とした剰余体におけるdpの逆元を求める第三の逆元演算手段と、
前記第四の秘密鍵入力手段により入力された秘密鍵のpとqの積をnとし、前記第三の逆元演算手段により得られた逆元をeとして(e,n)をRSA公開鍵として保持する第二の公開鍵復元手段と、
前記第二の公開鍵復元手段により保持された公開鍵を用い、前記署名生成手段により求められた署名文Sから平文P’を求める平文回復手段と、
前記平文回復手段で求められた平文P’と前記平文入力手段で入力された平文Pとを比較する第二の検算手段と、
前記第二の検算手段で比較した結果が一致する時のみ署名文Sを出力する署名結果出力手段とを備える。
ここで、前記署名生成手段の代わりに、前記第四の秘密鍵入力手段により入力された秘密鍵と、前記第三の剰余手段により得られたdpを用い、中国剰余定理(CRT)を用いたアルゴリズムで前記平文入力手段により入力された平文Pから署名文Sを生成するCRT署名生成手段を備えるとしてもよい。
ここで、前記第四の秘密鍵入力手段と、前記第三の剰余手段の代わりに、あらかじめ少なくともdpを含み中国剰余定理を用いたアルゴリズムに必要な値をRSA暗号の秘密鍵として入力する第五の秘密鍵入力手段を備え、
前記第三の逆元演算手段、前記第二の公開鍵復元手段、前記CRT署名生成手段は、前記第五の秘密鍵入力手段により入力された値を用いるとしてもよい。
ここで、さらに、前記第二の検算手段で比較した結果が一致しない時、故障発生の旨を出力する第二のエラー出力手段を備えるとしてもよい。
また、本発明は、素数p、qと、p−1とq−1の最小公倍数lcmと互いに素で、p−1>eを満たす数eと、lcmを法とした剰余体においてeの逆元であるdと、pとqの積nを用い、(e,n)を公開鍵、(d,p,q)を秘密鍵として用いるRSA暗号において、前記秘密鍵(d,p,q)から前記公開鍵(e,n)を復元するRSA公開鍵復元方法であって、
RSA暗号の秘密鍵(d,p,q)を入力する第一の秘密鍵入力ステップと、
前記第一の秘密鍵入力ステップにより入力された秘密鍵のdとpを用い、p−1を法としたdの剰余であるdp=d mod (p−1)を求める第一の剰余ステップと、
前記第一の剰余ステップにより得られたdpと前記第一の秘密鍵入力ステップにより入力されたpを用い、p−1を法とした剰余体におけるdpの逆元を求める第一の逆元演算ステップと、
前記第一の秘密鍵入力ステップにより入力された秘密鍵のpとqの積をnとし、前記第一の逆元演算ステップにより得られた逆元をeとして(e,n)をRSA公開鍵として出力する公開鍵出力ステップとを含む。
また、本発明は、素数p、qと、p−1とq−1の最小公倍数lcmと互いに素で、p−1>eを満たす数eと、lcmを法とした剰余体においてeの逆元であるdと、pとqの積nを用い、(e,n)を公開鍵、(d,p,q)を秘密鍵として用いるRSA暗号において、前記公開鍵により暗号化された暗号文から、元の平文を復号するRSA復号方法であって、
暗号文Cを入力する暗号文入力ステップと、
RSA暗号の秘密鍵(d,p,q)を入力する第二の秘密鍵入力ステップと、
前記第二の秘密鍵入力ステップにより入力された秘密鍵を用い、前記暗号文入力ステップにより入力された暗号文Cから平文Pを復号する復号ステップと、
前記第二の秘密鍵入力ステップにより入力された秘密鍵のdとpを用い、p−1を法としたdの剰余であるdp=d mod (p−1)を求める第二の剰余ステップと、
前記第二の剰余ステップにより得られたdpと前記第二の秘密鍵入力ステップにより入力されたpを用い、p−1を法とした剰余体におけるdpの逆元を求める第二の逆元演算ステップと、
前記第二の秘密鍵入力ステップにより入力された秘密鍵のpとqの積をnとし、前記第二の逆元演算ステップにより得られた逆元をeとして(e,n)をRSA公開鍵として保持する第一の公開鍵復元ステップと、
前記第一の公開鍵復元ステップにより保持された公開鍵を用い、前記復号ステップにより求められた平文Pから暗号文C’を求める暗号ステップと、
前記暗号ステップで求められた暗号文C’と前記暗号文入力ステップで入力された暗号文Cとを比較する第一の検算ステップと、
前記第一の検算ステップで比較した結果が一致する時のみ平文Pを出力する復号結果出力ステップとを含む。
ここで、前記復号ステップの代わりに、前記第二の秘密鍵入力ステップにより入力された秘密鍵と、前記第二の剰余ステップにより得られたdpを用い、中国剰余定理(CRT)を用いたアルゴリズムで前記暗号文入力ステップにより入力された暗号文Cから平文Pを復号するCRT復号ステップを備えるとしてもよい。
ここで、前記第二の秘密鍵入力ステップと、前記第二の剰余ステップの代わりに、あらかじめ少なくともdpを含み中国剰余定理を用いたアルゴリズムに必要な値をRSA暗号の秘密鍵として入力する第三の秘密鍵入力ステップを含み、
前記第二の逆元演算ステップ、前記第一の公開鍵復元ステップ、前記CRT復号ステップは、前記第三の秘密鍵入力ステップにより入力された値を用いるとしてもよい。
ここで、さらに、前記第一の検算ステップで比較した結果が一致しない時、故障発生の旨を出力する第一のエラー出力ステップを含むとしてもよい。
また、本発明は、素数p、qと、p−1とq−1の最小公倍数lcmと互いに素で、p−1>eを満たす数eと、lcmを法とした剰余体においてeの逆元であるdと、pとqの積nを用い、(e,n)を公開鍵、(d,p,q)を秘密鍵として用いるRSA暗号において、平文から、署名文を生成するRSA署名生成方法であって、
平文Pを入力する平文入力ステップと、
RSA暗号の秘密鍵(d,p,q)を入力する第四の秘密鍵入力ステップと、
前記第四の秘密鍵入力ステップにより入力された秘密鍵を用い、前記平文入力ステップにより入力された平文Pから署名文Sを生成する署名生成ステップと、
前記第四の秘密鍵入力ステップにより入力された秘密鍵のdとpを用い、p−1を法としたdの剰余であるdp=d mod (p−1)を求める第三の剰余ステップと、
前記第三の剰余ステップにより得られたdpと前記第四の秘密鍵入力ステップにより入力されたpを用い、p−1を法とした剰余体におけるdpの逆元を求める第三の逆元演算ステップと、
前記第四の秘密鍵入力ステップにより入力された秘密鍵のpとqの積をnとし、前記第三の逆元演算ステップにより得られた逆元をeとして(e,n)をRSA公開鍵として保持する第二の公開鍵復元ステップと、
前記第二の公開鍵復元ステップにより保持された公開鍵を用い、前記署名生成ステップにより求められた署名文Sから平文P’を求める平文回復ステップと、
前記平文回復ステップで求められた平文P’と前記平文入力ステップで入力された平文Pとを比較する第二の検算ステップと、
前記第二の検算ステップで比較した結果が一致する時のみ署名文Sを出力する署名結果出力ステップとを含む。
ここで、前記署名生成ステップの代わりに、前記第四の秘密鍵入力ステップにより入力された秘密鍵と、前記第三の剰余ステップにより得られたdpを用い、中国剰余定理(CRT)を用いたアルゴリズムで前記平文入力ステップにより入力された平文Pから署名文Sを生成するCRT署名生成ステップを含むとしてもよい。
ここで、前記第四の秘密鍵入力ステップと、前記第三の剰余ステップの代わりに、あらかじめ少なくともdpを含み中国剰余定理を用いたアルゴリズムに必要な値をRSA暗号の秘密鍵として入力する第五の秘密鍵入力ステップを備え、
前記第三の逆元演算ステップ、前記第二の公開鍵復元ステップ、前記CRT署名生成ステップは、前記第五の秘密鍵入力ステップにより入力された値を用いるとしてもよい。
ここで、さらに、前記第二の検算ステップで比較した結果が一致しない時、故障発生の旨を出力する第二のエラー出力ステップを含むとしてもよい。
また、本発明は、素数p、qと、p−1とq−1の最小公倍数lcmと互いに素で、p−1>eを満たす数eと、lcmを法とした剰余体においてeの逆元であるdと、pとqの積nを用い、(e,n)を公開鍵、(d,p,q)を秘密鍵として用いるRSA暗号において、前記秘密鍵(d,p,q)から前記公開鍵(e,n)を復元するRSA公開鍵復元プログラムであって、
RSA暗号の秘密鍵(d,p,q)を入力する第一の秘密鍵入力ステップと、
前記第一の秘密鍵入力ステップにより入力された秘密鍵のdとpを用い、p−1を法としたdの剰余であるdp=d mod (p−1)を求める第一の剰余ステップと、
前記第一の剰余ステップにより得られたdpと前記第一の秘密鍵入力ステップにより入力されたpを用い、p−1を法とした剰余体におけるdpの逆元を求める第一の逆元演算ステップと、
前記第一の秘密鍵入力ステップにより入力された秘密鍵のpとqの積をnとし、前記第一の逆元演算ステップにより得られた逆元をeとして(e,n)をRSA公開鍵として出力する公開鍵出力ステップとを含む。
また、本発明は、素数p、qと、p−1とq−1の最小公倍数lcmと互いに素で、p−1>eを満たす数eと、lcmを法とした剰余体においてeの逆元であるdと、pとqの積nを用い、(e,n)を公開鍵、(d,p,q)を秘密鍵として用いるRSA暗号において、前記公開鍵により暗号化された暗号文から、元の平文を復号するRSA復号プログラムであって、
暗号文Cを入力する暗号文入力ステップと、
RSA暗号の秘密鍵(d,p,q)を入力する第二の秘密鍵入力ステップと、
前記第二の秘密鍵入力ステップにより入力された秘密鍵を用い、前記暗号文入力ステップにより入力された暗号文Cから平文Pを復号する復号ステップと、
前記第二の秘密鍵入力ステップにより入力された秘密鍵のdとpを用い、p−1を法としたdの剰余であるdp=d mod (p−1)を求める第二の剰余ステップと、
前記第二の剰余ステップにより得られたdpと前記第二の秘密鍵入力ステップにより入力されたpを用い、p−1を法とした剰余体におけるdpの逆元を求める第二の逆元演算ステップと、
前記第二の秘密鍵入力ステップにより入力された秘密鍵のpとqの積をnとし、前記第二の逆元演算ステップにより得られた逆元をeとして(e,n)をRSA公開鍵として保持する第一の公開鍵復元ステップと、
前記第一の公開鍵復元ステップにより保持された公開鍵を用い、前記復号ステップにより求められた平文Pから暗号文C’を求める暗号ステップと、
前記暗号ステップで求められた暗号文C’と前記暗号文入力ステップで入力された暗号文Cとを比較する第一の検算ステップと、
前記第一の検算ステップで比較した結果が一致する時のみ平文Pを出力する復号結果出力ステップとを含む。
また、前記復号ステップの代わりに、前記第二の秘密鍵入力ステップにより入力された秘密鍵と、前記第二の剰余ステップにより得られたdpを用い、中国剰余定理(CRT)を用いたアルゴリズムで前記暗号文入力ステップにより入力された暗号文Cから平文Pを復号するCRT復号ステップを含むとしてもよい。
また、前記第二の秘密鍵入力ステップと、前記第二の剰余ステップの代わりに、あらかじめ少なくともdpを含み中国剰余定理を用いたアルゴリズムに必要な値をRSA暗号の秘密鍵として入力する第三の秘密鍵入力ステップを含み、
前記第二の逆元演算ステップ、前記第一の公開鍵復元ステップ、前記CRT復号ステップは、前記第三の秘密鍵入力ステップにより入力された値を用いるとしてもよい。
また、さらに、前記第一の検算ステップで比較した結果が一致しない時、故障発生の旨を出力する第一のエラー出力ステップを含むとしてもよい。
また、本発明は、素数p、qと、p−1とq−1の最小公倍数lcmと互いに素で、p−1>eを満たす数eと、lcmを法とした剰余体においてeの逆元であるdと、pとqの積nを用い、(e,n)を公開鍵、(d,p,q)を秘密鍵として用いるRSA暗号において、平文から、署名文を生成するRSA署名生成プログラムであって、
平文Pを入力する平文入力ステップと、
RSA暗号の秘密鍵(d,p,q)を入力する第四の秘密鍵入力ステップと、
前記第四の秘密鍵入力ステップにより入力された秘密鍵を用い、前記平文入力ステップにより入力された平文Pから署名文Sを生成する署名生成ステップと、
前記第四の秘密鍵入力ステップにより入力された秘密鍵のdとpを用い、p−1を法としたdの剰余であるdp=d mod (p−1)を求める第三の剰余ステップと、
前記第三の剰余ステップにより得られたdpと前記第四の秘密鍵入力ステップにより入力されたpを用い、p−1を法とした剰余体におけるdpの逆元を求める第三の逆元演算ステップと、
前記第四の秘密鍵入力ステップにより入力された秘密鍵のpとqの積をnとし、前記第三の逆元演算ステップにより得られた逆元をeとして(e,n)をRSA公開鍵として保持する第二の公開鍵復元ステップと、
前記第二の公開鍵復元ステップにより保持された公開鍵を用い、前記署名生成ステップにより求められた署名文Sから平文P’を求める平文回復ステップと、
前記平文回復ステップで求められた平文P’と前記平文入力ステップで入力された平文Pとを比較する第二の検算ステップと、
前記第二の検算ステップで比較した結果が一致する時のみ署名文Sを出力する署名結果出力ステップとを含む。
ここで、前記署名生成ステップの代わりに、前記第四の秘密鍵入力ステップにより入力された秘密鍵と、前記第三の剰余ステップにより得られたdpを用い、中国剰余定理(CRT)を用いたアルゴリズムで前記平文入力ステップにより入力された平文Pから署名文Sを生成するCRT署名生成ステップを含むとしてもよい。
ここで、前記第四の秘密鍵入力ステップと、前記第三の剰余ステップの代わりに、あらかじめ少なくともdpを含み中国剰余定理を用いたアルゴリズムに必要な値をRSA暗号の秘密鍵として入力する第五の秘密鍵入力ステップを備え、
前記第三の逆元演算ステップ、前記第二の公開鍵復元ステップ、前記CRT署名生成ステップは、前記第五の秘密鍵入力ステップにより入力された値を用いるとしてもよい。
ここで、さらに、前記第二の検算ステップで比較した結果が一致しない時、故障発生の旨を出力する第二のエラー出力ステップを含むとしてもよい。
以上説明したように、本発明にかかるRSA暗号処理装置は、故障利用攻撃が成立せず高速にRSA復号処理等ができる性質を有し、ICカード等故障利用攻撃を受ける可能性がありながらもRSA暗号処理を行わなければならない装置等として有用である。
本発明のRSA公開鍵復元装置によれば、公開鍵を求めるために逆元を取る被演算値が秘密鍵のおよそ半分のビット数の値となる。従って逆元演算に必要となるメモリ量、及び処理時間を大幅に短縮することができる。
また、本発明のRSA暗号処理装置によれば、公開鍵を求めるために逆元を取る被演算値が、秘密鍵のおよそ半分のビット数の値となる。従って逆元演算にかかる時間が従来より大幅に短縮され、その結果故障利用攻撃が成立しないRSA復号処理等にかかる時間を短縮することができる。
さらに、本発明のRSA暗号処理装置によれば、公開鍵を求めるために逆元を取る被演算値が、そのまま中国剰余定理アルゴリズムを用いるRSA復号処理に使うことができる。従って故障利用攻撃が成立しないRSA復号処理等にかかる時間を短縮することができる。
なお、本発明のRSA公開鍵復元装置、RSA暗号処理装置によれば、公開鍵の値が素数pに対してp−1以下と制限されるが、一般的にRSA暗号の公開鍵は小さく取るものであり問題とならない。
5.その他の変形例
なお、本発明を上記の実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
(1)第1の実施の形態において、ICカード300は、システムLSI320を含むとしているが、これには、限定されない。例えば、高速公開鍵演算部304が1個の大規模集積回路を構成するとしてもよい。
また、第2の実施の形態において、RSA復号装置400は、LSI部420を含むとしている、これには、限定されない。例えば、高速公開鍵演算部403が1個の大規模集積回路を構成するとしてもよい。
また、第3の実施の形態において、RSA復号装置400bは、LSI部420bを含むとしている、これには、限定されない。例えば、高速公開鍵演算部403bが1個の大規模集積回路を構成するとしてもよい。
(2)上記の各装置は、具体的には、マイクロプロセッサ、ROM、RAM、などから構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、各装置は、その機能を達成する。
(3)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD―ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray Disc)、半導体メモリなど、に記録したものとしてもよい。また、これらの記録媒体に記録されている前記コンピュータプログラム又は前記デジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしてもよい。
また、前記プログラム又は前記デジタル信号を前記記録媒体に記録して移送することにより、又は前記プログラム又は前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
(4)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
本発明を構成する各装置は、情報を秘密に取り扱う必要があるあらゆる産業において、また相手を認証する必要があるあらゆる産業において、経営的に、また継続的及び反復的に使用することができる。また、本発明を構成する各装置は、電器機器製造産業において、経営的に、また継続的及び反復的に、製造し、販売することができる。
図1は、秘密通信システム10の構成を示すシステム構成図である。 図2は、レジスタ装置100の構成を示すブロック図である。 図3は、ICカード300の構成を示すブロック図である。 図4は、レジスタ装置100及びICカード300の全体の動作の概要を示すフローチャートである。 図5は、レジスタ装置100によるICカード300の認証の動作を示すフローチャートである。図6へ続く。 図6は、レジスタ装置100によるICカード300の認証の動作を示すフローチャートである。図5から続く。 図7は、ICカード300によるレジスタ装置100の認証の動作を示すフローチャートである。 図8は、セッション鍵の受け渡しの動作を示すフローチャートである。 図9は、ポイントの秘密通信の動作を示すフローチャートである。 図10は、第2の実施の形態としてのRSA秘密通信システム20の構成を示すシステム構成図である。 図11は、RSA復号装置400におけるRSA復号の動作を示すフローチャートである。 図12は、第3の実施の形態としてのRSA秘密通信システム30の構成を示すシステム構成図である。 図13は、RSA秘密通信システム30の動作を示すフローチャートである。
符号の説明
10 秘密通信システム
20 RSA秘密通信システム
30 RSA秘密通信システム
50 ネットワーク
100 レジスタ装置
101 表示部
102 表示部
103 印字部
104 入力部
105 保管庫
106 情報記憶部
107 制御部
108 認証部
109 暗復号部
110 入出力部
111 鍵記憶部
200 カードリーダ
300 ICカード
301 入出力部
302 認証部
303 復号部
304 高速公開鍵演算部
305 制御部
306 再暗号化部
307 情報記憶部
308 復号部
309 鍵記憶部
311 秘密鍵取得部
312 剰余演算部
313 逆数演算部
314 法演算部
320 システムLSI
400 RSA復号装置
400b RSA復号装置
401 データ入力部
402 データ復号部
402b データ復号部
403 高速公開鍵演算部
403b 高速公開鍵演算部
404 データ出力部
405 データ再暗号部
406 データ入力部
406b データ入力部
411 秘密鍵取得部
411b 秘密鍵取得部
412 剰余演算部
413 法演算部
414 逆数演算部
420 LSI部
420b LSI部
500 RSA暗号装置
600 メモリカード
600b メモリカード
700 CRT情報生成装置

Claims (30)

  1. RSA暗号方式の秘密鍵dから新たに公開鍵e’を生成するRSA公開鍵生成装置であって、
    素数qは、素数pと異なり、公開鍵eは、p−1とq−1との最小公倍数lcmと互いに素で、p−1>eを満たし、前記秘密鍵dは、lcmを法とする剰余体において公開鍵eの逆元であり、
    前記RSA公開鍵生成装置は、
    RSA暗号の秘密鍵d及び素数pを取得する取得手段と、
    取得された秘密鍵dと素数pを用い、素数p−1を法とする前記秘密鍵dの剰余dp を算出する剰余演算手段と、
    算出された前記剰余dp 及び取得された前記素数pを用い、素数p−1を法とする剰余体における前記剰余dp の逆元を算出し、算出した逆元を新たな公開鍵e' とする逆元演算手段と
    を備えることを特徴とするRSA公開鍵生成装置。
  2. 前記剰余演算手段は、dp =d (mod p−1)により、前記剰余dp を算出し、
    前記逆元演算手段は、e' =dp -1 (mod p−1)により、前記公開鍵e' を算出する
    ことを特徴とする請求項1に記載のRSA公開鍵生成装置。
  3. 前記剰余演算手段及び前記逆元演算手段は、1個の集積回路から構成されている
    ことを特徴とする請求項1に記載のRSA公開鍵生成装置。
  4. RSA暗号方式の秘密鍵dから新たに公開鍵e’を生成するRSA公開鍵生成装置を構成する集積回路であって、
    素数qは、素数pと異なり、公開鍵eは、p−1とq−1との最小公倍数lcmと互いに素で、p−1>eを満たし、前記秘密鍵dは、lcmを法とする剰余体において公開鍵eの逆元であり、
    RSA公開鍵生成装置は、RSA暗号の秘密鍵d及び素数pを取得する取得手段を含み、
    前記集積回路は、
    取得された秘密鍵dと素数pを用い、素数p−1を法とする前記秘密鍵dの剰余dp を算出する剰余演算手段と、
    算出された前記剰余dp 及び取得された前記素数pを用い、素数p−1を法とする剰余体における前記剰余dp の逆元を算出し、算出した逆元を新たな公開鍵e' とする逆元演算手段と
    を備えることを特徴とする集積回路。
  5. RSA暗号方式により生成された暗号文を復号するRSA復号装置であって、
    請求項1のRSA公開鍵生成装置から、公開鍵e' を取得する公開鍵取得手段と、
    前記公開鍵eを用いて、RSA暗号方式により平文MがRSA暗号化されて生成された暗号文Cを取得する暗号文取得手段と、
    秘密鍵dを用いて、取得した前記暗号文CをRSA復号して復号文Dを生成するRSA復号手段と、
    取得した公開鍵e' を用いて、生成された復号文DをRSA暗号化して再暗号文C’を生成する再暗号化手段と、
    取得した暗号文Cと生成した再暗号文C’とを比較し、一致するか否かを判断する比較手段と、
    一致すると判断される場合に、生成された前記復号文Dを出力する出力手段と
    を備えることを特徴とするRSA復号装置。
  6. 前記RSA復号手段は、請求項1のRSA公開鍵生成装置から、剰余dp を取得し、取得した剰余dp を用いて、中国剰余定理により、取得した前記暗号文CをRSA復号して復号文Dを生成する
    ことを特徴とする請求項5に記載のRSA復号装置。
  7. 前記RSA復号手段は、
    a=p-1 (mod q)
    1 =C (mod p)
    2 =C (mod q)
    2 =d (mod q−1)
    1 =y1 dp (mod p)
    2 =y2 d2 (mod q)
    D={a(x2 −x1 )(mod q)}p + x1
    の演算により、復号文Dを生成する
    ことを特徴とする請求項6に記載のRSA復号装置。
  8. 前記出力手段は、一致しないと判断される場合に、故障発生の旨を示すメッセージを出力する
    ことを特徴とする請求項5に記載のRSA復号装置。
  9. 前記RSA復号手段、前記再暗号化手段及び前記比較手段は、1個の集積回路から構成されている
    ことを特徴とする請求項5に記載のRSA復号装置。
  10. RSA暗号方式により生成された暗号文を復号するRSA復号装置を構成する集積回路であって、
    前記RSA復号装置は、
    請求項1のRSA公開鍵生成装置から、公開鍵e' を取得する公開鍵取得手段と、
    前記公開鍵eを用いて、RSA暗号方式により平文MがRSA暗号化されて生成された暗号文Cを取得する暗号文取得手段と、
    比較手段により、一致すると判断される場合に、生成された前記復号文Dを出力する出力手段とを含み、
    前記集積回路は、
    秘密鍵dを用いて、取得した前記暗号文CをRSA復号して復号文Dを生成するRSA復号手段と、
    取得した公開鍵e' を用いて、生成された復号文DをRSA暗号化して再暗号文C’を生成する再暗号化手段と、
    取得した暗号文Cと生成した再暗号文C’とを比較し、一致するか否かを判断する比較手段と
    を備えることを特徴とする集積回路。
  11. RSA暗号方式により生成された暗号文を復号するRSA復号装置であって、
    素数qは、素数pと異なり、公開鍵eは、p−1とq−1との最小公倍数lcmと互いに素で、p−1>eを満たし、前記秘密鍵dは、lcmを法とする剰余体において公開鍵eの逆元であり、
    前記RSA復号装置は、
    RSA暗号の秘密鍵d及び素数pを取得する取得手段と、
    取得された秘密鍵dと素数pを用い、素数p−1を法とする前記秘密鍵dの剰余dp を算出する剰余演算手段と、
    算出された前記剰余dp 及び取得された前記素数pを用い、素数p−1を法とする剰余体における前記剰余dp の逆元を算出し、算出した逆元を新たな公開鍵e' とする逆元演算手段と、
    暗号文Cを取得する、暗号文Cは、前記公開鍵eを用いて、RSA暗号方式により平文MがRSA暗号化されて生成されたものである暗号文取得手段と、
    秘密鍵dを用いて、取得した前記暗号文CをRSA復号して復号文Dを生成するRSA復号手段と、
    取得した公開鍵e' を用いて、生成された復号文DをRSA暗号化して再暗号文C’を生成する再暗号化手段と、
    取得した暗号文Cと生成した再暗号文C’とを比較し、一致するか否かを判断する比較手段と、
    一致すると判断される場合に、生成された前記復号文Dを出力する出力手段
    を備えることを特徴とするRSA復号装置。
  12. RSA署名方式により平文に署名を施して署名文を生成するRSA署名装置であって、
    請求項1のRSA公開鍵生成装置から、公開鍵e' を取得する公開鍵取得手段と、
    秘密鍵dを用いて、平文MにRSA署名を施して署名文Sを生成する署名生成手段と、
    取得した公開鍵e’を用いて、署名文Sに、RSA署名回復を施して、復号文Dを生成する回復手段と、
    平文Mと、生成した復号文Dとを比較し、一致するか否かを判断する比較手段と、
    一致すると判断される場合に、生成された前記署名文Sを出力する出力手段と
    を備えることを特徴とするRSA署名装置。
  13. 前記署名生成手段は、請求項1のRSA公開鍵生成装置から、剰余dp を取得し、取得した剰余dp を用いて、中国剰余定理により、前記平文MにRSA署名を施して署名文Sを生成する
    ことを特徴とする請求項12に記載のRSA署名装置。
  14. 前記署名生成手段は、
    a=p-1 (mod q)
    1 =M (mod p)
    2 =M (mod q)
    2 =d (mod q−1)
    1 =y1 dp (mod p)
    2 =y2 d2 (mod q)
    S={a(x2 −x1 )(mod q)}p + x1
    の演算により、署名文Sを生成する
    ことを特徴とする請求項13に記載のRSA署名装置。
  15. 前記出力手段は、一致しないと判断される場合に、故障発生の旨を示すメッセージを出力する
    ことを特徴とする請求項12に記載のRSA署名装置。
  16. 前記署名生成手段、前記回復手段及び前記比較手段は、1個の集積回路から構成されている
    ことを特徴とする請求項12に記載のRSA署名装置。
  17. RSA署名方式により平文に署名を施して署名文を生成するRSA署名装置を構成する集積回路であって、
    前記RSA署名装置は、
    請求項1のRSA公開鍵生成装置から、公開鍵e' を取得する公開鍵取得手段と、
    比較手段により、一致すると判断される場合に、生成された前記署名文Sを出力する出力手段とを備え、
    前記集積回路は、
    秘密鍵dを用いて、平文MにRSA署名を施して署名文Sを生成する署名生成手段と、
    取得した公開鍵e’を用いて、署名文Sに、RSA署名回復を施して、復号文Dを生成する回復手段と、
    平文Mと、生成した復号文Dとを比較し、一致するか否かを判断する比較手段と
    を備えることを特徴とする集積回路。
  18. RSA署名方式により平文に署名を施して署名文を生成するRSA署名装置であって、
    素数qは、素数pと異なり、公開鍵eは、p−1とq−1との最小公倍数lcmと互いに素で、p−1>eを満たし、前記秘密鍵dは、lcmを法とする剰余体において公開鍵eの逆元であり、
    前記RSA署名装置は、
    RSA暗号の秘密鍵d及び素数pを取得する取得手段と、
    取得された秘密鍵dと素数pを用い、素数p−1を法とする前記秘密鍵dの剰余dp を算出する剰余演算手段と、
    算出された前記剰余dp 及び取得された前記素数pを用い、素数p−1を法とする剰余体における前記剰余dp の逆元を算出し、算出した逆元を新たな公開鍵e' とする逆元演算手段と、
    秘密鍵dを用いて、平文MにRSA署名を施して署名文Sを生成する署名生成手段と、
    取得した公開鍵e’を用いて、署名文Sに、RSA署名回復を施して、復号文Dを生成する回復手段と、
    平文Mと、生成した復号文Dとを比較し、一致するか否かを判断する比較手段と、
    一致すると判断される場合に、生成された前記署名文Sを出力する出力手段と
    を備えることを特徴とするRSA署名装置。
  19. RSA暗号方式の秘密鍵dから新たに公開鍵e’を生成するRSA公開鍵生成装置で用いられるRSA公開鍵生成方法であって、
    素数qは、素数pと異なり、公開鍵eは、p−1とq−1との最小公倍数lcmと互いに素で、p−1>eを満たし、前記秘密鍵dは、lcmを法とする剰余体において公開鍵eの逆元であり、
    前記RSA公開鍵生成方法は、
    RSA暗号の秘密鍵d及び素数pを取得する取得ステップと、
    取得された秘密鍵dと素数pを用い、素数p−1を法とする前記秘密鍵dの剰余dp を算出する剰余演算ステップと、
    算出された前記剰余dp 及び取得された前記素数pを用い、素数p−1を法とする剰余体における前記剰余dp の逆元を算出し、算出した逆元を新たな公開鍵e' とする逆元演算ステップと
    を含むことを特徴とするRSA公開鍵生成方法。
  20. RSA暗号方式の秘密鍵dから新たに公開鍵e’を生成するRSA公開鍵生成装置で用いられるRSA公開鍵生成用のコンピュータプログラムであって、
    素数qは、素数pと異なり、公開鍵eは、p−1とq−1との最小公倍数lcmと互いに素で、p−1>eを満たし、前記秘密鍵dは、lcmを法とする剰余体において公開鍵eの逆元であり、
    RSA暗号の秘密鍵d及び素数pを取得する取得ステップと、
    取得された秘密鍵dと素数pを用い、素数p−1を法とする前記秘密鍵dの剰余dp を算出する剰余演算ステップと、
    算出された前記剰余dp 及び取得された前記素数pを用い、素数p−1を法とする剰余体における前記剰余dp の逆元を算出し、算出した逆元を新たな公開鍵e' とする逆元演算ステップと
    を含むことを特徴とするコンピュータプログラム。
  21. コンピュータ読み取り可能な記録媒体に記録されている
    ことを特徴とする請求項20に記載のコンピュータプログラム。
  22. 搬送波上に具現化されている
    ことを特徴とする請求項20に記載のコンピュータプログラム。
  23. RSA暗号方式により生成された暗号文を復号するRSA復号装置で用いられるRSA復号方法であって、
    請求項1のRSA公開鍵生成装置から、公開鍵e' を取得する公開鍵取得ステップと、
    前記公開鍵eを用いて、RSA暗号方式により平文MがRSA暗号化されて生成された暗号文Cを取得する暗号文取得ステップと、
    秘密鍵dを用いて、取得した前記暗号文CをRSA復号して復号文Dを生成するRSA復号ステップと、
    取得した公開鍵e' を用いて、生成された復号文DをRSA暗号化して再暗号文C’を生成する再暗号化ステップと、
    取得した暗号文Cと生成した再暗号文C’とを比較し、一致するか否かを判断する比較ステップと、
    一致すると判断される場合に、生成された前記復号文Dを出力する出力ステップと
    を含むことを特徴とするRSA復号方法。
  24. RSA暗号方式により生成された暗号文を復号するRSA復号装置で用いられるRSA復号用のコンピュータプログラムであって、
    請求項1のRSA公開鍵生成装置から、公開鍵e' を取得する公開鍵取得ステップと、
    前記公開鍵eを用いて、RSA暗号方式により平文MがRSA暗号化されて生成された暗号文Cを取得する暗号文取得ステップと、
    秘密鍵dを用いて、取得した前記暗号文CをRSA復号して復号文Dを生成するRSA復号ステップと、
    取得した公開鍵e' を用いて、生成された復号文DをRSA暗号化して再暗号文C’を生成する再暗号化ステップと、
    取得した暗号文Cと生成した再暗号文C’とを比較し、一致するか否かを判断する比較ステップと、
    一致すると判断される場合に、生成された前記復号文Dを出力する出力ステップと
    を含むことを特徴とするコンピュータプログラム。
  25. コンピュータ読み取り可能な記録媒体に記録されている
    ことを特徴とする請求項24に記載のコンピュータプログラム。
  26. 搬送波上に具現化されている
    ことを特徴とする請求項24に記載のコンピュータプログラム。
  27. RSA署名方式により平文に署名を施して署名文を生成するRSA署名方法であって、
    請求項1のRSA公開鍵生成装置から、公開鍵e' を取得する公開鍵取得ステップと、
    秘密鍵dを用いて、平文MにRSA署名を施して署名文Sを生成する署名生成ステップと、
    取得した公開鍵e’を用いて、署名文Sに、RSA署名回復を施して、復号文Dを生成する回復ステップと、
    平文Mと、生成した復号文Dとを比較し、一致するか否かを判断する比較ステップと、
    一致すると判断される場合に、生成された前記署名文Sを出力する出力ステップと
    を含むことを特徴とするRSA署名方法。
  28. RSA署名方式により平文に署名を施して署名文を生成するRSA署名用のコンピュータプログラムであって、
    請求項1のRSA公開鍵生成装置から、公開鍵e' を取得する公開鍵取得ステップと、
    秘密鍵dを用いて、平文MにRSA署名を施して署名文Sを生成する署名生成ステップと、
    取得した公開鍵e’を用いて、署名文Sに、RSA署名回復を施して、復号文Dを生成する回復ステップと、
    平文Mと、生成した復号文Dとを比較し、一致するか否かを判断する比較ステップと、
    一致すると判断される場合に、生成された前記署名文Sを出力する出力ステップと
    を含むことを特徴とするコンピュータプログラム。
  29. コンピュータ読み取り可能な記録媒体に記録されている
    ことを特徴とする請求項28に記載のコンピュータプログラム。
  30. 搬送波上に具現化されている
    ことを特徴とする請求項28に記載のコンピュータプログラム。
JP2004321241A 2003-11-12 2004-11-04 Rsa公開鍵生成装置、rsa復号装置及びrsa署名装置 Withdrawn JP2005165290A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004321241A JP2005165290A (ja) 2003-11-12 2004-11-04 Rsa公開鍵生成装置、rsa復号装置及びrsa署名装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003382191 2003-11-12
JP2004321241A JP2005165290A (ja) 2003-11-12 2004-11-04 Rsa公開鍵生成装置、rsa復号装置及びrsa署名装置

Publications (2)

Publication Number Publication Date
JP2005165290A true JP2005165290A (ja) 2005-06-23
JP2005165290A5 JP2005165290A5 (ja) 2007-09-20

Family

ID=34741673

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004321241A Withdrawn JP2005165290A (ja) 2003-11-12 2004-11-04 Rsa公開鍵生成装置、rsa復号装置及びrsa署名装置

Country Status (1)

Country Link
JP (1) JP2005165290A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009259126A (ja) * 2008-04-18 2009-11-05 Dainippon Printing Co Ltd 故障攻撃の検知方法、及び、セキュリティデバイス
US7920699B2 (en) 2007-07-19 2011-04-05 Kabushiki Kaisha Toshiba Encryption operating apparatus
JP2016008994A (ja) * 2014-06-23 2016-01-18 大日本印刷株式会社 べき乗剰余演算装置、icカード、べき乗剰余演算方法、及び、べき乗剰余演算プログラム
JP2018142013A (ja) * 2014-01-31 2018-09-13 グーグル エルエルシー 関連付けられた秘密鍵部分を用いた高速公開鍵暗号化のためのシステムおよび方法
JP2020096308A (ja) * 2018-12-14 2020-06-18 明雄 小田中 デジタル割符方式を利用した認証システム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7920699B2 (en) 2007-07-19 2011-04-05 Kabushiki Kaisha Toshiba Encryption operating apparatus
JP2009259126A (ja) * 2008-04-18 2009-11-05 Dainippon Printing Co Ltd 故障攻撃の検知方法、及び、セキュリティデバイス
JP2018142013A (ja) * 2014-01-31 2018-09-13 グーグル エルエルシー 関連付けられた秘密鍵部分を用いた高速公開鍵暗号化のためのシステムおよび方法
JP2016008994A (ja) * 2014-06-23 2016-01-18 大日本印刷株式会社 べき乗剰余演算装置、icカード、べき乗剰余演算方法、及び、べき乗剰余演算プログラム
JP2020096308A (ja) * 2018-12-14 2020-06-18 明雄 小田中 デジタル割符方式を利用した認証システム

Similar Documents

Publication Publication Date Title
US7236589B2 (en) Device for point compression for Jacobians of hyperelliptic curves
US7940927B2 (en) Information security device and elliptic curve operating device
US7730315B2 (en) Cryptosystem based on a Jacobian of a curve
EP1531579A2 (en) RSA public key generation apparatus, RSA decryption apparatus, and RSA signature apparatus
EP1475920A1 (en) Key sharing system, shared key creation device, and shared key restoration device
US6718468B1 (en) Method for associating a password with a secured public/private key pair
US7248700B2 (en) Device and method for calculating a result of a modular exponentiation
JP2005268931A (ja) 情報セキュリティ装置及び情報セキュリティシステム
GB2395872A (en) Implementing a policy controlling data output/printing using identifier based encryption
JP2000115154A (ja) 記憶装置および方法、復号装置および方法、提供媒体、並びに情報記憶媒体
JP4250429B2 (ja) 連鎖型署名作成装置、及びその制御方法
US6704868B1 (en) Method for associating a pass phase with a secured public/private key pair
US7388957B2 (en) Elliptic curve exponentiation apparatus that can counter differential fault attack, and information security apparatus
US11336425B1 (en) Cryptographic machines characterized by a Finite Lab-Transform (FLT)
JP5171787B2 (ja) サインクリプションシステムおよびサインクリプション生成方法
EP3010173B1 (en) Key storage device, key storage method, and program therefor
JP2005165290A (ja) Rsa公開鍵生成装置、rsa復号装置及びrsa署名装置
US7519178B1 (en) Method, system and apparatus for ensuring a uniform distribution in key generation
KR100953715B1 (ko) Crt-rsa 모듈라 지수승 알고리즘을 이용한 디지털서명 방법, 그 장치 및 이를 기록한 컴퓨터 판독가능 저장매체
JP4634046B2 (ja) 故障利用攻撃に対抗できる楕円べき倍演算装置及び情報セキュリティ装置
AU7659598A (en) Pseudo-random generator based on a hash coding function for cryptographic systems requiring random drawing
JP4485175B2 (ja) 鍵共有システム、共有鍵生成装置及び共有鍵復元装置
US20050123131A1 (en) Cryptographic system comprising an encryption and decryption system and a key escrow system, and the associated equipment and devices
JP2001503164A (ja) 暗号化および復号化システムとキー・エスクローシステムを含む暗号システム、および関連機器
JP2004221800A (ja) 暗号処理システムにおける不正エンティティ追跡方法、暗号処理システム、および不正エンティティ追跡処理装置、並びにコンピュータ・プログラム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070807

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070807

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20100716