(57)【特許請求の範囲】
【請求項１】
楕円曲線上のペアリングを用いたIDベースの暗号方式に基づき作成された認証子を含むメッセージを認証するための処理を実行するメッセージ認証装置であって、
前記メッセージは、メッセージ本文と、認証子と、メッセージ作成者のIDとを含み、当該認証子は、前記メッセージ本文のダイジェストと共有秘密鍵とに基づくハッシュ値であり、当該共有秘密鍵は、前記メッセージ作成者のIDに対応する秘密鍵と、複数のメッセージ認証装置間で共通である認証IDとから前記IDベースの暗号方式に基づき作成されたものであり、前記メッセージ認証装置は、
前記メッセージから、前記メッセージ本文と、前記認証子と、前記メッセージ作成者のIDとを取得するデータ抽出手段と、
前記メッセージ本文のダイジェストを作成するダイジェスト作成手段と、
前記認証IDに対応する秘密鍵を格納する秘密鍵格納手段と、
当該秘密鍵と前記メッセージ作成者のIDとから前記IDベースの暗号方式に基づき共有秘密鍵を作成し、前記ダイジェスト作成手段により作成されたダイジェストと当該共有秘密鍵とに基づくハッシュ値である認証子を作成する演算手段と、
前記演算手段により作成された認証子と、前記メッセージから抽出された認証子とを比較する比較手段と、
前記比較手段による比較の結果を出力する出力手段とを有し、
少なくとも前記秘密鍵格納手段と前記演算手段は前記メッセージ認証装置が有する耐タンパー性装置内に備えられていることを特徴とするメッセージ認証装置。
【請求項２】
前記メッセージ認証装置は、
QRコードを読み取り、前記メッセージに変換する手段を更に有する請求項１に記載のメッセージ認証装置。
【請求項３】
楕円曲線上のペアリングを用いたIDベースの暗号方式に基づき作成された認証子を含むメッセージを認証するための処理を実行するためのメッセージ認証システムであって、当該メッセージ認証システムは、通信ネットワークにより互いに接続されるメッセージ認証装置と認証センタ装置とを有し、
前記メッセージは、メッセージ本文と、認証子と、メッセージ作成者のIDとを含み、当該認証子は、前記メッセージ本文のダイジェストと共有秘密鍵とに基づくハッシュ値であり、当該共有秘密鍵は、前記メッセージ作成者のIDに対応する秘密鍵と、複数のメッセージ認証装置間で共通である認証IDとから前記IDベースの暗号方式に基づき作成されたものであり、
前記メッセージ認証装置は、
前記メッセージから、前記メッセージ本文と、前記認証子と、前記メッセージ作成者のIDとを取得するデータ抽出手段と、
前記メッセージ本文のダイジェストを作成するダイジェスト作成手段と、
前記ダイジェストと、前記メッセージ作成者のIDとを前記認証センタ装置に送信する送信手段と、
前記認証センタ装置から、当該認証センタ装置により作成された認証子を受信する受信手段と、
前記認証センタ装置により作成された認証子と、前記メッセージから抽出された認証子とを比較する比較手段と、
前記比較手段による比較の結果を表示する表示手段とを有し、
前記認証センタ装置は、
前記認証IDに対応する秘密鍵を格納する格納手段と、
当該秘密鍵と、前記メッセージ認証装置から受信した前記メッセージ作成者のIDとから前記IDベースの暗号方式に基づき共有秘密鍵を作成し、前記メッセージ認証装置から受信したダイジェストと当該共有秘密鍵とに基づくハッシュ値である前記認証子を作成する演算手段とを有する
ことを特徴とするメッセージ認証システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メッセージ作成者側で作成されたメッセージを受け取ったメッセージ受信者側において、そのメッセージが、正しいメッセージ作成者により作成されたものであること確認するための技術に関するものである。
【背景技術】
【０００２】
二次元コードの一種であるQRコードの中にURL（Uniform Resource Locator）を埋め込んで、それを携帯電話機に読み込み、携帯電話機からWebサイトにアクセスするということが広く行われている。このようなQRコードの作成方法は周知であることから、本来の目的と異なるQRコードを偽って作成し、表示媒体等に表示することは容易に行うことが可能である。このことから、例えば、表示媒体上ではABC銀行のサイトにつながると称して偽りのQRコードを表示し、そのQRコードを読み込んだ利用者をフィッシングサイトに誘導するといった不正が行われることが考えられる。
【０００３】
上記のような不正を防止するためには、表示媒体上に表示されたQRコードが、確かにABC銀行の作成したものであることを確認し、その確認がとれた場合にのみ、QRコードに埋め込まれたURLのサイトに接続することを可能にするしくみが必要である。
【０００４】
さて、QRコード等のメッセージを確かにAさんが作ったものであり改ざんがないこと（これを真正性とも呼ぶ）を確認するための技術として電子署名技術があり、QRコードの真正性の確認のために、この電子署名技術をQRコードに適用することが考えられる。なお、メッセージの真正性を確認することを、メッセージを認証するともいう。
【０００５】
この技術によりメッセージを認証するためには、メッセージに対する署名、その署名を検証するための公開の署名検証鍵、及び、その署名検証鍵が確かにAさんのものであることを証明する第三者機関の発行した公開鍵証明書（第三者機関の署名付）が必要である。即ち、少なくとも署名２つと鍵１つがメッセージ中に必要である。近年の暗号危殆化の問題から、鍵長や署名長はますます大きいものが必要となっており、代表的な公開暗号方式であるRSAでは鍵長、署名長は２０００ビット以上が必要になっており、同程度の暗号強度で少ないデータ量の楕円暗号においても、鍵長、署名長が２６０ビット以上必要となっている。
【０００６】
一方、QRコードは、そのサイズは様々であるが、携帯電話機でよく使われるものは、「バージョン10誤り訂正レベルH」と呼ばれるもので、バイナリではデータ容量が１１９バイトしかない。このように、QRコードに盛り込めるデータ容量には制限があるため、上述した電子署名技術における署名や公開鍵証明書をコード化してQRコードの中に含めることは困難である。また、署名長の短い楕円署名を用いることも考えられるが、それでも署名等をQRコードに書き込むと、データ域を圧迫してしまい、QRコードの本来の目的のデータ（URL等）を書き込めない恐れが生じる。なお、本願に関連する先行技術文献として下記のものがある。
【非特許文献１】「情報セキュリティハンドブック」電子情報通信学会編  p16
【非特許文献２】「楕円曲線上のペアリングを用いた暗号方式」境隆一、大岸聖史、笠原正雄，SCSI2001, Jan 23-26, 2001
【特許文献１】特開2002-26892号公報
【特許文献２】米国特許出願公開第2003/0182554号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は上記の問題点に鑑みてなされたものであり、QRコード用のメッセージのようなデータ量の少ないメッセージに対しても、不特定多数の者が、そのメッセージの認証を行うことを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記の課題は、楕円曲線上のペアリングを用いたIDベースの暗号方式に基づき作成された認証子を含むメッセージを認証するための処理を実行するメッセージ認証装置であって、前記メッセージは、メッセージ本文と、認証子と、メッセージ作成者のIDとを含み、当該認証子は、前記メッセージ本文のダイジェストと共有秘密鍵とに基づくハッシュ値であり、当該共有秘密鍵は、前記メッセージ作成者のIDに対応する秘密鍵と、複数のメッセージ認証装置間で共通である認証IDとから前記IDベースの暗号方式に基づき作成されたものであり、前記メッセージ認証装置は、前記メッセージから、前記メッセージ本文と、前記認証子と、前記メッセージ作成者のIDとを取得するデータ抽出手段と、前記メッセージ本文のダイジェストを作成するダイジェスト作成手段と、前記認証IDに対応する秘密鍵を格納する秘密鍵格納手段と、当該秘密鍵と前記メッセージ作成者のIDとから前記IDベースの暗号方式に基づき共有秘密鍵を作成し、前記ダイジェスト作成手段により作成されたダイジェストと当該共有秘密鍵とに基づくハッシュ値である認証子を作成する演算手段と、前記演算手段により作成された認証子と、前記メッセージから抽出された認証子とを比較する比較手段と、前記比較手段による比較の結果を出力する出力手段とを有し、少なくとも前記秘密鍵格納手段と前記演算手段は前記メッセージ認証装置が有する耐タンパー性装置内に備えられていることを特徴とするメッセージ認証装置により解決される。
【０００９】
また、上記の課題は、楕円曲線上のペアリングを用いたIDベースの暗号方式に基づき作成された認証子を含むメッセージを認証するための処理を実行するためのメッセージ認証システムであって、当該メッセージ認証システムは、通信ネットワークにより互いに接続されるメッセージ認証装置と認証センタ装置とを有し、前記メッセージは、メッセージ本文と、認証子と、メッセージ作成者のIDとを含み、当該認証子は、前記メッセージ本文のダイジェストと共有秘密鍵とに基づくハッシュ値であり、当該共有秘密鍵は、前記メッセージ作成者のIDに対応する秘密鍵と、複数のメッセージ認証装置間で共通である認証IDとから前記IDベースの暗号方式に基づき作成されたものであり、前記メッセージ認証装置は、前記メッセージから、前記メッセージ本文と、前記認証子と、前記メッセージ作成者のIDとを取得するデータ抽出手段と、前記メッセージ本文のダイジェストを作成するダイジェスト作成手段と、前記ダイジェストと、前記メッセージ作成者のIDとを前記認証センタ装置に送信する送信手段と、前記認証センタ装置から、当該認証センタ装置により作成された認証子を受信する受信手段と、前記認証センタ装置により作成された認証子と、前記メッセージから抽出された認証子とを比較する比較手段と、前記比較手段による比較の結果を表示する表示手段とを有し、前記認証センタ装置は、前記認証IDに対応する秘密鍵を格納する格納手段と、当該秘密鍵と、前記メッセージ認証装置から受信した前記メッセージ作成者のIDとから前記IDベースの暗号方式に基づき共有秘密鍵を作成し、前記メッセージ認証装置から受信したダイジェストと当該共有秘密鍵とに基づくハッシュ値である前記認証子を作成する演算手段とを有することを特徴とするメッセージ認証システムによっても解決される。
【発明の効果】
【００１１】
本発明によれば、QRコード用のメッセージのようなデータ量の少ないメッセージに対しても、不特定多数の者が、そのメッセージの認証を行うことを可能とする技術を提供することができる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して本発明の実施の形態について説明する。
【００１３】
（全体構成）
まず、図１を参照して、本発明の実施の形態の全体構成を説明する。
【００１４】
図１に示すとおり、メッセージ作成者、メッセージ認証者、鍵発行センタが存在する。メッセージ作成者は、例えば背景技術で説明したQRコードを作成する「ABC銀行」等の機関である。図１に示す例では、複数のメッセージ作成者が存在し、それぞれがメッセージを作成して出力するメッセージ作成装置１、２、又は３を有している。
【００１５】
メッセージ作成者には広く知られたIDが割り当てられ、図１に示す例では、各メッセージ作成者に、ID_A、ID_B、ID_Cが割り当てられている。本実施の形態における"ID"は、それにより一般利用者がメッセージ作成者をユニークに識別できるような名称であり、例えばABC銀行には「ABC銀行」と言う広く知られたIDが割り当てられている。
【００１６】
各メッセージ作成者は自らのIDに対応する秘密鍵を鍵発行センタから発行してもらい、外部に漏れないようにそれを秘密裏に管理する。鍵発行センタからの秘密鍵の発行は、オンラインで行ってもよいし、オフラインで行ってもよいが、オンラインで行う場合は、秘密鍵が外部に漏洩しないようにセキュアなネットワークを使用する。なお、鍵発行センタは鍵発行を行う信頼できる第三者機関であり、IDに対応する秘密鍵の計算等を行う鍵発行センタ装置７を備えている。
【００１７】
各メッセージ作成装置は、不特定多数の利用者がメッセージの真正性を検証するために使用する認証子を含むメッセージを作成する。本実施の形態では、メッセージ作成者側とメッセージ認証者側において、共有秘密鍵を事前交信無しに作成し、その共有秘密鍵に基づきメッセージの認証を行っている。本実施の形態では、共有秘密鍵を事前交信無しに作成する方法として、有限体上の楕円曲線のペアリング計算に基づくIDNIKSと呼ばれるIDベースの暗号方式（例えば非特許文献２参照）を用いている（具体的内容については後述する）。
【００１８】
各メッセージ作成装置は、IDNIKSの方法に従って、自らのIDに対応する秘密鍵とメッセージ認証装置の認証IDとを用いて共有秘密鍵を作成し、その共有秘密鍵から認証子を作成し、当該認証子と自らのIDを含むメッセージを作成し、出力する。当該メッセージは、例えばQRコードに変換して出力され、そのようなQRコードは、表示媒体（印刷媒体、Webページ、電子メール等）に付されて公開、又はQRコードの利用者に送信される。
【００１９】
メッセージ認証者は、メッセージ作成装置から出力され、公開されたメッセージをメッセージ認証装置４、５、又は６を用いて確認する。ここでは、メッセージ認証装置は、上記メッセージに含まれるメッセージ作成者のIDと、鍵発行センタから発行された、認証IDに対応する秘密鍵とを用いて共有秘密鍵を作成することにより、メッセージ認証のための処理を行う。
【００２０】
メッセージ認証装置には公知の前述した認証IDが割り当てられ、図１では認証IDとしてID_Xが示されている。なお、認証IDは複数のメッセージ認証装置間で共通である。また、メッセージ認証装置は、タンパーフリーなハードウェアモジュール（以下、TFHと呼ぶ）を備えており、鍵発行センタにより発行された上記秘密鍵をTFHの中に格納する。これにより、当該秘密鍵をメッセージ認証装置の外部に漏れないようにする。つまり、メッセージ認証装置の利用者でも当該秘密鍵を知ることはできない。
【００２１】
このような秘密鍵を格納するメッセージ認証装置は、例えば、鍵発行センタが秘密鍵をTFHに設定し、そのTFHをメッセージ認証装置ベンダに供給し、メッセージ認証装置ベンダが各利用者にメッセージ認証装置を提供することにより実現することができる。メッセージ認証装置の例としては、QRコードを読み込めるような携帯電話機や、PDAのような端末がある。
【００２２】
なお、メッセージ認証装置には複数の認証IDを割り当てることも可能である。その場合、それぞれに対応する秘密鍵をTFHが複数持つことになる。また、この場合、メッセージ作成者は、どの認証IDで認証してもらうか選択することになる。
【００２３】
（詳細動作）
次に、本実施の形態におけるメッセージ作成装置１、鍵発行センタ装置７、メッセージ認証装置４におけるメッセージ作成からその認証までの動作を詳細に説明する。その他のメッセージ作成装置２、３及びメッセージ認証装置５、６の動作は、メッセージ作成装置１及びメッセージ認証装置４の動作と同様である。本実施の形態の動作の前提として、下記のシステム共通パラメータを各装置が保持しているものとする。
・有限体（ガロア体）および楕円曲線を定義するパラメータ
・ペアリング計算を定義するパラメータ
・H1()：IDから楕円曲線上の点（ねじれ点と呼ばれるものである）へマッピングするハッシュ関数
・H2()：メッセージ本文からそのダイジェストを作成するハッシュ関数
・H3()：メッセージダイジェストと共有秘密鍵からメッセージ認証子（MAC）を作るハッシュ関数
これらのパラメータは、鍵発行センタ装置７が管理し、メッセージ作成装置１及びメッセージ認証装置４に配布される。また、鍵発行センタ装置７は、大きな自然数である秘密のパラメータsを生成し、秘密裏に格納しているものとする。このパラメータsは、ID対応の秘密鍵を生成する際、繰り返し使われるものである。
【００２４】
＜メッセージ作成者への秘密鍵の配布に関する処理＞
まず、メッセージ作成者Aへの秘密鍵の配布に関する処理について図２を参照して説明する。メッセージ作成者Aは自身のIDであるID_Aを鍵発行センタに送ることにより、ID_Aに対応する秘密鍵の発行要求を行う（ステップ１）。このとき、メッセージ作成者Aは、ID_Aが自らのものであることを証明するための情報も鍵発行センタに送る。
【００２５】
鍵発行センタでは、そのIDが社会的に公知であり、確かに要求者のものであることを確認し、鍵発行センタ装置７により、ID_Aに対応する秘密鍵を計算する。より詳細には、鍵発行センタ装置７は、ID_Aに対応する楕円曲線上の点PID_Aを、PID_A=H1(ID_A)により計算し（ステップ２）、ID_Aに対応する秘密鍵であるsPID_Aを計算する（ステップ３）。その後、鍵発行センタは、鍵発行センタ装置７により作成された当該秘密鍵を、外部に漏れないようにして発行要求を行ったメッセージ作成者Aに送る（ステップ４）。
【００２６】
なお、sPID_Aは、PID_Aのs倍（楕円曲線上の演算）の点という意味である。sPID_AとPID_Aを知ってもsを求めることは非常に困難であるという特性がある。従って、メッセージ作成者AはsPID_Aを受取ってもsを知ることはできない。つまり、鍵発行センタ以外はsを知ることは出来ない。
【００２７】
メッセージ作成者Aは、鍵発行センタからID_Aに対応する秘密鍵sPID_Aを取得し、メッセージ作成装置１に外部に漏れないように格納する（ステップ５）。
【００２８】
＜メッセージ認証装置への秘密鍵の格納に関する処理＞
次に、メッセージ認証装置４への秘密鍵の格納に関する処理について図３を参照して説明する。ここでは、認証IDとしてID_Xを用いる。
【００２９】
鍵発行センタ装置７は、ID_Xに対応する楕円曲線上の点PID_Xを、PID_X=H1(ID_X)により計算し（ステップ１１）、ID_Xに対応する秘密鍵であるsPID_Xを計算する（ステップ１２）。鍵発行センタでは、鍵発行センタ装置７により計算された秘密鍵sPID_XをTFHに格納する。そして、例えば、そのTFHをメッセージ認証装置（図３では、携帯電話機の例を示している）のベンダーに送り、ベンダーがそのTFHをメッセージ認証装置に組み込み、利用者（メッセージ認証者）に提供する。
【００３０】
もちろん、メッセージ認証装置へ秘密鍵を格納する方法はこれに限られるわけではなく、秘密鍵を鍵発行センタ以外に知られることなく格納でき、格納したものを外部から取り出せない方法であればどのような方法を用いてもよい。
【００３１】
＜認証子を含むメッセージの作成に関する処理＞
次に、メッセージ作成装置１が実行する認証子を含むメッセージの作成に関する処理について、図４のフローチャートを参照して説明する。
【００３２】
メッセージ作成装置１は、まず、メッセージ本文m（例えばURL等の情報）から、メッセージダイジェストmdを、md=H2(m)を計算することにより作成する（ステップ２１）。次に、メッセージ作成者は一般利用者側の認証IDとして何を使うか決定し、決定した認証IDをメッセージ作成装置１に入力する（ステップ２２）。もしくは、メッセージ作成装置１が予め複数の認証IDを保持している場合、決定した認証IDを選択し、指定する。なお、認証IDとして何を使用するか予め決まっており、その認証IDがメッセージ作成装置１に格納されている場合はステップ２２の処理は必要ない。以下では、認証IDとしてID_Xが選択されたものとして説明する。
【００３３】
次に、メッセージ作成装置１は、IDから楕円曲線上への点へマッピングする公開の関数H1を用いてPID_X=H1(ID_X)を計算し、メッセージ作成装置１は、自らのIDであるID_Aに対応する秘密鍵sPID_AとPID_Xとから共有秘密鍵Ks=K(ID_A, ID_X)=en(sPID_A, PID_X)を計算する（ステップ２３）。なお、ステップ２３とステップ２４の計算は秘密のパラメータを扱うので情報が漏洩しないように配慮されたメッセージ作成装置１内のセキュリティの高いサブシステムで行うことが好ましい。
【００３４】
ここで、enは、WeilペアリングやTateペアリング等の楕円曲線上に定義されるペアリングの関数であり、双線形性を持つ。双線形性の性質の1つとして、楕円曲線上の点の組み合わせ(P, Q)及び整数a,bに対して、en(aP, bQ)=en(P, Q)ab=en(bP, aQ)という性質がある。
【００３５】
次に、メッセージ作成装置１は、mdとKs、及び公開のハッシュ関数H3を用い、認証子Mac=H3(md, Ks)を計算する（ステップ２４）。上述したメッセージ作成装置１におけるサブシステムがこの計算を行う場合、サブシステムはサブシステム外にMacを出力する。そして、メッセージ作成装置１は、メッセージ本文mと認証子MacとID_AとID_Xを連結して、メッセージM（M=m+Mac+ID_A+ID_Xと記載する）を作成して、出力する（ステップ２５）。本実施の形態では、メッセージMをQRコードに変換し、それを出力するものとする。なお、この場合、メッセージ本文mのデータ量は、QRコードにM=m+Mac+ID_A+ID_Xが収まるように制限を受ける。
【００３６】
出力されたQRコードは、例えば、Webページ上に表示されたり、印刷媒体に表示されたりして公開される。
【００３７】
＜メッセージ認証装置の処理＞
続いて、メッセージ認証装置４におけるメッセージの認証処理について図５のフローチャートを参照して説明する。メッセージ認証装置４を保有する利用者が、上記のようにして公開されたQRコードを利用しようとする場面において、当該利用者は、メッセージ認証装置４にQRコードを読み込ませる。
【００３８】
メッセージ認証装置４は、QRコードを解読し、メッセージMから、m、Mac、ID_A、ID_Xを取得する（ステップ３１）。そして、メッセージ本文mのダイジェストmdを、md=H2(M)として計算する（ステップ３２）。
【００３９】
また、メッセージ認証装置４の中のTFHが、メッセージMの中のID_Xに基づき、自TFH内の記憶部に秘密裏に格納されている当該ID_Xに対応する秘密鍵sPID_Xを取り出し、メッセージMから取り出されたメッセージ作成者AのIDであるID_AからPID_A=H1(ID_A)を求め、共有秘密鍵Ks=K(ID_A, ID_X)=en(PID_A, sPID_X)を計算する（ステップ３３）。
【００４０】
不正がなく、正しい処理が行われている場合、この共有秘密鍵Ks=en(PID_A, sPID_X)は、メッセージ作成者側で作成した共有秘密鍵Ks=en(sPID_A, PID_X)と同じである。つまり、enにはen(aP, bQ)=en(P, Q)ab=en(bP, aQ)という性質があるから、en(sPID_A, PID_X)=en(PID_A, PID_X)s=en(PID_A, sPID_X)となり、メッセージ認証装置４で作成した共有秘密鍵であるkey1=en(PID_A, sPID_X)は、メッセージ作成者A側で作成した共有秘密鍵であるkey2=en(sPID_A, PID_X)と等しい。
【００４１】
次に、メッセージ認証装置４は、ステップ３２で求めたmdをTFHに入力し、これを受けたTFHでは、認証子Mac'をMac'=H3(md, Ks)として計算し、出力する（ステップ３４）。メッセージ認証装置４は、メッセージMから取得した認証子Macと、TFHが計算した認証子Mac'とが等しいかどうかの検査を行う（ステップ３５）。メッセージ認証装置４は、認証子Macと認証子Mac'とが等しい場合に、QRコードのメッセージMは、確かにID_Aに対応するメッセージ作成者が作成したものであることを示す情報の出力を行い、それを利用者が確認する。具体的には、ID_Aを含む情報を出力する。その後、利用者は、QRコードが表示されている表示媒体等から、ID_Aが確かに利用者が期待するメッセージ作成者のものであることを確認すると、メッセージ認証装置に処理を進めるよう指示し、メッセージ認証装置は、mに応じた処理を行う。例えば、mがURLであればそのURLのサイトにアクセスする。
【００４２】
ステップ３５において、認証子Macと認証子Mac'とが等しくない場合、メッセージ認証装置４は、認証NGを示す情報を出力し、mに応じた処理は行わない。なお、この場合でも、利用者の指示により、mに応じた処理を行うようにしてもよい。また、QRコードから得られたメッセージMの中に認証子Macが無い場合には、その旨を表示し、利用者の指示により認証を行うことなく処理を進めることを可能とする機能を備えてもよい。
【００４３】
本実施の形態では、ID_Aに対応する秘密鍵sPID_Aについては、メッセージ作成者A及び鍵発行センタ以外の者は知らず、ID_Xに対応する秘密鍵sPID_Xについては、鍵発行センタ以外の者は知らないことが前提であり、その場合、第三者は正しいKsを計算できない。また、Ksを知らない第三者が、Mac=H3(md, Ks)を満たすMacとmdの対を作ることは極めて困難である。従って、メッセージ作成者側で作成した認証子Macが、メッセージ認証側で作成した認証子Mac'と等しいということは、メッセージMは、該当のIDに対応するメッセージ作成者により作成されたものであると考えてよい。なお、第三者が、Mac、m、mdを作成するための一方向性関数、及びMacを作成するための一方向性関数を知ったとしても、Ksを知ることはできない。
【００４４】
＜共有鍵のランダム化＞
メッセージ作成者側でMacを作成するのに毎回同じKsを用いるのは多少安全上の問題が発生する可能性がある。これを避けるために大きな乱数ｒを用い、メッセージ作成装置１が、MacをMac= H3(md, rKs)として計算することも有効である。なお、いうまでもなく、乱数の使い方はこれに限られるものではない。このようにメッセージ作成装置１において乱数rを用いる場合、メッセージ認証装置４側における認証処理にも乱数rが必要なため、メッセージ認証装置１は、メッセージMにrを追加し、M=m+Mac+r+ID_A+ID_Xとする。
【００４５】
（装置構成）
次に、これまでに説明した処理を実現する装置の構成について説明する。これまでに説明した鍵発行センタ装置７及びメッセージ作成装置１は、それぞれCPU、及びメモリ等の記憶装置を有するコンピュータシステムにプログラムを実行させることにより実現できる。また、メッセージ認証装置４についても、CPU、及びメモリ等の記憶装置を有するコンピュータシステムにプログラムを実行させることにより実現できる。携帯電話機はそのようなコンピュータシステムの一例である。また、メッセージ認証装置４は、上記コンピュータシステムの構成に加えてTFHを含む。TFHはハードウェアのロジック回路として構成してもよいし、CPU、及びメモリ等の記憶装置を有するコンピュータシステムとして構成し、プログラムを実行させることにより所望の機能を実現することとしてもよい。
【００４６】
図６に、鍵発行センタ装置７の機能構成例を示す。図６に示すとおり、鍵発行センタ装置７は、ID入力部７１、ID対応秘密鍵計算部７２、メッセージ作成者ID対応秘密鍵出力部７３、認証ID対応秘密鍵出力部７４、秘密パラメータ格納部７５、及びシステム共通パラメータ格納部７６を有している。
【００４７】
図６に示す鍵発行センタ装置７において、秘密パラメータ格納部７５には、秘密のパラメータsが格納され、システム共通パラメータ格納部７６には、システム共通パラメータである楕円曲線を定義するパラメータ、ペアリング計算を定義するパラメータ、IDから楕円曲線上の点へマッピングするハッシュ関数H1()、メッセージ本文からそのダイジェストを作成する関数H2()、メッセージダイジェストと共有秘密鍵からメッセージ認証子（MAC）を作るハッシュ関数H3()が格納される。
【００４８】
メッセージ作成者のID又は認証IDがID入力部７１に入力され、ID対応秘密鍵計算部７２は、ID入力部７１から入力されたIDに対応する秘密鍵sPIDを、前述したようにID、H1()、sを用いて作成する。そして、ID対応秘密鍵計算部７２により計算された秘密鍵がメッセージ作成者ID対応秘密鍵であればメッセージ作成者ID対応秘密鍵出力部７３から出力され、認証ID対応秘密鍵であれば認証ID対応秘密鍵出力部７４から出力される。そして、メッセージ作成者ID対応秘密鍵は、メッセージ作成者に秘密裏に渡され、認証ID対応秘密鍵は、例えばTFHへ格納される。
【００４９】
図７に、メッセージ作成装置１の機能構成例を示す。図７に示すとおり、メッセージ作成装置１は、メッセージ本文入力部１１、結合メッセージ作成部１２、QRコード作成・出力部１３、システム共通パラメタ格納部１４、ID格納部１５、及びメッセージ作成者ID対応秘密鍵格納部１６を有している。
【００５０】
システム共通パラメタ格納部１４には、前述したシステム共通パラメータが格納され、ID格納部１５には、メッセージ作成者IDであるID_Aと、認証IDであるID_Xが格納される。また、メッセージ作成者ID対応秘密鍵格納部１６には、メッセージ作成者ID対応秘密鍵sPID_Aが格納される。この秘密鍵sPID_Aは、外部に漏れないように管理される。これら格納部に格納されている情報は、図示しない入力手段から事前に入力され、格納されるものである。
【００５１】
図７に示すメッセージ作成装置１において、メッセージ本文mがメッセージ本文入力部１１により入力される。そして、結合メッセージ作成部１２は、各格納部に格納された情報を用いて、メッセージM=m+Mac+ID_A+ID_Xを作成し、それをQRコード作成・出力部１３に渡す。QRコード作成・出力部１３は、メッセージMからQRコードを作成し、それを出力する。
【００５２】
図８に、メッセージ認証装置４の機能構成例を示す。図８に示すとおり、メッセージ認証装置４は、QRコード読み込み・変換部４１、所要データ抽出部４２、メッセージダイジェスト作成部４３、比較部４４、表示部４５、システム共通パラメータ格納部４６、及びTFH４７を有している。
【００５３】
また、TFT４７は、TFT４７外部との間でデータ入出力を行うデータ入出力部５１、演算部５２、及び認証ID対応秘密鍵格納部５３を有している。システム共通パラメータ格納部４６には、システム共有パラメータが格納される。また、システム共通パラメータ格納部４６は、システム共有パラメータを用いて演算を行う処理部から適宜参照される。また、認証ID対応秘密鍵格納部５３には、各認証IDに対応付けて、各認証ID毎の秘密鍵が格納される。なお、特定の認証IDを用いることが予め定められている場合は、その認証IDに対応する秘密鍵だけが格納される。また、この場合、メッセージMに認証IDを含めなくてもよい。
【００５４】
図８に示すメッセージ認証装置４において、QRコードがQRコード読み込み・変換部４１により読み込まれ、解読され、メッセージMに変換される。所要データ抽出部４２は、メッセージMからm、Mac、ID_A、ID_Xを取得し、ID_A及びID_XをTFH４７に渡すとともに、mをメッセージダイジェスト作成部４３に渡し、Macを比較部４４に渡す。メッセージダイジェスト作成部４３は、ダイジェストmdを、md=H2(M)として計算し、それをTFH４７に渡す。
【００５５】
TFH４７において、演算部５２は、メッセージMに含まれた認証IDであるID_Xに対応する秘密鍵sPID_Xを認証ID対応秘密鍵格納部５３から取得し、ID_AからPID_A=H1(ID_A)を求め、共有秘密鍵Ks=K(ID_A, ID_X)=en(PID_A, sPID_X)を計算する。そして、演算部５２は、Mac'をMac'=H3(md, Ks)として計算し、それを比較部４４に出力する。
【００５６】
比較部４４は、メッセージMから取得した認証子Macと認証子Mac'とが等しいかどうかの検査を行い、検査の結果を表示部４５に渡す。表示部４５は、認証子Macと認証子Mac'とが等しい場合に、QRコードのメッセージMは、確かにID_Aに対応するメッセージ作成者が作成したものであることを示す情報の出力を行い、等しくない場合は認証NGを示す情報を出力する。
【００５７】
なお、図示はしていないが、メッセージ認証装置４は、メッセージ本文に応じた処理を行う手段も有している。例えば、メッセージ本文にURLが含まれる場合、当該URLが示すネットワーク上のサイトにアクセスする手段を有する。
【００５８】
（他の実施の形態）
これまでの説明では、メッセージ認証側が、TFH４７を含むメッセージ認証装置４を用いてメッセージの認証を行う例について説明した。このようにメッセージ認証装置４内でメッセージ認証の処理を全て行う代わりに、メッセージ認証装置に通信ネットワークを介して接続される認証センタ装置９が、TFH４７で行われる処理と同様の処理を行うこととしてもよい。
【００５９】
認証センタ装置９の機能構成例を図９に示す。図９に示すように、認証センタ装置９は、TFH４７と同様の機能構成を有しており、通信ネットワークを介して外部との間でデータ入出力を行う入出力部９１、認証ID対応秘密鍵を外部に漏れないようにして格納する認証ID対応秘密鍵格納部９２、及びMac'を計算する演算部９３を有している。また、この場合、メッセージ認証装置は、図８に示した構成からTFH４７を除いた構成となり、図８の構成で行われていたTFH４７とその外部との間のデータの送受信と同様の処理が、メッセージ認証装置と認証センタ装置９との間で行われることになる。メッセージ認証装置は、通信ネットワークを介して認証センタ装置９と通信を行う手段を備えている。
【００６０】
メッセージ認証装置は、メッセージMから所要データを抽出し、md、ID_X、ID_A、場合によっては、乱数rを認証センタ装置９に送信する。認証センタ装置９は、図８の構成におけるTFH４７で行った処理と同様にしてMac'を計算し、それをメッセージ認証装置にネットワークを介して返し、Mac'を受け取ったメッセージ認証装置が、Mac'とメッセージMから抽出したMacとを比較し、これまでの説明と同様にして結果を表示する。
【００６１】
また、認証センタ装置９が、これまでに説明したTFH４７を含むメッセージ認証装置４と同様の機能を有することとしてもよい。これより、例えば、メッセージ認証に関する機能を持たない携帯電話機等の利用者端末の利用者が、QRコードを利用者端末で読み取り、利用者端末がQRコードからメッセージMを取得し、それを認証センタ装置９に送信し、認証センタ装置９が、MacとMac'の比較結果を当該利用者端末に返すといった利用形態が可能となる。この場合、認証センタ装置９は、メッセージ認証装置４の機能に加えて、通信ネットワークを介して接続された利用者端末からメッセージMを受信する受信機能と、比較結果を利用者端末に送信する送信機能と有する。なお、認証センタ装置９では、演算部及び認証ID対応秘密鍵格納部を耐タンパー性装置内に備えることは必ずしも必要ではない。
【００６２】
（実施の形態の効果、応用等について）
本実施の形態によれば、データ量の限られたメッセージであっても、そのメッセージがメッセージ作成者の作成したメッセージであることを、不特定多数の利用者が検証可能な技術を提供できる。例えば、表示媒体上に表示されたQRコードに偽造や改ざんがないことを確認でき、安心してQRコードを利用できるようになる。本実施の形態で用いる認証子は128ビットもあれば十分であり、格納できるデータ量の少ないQRコード用のメッセージにも十分適用することが可能である。
【００６３】
また、領収書などの証書に、その発行者がその内容と発行者を証明する認証子（本実施の形態の方法で計算したもの）を内容として含んだQRコードを付けるという形態も考えられる。領収書の内容を確認したい利用者は、QRコードを、メッセージ認証装置に読み込み、その内容（領収書としての内容）を表示し、それが確かに領収書面に書かれている内容と一致していること、及びそのQRコードが確かに発行者が作成したものかどうかを本実施の形態の方法により確認することが可能である。これにより、利用者は領収書が領収書に書かれた発行者によって発行されたものであることを確認できる。このようにすることにより、領収書事務が軽減されるとともに、架空領収書などの不正防止に役立つ。なお、その領収書がコピーされ、複数存在するかどうかの確認までは本方式だけではできないので、別の方式と組み合わせることにより対策を考える必要がある。例えば、領収書にユニークな通番をつけるなどの管理をし、同じ通番が２度現れるかどうかチェックすること等が考えられる。
【００６４】
また、本実施の形態の技術では、メッセージ認証装置側でメッセージ作成者の情報を予め保有しておく必要がないため、メッセージ認証装置の秘密データ格納域を少なくすることができる上に、後からメッセージ作成者が増えてメッセージ認証装置側にデータを追加する必要がないという効果もある。
【００６５】
なお、IDを持つ特定の利用者間でメッセージの認証を行う従来技術はあったが（例えば特許文献２）、本実施の形態の技術のように、不特定多数の利用者が、IDを持つメッセージ作成者のメッセージを認証する従来技術はなかった。本実施の形態では、複数のメッセージ認証装置間で共通に認証IDが割り当てられ、認証ID対応秘密鍵を外部に漏れないようにして格納したTFHをメッセージ認証装置に備え、そのメッセージ認証装置を不特定多数の利用者に提供することにより、不特定多数の利用者が、IDを持つメッセージ作成者のメッセージを認証することが可能となっている。また、認証センタ装置に上記TFHの役割を持たせることによっても、不特定多数の利用者が、IDを持つメッセージ作成者のメッセージを認証することが可能となっている。
【００６６】
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【図面の簡単な説明】
【００６７】
【図１】本発明の実施の形態の全体構成を説明するための図である。
【図２】メッセージ作成者Aへの秘密鍵の配布に関する処理を説明するための図である。
【図３】メッセージ認証装置４への秘密鍵の格納に関する処理を説明するための図である。
【図４】メッセージ作成装置１が実行する処理を示すフローチャートである。
【図５】メッセージ認証装置４が実行する処理を示すフローチャートである。
【図６】鍵発行センタ装置７の機能構成例を示す図である。
【図７】メッセージ作成装置１の機能構成例を示す図である。
【図８】メッセージ認証装置４の機能構成例を示す図である。
【図９】認証センタ装置９の機能構成例を示す図である。
【符号の説明】
【００６８】
１〜３  メッセージ作成装置
４〜６  メッセージ認証装置
７  鍵発行センタ装置
９  認証センタ装置
１１  メッセージ本文入力部
１２  結合メッセージ作成部
１３  QRコード作成・出力部
１４  システム共通パラメタ格納部
１５  ID格納部
１６  メッセージ作成者ID対応秘密鍵格納部
４１  QRコード読み込み・変換部
４２  所要データ抽出部
４３  メッセージダイジェスト作成部
４４  比較部
４５  表示部
４６  システム共通パラメータ格納部
４７  TFH
５１  データ入出力部
５２  演算部
５３  認証ID対応秘密鍵格納部
７１  ID入力部
７２  ID対応秘密鍵計算部
７３  メッセージ作成者ID対応秘密鍵出力部
７４  認証ID対応秘密鍵出力部
７５  秘密パラメータ格納部
７６  システム共通パラメータ格納部
９１  入出力部
９２  認証ID対応秘密鍵格納部
９３  演算部
【図１】
0005389347.tif 000002
【図２】
0005389347.tif 000003
【図３】
0005389347.tif 000004
【図４】
0005389347.tif 000005
【図５】
0005389347.tif 000006
【図６】
0005389347.tif 000007
【図７】
0005389347.tif 000008
【図８】
0005389347.tif 000009
【図９】
0005389347.tif 000010