JPWO2020039527A1 - 署名処理装置、署名処理方法、署名処理システム、及びプログラム - Google Patents

署名処理装置、署名処理方法、署名処理システム、及びプログラム Download PDF

Info

Publication number
JPWO2020039527A1
JPWO2020039527A1 JP2020537944A JP2020537944A JPWO2020039527A1 JP WO2020039527 A1 JPWO2020039527 A1 JP WO2020039527A1 JP 2020537944 A JP2020537944 A JP 2020537944A JP 2020537944 A JP2020537944 A JP 2020537944A JP WO2020039527 A1 JPWO2020039527 A1 JP WO2020039527A1
Authority
JP
Japan
Prior art keywords
key information
information
signature
secret key
master
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020537944A
Other languages
English (en)
Other versions
JP7070689B2 (ja
Inventor
寿幸 一色
寿幸 一色
春菜 福田
春菜 福田
寛人 田宮
寛人 田宮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JPWO2020039527A1 publication Critical patent/JPWO2020039527A1/ja
Application granted granted Critical
Publication of JP7070689B2 publication Critical patent/JP7070689B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/10Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols with particular housing, physical features or manual controls
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials

Abstract

予め設定されたマスタ秘密鍵情報とアプリケーションを識別するアプリケーション識別情報とに基づいて、アプリケーション識別情報に対応する秘密鍵情報を生成する、秘密鍵情報生成部2と、秘密鍵情報と署名対象であるメッセージ情報とに基づいて、メッセージ情報に対応する署名情報を生成する、署名情報生成部3と、秘密鍵情報又は署名情報を生成する過程において、マスタ秘密鍵情報、又は、秘密鍵情報、又は、それら両方を一時記憶する秘匿領域を有する、秘匿部4と、を有する署名処理装置1である。

Description

本発明は、署名処理をする署名処理装置、署名処理方法、署名処理システムに関し、更には、これらを実現するためのプログラムを記録したコンピュータ読み取り可能な記録媒体に関する。
デジタル署名技術において、ホワイトボックス実装方式が提案されている。ホワイトボックス実装方式は、攻撃者が署名処理システム全体に対してフルアクセスできると仮定して、攻撃者からの攻撃に対処する方式である。例えば、ホワイトボックス実装方式では、エンドポイント(実行環境など)が敵対的な環境に置かれている状況でも、装置に実装された秘密鍵を保護する実装方式である。
また、デジタル署名技術において、サービスを利用するような場合、サービスに対応したアプリケーションを用いて、サービスごとに動的に秘密鍵を生成する方式がある。その方式では、生成した秘密鍵を用いて署名を行う。
なお、関連する技術として、特許文献1、特許文献2には、IDベース署名方式により秘密鍵を生成する装置が開示されている。
特開2006−163164号公報 国際公開第2010/067812号
ところで、ホワイトボックス実装方式では、デジタル署名機能を有するアプリケーションを、装置に実装する前に秘密鍵を作成し、作成した秘密鍵を装置に設定(記憶)している。例えば、装置を製造している製造元が秘密鍵を作成して、製造した装置に作成した秘密鍵を設定している。
しかしながら、動的に秘密鍵を生成する場合、すなわちアプリケーションの実行中において装置が秘密鍵を生成する場合、ホワイトボックス実装方式のように、秘密鍵を保護することが困難である。そこで、動的に秘密鍵を生成する場合においても、ホワイトボックス実装方式のように、秘密鍵を保護したいという要望がある。
なお、特許文献1、2に開示されている装置において、動的に秘密鍵を生成することは困難である。そのため、特許文献1、2に開示されている装置を用いたとしても、ホワイトボックス実装方式のように、動的に生成される秘密鍵を保護することはできない。
本発明の目的の一例は、動的に秘密鍵情報を生成する場合においても秘密鍵を保護できる署名処理装置、署名処理方法、署名処理システム、及びコンピュータ読み取り可能な記録媒体を提供することにある。
上記目的を達成するため、本発明の一側面における署名処理装置は、
予め設定されたマスタ秘密鍵情報とアプリケーションを識別するアプリケーション識別情報とに基づいて、前記アプリケーション識別情報に対応する秘密鍵情報を生成する、秘密鍵情報生成部と、
前記秘密鍵情報と署名対象であるメッセージ情報とに基づいて、前記メッセージ情報に対応する署名情報を生成する、署名情報生成部と、
前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報、又は、前記秘密鍵情報、又は、それら両方を一時記憶する秘匿領域を有する、秘匿部と、
を有することを特徴とする。
また、上記目的を達成するため、本発明の一側面における署名処理方法は、
(a)予め設定されたマスタ秘密鍵情報とアプリケーションを識別するアプリケーション識別情報とに基づいて、前記アプリケーション識別情報に対応する秘密鍵情報を生成する、ステップと、
(b)前記秘密鍵情報と署名対象であるメッセージ情報とに基づいて、前記メッセージ情報に対応する署名情報を生成する、ステップと、
(c)前記秘密鍵情報又は前記署名情報を生成する過程において、秘匿領域に前記マスタ秘密鍵情報、又は、前記秘密鍵情報、又は、それら両方を一時記憶する、ステップと、
を有することを特徴とする。
また、上記目的を達成するため、本発明の一側面における署名処理システムは、
セキュリティ情報に基づいて生成したマスタ秘密鍵情報を、秘匿状態において署名処理装置に設定する、設定装置と、
予め設定されたマスタ秘密鍵情報とアプリケーションを識別するアプリケーション識別情報とに基づいて、前記アプリケーション識別情報に対応する秘密鍵情報を生成し、前記秘密鍵情報と署名対象であるメッセージ情報とに基づいて、前記メッセージ情報に対応する署名情報を生成し、前記秘密鍵情報又は前記署名情報を生成する過程において、秘匿領域に前記マスタ秘密鍵情報、又は、前記秘密鍵情報、又は、それら両方を一時記憶する、端末装置と、
前記メッセージ情報に基づいて、前記署名情報を検証する、検証装置と
を有することを特徴とする。
更に、上記目的を達成するため、本発明の一側面におけるプログラムを記録したコンピュータ読み取り可能な記録媒体は、
コンピュータに、
(a)予め設定されたマスタ秘密鍵情報とアプリケーションを識別するアプリケーション識別情報とに基づいて、前記アプリケーション識別情報に対応する秘密鍵情報を生成する、ステップと、
(b)前記秘密鍵情報と署名対象であるメッセージ情報とに基づいて、前記メッセージ情報に対応する署名情報を生成する、ステップと、
(c)前記秘密鍵情報又は前記署名情報を生成する過程において、秘匿領域に前記マスタ秘密鍵情報、又は、前記秘密鍵情報、又は、それら両方を一時記憶する、ステップと、
を実行させることを特徴とする。
以上のように本発明によれば、動的に秘密鍵を生成する場合においても秘密鍵を保護することができる。
図1は、署名処理装置の一例を示す図である。 図2は、署名処理システム(登録)の一例を示す図である。 図3は、署名処理システム(認証)の一例を示す図である。 図4は、署名処理システム(変形例1)の一例を示す図である。 図5は、署名処理システム(変形例2)の一例を示す図である。 図6は、署名処理システム(登録)の動作の一例を示す図である。 図7は、署名処理システム(認証)の動作の一例を示す図である。 図8は、署名処理装置を実現するコンピュータの一例を示す図である。
(実施の形態)
以下、本発明の実施の形態について、図1から図8を参照しながら説明する。
[装置構成]
最初に、図1を用いて、本実施の形態における署名処理装置1の構成について説明する。図1は、署名処理装置の一例を示す図である。
図1に示す本実施の形態における署名処理装置1は、動的に秘密鍵を生成する場合においても、秘密鍵を保護することができる装置である。また、図1に示すように、署名処理装置1は、秘密鍵情報生成部2と、署名情報生成部3と、秘匿部4とを有する。
このうち、秘密鍵情報生成部2は、予め設定されたマスタ秘密鍵情報(マスタ秘密鍵msk)とアプリケーションを識別するアプリケーション識別情報(アプリケーションID)とに基づいて、アプリケーションIDに対応する秘密鍵情報(秘密鍵sk)を生成する。署名情報生成部3は、秘密鍵skと署名対象であるメッセージ情報(メッセージM)とに基づいて、メッセージMに対応する署名情報(δID, M)を生成する。秘匿部4は、秘密鍵sk又は署名情報(δID, M)を生成する過程において、マスタ秘密鍵msk、又は、秘密鍵sk、又は、それら両方を一時記憶する秘匿領域を有する。
なお、秘匿部4の秘匿領域は、外部からアクセスすることが困難なセキュアなメモリ領域である。例えば、署名処理装置1のハードウェアがCPU(Central Processing Unit)を用いて構成されている回路である場合、CPUのキャッシュメモリなどを用いることが考えられる。また、例えば、署名処理装置1が専用ハードウェア、TEE(Trusted Execution Environment)など、外部からデータにアクセスできない状態で実現されていることが考えられる。また、アプリケーションIDは、サービス提供元が提供するサービスに対応するアプリケーションを識別する情報である。メッセージMは、サービス提供元から送信される平文、画像データなどの情報である。
このように、本実施の形態では、アプリケーションの実行中において秘密鍵skを生成する場合においても、ホワイトボックス実装方式のように、秘密鍵skを保護できる。すなわち、署名処理装置1に予め記憶されたマスタ秘密鍵mskと、アプリケーションを識別するアプリケーションIDとに基づいて動的に秘密鍵skを生成する場合においても、秘匿部4を用いて秘密鍵skを生成するので、外部に秘密鍵skを漏洩しないようにできる。また、本実施の形態では、秘密鍵skと署名対象であるメッセージMとに基づいて、署名情報(δID, M)を生成する場合においても、秘匿部4を用いて署名情報(δID,M)を生成するので、外部に秘密鍵skが漏洩しないようにできる。
また、ホワイトボックス実装方式として、署名処理装置1に、想定されるアプリケーション分の複数の秘密鍵skを予め記憶しておくことが考えられるが、その場合には、秘密鍵skを製造元が把握しているため、秘密鍵skを完全に保護できているとは言えない。更に、ホワイトボックス実装方式として、複数の秘密鍵skを署名処理装置1に記憶するため、署名処理装置1の記憶容量が大きくなる。
しかしながら、本実施の形態では、署名処理装置1がアプリケーションごとに、秘匿しながら動的に秘密鍵skを生成するため、秘密鍵skを製造元が把握することができないようにできる。更に、予め複数の秘密鍵skを署名処理装置1に記憶しないため、署名処理装置1の記憶容量を小さくできる。
また、署名処理装置1に予め記憶した秘密鍵skを変更する場合、例えば、安全性を確保するために秘密鍵skを更新することが求められた場合、ホワイトボックス実装方式のように、秘密鍵skを保護することは困難である。しかしながら、本実施の形態では、署名処理装置1は、秘密鍵skを秘匿しながら動的に生成できるため、秘密鍵skを変更しても、秘密鍵skを外部に漏洩しないように保護することができる。
[システム構成]
続いて、図2、図3を用いて、本実施の形態における署名処理システム20について、認証に適用した場合の例を用いて説明する。図2は、署名処理システム(登録)の一例を示す図である。図3は、署名処理システム(認証)の一例を示す図である。
図2、3に示すように、本実施の形態における署名処理システム20は、設定装置21と、端末装置22と、検証装置23とを有する。また、端末装置22は、署名処理装置1を有する。更に、図2の署名処理装置1は、秘密鍵情報生成部2、署名情報生成部3、秘匿部4に加え、公開鍵情報生成部24を有する。
設定装置21は、セキュリティ情報(セキュリティパラメータk)に基づいて生成したマスタ秘密鍵情報を、秘匿状態で端末装置22の署名処理装置1に設定する。なお、設定装置21は、端末装置22を製造する製造元に設けられる。
具体的には、設定装置21は、まず、製造元が用意したセキュリティパラメータkを取得し、セキュリティパラメータkに基づいて、セキュリティパラメータkに対応するマスタ公開鍵情報(マスタ公開鍵mpk)とマスタ秘密鍵mskとを生成する。セキュリティパラメータkは、利用者が求める安全性の強度を決めるパラメータで、例えば、秘密鍵skのビット数又はメッセージMの長さなどである。
続いて、設定装置21は、生成したマスタ公開鍵mpkとマスタ秘密鍵mskとを、端末装置22が有する署名処理装置1へ記憶する。設定装置21は、例えば、マスタ秘密鍵mskを埋め込んだ公開鍵生成プログラムと秘密鍵生成プログラムとを生成し、公開鍵生成プログラムを公開鍵情報生成部24にインストールし、秘密鍵生成プログラムを秘密鍵情報生成部2にインストールする。
なお、マスタ秘密鍵mskは、ホワイトボックス実装方式において記憶される。また、マスタ秘密鍵mskは、公開鍵生成プログラムと秘密鍵生成プログラムとにそれぞれ埋め込むので、マスタ秘密鍵mskを更に保護することができる。
端末装置22は、サービスを利用するための登録と、サービス利用時に行う認証とを実行する装置である。端末装置22は、例えば、パーソナルコンピュータ、ノートパソコン、スマートホン、タブレットなどである。
図2を用いて、サービスを利用するための登録について説明する。
端末装置22に設けられた署名処理装置1の公開鍵情報生成部24は、予め設定されたマスタ秘密鍵mskと、サービスに対応したアプリケーションIDと、マスタ公開鍵mpkとに基づいて、アプリケーションIDに対応する公開鍵pkを生成する。
また、端末装置22に設けられた署名処理装置1の秘匿部4は、公開鍵pkを生成する過程において生成される、マスタ秘密鍵msk、又は、公開鍵pk、又は、それら両方を、秘匿領域に一時記憶する。更に、秘匿部4は、公開鍵pkを生成する過程において生成される、マスタ秘密鍵mskに関係する演算結果を、秘匿領域に一時記憶してもよい。
続いて、端末装置22は、公開鍵pkをサービス提供元サーバなどに設けられている検証装置23へ送信する。検証装置23は、公開鍵pkを受信した場合、公開鍵pkを記憶する。
図3を用いて、サービス利用時に行う認証について説明する。
端末装置22に設けられた署名処理装置1の秘密鍵情報生成部2は、まず、マスタ秘密鍵mskと、アプリケーションIDとに基づいて、アプリケーションIDに対応する秘密鍵skを生成する。続いて、端末装置22に設けられた署名処理装置1の署名情報生成部3は、秘密鍵skと認証に用いる署名対象であるメッセージMとに基づいて、メッセージMに対応する署名情報(δID, M)を生成する。続いて、端末装置22は、生成した公開鍵pkと署名情報(δID, M)とを、検証装置23へ送信する。
ここで、秘密鍵情報生成部2と署名情報生成部3とは、秘密鍵sk又は署名情報(δID, M)を生成する過程において、秘匿部4の秘匿領域にマスタ秘密鍵msk、又は、秘密鍵sk、又は、それら両方を、一時記憶する。
更に、秘匿部4は、秘密鍵sk又は署名情報(δID, M)を生成する過程において生成される、マスタ秘密鍵mskに関係する演算結果、又は、秘密鍵skに関係する演算結果、又は、それら両方に関係する演算結果を、生成過程において一時記憶する。
なお、秘匿部4は、秘密鍵sk又は署名情報(δID, M)を生成する過程において、マスタ秘密鍵msk、秘密鍵sk、演算結果を以後生成に使用しないと判定した場合、判定した後所定時間内に一時記憶した、マスタ秘密鍵msk、秘密鍵sk、演算結果を、秘匿領域から消去する。
検証装置23は、メッセージMに基づいて、署名情報(δID,M)を検証する。具体的には、検証装置23は、サービスを利用する際に登録した公開鍵pkを用いて、メッセージMに基づいて生成された署名情報(δID, M)の検証をする。また、検証装置23は、検証において署名情報(δID, M)を受理した場合(署名情報(δID, M)が正しい場合)、受理した旨を端末装置22へ送信し、不受理の場合は不受理である旨を端末装置22へ送信する。なお、検証装置23は、サービス提供元に設けられたサーバなどに設けられている。
[変形例1]
変形例1における署名処理(登録)について説明をする。
図4は、暗号処理署名処理システム(変形例1)の一例を示す図である。設定装置21は、まず、セキュリティパラメータkを取得する。続いて、設定装置21は、セキュリティパラメータkを用いて、パラメータParamを生成する。パラメータParamは、例えば、Setup(1^k)を実行して得る。具体的には、楕円曲線、楕円曲線上のkビット素数位数pを持つ群G、群Gの生成元gなどを用いてパラメータParamを生成する。1^kは1をkビット並べたデータである。なお、セキュリティパラメータがkであることを意味する他の表記であってもよい。
続いて、設定装置21は、ハッシュ関数Hを用いてマスタ秘密鍵mskを生成する。例えば、マスタ秘密鍵mskは、KeyGen_msk(param,1^k)を実行して得る。マスタ秘密鍵mskは、例えば、[1,p−1]からランダムに選ばれた値である。pはparamで定められた素数である。
また、設定装置21は、マスタ公開鍵mpkを生成する。例えば、マスタ公開鍵mpkは、mpk=(Param,H)などである。Hは任意のバイナリ系列{0,1}*を入力とし、[1,p−1]の値を出力する暗号学的に安全なハッシュ関数である。
続いて、設定装置21は、マスタ公開鍵mpk=(Param,H)を埋め込んだ公開鍵生成プログラムを公開鍵情報生成部24にインストールし、マスタ秘密鍵mskを埋め込んだ秘密鍵生成プログラムを秘密鍵情報生成部2にインストールする。
公開鍵情報生成部24は、マスタ秘密鍵mskとアプリケーションIDとにハッシュ関数Hを適用して、秘密鍵sk(=H(msk,ID))を生成する。また、公開鍵情報生成部24は、パラメータParam、データ1^k、秘密鍵skを用いて、公開鍵pkを生成する。例えば、公開鍵pkは、KeyGen_pk(Param,1^k,sk)を実行して得られ、pk=[sk]gである。ここで[x]gは楕円曲線上の点gの定数x倍を意味する。
更に、公開鍵情報生成部24は、マスタ秘密鍵msk、秘密鍵sk、公開鍵pk、秘密鍵sk及び公開鍵pkを生成する過程で生成された演算結果を、秘匿部4を用いて秘匿しながら、秘密鍵sk及び公開鍵pkを生成する。
続いて、サービスを利用するための登録をする場合、端末装置22は、公開鍵情報生成部24が生成した公開鍵pkを、検証装置23へ送信する。、
変形例1における署名処理(認証)について説明をする。
秘密鍵情報生成部2は、マスタ秘密鍵mskとアプリケーションIDとにハッシュ関数Hを適用して、秘密鍵sk(=H(msk,ID))を生成する。署名情報生成部3は、秘密鍵skとメッセージMとを用いて、署名情報(δID, M)を生成する。署名情報(δID, M)は、例えば、SigGen(pk,sk,M)を実行して得る。続いて、署名情報生成部3は、署名情報(δID, M)を検証装置23へ送信する。例えば、SigGen(pk,sk,M)はEC−DSA、EC−Schnorr署名の署名生成である。ここでは、楕円曲線を用いたデジタル署名方式を例としているが、他の署名方式でもよい。
なお、署名情報生成部3は、秘密鍵skとメッセージMと公開鍵pkとを用いて、署名情報(δID, M)を生成してもよい。この場合、公開鍵情報生成部24と別に、秘密鍵情報生成部2又は署名情報生成部3が、パラメータParam、データ1^k、秘密鍵skを用いて、公開鍵pkを生成する。
検証装置23は、登録された公開鍵pkと受信した署名情報(δID, M)とを用いて、検証をする。検証は、例えば、Verify(pk,(δID, M))を実行して、受理、不受理であるかを検証する。また、検証装置23は、検証後、受理した場合は受理した旨を端末装置22へ送信し、不受理の場合は不受理である旨を端末装置22へ送信する。例えば、Verify(pk,(δID, M))は、EC−DSA、EC−Schnorr署名の署名検証である。ここでは、楕円曲線を用いたデジタル署名方式を例としているが、他の署名方式でもよい。
[変形例2]
図5は、暗号処理署名処理システム(変形例2)の一例を示す図である。変形例2では、IDベース署名方式を用いた場合について説明する。IDベース署名方式は、ID−Setup、ID−KeyGen、ID−SigGen、ID−Verifyの四つのアルゴリズムからなる。
ID−Setupは、セキュリティパラメータkを入力とし、マスタ秘密鍵mskとマスタ公開鍵mpkを生成する。ID−KeyGenは、マスタ秘密鍵mskとIDを入力とし、IDに対応した秘密鍵skIDを生成する。ID−SigGenは、IDに対応した秘密鍵skIDと署名対象メッセージMを入力とし、署名情報(σID,M)を生成する。ID−Verifyは、マスタ公開鍵mpkと署名情報(σID,M)を入力とし、受理または不受理を生成する。なお、IDベース署名方式は、例えば、特許文献1や特許文献2に記載された方式など多くの方式が知られている。
変形例2における署名処理(登録)について説明をする。
設定装置21は、まず、セキュリティパラメータkを取得する。続いて、設定装置21は、セキュリティパラメータkを用いて、ID−Setup(1^k)を実行して、マスタ秘密鍵mskとマスタ公開鍵mpkとを生成する。
例えば、マスタ秘密鍵msk=sは、[1,q−1]からランダムに選ばれた値とする。なお、qは素数である。マスタ公開鍵mpk=(G1,G2,e,P,Ppub,H1,H2)は、双線形写像eの性質を利用して生成する。双線形写像eは、位数が素数qの二つの楕円曲線上の群G1、G2に関し、G1×G1からG2への写像を行う。ジェネレータPは、群G1に属する値である。Ppubは、[s]Pにより算出する。H1は任意のバイナリ系列{0,1}*を、楕円曲線上の群G1に写像するハッシュ関数である。H2は{0,1}*×G1を[1,q−1]に写像するハッシュ関数である。
続いて、設定装置21は、マスタ秘密鍵mskとマスタ公開鍵mpkとを埋め込んだ秘密鍵生成プログラムを秘密鍵情報生成部2にインストールする。なお、設定装置21は、マスタ公開鍵mpkを秘密鍵生成プログラムと別に、端末装置22のいずれかのメモリに記憶してもよい。
また、変形例2においては、端末装置22の署名処理装置1には公開鍵情報生成部24は設けなくてもよい。その理由は、マスタ公開鍵mpkを公開鍵pkとして用いるためである。また、そうすることで、公開鍵pkを生成する際に、マスタ秘密鍵msk、秘密鍵sk、更にそれらに関係する演算結果が漏洩するリスクがなくなる。
続いて、サービスを利用するための登録をする場合、端末装置22は、マスタ公開鍵mpkを、検証装置23へ送信する。
変形例2における署名処理(認証)について説明をする。
秘密鍵情報生成部2は、マスタ秘密鍵mskとアプリケーションIDとを用いて、ID−KeyGen(msk,ID)を実行して、秘密鍵skIDを生成する。秘密鍵skIDは、例えば、[s]QID(=H1(ID))を実行して得る。
署名情報生成部3は、秘密鍵skIDとメッセージMとを用いて、ID−SigGen(skID,M)を実行して、署名情報(δID, M)を生成する。署名情報(δID, M)は、例えば、δID=(U,V)とする。Uは、[r]QIDにより算出される。rは[1,q−1]からランダムに選んだ値である。Vは、[r+h]skIDにより算出する。hは、H2(M,U)により算出される。
続いて、署名情報生成部3は、署名情報(δID, M)を検証装置23へ送信する。
なお、署名情報生成部3は、秘密鍵skIDとメッセージMとマスタ公開鍵mpkとを用いて、署名情報(δID, M)を生成してもよい。
検証装置23は、登録された公開鍵pk(=マスタ公開鍵mpk)と、アプリケーションIDと、受信した署名情報(δID, M)とを用いて、検証をする。検証は、例えば、ID−Verify(mpk,ID,(δID, M))を実行し、e(Ppub,U+[h],QID)=e(P,V)が成立したら受理、そうでない場合には不受理を出力する。ただし、h=H2(M,U)とする。また、検証装置23は、検証後、受理した場合は受理した旨を端末装置22へ送信し、不受理の場合は不受理である旨を端末装置22へ送信する。
[装置動作]
次に、本発明の実施の形態における署名処理装置の動作について、図2から図5を用いて説明する。図6は、署名処理システム(登録)の動作の一例を示す図である。図7は、署名処理システム(認証)の動作の一例を示す図である。以下の説明においては、適宜図2から図5を参酌する。また、本実施の形態では、署名処理装置1を動作させることによって、署名処理方法が実施される。よって、本実施の形態における署名処理方法の説明は、以下の署名処理装置1の動作説明に代える。
まず、図6を用いて、署名処理システム20の登録の動作について説明する。
設定装置21は、まず、セキュリティパラメータkを取得し、セキュリティパラメータkに基づいて、マスタ秘密鍵mskを生成する(ステップA1)。続いて、設定装置21は、生成したマスタ秘密鍵mskを端末装置22に設定する(ステップA2)。
具体的には、設定装置21は、まず、製造元が用意したセキュリティパラメータkを取得し、セキュリティパラメータkに基づいて、セキュリティパラメータkに対応するマスタ公開鍵mpkとマスタ秘密鍵mskとを生成する。
続いて、設定装置21は、生成したマスタ公開鍵mpkとマスタ秘密鍵mskとを、端末装置22が有する署名処理装置1へ記憶する。例えば、設定装置21は、マスタ秘密鍵mskを埋め込んだ公開鍵生成プログラムと秘密鍵生成プログラムとを生成し、公開鍵生成プログラムを公開鍵情報生成部24にインストールし、秘密鍵生成プログラムを秘密鍵情報生成部2にインストールする。
続いて、端末装置22の公開鍵情報生成部24は、予め設定されたマスタ秘密鍵mskと、サービスに対応したアプリケーションIDと、マスタ公開鍵mpkとに基づいて、アプリケーションIDに対応する公開鍵pkを生成する(ステップA3)。
なお、端末装置22の秘匿部4は、公開鍵pkを生成する過程において生成される、マスタ秘密鍵msk、又は、公開鍵pk、又は、それら両方を、秘匿領域に一時記憶する。更に、秘匿部4は、公開鍵pkを生成する過程において生成される、マスタ秘密鍵mskに関係する演算結果を、秘匿領域に一時記憶してもよい。
続いて、端末装置22は、公開鍵pkをサービス提供元サーバなどに設けられている検証装置23へ送信する(ステップA4)。サービス提供元サーバの検証装置23は、公開鍵pkを受信した場合、公開鍵pkを記憶する(ステップA5)。具体的には、検証装置23は、公開鍵pkを受信した場合、利用者情報と公開鍵pkとを関連付けて記憶する。その後、検証装置23は、利用者を識別する利用者IDを生成して、端末装置22に送信する。例えば、FIDO(Fast IDentity Online)に適用する場合、公開パラメータにAuthenticatorのAttestation秘密鍵で署名を付与する。
[変形例1]
変形例1における署名処理(登録)について図6を用いて説明をする。
ステップA1において、設定装置21は、セキュリティパラメータkを用いて、Setup(1^k)を実行し、パラメータParamを生成する。続いて、設定装置21は、パラメータParamを用いて、KeyGen_msk(param, 1^k)を実行し、マスタ秘密鍵mskを生成する。設定装置21は、マスタ公開鍵mpk=(Param,H)を生成する。
ステップA2において、設定装置21は、マスタ公開鍵を埋め込んだ公開鍵生成プログラムを公開鍵情報生成部24にインストールし、マスタ秘密鍵mskを埋め込んだ秘密鍵生成プログラムを秘密鍵情報生成部2にインストールする。
ステップA3において、公開鍵情報生成部24は、マスタ秘密鍵mskとアプリケーションIDとにハッシュ関数Hを適用して、秘密鍵sk(=H(msk,ID))を生成する。続いて、公開鍵情報生成部24は、パラメータParam、データ1^k、秘密鍵skを用いて、KeyGen_pk(Param,1^k,sk)を実行し、公開鍵pkを生成する。なお、ステップA3において、公開鍵情報生成部24は、マスタ秘密鍵msk、秘密鍵sk、公開鍵pk、秘密鍵sk及び公開鍵pkを生成する過程で生成された演算結果を、秘匿部4を用いて秘匿しながら、秘密鍵sk及び公開鍵pkを生成する。
ステップA4において、端末装置22は、公開鍵情報生成部24が生成した公開鍵pkを、検証装置23へ送信する。
[変形例2]
変形例2における署名処理(登録)について図6を用いて説明をする。
ステップA1において、設定装置21は、セキュリティパラメータkを用いて、ID−Setup(1^k)を実行し、マスタ秘密鍵mskとマスタ公開鍵mpkとを生成する。
ステップA2において、設定装置21は、マスタ秘密鍵mskを埋め込んだ秘密鍵生成プログラムを秘密鍵情報生成部2にインストールする。
なお、変形例2においては、ステップA3の処理を実行しなくてもよい。その理由は、マスタ公開鍵mpkを公開鍵pkとして用いるためである。そうすることで、公開鍵pkを生成する際に、マスタ秘密鍵msk、秘密鍵sk、更にそれらに関係する演算結果が漏洩するリスクが少なくなる。
ステップA4において、端末装置22は、マスタ公開鍵mpkを、検証装置23へ送信する。
次に、図7を用いて、署名処理システム20の認証の動作について説明する。
秘密鍵情報生成部2は、まず、マスタ秘密鍵mskと、アプリケーションIDとに基づいて、アプリケーションIDに対応する秘密鍵skIDを生成する(ステップB1)。
続いて、署名情報生成部3は、秘密鍵skIDと認証に用いる署名対象であるメッセージMとに基づいて、メッセージMに対応する署名情報(δID, M)を生成する(ステップB2)。具体的には、端末装置22からサービス提供元サーバに利用者IDを送信し、サービス提供元サーバからサービスに対応するメッセージM(例えば、ランダムな値(チャレンジ)など)を受信する。その後、署名情報生成部3は、署名情報(δID, M)を生成する。
続いて、端末装置22は、生成した公開鍵pkと署名情報(δID, M)とを、検証装置23へ送信する(ステップB3)。
ここで、秘密鍵情報生成部2と署名情報生成部3とは、秘密鍵skID又は署名情報(δID, M)を生成する過程において生成される、秘匿部4の秘匿領域にマスタ秘密鍵msk、又は、秘密鍵skID、又は、それら両方を、生成過程において一時記憶する。更に、秘匿部4は、秘密鍵skID又は署名情報(δID, M)を生成する過程において生成される、マスタ秘密鍵mskに関係する演算結果、又は、秘密鍵skIDに関係する演算結果、又は、それら両方に関係する演算結果を、生成過程において一時記憶する。
なお、秘匿部4は、秘密鍵skID又は署名情報(δID, M)を生成する過程において、マスタ秘密鍵msk、秘密鍵skID、演算結果を以後生成に使用しないと判定した場合、判定した後所定時間内に一時記憶した、マスタ秘密鍵msk、秘密鍵skID、演算結果を、秘匿領域から消去する。
続いて、検証装置23は、サービスを利用する際に登録した公開鍵pkを用いて、メッセージMに基づいて生成された署名情報(δID, M)の検証をする(ステップB4)。また、検証装置23は、検証後において受理した場合、受理した旨を端末装置22へ送信し、不受理の場合は不受理である旨を端末装置22へ送信する(ステップB5)。
[変形例1]
変形例1における署名処理(認証)について図7を用いて説明をする。
ステップB1において、秘密鍵情報生成部2は、マスタ秘密鍵mskとアプリケーションIDとにハッシュ関数Hを適用して、秘密鍵sk(=H(msk,ID))を生成する。
ステップB2において、署名情報生成部3は、秘密鍵skとメッセージMとを用いて、SigGen(pk,sk,M)を実行し、署名情報(δID, M)を生成する。
ステップB3において、署名情報生成部3は、署名情報(δID, M)を検証装置23へ送信する。
なお、署名情報生成部3は、秘密鍵skとメッセージMと公開鍵pkとを用いて、署名情報(δID, M)を生成してもよい。この場合、公開鍵pkは、公開鍵情報生成部24とは別に、秘密鍵情報生成部2又は署名情報生成部3が、パラメータParam、データ1^k、秘密鍵skを用いて、公開鍵pkを生成する。
ステップB4において、検証装置23は、登録された公開鍵pkと、受信した署名情報(δID, M)とを用いて、Verify(pk,(δID, M))を実行して、受理、不受理であるかを検証する。
ステップB5において、検証装置23は、検証後、受理した場合は受理した旨を端末装置22へ送信し、不受理の場合は不受理である旨を端末装置22へ送信する。
[変形例2]
変形例2における署名処理(認証)について図7を用いて説明をする。
ステップB1において、秘密鍵情報生成部2は、マスタ秘密鍵mskとアプリケーションIDとを用いて、ID−KeyGen(msk,ID)を実行し、秘密鍵skを生成する。
ステップB2において、署名情報生成部3は、秘密鍵skとメッセージMとを用いて、ID−SigGen(skID,M)を実行し、署名情報(δID, M)を生成する。なお、ステップB2において、署名情報生成部3は、秘密鍵skIDとメッセージMとマスタ公開鍵mpkとを用いて、署名情報(δID, M)を生成してもよい。
ステップB3において、署名情報生成部3は、署名情報(δID, M)を検証装置23へ送信する。
ステップB4において、検証装置23は、登録された公開鍵pkと、受信した署名情報(δID, M)とを用いて、ID−Verify(mpk,ID,(δID, M))を実行して、受理、不受理であるかを検証する。
ステップB5において、検証装置23は、検証後、受理した場合は受理した旨を端末装置22へ送信し、不受理の場合は不受理である旨を端末装置22へ送信する。
[本実施の形態の効果]
以上のように、本実施の形態によれば、アプリケーションの実行中において秘密鍵skを生成する場合においても、ホワイトボックス実装方式のように、秘密鍵を保護できる。すなわち、署名処理装置1に予め記憶されたマスタ秘密鍵mskと、アプリケーションを識別するアプリケーションIDとに基づいて動的に秘密鍵を生成する場合においても、秘匿部4を用いて秘密鍵を生成するので、外部に秘密鍵を漏洩しないようにできる。
また、本実施の形態では、秘密鍵と署名対象であるメッセージMとに基づいて、署名情報(δID, M)を生成する場合においても、秘匿部4を用いて署名情報(δID,M)を生成するので、外部に秘密鍵が漏洩しないようにできる。
また、公開鍵pkを生成する過程において生成される、マスタ秘密鍵msk、又は、公開鍵pk、又は、それら両方を、秘匿領域に一時記憶するので、外部にそれらの情報が漏洩しないようにできる。更に、公開鍵pkを生成する過程において生成される、マスタ秘密鍵mskに関係する演算結果を、秘匿領域に一時記憶するので、外部にそれらの情報が漏洩しないようにできる。
また、本実施の形態によれば、署名処理装置1がアプリケーションごとに、秘匿しながら動的に秘密鍵を生成するため、秘密鍵を製造元が把握することができないようにできる。また、予め複数の秘密鍵を署名処理装置1に記憶しないため、署名処理装置1の記憶容量を小さくできる。
更に、本実施の形態によれば、署名処理装置1は、秘密鍵を秘匿しながら動的に生成できるため、秘密鍵を変更しても、秘密鍵を外部に漏洩しないように保護することができる。
[プログラム]
本発明の実施の形態におけるプログラムは、コンピュータに、図6に示すステップA1からA5、図7に示すステップB1からB5を実行させるプログラムであればよい。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態における署名処理装置と署名処理方法とを実現することができる。この場合、コンピュータのプロセッサは、秘密鍵情報生成部2、署名情報生成部3、秘匿部4、公開鍵情報生成部24として機能し、処理を行なう。
また、本実施の形態におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されてもよい。この場合は、例えば、各コンピュータが、それぞれ、秘密鍵情報生成部2、署名情報生成部3、秘匿部4、公開鍵情報生成部24のいずれかとして機能してもよい。
[物理構成]
ここで、実施の形態におけるプログラムを実行することによって、署名処理装置1を実現するコンピュータについて図8を用いて説明する。図8は、署名処理装置を実現するコンピュータの一例を示す図である。
図8に示すように、コンピュータ110は、CPU111と、メインメモリ112と、記憶装置113と、入力インターフェイス114と、表示コントローラ115と、データリーダ/ライタ116と、通信インターフェイス117とを有する。これらの各部は、バス121を介して、互いにデータ通信可能に接続される。なお、コンピュータ110は、CPU111に加えて、又はCPU111に代えて、GPU(Graphics Processing Unit)、又はFPGA(Field-Programmable Gate Array)を備えていてもよい。
CPU111は、記憶装置113に格納された、本実施の形態におけるプログラム(コード)をメインメモリ112に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ112は、典型的には、DRAM(Dynamic Random Access Memory)等の揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体120に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス117を介して接続されたインターネット上で流通するものであってもよい。
また、記憶装置113の具体例としては、ハードディスクドライブの他、フラッシュメモリ等の半導体記憶装置があげられる。入力インターフェイス114は、CPU111と、キーボード及びマウスといった入力機器118との間のデータ伝送を仲介する。表示コントローラ115は、ディスプレイ装置119と接続され、ディスプレイ装置119での表示を制御する。
データリーダ/ライタ116は、CPU111と記録媒体120との間のデータ伝送を仲介し、記録媒体120からのプログラムの読み出し、及びコンピュータ110における処理結果の記録媒体120への書き込みを実行する。通信インターフェイス117は、CPU111と、他のコンピュータとの間のデータ伝送を仲介する。
また、記録媒体120の具体例としては、CF(Compact Flash(登録商標))及びSD(Secure Digital)等の汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)等の磁気記録媒体、又はCD−ROM(Compact Disk Read Only Memory)などの光学記録媒体があげられる。
なお、本実施の形態における署名処理装置1は、プログラムがインストールされたコンピュータではなく、各部に対応したハードウェアを用いることによっても実現可能である。更に、署名処理装置1は、一部がプログラムで実現され、残りの部分がハードウェアで実現されていてもよい。
[付記]
以上の実施の形態に関し、更に以下の付記を開示する。上述した実施の形態の一部又は全部は、以下に記載する(付記1)から(付記20)により表現することができるが、以下の記載に限定されるものではない。
(付記1)
予め設定されたマスタ秘密鍵情報とアプリケーションを識別するアプリケーション識別情報とに基づいて、前記アプリケーション識別情報に対応する秘密鍵情報を生成する、秘密鍵情報生成部と、
前記秘密鍵情報と署名対象であるメッセージ情報とに基づいて、前記メッセージ情報に対応する署名情報を生成する、署名情報生成部と、
前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報、又は、前記秘密鍵情報、又は、それら両方を一時記憶する秘匿領域を有する、秘匿部と、
を有する署名処理装置。
(付記2)
付記1に記載の署名処理装置であって、
前記秘匿部は、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報に関係する演算結果、又は、前記秘密鍵情報に関係する演算結果、又は、それら両方に関係する演算結果を一時記憶する
ことを特徴とする署名処理装置。
(付記3)
付記2に記載の署名処理装置であって、
前記秘匿部は、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を以後生成に使用しないと判定した場合、判定した後所定時間内に一時記憶した、前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を、前記秘匿領域から消去する
ことを特徴とする署名処理装置。
(付記4)
付記1から3のいずれか一つに記載の署名処理装置であって、
前記秘密鍵情報生成部は、前記マスタ秘密鍵情報と前記アプリケーション識別情報とにハッシュ関数を利用して前記秘密鍵情報を生成する
ことを特徴とする署名処理装置。
(付記5)
付記1から4のいずれか一つに記載の署名処理装置であって、
前記マスタ秘密鍵情報と、前記アプリケーション識別情報と、マスタ公開鍵情報とに基づいて、前記アプリケーション識別情報に対応する公開鍵情報を生成する、公開鍵情報生成部と、
前記秘匿部は、前記公開鍵情報を生成する過程において、前記マスタ秘密鍵情報、又は、前記公開鍵情報、又は、それら両方を一時記憶する
ことを特徴とする署名処理装置。
(付記6)
(a)予め設定されたマスタ秘密鍵情報とアプリケーションを識別するアプリケーション識別情報とに基づいて、前記アプリケーション識別情報に対応する秘密鍵情報を生成する、ステップと、
(b)前記秘密鍵情報と署名対象であるメッセージ情報とに基づいて、前記メッセージ情報に対応する署名情報を生成する、ステップと、
(c)前記秘密鍵情報又は前記署名情報を生成する過程において、秘匿領域に前記マスタ秘密鍵情報、又は、前記秘密鍵情報、又は、それら両方を一時記憶する、ステップと、
を有する署名処理方法。
(付記7)
付記6に記載の署名処理方法であって、
前記(c)のステップにおいて、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報に関係する演算結果、又は、前記秘密鍵情報に関係する演算結果、又は、それら両方に関係する演算結果を一時記憶する
ことを特徴とする署名処理方法。
(付記8)
付記7に記載の署名処理方法であって、
前記(c)のステップにおいて、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を以後生成に使用しないと判定した場合、判定した後所定時間内に一時記憶した、前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を、前記秘匿領域から消去する
ことを特徴とする署名処理方法。
(付記9)
付記6から8のいずれか一つに記載の署名処理方法であって、
前記(b)のステップにおいて、前記マスタ秘密鍵情報と前記アプリケーション識別情報とにハッシュ関数を利用して前記秘密鍵情報を生成する
ことを特徴とする署名処理方法。
(付記10)
付記6から9のいずれか一つに記載の署名処理方法であって、
(d)前記マスタ秘密鍵情報と、前記アプリケーション識別情報と、マスタ公開鍵情報とに基づいて、前記アプリケーション識別情報に対応する公開鍵情報を生成する、ステップを有し、
前記(c)のステップにおいて、前記公開鍵情報を生成する過程において、前記マスタ秘密鍵情報、又は、前記公開鍵情報、又は、それら両方を一時記憶する
ことを特徴とする署名処理方法。
(付記11)
セキュリティ情報に基づいて生成したマスタ秘密鍵情報を、秘匿状態において署名処理装置に設定する、設定装置と、
予め設定されたマスタ秘密鍵情報とアプリケーションを識別するアプリケーション識別情報とに基づいて、前記アプリケーション識別情報に対応する秘密鍵情報を生成し、前記秘密鍵情報と署名対象であるメッセージ情報とに基づいて、前記メッセージ情報に対応する署名情報を生成し、前記秘密鍵情報又は前記署名情報を生成する過程において、秘匿領域に前記マスタ秘密鍵情報、又は、前記秘密鍵情報、又は、それら両方を一時記憶する、端末装置と、
前記メッセージ情報に基づいて、前記署名情報を検証する、検証装置と
を有する署名処理システム。
(付記12)
付記11に記載の署名処理システムであって、
前記端末装置は、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報に関係する演算結果、又は、前記秘密鍵情報に関係する演算結果、又は、それら両方に関係する演算結果を一時記憶する
ことを特徴とする署名処理システム。
(付記13)
付記12に記載の署名処理システムであって、
前記端末装置は、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を以後生成に使用しないと判定した場合、判定した後所定時間内に前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を、前記秘匿領域から消去する
ことを特徴とする署名処理システム。
(付記14)
付記11から13のいずれか一つに記載の署名処理システムであって、
前記端末装置は、前記マスタ秘密鍵情報と前記アプリケーション識別情報とにハッシュ関数を利用して前記秘密鍵情報を生成する
ことを特徴とする署名処理システム。
(付記15)
付記11から14のいずれか一つに記載の署名処理システムであって、
前記端末装置は、前記マスタ秘密鍵情報と、前記アプリケーション識別情報と、マスタ公開鍵情報とに基づいて、前記アプリケーション識別情報に対応する公開鍵情報を生成し、前記公開鍵情報を生成する過程において、前記マスタ秘密鍵情報、又は、前記公開鍵情報、又は、それら両方を一時記憶する
ことを特徴とする署名処理システム。
(付記16)
コンピュータに、
(a)予め設定されたマスタ秘密鍵情報とアプリケーションを識別するアプリケーション識別情報とに基づいて、前記アプリケーション識別情報に対応する秘密鍵情報を生成する、ステップと、
(b)前記秘密鍵情報と署名対象であるメッセージ情報とに基づいて、前記メッセージ情報に対応する署名情報を生成する、ステップと、
(c)前記秘密鍵情報又は前記署名情報を生成する過程において、秘匿領域に前記マスタ秘密鍵情報、又は、前記秘密鍵情報、又は、それら両方を一時記憶する、ステップと、
を実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
(付記17)
付記16に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記(c)のステップにおいて、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報に関係する演算結果、又は、前記秘密鍵情報に関係する演算結果、又は、それら両方に関係する演算結果を一時記憶する
ことを特徴とするプログラムを記録したコンピュータ読み取り可能な記録媒体。
(付記18)
付記17に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記(c)のステップにおいて、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を以後生成に使用しないと判定した場合、判定した後所定時間内に一時記憶した、前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を、前記秘匿領域から消去する
ことを特徴とするプログラムを記録したコンピュータ読み取り可能な記録媒体。
(付記19)
付記16又は18に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記(b)のステップにおいて、前記マスタ秘密鍵情報と前記アプリケーション識別情報とにハッシュ関数を利用して前記秘密鍵情報を生成する
ことを特徴とするプログラムを記録したコンピュータ読み取り可能な記録媒体。
(付記20)
付記16から19のいずれか一つに記載のプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記コンピュータに、
(d)前記マスタ秘密鍵情報と、前記アプリケーション識別情報と、マスタ公開鍵情報とに基づいて、前記アプリケーション識別情報に対応する公開鍵情報を生成する、ステップを実行させ、
前記(c)のステップにおいて、前記公開鍵情報を生成する過程において、前記マスタ秘密鍵情報、又は、前記公開鍵情報、又は、それら両方を一時記憶する
ことを特徴とするプログラムを記録したコンピュータ読み取り可能な記録媒体。
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施の形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
以上のように本発明によれば、動的に秘密鍵を生成する場合においても秘密鍵を保護することができる。本発明は、動的に秘密鍵を生成することが必要な分野において有用である。
1 署名処理装置
2 秘密鍵情報生成部
3 署名情報生成部
4 秘匿部
20 署名処理システム
21 設定装置
22 端末装置
23 検証装置
24 公開鍵情報生成部
110 コンピュータ
111 CPU
112 メインメモリ
113 記憶装置
114 入力インターフェイス
115 表示コントローラ
116 データリーダ/ライタ
117 通信インターフェイス
118 入力機器
119 ディスプレイ装置
120 記録媒体
121 バス
本発明は、署名処理をする署名処理装置、署名処理方法、署名処理システムに関し、更には、これらを実現するためのプログラムに関する。
本発明の目的の一例は、動的に秘密鍵情報を生成する場合においても秘密鍵を保護できる署名処理装置、署名処理方法、署名処理システム、及びプログラムを提供することにある。
更に、上記目的を達成するため、本発明の一側面におけるプログラムは
コンピュータに、
(a)予め設定されたマスタ秘密鍵情報とアプリケーションを識別するアプリケーション識別情報とに基づいて、前記アプリケーション識別情報に対応する秘密鍵情報を生成する、ステップと、
(b)前記秘密鍵情報と署名対象であるメッセージ情報とに基づいて、前記メッセージ情報に対応する署名情報を生成する、ステップと、
(c)前記秘密鍵情報又は前記署名情報を生成する過程において、秘匿領域に前記マスタ秘密鍵情報、又は、前記秘密鍵情報、又は、それら両方を一時記憶する、ステップと、
を実行させることを特徴とする。
(付記16)
コンピュータに、
(a)予め設定されたマスタ秘密鍵情報とアプリケーションを識別するアプリケーション識別情報とに基づいて、前記アプリケーション識別情報に対応する秘密鍵情報を生成する、ステップと、
(b)前記秘密鍵情報と署名対象であるメッセージ情報とに基づいて、前記メッセージ情報に対応する署名情報を生成する、ステップと、
(c)前記秘密鍵情報又は前記署名情報を生成する過程において、秘匿領域に前記マスタ秘密鍵情報、又は、前記秘密鍵情報、又は、それら両方を一時記憶する、ステップと、
を実行させるプログラム。
(付記17)
付記16に記載のプログラムであって、
前記(c)のステップにおいて、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報に関係する演算結果、又は、前記秘密鍵情報に関係する演算結果、又は、それら両方に関係する演算結果を一時記憶する
ことを特徴とするプログラム。
(付記18)
付記17に記載のプログラムであって、
前記(c)のステップにおいて、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を以後生成に使用しないと判定した場合、判定した後所定時間内に一時記憶した、前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を、前記秘匿領域から消去する
ことを特徴とするプログラム。
(付記19)
付記16から18のいずれか一つに記載のプログラムであって、
前記(b)のステップにおいて、前記マスタ秘密鍵情報と前記アプリケーション識別情報とにハッシュ関数を利用して前記秘密鍵情報を生成する
ことを特徴とするプログラム。
(付記20)
付記16から19のいずれか一つに記載のプログラムであって、
前記コンピュータに、
(d)前記マスタ秘密鍵情報と、前記アプリケーション識別情報と、マスタ公開鍵情報とに基づいて、前記アプリケーション識別情報に対応する公開鍵情報を生成する、ステップを実行させ、
前記(c)のステップにおいて、前記公開鍵情報を生成する過程において、前記マスタ秘密鍵情報、又は、前記公開鍵情報、又は、それら両方を一時記憶する
ことを特徴とするプログラム。

Claims (20)

  1. 予め設定されたマスタ秘密鍵情報とアプリケーションを識別するアプリケーション識別情報とに基づいて、前記アプリケーション識別情報に対応する秘密鍵情報を生成する、秘密鍵情報生成手段と、
    前記秘密鍵情報と署名対象であるメッセージ情報とに基づいて、前記メッセージ情報に対応する署名情報を生成する、署名情報生成手段と、
    前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報、又は、前記秘密鍵情報、又は、それら両方を一時記憶する秘匿領域を有する、秘匿手段と、
    を有する署名処理装置。
  2. 請求項1に記載の署名処理装置であって、
    前記秘匿手段は、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報に関係する演算結果、又は、前記秘密鍵情報に関係する演算結果、又は、それら両方に関係する演算結果を一時記憶する
    ことを特徴とする署名処理装置。
  3. 請求項2に記載の署名処理装置であって、
    前記秘匿手段は、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を以後生成に使用しないと判定した場合、判定した後所定時間内に一時記憶した、前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を、前記秘匿領域から消去する
    ことを特徴とする署名処理装置。
  4. 請求項1から3のいずれか一つに記載の署名処理装置であって、
    前記秘密鍵情報生成手段は、前記マスタ秘密鍵情報と前記アプリケーション識別情報とにハッシュ関数を利用して前記秘密鍵情報を生成する
    ことを特徴とする署名処理装置。
  5. 請求項1から4のいずれか一つに記載の署名処理装置であって、
    前記マスタ秘密鍵情報と、前記アプリケーション識別情報と、マスタ公開鍵情報とに基づいて、前記アプリケーション識別情報に対応する公開鍵情報を生成する、公開鍵情報生成手段と、
    前記秘匿手段は、前記公開鍵情報を生成する過程において、前記マスタ秘密鍵情報、又は、前記公開鍵情報、又は、それら両方を一時記憶する
    ことを特徴とする署名処理装置。
  6. (a)予め設定されたマスタ秘密鍵情報とアプリケーションを識別するアプリケーション識別情報とに基づいて、前記アプリケーション識別情報に対応する秘密鍵情報を生成する、ステップと、
    (b)前記秘密鍵情報と署名対象であるメッセージ情報とに基づいて、前記メッセージ情報に対応する署名情報を生成する、ステップと、
    (c)前記秘密鍵情報又は前記署名情報を生成する過程において、秘匿領域に前記マスタ秘密鍵情報、又は、前記秘密鍵情報、又は、それら両方を一時記憶する、ステップと、
    を有する署名処理方法。
  7. 請求項6に記載の署名処理方法であって、
    前記(c)のステップにおいて、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報に関係する演算結果、又は、前記秘密鍵情報に関係する演算結果、又は、それら両方に関係する演算結果を一時記憶する
    ことを特徴とする署名処理方法。
  8. 請求項7に記載の署名処理方法であって、
    前記(c)のステップにおいて、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を以後生成に使用しないと判定した場合、判定した後所定時間内に一時記憶した、前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を、前記秘匿領域から消去する
    ことを特徴とする署名処理方法。
  9. 請求項6から8のいずれか一つに記載の署名処理方法であって、
    前記(b)のステップにおいて、前記マスタ秘密鍵情報と前記アプリケーション識別情報とにハッシュ関数を利用して前記秘密鍵情報を生成する
    ことを特徴とする署名処理方法。
  10. 請求項6から9のいずれか一つに記載の署名処理方法であって、
    (d)前記マスタ秘密鍵情報と、前記アプリケーション識別情報と、マスタ公開鍵情報とに基づいて、前記アプリケーション識別情報に対応する公開鍵情報を生成する、ステップを有し、
    前記(c)のステップにおいて、前記公開鍵情報を生成する過程において、前記マスタ秘密鍵情報、又は、前記公開鍵情報、又は、それら両方を一時記憶する
    ことを特徴とする署名処理方法。
  11. セキュリティ情報に基づいて生成したマスタ秘密鍵情報を、秘匿状態において署名処理装置に設定する、設定装置と、
    予め設定されたマスタ秘密鍵情報とアプリケーションを識別するアプリケーション識別情報とに基づいて、前記アプリケーション識別情報に対応する秘密鍵情報を生成し、前記秘密鍵情報と署名対象であるメッセージ情報とに基づいて、前記メッセージ情報に対応する署名情報を生成し、前記秘密鍵情報又は前記署名情報を生成する過程において、秘匿領域に前記マスタ秘密鍵情報、又は、前記秘密鍵情報、又は、それら両方を一時記憶する、端末装置と、
    前記メッセージ情報に基づいて、前記署名情報を検証する、検証装置と
    を有する署名処理システム。
  12. 請求項11に記載の署名処理システムであって、
    前記端末装置は、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報に関係する演算結果、又は、前記秘密鍵情報に関係する演算結果、又は、それら両方に関係する演算結果を一時記憶する
    ことを特徴とする署名処理システム。
  13. 請求項12に記載の署名処理システムであって、
    前記端末装置は、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を以後生成に使用しないと判定した場合、判定した後所定時間内に前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を、前記秘匿領域から消去する
    ことを特徴とする署名処理システム。
  14. 請求項11から13のいずれか一つに記載の署名処理システムであって、
    前記端末装置は、前記マスタ秘密鍵情報と前記アプリケーション識別情報とにハッシュ関数を利用して前記秘密鍵情報を生成する
    ことを特徴とする署名処理システム。
  15. 請求項11から14のいずれか一つに記載の署名処理システムであって、
    前記端末装置は、前記マスタ秘密鍵情報と、前記アプリケーション識別情報と、マスタ公開鍵情報とに基づいて、前記アプリケーション識別情報に対応する公開鍵情報を生成し、前記公開鍵情報を生成する過程において、前記マスタ秘密鍵情報、又は、前記公開鍵情報、又は、それら両方を一時記憶する
    ことを特徴とする署名処理システム。
  16. コンピュータに、
    (a)予め設定されたマスタ秘密鍵情報とアプリケーションを識別するアプリケーション識別情報とに基づいて、前記アプリケーション識別情報に対応する秘密鍵情報を生成する、ステップと、
    (b)前記秘密鍵情報と署名対象であるメッセージ情報とに基づいて、前記メッセージ情報に対応する署名情報を生成する、ステップと、
    (c)前記秘密鍵情報又は前記署名情報を生成する過程において、秘匿領域に前記マスタ秘密鍵情報、又は、前記秘密鍵情報、又は、それら両方を一時記憶する、ステップと、
    を実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
  17. 請求項16に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
    前記(c)のステップにおいて、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報に関係する演算結果、又は、前記秘密鍵情報に関係する演算結果、又は、それら両方に関係する演算結果を一時記憶する
    ことを特徴とするプログラムを記録したコンピュータ読み取り可能な記録媒体。
  18. 請求項17に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
    前記(c)のステップにおいて、前記秘密鍵情報又は前記署名情報を生成する過程において、前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を以後生成に使用しないと判定した場合、判定した後所定時間内に一時記憶した、前記マスタ秘密鍵情報、前記秘密鍵情報、前記演算結果を、前記秘匿領域から消去する
    ことを特徴とするプログラムを記録したコンピュータ読み取り可能な記録媒体。
  19. 請求項16又は18に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
    前記(b)のステップにおいて、前記マスタ秘密鍵情報と前記アプリケーション識別情報とにハッシュ関数を利用して前記秘密鍵情報を生成する
    ことを特徴とするプログラムを記録したコンピュータ読み取り可能な記録媒体。
  20. 請求項16から19のいずれか一つに記載のプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
    前記コンピュータに、
    (d)前記マスタ秘密鍵情報、前記アプリケーション識別情報と、マスタ公開鍵情報とに基づいて、前記アプリケーション識別情報に対応する公開鍵情報を生成する、ステップを実行させ、
    前記(c)のステップにおいて、前記公開鍵情報を生成する過程において、前記マスタ秘密鍵情報、又は、前記公開鍵情報、又は、それら両方を一時記憶する
    ことを特徴とするプログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2020537944A 2018-08-22 2018-08-22 署名処理装置、署名処理方法、署名処理システム、及びプログラム Active JP7070689B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/031055 WO2020039527A1 (ja) 2018-08-22 2018-08-22 署名処理装置、署名処理方法、署名処理システム、及びコンピュータ読み取り可能な記録媒体

Publications (2)

Publication Number Publication Date
JPWO2020039527A1 true JPWO2020039527A1 (ja) 2021-05-13
JP7070689B2 JP7070689B2 (ja) 2022-05-18

Family

ID=69592829

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020537944A Active JP7070689B2 (ja) 2018-08-22 2018-08-22 署名処理装置、署名処理方法、署名処理システム、及びプログラム

Country Status (2)

Country Link
JP (1) JP7070689B2 (ja)
WO (1) WO2020039527A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120249292A1 (en) * 2011-01-13 2012-10-04 Hong Kong Applied Science And Technology Research Institute Co., Ltd. Proximity based biometric identification systems and methods
JP2014068140A (ja) * 2012-09-25 2014-04-17 Sony Corp 情報処理装置、情報処理方法及びプログラム
JP2017108293A (ja) * 2015-12-10 2017-06-15 ルネサスエレクトロニクス株式会社 半導体集積回路装置およびデータ処理装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120249292A1 (en) * 2011-01-13 2012-10-04 Hong Kong Applied Science And Technology Research Institute Co., Ltd. Proximity based biometric identification systems and methods
JP2014068140A (ja) * 2012-09-25 2014-04-17 Sony Corp 情報処理装置、情報処理方法及びプログラム
JP2017108293A (ja) * 2015-12-10 2017-06-15 ルネサスエレクトロニクス株式会社 半導体集積回路装置およびデータ処理装置

Also Published As

Publication number Publication date
WO2020039527A1 (ja) 2020-02-27
JP7070689B2 (ja) 2022-05-18

Similar Documents

Publication Publication Date Title
CN109313690B (zh) 自包含的加密引导策略验证
KR100792287B1 (ko) 자체 생성한 암호화키를 이용한 보안방법 및 이를 적용한보안장치
US10771264B2 (en) Securing firmware
US20050091496A1 (en) Method and system for distributed key management in a secure boot environment
JP5097130B2 (ja) 情報端末、セキュリティデバイス、データ保護方法及びデータ保護プログラム
CN112514321A (zh) 共享秘密建立
CN113434853B (zh) 一种将固件烧录至存储设备的方法及控制器
US20130019110A1 (en) Apparatus and method for preventing copying of terminal unique information in portable terminal
CN111401901B (zh) 生物支付设备的认证方法、装置、计算机设备和存储介质
JP6756056B2 (ja) 身元検証による暗号チップ
JP2018117185A (ja) 情報処理装置、情報処理方法
CN115168813A (zh) 固件签名以及处理器启动方法和装置
KR20070059891A (ko) 어플리케이션 인증 보안 시스템 및 그 인증 보안 방법
JP6888122B2 (ja) 半導体装置、更新データ提供方法、更新データ受取方法およびプログラム
JP6357091B2 (ja) 情報処理装置、及びコンピュータプログラム
KR102583995B1 (ko) 암호화 프로그램 다양화
CN111327429A (zh) 终端启动的处理方法和装置
JP7070689B2 (ja) 署名処理装置、署名処理方法、署名処理システム、及びプログラム
JP6246516B2 (ja) 情報処理システム
CN111046440B (zh) 一种安全区域内容的篡改验证方法及系统
KR20230137422A (ko) 디지털 장치를 위한 신뢰할 수 있는 컴퓨팅
CN110210189A (zh) 软件验证方法、软硬件绑定方法及其可编程器件
JP2015015542A (ja) 情報処理システム
US20240004986A1 (en) Cla certificateless authentication of executable programs
WO2024057411A1 (ja) メモリ更新装置、情報処理システム、メモリ更新方法及びコンピュータ可読媒体

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201106

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201106

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220204

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220405

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220418

R151 Written notification of patent or utility model registration

Ref document number: 7070689

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151