(57)【要約】  検証エンティティによりエンティティを認証する方法。前記エンティティは１対の秘密鍵XおよびYを共有している。秘密鍵XおよびYは、n × m (n, m > 1)のバイナリ行列であり、前記方法は、以下のステップ：・前記検証エンティティ(2)および前記認証されるエンティティ(1)によりそれぞれ無作為に抽出されたｎビットのバイナリベクトルａおよびｂを交換するステップと、前記認証されるエンティティ(1)が、ｍビットのノイズバイナリベクトルｃを無作為に抽出するステップと、（I）であるｍビットの応答ベクトルｚを計算し検証エンティティ(2)に送信するステップと、・前記検証エンティティが、誤りベクトル(II)のハミング重み(220')を計算するステップと、・ｒ個の誤りベクトルｅのハミング重みが、確率ηの関数であるパラメータ(Ｔ, ｔ)と、比較関係(230')を満たす場合に、認証を承認する(240')ステップと、をｒ回(ｒ≧１)繰り返すことを特徴とする。
2010528512.tif 000002
【特許請求の範囲】
【請求項１】
検証エンティティ(2)によりエンティティ(1)を認証する方法であって、
前記エンティティは、１対の秘密鍵XおよびYを共有ており、前記秘密鍵XおよびYは、n × m (n, m > 1)のバイナリ行列であることを特徴とし、
前記方法は、
・前記認証されるエンティティ(1)および前記検証エンティティ(2)が、前記検証エンティティ(2)および前記認証されるエンティティ(1)から無作為にそれぞれ抽出されたｎビットのバイナリベクトルａおよびｂを交換するステップと、前記認証されるエンティティ(1)が、ｍビットのノイズバイナリベクトルｃを無作為に抽出するステップと、前記ｍビットのそれぞれは、1/2未満の確率ηで１と等しく、
【数１】
2010528512.tif 000018
であるｍビットの応答ベクトルｚを計算し前記検証エンティティ(2)に送信するステップと、
・前記検証エンティティ(2)が、誤りベクトル
【数２】
2010528512.tif 000019
のハミング重みを計算するステップと、
・その後、r個の誤りベクトルｅのハミング重みが、確率ηの関数であるパラメータ(Ｔ, ｔ)との比較関係を満たす場合に、認証を承認するステップと、
を具備し、
これらのステップをｒ回(ｒ≧１)繰り返すことを特徴とする検証エンティティ(2)によりエンティティ(1)を認証する方法。
【請求項２】
前記比較関係は、ｒ回の逐次代入にわたり得られた誤りベクトルｅのハミング重みの和が、しきい値Ｔであるパラメータ未満であることを特徴とする請求項１に記載の方法。
【請求項３】
前記しきい値Ｔは、値ｒ(η＋ε)ｍであり、εは1/2未満のマージンであることを特徴とする請求項２に記載の方法。
【請求項４】
前記比較関係は、それぞれの逐次代入で得られた誤りベクトルｅのハミング重みが、しきい値Ｔであるパラメータ未満であることを特徴とする請求項１に記載の方法。
【請求項５】
前記比較関係は、それぞれの逐次代入で得られた誤りベクトルｅのハミング重みが、しきい値Ｔであるパラメータと等しいことであることを特徴とする請求項１に記載の方法。
【請求項６】
前記ｔは、値(η＋ε)ｍであり、εは、1/2未満のマージンであることを特徴とする請求項４または５に記載の方法。
【請求項７】
前記行列XおよびYは、Toeplitz行列であることを特徴とする請求項１から６のいずれか一項に記載の方法。
【請求項８】
検証エンティティ(2)により認証されるエンティティであって、
前記エンティティは、一対の秘密鍵XおよびYを共有しており、
前記認証されるエンティティ(1)は、n × m (n, m > 1)のバイナリ行列からなる前記秘密鍵XおよびYを格納する手段(10)と、前記検証エンティティ(2)と伝送する手段(12)と、以下のステップ：
・ｎビットのバイナリベクトルｂを無作為に抽出し、検証エンティティ(2)に送信するステップと、
・ｎビットのバイナリベクトルａを検証エンティティ(2)から受信するステップと、
・ｍビットのノイズバイナリベクトルｃを無作為に抽出するステップと、前記ｍビットのそれぞれは1/2未満の確率ηで１であり、
【数３】
2010528512.tif 000020
であるｍビットの応答ベクトルｚを計算し検証エンティティ(2)に送信するステップと、
をｒ回(ｒ≧１)実施するように構成されている計算手段と、
を含むことを特徴とする検証エンティティ(2)により認証されるエンティティ。
【請求項９】
コンピュータプログラムが、認証されるエンティティ(1)の計算手段(11)のコンピュータのフォーミングパートにより実行される場合に、請求項８に記載のステップを実行するプログラム命令を含むことを特徴とするコンピュータプログラム。
【請求項１０】
認証されるエンティティ(1)と秘密鍵XおよびYを共有している検証エンティティであって、前記検証エンティティ(2)は、
n × m (n, m > 1)のバイナリ行列からなる秘密鍵XおよびYを格納する手段(20)と、
認証されるエンティティ(1)と伝送する手段(22)と、
以下のステップ：
・前記認証されるエンティティ(1)からｎビットのバイナリベクトルｂを受信するステップと、
・前記認証されるエンティティ(1)にｎビットのバイナリベクトルａを無作為に抽出し送信するステップと、
・前記認証されるエンティティ(1)からｍビットの応答ベクトルｚを受信するステップと、
・誤りベクトル
【数４】
2010528512.tif 000021
のハミング重みを計算するステップと、ｒ個の誤りベクトルｅのハミング重みが、所定の確率ηの関数であるパラメータ(Ｔ, ｔ)との比較関係を満たす場合に、認証を承認するステップと、
を、ｒ回(ｒ≧１)実施するように構成されている計算手段(21)と、
を具備することを特徴とする検証エンティティ(2)。
【請求項１１】
前記コンピュータプログラムが、前記検証エンティティ(2)の前記計算手段(21)のコンピュータフォーミングパートにより実行される場合に、請求項１０に記載のステップを実行するプログラム命令を含むことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検証エンティティによりエンティティを認証する方法に関する。
【０００２】
本発明は、特にRFID(radio-frequency identification)タグにおける接触または非接触での、超低価格の電子マイクロチップの認証のための暗号プロトコルの分野におけるアプリケーションに特に有利である。
【背景技術】
【０００３】
例えばRFID型などの低価格電子マイクロチップは、標識付け(labeling)または、対象の追跡(薬の処方、図書館の本など)ならびに製造、および公共交通機関のチケットといった電子チケットの検証といった多くの応用技術に使用されている。
【０００４】
それらの応用技術に関係なく、マイクロチップを偽造すること、特に、それらをコピーまたは複製すること、またはそれらが送信するデータを再現することによるによる不正を防ぐ必要がある。それらの応用技術をそういった侵害から保護するために、マイクロチップがマイクロチップリーダーと情報をやりとりする(interact)場合に、その認証を必要とすることは避けられない。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】A. Juels and S.A. Weis, "Authenticating Pervasive Devices with Human Protocols", in V. Shoup, Editor, Advances in Cryptology - Crypto 05, Lecture Notes in Computer Science, Vol. 3126, pp. 293-308, Springer Verlag
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、低価格マイクロチップなどの認証されるエンティティとマイクロチップリーダーなどの検証エンティティ(verification entity)間に使用されるどの認証プロトコルも、通常、配線論理タイプ(hard-wired logic)であり、このタイプのマイクロチップの非常に限定された計算リソース(computation resource)を考慮しなければならない。
【０００７】
RFIDマイクロチップの要件に合うように特殊設計された対称ＨＢ＋(Hopper-Blum)認証プロトコルが、近年提唱されている(A. Juels and S.A. Weis, "Authenticating Pervasive Devices with Human Protocols", in V. Shoup, Editor, Advances in Cryptology - Crypto 05, Lecture Notes in Computer Science, Vol. 3126, pp. 293-308, Springer Verlagを参照)。
【０００８】
図１は、認証されるエンティティと検証エンティティ間におけるＨＢ＋プロトコル下でのデータ交換(exchange)を示している。
【０００９】
この図から分かるように、例えば、RFIDマイクロチップである認証されるエンティティおよび、例えば、マイクロチップリーダーである検証エンティティは、ｎビットのバイナリベクトルからなる１対の秘密鍵xおよびyを共有する。これらの秘密鍵は、マイクロチップの記憶手段１０およびマイクロチップリーダーの記憶手段２０に格納されている。
【００１０】
前記ＨＢ＋プロトコルは、ｒ回の連続した逐次代入(successive iteration)を展開する(unfold)。それぞれの逐次代入(iteration)において、マイクロチップは、ｎビットのバイナリベクトルｂを無作為に抽出し(draw)(ブロック１００)、前記マイクロチップリーダーに送信する(1)。同様に、前記マイクロチップリーダーは、ｎビットのバイナリベクトルａを無作為に抽出し(ブロック２００)、前記マイクロチップに送信する(2)。前記ベクトルｂおよびａの無作為抽出は、一様(uniform)確率法則に従って達成される。
【００１１】
その後前記マイクロチップは、前記マイクロチップリーダーにより発信された(launched)チャレンジ(challenge)ａを計算することにより(ブロック１２０)応答し、それに以下の
【００１２】
【数１】
2010528512.tif 000003
【００１３】
で示されるノイズｚにより影響をうける応答を送信する(3)。ここで、
【００１４】
【数２】
2010528512.tif 000004
【００１５】
は、モジュロ２(modulo 2)スカラー積演算を表し、
【００１６】
【数３】
2010528512.tif 000005
【００１７】
は、モジュロ２和を表している。ノイズビットνは、マイクロチップにより無作為に抽出される(ブロック１１０)。ノイズビットνは、η＜１／２の確率で値１であり、（１−η）の確率で値０である。
【００１８】
前記マイクロチップリーダーは、前記受信した応答ｚが以下の式
【００１９】
【数４】
2010528512.tif 000006
【００２０】
を満たさなければ、現在の逐次代入を拒否する(ブロック２１０)。この場合において、拒否された逐次代入の数nbrのカウンタは、１ユニット増加される(ブロック２２０)。逐次代入の数nbtのカウンタによりカウントされた(ブロック２５０)ｒ回の逐次代入の最後に、拒否された逐次代入の数nbrであるカウンタの数が所与のしきい値ｔ以下のとき(ブロック２３０)かつそのときに限り前記認証が承認される(ブロック２４０)。もちろん値ｔは、確率ηの関数であり、単純な値ｔとしては例えばｔ＝ｒ×ηである。
【００２１】
ＨＢ＋プロトコルが推奨のデータ交換は、ｒ回の３パスの逐次代入(r iterations of three passes)で構成されているが、ｂ、ａ、ｚのｒ値を計算するとともに同時に送信する３パスのデータ交換１回に減らすことも可能である。
【００２２】
前記ＨＢ＋プロトコルの利点は、認証計算がかなりシンプルである点にある。
【００２３】
さらに、そのロバストネスは、LPN(Learning Parity with Noise：雑音存在下におけるパリティ値の同定)問題の雑音下の線形システムの解法を見つけることの困難性による。最後に、ＨＢ＋プロトコルは、項
【００２４】
【数５】
2010528512.tif 000007
【００２５】
を備えない雑音下における応答という点において、それとは異なる歴史的に早期のＨＢプロトコルと比較し、バイナリベクトルｂにより誘導されたマスキング効果が、秘密鍵ｙと結合されるという利点を有する。ＨＢプロトコルは、攻撃者(adversary)が、一定のチャレンジａを送信しマイクロチップリーダーからの応答を受信するという攻撃に弱かった。最も多い応答は
【００２６】
【数６】
2010528512.tif 000008
【００２７】
であり、ａが知られている。第１ステップにおいて十分な数のａ値のために
【００２８】
【数７】
2010528512.tif 000009
【００２９】
を得て、第２ステップで、線形システムを解くことによりｘを導き出すことが可能であった。
【００３０】
しかし、実際には、ＨＢ＋プロトコルは、効率的に使用することを妨げるという欠点を有している。
【００３１】
既に指摘したように、第１の欠点は、このプロトコルはａに対するいくつかの積極的攻撃に対して耐性があるけれども、それにもかかわらず、攻撃者が複数の連続した認証（成功／失敗）の結果を利用できる場合に遭遇する他の攻撃への脆弱性が残っている。
【００３２】
そのような攻撃はマイクロチップリーダーからマイクロチップへチャレンジａが送信される場合に前記チャレンジａを妨害し、連続してそのビットを改変する。例えば、ａの第１ビットが改変された場合、この改変後においても結果が変わらなかったならば、秘密ベクトルｘの第１ビットは０であることが明白である。逆に、結果が変わったならば、ｘの第１ビットはおそらく１と等しい。ｘの第２ビットを見つけるためにａの第２ビットを修正すれば十分であり、ｘのｎビット全てを得るために、ｎビットまで同様に繰り返す。
【００３３】
ＨＢ＋プロトコルの第２の欠点は、過度の誤認警報(false alarm)を生成することである。誤認警報は、正当なマイクロチップの認証拒絶と定義される。以下の値： n = 224 ビット、η = 0.25、r = 100の逐次代入、ｔ = η×ｒ = 25において、例えば、誤認警報率は45%であり、これは全く受け入れられるものではない。偽陽性率(false positive rate)、すなわち無作為に応答するチップの認証の成功は、3 × 10-7付近である。
【００３４】
ｔに期待値ｔ = η×ｒ = 25の代わりに、例えば35といった高い値をとった場合、前記誤認警報率は、1%にまで下がる。これは、依然として受け入れられないが、偽陽性率は、およそ1.7 × 10-3まで増加する。
【００３５】
最後に、ＨＢ＋の第３の欠点は、マイクロチップとマイクロチップリーダー間の通信において過度の複雑さ導くことである。前と同じ数値において、それぞれの認証に44900ビットのデータ交換が必要であることが示される。すなわち、100回の逐次代入のそれぞれにおいて、ｂに対し224ビット、ａに対し224ビット、結果ｚに対し１ビットである。
【００３６】
たとえ10000bpsのビットレートであったとしても、マイクロチップリーダーは、マイクロチップの認証に４秒以上も必要とし、これは、マイクロチップへの電力供給に関する問題はいうまでもなく、人間工学の観点からも耐え難い。
【課題を解決するための手段】
【００３７】
そこで、本発明は、検証エンティティによるエンティティ認証の方法を提供する。前記エンティティは、１対の秘密鍵XおよびYを共有している。前記方法は、前記秘密鍵XおよびYが n × m (n, m > 1)のバイナリ行列であるという点、および、以下のステップ：
【００３８】
・認証されるエンティティおよび検証エンティティが、検証エンティティおよび認証されるエンティティからそれぞれ無作為に抽出されたｎビットのバイナリベクトルａおよびｂのデータ交換するステップと、前記認証されるエンティティが、ｍビットのノイズバイナリベクトルｃを無作為に抽出するステップと、以下の
【００３９】
【数８】
2010528512.tif 000010
【００４０】
で与えられるｍビットの応答ベクトルｚを計算し検証エンティティに送信するステップ。ここで、前記ｍビットのそれぞれは、1/2未満の確率ηで１である。
【００４１】
・検証エンティティが、誤りベクトル
【００４２】
【数９】
2010528512.tif 000011
【００４３】
のハミング重みを計算するステップ。
【００４４】
・ｒの誤りベクトルのハミング重みが、確率ηの関数であるパラメータと比較関係を満たした場合に、その後認証を承認する(accepting)ステップ。
【００４５】
を含み、ｒ回(ｒ≧１)繰り返すことに特徴がある。
【００４６】
したがって、本発明の方法は、ＨＢ＋プロトコルと比較して、秘密鍵Xを再構成することを目的とするチャレンジａのビットを改変する攻撃への耐性が、改善されている。もし、ａの第１ビットが改変された場合、その改変は、Xのm列の第１ビットとそのビットとの積(product)に影響し、積aXのｍビットにも影響する。したがって、応答ｚ全体にわたって影響する。したがって、ａのビットの改変の認証結果の効果を観測することにより、秘密鍵Xに関するどの情報も推測することは、不可能である。なぜならzの複数のｍビットが、その数またはその位置を示す(tell)ことなく改変されうるからである。ＨＢ＋プロトコルにおいては、ａの１ビットの改変は、１ビットのみからなる応答ｚに直接影響する。
【００４７】
本発明の方法の実施においては、１回だけの逐次代入によりあたかもｍ回の逐次代入がなされたかのように、それぞれの逐次代入の応答ｚは、ｍビットで記述される。
【００４８】
この結果、第一極限状態(first extreme situation)において、次数という因数により逐次代入の数を推測することが可能である。そして、実際には、逐次代入の数を１回のみに限定することは、誤認警報率の点ではＨＢ＋プロトコルのパフォーマンスを保つが、交換されるビットの数は、r(2n ＋ 1)から(2n ＋ m)まで、すなわちn = 224、およびm = 128において44900ビットから576ビットまで減少し、かなりの改善を示す。この例は、ＨＢ＋プロトコルでは想定できない逐次代入の回数ｒを１に限定する場合の本発明の恩恵を十分に証明する。
【００４９】
第二極限状態において、逐次代入の回数は同じである。交換されるデータの総量は、わずかに増加するが誤認警報率は、微々たるものである。
【００５０】
もちろん、実際的な状態は、誤認警報率を減少させるとともにマイクロチップとマイクロチップリーダー間の交換されるビットの数を減少させるという観点において、これら２つの極限状態間から選択されなければならない。
【００５１】
それはそれとして、本発明は、誤認警報率および当該２つのエンティティ間で交換される情報の総量に関しＨＢ＋プロトコルよりもよいパフォーマンスを提供することが明白である。
【００５２】
本発明の一構成例において、前記行列XおよびYは、Toeplitz行列である。以下においてさらに詳しく示されるが、この有利な特徴は、マイクロチップおよびマイクロチップリーダーの記憶容量を、他の行列が選択された場合のn × mにかえて(n ＋ m − 1)の範囲にする点にある。他の利点は、単純化された積aXおよびbYの計算である。
【００５３】
本発明は、検証エンティティにより認証されるエンティティも提供する。前記エンティティは、１対の秘密鍵XおよびYを共有し、前記認証されるエンティティは、n × m (n, m > 1)のバイナリ行列からなる秘密鍵XおよびYを格納する手段と、前記検証エンティティと伝送する手段と、以下のステップ：
【００５４】
・ｎビットのバイナリベクトルｂを無作為に抽出し、検証エンティティへ送信するステップ。
【００５５】
・検証エンティティから、ｎビットのバイナリベクトルａを受信するステップ。
【００５６】
・ｍビットのノイズバイナリベクトルｃを無作為に抽出するステップと、前記ｍビットのそれぞれは、1/2未満の確率ηで１であり、
【００５７】
【数１０】
2010528512.tif 000012
【００５８】
であるｍビットの応答ベクトルｚを計算し検証エンティティへ送信するステップ。
【００５９】
をｒ回(ｒ≧１)実施するように構成されている計算手段と、を含むことを特徴とする。
【００６０】
本発明は、また、プログラムが、前記認証されるエンティティの計算手段のコンピュータフォーミングパートにより実行される場合に、前記認証されるエンティティにより実施されるステップを実行するためのプログラム命令を含むコンピュータプログラムを提供する。
【００６１】
本発明は、さらに、１対の秘密鍵XおよびYを認証されるエンティティと共有している検証エンティティを提供する。前記検証エンティティは、n × m (n, m > 1)のバイナリ行列からなる秘密鍵XおよびYを格納する手段と、前記認証されるエンティティと伝送する手段と、以下のステップ：
【００６２】
・認証されるエンティティからｎビットのバイナリベクトルｂを受信するステップ。
【００６３】
・ｎビットのバイナリベクトルａを無作為に抽出し、前記認証されるエンティティに送信するステップ。
【００６４】
・前記認証されるエンティティからｍビットの応答ベクトルｚを受信するステップ。
【００６５】
・誤りベクトル
【００６６】
【数１１】
2010528512.tif 000013
【００６７】
のハミング重みを計算するステップと、r個の誤りベクトルｅのハミング重みが、所定の確率ηの関数であるパラメータ(Ｔ, ｔ)と比較関係を満たす場合には、認証を承認するステップ。
をｒ回(ｒ≧１)実施するように構成された計算手段と、を含むことを特徴とする。
【００６８】
本発明は、最後に、プログラムが、前記検証エンティティの前記計算手段のコンピュータフォーミングパートにより実行される場合に、前記検証エンティティにより実施されるステップを実行するプログラム命令を含むコンピュータプログラムを提供する。
【００６９】
以下の説明は、添付の図面を参照して限定されない例として提示するものであり、本発明の本質が何に存するか、どのように実行されるのかを説明するものである。
【図面の簡単な説明】
【００７０】
【図１】ＨＢ＋プロトコル下における認証されるエンティティと検証エンティティ間のデータ交換を示している。
【図２】本発明の方法における認証されるエンティティと検証エンティティ間のデータ交換を示している。
【図３】図２の方法により認証されるエンティティを図示したものである。
【図４】図３のエンティティを、図２の方法を使用して認証するための検証エンティティを図示したものである。
【発明を実施するための形態】
【００７１】
図２は、例えば、接触または非接触のマイクロチップリーダーである検証エンティティが、この例ではRFIDマイクロチップである認証されるエンティティの同一性の検証を可能とする認証方法を示している。
【００７２】
図２に示されている前記方法は、対称法(symmetrical method)と呼ばれ、２つのエンティティ(マイクロチップとマイクロチップリーダー)が同じ秘密鍵を共有する。これらのＸおよびＹで指定されている鍵は、ｎ行ｍ列からなるn × m (n, m > 1)のバイナリ行列である。前記秘密鍵XおよびYは、前記マイクロチップの格納手段１０およびマイクロチップリーダーの格納手段２０に格納されている(図２、図３、図４を参照).
【００７３】
本発明の方法は、ｒ回(ｒ≧１))繰り返される複数のステップで構成されている。「ｒ回」という表現は、前記マイクロチップと前記マイクロチップリーダー間の交換が、図２に示されているように順次にｒ回の３パスの逐次代入が実施されることを示している。逐次代入の回数nbtは、カウンタによりそれぞれの逐次代入ごと、または、３パスと並列的に、１づつ増加させられる(ブロック250)。それぞれのパスは、あるエンティティから他のエンティティへのデータのｒアイテムの伝送を含む。
【００７４】
図２における例では、前記マイクロチップ1は、それぞれの逐次代入ごとに無作為に抽出し(ブロック１００)、マイクロチップリーダー2に、１列のｎビットのバイナリベクトルｂを送信する(1)。その後前記マイクロチップリーダー2は、前記マイクロチップ1に、無作為に抽出された１列のｎビットのバイナリベクトルであるチャレンジａ(ブロック２００)を送信する(2)。前記バイナリベクトルｂおよびaは、0と1ビットの一様分布(uniform distribution)にしたがって無作為に抽出される。
【００７５】
前記チャレンジａに応答して、前記マイクロチップ1は、モジュロ２和
【００７６】
【数１２】
2010528512.tif 000014
【００７７】
(ブロック１２０')であるｍビットの一列のバイナリベクトルｚを、前記マイクロチップリーダー2に送信する(3)。ここで、cは、確率法則にしたがって、マイクロチップ1により無作為に抽出されたｍビットの１列のノイズバイナリベクトルである(ブロック110')。cのそれぞれのビットは確率法則にしたがって、等確率、または1/2未満であるパラメータη未満の確率、またはパラメータηと等しい確率で１に等しいことが保証される。そのために、ノイズベクトルｃのそれぞれのビットは、パラメータ η < 1/2によりベルヌーイの法則にしたがって、他とは無関係に無作為で抽出される。前記ノイズベクトルｃは、前記ビットの和(ハミング重み)が、η < 1/2において値 η × m 以下であるｍビットの全てのベクトルから無作為で抽出してもよい。もちろん、前記ノイズベクトルｃは、バイナリベクトルｂを無作為に抽出するのと同時に、マイクロチップにより無作為に抽出してもよい。前記バイナリベクトルｂは、前記ベルトルａの積極的攻撃をマスクするのに使用されることを想起すべきである。
【００７８】
それぞれの逐次代入において、前記マイクロチップリーダー2は、以下の式
【００７９】
【数１３】
2010528512.tif 000015
【００８０】
で与えられるｍビットの誤りベクトルｅ計算する(ブロック２１０')。ここで、zは、前記マイクロチップ1により送信された応答ベクトルであり、誤りベクトルｅのハミング重みPH(e) (block 220')は、このようにして得られる。
【００８１】
ｒ回の逐次代入の後、マイクロチップリーダー2によるマイクロチップ1の認証の承認又は拒絶が、それぞれの逐次代入において得られる誤りベクトルｅのｒ個のハミング重みPH(e)と、確率ηの関数であるパラメータとの比較から決定される。
【００８２】
いくつかのストラテジがまた可能である。
【００８３】
図２に代表される第１ストラテジは、r個の誤りベクトルｅのハミング重みの和S (ブロック221')が、例えばｒ(η＋ε)ｍである所与のしきい値Ｔより下の場合(ブロック２３０')かつそのときに限り認証を承認する(ブロック２４０')。ここで、εは、1/2以下のマージンであり、おそらくゼロである。
【００８４】
第２ストラテジは、それぞれの逐次代入において得られる誤りベクトルｅのハミング重みがしきい値Ｔ以下である場合かつそのときに限り認証を承認する。
【００８５】
最後に、第３ストラテジは、それぞれの逐次代入において得られる誤りベクトルｅのハミング重みが値tと等しい場合かつそのときに限り認証を承認する。
【００８６】
第２および第３ストラテジにおいて、前記パラメータtは、値(η＋ε)ｍを有する。ここでεは、1/2以下のマージンであり、おそらくゼロである。
【００８７】
r = 1, n = 256, m = 128, η＝0.25をとり、長さ128のバイナリベクトルから無作為に抽出したノイズベクトルｃ、そのハミング重みを32、すなわち η × mであり、マイクロチップの認証は、上記第３ストラテジ下において、それぞれの逐次代入における誤りベクトルｅの重みがきっかり32と等しい場合かつそのときに限り承認される。ここでε = 0である。
【００８８】
この例において、データ交換の全体の長さは640ビット、すなわち(2n + m)ビットのみである。その一方で、誤認警報率は、厳密にゼロであり、zの乱数値での攻撃による儀陽性率は、10-8付近であり、全体として実際上受け入れられる。
【００８９】
図２において、前記マイクロチップ1と前記マイクロチップリーダー2間の一連の交換は、以下のとおりである：前記マイクロチップリーダーにbを送信するステップ、前記マイクロチップにaを送信するステップ、前記マイクロチップがcを無作為に抽出するステップ、および前記マイクロチップリーダーにzを送信するステップ。異なるシーケンスであっても等しく使用可能である点に注意しなければならない。すなわち：前記マイクロチップにaを送信するステップ、前記マイクロチップがbおよびcを無作為に抽出するステップ、および前記マイクロチップリーダーがbおよびzを送信するステップ。このシーケンスは、データ交換の回数を減少させるという利点を有する。
【００９０】
行列XおよびYを格納するのに必要なメモリ量を大いに減少させ、前記マイクロチップと前記検証エンティティにより実施される計算の複雑さをおおいに減少させる実施においては、それぞれの行列XおよびYは、n × m未満の複数のビットを使用する前記マイクロチップ内に定義されているすべてのn × m行列の狭義の部分集合(strict subset)内から選択されうる。例えば、それぞれの行列を格納するのに必要なメモリ量は、XおよびYがToeplitz行列の場合には(n + m - 1)のみに減少可能である。すなわち、全ての係数において対角線に沿って一定係数の行列であることから、全体が第１行および第１列の係数により決定される。Xが、Toeplitz行列であって、ｘｉ，ｊがi番目の行およびｊ番目の列の係数である場合には、ｘｉ，ｊは、iがj以上の場合には、ｘｉ−ｊ＋１，１と等しく、その他の場合には、ｘ１，ｊ−ｉ＋１と等しい。
【００９１】
以下の実施は非常に効率的に、バイナリベクトルである例えばａと、(n + m - 1)個のそれの第１行およびそれの第１列の係数によって定められたToeplitz行列である例えばXの、ビットごとの積を、ｍビットの２つのレジスタを使用して計算する。前記レジスタの１つは前記行列の現在の行を計算するために使用され、他方は０に初期化され、ベクトル-行列積の部分結果を記憶するために使用される。第１レジスタは、Xの第１行で初期化される。その後、ベクトルａのそれぞれのビットが以下の方法で処理される。ａの現在のビットが１である場合には、Xの現在の行の値は、部分結果記憶レジスタの現在の値と排他的論理和演算子を使用し、ビットごとに結合される。そうでなければ、このレジスタの現在の値は、修正されない。どちらにしても、現在の行が行列Xの最後の行でない場合には、その行列の現在の行を含む前記レジスタは、このレジスタの最も左のセルに、新しい現在の行に対応する第１列の係数をコピーすることに続いてこのレジスタの中身を右方向に１ビットローテートすることで更新される。
【００９２】
１対の秘密鍵XおよびYを共有している２つのエンティティにおいて、図３に示されているように、マイクロチップリーダー2により認証されるマイクロチップ1は、n × m (n, m > 1)のバイナリ行列からなる秘密鍵XおよびYを格納する手段１０と、マイクロチップリーダー2と伝送する手段１２と、図２を参照して説明されている方法の以下のステップ：
【００９３】
・ｎビットのバイナリベクトルｂを無作為に抽出し、マイクロチップリーダー2に送信するステップ。
【００９４】
・ｎビットのバイナリベクトルａをマイクロチップリーダー2から受信するステップ。
【００９５】
・ｍビットのノイズバイナリベクトルｃを無作為に抽出するステップと、前記ｍビットのそれぞれは、1/2以下の確率ηで１であり、以下の
【００９６】
【数１４】
2010528512.tif 000016
【００９７】
であるｍビットの応答ベクトルｚを計算し、マイクロチップリーダー2へ送信するステップ。
、をｒ回実行するように構成されている計算手段１１と、を含む。
【００９８】
同様に、図４における、マイクロチップ1を認証するためのマイクロチップリーダー2は、n × m (n, m > 1)のバイナリ行列からなる秘密鍵XおよびYを格納する手段２０と、認証されるマイクロチップ1と伝送する手段２２と、図２を参照して説明されている方法の以下のステップ：
【００９９】
・認証されるマイクロチップ1からｎビットのバイナリベクトルｂを受信するステップ。
【０１００】
・ｍビットのバイナリベクトルaを無作為に抽出し、マイクロチップ1へ送信するステップ。
【０１０１】
・マイクロチップ1からｍビットの応答ベクトルｚを受信するステップ。
【０１０２】
・誤りベクトル
【０１０３】
【数１５】
2010528512.tif 000017
【０１０４】
のハミング重みを計算するステップと、r個の誤りベクトルｅのハミング重みが、確率ηの関数であるパラメータと比較関係を満たす場合に認証を承認するステップ。
、をｒ回(ｒ≧１)実行するように構成されている計算手段２１と、を含む。具体的には、これまで詳述したように、ｒ回の逐次代入にわたり得られる誤りベクトルｅのハミング重みの和が、しきい値Ｔであるパラメータ未満である場合に認証が承認される。
【符号の説明】
【０１０５】
Ｘ，Ｙ      秘密鍵（n × m のバイナリ行列）
ａ，ｂ      バイナリベクトル
ｃ      ノイズバイナリベクトル
ｅ      誤りベクトル
ｚ      応答ベクトル
η      確率
【図１】
2010528512.tif 000022
【図２】
2010528512.tif 000023
【図３】
2010528512.tif 000024
【図４】
2010528512.tif 000025
【国際調査報告】
2010528512.tif 000026
2010528512.tif 000027
2010528512.tif 000028
2010528512.tif 000029