(57)【要約】【課題】ディジタル署名がなされたとき、そのディジタル署名の秘密鍵の本来の所有者によってなされた正当なディジタル署名であるか、あるいは秘密鍵の本来の所有者以外のものが不正にその秘密鍵を入手すること等によりそのディジタル署名を偽造したかを判定可能なディジタル署名技術を提供する。【解決手段】ディジタル署名を生成するための秘密鍵を、その秘密鍵の本来の持主と、信頼される１つまたは複数の第三者機関の間で分割して保持することを可能とするディジタル署名のための秘密鍵生成機能と、署名生成時には、秘密鍵の一部を保持する本人と第三者機関が全て参加したときのみディジタル署名の生成が可能である署名生成機能と、ディジタル署名が不正な方法によって生成された場合には、その不正を判定する判定機能とを備える。【選択図】      図１
2004193684.tif 000002
【特許請求の範囲】
【請求項１】
公開鍵暗号方式によるディジタル署名を行うために、秘密鍵を所持して前記公開鍵暗号方式に基づいたディジタル署名を行う署名者装置と、前記公開鍵の認証機関とは独立な第三者機関に設けられる第三者機関装置とが通信ネットワークを介して接続されたシステムにおいて、前記署名者装置と前記第三者機関装置とが協働して前記秘密鍵を生成するとともに、前記秘密鍵から分割されて成る部分秘密鍵のいずれかを各々の装置が所持しているとき、当該所持している部分秘密鍵を記憶する記憶部を備えた前記署名者装置が実行する署名者装置におけるディジタル署名方法であって、
署名対象となるメッセージのハッシュ値と現在時刻から構成される署名対象データ、および前記記憶部から読み出した部分秘密鍵を用いて部分的なディジタル署名である部分署名を作成するステップと、
このステップで作成した部分署名および前記署名対象データを前記第三者機関装置に送信するステップと、
このステップで送信した部分署名と前記第三者機関装置が所持する部分秘密鍵を用いて生成される部分署名とを組み合わせることによって前記第三者機関装置で生成されたディジタル署名である全体署名を受信して前記記憶部に格納するステップと
を有することを特徴とする署名者装置におけるディジタル署名方法。
【請求項２】
公開鍵暗号方式によるディジタル署名を行うために、秘密鍵を所持して前記公開鍵暗号方式に基づいたディジタル署名を行う署名者装置と、前記公開鍵の認証機関とは独立な第三者機関に設けられる第三者機関装置とが通信ネットワークを介して接続されたシステムにおいて、前記署名者装置と前記第三者機関装置とが協働して前記秘密鍵を生成するとともに、前記秘密鍵から分割されて成る部分秘密鍵のいずれかを各々の装置が所持しているとき、当該所持している部分秘密鍵を記憶する記憶部を備えた前記署名者装置が実行する署名者装置におけるディジタル署名方法であって、
署名対象となるメッセージのハッシュ値と現在時刻から構成される署名対象データ、および前記記憶部から読み出した部分秘密鍵を用いて部分的なディジタル署名である部分署名を作成するステップと、
このステップで作成した部分署名と前記第三者機関装置が保持する部分秘密鍵から作成された部分署名を組み合わせて成るディジタル署名である全体署名を生成するステップと
を有することを特徴とする署名者装置におけるディジタル署名方法。
【請求項３】
前記部分署名は、前記署名対象となるメッセージのハッシュ値と前記現在時刻を表す値を連接した値に前記部分秘密鍵を作用して構成されることを特徴とする請求項１または２記載の署名者装置におけるディジタル署名方法。
【請求項４】
前記部分秘密鍵の漏洩を検知した時、当該部分秘密鍵に対応する秘密鍵の失効を前記第三者機関装置に通知するステップ
を更に実行することを特徴とする請求項１乃至３のいずれか１項記載の署名者装置におけるディジタル署名方法。
【請求項５】
前記第三者機関装置から前記部分秘密鍵に対応する秘密鍵の失効が通知されたとき、当該秘密鍵の失効を検知して記録するステップ
を更に実行することを特徴とする請求項１乃至３のいずれか１項記載の署名者装置におけるディジタル署名方法。
【請求項６】
公開鍵暗号方式によるディジタル署名を行うために、秘密鍵を所持して前記公開鍵暗号方式に基づいたディジタル署名を行う署名者装置と、前記公開鍵の認証機関とは独立な第三者機関に設けられる第三者機関装置とが通信ネットワークを介して接続されたシステムにおいて、前記署名者装置と前記第三者機関装置とが協働して前記秘密鍵を生成するとともに、前記秘密鍵から分割されて成る部分秘密鍵のいずれかを各々の装置が所持しているとき、分割されたいずれかの部分秘密鍵を記憶する記憶部を備えた前記第三者機関装置が実行する第三者機関装置におけるディジタル署名方法であって、
前記署名者装置から送信されてくる署名対象となるメッセージのハッシュ値、当該ハッシュ値の送信時刻、および前記署名者装置が保持する部分秘密鍵を用いて作成された部分的なディジタル署名である部分署名を受信するステップと、
このステップで受信した前記署名者装置による部分署名と前記記憶部から読み出した部分秘密鍵から作成した部分署名とを組み合わせて成るディジタル署名である全体署名を作成するステップと
を有することを特徴とする第三者機関装置におけるディジタル署名方法。
【請求項７】
公開鍵暗号方式によるディジタル署名を行うために、秘密鍵を所持して前記公開鍵暗号方式に基づいたディジタル署名を行う署名者装置と、前記公開鍵の認証機関とは独立な第三者機関に設けられる第三者機関装置とが通信ネットワークを介して接続されたシステムにおいて、前記署名者装置と前記第三者機関装置とが協働して前記秘密鍵を生成するとともに、前記秘密鍵から分割されて成る部分秘密鍵のいずれかを各々の装置が所持しているとき、分割されたいずれかの部分秘密鍵を記憶する記憶部を備えた前記第三者機関装置が実行する第三者機関装置におけるディジタル署名方法であって、
前記署名者装置から少なくとも送信されてくる署名対象となるメッセージのハッシュ値および当該ハッシュ値の送信時刻から構成される署名対象データを受信するステップと、
このステップで受信した署名対象データおよび前記記憶部から読み出した部分秘密鍵を用いて部分的なディジタル署名である部分署名を作成するステップと、
このステップで作成した部分署名と前記署名者装置が所持する部分秘密鍵を用いて生成される部分署名とを組み合わせることによって前記署名者装置で生成されたディジタル署名である全体署名を受信して前記記憶部に格納するステップと
を有することを特徴とする第三者機関装置におけるディジタル署名方法。
【請求項８】
前記部分署名は、前記署名対象となるメッセージのハッシュ値と前記現在時刻を表す値を連接した値に前記部分秘密鍵を作用して構成されることを特徴とする請求項６または７記載の第三者機関装置におけるディジタル署名方法。
【請求項９】
前記部分秘密鍵の漏洩を検知した時、当該部分秘密鍵に対応する秘密鍵の失効を前記検知した時刻とともに記録し、以後の前記秘密鍵を用いた署名要求には応じない設定を行うステップ
を更に実行することを特徴とする請求項６乃至８のいずれか１項記載の第三者機関装置におけるディジタル署名方法。
【請求項１０】
公開鍵暗号方式によるディジタル署名を行うために、秘密鍵を所持して前記公開鍵暗号方式に基づいたディジタル署名を行う署名者装置と、前記公開鍵の認証機関とは独立な第三者機関に設けられる第三者機関装置とが通信ネットワークを介して接続されたシステムにおいて、前記署名者装置と前記第三者機関装置とが協働して前記秘密鍵を生成するとともに、前記秘密鍵から分割されて成る部分秘密鍵のいずれかを各々の装置が所持しているとき、分割されたいずれかの部分秘密鍵を記憶する記憶部を備えた前記第三者機関装置が実行する第三者機関装置におけるディジタル署名方法であって、
前記署名者装置から送信されてくる署名対象となるメッセージのハッシュ値、および前記署名者装置が保持する部分秘密鍵を用いて作成された部分的なディジタル署名である部分署名を受信するステップと、
このステップで受信した前記署名者装置による部分署名と前記記憶部から読み出した部分秘密鍵から作成した部分署名とを組み合わせて成るディジタル署名である全体署名を作成するステップと、
このステップで作成した全体署名のハッシュ値に対する時刻証明書要求を、時刻証明書を発行する時刻認証機関装置に送信するステップと、
前記時刻認証機関装置から送信されてくる時刻証明書を前記記憶部に格納するとともに、当該時刻証明書および前記全体署名を前記署名者装置に送信するステップと
を有することを特徴とする第三者機関装置におけるディジタル署名方法。
【請求項１１】
前記部分署名は、前記署名対象となるメッセージのハッシュ値に前記部分秘密鍵を作用して構成されることを特徴とする請求項１０記載の第三者機関装置におけるディジタル署名方法。
【請求項１２】
前記部分秘密鍵の漏洩を検知した時、当該部分秘密鍵に対応する秘密鍵と対をなす公開鍵の公開鍵証明書の失効要求を前記認証機関に設けられる認証機関装置に送信するステップと、
前記認証機関装置から受信する前記失効要求の受取証明を前記記憶部に保存するとともに、当該受取証明を前記署名者装置に送信するステップと
を更に実行することを特徴とする請求項１０または１１記載の第三者機関装置におけるディジタル署名方法。
【請求項１３】
公開鍵暗号方式によるディジタル署名を行うために、秘密鍵を所持して前記公開鍵暗号方式に基づいたディジタル署名を行う署名者装置と、前記公開鍵の認証機関とは独立な第三者機関に設けられる第三者機関装置とが通信ネットワークを介して接続されたシステムにおいて、不正な署名がなされた可能性のあるディジタル署名の真正性を判定するために前記通信ネットワークに接続される真正性判定装置が実行するディジタル署名の真正性判定方法であって、
判定対象となるディジタル署名の所持者から当該ディジタル署名および公開鍵証明書を含むメッセージを受信するステップと、
このステップで受信した公開鍵証明書から公開鍵を抽出するステップと、
このステップで抽出した公開鍵および前記メッセージを入力として前記判定対象のディジタル署名を検証する署名検証演算を行うステップと、
このステップで行った署名検証演算の結果、真正であることを意味する出力値が出力された場合、前記第三者機関装置に対して前記判定対象のディジタル署名に関する情報の有無を照会する照会要求を送信するステップと、
このステップで行った照会の結果、前記判定対象のディジタル署名に関する情報が前記第三者機関装置に存在することが判明した場合、当該ディジタル情報が真正であると判定するステップと
を有することを特徴とするディジタル署名の真正性判定方法。
【請求項１４】
公開鍵暗号方式によるディジタル署名を行うために、秘密鍵を所持して前記公開鍵暗号方式に基づいたディジタル署名を行う署名者装置と、前記公開鍵の認証機関とは独立な第三者機関に設けられる第三者機関装置とが通信ネットワークを介して接続されたシステムにおいて、不正な署名がなされた可能性のあるディジタル署名の真正性を判定するために前記通信ネットワークに接続される真正性判定装置が実行するディジタル署名の真正性判定方法であって、
判定対象となるディジタル署名の所持者から当該ディジタル署名および公開鍵証明書を含むメッセージを受信するステップと、
このステップで受信した公開鍵証明書から公開鍵を抽出するステップと、
このステップで抽出した公開鍵および前記メッセージを入力として前記判定対象のディジタル署名を検証する署名検証演算を行うステップと、
このステップで行った署名検証演算の結果、真正であることを意味する出力値が出力された場合、前記第三者機関装置に対して前記判定対象のディジタル署名に関する情報および前記ディジタル署名を生成した時刻を証明する時刻証明書の有無を照会する照会要求を送信するステップと、
このステップで行った照会の結果、前記判定対象のディジタル署名に関する情報および前記時刻証明書が前記第三者機関装置に存在することが判明した場合、前記判定対象のディジタル署名に関する情報に含まれる署名時刻を抽出し、当該署名時刻における前記公開鍵の有効性を前記認証機関に設けられる認証機関装置に対して照会する照会要求を送信するステップと、
このステップで有効性の照会を要求した前記公開鍵が前記署名時刻において有効であることが判明した場合、前記判定対象のディジタル署名が真正であると判定するステップと
を有することを特徴とするディジタル署名の真正性判定方法。
【請求項１５】
公開鍵暗号方式によるディジタル署名を行うために、前記公開鍵の認証機関とは独立な第三者機関に設けられる第三者機関装置と通信ネットワークを介して接続され、前記公開鍵暗号方式に基づいたディジタル署名を行う署名者装置であって、
前記第三者機関装置と協働して秘密鍵および当該秘密鍵に対応する公開鍵を生成する鍵生成手段と、
この鍵生成手段で前記秘密鍵を作成するに際して、前記第三者機関装置に送信する前記秘密鍵に関わるメッセージを作成するメッセージ作成手段と、
前記秘密鍵から分割されて成る部分秘密鍵を用いて部分的なディジタル署名である部分署名を少なくとも生成する署名生成手段と、
前記部分秘密鍵、前記公開鍵、および当該公開鍵の公開鍵証明書を少なくとも記憶する記憶手段と
を備えたことを特徴とする署名者装置。
【請求項１６】
公開鍵暗号方式によるディジタル署名を行うために、前記公開鍵暗号方式に基づいたディジタル署名を行う署名者装置と通信ネットワークを介して接続され、前記公開鍵の認証機関とは独立な第三者機関に設けられる第三者機関装置であって、
前記署名者装置と協働して秘密鍵および当該秘密鍵に対応する公開鍵を生成する鍵生成手段と、
この鍵生成手段で生成した公開鍵の公開鍵証明書および当該公開鍵の失効を証明する失効証明書を前記認証機関に設けられる認証機関装置に要求するためのメッセージを少なくとも作成する証明書要求作成手段と、
前記秘密鍵から分割されて成る部分秘密鍵を用いて部分的なディジタル署名である部分署名を少なくとも生成する署名生成手段と、
前記部分秘密鍵、前記公開鍵、および当該公開鍵の公開鍵証明書を少なくとも記憶する記憶する記憶手段と
を備えたことを特徴とする第三者機関装置。
【請求項１７】
公開鍵暗号方式によるディジタル署名を行うために、秘密鍵を所持して前記公開鍵暗号方式に基づいたディジタル署名を行う署名者装置と、前記公開鍵の認証機関とは独立な第三者機関に設けられる第三者機関装置とに通信ネットワークを介して接続され、不正な署名がなされた可能性のあるディジタル署名の真正性を判定するディジタル署名の真正性判定装置であって、
判定対象となるディジタル署名の所持者から受信する公開鍵証明書から公開鍵を抽出する鍵抽出手段と、
この鍵抽出手段で抽出した公開鍵と前記ディジタル署名の所持者から受信するメッセージを入力して、当該ディジタル署名の真正性を判定する真正性判定手段と
を備えたことを特徴とするディジタル署名の真正性判定装置。
【請求項１８】
公開鍵暗号方式によるディジタル署名を行うために、秘密鍵を所持して前記公開鍵暗号方式に基づいたディジタル署名を行う署名者装置と、前記公開鍵の認証機関とは独立な第三者機関に設けられる第三者機関装置とが通信ネットワークを介して接続されたシステムにおいて、前記署名者装置と前記第三者機関装置とが協働して前記秘密鍵を生成するとともに、前記秘密鍵から分割されて成る部分秘密鍵のいずれかを各々の装置が所持しているとき、当該所持している部分秘密鍵を記憶する記憶部を備えた前記署名者装置に、
署名対象となるメッセージのハッシュ値と現在時刻から構成される署名対象データ、および前記記憶部から読み出した部分秘密鍵を用いて部分的なディジタル署名である部分署名を作成するステップと、
このステップで作成した部分署名および前記署名対象データを前記第三者機関装置に送信するステップと、
このステップで送信した部分署名と前記第三者機関装置が所持する部分秘密鍵を用いて生成される部分署名とを組み合わせることによって前記第三者機関装置で生成されたディジタル署名である全体署名を受信して前記記憶部に格納するステップと
を実行させることを特徴とする署名者装置用ディジタル署名プログラム。
【請求項１９】
公開鍵暗号方式によるディジタル署名を行うために、秘密鍵を所持して前記公開鍵暗号方式に基づいたディジタル署名を行う署名者装置と、前記公開鍵の認証機関とは独立な第三者機関に設けられる第三者機関装置とが通信ネットワークを介して接続されたシステムにおいて、前記署名者装置と前記第三者機関装置とが協働して前記秘密鍵を生成するとともに、前記秘密鍵から分割されて成る部分秘密鍵のいずれかを各々の装置が所持しているとき、当該所持している部分秘密鍵を記憶する記憶部を備えた前記署名者装置に、
署名対象となるメッセージのハッシュ値と現在時刻から構成される署名対象データ、および前記記憶部から読み出した部分秘密鍵を用いて部分的なディジタル署名である部分署名を作成するステップと、
このステップで作成した部分署名と前記第三者機関装置が保持する部分秘密鍵から作成された部分署名を組み合わせて成るディジタル署名である全体署名を生成するステップと
を実行させることを特徴とする署名者装置用ディジタル署名プログラム。
【請求項２０】
前記部分署名は、前記署名対象となるメッセージのハッシュ値と前記現在時刻を表す値を連接した値に前記部分秘密鍵を作用して構成されることを特徴とする請求項１８または１９記載の署名者装置用ディジタル署名プログラム。
【請求項２１】
前記部分秘密鍵の漏洩を検知した時、当該部分秘密鍵に対応する秘密鍵の失効を前記第三者機関装置に通知するステップ
を更に実行させることを特徴とする請求項１８乃至２０のいずれか１項記載の署名者装置用ディジタル署名プログラム。
【請求項２２】
前記第三者機関装置から前記部分秘密鍵に対応する秘密鍵の失効が通知されたとき、当該秘密鍵の失効を検知して記録するステップ
を更に実行することを特徴とする請求項１８乃至２０のいずれか１項記載の署名者装置用ディジタル署名プログラム。
【請求項２３】
公開鍵暗号方式によるディジタル署名を行うために、秘密鍵を所持して前記公開鍵暗号方式に基づいたディジタル署名を行う署名者装置と、前記公開鍵の認証機関とは独立な第三者機関に設けられる第三者機関装置とが通信ネットワークを介して接続されたシステムにおいて、前記署名者装置と前記第三者機関装置とが協働して前記秘密鍵を生成するとともに、前記秘密鍵から分割されて成る部分秘密鍵のいずれかを各々の装置が所持しているとき、分割されたいずれかの部分秘密鍵を記憶する記憶部を備えた前記第三者機関装置に、
前記署名者装置から送信されてくる署名対象となるメッセージのハッシュ値、当該ハッシュ値の送信時刻、および前記署名者装置が保持する部分秘密鍵を用いて作成された部分的なディジタル署名である部分署名を受信するステップと、
このステップで受信した前記署名者装置による部分署名と前記記憶部から読み出した部分秘密鍵から作成した部分署名とを組み合わせて成るディジタル署名である全体署名を作成するステップと
を実行させることを特徴とする第三者機関装置用ディジタル署名プログラム。
【請求項２４】
公開鍵暗号方式によるディジタル署名を行うために、秘密鍵を所持して前記公開鍵暗号方式に基づいたディジタル署名を行う署名者装置と、前記公開鍵の認証機関とは独立な第三者機関に設けられる第三者機関装置とが通信ネットワークを介して接続されたシステムにおいて、前記署名者装置と前記第三者機関装置とが協働して前記秘密鍵を生成するとともに、前記秘密鍵から分割されて成る部分秘密鍵のいずれかを各々の装置が所持しているとき、分割されたいずれかの部分秘密鍵を記憶する記憶部を備えた前記第三者機関装置に、
前記署名者装置から少なくとも送信されてくる署名対象となるメッセージのハッシュ値および当該ハッシュ値の送信時刻から構成される署名対象データを受信するステップと、
このステップで受信した署名対象データおよび前記記憶部から読み出した部分秘密鍵を用いて部分的なディジタル署名である部分署名を作成するステップと、
このステップで作成した部分署名と前記署名者装置が所持する部分秘密鍵を用いて生成される部分署名とを組み合わせることによって前記署名者装置で生成されたディジタル署名である全体署名を受信して前記記憶部に格納するステップとを実行させることを特徴とする第三者機関装置用ディジタル署名プログラム。
【請求項２５】
前記部分署名は、前記署名対象となるメッセージのハッシュ値と前記現在時刻を表す値を連接した値に前記部分秘密鍵を作用して構成されることを特徴とする請求項２３または２４記載の第三者機関装置用ディジタル署名プログラム。
【請求項２６】
前記部分秘密鍵の漏洩を検知した時、当該部分秘密鍵に対応する秘密鍵の失効を前記検知した時刻とともに記録し、以後の前記秘密鍵を用いた署名要求には応じない設定を行うステップ
を更に実行することを特徴とする請求項２３乃至２５のいずれか１項記載の第三者機関装置用ディジタル署名プログラム。
【請求項２７】
公開鍵暗号方式によるディジタル署名を行うために、秘密鍵を所持して前記公開鍵暗号方式に基づいたディジタル署名を行う署名者装置と、前記公開鍵の認証機関とは独立な第三者機関に設けられる第三者機関装置とが通信ネットワークを介して接続されたシステムにおいて、前記署名者装置と前記第三者機関装置とが協働して前記秘密鍵を生成するとともに、前記秘密鍵から分割されて成る部分秘密鍵のいずれかを各々の装置が所持しているとき、分割されたいずれかの部分秘密鍵を記憶する記憶部を備えた前記第三者機関装置に、
前記署名者装置から送信されてくる署名対象となるメッセージのハッシュ値、および前記署名者装置が保持する部分秘密鍵を用いて作成された部分的なディジタル署名である部分署名を受信するステップと、
このステップで受信した前記署名者装置による部分署名と前記記憶部から読み出した部分秘密鍵から作成した部分署名とを組み合わせて成るディジタル署名である全体署名を作成するステップと、
このステップで作成した全体署名のハッシュ値に対する時刻証明書要求を、時刻証明書を発行する時刻認証機関装置に送信するステップと、
前記時刻認証機関装置から送信されてくる時刻証明書を前記記憶部に格納するとともに、当該時刻証明書および前記全体署名を前記署名者装置に送信するステップと
を実行させることを特徴とする第三者機関装置用ディジタル署名プログラム。
【請求項２８】
前記部分署名は、前記署名対象となるメッセージのハッシュ値に前記部分秘密鍵を作用して構成されることを特徴とする請求項２７記載の第三者機関装置用ディジタル署名プログラム。
【請求項２９】
前記部分秘密鍵の漏洩を検知した時、当該部分秘密鍵に対応する秘密鍵と対をなす公開鍵の公開鍵証明書の失効要求を前記認証機関に設けられる認証機関装置に送信するステップと、
前記認証機関装置から受信する前記失効要求の受取証明を前記記憶部に保存するとともに、当該受取証明を前記署名者装置に送信するステップと
を更に実行することを特徴とする請求項２７または２８記載の第三者機関装置用ディジタル署名プログラム。
【請求項３０】
公開鍵暗号方式によるディジタル署名を行うために、秘密鍵を所持して前記公開鍵暗号方式に基づいたディジタル署名を行う署名者装置と、前記公開鍵の認証機関とは独立な第三者機関に設けられる第三者機関装置とが通信ネットワークを介して接続されたシステムにおいて、不正な署名がなされた可能性のあるディジタル署名の真正性を判定するために前記通信ネットワークに接続される真正性判定装置に、
判定対象となるディジタル署名の所持者から当該ディジタル署名および公開鍵証明書を含むメッセージを受信するステップと、
このステップで受信した公開鍵証明書から公開鍵を抽出するステップと、
このステップで抽出した公開鍵および前記メッセージを入力として前記判定対象のディジタル署名を検証する署名検証演算を行うステップと、
このステップで行った署名検証演算の結果、真正であることを意味する出力値が出力された場合、前記第三者機関装置に対して前記判定対象のディジタル署名に関する情報の有無を照会する照会要求を送信するステップと、
このステップで行った照会の結果、前記判定対象のディジタル署名に関する情報が前記第三者機関装置に存在することが判明した場合、当該ディジタル情報が真正であると判定するステップと
を実行させることを特徴とするディジタル署名の真正性判定プログラム。
【請求項３１】
公開鍵暗号方式によるディジタル署名を行うために、秘密鍵を所持して前記公開鍵暗号方式に基づいたディジタル署名を行う署名者装置と、前記公開鍵の認証機関とは独立な第三者機関に設けられる第三者機関装置とが通信ネットワークを介して接続されたシステムにおいて、不正な署名がなされた可能性のあるディジタル署名の真正性を判定するために前記通信ネットワークに接続される真正性判定装置に、
判定対象となるディジタル署名の所持者から当該ディジタル署名および公開鍵証明書を含むメッセージを受信するステップと、
このステップで受信した公開鍵証明書から公開鍵を抽出するステップと、
このステップで抽出した公開鍵および前記メッセージを入力として前記判定対象のディジタル署名を検証する署名検証演算を行うステップと、
このステップで行った署名検証演算の結果、真正であることを意味する出力値が出力された場合、前記第三者機関装置に対して前記判定対象のディジタル署名に関する情報および前記ディジタル署名を生成した時刻を証明する時刻証明書の有無を照会する照会要求を送信するステップと、
このステップで行った照会の結果、前記判定対象のディジタル署名に関する情報および前記時刻証明書が前記第三者機関装置に存在することが判明した場合、前記判定対象のディジタル署名に関する情報に含まれる署名時刻を抽出し、当該署名時刻における前記公開鍵の有効性を前記認証機関に設けられる認証機関装置に対して照会する照会要求を送信するステップと、
このステップで有効性の照会を要求した前記公開鍵が前記署名時刻において有効であることが判明した場合、前記判定対象のディジタル署名が真正であると判定するステップと
を実行させることを特徴とするディジタル署名の真正性判定プログラム。
【請求項３２】
請求項１８乃至３１のいずれか１項に記載されたプログラムを記録したことを特徴とするプログラム記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、公開鍵暗号方式を用いてディジタル署名を行うときの署名者装置におけるディジタル署名方法、第三者機関装置におけるディジタル署名方法、ディジタル署名の真正性判定方法、署名者装置、第三者機関装置、ディジタル署名の真正性判定装置、署名者装置用ディジタル署名プログラム、第三者機関装置用ディジタル署名プログラム、ディジタル署名の真正性判定プログラム、およびプログラム記録媒体に関する。
【０００２】
【従来の技術】
２００１年４月に「電子署名及び認証業務に関する法律」（平成１２年５月３１日法律第１０２号、通称：電子署名法）が施行され、ディジタル署名が法的な裏付けをもつようになってきた。現在、ディジタル署名システムの多くでは、基盤となる枠組みとして、公開鍵暗号技術に基づく公開鍵基盤（ＰＫＩ：Ｐｕｂｌｉｃ  Ｋｅｙ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ）を採用している。この枠組みは、ディジタル署名のための秘密鍵の本来の所有者がディジタル署名を行った場合に、後刻においてこの事実を否認することを不可能にする否認防止については充実した手段を提供している。
【０００３】
ディジタル署名において、否認防止と同じく重要な課題として、署名の非生成証明がある。これは、１つの秘密鍵の所有者以外の何者かが、その秘密鍵を用いて不正にディジタル署名を生成したときに、秘密鍵の本来の所有者がそのディジタル署名を生成していないことを証明するものである。しかしながら、現在の公開鍵基盤等の枠組みにおいては、署名の非生成証明を実現する手段は著しく貧弱であり、この手段の充実が求められている。
【０００４】
図２０は、ディジタル署名における否認防止と署名の非生成証明の関係を示す説明図である。否認防止はディジタル署名の受領者の利益を保証するものである一方、署名の非生成証明は署名の生成者の利益を保証するものである。この２つの機能は共に、ディジタル署名を安心して利用していくために不可欠のものである。
【０００５】
この様な状況の中で、従来、ディジタルタイムスタンプサービスを実現するための一つの標準プロトコルが規定されている（例えば、非特許文献１を参照）。
【０００６】
この標準プロトコルを用いてある秘密鍵の所有者が生成したディジタル署名に対して信頼される第三者機関にタイムスタンプを付加して貰うことにより、後刻そのディジタル署名の真正性について紛争が起こった場合に、否認防止が可能となる。
【０００７】
ディジタル署名に対するタイムスタンプの付加が義務付けられている場合、即ち、ある秘密鍵の所有者が生成したディジタル署名に対しては、必ず所定の信頼される第三者機関にタイムスタンプを付加して貰わなければならないという規定がある場合には、この標準プロトコルを用いて生成されたディジタル署名に対して信頼される第三者機関にタイムスタンプを付加して貰うことにより、署名の非生成証明を実現することが、一定の条件の下で可能となる。
【０００８】
図１９は、署名の非生成証明が実現されるシナリオの一例を示す処理フロー図である。ここでＳＫは、秘密鍵の本来の所持者である署名者が利用する署名者装置１に記憶される秘密鍵であり、ＰＫは秘密鍵ＳＫと対をなす公開鍵である。認証機関装置５は、公開鍵ＰＫに対する証明書（公開鍵証明書）を発行する証明書発行機関である認証機関（ＣＡ：Ｃｅｒｔｉｆｉｃａｔｉｏｎ  Ａｕｔｈｏｒｉｔｙ）に具備される装置である。
【０００９】
署名者装置１が自身の保持する秘密鍵ＳＫの漏洩を検知すると（ステップＳ１４０１）、この秘密鍵ＳＫと対をなす公開鍵ＰＫの失効要求を認証機関装置５に送信する（ステップＳ１４０２）。この送信時刻をｔａ  とする。
【００１０】
認証機関装置５は、署名者装置１からの送信に基づいて、時刻ｔａ  における公開鍵ＰＫの失効を記録する（ステップＳ１４０３）。
【００１１】
その後、攻撃者装置２１は署名者装置１の秘密鍵ＳＫを不正に入手し、この秘密鍵ＳＫを用いて、電子文書Ｍに対するディジタル署名  Ｓｉｇ（ＳＫ，  Ｍ）  を生成（ステップＳ１４０４）し、時刻ｔｂ  （＞ｔａ  ）にディジタル署名  Ｓｉｇ（ＳＫ，  Ｍ）  のハッシュ値ｈ（Ｓｉｇ（ＳＫ，  Ｍ））  に対する時刻証明要求を、時刻証明書を発行する時刻認証機関（ＴＳＡ：Ｔｉｍｅ−Ｓｔａｍｐ  Ａｕｔｈｏｒｉｔｙ）に設けられた装置である時刻認証機関装置９に送付する（ステップＳ１４０５）。
【００１２】
時刻認証機関装置９は、要求を受信した時刻ｔｂを添付して時刻証明書
ＴＳＴ（ｈ（Ｓｉｇ（ＳＫ，  Ｍ）），  ｔｂ  ）  を作成し、攻撃者装置２１に返送する（ステップＳ１４０６）。
【００１３】
ディジタル署名  Ｓｉｇ（ＳＫ，  Ｍ）  の真正性について紛争が起こったときには、しかるべき調停機関において、Ｓｉｇ（ＳＫ，  Ｍ）  の時刻証明書  ＴＳＴ（ｈ（Ｓｉｇ（ＳＫ，  Ｍ）），  ｔｂ  ）  を提出させ、そこに添付されている時刻ｔｂ  が、ＰＫの失効時刻ｔａ  より後であることにより、ディジタル署名  Ｓｉｇ（ＳＫ，  Ｍ）  が真正でないと判定することができる。これにより、署名の非生成証明が実現される。
【００１４】
しかし、ディジタル署名の流通に際して、タイムスタンプの付加は、一般には義務付けられておらず、それほど広く要請または実施されている訳でもない。例えば、前述した電子署名法においてもタイムスタンプの付加は義務付けられていない。したがって、この方式の適用範囲には現在のところ制限がある。
【００１５】
また、タイムスタンプの付加が義務づけられた場合であっても、一般には複数ある時刻認証機関の中から、適宜選択して時刻証明書を発行して貰うことが可能である。したがって、この方式で署名の非生成証明を実現するためには、それら複数の時刻認証機関の全てが不正をしないことが前提となるが、その場合にはこの前提の妥当性が問題となる。
【００１６】
以上の問題を踏まえて考案された例として、ディジタル署名の真偽を識別可能とする技術が開示されている（特許文献１を参照）。
【００１７】
この特許文献１において記載されている第１の方法は、耐タンパー署名装置による単純ディジタル署名を用いたものである。この方法では、ディジタル署名機能を持つＩＣカードの発行者を仮定し、その発行者が発行するＩＣカードを用いて、ディジタル署名の生成者がディジタル署名付きメッセージを発行する。発行されるＩＣカードは、タンパー耐性を持ちかつ署名ログを記録する機能を持つものとされている。そして、署名ログ情報がＩＣカードの容量制限を超えた場合には、その署名ログ情報をＩＣカードからハードディスク等の外部記録媒体に移動する。
【００１８】
ディジタル署名付きメッセージの発行者において、その発行者が発行するディジタル署名付きメッセージの全ての署名ログ清報をタンパー耐性のあるＩＣカードに保存しておくことにより、発行者以外の第三者が発行者になりすまし、不正に署名を偽造した場合に、ＩＣカードに記録されたログ情報と照合することによって署名の偽造を検出する方法が提案されている。
【００１９】
特許文献１に記載されている第２の方法は、署名ログの改ざんをより効果的に防止する方法として、リンキング・ディジタル署名を利用するものである。
【００２０】
特許文献１において記載されている第３の方法は、耐タンパー署名装置による単純ディジタル署名を用いた上記第１の方法において、ディジタル署名の中に時刻情報を含めることにより、その時刻情報からもディジタル署名の有効性を判定できるようにするものである。この方法は、第１の方法と、非特許文献１で述べられているディジタルタイムスタンプサービスを組み合わせたものである。ディジタルタイムスタンプサービスを用いることにより、ある秘密鍵が漏洩して失効通知がなされた場合に、失効通知の日時とディジタル署名に対するタイムスタンプの日時を比較することにより、失効通知以後のディジタル署名を無効と判定する手段を与えている。
【００２１】
【特許文献１】
特開２００１−３３１１０４号公報
【００２２】
【非特許文献１】
Ｃ．  Ａｄａｍｓ，  ｅｔ  ａｌ．，  ＲＦＣ３１６１  「Ｉｎｔｅｒｎｅｔ  Ｘ．５０９  Ｐｕｂｌｉｃ  Ｋｅｙ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  Ｔｉｍｅ−Ｓｔａｍｐ  Ｐｒｏｔｏｃｏｌ  （ＴＳＰ）」
【００２３】
【発明が解決しようとする課題】
しかしながら、上述した特許文献１に開示された第１乃至第３の方式には、それぞれ次のような問題点があった。
【００２４】
（１）第１の方法
この方法の問題点の一つは、署名ログ情報をＩＣカードからハードディスク等の外部記録媒体に移動する際に外部記録媒体上の署名ログ情報が改ざんされる可能性が高まるため、本来の秘密鍵の所有者が正規のディジタル署名を生成したにも関わらず、後刻、それを否認することの防止が困難になる。
【００２５】
加えて、ＩＣカードの発行者を全面的に信頼することが前提とされており、その発行者の内部不正に対処する方法がないことである。
【００２６】
（２）第２の方法
この方法を、一般的な個人間のディジタル署名のやりとりに適用する場合には次のような問題が考えられる。
【００２７】
ディジタル署名の真正性について紛争が起こった場合の調停のためには、ディジタル署名の受領者が協力することと、ディジタル署名の受領者が受領したディジタル署名を確実に保管していることを前提とせざるを得ない。しかしながら、一般的な個人がディジタル署名の受領者である場合には、この前提が常に成り立つとは限らない。
【００２８】
また、リンキング・ディジタル署名の適用領域として元来想定されていたパブリックサービスとしてのタイムスタンプサービスとは異なり、個人がディジタル署名を発行する場合には、ディジタル署名の発行者と受領者が共謀してディジタル署名のログを後で検知できないように改ざんする可能性が無視できないという問題もある。具体的には、ディジタル署名の発行者が個人の場合には、一般に署名要求の数は少数で、署名要求者と共謀することにより、容易に誰からいつ署名要求が来るかを制御することができ、これによりディジタル署名のログを後で検知できないように改ざんする可能性が生じる。
【００２９】
（３）第３の方法
署名の非生成証明を実現する上で、この方法は、非特許文献１に従うタイムスタンプサービスと同様の問題点を持つ。即ち、ディジタル署名に対するタイムスタンプの付加が義務付けられている場合には、署名の非生成証明の実現が、一定の条件の下で可能である。しかしながら、現在の電子署名法においてはタイムスタンプの付加は義務付けられていないため、この方法の適用範囲には制限がある。
【００３０】
本発明は上記に鑑みてなされたものであり、その目的は、秘密鍵を用いたディジタル署名を生成するに際して、秘密鍵の本来の持主である署名者が署名することなくその秘密鍵からディジタル署名が生成された場合には、第三者機関の署名ログ情報からその不正な事実を判明させるとともに、秘密鍵の本来の持主に対して署名の非生成証明を実現することのできる署名者装置におけるディジタル署名方法、第三者機関装置におけるディジタル署名方法、ディジタル署名の真正性判定方法、署名者装置、第三者機関装置、ディジタル署名の真正性判定装置、署名者装置用ディジタル署名プログラム、第三者機関装置用ディジタル署名プログラム、ディジタル署名の真正性判定プログラム、およびプログラム記録媒体を提供することにある。
【００３１】
【課題を解決するための手段】
上記目的を達成するために、請求項１記載の本発明は、公開鍵暗号方式によるディジタル署名を行うために、秘密鍵を所持して前記公開鍵暗号方式に基づいたディジタル署名を行う署名者装置と、前記公開鍵の認証機関とは独立な第三者機関に設けられる第三者機関装置とが通信ネットワークを介して接続されたシステムにおいて、前記署名者装置と前記第三者機関装置とが協働して前記秘密鍵を生成するとともに、前記秘密鍵から分割されて成る部分秘密鍵のいずれかを各々の装置が所持しているとき、当該所持している部分秘密鍵を記憶する記憶部を備えた前記署名者装置が実行する署名者装置におけるディジタル署名方法であって、署名対象となるメッセージのハッシュ値と現在時刻から構成される署名対象データ、および前記記憶部から読み出した部分秘密鍵を用いて部分的なディジタル署名である部分署名を作成するステップと、このステップで作成した部分署名および前記署名対象データを前記第三者機関装置に送信するステップと、このステップで送信した部分署名と前記第三者機関装置が所持する部分秘密鍵を用いて生成される部分署名とを組み合わせることによって前記第三者機関装置で生成されたディジタル署名である全体署名を受信して前記記憶部に格納するステップとを有することを要旨とする。
【００３２】
請求項２記載の本発明は、公開鍵暗号方式によるディジタル署名を行うために、秘密鍵を所持して前記公開鍵暗号方式に基づいたディジタル署名を行う署名者装置と、前記公開鍵の認証機関とは独立な第三者機関に設けられる第三者機関装置とが通信ネットワークを介して接続されたシステムにおいて、前記署名者装置と前記第三者機関装置とが協働して前記秘密鍵を生成するとともに、前記秘密鍵から分割されて成る部分秘密鍵のいずれかを各々の装置が所持しているとき、当該所持している部分秘密鍵を記憶する記憶部を備えた前記署名者装置が実行する署名者装置におけるディジタル署名方法であって、署名対象となるメッセージのハッシュ値と現在時刻から構成される署名対象データ、および前記記憶部から読み出した部分秘密鍵を用いて部分的なディジタル署名である部分署名を作成するステップと、このステップで作成した部分署名と前記第三者機関装置が保持する部分秘密鍵から作成された部分署名を組み合わせて成るディジタル署名である全体署名を生成するステップとを有することを要旨とする。
【００３３】
請求項３記載の本発明は、請求項１または２記載の発明において、前記部分署名は、前記署名対象となるメッセージのハッシュ値と前記現在時刻を表す値を連接した値に前記部分秘密鍵を作用して構成されることを要旨とする。
【００３４】
請求項４記載の本発明は、請求項１乃至３のいずれか１項記載の発明において、前記部分秘密鍵の漏洩を検知した時、当該部分秘密鍵に対応する秘密鍵の失効を前記第三者機関装置に通知するステップを更に実行することを要旨とする。
【００３５】
請求項５記載の本発明は、請求項１乃至３のいずれか１項記載の発明において、前記第三者機関装置から前記部分秘密鍵に対応する秘密鍵の失効が通知されたとき、当該秘密鍵の失効を検知して記録するステップを更に実行することを要旨とする。
【００３６】
請求項６記載の本発明は、公開鍵暗号方式によるディジタル署名を行うために、秘密鍵を所持して前記公開鍵暗号方式に基づいたディジタル署名を行う署名者装置と、前記公開鍵の認証機関とは独立な第三者機関に設けられる第三者機関装置とが通信ネットワークを介して接続されたシステムにおいて、前記署名者装置と前記第三者機関装置とが協働して前記秘密鍵を生成するとともに、前記秘密鍵から分割されて成る部分秘密鍵のいずれかを各々の装置が所持しているとき、分割されたいずれかの部分秘密鍵を記憶する記憶部を備えた前記第三者機関装置が実行する第三者機関装置におけるディジタル署名方法であって、前記署名者装置から送信されてくる署名対象となるメッセージのハッシュ値、当該ハッシュ値の送信時刻、および前記署名者装置が保持する部分秘密鍵を用いて作成された部分的なディジタル署名である部分署名を受信するステップと、このステップで受信した前記署名者装置による部分署名と前記記憶部から読み出した部分秘密鍵から作成した部分署名とを組み合わせて成るディジタル署名である全体署名を作成するステップとを有することを要旨とする。
【００３７】
請求項７記載の本発明は、公開鍵暗号方式によるディジタル署名を行うために、秘密鍵を所持して前記公開鍵暗号方式に基づいたディジタル署名を行う署名者装置と、前記公開鍵の認証機関とは独立な第三者機関に設けられる第三者機関装置とが通信ネットワークを介して接続されたシステムにおいて、前記署名者装置と前記第三者機関装置とが協働して前記秘密鍵を生成するとともに、前記秘密鍵から分割されて成る部分秘密鍵のいずれかを各々の装置が所持しているとき、分割されたいずれかの部分秘密鍵を記憶する記憶部を備えた前記第三者機関装置が実行する第三者機関装置におけるディジタル署名方法であって、前記署名者装置から少なくとも送信されてくる署名対象となるメッセージのハッシュ値および当該ハッシュ値の送信時刻から構成される署名対象データを受信するステップと、このステップで受信した署名対象データおよび前記記憶部から読み出した部分秘密鍵を用いて部分的なディジタル署名である部分署名を作成するステップと、このステップで作成した部分署名と前記署名者装置が所持する部分秘密鍵を用いて生成される部分署名とを組み合わせることによって前記署名者装置で生成されたディジタル署名である全体署名を受信して前記記憶部に格納するステップとを有することを要旨とする。
【００３８】
請求項８記載の本発明は、請求項６または７記載の発明において、前記部分署名は、前記署名対象となるメッセージのハッシュ値と前記現在時刻を表す値を連接した値に前記部分秘密鍵を作用して構成されることを要旨とする。
【００３９】
請求項９記載の本発明は、請求項６乃至８のいずれか１項記載の発明において、前記部分秘密鍵の漏洩を検知した時、当該部分秘密鍵に対応する秘密鍵の失効を前記検知した時刻とともに記録し、以後の前記秘密鍵を用いた署名要求には応じない設定を行うステップを更に実行することを要旨とする。
【００４０】
請求項１０記載の本発明は、公開鍵暗号方式によるディジタル署名を行うために、秘密鍵を所持して前記公開鍵暗号方式に基づいたディジタル署名を行う署名者装置と、前記公開鍵の認証機関とは独立な第三者機関に設けられる第三者機関装置とが通信ネットワークを介して接続されたシステムにおいて、前記署名者装置と前記第三者機関装置とが協働して前記秘密鍵を生成するとともに、前記秘密鍵から分割されて成る部分秘密鍵のいずれかを各々の装置が所持しているとき、分割されたいずれかの部分秘密鍵を記憶する記憶部を備えた前記第三者機関装置が実行する第三者機関装置におけるディジタル署名方法であって、前記署名者装置から送信されてくる署名対象となるメッセージのハッシュ値、および前記署名者装置が保持する部分秘密鍵を用いて作成された部分的なディジタル署名である部分署名を受信するステップと、このステップで受信した前記署名者装置による部分署名と前記記憶部から読み出した部分秘密鍵から作成した部分署名とを組み合わせて成るディジタル署名である全体署名を作成するステップと、このステップで作成した全体署名のハッシュ値に対する時刻証明書要求を、時刻証明書を発行する時刻認証機関装置に送信するステップと、前記時刻認証機関装置から送信されてくる時刻証明書を前記記憶部に格納するとともに、当該時刻証明書および前記全体署名を前記署名者装置に送信するステップとを有することを要旨とする。
【００４１】
請求項１１記載の本発明は、請求項１０記載の発明において、前記部分署名は、前記署名対象となるメッセージのハッシュ値に前記部分秘密鍵を作用して構成されることを要旨とする。
【００４２】
請求項１２記載の本発明は、請求項１０または１１記載の発明において、前記部分秘密鍵の漏洩を検知した時、当該部分秘密鍵に対応する秘密鍵と対をなす公開鍵の公開鍵証明書の失効要求を前記認証機関に設けられる認証機関装置に送信するステップと、前記認証機関装置から受信する前記失効要求の受取証明を前記記憶部に保存するとともに、当該受取証明を前記署名者装置に送信するステップとを更に実行することを要旨とする。
【００４３】
請求項１３記載の本発明は、公開鍵暗号方式によるディジタル署名を行うために、秘密鍵を所持して前記公開鍵暗号方式に基づいたディジタル署名を行う署名者装置と、前記公開鍵の認証機関とは独立な第三者機関に設けられる第三者機関装置とが通信ネットワークを介して接続されたシステムにおいて、不正な署名がなされた可能性のあるディジタル署名の真正性を判定するために前記通信ネットワークに接続される真正性判定装置が実行するディジタル署名の真正性判定方法であって、判定対象となるディジタル署名の所持者から当該ディジタル署名および公開鍵証明書を含むメッセージを受信するステップと、このステップで受信した公開鍵証明書から公開鍵を抽出するステップと、このステップで抽出した公開鍵および前記メッセージを入力として前記判定対象のディジタル署名を検証する署名検証演算を行うステップと、このステップで行った署名検証演算の結果、真正であることを意味する出力値が出力された場合、前記第三者機関装置に対して前記判定対象のディジタル署名に関する情報の有無を照会する照会要求を送信するステップと、このステップで行った照会の結果、前記判定対象のディジタル署名に関する情報が前記第三者機関装置に存在することが判明した場合、当該ディジタル情報が真正であると判定するステップとを有することを要旨とする。
【００４４】
請求項１４記載の本発明は、公開鍵暗号方式によるディジタル署名を行うために、秘密鍵を所持して前記公開鍵暗号方式に基づいたディジタル署名を行う署名者装置と、前記公開鍵の認証機関とは独立な第三者機関に設けられる第三者機関装置とが通信ネットワークを介して接続されたシステムにおいて、不正な署名がなされた可能性のあるディジタル署名の真正性を判定するために前記通信ネットワークに接続される真正性判定装置が実行するディジタル署名の真正性判定方法であって、判定対象となるディジタル署名の所持者から当該ディジタル署名および公開鍵証明書を含むメッセージを受信するステップと、このステップで受信した公開鍵証明書から公開鍵を抽出するステップと、このステップで抽出した公開鍵および前記メッセージを入力として前記判定対象のディジタル署名を検証する署名検証演算を行うステップと、このステップで行った署名検証演算の結果、真正であることを意味する出力値が出力された場合、前記第三者機関装置に対して前記判定対象のディジタル署名に関する情報および前記ディジタル署名を生成した時刻を証明する時刻証明書の有無を照会する照会要求を送信するステップと、このステップで行った照会の結果、前記判定対象のディジタル署名に関する情報および前記時刻証明書が前記第三者機関装置に存在することが判明した場合、前記判定対象のディジタル署名に関する情報に含まれる署名時刻を抽出し、当該署名時刻における前記公開鍵の有効性を前記認証機関に設けられる認証機関装置に対して照会する照会要求を送信するステップと、このステップで有効性の照会を要求した前記公開鍵が前記署名時刻において有効であることが判明した場合、前記判定対象のディジタル署名が真正であると判定するステップとを有することを要旨とする。
【００４５】
請求項１５記載の本発明は、公開鍵暗号方式によるディジタル署名を行うために、前記公開鍵の認証機関とは独立な第三者機関に設けられる第三者機関装置と通信ネットワークを介して接続され、前記公開鍵暗号方式に基づいたディジタル署名を行う署名者装置であって、前記第三者機関装置と協働して秘密鍵および当該秘密鍵に対応する公開鍵を生成する鍵生成手段と、この鍵生成手段で前記秘密鍵を作成するに際して、前記第三者機関装置に送信する前記秘密鍵に関わるメッセージを作成するメッセージ作成手段と、前記秘密鍵から分割されて成る部分秘密鍵を用いて部分的なディジタル署名である部分署名を少なくとも生成する署名生成手段と、前記部分秘密鍵、前記公開鍵、および当該公開鍵の公開鍵証明書を少なくとも記憶する記憶手段とを備えたことを要旨とする。
【００４６】
請求項１６記載の本発明は、公開鍵暗号方式によるディジタル署名を行うために、前記公開鍵暗号方式に基づいたディジタル署名を行う署名者装置と通信ネットワークを介して接続され、前記公開鍵の認証機関とは独立な第三者機関に設けられる第三者機関装置であって、前記署名者装置と協働して秘密鍵および当該秘密鍵に対応する公開鍵を生成する鍵生成手段と、この鍵生成手段で生成した公開鍵の公開鍵証明書および当該公開鍵の失効を証明する失効証明書を前記認証機関に設けられる認証機関装置に要求するためのメッセージを少なくとも作成する証明書要求作成手段と、前記秘密鍵から分割されて成る部分秘密鍵を用いて部分的なディジタル署名である部分署名を少なくとも生成する署名生成手段と、前記部分秘密鍵、前記公開鍵、および当該公開鍵の公開鍵証明書を少なくとも記憶する記憶する記憶手段とを備えたことを要旨とする。
【００４７】
請求項１７記載の本発明は、公開鍵暗号方式によるディジタル署名を行うために、秘密鍵を所持して前記公開鍵暗号方式に基づいたディジタル署名を行う署名者装置と、前記公開鍵の認証機関とは独立な第三者機関に設けられる第三者機関装置とに通信ネットワークを介して接続され、不正な署名がなされた可能性のあるディジタル署名の真正性を判定するディジタル署名の真正性判定装置であって、判定対象となるディジタル署名の所持者から受信する公開鍵証明書から公開鍵を抽出する鍵抽出手段と、この鍵抽出手段で抽出した公開鍵と前記ディジタル署名の所持者から受信するメッセージを入力して、当該ディジタル署名の真正性を判定する真正性判定手段とを備えたことを要旨とする。
【００４８】
請求項１８記載の本発明は、公開鍵暗号方式によるディジタル署名を行うために、秘密鍵を所持して前記公開鍵暗号方式に基づいたディジタル署名を行う署名者装置と、前記公開鍵の認証機関とは独立な第三者機関に設けられる第三者機関装置とが通信ネットワークを介して接続されたシステムにおいて、前記署名者装置と前記第三者機関装置とが協働して前記秘密鍵を生成するとともに、前記秘密鍵から分割されて成る部分秘密鍵のいずれかを各々の装置が所持しているとき、当該所持している部分秘密鍵を記憶する記憶部を備えた前記署名者装置に、署名対象となるメッセージのハッシュ値と現在時刻から構成される署名対象データ、および前記記憶部から読み出した部分秘密鍵を用いて部分的なディジタル署名である部分署名を作成するステップと、このステップで作成した部分署名および前記署名対象データを前記第三者機関装置に送信するステップと、このステップで送信した部分署名と前記第三者機関装置が所持する部分秘密鍵を用いて生成される部分署名とを組み合わせることによって前記第三者機関装置で生成されたディジタル署名である全体署名を受信して前記記憶部に格納するステップとを実行させることを要旨とする。
【００４９】
請求項１９記載の本発明は、公開鍵暗号方式によるディジタル署名を行うために、秘密鍵を所持して前記公開鍵暗号方式に基づいたディジタル署名を行う署名者装置と、前記公開鍵の認証機関とは独立な第三者機関に設けられる第三者機関装置とが通信ネットワークを介して接続されたシステムにおいて、前記署名者装置と前記第三者機関装置とが協働して前記秘密鍵を生成するとともに、前記秘密鍵から分割されて成る部分秘密鍵のいずれかを各々の装置が所持しているとき、当該所持している部分秘密鍵を記憶する記憶部を備えた前記署名者装置に、署名対象となるメッセージのハッシュ値と現在時刻から構成される署名対象データ、および前記記憶部から読み出した部分秘密鍵を用いて部分的なディジタル署名である部分署名を作成するステップと、このステップで作成した部分署名と前記第三者機関装置が保持する部分秘密鍵から作成された部分署名を組み合わせて成るディジタル署名である全体署名を生成するステップとを実行させることを要旨とする。
【００５０】
請求項２０記載の本発明は、請求項１８または１９記載の発明において、前記部分署名は、前記署名対象となるメッセージのハッシュ値と前記現在時刻を表す値を連接した値に前記部分秘密鍵を作用して構成されることを要旨とする。
【００５１】
請求項２１記載の本発明は、請求項１８乃至２０のいずれか１項記載の発明において、前記部分秘密鍵の漏洩を検知した時、当該部分秘密鍵に対応する秘密鍵の失効を前記第三者機関装置に通知するステップを更に実行させることを要旨とする。
【００５２】
請求項２２記載の本発明は、請求項１８乃至２０のいずれか１項記載の発明において、前記第三者機関装置から前記部分秘密鍵に対応する秘密鍵の失効が通知されたとき、当該秘密鍵の失効を検知して記録するステップを更に実行することを要旨とする。
【００５３】
請求項２３記載の本発明は、公開鍵暗号方式によるディジタル署名を行うために、秘密鍵を所持して前記公開鍵暗号方式に基づいたディジタル署名を行う署名者装置と、前記公開鍵の認証機関とは独立な第三者機関に設けられる第三者機関装置とが通信ネットワークを介して接続されたシステムにおいて、前記署名者装置と前記第三者機関装置とが協働して前記秘密鍵を生成するとともに、前記秘密鍵から分割されて成る部分秘密鍵のいずれかを各々の装置が所持しているとき、分割されたいずれかの部分秘密鍵を記憶する記憶部を備えた前記第三者機関装置に、前記署名者装置から送信されてくる署名対象となるメッセージのハッシュ値、当該ハッシュ値の送信時刻、および前記署名者装置が保持する部分秘密鍵を用いて作成された部分的なディジタル署名である部分署名を受信するステップと、このステップで受信した前記署名者装置による部分署名と前記記憶部から読み出した部分秘密鍵から作成した部分署名とを組み合わせて成るディジタル署名である全体署名を作成するステップとを実行させることを要旨とする。
【００５４】
請求項２４記載の本発明は、公開鍵暗号方式によるディジタル署名を行うために、秘密鍵を所持して前記公開鍵暗号方式に基づいたディジタル署名を行う署名者装置と、前記公開鍵の認証機関とは独立な第三者機関に設けられる第三者機関装置とが通信ネットワークを介して接続されたシステムにおいて、前記署名者装置と前記第三者機関装置とが協働して前記秘密鍵を生成するとともに、前記秘密鍵から分割されて成る部分秘密鍵のいずれかを各々の装置が所持しているとき、分割されたいずれかの部分秘密鍵を記憶する記憶部を備えた前記第三者機関装置に、前記署名者装置から少なくとも送信されてくる署名対象となるメッセージのハッシュ値および当該ハッシュ値の送信時刻から構成される署名対象データを受信するステップと、このステップで受信した署名対象データおよび前記記憶部から読み出した部分秘密鍵を用いて部分的なディジタル署名である部分署名を作成するステップと、このステップで作成した部分署名と前記署名者装置が所持する部分秘密鍵を用いて生成される部分署名とを組み合わせることによって前記署名者装置で生成されたディジタル署名である全体署名を受信して前記記憶部に格納するステップとを実行させることを要旨とする。
【００５５】
請求項２５記載の本発明は、請求項２３または２４記載の発明において、前記部分署名は、前記署名対象となるメッセージのハッシュ値と前記現在時刻を表す値を連接した値に前記部分秘密鍵を作用して構成されることを要旨とする。
【００５６】
請求項２６記載の本発明は、請求項２３乃至２５のいずれか１項記載の発明において、前記部分秘密鍵の漏洩を検知した時、当該部分秘密鍵に対応する秘密鍵の失効を前記検知した時刻とともに記録し、以後の前記秘密鍵を用いた署名要求には応じない設定を行うステップを更に実行することを要旨とする。
【００５７】
請求項２７記載の本発明は、公開鍵暗号方式によるディジタル署名を行うために、秘密鍵を所持して前記公開鍵暗号方式に基づいたディジタル署名を行う署名者装置と、前記公開鍵の認証機関とは独立な第三者機関に設けられる第三者機関装置とが通信ネットワークを介して接続されたシステムにおいて、前記署名者装置と前記第三者機関装置とが協働して前記秘密鍵を生成するとともに、前記秘密鍵から分割されて成る部分秘密鍵のいずれかを各々の装置が所持しているとき、分割されたいずれかの部分秘密鍵を記憶する記憶部を備えた前記第三者機関装置に、前記署名者装置から送信されてくる署名対象となるメッセージのハッシュ値、および前記署名者装置が保持する部分秘密鍵を用いて作成された部分的なディジタル署名である部分署名を受信するステップと、このステップで受信した前記署名者装置による部分署名と前記記憶部から読み出した部分秘密鍵から作成した部分署名とを組み合わせて成るディジタル署名である全体署名を作成するステップと、このステップで作成した全体署名のハッシュ値に対する時刻証明書要求を、時刻証明書を発行する時刻認証機関装置に送信するステップと、前記時刻認証機関装置から送信されてくる時刻証明書を前記記憶部に格納するとともに、当該時刻証明書および前記全体署名を前記署名者装置に送信するステップとを実行させることを要旨とする。
【００５８】
請求項２８記載の本発明は、請求項２７記載の発明において、前記部分署名は、前記署名対象となるメッセージのハッシュ値に前記部分秘密鍵を作用して構成されることを要旨とする。
【００５９】
請求項２９記載の本発明は、請求項２７または２８記載の発明において、前記部分秘密鍵の漏洩を検知した時、当該部分秘密鍵に対応する秘密鍵と対をなす公開鍵の公開鍵証明書の失効要求を前記認証機関に設けられる認証機関装置に送信するステップと、前記認証機関装置から受信する前記失効要求の受取証明を前記記憶部に保存するとともに、当該受取証明を前記署名者装置に送信するステップとを更に実行することを要旨とする。
【００６０】
請求項３０記載の本発明は、公開鍵暗号方式によるディジタル署名を行うために、秘密鍵を所持して前記公開鍵暗号方式に基づいたディジタル署名を行う署名者装置と、前記公開鍵の認証機関とは独立な第三者機関に設けられる第三者機関装置とが通信ネットワークを介して接続されたシステムにおいて、不正な署名がなされた可能性のあるディジタル署名の真正性を判定するために前記通信ネットワークに接続される真正性判定装置に、判定対象となるディジタル署名の所持者から当該ディジタル署名および公開鍵証明書を含むメッセージを受信するステップと、このステップで受信した公開鍵証明書から公開鍵を抽出するステップと、このステップで抽出した公開鍵および前記メッセージを入力として前記判定対象のディジタル署名を検証する署名検証演算を行うステップと、このステップで行った署名検証演算の結果、真正であることを意味する出力値が出力された場合、前記第三者機関装置に対して前記判定対象のディジタル署名に関する情報の有無を照会する照会要求を送信するステップと、このステップで行った照会の結果、前記判定対象のディジタル署名に関する情報が前記第三者機関装置に存在することが判明した場合、当該ディジタル情報が真正であると判定するステップとを実行させることを要旨とする。
【００６１】
請求項３１記載の本発明は、公開鍵暗号方式によるディジタル署名を行うために、秘密鍵を所持して前記公開鍵暗号方式に基づいたディジタル署名を行う署名者装置と、前記公開鍵の認証機関とは独立な第三者機関に設けられる第三者機関装置とが通信ネットワークを介して接続されたシステムにおいて、不正な署名がなされた可能性のあるディジタル署名の真正性を判定するために前記通信ネットワークに接続される真正性判定装置に、判定対象となるディジタル署名の所持者から当該ディジタル署名および公開鍵証明書を含むメッセージを受信するステップと、このステップで受信した公開鍵証明書から公開鍵を抽出するステップと、このステップで抽出した公開鍵および前記メッセージを入力として前記判定対象のディジタル署名を検証する署名検証演算を行うステップと、このステップで行った署名検証演算の結果、真正であることを意味する出力値が出力された場合、前記第三者機関装置に対して前記判定対象のディジタル署名に関する情報および前記ディジタル署名を生成した時刻を証明する時刻証明書の有無を照会する照会要求を送信するステップと、このステップで行った照会の結果、前記判定対象のディジタル署名に関する情報および前記時刻証明書が前記第三者機関装置に存在することが判明した場合、前記判定対象のディジタル署名に関する情報に含まれる署名時刻を抽出し、当該署名時刻における前記公開鍵の有効性を前記認証機関に設けられる認証機関装置に対して照会する照会要求を送信するステップと、このステップで有効性の照会を要求した前記公開鍵が前記署名時刻において有効であることが判明した場合、前記判定対象のディジタル署名が真正であると判定するステップとを実行させることを要旨とする。
【００６２】
請求項３２記載の本発明は、請求項１８乃至３１のいずれか１項に記載されたプログラムを記録したことを要旨とする。
【００６３】
なお、ここでいう記録媒体とは、フレキシブルディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、光磁気ディスク、ＰＣカード等のコンピュータ読み取り可能な記録媒体のことを意味する。
【００６４】
【発明の実施の形態】
次に、図面を参照して本発明の実施の形態を説明する。
【００６５】
（第１の実施形態）
＜システム構成＞
図１は、本発明の第１の実施形態に係るシステムの全体構成を示す説明図である。同図に示すように、本実施形態において想定されるシステムは、秘密鍵の本来の所有者でありディジタル署名を行う署名者が実際の処理を行う署名者装置１、信頼される第三者機関（ＴＴＰ：Ｔｈｉｒｄ  Ｔｒｕｓｔｅｄ  Ｐａｒｔｙ）における処理を実際に行う第三者機関装置３、公開鍵証明書の発行機関である認証機関（ＣＡ：Ｃｅｒｔｉｆｉｃａｔｉｏｎ  Ａｕｔｈｏｒｉｔｙ）における処理を実際に行う認証機関装置５、ディジタル署名の真正性を判定する調停機関等において実際に処理を行う真正性判定装置７から少なくとも構成されており、これらの各装置は通信ネットワーク４１を介して相互に接続されている。なお、ここでいう通信ネットワークとは、インターネットや専用回線等の電子情報（データ）を送受信可能なネットワークのことを意味する。
【００６６】
このうち、第三者機関装置３は少なくとも一つ必要であるが、場合によっては複数の第三者機関における第三者機関装置が協働して本実施形態に係る処理を実行することもある。この意味で、図１では複数の第三者機関装置３１  ，  ３２  ，・・・，  ３ｋ  （ｋは正の整数）を記載している。以後の説明において、一つの第三者機関装置を用いて処理を行う場合には、その第三者機関装置に符号３を付すことにする。
【００６７】
以上の各装置は、少なくとも演算機能および制御機能を備えた中央処理装置（ＣＰＵ：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、プログラムやデータを格納する機能を有し、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等から成る主記憶装置（メモリ）を有する電子的な装置から構成されている。
【００６８】
また、本実施形態に係る各種処理を実行するためのプログラムは、前述した主記憶装置またはハードディスクに格納される。
【００６９】
上記各装置は、ハードディスクドライブ、フレキシブルディスクドライブ、ＣＤ−ＲＯＭドライブ、ＤＶＤドライブ、光磁気ディスクドライブ、ＰＣカードドライブ等の補助記憶装置を具備していることが想定される。この意味では、後述する各種処理を行うためのプログラムを、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ、光磁気ディスク、ＰＣカード等のコンピュータ読み取り可能な記録媒体に記録して広く流通させることも勿論可能である。
【００７０】
図２は、署名者装置１が処理を行うための機能の概略を示す機能ブロック図である。同図に示す署名者装置１は、秘密鍵または公開鍵を生成する鍵生成手段である鍵生成部１１、署名者のディジタル署名を生成する署名生成手段である署名生成部１２、受信したデータに関する認証を行う認証手段である認証部１３、署名対象となるメッセージを作成するメッセージ作成手段であるメッセージ作成部１４、各種データならびにプログラム等を記憶する記憶手段の一部としての記憶部１５を具備している。加えて、通信ネットワーク４１を介したデータを送受信するインタフェースを含む送受信部１６および各種データを署名者が入力または出力する入出力部１７を備えている。
【００７１】
このうち、鍵生成部１１、署名生成部１２、認証部１３、およびメッセージ作成部１４の処理は、上記ＣＰＵによる演算制御機能を具体的に示したものに他ならない。
【００７２】
また、記憶部１５は、主記憶装置および各種補助記憶装置の機能を備えたものである。
【００７３】
図３は、第三者機関装置３が処理を行うための機能の概略を示す機能ブロック図である。同図においては、認証機関装置５に対して公開鍵証明書や失効証明書等の証明書を要求するデータを作成する証明書要求作成部３４（証明書要求作成手段）を除き、前述した署名者装置１と同様の機能を有する部位については、署名者装置１の該当部位に付された符号と下一桁を揃えて記載している。
【００７４】
図４は、真正性判定装置７が処理を行うための機能の概略を示す機能ブロック図である。同図に示す真正性判定装置７は、ディジタル署名の真正性を判定するために、署名者装置１または第三者機関装置３から受信するデータから公開鍵を抽出する鍵抽出部７１（鍵抽出手段）、この鍵抽出部７１で抽出した公開鍵に基づいて所定の演算を施すことにより、ディジタル署名の真正性を判定する真正性判定部７２（真正性判定手段）を有する。これらの処理が、上記ＣＰＵによる演算制御機能を具体的に示したものであることは、署名者装置１および第三者機関装置３と同じである。
【００７５】
記憶部７３、送受信部７４、および入出力部７５については、署名者装置１および第三者機関装置３の対応部位と同様の機能を有する。
【００７６】
なお、以上説明した各装置は、１つの電子的な装置によって構築されている場合だけでなく、各手段、または各ステップの実行を分割して２つ以上の電子的な装置によって構築されている場合も含むものとする。
【００７７】
以上の構成を有するシステムが行うディジタル署名方法の詳細について説明する。本実施形態においては、ある秘密鍵を用いてディジタル署名を生成するために、その秘密鍵を、署名者装置１と、一つまたは複数の第三者機関装置３１  ，  ３２  ，・・・，  ３ｋの間で分割して保持し、ディジタル署名生成時にはそれらの部分秘密鍵を用いて分散署名を実施することにより、正規の署名生成手段以外の方法で生成されたディジタル署名の真正性が問題となった場合に、秘密鍵の本来の所有者に対して署名の非生成証明を提供する。
【００７８】
＜秘密鍵の生成＞
まず、分散署名を行うための前提として、ある利用者が所有する秘密鍵を、その署名者装置と一つまたは複数の第三者機関装置から成る複数のエンティティの間で分割して生成、保持するための方法として想定される二つの方法を、それぞれ図５と図６の処理フロー図を用いて説明する。なお、これらの図５および図６を用いた以下の説明においては、第三者機関装置３が１つの場合について主に説明する。
【００７９】
図５を参照して、第１の方法を説明する。この方法は、署名者装置１の秘密鍵を第三者機関装置３で生成し、それを署名者装置１を含む複数のエンティティの間で分割し、各々のエンティティが自身の持分を保持するものである。
【００８０】
まず、第三者機関装置３は、秘密鍵ＳＫＡＴと公開鍵ＰＫＡＴの組を鍵生成部３１で生成する（ステップＳ１０１）。
【００８１】
その後、第三者機関装置３は、ステップＳ１０１において生成された公開鍵
ＰＫＡＴに対する公開鍵証明書要求  ＣｅｒｔＲｅｑ（ＰＫＡＴ）  を証明書要求作成部３４で生成し（ステップＳ１０２）、この生成した公開鍵証明書要求を認証機関装置５に送付する（ステップＳ１０３）。
【００８２】
認証機関装置５は、受信した公開鍵証明書要求  ＣｅｒｔＲｅｑ（ＰＫＡＴ）  に対する公開鍵証明書  Ｃｅｒｔ（ＰＫＡＴ）  を第三者機関装置３に返送する（ステップＳ１０４）。
【００８３】
公開鍵証明書  Ｃｅｒｔ（ＰＫＡＴ）  を受信した第三者機関装置３は、秘密鍵ＳＫＡＴを、鍵生成部３１で  ＳＫＡＴ＝ＳＫＡＴ（Ａ）＋ＳＫＡＴ（Ｔ）と分割する（ステップＳ１０５）。ここで、ＳＫＡＴ（Ａ）およびＳＫＡＴ（Ｔ）は、第三者機関装置３によって適宜定められる部分秘密鍵である。
【００８４】
その後、第三者機関装置３は、部分秘密鍵ＳＫＡＴ（Ａ）と公開鍵証明書
Ｃｅｒｔ（ＰＫＡＴ）  を署名者装置１に送信する（ステップＳ１０６）。
【００８５】
署名者装置１は、受信した部分秘密鍵ＳＫＡＴ（Ａ）と公開鍵証明書
Ｃｅｒｔ（ＰＫＡＴ）  を記憶部１５に保存する（ステップＳ１０７）。
【００８６】
一方、第三者機関装置３は、送信した部分秘密鍵ＳＫＡＴ（Ａ）を破棄（ステップＳ１０８）した後、破棄していない部分秘密鍵ＳＫＡＴ（Ｔ）と公開鍵証明書
Ｃｅｒｔ（ＰＫＡＴ）  を記憶部３５に保存する（ステップＳ１０９）。
【００８７】
この第１の方法においては、分割された部分秘密鍵の各々を署名者装置１と第三者機関装置３とで分割して保持する前に、一旦は第三者機関装置３において秘密鍵に関する情報が蓄積されるため、第三者機関装置３に不正な侵入があった場合には、それらの情報が知られ得ることになる。したがって、この方法を用いる場合は、第三者機関装置３は次の２つの要件を満たしていることが前提とされる。
【００８８】
第１の要件は、十分なセキュリティ対策を装備し、秘密鍵の生成や分割の途中で、不正侵入者の侵入を許すことがないことである。
【００８９】
第２の要件は、秘密鍵が生成され、それを分割した部分秘密鍵を、署名者装置１を含む部分秘密鍵の割当先に送付した後、第三者機関装置３が自身への割当となる部分秘密鍵以外の部分秘密鍵を確実に破棄することである。
【００９０】
なお、第三者機関装置が２つ以上のｋ個あるときには、予め第三者機関装置３１，  ３２，・・・，  ３ｋの中から代表となる第三者機関装置を選んでおき、この選ばれた第三者機関装置が上記同様の処理を実行する。その際には、以下のような修正を行う。
【００９１】
まず、ステップＳ１０１からＳ１０４までのステップを実行した後、ステップＳ１０５においては、秘密鍵ＳＫＡＴの分割を以下のように行う：
ＳＫＡＴ＝ＳＫＡＴ（Ａ）＋ＳＫＡＴ（Ｔ１）＋・・・＋ＳＫＡＴ（Ｔｋ）
ここで、ＳＫＡＴ（Ｔ１），・・・，ＳＫＡＴ（Ｔｋ）は、第三者機関装置３１，…，３ｋが各々保存すべき部分秘密鍵である。
【００９２】
ステップＳ１０６においては、部分秘密鍵ＳＫＡＴ（Ａ）と公開鍵ＰＫＡＴを署名者装置１に送信することに加えて、部分秘密鍵ＳＫＡＴ（Ｔｉ）と公開鍵
ＰＫＡＴを代表第三者機関装置以外の第三者機関装置に送信する。ここで、ｉ＝１，…，ｋである。
【００９３】
次に、図６を参照して第２の方法を説明する。この方法は、署名者装置１が保存する秘密鍵を、その署名者装置１を含む複数のエンティティが分散生成するものである。このためのアルゴリズムとしては、既存の分散生成のためのアルゴリズムを適用することができる（ＲＳＡ鍵ペアの分散生成のためアルコリズムについては、例えば、Ｂｏｎｅｈ  ａｎｄ  Ｍ．Ｋ．  Ｆｒａｎｋｌｉｎ，  “Ｅｆｆｉｃｉｅｎｔ  ｇｅｎｅｒａｔｉｏｎ  ｏｆ  ｓｈａｒｄＲＳＡ  ｋｅｙｓ  （ｅｘｔｅｎｄｅｄ  ａｂｓｔｒａｃｔ）”，  ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  Ｃｒｙｐｔｏ’９７，  ｐｐ．４２５−４３９，  １９９７．を参照）。
【００９４】
この方法では、前述した第１の方法とは異なり、署名者装置１が保存する秘密鍵が第三者機関装置３に対して一度も知られることがないので、第三者機関装置３が不正に秘密鍵を保持し、利用しようとすることは不可能であるという利点を持つ。
【００９５】
まず、図６のステップＳ２０１とＳ２０２において、署名者装置１と第三者機関装置３は、秘密鍵の分散生成のために予め定められたアルゴリズムをそれぞれ実行する（ステップＳ２０３）。
【００９６】
次に、署名者装置１は、ステップＳ２０１で生成した部分秘密鍵ＳＫＡＴ（Ａ）を記憶部１５に保存する（ステップＳ２０４）一方で、第三者機関装置３は、ステップＳ２０２で生成した部分秘密鍵ＳＫＡＴ（Ｔ）を記憶部３５に保存する（ステップＳ２０５）。
【００９７】
続いて、署名者装置１と第三者機関装置３は、予め定められた公開鍵証明書要求のための分散生成アルゴリズムをそれぞれ実行する（ステップＳ２０６）ことにより、公開鍵証明書要求  ＣｅｒｔＲｅｑ（ＰＫＡＴ）  を生成する（ステップＳ２０７、Ｓ２０８）。ここで分散生成アルゴリズムの実行が必要となるのは、ステップＳ２０１，Ｓ２０２で分散生成した複数の部分秘密鍵を用いてディジタル署名を生成する必要があるためである。なお、ここでの公開鍵証明書要求の分散生成においては、第三者機関装置３において証明書要求作成部３４を用いることは第１の方法と同様であるが、署名者装置１の場合には、例えばメッセージ作成部１４にこのような機能を具備させておく。
【００９８】
第三者機関装置３は、署名者装置１と分散生成した公開鍵証明書要求
ＣｅｒｔＲｅｑ（ＰＫＡＴ）  を認証機関装置５に送付する（ステップＳ２０９）。
【００９９】
これに対して、認証機関装置５は公開鍵証明書  Ｃｅｒｔ（ＰＫＡＴ）  を第三者機関装置３に送付する（ステップＳ２１０）。
【０１００】
公開鍵証明書  Ｃｅｒｔ（ＰＫＡＴ）  を受信した第三者機関装置３は、その公開鍵証明書Ｃｅｒｔ（ＰＫＡＴ）  を署名者装置１に転送する（ステップＳ２１１）。
【０１０１】
この後、署名者装置１は、部分秘密鍵  ＳＫＡＴ（Ａ）  と受信した公開鍵証明書
Ｃｅｒｔ（ＰＫＡＴ）  を記憶部１５に保存する（ステップＳ２１２）一方、第三者機関装置３は部分秘密鍵ＳＫＡＴ（Ｔ）と公開鍵証明書  Ｃｅｒｔ（ＰＫＡＴ）  を保存する（ステップＳ２１３）。
【０１０２】
なお、第三者機関装置が２つ以上のｋ個あるときには、予め第三者機関装置３１  ，  ３２  ，・・・，  ３ｋの中から代表となる第三者機関装置を選んでおき、この選ばれた第三者機関装置が上記同様の処理を実行する。その際には、以下のような修正を行う。
【０１０３】
まず、ステップＳ２０１，Ｓ２０２において、第三者機関装置３１，…，３ｋと署名者装置１からなるｋ＋１個のエンティティで鍵ペアの分散生成のためアルゴリズムを適用する。その後、ステップＳ２０５においては、全ての第三者機関装置３１，…，３ｋの各々が、自身が保持する部分秘密鍵ＳＫＡＴ（Ｔｉ）  を各記憶部に保存する。ここでも、ｉ＝１，…，ｋである。ステップＳ２０６、Ｓ２０７、Ｓ２０８、およびＳ２０９は、代表として選ばれた第三者機関装置が実行するものとする。
【０１０４】
＜分散署名＞
上記２つの方法のいずれかを用いて秘密鍵が分割され、部分秘密鍵が署名者装置と一つまたは複数の第三者機関装置に分散して保存された後、これらの署名者装置と第三者機関装置が協働して分散署名を行う方法について説明する。ここでも、最初に分散署名を行う第三者機関装置が１つの場合について説明する。
【０１０５】
以下に説明する分散署名方法については、ディジタル署名において、署名対象のメッセージのハッシュ値にその署名を行った日時を示す時刻値を連接し、その連接した結果に対してディジタル署名を実施する。時刻値を連接するのは、後刻そのディジタル署名についての何らかの紛争が起きて、ディジタル署名の真正性の判定が必要になった場合に、その連接された時刻を用いて判定を行うためである。
【０１０６】
なお、時刻値を付与したメッセージにディジタル署名を行う方法については、Ｂ．  Ｋａｌｉｓｋｉ  ｅｔ  ａｌ．：  ＲＦＣ２３１５「ＰＫＣＳ＃７：  Ｃｒｙｐｔｏｇｒａｐｈｉｃ  Ｍｅｓｓａｇｅ  Ｓｙｎｔａｘ，  Ｖｅｒｓｉｏｎ  １．５」や、Ｒ．  Ｈｏｕｓｌｅｙ  ｅｔ  ａｌ．：  ＲＦＣ２６３０「Ｃｒｙｐｔｏｇｒａｐｈｉｃ  Ｍｅｓｓａｇｅ  Ｓｙｎｔａｘ」等の標準に従うことにしてもよい。このような標準が定められていることからも明らかなように、今般、署名対象データの一部に署名の付与日時を含めるのは、ディジタル署名の流通に際して広く要請または実施されていることであり、ディジタル署名をこのような形のものに限定しても、以下で述べる方法の適用範囲を狭めることにはならないのはいうまでもない。
【０１０７】
また、以後の説明において、署名の対象となるメッセージＭに対して秘密鍵ＳＫを用いて署名した結果を  Ｓｉｇ（ＳＫ，  ｈ（Ｍ）‖ｔ）  と表す。ここで、ｈはハッシュ関数であり、ｈ（Ｍ）‖ｔはｈ（Ｍ）と時刻ｔとの連接（ビット列とビット列の結合）を表す。さらに、Ｍ、ｔ、および  Ｓｉｇ（ＳＫ，  ｈ（Ｍ）‖ｔ）  を連接して得られる署名付きメッセージを  ＳｉｇＭｓｇ（ＳＫ，  ｈ（Ｍ）‖ｔ）  と表す。
【０１０８】
ディジタル署名を行う各エンティティが参照する時計から署名時刻を決める際には、所定の刻み幅、例えば１秒で値を定めるものとする。
【０１０９】
なお、秘密鍵を分散保持する複数のエンティティが、ＲＳＡ公開鍵暗号方式を用いて分散署名を実行する方法については、例えば特開２００１−１４２３９８号公報に開示がある（ＲＳＡ公開鍵暗号方式については、Ｒ．Ｌ．  Ｒｉｖｅｓｔ  ｅｔ  ａｌ．，  Ａ  ｍｅｔｈｏｄ  ｆｏｒ  ｏｂｔａｉｎｉｎｇ  ｄｉｇｉｔａｌ  Ｓｉｇｎａｔｕｒｅｓ  ａｎｄ  ｐｕｂｌｉｃ−ｋｅｙ  ｃｒｙｐｔｏｓｙｓｔｅｍｓ，  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  ｏｆ  ＡＣＭ  Ｖｏｌ．２１  （１９７８），  ｐｐ．１２０−１２６．を参照）。以後の説明では、ＲＳＡ公開鍵暗号方式を用いることを前提とするが、本発明において、ディジタル署名のベースとなる公開鍵暗号方式は、ＲＳＡ公開鍵暗号方式に限られるわけではなく、それ以外にもＲａｂｉｎ暗号、ＥｌＧａｍａｌ暗号、楕円曲線暗号等の公開鍵暗号方式によるディジタル署名を用いることも勿論可能であり、その効果は同一である。
【０１１０】
ＲＳＡ公開鍵暗号方式においては、２つの大きな素数ｐとｑをランダムに選び、Ｎ＝ｐ・ｑ，Φ（Ｎ）＝（ｐ−１）・（ｑ−１）と置き、Φ（Ｎ）と互いに素な整数ｅを適当に定めることにより、（Ｎ，ｅ）を公開鍵とする。また、整数ｄをｅ・ｄ＝１  ｍｏｄ  Φ（Ｎ）  となるように選んで秘密鍵とする。ここで、「１  ｍｏｄ  Φ（Ｎ）  」とは、Φ（Ｎ）  を法として１になることを意味している。０からＮ−１の間の整数として表現されたメッセージＭに対するディジタル署名は、Ｍｄ  ｍｏｄ  Ｎで与えられる。
【０１１１】
秘密鍵ｄがｄ＝ｄ（１）＋…＋ｄ（ｒ）となるような部分秘密鍵ｄ（１），…，ｄ（ｒ）に分割されたときは、各々の部分秘密鍵ｄ（ｉ）（ｉ＝１，…，ｒ）を用いて生成された部分署名Ｍｄ（ｉ）  ｍｏｄ  Ｎについて、Ｎを法とした乗算を行うことにより、秘密鍵ｄによるＭに対する署名を生成することができる。即ち、
Ｍｄ  ｍｏｄ  Ｎ＝（Ｍｄ（ｉ）  ｍｏｄ  Ｎ）・…・（Ｍｄ（ｒ）  ｍｏｄ  Ｎ）  ｍｏｄ  Ｎ
となる（特開２００１−１４２３９８号公報を参照）。
【０１１２】
以後、分散署名を生成する三つの方法を説明する。ここでも、最初に第三者機関装置が一つの場合について、図７乃至図９に示す処理フロー図をそれぞれ参照して説明する。
【０１１３】
図７は、本実施形態に係る分散署名生成方法（第１の方法）の詳細な処理内容を示す処理フロー図である。
【０１１４】
ステップＳ３０１およびＳ３０２は、上述した分散生成法のいずれかを用いて生成された部分秘密鍵  ＳＫＡＴ（Ａ）およびＳＫＡＴ（Ｔ）、公開鍵ＰＫＡＴ  を署名者装置１および第三者機関装置３がそれぞれ保存していることを意味する。
【０１１５】
この第１の方法では、時刻値を付与したメッセージに対するディジタル署名を生成する際に、まず署名者装置１が、自身の参照する時計の時刻ｔを署名対象のメッセージのハッシュ値ｈ（Ｍ）に連接し、その結果であるｈ（Ｍ）‖ｔに署名者装置１が保存する部分秘密鍵ＳＫＡＴ（Ａ）を作用させることによって、部分署名Ｓｉｇ（ＳＫＡＴ（Ａ），  ｈ（Ｍ）‖ｔ）  を生成する（ステップＳ３０３）。
【０１１６】
続いて、署名者装置１と第三者機関装置３は、各々の認証部１３および３３で相互にエンティティ認証を行う（ステップＳ３０４）。即ち、署名者装置１に対する第三者機関装置３による本人認証および第三者機関装置３に対する署名者装置１による第三者機関認証を行う。エンティティ認証は、各々のエンティティが所有するエンティティ認証用の公開鍵証明書を用いて行ってもよい。また、署名者装置１に対する第三者機関装置３による本人認証においては、パスワードやワンタイム・パスワード、あるいはバイオメトリックス等の本人認証のための種々の方法やそれらの組み合わせをエンティティ認証用の公開鍵証明書の代替として用いてもよいし、これをさらにエンティティ認証用の公開鍵証明書と組み合わせて用いてもよい。
【０１１７】
なお、ここでの認証時にエラーが生じた場合、以後の処理が行われないことはいうまでもない。
【０１１８】
ステップＳ３０５では、署名者装置１が、部分署名  Ｓｉｇ（ＳＫＡＴ（Ａ），  ｈ（Ｍ）‖ｔ）  および署名の対象となった署名対象データｈ（Ｍ），ｔを第三者機関装置３に送付する。
【０１１９】
これらの署名対象データを受信した第三者機関装置３は、署名者装置１から送付された時刻ｔと自身の参照する時計の時刻を比較し、それら２つの値の差が所定の許容範囲内にあれば自身の持つ部分秘密鍵ＳＫＡＴ（Ａ）を用いて部分署名  Ｓｉｇ（ＳＫＡＴ（Ａ），  ｈ（Ｍ）‖ｔ）  を生成する（ステップＳ３０６）。ここで、「所定の許容範囲」とは、時刻を証明する際の保証精度に応じて変わるものであり、例えば設定される保証精度の数分の一程度の値が許容範囲の閾値として想定される。また、二つの時刻値の差が許容範囲内にないときには、以後の処理は行われない。以上の二点については、後述する処理において同様の事態が発生した場合にも当てはまるものである。
【０１２０】
その後、第三者機関装置３は、署名者装置１から送付された部分署名
Ｓｉｇ（ＳＫＡＴ（Ａ），  ｈ（Ｍ）‖ｔ）  と自身で生成した部分署名  Ｓｉｇ（ＳＫＡＴ（Ｔ），  ｈ（Ｍ）‖ｔ）  を組み合わせることによって全体署名  Ｓｉｇ（ＳＫＡＴ  ，  ｈ（Ｍ）‖ｔ）  を生成し（ステップＳ３０７）、この全体署名を署名者装置１に送信する（ステップＳ３０８）。
【０１２１】
その後、第三者機関装置３は、署名ログ  （ｈ（Ｍ），  ｔ，  Ｓｉｇ（ＳＫＡＴ（Ｔ），  ｈ（Ｍ）‖ｔ））を保存する（ステップＳ３１０）。
【０１２２】
他方、全体署名を受信した署名者装置１は、後刻の利用のためこれを保存するか、または更に別の第三者にこれを発行する等の方法で利用する（ステップＳ３０９）。
【０１２３】
なお、第三者機関装置が２つ以上のｋ個あるときには、予め第三者機関装置３１，  ３２，・・・，  ３ｋの中から代表となる第三者機関装置を選んでおき、この選ばれた第三者機関装置が上記同様の処理を実行する。その際には、以下のような修正を行う。
【０１２４】
ステップＳ３０４で、秘密鍵を本来所有する署名者装置１は複数の第三者機関装置３１，…，３ｋの各々と相互のエンティティ認証を行う。即ち、署名者装置１に対する第三者機関装置３ｉ による本人認証、および第三者機関装置３ｉ に対する署名者装置１による第三者機関認証を行う。ここでも、ｉ＝１，…，ｋである。
【０１２５】
ステップＳ３０５において、署名者装置１は第三者機関装置３１  ，…，３ｋ  の各々に対して、部分署名  Ｓｉｇ（ＳＫＡＴ（Ａ），  ｈ（Ｍ）‖ｔ）  と署名対象データｈ（Ｍ），ｔを送付する。
【０１２６】
各第三者機関装置３ｉは、送付された時刻ｔを自身の時計と比較し、その差が許容範囲にあれば自身で保存する部分秘密鍵ＳＫＡＴ（Ｔｉ）を用いて部分署名  Ｓｉｇ（ＳＫＡＴ（Ｔｉ），  ｈ（Ｍ）‖ｔ）  を生成する（ステップＳ３０６）。
【０１２７】
その後、代表に選ばれた第三者機関装置以外の各第三者機関装置は、部分署名Ｓｉｇ（ＳＫＡＴ（Ｔｉ  ），  ｈ（Ｍ）‖ｔ）  を代表の第三者機関装置に送付する。
【０１２８】
ステップＳ３０７においては、代表の第三者機関装置は、署名者装置１から送付された部分署名  Ｓｉｇ（ＳＫＡＴ（Ａ），  ｈ（Ｍ）‖ｔ）  と自身を含めて複数の第三者機関装置３が生成した部分署名  Ｓｉｇ（ＳＫＡＴ（Ｔｉ  ），  ｈ（Ｍ）‖ｔ）  を組み合わせることによって全体署名  Ｓｉｇ（ＳＫＡＴ，  ｈ（Ｍ）‖ｔ）  を生成する。
【０１２９】
ステップＳ３０８からＳ３１０は、上記同様である。
【０１３０】
図８は、本実施形態に係る分散署名生成方法（第２の方法）の詳細な処理内容を示す処理フロー図である。この方法では、署名者装置１が全体署名を生成するようにしている点が前述した第１の方法と異なる。
【０１３１】
なお、ステップＳ４０１，…，Ｓ４０６については、第１の方法（図７のステップＳ３０１，…，Ｓ３０６を参照）と同じなので、説明を省略する。
【０１３２】
ステップＳ４０７において、第三者機関装置３は、自身の生成した部分署名  Ｓｉｇ（ＳＫＡＴ（Ｔ），  ｈ（Ｍ）‖ｔ）  を署名者装置１に返送する。
【０１３３】
この部分署名を受信した署名者装置１は、それらの部分署名と自身の部分署名Ｓｉｇ（ＳＫＡＴ（Ａ），  ｈ（Ｍ）‖ｔ）  を用いて全体署名  Ｓｉｇ（ＳＫＡＴ  ，  ｈ（Ｍ）‖ｔ）  を生成し（ステップＳ４０８）、この全体署名を第三者機関装置３に送付する（ステップＳ４０９）。
【０１３４】
第三者機関装置３は、全体署名  Ｓｉｇ（ＳＫＡＴ  ，  ｈ（Ｍ）‖ｔ）  を受信後、署名ログ
（ｈ（Ｍ），  ｔ，  Ｓｉｇ（ＳＫＡＴ（Ｔ），  ｈ（Ｍ）‖ｔ））  を記憶部３５に保存する（ステップＳ４１０）。
【０１３５】
一方、署名者装置１は、後刻の利用のため全体署名  Ｓｉｇ（ＳＫＡＴ，  ｈ（Ｍ）‖ｔ）  を保存するか、または更に別の第三者にこれを発行する等の方法で利用する（ステップＳ４１１）。
【０１３６】
次に、第三者機関装置が複数ある場合について、第１の方法と同様に修正するステップを中心に説明する。
【０１３７】
まず、署名者装置１が生成した部分署名Ｓｉｇ（ＳＫＡＴ（Ａ），  ｈ（Ｍ）‖ｔ）  と署名対象データｈ（Ｍ），ｔを第三者機関装置３１，  ３２  ，・・・，  ３ｋの各々に対して送付する（ステップＳ４０５）。
【０１３８】
第三者機関装置３１，  ３２，・・・，  ３ｋの各々は、図８のステップＳ４０２、Ｓ４０６、Ｓ４０７を実行する。
【０１３９】
ステップＳ４０８において、署名者装置１は自身の生成した部分署名
Ｓｉｇ（ＳＫＡＴ（Ａ），  ｈ（Ｍ）‖ｔ）  と、複数の第三者機関装置３１，  ３２，・・・，  ３ｋから送付された複数の部分署名Ｓｉｇ（ＳＫＡＴ（Ｔ１），  ｈ（Ｍ）‖ｔ）  ，…，Ｓｉｇ（ＳＫＡＴ（Ｔｋ），  ｈ（Ｍ）‖ｔ）から全体署名  Ｓｉｇ（ＳＫＡＴ，  ｈ（Ｍ）‖ｔ）  を生成する。
【０１４０】
ステップＳ４０９において、署名者装置１は、全体署名  Ｓｉｇ（ＳＫＡＴ，  ｈ（Ｍ）‖ｔ）  を複数の第三者機関装置３の各々に送付し、その後、ステップＳ４１１を実行する。
【０１４１】
他方、第三者機関装置３１，  ３２，・・・，  ３ｋの各々は、ステップＳ４１０を実行する。
【０１４２】
図９は、本実施形態に係る分散署名生成方法（第３の方法）の詳細な処理内容を示す処理フロー図である。
【０１４３】
ステップＳ５０１およびＳ５０２は、上述した二つの分散署名生成方法と同様に、署名者装置１と第三者機関装置３の各々が、自身の部分秘密鍵および公開鍵を保持するステップである。
【０１４４】
ステップＳ５０３では、秘密鍵の本来の所有者である署名者装置１と第三者機関装置３は相互にエンティティ認証を行う。即ち、署名者装置１に対する第三者機関装置３による本人認証、および第三者機関装置３に対する署名者装置１による第三者機関認証を行う。
【０１４５】
その後、署名者装置１は、署名対象メッセージＭのハッシュ値ｈ（Ｍ）を署名対象データとして第三者機関装置３に送付する（ステップＳ５０４）。
【０１４６】
この署名対象データを受信した第三者機関装置３は、自身の参照する時計の時刻ｔをｈ（Ｍ）に連接し、その結果得られるｈ（Ｍ）‖ｔに自身の保持する部分秘密鍵ＳＫＡＴ（Ｔ）を作用させることによって部分署名  Ｓｉｇ（ＳＫＡＴ（Ｔ），  ｈ（Ｍ）‖ｔ）を生成し（ステップＳ５０５）、この部分署名  Ｓｉｇ（ＳＫＡＴ（Ｔ），  ｈ（Ｍ）‖ｔ）  と時刻ｔを署名者装置１に返送する（ステップＳ５０６）。
【０１４７】
これらのデータを受信した署名者装置１は、第三者機関装置３から送付された時刻ｔと自身の参照する時計の時刻を比較し、それら２つの値の差が所定の許容範囲内にあれば、自身が有する部分秘密鍵ＳＫＡＴ（Ｔ）を用いることによって部分署名  Ｓｉｇ（ＳＫＡＴ（Ａ），  ｈ（Ｍ）‖ｔ）  を生成する（ステップＳ５０７）。
【０１４８】
続いて署名者装置１は、第三者機関装置３から送付された部分署名
Ｓｉｇ（ＳＫＡＴ（Ｔ），  ｈ（Ｍ）‖ｔ）  と自身の生成した部分署名  Ｓｉｇ（ＳＫＡＴ（Ａ），  ｈ（Ｍ）‖ｔ）  を組み合わせることにより、全体署名  Ｓｉｇ（ＳＫＡＴ，  ｈ（Ｍ）‖ｔ）  を生成し（ステップＳ５０８）、この全体署名を第三者機関装置３に送信する（ステップＳ５０９）。
【０１４９】
第三者機関装置３は、その全体署名  Ｓｉｇ（ＳＫＡＴ，  ｈ（Ｍ）‖ｔ）  を受信した後、署名ログ（ｈ（Ｍ），  ｔ，  Ｓｉｇ（ＳＫＡＴ，  ｈ（Ｍ）‖ｔ）  ）を保存する（ステップＳ５１０）。
【０１５０】
他方、署名者装置１は、後刻の利用のために全体署名  Ｓｉｇ（ＳＫＡＴ，  ｈ（Ｍ）‖ｔ）  を保存するか、または更に別の第三者にこれを発行する等の方法で利用する（ステップＳ５１１）。
【０１５１】
次に、第三者機関装置が複数ある場合について、上記二つの方法と同様に修正するステップを中心に説明する。
【０１５２】
ステップＳ５０３においては、署名者装置１は、第三者機関装置３１  ，…，３ｋの各々と相互のエンティティ認証を行う。
【０１５３】
ステップＳ５０４においては、署名者装置１は、署名対象のデータｈ（Ｍ）を第三者機関装置３１  ，…，３ｋの各々に対して送付する。
【０１５４】
第三者機関装置３１  ，…，３ｋは、自身の参照する時計の時刻ｔｉをｈ（Ｍ）に連接したｈ（Ｍ）‖ｔｉに、自身の保持する部分秘密鍵ＳＫＡＴ（Ｔｉ）を作用させることによって、部分署名Ｓｉｇ（ＳＫＡＴ（Ｔｉ），  ｈ（Ｍ）‖ｔｉ）  を生成し（ステップＳ５０５）、部分署名  Ｓｉｇ（ＳＫＡＴ（Ｔｉ  ），  ｈ（Ｍ）‖ｔｉ）  とｔｉを署名者装置１に返送する（ステップＳ５０６）。
【０１５５】
署名者装置１は、各第三者機関装置から送付された時刻ｔ１  ，…，ｔｋを比較し、これらが一致した場合には、この一致した値をｔとして、さらにこの値ｔと自身の参照する時計の時刻を比較し、それら２つの値の差が所定の許容範囲内にあれば、自身の持つ部分秘密鍵ＳＫＡＴ（Ｔ）を用いることによって部分署名
Ｓｉｇ（ＳＫＡＴ（Ａ），  ｈ（Ｍ）‖ｔ）  を生成する（ステップＳ５０７）。ここで、時刻ｔ１  ，…，ｔｋが一致しなければ、全体署名の生成は行わない。
【０１５６】
その後、署名者装置１は自身の生成した部分署名  Ｓｉｇ（ＳＫＡＴ（Ａ），  ｈ（Ｍ）‖ｔ）  と、第三者機関装置３１  ，…，３ｋ  の各々から送付された複数の部分署名
Ｓｉｇ（ＳＫＡＴ（Ｔ１  ），  ｈ（Ｍ）‖ｔ），  …，  Ｓｉｇ（ＳＫＡＴ  （Ｔｋ），  ｈ（Ｍ）‖ｔ）  から全体署名
Ｓｉｇ（ＳＫＡＴ，  ｈ（Ｍ）‖ｔ）  を生成し（ステップＳ５０８）、この全体署名を第三者機関装置３１  ，…，３ｋの各々に送信する（ステップＳ５０９）。
【０１５７】
第三者機関装置３ｉは、全体署名Ｓｉｇ（ＳＫＡＴ，  ｈ（Ｍ）‖ｔ）  を受信した後、署名ログ  （ｈ（Ｍ），  ｔ，  Ｓｉｇ（ＳＫＡＴ，  ｈ（Ｍ）‖ｔ））  をそれぞれ保存する（ステップＳ５１０）。
【０１５８】
署名者装置１が行うステップＳ５１１は上記同様である。
【０１５９】
以上説明した第１乃至第３の分散署名方法によれば、いずれの場合にも署名者装置と第三者機関装置が協働してディジタル署名を生成することが必須なため、第三者機関装置において当該ディジタル署名に関する情報としての署名ログ情報を蓄積しておき、後刻においてそのディジタル署名の真正性が問題となった場合には、その署名ログ情報を有効に活用することが可能になる。
【０１６０】
＜秘密鍵の失効＞
次に、署名者装置１と第三者機関装置３が部分秘密鍵ＳＫＡＴ（Ａ）と
ＳＫＡＴ（Ｔ）をそれぞれ分散して保持した後、署名者装置１と第三者機関装置３のいずれかが秘密鍵の漏洩を検知したときに実行する秘密鍵の失効処理について説明する。
【０１６１】
図１０は、署名者装置１が秘密鍵の漏洩を検知した場合の失効処理の流れを示す処理フロー図である。
【０１６２】
署名者装置１および第三者機関装置３は、上述したいずれかの方法によって部分秘密鍵と公開鍵を保持している（ステップＳ６０１、Ｓ６０２）ものとする。
【０１６３】
その後、署名者装置１が自身の持つ部分秘密鍵ＳＫＡＴ（Ａ）が漏洩したことを検知したとする（ステップＳ６０３）。
【０１６４】
この場合、署名者装置１は、直ちに秘密鍵ＳＫＡＴの失効を第三者機関装置３に通知する（ステップＳ６０４）。以後、この通知時刻をｔ１とする。
【０１６５】
署名者装置１からの秘密鍵ＳＫＡＴ  の失効通知を受信した第三者機関装置３は、このときの時刻ｔ１  を付加して秘密鍵ＳＫＡＴの失効を記録し、これ以後は、部分秘密鍵ＳＫＡＴ（Ｔ）を用いた分散署名の要求には応じない（ステップＳ６０５）。
【０１６６】
署名者装置１は、失効通知を第三者機関装置３に送信後、秘密鍵ＳＫＡＴの失効を記憶部１５に記録する（ステップＳ６０６）。このステップでは、秘密鍵
ＳＫＡＴ  を削除してもよい。
【０１６７】
なお、第三者機関装置が２つ以上のｋ個あるときには、各第三者機関装置３１，３２，・・・，  ３ｋの各々が図１０の第三者機関装置３における処理と同様の処理を実行するが、そのうちのステップＳ６０４においては、署名者装置１は秘密鍵のＳＫＡＴの失効通知を全ての第三者機関装置３１  ，…，３ｋに対して送付する。
【０１６８】
図１１は、第三者機関装置３が秘密鍵の漏洩を検知した場合の失効処理の流れを説明する処理フロー図である。
【０１６９】
まず、ステップＳ７０１およびＳ７０２は、それぞれ前述したステップＳ６０１およびＳ６０２と同じである（図１０を参照）。
【０１７０】
その後、第三者機関装置３が自身の持つ部分秘密鍵ＳＫＡＴ（Ｔ）が漏洩したことを検知したとする（ステップＳ７０３）。ここでも、秘密鍵漏洩の検知時刻をｔ１  とする。
【０１７１】
この場合、第三者機関装置３は、直ちに秘密鍵ＳＫＡＴの失効を署名者装置１に通知する（ステップＳ７０４）。
【０１７２】
第三者機関装置３は、部分秘密鍵ＳＫＡＴ（Ｔ）の漏洩を検知した時刻ｔ１  を付加して秘密鍵ＳＫＡＴの失効を記録し、これ以後は、部分秘密鍵ＳＫＡＴ（Ｔ）を用いた分散署名の要求には応じない（ステップＳ７０５）。
【０１７３】
署名者装置１は、秘密鍵ＳＫＡＴの失効を第三者機関装置３から受信した時点で、秘密鍵ＳＫＡＴの失効を検知する（ステップＳ７０６）。その後、秘密鍵
ＳＫＡＴの失効を記録し、場合によってはその秘密鍵ＳＫＡＴを記憶部１５から削除する。
【０１７４】
第三者機関装置が複数ある場合には、その各々が図７の第三者機関装置３の処理を実行する。
【０１７５】
＜署名の真正性判定＞
次に、ディジタル署名が上述したいずれかの分散署名方法によって生成された場合に、そのディジタル署名の真正性を判定する真正性判定装置７の処理について説明する。なお、このような真正性判定処理は、例えばディジタル署名の真正性について当事者間での紛争が起きた場合の調停等において、しかるべき調停機関（裁判所等）において利用されることが想定される。
【０１７６】
ここでも、ディジタル署名の対象となるメッセージＭに対して、秘密鍵ＳＫを用いて署名した結果を  Ｓｉｇ（ＳＫ，  ｈ（Ｍ）‖ｔ）  と表す。また、ｈはハッシュ関数であり、ｔは署名時刻を表す数値であり、ｈ（Ｍ）‖ｔはＭとｔの連接を表す。また、Ｍ、ｔと  Ｓｉｇ（ＳＫ，  ｈ（Ｍ）‖ｔ）  を連接して得られる署名付メッセージを
ＳｉｇＭｓｇ（ＳＫ，  ｈ（Ｍ）‖ｔ）  と表すことについても上記説明と同様である。
【０１７７】
図１２は、本実施形態に係る真正性判定装置７が行うディジタル署名の真正性判定処理の流れを説明するフローチャート図である。
【０１７８】
真正性判定装置７は、ディジタル署名の所持者から署名付メッセージ
ＳｉｇＭｓｇ（ＳＫ’ＡＴ，  ｈ（Ｍ）‖ｔ）  と公開鍵証明書  Ｃｅｒｔ（ＰＫＡＴ）  を受信する（ステップＳ８０１）。
【０１７９】
その後、受信した公開鍵証明書Ｃｅｒｔ（ＰＫＡＴ）  から公開鍵ＰＫＡＴを鍵抽出部７１で抽出する（ステップＳ８０２）。
【０１８０】
次のステップＳ８０３では、ステップＳ８０２で抽出した公開鍵ＰＫＡＴ  と、ステップＳ８０１で受信した署名付メッセージＳｉｇＭｓｇ（ＳＫ’ＡＴ，  ｈ（Ｍ）‖ｔ）  を入カとして、署名検証演算  Ｖｅｒｉ（ＰＫＡＴ，  ＳｉｇＭｓｇ（ＳＫ’ＡＴ，  ｈ（Ｍ）‖ｔ））  を真正性判定部７２において実行する。
【０１８１】
この署名検証演算  Ｖｅｒｉ（ＰＫＡＴ，  ＳｉｇＭｓｇ（ＳＫ’ＡＴ，  ｈ（Ｍ）‖ｔ））  は、前述した入力値に対して複数の演算（検証手続）を実行し、その結果としてディジタル署名の真正性を判定する値を出力とするものであり、例えば真正（ＹＥＳ）であるときには１、不正（ＮＯ）であるときには０の値を判定値として出力する。
【０１８２】
以後のステップは、署名検証演算  Ｖｅｒｉ（ＰＫＡＴ，  ＳｉｇＭｓｇ（ＳＫ’ＡＴ，  ｈ（Ｍ）‖ｔ））  の出力結果に応じて選択がなされる。すなわち、署名検証手続による出力結果が不正（Ｎｏ）のときにはステップＳ８０４に進み、受信した署名付きメッセージを不正なものと判定する。
【０１８３】
他方、出力結果が真正（ＹＥＳ）のときはステップＳ８０５へ進む。ステップＳ８０５では、署名検証演算  Ｖｅｒｉ（ＰＫＡＴ，  ＳｉｇＭｓｇ（ＳＫ’ＡＴ，  ｈ（Ｍ）‖ｔ））  を実行したディジタル署名に関する署名ログの存否について第三者機関装置３に照会し、第三者機関装置３からの応答により、該当する署名ログが存在しない（ＮＯ）ことが判明したときにはステップＳ８０６に進み、上記ステップＳ８０４と同様に、受信した署名付メッセージを不正なものと判定する。
【０１８４】
他方、第三者機関装置３への照会の結果、その第三者機関装置３に該当する署名ログが存在していることが判明したときは、その署名付メッセージの署名が真正である可能性が高いと判定する（ステップＳ８０７）。
【０１８５】
以上説明した真正性判定方法を用いれば、この判定結果に基づいてディジタル署名の真正性を推定することも可能である。また、紛争時の調停等の場合には、さらに関連情報を収集することによって調停を進めていくことができる。
【０１８６】
なお、第三者機関装置が複数ある場合には、ステップＳ８０５において、各第三者機関装置３１  ，…，３ｋの各々に対して照会を行い、該当する署名ログがあるか否かを検証するものとする。
【０１８７】
以上説明した真正性判定装置７におけるディジタル署名の真正性判定処理においては、一つまたは複数の第三者機関装置への署名ログ存否に関する照会が不可欠である。そこで、照会を受ける第三者機関装置３が行う処理の正当性（ＴＴＰ非不正の前提）については、次の３つのことを前提とし、ディジタル署名の真正性について紛争が起こった場合等に真正性判定装置７を利用する調停機関もこの前提を認めるものと仮定する。なお、以後の説明においては、第三者機関装置が一つの場合を想定して符号３を付すことにするが、複数の場合であっても本質的な相違はない。
【０１８８】
ＴＴＰ非不正の前提１：第三者機関装置３は、自身の保持する部分秘密鍵の漏洩を検知したとき、この部分秘密鍵の失効を記録する。部分秘密鍵の失効がすでに記録されている場合には、その部分秘密鍵による署名要求には応じない（図１１を参照）。
ＴＴＰ非不正の前提２：第三者機関装置３は、署名者装置１から秘密鍵の失効通知を受信したときには、その秘密鍵の失効を記録する。部分秘密鍵の失効がすでに記録されている場合には、その部分秘密鍵による署名要求には応じない（図１０を参照）。
ＴＴＰ非不正の前提３：第三者機関装置３が署名時刻を決定するために参照する時計は、ディジタル署名が用いられる分野によって定まる一定の許容誤差の範囲で正確である。
【０１８９】
以上の前提に加え、図１２を用いて説明した真正性判定処理に基づいたディジタル署名の非生成証明が実現されるための条件（非生成証明の実現条件）として、以下の二つの条件を課す（図１０および図１１を参照）。
【０１９０】
非生成証明の実現条件１：署名者装置１および第三者機関装置３において、共に、自身の保持する部分秘密鍵が漏洩したときには、署名者装置１は自身の部分秘密鍵の漏洩について第三者機関装置３に通知するか、あるいは第三者機関装置３は自身の部分秘密鍵の漏洩を検知する。
非生成証明の実現条件２：署名者装置１の部分秘密鍵が漏洩し、かつ第三者機関装置３の保持する部分秘密鍵が漏洩しないときは、署名者装置１は自身の部分秘密鍵の漏洩について検知し、第三者機関装置３に通知する。
【０１９１】
以上説明したＴＴＰ非不正の前提および非生成証明実現の条件に基づいて、非生成証明がどのように実現されるかについて、その詳細を説明する。
【０１９２】
不正な方法で生成された署名付きメッセージが真正性判定装置７に送信される場合として想定されるのは、次の４つである。
【０１９３】
Ａ．署名者装置１の持つ部分秘密鍵と第三者機関装置３の持つ部分秘密鍵の両方が漏洩する場合。攻撃者が利用する攻撃者装置２１が何らかの方法、例えば暗号ブレーク（検証用公開鍵から秘密鍵を大量の計算により算出すること）により、署名者装置１や第三者機関装置３に知られることなく秘密鍵の全体を取得する状況もこの場合に含まれる。
【０１９４】
Ｂ．署名者装置１の持つ部分秘密鍵が漏洩する一方で、第三者機関装置３の持つ部分秘密鍵は漏洩しない場合。この場合、署名者装置１の持つ部分秘密鍵を不正に取得した攻撃者装置２１が、分散署名生成手続きにおいて、何らかの方法で第三者機関装置３に対する本人認証を通過することによって署名者装置１になりすまし、分散署名を生成する。
【０１９５】
Ｃ．署名者装置１の持つ部分秘密鍵は漏洩しない一方で、第三者機関装置３の持つ部分秘密鍵が漏洩する場合。この場合、第三者機関装置３の持つ部分秘密鍵を不正に取得した攻撃者装置２１が、分散署名生成手続きにおいて、何らかの方法で署名者装置１に対する第三者機関認証を通過することによって第三者機関装置３になりすまし、分散署名を生成する。
【０１９６】
Ｄ．署名者装置１の持つ部分秘密鍵は漏洩することがなく、かつ第三者機関装置３の持つ部分秘密鍵も漏洩することがない場合。この場合、攻撃者装置２１は秘密鍵を取得することなく異なる秘密鍵を用いてディジタル署名を生成する。
【０１９７】
Ａ乃至Ｄの各場合に署名の非生成証明がどのように実現されるかについて、以下に示す表１を参照しながら詳細に述べる。
【０１９８】
【表１】
2004193684.tif 000003
まず、場合Ａについては、さらに詳細には次の４つの場合があり得る。
【０１９９】
Ａ−１．自身が持つ部分秘密鍵の漏洩を検知した第三者機関装置３がその部分秘密鍵を用いた署名要求には応じない場合。
【０２００】
この場合は、正当な方法によらずに、署名検証に合格し、かつ第三者機関装置３に署名ログが残るように署名付きメッセージが生成されることはありえない。したがって、ディジタル署名の真正性判定の手順（図１２を参照）に基づいた真正性判定が行われる場合、その対象となる署名付きメッセージは不正な方法で生成されたものであると判定される。具体的には、図１２のステップＳ８０３あるいはＳ８０５において、真正性判定の対象となる署名付きメッセージは不正と判定され（ステップＳ８０４あるいはＳ８０６での判定に対応）、ディジタル署名の非生成証明が成立する（○）。
【０２０１】
Ａ−２．第三者機関装置３において自身の持つ部分秘密鍵の漏洩が検知されず、署名者装置１においては、自身の持つ部分秘密鍵の漏洩が検知され、第三者機関装置３に対してその部分秘密鍵に対応する秘密鍵の失効を通知する場合。
【０２０２】
この場合は、第三者機関装置３が署名者装置１から失効通知を受信した後、その第三者機関装置３に対して当該部分秘密鍵を用いた署名要求が届いたとき、第三者機関装置３は失効通知の記録からその部分秘密鍵に対応する秘密鍵が失効していることを検知し、署名要求には応じないことになるので、正当な方法によらずに署名検証に合格し、なおかつ第三者機関装置３の署名ログが残るように署名付きメッセージが生成されることはありえない。したがって、ディジタル署名の真正性判定においては、対象となる署名付きメッセージが不正な方法で生成されたものである他はない。すなわち、図１２のステップＳ８０３あるいはＳ８０５において、調停の対象となる署名付きメッセージは不正と判定され（ステップＳ８０４あるいはＳ８０６での判定に対応）、ディジタル署名の非生成証明が成立する（○）。
【０２０３】
Ａ−３．第三者機関装置３において自身の持つ部分秘密鍵の漏洩が検知されず、署名者装置１においては、自身の持つ部分秘密鍵の漏洩が検知されるが、当該秘密鍵の失効を第三者機関装置３に通知しない場合。
【０２０４】
この場合は、「非生成証明の実現条件１」が満たされておらず、正当な方法によらずにディジタル署名が生成されたのにも関わらず、図１２の真正性判定処理において不正な署名と判定されないことがありえる（図２０の場合３０２に該当）。具体的には、図１２のステップＳ８０３においてＹｅｓと判定され、さらにステップＳ８０５でもＹｅｓと判定される可能性がある。すなわち、不正な方法でディジタル署名が生成されたにもかかわらず、そのディジタル署名の非生成証明を行うことができないこともあり得る（○または×）。
【０２０５】
Ａ−４．第三者機関装置３において自身の持つ部分秘密鍵の漏洩が検知されず、署名者装置１においても自身の持つ部分秘密鍵の漏洩が検知されない場合。攻撃者装置２１が暗号ブレーク等の何らかの方法により、署名者装置１や第三者機関装置３に知られることなく秘密鍵の全体を取得する状況もこの場合に含まれる。
【０２０６】
この場合も、「非生成証明の実現条件１」が満たされておらず、正当な方法によらずにディジタル署名が生成されたのにも関わらず、図１２の真正性判定処理において不正と判定されないことが起こる可能性があり（図２０の場合３０２に該当）、非生成証明が実現されないこともある（○または×）。このことが起こる具体的な真正性判定処理の流れは、上記Ａ−３と同様である。
【０２０７】
次に、場合Ｂについて説明する。場合Ｂにおいては、より詳細には次の３つの場合があり得る。
【０２０８】
Ｂ−１．署名者装置１においては、自身の持つ部分秘密鍵の漏洩が検知きれ、その部分秘密鍵に対応する秘密鍵の失効を第三者機関装置３に通知する場合。
【０２０９】
この場合は、第三者機関装置３が失効通知を受信した後においては、第三者機関装置３に対して、当該部分秘密鍵を用いた署名要求が届いたとき、第三者機関装置３は失効通知の記録からその部分秘密鍵に対応する秘密鍵が失効していることを検知し、署名要求には応じないことになる。よって、正当な方法によらずに、署名検証に合格する署名付きメッセージが生成されることはありえない。したがって、ディジタル署名の真正性についての調停手続きが行われる場合、調停の対象となる署名付きメッセージは不正な方法で生成されたものである他はない。具体的には、図１２のステップＳ８０３において、調停の対象となる署名付きメッセージは不正と判定され（ステップＳ８０４の判定に相当）、署名の非生成証明が成立する（○）。
【０２１０】
Ｂ−２．署名者装置１で自身の持つ部分秘密鍵の漏洩が検知されたにも関わらず、第三者機関装置３に対して対応する秘密鍵の失効を通知しない場合。
【０２１１】
この場合は、「非生成証明の実現条件２」が満たされておらず、正当な方法によらずにディジタル署名が生成されたのにもかかわらず、図１２に示す真正性判定処理において不正なディジタル署名と判定されないことがあり得る（図２０の場合３０２に該当）。
【０２１２】
具体的には、署名者装置１の持つ部分秘密鍵を不正に取得した攻撃者装置２１が、分散署名生成手続きにおいて、何らかの方法で第三者機関装置３に対する本人認証を通過することによって本人になりすまし、分散署名を生成することが可能である。この場合、図１２のステップＳ８０３においてＹｅｓと判定され、さらにステップＳ８０５の判定でもＹｅｓと判定されることになる。すなわち、不正な方法でディジタル署名が生成されたにもかかわらず、署名の非生成証明を行うことができないこともある（○または×）。
【０２１３】
Ｂ−３．署名者装置１においても自身の持つ部分秘密鍵の漏洩が検知されない場合。
【０２１４】
この場合は、「非生成証明の実現条件２」が満たされておらず、正当な方法によらずに署名が生成されたのにもかかわらず、図１２の調停手続きにおいて不正な署名と判定されないことがありえる。具体的には場合（Ｂ−２）で述べたのと同様の手順により、不正な方法でディジタル署名が生成されたにもかかわらず、署名の非生成証明を行うことができないことがあり得る（○または×）。
【０２１５】
第３に、場合Ｃについて説明する。詳細には次の２つの場合がありえる。
【０２１６】
Ｃ−１．第三者機関装置３において自身の持つ部分秘密鍵の漏洩が検知され、それ以後はその部分秘密鍵を用いた署名要求には応じない場合。
【０２１７】
この場合、第三者機関装置３の持つ部分秘密鍵を不正に取得した攻撃者装置２１が、分散署名生成手続きにおいて、何らかの方法で署名者装置１に対する第三者機関認証を通過することによって第三者機関装置３になりすまし、分散署名を生成することが可能である。しかし、第三者機関装置３はその部分秘密鍵を用いた署名要求には応じないため、第三者機関装置３の署名ログに当該の署名ログを残すことは不可能である。したがって、ディジタル署名の真正性判定処理が行われる場合、判定の対象となる署名付きメッセージは、図１２のステップＳ８０３においてＹｅｓと判定されることは可能であるが、ステップＳ８０５においてＮｏと判定され（ステップＳ８０６の判定に対応）、不正なディジタル署名と判定される。この結果、非生成証明が成立する（○）。
【０２１８】
Ｃ−２．第三者機関装置３において自身の持つ部分秘密鍵の漏洩が検知されない場合。
【０２１９】
この場合にも前述したＣ−１における場合と同様に、第三者機関装置３の持つ部分秘密鍵を不正に取得した攻撃者装置２１が、分散署名生成手続きにおいて、何らかの方法で署名者装置１に対する第三者機関認証を通過することにより第三者機関装置３になりすまし、分散署名を生成することが可能である。このように生成された署名付きメッセージの真正性を判定する場合には、場合Ｃ−１と同様に、その署名付きメッセージは不正な署名と判定され、非生成証明が成立する（○）。
【０２２０】
なお、この場合には、署名者装置１が分散署名の要求を第三者機関装置３に送信したとき、第三者機関装置３はそれに応じるため、秘密鍵の一部漏洩にもかかわらず、正当な分散署名手続きによって署名付きメッセージが生成されることもあり得る。このように生成された署名付きメッセージが真正性判定装置７に持ち込まれたときには、その署名付きメッセージは正当なものと判定され、否認の防止が実現されることになる。
【０２２１】
最後に、場合Ｄについて説明する。
この場合、不正に生成された署名付きメッセージについて、ディジタル署名の真正性判定処理が行われる場合、図１２のステップＳ８０３においてＮｏと判定され、そのディジタル署名は不正なものと判定される（ステップＳ８０４の判定に対応）。よってディジタル署名の非生成証明が実現される（図２０の場合２０１に該当、○）。
【０２２２】
以上をまとめると、ディジタル署名の非生成証明が実現されないことが起こり得るのは、場合Ａ−３，場合Ａ−４，場合Ｂ−２，場合Ｂ−３において、不正に署名者装置１の部分秘密鍵を入手した攻撃者装置２１が第三者機関装置３における本人認証を通過するときである。
【０２２３】
このうち、場合Ａ−３およびＡ−４においてディジタル署名の非生成証明が実現不可能となるためには、第三者機関装置３が持つ部分秘密鍵が自身に検知されることなく漏洩し、かつ署名者装置１の持つ部分秘密鍵が漏洩しながら署名者装置１がそれを通知することなく、さらに不正に署名者装置１の部分秘密鍵を入手した攻撃者装置２１が第三者機関装置３における本人認証を通過する必要がある。
【０２２４】
場合Ｂ−２およびＢ−３においてディジタル署名の非生成証明が実現不可能となるためには、署名者装置１の部分秘密鍵が漏洩しながら、対応する秘密鍵の失効通知が第三者機関装置３に対してなされず、かつ不正に署名者装置１の部分秘密鍵を入手した攻撃者装置２１が第三者機関装置３における本人認証を通過する必要がある。
【０２２５】
ここで、ディジタル署名の真正性について紛争が起こる場合の一例として、真正性判定装置７による判定によってディジタル署名が不正に偽造されたと判定され、その結果、秘密鍵の所有者の非生成証明があると判定される場合について具体的に説明する。
【０２２６】
図１３は、真正性が問題となる署名付メッセージが攻撃者装置２１によって偽造される場合の当該署名付きメッセージの生成履歴を示す処理フロー図である。
【０２２７】
同図においては、時刻ｔｂで署名者装置１の保持する部分秘密鍵ＳＫＡＴ（Ａ）が漏洩したとする（ステップＳ９０２）。
【０２２８】
署名者装置１はこの漏洩を検知し、秘密鍵ＳＫＡＴの失効を直ちに第三者機関装置３に通知するものとする（ステップＳ９０３）。
【０２２９】
その後、ｔｃ＞ｔｂであるような時刻ｔｃにおいて、攻撃者装置２１はｔａ ＜ｔｂとなるような時刻値ｔａを署名時刻として含むような署名付きメッセージ  ＳｉｇＭｓｇ（ＳＫ’ＡＴ，  ｈ（Ｍ）‖ｔａ）  を偽造したものとする（ステップＳ９０４）。
【０２３０】
なお、図１３のステップＳ９０１に「？」が付されているのは、この時刻ｔａ  において署名されたとされる署名付メッセージ（ＳｉｇＭｓｇ（ＳＫＡＴ，  ｈ（Ｍ）‖ｔａ）  と記載）が真正であるか否かが問題となっていることを意味している。
【０２３１】
攻撃者装置２１は、上述した生成履歴を経て作成した署名付メッセージＳｉｇＭｓｇ（ＳＫ’ＡＴ，  ｈ（Ｍ）‖ｔａ）  を真正性判定装置７へ送信する。
以後の処理については、再び図１２のフローチャート図を用いて説明する。
【０２３２】
ステップＳ８０１でディジタル署名の所持者（実際には攻撃者装置２１）から署名付メッセージ  ＳｉｇＭｓｇ（ＳＫ’ＡＴ，  ｈ（Ｍ）‖ｔａ）  を受信した真正性判定装置７は、続くステップＳ８０２において、受信した署名付メッセージに含まれる秘密鍵ＳＫＡＴに対応する公開鍵ＰＫＡＴ  を抽出する。
【０２３３】
その後、真正性判定装置７は、署名付メッセージＳｉｇＭｓｇ（ＳＫ’ＡＴ，  ｈ（Ｍ）‖ｔａ  ）  と、その署名付きメッセージ  ＳｉｇＭｓｇ（ＳＫ’ＡＴ  ，  ｈ（Ｍ）‖ｔａ  ）  から抽出した公開鍵ＰＫＡＴとを入力として、署名検証演算  Ｖｅｒｉ（ＰＫＡＴ，  ＳｉｇＭｓｇ（ＳＫ’ＡＴ，  ｈ（Ｍ）‖ｔａ））を実行し、その結果が真正（Ｙｅｓ）であるか不正（Ｎｏ）であるかに応じて次のステップを選択する（ステップＳ８０３）。
【０２３４】
このステップＳ８０３の署名検証の結果がＹｅｓとなるためには、メッセージＭに対して、署名者装置１と第三者機関装置３を含む複数の部分署名を行う装置が、部分秘密鍵ＳＫＡＴ（Ａ）とＳＫＡＴ（Ｔ）を含む複数の部分秘密鍵を用いて分散署名する必要がある。ところが、図１３に示す生成履歴を有する署名付メッセージ  ＳｉｇＭｓｇ（ＳＫ’ＡＴ，  ｈ（Ｍ）‖ｔａ）  の場合には、第三者機関装置３は自身が担当する分散署名を実行していないので、ステップＳ８０３の署名検証の結果がＹｅｓとなることはありえない。したがって、署名付メッセージ
ＳｉｇＭｓｇ（ＳＫ’ＡＴ，  ｈ（Ｍ）‖ｔａ）  は不正と判定され、署名者装置１に対する署名の非生成証明が成立する。
【０２３５】
以上説明した本発明の第１の実施形態によれば、ある秘密鍵を用いたディジタル署名を生成するには、その秘密鍵の本来の持主である署名者（装置）と第三者機関（装置）とが協働しなければ生成することのできないディジタル署名の生成方法を実現できる。
【０２３６】
また、本実施形態によれば、署名者装置が署名することなく、その署名者装置の保持する秘密鍵を用いたディジタル署名が生成された場合には、第三者機関装置に蓄積される署名ログ情報からその事実が判明するようなディジタル署名の生成システムを提供することにより、後刻、紛争等が生じてそのディジタル署名の真正性が問題となったとき、署名者（装置）に対して非生成証明を実現することができる。
【０２３７】
この意味で、上述した従来技術とは、第三者機関装置３が正常に動作し、部分秘密鍵が漏洩した場合には漏洩が検知され、対応する秘密鍵の失効が通知される限り、署名の真偽が問題となる状況を不可能とし、秘密鍵の本来の所有者である署名者の非生成証明を容易に実現できる点が顕著に異なっている。
【０２３８】
（第２の実施形態）
図１４は、本発明の第２の実施形態に係るシステムの全体構成を示す説明図である。同図に示すように、本実施形態において想定されるシステムは、上記第１の実施形態と同様の装置に加え、上位機関としての時刻認証機関（ＴＳＡ：Ｔｉｍｅ−Ｓｔａｍｐ  Ａｕｔｈｏｒｉｔｙ）に設けられる時刻認証機関装置９が通信ネットワーク４１を介して相互に接続されている。この時刻認証機関装置９が電子的な装置から構成されていることは、他の装置と同様である。
【０２３９】
なお、秘密鍵の分散生成については、上記第１の実施形態と同様に行われるものとする。すなわち、署名者装置１は部分秘密鍵ＳＫＡＴ（Ａ）を、第三者機関装置３１，  ３２，・・・，  ３ｋ（ｋは正の整数）は、部分秘密鍵ＳＫＡＴ（Ｔ１），・・・，ＳＫＡＴ  （Ｔｋ）をそれぞれ生成する。秘密鍵の全体が、
ＳＫＡＴ＝ＳＫＡＴ（Ａ）＋ＳＫＡＴ（Ｔ１  ）＋…＋ＳＫＡＴ（Ｔｋ  ）であることも第１の実施形態と同様である。
【０２４０】
また、本実施形態においても、ディジタル署名の対象となるメッセージＭに対して、秘密鍵ＳＫを用いて署名した結果を、第１の実施形態と同様の記号「Ｓｉｇ」を用いて  Ｓｉｇ（ＳＫ，  ｈ（Ｍ））  などと記載する。ここで、ｈはハッシュ関数を表す。さらに、Ｍと  Ｓｉｇ（ＳＫ，  ｈ（Ｍ））  を連接して得られる署名付メッセージについても、記号「ＳｉｇＭｓｇ」を用いて  ＳｉｇＭｓｇ（ＳＫ，  ｈ（Ｍ））  などと記載する。
【０２４１】
＜分散署名＞
図１５は、本発明の第２の実施形態に係る分散署名生成方法の処理内容を示す処理フロー図である。ここでも、最初に一つの第三者機関装置３からシステムが構成される場合について説明する。
【０２４２】
署名者装置１および第三者機関装置３は、（部分秘密鍵、公開鍵）の組として、（ＳＫＡＴ（Ａ）、ＰＫＡＴ）および（ＳＫＡＴ（Ｔ）、ＰＫＡＴ）をそれぞれ保持する（ステップＳ１００１およびＳ１００２）。
【０２４３】
署名者装置１は、署名対象のメッセージのハッシュ値ｈ（Ｍ）を用いて部分署名  Ｓｉｇ（ＳＫＡＴ（Ａ），ｈ（Ｍ））  を生成する（ステップＳ１００３）。
【０２４４】
次に、署名者装置１と第三者機関装置３は、相互にエンティティ認証を行う（ステップＳ１００４）。即ち、署名者装置１に対する第三者機関装置３による本人認証および第三者機関装置３に対する署名者装置１による第三者機関認証を行う。
【０２４５】
その後、署名者装置１は、部分署名  Ｓｉｇ（ＳＫＡＴ（Ａ），ｈ（Ｍ））  と署名対象メッセージのハッシュ値ｈ（Ｍ）を第三者機関装置３に送付する（ステップＳ１００５）。
【０２４６】
一方、第三者機関装置３は、受信したハッシュ値ｈ（Ｍ）に対して自身の保持する部分秘密鍵ＳＫＡＴ（Ｔ）を作用させ、部分署名  Ｓｉｇ（ＳＫＡＴ（Ｔ），ｈ（Ｍ））  を生成し（ステップＳ１００６）、署名者装置１から送付された署名者装置１の部分署名  Ｓｉｇ（ＳＫＡＴ（Ａ），ｈ（Ｍ））  と自身の生成した部分署名  Ｓｉｇ（ＳＫＡＴ（Ｔ），ｈ（Ｍ））  を組み合わせることにより、全体署名  Ｓｉｇ（ＳＫＡＴ，ｈ（Ｍ））  を生成する（ステップＳ１００７）。
【０２４７】
続くステップＳ１００８において、第三者機関装置３は、生成した全体署名  Ｓｉｇ（ＳＫＡＴ，ｈ（Ｍ））  のハッシュ値であるｈ（Ｓｉｇ（ＳＫＡＴ，ｈ（Ｍ）））に対する時刻証明書要求ＴＳＴＲｅｑ（ｈ（Ｓｉｇ（ＳＫＡＴ，  ｈ（Ｍ））））  を時刻認証機関装置９に送信する（ステップＳ１００８）。
【０２４８】
時刻証明書要求  ＴＳＴＲｅｑ（ｈ（Ｓｉｇ（ＳＫＡＴ，ｈ（Ｍ））））  を受信した時刻認証機関装置９は、受信時刻ｔを添付した時刻証明書  ＴＳＴ（ｈ（Ｓｉｇ（ＳＫＡＴ，Ｍ）），  ｔ）  を第三者機関装置３に返送する（ステップＳ１００９）。
【０２４９】
この時刻証明書  ＴＳＴ（ｈ（Ｓｉｇ（ＳＫＡＴ，Ｍ）），  ｔ）  を受信した第三者機関装置３は、全体署名  Ｓｉｇ（ＳＫＡＴ，ｈ（Ｍ））  と時刻証明書  ＴＳＴ（ｈ（Ｓｉｇ（ＳＫＡＴ，Ｍ）），  ｔ）  を署名者装置１に送信する（ステップＳ１０１０）。
【０２５０】
署名者装置１は、後刻の利用のために、受信した全体署名  Ｓｉｇ（ＳＫＡＴ，ｈ（Ｍ））  を記憶部１５に保存するか、またはさらに別の第三者にこれを発行する等の方法で利用する（ステップＳ１０１１）。
【０２５１】
他方、第三者機関装置３は、署名ログ  （ｈ（Ｍ），  ｔ，  Ｓｉｇ（ＳＫＡＴ（Ｔ），  ｈ（Ｍ））  と時刻証明書  ＴＳＴ（ｈ（Ｓｉｇ（ＳＫＡＴ，Ｍ）），  ｔ）  を記憶部３５に保存する（ステップＳ１０１２）。
【０２５２】
上述した第１の実施形態におけるディジタル署名の分散生成処理においては、ディジタル署名の対象となるメッセージのハッシュ値ｈ（Ｍ）に時刻ｔを連接し、その結果であるｈ（Ｍ）‖ｔに対して、ディジタル署名を実行することにより署名時刻とディジタル署名を関連づけていた。これに対して、本実施形態においては、ディジタル署名に対して時刻証明書を取得することができるため、署名時刻とディジタル署名を関連づけるために，ｈ（Ｍ）‖ｔに対してディジタル署名を実行する必要はなく、単にハッシュ値ｈ（Ｍ）に対してディジタル署名を実行すればよい。
【０２５３】
なお、第三者機関装置が２つ以上のｋ個あるときには、予め第三者機関装置３１，  ３２，・・・，  ３ｋの中から代表となる第三者機関装置を選んでおき、この選ばれた第三者機関装置が上記同様の処理を実行する。その際には、以下のような修正を行う。
【０２５４】
まず、ステップＳ１００５において、署名者装置１は第三者機関装置３１  ，…，３ｋ  の各々と相互にエンティティ認証を行う。
【０２５５】
続いて、ステップＳ１００５において、Ｓｉｇ（ＳＫＡＴ（Ａ），  ｈ（Ｍ））  とｈ（Ｍ）を代表第三者機関装置に送信後、それ以外の第三者機関装置に向けてｈ（Ｍ）のみを送信する。ｈ（Ｍ）を受信した代表第三者機関装置以外の第三者機関装置は、部分署名  Ｓｉｇ（ＳＫＡＴ（Ｔ），  ｈ（Ｍ））  を生成し、代表第三者機関装置に送信する。
【０２５６】
ステップＳ１００７では、代表第三者機関装置が、署名者装置１から送付された部分署名  Ｓｉｇ（ＳＫＡＴ（Ａ），  ｈ（Ｍ））  と自身を含めて複数の第三者機関装置が生成した部分署名  Ｓｉｇ（ＳＫＡＴ（Ｔｉ），  ｈ（Ｍ））  を組み合わせることによって全体署名
Ｓｉｇ（ＳＫＡＴ，  ｈ（Ｍ））  を生成する。ここでｉ＝１，…，ｋである。
【０２５７】
ステップＳ１００８とＳ１００９は各第三者機関装置が行う。
【０２５８】
その後、代表第三者機関装置が、全体署名Ｓｉｇ（ＳＫＡＴ，  ｈ（Ｍ））  および時刻証明書ＴＳＴ（ｈ（Ｓｉｇ（ＳＫＡＴ，Ｍ）），  ｔ）  を署名者装置１および他の第三者機関装置に向けて送信する。
【０２５９】
この全体署名  Ｓｉｇ（ＳＫＡＴ，  ｈ（Ｍ））  と時刻証明書  ＴＳＴ（ｈ（Ｓｉｇ（ＳＫＡＴ，Ｍ）），  ｔ）  を受信した代表以外の第三者機関装置は、署名ログ
（ｈ（Ｍ），  ｔ，  Ｓｉｇ（ＳＫＡＴ（Ｔｉ），  ｈ（Ｍ））  と時刻証明書  ＴＳＴ（ｈ（Ｓｉｇ（ＳＫＡＴ，Ｍ）），  ｔ）  を保存する（ステップＳ１０１２に相当）。
【０２６０】
本実施形態に係る分散署名生成方法は、上記第１の実施形態と同様の効果を奏することに加えて、時刻については専門の時刻認証機関に証明を依頼することにより、時刻の信頼性、正確さを向上させることができる上、分散署名を行う複数のエンティティが用いる時計が互いに誤差を生じていることにより、ディジタル署名が生成できないという状況を回避することができる。
【０２６１】
＜秘密鍵の失効＞
次に、署名者装置１と第三者機関装置３が、それぞれ部分秘密鍵ＳＫＡＴ（Ａ）とＳＫＡＴ（Ｔ）を分散して保持した後、署名者装置１と第三者機関装置３のいずれかが秘密鍵の漏洩を検知したときに実行する秘密鍵の失効処理について説明する。
【０２６２】
図１６は、署名者装置１が秘密鍵の漏洩を検知した場合の失効処理の流れを説明する処理フロー図である。
【０２６３】
ステップＳ１１０１およびＳ１１０２の処理は、各々の装置が部分秘密鍵と公開鍵を所定の鍵生成法によって生成、保持するステップを表している。
【０２６４】
その後、署名者装置１が自身の持つ部分秘密鍵ＳＫＡＴ（Ａ）の漏洩を検知したとする（ステップＳ１１０３）。
【０２６５】
このとき、署名者装置１は、直ちに秘密鍵ＳＫＡＴの失効を第三者機関装置３に通知する（ステップＳ１１０４）。
【０２６６】
この通知を受信した第三者機関装置３は、その秘密鍵ＳＫＡＴと対をなす公開鍵ＰＫＡＴの失効を、公開鍵証明書を発行した認証機関装置５に要求する（ステップＳ１１０５）。
【０２６７】
第三者機関装置３からの失効要求を受信した認証機関装置５は、失効要求を受けた時刻ｔ１を添付して公開鍵ＰＫＡＴの失効を記録し（ステップＳ１１０６）、その失効要求に対する応答（ＰＫＡＴの証明書失効応答）として、時刻ｔ１の付いたＰＫＡＴの失効通知の受取証明を第三者機関装置３に送付する（ステップＳ１１０７）。
【０２６８】
その後、第三者機関装置３は、受信したＰＫＡＴの失効通知の受取証明を署名者装置１に転送し（ステップＳ１１０８）、そのＰＫＡＴの失効通知の受取証明を記憶部３５に保存する（ステップＳ１１０９）。
【０２６９】
ＰＫＡＴ  の失効通知の受取証明を第三者機関装置３から転送された署名者装置１も、受信したＰＫＡＴの失効通知の受取証明を記憶部１５に保存する（ステップＳ１１１０）。
【０２７０】
尚、公開鍵証明書の失効要求とそれに対する証明書失効応答の形式については、Ｒ．  Ｈｏｕｓｌｅｙ  ｅｔ  ａｌ．，  ＲＦＣ２４５９  「Ｉｎｔｅｒｎｅｔ  Ｘ．５０９  Ｐｕｂｌｉｃ  ｋｅｙ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  Ｃｅｒｔｉｆｉｃａｔｅ  ａｎｄ  ＣＲＬ  Ｐｒｏｆｉｌｅ」で定められている標準に従うことにしてもよい。
【０２７１】
第三者機関装置が複数ある場合には、その各々が図１６における第三者機関装置３の処理を実行する。
【０２７２】
図１７は、第三者機関装置３が秘密鍵の漏洩を検知した場合の失効処理の流れを説明する処理フロー図である。
【０２７３】
ステップＳ１２０１およびＳ１２０２は、図１６におけるステップＳ１１０１およびＳ１１０２とそれぞれ同じ処理である。
【０２７４】
その後、第三者機関装置３が、自身の持つ部分秘密鍵ＳＫＡＴ（Ｔ）の漏洩を検知したとする（ステップＳ１２０３）。
【０２７５】
部分秘密鍵ＳＫＡＴ（Ｔ）の漏洩を検知した第三者機関装置３は、直ちに秘密鍵ＳＫＡＴと対をなす公開鍵ＰＫＡＴ  の公開鍵証明書の失効を認証機関装置５に対して要求する（ステップＳ１２０４）。
【０２７６】
以後のステップＳ１２０５、Ｓ１２０６、・・・、Ｓ１２０９の処理については、図１６を用いて説明した前述のケースと同じなので、説明を省略する。
【０２７７】
この場合にも、第三者機関装置が複数ある場合には、その各々が図１７における第三者機関装置３の処理を実行する。
【０２７８】
＜署名の真正性判定＞
次に、ディジタル署名が上述したいずれかの分散署名方法によって生成された場合に、そのディジタル署名の真正性を判定する真正性判定装置７の処理について説明する。
【０２７９】
図１８は、真正性判定装置７が行うディジタル署名の真正性判定処理の流れを説明するフローチャート図である。
【０２８０】
真正性判定装置７は、ディジタル署名の所持者から署名付メッセージ
ＳｉｇＭｓｇ（ＳＫ’ＡＴ，ｈ（Ｍ））  と公開鍵証明書  Ｃｅｒｔ（ＰＫＡＴ）を受信する（ステップＳ１３０１）。
【０２８１】
その後、受信した公開鍵証明書Ｃｅｒｔ（ＰＫＡＴ）  から公開鍵ＰＫＡＴを鍵抽出部７１で抽出する（ステップＳ１３０２）。
【０２８２】
次のステップＳ１３０３では、ステップＳ１３０２で抽出した公開鍵ＰＫＡＴ  と、ステップＳ１３０１で受信した署名付メッセージ  ＳｉｇＭｓｇ（ＳＫ’ＡＴ  ，ｈ（Ｍ））  を入カとして、署名検証演算  Ｖｅｒｉ（ＰＫＡＴ，ＳｉｇＭｓｇ（ＳＫ’ＡＴ，ｈ（Ｍ）））  を真正性判定部７２において実行する。
【０２８３】
ここでの署名検証演算  Ｖｅｒｉ（ＰＫＡＴ，ＳｉｇＭｓｇ（ＳＫ’ＡＴ，ｈ（Ｍ）））  の概要ならびに出力は、第１の実施形態における署名検証演算と本質的に同じである。このステップにおいて、署名検証演算の出力が不正（ＮＯ）のときは、ステップＳ１３０４に進み、署名付きメッセージ  ＳｉｇＭｓｇ（ＳＫ’ＡＴ，ｈ（Ｍ））  を不正なものと判定する。他方、出力結果が真正（ＹＥＳ）のときはステップＳ１３０５へ進む。
【０２８４】
ステップＳ１３０５では、署名検証演算
Ｖｅｒｉ（ＰＫＡＴ，ＳｉｇＭｓｇ（ＳＫ’ＡＴ，ｈ（Ｍ）））  を実行したディジタル署名の署名ログおよび時刻証明書の存否について第三者機関装置３に照会し、それらの署名ログと時刻証明書が共に存在する場合以外（ＮＯ）のときは、署名付きメッセージ
ＳｉｇＭｓｇ（ＳＫ’ＡＴ  ，ｈ（Ｍ））  を不正なものと判定する（ステップＳ１３０６）。
【０２８５】
ステップＳ１３０５において署名ログと時刻証明書が共に第三者機関装置３に存在したとき（ＹＥＳ）には、ステップＳ１３０７に進んで、その時刻証明書と署名ログの情報が矛盾なく合致しているか否かの判定を行う。
【０２８６】
ここでの判定は、署名ログを  （ｈ（Ｍ），  ｔ，  Ｓｉｇ（ＳＫＡＴ（Ｔ），  ｈ（Ｍ）））、時刻証明書をＴＳＴ（ｈ（Ｓｉｇ（ＳＫＡＴ，Ｍ），  ｔ）、時刻認証機関装置９の時刻証明書発行に用いられる秘密鍵に対応する公開鍵をＰＫＴＳＡ  とするとき、その時刻証明書
ＴＳＴ（ｈ（Ｓｉｇ（ＳＫＡＴ，Ｍ），  ｔ）  に含まれるディジタル署名に対してＰＫＴＳＡを作用させて復元した署名対象のハッシュ値が、ｈ（Ｓｉｇ（ＳＫＡＴ（Ｔ），  ｈ（Ｍ）））  と時刻ｔを連接したもののハッシュ値に等しいか否かの判定を行う。この判定の結果がＮｏのときは、署名付きメッセージ  ＳｉｇＭｓｇ（ＳＫ’ＡＴ  ，ｈ（Ｍ））  を不正なものと判定する（ステップＳ１３０８）。
【０２８７】
他方、Ｙｅｓのときは、署名ログ  （ｈ（Ｍ），  ｔ，  Ｓｉｇ（ＳＫＡＴ（Ｔ），  ｈ（Ｍ）））  に含まれる署名時刻ｔを抽出し（ステップＳ１３０９）、公開鍵証明書  Ｃｅｒｔ（ＰＫＡＴ）  を発行した認証機関装置５に対し、時刻ｔにおいて公開鍵ＰＫＡＴ  が有効だったか否かを照会する（ステップＳ１３１０）。
【０２８８】
この照会に対して、認証機関装置５からＹｅｓの回答を得た場合には、署名付メッセージ  ＳｉｇＭｓｇ（ＳＫ’ＡＴ（Ｔ），  ｈ（Ｍ））  の署名が真正である可能性が高いと判定する（ステップＳ１３１１（ＹＥＳ）、Ｓ１３１３）。他方、Ｎｏの回答を得た場合には、署名付メッセージ  ＳｉｇＭｓｇ（ＳＫ’ＡＴ（Ｔ），  ｈ（Ｍ））  の署名を不正なものと判定する（ステップＳ１３１１（ＮＯ）、Ｓ１３１２）。
【０２８９】
以上の真正性判定方法を用いれば、上記第１の実施形態と同様に、署名の真正性を推定したり、紛争時の調停等の場合、さらに関連情報を収集することによって調停を進めていったりすることができる。
【０２９０】
なお、第三者機関装置が複数ある場合には、ステップＳ１３０５において、各第三者機関装置３１  ，…，３ｋの各々が署名ログおよび時刻証明書の存否を検査するものとする。
【０２９１】
またステップＳ１３０６においては、第三者機関装置３１  ，…，３ｋの各々に対して、記録されていた署名ログと時刻証明書の情報が矛盾なく合致しているか否かを検査するものとする。
【０２９２】
なお、ディジタル署名についてのサービス提供を業務とする第三者機関装置３が時刻認証機関装置９を用いる場合には、個人を含む一般的なエンティティとしての署名者装置１が時刻認証機関装置９を用いる場合（図１９を参照して説明した場合）とは異なり、時刻認証機関装置９によって発行される時刻証明書の取得をサービス約款等に含めることにより、ディジタル署名に際して時刻証明書の取得が義務化されたのと同様の効果を得ることができる。
【０２９３】
この場合に、正規の手段以外で生成された不正なディジタル署名についての真正性判定が必要となったとき（例えば紛争が起こった場合等）には、上記第１の実施形態で述べた条件（ＴＴＰ非不正の前提１、２、３、並びに非生成証明の実現条件１、２）の下で署名者装置１に対してディジタル署名の非生成証明を提供することが可能となる。
【０２９４】
さらに、部分秘密鍵が漏洩した場合には、図１６または図１７に示す手順により、その部分秘密鍵を含む秘密鍵の全体と対をなす公開鍵の失効要求を認証機関装置５に通知することにより、前述したＴＴＰ非不正の前提１，２，３の一部を省略してもディジタル署名の非生成証明を実現することが可能となる。より具体的には、図１８に示した真正性判定処理を採用することにより、ＴＴＰ非不正の前提１および２に記載された内容のうち、「部分秘密鍵の失効が記録されている場合には、その部分秘密鍵による署名要求には応じないものとする」という部分、並びにＴＴＰ非不正の前提３を省略することができる。これは、ディジタル署名用の秘密鍵失効後に、その秘密鍵を用いたディジタル署名がなされた場合には、そのディジタル署名に係る時刻証明書と、認証機関装置５に記録・保存されている公開鍵証明書の失効記録とを照合することにより、そのディジタル署名が秘密鍵の失効後になされたものであるか否かを判定できるためである。
【０２９５】
以上説明した本発明の第２の実施形態によれば、上述した第１の実施形態と同様の効果を得ることができる。
【０２９６】
加えて、本実施形態によれば、時刻情報については専門の時刻認証機関の証明を用いることができるので、時刻情報の信頼性や正確さを向上させることが可能になる。これにより、分散署名を行う複数のエンティティが用いる時計の誤差によってディジタル署名の生成が不可能になるという事態を回避することも可能になる。
【０２９７】
なお、本実施形態においても、上記第１の実施形態と同様にＲＳＡ公開鍵暗号方式を用いることを前提としているが、それ以外のさまざまな公開鍵暗号方式を採用した場合にも同様の効果を得ることができるのはいうまでもない。
【０２９８】
【発明の効果】
以上の説明からも明らかなように、本発明によれば、秘密鍵を用いたディジタル署名を生成するに際して、秘密鍵の本来の持主である署名者が署名することなくその秘密鍵からディジタル署名が生成された場合には、第三者機関の署名ログ情報からその不正な事実を判明させるとともに、秘密鍵の本来の持主に対して署名の非生成証明を実現することのできる署名者装置におけるディジタル署名方法、第三者機関装置におけるディジタル署名方法、ディジタル署名の真正性判定方法、署名者装置、第三者機関装置、ディジタル署名の真正性判定装置、署名者装置用ディジタル署名プログラム、第三者機関装置用ディジタル署名プログラム、ディジタル署名の真正性判定プログラム、およびプログラム記録媒体を提供することができる。
【０２９９】
これにより、偽造された不正なディジタル署名に対し、秘密鍵の本来の所有者が署名しなかったことの証明、即ち署名の非生成証明が可能となるだけでなく、真正なディジタル署名に対しては、秘密鍵の本来の所有者による否認を不可能にするという効果も得ることができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係るシステム全体の構成を示す説明図である。
【図２】署名者装置が有する機能の概略を示す機能ブロック図である。
【図３】第三者機関装置が有する機能の概略を示す機能ブロック図である。
【図４】真正性判定装置が有する機能の概略を示す機能ブロック図である。
【図５】秘密鍵の分散生成の第１の方法を示す処理フロー図である。
【図６】秘密鍵の分散生成の第２の方法を示す処理フロー図である。
【図７】本発明の第１の実施形態に係る分散署名生成方法（第１の方法）の処理内容を示す処理フロー図である。
【図８】本発明の第１の実施形態に係る分散署名生成方法（第２の方法）の処理内容を示す処理フロー図である。
【図９】本発明の第１の実施形態に係る分散署名生成方法（第３の方法）の処理内容を示す処理フロー図である。
【図１０】本発明の第１の実施形態において、署名者装置が秘密鍵の漏洩を検知した場合の失効処理の流れを説明する処理フロー図である。
【図１１】本発明の第１の実施形態において、第三者機関装置が秘密鍵の漏洩を検知した場合の失効処理の流れを説明する処理フロー図である。
【図１２】本発明の第１の実施形態において、真正性判定装置が行うディジタル署名の真正性判定処理の流れを説明するフローチャート図である。
【図１３】本発明の第１の実施形態において、真正性が問題となる署名付メッセージが攻撃者装置によって偽造される場合の生成履歴を示す処理フロー図である。
【図１４】本発明の第２の実施形態に係るシステム全体の構成を示す説明図である。
【図１５】本発明の第２の実施形態に係る分散署名生成方法の処理内容を示す処理フロー図である。
【図１６】本発明の第２の実施形態において、署名者装置が秘密鍵の漏洩を検知した場合の失効処理の流れを説明する処理フロー図である。
【図１７】本発明の第２の実施形態において、第三者機関装置が秘密鍵の漏洩を検知した場合の失効処理の流れを説明する処理フロー図である。
【図１８】本発明の第２の実施形態において、真正性判定装置が行うディジタル署名の真正性判定処理の流れを説明するフローチャート図である。
【図１９】ディジタル署名の非生成証明が実現されるシナリオの一例を示す処理フロー図である。
【図２０】ディジタル署名における否認防止とディジタル署名の非生成証明の関係を示す説明図である。
【符号の説明】
１  署名者装置
３、３１  ，３２  ，…，３ｋ  第三者機関装置
５  認証機関装置
７  真正性判定装置
９  時刻認証機関装置
１１、３１  鍵生成部
１２、３２  署名生成部
１３、３３  認証部
１４  メッセージ作成部
１５、３５、７３  記憶部
１６、３６、７４  送受信部
１７、３７、７５  入出力部
２１  攻撃者装置
３４  証明書要求作成部
４１  通信ネットワーク
７１  鍵抽出部
７２  真正性判定部
【図１】
2004193684.tif 000004
【図２】
2004193684.tif 000005
【図３】
2004193684.tif 000006
【図４】
2004193684.tif 000007
【図５】
2004193684.tif 000008
【図６】
2004193684.tif 000009
【図７】
2004193684.tif 000010
【図８】
2004193684.tif 000011
【図９】
2004193684.tif 000012
【図１０】
2004193684.tif 000013
【図１１】
2004193684.tif 000014
【図１２】
2004193684.tif 000015
【図１３】
2004193684.tif 000016
【図１４】
2004193684.tif 000017
【図１５】
2004193684.tif 000018
【図１６】
2004193684.tif 000019
【図１７】
2004193684.tif 000020
【図１８】
2004193684.tif 000021
【図１９】
2004193684.tif 000022
【図２０】
2004193684.tif 000023