(57)【要約】  予め設定されたマスタ秘密鍵情報とアプリケーションを識別するアプリケーション識別情報とに基づいて、アプリケーション識別情報に対応する秘密鍵情報を生成する、秘密鍵情報生成部２と、秘密鍵情報と署名対象であるメッセージ情報とに基づいて、メッセージ情報に対応する署名情報を生成する、署名情報生成部３と、秘密鍵情報又は署名情報を生成する過程において、マスタ秘密鍵情報、又は、秘密鍵情報、又は、それら両方を一時記憶する秘匿領域を有する、秘匿部４と、を有する署名処理装置１である。
2020039527.tif 000002
【特許請求の範囲】
【請求項１】
予め設定されたマスタ秘密鍵情報とアプリケーションを識別するアプリケーション識別情報とに基づいて、前記アプリケーション識別情報に対応する秘密鍵情報を生成する、秘密鍵情報生成手段と、
前記秘密鍵情報と署名対象であるメッセージ情報とに基づいて、前記メッセージ情報に対応する署名情報を生成する、署名情報生成手段と、
前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報、又は、前記秘密鍵情報、又は、それら両方を一時記憶する秘匿領域を有する、秘匿手段と、
を有する署名処理装置。
【請求項２】
請求項１に記載の署名処理装置であって、
前記秘匿手段は、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報に関係する演算結果、又は、前記秘密鍵情報に関係する演算結果、又は、それら両方に関係する演算結果を一時記憶する
ことを特徴とする署名処理装置。
【請求項３】
請求項２に記載の署名処理装置であって、
前記秘匿手段は、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を以後生成に使用しないと判定した場合、判定した後所定時間内に一時記憶した、前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を、前記秘匿領域から消去する
ことを特徴とする署名処理装置。
【請求項４】
請求項１から３のいずれか一つに記載の署名処理装置であって、
前記秘密鍵情報生成手段は、前記マスタ秘密鍵情報と前記アプリケーション識別情報とにハッシュ関数を利用して前記秘密鍵情報を生成する
ことを特徴とする署名処理装置。
【請求項５】
請求項１から４のいずれか一つに記載の署名処理装置であって、
前記マスタ秘密鍵情報と、前記アプリケーション識別情報と、マスタ公開鍵情報とに基づいて、前記アプリケーション識別情報に対応する公開鍵情報を生成する、公開鍵情報生成手段と、
前記秘匿手段は、前記公開鍵情報を生成する過程において、前記マスタ秘密鍵情報、又は、前記公開鍵情報、又は、それら両方を一時記憶する
ことを特徴とする署名処理装置。
【請求項６】
（ａ）予め設定されたマスタ秘密鍵情報とアプリケーションを識別するアプリケーション識別情報とに基づいて、前記アプリケーション識別情報に対応する秘密鍵情報を生成する、ステップと、
（ｂ）前記秘密鍵情報と署名対象であるメッセージ情報とに基づいて、前記メッセージ情報に対応する署名情報を生成する、ステップと、
（ｃ）前記秘密鍵情報又は前記署名情報を生成する過程において、秘匿領域に前記マスタ秘密鍵情報、又は、前記秘密鍵情報、又は、それら両方を一時記憶する、ステップと、
を有する署名処理方法。
【請求項７】
請求項６に記載の署名処理方法であって、
前記（ｃ）のステップにおいて、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報に関係する演算結果、又は、前記秘密鍵情報に関係する演算結果、又は、それら両方に関係する演算結果を一時記憶する
ことを特徴とする署名処理方法。
【請求項８】
請求項７に記載の署名処理方法であって、
前記（ｃ）のステップにおいて、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を以後生成に使用しないと判定した場合、判定した後所定時間内に一時記憶した、前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を、前記秘匿領域から消去する
ことを特徴とする署名処理方法。
【請求項９】
請求項６から８のいずれか一つに記載の署名処理方法であって、
前記（ｂ）のステップにおいて、前記マスタ秘密鍵情報と前記アプリケーション識別情報とにハッシュ関数を利用して前記秘密鍵情報を生成する
ことを特徴とする署名処理方法。
【請求項１０】
請求項６から９のいずれか一つに記載の署名処理方法であって、
（ｄ）前記マスタ秘密鍵情報と、前記アプリケーション識別情報と、マスタ公開鍵情報とに基づいて、前記アプリケーション識別情報に対応する公開鍵情報を生成する、ステップを有し、
前記（ｃ）のステップにおいて、前記公開鍵情報を生成する過程において、前記マスタ秘密鍵情報、又は、前記公開鍵情報、又は、それら両方を一時記憶する
ことを特徴とする署名処理方法。
【請求項１１】
セキュリティ情報に基づいて生成したマスタ秘密鍵情報を、秘匿状態において署名処理装置に設定する、設定装置と、
予め設定されたマスタ秘密鍵情報とアプリケーションを識別するアプリケーション識別情報とに基づいて、前記アプリケーション識別情報に対応する秘密鍵情報を生成し、前記秘密鍵情報と署名対象であるメッセージ情報とに基づいて、前記メッセージ情報に対応する署名情報を生成し、前記秘密鍵情報又は前記署名情報を生成する過程において、秘匿領域に前記マスタ秘密鍵情報、又は、前記秘密鍵情報、又は、それら両方を一時記憶する、端末装置と、
前記メッセージ情報に基づいて、前記署名情報を検証する、検証装置と
を有する署名処理システム。
【請求項１２】
請求項１１に記載の署名処理システムであって、
前記端末装置は、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報に関係する演算結果、又は、前記秘密鍵情報に関係する演算結果、又は、それら両方に関係する演算結果を一時記憶する
ことを特徴とする署名処理システム。
【請求項１３】
請求項１２に記載の署名処理システムであって、
前記端末装置は、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を以後生成に使用しないと判定した場合、判定した後所定時間内に前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を、前記秘匿領域から消去する
ことを特徴とする署名処理システム。
【請求項１４】
請求項１１から１３のいずれか一つに記載の署名処理システムであって、
前記端末装置は、前記マスタ秘密鍵情報と前記アプリケーション識別情報とにハッシュ関数を利用して前記秘密鍵情報を生成する
ことを特徴とする署名処理システム。
【請求項１５】
請求項１１から１４のいずれか一つに記載の署名処理システムであって、
前記端末装置は、前記マスタ秘密鍵情報と、前記アプリケーション識別情報と、マスタ公開鍵情報とに基づいて、前記アプリケーション識別情報に対応する公開鍵情報を生成し、前記公開鍵情報を生成する過程において、前記マスタ秘密鍵情報、又は、前記公開鍵情報、又は、それら両方を一時記憶する
ことを特徴とする署名処理システム。
【請求項１６】
コンピュータに、
（ａ）予め設定されたマスタ秘密鍵情報とアプリケーションを識別するアプリケーション識別情報とに基づいて、前記アプリケーション識別情報に対応する秘密鍵情報を生成する、ステップと、
（ｂ）前記秘密鍵情報と署名対象であるメッセージ情報とに基づいて、前記メッセージ情報に対応する署名情報を生成する、ステップと、
（ｃ）前記秘密鍵情報又は前記署名情報を生成する過程において、秘匿領域に前記マスタ秘密鍵情報、又は、前記秘密鍵情報、又は、それら両方を一時記憶する、ステップと、
を実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１７】
請求項１６に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記（ｃ）のステップにおいて、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報に関係する演算結果、又は、前記秘密鍵情報に関係する演算結果、又は、それら両方に関係する演算結果を一時記憶する
ことを特徴とするプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１８】
請求項１７に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記（ｃ）のステップにおいて、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を以後生成に使用しないと判定した場合、判定した後所定時間内に一時記憶した、前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を、前記秘匿領域から消去する
ことを特徴とするプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１９】
請求項１６又は１８に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記（ｂ）のステップにおいて、前記マスタ秘密鍵情報と前記アプリケーション識別情報とにハッシュ関数を利用して前記秘密鍵情報を生成する
ことを特徴とするプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項２０】
請求項１６から１９のいずれか一つに記載のプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記コンピュータに、
（ｄ）前記マスタ秘密鍵情報、前記アプリケーション識別情報と、マスタ公開鍵情報とに基づいて、前記アプリケーション識別情報に対応する公開鍵情報を生成する、ステップを実行させ、
前記（ｃ）のステップにおいて、前記公開鍵情報を生成する過程において、前記マスタ秘密鍵情報、又は、前記公開鍵情報、又は、それら両方を一時記憶する
ことを特徴とするプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、署名処理をする署名処理装置、署名処理方法、署名処理システムに関し、更には、これらを実現するためのプログラムを記録したコンピュータ読み取り可能な記録媒体に関する。
【背景技術】
【０００２】
デジタル署名技術において、ホワイトボックス実装方式が提案されている。ホワイトボックス実装方式は、攻撃者が署名処理システム全体に対してフルアクセスできると仮定して、攻撃者からの攻撃に対処する方式である。例えば、ホワイトボックス実装方式では、エンドポイント（実行環境など）が敵対的な環境に置かれている状況でも、装置に実装された秘密鍵を保護する実装方式である。【０００３】
また、デジタル署名技術において、サービスを利用するような場合、サービスに対応したアプリケーションを用いて、サービスごとに動的に秘密鍵を生成する方式がある。その方式では、生成した秘密鍵を用いて署名を行う。【０００４】
なお、関連する技術として、特許文献１、特許文献２には、ＩＤベース署名方式により秘密鍵を生成する装置が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−１６３１６４号公報
【特許文献２】国際公開第２０１０／０６７８１２号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、ホワイトボックス実装方式では、デジタル署名機能を有するアプリケーションを、装置に実装する前に秘密鍵を作成し、作成した秘密鍵を装置に設定（記憶）している。例えば、装置を製造している製造元が秘密鍵を作成して、製造した装置に作成した秘密鍵を設定している。【０００７】
しかしながら、動的に秘密鍵を生成する場合、すなわちアプリケーションの実行中において装置が秘密鍵を生成する場合、ホワイトボックス実装方式のように、秘密鍵を保護することが困難である。そこで、動的に秘密鍵を生成する場合においても、ホワイトボックス実装方式のように、秘密鍵を保護したいという要望がある。【０００８】
なお、特許文献１、２に開示されている装置において、動的に秘密鍵を生成することは困難である。そのため、特許文献１、２に開示されている装置を用いたとしても、ホワイトボックス実装方式のように、動的に生成される秘密鍵を保護することはできない。【０００９】
本発明の目的の一例は、動的に秘密鍵情報を生成する場合においても秘密鍵を保護できる署名処理装置、署名処理方法、署名処理システム、及びコンピュータ読み取り可能な記録媒体を提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、本発明の一側面における署名処理装置は、
予め設定されたマスタ秘密鍵情報とアプリケーションを識別するアプリケーション識別情報とに基づいて、前記アプリケーション識別情報に対応する秘密鍵情報を生成する、秘密鍵情報生成部と、
前記秘密鍵情報と署名対象であるメッセージ情報とに基づいて、前記メッセージ情報に対応する署名情報を生成する、署名情報生成部と、
前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報、又は、前記秘密鍵情報、又は、それら両方を一時記憶する秘匿領域を有する、秘匿部と、
を有することを特徴とする。【００１１】
また、上記目的を達成するため、本発明の一側面における署名処理方法は、
（ａ）予め設定されたマスタ秘密鍵情報とアプリケーションを識別するアプリケーション識別情報とに基づいて、前記アプリケーション識別情報に対応する秘密鍵情報を生成する、ステップと、
（ｂ）前記秘密鍵情報と署名対象であるメッセージ情報とに基づいて、前記メッセージ情報に対応する署名情報を生成する、ステップと、
（ｃ）前記秘密鍵情報又は前記署名情報を生成する過程において、秘匿領域に前記マスタ秘密鍵情報、又は、前記秘密鍵情報、又は、それら両方を一時記憶する、ステップと、
を有することを特徴とする。【００１２】
また、上記目的を達成するため、本発明の一側面における署名処理システムは、
セキュリティ情報に基づいて生成したマスタ秘密鍵情報を、秘匿状態において署名処理装置に設定する、設定装置と、
予め設定されたマスタ秘密鍵情報とアプリケーションを識別するアプリケーション識別情報とに基づいて、前記アプリケーション識別情報に対応する秘密鍵情報を生成し、前記秘密鍵情報と署名対象であるメッセージ情報とに基づいて、前記メッセージ情報に対応する署名情報を生成し、前記秘密鍵情報又は前記署名情報を生成する過程において、秘匿領域に前記マスタ秘密鍵情報、又は、前記秘密鍵情報、又は、それら両方を一時記憶する、端末装置と、
前記メッセージ情報に基づいて、前記署名情報を検証する、検証装置と
を有することを特徴とする。【００１３】
更に、上記目的を達成するため、本発明の一側面におけるプログラムを記録したコンピュータ読み取り可能な記録媒体は、
コンピュータに、
（ａ）予め設定されたマスタ秘密鍵情報とアプリケーションを識別するアプリケーション識別情報とに基づいて、前記アプリケーション識別情報に対応する秘密鍵情報を生成する、ステップと、
（ｂ）前記秘密鍵情報と署名対象であるメッセージ情報とに基づいて、前記メッセージ情報に対応する署名情報を生成する、ステップと、
（ｃ）前記秘密鍵情報又は前記署名情報を生成する過程において、秘匿領域に前記マスタ秘密鍵情報、又は、前記秘密鍵情報、又は、それら両方を一時記憶する、ステップと、
を実行させることを特徴とする。
【発明の効果】
【００１４】
以上のように本発明によれば、動的に秘密鍵を生成する場合においても秘密鍵を保護することができる。
【図面の簡単な説明】
【００１５】
【図１】図１は、署名処理装置の一例を示す図である。
【図２】図２は、署名処理システム（登録）の一例を示す図である。
【図３】図３は、署名処理システム（認証）の一例を示す図である。
【図４】図４は、署名処理システム（変形例１）の一例を示す図である。
【図５】図５は、署名処理システム（変形例２）の一例を示す図である。
【図６】図６は、署名処理システム（登録）の動作の一例を示す図である。
【図７】図７は、署名処理システム（認証）の動作の一例を示す図である。
【図８】図８は、署名処理装置を実現するコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１６】
（実施の形態）
以下、本発明の実施の形態について、図１から図８を参照しながら説明する。
【００１７】
［装置構成］
最初に、図１を用いて、本実施の形態における署名処理装置１の構成について説明する。図１は、署名処理装置の一例を示す図である。
【００１８】
図１に示す本実施の形態における署名処理装置１は、動的に秘密鍵を生成する場合においても、秘密鍵を保護することができる装置である。また、図１に示すように、署名処理装置１は、秘密鍵情報生成部２と、署名情報生成部３と、秘匿部４とを有する。
【００１９】
このうち、秘密鍵情報生成部２は、予め設定されたマスタ秘密鍵情報（マスタ秘密鍵ｍｓｋ）とアプリケーションを識別するアプリケーション識別情報（アプリケーションＩＤ）とに基づいて、アプリケーションＩＤに対応する秘密鍵情報（秘密鍵ｓｋ）を生成する。署名情報生成部３は、秘密鍵ｓｋと署名対象であるメッセージ情報（メッセージＭ）とに基づいて、メッセージＭに対応する署名情報（δＩＤ, Ｍ）を生成する。秘匿部４は、秘密鍵ｓｋ又は署名情報（δＩＤ, Ｍ）を生成する過程において、マスタ秘密鍵ｍｓｋ、又は、秘密鍵ｓｋ、又は、それら両方を一時記憶する秘匿領域を有する。
【００２０】
なお、秘匿部４の秘匿領域は、外部からアクセスすることが困難なセキュアなメモリ領域である。例えば、署名処理装置１のハードウェアがＣＰＵ（Central Processing Unit）を用いて構成されている回路である場合、ＣＰＵのキャッシュメモリなどを用いることが考えられる。また、例えば、署名処理装置１が専用ハードウェア、ＴＥＥ（Trusted Execution Environment）など、外部からデータにアクセスできない状態で実現されていることが考えられる。また、アプリケーションＩＤは、サービス提供元が提供するサービスに対応するアプリケーションを識別する情報である。メッセージＭは、サービス提供元から送信される平文、画像データなどの情報である。
【００２１】
このように、本実施の形態では、アプリケーションの実行中において秘密鍵ｓｋを生成する場合においても、ホワイトボックス実装方式のように、秘密鍵ｓｋを保護できる。すなわち、署名処理装置１に予め記憶されたマスタ秘密鍵ｍｓｋと、アプリケーションを識別するアプリケーションＩＤとに基づいて動的に秘密鍵ｓｋを生成する場合においても、秘匿部４を用いて秘密鍵ｓｋを生成するので、外部に秘密鍵ｓｋを漏洩しないようにできる。また、本実施の形態では、秘密鍵ｓｋと署名対象であるメッセージＭとに基づいて、署名情報（δＩＤ, Ｍ）を生成する場合においても、秘匿部４を用いて署名情報（δＩＤ,Ｍ）を生成するので、外部に秘密鍵ｓｋが漏洩しないようにできる。
【００２２】
また、ホワイトボックス実装方式として、署名処理装置１に、想定されるアプリケーション分の複数の秘密鍵ｓｋを予め記憶しておくことが考えられるが、その場合には、秘密鍵ｓｋを製造元が把握しているため、秘密鍵ｓｋを完全に保護できているとは言えない。更に、ホワイトボックス実装方式として、複数の秘密鍵ｓｋを署名処理装置１に記憶するため、署名処理装置１の記憶容量が大きくなる。
【００２３】
しかしながら、本実施の形態では、署名処理装置１がアプリケーションごとに、秘匿しながら動的に秘密鍵ｓｋを生成するため、秘密鍵ｓｋを製造元が把握することができないようにできる。更に、予め複数の秘密鍵ｓｋを署名処理装置１に記憶しないため、署名処理装置１の記憶容量を小さくできる。
【００２４】
また、署名処理装置１に予め記憶した秘密鍵ｓｋを変更する場合、例えば、安全性を確保するために秘密鍵ｓｋを更新することが求められた場合、ホワイトボックス実装方式のように、秘密鍵ｓｋを保護することは困難である。しかしながら、本実施の形態では、署名処理装置１は、秘密鍵ｓｋを秘匿しながら動的に生成できるため、秘密鍵ｓｋを変更しても、秘密鍵ｓｋを外部に漏洩しないように保護することができる。
【００２５】
［システム構成］
続いて、図２、図３を用いて、本実施の形態における署名処理システム２０について、認証に適用した場合の例を用いて説明する。図２は、署名処理システム（登録）の一例を示す図である。図３は、署名処理システム（認証）の一例を示す図である。
【００２６】
図２、３に示すように、本実施の形態における署名処理システム２０は、設定装置２１と、端末装置２２と、検証装置２３とを有する。また、端末装置２２は、署名処理装置１を有する。更に、図２の署名処理装置１は、秘密鍵情報生成部２、署名情報生成部３、秘匿部４に加え、公開鍵情報生成部２４を有する。
【００２７】
設定装置２１は、セキュリティ情報（セキュリティパラメータｋ）に基づいて生成したマスタ秘密鍵情報を、秘匿状態で端末装置２２の署名処理装置１に設定する。なお、設定装置２１は、端末装置２２を製造する製造元に設けられる。
【００２８】
具体的には、設定装置２１は、まず、製造元が用意したセキュリティパラメータｋを取得し、セキュリティパラメータｋに基づいて、セキュリティパラメータｋに対応するマスタ公開鍵情報（マスタ公開鍵ｍｐｋ）とマスタ秘密鍵ｍｓｋとを生成する。セキュリティパラメータｋは、利用者が求める安全性の強度を決めるパラメータで、例えば、秘密鍵ｓｋのビット数又はメッセージＭの長さなどである。
【００２９】
続いて、設定装置２１は、生成したマスタ公開鍵ｍｐｋとマスタ秘密鍵ｍｓｋとを、端末装置２２が有する署名処理装置１へ記憶する。設定装置２１は、例えば、マスタ秘密鍵ｍｓｋを埋め込んだ公開鍵生成プログラムと秘密鍵生成プログラムとを生成し、公開鍵生成プログラムを公開鍵情報生成部２４にインストールし、秘密鍵生成プログラムを秘密鍵情報生成部２にインストールする。
【００３０】
なお、マスタ秘密鍵ｍｓｋは、ホワイトボックス実装方式において記憶される。また、マスタ秘密鍵ｍｓｋは、公開鍵生成プログラムと秘密鍵生成プログラムとにそれぞれ埋め込むので、マスタ秘密鍵ｍｓｋを更に保護することができる。
【００３１】
端末装置２２は、サービスを利用するための登録と、サービス利用時に行う認証とを実行する装置である。端末装置２２は、例えば、パーソナルコンピュータ、ノートパソコン、スマートホン、タブレットなどである。
【００３２】
図２を用いて、サービスを利用するための登録について説明する。
端末装置２２に設けられた署名処理装置１の公開鍵情報生成部２４は、予め設定されたマスタ秘密鍵ｍｓｋと、サービスに対応したアプリケーションＩＤと、マスタ公開鍵ｍｐｋとに基づいて、アプリケーションＩＤに対応する公開鍵ｐｋを生成する。
【００３３】
また、端末装置２２に設けられた署名処理装置１の秘匿部４は、公開鍵ｐｋを生成する過程において生成される、マスタ秘密鍵ｍｓｋ、又は、公開鍵ｐｋ、又は、それら両方を、秘匿領域に一時記憶する。更に、秘匿部４は、公開鍵ｐｋを生成する過程において生成される、マスタ秘密鍵ｍｓｋに関係する演算結果を、秘匿領域に一時記憶してもよい。
【００３４】
続いて、端末装置２２は、公開鍵ｐｋをサービス提供元サーバなどに設けられている検証装置２３へ送信する。検証装置２３は、公開鍵ｐｋを受信した場合、公開鍵ｐｋを記憶する。
【００３５】
図３を用いて、サービス利用時に行う認証について説明する。
端末装置２２に設けられた署名処理装置１の秘密鍵情報生成部２は、まず、マスタ秘密鍵ｍｓｋと、アプリケーションＩＤとに基づいて、アプリケーションＩＤに対応する秘密鍵ｓｋを生成する。続いて、端末装置２２に設けられた署名処理装置１の署名情報生成部３は、秘密鍵ｓｋと認証に用いる署名対象であるメッセージＭとに基づいて、メッセージＭに対応する署名情報（δＩＤ, Ｍ）を生成する。続いて、端末装置２２は、生成した公開鍵ｐｋと署名情報（δＩＤ, Ｍ）とを、検証装置２３へ送信する。
【００３６】
ここで、秘密鍵情報生成部２と署名情報生成部３とは、秘密鍵ｓｋ又は署名情報（δＩＤ, Ｍ）を生成する過程において、秘匿部４の秘匿領域にマスタ秘密鍵ｍｓｋ、又は、秘密鍵ｓｋ、又は、それら両方を、一時記憶する。
【００３７】
更に、秘匿部４は、秘密鍵ｓｋ又は署名情報（δＩＤ, Ｍ）を生成する過程において生成される、マスタ秘密鍵ｍｓｋに関係する演算結果、又は、秘密鍵ｓｋに関係する演算結果、又は、それら両方に関係する演算結果を、生成過程において一時記憶する。
【００３８】
なお、秘匿部４は、秘密鍵ｓｋ又は署名情報（δＩＤ, Ｍ）を生成する過程において、マスタ秘密鍵ｍｓｋ、秘密鍵ｓｋ、演算結果を以後生成に使用しないと判定した場合、判定した後所定時間内に一時記憶した、マスタ秘密鍵ｍｓｋ、秘密鍵ｓｋ、演算結果を、秘匿領域から消去する。
【００３９】
検証装置２３は、メッセージＭに基づいて、署名情報（δＩＤ,Ｍ）を検証する。具体的には、検証装置２３は、サービスを利用する際に登録した公開鍵ｐｋを用いて、メッセージＭに基づいて生成された署名情報（δＩＤ, Ｍ）の検証をする。また、検証装置２３は、検証において署名情報（δＩＤ, Ｍ）を受理した場合（署名情報（δＩＤ, Ｍ）が正しい場合）、受理した旨を端末装置２２へ送信し、不受理の場合は不受理である旨を端末装置２２へ送信する。なお、検証装置２３は、サービス提供元に設けられたサーバなどに設けられている。
【００４０】
［変形例１］
変形例１における署名処理（登録）について説明をする。
図４は、暗号処理署名処理システム（変形例１）の一例を示す図である。設定装置２１は、まず、セキュリティパラメータｋを取得する。続いて、設定装置２１は、セキュリティパラメータｋを用いて、パラメータＰａｒａｍを生成する。パラメータＰａｒａｍは、例えば、Ｓｅｔｕｐ（１＾ｋ）を実行して得る。具体的には、楕円曲線、楕円曲線上のｋビット素数位数ｐを持つ群Ｇ、群Ｇの生成元ｇなどを用いてパラメータＰａｒａｍを生成する。１＾ｋは１をｋビット並べたデータである。なお、セキュリティパラメータがｋであることを意味する他の表記であってもよい。
【００４１】
続いて、設定装置２１は、ハッシュ関数Ｈを用いてマスタ秘密鍵ｍｓｋを生成する。例えば、マスタ秘密鍵ｍｓｋは、ＫｅｙＧｅｎ＿ｍｓｋ（ｐａｒａｍ，１＾ｋ）を実行して得る。マスタ秘密鍵ｍｓｋは、例えば、［１，ｐ−１］からランダムに選ばれた値である。ｐはｐａｒａｍで定められた素数である。
【００４２】
また、設定装置２１は、マスタ公開鍵ｍｐｋを生成する。例えば、マスタ公開鍵ｍｐｋは、ｍｐｋ＝（Ｐａｒａｍ，Ｈ）などである。Ｈは任意のバイナリ系列｛０，１｝＊を入力とし、［１，ｐ−１］の値を出力する暗号学的に安全なハッシュ関数である。
【００４３】
続いて、設定装置２１は、マスタ公開鍵ｍｐｋ＝（Ｐａｒａｍ，Ｈ）を埋め込んだ公開鍵生成プログラムを公開鍵情報生成部２４にインストールし、マスタ秘密鍵ｍｓｋを埋め込んだ秘密鍵生成プログラムを秘密鍵情報生成部２にインストールする。
【００４４】
公開鍵情報生成部２４は、マスタ秘密鍵ｍｓｋとアプリケーションＩＤとにハッシュ関数Ｈを適用して、秘密鍵ｓｋ（＝Ｈ（ｍｓｋ，ＩＤ））を生成する。また、公開鍵情報生成部２４は、パラメータＰａｒａｍ、データ１＾ｋ、秘密鍵ｓｋを用いて、公開鍵ｐｋを生成する。例えば、公開鍵ｐｋは、ＫｅｙＧｅｎ＿ｐｋ（Ｐａｒａｍ，１＾ｋ，ｓｋ）を実行して得られ、ｐｋ＝［ｓｋ］ｇである。ここで［ｘ］ｇは楕円曲線上の点ｇの定数ｘ倍を意味する。
【００４５】
更に、公開鍵情報生成部２４は、マスタ秘密鍵ｍｓｋ、秘密鍵ｓｋ、公開鍵ｐｋ、秘密鍵ｓｋ及び公開鍵ｐｋを生成する過程で生成された演算結果を、秘匿部４を用いて秘匿しながら、秘密鍵ｓｋ及び公開鍵ｐｋを生成する。
【００４６】
続いて、サービスを利用するための登録をする場合、端末装置２２は、公開鍵情報生成部２４が生成した公開鍵ｐｋを、検証装置２３へ送信する。、
【００４７】
変形例１における署名処理（認証）について説明をする。
秘密鍵情報生成部２は、マスタ秘密鍵ｍｓｋとアプリケーションＩＤとにハッシュ関数Ｈを適用して、秘密鍵ｓｋ（＝Ｈ（ｍｓｋ，ＩＤ））を生成する。署名情報生成部３は、秘密鍵ｓｋとメッセージＭとを用いて、署名情報（δＩＤ, Ｍ）を生成する。署名情報（δＩＤ, Ｍ）は、例えば、ＳｉｇＧｅｎ（ｐｋ，ｓｋ，Ｍ）を実行して得る。続いて、署名情報生成部３は、署名情報（δＩＤ, Ｍ）を検証装置２３へ送信する。例えば、ＳｉｇＧｅｎ（ｐｋ，ｓｋ，Ｍ）はＥＣ−ＤＳＡ、ＥＣ−Ｓｃｈｎｏｒｒ署名の署名生成である。ここでは、楕円曲線を用いたデジタル署名方式を例としているが、他の署名方式でもよい。
【００４８】
なお、署名情報生成部３は、秘密鍵ｓｋとメッセージＭと公開鍵ｐｋとを用いて、署名情報（δＩＤ, Ｍ）を生成してもよい。この場合、公開鍵情報生成部２４と別に、秘密鍵情報生成部２又は署名情報生成部３が、パラメータＰａｒａｍ、データ１＾ｋ、秘密鍵ｓｋを用いて、公開鍵ｐｋを生成する。
【００４９】
検証装置２３は、登録された公開鍵ｐｋと受信した署名情報（δＩＤ, Ｍ）とを用いて、検証をする。検証は、例えば、Ｖｅｒｉｆｙ（ｐｋ，（δＩＤ, Ｍ））を実行して、受理、不受理であるかを検証する。また、検証装置２３は、検証後、受理した場合は受理した旨を端末装置２２へ送信し、不受理の場合は不受理である旨を端末装置２２へ送信する。例えば、Ｖｅｒｉｆｙ（ｐｋ，（δＩＤ, Ｍ））は、ＥＣ−ＤＳＡ、ＥＣ−Ｓｃｈｎｏｒｒ署名の署名検証である。ここでは、楕円曲線を用いたデジタル署名方式を例としているが、他の署名方式でもよい。
【００５０】
［変形例２］
図５は、暗号処理署名処理システム（変形例２）の一例を示す図である。変形例２では、ＩＤベース署名方式を用いた場合について説明する。ＩＤベース署名方式は、ＩＤ−Ｓｅｔｕｐ、ＩＤ−ＫｅｙＧｅｎ、ＩＤ−ＳｉｇＧｅｎ、ＩＤ−Ｖｅｒｉｆｙの四つのアルゴリズムからなる。
【００５１】
ＩＤ−Ｓｅｔｕｐは、セキュリティパラメータｋを入力とし、マスタ秘密鍵ｍｓｋとマスタ公開鍵ｍｐｋを生成する。ＩＤ−ＫｅｙＧｅｎは、マスタ秘密鍵ｍｓｋとＩＤを入力とし、ＩＤに対応した秘密鍵ｓｋＩＤを生成する。ＩＤ−ＳｉｇＧｅｎは、ＩＤに対応した秘密鍵ｓｋＩＤと署名対象メッセージＭを入力とし、署名情報（σＩＤ，Ｍ）を生成する。ＩＤ−Ｖｅｒｉｆｙは、マスタ公開鍵ｍｐｋと署名情報（σＩＤ，Ｍ）を入力とし、受理または不受理を生成する。なお、ＩＤベース署名方式は、例えば、特許文献１や特許文献２に記載された方式など多くの方式が知られている。
【００５２】
変形例２における署名処理（登録）について説明をする。
設定装置２１は、まず、セキュリティパラメータｋを取得する。続いて、設定装置２１は、セキュリティパラメータｋを用いて、ＩＤ−Ｓｅｔｕｐ（１＾ｋ）を実行して、マスタ秘密鍵ｍｓｋとマスタ公開鍵ｍｐｋとを生成する。
【００５３】
例えば、マスタ秘密鍵ｍｓｋ＝ｓは、［１，ｑ−１］からランダムに選ばれた値とする。なお、ｑは素数である。マスタ公開鍵ｍｐｋ＝（Ｇ１，Ｇ２，ｅ，Ｐ，Ｐｐｕｂ，Ｈ１，Ｈ２）は、双線形写像ｅの性質を利用して生成する。双線形写像ｅは、位数が素数ｑの二つの楕円曲線上の群Ｇ１、Ｇ２に関し、Ｇ１×Ｇ１からＧ２への写像を行う。ジェネレータＰは、群Ｇ１に属する値である。Ｐｐｕｂは、［ｓ］Ｐにより算出する。Ｈ１は任意のバイナリ系列｛０，１｝＊を、楕円曲線上の群Ｇ１に写像するハッシュ関数である。Ｈ２は｛０，１｝＊×Ｇ１を［１，ｑ−１］に写像するハッシュ関数である。
【００５４】
続いて、設定装置２１は、マスタ秘密鍵ｍｓｋとマスタ公開鍵ｍｐｋとを埋め込んだ秘密鍵生成プログラムを秘密鍵情報生成部２にインストールする。なお、設定装置２１は、マスタ公開鍵ｍｐｋを秘密鍵生成プログラムと別に、端末装置２２のいずれかのメモリに記憶してもよい。
【００５５】
また、変形例２においては、端末装置２２の署名処理装置１には公開鍵情報生成部２４は設けなくてもよい。その理由は、マスタ公開鍵ｍｐｋを公開鍵ｐｋとして用いるためである。また、そうすることで、公開鍵ｐｋを生成する際に、マスタ秘密鍵ｍｓｋ、秘密鍵ｓｋ、更にそれらに関係する演算結果が漏洩するリスクがなくなる。
【００５６】
続いて、サービスを利用するための登録をする場合、端末装置２２は、マスタ公開鍵ｍｐｋを、検証装置２３へ送信する。
【００５７】
変形例２における署名処理（認証）について説明をする。
秘密鍵情報生成部２は、マスタ秘密鍵ｍｓｋとアプリケーションＩＤとを用いて、ＩＤ−ＫｅｙＧｅｎ（ｍｓｋ，ＩＤ）を実行して、秘密鍵ｓｋＩＤを生成する。秘密鍵ｓｋＩＤは、例えば、［ｓ］ＱＩＤ（＝Ｈ１（ＩＤ））を実行して得る。
【００５８】
署名情報生成部３は、秘密鍵ｓｋＩＤとメッセージＭとを用いて、ＩＤ−ＳｉｇＧｅｎ（ｓｋＩＤ，Ｍ）を実行して、署名情報（δＩＤ, Ｍ）を生成する。署名情報（δＩＤ, Ｍ）は、例えば、δＩＤ＝（Ｕ，Ｖ）とする。Ｕは、［ｒ］ＱＩＤにより算出される。ｒは［１，ｑ−１］からランダムに選んだ値である。Ｖは、［ｒ＋ｈ］ｓｋＩＤにより算出する。ｈは、Ｈ２（Ｍ，Ｕ）により算出される。
【００５９】
続いて、署名情報生成部３は、署名情報（δＩＤ, Ｍ）を検証装置２３へ送信する。
【００６０】
なお、署名情報生成部３は、秘密鍵ｓｋＩＤとメッセージＭとマスタ公開鍵ｍｐｋとを用いて、署名情報（δＩＤ, Ｍ）を生成してもよい。
【００６１】
検証装置２３は、登録された公開鍵ｐｋ（＝マスタ公開鍵ｍｐｋ）と、アプリケーションＩＤと、受信した署名情報（δＩＤ, Ｍ）とを用いて、検証をする。検証は、例えば、ＩＤ−Ｖｅｒｉｆｙ（ｍｐｋ，ＩＤ，（δＩＤ, Ｍ））を実行し、ｅ（Ｐｐｕｂ，Ｕ＋［ｈ］，ＱＩＤ）＝ｅ（Ｐ，Ｖ）が成立したら受理、そうでない場合には不受理を出力する。ただし、ｈ＝Ｈ２（Ｍ，Ｕ）とする。また、検証装置２３は、検証後、受理した場合は受理した旨を端末装置２２へ送信し、不受理の場合は不受理である旨を端末装置２２へ送信する。
【００６２】
［装置動作］
次に、本発明の実施の形態における署名処理装置の動作について、図２から図５を用いて説明する。図６は、署名処理システム（登録）の動作の一例を示す図である。図７は、署名処理システム（認証）の動作の一例を示す図である。以下の説明においては、適宜図２から図５を参酌する。また、本実施の形態では、署名処理装置１を動作させることによって、署名処理方法が実施される。よって、本実施の形態における署名処理方法の説明は、以下の署名処理装置１の動作説明に代える。
【００６３】
まず、図６を用いて、署名処理システム２０の登録の動作について説明する。
設定装置２１は、まず、セキュリティパラメータｋを取得し、セキュリティパラメータｋに基づいて、マスタ秘密鍵ｍｓｋを生成する（ステップＡ１）。続いて、設定装置２１は、生成したマスタ秘密鍵ｍｓｋを端末装置２２に設定する（ステップＡ２）。
【００６４】
具体的には、設定装置２１は、まず、製造元が用意したセキュリティパラメータｋを取得し、セキュリティパラメータｋに基づいて、セキュリティパラメータｋに対応するマスタ公開鍵ｍｐｋとマスタ秘密鍵ｍｓｋとを生成する。
【００６５】
続いて、設定装置２１は、生成したマスタ公開鍵ｍｐｋとマスタ秘密鍵ｍｓｋとを、端末装置２２が有する署名処理装置１へ記憶する。例えば、設定装置２１は、マスタ秘密鍵ｍｓｋを埋め込んだ公開鍵生成プログラムと秘密鍵生成プログラムとを生成し、公開鍵生成プログラムを公開鍵情報生成部２４にインストールし、秘密鍵生成プログラムを秘密鍵情報生成部２にインストールする。
【００６６】
続いて、端末装置２２の公開鍵情報生成部２４は、予め設定されたマスタ秘密鍵ｍｓｋと、サービスに対応したアプリケーションＩＤと、マスタ公開鍵ｍｐｋとに基づいて、アプリケーションＩＤに対応する公開鍵ｐｋを生成する（ステップＡ３）。
【００６７】
なお、端末装置２２の秘匿部４は、公開鍵ｐｋを生成する過程において生成される、マスタ秘密鍵ｍｓｋ、又は、公開鍵ｐｋ、又は、それら両方を、秘匿領域に一時記憶する。更に、秘匿部４は、公開鍵ｐｋを生成する過程において生成される、マスタ秘密鍵ｍｓｋに関係する演算結果を、秘匿領域に一時記憶してもよい。
【００６８】
続いて、端末装置２２は、公開鍵ｐｋをサービス提供元サーバなどに設けられている検証装置２３へ送信する（ステップＡ４）。サービス提供元サーバの検証装置２３は、公開鍵ｐｋを受信した場合、公開鍵ｐｋを記憶する（ステップＡ５）。具体的には、検証装置２３は、公開鍵ｐｋを受信した場合、利用者情報と公開鍵ｐｋとを関連付けて記憶する。その後、検証装置２３は、利用者を識別する利用者ＩＤを生成して、端末装置２２に送信する。例えば、ＦＩＤＯ（Fast IDentity Online）に適用する場合、公開パラメータにAuthenticatorのAttestation秘密鍵で署名を付与する。
【００６９】
［変形例１］
変形例１における署名処理（登録）について図６を用いて説明をする。
ステップＡ１において、設定装置２１は、セキュリティパラメータｋを用いて、Ｓｅｔｕｐ（１＾ｋ）を実行し、パラメータＰａｒａｍを生成する。続いて、設定装置２１は、パラメータＰａｒａｍを用いて、ＫｅｙＧｅｎ＿ｍｓｋ（ｐａｒａｍ, １＾ｋ）を実行し、マスタ秘密鍵ｍｓｋを生成する。設定装置２１は、マスタ公開鍵ｍｐｋ＝（Ｐａｒａｍ，Ｈ）を生成する。
【００７０】
ステップＡ２において、設定装置２１は、マスタ公開鍵を埋め込んだ公開鍵生成プログラムを公開鍵情報生成部２４にインストールし、マスタ秘密鍵ｍｓｋを埋め込んだ秘密鍵生成プログラムを秘密鍵情報生成部２にインストールする。
【００７１】
ステップＡ３において、公開鍵情報生成部２４は、マスタ秘密鍵ｍｓｋとアプリケーションＩＤとにハッシュ関数Ｈを適用して、秘密鍵ｓｋ（＝Ｈ（ｍｓｋ，ＩＤ））を生成する。続いて、公開鍵情報生成部２４は、パラメータＰａｒａｍ、データ１＾ｋ、秘密鍵ｓｋを用いて、ＫｅｙＧｅｎ＿ｐｋ（Ｐａｒａｍ，１＾ｋ，ｓｋ）を実行し、公開鍵ｐｋを生成する。なお、ステップＡ３において、公開鍵情報生成部２４は、マスタ秘密鍵ｍｓｋ、秘密鍵ｓｋ、公開鍵ｐｋ、秘密鍵ｓｋ及び公開鍵ｐｋを生成する過程で生成された演算結果を、秘匿部４を用いて秘匿しながら、秘密鍵ｓｋ及び公開鍵ｐｋを生成する。
【００７２】
ステップＡ４において、端末装置２２は、公開鍵情報生成部２４が生成した公開鍵ｐｋを、検証装置２３へ送信する。
【００７３】
［変形例２］
変形例２における署名処理（登録）について図６を用いて説明をする。
ステップＡ１において、設定装置２１は、セキュリティパラメータｋを用いて、ＩＤ−Ｓｅｔｕｐ（１＾ｋ）を実行し、マスタ秘密鍵ｍｓｋとマスタ公開鍵ｍｐｋとを生成する。
【００７４】
ステップＡ２において、設定装置２１は、マスタ秘密鍵ｍｓｋを埋め込んだ秘密鍵生成プログラムを秘密鍵情報生成部２にインストールする。
【００７５】
なお、変形例２においては、ステップＡ３の処理を実行しなくてもよい。その理由は、マスタ公開鍵ｍｐｋを公開鍵ｐｋとして用いるためである。そうすることで、公開鍵ｐｋを生成する際に、マスタ秘密鍵ｍｓｋ、秘密鍵ｓｋ、更にそれらに関係する演算結果が漏洩するリスクが少なくなる。
【００７６】
ステップＡ４において、端末装置２２は、マスタ公開鍵ｍｐｋを、検証装置２３へ送信する。
【００７７】
次に、図７を用いて、署名処理システム２０の認証の動作について説明する。
秘密鍵情報生成部２は、まず、マスタ秘密鍵ｍｓｋと、アプリケーションＩＤとに基づいて、アプリケーションＩＤに対応する秘密鍵ｓｋＩＤを生成する（ステップＢ１）。
【００７８】
続いて、署名情報生成部３は、秘密鍵ｓｋＩＤと認証に用いる署名対象であるメッセージＭとに基づいて、メッセージＭに対応する署名情報（δＩＤ, Ｍ）を生成する（ステップＢ２）。具体的には、端末装置２２からサービス提供元サーバに利用者ＩＤを送信し、サービス提供元サーバからサービスに対応するメッセージＭ（例えば、ランダムな値（チャレンジ）など）を受信する。その後、署名情報生成部３は、署名情報（δＩＤ, Ｍ）を生成する。
【００７９】
続いて、端末装置２２は、生成した公開鍵ｐｋと署名情報（δＩＤ, Ｍ）とを、検証装置２３へ送信する（ステップＢ３）。
【００８０】
ここで、秘密鍵情報生成部２と署名情報生成部３とは、秘密鍵ｓｋＩＤ又は署名情報（δＩＤ, Ｍ）を生成する過程において生成される、秘匿部４の秘匿領域にマスタ秘密鍵ｍｓｋ、又は、秘密鍵ｓｋＩＤ、又は、それら両方を、生成過程において一時記憶する。更に、秘匿部４は、秘密鍵ｓｋＩＤ又は署名情報（δＩＤ, Ｍ）を生成する過程において生成される、マスタ秘密鍵ｍｓｋに関係する演算結果、又は、秘密鍵ｓｋＩＤに関係する演算結果、又は、それら両方に関係する演算結果を、生成過程において一時記憶する。
【００８１】
なお、秘匿部４は、秘密鍵ｓｋＩＤ又は署名情報（δＩＤ, Ｍ）を生成する過程において、マスタ秘密鍵ｍｓｋ、秘密鍵ｓｋＩＤ、演算結果を以後生成に使用しないと判定した場合、判定した後所定時間内に一時記憶した、マスタ秘密鍵ｍｓｋ、秘密鍵ｓｋＩＤ、演算結果を、秘匿領域から消去する。
【００８２】
続いて、検証装置２３は、サービスを利用する際に登録した公開鍵ｐｋを用いて、メッセージＭに基づいて生成された署名情報（δＩＤ, Ｍ）の検証をする（ステップＢ４）。また、検証装置２３は、検証後において受理した場合、受理した旨を端末装置２２へ送信し、不受理の場合は不受理である旨を端末装置２２へ送信する（ステップＢ５）。
【００８３】
［変形例１］
変形例１における署名処理（認証）について図７を用いて説明をする。
ステップＢ１において、秘密鍵情報生成部２は、マスタ秘密鍵ｍｓｋとアプリケーションＩＤとにハッシュ関数Ｈを適用して、秘密鍵ｓｋ（＝Ｈ（ｍｓｋ，ＩＤ））を生成する。
【００８４】
ステップＢ２において、署名情報生成部３は、秘密鍵ｓｋとメッセージＭとを用いて、ＳｉｇＧｅｎ（ｐｋ，ｓｋ，Ｍ）を実行し、署名情報（δＩＤ, Ｍ）を生成する。
【００８５】
ステップＢ３において、署名情報生成部３は、署名情報（δＩＤ, Ｍ）を検証装置２３へ送信する。
【００８６】
なお、署名情報生成部３は、秘密鍵ｓｋとメッセージＭと公開鍵ｐｋとを用いて、署名情報（δＩＤ, Ｍ）を生成してもよい。この場合、公開鍵ｐｋは、公開鍵情報生成部２４とは別に、秘密鍵情報生成部２又は署名情報生成部３が、パラメータＰａｒａｍ、データ１＾ｋ、秘密鍵ｓｋを用いて、公開鍵ｐｋを生成する。
【００８７】
ステップＢ４において、検証装置２３は、登録された公開鍵ｐｋと、受信した署名情報（δＩＤ, Ｍ）とを用いて、Ｖｅｒｉｆｙ（ｐｋ，（δＩＤ, Ｍ））を実行して、受理、不受理であるかを検証する。
【００８８】
ステップＢ５において、検証装置２３は、検証後、受理した場合は受理した旨を端末装置２２へ送信し、不受理の場合は不受理である旨を端末装置２２へ送信する。
【００８９】
［変形例２］
変形例２における署名処理（認証）について図７を用いて説明をする。
ステップＢ１において、秘密鍵情報生成部２は、マスタ秘密鍵ｍｓｋとアプリケーションＩＤとを用いて、ＩＤ−ＫｅｙＧｅｎ（ｍｓｋ，ＩＤ）を実行し、秘密鍵ｓｋを生成する。
【００９０】
ステップＢ２において、署名情報生成部３は、秘密鍵ｓｋとメッセージＭとを用いて、ＩＤ−ＳｉｇＧｅｎ（ｓｋＩＤ，Ｍ）を実行し、署名情報（δＩＤ, Ｍ）を生成する。なお、ステップＢ２において、署名情報生成部３は、秘密鍵ｓｋＩＤとメッセージＭとマスタ公開鍵ｍｐｋとを用いて、署名情報（δＩＤ, Ｍ）を生成してもよい。
【００９１】
ステップＢ３において、署名情報生成部３は、署名情報（δＩＤ, Ｍ）を検証装置２３へ送信する。
【００９２】
ステップＢ４において、検証装置２３は、登録された公開鍵ｐｋと、受信した署名情報（δＩＤ, Ｍ）とを用いて、ＩＤ−Ｖｅｒｉｆｙ（ｍｐｋ，ＩＤ，（δＩＤ, Ｍ））を実行して、受理、不受理であるかを検証する。
【００９３】
ステップＢ５において、検証装置２３は、検証後、受理した場合は受理した旨を端末装置２２へ送信し、不受理の場合は不受理である旨を端末装置２２へ送信する。
【００９４】
［本実施の形態の効果］
以上のように、本実施の形態によれば、アプリケーションの実行中において秘密鍵ｓｋを生成する場合においても、ホワイトボックス実装方式のように、秘密鍵を保護できる。すなわち、署名処理装置１に予め記憶されたマスタ秘密鍵ｍｓｋと、アプリケーションを識別するアプリケーションＩＤとに基づいて動的に秘密鍵を生成する場合においても、秘匿部４を用いて秘密鍵を生成するので、外部に秘密鍵を漏洩しないようにできる。
【００９５】
また、本実施の形態では、秘密鍵と署名対象であるメッセージＭとに基づいて、署名情報（δＩＤ, Ｍ）を生成する場合においても、秘匿部４を用いて署名情報（δＩＤ,Ｍ）を生成するので、外部に秘密鍵が漏洩しないようにできる。
【００９６】
また、公開鍵ｐｋを生成する過程において生成される、マスタ秘密鍵ｍｓｋ、又は、公開鍵ｐｋ、又は、それら両方を、秘匿領域に一時記憶するので、外部にそれらの情報が漏洩しないようにできる。更に、公開鍵ｐｋを生成する過程において生成される、マスタ秘密鍵ｍｓｋに関係する演算結果を、秘匿領域に一時記憶するので、外部にそれらの情報が漏洩しないようにできる。
【００９７】
また、本実施の形態によれば、署名処理装置１がアプリケーションごとに、秘匿しながら動的に秘密鍵を生成するため、秘密鍵を製造元が把握することができないようにできる。また、予め複数の秘密鍵を署名処理装置１に記憶しないため、署名処理装置１の記憶容量を小さくできる。
【００９８】
更に、本実施の形態によれば、署名処理装置１は、秘密鍵を秘匿しながら動的に生成できるため、秘密鍵を変更しても、秘密鍵を外部に漏洩しないように保護することができる。
【００９９】
［プログラム］
本発明の実施の形態におけるプログラムは、コンピュータに、図６に示すステップＡ１からＡ５、図７に示すステップＢ１からＢ５を実行させるプログラムであればよい。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態における署名処理装置と署名処理方法とを実現することができる。この場合、コンピュータのプロセッサは、秘密鍵情報生成部２、署名情報生成部３、秘匿部４、公開鍵情報生成部２４として機能し、処理を行なう。
【０１００】
また、本実施の形態におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されてもよい。この場合は、例えば、各コンピュータが、それぞれ、秘密鍵情報生成部２、署名情報生成部３、秘匿部４、公開鍵情報生成部２４のいずれかとして機能してもよい。
【０１０１】
［物理構成］
ここで、実施の形態におけるプログラムを実行することによって、署名処理装置１を実現するコンピュータについて図８を用いて説明する。図８は、署名処理装置を実現するコンピュータの一例を示す図である。
【０１０２】
図８に示すように、コンピュータ１１０は、ＣＰＵ１１１と、メインメモリ１１２と、記憶装置１１３と、入力インターフェイス１１４と、表示コントローラ１１５と、データリーダ／ライタ１１６と、通信インターフェイス１１７とを有する。これらの各部は、バス１２１を介して、互いにデータ通信可能に接続される。なお、コンピュータ１１０は、ＣＰＵ１１１に加えて、又はＣＰＵ１１１に代えて、ＧＰＵ（Graphics Processing Unit）、又はＦＰＧＡ（Field-Programmable Gate Array）を備えていてもよい。
【０１０３】
ＣＰＵ１１１は、記憶装置１１３に格納された、本実施の形態におけるプログラム（コード）をメインメモリ１１２に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ１１２は、典型的には、ＤＲＡＭ（Dynamic Random Access Memory）等の揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体１２０に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス１１７を介して接続されたインターネット上で流通するものであってもよい。
【０１０４】
また、記憶装置１１３の具体例としては、ハードディスクドライブの他、フラッシュメモリ等の半導体記憶装置があげられる。入力インターフェイス１１４は、ＣＰＵ１１１と、キーボード及びマウスといった入力機器１１８との間のデータ伝送を仲介する。表示コントローラ１１５は、ディスプレイ装置１１９と接続され、ディスプレイ装置１１９での表示を制御する。
【０１０５】
データリーダ／ライタ１１６は、ＣＰＵ１１１と記録媒体１２０との間のデータ伝送を仲介し、記録媒体１２０からのプログラムの読み出し、及びコンピュータ１１０における処理結果の記録媒体１２０への書き込みを実行する。通信インターフェイス１１７は、ＣＰＵ１１１と、他のコンピュータとの間のデータ伝送を仲介する。
【０１０６】
また、記録媒体１２０の具体例としては、ＣＦ（Compact Flash（登録商標））及びＳＤ（Secure Digital）等の汎用的な半導体記憶デバイス、フレキシブルディスク（Flexible Disk）等の磁気記録媒体、又はＣＤ−ＲＯＭ（Compact Disk Read Only Memory）などの光学記録媒体があげられる。
【０１０７】
なお、本実施の形態における署名処理装置１は、プログラムがインストールされたコンピュータではなく、各部に対応したハードウェアを用いることによっても実現可能である。更に、署名処理装置１は、一部がプログラムで実現され、残りの部分がハードウェアで実現されていてもよい。
【０１０８】
［付記］
以上の実施の形態に関し、更に以下の付記を開示する。上述した実施の形態の一部又は全部は、以下に記載する（付記１）から（付記２０）により表現することができるが、以下の記載に限定されるものではない。
【０１０９】
（付記１）
予め設定されたマスタ秘密鍵情報とアプリケーションを識別するアプリケーション識別情報とに基づいて、前記アプリケーション識別情報に対応する秘密鍵情報を生成する、秘密鍵情報生成部と、
前記秘密鍵情報と署名対象であるメッセージ情報とに基づいて、前記メッセージ情報に対応する署名情報を生成する、署名情報生成部と、
前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報、又は、前記秘密鍵情報、又は、それら両方を一時記憶する秘匿領域を有する、秘匿部と、
を有する署名処理装置。
【０１１０】
（付記２）
付記１に記載の署名処理装置であって、
前記秘匿部は、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報に関係する演算結果、又は、前記秘密鍵情報に関係する演算結果、又は、それら両方に関係する演算結果を一時記憶する
ことを特徴とする署名処理装置。
【０１１１】
（付記３）
付記２に記載の署名処理装置であって、
前記秘匿部は、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を以後生成に使用しないと判定した場合、判定した後所定時間内に一時記憶した、前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を、前記秘匿領域から消去する
ことを特徴とする署名処理装置。
【０１１２】
（付記４）
付記１から３のいずれか一つに記載の署名処理装置であって、
前記秘密鍵情報生成部は、前記マスタ秘密鍵情報と前記アプリケーション識別情報とにハッシュ関数を利用して前記秘密鍵情報を生成する
ことを特徴とする署名処理装置。
【０１１３】
（付記５）
付記１から４のいずれか一つに記載の署名処理装置であって、
前記マスタ秘密鍵情報と、前記アプリケーション識別情報と、マスタ公開鍵情報とに基づいて、前記アプリケーション識別情報に対応する公開鍵情報を生成する、公開鍵情報生成部と、
前記秘匿部は、前記公開鍵情報を生成する過程において、前記マスタ秘密鍵情報、又は、前記公開鍵情報、又は、それら両方を一時記憶する
ことを特徴とする署名処理装置。
【０１１４】
（付記６）
（ａ）予め設定されたマスタ秘密鍵情報とアプリケーションを識別するアプリケーション識別情報とに基づいて、前記アプリケーション識別情報に対応する秘密鍵情報を生成する、ステップと、
（ｂ）前記秘密鍵情報と署名対象であるメッセージ情報とに基づいて、前記メッセージ情報に対応する署名情報を生成する、ステップと、
（ｃ）前記秘密鍵情報又は前記署名情報を生成する過程において、秘匿領域に前記マスタ秘密鍵情報、又は、前記秘密鍵情報、又は、それら両方を一時記憶する、ステップと、
を有する署名処理方法。
【０１１５】
（付記７）
付記６に記載の署名処理方法であって、
前記（ｃ）のステップにおいて、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報に関係する演算結果、又は、前記秘密鍵情報に関係する演算結果、又は、それら両方に関係する演算結果を一時記憶する
ことを特徴とする署名処理方法。
【０１１６】
（付記８）
付記７に記載の署名処理方法であって、
前記（ｃ）のステップにおいて、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を以後生成に使用しないと判定した場合、判定した後所定時間内に一時記憶した、前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を、前記秘匿領域から消去する
ことを特徴とする署名処理方法。
【０１１７】
（付記９）
付記６から８のいずれか一つに記載の署名処理方法であって、
前記（ｂ）のステップにおいて、前記マスタ秘密鍵情報と前記アプリケーション識別情報とにハッシュ関数を利用して前記秘密鍵情報を生成する
ことを特徴とする署名処理方法。
【０１１８】
（付記１０）
付記６から９のいずれか一つに記載の署名処理方法であって、
（ｄ）前記マスタ秘密鍵情報と、前記アプリケーション識別情報と、マスタ公開鍵情報とに基づいて、前記アプリケーション識別情報に対応する公開鍵情報を生成する、ステップを有し、
前記（ｃ）のステップにおいて、前記公開鍵情報を生成する過程において、前記マスタ秘密鍵情報、又は、前記公開鍵情報、又は、それら両方を一時記憶する
ことを特徴とする署名処理方法。
【０１１９】
（付記１１）
セキュリティ情報に基づいて生成したマスタ秘密鍵情報を、秘匿状態において署名処理装置に設定する、設定装置と、
予め設定されたマスタ秘密鍵情報とアプリケーションを識別するアプリケーション識別情報とに基づいて、前記アプリケーション識別情報に対応する秘密鍵情報を生成し、前記秘密鍵情報と署名対象であるメッセージ情報とに基づいて、前記メッセージ情報に対応する署名情報を生成し、前記秘密鍵情報又は前記署名情報を生成する過程において、秘匿領域に前記マスタ秘密鍵情報、又は、前記秘密鍵情報、又は、それら両方を一時記憶する、端末装置と、
前記メッセージ情報に基づいて、前記署名情報を検証する、検証装置と
を有する署名処理システム。
【０１２０】
（付記１２）
付記１１に記載の署名処理システムであって、
前記端末装置は、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報に関係する演算結果、又は、前記秘密鍵情報に関係する演算結果、又は、それら両方に関係する演算結果を一時記憶する
ことを特徴とする署名処理システム。
【０１２１】
（付記１３）
付記１２に記載の署名処理システムであって、
前記端末装置は、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を以後生成に使用しないと判定した場合、判定した後所定時間内に前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を、前記秘匿領域から消去する
ことを特徴とする署名処理システム。
【０１２２】
（付記１４）
付記１１から１３のいずれか一つに記載の署名処理システムであって、
前記端末装置は、前記マスタ秘密鍵情報と前記アプリケーション識別情報とにハッシュ関数を利用して前記秘密鍵情報を生成する
ことを特徴とする署名処理システム。
【０１２３】
（付記１５）
付記１１から１４のいずれか一つに記載の署名処理システムであって、
前記端末装置は、前記マスタ秘密鍵情報と、前記アプリケーション識別情報と、マスタ公開鍵情報とに基づいて、前記アプリケーション識別情報に対応する公開鍵情報を生成し、前記公開鍵情報を生成する過程において、前記マスタ秘密鍵情報、又は、前記公開鍵情報、又は、それら両方を一時記憶する
ことを特徴とする署名処理システム。
【０１２４】
（付記１６）
コンピュータに、
（ａ）予め設定されたマスタ秘密鍵情報とアプリケーションを識別するアプリケーション識別情報とに基づいて、前記アプリケーション識別情報に対応する秘密鍵情報を生成する、ステップと、
（ｂ）前記秘密鍵情報と署名対象であるメッセージ情報とに基づいて、前記メッセージ情報に対応する署名情報を生成する、ステップと、
（ｃ）前記秘密鍵情報又は前記署名情報を生成する過程において、秘匿領域に前記マスタ秘密鍵情報、又は、前記秘密鍵情報、又は、それら両方を一時記憶する、ステップと、
を実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【０１２５】
（付記１７）
付記１６に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記（ｃ）のステップにおいて、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報に関係する演算結果、又は、前記秘密鍵情報に関係する演算結果、又は、それら両方に関係する演算結果を一時記憶する
ことを特徴とするプログラムを記録したコンピュータ読み取り可能な記録媒体。
【０１２６】
（付記１８）
付記１７に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記（ｃ）のステップにおいて、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を以後生成に使用しないと判定した場合、判定した後所定時間内に一時記憶した、前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を、前記秘匿領域から消去する
ことを特徴とするプログラムを記録したコンピュータ読み取り可能な記録媒体。
【０１２７】
（付記１９）
付記１６又は１８に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記（ｂ）のステップにおいて、前記マスタ秘密鍵情報と前記アプリケーション識別情報とにハッシュ関数を利用して前記秘密鍵情報を生成する
ことを特徴とするプログラムを記録したコンピュータ読み取り可能な記録媒体。
【０１２８】
（付記２０）
付記１６から１９のいずれか一つに記載のプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記コンピュータに、
（ｄ）前記マスタ秘密鍵情報と、前記アプリケーション識別情報と、マスタ公開鍵情報とに基づいて、前記アプリケーション識別情報に対応する公開鍵情報を生成する、ステップを実行させ、
前記（ｃ）のステップにおいて、前記公開鍵情報を生成する過程において、前記マスタ秘密鍵情報、又は、前記公開鍵情報、又は、それら両方を一時記憶する
ことを特徴とするプログラムを記録したコンピュータ読み取り可能な記録媒体。
【０１２９】
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施の形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【産業上の利用可能性】
【０１３０】
以上のように本発明によれば、動的に秘密鍵を生成する場合においても秘密鍵を保護することができる。本発明は、動的に秘密鍵を生成することが必要な分野において有用である。
【符号の説明】
【０１３１】
１  署名処理装置
２  秘密鍵情報生成部
３  署名情報生成部
４  秘匿部
２０  署名処理システム
２１  設定装置
２２  端末装置
２３  検証装置
２４  公開鍵情報生成部
１１０  コンピュータ
１１１  ＣＰＵ
１１２  メインメモリ
１１３  記憶装置
１１４  入力インターフェイス
１１５  表示コントローラ
１１６  データリーダ／ライタ
１１７  通信インターフェイス
１１８  入力機器
１１９  ディスプレイ装置
１２０  記録媒体
１２１  バス
【図１】
2020039527.tif 000003
【図２】
2020039527.tif 000004
【図３】
2020039527.tif 000005
【図４】
2020039527.tif 000006
【図５】
2020039527.tif 000007
【図６】
2020039527.tif 000008
【図７】
2020039527.tif 000009
【図８】
2020039527.tif 000010
【手続補正書】
【提出日】令和2年11月6日(2020.11.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
予め設定されたマスタ秘密鍵情報とアプリケーションを識別するアプリケーション識別情報とに基づいて、前記アプリケーション識別情報に対応する秘密鍵情報を生成する、秘密鍵情報生成手段と、
前記秘密鍵情報と署名対象であるメッセージ情報とに基づいて、前記メッセージ情報に対応する署名情報を生成する、署名情報生成手段と、
前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報、又は、前記秘密鍵情報、又は、それら両方を一時記憶する秘匿領域を有する、秘匿手段と、
を有する署名処理装置。
【請求項２】
請求項１に記載の署名処理装置であって、
前記秘匿手段は、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報に関係する演算結果、又は、前記秘密鍵情報に関係する演算結果、又は、それら両方に関係する演算結果を一時記憶する
ことを特徴とする署名処理装置。
【請求項３】
請求項２に記載の署名処理装置であって、
前記秘匿手段は、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を以後生成に使用しないと判定した場合、判定した後所定時間内に一時記憶した、前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を、前記秘匿領域から消去する
ことを特徴とする署名処理装置。
【請求項４】
請求項１から３のいずれか一つに記載の署名処理装置であって、
前記秘密鍵情報生成手段は、前記マスタ秘密鍵情報と前記アプリケーション識別情報とにハッシュ関数を利用して前記秘密鍵情報を生成する
ことを特徴とする署名処理装置。
【請求項５】
請求項１から４のいずれか一つに記載の署名処理装置であって、
前記マスタ秘密鍵情報と、前記アプリケーション識別情報と、マスタ公開鍵情報とに基づいて、前記アプリケーション識別情報に対応する公開鍵情報を生成する、公開鍵情報生成手段と、
前記秘匿手段は、前記公開鍵情報を生成する過程において、前記マスタ秘密鍵情報、又は、前記公開鍵情報、又は、それら両方を一時記憶する
ことを特徴とする署名処理装置。
【請求項６】
（ａ）予め設定されたマスタ秘密鍵情報とアプリケーションを識別するアプリケーション識別情報とに基づいて、前記アプリケーション識別情報に対応する秘密鍵情報を生成する、ステップと、
（ｂ）前記秘密鍵情報と署名対象であるメッセージ情報とに基づいて、前記メッセージ情報に対応する署名情報を生成する、ステップと、
（ｃ）前記秘密鍵情報又は前記署名情報を生成する過程において、秘匿領域に前記マスタ秘密鍵情報、又は、前記秘密鍵情報、又は、それら両方を一時記憶する、ステップと、
を有する署名処理方法。
【請求項７】
請求項６に記載の署名処理方法であって、
前記（ｃ）のステップにおいて、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報に関係する演算結果、又は、前記秘密鍵情報に関係する演算結果、又は、それら両方に関係する演算結果を一時記憶する
ことを特徴とする署名処理方法。
【請求項８】
請求項７に記載の署名処理方法であって、
前記（ｃ）のステップにおいて、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を以後生成に使用しないと判定した場合、判定した後所定時間内に一時記憶した、前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を、前記秘匿領域から消去する
ことを特徴とする署名処理方法。
【請求項９】
請求項６から８のいずれか一つに記載の署名処理方法であって、
前記（ｂ）のステップにおいて、前記マスタ秘密鍵情報と前記アプリケーション識別情報とにハッシュ関数を利用して前記秘密鍵情報を生成する
ことを特徴とする署名処理方法。
【請求項１０】
請求項６から９のいずれか一つに記載の署名処理方法であって、
（ｄ）前記マスタ秘密鍵情報と、前記アプリケーション識別情報と、マスタ公開鍵情報とに基づいて、前記アプリケーション識別情報に対応する公開鍵情報を生成する、ステップを有し、
前記（ｃ）のステップにおいて、前記公開鍵情報を生成する過程において、前記マスタ秘密鍵情報、又は、前記公開鍵情報、又は、それら両方を一時記憶する
ことを特徴とする署名処理方法。
【請求項１１】
セキュリティ情報に基づいて生成したマスタ秘密鍵情報を、秘匿状態において署名処理装置に設定する、設定装置と、
予め設定されたマスタ秘密鍵情報とアプリケーションを識別するアプリケーション識別情報とに基づいて、前記アプリケーション識別情報に対応する秘密鍵情報を生成し、前記秘密鍵情報と署名対象であるメッセージ情報とに基づいて、前記メッセージ情報に対応する署名情報を生成し、前記秘密鍵情報又は前記署名情報を生成する過程において、秘匿領域に前記マスタ秘密鍵情報、又は、前記秘密鍵情報、又は、それら両方を一時記憶する、端末装置と、
前記メッセージ情報に基づいて、前記署名情報を検証する、検証装置と
を有する署名処理システム。
【請求項１２】
請求項１１に記載の署名処理システムであって、
前記端末装置は、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報に関係する演算結果、又は、前記秘密鍵情報に関係する演算結果、又は、それら両方に関係する演算結果を一時記憶する
ことを特徴とする署名処理システム。
【請求項１３】
請求項１２に記載の署名処理システムであって、
前記端末装置は、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を以後生成に使用しないと判定した場合、判定した後所定時間内に前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を、前記秘匿領域から消去する
ことを特徴とする署名処理システム。
【請求項１４】
請求項１１から１３のいずれか一つに記載の署名処理システムであって、
前記端末装置は、前記マスタ秘密鍵情報と前記アプリケーション識別情報とにハッシュ関数を利用して前記秘密鍵情報を生成する
ことを特徴とする署名処理システム。
【請求項１５】
請求項１１から１４のいずれか一つに記載の署名処理システムであって、
前記端末装置は、前記マスタ秘密鍵情報と、前記アプリケーション識別情報と、マスタ公開鍵情報とに基づいて、前記アプリケーション識別情報に対応する公開鍵情報を生成し、前記公開鍵情報を生成する過程において、前記マスタ秘密鍵情報、又は、前記公開鍵情報、又は、それら両方を一時記憶する
ことを特徴とする署名処理システム。
【請求項１６】
コンピュータに、
（ａ）予め設定されたマスタ秘密鍵情報とアプリケーションを識別するアプリケーション識別情報とに基づいて、前記アプリケーション識別情報に対応する秘密鍵情報を生成する、ステップと、
（ｂ）前記秘密鍵情報と署名対象であるメッセージ情報とに基づいて、前記メッセージ情報に対応する署名情報を生成する、ステップと、
（ｃ）前記秘密鍵情報又は前記署名情報を生成する過程において、秘匿領域に前記マスタ秘密鍵情報、又は、前記秘密鍵情報、又は、それら両方を一時記憶する、ステップと、
を実行させるプログラム。
【請求項１７】
請求項１６に記載のプログラムであって、
前記（ｃ）のステップにおいて、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報に関係する演算結果、又は、前記秘密鍵情報に関係する演算結果、又は、それら両方に関係する演算結果を一時記憶する
ことを特徴とするプログラム。
【請求項１８】
請求項１７に記載のプログラムであって、
前記（ｃ）のステップにおいて、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を以後生成に使用しないと判定した場合、判定した後所定時間内に一時記憶した、前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を、前記秘匿領域から消去する
ことを特徴とするプログラム。
【請求項１９】
請求項１６から１８のいずれか一つに記載のプログラムであって、
前記（ｂ）のステップにおいて、前記マスタ秘密鍵情報と前記アプリケーション識別情報とにハッシュ関数を利用して前記秘密鍵情報を生成する
ことを特徴とするプログラム。
【請求項２０】
請求項１６から１９のいずれか一つに記載のプログラムであって、
前記コンピュータに、
（ｄ）前記マスタ秘密鍵情報、前記アプリケーション識別情報と、マスタ公開鍵情報とに基づいて、前記アプリケーション識別情報に対応する公開鍵情報を生成する、ステップを実行させ、
前記（ｃ）のステップにおいて、前記公開鍵情報を生成する過程において、前記マスタ秘密鍵情報、又は、前記公開鍵情報、又は、それら両方を一時記憶する
ことを特徴とするプログラム。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
本発明は、署名処理をする署名処理装置、署名処理方法、署名処理システムに関し、更には、これらを実現するためのプログラムに関する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
本発明の目的の一例は、動的に秘密鍵情報を生成する場合においても秘密鍵を保護できる署名処理装置、署名処理方法、署名処理システム、及びプログラムを提供することにある。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
更に、上記目的を達成するため、本発明の一側面におけるプログラムは、
コンピュータに、
（ａ）予め設定されたマスタ秘密鍵情報とアプリケーションを識別するアプリケーション識別情報とに基づいて、前記アプリケーション識別情報に対応する秘密鍵情報を生成する、ステップと、
（ｂ）前記秘密鍵情報と署名対象であるメッセージ情報とに基づいて、前記メッセージ情報に対応する署名情報を生成する、ステップと、
（ｃ）前記秘密鍵情報又は前記署名情報を生成する過程において、秘匿領域に前記マスタ秘密鍵情報、又は、前記秘密鍵情報、又は、それら両方を一時記憶する、ステップと、
を実行させることを特徴とする。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】０１２４
【補正方法】変更
【補正の内容】
【０１２４】
（付記１６）
コンピュータに、
（ａ）予め設定されたマスタ秘密鍵情報とアプリケーションを識別するアプリケーション識別情報とに基づいて、前記アプリケーション識別情報に対応する秘密鍵情報を生成する、ステップと、
（ｂ）前記秘密鍵情報と署名対象であるメッセージ情報とに基づいて、前記メッセージ情報に対応する署名情報を生成する、ステップと、
（ｃ）前記秘密鍵情報又は前記署名情報を生成する過程において、秘匿領域に前記マスタ秘密鍵情報、又は、前記秘密鍵情報、又は、それら両方を一時記憶する、ステップと、
を実行させるプログラム。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】０１２５
【補正方法】変更
【補正の内容】
【０１２５】
（付記１７）
付記１６に記載のプログラムであって、
前記（ｃ）のステップにおいて、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報に関係する演算結果、又は、前記秘密鍵情報に関係する演算結果、又は、それら両方に関係する演算結果を一時記憶する
ことを特徴とするプログラム。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】０１２６
【補正方法】変更
【補正の内容】
【０１２６】
（付記１８）
付記１７に記載のプログラムであって、
前記（ｃ）のステップにおいて、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を以後生成に使用しないと判定した場合、判定した後所定時間内に一時記憶した、前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を、前記秘匿領域から消去する
ことを特徴とするプログラム。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】０１２７
【補正方法】変更
【補正の内容】
【０１２７】
（付記１９）
付記１６から１８のいずれか一つに記載のプログラムであって、
前記（ｂ）のステップにおいて、前記マスタ秘密鍵情報と前記アプリケーション識別情報とにハッシュ関数を利用して前記秘密鍵情報を生成する
ことを特徴とするプログラム。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】０１２８
【補正方法】変更
【補正の内容】
【０１２８】
（付記２０）
付記１６から１９のいずれか一つに記載のプログラムであって、
前記コンピュータに、
（ｄ）前記マスタ秘密鍵情報と、前記アプリケーション識別情報と、マスタ公開鍵情報とに基づいて、前記アプリケーション識別情報に対応する公開鍵情報を生成する、ステップを実行させ、
前記（ｃ）のステップにおいて、前記公開鍵情報を生成する過程において、前記マスタ秘密鍵情報、又は、前記公開鍵情報、又は、それら両方を一時記憶する
ことを特徴とするプログラム。
【国際調査報告】
2020039527.tif 000011
2020039527.tif 000012
2020039527.tif 000013