【文献】
柴田 陽一 ほか,メカニズムベースPKI−指紋からの秘密鍵動的生成,情報処理学会論文誌,日本,社団法人情報処理学会,2004年 8月15日,第45巻 第8号 ,pp.1833-1844
【文献】
宇根 正志 ほか,偽造防止技術のなかの人工物メトリクス:セキュリティ研究開発の動向と課題,金融研究,日本,欧文印刷株式会社,2009年 7月21日,第28巻 第2号,pp.151−153、167
(58)【調査した分野】(Int.Cl.,DB名)
チャレンジデータを物理的複製不可関数(PUF)で演算して得られた第1レスポンスデータによりPUF証明書を生成する証明書登録部と、チャレンジデータを物理的複製不可関数で演算して得られた第2レスポンスデータによりPUF署名を生成する署名生成部を備える電子署名装置であり、
前記証明書登録部が、
秘密鍵及び公開鍵のペアを生成する第1PUF鍵ペア生成部と、前記第1レスポンスデータを、前記秘密鍵に埋め込んだ情報を用いてPUF証明書を作成するPUF証明書作成部とを備え、
前記署名生成部が、
一次秘密鍵及び一次公開鍵のペアを生成する第2PUF鍵ペア生成部と、前記第2レスポンスデータを、前記秘密鍵に埋め込んだ情報を用いてPUF署名を生成するPUF署名生成部とを備え
ていることを特徴とする電子署名装置。
前記証明書登録部が、複数の異なる前記チャレンジデータから何れかを予め設定したルールにより選択して、前記物理的複製不可関数のPUF論理回路を有するPUFデバイスに送信し、前記第1レスポンスデータを得て、
前記署名生成部が、複数の異なる前記チャレンジデータから前記ルールにより前記証明書登録部と同一のチャレンジデータを選択して、前記物理的複製不可関数のPUF論理回路を有するPUFデバイスに送信し、前記第2レスポンスデータを得る
ことを特徴とする請求項1に記載の電子署名装置。
前記証明書登録部が、複数の異なるチャレンジデータを前記物理的複製不可関数のPUF論理回路を有するPUFデバイスに送信し、複数の前記第1レスポンスデータを得て、複数の前記第1レスポンスデータを用いて所定の演算により新たな第1レスポンスデータを生成し、当該新たな第1レスポンスデータにより前記PUF証明書を生成し、
前記署名生成部が、前記証明書登録部と同一複数の異なるチャレンジデータを前記物理的複製不可関数のPUF論理回路を有するPUFデバイスに送信し、複数の前記第2レスポンスデータを得て、複数の前記第2レスポンスデータを用いて証明書登録部と同一の所定の演算により新たな第2レスポンスデータを生成し、当該新たな第2レスポンスデータにより前記PUF署名を生成する
ことを特徴とする請求項1に記載の電子署名装置。
前記証明書登録部が、その都度生成されるワンタイムの前記チャレンジデータを前記物理的複製不可関数のPUF論理回路を有するPUFデバイスに送信し、前記第1レスポンスデータを得て、
前記署名生成部が、前記証明書登録部と同一のワンタイムの前記チャレンジデータを前記物理的複製不可関数のPUF論理回路を有するPUFデバイスに送信し、前記第2レスポンスデータを得る
ことを特徴とする請求項1に記載の電子署名装置。
前記証明書登録装置が、複数の異なる前記チャレンジデータから何れかを予め設定したルールにより選択して、前記物理的複製不可関数のPUF論理回路を有する前記PUFデバイスに送信し、前記第1レスポンスデータを得て、
前記署名生成装置が、複数の異なる前記チャレンジデータから前記ルールにより前記証明書登録装置と同一のチャレンジデータを選択して、前記物理的複製不可関数のPUF論理回路を有するPUFデバイスに送信し、前記第2レスポンスデータを得る
ことを特徴とする請求項5または請求項6に記載の電子署名システム。
前記証明書登録装置が、複数の異なるチャレンジデータを前記物理的複製不可関数のPUF論理回路を有するPUFデバイスに送信し、複数の前記第1レスポンスデータを得て、複数の前記第1レスポンスデータを用いて所定の演算により新たな第1レスポンスデータを生成し、当該新たな第1レスポンスデータにより前記PUF証明書を生成し、
前記署名生成装置が、前記証明書登録装置と同一の複数の異なるチャレンジデータを前記物理的複製不可関数のPUF論理回路を有する前記PUFデバイスに送信し、複数の前記第2レスポンスデータを得て、複数の前記第2レスポンスデータを用いて証明書登録部と同一の所定の演算により新たな第2レスポンスデータを生成し、当該新たな第2レスポンスデータにより前記PUF署名を生成する
ことを特徴とする請求項5または請求項6に記載の電子署名システム。
前記証明書登録装置が、その都度生成されるワンタイムの前記チャレンジデータを前記物理的複製不可関数のPUF論理回路を有するPUFデバイスに送信し、前記第1レスポンスデータを得て、
前記署名生成装置が、前記証明書登録装置と同一のワンタイムの前記チャレンジデータを前記物理的複製不可関数のPUF論理回路を有するPUFデバイスに送信し、前記第2レスポンスデータを得る
ことを特徴とする請求項5または請求項6に記載の電子署名システム。
チャレンジデータを物理的複製不可関数(PUF)で演算して得られた第1レスポンスデータによりPUF証明書を生成する証明書登録部と、チャレンジデータを物理的複製不可関数で演算して得られた第2レスポンスデータによりPUF署名を生成する署名生成部を備える署名装置における署名方法であり、
前記証明書登録部が、秘密鍵及び公開鍵のペアを生成する第1PUF鍵ペア生成過程と、
前記証明書登録部が、前記第1レスポンスデータを、前記秘密鍵に埋め込んだ情報を用いてPUF証明書を作成するPUF証明書作成過程と、
前記署名生成部が、一次秘密鍵及び一次公開鍵のペアを生成する第2PUF鍵ペア生成過程と、
前記証明書登録部が、前記第2レスポンスデータを、前記秘密鍵に埋め込んだ情報を用いてPUF署名を生成するPUF署名生成過程と
を含むことを特徴とする電子署名方法。
チャレンジデータを物理的複製不可関数(PUF)で演算して得られた第1レスポンスデータによりPUF証明書を生成する証明書登録部と、チャレンジデータを物理的複製不可関数で演算して得られた第2レスポンスデータによりPUF署名を生成する署名生成部を備える署名装置の動作をコンピュータに実行させるプログラムであり、
前記コンピュータを、
秘密鍵及び公開鍵のペアを生成し、前記第1レスポンスデータを、前記秘密鍵に埋め込んだ情報を用いてPUF証明書を作成する証明書登録手段、
一次秘密鍵及び一次公開鍵のペアを生成し、前記第2レスポンスデータを、前記秘密鍵に埋め込んだ情報を用いてPUF署名を生成する署名生成手段
として機能させるためのプログラム。
【発明を実施するための形態】
【0021】
<第1の実施形態>
以下、図面を参照して、本発明の第1の実施形態について説明する。
図1は、本発明の第1の実施形態による電子署名システムの構成例を示す概略ブロック図である。この
図1において、電子署名システム1は、署名生成装置11、証明書登録装置12、署名検証装置13、証明書管理装置14、PUF(Physical Unclonable Function:物理的複製不可関数)デバイス15、読取装置16及び読取装置17を備えている。署名生成装置11、証明書登録装置12、署名検証装置13、証明書管理装置14の各々は、インターネットなどの情報通信回線100に接続されている。
【0022】
署名生成装置11、証明書登録装置12、署名検証装置13及び証明書管理装置14の各々は、情報通信回線100を介して種々のデータの送受信を行う。読取装置16及び読取装置17の各々は、それぞれ署名生成装置11、証明書登録装置12に接続されている。PUFデバイス15は、読取装置16及び読取装置17の各々を介して、署名生成装置11、照明書登録装置12それぞれと種々のデータの送受信を行う。
【0023】
証明書登録装置12は、電子証明書(後述するPUF証明書)を作成して証明書管理装置14に登録する装置である。証明書登録装置12は、チャレンジデータ管理部121、チャレンジデータ送信部122、レスポンスデータ受信部123、ID(Identification)入力部124、PUF鍵ペア生成部125及びPUF証明書作成部126の各々を備えている。ここで、PUFとは、半導体電子回路の製造上の個体間の誤差などの複製困難な物理的特徴を利用してデバイスに固有の値を出力する関数(物理的複製不可関数)を示す。
【0024】
このPUF(物理的複製不可関数)は、本実施形態において、例えば、半導体回路における製造上のばらつきに基づくディレイによる信号遅延を利用して、論理回路における論理演算が半導体デバイスの個体差により、半導体デバイスの各々の演算結果が他の半導体デバイスと異なるPUF技術を利用している。したがって、同一のチャレンジデータを、半導体デバイスであるPUFデバイス15に送信した場合、PUF回路151での論理演算の結果であるレスポンスデータは、PUFデバイス15の各々の個体差により異なる数値として出力される。
【0025】
チャレンジデータ管理部121には、チャレンジデータが予め内部の記憶部に書き込まれて管理されている。チャレンジデータは、予め設定された所定の情報である。
チャレンジデータ送信部122は、チャレンジデータ管理部121からチャレンジデータXを読み出し、読み出したチャレンジデータXをPUFデバイス15に対して送信する。
レスポンスデータ受信部123は、PUFデバイス15がチャレンジデータXに対応して出力するレスポンスデータY(第1レスポンスデータ)を受信し、PUF鍵ペア生成部125に対して出力する。
ID入力部124は、ユーザから図示しない入力手段(例えば、キーボードなど)により供給されるユーザ自身のIDを入力する。
【0026】
PUF鍵ペア生成部125は、所定の電子署名アルゴリズムにより秘密鍵KSe及び公開鍵KPeの各々をペアとしてランダムに生成する。
また、PUF鍵ペア生成部125は、所定の埋め込み関数Funcを用い、秘密鍵Seに対してレスポンスデータYを埋め込み、登録用コミットメントCe=Func(Y,KSe)を生成する。ここで、埋め込み関数Funcは、登録用コミットメントCeから、秘密鍵Se及びレスポンスデータYの各々を推定することが困難である関数を用いる。また、公開鍵KPe及び登録用コミットメントCeの組(KPe,Ce)をPUF公開鍵とし、秘密鍵KSeをPUF秘密鍵とする。
【0027】
PUF証明書作成部126は、ユーザのIDと、PUF公開鍵(KPe,Ce)と、PUF秘密鍵KSeとを用いて電子署名Sを生成する。また、PUF証明書作成部126は、IDと、PUF公開鍵と登録用コミットメントCeの組(KPe,Ce)と、電子署名Sとの組T(ID,KPe,Ce,S)をPUF証明書Tとして発行する。PUF証明書作成部126は、生成したPUF証明書T(ID,KPe,Ce,S)を証明書管理装置14に登録する。ここで、電子署名Sを生成する電子署名のアルゴリズムは、RSA暗号、Schnorr署名などの一般的な電子署名を用いる。
【0028】
署名生成装置11は、データ(メッセージ)に付加する真の情報であることを証明するための電子署名を作成する装置である。署名生成装置11は、メッセージ入力部111、ID入力部112、チャレンジデータ管理部113、チャレンジデータ送信部114、レスポンスデータ受信部115、PUF鍵ペア生成部116、PUF署名生成部117及びPUF署名出力部118の各々を備えている。
【0029】
メッセージ入力部111は、図示しない入力手段により供給されるメッセージデータを入力する。
ID入力部112は、ユーザから入力手段により供給されるユーザ自身のIDを入力する。
チャレンジデータ管理部113には、チャレンジデータが内部の記憶部に予め書き込まれて管理されている。チャレンジデータは、予め設定された所定の情報である。
チャレンジデータ送信部114は、チャレンジデータ管理部113からチャレンジデータXを読み出し、読み出したチャレンジデータXをPUFデバイス15に対して送信する。
レスポンスデータ受信部115は、PUFデバイス15がチャレンジデータXに対応して出力するレスポンスデータY’(第2レスポンスデータ)を受信し、PUF鍵ペア生成部116に対して出力する。
【0030】
PUF鍵ペア生成部116は、PUF鍵ペア生成部125と同様の電子署名アルゴリズムにより秘密鍵及び公開鍵のペアをランダムに生成する。ここで、秘密鍵を一次秘密鍵KSsとし、公開鍵を一次公開鍵KPsとする。
【0031】
PUF署名生成部117は、PUF鍵ペア生成部125と同様の埋め込み関数Funcを用い、一次秘密鍵KSsに対してレスポンスデータY’を埋め込み、署名用コミットメントCs=Func(Y’,KSs)を生成する。
また、PUF署名生成部117は、一次公開鍵KPsとPUF鍵ペア生成部125と同様の電子署名アルゴリズムにより、メッセージデータに対する電子署名γ’を生成する。
PUF署名生成部117は、ユーザのIDと、一次PUF公開鍵KPsと、署名用コミットメントCsと、電子署名γ’との組γ(ID,KPs,Cs,γ’)を、PUF電子署名γとする。
【0032】
PUF署名出力部118は、生成したPUF電子署名をメッセージデータに対して付加し、PUF署名付きメッセージとして出力する。
【0033】
署名検証装置13は、PUF署名付きメッセージにおけるPUF電子署名の真贋を検証する装置である。署名検証装置13は、PUF署名付きメッセージ入力部131、PUF証明書取得部132、PUF証明書検証部133、PUF署名検証部134及び検証結果出力部135の各々を備えている。
【0034】
PUF署名付きメッセージ入力部131は、署名生成装置11からPUF署名付きメッセージが供給されると、PUF証明書取得部132に対して出力する。
PUF証明書取得部132は、PUF署名付きメッセージにおけるPUF電子署名γ(ID,KPs,Cs,γ’)からIDを抽出する。また、PUF証明書取得部132は、抽出したIDにより、証明書管理装置14からPUF証明書T(ID,KPe,Ce,S)を取得する。
【0035】
PUF証明書検証部133は、PUF証明書T(ID,KPe,Ce,S)に含まれている登録用コミットメントCeに含まれる電子署名Sと、PUF証明書T(ID,KPe,Ce,S)に含まれている登録用コミットメントCeに含まれるPUF公開鍵(Y,KPe)とにより、PUF証明書T(ID,KPe,Ce,S)の真贋を検証する。
【0036】
PUF署名検証部134は、メッセージデータに付加されたPUF電子署名γ(ID,KPs,Cs,γ’)に含まれる電子署名γ’の真贋を、PUF電子署名γ(ID,KPs,Cs,γ’)に含まれる一次公開鍵KPsを用いて検証する。
また、PUF署名検証部134は、PUF証明書T(ID,KPe,Ce,S)に含まれる登録用コミットメントCeと、PUF電子署名γ(ID,KPs,Cs,γ’)に含まれる署名用コミットメントCsとに対し、所定の関数Fdiff_1を用い、差分秘密鍵KSdiff=Fdiff_1(Cs,Ce)を算出する。
【0037】
上述した所定の関数Fdiff_1は、例えばレスポンスデータYとレスポンスデータY’とが十分に近ければ、すなわち近似している場合、差分秘密鍵KSdiffが秘密鍵KSeと一次秘密鍵KSsとの差分(KSe−KSs)に近くなるように構成されている。
【0038】
PUF署名検証部134は、PUF証明書T(ID,KPe,Ce,S)に含まれる公開鍵KPeと、PUF電子署名γ(ID,KPs,Cs,γ’)に含まれる一次公開鍵KPsとに対し、所定の関数Fdiff_2を用い、差分公開鍵KPdiff=Fdiff_2(KPe,KPs)を算出する。
また、上述した所定の関数Fdiff_2は、秘密鍵KSeと一次秘密鍵KSsとの差分に相当するKSe−KSsを新たな秘密鍵と見なしたとき、差分公開鍵KPdiffが対応する公開鍵となるように構成されている。
【0039】
PUF署名検証部134は、署名生成装置11及び証明書登録装置12の各々で用いている電子署名アルゴリズムにより、差分秘密鍵KSdiffと差分公開鍵KPdiffとが対応する鍵ペアであるか否かの検証を行う。
上述したように、PUF署名検証部134は、PUF証明書とPUF署名とが同一のPUFデバイス15による物理的複製不可関数で得られたレスポンスデータを元に生成されているか否かにより、PUF署名の検証を行っている。
【0040】
証明書管理装置14は、証明書登録装置12により生成されたPUF証明書T(ID,KPe,Ce,S)が登録されている装置である。
証明書管理装置14は、DB制御部141及びリポジトリデータベース142の各々を備えている。
リポジトリデータベース142には、利用者のIDとPUF証明書とが対応付けられたPUF証明書テーブルが記憶されている。
DB制御部141は、リポジトリデータベース142のPUF証明書テーブル対し、利用者のIDとPUF証明書との組の書き込み及び呼び出しを行う。
【0041】
図2は、リポジトリデータベース142に記憶されているPUF証明書テーブルの構成例を示す図である。
図2に示すように、PUF証明書テーブルには、利用者のIDとPUF証明書とが対応付けられて記憶されている。
【0042】
図1に戻り、PUFデバイス15は、供給されるチャレンジデータに対し、物理的な個体差を利用したPUF技術による演算を行い、レスポンスデータの生成を行う。
PUFデバイス15は、PUF回路151及びデータ制御部152の各々が備えられている。
PUF回路151は、物理的な個体差によりPUFデバイス15の各々で異なる論理演算などが行われる回路構成を有している。このため、PUF回路151の各々は、異なる他のPUF回路151と同一のチャレンジデータが供給されても、個体差によりそれぞれ他のPUFデバイスと異なるレスポンスデータを生成して出力する。このPUF回路151は、PUF技術により個体差を生じるものであれば、どのような構成でも良い。
データ制御部152は、PUF回路151に対してチャレンジデータの供給及びレスポンスデータの読み出しを行う。
【0043】
読取装置16は、カードリーダなどであり、署名生成装置11に接続されており、署名生成装置11及びPUFデバイス15間のデータの送受信を行う。
読取装置17は、カードリーダなどであり、証明書登録装置12に接続されており、証明書登録装置12及びPUFデバイス15間のデータの送受信を行う。
【0044】
図3は、第1の実施形態における証明書登録装置12によるPUF証明書登録処理の動作例を示すシーケンス図である。
チャレンジデータ送信部122は、チャレンジデータ管理部121からチャレンジデータXを読み出し、チャレンジデータXを取得する(シーケンスS111)。
チャレンジデータ送信部122は、取得したチャレンジデータXを読取装置17に対して送信する(シーケンスS112)。
そして、読取装置17は、供給されるチャレンジデータXをPUFデバイス15に対して送信する(シーケンスS113)。
【0045】
データ制御部152は、供給されるチャレンジデータをPUF回路151に対して出力する。そして、PUF回路151は、入力されるチャレンジデータXに対して固有の演算を施し、演算結果をレスポンスデータYとしてデータ制御部152に出力する(シーケンスS114)。
データ制御部152は、PUF回路151から供給されるレスポンスデータYを証明書登録装置12に対し、読取装置17を介して送信する(シーケンスS115)。
【0046】
レスポンスデータ受信部123は、PUFデバイス15から供給されるレスポンスデータYを受信し、受信したレスポンスデータYをPUF鍵ペア生成部125に対して出力する(シーケンスS116)。
ID入力部124は、利用者が入力手段から入力するIDを、一旦内部に記憶する(シーケンスS117)。
【0047】
PUF鍵ペア生成部125は、所定の電子署名アルゴリズムにより、秘密鍵KSe及び公開鍵SPeの各々をペアとしてランダムに生成する(シーケンスS118)。
そして、PUF鍵ペア生成部125は、埋め込み関数Funcを用いて、秘密鍵KSeに対してレスポンスデータYを埋め込み登録用コミットメントCeを生成する。また、PUF鍵ペア生成部125は、登録用コミットメントCe及び公開鍵KPeからPUF公開鍵(KPe,Ce)を生成する(シーケンスS119)。
【0048】
PUF証明書作成部126は、ID入力部124からIDを読み込む。PUF証明書作成部126は、IDとPUF公開鍵(KPe,Ce)とPUF秘密鍵KSeとにより電子署名Sを生成した後、PUF証明書T(ID,KPe,Ce,S)を生成する(シーケンスS120)。
そして、PUF証明書作成部126は、生成したPUF証明書T(ID,KPe,Ce,S)を登録処理のため、証明書管理装置14に対して送信する(シーケンスS121)。
【0049】
DB制御部141は、証明書登録装置12から供給されるPUF証明書T(ID,KPe,Ce,S)からIDを抽出する。そして、DB制御部141は、抽出したIDとPUF証明書T(ID,KPe,Ce,S)とを組として、リポジトリデータベース142のPUF証明書テーブル対して書き込んで記憶させることで登録処理を行う(シーケンスS122)。
【0050】
図4は、第1の実施形態における署名生成装置11による署名生成処理の動作例を示すシーケンス図である。
メッセージ入力部111は、ユーザが入力手段から入力したメーセージデータを取得し、一旦内部に記憶する(シーケンスS211)。
ID入力部112は、ユーザが入力手段から入力したID(ユーザID)メーセージデータを取得し、一旦内部に記憶する(シーケンスS212)。
チャレンジデータ送信部114は、チャレンジデータ管理部113からチャレンジデータXを読み出し、チャレンジデータXを取得する(シーケンスS213)。
【0051】
チャレンジデータ送信部114は、取得したチャレンジデータXを読取装置16に対して送信する(シーケンスS214)。
そして、読取装置16は、供給されるチャレンジデータXをPUFデバイス15に対して送信する(シーケンスS215)。
データ制御部152は、供給されるチャレンジデータをPUF回路151に対して出力する。そして、PUF回路151は、入力されるチャレンジデータXに対して固有の演算を施し、演算結果をレスポンスデータY’としてデータ制御部152に出力する(シーケンスS216)。
【0052】
データ制御部152は、PUF回路151から供給されるレスポンスデータY’を署名生成装置11に対し、読取装置16を介して送信する(シーケンスS217)。
レスポンスデータ受信部115は、PUFデバイス15から供給されるレスポンスデータY’を受信し、受信したレスポンスデータY’をPUF署名生成部117に対して出力する(シーケンスS218)。
【0053】
PUF鍵ペア生成部116は、所定の電子署名アルゴリズムにより、一次秘密鍵KSs及び一次公開鍵KPsの各々をペアとしてランダムに生成する(シーケンスS219)。
そして、PUF署名生成部117は、埋め込み関数Funcを用いて、一次秘密鍵KSsに対してレスポンスデータY’を埋め込み、署名用コミットメントCsを生成する(シーケンスS220)。
【0054】
PUF署名生成部117は、ID入力部112からIDを読み込む。PUF署名生成部117は、一次公開鍵KPsと所定の電子署名アルゴリズムとから電子署名γ’を生成した後、IDと一次公開鍵KPsと署名用コミットメントCsと電子署名γ’とにより、PUF署名γ(ID,KPs,Cs,γ’)を生成する(シーケンスS221)。
そして、PUF署名生成部117は、生成したPUF署名γ(ID,KPs,Cs,γ)をメッセージデータに付加し、PUF署名付きメッセージとして出力する(シーケンスS222)。
【0055】
図5は、第1の実施形態における署名検証装置13による署名検証処理の動作例を示すシーケンス図である。
PUF署名付きメッセージ入力部131は、PUF署名付きメッセージを署名生成装置11から供給されると、PUF署名付きメッセージを取得する(シーケンスS311)。
PUF証明書取得部132は、PUF署名付きメッセージにおけるPUF署名γ(ID,KPs,Cs,γ’)からIDを抽出する。そして、PUF証明書取得部132は、抽出したIDを証明書管理装置14に対して送信し、このIDに対応するPUF証明書の送付を指示する(シーケンスS312)。
【0056】
証明書管理装置14のDB制御部141は、PUF証明書取得部132から、ID及びPUF証明書T(ID,KPe,Ce,S)の送付の依頼が供給されると、このIDに対応するPUF証明書T(ID,KPe,Ce,S)を、リポジトリデータベース142のPUF証明書テーブルから検索する。そして、DB制御部141は、IDに対応してPUF証明書テーブルから読み出したPUF証明書T(ID,KPe,Ce,S)を、署名検証装置13に対して送信する(シーケンスS313)。
【0057】
PUF証明書取得部132は、証明書管理装置14から供給されるPUF証明書T(ID,KPe,Ce,S)を取得する(シーケンスS314)。
次に、PUF証明書検証部133は、PUF証明書T(ID,KPe,Ce,S)に含まれる電子署名Sと公開鍵KPeとを用いて電子署名アルゴリズムにより演算を行い、このPUF証明書T(ID,KPe,Ce,S)が改竄されていないか否かの判定を行う(シーケンスS315)。
そして、PUF署名検証部134は、PUF署名γ(ID,KPs,Cs,γ’)に含まれる電子署名γ’と一次公開鍵KPsとを用いて電子署名アルゴリズムにより演算を行い、PUF署名γ(ID,KPs,Cs,γ’)が改竄されていないか否かの判定を行う(シーケンスS316)。
【0058】
次に、PUF署名検証部134は、PUF証明書T(ID,KPe,Ce,S)に含まれる登録用コミットメントCsと、PUF署名γ(ID,KPs,Cs,γ’)に含まれる署名用コミットメントCsとを用いて所定の関数Fdiff_1により、差分秘密鍵KSdiffを算出する(シーケンスS317)。
そして、PUF署名検証部134は、PUF証明書T(ID,KPe,Ce,S)に含まれる公開鍵KPeと、PUF署名γ(ID,KPs,Cs,γ’)に含まれる一次公開鍵KPsとを用いて所定の関数Fdiff_2により、差分公開鍵KPdiffを算出する(シーケンスS318)。
【0059】
PUF署名検証部134は、求めた差分秘密鍵KSdiffと差分公開鍵KPdiffとが対応するペアの鍵であるか否かを電子署名アルゴリズムを用いて判定により検証する(シーケンスS319)。このとき、PUF署名検証部134は、差分秘密鍵Sdiffが秘密鍵KPeと一次秘密鍵KPsとの差分と一致した場合にレスポンスデータYとレスポンスデータY’とが近似していると判定する。また、PUF署名検証部134は、分秘密鍵KSdiffと差分公開鍵KPdiffとが対応するペアの鍵であると検証された場合、PUF署名γ(ID,KPs,Cs,γ’)がPUF証明書T(ID,KPe,Ce,S)に対応すると判定する。
【0060】
そして、検証結果出力部135は、全ての検証が成功した場合にPUF署名がPUF証明書に対応した検証成功を示す情報を出力する。一方、検証結果出力部135は、いずれかの検証において失敗した場合にPUF証明書及びPUF署名の改竄かあるいはPUF証明書及びPUF署名が対応していないなどの失敗原因を含む検証失敗の情報を出力する(シーケンスS320)。
【0061】
上述したように、本実施形態によれば、署名対象であるメッセージデータとユーザのIDとPUF技術により生成されたレスポンスデータ以外に、署名生成装置11において何らかのユーザの情報、すなわちパスワードや暗証番号を記憶する必要がなく、利用者の利便性は従来に比較して向上する。
また、本実施形態によれば、認証情報の核となるチャレンジデータが漏洩したとしても、異なるチャレンジデータに変更することにより、容易に新たな認証情報を生成することができるため冗長性を提供することができる。
【0062】
さらに、PUFデバイス15に対してIDを格納させておくことにより、利用者がIDを入力手段から入力する必要が無く、ID入力部112及びID入力部124の各々がPUFデバイス15から読み込む構成とすることができる。この結果、署名生成装置11をセンサ装置に搭載させることにより、取得したセンサデータをメッセージデータとして出力させる際に、人間の係わる工程を必要とせずに、装置対装置におけるデータの送受信を可能とできる。
また、本実施形態によれば、PUF回路をICカードに搭載することにより、認証情報の改竄などが容易に検出することができるため、クレジットカードなどの決済にも使用することができる。
【0063】
また、本実施形態において、チャレンジデータ管理部113及びチャレンジデータ管理部121の各々に格納されているチャレンジデータは暗号化されており、使用する毎に復号して用いるように構成しても良い。
また、チャレンジデータをチャレンジデータ管理部113に格納しておくのではなく、チャレンジデータをICカードなどのセキュアエレメントを用い、証明書登録側及び署名生成側がチャレンジデータを共有するように構成しても良い。
【0064】
<第2の実施形態>
以下、図面を参照して、本発明の第2の実施形態について説明する。第2の実施形態は第1の実施形態の
図1の構成と同様である。以下、第1の実施形態と異なる動作のみを説明する。
第2の実施形態においては、チャレンジデータ管理部113及びチャレンジデータ管理部121の各々にはチャレンジデータが複数格納されたチャレンジデータテーブルが記憶されている。
【0065】
図6は、第2の実施形態におけるチャレンジデータテーブルの構成例を示す図である。
図2において、チャレンジデータテーブルはテーブル番号とテーブル番号に対応したチャレンジデータとが対応した構成となっている。すなわち、チャレンジデータ管理部113及びチャレンジデータ管理部121の各々には、チャレンジデータとテーブル番号との対応の組合せを複数個有するすチャレンジデータテーブルがそれぞれ予め書き込まれて記憶されている。チャレンジデータは、テーブル番号に対応してチャレンジデータテーブルからチャレンジデータ送信部114及びチャレンジデータ送信部122の各々により読み出される。
【0066】
チャレンジデータ送信部114及びチャレンジデータ送信部122の各々は、いずれのチャレンジデータを用いるかを、テーブル番号の同期を取って同一のものを用いるように構成されている。すなわち、チャレンジデータ送信部114及びチャレンジデータ送信部122の各々は、日時あるいはテーブルの記載順などの所定のルールにより、その日に用いるチャレンジデータが同一となるように、テーブル番号が同一となる同期が取られる構成となっている。上記所定のルールは、チャレンジデータ送信部114及びチャレンジデータ送信部122の各々の内部に予め書き込まれて設定されている。
【0067】
図7は、第2の実施形態におけるリポジトリデータベース142における証明書テーブルの構成例を示す図である。
証明書テーブルは、ID、テーブル番号TN(
図7においては単にテーブル番号)及びPUF証明書の各々が対応付けられている。同一のIDでもテーブル番号が異なるとPUF証明書も異なるため、ID及びテーブル番号TNの組合せにより、PUF証明書を証明書テーブルから検索する。
【0068】
図8は、第2の実施形態における証明書登録装置12によるPUF証明書登録処理の動作例を示すシーケンス図である。
チャレンジデータ送信部122は、所定のルールに従って、チャレンジデータを選択するテーブル番号を取得する(シーケンスS131)。
そして、チャレンジデータ送信部122は、チャレンジデータ管理部121のチャレンジデータテーブルから上記テーブル番号に対応するチャレンジデータXを読み出し、読み出したチャレンジデータXを取得する(シーケンスS132)。
以下、シーケンスS133からシーケンスS140の各々は、
図3のシーケンスS112からシーケンスS119のそれぞれと同様のため、説明を省略する。
【0069】
PUF証明書作成部126は、ID入力部124からIDを読み込む。PUF証明書作成部126は、IDとPUF公開鍵(KPe,Ce)とPUF秘密鍵KSeとにより電子署名Sを生成した後、PUF証明書T(TN,ID,KPe,Ce,S)を生成する(シーケンスS141)。本実施形態においては、PUF証明書Tにはテーブル番号TNが含まれている。
そして、PUF証明書作成部126は、生成したPUF証明書T(TN,ID,KPe,Ce,S)を登録処理のため、証明書管理装置14に対して送信する(シーケンスS142)。
【0070】
DB制御部141は、証明書登録装置12から供給されるPUF証明書T(TN,ID,KPe,Ce,S)からIDを抽出する。そして、DB制御部141は、抽出したIDとPUF証明書T(TN,ID,KPe,Ce,S)とを組として、リポジトリデータベース142のPUF証明書テーブル対して書き込んで記憶させることで登録処理を行う(シーケンスS143)。
【0071】
DB制御部141は、証明書登録装置12から供給されるPUF証明書T(TN,ID,KPe,Ce,S)からテーブル番号TNを抽出する。そして、DB制御部141は、すでに書き込んだID及びPUF証明書T(TN,ID,KPe,Ce,S)と組となるように、リポジトリデータベース142のPUF証明書テーブル対し、テーブル番号TNを書き込んで記憶させることで登録処理を終了する(シーケンスS144)。
【0072】
図9は、第2の実施形態における署名生成装置11による署名生成処理の動作例を示すシーケンス図である。
メッセージ入力部111は、ユーザが入力手段から入力したメーセージデータを取得し、一旦内部に記憶する(シーケンスS231)。
ID入力部112は、ユーザが入力手段から入力したメーセージデータを取得し、一旦内部に記憶する(シーケンスS232)。
チャレンジデータ送信部114は、チャレンジデータを選択するテーブル番号を取得する(シーケンスS233)。
【0073】
チャレンジデータ送信部114は、チャレンジデータ管理部113のチャレンジデータテーブルから、取得したテーブル番号に対応したチャレンジデータXを読み出し、チャレンジデータXを取得する(シーケンスS234)。
以下、シーケンスS235からシーケンスS241の各々は、
図4のシーケンスS214からシーケンスS220のそれぞれと同様のため、説明を省略する。
【0074】
PUF署名生成部117は、ID入力部112からIDを読み込む。PUF署名生成部117は、一次公開鍵KPsと所定の電子署名アルゴリズムとから電子署名γ’を生成した後、IDと一次公開鍵KPsと署名用コミットメントCsと電子署名γ’とにより、PUF署名γ(TN,ID,KPs,Cs,γ’)を生成する(シーケンスS242)。本実施形態においては、PUF署名γにはテーブル番号TNが含まれている。
そして、PUF署名生成部117は、生成したPUF署名γ(TN,ID,KPs,Cs,γ)をメッセージデータに付加し、PUF署名付きメッセージとして出力する(シーケンスS243)。
【0075】
また、第2の実施形態では、
図5のシーケンスS312及びシーケンスS313の各々において、以下のような処理が行われる。
PUF証明書取得部132は、PUF署名付きメッセージにおけるPUF署名γ(TN,ID,KPs,Cs,γ’)からID及びテーブル番号TNの各々を抽出する。そしてPUF証明書取得部132は、抽出したID及びテーブル番号TNを証明書管理装置14に対して送信し、このID及びテーブル番号TNの組合せに対応するPUF証明書Tの送付を指示する(シーケンスS312)。
【0076】
DB制御部141は、PUF証明書取得部132から、ID及びPUF証明書T(TN,ID,KPe,Ce,S)の送付の依頼が供給されると、このIDに対応するPUF証明書T(TN,ID,KPe,Ce,S)を、リポジトリデータベース142のPUF証明書テーブルから検索する。そして、DB制御部141は、IDに対応してPUF証明書テーブルから読み出したPUF証明書T(TN,ID,KPe,Ce,S)を、署名検証装置13に対して送信する(シーケンスS313)。
【0077】
上述したように、本実施形態によれば、チャレンジデータが一つのみでなく、複数のなかからローテーションさせていずれかを選択して用いているため、第1の実施形態に対してよりチャレンジデータの漏洩の可能性を低減でき、チャレンジデータが漏洩した場合に新たなチャレンジデータが発行できる冗長性も確保できる効果を有する。
また、チャレンジデータテーブルは、チャレンジデータ管理部113及びチャレンジデータ管理部121の各々に記憶させず、ICカードなどのセキュアエレメントに格納しておくように構成しても良い。
【0078】
<第3の実施形態>
以下、図面を参照して、本発明の第3の実施形態について説明する。
図10は、本発明の第3の実施形態による電子署名システムの構成例を示す概略ブロック図である。
第2の実施形態は第1の実施形態の
図1の構成と同様である。以下、第1の実施形態と異なる動作のみを説明する。
第3の実施形態による電子署名システム1’において、
図1の第1の実施形態と同様の構成については同一の符号を付し、その説明を省略する。第3の実施形態の電子署名システム1’の署名生成装置11’は、
図1の第1の実施形態における署名生成装置11に対してレスポンスデータ演算部119が付加されている。また、第3の実施形態の電子署名システム1’の証明書登録装置12’は、
図1の第1の実施形態における証明書登録装置12に対してレスポンスデータ演算部127が付加されている。以下、第3の実施形態による電子署名システム1’が第1の実施形態と異なる構成及び動作のみを説明する。
【0079】
チャレンジデータ管理部121には複数のチャレンジデータが格納されている。チャレンジデータ送信部122は、PUFデバイス15に対して複数のチャレンジデータを順次時系列に送信する。
PUFデバイス15は、時系列に証明書登録装置12’から供給されるチャレンジデータを、PUF回路151にて順次レスポンスデータとする演算を行う。そして、PUFデバイス15は、演算結果のレスポンスデータを証明書登録装置12’に対して順次送信する。
レスポンスデータ演算部127は、PUFデバイス15から送信された複数のレスポンスデータを論理演算あるいは所定の関数による演算などを行い、最終的に使用する一つのレスポンスデータを生成する。このレスポンスデータを使用した証明書登録装置12’における以降の処理については第1の実施形態と同様である。
【0080】
チャレンジデータ管理部113には、チャレンジデータ管理部121と同一の複数のチャレンジデータが格納されている。チャレンジデータ送信部114は、PUFデバイス15に対して複数のチャレンジデータを順次時系列に送信する。
PUFデバイス15は、時系列に署名生成装置11’から供給されるチャレンジデータを、PUF回路151にて順次レスポンスデータとする演算を行う。そして、PUFデバイス15は、演算結果のレスポンスデータを署名生成装置11’に対して順次送信する。
レスポンスデータ演算部119は、PUFデバイス15から送信された複数のレスポンスデータを論理演算あるいは所定の関数による演算などを行い、最終的に使用する一つのレスポンスデータを生成する。このレスポンスデータを使用した署名生成装置11’における以降の処理については第1の実施形態と同様である。
【0081】
図11は、第3の実施形態における証明書登録装置12’によるPUF証明書登録処理の動作例を示すシーケンス図である。
チャレンジデータ送信部122は、チャレンジデータ管理部121に複数記憶されているチャレンジデータXを全て読み出して取得する(シーケンスS151)。
チャレンジデータ送信部122は、取得した複数のチャレンジデータXを読取装置17に対して時系列に順次送信する(シーケンスS152)。
そして、読取装置17は、時系列に供給されるチャレンジデータXをPUFデバイス15に対して順次送信する(シーケンスS153)。
【0082】
データ制御部152は、時系列に供給されるチャレンジデータを、順次PUF回路151に対して出力する。そして、PUF回路151は、時系列に入力されるチャレンジデータXに対して固有の演算を施し、演算結果をレスポンスデータYとしてデータ制御部152に順次出力する(シーケンスS154)。
データ制御部152は、PUF回路151から時系列に供給されるレスポンスデータYを証明書登録装置12に対し、読取装置17を介して順次送信する(シーケンスS155)。
【0083】
レスポンスデータ受信部123は、PUFデバイス15から供給されるレスポンスデータYを時系列に受信し、受信したレスポンスデータYをレスポンスデータ演算部127に対して順次出力する(シーケンスS156)。
レスポンスデータ演算部127は、入力される複数のレスポンスデータYに対して所定の演算を施し、新たな一つのレスポンスデータYとし、このレスポンスデータYをPUF鍵ペア生成部125に対して出力する(シーケンスS157)。
以降のシーケンスS117からシーケンスS122の各々は、
図3に示す第1の実施形態の証明書登録処理におけるシーケンスS117からシーケンスS122と同様であるため、説明を省略する。
【0084】
図12は、第3の実施形態における署名生成装置11’による署名生成処理の動作例を示すシーケンス図である。
メッセージ入力部111は、ユーザが入力手段から入力したメーセージデータを取得し、一旦内部に記憶する(シーケンスS251)。
ID入力部112は、ユーザが入力手段から入力したIDを取得し、一旦内部に記憶する(シーケンスS252)。
チャレンジデータ送信部114は、チャレンジデータ管理部121に複数記憶されているチャレンジデータXを全て読み出して取得する(シーケンスS253)。
【0085】
チャレンジデータ送信部114は、取得した複数のチャレンジデータXを読取装置17に対して時系列に順次送信する(シーケンスS254)。
そして、読取装置16は、時系列に供給されるチャレンジデータXをPUFデバイス15に対して順次送信する(シーケンスS255)。
データ制御部152は、時系列に供給されるチャレンジデータを、順次PUF回路151に対して出力する。そして、PUF回路151は、時系列に入力されるチャレンジデータXに対して固有の演算を施し、演算結果をレスポンスデータYとしてデータ制御部152に順次出力する(シーケンスS256)。
【0086】
データ制御部152は、PUF回路151から時系列に供給されるレスポンスデータYを証明書登録装置12に対し、読取装置17を介して順次送信する(シーケンスS257)。
レスポンスデータ受信部115は、PUFデバイス15から供給されるレスポンスデータYを時系列に受信し、受信したレスポンスデータY’をレスポンスデータ演算部127に対して順次出力する(シーケンスS258)。
【0087】
レスポンスデータ演算部119は、入力される複数のレスポンスデータY’に対して所定の演算を施し、新たな一つのレスポンスデータY’とし、このレスポンスデータY’をPUF鍵ペア生成部116に対して出力する(シーケンスS259)。
以降のシーケンスS219からシーケンスS222の各々は、
図4に示す第1の実施形態の署名生成処理のシーケンスS219からシーケンスS222と同様であるため、説明を省略する。
【0088】
本実施形態によれば、いずれかのチャレンジデータが漏洩したとしても、他のチャレンジデータとレスポンスデータの再演算を行うルールが判らなければ、秘密鍵を生成することができないため、第1の実施形態に比較してよりPUF証明書及びPUF署名の改竄を行うことが困難となる。
そのため、本実施形態によれば、第1の実施形態に比較してよりPUF証明書及びPUF署名の改竄を防止することができる効果が得られる。
【0089】
<第4の実施形態>
以下、図面を参照して、本発明の第4の実施形態について説明する。
図13は、本発明の第4の実施形態による電子署名システムの構成例を示す概略ブロック図である。
電子署名システム1’’が
図1の第1の実施形態による電子署名システム1と異なる構成は、証明書登録装置12及び署名生成装置11が一つの構成となり、証明書登録装置12及び署名生成装置11が署名装置18に置き換えられていることである。第4の実施形態においては、第1の実施形態における署名生成装置11に対応する構成が署名生成部181であり、第1の実施形態における証明書登録装置12に対応する構成が証明書登録部182である。署名生成部181及び証明書登録部182において、第1の実施形態における署名生成装置11及び証明書登録装置12のそれぞれの対応する構成には同一の符号を付してある。以下、第1の実施形態における
図1の電子署名システム1と異なる構成及び動作のみ説明する。
【0090】
証明書登録部182におけるチャレンジデータ管理部121’は、ワンタイムパスワードと同様の生成方法により、一度限り有効なワンタイムチャレンジデータを生成する。ここで、生成方法は、時刻や乱数種を用い、数学的アルゴリズムのワンタイムパスワード、時刻同期型のワンタイムパスワード及びチャレンジ型のワンタイムパスワードと同様の方法を用いる。この場合、PUF証明書とPUF署名との各々の生成は、同一のワンタイムチャレンジデータを使用するため、チャレンジデータ管理部121’において行うか、同様の時間に行う。すなわち、ワンタイムパスワードは、生成に際して、時刻ではない因子(例えば乱数種など)を用いて行う場合や、時刻を因子として用いても同一の時刻を使用する場合、必ずしも同時に生成する必要がない。この場合、同一のワンタイムパスワードを利用する際にも、PUF証明書及びPUF署名を異なる時間に作成しても良い。
【0091】
図14は、第4の実施形態の署名装置18における証明書登録部182によるPUF証明書登録処理の動作例を示すシーケンス図である。以下、この
図14を用いて、第4の実施形態によるPTF証明書登録処理の動作例を説明する。
【0092】
チャレンジデータ送信部122は、チャレンジデータ管理部121’が生成したワンタイムチャレンジデータXを、チャレンジデータ管理部121’から取得する(シーケンスS161)。
以降のシーケンスS112からシーケンスS122までは、第1の実施形態における証明書登録処理のシーケンスS112からシーケンスS122までにおけるチャレンジデータがワンタイムチャレンジデータに置き換えられるだけなので、第1の実施形態における
図3のシーケンス図と同様である。
また、第4の実施形態の署名装置18における署名生成部181による署名生成処理は、
図4に示す第1の実施形態の署名生成装置11による署名生成処理におけるシーケンスS213においてチャレンジデータを、ワンタイムチャレンジデータとして証明書登録部182から取得する以外については、
図3のシーケンス図と同様である。
【0093】
上述した本実施形態によれば、チャレンジデータ(ワンタイムチャレンジデータ)が漏洩したとしても、ワンタイムであるため漏洩の影響を最小限とすることができ、第1の実施形態に比較してよりセキュリティを向上させることができる。
【0094】
また、
図1、
図10及び
図13における署名生成装置、証明書登録装置、署名検証装置、証明書管理装置及び署名装置の各々の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより署名生成、証明書登録、署名検証及び証明書の管理の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
【0095】
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【0096】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイルであっても良い。
【0097】
以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。