JP2011091517A - サインクリプションシステムおよびサインクリプション生成方法 - Google Patents

サインクリプションシステムおよびサインクリプション生成方法 Download PDF

Info

Publication number
JP2011091517A
JP2011091517A JP2009241964A JP2009241964A JP2011091517A JP 2011091517 A JP2011091517 A JP 2011091517A JP 2009241964 A JP2009241964 A JP 2009241964A JP 2009241964 A JP2009241964 A JP 2009241964A JP 2011091517 A JP2011091517 A JP 2011091517A
Authority
JP
Japan
Prior art keywords
user
key
public
data
public key
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
JP2009241964A
Other languages
English (en)
Other versions
JP5171787B2 (ja
Inventor
Masashi Takahashi
昌史 高橋
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2009241964A priority Critical patent/JP5171787B2/ja
Publication of JP2011091517A publication Critical patent/JP2011091517A/ja
Application granted granted Critical
Publication of JP5171787B2 publication Critical patent/JP5171787B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】より安全性の高いサインクリプション技術を提供する。
【解決手段】署名付き暗号化時、署名付き暗号化対象データに対する署名生成後、署名付き暗号化対象データに対して暗号化を行い、また署名付き暗号化データの復号および検証時に、まず復号化を行って得られた復号データの正当性を署名検証行うことで検証する。この結果、サインクリプション生成時に不当な復号および検証者のユーザ公開鍵が使われるなどの問題があった場合でも検証時に検出することができる。さらに、実際の暗号化および復号は共通鍵暗号を用いることにより、幅広い共通鍵暗号と組み合わせることが可能となり、より安全性の高いサインクリプション技術を実現することが可能となる。
【選択図】図1

Description

本発明は、情報セキュリティ技術としての暗号および署名技術に関するものであり、特に、暗号化と署名を同時に行うサインクリプション技術に関するものである。
任意の文字列を公開鍵として用いることのできるIDベース方式によるサインクリプションがある。サインクリプションとは、暗号化と署名(認証)とを同時に行うことで、それぞれの処理に含まれる共通化可能な処理を共有し、処理の無駄を省くことで高速処理を可能とするものである。
IDベースサインクリプションを実現するシステムは、公開鍵の認証を行う認証局の代わりに、秘密鍵生成センタを備える。秘密鍵生成センタでは、システムで共通に用いる公開パラメータを定め、各利用者が公開鍵として選択する任意の文字列であるID(例えば、電子メールアドレス)に対して、秘密鍵生成センタが外部にもれないよう厳重に保管するマスター鍵を用いて公開鍵毎に秘密鍵を生成し、当該利用者に配布する。秘密鍵生成センタでは、利用者が選択するID(公開鍵) と生成した秘密鍵とを対応づけて管理する。公開鍵の選定方法については、システム内でルール化しておく。
IDベースサインクリプションには任意の文字列であるIDを公開鍵とすることができるという利点を持つ反面、公開鍵から秘密鍵を生成する際に秘密鍵生成センタの管理するマスター鍵を用いる必要があるため、マスター鍵の漏洩や秘密鍵生成センタによるマスター鍵不正利用により署名付き暗号化データの偽造や正規の受信者以外の検証および復号などの問題が生じる可能性がある。
この問題に対して、秘密鍵生成センタに依存しないIDベースサインクリプションが提案されている。この方式では秘密鍵の生成を従来の秘密鍵生成センタにおいて、マスター鍵を用いて生成する部分秘密鍵と、利用者が独自に生成する部分とに分割、公開鍵についてもIDに加えて利用者が利用者独自の秘密鍵を用いて生成するユーザ公開鍵を用いることにより、秘密鍵生成センタの管理するマスター鍵を悪用したとしても署名付き暗号化データの偽造および復号ができないようにしている。
これらは、ペアリングと呼ばれる双線形写像の性質を応用して実現される(例えば、非特許文献1 参照。) 。
ペアリングとは、位数がqの2つの群をG1 、G とした時、G1×G1 からG への双線形写像eで以下の性質を満たすもののことである。
1. 任意のP,Q∈G1および整数abに対してeは
e(aP,bQ)=e(P,Q)abを満たす。
2. 任意のP,Q∈G1に対してe(P,Q)≠ 1(1はGの単位元)を満たす。
3. すべてのP, Q∈G1に対してe(P,Q)を効率的に計算できる。
具体的なペアリングとして、有限体上の楕円曲線上で定義されるWeilペアリングおよびTateペアリングなどが知られている。
まず、非特許文献1に開示されている、秘密鍵生成センタに依存しないIDベースサインクリプションについて説明する。
以下、本明細書において、秘密鍵生成センタに依存しないIDベースサインクリプションをサインクリプションと呼称する。
サインクリプションは、以下の5つの処理より構成される。1)、2)は、部分秘密鍵生成センタでの処理であり、3)は送信側および受信側の処理、4)は送信側の処理、5)は受信側の処理である。
1)公開パラメータおよびマスター鍵生成:システムで共通に用いる群やペアリングを含む公開パラメータの生成およびマスター鍵の生成を行う。公開パラメータは、外部に公開する。なお、システム全体の安全性を確保するため、マスター鍵は、システムの利用者を含む外部に漏洩しないように厳重に保管する。
2)部分秘密鍵生成:利用者のメールアドレス等、利用者と対応付けることができる文字列に対して、公開パラメータおよびマスター鍵を用いて、部分秘密鍵を生成する。利用者と対応付けられる文字列が公開鍵となる。
3)ユーザ鍵生成:公開パラメータおよび部分秘密鍵を用いて、ユーザ秘密鍵とユーザ公開鍵を生成する。
4)署名付き暗号化:公開パラメータ、署名付き暗号化データ生成者のユーザ秘密鍵、署名付き暗号文復号および検証者の公開鍵およびユーザ公開鍵を用いて、署名付き暗号化対象データの署名および暗号化を行い、署名付き暗号化データを生成する。
5)復号および検証:公開パラメータ、署名付き暗号化データ生成者の公開鍵およびユーザ公開鍵、署名付き暗号化データ復号および検証者の公開鍵、ユーザ公開鍵およびユーザ秘密鍵を用いて、署名付き暗号化データの復号および署名検証を行う。
次に上記1)から5)の各処理における、入力、出力、および処理について説明する。
以下、本明細書において、正整数nに対して{0,1}はnビットバイナリ系列を、{0,1}は全てのバイナリ系列を、XORはビット毎の排他的論理和をそれぞれ表す。
公開パラメータおよびマスター鍵生成:
入力:正整数k(セキュリティパラメータ)
出力:公開パラメータparams、マスター鍵s
処理手順:
1. kビットの素数qを選択する。
2. 位数qの2つの群G1、およびG1の生成元Pを選択する。
3. ペアリングe: G1×G1 → Gを選択する。
4. 0<s<qを満たす整数sをランダムに生成しマスター鍵とする。
5. Ppub←sPを計算する。
6. 4つのハッシュ関数H1、H、H、Hを選択する。
それぞれのハッシュ関数は以下に示す入出力を持つ。
:{0,1} → G1
:{0,1} →{0,1}
:{0,1} → G1
:{0,1} → G1
7.公開パラメータparams=
<q,G1,G,e,P,Ppub,H1,H,H,H>を出力する。
8.マスター鍵sを出力する。
2)部分秘密鍵生成:
入力:公開パラメータparams、マスター鍵s、利用者の公開鍵として用いる任意の文字列ID(ID∈{0,1}
出力:IDに対応する部分秘密鍵DID
処理手順:
1. QID ← H1(ID)を計算する。
2. DID ←sQIDを計算する。
3. 部分秘密鍵DIDを出力する。
3)ユーザ鍵生成:
入力:公開パラメータparams、IDに対応する部分秘密鍵DID
出力:IDに対応する秘密鍵SIDおよび公開鍵PKID
処理手順:
1. 0<xID<qを満たす整数xIDをランダムに選択する。
2. SID ←(xID,DID)とおく。
3. SIDをIDに対応する秘密鍵として出力する。
4. PKID ← xIDPを計算する。
5. PKIDをIDに対応する公開鍵として出力する。
4)署名付き暗号化:
入力:公開パラメータparams、署名付き暗号化データ生成者である利用者Aの公開鍵IDA、ユーザ公開鍵PKIDA、秘密鍵SIDA=(xIDA,DIDA)、署名付き暗号化データ検証者である利用者Bの公開鍵IDB、
ユーザ公開鍵PKIDB、署名付き暗号化対象データM
出力:署名付き暗号化データC=(U,V,W)
処理手順:
1. 0<r<qを満たす整数rをランダムに選択する。
2. U ←rPを計算する。
3. QIDB ← H1(IDB)を計算する。
4. T ← e(Ppub,QIDBを計算する。
5. J ←rPKIDBを計算する。
6. h ← H(U,T,J,IDB,PKIDB)を計算する。ここでhのビット長はMのビット長と同じとする。
7. hをマスク値として用いて、V ← M XOR hを計算する(暗号化)。
8. H ← H(U,V,IDA,PKIDA)を計算する。
9. I ← H(U,V,IDA,PKIDA)を計算する。
10. W ← DIDA +rH+xIDAIを計算する(署名生成)。
11. 署名付き暗号化データC ← (U,V,W)を出力する。
署名付き暗号化データ復号および検証:
入力:公開パラメータparams、署名付き暗号化データ生成者AのID(公開鍵)、IDA 、ユーザ公開鍵PKIDA、署名付き暗号化データ検証者BのID(公開鍵)、IDB、ユーザ公開鍵PKIDB、秘密鍵SIDB=(xIDB,DIDB)、署名付き暗号化データC=(U, V, W)
出力:復号データM(署名検証成功時)またはInvalid(署名検証失敗時)
処理手順:
1. H ← H(U,V,IDA,PKIDA)を計算する。
2. I ← H(U,V,IDA,PKIDA)を計算する。
3. QIDA ← H1(IDA)を計算する。
4. e(Ppub,QIDA)e(U,H)e(PKIDA,I) = e(P,W)が成立するかどうか判定することで署名検証を行い、成立すればステップ5に進み、成立しなければInvalidを出力し終了する。
5. T ← e(DIDB,U)を計算する。
6. J ← xIDBUを計算する。
7. h ← H(U,T,J,IDB,PKIDB)を計算する。ここでHのビット長はVのビット長と同じとする。
8. hをマスク値として用いて、M ← V XOR hを計算する。
9. 復号データMを出力する。
M. Barbosa and P. Farshim. Certificateless signcryption. In ACM Symposium on Information, Computer and Communications Security−ASIACCS 2008, pp. 369−372, Tokyo, Japan, 2008.
利用者Aを署名付き暗号化データ生成者、利用者Bを署名付き暗号化データ復号および検証者として、発明が解決しようとする課題について説明を行う。
上記において説明したサインクリプションでは、署名付き暗号化時において、まず利用者Bの公開鍵およびユーザ公開鍵を用いて、署名付き暗号化対象データの暗号化を行った後、署名付き暗号化対象データそのものに対してではなく暗号化データに対して、利用者Aの秘密鍵、公開鍵およびユーザ公開鍵を用いて署名を行うことで署名付き暗号化データを生成し、署名付き暗号化データ復号および検証時において、利用者Aの公開鍵およびユーザ公開鍵を用いて署名付き暗号化データに含まれる暗号化データに対する署名検証後、利用者Bの秘密鍵、公開鍵およびユーザ公開鍵を用いて、暗号化データの復号を行い、元のデータを復元する。
このため、例えば署名付き暗号化時に署名付き暗号化データ復号および検証者である利用者Bが生成した正規のユーザ公開鍵と異なるユーザ公開鍵を用いて、署名付き暗号化データを生成し、利用者B自身が正しい手続きで作成した正規のユーザ公開鍵を用いて、署名付き暗号化データ復号および検証を行う場合、生成および復号および検証時に用いる利用者Bのユーザ公開鍵は異なるが、署名検証時において、利用者Bのユーザ公開鍵を用いる必要がないこと、復号された暗号化データに対して、ではなく署名付き暗号化データに含まれる暗号化データに対して、検証が行われることから問題なく署名検証が可能となるが、その後、行われる暗号化データの復号では作成時と異なる利用者Bのユーザ公開鍵が使われるため間違ったデータが復号されるが、検出する手段が無いためそのまま出力されてしまうという問題を持つ。
さらに署名生成時に作成される2種類のハッシュ値を作成する際の入力が同じで違いが明確ではないという問題もある。
また、署名付き暗号化時の暗号化はデータ長と同じ長さのマスク値を生成しデータと排他的論理和を行う方法に限定されており、例えばAESなど他の共通鍵暗号と組み合わせる手段が提供されていない。
本発明は、上述の問題を鑑みて本発明がなされたのであり、本発明は、より安全性のサインクリプションシステムおよび方法を実現することを目的とする。
本発明はサインクリプションを実現するにあたり、安全性を高めたものである。
具体的には、任意の文字列を用いることのできる公開鍵に加えて、利用者自身が作成したユーザ公開鍵を用いて、暗号化と署名生成を同時に行うサインクリプションシステムであって、システム全体で用いる公開パラメータおよびマスター鍵を生成する公開パラメータおよびマスター鍵生成方法と、サインクリプションの利用者からの要求に応じて、前記公開パラメータおよびマスター鍵を用いて、利用者の公開鍵に対する部分秘密鍵を生成する部分秘密鍵生成方法と、前記公開パラメータと、前記部分秘密鍵生成方法を用いて生成した部分秘密鍵を用いて、利用者が生成する秘密鍵とユーザ公開鍵から構成されるユーザ鍵を生成するユーザ鍵生成方法と、前記公開パラメータと署名付き暗号化データ生成者の公開鍵、秘密鍵およびユーザ公開鍵に加えて、署名付き暗号化データ受信者の公開鍵およびユーザ公開鍵を用いて、署名付き暗号化対象データに対して、署名付き暗号化データを生成する署名付き暗号化方法と、前記公開パラメータと署名付き暗号化データ復号および検証者の公開鍵、秘密鍵およびユーザ公開鍵に加えて、署名付き暗号化データ生成者の公開鍵およびユーザ公開鍵を用いて、署名付き暗号化データの復号および検証を行う復号および検証方法を備え、前記署名付き暗号化方法において、署名付き暗号化対象のデータに対してまず署名を行った後に前記データを暗号化することと、暗号化時に前記公開パラメータ生成方法を用いて、公開パラメータ生成時に選択した共通鍵暗号を用いることと、前記復号および検証方法において、復号および検証対象の署名付き暗号化データに含まれる暗号化データをまず復号し、復号されたデータに対して署名検証を行うことと、復号時に前記共通鍵暗号を用いることを特徴とするサインクリプションシステムを提供する。
本発明によれば、署名付き暗号化時に対象データに対して署名が生成された後、データの暗号化が行われるため、不正な復号および検証者の公開鍵、ユーザ公開鍵を用いて署名付き暗号化データを作成した場合、復号および検証時に正規の復号および検証者の公開鍵およびユーザ公開鍵を用いることで、間違った復号データが復号され、その間違った復号データに対して署名検証を行うため検証時にエラーとなり間違った署名付き暗号化を行った事の検出が可能となる。
また暗号化および復号で用いる共通鍵暗号を幅広く選択可能となることから、より高い安全性を確保することが可能となる。
以上より、安全性の高いサインクリプションの実現が可能となる。
図1は、本実施形態のサインクリプションシステム101の全体構成である。 図2は、本実施形態のサインクリプションシステム101を構成する部分秘密鍵発行装置102、署名付き暗号化装置103および復号および検証装置104を構築する際に用いることのできる、一般的な構成を有する情報処理装置201の機能構成図である。 図3は、本実施形態の部分秘密鍵発行装置102において、実際の処理を行う部分秘密鍵生成処理部106の、機能構成を示す図である。 図4は、本実施形態の部分秘密鍵発行装置102の構築に用いた情報処理装置201のCPU202の処理を説明するフローチャートである。 図5は、図4のステップ402において説明している公開パラメータおよびマスター鍵生成処理を説明するフローチャートである。 図6は、図4のステップ403において説明している部分秘密鍵生成処理を説明するフローチャートである。 図7は、本実施形態の署名付き暗号化装置103において実際の処理を行う署名付き暗号化処理部107の、機能構成を示す図である。 図8は、本実施形態の署名付き暗号化装置103の構築に用いた情報処理装置201のCPU202の処理を説明するフローチャートである。 図9は、図8のステップ802において説明しているユーザ鍵生成処理の詳細を説明するフローチャートである。 図10は、図8のステップ803において説明している署名付き暗号化処理の詳細を説明するフローチャートである。 図11は、本実施形態の復号および検証装置104において、実際の処理を行う復号および検証処理部108の、機能構成を示す図である。 図12は、本実施形態の復号および検証装置104の構築に用いた情報処理装置201のCPU202の処理を説明するフローチャートである。 図13は、図12のステップ1202において説明しているユーザ鍵生成処理の詳細を説明するフローチャートである。 図14は図12のステップ1203において説明している署名付き暗号化データ復号および検証処理の詳細を説明するためのフローチャートである。
以下、本発明を適用した実施形態について、図を用いて説明する。
本実施形態のサインクリプションシステムでは、前記従来例に対して以下の改良を加えている。
1) 公開パラメータ生成時に、入力のセキュリティパラメータに正整数lを追加、さらにlビット共通鍵暗号Eの選択処理を追加し、Eを公開パラメータに加える。
2) 署名付き暗号化時の暗号化と署名生成の順序および署名生成対象を暗号化データから署名付き暗号化対象データに変更し、署名付き暗号化対象データに対する署名生成後、署名付き暗号化対象データの暗号化を行うようにする。
3)署名付き暗号化時において、ハッシュ関数HおよびHの入力要素の暗号化データVを署名付き暗号化対象データMに変更する。
4)署名付き暗号化時において、暗号化の際に用いるTをハッシュ関数Hの入力要素に加える。
5)署名付き暗号化時において、ハッシュ関数Hの出力結果をマスク値として用いるのではなく共通鍵暗号Eの鍵として用いることで暗号化を行うように変更する。
6)署名付き暗号化データ復号および検証時の署名検証と復号の順序を変更し、暗号化データを復号した後、復号データに対する署名検証を行うように変更する。
7)署名付き暗号化対象データ復号および検証時において、ハッシュ関数HおよびHの入力要素の暗号化データVを復号データMに変更する。
8)署名付き暗号化データ復号および検証時において、復号の際に用いるTをハッシュ関数Hの入力要素に加える。
9)署名付き暗号化データ復号および検証時において、ハッシュ関数Hの出力結果をマスク値として用いるのではなく共通鍵暗号Eの鍵として用いることで復号を行うように変更する。
すなわち、本実施形態における処理手順は以下のとおりとなる。
公開パラメータおよびマスター鍵生成:
入力:正整数k,l(セキュリティパラメータ)
出力:公開パラメータparams、マスター鍵s
処理手順:
1. kビットの素数qを選択する。
2. 位数qの2つの群G1、GおよびG1の生成元Pを選択する。
3. ペアリングe:G1×G1 → Gを選択する。
4. 0<s<qを満たす整数sをランダムに生成する。
5. Ppub ←sPを計算する。
6. 4つのハッシュ関数H1、H、H、Hを選択する。
それぞれのハッシュ関数は以下に示す入出力を持つ。
:{0,1} → G1
:{0,1} → {0,1}l
:{0,1} → G1
:{0,1} → G1
7. 暗号化関数ENCおよび復号関数DECから構成されるlビット共通鍵暗号E={ENC, DEC}を選択する。
8. params=<q,G1,G,e,P,Ppub,H1,H,H,H,E>を公開パラメータとする。
9. sをマスター鍵とする。
部分秘密鍵生成:
入力:公開パラメータparams、マスター鍵s、利用者の公開鍵として用いる任意の文字列ID(ID∈{0,1}
出力:IDに対応する部分秘密鍵DID
処理手順:
1.QID ← H1(ID)を計算する。
2.DID ← sQIDを計算し部分秘密鍵とする。
ユーザ鍵生成:
入力:公開パラメータparams、IDに対応する部分秘密鍵DID
出力:IDに対応する秘密鍵SIDおよびユーザ公開鍵PKID
処理手順:
1. 0<xID<qを満たす整数xIDをランダムに選択する。
2.SID ←(xID,DID)と置き、SIDを秘密鍵とする。
3.PKID ← xIDPを計算し、PKIDを公開鍵とする。
署名付き暗号化:
入力:公開パラメータparams、署名付き暗号化データ生成である利用者Aの公開鍵IDA 、ユーザ公開鍵PKIDA、秘密鍵SIDA=(xIDA,DIDA)、署名付き暗号化データ検証者である利用者Bの公開鍵IDB、
ユーザ公開鍵PKIDB、署名付き暗号化対象データM
出力:署名付き暗号化データC=(U,V,W)
処理手順:
1. 0<r<qを満たす整数rをランダムに生成する。
2. U ← rPを計算する。
3. QIDB ← H1(IDB)を計算する。
4. T ← e(Ppub,QIDBを計算する。
5. H ← H(M,U,IDA,PKIDA)を計算する。
6. I ← H(M,U,T,IDA,PKIDA)を計算する。
7. W ← DIDA+rH+xIDAI を計算しMに対する署名を生成する。
8. J ← rPKIDBを計算する。
9. SK ← H(U,T,J,IDB,PKIDB)を計算する。
10. SKを共通鍵暗号Eの鍵としてとしてV ← ENC(SK,M)を計算しMに対する暗号化データVを求める。
11. C=(U,V,W)を署名付き暗号化データとする。
復号および検証:
入力:公開パラメータparams、署名付き暗号化データ生成者である利用者Aの公開鍵IDA 、公開鍵PKIDA、署名付き暗号化データ検証者である利用者Bの公開鍵IDB、ユーザ公開鍵PKIDB、秘密鍵SIDB=(xIDB,DIDB)、署名付き暗号化データC=(U,V,W)
出力:復号データM(署名検証成功時)またはInvalid(署名検証失敗時)
処理手順:
1. T ← e(DIDB,U)を計算する。
2. J ← xIDBUを計算する。
3. SK ← H(U,T,J,IDB,PKIDB)を計算する。
4. 共通鍵暗号Eの共通鍵をSKとしてM ← DEC(SK, V)を計算し復号データMを求める。
5. H ← H(M,U,IDA,PKIDA)を計算する。
6. I ← H(M,U,T,IDA,PKIDA)を計算する。
7. QIDA ← H1(IDA)を計算する。
8. e(Ppub,QIDA)e(U,H)e(PKIDA,I)=e(P,W)が成立するかどうかを判定することで署名検証を行い、成立すればステップ10に進み、成立しなければステップ9に進む。
9.復号および検証結果をInvalid(復号および検証失敗)とし、終了する。
10.復号および検証結果を復号データMとし、終了する。
以下、上記処理を実現する本実施形態のサインクリプションシステムについて説明する。図1は、本実施形態のサインクリプションシステムの全体構成である。
本図に示すように、本実施形態のサインクリプションシステム101は、部分秘密鍵発行装置102と、署名付き暗号化装置103と、復号および検証装置104とを備える。部分秘密鍵発行装置102、署名付き暗号化装置103、および、復号および検証装置104は、通信回線109、111、112および安全な通信回線110,113により接続されている。また、署名付き暗号化装置103の利用者をA 、復号および検証装置104の利用者をBとする。両者を区別する必要が無い場合は、利用者と呼ぶ。
これらの各装置を用いた本実施形態での署名付き暗号化、署名付き暗号化データの復号および検証の概略について説明する。本実施形態では、公開鍵として、所定のルールによって定められた利用者と対応付けられるID(ID∈{0,1})、例えば電子メールアドレスなど、を用いるものとする。
まず、部分秘密鍵発行装置102において、サインクリプションシステム101全体で用いられる公開パラメータおよびマスター鍵を生成し、公開パラメータを公開する。
署名付き暗号化を行う場合、署名付き暗号化装置103において、まず、部分秘密鍵発行装置102において公開されている公開パラメータおよび予め部分秘密鍵発行装置102より発行を受けた自身の公開鍵(利用者AのID)に対応する部分秘密鍵を用いて秘密鍵およびユーザ公開鍵を生成し、通信回線などを通じてユーザ公開鍵を送信相手である利用者Bに送付する。送信相手の利用者Bについても復号および検証装置104において、利用者Aの場合と同様に秘密鍵およびユーザ公開鍵を生成し、利用者Aは送信相手の公開鍵(利用者BのID)およびユーザ公開鍵、公開パラメータ、および、自身の公開鍵に対応する秘密鍵およびユーザ公開鍵を用いて、署名付き暗号化対象データに対して署名付き暗号化データを生成し、送出する。復号および検証装置104では、公開パラメータ、利用者Aの公開鍵およびユーザ公開鍵、利用者Bの秘密鍵、公開鍵およびユーザ公開鍵を用いて、署名付き暗号化装置103から受け取った署名付き暗号化データを復号するとともに検証する。
以下、各装置の詳細について説明する。
部分秘密鍵発行装置102は、実際の生成処理を行う部分秘密鍵生成処理部106を持ち、サインクリプションシステム101において共通に用いる公開パラメータおよびマスター鍵の作成および保管、外部に漏れないように厳重に保管されたマスター鍵を用いることによる部分秘密鍵の生成、公開パラメータの公開を行う。
部分秘密鍵発行装置102は一般的な構成を有する情報処理装置201上に構築することが可能である。以下この構成について説明する。
部分秘密鍵発行装置102は、図2に示すようなバス209で接続されたCPU(Central Processing Unit)202と、RAM(Random Access Memory)などのメモリ203と、HDやその他の外部記憶装置207と、キーボードなどの入力装置204と、ディスプレイなどの出力装置205と、ネットワークからの入出力を処理するネットワーク接続装置206と、DVD−Rドライブ等可搬性の記憶媒体からの入出力を処理する外部入出力装置206と、入力装置204や、出力装置205や、ネットワーク接続装置206や、外部入出力装置207や、外部記憶装置208とのインタフェース209とを備えた、一般的な構成を有する情報処理装置201として構築することができる。
部分秘密鍵発行装置102において、公開パラメータおよびマスター鍵生成処理、部分秘密鍵生成処理を実際に行う、部分秘密鍵生成処理部106は、CPU202が、メモリ203にロードされたプログラム(コードモジュールともいう)を実行することで、情報処理装置201上に具現化される。また、これらの処理で必要となる一時記憶や生成データはメモリ203や、外部記憶装置208に必要に応じて記憶される。
また、前記したプログラムは、予め外部記憶装置208に記憶され、必要に応じてメモリ203上にロードされ、CPU202により実行される。なお、このプログラムは、可搬性の記憶媒体、例えばCD−ROMなどを介して、必要に応じて、メモリ203にロードされてもよい。また、プログラムは、一旦、CD−ROMなどの可搬性の記憶媒体から外部入出力装置207を介してHDなどにインストールされた後、必要に応じて、このHDからメモリ203にロードされてもよい。さらに、プログラムは、ネットワーク接続装置を介して、ネットワーク105上の情報処理装置201が伝送信号により、一旦HDにダウンロードされてからメモリ203にロードされてもよいし、あるいは、直接、ネットワーク105経由でネットワーク接続装置206を介して、メモリ203にロードされてもよい。
次に、部分秘密鍵発行装置102が一般的な構成を有する情報処理装置201上に構築されているものとして情報処理装置201の動作の概略について説明する。
情報処理装置201において実際の処理を行う、公開パラメータおよびマスター鍵を生成処理、部分秘密鍵生成処理を行う部分秘密鍵生成処理部106は、プログラムがメモリ203上にロードされCPU202上で動作すること具現化されているものとする。またネットワーク105からの入出力は、ネットワーク接続装置206を、可搬性の記憶媒体を用いたデータの入出力は、外部入出力装置207を、それぞれ介して行うものとする。
なお、部分秘密鍵生成処理部106は後述の図3に示される構造を持つ。
情報処理装置201では、上述のようにサインクリプションシステム101全体で用いられる公開パラメータおよびマスター鍵を生成し、生成した公開パラメータを公開する。そして、部分秘密鍵の発行を要求する部分秘密鍵発行要求を受け付けると、当該利用者用の部分秘密鍵を生成し、要求元の利用者に発行する。
具体的には、情報処理装置201は、入力装置204より公開パラメータおよびマスター鍵生成依頼と生成に必要なセキュリティパラメータの入力を受け付け、それらのデータをメモリ203にロードし、メモリ203上に公開パラメータおよびマスター鍵を生成する。生成した公開パラメータおよびマスター鍵は必要に応じて外部記憶装置208等の記憶装置に保管する。このとき、マスター鍵は、例えば、マスター鍵の保管場所へのアクセスに対しアクセス制限を設定する等、外部に一切漏れないよう厳重に保管する。公開パラメータは、ネットワーク105経由、もしくは可搬性の記憶媒体を用いて、利用者に配布する。なお、公開パラメータおよびマスター鍵は、部分秘密鍵生成処理部106を用いて、後述する図6に示す処理に従って生成される。
次に、情報処理装置201は、利用者から部分秘密鍵の発行を要求する秘密鍵発行要求を利用者の公開鍵IDとともに、入力装置204またはネットワーク105を経由して入力を受け付けると、それらのデータをメモリ上にロードし、公開鍵IDと、予め外部記憶装置208よりメモリ203上にロードされている公開パラメータおよびマスター鍵と、を用いて部分秘密鍵をメモリ203上に生成する。部分秘密鍵生成結果は要求元の利用者に安全な通信方法を用いてネットワーク105経由で、もしくは可搬性の記憶媒体に保存し、配布する。部分秘密鍵は、部分秘密鍵生成処理部106を用いて、後述する図8に示す処理に従って生成される。本実施形態では、本人認証に用いる利用者のIDを、公開鍵として用いていて説明するが、公開鍵として用いる文字列は任意であり、これに限られない。
なお、本実施形態では、安全な通信方法として、例えば、S S L通信などの暗号化通信によるもの、部分秘密鍵送受信専用の通信回線によるものなどが考えられる。
次に署名付き暗号化装置103について説明を行う。
署名付き暗号化装置103は利用者Aのユーザ公開鍵生成および署名付き暗号化を行うものである。
署名付き暗号化装置103は、CPU(Central Processing Unit)202と、RAM(Random Access Memory)などのメモリ203と、HDやその他の外部記憶装置208と、キーボードなどの入力装置204と、ディスプレイなどの出力装置205と、ネットワーク105からの入出力を処理するネットワーク接続装置206と、DVD−Rドライブ等可搬性の記憶媒体からの入出力を処理する外部入出力装置207と、外部記憶装置208や、入力装置204や、出力装置205や、ネットワーク接続装置206や、外部入出力装置207や、外部記憶装置208とのインタフェース209とを備えた、一般的な構成を有する情報処理装置201として構築することができる。
署名付き暗号化装置103において、ユーザ鍵生成処理、署名付き暗号化処理を実際に行う、署名付き暗号化処理部107は、CPU202が、メモリ203にロードされたプログラム(コードモジュールともいう)を実行することで、情報処理装置201上に具現化される。また、これらの処理で必要となる一時記憶や生成データはメモリ203や、外部記憶装置208に必要に応じて記憶される。
また、前記したプログラムは、予め外部記憶装置208に記憶され、必要に応じてメモリ203上にロードされ、CPU204により実行される。なお、このプログラムは、可搬性の記憶媒体、例えばCD−ROMなどより外部入出力装置207を介して、メモリ203にロードされてもよい。また、プログラムは、一旦、CD−ROMなどの可搬性の記憶媒体から外部入出力装置207を介してHDなどにインストールされた後、必要に応じて、このHDからメモリ203にロードされてもよい。さらに、プログラムは、ネットワーク接続装置を介して、ネットワーク105上の情報処理装置201が伝送信号により、一旦HDにダウンロードされてからメモリ203にロードされてもよいし、あるいは、直接、ネットワーク105経由でネットワーク接続装置206を介して、メモリ203にロードされてもよい。
次に、署名付き暗号化装置103が一般的な構成を有する情報処理装置201上に構築されているものとして情報処理装置201の動作の概略について説明する。情報処理装置201において実際の処理を行う、署名付き暗号化処理部107は、メモリ203上にロードされCPU202上で動作することで具現化されているものとする。またネットワーク105からの入出力は、ネットワーク接続装置206を、可搬性の記憶媒体を用いたデータの入出力は、外部入出力装置207を、それぞれ介して行うものとする。 なお、署名付き暗号化処理部107は後述の図7に示される構造を持つ。

次に、情報処理装置201の動作について説明する。情報処理装置201は利用者Aの依頼により利用者のユーザ鍵生成処理又は署名付き暗号化処理を行う。具体的な処理は以下のとおりである。
署名付き暗号化処理に先立ち、情報処理装置201は、部分秘密鍵発行装置102で公開されている公開パラメータを、外部記憶装置208に既に保管されている場合、外部記憶装置208よりメモリ203にロードし、保管されていない場合、ネットワークまたは可搬性の記憶媒体を利用することで入手しメモリ203にロードする、また必要に応じて外部記憶装置208に保管する。
情報処理装置201の利用者Aは部分秘密鍵発行装置102に部分秘密鍵の発行を依頼し部分秘密鍵を入手する。
発行済の部分秘密鍵が、外部記憶装置208に保管されていれば、外部記憶装置208よりメモリ203にロードし、そうでない場合、可搬性の記憶媒体または、安全なネットワーク通信を利用して、部分秘密鍵を入手しメモリ203にロードし、必要に応じて外部記憶装置208に保管する。なお、本実施形態では、安全なネットワーク通信の方法として、例えば、SSL通信などの暗号化通信によるもの、部分秘密鍵送受信専用の通信回線によるものなどが考えられる。
次に利用者Aは入力装置204を介して、ユーザ鍵生成処理または署名付き暗号化処理を依頼する。
ユーザ鍵生成処理が依頼された場合、署名付き暗号化プログラムは、ユーザ鍵生成処理を実行し、その演算結果を公開鍵と合わせてメモリ203に記憶すると共に、必要に応じて外部記憶装置208等の記憶装置に保存するとともに、必要に応じてネットワーク105を、または可搬性の記憶媒体を、介して他の利用者に公開鍵およびユーザ公開鍵を配布する。なお、ユーザ鍵生成処理は、後述する図9に示す処理に従って行われる。
署名付き暗号化処理が選択された場合、利用者Aの公開鍵、秘密鍵およびユーザ公開鍵をメモリ203に外部記憶装置208よりロードする。次に、送付先である利用者Bの公開鍵およびユーザ公開鍵が外部記憶装置208に保管されていれば、それらをメモリ203にロードし保管されていなければ、ネットワーク205または可搬性の記録媒体等を介して入手しメモリ203にロードし、必要に応じて外部記憶装置209に保管する。
利用者Bの公開鍵およびユーザ公開鍵、利用者Aの公開鍵、ユーザ公開鍵および秘密鍵を用いて、署名付き暗号化プログラムは、予めメモリ203上にロードされている署名付き暗号化対象データに対して署名付き暗号化処理を実行し、その演算結果をメモリ203に記憶すると共に、必要に応じて外部記憶装置208等の記憶装置に保管する。利用者Bへの送付は外部入出力装置207を介して演算結果を保管した可搬性の記憶媒体、またはネットワーク接続装置を介してネットワーク105経由で配布する。なお、署名付き暗号化処理は、後述する図11に示す処理に従って行われる。
次に復号および検証装置104について説明を行う。
検証および復号装置104は利用者Bのユーザ公開鍵生成および署名付き暗号化データに対して復号および検証処理を行うものである。
復号および検証装置104は、CPU(Central Processing Unit)202と、RAM(Random Access Memory)などのメモリ203と、HDやその他の外部記憶装置208と、キーボードなどの入力装置204と、ディスプレイなどの出力装置205と、ネットワーク105からの入出力を処理するネットワーク接続装置206と、DVD−Rドライブ等可搬性の記憶媒体からの入出力を処理する外部入出力装置207と、外部記憶装置208や、入力装置204や、出力装置205や、ネットワーク接続装置206や、外部入出力装置207や、外部記憶装置208とのインタフェース209とを備えた、一般的な構成を有する情報処理装置201として構築することができる。
復号および検証装置104において、ユーザ鍵生成処理、検証および復号処理を行う復号および検証処理部108はCPU202が、メモリ203にロードされたプログラム(コードモジュールともいう)を実行することで、情報処理装置201上に具現化される。また、これらの処理で必要となる一時記憶や生成データはメモリ203や、外部記憶装置208に必要に応じて記憶される。
また、前記したプログラムは、予め外部記憶装置208に記憶され、必要に応じてメモリ203上にロードされ、CPU204により実行される。なお、このプログラムは、可搬性の記憶媒体、例えばCD−ROMなどより外部入出力装置を介して、必要に応じて、可搬性の記憶媒体からメモリ203にロードされてもよい。また、プログラムは、一旦、CD−ROMなどの可搬性の記憶媒体から外部入出力装置207を介してHDなどにインストールされた後、必要に応じて、このHDからメモリ203にロードされてもよい。さらに、プログラムは、ネットワーク接続装置を介して、ネットワーク105上の情報処理装置201が伝送信号により、一旦HDにダウンロードされてからメモリ203にロードされてもよいし、あるいは、直接、ネットワーク105経由でネットワーク接続装置206を介して、メモリ203にロードされてもよい。
次に、復号および検証装置104が一般的な構成を有する情報処理装置201上に構築されているものとして情報処理装置201の動作の概略について説明する。
情報処理装置201において実際の処理を行う、ユーザ鍵生成処理、検証および復号処理を行う復号および検証処理部108はメモリ203上にロードされCPU202上で動作することで具現化されているものとする。またネットワーク105からの入出力は、ネットワーク接続装置206を、可搬性の記憶媒体を用いたデータの入出力は、外部入出力装置207を、それぞれ介して行うものとする。
なお、復号および検証処理部108は後述の図11に示される構造を持つ。
復号および検証処理に先立ち、情報処理装置201は、部分秘密鍵発行装置102で公開されている公開パラメータを、外部記憶装置208に既に保管されている場合、外部記憶装置208よりメモリ203にロードし、保管されていない場合、ネットワーク105または可搬性の記憶媒体を利用して入手しメモリ203にロードし、必要に応じて外部記憶装置208に保管する。
復号および検証装置104の利用者Bは部分秘密鍵発行装置102に部分秘密鍵の発行を依頼し部分秘密鍵を入手する。
発行済の部分秘密鍵が、外部記憶装置208に保管されていれば、外部記憶装置208よりメモリ203にロードし、そうでない場合、可搬性の記憶媒体または、安全なネットワーク通信を利用して、部分秘密鍵を入手しメモリ203にロードし、必要に応じて外部記憶装置208に保管する。なお、本実施形態では、安全なネットワーク通信の方法として、例えば、SSL通信などの暗号化通信によるもの、部分秘密鍵送受信専用の通信回線によるものなどが考えられる。
次に利用者Bは入力装置201を介してユーザ鍵生成処理または復号および検証処理を依頼する。
ユーザ鍵生成処理が依頼された場合、復号および検証プログラムはユーザ鍵生成処理を実行し、その演算結果を公開鍵と合わせて、外部記憶装置208に保存するとともに、必要に応じてネットワーク105を、または可搬性の記憶媒体を、介して他の利用者に公開鍵およびユーザ公開鍵を配布する。なお、ユーザ鍵生成処理は、後述する図13に示す処理に従って行われる。
復号および検証処理が選択された場合、利用者Bの公開鍵、ユーザ公開鍵および秘密鍵をメモリ203に外部記憶装置208よりロードする。次に、送付である利用者Aの公開鍵およびユーザ公開鍵が外部記憶装置208に保管されていれば、それらをメモリ203にロードし保管されていなければ、ネットワーク105または可搬性の記録媒体等を介して入手しメモリ203にロードし、必要に応じて外部記憶装置208に保管する。
利用者Bの公開鍵およびユーザ公開鍵、利用者Aの公開鍵、ユーザ公開鍵および秘密鍵を用いて、復号および検証プログラムは予めメモリ203にロードされている復号および検証対象データに対して、署名付き暗号化処理を実行し、その演算結果をメモリ203に記憶すると共に、必要に応じて外部記憶装置208等の記憶装置に保管する。なお、復号および検証処理は、後述する図14に示す処理に従って行われる。
以上、本実施形態のサインクリプションシステム101を構成する各装置の機能の詳細について説明した。
次に、図3〜14を用いて本実施形態のサインクリプションシステム101による、公開パラメータ等の生成、署名付き暗号化、復号および検証の各処理の詳細を、それぞれの装置が一般的な構成を有する情報処理装置201上に構築されているとした場合、メモリ203上にロードされCPU202上で動作するプログラムによる処理として説明する。
まず、部分秘密鍵発行装置102を一般的な構成を有する情報処理装置201上に構築した場合の処理について説明を行う。
図3は、部分秘密鍵発行装置102において、公開パラメータ、マスター鍵、および部分秘密鍵を生成する部分秘密鍵生成処理部106の、機能構成の概要を示す図である。情報処理装置201において、部分秘密鍵生成処理部106は、プログラムがメモリ203上にロードされCPU202上で動作することにより具現化される。
本図に示すように、部分秘密鍵生成処理部106はCPU202による制御の元、公開パラメータ、マスター鍵、および部分秘密鍵を生成する際に必要となる演算機能を実現する演算機能部301と、処理に必要な入力データおよび出力データを保持するためにメモリ203上に確保される入出力データ保持部302とを備える。
演算機能部301は、乱数を生成する乱数生成機能303と、群演算や楕円曲線上の演算などを行う基本演算機能304と、素数を選択する素数選択機能305と、群を選択する群選択機能306と、ペアリングを選択するペアリング選択機能307と、ハッシュ関数を選択するハッシュ関数選択機能308と、ハッシュ値を計算するハッシュ関数演算機能309と、共通鍵暗号を選択する共通鍵暗号選択機能310とを備える。
入出力データ保持部302は、セキュリティパラメータを保持するセキュリティパラメータ保持領域311、公開パラメータを保持する公開パラメータ保持領域312、マスター鍵を保持するマスター鍵保持領域313、利用者の公開鍵等、部分秘密鍵生成に必要となるデータを保持する利用者公開鍵保持領域314、部分秘密鍵生成結果を保持する利用者部分秘密鍵生成結果保持領域315を備える。
入出力データ保持部302に属する各保持領域311から315は、プログラム起動時に予め確保されても良いし、CPU202による制御の元、必要に応じて動的に確保し不必要となった時点で動的に開放しても良い。
図4は、公開パラメータ、マスター鍵、および、部分秘密鍵を生成する際の、CPU202の処理を説明するためのフローチャートである。以下において、公開パラメータおよびマスター鍵を生成する処理を公開パラメータおよびマスター鍵生成処理、部分秘密鍵を生成する処理を部分秘密鍵生成処理と呼ぶ。
<ステップ401>
CPU202による制御の元、処理の選択を受け付ける。公開パラメータおよびマスター鍵生成処理が選択された場合ステップ402に進み、部分秘密鍵生成処理が選択された場合ステップ403に進む。
<ステップ402>
公開パラメータおよびマスター鍵生成処理を行い終了する。詳細は、図5を用いて後述する。
<ステップ403>
部分秘密鍵生成処理を行った後に処理を終了する。詳細は、図6を用いて後述する。
次に、上記図4のステップ402における公開パラメータおよびマスター鍵生成処理を説明する。図5は、公開パラメータおよびマスター鍵生成処理を説明するためのフローチャートである。
<ステップ501>
セキュリティパラメータである正整数k、lを取得しセキュリティパラメータ保持領域311に保存する。
<ステップ502>
素数選択機能305を用いて、kビットの素数qを選択する。
<ステップ503>
群選択機能306を用いて位数qの2つの群G1、GをおよびG1の生成元Pを選択する。
<ステップ504>
ペアリング選択機能307を用いてペアリングe: G1×G1 → Gを選択する。
<ステップ505>
乱数生成機能303を用いて0<s<qを満たす整数sをランダムに生成する。
<ステップ506>
基本演算機能304を用いてPpub ←sPを計算する。
<ステップ507>
ハッシュ関数選択機能308を用いて4つのハッシュ関数H、H、H、Hを選択する。
それぞれのハッシュ関数は以下に示す入出力を持つ。
:{0,1} → G1
:{0,1} → {0,1}l
:{0,1} → G1
:{0,1} → G1
<ステップ508>
共通鍵暗号選択機能310を用いて、暗号化関数ENCおよび復号関数DECから構成されるlビット共通鍵暗号E={ENC,DEC}を選択する。
<ステップ509>
params=<q,G1,G,e,P,Ppub,H1,H,H,H,E>を公開パラメータとし、公開パラメータ保持領域312に保存する。
<ステップ510>
整数sをマスター鍵とし、マスター鍵保持領域313に保存する。
次に、上記図4のステップ403における部分秘密鍵生成処理を説明する。図6は、部分秘密鍵生成処理を説明するためのフローチャートである。
<ステップ601>
公開パラメータparamsを取得し公開パラメータ保持領域312に保存する。
<ステップ602>
マスター鍵sを取得し、マスター鍵保持領域313に保存する。
<ステップ603>
部分秘密鍵を要求する利用者の公開鍵ID(ID∈{0,1})を取得し利用者公開鍵保持領域314に保存する。
<ステップ604>
ハッシュ関数演算機能309を用いて、QID ← H1(ID)を計算する。
<ステップ605>
基本演算機能304を用いて、DID ← sQIDを計算する。
<ステップ606>
IDを利用者の部分秘密鍵とし、利用者部分秘密鍵生成結果保持領域315に保存する。
次に、署名付き暗号化装置103を一般的な構成を有する情報処理装置201上に構築した場合の処理について説明を行う。
図7は、署名付き暗号化装置103において、ユーザ鍵生成処理および、署名付き暗号化処理を行う、署名付き暗号化処理部107の、機能構成の概要を示す図である。情報処理装置201において、署名付き暗号化処理部107は、プログラムがメモリ203上にロードされCPU202上で動作することにより具現化される。
本図に示すように、署名付き暗号化処理部107はCPU202による制御の元、ユーザ鍵生成処理および、署名付き暗号化処理を行う際に必要となる演算機能を実現する演算機能部701と、処理に必要な入力データおよび出力データを保持するためにメモリ203上に確保される入出力データ保持部702とを備える。
演算機能部701は、乱数を生成する乱数生成機能703と、群演算や楕円曲線上の演算などを行う基本演算機能704と、ハッシュ値を計算するハッシュ関数演算機能705と、共通鍵暗号を用いた暗号化を行う共通鍵暗号演算機能706とを備える。
入出力データ保持部702は、公開パラメータを保持する公開パラメータ保持領域707、利用者Aの公開鍵を保持する利用者A公開鍵保持領域708と、利用者Aのユーザ公開鍵を保持する利用者Aユーザ公開鍵保持領域709と、利用者Aの部分秘密鍵を保持する利用者A部分秘密鍵保持領域710と、利用者Aの秘密鍵を保持する利用者A秘密鍵保持領域711と、利用者Bの公開鍵を保持する利用者B公開鍵保持領域712と、利用者Bのユーザ公開鍵を保持する利用者Bユーザ公開鍵保持領域713と、署名付き暗号化対象データを保持する署名付き暗号化対象データ保持領域714と、署名付き暗号化データを保持する署名付き暗号化データ保持領域715とを備える。入出力データ保持部702に属する各保持領域707から715は、プログラム起動時に予め確保されても良いし、CPU202による制御の元、必要に応じて動的に確保し不必要となった時点で動的に開放しても良い。
図8は、ユーザ鍵の生成、署名付き暗号化の各処理を行う際のCPU202の処理を説明するためのフローチャートである。
<ステップ801>
CPU202による制御の元、処理の指示を受け付ける。処理は、ユーザ鍵生成、署名付き暗号化の2つの処理から選択される。ユーザ鍵生成処理が選択された場合はステップ802に、署名付き暗号化処理が選択された場合はステップ803に進む。
<ステップ802>
ユーザ鍵生成処理を行う。ユーザ鍵生成処理の詳細は、図9を用いて後述する。
<ステップ803>
署名付き暗号化処理を行う。署名付き暗号化処理の詳細は、図10を用いて後述する。
次に、上記図8のステップ802におけるユーザ鍵生成処理を説明する。図9は、ユーザ鍵生成処理を説明するためのフローチャートである。以下、利用者Aの公開鍵をIDAとして処理を説明する。
<ステップ901>
公開パラメータparamsを取得し、公開パラメータ保持領域707に保存する。
<ステップ902>
利用者Aの部分秘密鍵DIDAを取得し、利用者A部分秘密鍵保持領域710に保存する。
<ステップ903>
乱数生成機能703を用いて、0<xIDA<qを満たす整数xIDAをランダムに生成する。
<ステップ904>
基本演算機能704を用いて、PKIDA ← xIDAPを計算する。
<ステップ905>
IDA =(xIDA,DIDA)を利用者Aの公開鍵IDAに対応する秘密鍵とし、利用者A秘密鍵保持領域711に保存する。
<ステップ906>
PKIDAをIDAに対応するユーザ公開鍵とし、利用者Aユーザ公開鍵保持領域708において保存する。
次に、上記図8のステップ803における署名付き暗号化処理を説明する。図10は、署名付き暗号化処理を説明するためのフローチャートである。
<ステップ1001>
公開パラメータparamsを取得し、公開パラメータ保持領域707に保存する。
<ステップ1002>
署名付き暗号化処理の依頼者である利用者Aの公開鍵IDA、ユーザ公開鍵
PKIDAおよび秘密鍵SIDA=(xIDA,DIDA)を取得し、それぞれ利用者A公開鍵保持領域708、利用者Aユーザ公開鍵保持領域709および利用者A秘密鍵保持領域711に保存する。
<ステップ1003>
署名付き暗号化データの受信者である利用者Bの公開鍵IDBおよびユーザ公開鍵PKIDBを取得し、それぞれ利用者B公開鍵保持領域712および、利用者Bユーザ公開鍵保持領域713に保存する。
<ステップ1004>
利用者Aより指定された署名付き暗号化対象データMを取得し署名付き暗号化対象データ保持領域714に保存する。
<ステップ1005>
乱数生成機能703を用いて、0<r<qを満たす整数rをランダムに生成する。
<ステップ1006>
基本演算機能704を用いて、U ←rPを計算する。
<ステップ1007>
ハッシュ関数演算機能704を用いて、QIDB ← H1(IDB)を計算する。
<ステップ1008>
基本演算機能704を用いて、ペアリングの計算を行い
T ←e(Ppub,QIDBを計算する。
<ステップ1009>
ハッシュ関数演算機能705を用いて、署名付き暗号化対象データMを含む入力に対してハッシュ値H ← H(M,U,IDA,PKIDA)を計算する。
<ステップ1010>
ハッシュ関数演算機能705を用いて署名付き暗号化対象データMおよびステップ1008におけるペアリング演算結果Tを含む入力に対して
ハッシュ値I← H(M,U,T,IDA,PKIDA)を計算する。
<ステップ1011>
基本演算機能704を用いてW ← DIDA+rH+xIDAI を計算しMに対する署名を生成する。
<ステップ1012>
基本演算機能704を用いて、J←rPKIDBを計算する。
<ステップ1013>
ハッシュ関数演算機能705を用いて、共通鍵暗号で用いる鍵
SK ← H(U,T,J,IDB,PKIDB)を計算し、共通鍵暗号で用いるlビットの鍵SKを求める。
<ステップ1014>
共通鍵暗号演算機能706を用いて、共通鍵暗号Eの共通鍵をSKとして
V ← ENC(SK,M)を計算しMの暗号化データVを生成する。
<ステップ1015>
C=(U,V,W)を署名付き暗号化データとし署名付き暗号化データ保持領域715に保存する。
次に、復号および検証装置104を一般的な構成を有する情報処理装置201上に構築した場合の処理について説明を行う。
図11は、復号および検証装置103において、ユーザ鍵生成処理および、復号および検証処理を行う、復号および検証処理部108の、機能構成の概要を示す図である。情報処理装置201において、復号および検証処理部108は、プログラムがメモリ203上にロードされCPU202上で動作することにより具現化される。
本図に示すように、復号および検証処理部108はCPU202による制御の元、ユーザ鍵生成処理および、復号および検証処理を行う際に必要となる演算機能を実現する演算機能部1101と、処理に必要な入力データおよび出力データを保持するためにメモリ203上に確保される入出力データ保持部1102とを備える。
演算機能部1101は、乱数を生成する乱数生成機能1103と、群演算や楕円曲線上の演算などを行う基本演算機能1104と、ハッシュ値を計算するハッシュ関数演算機能1105と、共通鍵暗号を用いた復号を行う共通鍵暗号演算機能1106とを備える。
入出力データ保持部1102は、公開パラメータを保持する公開パラメータ保持領域1107、利用者Bの公開鍵を保持する利用者B公開鍵保持領域1108と、利用者Aのユーザ公開鍵を保持する利用者Bユーザ公開鍵保持領域1109と、利用者Aの部分秘密鍵を保持する利用者B部分秘密鍵保持領域1110と、利用者Bの秘密鍵を保持する利用者B秘密鍵保持領域1111と、利用者Aの公開鍵を保持する利用者A公開鍵保持領域1112と、利用者Aのユーザ公開鍵を保持する利用者Aユーザ公開鍵保持領域1113と、署名付き暗号化データを保持する署名付き暗号化データ保持領域1114と、復号および検証結果を保持する復号および検証保持領域1115とを備える。入出力データ保持部1102に属する各保持領域1107から1115は、プログラム起動時に予め確保されても良いし、CPU202による制御の元、必要に応じて動的に確保し不必要となった時点で動的に開放しても良い。
図12は、ユーザ鍵の生成、復号および検証の各処理を行う際のCPU202の処理を説明するためのフローチャートである。
<ステップ1201>
CPU202による制御の元、処理の指示を受け付ける。処理は、ユーザ鍵生成処理、復号および検証処理の2つの処理から選択される。ユーザ鍵生成処理が選択された場合はステップ1202に、復号および検証処理が選択された場合はステップ1203に進む。
<ステップ1202>
ユーザ鍵生成処理を行う。ユーザ鍵生成処理の詳細は、図13を用いて後述する。
<ステップ1203>
復号および検証処理を行う。復号および検証処理の詳細は、図14を用いて後述する。
次に、上記図12のステップ1202で行われるユーザ鍵生成処理について説明する。図13は、ユーザ鍵生成処理を説明するためのフローチャートである。
以下、利用者Bの公開鍵をIDBとして処理を説明する。
<ステップ1301>
公開パラメータparamsを取得し公開パラメータ保持領域1107に保存する。
<ステップ1302>
利用者Bの部分秘密鍵DIDBを取得し利用者B部分秘密鍵保持領域1110に保存する。
<ステップ1303>
乱数生成機能1103を用いて、0<xIDB<qを満たす整数xIDBをランダムに生成する。
<ステップ1304>
基本演算機能1104を用いて、PKIDB ← xIDBPを計算する。
<ステップ1305>
IDB =(xIDB,DIDB)を利用者Bの公開鍵IDBに対応する秘密鍵とし、利用者B秘密鍵保持領域1111に保存する。
<ステップ1306>
PKIDBをIDBに対応するユーザ公開鍵とし、利用者Bユーザ公開鍵保持領域1109において保存する。
次に、上記図12のステップ1203における復号および検証処理を説明する。図14は、復号および検証処理を説明するためのフローチャートである。
<ステップ1401>
公開パラメータparamsを取得し公開パラメータ保持領域1107に保存する。
<ステップ1402>
復号および検証処理の依頼者である利用者Bの公開鍵IDB、ユーザ公開鍵
PKIDBおよび秘密鍵SIDB=(xIDB,DIDB)を取得し、それぞれ利用者B公開鍵保持領域1108、利用者Bユーザ公開鍵保持領域1109および利用者B秘密鍵保持領域1111に保存する。
<ステップ1403>
署名付き暗号化データの生成者である利用者Aの公開鍵IDAおよびユーザ公開鍵PKIDAを取得し、それぞれ利用者A公開鍵保持領域1112および、利用者Aユーザ公開鍵保持領域1113に保存する。
<ステップ1404>
利用者Bより指定された署名付き暗号化データC=(U,V,W)を取得し署名付き暗号化データ保持領域1114に保存する。
<ステップ1405>
基本演算機能1104を用いて、ペアリングの計算を行うことで、
T←e(DIDB,U)を計算する。
<ステップ1406>
基本演算機能1104を用いて、J ← xIDBUを計算する。
<ステップ1407>
ハッシュ関数演算機能1105を用いて、共通鍵暗号で用いる鍵
SK ← H(U, T, J,IDB,PKIDB)を計算し、共通鍵暗号で用いるlビットの鍵SKを求める。
<ステップ1408>
共通鍵暗号演算機能1106を用いて、共通鍵暗号Eの共通鍵をSKとして
M ←DEC(SK,V)を計算することで、暗号化データVを復号し復号データMを求める。
<ステップ1409>
ハッシュ関数演算機能1105を用いて、復号データMを含む入力に対して、
H ← H(M,U,IDA,PKIDA)を計算する。
<ステップ1410>
ハッシュ関数演算機能1105を用いて、復号データMおよびステップ1405におけるペアリング演算結果Tを含む入力に対して、
I ← H(M,U,T,IDA,PKIDA)を計算する。
<ステップ1411>
ハッシュ関数演算機能1105を用いて、QIDA ← H1(IDA)を計算する。
<ステップ1412>
基本演算機能1104を用いて
e(Ppub,QIDA)e(U,H)e(PKIDA,I) = e(P,W)が成立するかどうかを判定することで署名検証を行い、成立すればステップ1414に進み、成立しなければステップ1413に進む。
<ステップ1413>
復号および検証結果をInvalid(復号および検証失敗)とし、復号および検証結果保持領域1115に保存し終了する。
<ステップ1414>
復号および検証結果を復号データMとし、復号および検証結果保持領域1115に保存し終了する。
101:サインクリプションシステム、102:部分秘密鍵発行装置、103:署名付き暗号化装置、104:復号および検証装置、105:ネットワーク、106:部分秘密鍵生成処理部、107:署名付き暗号化処理部、108:復号および検証処理部、201:情報処理装置、202:CPU、203:メモリ、204:入力装置、205:出力装置、206:ネットワーク接続装置、207:外部入出力装置、208:外部記憶装置、209:インタフェース、210:バス、301:演算機能部、302:入出力データ保持部、303:乱数生成機能、304:基本演算機能、305:素数選択機能、306:群選択機能、307:ペアリング選択機能、308:ハッシュ関数選択機能、309:ハッシュ関数演算機能、310:共通鍵暗号選択機能、311:セキュリティパラメータ保持領域、312:公開パラメータ保持領域、313:マスター鍵保持領域、314:利用者公開鍵保持領域、315:利用者部分秘密鍵生成結果保持領域、701:演算機能部、702:入出力データ保持部、703:乱数生成機能、704:基本演算機能、705:ハッシュ関数演算機能、706:共通鍵暗号演算機能、707:公開パラメータ保持領域、708:利用者A公開鍵保持領域、709:利用者Aユーザ公開鍵保持領域、710:利用者A部分秘密鍵保持領域、711:利用者A秘密鍵保持領域、712:利用者B公開鍵保持領域、713:利用者Bユーザ公開鍵保持領域、714:署名付き暗号化対象データ保持領域、715:署名付き暗号化データ保持領域、1101:演算機能部、1102:入出力データ保持部、1103:乱数生成機能、1104:基本演算機能、1105:ハッシュ関数演算機能、1106:共通鍵暗号演算機能、1107:公開パラメータ保持領域、1108:利用者B公開鍵保持領域、1109:利用者Bユーザ公開鍵保持領域、1110:利用者B部分秘密鍵保持領域、1111:利用者B秘密鍵保持領域、1112:利用者A公開鍵保持領域、1113:利用者Aユーザ公開鍵保持領域、1114:署名付き暗号化データ保持領域、1115:復号および検証結果保持領域、

Claims (6)

  1. 記憶装置を有するとともに任意の文字列を用いることのできる公開鍵に加えて、利用者自身が作成したユーザ公開鍵を用いて、暗号化と署名生成を同時に行うサインクリプションシステムにおける、サインクリプション生成方法であって、
    制御装置による制御の元、素数qを選択し、位数qの2つの群G1、GおよびG1の生成元Pを、ペアリングe: G1×G1→Gを選択し、
    乱数sを生成し、上記乱数sを用いてPpubを計算し、
    4つのハッシュ関数H、H、H、Hを選択し、
    共通鍵暗号Eを選択し、公開パラメータparamsを
    <q,G1,G,e,P,Ppub,H1,H,H,H,E>,整数sをマスター鍵とし、
    前記記憶装置上に保存する公開パラメータおよびマスター鍵生成処理と、
    任意の文字列である上記利用者の公開鍵に対して、制御装置による制御の元、上記公開パラメータおよび上記マスター鍵を用いて、上記利用者の部分秘密鍵を生成し、
    前記記憶装置上に保存する部分秘密鍵生成処理と、を特徴とするサインクリプション生成方法。
  2. 前記生成した公開パラメータと、署名付き暗号化処理を行う利用者Aの公開鍵に対して前記部分秘密鍵生成方法を用いて生成した部分秘密鍵を用いて、秘密鍵とユーザ公開鍵から構成される利用者Aのユーザ鍵を生成し、記憶装置上に保存するユーザ鍵生成処理と、
    制御装置による制御の元、前記公開パラメータと、署名付き暗号化対象データと、前記利用者Aの公開鍵、ユーザ公開鍵および秘密鍵と、署名付き暗号化データの復号および検証者である利用者Bの公開鍵およびユーザ公開鍵と、に対して、乱数を生成し、前記乱数と前記公開パラメータに含まれるデータを用いてデータUを計算し、
    利用者Bの公開鍵から生成したハッシュ値と、前記公開パラメータに含まれるデータと、前記乱数と、からペアリングを用いてペアリング計算結果を計算し、
    前記署名付き暗号化対象データと、前記Uと、を含むデータを用いて計算されるハッシュ値と、前記署名付き暗号化対象データと、前記Uと、前記ペアリング計算結果と、を含むデータを用いて計算されるハッシュ値と、利用者Aの秘密鍵と、を用いて、前記署名付き暗号化対象データに対する署名Wを生成し、
    前記Uと、前記ペアリング計算結果と、前記乱数と前記利用者Aのユーザ公開鍵から計算したデータと、利用者Aの公開鍵およびユーザ公開鍵と、をハッシュ関数の入力として生成したハッシュ値を共通鍵暗号の鍵として、前記署名付き暗号化対象データを、共通鍵暗号を用いることにより暗号化することで暗号化データVを生成し、
    前記U,VおよびWから構成されるC=(U,V,W)を署名付き暗号化結果として記憶装置上に保存する署名付き暗号化処理と、を特徴とする請求項1記載のサインクリプション生成方法。
  3. 前記生成した公開パラメータと、復号および検証処理を行う利用者Bの公開鍵に対して部分秘密鍵生成方法を用いて生成した部分秘密鍵を用いて、秘密鍵とユーザ公開鍵から構成される利用者Bのユーザ鍵を生成し、記憶装置上に保存するユーザ鍵生成処理と、
    制御装置による制御の元、前記公開パラメータと、前記生成した署名付き暗号化データC=(U,V,W)と、前記利用者Bの公開鍵、ユーザ公開鍵および秘密鍵と、前記署名付き暗号化データの生成者である利用者Aの公開鍵およびユーザ公開鍵と、に対して、
    前記署名付き暗号化データに含まれるデータUと、前記Uに加えて利用者Bの秘密鍵に含まれるデータを用いて計算したデータと、ペアリングを用いて前記Uに加えて利用者Bの秘密鍵に含まれるデータから計算したデータと、利用者Aの公開鍵およびユーザ公開鍵と、をハッシュ関数の入力として生成したハッシュ値を共通鍵暗号の鍵として、
    前記署名付き暗号化データに含まれるデータVを、共通鍵暗号を用いることにより復号し、復号結果を含むデータより生成されたハッシュ値と、前記復号結果および前記ペアリング計算結果を含むデータより生成されたハッシュ値と、前記利用者Aの公開鍵から生成したハッシュ値と、利用者Aのユーザ公開鍵と、公開パラメータに含まれるいくつかのデータと、を用いて署名検証を行い、検証が成功すれば前記復号結果を、失敗した場合、復号および検証失敗を示すデータを、
    復号および検証結果として記憶装置上に保存する復号および検証処理と、を特徴とする請求項2記載のサインクリプション生成方法。
  4. 記憶装置を有するとともに任意の文字列を用いることのできる公開鍵に加えて、利用者自身が作成したユーザ公開鍵を用いて、暗号化と署名生成を同時に行うサインクリプションシステムであって、
    制御装置による制御の元となる素数qを選択し、位数qの2つの群G1、GおよびG1の生成元Pを、ペアリングe: G1×G1→Gを選択する手段と、
    乱数sを生成し、上記乱数sを用いてPpubを計算計算する手段と、
    4つのハッシュ関数H、H、H、Hをする手段と、
    共通鍵暗号Eを選択し、公開パラメータparamsを
    <q,G1,G,e,P,Ppub,H1,H,H,H,E>,整数sをマスター鍵とする手段と、
    前記記憶装置上に保存することを特徴とする公開パラメータおよびマスター鍵を生成する手段と、
    任意の文字列である上記利用者の公開鍵に対して、制御装置による制御の元である上記マスター鍵を用いて、上記利用者の部分秘密鍵を生成する手段と、
    前記記憶装置上に保存するする手段と、を備えたサインクリプションシステム。
  5. 前記生成した公開パラメータと、署名付き暗号化処理を行う利用者Aの公開鍵に対して部分秘密鍵生成方法を用いて生成した部分秘密鍵を用いて、秘密鍵とユーザ公開鍵から構成される利用者Aのユーザ鍵を生成し、記憶装置上に保存する手段と、
    制御装置による制御の元、前記公開パラメータと、前記署名付き暗号化対象データと、前記利用者Aの公開鍵、ユーザ公開鍵および秘密鍵と、前記署名付き暗号化データの復号および検証者である利用者Bの公開鍵およびユーザ公開鍵と、に対して、乱数を生成し、前記乱数と前記公開パラメータに含まれるデータを用いてデータUを計算する手段と、
    利用者Bの公開鍵から生成したハッシュ値と、前記公開パラメータに含まれるデータと、前記乱数と、からペアリングを用いてペアリング計算結果を計算する手段と、
    前記署名付き暗号化対象データと、前記Uと、を含むデータを用いて計算されるハッシュ値と、前記署名付き暗号化対象データと、前記Uと、前記ペアリング計算結果と、を含むデータを用いて計算されるハッシュ値と、利用者Aの秘密鍵と、を用いて、前記署名付き暗号化対象データに対する署名Wを生成する手段と、
    前記Uと、前記ペアリング計算結果と、前記乱数と前記利用者Aのユーザ公開鍵から計算したデータと、利用者Aの公開鍵およびユーザ公開鍵と、をハッシュ関数の入力として生成したハッシュ値を共通鍵暗号の鍵として、前記署名付き暗号化対象データを、共通鍵暗号を用いることにより暗号化することで暗号化データVを生成する手段と、
    前記U,VおよびWから構成されるC=(U,V,W)を署名付き暗号化結果として記憶装置上に保存する手段と、を備えたことを特徴とする請求項4記載のサインクリプションシステム。
  6. 前記生成した公開パラメータと、復号および検証処理を行う利用者Bの公開鍵に対して部分秘密鍵生成方法を用いて生成した部分秘密鍵を用いて、秘密鍵とユーザ公開鍵から構成される利用者Bのユーザ鍵を生成し、記憶装置上に保存する手段と、
    制御装置による制御の元、前記公開パラメータと、前記生成した署名付き暗号化データC=(U,V,W)と、前記利用者Bの公開鍵、ユーザ公開鍵および秘密鍵と、前記署名付き暗号化データの生成者である利用者Aの公開鍵およびユーザ公開鍵と、に対して、
    前記署名付き暗号化データに含まれるデータUと、前記Uに加えて利用者Bの秘密鍵に含まれるデータを用いて計算したデータと、ペアリングを用いて前記Uに加えて利用者Bの秘密鍵に含まれるデータから計算したデータと、利用者Aの公開鍵およびユーザ公開鍵と、をハッシュ関数の入力として生成したハッシュ値を共通鍵暗号の鍵として、
    前記署名付き暗号化データに含まれるデータVを、共通鍵暗号を用いることにより復号し、復号結果を含むデータより生成されたハッシュ値と、前記復号結果および前記ペアリング計算結果を含むデータより生成されたハッシュ値と、前記利用者Aの公開鍵から生成したハッシュ値と、利用者Aのユーザ公開鍵と、公開パラメータに含まれるいくつかのデータと、を用いて署名検証を行い、検証が成功すれば前記復号結果を、失敗した場合、復号および検証失敗を示すデータを、
    復号および検証結果として記憶装置上に保存する手段と、を備えたことを特徴とする請求項5記載のサインクリプションシステム。
JP2009241964A 2009-10-21 2009-10-21 サインクリプションシステムおよびサインクリプション生成方法 Expired - Fee Related JP5171787B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009241964A JP5171787B2 (ja) 2009-10-21 2009-10-21 サインクリプションシステムおよびサインクリプション生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009241964A JP5171787B2 (ja) 2009-10-21 2009-10-21 サインクリプションシステムおよびサインクリプション生成方法

Publications (2)

Publication Number Publication Date
JP2011091517A true JP2011091517A (ja) 2011-05-06
JP5171787B2 JP5171787B2 (ja) 2013-03-27

Family

ID=44109385

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009241964A Expired - Fee Related JP5171787B2 (ja) 2009-10-21 2009-10-21 サインクリプションシステムおよびサインクリプション生成方法

Country Status (1)

Country Link
JP (1) JP5171787B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112653547A (zh) * 2019-10-10 2021-04-13 英飞凌科技股份有限公司 用于处理输入数据的设备和方法、车辆和存储介质
CN114128213A (zh) * 2019-05-29 2022-03-01 比特飞翔区块链株式会社 用于验证公钥的可靠性的装置、方法以及其程序
CN117235813A (zh) * 2023-11-16 2023-12-15 中国标准化研究院 一种电子签名数据质量检测方法和系统
CN117640085A (zh) * 2023-12-07 2024-03-01 合肥讯标信息科技有限公司 一种一网统管工单数据安全流转方法及系统

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106571912B (zh) * 2016-10-31 2019-10-01 全球能源互联网研究院有限公司 一种面向电力系统的两方认证方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
CSNJ201010031043; Fagen Li, Masaaki Shirase, Tsuyoshi Takagi: '"How to Construct an Identity-Based Hybrid Signcryption Scheme"' 2009年 暗号と情報セキュリティシンポジウム SCIS2009 [CD-ROM] 1C2 IDベース暗号,1C2-2, 20090120, p.1-6, 電子情報通信学会情報セキュリティ研究専門委員会 *
JPN6012047384; M. Barbosa and P. Farshim: '"Certificateless Signcryption"' Cryptology ePrint Archive: Report 2008/143 Version: 20080331:142324, 20080331, [online] *
JPN6012047386; Fagen Li, Masaaki Shirase, Tsuyoshi Takagi: '"How to Construct an Identity-Based Hybrid Signcryption Scheme"' 2009年 暗号と情報セキュリティシンポジウム SCIS2009 [CD-ROM] 1C2 IDベース暗号,1C2-2, 20090120, p.1-6, 電子情報通信学会情報セキュリティ研究専門委員会 *
JPN6012047388; John Malone-Lee: '"Identity-Based Signcryption"' Cryptology ePrint Archive: Report 2002/098 Version: 20020720:235504, 20020720, [online] *
JPN6012047389; Sattam S. Al-Riyami and Kenneth G. Paterson: '"Certificateless Public Key Cryptography"' Cryptology ePrint Archive: Report 2003/126 Version: 20031021:122149, 20031021, [online] *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114128213A (zh) * 2019-05-29 2022-03-01 比特飞翔区块链株式会社 用于验证公钥的可靠性的装置、方法以及其程序
CN114128213B (zh) * 2019-05-29 2024-05-28 比特飞翔区块链株式会社 用于验证公钥的可靠性的装置、方法以及其程序
CN112653547A (zh) * 2019-10-10 2021-04-13 英飞凌科技股份有限公司 用于处理输入数据的设备和方法、车辆和存储介质
US11849024B2 (en) 2019-10-10 2023-12-19 Infineon Technologies Ag Generating hash values
CN112653547B (zh) * 2019-10-10 2024-04-19 英飞凌科技股份有限公司 用于处理输入数据的设备和方法、车辆和存储介质
CN117235813A (zh) * 2023-11-16 2023-12-15 中国标准化研究院 一种电子签名数据质量检测方法和系统
CN117235813B (zh) * 2023-11-16 2024-01-23 中国标准化研究院 一种电子签名数据质量检测方法和系统
CN117640085A (zh) * 2023-12-07 2024-03-01 合肥讯标信息科技有限公司 一种一网统管工单数据安全流转方法及系统

Also Published As

Publication number Publication date
JP5171787B2 (ja) 2013-03-27

Similar Documents

Publication Publication Date Title
JP4546231B2 (ja) Idベース署名及び暗号化システムおよび方法
US7516321B2 (en) Method, system and device for enabling delegation of authority and access control methods based on delegated authority
JP3560439B2 (ja) 暗号キーの回復を実行する装置
US8670563B2 (en) System and method for designing secure client-server communication protocols based on certificateless public key infrastructure
JP4130653B2 (ja) 擬似公開鍵暗号方法及びシステム
US20070058802A1 (en) Cryptosystem Based on a Jacobian of a Curve
US9698984B2 (en) Re-encrypted data verification program, re-encryption apparatus and re-encryption system
CN109547209B (zh) 一种两方sm2数字签名生成方法
CN109951276B (zh) 基于tpm的嵌入式设备远程身份认证方法
JP6041864B2 (ja) データの暗号化のための方法、コンピュータ・プログラム、および装置
JP5171787B2 (ja) サインクリプションシステムおよびサインクリプション生成方法
US20190294417A1 (en) Method and system for deriving deterministic prime number
KR100396740B1 (ko) 계산적 디피-헬만 가정에 기반하는 안전성 증명 가능한공개키 암호화 방법
JP2004228916A (ja) 署名暗号方法、その装置およびそのプログラム
KR101793528B1 (ko) 무인증서 공개키 암호 시스템
JP2004297755A (ja) 暗号システムにおける鍵管理サーバおよび復号装置を制御するプログラム,ならびに署名/検証システムにおける鍵管理サーバおよび検証装置を制御するプログラム
CN113114458A (zh) 加密证书生成、解密方法及装置、加密证书系统
CN113141249B (zh) 一种门限解密方法、系统及可读存储介质
KR20160104603A (ko) 인증서버 없이 공개키를 인증하는 방법 및 장치
JP4000899B2 (ja) 認証付暗号方法及び認証付復号方法及び装置及びプログラム及びコンピュータが読み取り可能な記録媒体
JP2021196428A (ja) 暗号システム、ユーザ端末、方法及びプログラム
JP6153454B2 (ja) 署名装置、方法及びプログラム
CN116680710A (zh) 一种密码机密钥认证方法及系统
TW202245436A (zh) 產生訊息的簽章的方法、訊息認證方法以及加密裝置
JP2009296489A (ja) 情報処理装置、暗号化通信システム、暗号化通信方法及びプログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120824

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120911

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121105

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: 20121127

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121225

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160111

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees