(57)【特許請求の範囲】
【請求項１】
端末装置と、署名生成装置と、署名検証装置とを含み、当該端末装置からの要求に基づき当該署名生成装置が電子署名を生成する代理署名システムであって、
上記端末装置は、
当該端末装置に与えられたデータ（以下、固有データという）に対して当該端末装置に固有の演算を行い演算結果を出力する固有演算部と、
上記演算結果を上記端末装置の記憶部から消去する制御部とを含み、
上記署名生成装置は、
上記演算結果を用いて署名生成鍵および署名検証鍵を生成可能な署名鍵生成部と、
上記署名生成鍵を用いて上記署名検証装置が設定したメッセージに対して電子署名を生成する署名生成部と、
上記演算結果と上記署名生成鍵を上記署名生成装置の記憶部から消去する処理を行う制御部とを含み、
上記署名検証装置は、
上記端末装置に固有の上記固有データを生成する固有データ生成部と、
上記署名検証鍵を用いて上記電子署名を検証する署名検証部とを含む、
代理署名システム。
【請求項２】
請求項１に記載の代理署名システムにおいて、
上記署名生成装置は、
上記署名生成装置の上記署名鍵生成部に替えて、
上記演算結果を乱数で撹乱して得られる情報を用いて署名生成鍵および署名検証鍵を生成可能な署名鍵生成部を含む
ことを特徴とする代理署名システム。
【請求項３】
端末装置と、代替端末装置と、署名生成装置と、署名検証装置と、バックアップ装置とを含み、当該端末装置または当該代替端末装置からの要求に基づき当該署名生成装置が電子署名を生成する代理署名システムであって、
上記端末装置は、
当該端末装置に与えられたデータ（以下、第１固有データという）に対して当該端末装置に固有の演算を行い演算結果r1を出力する固有演算部を含み、
上記代替端末装置は、
当該代替端末装置に与えられたデータ（以下、第２固有データという）に対して当該代替端末装置に固有の演算を行い演算結果r2を出力する固有演算部を含み、
上記署名生成装置は、
署名生成鍵および署名検証鍵を生成する署名鍵生成部と、
上記署名生成鍵を分割して得られる３種類の断片のうち少なくとも２種類の断片から上記署名生成鍵を復元可能であるが、３種類の断片のうち１種類の断片から上記署名生成鍵を復元不能な分割方法に従って、上記演算結果r1が上記署名生成鍵の断片の一つとなるように、上記署名生成鍵を３種類の断片r1,u1,v1に分割する分割部と、
上記演算結果r1と上記断片u1を用いて上記署名生成鍵を復元し、復元された上記署名生成鍵を用いて上記署名検証装置が設定したメッセージに対して電子署名を生成する署名生成部と、
上記断片u1と上記断片v1を用いて上記署名生成鍵を復元し、上記分割方法に従って、上記演算結果r2が復元された上記署名生成鍵の断片の一つとなるように、復元された上記署名生成鍵を３種類の断片r2,u2,v2に分割する断片更新部と、
上記演算結果r1と上記演算結果r2と上記署名生成鍵を上記署名生成装置の記憶部から消去する処理を行う制御部と、
上記署名生成鍵の断片u1または／および断片u2を記憶する記憶部を含み、
上記署名検証装置は、
上記端末装置と上記代替端末装置それぞれに固有の上記第１固有データと上記第２固有データを生成する固有データ生成部と、
上記署名検証鍵を用いて上記電子署名を検証する署名検証部とを含み、
上記バックアップ装置は、
上記署名生成鍵の断片v1または／および断片v2を記憶する記憶部を含み、
上記断片更新部による処理が実行された後は、上記代替端末装置からの要求に基づき当該署名生成装置が電子署名を生成する
代理署名システム。
【請求項４】
請求項３に記載の代理署名システムにおいて、
上記署名生成装置は、
上記署名生成装置の上記分割部に替えて、
上記署名生成鍵を分割して得られる３種類の断片のうち少なくとも２種類の断片から上記署名生成鍵を復元可能であるが、３種類の断片のうち１種類の断片から上記署名生成鍵を復元不能な分割方法に従って、上記演算結果r1を乱数で撹乱して得られる情報s1が上記署名生成鍵の断片の一つとなるように、上記署名生成鍵を３種類の断片s1,u1,v1に分割する分割部と、
上記署名生成部に替えて、
上記演算結果r1を上記乱数で撹乱して得られる情報s1と上記断片u1を用いて上記署名生成鍵を復元し、復元された上記署名生成鍵を用いて上記署名検証装置が設定したメッセージに対して電子署名を生成する署名生成部と、
上記署名生成装置の上記断片更新部に替えて、
上記断片u1と上記断片v1を用いて上記署名生成鍵を復元し、上記分割方法に従って、上記演算結果r2を乱数で撹乱して得られる情報s2が復元された上記署名生成鍵の断片の一つとなるように、復元された上記署名生成鍵を３種類の断片s2,u2,v2に分割する断片更新部とを含む
ことを特徴とする代理署名システム。
【請求項５】
端末装置と、署名生成装置と、署名検証装置とを含む代理署名システムにおいて、当該端末装置からの要求に基づき当該署名生成装置が電子署名を生成する代理署名方法であって、
上記署名検証装置の固有データ生成部が、上記端末装置に固有の固有データを生成する固有データ生成ステップと、
上記署名検証装置の送信部が、上記端末装置に対して上記固有データを送信する第１固有データ送信ステップと、
上記端末装置の受信部が、上記固有データを受信する第１固有データ受信ステップと、
上記端末装置の固有演算部が、上記固有データに対して当該端末装置に固有の演算を行い演算結果を出力する第１固有演算ステップと、
上記端末装置の送信部が、上記署名生成装置に対して上記演算結果を送信する第１演算結果送信ステップと、
上記署名生成装置の受信部が、上記演算結果を受信する第１演算結果受信ステップと、
上記署名生成装置の署名鍵生成部が、上記演算結果を用いて少なくとも署名検証鍵を生成する第１署名鍵生成ステップと、
上記署名生成装置の送信部が、上記署名検証装置に対して上記署名検証鍵を送信する検証鍵送信ステップと、
上記署名検証装置の受信部が、上記署名検証鍵を受信する検証鍵受信ステップと、
上記署名生成装置の制御部が、上記演算結果を上記署名生成装置の記憶部から消去する処理を行う第１破棄ステップと、
上記署名検証装置の送信部が、上記端末装置に対して上記固有データを送信する第２固有データ送信ステップと、
上記端末装置の受信部が、上記第２固有データ送信ステップにて送信された上記固有データを受信する第２固有データ受信ステップと、
上記端末装置の固有演算部が、上記第２固有データ受信ステップにて受信した上記固有データに対して当該端末装置に固有の演算を行い演算結果を出力する第２固有演算ステップと、
上記端末装置の送信部が、上記署名生成装置に対して上記第２固有演算ステップにて得られた上記演算結果を送信する第２演算結果送信ステップと、
上記署名生成装置の受信部が、上記第２演算結果送信ステップにて送信された上記演算結果を受信する第２演算結果受信ステップと、
上記署名検証装置の送信部が、上記署名生成装置に対してメッセージを送信するメッセージ送信ステップと、
上記署名生成装置の受信部が、上記メッセージを受信するメッセージ受信ステップと、
上記署名生成装置の署名鍵生成部が、上記第２演算結果受信ステップにて受信した上記演算結果を用いて少なくとも署名生成鍵を生成する第２署名鍵生成ステップと、
上記署名生成装置の署名生成部が、上記署名生成鍵を用いて上記メッセージに対して電子署名を生成する署名生成ステップと、
上記署名生成装置の送信部が、上記署名検証装置に対して上記電子署名を送信する署名送信ステップと、
上記署名検証装置の受信部が、上記電子署名を受信する署名受信ステップと、
上記署名生成装置の制御部が、上記演算結果と上記署名生成鍵を上記署名生成装置の記憶部から消去する処理を行う第２破棄ステップと、
上記署名検証装置の署名検証部が、上記署名検証鍵を用いて上記電子署名を検証する署名検証ステップと
を有する代理署名方法。
【請求項６】
請求項５に記載の代理署名方法において、
上記第１署名鍵生成ステップに替えて、
上記署名生成装置の署名鍵生成部が、上記演算結果を乱数で撹乱して得られる情報を用いて少なくとも署名検証鍵を生成する第１署名鍵生成ステップと、
上記第２署名鍵生成ステップに替えて、
上記署名生成装置の署名鍵生成部が、上記第２演算結果受信ステップにて受信した上記演算結果を上記乱数で撹乱して得られる情報を用いて少なくとも署名生成鍵を生成する第２署名鍵生成ステップと
を含むことを特徴とする代理署名方法。
【請求項７】
端末装置と、代替端末装置と、署名生成装置と、署名検証装置と、バックアップ装置とを含む代理署名システムにおいて、当該端末装置または当該代替端末装置からの要求に基づき当該署名生成装置が電子署名を生成する代理署名方法であって、
上記署名生成装置の署名鍵生成部が、署名生成鍵および署名検証鍵を生成する署名鍵生成ステップと、
上記署名生成装置の送信部が、上記署名検証装置に対して上記署名検証鍵を送信する検証鍵送信ステップと、
上記署名検証装置の受信部が、上記署名検証鍵を受信する検証鍵受信ステップと、
上記署名検証装置の固有データ生成部が、上記端末装置に固有の第１固有データを生成する第１固有データ生成ステップと、
上記署名検証装置の送信部が、上記端末装置に対して上記第１固有データを送信する第１固有データ送信ステップと、
上記端末装置の受信部が、上記第１固有データを受信する第１固有データ受信ステップと、
上記端末装置の固有演算部が、上記第１固有データに対して当該端末装置に固有の演算を行い演算結果r1を出力する第１固有演算ステップと、
上記端末装置の送信部が、上記署名生成装置に対して上記演算結果r1を送信する第１演算結果送信ステップと、
上記署名生成装置の受信部が、上記演算結果r1を受信する第１演算結果受信ステップと、
上記署名生成装置の分割部が、上記署名生成鍵を分割して得られる３種類の断片のうち少なくとも２種類の断片から上記署名生成鍵を復元可能であるが、３種類の断片のうち１種類の断片から上記署名生成鍵を復元不能な分割方法に従って、上記演算結果r1が上記署名生成鍵の断片の一つとなるように、上記署名生成鍵を３種類の断片r1,u1,v1に分割する分割ステップと、
上記署名生成装置の記憶部が、上記断片u1を記憶する記憶ステップと、
上記署名生成装置の送信部が、上記バックアップ装置に対して上記断片v1を送信する第１断片送信ステップと、
上記バックアップ装置の受信部が、上記断片v1を受信する第１断片受信ステップと、
上記バックアップ装置の記憶部が、上記断片v1を記憶する記憶ステップと、
上記署名生成装置の制御部が、上記演算結果r1と上記署名生成鍵を上記署名生成装置の記憶部から消去する処理を行う第１破棄ステップと、
上記署名検証装置の送信部が、上記端末装置に対して上記第１固有データを送信する第２固有データ送信ステップと、
上記端末装置の受信部が、上記第２固有データ送信ステップにて送信された上記第１固有データを受信する第２固有データ受信ステップと、
上記端末装置の固有演算部が、上記第２固有データ受信ステップにて受信した上記第１固有データに対して当該端末装置に固有の演算を行い演算結果r1を出力する第２固有演算ステップと、
上記端末装置の送信部が、上記署名生成装置に対して上記第２固有演算ステップにて得られた上記演算結果r1を送信する第２演算結果送信ステップと、
上記署名生成装置の受信部が、上記第２演算結果送信ステップにて送信された上記演算結果r1を受信する第２演算結果受信ステップと、
上記署名検証装置の送信部が、上記署名生成装置に対してメッセージを送信するメッセージ送信ステップと、
上記署名生成装置の受信部が、上記メッセージを受信するメッセージ受信ステップと、
上記署名検証装置の署名生成部が、上記第２演算結果受信ステップにて受信した上記演算結果r1と上記署名検証装置の記憶部に記憶されている上記断片u1を用いて上記署名生成鍵を復元し、復元された上記署名生成鍵を用いて上記メッセージに対して電子署名を生成する署名生成ステップと、
上記署名生成装置の送信部が、上記署名検証装置に対して上記電子署名を送信する署名送信ステップと、
上記署名検証装置の受信部が、上記電子署名を受信する署名受信ステップと、
上記署名生成装置の制御部が、上記演算結果r1と上記署名生成鍵を上記署名生成装置の記憶部から消去する処理を行う第２破棄ステップと、
上記署名検証装置の署名検証部が、上記署名検証鍵を用いて上記電子署名を検証する署名検証ステップと、
上記署名検証装置の固有データ生成部が、上記代替端末装置に固有の第２固有データを生成する第２固有データ生成ステップと、
上記署名検証装置の送信部が、上記代替端末装置に対して上記第２固有データを送信する第３固有データ送信ステップと、
上記代替端末装置の受信部が、上記第２固有データを受信する第３固有データ受信ステップと、
上記代替端末装置の固有演算部が、上記第２固有データに対して当該代替端末装置に固有の演算を行い演算結果r2を出力する第３固有演算ステップと、
上記代替端末装置の送信部が、上記署名生成装置に対して上記演算結果r2を送信する第３演算結果送信ステップと、
上記署名生成装置の受信部が、上記演算結果r2を受信する第３演算結果受信ステップと、
上記バックアップ装置の送信部が、上記署名生成装置に対して当該バックアップ装置の記憶部に記憶されている上記断片v1を送信する第２断片送信ステップと、
上記署名生成装置の受信部が、上記断片v1を受信する第２断片受信ステップと、
上記署名生成装置の断片更新部が、当該署名生成装置の記憶部に記憶されている上記断片u1と上記第２断片受信ステップにて受信した上記断片v1を用いて上記署名生成鍵を復元し、上記分割方法に従って、上記演算結果r2が復元された上記署名生成鍵の断片の一つとなるように、復元された上記署名生成鍵を３種類の断片r2,u2,v2に分割する断片更新ステップと、
上記署名生成装置の記憶部が、上記断片u2を記憶する記憶ステップと、
上記署名生成装置の送信部が、上記バックアップ装置に対して上記断片v2を送信する第３断片送信ステップと、
上記バックアップ装置の受信部が、上記断片v2を受信する第３断片受信ステップと、
上記バックアップ装置の記憶部が、上記断片v2を記憶する記憶ステップと、
上記署名生成装置の制御部が、上記演算結果r2と上記署名生成鍵を上記署名生成装置の記憶部から消去する処理を行う第３破棄ステップとを有し、
上記断片更新ステップにおける処理が実行された後は、上記代替端末装置からの要求に基づき当該署名生成装置が電子署名を生成する
代理署名方法。
【請求項８】
請求項７に記載の代理署名方法において、
上記分割ステップに替えて、
上記署名生成装置の分割部が、上記署名生成鍵を分割して得られる３種類の断片のうち少なくとも２種類の断片から上記署名生成鍵を復元可能であるが、３種類の断片のうち１種類の断片から上記署名生成鍵を復元不能な分割方法に従って、上記演算結果r1を乱数で撹乱して得られる情報s1が上記署名生成鍵の断片の一つとなるように、上記署名生成鍵を３種類の断片s1,u1,v1に分割する分割ステップと、
上記署名生成ステップに替えて、
上記署名検証装置の署名生成部が、上記第２演算結果受信ステップにて受信した上記演算結果r1を上記乱数で撹乱して得られる情報s1と上記署名検証装置の記憶部に記憶されている上記断片u1を用いて上記署名生成鍵を復元し、復元された上記署名生成鍵を用いて上記メッセージに対して電子署名を生成する署名生成ステップと、
上記断片更新ステップに替えて、
上記署名生成装置の断片更新部が、上記署名生成装置の記憶部に記憶されている上記断片u1と上記第２断片受信ステップにて受信した上記断片v1を用いて上記署名生成鍵を復元し、上記分割方法に従って、上記演算結果r2を乱数で撹乱して得られる情報s2が復元された上記署名生成鍵の断片の一つとなるように、復元された上記署名生成鍵を３種類の断片s2,u2,v2に分割する断片更新ステップと
を含むことを特徴とする代理署名方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、証明力の高い電子署名を第三者装置が代理で生成する代理署名技術に関する。
【背景技術】
【０００２】
電子署名技術において、端末装置が署名生成処理を第三者装置に委託して第三者装置が電子署名を生成する代理署名技術が知られている。このような従来技術として例えば特許文献１が挙げられる。代理署名が行われる要請として、例えば、端末装置の計算能力が低い場合などが考えられる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１４８０３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
代理署名技術では、通常、端末装置は自らの秘密鍵を第三者装置に送信しなければならない。しかし、当該秘密鍵を得た第三者装置は、爾後、当該秘密鍵が有効である限り自由に端末装置の署名を生成できてしまう。つまり、端末装置が署名対象を特定のメッセージに制限して第三者装置に電子署名の生成を委託したとしても、ひとたび秘密鍵を得た第三者装置は端末装置からの委託とは無関係に端末装置の電子署名を生成できてしまう。
【０００５】
このため、端末装置の代理として第三者装置が電子署名を生成するにあたり、当該第三者装置による電子署名生成が、端末装置からの委託に基づくものであることを証明できる仕組みが必要とされる。
【０００６】
本発明は、このような点に鑑みてなされたものであり、証明力の高い電子署名を第三者装置が代理で生成する代理署名技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の代理署名技術は、次のとおりである。すなわち、端末装置は固有の演算機能を有しており、端末装置は固有データに対するその演算機能による演算結果を署名生成装置に送り、当該演算結果を破棄する。また、署名生成装置は当該演算結果から署名検証鍵の生成を行い、予め署名検証鍵を署名検証装置へ送っておく。署名プロセスでは、端末装置が改めて上記固有データに対するその演算機能による演算結果を署名生成装置に送り、署名生成装置は当該演算結果から署名生成鍵の生成を行い、当該署名生成鍵を用いてメッセージに対する電子署名を生成して署名検証装置へ送り、当該演算結果と当該署名生成鍵を破棄する。署名検証装置は、電子署名を署名検証鍵で検証する。
【０００８】
この代理署名技術にて、セキュリティ向上の観点から、署名生成鍵と署名検証鍵の生成の際、上記演算結果に替えて、上記演算結果を乱数で撹乱して得られる情報を用いてもよい。
【０００９】
あるいは、本発明の代理署名技術は、次のとおりである。すなわち、署名生成装置は、署名生成鍵と署名検証鍵を生成し、予め署名検証鍵を署名検証装置へ送っておく。端末装置は固有の演算機能を有しており、端末装置は固有データに対するその演算機能による演算結果r1を署名生成装置に送り、当該演算結果r1を破棄する。また、署名生成装置は当該演算結果r1を署名生成鍵の断片の一つとなるように署名生成鍵を３種類の断片r1,u1,v1に分割し［分割処理］、断片u1を自身の記憶部に記憶し、断片v1をバックアップ装置に送り、断片r1と署名生成鍵を破棄する。バックアップ装置は断片v1を自身の記憶部に記憶する。署名プロセスでは、端末装置が改めて上記固有データに対するその演算機能による演算結果r1を署名生成装置に送り、署名生成装置は当該演算結果r1と断片u1から署名生成鍵の復元し、当該署名生成鍵を用いてメッセージに対する電子署名を生成して署名検証装置へ送り、当該演算結果r1と当該署名生成鍵を破棄する。署名検証装置は、電子署名を署名検証鍵で検証する。復旧プロセスでは、代替端末装置は固有の演算機能を有しており、代替端末装置は固有データに対するその演算機能による演算結果r2を署名生成装置に送り、当該演算結果r2を破棄する。また、署名生成装置は断片u1とバックアップ装置から提供を受けたv1から署名生成鍵を復元して、演算結果r2を復元された署名生成鍵の断片の一つとなるように復元された署名生成鍵を３種類の断片r2,u2,v2に分割し［断片更新処理］、断片u2を自身の記憶部に記憶し、断片v2をバックアップ装置に送り、断片r2と署名生成鍵を破棄する。バックアップ装置は断片v2を自身の記憶部に記憶する。
【００１０】
この代理署名技術にて、セキュリティ向上の観点から、署名生成鍵の分割処理およびの断片更新処理の際、上記演算結果r1，r2に替えて、上記演算結果r1，r2を乱数で撹乱して得られる情報s1，s2を用いてもよい。
【発明の効果】
【００１１】
本発明に拠れば、端末装置Aに入力される固有データから、端末装置A以外の端末装置が、端末装置Aの演算結果および当該演算結果から一意に生成される署名生成鍵を求めることが困難であれば、署名生成装置が正しく電子署名の生成および演算結果と署名生成鍵の破棄を行っている限り、端末装置Aが関与すること無く、署名検証鍵を用いて署名検証に合格するような電子署名を生成することは困難となるから、署名生成装置が生成した電子署名は、端末装置Aからの委託に基づくものであり、ユーザの意思の下で生成された電子署名、すなわち証明力の高い電子署名ということができる。
【図面の簡単な説明】
【００１２】
【図１】実施形態１における代理署名システムを示す図。
【図２】実施形態１における代理署名方法の処理手順を示す図。
【図３】実施形態１の変形例における代理署名方法の処理手順を示す図。
【図４】実施形態２における代理署名システムを示す図。
【図５】実施形態２における代理署名方法の処理手順を示す図（その１）。
【図６】実施形態２における代理署名方法の処理手順を示す図（その２）。
【図７】実施形態２における代理署名方法の処理手順を示す図（その３）。
【図８】実施形態２の変形例における代理署名方法の処理手順を示す図（その１）。
【図９】実施形態２の変形例における代理署名方法の処理手順を示す図（その２）。
【図１０】実施形態の変形例２における代理署名方法の処理手順を示す図（その３）。
【図１１】各実施形態に関わる代理署名システムの構成要素である端末装置、署名生成装置、署名検証装置（APサーバ装置）、代替端末装置、バックアップ装置の機能構成を示す図。
【発明を実施するための形態】
【００１３】
《実施形態１》
［代理署名システム］
実施形態１の代理署名システム１は、図１に示すように、端末装置１００と、署名生成装置２００と、署名検証装置３００とを少なくとも含んで構成される。これらの各装置は、例えば通信網５を経由して、相互に通信可能とされている。とくに、端末装置１００と署名生成装置２００との間の通信路は、暗号技術などにより秘匿性の高い通信が実現されていることが望ましい。
【００１４】
本発明の代理署名システムは、ユーザの数に応じて一つまたは複数の端末装置１００と、サーバ管理者（例えばアプリケーションサービスプロバイダ）の数に応じて一つまたは複数の署名検証装置３００を含みえるが、本発明の理解を容易にするため、実施形態１では、代理署名システム１はN個の端末装置１００−１，・・・，１００−ｉ，・・・，１００−Ｎと一つの署名検証装置３００を含むとする。ただし、Nは２以上の整数とする。
【００１５】
また、本発明の代理署名システムは、一つまたは複数の署名生成装置２００を含みえる。代理署名システムが複数の署名生成装置２００を含む場合、署名生成と署名検証の一貫性（例えばRSA署名方式などであれば署名生成鍵と署名検証鍵との一対の関係）が保持されるように運用されることが好ましい。例えば、署名検証装置３００が端末装置１００に対して電子署名を要求する際、端末装置１００に対して、端末装置１００が電子署名の生成を委託する署名生成装置２００を指定する情報を送る仕組みや、或いは、端末装置１００が電子署名の生成を委託した署名生成装置２００を特定する情報を、当該電子署名を要求した署名検証装置３００に送る仕組みが望まれる。このような仕組みは、例えば装置相互間の通信データに当該情報を含めることによって容易に構築される。実施形態１では、本発明の理解を容易にするため、代理署名システム１は一つの署名生成装置２００を含むとする。
【００１６】
＜端末装置＞
端末装置１００は、計算機能およびデータ送受信機能を有する装置であり、例えばパーソナルコンピュータ、携帯電話、ICカードなどで例示される。とくに、端末装置１００が署名生成装置３００に電子署名の生成を委託しなければならない状況を想定すると、端末装置１００として、計算能力が低い、計算能力が特定の演算に特化されている、或いはアプリケーションソフトウェアの追加が困難であり、さらに言えばアプリケーションソフトウェア毎に異なる電子署名用の鍵生成処理や署名生成処理などを実行することが困難な装置を想定することが、代理署名の必要性を理解しやすくするであろう。
【００１７】
ただし、端末装置１００は、固有の演算機能を有するものとする。この固有の演算機能は、特に限定はなく、例えば鍵付きのハッシュ演算、すなわち鍵データKと入力の固定データSに対してKおよびSを連結したデータS‖Kのハッシュ値Hash(S‖K)を出力する機能などである。ここで鍵データKは端末装置１００ごとに異なっている。あるいは、アプリケーションソフトウェアで用いる電子署名とは異なる電子署名機能を予め端末装置１００が有しているとき、当該電子署名機能を固有の演算機能としてもよい。
【００１８】
＜署名生成装置＞
署名生成装置２００は、計算機能およびデータ送受信機能を有する装置である。署名生成装置２００は、電子署名を生成するだけの計算能力を有することが好ましい。とくに、署名生成装置２００は署名生成鍵（秘密鍵）を扱うことから耐タンパー性を有することが望ましく、署名生成装置２００は例えばHSM（Hardware Security Module）やTPM（Trusted Platform Module）によって実現される。
【００１９】
＜署名検証装置＞
署名検証装置３００は、計算機能およびデータ送受信機能を有する装置であり、例えばサーバ装置などで例示される。実施形態１では、署名検証装置３００は、例えば端末装置１００に対してアプリケーションソフトウェアを実行する装置であり、この観点から、爾後、署名検証装置３００をAPサーバ装置３００と呼称することにする。また、実施形態１では、端末装置１００に対する当該アプリケーションソフトウェアの適用には電子署名を要するものとする。
【００２０】
代理署名システム１における代理署名処理を、図２を参照しながら叙述する。各装置の機能構成については、図１１を参照されたい。なお、N個の端末装置１００−１，・・・，１００−ｉ，・・・，１００−Ｎのうちのどの端末装置に対しても同じ代理署名処理となるから、この説明では、任意性を考慮してｉ番目の端末装置１００−ｉに対する代理署名処理を説明する。
【００２１】
〈登録プロセス〉
まず、署名プロセスに先駆けて署名用の鍵の登録プロセスが実行される。
【００２２】
APサーバ装置３００の固有データ生成部３０１が、端末装置１００−ｉに固有の固有データhiを生成する（ステップＳ１）。固有データhiは端末装置１００−ｉを特定する情報（識別子）に対応付けられて、APサーバ装置３００の記憶部３０９に記憶される。
【００２３】
APサーバ装置３００の送信部３０７が、端末装置１００−ｉに対して固有データhiを送信し（ステップＳ２）、端末装置１００−ｉの受信部１０８が、固有データhiを受信する（ステップＳ３）。
【００２４】
端末装置１００−ｉの固有演算部１０１が、固有データhiに対して端末装置１００−ｉに固有の演算gを行い、この演算結果ri=g(hi)を出力する（ステップＳ４）。固有の演算gが例えば上述のハッシュ演算Hashであれば、端末装置１００−ｉに固有の鍵データKiと入力の固有データhiに対してKiおよびhiを連結したデータhi‖Kiのハッシュ値Hash(hi‖Ki)が演算結果riである。
【００２５】
端末装置１００−ｉの送信部１０７は、署名生成装置２００に対して演算結果riを送信し（ステップＳ５）、署名生成装置２００の受信部２０８が、演算結果riを受信する（ステップＳ６）。ステップＳ５の処理の後、端末装置１００−ｉの制御部１０５は、端末装置１００−ｉの図示しない記憶部から演算結果riを消去する処理を行う（ステップＳ５ａ）。
【００２６】
署名生成装置２００の署名鍵生成部２０１が、演算結果riを用いて少なくとも署名検証鍵PKi=Gen(ri)を生成する（ステップＳ７）。署名鍵生成部２０１は、演算結果riをパラメータとして署名生成鍵SKiと署名検証鍵PKiをセットで求めるか、または署名生成鍵SKiと署名検証鍵PKiの何れかを一意に生成する機能Genを持つ。また、署名鍵生成部２０１は、演算結果riを署名生成鍵SKiとし、演算結果riから署名検証鍵PKiを生成するとしてもよい。実施形態１では、SKi=Gen(ri)=ri，PKi=Gen(ri)とする。本発明で利用可能な署名方式としてRSA署名方式、Schnorr署名方式、これらの改良方式などが挙げられる（参考文献Ａ，Ｂ参照）。
（参考文献Ａ）岡本龍明、山本博資著、「現代暗号」、産業図書、1997、ISBN-13: 978-4782853535
（参考文献Ｂ）宇根正志、岡本龍明、「最近のデジタル署名における理論研究動向について」、日本銀行金融研究所/金融研究/2000. 4、[平成２２年４月１４日検索]、インターネット〈http://www.imes.boj.or.jp/japanese/kinyu/2000/kk19-b1-3.pdf〉
【００２７】
（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の成否を検証する。
【００２８】
（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の成否を検証する。
【００２９】
署名生成装置２００の送信部２０７が、APサーバ装置３００に対して署名検証鍵PKiを送信し（ステップＳ８）、APサーバ装置３００の受信部３０８が、署名検証鍵PKiを受信する（ステップＳ９）。署名検証鍵PKiは端末装置１００−ｉを特定する上記識別子に対応付けられて、APサーバ装置３００の記憶部３０９に記憶される。
【００３０】
なお、ステップＳ７ないしステップＳ８の処理の後、署名生成装置２００の制御部２０５が、演算結果riを署名生成装置２００の記憶部２０９から消去する処理を行う（ステップＳ８ａ）。
【００３１】
〈署名プロセス〉
次に、APサーバ装置３００の持つアプリケーションソフトウェアの端末装置１００に対する適用には電子署名が必要であり、例えば端末装置１００−ｉからのAPサーバ装置３００に対する要求がトリガーとなって署名プロセスが実施される。
【００３２】
APサーバ装置３００の送信部３０７が、記憶部３０９に記憶されている端末装置１００−ｉに対応する固有データhiを端末装置１００−ｉに対して送信し（ステップＳ１０）、端末装置１００−ｉの受信部１０８が、ステップＳ１０にて送信された固有データhiを受信する（ステップＳ１１）。
【００３３】
端末装置１００−ｉの固有演算部１０１が、ステップＳ１１にて受信した固有データhiに対して当該端末装置１００−ｉに固有の演算gを行い、この演算結果ri=g(hi)を出力する（ステップＳ１２）。この演算結果riは、ステップＳ４の処理で得られたriと同じである。
【００３４】
端末装置１００−ｉの送信部１０７が、署名生成装置２００に対してステップＳ１２にて得られた演算結果riを送信し（ステップＳ１３）、署名生成装置２００の受信部２０８が、ステップＳ１３にて送信された演算結果riを受信する（ステップＳ１４）。ステップＳ１３の処理の後、端末装置１００−ｉの制御部１０５は、端末装置１００−ｉの図示しない記憶部から演算結果riを消去する処理を行う（ステップＳ１３ａ）。
【００３５】
また、APサーバ装置３００の送信部３０７が、署名生成装置２００に対して電子署名付与の対象となるメッセージｍを送信し（ステップＳ１５）、署名生成装置２００の受信部２０８が、メッセージｍを受信する（ステップＳ１６）。
【００３６】
署名生成装置２００の署名鍵生成部２０１が、ステップＳ１３にて受信した演算結果riを用いて少なくとも署名生成鍵SKi=Gen(ri)を生成する（ステップＳ１７）。署名方式は上述のとおりである。実施形態１ではSKi=Gen(ri)=riである。
【００３７】
そして、署名生成装置２００の署名生成部２０２が、署名生成鍵SKiを用いてメッセージｍに対して電子署名Sig=Gsig(m,SKi)を生成する（ステップＳ１８）。
【００３８】
署名生成装置２００の送信部２０７が、APサーバ装置３００に対して電子署名Sigを送信し（ステップＳ１９）、APサーバ装置３００の受信部３０８が、電子署名Sigを受信する（ステップＳ２０）。
【００３９】
APサーバ装置３００の署名検証部３０２が、記憶部３０９に記憶されている端末装置１００−ｉに対応する署名検証鍵PKiを用いて電子署名Sigを検証する（ステップＳ２１）。
【００４０】
なお、ステップＳ１８ないしステップＳ１９の処理の後、署名生成装置２００の制御部２０５が、演算結果riと署名生成鍵SKiを署名生成装置２００の記憶部２０９から消去する処理を行う（ステップＳ１９ａ）。
【００４１】
以上より、端末装置１００−ｉに入力される固有データhiから、端末装置１００−ｉ以外の端末装置が、演算結果riおよび当該演算結果から一意に生成される署名生成鍵SKiを求めることが困難であれば、署名生成装置２００が正しく電子署名の生成および演算結果riと署名生成鍵SKiの破棄を行っている限り、端末装置１００−ｉが関与すること無く、署名検証鍵PKiを用いて署名検証に合格するような電子署名Sigを生成することは困難となる。
【００４２】
演算結果は端末装置ごとに固有の演算機能によるものであるため、端末装置１００−ｉ以外の端末装置が演算結果riを求めることは通常、困難と見なすことができる。これは例えば上述のとおり、固有の演算機能を鍵付きのハッシュ演算、すなわち鍵データKと入力の固定データSに対してKおよびSを連結したデータS‖Kのハッシュ値Hash(S‖K)を出力する機能とすることで容易に実現できる。また演算結果riをセキュア通信によって署名生成装置２００に送信し、署名生成装置２００をHSMなどによって実現して処理機能の改変を困難とすることで、不正な演算結果の取得を困難とし、署名生成装置２００が正しく電子署名の生成および演算結果の破棄を行っているものと見なすことができる。
【００４３】
さらに、署名生成装置２００は、署名生成処理の際を除き、署名生成鍵SKiを保有していないため、たとえ第三者装置が署名生成装置２００の内部データを得ることができたとしても、署名生成時を除き署名生成鍵SKiを不正に盗まれずに済む。署名生成時点でのリスクについては、署名生成装置２００に対する盗難や不正アクセスの痕跡などの異常が確認された場合ただちに署名生成を拒否するといった対応によりリスクヘッジが可能である。
【００４４】
したがって、署名生成装置２００が生成した電子署名Sigは、端末装置１００−ｉからの委託に基づくものであり、ユーザの意思の下で生成された電子署名、すなわち証明力の高い電子署名ということができる。
【００４５】
《実施形態１の変形例》
実施形態１におけるセキュリティを向上させる実施形態１の変形例について説明する（図３参照）。実施形態１では演算結果riが端末装置間で十分にランダムであるか不明であるから、この変形例では、署名生成鍵と署名検証鍵を生成するに際して演算結果riを乱数で撹乱する。
【００４６】
具体的には、実施形態１において、ステップＳ７に替えて、署名生成装置２００の署名鍵生成部２０１が、演算結果riを乱数生成部（図示せず）で生成された乱数tiで撹乱して得られる情報siを用いて少なくとも署名検証鍵PKiを生成する処理（ステップＳ７ｐ）とし、ステップＳ１７に替えて、署名生成装置２００の署名鍵生成部２０１が、ステップＳ１３にて受信した演算結果riを上記乱数tiで撹乱して得られる情報siを用いて少なくとも署名生成鍵SKiを生成する処理（ステップＳ１７ｐ）とする。これらの他の処理は実施形態１と同じであるから説明を省略する。
【００４７】
「演算結果riを乱数tiで撹乱して得られる情報si」は例えばsi=ri(+)tiである。ここで(+)は排他的論理和を表す。署名鍵生成部２０１は、情報siをパラメータとして署名生成鍵SKiと署名検証鍵PKiをセットで求めるか、または署名生成鍵SKiと署名検証鍵PKiの何れかを一意に生成する。また、署名鍵生成部２０１は、情報siを署名生成鍵SKiとし、情報siから署名検証鍵PKiを生成するとしてもよい。乱数tiは、端末装置１００−ｉを特定する上記識別子に対応付けられて、署名生成装置２００の記憶部２０９に記憶される。
【００４８】
このような処理により、署名生成鍵と署名検証鍵を生成するに際して用いられる情報siが十分にランダムであることが保証される。なお、乱数tiはAPサーバ装置３００によって生成・保存され、署名プロセスの度に署名生成装置２００に送信されるとしてもよい。また、この変形例ではXOR演算を用いて十分なランダム性を保障する処理を説明したが、十分なランダム性を保障することができるならば他の演算を用いてもよい。
【００４９】
《実施形態２》
実施形態２は、実施形態１において端末装置からの秘密値（例えば上記鍵データK）の漏洩防止や端末紛失時の秘密値のリカバリを実現することを目的とした実施形態である。実施形態１と同じ構成要素には同じ符号を当ててその重複説明を省略する。
【００５０】
実施形態２では秘密値を３種類の値（断片）に分け、３種類の断片のうち２種類の断片を用いると当該秘密値を復元でき、１種類の断片だけでは当該秘密値を復元できないような分割技術を用いるものとする。このような分割技術の具体例として、下記参考特許文献に記載されているデータ分割方法が挙げられ、これを援用する。
（参考特許文献）特開2004-213650号公報
【００５１】
［代理署名システム］
実施形態２の代理署名システム２は、図４に示すように、端末装置１００と、署名生成装置２００と、署名検証装置３００と、代替端末装置４００と、バックアップ装置５００を少なくとも含んで構成される。これらの各装置は、例えば通信網５を経由して、相互に通信可能とされている。とくに、端末装置１００と署名生成装置２００との間の通信路、代替端末装置４００と署名生成装置２００との間の通信路、バックアップ装置５００と署名生成装置２００との間の通信路それぞれは、暗号技術などにより秘匿性の高い通信が実現されていることが望ましい。
【００５２】
端末装置１００、署名生成装置２００、署名検証装置３００については、実施形態１と同じであるから重複説明を省略する。
【００５３】
＜代替端末装置＞
代替端末装置４００は、計算機能およびデータ送受信機能を有する装置であり、実質的に端末装置１００と同程度の機能が想定される。この意味では代替端末装置４００は端末装置１００と異なるものではないが、同一ユーザの管理下にある、或いは端末装置１００の紛失や破損などを契機として代替端末４００が使用されるようになるということを予定している点で、代替端末装置４００は端末装置１００と異なる。
【００５４】
＜バックアップ装置＞
バックアップ装置５００は、データ保管とデータ送受信機能を有すれば十分な装置であり、例えばサーバ装置などで例示される。本発明では一つまたは複数のバックアップ装置を含み得るが、実施形態２では、本発明の理解を容易にするため、代理署名システム２は一つのバックアップ装置５００を含むとする。
【００５５】
代理署名システム２における代理署名処理を、図５−７を参照しながら叙述する。以降では、端末装置１００−ｉに対応する署名検証鍵をAPサーバ装置３００に登録する処理手順（登録プロセス）、署名生成鍵SKiを分割して分散管理する処理手順（分割プロセス）、電子署名を生成する処理手順（署名プロセス）、および署名生成鍵SKiを復元する処理手順（復旧プロセス）に分けて説明する。各装置の機能構成については、図１１を参照されたい。
【００５６】
〈登録プロセス〉
署名生成装置の署名鍵生成部２０１が、署名生成鍵SKiおよび署名検証鍵PKiを生成する（ステップＳ１０１）。署名生成鍵SKiは端末装置１００−ｉを特定する情報（識別子）に対応付けられて、署名生成装置２００の記憶部２０９に記憶される。本発明で利用可能な署名方式としてRSA署名方式、Schnorr署名方式、これらの改良方式などが挙げられる（上記参考文献Ａ，Ｂ参照）。
【００５７】
署名生成装置２００の送信部２０７が、APサーバ装置３００に対して署名検証鍵PKiを送信し（ステップＳ１０２）、APサーバ装置３００の受信部３０８が、署名検証鍵PKiを受信する（ステップＳ１０３）。署名検証鍵PKiは端末装置１００−ｉを特定する上記識別子に対応付けられて、APサーバ装置３００の記憶部３０９に記憶される。
【００５８】
〈分割プロセス〉
APサーバ装置３００の固有データ生成部３０１が、端末装置１００−ｉに固有の固有データhi1を生成する（ステップＳ１０４）。固有データhi1は端末装置１００−ｉを特定する情報（識別子）に対応付けられて、APサーバ装置３００の記憶部３０９に記憶される。
【００５９】
APサーバ装置３００の送信部３０７が、端末装置１００−ｉに対して固有データhi1を送信し（ステップＳ１０５）、端末装置１００−ｉの受信部１０８が、固有データhi1を受信する（ステップＳ１０６）。
【００６０】
端末装置１００−ｉの固有演算部１０１が、固有データhi1に対して端末装置１００−ｉに固有の演算gを行い、この演算結果ri1=g(hi1)を出力する（ステップＳ１０７）。固有の演算gが例えば上述のハッシュ演算Hashであれば、端末装置１００−ｉに固有の鍵データKi1と入力の固有データhi1に対してKi1およびhi1を連結したデータhi1‖Ki1のハッシュ値Hash(hi1‖Ki1)が演算結果ri1である。
【００６１】
端末装置１００−ｉの送信部１０７は、署名生成装置２００に対して演算結果ri1を送信し（ステップＳ１０８）、署名生成装置２００の受信部２０８が、演算結果ri1を受信する（ステップＳ１０９）。ステップＳ１０８の処理の後、端末装置１００−ｉの制御部１０５は、端末装置１００−ｉの図示しない記憶部から演算結果ri1を消去する処理を行う（ステップＳ１０８ａ）。
【００６２】
署名生成装置２００の分割部２０３が、署名生成鍵SKiを分割して得られる３種類の断片のうち少なくとも２種類の断片から署名生成鍵SKiを復元可能であるが、３種類の断片のうち１種類の断片から署名生成鍵SKiを復元不能な上記分割方法に従って、演算結果ri1が署名生成鍵SKiの断片の一つとなるように、記憶部２０９に記憶されている端末装置１００−ｉに対応する署名生成鍵SKiを３種類の断片ri1,ui1,vi1に分割する（ステップＳ１１０）。断片ui1は端末装置１００−ｉを特定する上記識別子に対応付けられて、署名生成装置２００の記憶部２０９に記憶される（ステップＳ１１１）。
【００６３】
署名生成装置２００の送信部２０７が、バックアップ装置５００に対して断片vi1を送信し（ステップＳ１１２）、バックアップ装置５００の受信部５０８が、断片vi1を受信する（ステップＳ１１３）。そして、断片vi1は端末装置１００−ｉを特定する上記識別子に対応付けられて、バックアップ装置５００の記憶部５０９に記憶される（ステップＳ１１４）。
【００６４】
なお、ステップＳ１１０の処理の後、署名生成装置２００の制御部２０５が、演算結果ri1と署名生成鍵SKiを署名生成装置２００の記憶部２０９から消去する処理を行う（ステップＳ１１５）。
【００６５】
〈署名プロセス〉
次に、APサーバ装置３００の持つアプリケーションソフトウェアの端末装置１００に対する適用には電子署名が必要であり、例えば端末装置１００−ｉからのAPサーバ装置３００に対する要求がトリガーとなって署名プロセスが実施される。
【００６６】
APサーバ装置３００の送信部３０７が、記憶部３０９に記憶されている端末装置１００−ｉに対応する固有データhi1を端末装置１００−ｉに対して送信し（ステップＳ１１６）、端末装置１００−ｉの受信部１０８が、ステップＳ１１６にて送信された固有データhi1を受信する（ステップＳ１１７）。
【００６７】
端末装置１００−ｉの固有演算部１０１が、ステップＳ１１７にて受信した固有データhi1に対して端末装置１００−ｉに固有の演算gを行い、この演算結果ri1=g(hi1)を出力する（ステップＳ１１８）。この演算結果riは、ステップＳ１０７の処理で得られたriと同じである。
【００６８】
端末装置１００−ｉの送信部１０７が、署名生成装置２００に対してステップＳ１１８にて得られた演算結果ri1を送信し（ステップＳ１１９）、署名生成装置２００の受信部２０８が、ステップＳ１１９にて送信された演算結果ri1を受信する（ステップＳ１２０）。ステップＳ１１９の処理の後、端末装置１００−ｉの制御部１０５は、端末装置１００−ｉの図示しない記憶部から演算結果ri1を消去する処理を行う（ステップＳ１１９ａ）。
【００６９】
一方、APサーバ装置３００の送信部３０７が、署名生成装置２００に対して電子署名付与の対象となるメッセージｍを送信し（ステップＳ１２１）、署名生成装置２００の受信部２０８が、メッセージｍを受信する（ステップＳ１２２）。
【００７０】
APサーバ装置３００の署名生成部２０２が、ステップＳ１２０にて受信した演算結果ri1とAPサーバ装置３００の記憶部３０９に記憶されている断片ui1を用いて署名生成鍵SKiを復元し、復元された署名生成鍵SKiを用いてメッセージｍに対して電子署名Sig=Gsig(m,SKi)を生成する（ステップＳ１２３）。
【００７１】
署名生成装置２００の送信部２０７が、APサーバ装置３００に対して電子署名Sigを送信し（ステップＳ１２４）、APサーバ装置３００の受信部３０８が、電子署名Sigを受信する（ステップＳ１２５）。
【００７２】
APサーバ装置３００の署名検証部３０２が、記憶部３０９に記憶されている端末装置１００−ｉに対応する署名検証鍵PKiを用いて電子署名Sigを検証する（ステップＳ１２６）。
【００７３】
なお、ステップＳ１２３の処理の後、署名生成装置２００の制御部２０５が、演算結果ri1と署名生成鍵SKiを署名生成装置２００の記憶部２０９から消去する処理を行う（ステップＳ１２４ａ）。
【００７４】
〈復旧プロセス〉
この復旧プロセスは、端末装置１００の紛失や破損などを契機として実施される。
【００７５】
APサーバ装置３００の固有データ生成部３０１が、代替端末装置４００に固有の固有データhi2を生成する（ステップＳ１２７）。固有データhi2は固有データhi1に替えて端末装置１００−ｉを特定する情報（識別子）に対応付けられて、さらに、固有データhi2は代替端末装置４００を特定する情報（識別子）に対応付けられて、APサーバ装置３００の記憶部３０９に記憶される。
【００７６】
APサーバ装置３００の送信部３０７が、代替端末装置４００に対して固有データhi2を送信し（ステップＳ１２８）、代替端末装置４００の受信部４０８が、固有データhi2を受信する（ステップＳ１２９）。
【００７７】
代替端末装置４００の固有演算部４０１が、固有データhi2に対して代替端末装置４００に固有の演算yを行い、この演算結果ri2=y(hi2)を出力する（ステップＳ１３０）。固有の演算yが例えば上述のハッシュ演算Hashであれば、代替端末装置４００に固有の鍵データKi2と入力の固有データhi2に対してKi2およびhi2を連結したデータhi2‖Ki2のハッシュ値Hash(hi2‖Ki2)が演算結果ri2である。
【００７８】
代替端末装置４００の送信部４０７が、署名生成装置２００に対して演算結果ri2を送信し（ステップS１３１）、署名生成装置２００の受信部２０８が、演算結果ri2を受信する（ステップＳ１３２）。ステップＳ１３１の処理の後、代替端末装置４００の制御部４０５は、代替端末装置４００の図示しない記憶部から演算結果ri2を消去する処理を行う（ステップＳ１３１ａ）。
【００７９】
署名生成装置２００からの要求を受けて、バックアップ装置５００の送信部５０７が、バックアップ装置５００の記憶部５０９に記憶されている、端末装置１００−ｉに対応付けられた断片vi1を署名生成装置２００に対して送信し（ステップＳ１３３）、署名生成装置２００の受信部２０８が、断片vi1を受信する（ステップＳ１３４）。
【００８０】
署名生成装置２００の断片更新部２０４が、署名生成装置２００の記憶部２０９に記憶されている断片ui1とステップＳ２１４にて受信した断片vi1を用いて署名生成鍵SKiを復元し、上記分割方法に従って、演算結果ri2が復元された署名生成鍵SKiの断片の一つとなるように、復元された署名生成鍵SKiを３種類の断片ri2,ui2,vi2に分割する（ステップＳ１３５）。断片ui2は代替端末装置４００を特定する上記識別子に対応付けられて、署名生成装置２００の記憶部２０９に記憶される（ステップＳ１３６）。
【００８１】
署名生成装置２００の送信部２０７が、バックアップ装置５００に対して断片vi2を送信し（ステップＳ１３７）、バックアップ装置５００の受信部５０８が、断片vi2を受信する（ステップＳ１３８）。そして、断片vi2は代替端末装置４００を特定する上記識別子に対応付けられて、バックアップ装置５００の記憶部５０９に記憶される（ステップＳ１３９）。
【００８２】
なお、ステップＳ１３５の処理の後、署名生成装置２００の制御部２０５が、演算結果ri2と署名生成鍵SKiを署名生成装置２００の記憶部２０９から消去する処理を行う（ステップＳ１４０）。
【００８３】
ステップＳ１３５における処理が実行された後は、代替端末装置４００からの要求に基づき署名生成装置２００が電子署名を生成することになる。つまり、代替端末装置４００に対して署名プロセスの各ステップＳ１１６−Ｓ１２６が実行される。この際、上述の各ステップＳ１１６−Ｓ１２６の説明にて、「端末装置１００−ｉ」を「代替端末装置４００」に、「固有データhi1」を「固有データhi2」に、「演算結果ri1」を「演算結果ri2」に、「断片ri1」を「断片ri2」に、「断片ui1」を「断片ui2」に、「断片vi1」を「断片vi2」に、「鍵データKi1」を「鍵データKi2」に読み替えればよい。
【００８４】
復旧プロセスでは、端末装置１００の紛失や破損が生じても署名検証鍵PKiを変更する必要が無いという運用上のメリットがある。また、紛失した端末装置１００−ｉを不正に用いようとしても、APサーバ装置３００が固有データhi1の送信を拒否する、または署名生成装置２００が演算結果ri1の受信を拒否することで不正を防ぐことができる。
【００８５】
《実施形態２の変形例》
実施形態２におけるセキュリティを向上させる実施形態２の変形例について説明する（図８−１０）。実施形態２では署名生成鍵SKiの断片となる演算結果riが十分にランダムであるか不明であるから、この変形例では、分割処理を実行するに際して演算結果riを乱数で撹乱する。この処理に併せて署名生成処理および断片更新処理が変更される。
【００８６】
具体的には、実施形態２において、
ステップＳ１１０に替えて、署名生成装置２００の分割部２０３が、署名生成鍵SKiを分割して得られる３種類の断片のうち少なくとも２種類の断片から署名生成鍵SKiを復元可能であるが、３種類の断片のうち１種類の断片から署名生成鍵SKiを復元不能な上記分割方法に従って、演算結果ri1を乱数生成部（図示せず）で生成された乱数ti1で撹乱して得られる情報si1が署名生成鍵SKiの断片の一つとなるように、記憶部２０９に記憶されている端末装置１００−ｉに対応する署名生成鍵SKiを３種類の断片si1,ui1,vi1に分割する処理（ステップＳ１１０ｐ）とし、
ステップＳ１２３に替えて、APサーバ装置３００の署名生成部２０２が、ステップＳ２００にて受信した演算結果ri1を上記乱数ti1で撹乱して得られる情報si1とAPサーバ装置３００の記憶部３０９に記憶されている断片ui1を用いて署名生成鍵SKiを復元し、復元された署名生成鍵SKiを用いてメッセージｍに対して電子署名Sig=(m,SKi)を生成する処理（ステップＳ１２３ｐ）とし、
ステップＳ１３５に替えて、署名生成装置２００の断片更新部２０４が、署名生成装置２００の記憶部２０９に記憶されている断片ui1とステップＳ２１４にて受信した断片vi1を用いて署名生成鍵SKiを復元し、上記分割方法に従って、演算結果ri2を乱数生成部（図示せず）で生成された乱数ti2で撹乱して得られる情報si2が復元された署名生成鍵SKiの断片の一つとなるように、復元された署名生成鍵SKiを３種類の断片si2,ui2,vi2に分割する処理（ステップＳ１３５ｐ）とする。これらの他の処理は実施形態２と同じであるから説明を省略する。
【００８７】
「演算結果ri*を乱数ti*で撹乱して得られる情報si*」（*=1 or 2）は例えばsi*=ri*(+)ti*である。ここで(+)は排他的論理和を表す。乱数ti1は、端末装置１００−ｉを特定する上記識別子に対応付けられて、署名生成装置２００の記憶部２０９に記憶され、乱数ti2は、代替端末装置４００を特定する上記識別子に対応付けられて、署名生成装置２００の記憶部２０９に記憶される。
【００８８】
このような処理により、署名生成鍵と署名検証鍵を生成するに際して用いられる情報si*が十分にランダムであることが保証される。なお、乱数ti*はAPサーバ装置３００によって生成・保存され、署名プロセスの度に署名生成装置２００に送信されるとしてもよい。また、この変形例ではXOR演算を用いて十分なランダム性を保障する処理を説明したが、十分なランダム性を保障することができるならば他の演算を用いてもよい。
【００８９】
＜補記＞
代理署名システムに含まれるハードウェアエンティティ（端末装置、署名生成装置、署名検証装置、代替端末装置、バックアップ装置）は、キーボードなどが接続可能な入力部、液晶ディスプレイなどが接続可能な出力部、ハードウェアエンティティの外部に通信可能な通信装置（例えば通信ケーブル）が接続可能な通信部、ＣＰＵ（Central Processing Unit）〔キャッシュメモリやレジスタなどを備えていてもよい。〕、メモリであるＲＡＭやＲＯＭ、ハードディスクである外部記憶装置並びにこれらの入力部、出力部、通信部、ＣＰＵ、ＲＡＭ、ＲＯＭ、外部記憶装置の間のデータのやり取りが可能なように接続するバスを有している。また必要に応じて、ハードウェアエンティティに、ＣＤ−ＲＯＭなどの記録媒体を読み書きできる装置（ドライブ）などを設けるとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。
【００９０】
ハードウェアエンティティの外部記憶装置には、上述の機能を実現するために必要となるプログラムおよびこのプログラムの処理において必要となるデータなどが記憶されている（外部記憶装置に限らず、例えばプログラムを読み出し専用記憶装置であるＲＯＭに記憶させておくなどでもよい。）。また、これらのプログラムの処理によって得られるデータなどは、ＲＡＭや外部記憶装置などに適宜に記憶される。上述の説明では、演算結果やその格納領域のアドレスなどを記憶するＲＡＭやレジスタなどの記憶装置を単に「記憶部」とした。
【００９１】
ハードウェアエンティティでは、外部記憶装置〔あるいはＲＯＭなど〕に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてメモリに読み込まれて、適宜にＣＰＵで解釈実行・処理される。その結果、ＣＰＵが所定の機能（例えば、固有演算部、固有データ生成部、署名検証部、署名鍵生成部、署名生成部、分割部、断片更新部、制御部など）を実現する。
【００９２】
各実施形態で説明したハードウェアエンティティの細部においては、数論における数値計算処理が必要となる場合があるが、数論における数値計算処理自体は、周知技術と同様にして達成されるので、その演算処理方法などの詳細な説明は省略した（この点の技術水準を示す数論における数値計算処理が可能なソフトウェアとしては、例えばＰＡＲＩ／ＧＰ、ＫＡＮＴ／ＫＡＳＨなどが挙げられる。ＰＡＲＩ／ＧＰについては、例えばインターネット〈URL: http://pari.math.u-bordeaux.fr/〉［平成22年4月9日検索］を参照のこと。ＫＡＮＴ／ＫＡＳＨについては、例えばインターネット〈URL: http://www.math.tu-berlin.de/algebra/〉［平成22年4月9日検索］を参照のこと。）。
また、この点に関する文献として、参考文献Ｃを挙げることができる。
（参考文献Ｃ）  H. Cohen, "A Course in Computational Algebraic Number Theory", GTM 138, Springer-Verlag, 1993.
【００９３】
本発明は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、上記実施形態において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。
【００９４】
また、上記実施形態において説明したハードウェアエンティティにおける処理機能をコンピュータによって実現する場合、ハードウェアエンティティが有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記ハードウェアエンティティにおける処理機能がコンピュータ上で実現される。
【００９５】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等を、光磁気記録媒体として、ＭＯ（Magneto-Optical disc）等を、半導体メモリとしてＥＥＰ−ＲＯＭ（Electronically Erasable and Programmable-Read Only Memory）等を用いることができる。
【００９６】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【００９７】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【００９８】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、ハードウェアエンティティを構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【図１】
0005513255.tif 000002
【図２】
0005513255.tif 000003
【図３】
0005513255.tif 000004
【図４】
0005513255.tif 000005
【図５】
0005513255.tif 000006
【図６】
0005513255.tif 000007
【図７】
0005513255.tif 000008
【図８】
0005513255.tif 000009
【図９】
0005513255.tif 000010
【図１０】
0005513255.tif 000011
【図１１】
0005513255.tif 000012