(57)【要約】【課題】デジタル署名アルゴリズムを用いて２次元コードに関する偽造・改ざんを検知する手段と本人確認を行う手段を提供する。【解決手段】デジタル署名型２次元コード生成装置は、数学的に安全性が保証されている楕円曲線を用いたデジタル署名アルゴリズムに従って、デジタル署名型２次元コードに関する偽造・改ざんを検知するための署名値が埋め込まれたデジタル署名型２次元コードを生成する。デジタル署名型２次元コード認証装置は、デジタル署名型２次元コードを読み込んで誤り訂正処理を遂行し、デジタル署名型２次元コードに埋め込まれた署名値を取得して、楕円曲線を用いたデジタル署名アルゴリズムにより、デジタル署名型２次元コードの認証と本人確認を行う。【選択図】図２
2016006945.tif 000002
【特許請求の範囲】
【請求項１】
所定の情報をシンボルの分布パターンによって表現する情報領域と、誤りを訂正するための訂正情報をシンボルの分布パターンによって表現する訂正領域と、を合併したコード語領域を備えるデジタル署名型２次元コードを生成するためのデジタル署名型２次元コード生成装置であって、
２次元コードを読み取り、該２次元コードのコード語領域よりシンボルを取得する手段と、
認証するための秘密鍵と、前記２次元コードのハッシュ値と共に、楕円曲線を用いたデジタル署名アルゴリズムに従って、デジタル署名に相当する署名値を算出する手段と、
前記コード語領域において所定位置のシンボルと前記署名値のシンボル表現との排他的論理和を算出し、前記所定位置のシンボルを前記排他的論理和に置換することにより、前記署名値を前記所定位置に埋め込んだ前記デジタル署名型２次元コードを生成する手段と、
を備えることを特徴とするデジタル署名型２次元コード生成装置。
【請求項２】
前記署名値は、前記２次元コードのシンボル群から算出したハッシュ値、有限体上の楕円曲線のベースポイント、前記ベースポイントの位数、所定の乱数、公開鍵、及び秘密鍵と共に、楕円曲線を用いたデジタル署名アルゴリズムに従って求められる、
ことを特徴とする請求項１に記載のデジタル署名型２次元コード生成装置。
【請求項３】
前記秘密鍵には、デジタル署名型２次元コード自身の認証にあっては、乱数アルゴリズムによって生成された乱数を用い、また、デジタル署名型２次元コード利用者の本人確認にあっては、当該本人を特定できる固有識別子と紐づいた数字列を用いる、
ことを特徴とする請求項１又は請求項２に記載のデジタル署名型２次元コード生成装置。
【請求項４】
請求項１に記載のデジタル署名型２次元コード生成装置で生成されたデジタル署名型２次元コードを認証するデジタル署名型２次元コード認証装置であって、
前記デジタル署名型２次元コードを読み込んで取得した受信語の誤り訂正処理を遂行することによって、復号語を取得する手段と、
前記受信語のシンボル表現と前記復号語のシンボル表現との排他的論理和を算出することによって、前記デジタル署名型２次元コードの前記所定位置に埋め込まれた前記署名値を取得する手段と、
前記署名値の取得値を用い、楕円曲線を用いたデジタル署名アルゴリズムに従って算出した第１判別値と、前記署名値の一つの取得値と、が合致するか否か判別することにより、デジタル署名型２次元コードに関する偽造・改ざんを検知する手段と、
を備えることを特徴とするデジタル署名型２次元コード認証装置。
【請求項５】
前記第１判別値は、前記署名値の取得値、前記復号語を用いて復元した２次元コードのシンボル群より算出したハッシュ値、公開鍵、楕円曲線のベースポイント、及び前記ベースポイントの位数と共に、楕円曲線を用いたデジタル署名アルゴリズムに従って求められる、
ことを特徴とする請求項４に記載のデジタル署名型２次元コード認証装置。
【請求項６】
請求項４に記載のデジタル署名型２次元コード認証装置において、更に、
本人を特定する固有識別子と紐づいた秘密鍵と前記ベースポイントとの積から算出した第２判別値と、前記署名値の取得値と、が合致するか否か判別することにより、当該本人であることを認証する手段、
を備えることを特徴とする請求項４又は請求項５に記載のデジタル署名型２次元コード認証装置。
【請求項７】
所定の情報をシンボルの分布パターンによって表現する情報領域と、誤りを訂正するための訂正情報をシンボルの分布パターンによって表現する訂正領域とを備える２次元コード生成方法であって、
２次元コードを読み取り、前記２次元コードからシンボル群を取得するステップと、
認証するための秘密鍵と前記２次元コードのハッシュ値と共に、楕円曲線を用いたデジタル署名アルゴリズムに従って、デジタル署名に相当する署名値を算出するステップと、
前記署名値のシンボル表現と前記コード語領域の所定位置にあるシンボルとの排他的論理和を算出し、前記所定位置のシンボルを前記排他的論理和に置換することにより、前記署名値を埋め込んだ前記デジタル署名型２次元コードを生成するステップと、
を備えることを特徴とするデジタル署名型２次元コード生成方法。
【請求項８】
所定の情報をシンボルの分布パターンによって表現する情報領域と、誤りを訂正するための訂正情報をシンボルの分布パターンによって表現する訂正領域とを備える２次元コード生成装置のコンピュータに、
２次元コードを読み取り、前記２次元コードからシンボル群を取得する手順と、
認証するための秘密鍵と前記２次元コードのハッシュ値と共に、楕円曲線を用いたデジタル署名アルゴリズムに従って、デジタル署名に相当する署名値を算出する手順と、
前記署名値のシンボル表現と前記コード語領域の所定位置にあるシンボルとの排他的論理和を算出し、前記所定位置のシンボルを前記排他的論理和に置換することにより、前記署名値を認証情報として埋め込んだ前記デジタル署名型２次元コードを生成する手順と、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタル署名型２次元コードを用いて、デジタル署名型２次元コードに関する偽造・改ざんの検知と個人認証ができるデジタル署名型２次元コード生成装置、デジタル署名型２次元コード認証装置、デジタル署名型２次元コード生成方法、デジタル署名型２次元コード認証方法、及びプログラムに関するものである。
【背景技術】
【０００２】
光学読み取りが可能な２次元コードの一種であるＱＲコード（登録商標、以下同じ）は、所定の情報を容易に取得するための手段として様々な分野で利用されている。例えば、搭乗情報の入ったＱＲコードを航空券に記載して利用することや、或いは企業のウェブサイトのＵＲＬ情報をＱＲコードに組み込みスマートフォン等の端末機器で読み取ることで当該ウェブサイトの情報を取得することなど、ＱＲコードの利用が拡大している（例えば、特許文献１参照）。
【０００３】
また、改ざん検出用の情報をＱＲコードに埋め込むことにより、ＱＲコードに関する不正を検知する技術が知られている（例えば、特許文献２参照）。
【０００４】
ＩＣカードを用いた個人認証も広く普及しており、ＩＣカード所有者が正当な本人（使用権限を有する者）であるか否か判別する技術として、当該ＩＣカードを持っていることによる所持確認や暗証番号等を記憶していることによる記憶確認の他に、最近では、指紋等の生体情報確認も実用化されている（例えば、特許文献３参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開2006-318328号公報
【特許文献２】特開WO2014027424 A1号公報
【特許文献３】特開2010-152841公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、２次元コードを読み取ることで取得したＵＲＬ情報が改ざんされている場合、所望のウェブサイトと異なるウェブサイトに接続されてしまうという問題がある。このような改ざん問題はＵＲＬに限らず、改ざんや偽造された２次元コードの情報を読み取った場合、その不正を確実に検知する方法がないと不正な情報の読み込みに起因する被害が発生する。
【０００７】
また、特許文献２に記載の２次元コード認証装置は、数学的に安全性が保証された認証アルゴリズムに基づいているものではないため、改ざんされ得る可能性があるという問題がある。加えて、かかる２次元コード認証装置は、２次元コード利用者を認証する機能を有していないため、ユーザ認証を必要とする取引やアクセスには適さないという問題もある。
【０００８】
更に、ＩＣカードにおいても、サイドチャネル攻撃などの攻撃手法により、ＩＣカードに格納されている個人情報等を盗み読みし、悪意ある第三者が正当な所有者に「なりすます」ことによる被害が発生するという問題がある。
【０００９】
本発明は、上記の課題を解決するためになされたものであり、デジタル署名型２次元コード生成装置、デジタル署名型２次元コード認証装置、デジタル署名型２次元コード生成方法、デジタル署名型２次元コード認証方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、本発明の第１の観点に係るデジタル署名型２次元コード生成装置は、
所定の情報をシンボルの分布パターンによって表現する情報領域と、誤りを訂正するための訂正情報をシンボルの分布パターンによって表現する訂正領域と、を合併したコード語領域を備えるデジタル署名型２次元コードを生成するためのデジタル署名型２次元コード生成装置であって、
２次元コードを読み取り、該２次元コードのコード語領域よりシンボル群を取得する手段と、
認証するための秘密鍵と、前記２次元コードのシンボル群から算出したハッシュ値と共に、楕円曲線を用いたデジタル署名アルゴリズムに従って、デジタル署名に相当する署名値を算出する手段と、
前記コード語領域において所定位置のシンボルと前記署名値のシンボル表現との排他的論理和を算出し、前記所定位置のシンボルを前記排他的論理和に置換することにより、前記署名値を前記所定位置に埋め込んだ前記デジタル署名型２次元コードを生成する手段と、
を備えることを特徴とする
【００１１】
前記デジタル署名型２次元コード生成装置において、
前記署名値は、前記２次元コードのシンボル群から算出したハッシュ値、有限体上の楕円曲線のベースポイント、前記ベースポイントの位数、所定の乱数、公開鍵、及び秘密鍵と共に、楕円曲線を用いたデジタル署名アルゴリズムに従って求められる、
ことを特徴とする。
【００１２】
前記デジタル署名型２次元コード生成装置において、
前記秘密鍵は、デジタル署名型２次元コードの認証にあっては、乱数アルゴリズムによって生成された乱数を用い、また、デジタル署名型２次元コード利用者の本人確認にあっては、当該個人を特定できる固有識別子と紐づいた数字列を用いる、
ことを特徴とする。
【００１３】
上記目的を達成するため、本発明の第２の観点に係るデジタル署名型２次元コード認証装置は、
前記デジタル署名型２次元コードを読み込んで取得した受信語の誤り訂正処理を遂行することによって、復号語を取得する手段と、
前記受信語のシンボル表現と前記復号語のシンボル表現との排他的論理和を算出することによって、前記デジタル署名型２次元コードの前記所定位置に埋め込まれた前記署名値を取得する手段と、
前記署名値の取得値を用い、楕円曲線を用いたデジタル署名アルゴリズムに従って算出した第１判別値と前記署名値の一つの取得値とが合致するか否か判別することにより、デジタル署名型２次元コードに関する偽造・改ざんを検知する手段と、
を備えることを特徴とする。
【００１４】
前記デジタル署名型２次元コード認証装置において、
前記第１判別値は、前記署名値の取得値、前記復号語を用いて復元した２次元コードのシンボル群より算出したハッシュ値、公開鍵、楕円曲線のベースポイント、及び前記ベースポイントの位数と共に、楕円曲線を用いたデジタル署名アルゴリズムに従って求められる、
ことを特徴とする。
【００１５】
上記目的を達成するため、本発明の第３の観点に係るデジタル署名型２次元コード認証装置は、第２の観点に係るデジタル署名型２次元コード認証装置において、更に、
デジタル署名型２次元コード利用者の本人確認を行うもので、本人を特定する固有識別子を用い、前記固有識別子と紐づいた秘密鍵と前記ベースポイントとの積から算出した第２判別値と、前記署名値の取得値と、が合致するか否か判別することにより、当該本人であることを認証する手段と、
を備えることを特徴とする。
【００１６】
上記目的を達成するため、本発明の第４の観点に係る２次元コード生成方法は、
所定の情報をシンボルの分布パターンによって表現する情報領域と、誤りを訂正するための訂正情報をシンボルの分布パターンによって表現する訂正領域とをデ備えるデジタル署名型２次元コード生成方法であって、
２次元コードを読み取り、前記２次元コードからシンボル群を取得するステップと
認証するための秘密鍵と前記２次元コードのシンボル群より算出したハッシュ値と共に、楕円曲線を用いたデジタル署名アルゴリズムに従って、デジタル署名に相当する署名値を算出するステップと、
前記署名値のシンボル表現と前記コード語領域の所定位置にあるシンボルとの排他的論理和を算出し、前記所定位置のシンボルを前記排他的論理和に置換することにより、前記署名値を埋め込んだ前記デジタル署名型２次元コードを生成するステップと、
を備えることを特徴とする。
【００１７】
上記目的を達成するため、本発明の第５の観点に係るプログラムは、
所定の情報をシンボルの分布パターンによって表現する情報領域と、誤りを訂正するための訂正情報をシンボルの分布パターンによって表現する訂正領域とを備える２次元コード生成装置のコンピュータに、
２次元コードを読み取り、前記２次元コードからシンボル群を取得する手順と、
認証するための秘密鍵と前記２次元コードのシンボル群より算出したハッシュ値と共に、楕円曲線を用いたデジタル署名アルゴリズムに従って、デジタル署名に相当する署名値を算出する手順と、
楕円曲線を用いたデジタル署名アルゴリズムに従って、認証するための秘密鍵と取得した前記シンボルとからデジタル署名に相当する署名値を算出する手順と、
前記署名値のシンボル表現と前記コード語領域の所定位置にあるシンボルとの排他的論理和を算出し、前記所定位置のシンボルを前記排他的論理和に置換することにより、前記署名値を埋め込んだ前記デジタル署名型２次元コードを生成する手順と、
を実行させる。
【発明の効果】
【００１８】
本発明によれば、デジタル署名型２次元コードに関する偽造・改ざんの検知にあたって、サーバなどの外部装置を用いる必要がなく、従って、スマートフォンなどの端末機器単独でかかるコードに関する不正を調べることができるため、手軽で安価に検知を行うことが可能になる。
【００１９】
また、例えば、ｅコマースでは、スマートフォンを使い、ディスプレイ上に表示されたＱＲコードより関連するウェブサイトのＵＲＬ情報を取得することが多い。しかし、ＵＲＬ情報が改ざんされている場合、本来とは異なるウェブサイトに誘導される危険性があるが、本発明によれば、デジタル署名型２次元コードを使用することで、そのコードの不正を検知することができるため、未然にそのような危険性を防ぐことができる。
【００２０】
本発明によれば、個人情報はデジタル署名型２次元コードに直接格納されていないため、個人情報の漏えいの危険性が少なく、従って、安全に個人認証ができるデジタル署名型２次元コード生成装置とデジタル署名型２次元コード認証装置とを提供することができる。
【図面の簡単な説明】
【００２１】
【図１】２次元コードの構成例を示す図である。
【図２】デジタル署名型２次元コード生成装置の構成を示すブロック図である。（第１及び第２実施形態）
【図３】署名値の埋め込み手順を説明するための模式図である。
【図４】デジタル署名型２次元コード認証装置の構成を示すブロック図である。（第１実施形態）
【図５】埋め込まれた署名値の取得手順を説明するための模式図である。
【図６】デジタル署名型２次元コード生成装置の詳細を示すフローチャートである。（第１実施形態及び第２実施形態）
【図７】デジタル署名型２次元コード認証処理の詳細を示すフローチャートである。（第１実施形態）
【図８】デジタル署名型２次元コード認証装置の構成を示すブロック図である。（第２実施形態）
【図９】デジタル署名型２次元コードによる個人認証処理の詳細を示すフローチャートである。（第２実施形態）
【発明を実施するための形態】
【００２２】
（第１実施形態）
以下、本発明の第１実施形態について説明する。２次元コードとしてＱＲコード（登録商標、以下同様）を例示して図面を参照しながら詳細に説明するが、本発明はこれに限定されるものではなく、２次元コードは、データマトリックス、アズテックコード、マキシコード、などといった他の２次元コードであってもよい。
【００２３】
図１は、本実施形態における埋め込み対象の２次元コードの構成例を示す図である。
【００２４】
２次元コード１００は、図１に示すように、白いセルと黒いセルの配列パターンによって情報を表現しており、３つの位置検出パターン１０４Ａ、１０４Ｂ、１０４Ｃ、コード語領域１０６、タイミングセル１０８、形式情報１０９、及び型番情報１１０などを備えている。図１には一部のセルと一部のシンボル（シンボルは８個のセルより構成される単位）しか描かれていないが、実際はコード語領域１０６及び型番情報１１０の部分にもシンボル及びセルが分布している。
【００２５】
タイミングセル１０８は、位置検出パターン１０４Ａ，１０４Ｂ、及び１０４Ｃ間に、直線状に並べられたセルの基準パターンとして配置されている。このタイミングセル１０８は、各データセル位置の指標として用いられる。
【００２６】
形式情報１０９は、位置検出パターン１０４Ａの近傍に配置されており、コード語領域１０６内に記録されるコード語のフォーマットについて、予め規定されたマスクパターン情報と誤り訂正レベル情報を示すものであり、また、型番情報１１０は、バージョンが７型以上の２次元コードに配置されているもので、予め規定されたバージョン情報を示すものである。２次元コードには、バージョンとして１〜４０型の規格があり、各バージョンとも４つの誤り訂正レベルＬ，Ｍ，Ｑ、Ｈ（ＬからＨへと順に誤り訂正能力は高くなる）が用意されている。
【００２７】
バージョンの型は、シンボルの総数に対応して決まる。なお、１シンボルには２５６通りのセルパターンが存在するため、１シンボルには０〜２５５の整数値（以下、シンボル値という）を対応させることができる。また、誤り訂正レベル（Ｌ，Ｍ，Ｑ，Ｈ）は、全シンボルのうち読み取れないシンボルを許容する割合の高さ、すなわち許容欠損率の高さに対応している。それぞれのレベルの許容欠損率は、誤り訂正レベルＬが約７％、誤り訂正レベルＭが約１５％、誤り訂正レベルＱが約２５％、誤り訂正レベルＨが約３０％である。本実施の形態では、バージョン７（シンボルの総数は１９６個ある）で誤り訂正レベルＨの２次元コードを用いており、このバージョンと誤り訂正レベルをもつ２次元コードを「７−Ｈの２次元コード」で表す。なお、本発明は、７−Ｈの２次元コードに限定されるものではなく、他のバージョン及び他の誤り訂正レベルをもつ２次元コードであってもよい。
【００２８】
コード語領域１０６は、情報データを表すシンボル群と誤り訂正の機能をもつシンボル群から構成され、７−Ｈの２次元コードの場合、コード語領域１０６の全シンボル群は、５つのブロックＢ１〜Ｂ５に分けられている。各ブロックは、データ部分のシンボル列（以下、データコードという）と、データコードをＲＳ（リード・ソロモン）符号化することにより得られる誤り訂正部分のシンボル列（以下、ＲＳコードという）から構成され、データコードとＲＳコードを連接してコード語を形成する。従って、コード語領域１０６には５個のコード語が存在する。そのうち、４個のブロックＢ１〜Ｂ４は、各ブロックともデータコードが１３個のシンボルとＲＳコードが２６個のシンボルの計３９個のシンボル（コード語のシンボル長は３９）で構成されており、残りの１つのブロックＢ５は、データコードが１４個のシンボルとＲＳコードが２６個のシンボルの計４０個のシンボル（コード語のシンボル長は４０）で構成されている。
【００２９】
図２は、本実施形態におけるデジタル署名型２次元コード生成装置１０の構成例を示すブロック図である。
【００３０】
本実施形態では、楕円曲線を用いたデジタル署名アルゴリズムとして、広く利用されている楕円曲線デジタル署名アルゴリズム（以下、ＥＣＤＳＡという）による署名を例示しているが、本発明はこれに限定されるものではなく、他のデジタル署名アルゴリズムであってもよい。例えば、楕円ElGamal署名アルゴリズムや楕円Schnorr署名アルゴリズムなども本発明に適用可能である。
【００３１】
デジタル署名型２次元コード生成装置１０は、２次元コード１００に署名値を埋め込んで、デジタル署名型２次元コードを生成するもので、２次元コードデコード部１、署名値算出部２、及びデジタル署名型２次元コード生成部３、を備えている。これら各部は、専用のハードウェア装置で構成してもよいし、或いはソフトウェアプログラムに基づく１または複数のプロセッサの機能として実現してもよい。
【００３２】
デジタル署名型２次元コード生成装置１０は、例えば、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、及びハードディスクなどから構成される汎用コンピュータによって実現される。
【００３３】
２次元コードデコード部１は、２次元コード１００を撮像して読み取るもので、２次元コード１００を取り込むＣＣＤ（Charge Couple Device）などの受光素子を含んで構成されている。２次元コードデコード部１は、読み取った２次元コードの形式情報を復号して型番を決定し、マスク処理の解除を遂行する。次に、コード配置規則に従って２次元コード１００のコード語領域１０６のシンボル群をブロックごとに取り込み、全部で１９６個のシンボルからなるシンボル群を取得する。
【００３４】
署名値算出部２は、１６０ビット長の素数で決められる有限体ＧＦ及び有限体ＧＦ上の楕円曲線Ｅ（例えば、ｙ＾２＝ｘ＾３＋ａｘ＋ｂ）をもとに、ベースポイントＧとその１６０ビット長の位数ｎを定め、乱数ｄ（０＜ｄ＜ｎ）を生成して、公開鍵Ｑ＝ｄＧ（Ｍｏｄ  ｎ）を算出ことによって、ＥＣＤＳＡの実行環境を定める。この場合、公開鍵Ｑは１６０ビット長の２組の整数値を成分にもつ。本発明は上記ビット長に限定されるものではなく、必要とされるセキュリティ強度に応じて決めてよい。
【００３５】
署名値算出部２は、まず、２次元コードデコード部１で取得した前記１９６個のシンボルを所定の順に連接して１つのシンボル列を生成する。次に、ハッシュ関数ＳＨＡ−２５６を用いて、連接した前記シンボル列に対するハッシュ値ｈを算出する。本発明はこのハッシュ関数に限定されるものではなく、ＳＨＡ−２２４など他のハッシュ関数でもよい。
【００３６】
署名値算出部２は、ＥＣＤＳＡの前記実行環境、前記ハッシュ値ｈ、及び秘密鍵ｋと共に、ＥＣＤＳＡに従って以下の（数１）にある手順で１６０ビット長の署名値ｃとｕを算出する。前記秘密鍵ｋは、認証する対象がデジタル署名型２次元コード自身にあっては、乱数アルゴリズムによって生成された乱数を用い、また、本人確認にあっては、当該本人を特定できる固有識別子と所定の関係で紐づいた数字列（該固有識別子と該数字列は１：１に対応）を用いる。前記固有識別子は、当該本人の暗証番号やパスワードの他、指紋、掌紋、虹彩、顔、静脈、音声、耳型、ＤＮＡ情報などの当該本人の生体データでもよい。
（数１）
2016006945.tif 000003
【００３７】
デジタル署名型２次元コード生成部３は、まず、図３に示すように、コード語領域１０６のブロック群において、１つのブロックに８個所、全ブロックで計４０個所の位置Ｐｉ（ｉ＝１〜４０）を予め任意に定め、前記位置Ｐｉ（ｉ＝１〜４０）に対応するシンボルのシンボル値ａｉ（ｉ＝１〜４０）を連接して１つのシンボル列Ｄ１：ａ１ａ２・・・ａ４０を生成する。次に、算出した１６０ビット長の前記署名値ｃ及びｕの各々のシンボル表現、ｃ：ｂ１ｂ２・・・ｂ２０及びｕ：ｂ２１ｂ２２・・・ｂ４０（ｂｉ（ｉ＝１〜４０）は前記位置Ｐｉにおけるシンボル値）を連接して、シンボル列Ｄ２：ｂ１ｂ２・・・ｂ４０を生成する。そして、シンボル列Ｄ１とシンボル列Ｄ２との排他的論理和（ａｉ＾ｂｉ）（ｉ＝１〜４０）を算出し、前記所定位置Ｐｉ（ｉ＝１〜４０）のシンボル値ａｉ（ｉ＝１〜４０）を前記排他的論理和（ａｉ＾ｂｉ）（ｉ＝１〜４０）に置換することによって２次元コードに前記署名値ｃ及びｕを埋め込む。続いて、コード語領域１０６のマスク処理を遂行してデジタル署名型２次元コード２００を生成する。このようにして生成したデジタル署名型２次元コード２００は、プリンタで印刷したり、ＬＣＤ（Liquid Crystal Display）に表示するなどして出力する。
【００３８】
図４は、本実施形態におけるデジタル署名型２次元コード認証装置２０を示すブロック図である。
【００３９】
デジタル署名型２次元コード認証装置２０は、デジタル署名型２次元コード２００に埋め込まれた署名値に基づいて、デジタル署名型２次元コード２００に関して偽造・改ざんがあるか否か判別するもので、ＣＰＵ，ＲＯＭ，ＲＡＭ，及びハードディスクドライブなどから構成される汎用コンピュータによって実現される。
【００４０】
デジタル署名型２次元コード認証装置２０は、図４に示すように、デジタル署名型２次元コードデコード部４、署名値取得部５、及びデジタル署名型２次元コード認証部６、を備えている。これら各部は、専用のハードウェア装置で構成してもよいし、或いはソフトウェアプログラムに基づく１または複数のプロセッサの機能として実現してもよい。
【００４１】
デジタル署名型２次元コードデコード部４は、デジタル署名型２次元コード２００を撮像して読み取るもので、デジタル署名型２次元コード２００を取り込むＣＣＤなどの受光素子を含んで構成されている。
【００４２】
デジタル署名型２次元コードデコード部４は、読み取ったデジタル署名型２次元コード２００の形式情報を復号して型番を決定し、マスク処理の解除を遂行する。次に、コード配置規則に従って、前記デジタル署名型２次元コード２００のコード語領域１０６のシンボル群をブロックごとに読み込み、誤りを含み得るコード語（以下、受信語という）を取得する。        
次に、リード・ソロモン符号の復号アルゴリズム（例えば、ユークリッド復号法）を用いて、各受信語（５個ある）の誤り訂正処理を遂行し、復号語を取得する。
【００４３】
署名値取得部５は、前記署名値算出部２におけるハッシュ値の算出と同様にして、５個の前記復号語のシンボル表現を所定の順に連接してシンボル列（１９６個のシンボルからなる）を生成し、前記シンボル列に対するハッシュ値ｈ’を取得する。続いて、図５に示すように、５個の前記受信語において、前記所定位置Ｐｉ（ｉ＝１〜４０）のシンボルに対応するシンボル値を連接したシンボル列Ａ：ｃ１ｃ２・・・ｃ４０と、５個の前記復号語において、前記所定位置Ｐｉ（ｉ＝１〜４０）のシンボルに対応するシンボル値を連接したシンボル列Ｂ：ｄ１ｄ２・・・ｄ４０と、の排他的論理和を算出する。前記排他的論理和（ｃｉ＾ｄｉ）（ｉ＝１〜４０）より、埋め込まれた前記署名値の取得値のシンボル表現、ｃ’：（ｃ１＾ｄ１）（ｃ２＾ｄ２）・・・（ｃ２０＾ｄ２０）とｕ’：（ｃ２１＾ｄ２１）（ｃ２２＾ｄ２２）・・・（ｃ４０＾ｄ４０）とを取得する。
【００４４】
デジタル署名型２次元コード認証部６は、ＥＣＤＳＡとデジタル署名型２次元コードに埋め込まれた署名値の取得値を利用して、デジタル署名型２次元コードに関する偽造・改ざんの有無を調べ、デジタル署名型２次元コードの正当性を判別する。
【００４５】
デジタル署名型２次元コード認証部６は、署名値の前記取得値ｃ’とｕ’、前記ハッシュ値ｈ’、及びＥＣＤＳＡの前記実行環境である有限体上の楕円曲線のベースポイントＧ、前記ベースポイントの位数ｎ、所定の乱数ｄ（０＜ｄ＜ｎ）、公開鍵Ｑ（＝ｄＧ）を用いて、ＥＣＤＳＡに従って以下の（数２）にあるように第１判別値ｃｐを算出し、
（数２）
2016006945.tif 000004
前記第１判別値ｃｐと前記取得値ｃ’が合致すれば、デジタル署名型２次元コード２００に偽造・改ざんはないと判別して、認証結果を“ＯＫ”とし、また、前記第１判別値ｃｐと前記取得値ｃ’が合致しなければ、デジタル署名型２次元コード２００に偽造・改ざんがあるとして、認証結果を“ＮＧ”とする。
【００４６】
次に、上記構成を備えるデジタル署名型２次元コード生成装置１０及びデジタル署名型２次元コード認証装置２０の動作について、図面を参照しつつ説明する。
【００４７】
図６は、デジタル署名型２次元コード生成装置が実行するデジタル署名型２次元コード生成処理を示すフローチャートである。
【００４８】
デジタル署名型２次元コード生成装置１０は、２次元コードデコード部１が埋め込み対象の２次元コードを読み込んだことに応答して、図６に示すデジタル署名型２次元コード生成処理を開始する。デジタル署名型２次元コード生成処理において、２次元コードデコード部１は、マスク解除処理が遂行された２次元コードのコード語領域１０６において５個のブロックより合計１９６個のシンボルを読み込む（ステップＳ１）。
【００４９】
次に、デジタル署名型２次元コード生成装置１０は、署名値算出部２で、ハッシュ関数ＳＨＡ−２５６を用いて、前記１９６個のシンボルより生成したシンボル列に対するハッシュ値ｈを算出する。そして、ＥＣＤＳＡの前記実行環境のもとに、ハッシュ値ｈ、及び秘密鍵ｋと共に、ＥＣＤＳＡに従って前記（数１）にあるように、１６０ビット長の署名値ｃとｕを算出する（ステップＳ２）。
【００５０】
続いて、デジタル署名型２次元コード生成装置１０は、デジタル署名型２次元コード生成部３で、コード語領域の各ブロックにおいて、８個のシンボル位置を予め任意に定めることによって、全ブロックで合計４０個所のシンボル位置Ｐｉ（ｉ＝１〜４０）を指定する（ステップＳ３）。
【００５１】
そして、デジタル署名型２次元コード生成装置１０は、デジタル署名型２次元コード生成部３で、前記署名値ｃとｕのシンボル表現を所定の順に連接したシンボル列（４０シンボル長）と、前記コード語領域１０６のブロック群から選定した前記シンボル位置Ｐｉ（ｉ＝１〜４０）のシンボルを所定の順に連接したシンボル列と、の排他的論理和を算出し、４０シンボル長の排他的論理和を取得する（ステップＳ４）。
【００５２】
続いて、デジタル署名型２次元コード生成装置１０は、デジタル署名型２次元コード生成部３で、前記コード語領域１０６において前記シンボル位置Ｐｉ（ｉ＝１〜４０）にある４０個のシンボルを前記排他的論理和に置換し、そして、コード語領域のマスク処理を遂行することによって、デジタル署名型２次元コードを生成する（ステップＳ５）。
【００５３】
図７は、本実施形態におけるデジタル署名型２次元コード認証装置２０が実行するデジタル署名型２次元コードの認証処理を示すフローチャートである。
【００５４】
デジタル署名型２次元コード認証装置２０は、デジタル署名型２次元コード生成装置１０が生成したデジタル署名型２次元コード２００を画像データとして読み込んだことに応答して、図７に示すデジタル署名型２次元コードの認証処理を開始する。デジタル署名型２次元コード認証処理において、デジタル署名型２次元コード認証装置２０は、デジタル署名型２次元コードデコード部４で、取込んだデジタル署名型２次元コード２００のコード語領域１０６のブロックをコード配置規則に従ってデコードすることにより、コード語領域１０６にある１９６個のシンボルを取得する（ステップＳ６）。
【００５５】
そして、デジタル署名型２次元コード認証装置２０は、デジタル署名型２次元コードデコード部４で、前記デジタル署名型２次元コード２００のマスク解除処理を遂行する。続いて、デジタル署名型２次元コード２００のコード語領域１０６から５個の受信語を取得する。次に、リード・ソロモン符号の復号アルゴリズム（例えば、ユークリッド復号法）を用いて、各受信語の誤り訂正処理を遂行し、復号語を取得する（ステップＳ７）。
【００５６】
続いて、デジタル署名型２次元コード認証装置２０は、署名値取得部５で、５個の前記受信語において、前記所定位置Ｐｉ（ｉ＝１〜４０）に対応するシンボル値を連接したシンボル列Ａ：ｃ１ｃ２・・・ｃ４０と、５個の前記復号語において、前記所定位置Ｐｉ（ｉ＝１〜４０）に対応するシンボル値を連接したシンボル列Ｂ：ｄ１ｄ２・・・ｄ４０と、の排他的論理和（ｃｉ＾ｄｉ）（ｉ＝１〜４０）を算出する。前記排他的論理和（ｃｉ＾ｄｉ）（ｉ＝１〜４０）のなかに零と異なるものがあるか否かを調べる。もし、前記排他的論理和（ｃｉ＾ｄｉ）（ｉ＝１〜４０）のなかに、零と異なるものがあれば（誤りあり）、次のステップＳ９へ進む。また、もし、前記排他的論理和（ｃｉ＾ｄｉ）（ｉ＝１〜４０）がすべて零であれば（誤りなし）、認証結果を“ＮＧ”としてステップＳ１１へ進む（ステップＳ８）。
【００５７】
そして、デジタル署名型２次元コード認証装置２０は、署名値取得部５で、前記排他的論理和（ｃｉ＾ｄｉ）（ｉ＝１〜４０）より、署名値ｃ’とｕ’のシンボル表現ｃ’：（ｃ１＾ｄ１）（ｃ２＾ｄ２）・・・（ｃ２０＾ｄ２０）とｕ’：（ｃ２１＾ｄ２１）（ｃ２２＾ｄ２２）・・・（ｃ４０＾ｄ４０）とを取得する。続いて、ステップＳ７で取得した５個の復号語のシンボル表現を所定の順に連接し、連接した前記シンボル列に対するハッシュ値ｈ’を算出する（ステップ９）。
【００５８】
次に、デジタル署名型２次元コード認証装置２０は、デジタル署名型２次元コード認証部６で、取得した署名値の前記取得値ｃ’とｕ’、前記ハッシュ値ｈ’、及びＥＣＤＳＡの前記実行環境である有限体上の楕円曲線のベースポイントＧ、前記ベースポイントの位数ｎ、前記所定の乱数ｄ、公開鍵Ｑ（＝ｄＧ）と共に、ＥＣＤＳＡに従って、前記（数２）にあるように第１判別値ｃｐを算出する（ステップＳ１０）。
【００５９】
そして、デジタル署名型２次元コード認証装置２０は、デジタル署名型２次元コード認証部６で、前記第１判別値ｃｐと前記取得値ｃ’が合致すれば、認証結果を“ＯＫ”とし、前記第１判別値ｃｐと前記取得値ｃ’が合致しなければ、認証結果を“ＮＧ”とする（ステップＳ１１）。
【００６０】
（第２実施形態）
以下に示す本発明の第２実施形態は、デジタル署名型２次元コードを用いた個人認証に関するもので、図１、図２、図８、及び図９を参照して説明する。本実施形態においても２次元コードとして図１のＱＲコードを例示して説明するが、本発明はこれに限定されるものではなく、２次元コードは、データマトリックス、アズテックコード、マキシコード、などといった他の２次元コードであってもよい。また、デジタル署名型２次元コード認証装置２０の構成部と同一のデジタル署名型２次元コード認証装置３０の構成部には、デジタル署名型２次元コード認証装置２０と同一符号を付し、その説明を省略すると共に、第２実施形態におけるフローチャートにおいても、第１実施形態と同様の動作については同一符号を付し、その説明を省略する。
【００６１】
図２は、本実施形態におけるデジタル署名型２次元コード生成装置１０の構成例を示すブロック図である。これは、第１実施形態におけるブロック図と同様であるが、署名値算出部２における秘密鍵が第１実施形態とは異なる。すなわち、第１実施形態における秘密鍵は、乱数アルゴリズムによって生成された乱数を用い、第２実施形態における秘密鍵は、個人を特定する固有識別子に紐づく数字列を用いる。
【００６２】
図８は、本実施形態におけるデジタル署名型２次元コード認証装置３０の構成例を示すブロック図である。
【００６３】
デジタル署名型２次元コード認証装置３０における認証処理は、入力された固有識別子に基づいて、本人確認を行うもので、ＣＰＵ，ＲＯＭ，ＲＡＭ，及びハードディスクドライブなどから構成される汎用コンピュータによって実現される。
【００６４】
デジタル署名型２次元コード認証装置３０における認証処理は、デジタル署名型２次元コードに偽造・改ざんが検知されない場合に遂行され、本人を特定する固有識別子と、デジタル署名型２次元コード２００から取得した署名値と、に基づいて個人認証を行うもので、デジタル署名型２次元コード読取部４、署名値取得部５、デジタル署名型２次元コード認証部６、固有識別子入力部７、及び個人認証部８、を備えている。これらの各部は、専用のハードウェア装置で構成してもよいし、或いはソフトウェアプログラムに基づく１または複数のプロセッサの機能として実現してもよい。
【００６５】
固有識別子入力部７は、本人を特定するための固有識別子ｓを取り込む。該固有識別子は、デジタル署名型２次元コード生成装置１０の署名値算出部２において、デジタル署名型２次元コードの生成に用いた固有識別子と同様のものであり、以下に示すように、両者が合致する場合にのみ本人確認ができる。
【００６６】
個人認証部８は、固有識別子、ＥＣＤＳＡの前記実行環境である楕円曲線のベースポイントＧ及び前記ベースポイントの位数ｎと共に、前記固有識別子と所定の関係で紐づいた秘密鍵ｋ’を用い、楕円曲線上において、ｋ’とＧとの積ｋ’Ｇ（ｍｏｄｎ）のｘ成分である第２判別値ｃｑを算出する。
【００６７】
個人認証部８は、前記第２判別値ｃｑと署名値の前記取得値ｃ’とが合致するか否か判別し、両者が合致していれば、当該本人と判別して認証結果を“ＯＫ”とし、両者が合致していなければ当該本人でないと判別して認証結果を“ＮＧ”とする。
【００６８】
次に、デジタル署名型２次元コード認証装置３０の動作について、図面を参照しつつ説明する。
【００６９】
図９は、前記デジタル署名型２次元コード認証装置３０が実行する認証処理を示すフローチャートである。
【００７０】
デジタル署名型２次元コード認証装置３０は、ステップＳ１〜ステップＳ１０までの処理を遂行し、デジタル署名型２次元コード認証部６において、デジタル署名型２次元コードに偽造・改ざんがないと判別されたときに応答して個人認証処理を開始する（ステップＳ１１）。
【００７１】
そして、デジタル署名型２次元コード認証装置３０は、固有識別子入力部７で、本人を特定する固有識別子を入力する。入力された固有識別子は、所定の変換則に従って秘密鍵ｋ’に変換する（ステップＳ１２）。
【００７２】
続いて、デジタル署名型２次元コード認証装置３０は、個人認証部８で、前記秘密鍵ｋ’、ＥＣＤＳＡの前記実行環境である楕円曲線の前記ベースポイントＧ及び前記ベースポイントの位数ｎを用い、楕円曲線上において積ｋ’Ｇ（ｍｏｄｎ）のｘ成分である第２判別値ｃｑを算出する（ステップＳ１３）。
【００７３】
次に、デジタル署名型２次元コード認証装置３０は、個人認証部８で、前記第２判別値ｃｑと署名値の前記取得値ｃ’とが合致するか否か判別し、両者が合致すれば、当該本人として、認証結果を“ＯＫ”とする。また、両者が合致しなければ、当該本人でないとして、認証結果を“ＮＧ”とする（ステップ１４）。
【００７４】
そして、デジタル署名型２次元コード認証装置３０は、個人認証部８で、ステップＳ１４から得られた認証結果を出力する（ステップ１５）。
符号の説明
【００７５】
１・・・・２次元コードデコード部
２・・・・署名値算出部
３・・・・デジタル署名型２次元コード生成部
４・・・・デジタル署名型２次元コードデコード部
５・・・・署名値取得部
６・・・・デジタル署名型２次元コード認証部
７・・・・固有識別子入力部
８・・・・個人認証部
１０・・・・デジタル署名型２次元コード生成装置（第１実施形態及び第２実施形態）
２０・・・・デジタル署名型２次元コード認証装置（第１実施形態）
３０・・・・デジタル署名型２次元コード認証装置（第２実施形態）
１００・・・２次元コード
２００・・・デジタル署名型２次元コード
【図６】
2016006945.tif 000005
【図７】
2016006945.tif 000006
【図９】
2016006945.tif 000007
【図１】
2016006945.tif 000008
【図２】
2016006945.tif 000009
【図３】
2016006945.tif 000010
【図４】
2016006945.tif 000011
【図５】
2016006945.tif 000012
【図８】
2016006945.tif 000013