(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】6031729
(24)【登録日】2016年11月4日
(45)【発行日】2016年11月24日
(54)【発明の名称】RFIDタグコード生成装置およびその方法、認証装置およびその方法、ならびにプログラム
(51)【国際特許分類】
H04L 9/32 20060101AFI20161114BHJP
G09C 1/00 20060101ALI20161114BHJP
G06K 7/10 20060101ALI20161114BHJP
G06K 7/00 20060101ALI20161114BHJP
【FI】
H04L9/00 675B
G09C1/00 640D
G06K7/10 200
G06K7/00 008
【請求項の数】12
【全頁数】17
(21)【出願番号】特願2015-92619(P2015-92619)
(22)【出願日】2015年4月30日
【審査請求日】2015年12月22日
【権利譲渡・実施許諾】特許権者において、権利譲渡・実施許諾の用意がある。
(73)【特許権者】
【識別番号】515300099
【氏名又は名称】合同会社QRテクノロジー
(72)【発明者】
【氏名】先名 健一
【審査官】
青木 重徳
(56)【参考文献】
【文献】
特開2005−124137(JP,A)
【文献】
特開2006−270342(JP,A)
【文献】
特開2007−80272(JP,A)
【文献】
特開2016−6945(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06K 7/00
G06K 7/10
H04L 9/32
G09C 1/00
(57)【特許請求の範囲】
【請求項1】
RFIDタグに書き込むタグコードを生成するRFIDタグコード生成装置であって、
入力される、情報データをN個(Nは1以上の任意の整数)のブロックデータに分割し、前記ブロックデータ毎に誤り訂正符号化によって生成される誤り訂正データを連接してN個の符号語を生成する誤り訂正符号化部と、
前記N個の符号語を連接し、前記連接した符号語と前記RFIDタグに固有の第1の識別情報とを更に連接してハッシュ値を算出するハッシュ値算出部と、
前記ハッシュ値算出部で算出されたハッシュ値を用いて所定のデジタル署名アルゴリズムにしたがいデジタル署名値を算出するデジタル署名処理部と、
前記誤り訂正符号化部から出力される前記N個の符号語における所定位置のブロックデータを、前記デジタル署名処理部で算出されるデジタル署名値と前記ブロックデータとの排他的論理和を算出して得られる値に置換し、前記所定位置に埋め込みタグコードを生成するタグコード生成部と、を備えたことを特徴とするRFIDタグコード生成装置。
【請求項2】
前記デジタル署名処理部は、
前記ハッシュ値、所持者に固有の第2の識別情報、有限体上の楕円曲線のベースポイント、前記ベースポイントの位数、乱数、公開鍵、および秘密鍵と共に、前記楕円曲線デジタル署名アルゴリズムにしたがい前記デジタル署名値を算出することを特徴とする請求項1記載のRFIDタグコード生成装置。
【請求項3】
請求項1または2記載のタグコード生成装置において、
前記RFIDタグに書き込まれた前記タグコードを読み取り、前記第1の識別情報を取得するとともに、前記読み取ったタグコードを前記N個のブロックデータに分割し、分割された各ブロックデータの誤り訂正処理を行なって復号し、N個の復号語と、誤り値と、誤り位置と、を取得する誤り訂正処理部と、
前記N個の復号語と前記N個のブロックデータとの排他的論理和によって前記所定位置に埋め込まれた前記デジタル署名値を取得するデジタル署名値取得部と、
前記N個の復号語を連接し、前記連接した復号語と取得した前記第1の識別情報とを連接してハッシュ値を算出し、前記算出されたハッシュ値を用いて前記所定のデジタル署名アルゴリズムにしたがい算出される第1の判別値と、前記デジタル署名値取得部が取得したデジタル署名値とを照合して前記読み取ったタグコードの認証を行うデジタル署名処理部と、
を備えたことを特徴とする認証装置。
【請求項4】
前記デジタル署名処理部は、
前記第1の判別値を、前記ハッシュ値、前記デジタル署名値、公開鍵、有限体上の楕円曲線のベースポイント、及び前記ベースポイントの位数と共に、前記楕円曲線デジタル署名アルゴリズムにしたがい算出することを特徴とする請求項3記載の認証装置。
【請求項5】
外部から入力される第2の識別情報と、前記楕円曲線上のベースポイントを用いて算出される第2の判別値と、前記デジタル署名値取得部において前記取得した前記デジタル署名値とを照合して前記RFIDタグ所有者の認証を行う個人認証部と、
を備えたことを特徴とする請求項3または4記載の認証装置。
【請求項6】
前記個人認証部は、
前記第2の判別値を、前記第2の識別情報と有限体上の楕円曲線のベースポイントとの積により算出することを特徴とする請求項5記載の認証装置。
【請求項7】
RFIDタグに書き込むタグコードを生成するRFIDタグコード生成方法であって、
入力される、情報データをN個(Nは1以上の任意の整数)のブロックデータに分割し、前記ブロックデータ毎に誤り訂正符号化によって生成される誤り訂正データを連接してN個の符号語を生成する第1のステップと、
前記N個の符号語を連接し、前記連接した符号語と前記RFIDタグに固有の第1の識別情報とを更に連接してハッシュ値を算出する第2のステップと、
前記第2のステップで算出されたハッシュ値を用いて所定のデジタル署名アルゴリズムにしたがいデジタル署名値を算出する第3のステップと、
前記第1のステップで生成され出力される前記N個の符号語における所定位置のブロックデータを、前記第3のステップで算出されるデジタル署名値と前記ブロックデータとの排他的論理和を算出して得られる値に置換し、前記所定位置に埋め込みタグコードを生成する第4のステップと、
を有することを特徴とするRFIDタグコード生成方法。
【請求項8】
請求項7記載のRFIDタグコード生成方法において、
前記RFIDRFIDタグに書き込まれた前記タグコードを読み取り、前記第1の識別情報を取得するとともに、前記読み取ったタグコードを前記N個のブロックデータに分割し、分割された各ブロックデータの誤り訂正処理を行なって復号し、N個の復号語と、誤り値と、誤り位置と、を取得する第5のステップと、
前記N個の復号語と前記N個のブロックデータとの排他的論理和によって前記所定の位置に埋め込まれた前記デジタル署名値を取得する第6のステップと、
前記N個の復号語を連接し、前記連接した復号語と取得した前記第1の識別情報とを連接してハッシュ値を算出し、前記算出されたハッシュ値を用いて前記所定のデジタル署名アルゴリズムにしたがい算出される第1の判別値と、前記デジタル署名値取得手段が取得したデジタル署名値とを照合して前記読み取ったタグコードの認証を行う第7のステップと、を有することを特徴とする認証方法。
【請求項9】
請求項8記載の認証方法において、
外部から入力される前記第2の識別情報を取得と、有限体上の前記楕円曲線のベースポイントとの積により算出される第2の判別値と、前記デジタル署名値取得手段が取得した前記デジタル署名値とを照合して前記RFIDタグ所有者の認証を行う第8のステップと、
を有することを特徴とする認証方法。
【請求項10】
RFIDタグに書き込むタグコードを生成するRFIDタグコード生成装置のコンピュータに、
入力される、情報データをN個(Nは1以上の任意の整数)のブロックデータに分割し、前記ブロックデータ毎に生成される誤り訂正符号を連接してN個の符号語を生成する第1の手順と、
前記N個の符号語を連接し、前記連接した符号語と前記RFIDタグに固有の第12の識別情報とを連接してハッシュ値を算出する第2の手順と、
前記第2の手順で算出されたハッシュ値を用いて所定のデジタル署名アルゴリズムにしたがいデジタル署名値を算出する第3の手順と、
前記第1の手順で生成され出力される前記N個の符号語における所定位置のブロックデータを、前記第3の手順で算出されるデジタル署名値と前記ブロックデータとの排他的論理和を算出して得られる値に置換し、前記所定位置に埋め込みタグコードを生成する第4の手順と、
を実行させるRFIDタグコード生成プログラム。
【請求項11】
請求項10記載のRFIDタグコード生成プログラムにおいて、
前記RFIDタグコードを認証する認証装置のコンピュータに、
前記RFIDタグに書き込まれた前記タグコードを読み取り、前記第1の識別情報を取得するとともに、前記読み取ったタグコードを前記N個のブロックデータに分割し、分割された各ブロックデータの誤り訂正処理を行なって復号し、N個の復号語と、誤り値と、誤り位置と、を取得する第5の手順と、
前記N個の復号語と前記N個のブロックデータとの排他的論理和によって前記所定の位置に埋め込まれた前記デジタル署名値を取得する第6の手順と、
前記N個の復号語を連接し、前記連接した復号語と取得した前記第1の識別情報とを連接してハッシュ値を算出し、前記算出されたハッシュ値を用いて前記所定のデジタル署名アルゴリズムにしたがい算出される第1の判別値と、前記デジタル署名値取得手段が取得したデジタル署名値とを照合して前記読み取ったタグコードの認証を行う第7の手順と、
を実行させる認証プログラム。
【請求項12】
請求項11に記載の認証プログラムにおいて、
前記コンピュータに、
入力される前記第2の識別情報を取得し、前記第2の識別情報と有限体上の楕円曲線のベースポイントとの積により算出される第2の判別値と、前記デジタル署名値取得手段が取得した前記デジタル署名値とを照合して前記RFIDタグ所持者の認証を行う第8の手順、を更に実行させる認証プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、RFIDタグコード生成装置およびその方法、認証装置およびその方法、ならびにプログラムに関する。
【背景技術】
【0002】
ID(識別)情報等を有するRFID(Radio Frequency IDentification)タグは、読取り/書込み機(リーダ/ライタ)と電磁波または電磁誘導を使用して近距離の無線通信を行い、小売・物流などを識別したり、或いは管理したりすることに利用されている。その適用範囲の広さに加え、IT技術の基盤要素としての側面も持つため注目が高まっている。また、RFIDタグの一種であるNFC(Near Field Communication)タグは、2002年に近接無線距離通信規格のタグとして登録され、NFCリーダ/ライタの搭載されたスマートフォンに適したソフトウェア開発も進んでいる。
【0003】
RFID(NFC)タグは様々な利用形態があり、身近な存在では、社員証にRFIDタグを内蔵させて社員の勤務の管理に使用されたり、或いは、商品にRFIDタグを取り付けて小売・流通や在庫のより効率的な管理に使用されたりしている。また、ポスターや看板にURL(Uniform Resource Locator)を記録したNFCタグを埋め込んでおき、ユーザがこのNFCタグにスマートフォン等を用いてアクセスすることでより詳細な情報を受信することができ、また、最終的にはインターネットによる取引まで誘導するような使い方も可能である。このように、RFID(NFC)タグには多様な利用形態があるが、例えば、URLに悪意あるサイトへ誘導する仕組みを入れておくことも可能で、タグの身近な利用においてもセキュリティが必要とされることが多い(非特許文献1参照)。また別の問題として、RFIDタグとリーダ/ライタとのデータ通信において、電波干渉などによる電波擾乱によってデータに誤りが発生するため、その対策もとられている(特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【非特許文献1】「組込みシステムの脅威と対策に関するセキュリティ技術マップの調査(第3章)」(2007 年 5 月、IPA報告書)
【特許文献1】特開2009−44648号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、上記したRFIDタグにセキュリティのある機能を組み込む場合、RFIDタグが持つセキュアなメモリを利用することになる。この場合、セキュアなメモリにアクセスするためのアクセスコードが必要であり、しかも、RFIDタグの種類によってそのアクセス方法が異なり、処理を煩雑にしている。したがって、アプリケーション開発者は手軽にセキュアなメモリを使用することができないという問題を有しており、開発に不便を強いられていた。また、別の問題として、RFIDタグとRFIDタグリーダ/ライタとのデータ通信において、電波の散乱回折や外部ノイズ等による通信データの誤りに対処するために、複数の通信チャンネルやデータの再送システム等を利用する対策が取られているが、このために、データの通信速度が低下し、システムを構築するためのコストもかかるという問題がある。
【0006】
本発明は、上記した課題を解決するためになされたものであり、使用制限がなされたセキュアなメモリに依存することなく、個人認証を含めた極めて高いセキュリティを持たせることができ、更に、手軽に通信データの信頼性も高めることができる、RFIDタグコード生成装置およびその方法、認証装置およびその方法、ならびにプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
上記した課題を解決するために本発明のRFIDタグコード生成装置は、RFIDタグに書き込むタグコードを生成するRFIDタグコード生成装置であって、入力される、会社名や住所などの情報データをN個(Nは1以上の任意の整数)のブロックデータに分割し、前記ブロックデータ毎に誤り訂正符号化によって生成される誤り訂正データを連接してN個の符号語を生成する誤り訂正符号化部と、前記N個の符号語を連接し、前記連接した符号語と前記RFIDタグに固有の識別情報(第1の識別情報)とを連接してハッシュ値を算出するハッシュ値算出部と、前記ハッシュ値算出部で算出されたハッシュ値を用いて所定のデジタル署名アルゴリズムにしたがいデジタル署名値を算出するデジタル署名処理部と、前記誤り訂正符号化部から出力される前記N個の符号語において所定位置のブロックデータを、前記デジタル署名処理部で算出されるデジタル署名値と前記ブロックデータとの排他的論理和を算出して得られる値に置換し、前記所定位置に埋め込みタグコードを生成するタグコード生成部と、を備えたことを特徴とする。
【0008】
本発明のRFIDタグコード生成装置において、前記デジタル署名処理部は、所持者に固有の識別情報(第2の識別情報)、前記ハッシュ値、有限体上の楕円曲線のベースポイント、前記ベースポイントの位数、乱数、公開鍵、および秘密鍵と共に、楕円曲線デジタル署名アルゴリズムにしたがい前記デジタル署名値を算出することを特徴とする。
【0009】
本発明の認証装置は、前記RFIDタグコード生成装置において、前記RFIDタグに書き込まれた前記タグコードを読み取り、前記第1の識別情報を取得するとともに、前記読み取ったタグコードを前記N個のブロックデータに分割し、分割された各ブロックデータの誤り訂正処理を行なって復号し、N個の復号語と、誤り値と、誤り位置と、を取得する誤り訂正処理部と、前記N個の復号語と前記N個のブロックデータとの排他的論理和によって前記所定位置に埋め込まれた前記デジタル署名値を取得するデジタル署名値取得部と、前記N個の復号語を連接し、前記連接した復号語と取得した前記第1の識別情報とを連接してハッシュ値を算出し、前記算出されたハッシュ値を用いて前記所定のデジタル署名アルゴリズムにしたがい算出される判別値(第1の判別値)と、前記デジタル署名値取得部が取得した前記デジタル署名値とを照合して前記読み取ったタグコードの認証を行うデジタル署名処理部と、を備えたことを特徴とする。
【0010】
本発明の認証装置において、前記デジタル署名処理部は、前記第1の判別値を、前記ハッシュ値、前記デジタル署名値、公開鍵、有限体上の楕円曲線のベースポイント、及び前記ベースポイントの位数と共に、前記楕円曲線デジタル署名アルゴリズムにしたがい算出することを特徴とする。
【0011】
本発明の認証装置において、固有識別子取り込み部は、外部から入力される、RFIDタグ所持者に固有の第2の識別情報を取得し、前記第2の識別情報と有限体上の前記楕円曲線を用いて算出される判別値(第2の判別値)と、前記デジタル署名値取得部が取得したデジタル署名値とを照合して前記RFIDタグ所持者の認証を行う個人認証部と、を備えたことを特徴とする。
【0012】
本発明の認証装置において、前記個人認証部は、前記第2の判別値を、前記第2の識別情報と有限体上の楕円曲線のベースポイントとの積により算出することを特徴とする。
【0013】
本発明のRFIDタグコード生成方法は、RFIDタグに書き込むタグコードを生成するRFIDタグコード生成方法であって、入力される、会社名や住所などの情報データをN個(Nは1以上の任意の整数)のブロックデータに分割し、前記ブロックデータ毎に誤り訂正符号化によって生成される誤り訂正データを連接してN個の符号語を生成する第1のステップと、前記N個の符号語を連接し、前記連接した符号語と前記RFIDタグに固有の第1の識別情報とを更に連接してハッシュ値を算出する第2のステップと、前記第2のステップで算出されたハッシュ値を用いて所定のデジタル署名アルゴリズムにしたがいデジタル署名値を算出する第3のステップと、前記第1のステップで生成され出力される前記N個の符号語における所定位置のブロックデータを、前記第3のステップで算出されるデジタル署名値と前記ブロックデータとの排他的論理和を算出して得られる値に置換し、前記所定位置に埋め込みタグコードを生成する第4のステップと、を有することを特徴とする。
【0014】
本発明の認証方法は、前記RFIDタグコード生成方法において、前記RFIDタグに書き込まれた前記タグコードを読み取り、前記第1の識別情報を取得するとともに、前記読み取ったタグコードを前記N個のブロックデータに分割し、分割された各ブロックデータの誤り訂正処理を行なって復号し、N個の復号語と、誤り値と、誤り位置と、を取得する第5のステップと、前記N個の復号語と前記N個のブロックデータとの排他的論理和によって前記所定の位置に埋め込まれた前記デジタル署名値を取得する第6のステップと、前記N個の復号語を連接し、前記連接した復号語と取得した前記第1の識別情報とを連接してハッシュ値を算出し、前記算出されたハッシュ値を用いて前記所定のデジタル署名アルゴリズムにしたがい算出される第1の判別値と、前記デジタル署名値取得手段が取得した前記デジタル署名値とを照合して前記読み取ったタグコードの認証を行う第7のステップと、を有することを特徴とする。
【0015】
本発明の認証方法において、入力される前記第2の識別情報を取得し、前記第2の識別情報と有限体上の楕円曲線のベースポイントとの積により算出される第2の判別値と、前記デジタル署名値取得手段が取得したデジタル署名値とを照合して前記RFIDタグ所持者の認証を行う第8のステップと、を有することを特徴とする。
【0016】
本発明のRFIDタグコード生成プログラムは、RFIDタグに書き込むタグコードを生成するRFIDタグコード生成装置のコンピュータに、入力される、会社名や住所などの情報データをN個(Nは1以上の任意の整数)のブロックデータに分割し、前記ブロックデータ毎に誤り訂正符号化によって生成される誤り訂正データを連接してN個の符号語を生成する第1の手順と、前記N個の符号語を連接し、前記連接した符号語と前記RFIDタグに固有の第1の識別情報とを更に連接してハッシュ値を算出する第2の手順と、前記第2の手順で算出されたハッシュ値を用いて所定のデジタル署名アルゴリズムにしたがいデジタル署名値を算出する第3の手順と、前記第1の手順で生成され出力される前記N個の符号語において所定位置のブロックデータを、前記第3のステップで算出されるデジタル署名値と前記ブロックデータとの排他的論理和を算出して得られる値に置換し、前記所定位置に埋め込みタグコードを生成する第4の手順と、を実行させることを特徴とする。
【0017】
本発明の認証プログラムは、前記RFIDタグコード生成プログラムにおいて、前記RFIDタグコードを認証する認証装置のコンピュータに、前記RFIDタグに書き込まれた前記タグコードを読み取り、前記第1の識別情報を取得するとともに、前記読み取ったタグコードを前記N個のブロックデータに分割し、分割された各ブロックデータの誤り訂正処理を行なって復号し、N個の復号語と、誤り値と、誤り位置と、を取得する第5の手順と、前記N個の復号語と前記N個のブロックデータとの排他的論理和によって前記所定の位置に埋め込まれた前記デジタル署名値を取得する第6の手順と、前記N個の復号語を連接し、前記連接した復号語と取得した前記第1の識別情報とを連接してハッシュ値を算出し、前記算出されたハッシュ値を用いて前記所定のデジタル署名アルゴリズムにしたがい算出される第1の判別値と、前記デジタル署名値取得手段が取得した前記デジタル署名値とを照合して前記読み取ったタグコードの認証を行う第7の手順と、を実行させることを特徴とする。
【0018】
本発明の認証プログラムにおいて、前記コンピュータに、入力される前記第2の識別情報を取得し、前記第2の識別情報と有限体上の楕円曲線のベースポイントとの積により算出される第2の判別値と、前記デジタル署名値取得手段が取得した前記デジタル署名値とを照合して前記RFIDタグ所持者の認証を行う第8の手順、を更に実行させることを特徴とする。
【発明の効果】
【0019】
本発明によれば、使用制限がなされたセキュアなメモリに依存することなく、個人認証を含めた極めて高いセキュリティを持たせることができ、更に、通信データの信頼性も高めることができる、RFIDタグコード生成装置およびその方法、認証装置およびその方法、ならびにプログラムを提供することができる。
【図面の簡単な説明】
【0020】
【
図1】本発明の実施の形態に係るRFIDタグコード生成装置の構成ブロック図である。
【
図2】RFIDタグのユーザメモリに割り付けられるデータ構造の一例を示す図である。
【
図3】RFIDタグコード生成の処理手順を示すフローチャートである。
【
図4】デジタル署名とデジタル署名を埋め込むデータの配列の一例を示す図である。
【
図5】本発明の実施の形態に係る認証装置の構成ブロック図である。
【
図6】RFIDタグコード認証の処理手順を示すフローチャートである。
【
図7】個人認証による本人確認の処理手順を示すフローチャートである。
【発明を実施するための形態】
【0021】
以下、添付図面を参照して、本発明を実施するための形態(以下、本実施形態と言う)について詳細に説明する。なお、実施形態の説明の全体を通して同じ要素には同じ番号または符号を付している。
【0022】
(RFIDタグコード生成装置の構成)
図1は、本実施形態に係るRFIDタグコード生成装置10の構成を示すブロック図である。
図1に示すように、本実施形態に係るRFIDタグコード生成装置10は、誤り訂正符号化部11と、ハッシュ値算出部12と、ECDSA(デジタル署名)処理部13と、タグコード生成部14とを含み、構成される。
【0023】
誤り訂正符号化部11は、入力される、会社名や住所などの情報データをN個(Nは1以上の任意の整数)のブロックデータに分割し(誤り訂正処理の効率化のための分割)、当該ブロックデータ毎に誤り訂正符号化によって生成される誤り訂正データを連接してN個の符号語を生成する機能を有する。ハッシュ値算出部12は、誤り訂正符号化部11により誤り訂正データが連接されたN個の符号語を連接し、当該連接した符号語と、例えば、RFIDタグ製造番号等のRFIDタグに固有の第1の識別情報とを更に連接してハッシュ値を算出する機能を有する。
【0024】
ECDSA処理部13は、ハッシュ値算出部12で算出されたハッシュ値から、楕円曲線デジタル署名アルゴリズム(ECDSA:Elliptic Curve Digital Signature Algorithm)等、所定のデジタル署名アルゴリズムにしたがい、デジタル署名値を算出する機能を有する。タグコード生成部14は、誤り訂正符号化部11から出力されるN個の符号語において所定位置のブロックデータを、ECDSA処理部13で算出されたデジタル署名値と前記ブロックデータとの排他的論理和を算出して得られる値に置換し、上記の所定位置に埋め込んでRFIDタグコードを生成する機能を有する。
【0025】
一般に、RFIDタグのユーザメモリ領域に書き込まれたデータは経年劣化によって読み出しエラーが発生し得ること、また、タグのデータをタグリーダで読み取る際に電波の干渉やノイズ等により読み取りエラーが発生し得ることが知られている。このため、従来のRFIDタグデータにCRC(Cyclic Redundancy Check)などの冗長コードを付加してデータ誤り検出機能を実装することがあるが、これらはRFIDタグとRFIDタグリーダ/ライタ間のデータ通信の品質向上のためのものである。以下に説明する本実施形態では、RFIDタグとRFIDタグリーダ/ライタ間のデータ通信の信頼性を高めると共に、データに埋め込むデジタル署名データの秘匿性を高め、更に、故意、或いは不注意などによるデジタルデータの欠損等を防ぐ意味でもデータの誤り訂正符号化を行うものとする。
【0026】
このため、本実施形態に係るRFIDタグコード生成装置10は、例えば、
図2にRFIDタグのメモリ構造を示すように、タグコードを書き込むデータ領域としてnバイト長のデータ領域をN個(Nは1以上の任意の整数)だけ割り当てる。ここでは各々をブロックと呼び、符号語を形成する。具体的に、N個の各ブロック(符号語)は、ndバイト長の情報データ(記録したい本来のデータ)と、それに対応するneバイト長の誤り訂正データからなり、符号長nはnd+neに等しい。ここで、符号語は、誤り訂正符号化部11により、情報データと誤り訂正符号の生成多項式をもとに生成されたコードである。ここでは、誤り訂正符号として、リード・ソロモン(RS)符号を例示するが、RS符号に代えて、BCH(Bose Chaudhuri Hocquenghem)符号、ゴレイ符号、ファイア符号、差集合巡回符号、畳み込み符号、ターボ符号等で代替してもよい。
【0027】
また、ブロックの個数Nは、RFIDタグのユーザメモリの大きさと符号長をもとに決める。なお、各ブロックは独立しており、それぞれが一つの符号語(コードワード)を形成している。
【0028】
(RFIDタグコード生成処理)
図3に、本実施形態に係るRFIDタグコード生成装置10によるRFIDタグコード生成の処理手順がフローチャートで示されている。
図3に示すように、本実施形態に係るRFIDタグコード生成装置10は、まず、誤り訂正符号化部11が、情報データを取り込む(ステップS101)。そして、取り込んだ情報データをN個(Nは1以上の任意の整数)のブロックデータに分割し(誤り訂正処理の効率化のための分割)、当該ブロックデータ毎にRS符号化によって生成される誤り訂正データを連接してN個の符号語を生成する(ステップS102)。
【0029】
次に、ハッシュ値算出部12は、RFIDタグ製造番号等のRFIDタグに固有のID(第1の識別情報)を取得すると共に、N個のブロック(符号語)を連接し、更に、その連接したデータとRFIDタグ固有のIDとを連接したデータのハッシュ値hを、ハッシュ関数SHA−256を用いて算出する(ステップS103)。なお、ハッシュ関数は、SHA−256に制限されず、SHA−224等、他のハッシュ関数で代替してもよい。
【0030】
次に、ECDSA処理部13は、RFIDタグのユーザメモリ領域に書き込むタグコードのデジタル署名値を作成する(ステップS104)。ここでは、楕円曲線デジタル署名アルゴリズムによるデジタル署名を用いることとするが、例えば、DSA署名アルゴリズムや楕円ElGamal署名アルゴリズム、楕円Schnorr署名アルゴリズム等を使用してもよい。ECDSA処理部13は、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組の整数値からなる。
【0031】
なお、楕円曲線は、有限体及び上記したビット長に制限されるものではなく、必要とされるセキュリティ強度に応じて決めてよい。続いて、ECDSA処理部13は、以下に示す数(1)に示す楕円曲線デジタル署名アルゴリズムにしたがい、署名値cと、uとを算出する。ここで、前記dは、秘密鍵であり、乱数を用いて任意に設定し、かつパラメータkは、RFIDタグの所持者のパスワードや、指紋、掌紋、虹彩、静脈、DNA情報(生体情報)等の所持者にユニークな識別子(第2の識別情報)等によってRFIDタグごとに定めるものとする。なお、個人認証を目的としない場合は、パラメータkに乱数を用いる。
【0033】
次に、タグコード生成部14は、ECDSA処理部13が生成したデジタル署名値を前記N個のブロックに埋め込む(ステップS105)。タグコード生成部14は、例えば、
図4に示すように、前記デジタル署名値(cとu)のバイト配列aの配列要素を(ai)(i=1,2,・・・,m)とし、埋め込む所定位置として、前記N個のブロック(N個の符号語)の総バイト数nNバイトよりaの配列数mに等しい配列数をランダムに選定する。ここで、選定された前記バイト配列bの配列要素を(bi)(i=1,2,・・・,m)とし、(bi)(i=1,2,・・・,m)をバイト配列aとバイト配列bとの排他的論理和(ai^bi)(i=1,2,・・・,m)で置換することにより、バイト配列aのバイト配列bへの埋め込みa^bを行う。最後に、このような手順で生成したタグコードをRFIDタグライタでRFIDタグに書き込むことによりタグコード生成部14によるタグコード生成処理が完了する(ステップS106)。
【0034】
(認証装置の構成)
図5に本実施形態に係る認証装置20の構成が示されている。
図5に示すように、本実施形態に係る認証装置20は、誤り訂正処理部21と、デジタル署名値取得部22と、ECDSA処理部23と、固有識別子取り込み部24と、個人認証部25と、を含み構成される。
【0035】
誤り訂正処理部21は、RFIDタグに書き込まれたタグコードを読み取り、RFIDタグに固有のID(第1の識別情報)を取得するとともに、読み取ったタグコードをN個のブロックデータに分割し、分割された各ブロックデータの誤り訂正処理を行なって復号し、N個の復号語と、誤り値と、誤り位置と、を取得する機能を有する。デジタル署名値取得部22は、誤り訂正処理部21により出力されるN個の復号語と読み取った前記N個のブロックデータとの排他的論理和によって所定の位置に埋め込まれたデジタル署名値を取得する機能を有する。
【0036】
ECDSA処理部23は、誤り訂正処理部21により出力されるN個の復号語を連接し、ここで連接した復号語と、取得したRFIDタグに固有のID(第1の識別情報)とを連接してハッシュ値を算出し、当該算出されたハッシュ値を用いて楕円曲線デジタル署名アルゴリズムにしたがい算出される判別値(第1の判別値)と、デジタル署名値取得部22が取得したデジタル署名値とを照合して読み取ったタグコードの認証を行う機能を有する。このときECDSA処理部23は、第1の判別値を、ハッシュ値、デジタル署名値、公開鍵、有限体上の楕円曲線のベースポイント、及びベースポイントの位数と共に、楕円曲線デジタル署名アルゴリズムにしたがい算出する。
【0037】
更に、固有識別子取込み部24は、外部から入力されるRFIDタグ所持者に固有の識別子(第2の識別情報)を取り込む。個人認証部25は、前記第2の識別情報と楕円曲線上のベースポイントとの積により算出される判別値(第2の判別値)と、デジタル署名値取得部22が取得した前記デジタル署名値とを照合して所持者認証を行う機能を有する。
【0038】
(RFIDタグコード認証処理)
図6に、本実施形態に係る認証装置20によるRFIDタグコードの真正性の認証の処理手順が、
図7に、RFIDタグ所持者の個人認証による本人確認処理手順が、それぞれフローチャートで示されている。RFIDタグコードを読み取るタグリーダは、RFIDタグコードを電磁的に読み込み、これを契機にタグリーダによるRFIDタグコードの真正性の認証処理が開始される。
【0039】
図6によれば、認証装置20は、まず、誤り訂正処理部21が、RFIDタグに固有のID(第1の識別情報)とタグコードを取得し(ステップS201)、次に、読み込んだタグコードの受信データを所定のブロックに対応してN個に分割する。このとき分割された各ブロックデータ(各ブロックが受信語)を、RS符号の復号アルゴリズム(例えば、ユークリッド復号法)にしたがって復号し、復号語と、誤り値、及び誤り位置とを取得する(ステップS202)。なお、排他的論理和によって埋め込まれたデジタル署名値は、前記復号アルゴリズムにより、誤りとして検出される。
【0040】
次に、デジタル署名値取得部22は、
図4に示した所定の埋め込み位置を参照して埋め込まれたデジタル署名値を取得する。具体的に、ブロックに埋め込まれた値の受信値a’^b’(プライムは受信値を示す)は、受信語の復号処理によって元の値b’に復元される。そこで、デジタル署名値取得部22は、復元値b’ と前記埋め込まれた値の受信値a’^b’との排他的論理和演算を行うことによって、(a’^b’)^b’=a’のようにデジタル署名値a’ (具体的にはc’とu’)を取得することができる。なお、前記デジタル署名値a’は前記誤り値から取得してもよい。
【0041】
そして、前記ブロックデータの所定位置(埋め込み位置)に誤りが無い場合(ステップS203“YES”)、ECDSA処理部23は、RFIDタグの認証を不成立と判定し、その旨を、表示等により外部に報告する(ステップS207)。そして、所定位置(埋め込み位置)に誤りがある場合(ステップS203“NO”)、N個の復号語を連接し、更にその連接したデータとRFIDタグに固有のID(第1の識別情報)を連接したデータに対して、ハッシュ関数SHA−256を用いてハッシュ値h’を算出する。そして、ECDSA処理部23は、以下の数(2)で示すアルゴリズムにしたがい、判別値cp(第1の判別値)を算出する(ステップS204)。
【0043】
ECDSA処理部23は、ここで算出された判別値(第1の判別値)と、デジタル署名値取得部22が取得した前記デジタル署名値とを比較し(ステップS205)、cp=c’であれば(ステップS205“YES”)、RFIDタグコードは、偽造、改ざん、または複製がない(RFIDタグコード認証が成立)と判定し、その旨を、表示等により外部に報知する(ステップS206)。一方、cp≠c’であれば(ステップS205“NO”)、RFIDタグコードに偽造、改ざん、または複製ありと判定し(RFIDタグコード認証不成立)、その旨を、表示等により外部に報知する(ステップS207)。
【0044】
以上説明のように、本実施形態に係る認証装置20によれば、RFIDタグコード認証機能を提供でき、この認証機能は、RFIDタグに書き込む誤り訂正符号とタグの固有IDに対する楕円曲線デジタル署名アルゴリズムによるデジタル署名をRFIDタグコードに実装することで実現することができる。この認証機能は、RFIDタグコードの偽造、改ざんの検知の他に、RFIDタグの複製も検知することができる。それは、RFIDタグコードを他のRFIDタグに複製したとしても、このタグコードが複製されたRFIDタグの固有IDは複製元の固有IDとは異なるため、楕円曲線デジタル署名アルゴリズムによってその不正が検出されるためである。なお、多くのRFIDタグには、7または8バイト長の固有IDが割り当てられ、RFIDタグと固有IDは1対1対応になっている。また、多くのRFIDタグのハードウエア自体も偽造が出来ない仕組みになっている。
【0045】
(個人認証処理)
次に、
図7のフローチャートを参照してRFIDタグ所持者の本人確認の処理手順について説明する。ここでは、デジタル署名値取得部22が取得したデジタル署名の取得値をc’、およびu’とする。本実施形態に係る認証装置20は、
図6のRFIDタグコード認証処理のステップS201〜S205と同様の処理手順であるステップS301〜S305を実行し、RFIDタグコードに不正がないと判定された場合(ステップS305“YES”)、個人認証部25を起動してRFIDタグ所持者の本人確認のための認証を行う。
【0046】
このとき、固有識別子取込み部24は、まず、入力されるRFIDタグ所持者のパスワード或いは生体データ等の固有識別子(第2の識別情報)を取り込み、個人認証部25へ出力する(ステップS306)。この入力値をkqとする。これを受けて個人認証部25は、ECDSA実行環境のもとで、所定の楕円曲線上において、以下に示す数(3)の計算を行うことにより、判別値cq(第2の判別値)を算出する(ステップS307)。
【0048】
続いて、個人認証部25は、デジタル署名値取得部22が取得したデジタル署名の取得値c’と、算出された判別値cq(第2の判別値)とを比較する(ステップS308)。そして、比較結果、cq=c’であれば(ステップS308“YES”)、入力された固有の識別子を持つRFIDタグ所持者を本人であると認証して(本人確認成立)その旨を、表示等により外部に報知し(ステップS309)、一方、cq≠c’であれば(ステップS308“NO”)、RFIDタグ所持者は本人でないと認証し(本人確認不成立)、その旨を、表示等により外部に報知する(ステップS310)。
【0049】
以上説明のように本実施形態に係る認証装置20によれば、RFIDタグ所持者の本人確認を行うために、個人認証部25は、デジタル署名値に陰に含まれる所持者固有の識別子を用いる。この場合、数(1)で示す楕円曲線デジタル署名アルゴリズムにおいて、パラメータkをRFIDタグ所持者のパスワード、或いは所持者の生体データ等の固有識別子とすることで生成されたデジタル署名値を用いる。このとき、所持者パスワード、或いは生体データは、デジタル署名値には直接含まれていないため、RFIDタグ所持者の個人情報の漏洩を防止することができる。
【0050】
なお、前記固有識別子としてパスワードを利用する場合、その長さは高々10桁程度であるため、デジタル署名値から容易にパスワードが解読されるリスクがある。しかし、例えば、
図4に示すように、埋め込む位置と埋め込む順序をランダムに選択することによってRFIDタグコードから不正にデジタル署名値を抽出することが困難になる。例えば、単純計算として、210バイトのタグコードからデジタル署名の一つの値c(20バイト)を抽出するには10
46通りの順列総数から一つを特定しなければならず、これはブルートフォースアタックではほぼ解読できないことを示している。この意味でも、誤り訂正符号化と排他的論理和による埋め込み操作が必要であり、このデータ加工によってパスワードは安全にRFIDタグに記録される。
【0051】
このように、本実施形態に係る認証装置20によれば、RFIDタグの所持者認証も可能であり、この機能は、楕円曲線デジタル署名アルゴリズムの特質を用いて実現するもので、デジタル署名生成過程において、任意の乱数の代わりに固有識別子としてRFIDタグ所持者のパスワードや生体データを入力する。生成されたデジタル署名にはパスワード等の個人情報は直接含まれていないため、RFIDタグコードからデジタル署名値を不正に入手できたとしても、個人情報を取得するには、更に、楕円曲線上の離散対数問題を解く必要があり、現実的に解読は不可能である。
【0052】
本実施形態に係る認証装置20が持つ機能は、例えば、RFIDタグ読み取り機能が搭載されたスマートフォンにRFIDタグコードリーダ/ライタのアプリケーションをインストールすることによりスマートフォン上で実現される。本発明の方法を用いれば、RFIDタグのアクセス権限の必要なセキュアなメモリを使用せずに、ユーザメモリ領域とRFIDタグコードのリーダ/ライタアプリケーションによってRFIDタグコード認証と所持者認証の両方を行うことが可能であり、更に、この2つの認証をオフラインでも実行することができる。したがって、ネットワークや外部接続コンピュータから個人情報が漏洩する危惧もなく、安全に実現可能である。また、RFIDタグデータの誤り訂正符号化は、RFIDタグデータへのデジタル署名値の埋め込み/抽出を可能にするばかりでなく、RFIDタグとRFIDコードリーダ/ライタとのデータ通信の信頼性も高める。
【0053】
ところで、ICカードのセキュリティ上の生命線ともいえる本人認証は、現在、PIN(Personal Identification Number)と呼ばれるICカードの所持者を特定する文字列によって行われている。PINは、所謂、ICカードにおけるパスワードに該当するものであり、所持者本人が記憶しておりICカードを利用する際に入力する。例えば、ICカードを使ったPKI(Public Key Infrastructure)認証を行う場合、ICカードのチップに格納された秘密鍵は、通常、利用者のパスワードをベースにした暗号鍵で暗号化されており、そのままでは利用できない。この秘密鍵を利用するためには利用者がPINを入力することにより当該PINをICカード内部で認証し、本人であることが認証されると秘密鍵が活性化してPKI認証が可能な状態になる。これは既存の方法として周知である。
【0054】
上記した既存の方法によれば、秘密鍵はICチップに格納されており、簡潔にいうと、利用者本人のパスワードを暗号化したものが秘密鍵と一致するか否かにより本人確認をしている。しかしながら、この方法は、パスワードを暗号化したものを秘密鍵として格納し、秘密鍵を用いて本人確認ができた時点でデータの認証に移行する。これに対し、本発明は、RFIDタグを対象とはしているが、本実施形態に係る認証装置20は、パスワード等からデジタル署名の一部を生成しているため、データの真正性の認証と本人認証が共通のデータ、つまりデジタル署名を用いて行われ、この一体化により効率よく認証処理を遂行できる。また、既存の方法では、パスワードを暗号化する際に暗号化鍵(ICチップに格納)が使われ、その暗号化鍵は本人認証時にも使われるため、その厳重な管理が求められる。その点、本発明では本人認証においてそのような暗号化鍵を必要としない。
【0055】
以上説明のように本実施形態に係るRFIDタグコード生成装置10は、RFIDタグのユーザメモリ領域にタグコードを書き込むタグライタを、認証装置20は、そのRFIDタグに書き込まれたタグコードを読み込むタグリーダを備えた、例えば、スマートフォン上で実現され、RFIDタグに書き込むタグコードに、個人認証を含めた極めて高いセキュリティと誤り訂正符号化による信頼性を与えることができる。具体的に、使用制限がかかるセキュアなメモリを必要とせずに、自由にセキュリティのあるRFIDタグのアプリケーションを開発することができる。例えば、NFCタグに記録されているURLを利用するとき、それが正規のURLか否かに不安を覚えるが、本実施形態に係る認証装置20により、その真正性がオフラインにおいて即座に判定されるため、安心してWeb(World Wide Web)サイトに接続することが可能になる。また、独自に個人商店レベルでも容易にセキュリティのあるRFIDタグをポイントサービスやプリペードカードなどに活用できる。例えば、RFIDタグにポイントサービスの機能を持たせる場合、システムとしての導入コストもランニングコスト(ネットワークやホストコンピュータなどが不要なため)も安価にでき、しかも高いセキュリティが保証される。また、RFIDタグデータの誤り訂正符号化は、RFIDタグとRFIDコードリーダ/ライタとのデータ通信の信頼性とタグコードの秘匿性も高める。
【0056】
(RFIDタグコード生成方法)
なお、本実施形態に係るRFIDタグコード生成方法は、例えば、
図1に示すRFIDタグコード生成装置10に適用され、RFIDタグに書き込むタグコードを生成するRFIDタグコード生成方法である。そして、その方法は、例えば、
図3にフローチャートで示すように、入力される、情報データをN個(Nは1以上の任意の整数)のブロックデータに分割し(誤り訂正処理の効率化のための分割)、前記ブロックデータ毎に誤り訂正符号化によって生成される誤り訂正データを連接してN個の符号語を生成する第1のステップ(S101,S102)と、前記N個の符号語を連接し、前記連接した符号語と前記RFIDタグに固有の第1の識別情報とを更に連接してハッシュ値を算出する第2のステップ(S103)と、前記第2のステップで算出されたハッシュ値を用いて所定のデジタル署名アルゴリズムにしたがいデジタル署名値を算出する第3のステップ(S104)と、前記第1のステップで生成され出力される前記N個の符号語における所定位置のブロックデータを、前記第3のステップで算出されるデジタル署名値と前記ブロックデータとの排他的論理和を算出して得られる値に置換し、前記所定位置に埋め込みタグコードを生成する第4のステップ(S105,S106)と、を有する。
【0057】
(認証方法)
また、本実施形態に係る認証方法は、例えば、
図5に示す認証装置20に適用される。そして、その認証方法は、例えば、
図6にフローチャート(RFIDタグコード認証)で示すように、前記RFIDタグコード生成方法において、前記RFIDタグに書き込まれた前記タグコードを読み取り、前記第1の識別情報を取得するとともに、前記読み取ったタグコードを前記N個のブロックデータに分割し、分割された各ブロックデータの誤り訂正処理を行なって復号し、N個の復号語と、誤り値と、誤り位置と、を取得する第5のステップ(S201,S202)と、前記N個の復号語と前記N個のブロックデータとの排他的論理和によって前記所定の位置に埋め込まれた前記デジタル署名値を取得する第6のステップ(S203,S204)と、前記N個の復号語を連接し、前記連接した復号語と取得した前記第1の識別情報とを連接してハッシュ値を算出し、前記算出されたハッシュ値を用いて前記所定のデジタル署名アルゴリズムにしたがい算出される第1の判別値と、前記デジタル署名値取得手段が取得したデジタル署名値とを照合して前記読み取ったタグコードの認証を行う第7のステップ(S205−S207)と、を有する。
【0058】
更に本発明の認証方法は、例えば、
図7にフローチャート(個人認証)で示すように、外部から入力される前記第2の識別情報を取得し、前記第2の識別情報と楕円曲線上のベースポイントとの積により算出される判別値(第2の判別値)と、取得した前記デジタル署名値とを照合してRFIDタグ所持者認証を行う第8のステップ(S306−S310)と、を有する。
【0059】
本実施形態に係るRFIDタグコード生成方法は、RFIDタグのユーザメモリ領域にタグコードを書き込むタグライタを備え、また、本実施形態に係る認証方法は、そのRFIDタグに書き込まれたタグコードを読み込むタグリーダを備えた、例えば、スマートフォン上で実現されるものであり、RFIDタグに書き込むタグコードに個人認証を含めた極めて高いセキュリティと誤り訂正符号化による信頼性と秘匿性を与えることができる。具体的に、使用制限がかかるセキュアなメモリを必要とせずに、自由にセキュリティのあるRFIDタグのアプリケーションを開発することができる。
【0060】
なお、本実施形態に係るプログラムも、タグライタと、タグリーダとを備えた、例えば、スマートフォンを、RFIDタグコード生成装置10、認証装置20として実現するものであり、スマートフォンの内蔵メモリに格納されたプログラムを逐次読み出し実行することにより、上記したタグコード生成機能および認証機能を実現する。このことにより、RFIDタグに書き込むタグデータに個人認証を含めた極めて高いセキュリティと誤り訂正符号化による信頼性と秘匿性を与えることができる。具体的に、使用制限がかかるセキュアなメモリを必要とせずに、自由にセキュリティのあるRFIDタグのアプリケーションを開発することができる。なお、本実施形態に係るプログラムが実装されるハードウエアは、スマートフォンに限らず、タグリーダ/ライタを備える情報機器全般で実現が可能である。
【0061】
以上、実施形態を用いて本発明を説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されないことは言うまでもない。上記実施形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。またその様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【符号の説明】
【0062】
10…RFIDタグコード生成装置、11…誤り訂正符号化部、12…ハッシュ値算出部、13…ECDSA(デジタル署名)処理部、14…タグコード生成部、20…認証装置、21…誤り訂正処理部、22…デジタル署名値取得部、23…ECDSA(デジタル署名)処理部、24…固有識別子取込み部、25…個人認証部
【要約】 (修正有)
【課題】使用制限がなされたセキュアなメモリに依存することなく、個人認証を含めた極めて高いセキュリティを持つRFIDタグコード生成装置を提供する。
【解決手段】RFIDタグコード生成装置10は、入力される情報データをN個のブロックデータに分割し、ブロックデータ毎に誤り訂正符号化により生成される誤り訂正データを付与してN個の符号語を生成する誤り訂正符号化部11と、N個の符号語を連接し、連接した符号語とRFIDタグに固有の第1の識別情報とを更に連接してハッシュ値を算出するハッシュ値算出部12と、算出されたハッシュ値を用いて所定のデジタル署名アルゴリズムに従いデジタル署名値を算出するECDSA処理部13と、N個の符号語における所定位置のブロックデータを、デジタル署名値とブロックデータとの排他的論理和を算出して得られる値に置換し、所定位置に埋め込んでタグコードを生成するタグコード生成部14とを備える。
【選択図】
図1