代理署名システム、方法
【課題】証明力の高い電子署名を第三者装置が代理で生成する代理署名技術を提供する。
【解決手段】端末装置100は固有の演算機能を有しており、端末装置100は固有データに対する当該演算機能による演算結果を署名生成装置200に送り(S5)、当該演算結果を破棄する(S5a)。また、署名生成装置200は当該演算結果から署名検証鍵の生成を行い(S7)、予め署名検証鍵を署名検証装置300へ送っておく(S8)。署名プロセスでは、端末装置100が改めて求めた演算結果を署名生成装置200に送り(S13)、署名生成装置200は当該演算結果から署名生成鍵の生成を行い(S17)、当該署名生成鍵を用いてメッセージに対する電子署名を生成して(S18)署名検証装置300へ送り(S19)、当該演算結果と当該署名生成鍵を破棄する(S19a)。署名検証装置300は、電子署名を署名検証鍵で検証する(S21)。
【解決手段】端末装置100は固有の演算機能を有しており、端末装置100は固有データに対する当該演算機能による演算結果を署名生成装置200に送り(S5)、当該演算結果を破棄する(S5a)。また、署名生成装置200は当該演算結果から署名検証鍵の生成を行い(S7)、予め署名検証鍵を署名検証装置300へ送っておく(S8)。署名プロセスでは、端末装置100が改めて求めた演算結果を署名生成装置200に送り(S13)、署名生成装置200は当該演算結果から署名生成鍵の生成を行い(S17)、当該署名生成鍵を用いてメッセージに対する電子署名を生成して(S18)署名検証装置300へ送り(S19)、当該演算結果と当該署名生成鍵を破棄する(S19a)。署名検証装置300は、電子署名を署名検証鍵で検証する(S21)。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、証明力の高い電子署名を第三者装置が代理で生成する代理署名技術に関する。
【背景技術】
【0002】
電子署名技術において、端末装置が署名生成処理を第三者装置に委託して第三者装置が電子署名を生成する代理署名技術が知られている。このような従来技術として例えば特許文献1が挙げられる。代理署名が行われる要請として、例えば、端末装置の計算能力が低い場合などが考えられる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−148033号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
代理署名技術では、通常、端末装置は自らの秘密鍵を第三者装置に送信しなければならない。しかし、当該秘密鍵を得た第三者装置は、爾後、当該秘密鍵が有効である限り自由に端末装置の署名を生成できてしまう。つまり、端末装置が署名対象を特定のメッセージに制限して第三者装置に電子署名の生成を委託したとしても、ひとたび秘密鍵を得た第三者装置は端末装置からの委託とは無関係に端末装置の電子署名を生成できてしまう。
【0005】
このため、端末装置の代理として第三者装置が電子署名を生成するにあたり、当該第三者装置による電子署名生成が、端末装置からの委託に基づくものであることを証明できる仕組みが必要とされる。
【0006】
本発明は、このような点に鑑みてなされたものであり、証明力の高い電子署名を第三者装置が代理で生成する代理署名技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の代理署名技術は、次のとおりである。すなわち、端末装置は固有の演算機能を有しており、端末装置は固有データに対するその演算機能による演算結果を署名生成装置に送り、当該演算結果を破棄する。また、署名生成装置は当該演算結果から署名検証鍵の生成を行い、予め署名検証鍵を署名検証装置へ送っておく。署名プロセスでは、端末装置が改めて上記固有データに対するその演算機能による演算結果を署名生成装置に送り、署名生成装置は当該演算結果から署名生成鍵の生成を行い、当該署名生成鍵を用いてメッセージに対する電子署名を生成して署名検証装置へ送り、当該演算結果と当該署名生成鍵を破棄する。署名検証装置は、電子署名を署名検証鍵で検証する。
【0008】
この代理署名技術にて、セキュリティ向上の観点から、署名生成鍵と署名検証鍵の生成の際、上記演算結果に替えて、上記演算結果を乱数で撹乱して得られる情報を用いてもよい。
【0009】
あるいは、本発明の代理署名技術は、次のとおりである。すなわち、署名生成装置は、署名生成鍵と署名検証鍵を生成し、予め署名検証鍵を署名検証装置へ送っておく。端末装置は固有の演算機能を有しており、端末装置は固有データに対するその演算機能による演算結果r1を署名生成装置に送り、当該演算結果r1を破棄する。また、署名生成装置は当該演算結果r1を署名生成鍵の断片の一つとなるように署名生成鍵を3種類の断片r1,u1,v1に分割し[分割処理]、断片u1を自身の記憶部に記憶し、断片v1をバックアップ装置に送り、断片r1と署名生成鍵を破棄する。バックアップ装置は断片v1を自身の記憶部に記憶する。署名プロセスでは、端末装置が改めて上記固有データに対するその演算機能による演算結果r1を署名生成装置に送り、署名生成装置は当該演算結果r1と断片u1から署名生成鍵の復元し、当該署名生成鍵を用いてメッセージに対する電子署名を生成して署名検証装置へ送り、当該演算結果r1と当該署名生成鍵を破棄する。署名検証装置は、電子署名を署名検証鍵で検証する。復旧プロセスでは、代替端末装置は固有の演算機能を有しており、代替端末装置は固有データに対するその演算機能による演算結果r2を署名生成装置に送り、当該演算結果r2を破棄する。また、署名生成装置は断片u1とバックアップ装置から提供を受けたv1から署名生成鍵を復元して、演算結果r2を復元された署名生成鍵の断片の一つとなるように復元された署名生成鍵を3種類の断片r2,u2,v2に分割し[断片更新処理]、断片u2を自身の記憶部に記憶し、断片v2をバックアップ装置に送り、断片r2と署名生成鍵を破棄する。バックアップ装置は断片v2を自身の記憶部に記憶する。
【0010】
この代理署名技術にて、セキュリティ向上の観点から、署名生成鍵の分割処理およびの断片更新処理の際、上記演算結果r1,r2に替えて、上記演算結果r1,r2を乱数で撹乱して得られる情報s1,s2を用いてもよい。
【発明の効果】
【0011】
本発明に拠れば、端末装置Aに入力される固有データから、端末装置A以外の端末装置が、端末装置Aの演算結果および当該演算結果から一意に生成される署名生成鍵を求めることが困難であれば、署名生成装置が正しく電子署名の生成および演算結果と署名生成鍵の破棄を行っている限り、端末装置Aが関与すること無く、署名検証鍵を用いて署名検証に合格するような電子署名を生成することは困難となるから、署名生成装置が生成した電子署名は、端末装置Aからの委託に基づくものであり、ユーザの意思の下で生成された電子署名、すなわち証明力の高い電子署名ということができる。
【図面の簡単な説明】
【0012】
【図1】実施形態1における代理署名システムを示す図。
【図2】実施形態1における代理署名方法の処理手順を示す図。
【図3】実施形態1の変形例における代理署名方法の処理手順を示す図。
【図4】実施形態2における代理署名システムを示す図。
【図5】実施形態2における代理署名方法の処理手順を示す図(その1)。
【図6】実施形態2における代理署名方法の処理手順を示す図(その2)。
【図7】実施形態2における代理署名方法の処理手順を示す図(その3)。
【図8】実施形態2の変形例における代理署名方法の処理手順を示す図(その1)。
【図9】実施形態2の変形例における代理署名方法の処理手順を示す図(その2)。
【図10】実施形態の変形例2における代理署名方法の処理手順を示す図(その3)。
【図11】各実施形態に関わる代理署名システムの構成要素である端末装置、署名生成装置、署名検証装置(APサーバ装置)、代替端末装置、バックアップ装置の機能構成を示す図。
【発明を実施するための形態】
【0013】
《実施形態1》
[代理署名システム]
実施形態1の代理署名システム1は、図1に示すように、端末装置100と、署名生成装置200と、署名検証装置300とを少なくとも含んで構成される。これらの各装置は、例えば通信網5を経由して、相互に通信可能とされている。とくに、端末装置100と署名生成装置200との間の通信路は、暗号技術などにより秘匿性の高い通信が実現されていることが望ましい。
【0014】
本発明の代理署名システムは、ユーザの数に応じて一つまたは複数の端末装置100と、サーバ管理者(例えばアプリケーションサービスプロバイダ)の数に応じて一つまたは複数の署名検証装置300を含みえるが、本発明の理解を容易にするため、実施形態1では、代理署名システム1はN個の端末装置100−1,・・・,100−i,・・・,100−Nと一つの署名検証装置300を含むとする。ただし、Nは2以上の整数とする。
【0015】
また、本発明の代理署名システムは、一つまたは複数の署名生成装置200を含みえる。代理署名システムが複数の署名生成装置200を含む場合、署名生成と署名検証の一貫性(例えばRSA署名方式などであれば署名生成鍵と署名検証鍵との一対の関係)が保持されるように運用されることが好ましい。例えば、署名検証装置300が端末装置100に対して電子署名を要求する際、端末装置100に対して、端末装置100が電子署名の生成を委託する署名生成装置200を指定する情報を送る仕組みや、或いは、端末装置100が電子署名の生成を委託した署名生成装置200を特定する情報を、当該電子署名を要求した署名検証装置300に送る仕組みが望まれる。このような仕組みは、例えば装置相互間の通信データに当該情報を含めることによって容易に構築される。実施形態1では、本発明の理解を容易にするため、代理署名システム1は一つの署名生成装置200を含むとする。
【0016】
<端末装置>
端末装置100は、計算機能およびデータ送受信機能を有する装置であり、例えばパーソナルコンピュータ、携帯電話、ICカードなどで例示される。とくに、端末装置100が署名生成装置300に電子署名の生成を委託しなければならない状況を想定すると、端末装置100として、計算能力が低い、計算能力が特定の演算に特化されている、或いはアプリケーションソフトウェアの追加が困難であり、さらに言えばアプリケーションソフトウェア毎に異なる電子署名用の鍵生成処理や署名生成処理などを実行することが困難な装置を想定することが、代理署名の必要性を理解しやすくするであろう。
【0017】
ただし、端末装置100は、固有の演算機能を有するものとする。この固有の演算機能は、特に限定はなく、例えば鍵付きのハッシュ演算、すなわち鍵データKと入力の固定データSに対してKおよびSを連結したデータS‖Kのハッシュ値Hash(S‖K)を出力する機能などである。ここで鍵データKは端末装置100ごとに異なっている。あるいは、アプリケーションソフトウェアで用いる電子署名とは異なる電子署名機能を予め端末装置100が有しているとき、当該電子署名機能を固有の演算機能としてもよい。
【0018】
<署名生成装置>
署名生成装置200は、計算機能およびデータ送受信機能を有する装置である。署名生成装置200は、電子署名を生成するだけの計算能力を有することが好ましい。とくに、署名生成装置200は署名生成鍵(秘密鍵)を扱うことから耐タンパー性を有することが望ましく、署名生成装置200は例えばHSM(Hardware Security Module)やTPM(Trusted Platform Module)によって実現される。
【0019】
<署名検証装置>
署名検証装置300は、計算機能およびデータ送受信機能を有する装置であり、例えばサーバ装置などで例示される。実施形態1では、署名検証装置300は、例えば端末装置100に対してアプリケーションソフトウェアを実行する装置であり、この観点から、爾後、署名検証装置300をAPサーバ装置300と呼称することにする。また、実施形態1では、端末装置100に対する当該アプリケーションソフトウェアの適用には電子署名を要するものとする。
【0020】
代理署名システム1における代理署名処理を、図2を参照しながら叙述する。各装置の機能構成については、図11を参照されたい。なお、N個の端末装置100−1,・・・,100−i,・・・,100−Nのうちのどの端末装置に対しても同じ代理署名処理となるから、この説明では、任意性を考慮してi番目の端末装置100−iに対する代理署名処理を説明する。
【0021】
〈登録プロセス〉
まず、署名プロセスに先駆けて署名用の鍵の登録プロセスが実行される。
【0022】
APサーバ装置300の固有データ生成部301が、端末装置100−iに固有の固有データhiを生成する(ステップS1)。固有データhiは端末装置100−iを特定する情報(識別子)に対応付けられて、APサーバ装置300の記憶部309に記憶される。
【0023】
APサーバ装置300の送信部307が、端末装置100−iに対して固有データhiを送信し(ステップS2)、端末装置100−iの受信部108が、固有データhiを受信する(ステップS3)。
【0024】
端末装置100−iの固有演算部101が、固有データhiに対して端末装置100−iに固有の演算gを行い、この演算結果ri=g(hi)を出力する(ステップS4)。固有の演算gが例えば上述のハッシュ演算Hashであれば、端末装置100−iに固有の鍵データKiと入力の固有データhiに対してKiおよびhiを連結したデータhi‖Kiのハッシュ値Hash(hi‖Ki)が演算結果riである。
【0025】
端末装置100−iの送信部107は、署名生成装置200に対して演算結果riを送信し(ステップS5)、署名生成装置200の受信部208が、演算結果riを受信する(ステップS6)。ステップS5の処理の後、端末装置100−iの制御部105は、端末装置100−iの図示しない記憶部から演算結果riを消去する処理を行う(ステップS5a)。
【0026】
署名生成装置200の署名鍵生成部201が、演算結果riを用いて少なくとも署名検証鍵PKi=Gen(ri)を生成する(ステップS7)。署名鍵生成部201は、演算結果riをパラメータとして署名生成鍵SKiと署名検証鍵PKiをセットで求めるか、または署名生成鍵SKiと署名検証鍵PKiの何れかを一意に生成する機能Genを持つ。また、署名鍵生成部201は、演算結果riを署名生成鍵SKiとし、演算結果riから署名検証鍵PKiを生成するとしてもよい。実施形態1では、SKi=Gen(ri)=ri,PKi=Gen(ri)とする。本発明で利用可能な署名方式としてRSA署名方式、Schnorr署名方式、これらの改良方式などが挙げられる(参考文献A,B参照)。
(参考文献A)岡本龍明、山本博資著、「現代暗号」、産業図書、1997、ISBN-13: 978-4782853535
(参考文献B)宇根正志、岡本龍明、「最近のデジタル署名における理論研究動向について」、日本銀行金融研究所/金融研究/2000. 4、[平成22年4月14日検索]、インターネット〈http://www.imes.boj.or.jp/japanese/kinyu/2000/kk19-b1-3.pdf〉
【0027】
(Schnorr署名方式)
[鍵生成]
素数pと、p-1の素因数qを選択する。さらに、pを法とする乗法群の元xを選択し、y=g(-x) mod pを求める。ここでgは、pを法とする乗法群の原始元であり、gの位数はqであるとする。署名生成鍵はx、署名検証鍵はy,g,p,qである。
[署名生成]
乱数kを生成し、メッセージMに対する署名(e,s)を生成する。e=Hash(M,r), s=(xe+k) mod q, r=gk mod p. Hashはハッシュ関数である。
[署名検証]
v=gsye mod p, e1=Hash(M,v)を計算し、e=e1の成否を検証する。
【0028】
(RSA署名方式)
[鍵生成]
十分に大きい素数p,qを選択し、n=pqを求める。p-1とq-1の最小公倍数L=LCM(p-1,q-1)を求める。最大公約数GCD(e,L)=1を満たす自然数eを選択し、ed=1 mod Lを満たすdを選択する。署名生成鍵はd、署名検証鍵はe,nである。
[署名生成]
メッセージMに対する署名Sを生成する。S=(Hash(M))d mod n.
[署名検証]
Hash(M)=Semod nの成否を検証する。
【0029】
署名生成装置200の送信部207が、APサーバ装置300に対して署名検証鍵PKiを送信し(ステップS8)、APサーバ装置300の受信部308が、署名検証鍵PKiを受信する(ステップS9)。署名検証鍵PKiは端末装置100−iを特定する上記識別子に対応付けられて、APサーバ装置300の記憶部309に記憶される。
【0030】
なお、ステップS7ないしステップS8の処理の後、署名生成装置200の制御部205が、演算結果riを署名生成装置200の記憶部209から消去する処理を行う(ステップS8a)。
【0031】
〈署名プロセス〉
次に、APサーバ装置300の持つアプリケーションソフトウェアの端末装置100に対する適用には電子署名が必要であり、例えば端末装置100−iからのAPサーバ装置300に対する要求がトリガーとなって署名プロセスが実施される。
【0032】
APサーバ装置300の送信部307が、記憶部309に記憶されている端末装置100−iに対応する固有データhiを端末装置100−iに対して送信し(ステップS10)、端末装置100−iの受信部108が、ステップS10にて送信された固有データhiを受信する(ステップS11)。
【0033】
端末装置100−iの固有演算部101が、ステップS11にて受信した固有データhiに対して当該端末装置100−iに固有の演算gを行い、この演算結果ri=g(hi)を出力する(ステップS12)。この演算結果riは、ステップS4の処理で得られたriと同じである。
【0034】
端末装置100−iの送信部107が、署名生成装置200に対してステップS12にて得られた演算結果riを送信し(ステップS13)、署名生成装置200の受信部208が、ステップS13にて送信された演算結果riを受信する(ステップS14)。ステップS13の処理の後、端末装置100−iの制御部105は、端末装置100−iの図示しない記憶部から演算結果riを消去する処理を行う(ステップS13a)。
【0035】
また、APサーバ装置300の送信部307が、署名生成装置200に対して電子署名付与の対象となるメッセージmを送信し(ステップS15)、署名生成装置200の受信部208が、メッセージmを受信する(ステップS16)。
【0036】
署名生成装置200の署名鍵生成部201が、ステップS13にて受信した演算結果riを用いて少なくとも署名生成鍵SKi=Gen(ri)を生成する(ステップS17)。署名方式は上述のとおりである。実施形態1ではSKi=Gen(ri)=riである。
【0037】
そして、署名生成装置200の署名生成部202が、署名生成鍵SKiを用いてメッセージmに対して電子署名Sig=Gsig(m,SKi)を生成する(ステップS18)。
【0038】
署名生成装置200の送信部207が、APサーバ装置300に対して電子署名Sigを送信し(ステップS19)、APサーバ装置300の受信部308が、電子署名Sigを受信する(ステップS20)。
【0039】
APサーバ装置300の署名検証部302が、記憶部309に記憶されている端末装置100−iに対応する署名検証鍵PKiを用いて電子署名Sigを検証する(ステップS21)。
【0040】
なお、ステップS18ないしステップS19の処理の後、署名生成装置200の制御部205が、演算結果riと署名生成鍵SKiを署名生成装置200の記憶部209から消去する処理を行う(ステップS19a)。
【0041】
以上より、端末装置100−iに入力される固有データhiから、端末装置100−i以外の端末装置が、演算結果riおよび当該演算結果から一意に生成される署名生成鍵SKiを求めることが困難であれば、署名生成装置200が正しく電子署名の生成および演算結果riと署名生成鍵SKiの破棄を行っている限り、端末装置100−iが関与すること無く、署名検証鍵PKiを用いて署名検証に合格するような電子署名Sigを生成することは困難となる。
【0042】
演算結果は端末装置ごとに固有の演算機能によるものであるため、端末装置100−i以外の端末装置が演算結果riを求めることは通常、困難と見なすことができる。これは例えば上述のとおり、固有の演算機能を鍵付きのハッシュ演算、すなわち鍵データKと入力の固定データSに対してKおよびSを連結したデータS‖Kのハッシュ値Hash(S‖K)を出力する機能とすることで容易に実現できる。また演算結果riをセキュア通信によって署名生成装置200に送信し、署名生成装置200をHSMなどによって実現して処理機能の改変を困難とすることで、不正な演算結果の取得を困難とし、署名生成装置200が正しく電子署名の生成および演算結果の破棄を行っているものと見なすことができる。
【0043】
さらに、署名生成装置200は、署名生成処理の際を除き、署名生成鍵SKiを保有していないため、たとえ第三者装置が署名生成装置200の内部データを得ることができたとしても、署名生成時を除き署名生成鍵SKiを不正に盗まれずに済む。署名生成時点でのリスクについては、署名生成装置200に対する盗難や不正アクセスの痕跡などの異常が確認された場合ただちに署名生成を拒否するといった対応によりリスクヘッジが可能である。
【0044】
したがって、署名生成装置200が生成した電子署名Sigは、端末装置100−iからの委託に基づくものであり、ユーザの意思の下で生成された電子署名、すなわち証明力の高い電子署名ということができる。
【0045】
《実施形態1の変形例》
実施形態1におけるセキュリティを向上させる実施形態1の変形例について説明する(図3参照)。実施形態1では演算結果riが端末装置間で十分にランダムであるか不明であるから、この変形例では、署名生成鍵と署名検証鍵を生成するに際して演算結果riを乱数で撹乱する。
【0046】
具体的には、実施形態1において、ステップS7に替えて、署名生成装置200の署名鍵生成部201が、演算結果riを乱数生成部(図示せず)で生成された乱数tiで撹乱して得られる情報siを用いて少なくとも署名検証鍵PKiを生成する処理(ステップS7p)とし、ステップS17に替えて、署名生成装置200の署名鍵生成部201が、ステップS13にて受信した演算結果riを上記乱数tiで撹乱して得られる情報siを用いて少なくとも署名生成鍵SKiを生成する処理(ステップS17p)とする。これらの他の処理は実施形態1と同じであるから説明を省略する。
【0047】
「演算結果riを乱数tiで撹乱して得られる情報si」は例えばsi=ri(+)tiである。ここで(+)は排他的論理和を表す。署名鍵生成部201は、情報siをパラメータとして署名生成鍵SKiと署名検証鍵PKiをセットで求めるか、または署名生成鍵SKiと署名検証鍵PKiの何れかを一意に生成する。また、署名鍵生成部201は、情報siを署名生成鍵SKiとし、情報siから署名検証鍵PKiを生成するとしてもよい。乱数tiは、端末装置100−iを特定する上記識別子に対応付けられて、署名生成装置200の記憶部209に記憶される。
【0048】
このような処理により、署名生成鍵と署名検証鍵を生成するに際して用いられる情報siが十分にランダムであることが保証される。なお、乱数tiはAPサーバ装置300によって生成・保存され、署名プロセスの度に署名生成装置200に送信されるとしてもよい。また、この変形例ではXOR演算を用いて十分なランダム性を保障する処理を説明したが、十分なランダム性を保障することができるならば他の演算を用いてもよい。
【0049】
《実施形態2》
実施形態2は、実施形態1において端末装置からの秘密値(例えば上記鍵データK)の漏洩防止や端末紛失時の秘密値のリカバリを実現することを目的とした実施形態である。実施形態1と同じ構成要素には同じ符号を当ててその重複説明を省略する。
【0050】
実施形態2では秘密値を3種類の値(断片)に分け、3種類の断片のうち2種類の断片を用いると当該秘密値を復元でき、1種類の断片だけでは当該秘密値を復元できないような分割技術を用いるものとする。このような分割技術の具体例として、下記参考特許文献に記載されているデータ分割方法が挙げられ、これを援用する。
(参考特許文献)特開2004-213650号公報
【0051】
[代理署名システム]
実施形態2の代理署名システム2は、図4に示すように、端末装置100と、署名生成装置200と、署名検証装置300と、代替端末装置400と、バックアップ装置500を少なくとも含んで構成される。これらの各装置は、例えば通信網5を経由して、相互に通信可能とされている。とくに、端末装置100と署名生成装置200との間の通信路、代替端末装置400と署名生成装置200との間の通信路、バックアップ装置500と署名生成装置200との間の通信路それぞれは、暗号技術などにより秘匿性の高い通信が実現されていることが望ましい。
【0052】
端末装置100、署名生成装置200、署名検証装置300については、実施形態1と同じであるから重複説明を省略する。
【0053】
<代替端末装置>
代替端末装置400は、計算機能およびデータ送受信機能を有する装置であり、実質的に端末装置100と同程度の機能が想定される。この意味では代替端末装置400は端末装置100と異なるものではないが、同一ユーザの管理下にある、或いは端末装置100の紛失や破損などを契機として代替端末400が使用されるようになるということを予定している点で、代替端末装置400は端末装置100と異なる。
【0054】
<バックアップ装置>
バックアップ装置500は、データ保管とデータ送受信機能を有すれば十分な装置であり、例えばサーバ装置などで例示される。本発明では一つまたは複数のバックアップ装置を含み得るが、実施形態2では、本発明の理解を容易にするため、代理署名システム2は一つのバックアップ装置500を含むとする。
【0055】
代理署名システム2における代理署名処理を、図5−7を参照しながら叙述する。以降では、端末装置100−iに対応する署名検証鍵をAPサーバ装置300に登録する処理手順(登録プロセス)、署名生成鍵SKiを分割して分散管理する処理手順(分割プロセス)、電子署名を生成する処理手順(署名プロセス)、および署名生成鍵SKiを復元する処理手順(復旧プロセス)に分けて説明する。各装置の機能構成については、図11を参照されたい。
【0056】
〈登録プロセス〉
署名生成装置の署名鍵生成部201が、署名生成鍵SKiおよび署名検証鍵PKiを生成する(ステップS101)。署名生成鍵SKiは端末装置100−iを特定する情報(識別子)に対応付けられて、署名生成装置200の記憶部209に記憶される。本発明で利用可能な署名方式としてRSA署名方式、Schnorr署名方式、これらの改良方式などが挙げられる(上記参考文献A,B参照)。
【0057】
署名生成装置200の送信部207が、APサーバ装置300に対して署名検証鍵PKiを送信し(ステップS102)、APサーバ装置300の受信部308が、署名検証鍵PKiを受信する(ステップS103)。署名検証鍵PKiは端末装置100−iを特定する上記識別子に対応付けられて、APサーバ装置300の記憶部309に記憶される。
【0058】
〈分割プロセス〉
APサーバ装置300の固有データ生成部301が、端末装置100−iに固有の固有データhi1を生成する(ステップS104)。固有データhi1は端末装置100−iを特定する情報(識別子)に対応付けられて、APサーバ装置300の記憶部309に記憶される。
【0059】
APサーバ装置300の送信部307が、端末装置100−iに対して固有データhi1を送信し(ステップS105)、端末装置100−iの受信部108が、固有データhi1を受信する(ステップS106)。
【0060】
端末装置100−iの固有演算部101が、固有データhi1に対して端末装置100−iに固有の演算gを行い、この演算結果ri1=g(hi1)を出力する(ステップS107)。固有の演算gが例えば上述のハッシュ演算Hashであれば、端末装置100−iに固有の鍵データKi1と入力の固有データhi1に対してKi1およびhi1を連結したデータhi1‖Ki1のハッシュ値Hash(hi1‖Ki1)が演算結果ri1である。
【0061】
端末装置100−iの送信部107は、署名生成装置200に対して演算結果ri1を送信し(ステップS108)、署名生成装置200の受信部208が、演算結果ri1を受信する(ステップS109)。ステップS108の処理の後、端末装置100−iの制御部105は、端末装置100−iの図示しない記憶部から演算結果ri1を消去する処理を行う(ステップS108a)。
【0062】
署名生成装置200の分割部203が、署名生成鍵SKiを分割して得られる3種類の断片のうち少なくとも2種類の断片から署名生成鍵SKiを復元可能であるが、3種類の断片のうち1種類の断片から署名生成鍵SKiを復元不能な上記分割方法に従って、演算結果ri1が署名生成鍵SKiの断片の一つとなるように、記憶部209に記憶されている端末装置100−iに対応する署名生成鍵SKiを3種類の断片ri1,ui1,vi1に分割する(ステップS110)。断片ui1は端末装置100−iを特定する上記識別子に対応付けられて、署名生成装置200の記憶部209に記憶される(ステップS111)。
【0063】
署名生成装置200の送信部207が、バックアップ装置500に対して断片vi1を送信し(ステップS112)、バックアップ装置500の受信部508が、断片vi1を受信する(ステップS113)。そして、断片vi1は端末装置100−iを特定する上記識別子に対応付けられて、バックアップ装置500の記憶部509に記憶される(ステップS114)。
【0064】
なお、ステップS110の処理の後、署名生成装置200の制御部205が、演算結果ri1と署名生成鍵SKiを署名生成装置200の記憶部209から消去する処理を行う(ステップS115)。
【0065】
〈署名プロセス〉
次に、APサーバ装置300の持つアプリケーションソフトウェアの端末装置100に対する適用には電子署名が必要であり、例えば端末装置100−iからのAPサーバ装置300に対する要求がトリガーとなって署名プロセスが実施される。
【0066】
APサーバ装置300の送信部307が、記憶部309に記憶されている端末装置100−iに対応する固有データhi1を端末装置100−iに対して送信し(ステップS116)、端末装置100−iの受信部108が、ステップS116にて送信された固有データhi1を受信する(ステップS117)。
【0067】
端末装置100−iの固有演算部101が、ステップS117にて受信した固有データhi1に対して端末装置100−iに固有の演算gを行い、この演算結果ri1=g(hi1)を出力する(ステップS118)。この演算結果riは、ステップS107の処理で得られたriと同じである。
【0068】
端末装置100−iの送信部107が、署名生成装置200に対してステップS118にて得られた演算結果ri1を送信し(ステップS119)、署名生成装置200の受信部208が、ステップS119にて送信された演算結果ri1を受信する(ステップS120)。ステップS119の処理の後、端末装置100−iの制御部105は、端末装置100−iの図示しない記憶部から演算結果ri1を消去する処理を行う(ステップS119a)。
【0069】
一方、APサーバ装置300の送信部307が、署名生成装置200に対して電子署名付与の対象となるメッセージmを送信し(ステップS121)、署名生成装置200の受信部208が、メッセージmを受信する(ステップS122)。
【0070】
APサーバ装置300の署名生成部202が、ステップS120にて受信した演算結果ri1とAPサーバ装置300の記憶部309に記憶されている断片ui1を用いて署名生成鍵SKiを復元し、復元された署名生成鍵SKiを用いてメッセージmに対して電子署名Sig=Gsig(m,SKi)を生成する(ステップS123)。
【0071】
署名生成装置200の送信部207が、APサーバ装置300に対して電子署名Sigを送信し(ステップS124)、APサーバ装置300の受信部308が、電子署名Sigを受信する(ステップS125)。
【0072】
APサーバ装置300の署名検証部302が、記憶部309に記憶されている端末装置100−iに対応する署名検証鍵PKiを用いて電子署名Sigを検証する(ステップS126)。
【0073】
なお、ステップS123の処理の後、署名生成装置200の制御部205が、演算結果ri1と署名生成鍵SKiを署名生成装置200の記憶部209から消去する処理を行う(ステップS124a)。
【0074】
〈復旧プロセス〉
この復旧プロセスは、端末装置100の紛失や破損などを契機として実施される。
【0075】
APサーバ装置300の固有データ生成部301が、代替端末装置400に固有の固有データhi2を生成する(ステップS127)。固有データhi2は固有データhi1に替えて端末装置100−iを特定する情報(識別子)に対応付けられて、さらに、固有データhi2は代替端末装置400を特定する情報(識別子)に対応付けられて、APサーバ装置300の記憶部309に記憶される。
【0076】
APサーバ装置300の送信部307が、代替端末装置400に対して固有データhi2を送信し(ステップS128)、代替端末装置400の受信部408が、固有データhi2を受信する(ステップS129)。
【0077】
代替端末装置400の固有演算部401が、固有データhi2に対して代替端末装置400に固有の演算yを行い、この演算結果ri2=y(hi2)を出力する(ステップS130)。固有の演算yが例えば上述のハッシュ演算Hashであれば、代替端末装置400に固有の鍵データKi2と入力の固有データhi2に対してKi2およびhi2を連結したデータhi2‖Ki2のハッシュ値Hash(hi2‖Ki2)が演算結果ri2である。
【0078】
代替端末装置400の送信部407が、署名生成装置200に対して演算結果ri2を送信し(ステップS131)、署名生成装置200の受信部208が、演算結果ri2を受信する(ステップS132)。ステップS131の処理の後、代替端末装置400の制御部405は、代替端末装置400の図示しない記憶部から演算結果ri2を消去する処理を行う(ステップS131a)。
【0079】
署名生成装置200からの要求を受けて、バックアップ装置500の送信部507が、バックアップ装置500の記憶部509に記憶されている、端末装置100−iに対応付けられた断片vi1を署名生成装置200に対して送信し(ステップS133)、署名生成装置200の受信部208が、断片vi1を受信する(ステップS134)。
【0080】
署名生成装置200の断片更新部204が、署名生成装置200の記憶部209に記憶されている断片ui1とステップS214にて受信した断片vi1を用いて署名生成鍵SKiを復元し、上記分割方法に従って、演算結果ri2が復元された署名生成鍵SKiの断片の一つとなるように、復元された署名生成鍵SKiを3種類の断片ri2,ui2,vi2に分割する(ステップS135)。断片ui2は代替端末装置400を特定する上記識別子に対応付けられて、署名生成装置200の記憶部209に記憶される(ステップS136)。
【0081】
署名生成装置200の送信部207が、バックアップ装置500に対して断片vi2を送信し(ステップS137)、バックアップ装置500の受信部508が、断片vi2を受信する(ステップS138)。そして、断片vi2は代替端末装置400を特定する上記識別子に対応付けられて、バックアップ装置500の記憶部509に記憶される(ステップS139)。
【0082】
なお、ステップS135の処理の後、署名生成装置200の制御部205が、演算結果ri2と署名生成鍵SKiを署名生成装置200の記憶部209から消去する処理を行う(ステップS140)。
【0083】
ステップS135における処理が実行された後は、代替端末装置400からの要求に基づき署名生成装置200が電子署名を生成することになる。つまり、代替端末装置400に対して署名プロセスの各ステップS116−S126が実行される。この際、上述の各ステップS116−S126の説明にて、「端末装置100−i」を「代替端末装置400」に、「固有データhi1」を「固有データhi2」に、「演算結果ri1」を「演算結果ri2」に、「断片ri1」を「断片ri2」に、「断片ui1」を「断片ui2」に、「断片vi1」を「断片vi2」に、「鍵データKi1」を「鍵データKi2」に読み替えればよい。
【0084】
復旧プロセスでは、端末装置100の紛失や破損が生じても署名検証鍵PKiを変更する必要が無いという運用上のメリットがある。また、紛失した端末装置100−iを不正に用いようとしても、APサーバ装置300が固有データhi1の送信を拒否する、または署名生成装置200が演算結果ri1の受信を拒否することで不正を防ぐことができる。
【0085】
《実施形態2の変形例》
実施形態2におけるセキュリティを向上させる実施形態2の変形例について説明する(図8−10)。実施形態2では署名生成鍵SKiの断片となる演算結果riが十分にランダムであるか不明であるから、この変形例では、分割処理を実行するに際して演算結果riを乱数で撹乱する。この処理に併せて署名生成処理および断片更新処理が変更される。
【0086】
具体的には、実施形態2において、
ステップS110に替えて、署名生成装置200の分割部203が、署名生成鍵SKiを分割して得られる3種類の断片のうち少なくとも2種類の断片から署名生成鍵SKiを復元可能であるが、3種類の断片のうち1種類の断片から署名生成鍵SKiを復元不能な上記分割方法に従って、演算結果ri1を乱数生成部(図示せず)で生成された乱数ti1で撹乱して得られる情報si1が署名生成鍵SKiの断片の一つとなるように、記憶部209に記憶されている端末装置100−iに対応する署名生成鍵SKiを3種類の断片si1,ui1,vi1に分割する処理(ステップS110p)とし、
ステップS123に替えて、APサーバ装置300の署名生成部202が、ステップS200にて受信した演算結果ri1を上記乱数ti1で撹乱して得られる情報si1とAPサーバ装置300の記憶部309に記憶されている断片ui1を用いて署名生成鍵SKiを復元し、復元された署名生成鍵SKiを用いてメッセージmに対して電子署名Sig=(m,SKi)を生成する処理(ステップS123p)とし、
ステップS135に替えて、署名生成装置200の断片更新部204が、署名生成装置200の記憶部209に記憶されている断片ui1とステップS214にて受信した断片vi1を用いて署名生成鍵SKiを復元し、上記分割方法に従って、演算結果ri2を乱数生成部(図示せず)で生成された乱数ti2で撹乱して得られる情報si2が復元された署名生成鍵SKiの断片の一つとなるように、復元された署名生成鍵SKiを3種類の断片si2,ui2,vi2に分割する処理(ステップS135p)とする。これらの他の処理は実施形態2と同じであるから説明を省略する。
【0087】
「演算結果ri*を乱数ti*で撹乱して得られる情報si*」(*=1 or 2)は例えばsi*=ri*(+)ti*である。ここで(+)は排他的論理和を表す。乱数ti1は、端末装置100−iを特定する上記識別子に対応付けられて、署名生成装置200の記憶部209に記憶され、乱数ti2は、代替端末装置400を特定する上記識別子に対応付けられて、署名生成装置200の記憶部209に記憶される。
【0088】
このような処理により、署名生成鍵と署名検証鍵を生成するに際して用いられる情報si*が十分にランダムであることが保証される。なお、乱数ti*はAPサーバ装置300によって生成・保存され、署名プロセスの度に署名生成装置200に送信されるとしてもよい。また、この変形例ではXOR演算を用いて十分なランダム性を保障する処理を説明したが、十分なランダム性を保障することができるならば他の演算を用いてもよい。
【0089】
<補記>
代理署名システムに含まれるハードウェアエンティティ(端末装置、署名生成装置、署名検証装置、代替端末装置、バックアップ装置)は、キーボードなどが接続可能な入力部、液晶ディスプレイなどが接続可能な出力部、ハードウェアエンティティの外部に通信可能な通信装置(例えば通信ケーブル)が接続可能な通信部、CPU(Central Processing Unit)〔キャッシュメモリやレジスタなどを備えていてもよい。〕、メモリであるRAMやROM、ハードディスクである外部記憶装置並びにこれらの入力部、出力部、通信部、CPU、RAM、ROM、外部記憶装置の間のデータのやり取りが可能なように接続するバスを有している。また必要に応じて、ハードウェアエンティティに、CD−ROMなどの記録媒体を読み書きできる装置(ドライブ)などを設けるとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。
【0090】
ハードウェアエンティティの外部記憶装置には、上述の機能を実現するために必要となるプログラムおよびこのプログラムの処理において必要となるデータなどが記憶されている(外部記憶装置に限らず、例えばプログラムを読み出し専用記憶装置であるROMに記憶させておくなどでもよい。)。また、これらのプログラムの処理によって得られるデータなどは、RAMや外部記憶装置などに適宜に記憶される。上述の説明では、演算結果やその格納領域のアドレスなどを記憶するRAMやレジスタなどの記憶装置を単に「記憶部」とした。
【0091】
ハードウェアエンティティでは、外部記憶装置〔あるいはROMなど〕に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてメモリに読み込まれて、適宜にCPUで解釈実行・処理される。その結果、CPUが所定の機能(例えば、固有演算部、固有データ生成部、署名検証部、署名鍵生成部、署名生成部、分割部、断片更新部、制御部など)を実現する。
【0092】
各実施形態で説明したハードウェアエンティティの細部においては、数論における数値計算処理が必要となる場合があるが、数論における数値計算処理自体は、周知技術と同様にして達成されるので、その演算処理方法などの詳細な説明は省略した(この点の技術水準を示す数論における数値計算処理が可能なソフトウェアとしては、例えばPARI/GP、KANT/KASHなどが挙げられる。PARI/GPについては、例えばインターネット〈URL: http://pari.math.u-bordeaux.fr/〉[平成22年4月9日検索]を参照のこと。KANT/KASHについては、例えばインターネット〈URL: http://www.math.tu-berlin.de/algebra/〉[平成22年4月9日検索]を参照のこと。)。
また、この点に関する文献として、参考文献Cを挙げることができる。
(参考文献C) H. Cohen, "A Course in Computational Algebraic Number Theory", GTM 138, Springer-Verlag, 1993.
【0093】
本発明は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、上記実施形態において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。
【0094】
また、上記実施形態において説明したハードウェアエンティティにおける処理機能をコンピュータによって実現する場合、ハードウェアエンティティが有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記ハードウェアエンティティにおける処理機能がコンピュータ上で実現される。
【0095】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP−ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。
【0096】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【0097】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
【0098】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、ハードウェアエンティティを構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【技術分野】
【0001】
本発明は、証明力の高い電子署名を第三者装置が代理で生成する代理署名技術に関する。
【背景技術】
【0002】
電子署名技術において、端末装置が署名生成処理を第三者装置に委託して第三者装置が電子署名を生成する代理署名技術が知られている。このような従来技術として例えば特許文献1が挙げられる。代理署名が行われる要請として、例えば、端末装置の計算能力が低い場合などが考えられる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−148033号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
代理署名技術では、通常、端末装置は自らの秘密鍵を第三者装置に送信しなければならない。しかし、当該秘密鍵を得た第三者装置は、爾後、当該秘密鍵が有効である限り自由に端末装置の署名を生成できてしまう。つまり、端末装置が署名対象を特定のメッセージに制限して第三者装置に電子署名の生成を委託したとしても、ひとたび秘密鍵を得た第三者装置は端末装置からの委託とは無関係に端末装置の電子署名を生成できてしまう。
【0005】
このため、端末装置の代理として第三者装置が電子署名を生成するにあたり、当該第三者装置による電子署名生成が、端末装置からの委託に基づくものであることを証明できる仕組みが必要とされる。
【0006】
本発明は、このような点に鑑みてなされたものであり、証明力の高い電子署名を第三者装置が代理で生成する代理署名技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の代理署名技術は、次のとおりである。すなわち、端末装置は固有の演算機能を有しており、端末装置は固有データに対するその演算機能による演算結果を署名生成装置に送り、当該演算結果を破棄する。また、署名生成装置は当該演算結果から署名検証鍵の生成を行い、予め署名検証鍵を署名検証装置へ送っておく。署名プロセスでは、端末装置が改めて上記固有データに対するその演算機能による演算結果を署名生成装置に送り、署名生成装置は当該演算結果から署名生成鍵の生成を行い、当該署名生成鍵を用いてメッセージに対する電子署名を生成して署名検証装置へ送り、当該演算結果と当該署名生成鍵を破棄する。署名検証装置は、電子署名を署名検証鍵で検証する。
【0008】
この代理署名技術にて、セキュリティ向上の観点から、署名生成鍵と署名検証鍵の生成の際、上記演算結果に替えて、上記演算結果を乱数で撹乱して得られる情報を用いてもよい。
【0009】
あるいは、本発明の代理署名技術は、次のとおりである。すなわち、署名生成装置は、署名生成鍵と署名検証鍵を生成し、予め署名検証鍵を署名検証装置へ送っておく。端末装置は固有の演算機能を有しており、端末装置は固有データに対するその演算機能による演算結果r1を署名生成装置に送り、当該演算結果r1を破棄する。また、署名生成装置は当該演算結果r1を署名生成鍵の断片の一つとなるように署名生成鍵を3種類の断片r1,u1,v1に分割し[分割処理]、断片u1を自身の記憶部に記憶し、断片v1をバックアップ装置に送り、断片r1と署名生成鍵を破棄する。バックアップ装置は断片v1を自身の記憶部に記憶する。署名プロセスでは、端末装置が改めて上記固有データに対するその演算機能による演算結果r1を署名生成装置に送り、署名生成装置は当該演算結果r1と断片u1から署名生成鍵の復元し、当該署名生成鍵を用いてメッセージに対する電子署名を生成して署名検証装置へ送り、当該演算結果r1と当該署名生成鍵を破棄する。署名検証装置は、電子署名を署名検証鍵で検証する。復旧プロセスでは、代替端末装置は固有の演算機能を有しており、代替端末装置は固有データに対するその演算機能による演算結果r2を署名生成装置に送り、当該演算結果r2を破棄する。また、署名生成装置は断片u1とバックアップ装置から提供を受けたv1から署名生成鍵を復元して、演算結果r2を復元された署名生成鍵の断片の一つとなるように復元された署名生成鍵を3種類の断片r2,u2,v2に分割し[断片更新処理]、断片u2を自身の記憶部に記憶し、断片v2をバックアップ装置に送り、断片r2と署名生成鍵を破棄する。バックアップ装置は断片v2を自身の記憶部に記憶する。
【0010】
この代理署名技術にて、セキュリティ向上の観点から、署名生成鍵の分割処理およびの断片更新処理の際、上記演算結果r1,r2に替えて、上記演算結果r1,r2を乱数で撹乱して得られる情報s1,s2を用いてもよい。
【発明の効果】
【0011】
本発明に拠れば、端末装置Aに入力される固有データから、端末装置A以外の端末装置が、端末装置Aの演算結果および当該演算結果から一意に生成される署名生成鍵を求めることが困難であれば、署名生成装置が正しく電子署名の生成および演算結果と署名生成鍵の破棄を行っている限り、端末装置Aが関与すること無く、署名検証鍵を用いて署名検証に合格するような電子署名を生成することは困難となるから、署名生成装置が生成した電子署名は、端末装置Aからの委託に基づくものであり、ユーザの意思の下で生成された電子署名、すなわち証明力の高い電子署名ということができる。
【図面の簡単な説明】
【0012】
【図1】実施形態1における代理署名システムを示す図。
【図2】実施形態1における代理署名方法の処理手順を示す図。
【図3】実施形態1の変形例における代理署名方法の処理手順を示す図。
【図4】実施形態2における代理署名システムを示す図。
【図5】実施形態2における代理署名方法の処理手順を示す図(その1)。
【図6】実施形態2における代理署名方法の処理手順を示す図(その2)。
【図7】実施形態2における代理署名方法の処理手順を示す図(その3)。
【図8】実施形態2の変形例における代理署名方法の処理手順を示す図(その1)。
【図9】実施形態2の変形例における代理署名方法の処理手順を示す図(その2)。
【図10】実施形態の変形例2における代理署名方法の処理手順を示す図(その3)。
【図11】各実施形態に関わる代理署名システムの構成要素である端末装置、署名生成装置、署名検証装置(APサーバ装置)、代替端末装置、バックアップ装置の機能構成を示す図。
【発明を実施するための形態】
【0013】
《実施形態1》
[代理署名システム]
実施形態1の代理署名システム1は、図1に示すように、端末装置100と、署名生成装置200と、署名検証装置300とを少なくとも含んで構成される。これらの各装置は、例えば通信網5を経由して、相互に通信可能とされている。とくに、端末装置100と署名生成装置200との間の通信路は、暗号技術などにより秘匿性の高い通信が実現されていることが望ましい。
【0014】
本発明の代理署名システムは、ユーザの数に応じて一つまたは複数の端末装置100と、サーバ管理者(例えばアプリケーションサービスプロバイダ)の数に応じて一つまたは複数の署名検証装置300を含みえるが、本発明の理解を容易にするため、実施形態1では、代理署名システム1はN個の端末装置100−1,・・・,100−i,・・・,100−Nと一つの署名検証装置300を含むとする。ただし、Nは2以上の整数とする。
【0015】
また、本発明の代理署名システムは、一つまたは複数の署名生成装置200を含みえる。代理署名システムが複数の署名生成装置200を含む場合、署名生成と署名検証の一貫性(例えばRSA署名方式などであれば署名生成鍵と署名検証鍵との一対の関係)が保持されるように運用されることが好ましい。例えば、署名検証装置300が端末装置100に対して電子署名を要求する際、端末装置100に対して、端末装置100が電子署名の生成を委託する署名生成装置200を指定する情報を送る仕組みや、或いは、端末装置100が電子署名の生成を委託した署名生成装置200を特定する情報を、当該電子署名を要求した署名検証装置300に送る仕組みが望まれる。このような仕組みは、例えば装置相互間の通信データに当該情報を含めることによって容易に構築される。実施形態1では、本発明の理解を容易にするため、代理署名システム1は一つの署名生成装置200を含むとする。
【0016】
<端末装置>
端末装置100は、計算機能およびデータ送受信機能を有する装置であり、例えばパーソナルコンピュータ、携帯電話、ICカードなどで例示される。とくに、端末装置100が署名生成装置300に電子署名の生成を委託しなければならない状況を想定すると、端末装置100として、計算能力が低い、計算能力が特定の演算に特化されている、或いはアプリケーションソフトウェアの追加が困難であり、さらに言えばアプリケーションソフトウェア毎に異なる電子署名用の鍵生成処理や署名生成処理などを実行することが困難な装置を想定することが、代理署名の必要性を理解しやすくするであろう。
【0017】
ただし、端末装置100は、固有の演算機能を有するものとする。この固有の演算機能は、特に限定はなく、例えば鍵付きのハッシュ演算、すなわち鍵データKと入力の固定データSに対してKおよびSを連結したデータS‖Kのハッシュ値Hash(S‖K)を出力する機能などである。ここで鍵データKは端末装置100ごとに異なっている。あるいは、アプリケーションソフトウェアで用いる電子署名とは異なる電子署名機能を予め端末装置100が有しているとき、当該電子署名機能を固有の演算機能としてもよい。
【0018】
<署名生成装置>
署名生成装置200は、計算機能およびデータ送受信機能を有する装置である。署名生成装置200は、電子署名を生成するだけの計算能力を有することが好ましい。とくに、署名生成装置200は署名生成鍵(秘密鍵)を扱うことから耐タンパー性を有することが望ましく、署名生成装置200は例えばHSM(Hardware Security Module)やTPM(Trusted Platform Module)によって実現される。
【0019】
<署名検証装置>
署名検証装置300は、計算機能およびデータ送受信機能を有する装置であり、例えばサーバ装置などで例示される。実施形態1では、署名検証装置300は、例えば端末装置100に対してアプリケーションソフトウェアを実行する装置であり、この観点から、爾後、署名検証装置300をAPサーバ装置300と呼称することにする。また、実施形態1では、端末装置100に対する当該アプリケーションソフトウェアの適用には電子署名を要するものとする。
【0020】
代理署名システム1における代理署名処理を、図2を参照しながら叙述する。各装置の機能構成については、図11を参照されたい。なお、N個の端末装置100−1,・・・,100−i,・・・,100−Nのうちのどの端末装置に対しても同じ代理署名処理となるから、この説明では、任意性を考慮してi番目の端末装置100−iに対する代理署名処理を説明する。
【0021】
〈登録プロセス〉
まず、署名プロセスに先駆けて署名用の鍵の登録プロセスが実行される。
【0022】
APサーバ装置300の固有データ生成部301が、端末装置100−iに固有の固有データhiを生成する(ステップS1)。固有データhiは端末装置100−iを特定する情報(識別子)に対応付けられて、APサーバ装置300の記憶部309に記憶される。
【0023】
APサーバ装置300の送信部307が、端末装置100−iに対して固有データhiを送信し(ステップS2)、端末装置100−iの受信部108が、固有データhiを受信する(ステップS3)。
【0024】
端末装置100−iの固有演算部101が、固有データhiに対して端末装置100−iに固有の演算gを行い、この演算結果ri=g(hi)を出力する(ステップS4)。固有の演算gが例えば上述のハッシュ演算Hashであれば、端末装置100−iに固有の鍵データKiと入力の固有データhiに対してKiおよびhiを連結したデータhi‖Kiのハッシュ値Hash(hi‖Ki)が演算結果riである。
【0025】
端末装置100−iの送信部107は、署名生成装置200に対して演算結果riを送信し(ステップS5)、署名生成装置200の受信部208が、演算結果riを受信する(ステップS6)。ステップS5の処理の後、端末装置100−iの制御部105は、端末装置100−iの図示しない記憶部から演算結果riを消去する処理を行う(ステップS5a)。
【0026】
署名生成装置200の署名鍵生成部201が、演算結果riを用いて少なくとも署名検証鍵PKi=Gen(ri)を生成する(ステップS7)。署名鍵生成部201は、演算結果riをパラメータとして署名生成鍵SKiと署名検証鍵PKiをセットで求めるか、または署名生成鍵SKiと署名検証鍵PKiの何れかを一意に生成する機能Genを持つ。また、署名鍵生成部201は、演算結果riを署名生成鍵SKiとし、演算結果riから署名検証鍵PKiを生成するとしてもよい。実施形態1では、SKi=Gen(ri)=ri,PKi=Gen(ri)とする。本発明で利用可能な署名方式としてRSA署名方式、Schnorr署名方式、これらの改良方式などが挙げられる(参考文献A,B参照)。
(参考文献A)岡本龍明、山本博資著、「現代暗号」、産業図書、1997、ISBN-13: 978-4782853535
(参考文献B)宇根正志、岡本龍明、「最近のデジタル署名における理論研究動向について」、日本銀行金融研究所/金融研究/2000. 4、[平成22年4月14日検索]、インターネット〈http://www.imes.boj.or.jp/japanese/kinyu/2000/kk19-b1-3.pdf〉
【0027】
(Schnorr署名方式)
[鍵生成]
素数pと、p-1の素因数qを選択する。さらに、pを法とする乗法群の元xを選択し、y=g(-x) mod pを求める。ここでgは、pを法とする乗法群の原始元であり、gの位数はqであるとする。署名生成鍵はx、署名検証鍵はy,g,p,qである。
[署名生成]
乱数kを生成し、メッセージMに対する署名(e,s)を生成する。e=Hash(M,r), s=(xe+k) mod q, r=gk mod p. Hashはハッシュ関数である。
[署名検証]
v=gsye mod p, e1=Hash(M,v)を計算し、e=e1の成否を検証する。
【0028】
(RSA署名方式)
[鍵生成]
十分に大きい素数p,qを選択し、n=pqを求める。p-1とq-1の最小公倍数L=LCM(p-1,q-1)を求める。最大公約数GCD(e,L)=1を満たす自然数eを選択し、ed=1 mod Lを満たすdを選択する。署名生成鍵はd、署名検証鍵はe,nである。
[署名生成]
メッセージMに対する署名Sを生成する。S=(Hash(M))d mod n.
[署名検証]
Hash(M)=Semod nの成否を検証する。
【0029】
署名生成装置200の送信部207が、APサーバ装置300に対して署名検証鍵PKiを送信し(ステップS8)、APサーバ装置300の受信部308が、署名検証鍵PKiを受信する(ステップS9)。署名検証鍵PKiは端末装置100−iを特定する上記識別子に対応付けられて、APサーバ装置300の記憶部309に記憶される。
【0030】
なお、ステップS7ないしステップS8の処理の後、署名生成装置200の制御部205が、演算結果riを署名生成装置200の記憶部209から消去する処理を行う(ステップS8a)。
【0031】
〈署名プロセス〉
次に、APサーバ装置300の持つアプリケーションソフトウェアの端末装置100に対する適用には電子署名が必要であり、例えば端末装置100−iからのAPサーバ装置300に対する要求がトリガーとなって署名プロセスが実施される。
【0032】
APサーバ装置300の送信部307が、記憶部309に記憶されている端末装置100−iに対応する固有データhiを端末装置100−iに対して送信し(ステップS10)、端末装置100−iの受信部108が、ステップS10にて送信された固有データhiを受信する(ステップS11)。
【0033】
端末装置100−iの固有演算部101が、ステップS11にて受信した固有データhiに対して当該端末装置100−iに固有の演算gを行い、この演算結果ri=g(hi)を出力する(ステップS12)。この演算結果riは、ステップS4の処理で得られたriと同じである。
【0034】
端末装置100−iの送信部107が、署名生成装置200に対してステップS12にて得られた演算結果riを送信し(ステップS13)、署名生成装置200の受信部208が、ステップS13にて送信された演算結果riを受信する(ステップS14)。ステップS13の処理の後、端末装置100−iの制御部105は、端末装置100−iの図示しない記憶部から演算結果riを消去する処理を行う(ステップS13a)。
【0035】
また、APサーバ装置300の送信部307が、署名生成装置200に対して電子署名付与の対象となるメッセージmを送信し(ステップS15)、署名生成装置200の受信部208が、メッセージmを受信する(ステップS16)。
【0036】
署名生成装置200の署名鍵生成部201が、ステップS13にて受信した演算結果riを用いて少なくとも署名生成鍵SKi=Gen(ri)を生成する(ステップS17)。署名方式は上述のとおりである。実施形態1ではSKi=Gen(ri)=riである。
【0037】
そして、署名生成装置200の署名生成部202が、署名生成鍵SKiを用いてメッセージmに対して電子署名Sig=Gsig(m,SKi)を生成する(ステップS18)。
【0038】
署名生成装置200の送信部207が、APサーバ装置300に対して電子署名Sigを送信し(ステップS19)、APサーバ装置300の受信部308が、電子署名Sigを受信する(ステップS20)。
【0039】
APサーバ装置300の署名検証部302が、記憶部309に記憶されている端末装置100−iに対応する署名検証鍵PKiを用いて電子署名Sigを検証する(ステップS21)。
【0040】
なお、ステップS18ないしステップS19の処理の後、署名生成装置200の制御部205が、演算結果riと署名生成鍵SKiを署名生成装置200の記憶部209から消去する処理を行う(ステップS19a)。
【0041】
以上より、端末装置100−iに入力される固有データhiから、端末装置100−i以外の端末装置が、演算結果riおよび当該演算結果から一意に生成される署名生成鍵SKiを求めることが困難であれば、署名生成装置200が正しく電子署名の生成および演算結果riと署名生成鍵SKiの破棄を行っている限り、端末装置100−iが関与すること無く、署名検証鍵PKiを用いて署名検証に合格するような電子署名Sigを生成することは困難となる。
【0042】
演算結果は端末装置ごとに固有の演算機能によるものであるため、端末装置100−i以外の端末装置が演算結果riを求めることは通常、困難と見なすことができる。これは例えば上述のとおり、固有の演算機能を鍵付きのハッシュ演算、すなわち鍵データKと入力の固定データSに対してKおよびSを連結したデータS‖Kのハッシュ値Hash(S‖K)を出力する機能とすることで容易に実現できる。また演算結果riをセキュア通信によって署名生成装置200に送信し、署名生成装置200をHSMなどによって実現して処理機能の改変を困難とすることで、不正な演算結果の取得を困難とし、署名生成装置200が正しく電子署名の生成および演算結果の破棄を行っているものと見なすことができる。
【0043】
さらに、署名生成装置200は、署名生成処理の際を除き、署名生成鍵SKiを保有していないため、たとえ第三者装置が署名生成装置200の内部データを得ることができたとしても、署名生成時を除き署名生成鍵SKiを不正に盗まれずに済む。署名生成時点でのリスクについては、署名生成装置200に対する盗難や不正アクセスの痕跡などの異常が確認された場合ただちに署名生成を拒否するといった対応によりリスクヘッジが可能である。
【0044】
したがって、署名生成装置200が生成した電子署名Sigは、端末装置100−iからの委託に基づくものであり、ユーザの意思の下で生成された電子署名、すなわち証明力の高い電子署名ということができる。
【0045】
《実施形態1の変形例》
実施形態1におけるセキュリティを向上させる実施形態1の変形例について説明する(図3参照)。実施形態1では演算結果riが端末装置間で十分にランダムであるか不明であるから、この変形例では、署名生成鍵と署名検証鍵を生成するに際して演算結果riを乱数で撹乱する。
【0046】
具体的には、実施形態1において、ステップS7に替えて、署名生成装置200の署名鍵生成部201が、演算結果riを乱数生成部(図示せず)で生成された乱数tiで撹乱して得られる情報siを用いて少なくとも署名検証鍵PKiを生成する処理(ステップS7p)とし、ステップS17に替えて、署名生成装置200の署名鍵生成部201が、ステップS13にて受信した演算結果riを上記乱数tiで撹乱して得られる情報siを用いて少なくとも署名生成鍵SKiを生成する処理(ステップS17p)とする。これらの他の処理は実施形態1と同じであるから説明を省略する。
【0047】
「演算結果riを乱数tiで撹乱して得られる情報si」は例えばsi=ri(+)tiである。ここで(+)は排他的論理和を表す。署名鍵生成部201は、情報siをパラメータとして署名生成鍵SKiと署名検証鍵PKiをセットで求めるか、または署名生成鍵SKiと署名検証鍵PKiの何れかを一意に生成する。また、署名鍵生成部201は、情報siを署名生成鍵SKiとし、情報siから署名検証鍵PKiを生成するとしてもよい。乱数tiは、端末装置100−iを特定する上記識別子に対応付けられて、署名生成装置200の記憶部209に記憶される。
【0048】
このような処理により、署名生成鍵と署名検証鍵を生成するに際して用いられる情報siが十分にランダムであることが保証される。なお、乱数tiはAPサーバ装置300によって生成・保存され、署名プロセスの度に署名生成装置200に送信されるとしてもよい。また、この変形例ではXOR演算を用いて十分なランダム性を保障する処理を説明したが、十分なランダム性を保障することができるならば他の演算を用いてもよい。
【0049】
《実施形態2》
実施形態2は、実施形態1において端末装置からの秘密値(例えば上記鍵データK)の漏洩防止や端末紛失時の秘密値のリカバリを実現することを目的とした実施形態である。実施形態1と同じ構成要素には同じ符号を当ててその重複説明を省略する。
【0050】
実施形態2では秘密値を3種類の値(断片)に分け、3種類の断片のうち2種類の断片を用いると当該秘密値を復元でき、1種類の断片だけでは当該秘密値を復元できないような分割技術を用いるものとする。このような分割技術の具体例として、下記参考特許文献に記載されているデータ分割方法が挙げられ、これを援用する。
(参考特許文献)特開2004-213650号公報
【0051】
[代理署名システム]
実施形態2の代理署名システム2は、図4に示すように、端末装置100と、署名生成装置200と、署名検証装置300と、代替端末装置400と、バックアップ装置500を少なくとも含んで構成される。これらの各装置は、例えば通信網5を経由して、相互に通信可能とされている。とくに、端末装置100と署名生成装置200との間の通信路、代替端末装置400と署名生成装置200との間の通信路、バックアップ装置500と署名生成装置200との間の通信路それぞれは、暗号技術などにより秘匿性の高い通信が実現されていることが望ましい。
【0052】
端末装置100、署名生成装置200、署名検証装置300については、実施形態1と同じであるから重複説明を省略する。
【0053】
<代替端末装置>
代替端末装置400は、計算機能およびデータ送受信機能を有する装置であり、実質的に端末装置100と同程度の機能が想定される。この意味では代替端末装置400は端末装置100と異なるものではないが、同一ユーザの管理下にある、或いは端末装置100の紛失や破損などを契機として代替端末400が使用されるようになるということを予定している点で、代替端末装置400は端末装置100と異なる。
【0054】
<バックアップ装置>
バックアップ装置500は、データ保管とデータ送受信機能を有すれば十分な装置であり、例えばサーバ装置などで例示される。本発明では一つまたは複数のバックアップ装置を含み得るが、実施形態2では、本発明の理解を容易にするため、代理署名システム2は一つのバックアップ装置500を含むとする。
【0055】
代理署名システム2における代理署名処理を、図5−7を参照しながら叙述する。以降では、端末装置100−iに対応する署名検証鍵をAPサーバ装置300に登録する処理手順(登録プロセス)、署名生成鍵SKiを分割して分散管理する処理手順(分割プロセス)、電子署名を生成する処理手順(署名プロセス)、および署名生成鍵SKiを復元する処理手順(復旧プロセス)に分けて説明する。各装置の機能構成については、図11を参照されたい。
【0056】
〈登録プロセス〉
署名生成装置の署名鍵生成部201が、署名生成鍵SKiおよび署名検証鍵PKiを生成する(ステップS101)。署名生成鍵SKiは端末装置100−iを特定する情報(識別子)に対応付けられて、署名生成装置200の記憶部209に記憶される。本発明で利用可能な署名方式としてRSA署名方式、Schnorr署名方式、これらの改良方式などが挙げられる(上記参考文献A,B参照)。
【0057】
署名生成装置200の送信部207が、APサーバ装置300に対して署名検証鍵PKiを送信し(ステップS102)、APサーバ装置300の受信部308が、署名検証鍵PKiを受信する(ステップS103)。署名検証鍵PKiは端末装置100−iを特定する上記識別子に対応付けられて、APサーバ装置300の記憶部309に記憶される。
【0058】
〈分割プロセス〉
APサーバ装置300の固有データ生成部301が、端末装置100−iに固有の固有データhi1を生成する(ステップS104)。固有データhi1は端末装置100−iを特定する情報(識別子)に対応付けられて、APサーバ装置300の記憶部309に記憶される。
【0059】
APサーバ装置300の送信部307が、端末装置100−iに対して固有データhi1を送信し(ステップS105)、端末装置100−iの受信部108が、固有データhi1を受信する(ステップS106)。
【0060】
端末装置100−iの固有演算部101が、固有データhi1に対して端末装置100−iに固有の演算gを行い、この演算結果ri1=g(hi1)を出力する(ステップS107)。固有の演算gが例えば上述のハッシュ演算Hashであれば、端末装置100−iに固有の鍵データKi1と入力の固有データhi1に対してKi1およびhi1を連結したデータhi1‖Ki1のハッシュ値Hash(hi1‖Ki1)が演算結果ri1である。
【0061】
端末装置100−iの送信部107は、署名生成装置200に対して演算結果ri1を送信し(ステップS108)、署名生成装置200の受信部208が、演算結果ri1を受信する(ステップS109)。ステップS108の処理の後、端末装置100−iの制御部105は、端末装置100−iの図示しない記憶部から演算結果ri1を消去する処理を行う(ステップS108a)。
【0062】
署名生成装置200の分割部203が、署名生成鍵SKiを分割して得られる3種類の断片のうち少なくとも2種類の断片から署名生成鍵SKiを復元可能であるが、3種類の断片のうち1種類の断片から署名生成鍵SKiを復元不能な上記分割方法に従って、演算結果ri1が署名生成鍵SKiの断片の一つとなるように、記憶部209に記憶されている端末装置100−iに対応する署名生成鍵SKiを3種類の断片ri1,ui1,vi1に分割する(ステップS110)。断片ui1は端末装置100−iを特定する上記識別子に対応付けられて、署名生成装置200の記憶部209に記憶される(ステップS111)。
【0063】
署名生成装置200の送信部207が、バックアップ装置500に対して断片vi1を送信し(ステップS112)、バックアップ装置500の受信部508が、断片vi1を受信する(ステップS113)。そして、断片vi1は端末装置100−iを特定する上記識別子に対応付けられて、バックアップ装置500の記憶部509に記憶される(ステップS114)。
【0064】
なお、ステップS110の処理の後、署名生成装置200の制御部205が、演算結果ri1と署名生成鍵SKiを署名生成装置200の記憶部209から消去する処理を行う(ステップS115)。
【0065】
〈署名プロセス〉
次に、APサーバ装置300の持つアプリケーションソフトウェアの端末装置100に対する適用には電子署名が必要であり、例えば端末装置100−iからのAPサーバ装置300に対する要求がトリガーとなって署名プロセスが実施される。
【0066】
APサーバ装置300の送信部307が、記憶部309に記憶されている端末装置100−iに対応する固有データhi1を端末装置100−iに対して送信し(ステップS116)、端末装置100−iの受信部108が、ステップS116にて送信された固有データhi1を受信する(ステップS117)。
【0067】
端末装置100−iの固有演算部101が、ステップS117にて受信した固有データhi1に対して端末装置100−iに固有の演算gを行い、この演算結果ri1=g(hi1)を出力する(ステップS118)。この演算結果riは、ステップS107の処理で得られたriと同じである。
【0068】
端末装置100−iの送信部107が、署名生成装置200に対してステップS118にて得られた演算結果ri1を送信し(ステップS119)、署名生成装置200の受信部208が、ステップS119にて送信された演算結果ri1を受信する(ステップS120)。ステップS119の処理の後、端末装置100−iの制御部105は、端末装置100−iの図示しない記憶部から演算結果ri1を消去する処理を行う(ステップS119a)。
【0069】
一方、APサーバ装置300の送信部307が、署名生成装置200に対して電子署名付与の対象となるメッセージmを送信し(ステップS121)、署名生成装置200の受信部208が、メッセージmを受信する(ステップS122)。
【0070】
APサーバ装置300の署名生成部202が、ステップS120にて受信した演算結果ri1とAPサーバ装置300の記憶部309に記憶されている断片ui1を用いて署名生成鍵SKiを復元し、復元された署名生成鍵SKiを用いてメッセージmに対して電子署名Sig=Gsig(m,SKi)を生成する(ステップS123)。
【0071】
署名生成装置200の送信部207が、APサーバ装置300に対して電子署名Sigを送信し(ステップS124)、APサーバ装置300の受信部308が、電子署名Sigを受信する(ステップS125)。
【0072】
APサーバ装置300の署名検証部302が、記憶部309に記憶されている端末装置100−iに対応する署名検証鍵PKiを用いて電子署名Sigを検証する(ステップS126)。
【0073】
なお、ステップS123の処理の後、署名生成装置200の制御部205が、演算結果ri1と署名生成鍵SKiを署名生成装置200の記憶部209から消去する処理を行う(ステップS124a)。
【0074】
〈復旧プロセス〉
この復旧プロセスは、端末装置100の紛失や破損などを契機として実施される。
【0075】
APサーバ装置300の固有データ生成部301が、代替端末装置400に固有の固有データhi2を生成する(ステップS127)。固有データhi2は固有データhi1に替えて端末装置100−iを特定する情報(識別子)に対応付けられて、さらに、固有データhi2は代替端末装置400を特定する情報(識別子)に対応付けられて、APサーバ装置300の記憶部309に記憶される。
【0076】
APサーバ装置300の送信部307が、代替端末装置400に対して固有データhi2を送信し(ステップS128)、代替端末装置400の受信部408が、固有データhi2を受信する(ステップS129)。
【0077】
代替端末装置400の固有演算部401が、固有データhi2に対して代替端末装置400に固有の演算yを行い、この演算結果ri2=y(hi2)を出力する(ステップS130)。固有の演算yが例えば上述のハッシュ演算Hashであれば、代替端末装置400に固有の鍵データKi2と入力の固有データhi2に対してKi2およびhi2を連結したデータhi2‖Ki2のハッシュ値Hash(hi2‖Ki2)が演算結果ri2である。
【0078】
代替端末装置400の送信部407が、署名生成装置200に対して演算結果ri2を送信し(ステップS131)、署名生成装置200の受信部208が、演算結果ri2を受信する(ステップS132)。ステップS131の処理の後、代替端末装置400の制御部405は、代替端末装置400の図示しない記憶部から演算結果ri2を消去する処理を行う(ステップS131a)。
【0079】
署名生成装置200からの要求を受けて、バックアップ装置500の送信部507が、バックアップ装置500の記憶部509に記憶されている、端末装置100−iに対応付けられた断片vi1を署名生成装置200に対して送信し(ステップS133)、署名生成装置200の受信部208が、断片vi1を受信する(ステップS134)。
【0080】
署名生成装置200の断片更新部204が、署名生成装置200の記憶部209に記憶されている断片ui1とステップS214にて受信した断片vi1を用いて署名生成鍵SKiを復元し、上記分割方法に従って、演算結果ri2が復元された署名生成鍵SKiの断片の一つとなるように、復元された署名生成鍵SKiを3種類の断片ri2,ui2,vi2に分割する(ステップS135)。断片ui2は代替端末装置400を特定する上記識別子に対応付けられて、署名生成装置200の記憶部209に記憶される(ステップS136)。
【0081】
署名生成装置200の送信部207が、バックアップ装置500に対して断片vi2を送信し(ステップS137)、バックアップ装置500の受信部508が、断片vi2を受信する(ステップS138)。そして、断片vi2は代替端末装置400を特定する上記識別子に対応付けられて、バックアップ装置500の記憶部509に記憶される(ステップS139)。
【0082】
なお、ステップS135の処理の後、署名生成装置200の制御部205が、演算結果ri2と署名生成鍵SKiを署名生成装置200の記憶部209から消去する処理を行う(ステップS140)。
【0083】
ステップS135における処理が実行された後は、代替端末装置400からの要求に基づき署名生成装置200が電子署名を生成することになる。つまり、代替端末装置400に対して署名プロセスの各ステップS116−S126が実行される。この際、上述の各ステップS116−S126の説明にて、「端末装置100−i」を「代替端末装置400」に、「固有データhi1」を「固有データhi2」に、「演算結果ri1」を「演算結果ri2」に、「断片ri1」を「断片ri2」に、「断片ui1」を「断片ui2」に、「断片vi1」を「断片vi2」に、「鍵データKi1」を「鍵データKi2」に読み替えればよい。
【0084】
復旧プロセスでは、端末装置100の紛失や破損が生じても署名検証鍵PKiを変更する必要が無いという運用上のメリットがある。また、紛失した端末装置100−iを不正に用いようとしても、APサーバ装置300が固有データhi1の送信を拒否する、または署名生成装置200が演算結果ri1の受信を拒否することで不正を防ぐことができる。
【0085】
《実施形態2の変形例》
実施形態2におけるセキュリティを向上させる実施形態2の変形例について説明する(図8−10)。実施形態2では署名生成鍵SKiの断片となる演算結果riが十分にランダムであるか不明であるから、この変形例では、分割処理を実行するに際して演算結果riを乱数で撹乱する。この処理に併せて署名生成処理および断片更新処理が変更される。
【0086】
具体的には、実施形態2において、
ステップS110に替えて、署名生成装置200の分割部203が、署名生成鍵SKiを分割して得られる3種類の断片のうち少なくとも2種類の断片から署名生成鍵SKiを復元可能であるが、3種類の断片のうち1種類の断片から署名生成鍵SKiを復元不能な上記分割方法に従って、演算結果ri1を乱数生成部(図示せず)で生成された乱数ti1で撹乱して得られる情報si1が署名生成鍵SKiの断片の一つとなるように、記憶部209に記憶されている端末装置100−iに対応する署名生成鍵SKiを3種類の断片si1,ui1,vi1に分割する処理(ステップS110p)とし、
ステップS123に替えて、APサーバ装置300の署名生成部202が、ステップS200にて受信した演算結果ri1を上記乱数ti1で撹乱して得られる情報si1とAPサーバ装置300の記憶部309に記憶されている断片ui1を用いて署名生成鍵SKiを復元し、復元された署名生成鍵SKiを用いてメッセージmに対して電子署名Sig=(m,SKi)を生成する処理(ステップS123p)とし、
ステップS135に替えて、署名生成装置200の断片更新部204が、署名生成装置200の記憶部209に記憶されている断片ui1とステップS214にて受信した断片vi1を用いて署名生成鍵SKiを復元し、上記分割方法に従って、演算結果ri2を乱数生成部(図示せず)で生成された乱数ti2で撹乱して得られる情報si2が復元された署名生成鍵SKiの断片の一つとなるように、復元された署名生成鍵SKiを3種類の断片si2,ui2,vi2に分割する処理(ステップS135p)とする。これらの他の処理は実施形態2と同じであるから説明を省略する。
【0087】
「演算結果ri*を乱数ti*で撹乱して得られる情報si*」(*=1 or 2)は例えばsi*=ri*(+)ti*である。ここで(+)は排他的論理和を表す。乱数ti1は、端末装置100−iを特定する上記識別子に対応付けられて、署名生成装置200の記憶部209に記憶され、乱数ti2は、代替端末装置400を特定する上記識別子に対応付けられて、署名生成装置200の記憶部209に記憶される。
【0088】
このような処理により、署名生成鍵と署名検証鍵を生成するに際して用いられる情報si*が十分にランダムであることが保証される。なお、乱数ti*はAPサーバ装置300によって生成・保存され、署名プロセスの度に署名生成装置200に送信されるとしてもよい。また、この変形例ではXOR演算を用いて十分なランダム性を保障する処理を説明したが、十分なランダム性を保障することができるならば他の演算を用いてもよい。
【0089】
<補記>
代理署名システムに含まれるハードウェアエンティティ(端末装置、署名生成装置、署名検証装置、代替端末装置、バックアップ装置)は、キーボードなどが接続可能な入力部、液晶ディスプレイなどが接続可能な出力部、ハードウェアエンティティの外部に通信可能な通信装置(例えば通信ケーブル)が接続可能な通信部、CPU(Central Processing Unit)〔キャッシュメモリやレジスタなどを備えていてもよい。〕、メモリであるRAMやROM、ハードディスクである外部記憶装置並びにこれらの入力部、出力部、通信部、CPU、RAM、ROM、外部記憶装置の間のデータのやり取りが可能なように接続するバスを有している。また必要に応じて、ハードウェアエンティティに、CD−ROMなどの記録媒体を読み書きできる装置(ドライブ)などを設けるとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。
【0090】
ハードウェアエンティティの外部記憶装置には、上述の機能を実現するために必要となるプログラムおよびこのプログラムの処理において必要となるデータなどが記憶されている(外部記憶装置に限らず、例えばプログラムを読み出し専用記憶装置であるROMに記憶させておくなどでもよい。)。また、これらのプログラムの処理によって得られるデータなどは、RAMや外部記憶装置などに適宜に記憶される。上述の説明では、演算結果やその格納領域のアドレスなどを記憶するRAMやレジスタなどの記憶装置を単に「記憶部」とした。
【0091】
ハードウェアエンティティでは、外部記憶装置〔あるいはROMなど〕に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてメモリに読み込まれて、適宜にCPUで解釈実行・処理される。その結果、CPUが所定の機能(例えば、固有演算部、固有データ生成部、署名検証部、署名鍵生成部、署名生成部、分割部、断片更新部、制御部など)を実現する。
【0092】
各実施形態で説明したハードウェアエンティティの細部においては、数論における数値計算処理が必要となる場合があるが、数論における数値計算処理自体は、周知技術と同様にして達成されるので、その演算処理方法などの詳細な説明は省略した(この点の技術水準を示す数論における数値計算処理が可能なソフトウェアとしては、例えばPARI/GP、KANT/KASHなどが挙げられる。PARI/GPについては、例えばインターネット〈URL: http://pari.math.u-bordeaux.fr/〉[平成22年4月9日検索]を参照のこと。KANT/KASHについては、例えばインターネット〈URL: http://www.math.tu-berlin.de/algebra/〉[平成22年4月9日検索]を参照のこと。)。
また、この点に関する文献として、参考文献Cを挙げることができる。
(参考文献C) H. Cohen, "A Course in Computational Algebraic Number Theory", GTM 138, Springer-Verlag, 1993.
【0093】
本発明は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、上記実施形態において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。
【0094】
また、上記実施形態において説明したハードウェアエンティティにおける処理機能をコンピュータによって実現する場合、ハードウェアエンティティが有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記ハードウェアエンティティにおける処理機能がコンピュータ上で実現される。
【0095】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP−ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。
【0096】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【0097】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
【0098】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、ハードウェアエンティティを構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【特許請求の範囲】
【請求項1】
端末装置と、署名生成装置と、署名検証装置とを含み、当該端末装置からの要求に基づき当該署名生成装置が電子署名を生成する代理署名システムであって、
上記端末装置は、
当該端末装置に与えられたデータ(以下、固有データという)に対して当該端末装置に固有の演算を行い演算結果を出力する固有演算部を含み、
上記署名生成装置は、
上記演算結果を用いて署名生成鍵および署名検証鍵を生成可能な署名鍵生成部と、
上記署名生成鍵を用いて上記署名検証装置が設定したメッセージに対して電子署名を生成する署名生成部と、
上記演算結果と上記署名生成鍵を上記署名生成装置の記憶部から消去する処理を行う制御部とを含み、
上記署名検証装置は、
上記端末装置に固有の上記固有データを生成する固有データ生成部と、
上記署名検証鍵を用いて上記電子署名を検証する署名検証部とを含む、
代理署名システム。
【請求項2】
請求項1に記載の代理署名システムにおいて、
上記署名生成装置は、
上記署名生成装置の上記署名鍵生成部に替えて、
上記演算結果を乱数で撹乱して得られる情報を用いて署名生成鍵および署名検証鍵を生成可能な署名鍵生成部を含む
ことを特徴とする代理署名システム。
【請求項3】
端末装置と、代替端末装置と、署名生成装置と、署名検証装置と、バックアップ装置とを含み、当該端末装置または当該代替端末装置からの要求に基づき当該署名生成装置が電子署名を生成する代理署名システムであって、
上記端末装置は、
当該端末装置に与えられたデータ(以下、第1固有データという)に対して当該端末装置に固有の演算を行い演算結果r1を出力する固有演算部を含み、
上記代替端末装置は、
当該代替端末装置に与えられたデータ(以下、第2固有データという)に対して当該代替端末装置に固有の演算を行い演算結果r2を出力する固有演算部を含み、
上記署名生成装置は、
署名生成鍵および署名検証鍵を生成する署名鍵生成部と、
上記署名生成鍵を分割して得られる3種類の断片のうち少なくとも2種類の断片から上記署名生成鍵を復元可能であるが、3種類の断片のうち1種類の断片から上記署名生成鍵を復元不能な分割方法に従って、上記演算結果r1が上記署名生成鍵の断片の一つとなるように、上記署名生成鍵を3種類の断片r1,u1,v1に分割する分割部と、
上記演算結果r1と上記断片u1を用いて上記署名生成鍵を復元し、復元された上記署名生成鍵を用いて上記署名検証装置が設定したメッセージに対して電子署名を生成する署名生成部と、
上記断片u1と上記断片v1を用いて上記署名生成鍵を復元し、上記分割方法に従って、上記演算結果r2が復元された上記署名生成鍵の断片の一つとなるように、復元された上記署名生成鍵を3種類の断片r2,u2,v2に分割する断片更新部と、
上記演算結果r1と上記演算結果r2と上記署名生成鍵を上記署名生成装置の記憶部から消去する処理を行う制御部と、
上記署名生成鍵の断片u1または/および断片u2を記憶する記憶部を含み、
上記署名検証装置は、
上記端末装置と上記代替端末装置それぞれに固有の上記第1固有データと上記第2固有データを生成する固有データ生成部と、
上記署名検証鍵を用いて上記電子署名を検証する署名検証部とを含み、
上記バックアップ装置は、
上記署名生成鍵の断片v1または/および断片v2を記憶する記憶部を含み、
上記断片更新部による処理が実行された後は、上記代替端末装置からの要求に基づき当該署名生成装置が電子署名を生成する
代理署名システム。
【請求項4】
請求項3に記載の代理署名システムにおいて、
上記署名生成装置は、
上記署名生成装置の上記分割部に替えて、
上記署名生成鍵を分割して得られる3種類の断片のうち少なくとも2種類の断片から上記署名生成鍵を復元可能であるが、3種類の断片のうち1種類の断片から上記署名生成鍵を復元不能な分割方法に従って、上記演算結果r1を乱数で撹乱して得られる情報s1が上記署名生成鍵の断片の一つとなるように、上記署名生成鍵を3種類の断片s1,u1,v1に分割する分割部と、
上記署名生成部に替えて、
上記演算結果r1を上記乱数で撹乱して得られる情報s1と上記断片u1を用いて上記署名生成鍵を復元し、復元された上記署名生成鍵を用いて上記署名検証装置が設定したメッセージに対して電子署名を生成する署名生成部と、
上記署名生成装置の上記断片更新部に替えて、
上記断片u1と上記断片v1を用いて上記署名生成鍵を復元し、上記分割方法に従って、上記演算結果r2を乱数で撹乱して得られる情報s2が復元された上記署名生成鍵の断片の一つとなるように、復元された上記署名生成鍵を3種類の断片s2,u2,v2に分割する断片更新部とを含む
ことを特徴とする代理署名システム。
【請求項5】
端末装置と、署名生成装置と、署名検証装置とを含む代理署名システムにおいて、当該端末装置からの要求に基づき当該署名生成装置が電子署名を生成する代理署名方法であって、
上記署名検証装置の固有データ生成部が、上記端末装置に固有の固有データを生成する固有データ生成ステップと、
上記署名検証装置の送信部が、上記端末装置に対して上記固有データを送信する第1固有データ送信ステップと、
上記端末装置の受信部が、上記固有データを受信する第1固有データ受信ステップと、
上記端末装置の固有演算部が、上記固有データに対して当該端末装置に固有の演算を行い演算結果を出力する第1固有演算ステップと、
上記端末装置の送信部が、上記署名生成装置に対して上記演算結果を送信する第1演算結果送信ステップと、
上記署名生成装置の受信部が、上記演算結果を受信する第1演算結果受信ステップと、
上記署名生成装置の署名鍵生成部が、上記演算結果を用いて少なくとも署名検証鍵を生成する第1署名鍵生成ステップと、
上記署名生成装置の送信部が、上記署名検証装置に対して上記署名検証鍵を送信する検証鍵送信ステップと、
上記署名検証装置の受信部が、上記署名検証鍵を受信する検証鍵受信ステップと、
上記署名生成装置の制御部が、上記演算結果を上記署名生成装置の記憶部から消去する処理を行う第1破棄ステップと、
上記署名検証装置の送信部が、上記端末装置に対して上記固有データを送信する第2固有データ送信ステップと、
上記端末装置の受信部が、上記第2固有データ送信ステップにて送信された上記固有データを受信する第2固有データ受信ステップと、
上記端末装置の固有演算部が、上記第2固有データ受信ステップにて受信した上記固有データに対して当該端末装置に固有の演算を行い演算結果を出力する第2固有演算ステップと、
上記端末装置の送信部が、上記署名生成装置に対して上記第2固有演算ステップにて得られた上記演算結果を送信する第2演算結果送信ステップと、
上記署名生成装置の受信部が、上記第2演算結果送信ステップにて送信された上記演算結果を受信する第2演算結果受信ステップと、
上記署名検証装置の送信部が、上記署名生成装置に対してメッセージを送信するメッセージ送信ステップと、
上記署名生成装置の受信部が、上記メッセージを受信するメッセージ受信ステップと、
上記署名生成装置の署名鍵生成部が、上記第2演算結果受信ステップにて受信した上記演算結果を用いて少なくとも署名生成鍵を生成する第2署名鍵生成ステップと、
上記署名生成装置の署名生成部が、上記署名生成鍵を用いて上記メッセージに対して電子署名を生成する署名生成ステップと、
上記署名生成装置の送信部が、上記署名検証装置に対して上記電子署名を送信する署名送信ステップと、
上記署名検証装置の受信部が、上記電子署名を受信する署名受信ステップと、
上記署名生成装置の制御部が、上記演算結果と上記署名生成鍵を上記署名生成装置の記憶部から消去する処理を行う第2破棄ステップと、
上記署名検証装置の署名検証部が、上記署名検証鍵を用いて上記電子署名を検証する署名検証ステップと
を有する代理署名方法。
【請求項6】
請求項5に記載の代理署名方法において、
上記第1署名鍵生成ステップに替えて、
上記署名生成装置の署名鍵生成部が、上記演算結果を乱数で撹乱して得られる情報を用いて少なくとも署名検証鍵を生成する第1署名鍵生成ステップと、
上記第2署名鍵生成ステップに替えて、
上記署名生成装置の署名鍵生成部が、上記第2演算結果受信ステップにて受信した上記演算結果を上記乱数で撹乱して得られる情報を用いて少なくとも署名生成鍵を生成する第2署名鍵生成ステップと
を含むことを特徴とする代理署名方法。
【請求項7】
端末装置と、代替端末装置と、署名生成装置と、署名検証装置と、バックアップ装置とを含む代理署名システムにおいて、当該端末装置または当該代替端末装置からの要求に基づき当該署名生成装置が電子署名を生成する代理署名方法であって、
上記署名生成装置の署名鍵生成部が、署名生成鍵および署名検証鍵を生成する署名鍵生成ステップと、
上記署名生成装置の送信部が、上記署名検証装置に対して上記署名検証鍵を送信する検証鍵送信ステップと、
上記署名検証装置の受信部が、上記署名検証鍵を受信する検証鍵受信ステップと、
上記署名検証装置の固有データ生成部が、上記端末装置に固有の第1固有データを生成する第1固有データ生成ステップと、
上記署名検証装置の送信部が、上記端末装置に対して上記第1固有データを送信する第1固有データ送信ステップと、
上記端末装置の受信部が、上記第1固有データを受信する第1固有データ受信ステップと、
上記端末装置の固有演算部が、上記第1固有データに対して当該端末装置に固有の演算を行い演算結果r1を出力する第1固有演算ステップと、
上記端末装置の送信部が、上記署名生成装置に対して上記演算結果r1を送信する第1演算結果送信ステップと、
上記署名生成装置の受信部が、上記演算結果r1を受信する第1演算結果受信ステップと、
上記署名生成装置の分割部が、上記署名生成鍵を分割して得られる3種類の断片のうち少なくとも2種類の断片から上記署名生成鍵を復元可能であるが、3種類の断片のうち1種類の断片から上記署名生成鍵を復元不能な分割方法に従って、上記演算結果r1が上記署名生成鍵の断片の一つとなるように、上記署名生成鍵を3種類の断片r1,u1,v1に分割する分割ステップと、
上記署名生成装置の記憶部が、上記断片u1を記憶する記憶ステップと、
上記署名生成装置の送信部が、上記バックアップ装置に対して上記断片v1を送信する第1断片送信ステップと、
上記バックアップ装置の受信部が、上記断片v1を受信する第1断片受信ステップと、
上記バックアップ装置の記憶部が、上記断片v1を記憶する記憶ステップと、
上記署名生成装置の制御部が、上記演算結果r1と上記署名生成鍵を上記署名生成装置の記憶部から消去する処理を行う第1破棄ステップと、
上記署名検証装置の送信部が、上記端末装置に対して上記第1固有データを送信する第2固有データ送信ステップと、
上記端末装置の受信部が、上記第2固有データ送信ステップにて送信された上記第1固有データを受信する第2固有データ受信ステップと、
上記端末装置の固有演算部が、上記第2固有データ受信ステップにて受信した上記第1固有データに対して当該端末装置に固有の演算を行い演算結果r1を出力する第2固有演算ステップと、
上記端末装置の送信部が、上記署名生成装置に対して上記第2固有演算ステップにて得られた上記演算結果r1を送信する第2演算結果送信ステップと、
上記署名生成装置の受信部が、上記第2演算結果送信ステップにて送信された上記演算結果r1を受信する第2演算結果受信ステップと、
上記署名検証装置の送信部が、上記署名生成装置に対してメッセージを送信するメッセージ送信ステップと、
上記署名生成装置の受信部が、上記メッセージを受信するメッセージ受信ステップと、
上記署名検証装置の署名生成部が、上記第2演算結果受信ステップにて受信した上記演算結果r1と上記署名検証装置の記憶部に記憶されている上記断片u1を用いて上記署名生成鍵を復元し、復元された上記署名生成鍵を用いて上記メッセージに対して電子署名を生成する署名生成ステップと、
上記署名生成装置の送信部が、上記署名検証装置に対して上記電子署名を送信する署名送信ステップと、
上記署名検証装置の受信部が、上記電子署名を受信する署名受信ステップと、
上記署名生成装置の制御部が、上記演算結果r1と上記署名生成鍵を上記署名生成装置の記憶部から消去する処理を行う第2破棄ステップと、
上記署名検証装置の署名検証部が、上記署名検証鍵を用いて上記電子署名を検証する署名検証ステップと、
上記署名検証装置の固有データ生成部が、上記代替端末装置に固有の第2固有データを生成する第2固有データ生成ステップと、
上記署名検証装置の送信部が、上記代替端末装置に対して上記第2固有データを送信する第3固有データ送信ステップと、
上記代替端末装置の受信部が、上記第2固有データを受信する第3固有データ受信ステップと、
上記代替端末装置の固有演算部が、上記第2固有データに対して当該代替端末装置に固有の演算を行い演算結果r2を出力する第3固有演算ステップと、
上記代替端末装置の送信部が、上記署名生成装置に対して上記演算結果r2を送信する第3演算結果送信ステップと、
上記署名生成装置の受信部が、上記演算結果r2を受信する第3演算結果受信ステップと、
上記バックアップ装置の送信部が、上記署名生成装置に対して当該バックアップ装置の記憶部に記憶されている上記断片v1を送信する第2断片送信ステップと、
上記署名生成装置の受信部が、上記断片v1を受信する第2断片受信ステップと、
上記署名生成装置の断片更新部が、当該署名生成装置の記憶部に記憶されている上記断片u1と上記第2断片受信ステップにて受信した上記断片v1を用いて上記署名生成鍵を復元し、上記分割方法に従って、上記演算結果r2が復元された上記署名生成鍵の断片の一つとなるように、復元された上記署名生成鍵を3種類の断片r2,u2,v2に分割する断片更新ステップと、
上記署名生成装置の記憶部が、上記断片u2を記憶する記憶ステップと、
上記署名生成装置の送信部が、上記バックアップ装置に対して上記断片v2を送信する第3断片送信ステップと、
上記バックアップ装置の受信部が、上記断片v2を受信する第3断片受信ステップと、
上記バックアップ装置の記憶部が、上記断片v2を記憶する記憶ステップと、
上記署名生成装置の制御部が、上記演算結果r2と上記署名生成鍵を上記署名生成装置の記憶部から消去する処理を行う第3破棄ステップとを有し、
上記断片更新ステップにおける処理が実行された後は、上記代替端末装置からの要求に基づき当該署名生成装置が電子署名を生成する
代理署名方法。
【請求項8】
請求項7に記載の代理署名方法において、
上記分割ステップに替えて、
上記署名生成装置の分割部が、上記署名生成鍵を分割して得られる3種類の断片のうち少なくとも2種類の断片から上記署名生成鍵を復元可能であるが、3種類の断片のうち1種類の断片から上記署名生成鍵を復元不能な分割方法に従って、上記演算結果r1を乱数で撹乱して得られる情報s1が上記署名生成鍵の断片の一つとなるように、上記署名生成鍵を3種類の断片s1,u1,v1に分割する分割ステップと、
上記署名生成ステップに替えて、
上記署名検証装置の署名生成部が、上記第2演算結果受信ステップにて受信した上記演算結果r1を上記乱数で撹乱して得られる情報s1と上記署名検証装置の記憶部に記憶されている上記断片u1を用いて上記署名生成鍵を復元し、復元された上記署名生成鍵を用いて上記メッセージに対して電子署名を生成する署名生成ステップと、
上記断片更新ステップに替えて、
上記署名生成装置の断片更新部が、上記署名生成装置の記憶部に記憶されている上記断片u1と上記第2断片受信ステップにて受信した上記断片v1を用いて上記署名生成鍵を復元し、上記分割方法に従って、上記演算結果r2を乱数で撹乱して得られる情報s2が復元された上記署名生成鍵の断片の一つとなるように、復元された上記署名生成鍵を3種類の断片s2,u2,v2に分割する断片更新ステップと
を含むことを特徴とする代理署名方法。
【請求項1】
端末装置と、署名生成装置と、署名検証装置とを含み、当該端末装置からの要求に基づき当該署名生成装置が電子署名を生成する代理署名システムであって、
上記端末装置は、
当該端末装置に与えられたデータ(以下、固有データという)に対して当該端末装置に固有の演算を行い演算結果を出力する固有演算部を含み、
上記署名生成装置は、
上記演算結果を用いて署名生成鍵および署名検証鍵を生成可能な署名鍵生成部と、
上記署名生成鍵を用いて上記署名検証装置が設定したメッセージに対して電子署名を生成する署名生成部と、
上記演算結果と上記署名生成鍵を上記署名生成装置の記憶部から消去する処理を行う制御部とを含み、
上記署名検証装置は、
上記端末装置に固有の上記固有データを生成する固有データ生成部と、
上記署名検証鍵を用いて上記電子署名を検証する署名検証部とを含む、
代理署名システム。
【請求項2】
請求項1に記載の代理署名システムにおいて、
上記署名生成装置は、
上記署名生成装置の上記署名鍵生成部に替えて、
上記演算結果を乱数で撹乱して得られる情報を用いて署名生成鍵および署名検証鍵を生成可能な署名鍵生成部を含む
ことを特徴とする代理署名システム。
【請求項3】
端末装置と、代替端末装置と、署名生成装置と、署名検証装置と、バックアップ装置とを含み、当該端末装置または当該代替端末装置からの要求に基づき当該署名生成装置が電子署名を生成する代理署名システムであって、
上記端末装置は、
当該端末装置に与えられたデータ(以下、第1固有データという)に対して当該端末装置に固有の演算を行い演算結果r1を出力する固有演算部を含み、
上記代替端末装置は、
当該代替端末装置に与えられたデータ(以下、第2固有データという)に対して当該代替端末装置に固有の演算を行い演算結果r2を出力する固有演算部を含み、
上記署名生成装置は、
署名生成鍵および署名検証鍵を生成する署名鍵生成部と、
上記署名生成鍵を分割して得られる3種類の断片のうち少なくとも2種類の断片から上記署名生成鍵を復元可能であるが、3種類の断片のうち1種類の断片から上記署名生成鍵を復元不能な分割方法に従って、上記演算結果r1が上記署名生成鍵の断片の一つとなるように、上記署名生成鍵を3種類の断片r1,u1,v1に分割する分割部と、
上記演算結果r1と上記断片u1を用いて上記署名生成鍵を復元し、復元された上記署名生成鍵を用いて上記署名検証装置が設定したメッセージに対して電子署名を生成する署名生成部と、
上記断片u1と上記断片v1を用いて上記署名生成鍵を復元し、上記分割方法に従って、上記演算結果r2が復元された上記署名生成鍵の断片の一つとなるように、復元された上記署名生成鍵を3種類の断片r2,u2,v2に分割する断片更新部と、
上記演算結果r1と上記演算結果r2と上記署名生成鍵を上記署名生成装置の記憶部から消去する処理を行う制御部と、
上記署名生成鍵の断片u1または/および断片u2を記憶する記憶部を含み、
上記署名検証装置は、
上記端末装置と上記代替端末装置それぞれに固有の上記第1固有データと上記第2固有データを生成する固有データ生成部と、
上記署名検証鍵を用いて上記電子署名を検証する署名検証部とを含み、
上記バックアップ装置は、
上記署名生成鍵の断片v1または/および断片v2を記憶する記憶部を含み、
上記断片更新部による処理が実行された後は、上記代替端末装置からの要求に基づき当該署名生成装置が電子署名を生成する
代理署名システム。
【請求項4】
請求項3に記載の代理署名システムにおいて、
上記署名生成装置は、
上記署名生成装置の上記分割部に替えて、
上記署名生成鍵を分割して得られる3種類の断片のうち少なくとも2種類の断片から上記署名生成鍵を復元可能であるが、3種類の断片のうち1種類の断片から上記署名生成鍵を復元不能な分割方法に従って、上記演算結果r1を乱数で撹乱して得られる情報s1が上記署名生成鍵の断片の一つとなるように、上記署名生成鍵を3種類の断片s1,u1,v1に分割する分割部と、
上記署名生成部に替えて、
上記演算結果r1を上記乱数で撹乱して得られる情報s1と上記断片u1を用いて上記署名生成鍵を復元し、復元された上記署名生成鍵を用いて上記署名検証装置が設定したメッセージに対して電子署名を生成する署名生成部と、
上記署名生成装置の上記断片更新部に替えて、
上記断片u1と上記断片v1を用いて上記署名生成鍵を復元し、上記分割方法に従って、上記演算結果r2を乱数で撹乱して得られる情報s2が復元された上記署名生成鍵の断片の一つとなるように、復元された上記署名生成鍵を3種類の断片s2,u2,v2に分割する断片更新部とを含む
ことを特徴とする代理署名システム。
【請求項5】
端末装置と、署名生成装置と、署名検証装置とを含む代理署名システムにおいて、当該端末装置からの要求に基づき当該署名生成装置が電子署名を生成する代理署名方法であって、
上記署名検証装置の固有データ生成部が、上記端末装置に固有の固有データを生成する固有データ生成ステップと、
上記署名検証装置の送信部が、上記端末装置に対して上記固有データを送信する第1固有データ送信ステップと、
上記端末装置の受信部が、上記固有データを受信する第1固有データ受信ステップと、
上記端末装置の固有演算部が、上記固有データに対して当該端末装置に固有の演算を行い演算結果を出力する第1固有演算ステップと、
上記端末装置の送信部が、上記署名生成装置に対して上記演算結果を送信する第1演算結果送信ステップと、
上記署名生成装置の受信部が、上記演算結果を受信する第1演算結果受信ステップと、
上記署名生成装置の署名鍵生成部が、上記演算結果を用いて少なくとも署名検証鍵を生成する第1署名鍵生成ステップと、
上記署名生成装置の送信部が、上記署名検証装置に対して上記署名検証鍵を送信する検証鍵送信ステップと、
上記署名検証装置の受信部が、上記署名検証鍵を受信する検証鍵受信ステップと、
上記署名生成装置の制御部が、上記演算結果を上記署名生成装置の記憶部から消去する処理を行う第1破棄ステップと、
上記署名検証装置の送信部が、上記端末装置に対して上記固有データを送信する第2固有データ送信ステップと、
上記端末装置の受信部が、上記第2固有データ送信ステップにて送信された上記固有データを受信する第2固有データ受信ステップと、
上記端末装置の固有演算部が、上記第2固有データ受信ステップにて受信した上記固有データに対して当該端末装置に固有の演算を行い演算結果を出力する第2固有演算ステップと、
上記端末装置の送信部が、上記署名生成装置に対して上記第2固有演算ステップにて得られた上記演算結果を送信する第2演算結果送信ステップと、
上記署名生成装置の受信部が、上記第2演算結果送信ステップにて送信された上記演算結果を受信する第2演算結果受信ステップと、
上記署名検証装置の送信部が、上記署名生成装置に対してメッセージを送信するメッセージ送信ステップと、
上記署名生成装置の受信部が、上記メッセージを受信するメッセージ受信ステップと、
上記署名生成装置の署名鍵生成部が、上記第2演算結果受信ステップにて受信した上記演算結果を用いて少なくとも署名生成鍵を生成する第2署名鍵生成ステップと、
上記署名生成装置の署名生成部が、上記署名生成鍵を用いて上記メッセージに対して電子署名を生成する署名生成ステップと、
上記署名生成装置の送信部が、上記署名検証装置に対して上記電子署名を送信する署名送信ステップと、
上記署名検証装置の受信部が、上記電子署名を受信する署名受信ステップと、
上記署名生成装置の制御部が、上記演算結果と上記署名生成鍵を上記署名生成装置の記憶部から消去する処理を行う第2破棄ステップと、
上記署名検証装置の署名検証部が、上記署名検証鍵を用いて上記電子署名を検証する署名検証ステップと
を有する代理署名方法。
【請求項6】
請求項5に記載の代理署名方法において、
上記第1署名鍵生成ステップに替えて、
上記署名生成装置の署名鍵生成部が、上記演算結果を乱数で撹乱して得られる情報を用いて少なくとも署名検証鍵を生成する第1署名鍵生成ステップと、
上記第2署名鍵生成ステップに替えて、
上記署名生成装置の署名鍵生成部が、上記第2演算結果受信ステップにて受信した上記演算結果を上記乱数で撹乱して得られる情報を用いて少なくとも署名生成鍵を生成する第2署名鍵生成ステップと
を含むことを特徴とする代理署名方法。
【請求項7】
端末装置と、代替端末装置と、署名生成装置と、署名検証装置と、バックアップ装置とを含む代理署名システムにおいて、当該端末装置または当該代替端末装置からの要求に基づき当該署名生成装置が電子署名を生成する代理署名方法であって、
上記署名生成装置の署名鍵生成部が、署名生成鍵および署名検証鍵を生成する署名鍵生成ステップと、
上記署名生成装置の送信部が、上記署名検証装置に対して上記署名検証鍵を送信する検証鍵送信ステップと、
上記署名検証装置の受信部が、上記署名検証鍵を受信する検証鍵受信ステップと、
上記署名検証装置の固有データ生成部が、上記端末装置に固有の第1固有データを生成する第1固有データ生成ステップと、
上記署名検証装置の送信部が、上記端末装置に対して上記第1固有データを送信する第1固有データ送信ステップと、
上記端末装置の受信部が、上記第1固有データを受信する第1固有データ受信ステップと、
上記端末装置の固有演算部が、上記第1固有データに対して当該端末装置に固有の演算を行い演算結果r1を出力する第1固有演算ステップと、
上記端末装置の送信部が、上記署名生成装置に対して上記演算結果r1を送信する第1演算結果送信ステップと、
上記署名生成装置の受信部が、上記演算結果r1を受信する第1演算結果受信ステップと、
上記署名生成装置の分割部が、上記署名生成鍵を分割して得られる3種類の断片のうち少なくとも2種類の断片から上記署名生成鍵を復元可能であるが、3種類の断片のうち1種類の断片から上記署名生成鍵を復元不能な分割方法に従って、上記演算結果r1が上記署名生成鍵の断片の一つとなるように、上記署名生成鍵を3種類の断片r1,u1,v1に分割する分割ステップと、
上記署名生成装置の記憶部が、上記断片u1を記憶する記憶ステップと、
上記署名生成装置の送信部が、上記バックアップ装置に対して上記断片v1を送信する第1断片送信ステップと、
上記バックアップ装置の受信部が、上記断片v1を受信する第1断片受信ステップと、
上記バックアップ装置の記憶部が、上記断片v1を記憶する記憶ステップと、
上記署名生成装置の制御部が、上記演算結果r1と上記署名生成鍵を上記署名生成装置の記憶部から消去する処理を行う第1破棄ステップと、
上記署名検証装置の送信部が、上記端末装置に対して上記第1固有データを送信する第2固有データ送信ステップと、
上記端末装置の受信部が、上記第2固有データ送信ステップにて送信された上記第1固有データを受信する第2固有データ受信ステップと、
上記端末装置の固有演算部が、上記第2固有データ受信ステップにて受信した上記第1固有データに対して当該端末装置に固有の演算を行い演算結果r1を出力する第2固有演算ステップと、
上記端末装置の送信部が、上記署名生成装置に対して上記第2固有演算ステップにて得られた上記演算結果r1を送信する第2演算結果送信ステップと、
上記署名生成装置の受信部が、上記第2演算結果送信ステップにて送信された上記演算結果r1を受信する第2演算結果受信ステップと、
上記署名検証装置の送信部が、上記署名生成装置に対してメッセージを送信するメッセージ送信ステップと、
上記署名生成装置の受信部が、上記メッセージを受信するメッセージ受信ステップと、
上記署名検証装置の署名生成部が、上記第2演算結果受信ステップにて受信した上記演算結果r1と上記署名検証装置の記憶部に記憶されている上記断片u1を用いて上記署名生成鍵を復元し、復元された上記署名生成鍵を用いて上記メッセージに対して電子署名を生成する署名生成ステップと、
上記署名生成装置の送信部が、上記署名検証装置に対して上記電子署名を送信する署名送信ステップと、
上記署名検証装置の受信部が、上記電子署名を受信する署名受信ステップと、
上記署名生成装置の制御部が、上記演算結果r1と上記署名生成鍵を上記署名生成装置の記憶部から消去する処理を行う第2破棄ステップと、
上記署名検証装置の署名検証部が、上記署名検証鍵を用いて上記電子署名を検証する署名検証ステップと、
上記署名検証装置の固有データ生成部が、上記代替端末装置に固有の第2固有データを生成する第2固有データ生成ステップと、
上記署名検証装置の送信部が、上記代替端末装置に対して上記第2固有データを送信する第3固有データ送信ステップと、
上記代替端末装置の受信部が、上記第2固有データを受信する第3固有データ受信ステップと、
上記代替端末装置の固有演算部が、上記第2固有データに対して当該代替端末装置に固有の演算を行い演算結果r2を出力する第3固有演算ステップと、
上記代替端末装置の送信部が、上記署名生成装置に対して上記演算結果r2を送信する第3演算結果送信ステップと、
上記署名生成装置の受信部が、上記演算結果r2を受信する第3演算結果受信ステップと、
上記バックアップ装置の送信部が、上記署名生成装置に対して当該バックアップ装置の記憶部に記憶されている上記断片v1を送信する第2断片送信ステップと、
上記署名生成装置の受信部が、上記断片v1を受信する第2断片受信ステップと、
上記署名生成装置の断片更新部が、当該署名生成装置の記憶部に記憶されている上記断片u1と上記第2断片受信ステップにて受信した上記断片v1を用いて上記署名生成鍵を復元し、上記分割方法に従って、上記演算結果r2が復元された上記署名生成鍵の断片の一つとなるように、復元された上記署名生成鍵を3種類の断片r2,u2,v2に分割する断片更新ステップと、
上記署名生成装置の記憶部が、上記断片u2を記憶する記憶ステップと、
上記署名生成装置の送信部が、上記バックアップ装置に対して上記断片v2を送信する第3断片送信ステップと、
上記バックアップ装置の受信部が、上記断片v2を受信する第3断片受信ステップと、
上記バックアップ装置の記憶部が、上記断片v2を記憶する記憶ステップと、
上記署名生成装置の制御部が、上記演算結果r2と上記署名生成鍵を上記署名生成装置の記憶部から消去する処理を行う第3破棄ステップとを有し、
上記断片更新ステップにおける処理が実行された後は、上記代替端末装置からの要求に基づき当該署名生成装置が電子署名を生成する
代理署名方法。
【請求項8】
請求項7に記載の代理署名方法において、
上記分割ステップに替えて、
上記署名生成装置の分割部が、上記署名生成鍵を分割して得られる3種類の断片のうち少なくとも2種類の断片から上記署名生成鍵を復元可能であるが、3種類の断片のうち1種類の断片から上記署名生成鍵を復元不能な分割方法に従って、上記演算結果r1を乱数で撹乱して得られる情報s1が上記署名生成鍵の断片の一つとなるように、上記署名生成鍵を3種類の断片s1,u1,v1に分割する分割ステップと、
上記署名生成ステップに替えて、
上記署名検証装置の署名生成部が、上記第2演算結果受信ステップにて受信した上記演算結果r1を上記乱数で撹乱して得られる情報s1と上記署名検証装置の記憶部に記憶されている上記断片u1を用いて上記署名生成鍵を復元し、復元された上記署名生成鍵を用いて上記メッセージに対して電子署名を生成する署名生成ステップと、
上記断片更新ステップに替えて、
上記署名生成装置の断片更新部が、上記署名生成装置の記憶部に記憶されている上記断片u1と上記第2断片受信ステップにて受信した上記断片v1を用いて上記署名生成鍵を復元し、上記分割方法に従って、上記演算結果r2を乱数で撹乱して得られる情報s2が復元された上記署名生成鍵の断片の一つとなるように、復元された上記署名生成鍵を3種類の断片s2,u2,v2に分割する断片更新ステップと
を含むことを特徴とする代理署名方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2011−244321(P2011−244321A)
【公開日】平成23年12月1日(2011.12.1)
【国際特許分類】
【出願番号】特願2010−116241(P2010−116241)
【出願日】平成22年5月20日(2010.5.20)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【出願人】(399035766)エヌ・ティ・ティ・コミュニケーションズ株式会社 (321)
【Fターム(参考)】
【公開日】平成23年12月1日(2011.12.1)
【国際特許分類】
【出願日】平成22年5月20日(2010.5.20)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【出願人】(399035766)エヌ・ティ・ティ・コミュニケーションズ株式会社 (321)
【Fターム(参考)】
[ Back to top ]