説明

正当性が保証されたIDの生成方法及び正当性保証RFIDタグ

【課題】
RFIDリーダ等,検証する側に秘密情報を持たせず,オフラインでID情報の正当性を検証し,且つ数百bitの情報しか送信することができない小型のRFIDタグでもID情報の正当性を保証するシステムを提供すること。
【解決手段】
ID情報の正当性を検証する為の電子署名値の一部を,IDとしても利用することにより,データ量を削減する。また,電子署名方式の代表的な一つであるSchnore署名を変形させた署名長の短い電子署名方式を用いることにより実現する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は,ID情報の正当性保証技術および電子署名生成・検証に関する。
【背景技術】
【0002】
RFID(Radio Frequency IDentification)は,ID情報を埋め込んだタグから,電波などを用いた近距離の無線通信によって情報をやりとりするものであり,食品や物品等の物流管理・トレーサビリティの分野から交通機関のIC乗車券や,社員証や学生証等,様々な分野において利用されている。
【0003】
また,正規の品物にRFIDタグを装着することにより,偽造品・模造品等の判別に用いるなど,セキュリティ用途への利用にも期待されている。このようにセキュリティ用途で用いる場合,そもそもRFIDタグそのものが,正当なRFIDタグ製造会社が製造したRFIDタグであるのかを判別する仕組みが望まれている。
【0004】
従来のRFIDタグのID情報の正当性を保証する技術では,正当なRFIDタグ製造会社が発行したRFIDタグのID情報を全てリスト化し,発行されたID情報であるかをオンラインで確認する方式(特許文献1)や,MAC(Message Authentication Code)や電子署名技術を用いて正しいID情報であるかを確認する方式(特許文献2)がある。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2002−140404号公報
【特許文献2】特開2002−024767号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
従来のID情報保証技術の一つであるオンラインでのリスト確認方式は,RFIDタグを検証する回数が増えるにつれ,ネットワークの負荷が高くなり,大規模実装には不向きである。また,MAC方式は,オフラインにて検証することもでき,大規模実装におけるネットワーク負荷等の問題を解決することができるが,その場合,RFIDリーダに検証用の秘密鍵を持たせなければならない。また,その鍵はシステム全体で共通であり,一度その鍵が漏洩するとシステム全体の安全性が低下する。
【0007】
故に,RFIDリーダ等,ID情報を検証する側に秘密情報を持たせず,オフラインでID情報の正当性を検証する仕組みが望まれている。一般的に公開鍵による電子署名を施せば,上記課題を解決することが可能であるが,通常用いられているRSA署名等は,安全性を考慮すると署名長が1024bit以上必要であり,例えば,数百bitの情報しか送信することができないような小型のRFIDタグに実装することはできない。
【0008】
それ故,RFIDリーダ側に秘密情報を持たせず,オフラインでID情報の正当性を保証し,且つ数百bitの情報しか送信することができないRFIDタグでもID情報の正当性を保証したい,という要求がある。
【課題を解決するための手段】
【0009】
本願発明は,数百bitの情報しか送信することができないRFIDタグであっても、RFIDリーダ等,検証する側に秘密情報を持たせず,すなわちオフラインでID情報の正当性を検証し,ID情報の正当性を保証する。
【0010】
具体的には,本発明は,ID情報の正当性を検証する為の情報(以下,検証値または必要に応じて署名値とも称する)の一部を,ID情報としても利用する。これにより,全体としては少ない情報量でありつつも、ID情報とそのID情報の正当性を保証するための情報を備えるRFIDタグを実現する。
【発明の効果】
【0011】
本発明によれば,署名値の一部をIDとしても利用することによりRFIDタグのデータサイズを小さくすることができる。それにより,数百bitのデータしか送信できない小型RFIDタグでも電子署名方式によりID情報の正当性を保証するシステムを提供することが可能となる。
【図面の簡単な説明】
【0012】
【図1】一実施形態における全体構成図である。
【図2】ID発行装置,検証装置,業務アプリケーション装置のハード構成例を示す図である。
【図3】RFIDタグのデータの内容を示す図である。
【図4】ID発行装置が管理するパラメータ及び当該パラメータを用いた署名方法と,検証装置が管理するパラメータ及び当該パラメータを用いた検証方法を示す図である。
【図5】一実施形態におけるID・署名生成に関する処理を説明するワークフロー図である。
【図6】一実施形態における署名検証に関する処理を説明するワークフロー図である。
【発明を実施するための形態】
【0013】
以下,図面を用いて本発明の一実施形態について説明する。尚,これにより本発明が限定されるものではない。
【実施例1】
【0014】
まず本実施例の概要を説明する。
本実施例では、ID情報の正当性を検証する為の情報,すなわち検証値または署名値の一部を,IDとしても利用することにより,少ない情報量でID情報の正当性を保証する。ここで,より少ない情報量で正当性を保障するために本実施例では,電子署名方式の代表的な一つであるSchnore署名を用いて説明する。このSchnore署名を剰余演算を用いて変形させることにより,署名長の短い電子署名方式を実現することができる。
【0015】
更に,ID情報等が一意に定まる方式を採用する。具体的には,ID発行装置が署名方式に用いる各パラメータを設定し,ID発行装置が特定のメッセージに対して本発明の電子署名を計算する。そして、その署名値の一部をIDとして,RFIDタグのID情報領域に書き込み,残りの一部を制御情報領域に書込む。
【0016】
また,ID発行装置は,公開鍵を含む公開情報を各検証装置に公開し,各検証装置は,RFIDタグのID情報領域からのID情報と制御情報領域からの検証用の情報から,前記,公開鍵を用いて検証する。
ここで,ID発行装置が,検証値でもあるID等を生成する際,同一のID等が存在しないように,過去に発行したデータと比較して,IDの唯一性を確保する。
【0017】
尚,生成されたIDを通し番号により,管理できるように,通し番号から該当ID生成する。また,必要に応じて,制御情報の唯一性を確保する場合に,過去に発行したデータと比較して,制御情報の唯一性を確保する。
【0018】
また,Schnore署名を楕円曲線上で計算する際,図4に示すように,署名値の一つであるrを,特定の値pにて法をとることにより,rの値を小さくする。
【0019】
また,署名値のもう一つであるsをRFIDタグの容量に合わせ分割して扱う。
【0020】
以下に、本実施例の詳細を説明する。
図1は,本発明の一実施形態が適用された全体構成図である。
ID発行装置10は,図4に示すように,まず(146+t)bitの素数qを選ぶ。更に楕円曲線の係数a,bを有限体Fqから選び,楕円曲線Eを設定する。このとき,楕円曲線の位数#Eはl・n(l<<n)となるようにし,ベースポイントPを位数nとなるように楕円曲線Eの中から選ぶ。また,62bitの素数pとメッセージmも選ぶ。ここで,dをZnから選び,これをID発行装置10の秘密鍵とする。また楕円曲線E上の点Q=dPを計算し,これをID発行装置10の公開鍵とする。また,h()を任意長のデータを固定長に変換するハッシュ関数とし,ここでは,256bitの出力とする。これらの値を設定したID発行装置10は,E,q,n,P,p,m,Q,h()を公開情報として,公開する。
【0021】
ID発行装置10は,前記公開情報104と,前記秘密鍵105と,過去に生成したID情報・制御情報を格納したID履歴情報106と,データの入出力を行う入出力部101と,電子署名生成を行う暗号演算部103と,それらを制御する制御部102からなり,前記パラメータを用いて検証用の署名値を生成し,図3のID情報311,制御情報320内に配置する。また,ID発行装置10は,前記署名値を含むID情報311,制御情報320を必要個数生成し,リスト化する。そして前記リストをデータ埋込装置20に送付する。
【0022】
データ埋込装置20は,必要情報を媒体に書き込む装置であり,ID発行装置10から送られた前記リストからID情報311と制御情報320をRFIDタグ30に書込む。
【0023】
RFIDタグ30は,前記ID情報311と制御情報320を書き込まれた媒体であり,検証装置40の要求に応じて,前記ID情報311と制御情報320を検証装置40に送信する。
【0024】
検証装置40は,前記ID発行装置10が設定した公開情報を格納する公開情報404と,データの入出力を行う入出力部401と,電子署名検証を行う暗号演算部403と,それらを制御する制御部402からなり,RFIDタグ30からID情報および検証値を読込み,前記ID発行装置10が設定した公開情報を用いて,該当IDが正当な前記ID発行装置10が生成したものであるかを確認する。検証が成功した場合,該当ID情報を業務アプリケーション装置50に引き渡す。業務アプリケーション装置50は,IDを要求または受信し,受信したIDを基にサービスを実行する装置であり,検証装置40から引き渡されたIDに対し,必要に応じてサービスを実行する。
また,ID発行装置10と,検証装置40は,それぞれ,図2が示すように,記憶媒体67と,記憶媒体67の読取装置61と,半導体を用いた一次記憶装置(以下,メモリという)62と,入出力装置63と,CPU64と,ハードディスクなどの二次記憶装置(以下,記憶装置という)65と,通信装置66とが,バスなどの内部通信線(以下,バスという)68で連結された情報処理装置60上に構成することができる。
【0025】
上述の,暗号演算部103,403と,公開情報104,404,秘密鍵105,405,ID履歴情報106,制御部102,402は,それぞれの装置のメモリ62または記憶装置65に格納されたプログラムをCPU64が実行することにより,当該装置上に具現化されるものである。また,これらのプログラム及び公開情報104,404,秘密鍵105,405,ID履歴情報106は,上記記憶装置65に格納されていても良いし,必要なときに,着脱可能な記憶媒体67を介して,前記情報処理装置60に導入されたり,通信装置66を介して外部から導入されてもよい。
【0026】
ここで,RFIDとは,電磁界や電波などを用いた近距離の無線通信によってRFIDタグに格納された情報をやりとりすることを指し,本一実施形態では,埋め込まれたID情報を128bitとして説明する。ただし,ID情報を含め,検証値,公開情報等,各データのサイズは一例であり,これにより本発明が限定されるものではない。
【0027】
図3(a)は,MACを用いた従来方式を説明する為のデータ形式の一例である。RFIDタグ30は,128bitのID情報301と,輻輳制御に用いる48bitの制御情報302を含む。ID情報301は,ヘッダ1303,サービスヘッダ304,ID305,MAC306,EDC1(Error Detecting Code)307で構成される。ヘッダ1-303は,バージョン情報等を識別する情報であり,サービスヘッダ304は,利用用途等を識別する情報である。ID305は,RFIDタグ30に対する真の意味でのIDである。MAC306は,ヘッダ1-303,サービスヘッダ304,とID305に対する改竄検知符号(MAC値)である。EDC1-307は,ヘッダ1-303,サービスヘッダ304,ID305,MAC306に対する誤り検出符号である。一方,制御情報302は,輻輳制御用データ(乱数)308とEDC2-309からなり,EDC2-309は輻輳制御用データ(乱数)308に対する誤り検出符号である。尚,輻輳制御用データ(乱数)308は,輻輳制御を行う際,順序を定める乱数である。
【0028】
本発明では,ID305の代わりに,署名値315をIDとしても用いている。そしてMAC306の代わりに署名値315,318,321を用いてIDの正当性を確認する。尚,ヘッダ1-313は,バージョン情報等を識別する情報であり,サービスヘッダ314は,利用用途等を識別する情報である。EDC1-317は,ヘッダ1-313,サービスヘッダ314,ID兼署名値315に対する誤り検出符号である。また,ヘッダ2320は,バージョン番号やデータ長等を示す情報であり,EDC2-319は,ヘッダ2-320,署名値318,321に対する誤り検出符号である。(図3(b)参照)。
【0029】
次に図5を用いてID及び署名値生成方法について説明する。尚,ID発行装置10は,先述した各パラメータは設定済とする(図4参照)。また,表記上,アルファベットの小文字を数値,大文字を楕円曲線上の点として記す。
【0030】
ID作成・書込み指示を受けたID発行装置10は,暗号演算部103にて乱数kを生成する(S001,S002)。その際,ID発行装置10の秘密の情報(以下,PWと呼ぶ)を設定し,前記PWと通し番号を入力としたハッシュ関数h()の出力値を乱数kとし,順次乱数を生成する。尚,PWは,必要に応じて,秘密鍵105に格納し,管理してもよい。
【0031】
ID発行装置10は,楕円曲線上の点R=kPを計算し(S003),点Rのx座標であるx(R)とメッセージmを入力としたハッシュ関数h()の出力値を,pを法として剰余演算し,その値を署名値の一つであるrとする(S004)。尚,x()は楕円曲線上の点のx座標を示す。
【0032】
また,ID発行装置10は,署名値のもう一つであるs=k−rd mod nを計算する(S005)。
【0033】
ID発行装置10は,署名値の一部をIDとして扱う為に,sの上位100bitのs1と下位46bitのs2とに分割する(S006)。(尚,s1=(s)^100,s2=(s)46の様に,ある値xの上位nビット,下位mビットをそれぞれ,(x)^n,(x)mとも記す。)また,s1はIDとしても扱うので,重複を避ける為に過去に使用した値でないかを,ID履歴情報106と比較して確認し(S007),使用済みであれば,S002に戻り,通し番号iを更新し,使用済みでないs1が生成されるまで繰り返す。
【0034】
新規のs1が生成された場合,ID発行装置10の制御部は,ID履歴情報106を更新する。更に署名値rの下位32bitは,輻輳制御用データとしても扱うので,同様に,重複を避ける為,(r)32が過去に使用した値でないかを,ID履歴情報106と比較して確認し(S008),使用済みであれば,S002に戻り,通し番号iを更新し,使用済みでない(r)32が生成されるまで繰り返す。
【0035】
新規の(r)32が生成された場合,ID履歴情報106を更新する。更にバージョンの識別に用いるヘッダ情報であるヘッダ1-313と利用用途を識別するサービスヘッダ313を作成し,ヘッダ1-313とサービスヘッダ314とs1-315を結合した値に対し,簡易的な誤り検出記号であるEDC1-317を計算する(S009)。また,バージョン情報を識別するヘッダ2-320を作成し,ヘッダ2-320とs2-316とr318を結合した値に対し,簡易的な誤り検出記号であるEDC2-319を計算する(S010)。
【0036】
ID発行装置10は,必要に応じてS002に戻り,S009,S010で生成した値の組を,必要なチップの個数分だけ生成する(S011)。
【0037】
S009,S010で生成した値の組が,必要個数分集まったら,その値の組を全てリスト化し(S012),データ埋込装置20に受け渡し,データ埋込装置20は,そのリストに基づいて,図3(b)のように各RFIDタグ30に(ヘッダ1||サービスヘッダ||s1 || EDC1)をID情報311として,(ヘッダ2||s2 ||r||EDC2)を制御情報312としてRFIDタグ30に書き込む(S013,S014)。
【0038】
次に図6を用いて,RFIDタグ30の正当性確認方法を説明する。
【0039】
検証装置40は,32bit分の数値を降順に付近のRFIDタグ30へ送信し,応答命令を出す(S101)。
【0040】
RFIDタグ30は,S101での応答命令に対し,検証装置40から送られてきた値が,自身の(r)32であるかを確認し(S102),自身の順番であればID情報(ヘッダ1||サービスヘッダ||s1||EDC1)311,制御情報(ヘッダ2||s2||r||EDC2)312を検証装置40に送信する(S103)。
【0041】
検証装置40は,ID情報(ヘッダ1||サービスヘッダ||s1|| EDC1)311から,ヘッダ1||サービスヘッダ||s1 に対する誤り検知符号EDC1を確認し,且つ制御情報(ヘッダ2||s2||r||EDC2)312からヘッダ2||s2||rに対する誤り検知符号EDC2を確認する(S104)。尚,誤りが検知された場合,設定回数分だけ再読込みを行い,それでも誤りが生じる場合,読込みエラーとして扱う。
【0042】
S104にて正しく読込みに成功した場合,r=h(x((s1||s2)P+rQ), m) mod pとなるか署名検証を行う(S105)。
【0043】
S105にて検証失敗した場合,不正なIDとして処理し(S106),検証に成功した場合,正当なIDとして,業務アプリケーション装置50へ,ID情報311等の必要な情報を渡す(S107)。
【0044】
以上に述べたように,本一実施形態によれば,RFIDタグ30は,検証値の一部であるs1315をIDとし,検証値s1-315,s2-316,r318を用いて,IDの正当性を確認することが可能となる。
【0045】
また,ID情報311,制御情報312のトータルの情報量は256ビットであり,数百bitの情報しか送信することができない小型のRFIDタグでも実装可能となる。
【0046】
また,検証装置40は,公開情報404のみを管理し,秘密鍵105を持っていない為,検証装置40から直接,秘密鍵105が漏洩する危険性を回避することが可能となる。
【0047】
また,検証装置40は,ネットワーク等に接続することなく,本方式よる電子署名の検証のみで,ローカルにIDの正当性を確認することが可能となる。
【0048】
即ち,本一実施形態によれば,検証装置40に秘密鍵105を持たせず,オフラインでID情報の正当性を保証し,且つ数百bitの情報しか送信することができない小型のRFIDタグでもID情報の正当性を保証するシステムを提供することが可能となる。
【0049】
尚,本発明は,上記の本一実施形態に限定されるものではなく,その要旨の範囲内で様々な形態が可能である。
【0050】
例えば,図3(b)でID情報311と制御情報312を不連続なデータとして記載し,各データに対して,ヘッダとEDCを付けているが,ID情報311と制御情報312を連続なデータとして扱い,ヘッダ及びEDCを一つにまとめてもよい。
【0051】
また,図5S007,S008にて,s1や(r)32が重複しないように,過去の履歴と比較して制御を行っているが,IDの一意性や輻輳制御用乱数の一意性が不要な場合,必要に応じて,本ステップをスキップしてもよい。また,輻輳制御用データ(乱数)を別途用意しているようなRFIDタグ30においては,署名値318は,輻輳制御用データ(乱数)を兼ねる必要はない。また,本一実施形態では,輻輳制御用の乱数は,署名値318の部分値として説明してあるが,署名値318全体または,署名値318全体を含む値にしてもよい。
【0052】
また,ID兼署名値315は,署名値sの部分値であるが,署名値s全体にしてもよい。
【0053】
また,S101,S102は,輻輳制御を行うためのステップであり,輻輳制御が不要な場合は,本ステップをスキップしてもよい。
【0054】
また,図6にて,検証装置40は,輻輳制御を行う為に,32bit分の数値を降順に付近のRFIDタグ30へ送信し,応答命令を出しているが,順序を示す32bit分の値を昇順やランダムにRFIDタグ30へ送信し,応答命令を出してもよい。また,RFIDタグ30側の輻輳制御用データ(乱数)32bit分の値を,例えば,8bitずつ4つに分割し,検証装置40は,8bitのデータを昇順または降順またはランダムにRFIDタグ30へ送信し,RFIDタグ30は,8bitずつ4つに分割した輻輳制御用データ(乱数)の内,最初の8bitが検証装置40から送られてきた値と一致しているかを判断して,応答してもよい。その際,最初の8bitで同じ番号のRFIDタグ30が複数存在した場合,再度,検証装置40は,8bitのデータを昇順または降順またはランダムにRFIDタグ30へ送信し,RFIDタグ30は,8bitずつ4つに分割した輻輳制御用データ(乱数)の内,次の8bitが検証装置40から送られてきた値と一致しているかを判断して,応答し,それでも同じ番号が存在した場合,同様にその次の8bitと,次々を繰り返すことにより,輻輳制御を行ってもよい。
【0055】
また,図6にて,検証装置40は,S107にてIDの正当性が確認できた場合に業務アプリケーション50へ必要な情報を送信しているが,S104のEDCの検証が通過した時点で,業務アプリケーション50へ必要な情報を送信し,その後,検証装置40は,署名検証を引き続き行い,その結果を再度,業務アプリケーション50へ送ってもよい。
【0056】
また,本一実施形態では,Schnorr署名を楕円曲線上で変形しているが,その他の代数体上で変形を行ってもよい。
【0057】
また,本一実施形態では,RFIDタグを例にして説明しているが,二次元バーコードのような紙等に印刷された媒体や,ICカードや通常のPC等,その他のディバイスで用いてもよい。
【符号の説明】
【0058】
10:ID発行装置,20:データ埋込装置,30:RFIDタグ,40:検証装置,50:業務アプリケーション装置,60:情報処理装置,61:読取装置,62:メモリ,63:入出力装置,64:CPU,65:記憶装置,66:通信装置,67:記憶媒体,68:バス,101,401:入出力部,102,402:制御部,103,403:暗号演算部,104,404:公開情報,105:秘密鍵,106:ID履歴情報,301,311:ID情報,302,312:制御情報,303,313,320:ヘッダ,304,314:サービスヘッダ,305:ID,306:MAC,307,309,317,319:EDC,308:輻輳制御用データ(乱数),315,318,321:署名値

【特許請求の範囲】
【請求項1】
正当性が保証されたIDを生成するID生成方法において、
暗号演算部により、
乱数を発生させ、当該発生させた乱数から署名値を作成するステップと、
前記作成した署名値を分割するステップと、
前記分割した署名値のうち一方の署名値について、ID履歴情報データベースに当該一方の署名値と同一のデータがあるか否か確認するステップと、
前記ID履歴情報データベースに同一のデータが無い場合に、データ埋め込み装置により前記一方の署名値をRFIDタグのIDとしてRFIDタグに格納するステップと、
を有することを特徴とするID生成方法。
【請求項2】
請求項1に記載のID生成方法において、
前記ID履歴情報データベースに同一のデータが無い場合に、制御部により、前記一方の署名値の情報を当該ID履歴情報データベース書き込むステップと、
を更に有することを特徴とするID生成方法。
【請求項3】
請求項1または2に記載のID生成方法において,
前記暗号演算部が署名値を分割するステップは、データの容量または用途に応じて,検証情報を分割することを特徴とするID生成方法。
【請求項4】
請求項1乃至3に記載のID生成方法において,
前記署名値を作成するステップは、Schnore署名を用いることを特徴とするID生成方法。
【請求項5】
請求項1乃至4に記載のID生成方法により生成されたIDを有するRFIDタグ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2010−277006(P2010−277006A)
【公開日】平成22年12月9日(2010.12.9)
【国際特許分類】
【出願番号】特願2009−131708(P2009−131708)
【出願日】平成21年6月1日(2009.6.1)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】