(58)【調査した分野】(Int.Cl.,DB名)
所定の情報をシンボルの分布パターンによって表現する情報領域と、誤りを訂正するための訂正情報をシンボルの分布パターンによって表現する訂正領域と、を合併したコード語領域を備えるデジタル署名型2次元コードを生成するためのデジタル署名型2次元コード生成装置であって、
2次元コードを読み取り、該2次元コードのコード語領域よりシンボルを取得する手段と、
乱数アルゴリズムによって生成された乱数、及び当該本人を特定する固有識別子と紐づいた数字列、を秘密鍵とし、前記2次元コードのハッシュ値と共に、楕円曲線を用いたデジタル署名アルゴリズムに従って、デジタル署名に相当する署名値を算出する手段と、
前記コード語領域において所定位置のシンボルと前記署名値のシンボル表現との排他的論理和を算出し、前記所定位置のシンボルを前記排他的論理和に置換することにより、前記署名値を前記所定位置に埋め込んだ前記デジタル署名型2次元コードを生成する手段と、
を備えることを特徴とするデジタル署名型2次元コード生成装置。
前記第1判別値は、前記署名値の取得値、前記復号語を用いて復元した2次元コードのシンボル群より算出したハッシュ値、公開鍵、楕円曲線のベースポイント、及び前記ベースポイントの位数と共に、楕円曲線を用いたデジタル署名アルゴリズムに従って求められる、
ことを特徴とする請求項3に記載のデジタル署名型2次元コード認証装置。
所定の情報をシンボルの分布パターンによって表現する情報領域と、誤りを訂正するための訂正情報をシンボルの分布パターンによって表現する訂正領域と、を備える2次元コード生成方法であって、
2次元コードを読み取り、前記2次元コードからシンボル群を取得するステップと、
本人を特定する固有識別子と紐づいた前記秘密鍵と前記2次元コードのハッシュ値と共に、楕円曲線を用いたデジタル署名アルゴリズムに従って、デジタル署名に相当する署名値を算出するステップと、
前記署名値のシンボル表現と前記コード語領域の所定位置にあるシンボルとの排他的論理和を算出し、前記所定位置のシンボルを前記排他的論理和に置換することにより、前記署名値を埋め込んだ前記デジタル署名型2次元コードを生成するステップと、
を備えることを特徴とするデジタル署名型2次元コード生成方法。
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、2次元コードを読み取ることで取得したURL情報が改ざんされている場合、所望のウェブサイトと異なるウェブサイトに接続されてしまうという問題がある。このような改ざん問題はURLに限らず、改ざんや偽造された2次元コードの情報を読み取った場合、その不正を確実に検知する方法がないと不正な情報の読み込みに起因する被害が発生する。
【0007】
また、特許文献2に記載の2次元コード認証装置は、数学的に安全性が保証された認証アルゴリズムに基づいているものではないため、改ざんされ得る可能性があるという問題がある。加えて、かかる2次元コード認証装置は、2次元コード利用者を認証する機能を有していないため、ユーザ認証を必要とする取引やアクセスには適さないという問題もある。
【0008】
更に、ICカードにおいても、サイドチャネル攻撃などの攻撃手法により、ICカードに格納されている個人情報等を盗み読みし、悪意ある第三者が正当な所有者に「なりすます」ことによる被害が発生するという問題がある。
【0009】
本発明は、上記の課題を解決するためになされたものであり、デジタル署名型2次元コード生成装置、デジタル署名型2次元コード認証装置、デジタル署名型2次元コード生成方法、デジタル署名型2次元コード認証方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
上記目的を達成するため、本発明の第1の観点に係るデジタル署名型2次元コード生成装置は、
所定の情報をシンボルの分布パターンによって表現する情報領域と、誤りを訂正するための訂正情報をシンボルの分布パターンによって表現する訂正領域と、を合併したコード語領域を備えるデジタル署名型2次元コードを生成するためのデジタル署名型2次元コード生成装置であって、
2次元コードを読み取り、該2次元コードのコード語領域よりシンボル群を取得する手段と、
認証するための秘密鍵と、前記2次元コードのシンボル群から算出したハッシュ値と共に、楕円曲線を用いたデジタル署名アルゴリズムに従って、デジタル署名に相当する署名値を算出する手段と、
前記コード語領域において所定位置のシンボルと前記署名値のシンボル表現との排他的論理和を算出し、前記所定位置のシンボルを前記排他的論理和に置換することにより、前記署名値を前記所定位置に埋め込んだ前記デジタル署名型2次元コードを生成する手段と、
を備えることを特徴とする
【0011】
前記デジタル署名型2次元コード生成装置において、
前記署名値は、前記2次元コードのシンボル群から算出したハッシュ値、有限体上の楕円曲線のベースポイント、前記ベースポイントの位数、所定の乱数、公開鍵、及び秘密鍵と共に、楕円曲線を用いたデジタル署名アルゴリズムに従って求められる、
ことを特徴とする。
【0012】
前記デジタル署名型2次元コード生成装置において、
前記秘密鍵は、デジタル署名型2次元コードの認証にあっては、乱数アルゴリズムによって生成された乱数を用い、また、デジタル署名型2次元コード利用者の本人確認にあっては、当該個人を特定できる固有識別子と紐づいた数字列を用いる、
ことを特徴とする。
【0013】
上記目的を達成するため、本発明の第2の観点に係るデジタル署名型2次元コード認証装置は、
前記デジタル署名型2次元コードを読み込んで取得した受信語の誤り訂正処理を遂行することによって、復号語を取得する手段と、
前記受信語のシンボル表現と前記復号語のシンボル表現との排他的論理和を算出することによって、前記デジタル署名型2次元コードの前記所定位置に埋め込まれた前記署名値を取得する手段と、
前記署名値の取得値を用い、楕円曲線を用いたデジタル署名アルゴリズムに従って算出した第1判別値と前記署名値の一つの取得値とが合致するか否か判別することにより、デジタル署名型2次元コードに関する偽造・改ざんを検知する手段と、
を備えることを特徴とする。
【0014】
前記デジタル署名型2次元コード認証装置において、
前記第1判別値は、前記署名値の取得値、前記復号語を用いて復元した2次元コードのシンボル群より算出したハッシュ値、公開鍵、楕円曲線のベースポイント、及び前記ベースポイントの位数と共に、楕円曲線を用いたデジタル署名アルゴリズムに従って求められる、
ことを特徴とする。
【0015】
上記目的を達成するため、本発明の第3の観点に係るデジタル署名型2次元コード認証装置は、第2の観点に係るデジタル署名型2次元コード認証装置において、更に、
デジタル署名型2次元コード利用者の本人確認を行うもので、本人を特定する固有識別子を用い、前記固有識別子と紐づいた秘密鍵と前記ベースポイントとの積から算出した第2判別値と、前記署名値の取得値と、が合致するか否か判別することにより、当該本人であることを認証する手段と、
を備えることを特徴とする。
【0016】
上記目的を達成するため、本発明の第4の観点に係る2次元コード生成方法は、
所定の情報をシンボルの分布パターンによって表現する情報領域と、誤りを訂正するための訂正情報をシンボルの分布パターンによって表現する訂正領域とをデ備えるデジタル署名型2次元コード生成方法であって、
2次元コードを読み取り、前記2次元コードからシンボル群を取得するステップと
認証するための秘密鍵と前記2次元コードのシンボル群より算出したハッシュ値と共に、楕円曲線を用いたデジタル署名アルゴリズムに従って、デジタル署名に相当する署名値を算出するステップと、
前記署名値のシンボル表現と前記コード語領域の所定位置にあるシンボルとの排他的論理和を算出し、前記所定位置のシンボルを前記排他的論理和に置換することにより、前記署名値を埋め込んだ前記デジタル署名型2次元コードを生成するステップと、
を備えることを特徴とする。
【0017】
上記目的を達成するため、本発明の第5の観点に係るプログラムは、
所定の情報をシンボルの分布パターンによって表現する情報領域と、誤りを訂正するための訂正情報をシンボルの分布パターンによって表現する訂正領域とを備える2次元コード生成装置のコンピュータに、
2次元コードを読み取り、前記2次元コードからシンボル群を取得する手順と、
認証するための秘密鍵と前記2次元コードのシンボル群より算出したハッシュ値と共に、楕円曲線を用いたデジタル署名アルゴリズムに従って、デジタル署名に相当する署名値を算出する手順と、
楕円曲線を用いたデジタル署名アルゴリズムに従って、認証するための秘密鍵と取得した前記シンボルとからデジタル署名に相当する署名値を算出する手順と、
前記署名値のシンボル表現と前記コード語領域の所定位置にあるシンボルとの排他的論理和を算出し、前記所定位置のシンボルを前記排他的論理和に置換することにより、前記署名値を埋め込んだ前記デジタル署名型2次元コードを生成する手順と、
を実行させる。
【発明の効果】
【0018】
本発明によれば、デジタル署名型2次元コードに関する偽造・改ざんの検知にあたって、サーバなどの外部装置を用いる必要がなく、従って、スマートフォンなどの端末機器単独でかかるコードに関する不正を調べることができるため、手軽で安価に検知を行うことが可能になる。
【0019】
また、例えば、eコマースでは、スマートフォンを使い、ディスプレイ上に表示されたQRコードより関連するウェブサイトのURL情報を取得することが多い。しかし、URL情報が改ざんされている場合、本来とは異なるウェブサイトに誘導される危険性があるが、本発明によれば、デジタル署名型2次元コードを使用することで、そのコードの不正を検知することができるため、未然にそのような危険性を防ぐことができる。
【0020】
本発明によれば、個人情報はデジタル署名型2次元コードに直接格納されていないため、個人情報の漏えいの危険性が少なく、従って、安全に個人認証ができるデジタル署名型2次元コード生成装置とデジタル署名型2次元コード認証装置とを提供することができる。
【発明を実施するための形態】
【0022】
(第1実施形態)
以下、本発明の第1実施形態について説明する。2次元コードとしてQRコード(登録商標、以下同様)を例示して図面を参照しながら詳細に説明するが、本発明はこれに限定されるものではなく、2次元コードは、データマトリックス、アズテックコード、マキシコード、などといった他の2次元コードであってもよい。
【0023】
図1は、本実施形態における埋め込み対象の2次元コードの構成例を示す図である。
【0024】
2次元コード100は、
図1に示すように、白いセルと黒いセルの配列パターンによって情報を表現しており、3つの位置検出パターン104A、104B、104C、コード語領域106、タイミングセル108、形式情報109、及び型番情報110などを備えている。
図1には一部のセルと一部のシンボル(シンボルは8個のセルより構成される単位)しか描かれていないが、実際はコード語領域106及び型番情報110の部分にもシンボル及びセルが分布している。
【0025】
タイミングセル108は、位置検出パターン104A,104B、及び104C間に、直線状に並べられたセルの基準パターンとして配置されている。このタイミングセル108は、各データセル位置の指標として用いられる。
【0026】
形式情報109は、位置検出パターン104Aの近傍に配置されており、コード語領域106内に記録されるコード語のフォーマットについて、予め規定されたマスクパターン情報と誤り訂正レベル情報を示すものであり、また、型番情報110は、バージョンが7型以上の2次元コードに配置されているもので、予め規定されたバージョン情報を示すものである。2次元コードには、バージョンとして1〜40型の規格があり、各バージョンとも4つの誤り訂正レベルL,M,Q、H(LからHへと順に誤り訂正能力は高くなる)が用意されている。
【0027】
バージョンの型は、シンボルの総数に対応して決まる。なお、1シンボルには256通りのセルパターンが存在するため、1シンボルには0〜255の整数値(以下、シンボル値という)を対応させることができる。また、誤り訂正レベル(L,M,Q,H)は、全シンボルのうち読み取れないシンボルを許容する割合の高さ、すなわち許容欠損率の高さに対応している。それぞれのレベルの許容欠損率は、誤り訂正レベルLが約7%、誤り訂正レベルMが約15%、誤り訂正レベルQが約25%、誤り訂正レベルHが約30%である。本実施の形態では、バージョン7(シンボルの総数は196個ある)で誤り訂正レベルHの2次元コードを用いており、このバージョンと誤り訂正レベルをもつ2次元コードを「7−Hの2次元コード」で表す。なお、本発明は、7−Hの2次元コードに限定されるものではなく、他のバージョン及び他の誤り訂正レベルをもつ2次元コードであってもよい。
【0028】
コード語領域106は、情報データを表すシンボル群と誤り訂正の機能をもつシンボル群から構成され、7−Hの2次元コードの場合、コード語領域106の全シンボル群は、5つのブロックB1〜B5に分けられている。各ブロックは、データ部分のシンボル列(以下、データコードという)と、データコードをRS(リード・ソロモン)符号化することにより得られる誤り訂正部分のシンボル列(以下、RSコードという)から構成され、データコードとRSコードを連接してコード語を形成する。従って、コード語領域106には5個のコード語が存在する。そのうち、4個のブロックB1〜B4は、各ブロックともデータコードが13個のシンボルとRSコードが26個のシンボルの計39個のシンボル(コード語のシンボル長は39)で構成されており、残りの1つのブロックB5は、データコードが14個のシンボルとRSコードが26個のシンボルの計40個のシンボル(コード語のシンボル長は40)で構成されている。
【0029】
図2は、本実施形態におけるデジタル署名型2次元コード生成装置10の構成例を示すブロック図である。
【0030】
本実施形態では、楕円曲線を用いたデジタル署名アルゴリズムとして、広く利用されている楕円曲線デジタル署名アルゴリズム(以下、ECDSAという)による署名を例示しているが、本発明はこれに限定されるものではなく、他のデジタル署名アルゴリズムであってもよい。例えば、楕円ElGamal署名アルゴリズムや楕円Schnorr署名アルゴリズムなども本発明に適用可能である。
【0031】
デジタル署名型2次元コード生成装置10は、2次元コード100に署名値を埋め込んで、デジタル署名型2次元コードを生成するもので、2次元コードデコード部1、署名値算出部2、及びデジタル署名型2次元コード生成部3、を備えている。これら各部は、専用のハードウェア装置で構成してもよいし、或いはソフトウェアプログラムに基づく1または複数のプロセッサの機能として実現してもよい。
【0032】
デジタル署名型2次元コード生成装置10は、例えば、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、及びハードディスクなどから構成される汎用コンピュータによって実現される。
【0033】
2次元コードデコード部1は、2次元コード100を撮像して読み取るもので、2次元コード100を取り込むCCD(Charge Couple Device)などの受光素子を含んで構成されている。2次元コードデコード部1は、読み取った2次元コードの形式情報を復号して型番を決定し、マスク処理の解除を遂行する。次に、コード配置規則に従って2次元コード100のコード語領域106のシンボル群をブロックごとに取り込み、全部で196個のシンボルからなるシンボル群を取得する。
【0034】
署名値算出部2は、160ビット長の素数で決められる有限体GF及び有限体GF上の楕円曲線E(例えば、y^2=x^3+ax+b)をもとに、ベースポイントGとその160ビット長の位数nを定め、乱数d(0<d<n)を生成して、公開鍵Q=dG(Mod n)を算出ことによって、ECDSAの実行環境を定める。この場合、公開鍵Qは160ビット長の2組の整数値を成分にもつ。本発明は上記ビット長に限定されるものではなく、必要とされるセキュリティ強度に応じて決めてよい。
【0035】
署名値算出部2は、まず、2次元コードデコード部1で取得した前記196個のシンボルを所定の順に連接して1つのシンボル列を生成する。次に、ハッシュ関数SHA−256を用いて、連接した前記シンボル列に対するハッシュ値hを算出する。本発明はこのハッシュ関数に限定されるものではなく、SHA−224など他のハッシュ関数でもよい。
【0036】
署名値算出部2は、ECDSAの前記実行環境、前記ハッシュ値h、及び秘密鍵kと共に、ECDSAに従って以下の(数1)にある手順で160ビット長の署名値cとuを算出する。前記秘密鍵kは、認証する対象がデジタル署名型2次元コード自身にあっては、乱数アルゴリズムによって生成された乱数を用い、また、本人確認にあっては、当該本人を特定できる固有識別子と所定の関係で紐づいた数字列(該固有識別子と該数字列は1:1に対応)を用いる。前記固有識別子は、当該本人の暗証番号やパスワードの他、指紋、掌紋、虹彩、顔、静脈、音声、耳型、DNA情報などの当該本人の生体データでもよい。
(数1)
【0037】
デジタル署名型2次元コード生成部3は、まず、
図3に示すように、コード語領域106のブロック群において、1つのブロックに8個所、全ブロックで計40個所の位置Pi(i=1〜40)を予め任意に定め、前記位置Pi(i=1〜40)に対応するシンボルのシンボル値ai(i=1〜40)を連接して1つのシンボル列D1:a1a2・・・a40を生成する。次に、算出した160ビット長の前記署名値c及びuの各々のシンボル表現、c:b1b2・・・b20及びu:b21b22・・・b40(bi(i=1〜40)は前記位置Piにおけるシンボル値)を連接して、シンボル列D2:b1b2・・・b40を生成する。そして、シンボル列D1とシンボル列D2との排他的論理和(ai^bi)(i=1〜40)を算出し、前記所定位置Pi(i=1〜40)のシンボル値ai(i=1〜40)を前記排他的論理和(ai^bi)(i=1〜40)に置換することによって2次元コードに前記署名値c及びuを埋め込む。続いて、コード語領域106のマスク処理を遂行してデジタル署名型2次元コード200を生成する。このようにして生成したデジタル署名型2次元コード200は、プリンタで印刷したり、LCD(Liquid Crystal Display)に表示するなどして出力する。
【0038】
図4は、本実施形態におけるデジタル署名型2次元コード認証装置20を示すブロック図である。
【0039】
デジタル署名型2次元コード認証装置20は、デジタル署名型2次元コード200に埋め込まれた署名値に基づいて、デジタル署名型2次元コード200に関して偽造・改ざんがあるか否か判別するもので、CPU,ROM,RAM,及びハードディスクドライブなどから構成される汎用コンピュータによって実現される。
【0040】
デジタル署名型2次元コード認証装置20は、
図4に示すように、デジタル署名型2次元コードデコード部4、署名値取得部5、及びデジタル署名型2次元コード認証部6、を備えている。これら各部は、専用のハードウェア装置で構成してもよいし、或いはソフトウェアプログラムに基づく1または複数のプロセッサの機能として実現してもよい。
【0041】
デジタル署名型2次元コードデコード部4は、デジタル署名型2次元コード200を撮像して読み取るもので、デジタル署名型2次元コード200を取り込むCCDなどの受光素子を含んで構成されている。
【0042】
デジタル署名型2次元コードデコード部4は、読み取ったデジタル署名型2次元コード200の形式情報を復号して型番を決定し、マスク処理の解除を遂行する。次に、コード配置規則に従って、前記デジタル署名型2次元コード200のコード語領域106のシンボル群をブロックごとに読み込み、誤りを含み得るコード語(以下、受信語という)を取得する。
次に、リード・ソロモン符号の復号アルゴリズム(例えば、ユークリッド復号法)を用いて、各受信語(5個ある)の誤り訂正処理を遂行し、復号語を取得する。
【0043】
署名値取得部5は、前記署名値算出部2におけるハッシュ値の算出と同様にして、5個の前記復号語のシンボル表現を所定の順に連接してシンボル列(196個のシンボルからなる)を生成し、前記シンボル列に対するハッシュ値h’を取得する。続いて、
図5に示すように、5個の前記受信語において、前記所定位置Pi(i=1〜40)のシンボルに対応するシンボル値を連接したシンボル列A:c1c2・・・c40と、5個の前記復号語において、前記所定位置Pi(i=1〜40)のシンボルに対応するシンボル値を連接したシンボル列B:d1d2・・・d40と、の排他的論理和を算出する。前記排他的論理和(ci^di)(i=1〜40)より、埋め込まれた前記署名値の取得値のシンボル表現、c’:(c1^d1)(c2^d2)・・・(c20^d20)とu’:(c21^d21)(c22^d22)・・・(c40^d40)とを取得する。
【0044】
デジタル署名型2次元コード認証部6は、ECDSAとデジタル署名型2次元コードに埋め込まれた署名値の取得値を利用して、デジタル署名型2次元コードに関する偽造・改ざんの有無を調べ、デジタル署名型2次元コードの正当性を判別する。
【0045】
デジタル署名型2次元コード認証部6は、署名値の前記取得値c’とu’、前記ハッシュ値h’、及びECDSAの前記実行環境である有限体上の楕円曲線のベースポイントG、前記ベースポイントの位数n、所定の乱数d(0<d<n)、公開鍵Q(=dG)を用いて、ECDSAに従って以下の(数2)にあるように第1判別値cpを算出し、
(数2)
前記第1判別値cpと前記取得値c’が合致すれば、デジタル署名型2次元コード200に偽造・改ざんはないと判別して、認証結果を“OK”とし、また、前記第1判別値cpと前記取得値c’が合致しなければ、デジタル署名型2次元コード200に偽造・改ざんがあるとして、認証結果を“NG”とする。
【0046】
次に、上記構成を備えるデジタル署名型2次元コード生成装置10及びデジタル署名型2次元コード認証装置20の動作について、図面を参照しつつ説明する。
【0047】
図6は、デジタル署名型2次元コード生成装置が実行するデジタル署名型2次元コード生成処理を示すフローチャートである。
【0048】
デジタル署名型2次元コード生成装置10は、2次元コードデコード部1が埋め込み対象の2次元コードを読み込んだことに応答して、
図6に示すデジタル署名型2次元コード生成処理を開始する。デジタル署名型2次元コード生成処理において、2次元コードデコード部1は、マスク解除処理が遂行された2次元コードのコード語領域106において5個のブロックより合計196個のシンボルを読み込む(ステップS1)。
【0049】
次に、デジタル署名型2次元コード生成装置10は、署名値算出部2で、ハッシュ関数SHA−256を用いて、前記196個のシンボルより生成したシンボル列に対するハッシュ値hを算出する。そして、ECDSAの前記実行環境のもとに、ハッシュ値h、及び秘密鍵kと共に、ECDSAに従って前記(数1)にあるように、160ビット長の署名値cとuを算出する(ステップS2)。
【0050】
続いて、デジタル署名型2次元コード生成装置10は、デジタル署名型2次元コード生成部3で、コード語領域の各ブロックにおいて、8個のシンボル位置を予め任意に定めることによって、全ブロックで合計40個所のシンボル位置Pi(i=1〜40)を指定する(ステップS3)。
【0051】
そして、デジタル署名型2次元コード生成装置10は、デジタル署名型2次元コード生成部3で、前記署名値cとuのシンボル表現を所定の順に連接したシンボル列(40シンボル長)と、前記コード語領域106のブロック群から選定した前記シンボル位置Pi(i=1〜40)のシンボルを所定の順に連接したシンボル列と、の排他的論理和を算出し、40シンボル長の排他的論理和を取得する(ステップS4)。
【0052】
続いて、デジタル署名型2次元コード生成装置10は、デジタル署名型2次元コード生成部3で、前記コード語領域106において前記シンボル位置Pi(i=1〜40)にある40個のシンボルを前記排他的論理和に置換し、そして、コード語領域のマスク処理を遂行することによって、デジタル署名型2次元コードを生成する(ステップS5)。
【0053】
図7は、本実施形態におけるデジタル署名型2次元コード認証装置20が実行するデジタル署名型2次元コードの認証処理を示すフローチャートである。
【0054】
デジタル署名型2次元コード認証装置20は、デジタル署名型2次元コード生成装置10が生成したデジタル署名型2次元コード200を画像データとして読み込んだことに応答して、
図7に示すデジタル署名型2次元コードの認証処理を開始する。デジタル署名型2次元コード認証処理において、デジタル署名型2次元コード認証装置20は、デジタル署名型2次元コードデコード部4で、取込んだデジタル署名型2次元コード200のコード語領域106のブロックをコード配置規則に従ってデコードすることにより、コード語領域106にある196個のシンボルを取得する(ステップS6)。
【0055】
そして、デジタル署名型2次元コード認証装置20は、デジタル署名型2次元コードデコード部4で、前記デジタル署名型2次元コード200のマスク解除処理を遂行する。続いて、デジタル署名型2次元コード200のコード語領域106から5個の受信語を取得する。次に、リード・ソロモン符号の復号アルゴリズム(例えば、ユークリッド復号法)を用いて、各受信語の誤り訂正処理を遂行し、復号語を取得する(ステップS7)。
【0056】
続いて、デジタル署名型2次元コード認証装置20は、署名値取得部5で、5個の前記受信語において、前記所定位置Pi(i=1〜40)に対応するシンボル値を連接したシンボル列A:c1c2・・・c40と、5個の前記復号語において、前記所定位置Pi(i=1〜40)に対応するシンボル値を連接したシンボル列B:d1d2・・・d40と、の排他的論理和(ci^di)(i=1〜40)を算出する。前記排他的論理和(ci^di)(i=1〜40)のなかに零と異なるものがあるか否かを調べる。もし、前記排他的論理和(ci^di)(i=1〜40)のなかに、零と異なるものがあれば(誤りあり)、次のステップS9へ進む。また、もし、前記排他的論理和(ci^di)(i=1〜40)がすべて零であれば(誤りなし)、認証結果を“NG”としてステップS11へ進む(ステップS8)。
【0057】
そして、デジタル署名型2次元コード認証装置20は、署名値取得部5で、前記排他的論理和(ci^di)(i=1〜40)より、署名値c’とu’のシンボル表現c’:(c1^d1)(c2^d2)・・・(c20^d20)とu’:(c21^d21)(c22^d22)・・・(c40^d40)とを取得する。続いて、ステップS7で取得した5個の復号語のシンボル表現を所定の順に連接し、連接した前記シンボル列に対するハッシュ値h’を算出する(ステップ9)。
【0058】
次に、デジタル署名型2次元コード認証装置20は、デジタル署名型2次元コード認証部6で、取得した署名値の前記取得値c’とu’、前記ハッシュ値h’、及びECDSAの前記実行環境である有限体上の楕円曲線のベースポイントG、前記ベースポイントの位数n、前記所定の乱数d、公開鍵Q(=dG)と共に、ECDSAに従って、前記(数2)にあるように第1判別値cpを算出する(ステップS10)。
【0059】
そして、デジタル署名型2次元コード認証装置20は、デジタル署名型2次元コード認証部6で、前記第1判別値cpと前記取得値c’が合致すれば、認証結果を“OK”とし、前記第1判別値cpと前記取得値c’が合致しなければ、認証結果を“NG”とする(ステップS11)。
【0060】
(第2実施形態)
以下に示す本発明の第2実施形態は、デジタル署名型2次元コードを用いた個人認証に関するもので、
図1、
図2、
図8、及び
図9を参照して説明する。本実施形態においても2次元コードとして
図1のQRコードを例示して説明するが、本発明はこれに限定されるものではなく、2次元コードは、データマトリックス、アズテックコード、マキシコード、などといった他の2次元コードであってもよい。また、デジタル署名型2次元コード認証装置20の構成部と同一のデジタル署名型2次元コード認証装置30の構成部には、デジタル署名型2次元コード認証装置20と同一符号を付し、その説明を省略すると共に、第2実施形態におけるフローチャートにおいても、第1実施形態と同様の動作については同一符号を付し、その説明を省略する。
【0061】
図2は、本実施形態におけるデジタル署名型2次元コード生成装置10の構成例を示すブロック図である。これは、第1実施形態におけるブロック図と同様であるが、署名値算出部2における秘密鍵が第1実施形態とは異なる。すなわち、第1実施形態における秘密鍵は、乱数アルゴリズムによって生成された乱数を用い、第2実施形態における秘密鍵は、個人を特定する固有識別子に紐づく数字列を用いる。
【0062】
図8は、本実施形態におけるデジタル署名型2次元コード認証装置30の構成例を示すブロック図である。
【0063】
デジタル署名型2次元コード認証装置30における認証処理は、入力された固有識別子に基づいて、本人確認を行うもので、CPU,ROM,RAM,及びハードディスクドライブなどから構成される汎用コンピュータによって実現される。
【0064】
デジタル署名型2次元コード認証装置30における認証処理は、デジタル署名型2次元コードに偽造・改ざんが検知されない場合に遂行され、本人を特定する固有識別子と、デジタル署名型2次元コード200から取得した署名値と、に基づいて個人認証を行うもので、デジタル署名型2次元コード読取部4、署名値取得部5、デジタル署名型2次元コード認証部6、固有識別子入力部7、及び個人認証部8、を備えている。これらの各部は、専用のハードウェア装置で構成してもよいし、或いはソフトウェアプログラムに基づく1または複数のプロセッサの機能として実現してもよい。
【0065】
固有識別子入力部7は、本人を特定するための固有識別子sを取り込む。該固有識別子は、デジタル署名型2次元コード生成装置10の署名値算出部2において、デジタル署名型2次元コードの生成に用いた固有識別子と同様のものであり、以下に示すように、両者が合致する場合にのみ本人確認ができる。
【0066】
個人認証部8は、固有識別子、ECDSAの前記実行環境である楕円曲線のベースポイントG及び前記ベースポイントの位数nと共に、前記固有識別子と所定の関係で紐づいた秘密鍵k’を用い、楕円曲線上において、k’とGとの積k’G(modn)のx成分である第2判別値cqを算出する。
【0067】
個人認証部8は、前記第2判別値cqと署名値の前記取得値c’とが合致するか否か判別し、両者が合致していれば、当該本人と判別して認証結果を“OK”とし、両者が合致していなければ当該本人でないと判別して認証結果を“NG”とする。
【0068】
次に、デジタル署名型2次元コード認証装置30の動作について、図面を参照しつつ説明する。
【0069】
図9は、前記デジタル署名型2次元コード認証装置30が実行する認証処理を示すフローチャートである。
【0070】
デジタル署名型2次元コード認証装置30は、ステップS1〜ステップS10までの処理を遂行し、デジタル署名型2次元コード認証部6において、デジタル署名型2次元コードに偽造・改ざんがないと判別されたときに応答して個人認証処理を開始する(ステップS11)。
【0071】
そして、デジタル署名型2次元コード認証装置30は、固有識別子入力部7で、本人を特定する固有識別子を入力する。入力された固有識別子は、所定の変換則に従って秘密鍵k’に変換する(ステップS12)。
【0072】
続いて、デジタル署名型2次元コード認証装置30は、個人認証部8で、前記秘密鍵k’、ECDSAの前記実行環境である楕円曲線の前記ベースポイントG及び前記ベースポイントの位数nを用い、楕円曲線上において積k’G(modn)のx成分である第2判別値cqを算出する(ステップS13)。
【0073】
次に、デジタル署名型2次元コード認証装置30は、個人認証部8で、前記第2判別値cqと署名値の前記取得値c’とが合致するか否か判別し、両者が合致すれば、当該本人として、認証結果を“OK”とする。また、両者が合致しなければ、当該本人でないとして、認証結果を“NG”とする(ステップ14)。
【0074】
そして、デジタル署名型2次元コード認証装置30は、個人認証部8で、ステップS14から得られた認証結果を出力する(ステップ15)。
符号の説明
【0075】
1・・・・2次元コードデコード部
2・・・・署名値算出部
3・・・・デジタル署名型2次元コード生成部
4・・・・デジタル署名型2次元コードデコード部
5・・・・署名値取得部
6・・・・デジタル署名型2次元コード認証部
7・・・・固有識別子入力部
8・・・・個人認証部
10・・・・デジタル署名型2次元コード生成装置(第1実施形態及び第2実施形態)
20・・・・デジタル署名型2次元コード認証装置(第1実施形態)
30・・・・デジタル署名型2次元コード認証装置(第2実施形態)
100・・・2次元コード
200・・・デジタル署名型2次元コード