説明

複雑性の低い装置の認証及び機密性を提供する方法及び装置

安全な認証、機密性、及び匿名のための暗号プロトコルを提供する方法及び装置。一実施形態において、このプロトコルは、少数の論理ゲートで実現され、簡単な装置上ですばやく実行され、軍事グレードの安全性を提供するように設計される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は暗号化及び認証に関し、特に、複雑性の低い装置の暗号化及び認証に関する。
【背景技術】
【0002】
無線周波数識別(RFID)タグが、広く普及してきている。これらは、製品の追跡及び他の目的で利用されている。一般に、RFIDが照会を受けた時、RFIDは、RFIDが貼付されている物体に関するデータを検索するのに利用されるその識別情報を供給する。
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかし、いくつかのエンティティは、第三者からの照会に対してRFIDデータを開示せずに、RFIDの利用が可能であることを望んでいる。例えば、米国政府は、国境検問所での認証書類の処理の促進を進めるため、パスポートの書類又はクレジットサイズのカードの中にRFIDチップを組み込むことを望んでいる。
【0004】
現在のRFIDソリューションは、4つの主たる脆弱性を有している。第1は、一般に、RFIDは認証を提供しない。第2に、権限のない第三者が、装置に対して照会を行いRFIDチップ上のデータを知ることが可能である。パスポートの場合には、そのRFIDに、個人情報盗難を可能にするその所有者の個人情報に関する充分なデータを含んでいるかもしれない。第3に、攻撃者はそのようにして、装置の対話を盗聴し、RFIDチップ上のそのデータを取得することができるかもしれない。最後に、攻撃者は、RFIDチップの特定の識別子を使用して、ある個人を一貫して追跡することができるかもしれない。
【課題を解決するための手段】
【0005】
安全な認証、機密性、及び匿名のための暗号プロトコルを提供する方法及び装置について、説明される。一実施形態において、このプロトコルは、少数の論理ゲートで実現され、簡単な装置上ですばやく実行され、軍事グレードの安全性を提供するように設計される。
【発明を実施するための最良の形態】
【0006】
本発明は、一例として示され、添付した図面の形態及び類似要素に関する参照数字等に制限されるものではない。
【0007】
記載された方法及び装置は、多くの機密保護の要求に向けた低電力装置の暗号プロトコルである。また、暗号プロトコルは、この用途のための実行特性を維持する。特に、この暗号プロトコルを含む装置は、標準的な技術を使用して比較的安価に構成することが可能である。実現するのに多くの論理ゲートを必要としないので、パッシブ型のRFIDチップなどの低電力装置上で実現可能である。最後に、このプロトコルは、数多くの装置が同時に照会されることを可能にする。
【0008】
このプロトコルは、以下に示す暗号の特徴の1つ以上を提供する能力を有する。
・認証。このプロトコルは、タグの信憑性を暗号的に検査するための情報を含むことが可能である。
・機密性。このプロトコルは、権限のない第三者がタグの識別子を知ることができないように、そのタグの識別子を保護することができる。
・アントレーサビリティ/難読化。一実施形態のプロトコルは、まったく同じ値には戻らない。すなわち、タグの識別子を取得するためのキーをリーダが知らない場合、そのリーダは、同一のタグと通信していることを話すことすらできない。
【0009】
一実施形態において、楕円曲線暗号システム(ECC)、より具体的にはパブリック/プライベート・キー対を使用する楕円曲線暗号処理を通して認証が提供される。一実施形態において、機密性は、タグ識別子を暗号化することによって提供される。一実施形態において、暗号化は、タグ識別子の暗号化キーを導き出すためのデフィーヘルマン(Diffie-Helman)ベースの機構を使用し、このキーでタグ識別子を暗号化して行われる。一実施形態において、アントレーサビリティは、暗号化キーを生成するのに使用されそれぞれ交換される乱数を生成することによって提供される。
【0010】
一実施形態において、このアプリケーションは、コンピュータを使用して素体(prime field)上で実現される。単純化のため、いくつかの例は、単に、楕円曲線暗号(ECC)又は素体のデフィーヘルマン問題について説明する。しかし、当業者の一人は、両方の方法、または2つの方法の組み合わせが、本発明によって使用されることが可能であることを理解するであろう。
【0011】
このアプリケーションの例は、無線周波数識別(RFID)リーダ及びタグを使用して実現されるシステムについて述べているが、本発明は、複雑性の低いいかなる装置を利用してもよい。
【0012】
図1は、本発明に関する暗号サービスのコンポーネントの一実施形態を示すネットワーク図である。一実施形態において、RFIDシステム120は、1つ以上の暗号RFIDタグ110A,110B,110Cを読み取るリーダを備えている。一実施形態において、RFIDシステム120は、複数のRFIDタグ110A−Cを同時に読み取る能力を有している。別の実施形態において、各タグは、順番に質問される。一実施形態において、RFIDシステム120は、暗号システムを備えている。別の実施形態において、RFIDシステム120は、リーダと結びついて、ここで記述された暗号機能を実行するための暗号システムとリンクされている。
【0013】
リーダ120は、暗号RFIDタグ110AからタグIDを要求する。一実施形態において、この要求は呼び掛けを含む。リーダは、暗号化された応答を受け取る。暗号化された応答は、適当なキーを持つシステム120によって解読され得る。タグIDの要求を繰り返し送信しても、スプーファーシステム130は、一致した応答を受信できない(なぜなら、応答は暗号化され難読化されているからである)。したがって、スプーファーシステム130は、暗号RFIDタグ110AのタグIDを識別することができない。したがって、RFIDタグ110Aに関するデータを検索することができない。
【0014】
一実施形態において、タグの応答を解読してタグIDを取得した後、RFIDシステム120はタグIDに関するパブリックキーを検索する。一実施形態において、パブリックキーの検索は、ネットワーク150を介してアクセス可能なリモートシステム160によって実行される。また、キー検索は、ローカルシステムまたはRFIDシステム120自体に組み込むことが可能である。一実施形態において、パブリックキー検索サーバ160は、RFIDシステムに対してローカルである。一実施形態において、パブリックキー検索サーバ160は、パブリックからアクセスできないプライベートサーバである。
【0015】
一実施形態において、データベース170内の各RFIDタグの記録は、タグ識別子(タグID)及びタグパブリックキーQを含む。一実施形態において、その記録は、RFIDが生成された時を示すタイムスタンプもまた含む。したがって、このデータは、タグの外部に決して格納されることのないタグプライベートキーを含まない。
【0016】
図2は、低処理電力システム(LPPS)及び通信システム関連の一実施形態を示すブロック図である。LPPSはRFIDタグであり、一方、通信システムはRFIDリーダである。
【0017】
RFIDタグ110は、トランシーバ250、または代わりに個別の受信及び送信ロジックを含んでいる。一実施形態において、トランシーバ250は、RFIDトランシーバである。一実施形態において、PLLS210は、システム220から受信する入力信号によってトランシーバ250が電力供給されるのに充分に低い電力で動く。
【0018】
初期化の間、暗号ロジック255は、タグ110のプライベートキーを計算し、そのプライベートキーはメモリ260に格納される。本明細書におけるプライベートキーという用語は、楕円曲線上の1点、またはデフィーヘルマン問題で使用される大きな素数を表す。バブリックキーは、プライベートキーにキー対を提供する関数または値である。
【0019】
RFIDタグ110は、RFIDシステム120から、パブリックキー、又は別の実施形態では複数のパブリックキーを受信する。また、RFIDタグ110は、そのタグの識別子(タグID)をシステム120から受信し、それらをメモリ260内に格納する。一実施形態において、プライベートキーは、E(F)のオーダと同じ長さの値であり、無作為に生成される。タグ110内の暗号ロジック255は、さらに、タグのプライベートキーに基づいてRFIDタグのパブリックキーを計算する。一実施形態において、このパブリックキーは、認証機関によって署名され、LPPS210の認証で使用される。
【0020】
メモリ260は、リーダのタグID及びパブリックキー(初期化中に受信される)とともに、プライベートキー(タグの中で生成された乱数a)を格納するのに使用される。プライベートキー、パブリックキー、及びタグIDを格納し、認証関数を計算するのに必要なゲートの数は、キーの長さに比例する。したがって、安全性を確保しつつキーサイズを最小化するのは、興味があることである。したがって、一実施形態において、このシステムは、2進フィールドにおける163から3進フィールドにおける107までワードサイズの削減(システムの安全性を減らすことなくワード長の約35%の減少)が可能な、Fとして3進フィールドを使用する。すなわち、2進ロジックゲートの代わりに3進ロジックゲートを使用することにより、より少ないロジックゲートが必要となり、そのいくつかの動作(乗算など)はより速くなる。
【0021】
一実施形態において、このシステムは、改ざんロジック265を含む。改ざんロジック265は、改ざん防止機能を提供する。一実施形態において、すべてのタグは改ざん防止機能を有している。別の実施形態において、メモリ260のみ、またはブライベートキーが格納されるメモリ領域に、改ざん防止機能を備えている。一実施形態において、改ざん防止機能は、メモリの読み取りやバスのハッキングなどをシステムが検知したとき、そのメモリを消去するロジックを含んでもよい。一実施形態において、これはヒューズを使用して実現できる。
【0022】
認証の使用中、暗号ロジック255は、呼び掛けを受信し、呼び掛けへの応答を計算する。呼び掛けへの応答は暗号化され、認証化され、応答の難読化される。これは、同じ呼び掛けが繰り返し送信された場合であっても、RFIDタグ110からの応答が常に異なることを確実にする。一実施形態において、計算は、選択された有限フィールド上の選択された楕円曲線上で行われる。上記のとおり、一実施形態におけるこのフィールドは周知の2進フィールドである。
【0023】
RFIDシステム220は、RFIDリーダ210を含み、RFIDタグ210へ呼び掛けを送信する。呼び掛けは、乱数ジェネレータ215により生成された乱数に基づいて、呼び掛け計算器220によって生成される。一実施形態において、乱数は、Eのオーダの大きさと同じオーダの数字である。
【0024】
RFIDタグ210が呼び掛けに応答するとき、その応答は、暗号化されたタグID及び呼び掛け応答を含む。暗号計算器230は、暗号化された応答を解読し、応答からタグIDを取得するのに使用される。パブリックキー検索ロジック225は、データベース内のそのタグのパブリックキーを検索するのにタグIDを使用する。前述のように、データベースは、RFIDシステム120の一部、ローカル、または遠隔かつネットワークを介してアクセス可能であってもよい。
【0025】
暗号計算器230は、乱数を取得し、パブリックキーを使用してパブリックキー値を計算する。パブリックキー値は、RFIDタグによって返された呼び掛け応答と等しいはずである。したがって、比較ロジック235は、RFIDタグ210によって返された呼び掛け応答と、計算の結果との比較を行う。もし、値が一致した場合、RFIDシステム120は、RFIDタグ210を証明する。一実施形態において、検証ロジック240は、RFIDタグ110が正当であることを示す適切な情報を出力する。一実施形態において、RFIDシステム120は、RFIDタグ110が有効であることを示す出力機構を有する。
【0026】
図3は、暗号プロトコルを利用する一実施形態を示す概略フローチャートである。処理は、初期化で始まる。
【0027】
ブロック310において、共通データが、タグとリーダとの間で共有される。タグは、例えば無線周波数識別(RFID)タグのような、複雑性の低い処理装置である。リーダは、RFIDリーダのような、タグとインターフェイスするように設計された装置である。一実施形態において、用語“リーダ”は、暗号サービスを提供するシステムとともに、タグと対話するシステムを示す。しかし、一実施形態において、これらの機能は分離され、ネットワークコネクション又は他の方法を介して結合された別々の装置によって実行される。共通データは、必要な楕円曲線、フィールド、及び楕円暗号化のポイント、または従来の暗号化のジェネレータ及び大きな素数を画定する。用語“オリジネータ”は、この発明において、大きな素数のジェネレータ及び楕円曲線暗号化で使用される楕円フィールド内のポイントを示すものとして使用される。
【0028】
ブロック315において、タグとリーダの間でキーが共有される。一実施形態において、キーは、楕円暗号化または従来の大きな素数の暗号化を利用する1つ以上のパブリック/プライベート・キー対を含む。一実施形態において、3組のキー対が生成され、それぞれ、認証、暗号化、及び難読化用である。一実施形態において、タグは、自分自身のキーを生成する。
【0029】
適当なプライベートキー及びパブリックキーが、ブロック320で、格納されると、初期化は完了する。一実施形態において、タグは、リーダのパブリックキー及び自分自身のプライベートキー及び識別情報を格納し、リーダは、自分自身のプライベートキーを格納する。一実施形態において、タグのパブリックキー及び識別情報が、別々のパブリックキー・ディレクトリに格納される。
【0030】
以下の処理は、識別を目的としたタグのパブリックキーを取得する部分である。以下の処理、認証されたタグIDの供給に加えて、タグIDを暗号化する手段でタグIDを提供し、その値を難読化する。これは、スプーフィング・リーダが、同じ呼び掛けを複数回送信することによって暗号化の認識を試みた場合に、リターンデータが一致しないことを保証する。
【0031】
ブロック325において、リーダがタグの呼び掛けを計算する。呼び掛けは、リーダがそのタグのタグIDを確認することを可能にする情報を引き出すように設計される。一実施形態において、呼び掛けは、乱数である。一実施形態において、呼び掛けは、選択された有限フィールド上の楕円曲線に沿った乱数である。
【0032】
ブロック330で、呼び掛けに対する応答をタグが計算する。一実施形態において、呼び掛けに対する応答は、タグのプライベートキー掛ける呼び掛けである。
【0033】
ブロック335で、タグは、呼び掛けに対する応答と、暗号化用、認証用及び機密性用の3つのキーで暗号化された3つの乱数と、の組み合わせの返信データを計算する。一実施形態において、タグは、2つの乱数(sとu)を生成し、キー(それぞれ暗号化と難読化)に従ってそれぞれを暗号化する。認証キーは、リーダのパブリックキーで暗号化される。そして、タグは、4つの乱数すべてを含む連結値を返信する。一実施形態において、返信の値は、タグの識別子を含む。
【0034】
ブロック340で、タグからリターンデータを受け取ったリーダは、リターンデータからのn(タグID)を計算するのに、そのプライベートキーを利用する。
【0035】
ブロック345で、そのタグIDを使用して、リーダは、そのタグのパブリックキーを検索する。
【0036】
ブロック350で、リーダは、署名された呼び掛け応答が含まれているリターンデータを確認する。ブロック355の確認で、リーダがそのタグID(n)を知っていて、このIDが、呼び掛けに対する応答により信頼できることが証明された場合、リーダは、ブロック360で、他の活動を実行するためにそのタグIDを利用することができる。例えば、タグIDは、別のデータベース内のデータを検索したり、タグの承認を確認したりするのに使用される。そして、ブロック365で、処理が終了する。
【0037】
図4A及びBは、本発明に関するリーダ及びタグの初期化の一実施形態を示す信号フロー図である。このシステムは、楕円曲線暗号(ECC)、または従来のパブリックキー暗号パラメータを使用する。
【0038】
ブロック405で、タグとリーダは、暗号パラメータで初期化される。使用される暗号システムが楕円曲線システムの場合、一実施形態において、以下の値が決定される。
1.(タグ)認証用の第1楕円曲線EA及び有限フィールドFA
2.(タグ)認証用の第1楕円曲線EA(FA)上の第1ポイントPA=(xA,yA
3.(タグID)暗号化用の第2楕円曲線EE及び有限フィールドFE
4.(タグID)暗号化用の第2楕円曲線EE(FE)上の第2ポイントPE=(xE,yE
5.(タグID)難読化用の第3楕円曲線EO及び有限フィールドFO
6.(タグID)難読化用の第3楕円曲線EO(FO)上の第3ポイントPO=(xO,yO
【0039】
ポイントのそれぞれのために、PA/E/Oを整数で乗算することによって生成される全ポイントのセットは、フィールド上の楕円曲線上のポイントの総数と同じサイズであるべきである。より正式には、{Pi|∃x such that P=PAx}セットのオーダは、EA(FA)のオーダと同じでなければならない。
【0040】
一実施形態において、認証、暗号化、及び難読化機構は、上述の個別の楕円曲線、有限フィールド、及び/又は楕円曲線上のポイントを利用する。別の実施形態において、決定されたフィールド、曲線、及び/又はポイントは同一かもしれない。一実施形態において、同じ楕円曲線、フィールド、及びポイントは、すべての3つの暗号アスペクト(認証、暗号化、及び難読化)として使用される。これらのアスペクト、EA,EE,EO,FA,FE,FO,及びPA,PE,POは、タグ及びリーダを初期化するのに使用される。ECCの一方向性関数は、f(a,B)=a・Bである(ここでドット演算子はポイント乗算を示す。)。例えば、a・Bは“ポイントB掛ける整数a”を意味する。
【0041】
従来の暗号化方法、大きな素体上の計算を使用する暗号化のために、一実施形態において、以下の値が定義される。
1.(タグ)認証用の素数QAを選択する。
2.(タグ)認証用のジェネレータgA∈[2,QA−1]を選択する。
3.(タグID)暗号化用の素数QEを選択する。
4.(タグID)暗号化用のジェネレータgE∈[2,QE−1]を選択する。
5.(タグID)難読化用の素数QOを選択する。
6.(タグID)難読化用のジェネレータgO∈[2,QO−1]を選択する。
【0042】
一実施形態において、ジェネレータ及び素数は、それぞれの値(認証、暗号化、及び難読化)と同一とすることができる。素体上の計算用の一方向性関数は、
f(a,B)=Ba mod pである。
【0043】
ジェネレータgA/E/O及びポイントPA/E/Oは、オリジネータOA/E/Oとして集合的に参照される。
【0044】
上述のように、これらの暗号ジェネレータは、タグ及びリーダを初期化するのに使用される。リーダ/タグは暗号化の一形態として使用されることを注意すべきである。ここで、大きな素体上の楕円暗号化及び計算を説明した。しかし、確実な暗号化及び解読キー対を生成する代替的な暗号関数を使用することも可能である。
【0045】
初期化は、種々の手段で起きる。一実施形態において、合意が必要とされないように、すべてのシステムコンポーネントは、予め同じパラメータでプログラミングされる。別の実施形態において、それぞれのシステムコンポーネントは、どのパラメータが通信のために使用されるかという完全な説明を受信するであろう。さらに別の実施形態において、よく知られている名称のパラメータの標準的なセットから使用されるパラメータについての2つのサイドが簡単に特定されるであろう。例えば、RFC4492の5.1.1節を参照のこと(http://www.faqs.org/rfcs/rfc4492.html)。これは、いくつかの標準的な楕円曲線及びフィールドの16ビット識別子を特定する。別の実施形態において、2つのサイドが、同意済み又は予め決められたパラメータ・セットからパラメータを選択するであろう。両方のコンポーネントがこれらのパラメータを持つことを保証する他の方法が使用されてもよい。
【0046】
ブロック410で、リーダは、その暗号化キーとして乱数rを抽出する。ブロック415で、リーダは、キー対(R,r)を生成するために、暗号化キーrについてのパブリックキーである適合キーR=f(r,PE)を計算する。
【0047】
ブロック420で、リーダは、難読化キーとして第2乱数jを抽出する。ブロック430で、J=f(j,PO)を計算することにより、難読化キー対(J,j)が計算される。このようにして、リーダは、暗号化用のキー対(R,r)と、タグの識別の難読化用の第2キー対(J,j)を生成する。一実施形態において、R=J、及びr=jである。r及びjの値は、リーダ内に格納される。
【0048】
ブロック440で、リーダは、初期化するようにタグに伝えるため、タグID(n)に沿ったパブリックキー(R及びJ)をタグに送信する。一実施形態において、RFIDシステムは、乱数であるnを選択する。一実施形態において、タグID値nは、キー(R及びJ)の長さより短くなるように選択される。一実施形態において、初期化処理は、多くのタグと一緒に実行されることができる。
【0049】
ブロック445で、n,R,及びJの値が、タグの内部メモリに保存される。上述のように、一実施形態において、内部メモリは安全なメモリである。一実施形態において、タグを破壊することなく暗号処理を通さない限り、内部メモリにアクセスすることができない。
【0050】
ブロック450で、プライベートキーとしてタグによって乱数aが選択され、タグの内部メモリに保存される。一実施形態において、内部メモリは、安全なメモリである。一実施形態において、タグIDとタグのプライベートキーのみが安全なメモリに格納される。
【0051】
ブロック455で、タグは、パブリックキーQ=f(a,PA)を計算する。ブロック460で、値Qは、リーダ/システムに送信される。一実施形態において、リーダ/システムは、タグのパグリックキーをバブリックキーディレクトリへ転送する(ブロック465)。ブロック470で、バブリックキーディレクトリは、値n(タグID)についての値Qの値を格納する。ブロック475で、バブリックキーディレクトリは、その値が正しく格納されたことを認める。
【0052】
図5は、暗号化、認証、及び難読化のタグIDプロトコルを使用する一実施形態を示す信号フロー図である。この処理は、RFIDシステムがタグからデータを取得しようとしたときに初期化される。一実施形態において、RFIDシステムは、1つ以上のRFIDタグと並行して同じ処理を実行することができる。
【0053】
ブロック510で、RFIDシステムは、乱数cを抽出する。ブロック515で、RFIDシステムは、呼び掛けC=f(c,PA)を計算する。呼び掛けCは、乱数cの対である。一実施形態において、暗号化関数Eは、暗号テキストを生成するために普通テキストとキーのXORをとる。メッセージのために、n及びポイントPi、これは

である。この暗号化関数の選択のために、解読は、同じ方法:

で働く。ブロック520で、システムは、タグIDと、呼び掛けに対するタグ応答を要求するメッセージを送信する。このメッセージは、呼び掛けCを含む。
【0054】
ブロック525で、タグは、A=f(a,C)を計算する。値aは、RFIDタグのプライベートキーである。
【0055】
ブロック530で、タグは、乱数sを生成する。一実施形態において、乱数sは、乱数ジェネレータを使用して生成される。別の実施形態において、それは、物理的クローン不可関数(PUF)を使用して生成される。ブロック535で、一実施形態において、S=f(s,PE)が計算される。前述のように、PE=(xE,yE)は、(タグID)暗号化用の第2楕円曲線EE(FE)上のポイントである。
【0056】
ブロック540で、システムは、値kE=f(s,R)を計算する。Rは、RFIDシステムのパブリックキーの1つであり、sは、上記で生成された乱数である。ブロック542で、RFIDタグは、B=E(n,kE)を計算する。値nはタグIDであり、上記のとおりkE=f(s,R)である。
【0057】
一実施形態において、ブロック545で、システムは、第2乱数uを抽出する。ブロック550で、タグはU=f(u,PO)を計算する。上記のとおり、PO=(xO,yO)は、(タグID)難読化用の第3楕円曲線EO(FO)上のポイントである。ブロック555で、システムは、kO=f(u,J)を計算する。ここで、uは第2乱数、JはRFIDリーダの第2パブリックキーである。
【0058】
ブロック565で、タグはG=f(A,kO)を計算する。A=f(a,C)は、タグのプライベートキー及び呼びかけの関数であり、kO=f(u,J)である
【0059】
ブロック570で、タグは、値S,U,B及びGを返す。ここで、S=f(s,PE),U=f(u,PO),B=E(n,kE),G=f(A,kO)である。一実施形態において、タグは、これらの値の連結を返す。このプロトコルの特性の1つは、毎回異なる応答をタグが返すことばかりでなく(したがって、タグは追跡されない)、キーホルダ(権限を有するリーダ)は、リターンデータに基づいてタグの識別情報を確認することができることである。
【0060】
そして、リーダは、以下の計算を実行する。
(572)プライベートキーrと与えられた値Sを使用してkE=f(r,S)を計算する。
(574)プライベートキーjと与えられた値Uを使用してkO=f(j,U)を計算する。
(576)計算値kEと与えられた値Bを使用してn=D(B,kE)を計算する。
【0061】
値nは、タグIDであり、これはブロック580で、パブリックキーディレクトリからタグnのパブリックキーを要求するのに使用される。ブロック585で、パブリックキーディレクトリは、タグのパブリックキーQを返す。そして、リーダは、与えられた値G、計算値kOを使用して(590)A=D(G,kO)を計算し、A=f(c,Q)=f(a,C)であることを確認する。確認の結果、正しければ、リーダは、タグが証明されたものであり、タグIDが正確であることを知り、種々の検索、証明、他の機能でタグIDを使用することができる。
【0062】
この例は、楕円曲線上の関数を説明したが、説明した暗号プロトコルは、大きな素数を代わりに利用することが可能である。大きい素数のために、それぞれのf(x,P)は、f(x,g)で置き換えられる。ここで、gは大きい素数のジェネレータである。
【0063】
図6は、暗号化及び難読化の短縮化されたタグIDプロトコルを使用する一実施形態を示す信号フロー図である。この短縮化された処理は、ポイントを同じ値に設定することによって、いくつかの計算を簡単にしたものである。ブロック610で、RFIDシステムは、乱数cを抽出する。ブロック615で、RFIDシステムは、呼び掛けC=f(c,PA)を計算する。呼び掛けCは、乱数cの対である。ブロック620で、システムは、呼び掛けCを含むタグの識別情報を要求するメッセージを送信する。
【0064】
ブロック625で、タグは、A=f(a,C)を計算する。値aは、RFIDタグのプライベートキーである。
【0065】
ブロック630で、タグは、乱数sを生成する。一実施形態において、乱数sは、乱数ジェネレータを使用して生成される。別の実施形態において、乱数sは、物理的クローン不可関数(PUF)を使用して生成される。ブロック635で、S=f(s,PE)が計算される。上述のように、PE=(xE,yE)は、(タグID)暗号化用の第2楕円曲線EE(FE)上のポイントである。
【0066】
ブロック640で、T=f(s,R)が計算される。Rは、RFIDシステムのパブリックキーの1つであり、sは、上記で生成された乱数である。ブロック645で、タグが、kE,kO=g(T)を計算する。関数g()は、n|AのXORに対して充分に長い列を計算する。関数g:k→k1,k2は、長さlの入力から長さlの2つの値を生成するのに使用される。一実施形態において、この値は、擬似乱数であり、関数g()として、暗号的に聞こえるものかなにかを使用するのがベストである。
【0067】
ブロック650で、RFIDタグは、B=E(n,kE)を計算する。値nは、タグIDである。ここで、上記のように、kE=f(s,R)である。ブロック655で、タグは、G=f(A,kO)を計算する。A=f(a,C)は、タグのプライベートキーと呼び掛けの関数である。
【0068】
ブロック660で、タグは、値S,B,及びGを返す。一実施形態において、タグは、これらの値の連結を返す。S=f(s,PE),B=E(n,kE),G=f(A,kO)である。
【0069】
そして、リーダは、以下の計算を実行する。
(662)プライベートキーrと与えられた値Sを使用して、T=f(r,S)を計算する。
(664)kE,kO=g(T)を計算する。
(666)計算値kEと与えられた値Bを使用して、n=D(B,kE)を計算する。
(668)与えられた値Gと計算値kOを使用して、A=D(G,kO)を計算する。
【0070】
値nはタグIDであり、これは、ブロック670で、パブリックキーディレクトリからタグnのパブリックキーを要求するのに使用される。ブロック675で、パブリックキーディレクトリは、タグのパブリックキーQを返す。そして、ブロック680で、リーダは、A=f(c,Q)=f(a,C)であることを確認する。そして、確認の結果が正しい場合は、リーダは、タグが証明されたものであり、タグIDが正確であることを知り、種々の検索、証明、他の機能でタグIDを使用することができる。
【0071】
図7は、機密性及びアントレーサビリティの単純化されたタグIDプロトコルを使用する一実施形態を示す信号フロー図である。この暗号プロトコルは、機密性とアントレーサビリティを提供するが、認証は提供しない。ブロック710で、システムは、タグの識別情報を要求するメッセージを送信する。
【0072】
ブロック715で、タグは、乱数sを選択する。
【0073】
ブロック720で、タグは、S=f(s,PE)を計算する。前述のように、PE=(xE,yE)は、(タグID)暗号化用の第2楕円曲線EE(FE)上のポイントである。
【0074】
ブロック725で、タグは、kE,=f(s,R)を計算する。Rは、リーダのパブリックキーであり、sは乱数である。
【0075】
ブロック730で、タグは、B=E(n,kE)を計算する。値nはタグIDであり、上述のようにkE=f(s,R)である。ブロック735で、タグは、値S及びBをリーダへ返す。S及びBはともに、少なくとも乱数sの関数の一部であるので、これらの値はそれぞれの応答と異なる。
【0076】
そして、リーダは、以下の計算を実行する。
(740)kE=f(r,S)。ここで、rはリーダのプライベートキーであり、Sはタグからの返信である。
(745)計算値kEと与えられた値Bを使用して、n=D(B,kE)を計算する。
【0077】
値nは、タグIDであり、タグに関するオブジェクトについてのデータを検索するのに使用される。この処理は、タグの認証を提供しないことに注意すべきである。しかし、これは、アントレーサビリティと機密性を提供する。
【0078】
図8は、本発明とともに使用されるコンピュータシステムの一実施形態を示すブロック図である。図8は、本発明とともに使用されるコンピュータシステムの一実施形態を示す。当業者にとっては明らかであろうが、種々のシステム構造の他の代替のシステムもまた、使用することが可能である。
【0079】
図8に示されたデータ処理システムは、情報通信のためのバスまたは他の内部通信手段815と、情報処理のためのバス815に接続されたプロセッサ810とを備えている。このシステムは、さらに、プロセッサ810によって実行される命令と情報とを記憶するためのバス815に接続されたランダムアクセスメモリ(RAM)または他の揮発性記憶装置850(メモリとして示した)を備えている。また、メインメモリ850は、プロセッサ810によって命令が実行されている間の一時的な可変または他の中間情報を記憶するために使用されるようにしてもよい。また、このシステムは、静的な情報及びプロセッサ810の命令を記憶するためのバス815に接続された読み出し専用メモリ(ROM)及び/又は静的記憶装置820と、磁気ディスク又は光ディスク及びこれに関連するディスクドライブなどのデータ記憶装置825とを備えている。データ記憶装置825は、情報及び命令を格納するためにバス815に接続されている。
【0080】
さらに、このシステムは、コンピュータユーザへ情報を表示するための、バス865を介してバス815に接続された、陰極線管(CRT)又は液晶表示(LCD)などの表示装置870に接続されるようにしてもよい。また、英数字及び他のキーを備えた英数字入力装置875が、情報通信及びプロセッサ810へのコマンド選択のために、バス865を介してバス815に接続されるようにしてもよい。追加のユーザ入力装置は、方向情報通信及びプロセッサ810へのコマンド選択のために、並びに表示装置870上のカーソル動作制御のために、バス865を介してバス815に接続された、マウス、トラックボール、スティラス、又はカーソルディレクションキーなどのカーソル制御装置880である。
【0081】
コンピュータシステム800に随意に接続される他の装置は、分散システムの他のノードにネットワークを介してアクセスするための通信装置890である。通信装置890は、イーサネット(登録商標)、トークンリング、インターネット、又は広帯域ネットワークに接続するために使用されるような商業的に利用可能な多くのネットワーク周辺装置を備えるようにしてもよい。さらに、通信装置890は、コンピュータシステム800と外部世界との間の接続性を提供するヌルモデム接続、又は他の機構であってもよい。図8に示されたこのシステムのコンポーネント及び関連ハードウェアのいずれも、本発明の種々の実施形態において使用される可能性がある。
【0082】
当業者にとっては当然のことながら、いずれのシステム構成も、特定の具体化手段により種々の目的に使用することができる。本発明を実現する制御ロジック又はソフトウェアは、局所的又は遠隔的にプロセッサ810のアクセスが可能な、メインメモリ850、大容量記憶装置825、又は他の記憶媒体に格納されることが可能である。
【0083】
当業者にとっては明らかであるが、ここで述べたシステム、方法、及び処理は、メインメモリ850又は読み取り専用メモリ820に格納され、プロセッサ810によって実行されるソフトウェアとして具体化することができる。また、この制御ロジック又はソフトウェアは、コンピュータ読み取り可能なプログラムコードが組み込まれ、大容量記憶装置825が読み取り可能な、ここで述べた方法及び示唆によってプロセッサ810が動作するようにするための、量産されるコンピュータ読み取り可能媒体の物品に常駐することが可能である。
【0084】
また、本発明は、上述のコンピュータハードウェアコンポーネントのサブセットを含むハンドヘルド又は携帯装置で具体化されてもよい。例えば、ハンドヘルド装置は、バス815、プロセッサ810、及びメモリ850及び/又は825のみを含むように構成してもよい。また、ハンドヘルド装置は、ユーザが利用可能なオプションから選択されるボタンセット又は入力信号コンポーネントを含むように構成してもよい。また、ハンドヘルド装置は、ハンドヘルド装置のユーザに情報を表示するための液晶表示(LCD)又は表示要素マトリクスのような出力装置を含むように構成してもよい。このようなハンドヘルド装置を具体化するのに、従来の方法を使用することができる。このような装置の本発明の実現は、ここで提供された本発明の開示を受けた当業者の一人にとって明らかであろう。
【0085】
また、本発明は、上述のコンピュータハードウェアコンポーネントのサブセットを含む特定目的の機器で具体化される。例えば、その機器は、プロセッサ810、データ記憶装置825、バス815、及びメモリ850、並びに装置による基本的な方法でユーザが通信することを可能にするスモールタッチスクリーンなどの未発達な通信機構を含んでもよい。一般に、装置がより特定目的になるほど、機能する装置のためにより少ない要素の存在が必要になる。いつくつかの装置において、ユーザとの通信は、タッチベーススクリーン又は同一機構を介するかもしれない。
【0086】
当業者にとっては当然のことながら、いかなるシステム構成も、特定の実現手段に従って種々の目的に使用することができる。本発明を実現する制御ロジック又はソフトウェアは、局所的又は遠隔的に、プロセッサ810がアクセス可能に、機械読み取り可能媒体に格納され得る。機械読み取り可能媒体は、機械(例えば、コンピュータ)によって読み取り可能な形式で情報を格納又は伝送する機構を含む。例えば、機械読み取り可能媒体は、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリ装置、電気的、光学的、音響工学的、又は信号を伝播する他の形式(例えば、搬送波、赤外線信号、デジタル信号など)を含む。
【0087】
以上、特定の実施例を示して本発明が説明された。しかし、添付されたクレームに示したように本発明の上位概念及び範囲から逸脱することなく種々の修正及び変更がなされることが明らかである。したがって、明細書及び図面は、限定的意味よりも実例として捉えられるべきである。
【図面の簡単な説明】
【0088】
【図1】本発明に関する暗号サービスのコンポーネントの一実施形態を示すネットワーク図である。
【図2】本発明の暗号プロトコルを実現するサーバ及びクライアントの一実施形態を示すブロック図である。
【図3】暗号プロトコルを利用する一実施形態を示す概略フローチャートである。
【図4A】本発明に関するリーダ及びタグの初期化の一実施形態を示す信号フロー図である。
【図4B】本発明に関するリーダ及びタグの初期化の一実施形態を示す信号フロー図である。
【図5】暗号化、認証及び機密性のタグIDプロトコルを使用する一実施形態を示す信号フロー図である。
【図6】暗号化及び機密性のタグIDプロトコルを使用する一実施形態を示す信号フロー図である。
【図7】機密性及びアントレーサビリティの単純化されたタグIDプロトコルを使用する一実施形態を示す信号フロー図である。
【図8】本発明とともに使用されるコンピュータシステムの一実施形態を示すブロック図である。

【特許請求の範囲】
【請求項1】
暗号プロトコルを提供する方法であって、
低処理電力システムのプライベートキーの使用に基づく認証と、
無権限者がタグの識別子を知ることができないように、前記タグの識別子を保護する機密性と、
呼び掛けに対する応答として異なる値が返され、リーダが前記応答によって前記低処理電力システムを識別することができないことを保証するアントレーサビリティと、を有することを特徴とする方法。
【請求項2】
請求項1において、
前記暗号プロトコルは、楕円曲線暗号を含むことを特徴とする方法。
【請求項3】
請求項1において、
前記認証は、前記低処理電力システムのプライベートキーを利用し、前記プライベートキーと受信した呼び掛けとの関数を前記低処理電力システムで計算することを特徴とする方法。
【請求項4】
請求項1において、
前記アントレーサビリティは、認証値と結合された追加の暗号値を提供することを特徴とする方法。
【請求項5】
請求項1において、
前記機密性は、リーダのパグリックキーで前記タグの識別子を暗号化することを特徴とする方法。
【請求項6】
請求項1において、
リーダと前記低処理電力システムとの間で初期パラメータを交換することを特徴とする方法。
【請求項7】
請求項6において、
前記初期パラメータは、前記認証、前記機密性、及び前記アントレーサビリティのための、タグの識別子と、楕円曲線と、前記楕円曲線上のポイントとを含むことを特徴とする方法。
【請求項8】
請求項7において、
前記楕円曲線及び前記ポイントは、前記認証、前記機密性、及び前記アントレーサビリティのために同一であることを特徴とする方法。
【請求項9】
請求項6において、
前記リーダは、前記初期パラメータを前記低処理電力システムに提供することを特徴とする方法。
【請求項10】
RFIDタグを利用する方法であって、
リーダから呼び掛けを受信し、
S=f(s,OE),U=f(u,OO),B=E(n,kE),G=f(A,kO)を計算し、
ここで、Aは、前記呼び掛け及び前記RFIDタグのプライベートキーの関数、
s及びuは、前記RFIDタグによって生成された乱数、
nは、前記タグの識別子、
E及びkOは、それぞれ前記リーダの第1パブリックキー及び第2パブリックキーの関数、及び
E及びOOは、前記リーダによって提供されるオリジネータであり、
S、U、B、及びGを前記リーダに返信し、
前記返信データは、呼び掛け応答及び前記タグの識別子を含み、同一の呼び掛けに対して応答するときであっても、それぞれの応答で特有であることを特徴とする方法。
【請求項11】
請求項10において、
前記オリジネータOE及びOOは、楕円曲線上のポイントであることを特徴とする方法。
【請求項12】
請求項10において、
前記オリジネータOE及びOOは、大きい素数のジェネレータであることを特徴とする方法。
【請求項13】
請求項10において、
前記RFIDタグの初期化を含み、
前記初期化は、機密性のための第1キー対の第1パブリックキーと、難読化のための第2キー対の第2パブリックキーと、タグの識別子とを、前記リーダから受信することを含むことを特徴とする方法。
【請求項14】
請求項13において、
前記初期化は、認証のための第3のキー対を選択し、前記第3キー対のパブリックキーを前記リーダへ送信することを含むことを特徴とする方法。
【請求項15】
請求項13において、
前記初期化は、認証のための第3キー対のプライベートキーを前記リーダから受信し、前記第3キー対の前記プライベートキーが前記RFIDタグによってのみ格納されることを特徴とする方法。
【請求項16】
データを送信及び受信するトランシーバと、
暗号計算を実行する暗号ロジックと、を有し
前記トランシーバは、リーダシステムから呼び掛けを受信し、
前記暗号ロジックは、S=f(s,OE),U=f(u,OO),B=E(n,kE),G=f(A,kO)を計算し、
Aは、前記呼び掛け及び前記低処理電力システムのプライベートキーの関数であり、
s及びuは、乱数であり、
nは、前記低処理電力システムの識別子であり、
E及びkOは、それぞれ前記リーダの第1パブリックキー及び第2パブリックキーの関数であり、
E及びOOは、前記リーダによって提供されるオリジネータであり、
前記トランシーバは、S,U,B,及びGを前記リーダシステムに返信し、前記返信データは、呼び掛け応答及び前記タグの識別子を含み、同一の呼び掛けに対して応答するときであっても、それぞれの応答で特有であることを特徴とする低処理電力システム。
【請求項17】
請求項16において、
前記低処理電力システムのプライベートキーと、前記低処理電力システムの識別子とを格納する安全なメモリを有することを特徴とする低処理電力システム。
【請求項18】
請求項16において、
前記暗号ロジックは、乱数s及びuを生成することを特徴とする低処理電力システム。
【請求項19】
請求項16において、
前記リーダの前記パブリックキーと、前記タグの識別子とを含む初期化データを格納するメモリを有することを特徴とする低処理電力システム。
【請求項20】
請求項16において、
前記オリジネータOE及びOOは、楕円曲線上のポイントであり、
前記オリジネータOE及びOOは、同じ楕円曲線上の同じポイントであることを特徴とする低処理電力システム。
【請求項21】
リーダシステムによって安全に質問されるように設計された低処理電力システムであって、
前記リーダシステムから呼び掛けを受信するトランシーバと、
前記呼び掛けに対する応答を計算する暗号ロジックと、を有し、
前記応答は、前記低処理電力システムのプライベートキーを含み、
前記暗号ロジックは、前記リーダシステムへ返信するための返信データを計算し、
前記返信データは、前記呼び掛けに対する応答と、暗号化キーと、認証キーと、難読化キーとの組み合わせであることを特徴とする低処理電力システム。
【請求項22】
請求項21において、
前記暗号化キーは、2つの乱数を生成するものであり、第1乱数を暗号化キーで暗号化し、第2乱数を難読化キーで暗号化し、認証キーを前記リーダシステムのパブリックキーで暗号化することを特徴とする低処理電力システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4A】
image rotate

【図4B】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公表番号】特表2009−540703(P2009−540703A)
【公表日】平成21年11月19日(2009.11.19)
【国際特許分類】
【出願番号】特願2009−514567(P2009−514567)
【出願日】平成19年6月11日(2007.6.11)
【国際出願番号】PCT/US2007/070916
【国際公開番号】WO2008/033590
【国際公開日】平成20年3月20日(2008.3.20)
【出願人】(500421370)ヴェリサイン インコーポレイテッド (2)
【Fターム(参考)】