(57)【要約】【課題】第1のユーザによって第2のユーザに送信される通信を安全化するコンピュータ実施方法を提供する。【解決手段】第1のユーザによって第2のユーザに送信される通信を安全化するためのコンピュータ実施方法は、第1のユーザによって、信用できる第三者から、第1のユーザに対応する少なくとも1つの公開暗号値と、第1のユーザに対応する少なくとも1つの私有暗号値を受信するステップと、第1のユーザによって、第2のユーザに、識別子によって識別される識別デバイスに対応する複数の値を提供するステップと、第1のユーザによって、第1のユーザの少なくとも1つの私有暗号値と、識別子によって識別される識別デバイスに保存された複数の値のうちの少なくとも1つを使用して、共用鍵を導出するステップと、第1のユーザによって第2のユーザに送信される通信を、共用鍵を用いて保護するステップとを含むことができる。【選択図】図1
2010220212.tif 000002
【特許請求の範囲】
【請求項１】
第1のユーザ(110)によって第2のユーザ(120)に送信される通信を安全化するコンピュータ実施方法であって、
前記第1のユーザ(110)によって、信用できる第三者(130)から、前記第1のユーザに対応する少なくとも1つの公開暗号値と、前記第1のユーザに対応する少なくとも1つの私有暗号値を受信するステップ(M2)と、
前記第1のユーザ(110)によって、前記第2のユーザ(120)に、識別子によって識別される識別デバイス(100)に対応する複数の値を提供するステップと、
前記第1のユーザ(110)によって、前記第1のユーザの前記少なくとも1つの私有暗号値と、前記識別子によって識別される前記識別デバイス(100)に対応する前記複数の値のうちの少なくとも1つを使用して、共用鍵を導出するステップ(M5)と、
前記第1のユーザ(110)によって前記第2のユーザ(120)に送信される通信を、前記共用鍵を用いて保護するステップ(M7)と
を含む方法。
【請求項２】
前記複数の値を提供するステップが、前記識別デバイスの暗号識別子の関数である第1の値を提供するステップを含む、請求項1に記載の方法。
【請求項３】
前記複数の値を提供するステップが、前記第2のユーザ(120)の少なくとも1つの私有暗号値の関数である第2の値を提供するステップを含む、請求項1または2に記載の方法。
【請求項４】
前記複数の値を提供するステップが、前記第1のユーザによって、前記識別子によって識別される前記識別デバイス(100)に前記複数の値を保存するステップを含む、請求項1から3のいずれか一項に記載の方法。
【請求項５】
前記複数の値を保存するステップが、前記保存された複数の値のうちの少なくとも1つの値を再暗号化された値で置き換えることによって、前記保存された複数の値を更新するステップ(UP10)を含む、請求項4に記載の方法。
【請求項６】
前記第1のユーザ(110)によって、前記信用できる第三者(130)から、前記第2のユーザ(120)の秘密暗号値の関数である値を受信するステップと、
前記第2のユーザ(120)の前記秘密暗号値の関数である前記値を使用して、前記第2のユーザの私有暗号値の関数である値を計算するステップと、
前記保存された複数の値のうちの前記第2の値を前記計算された値で置き換えることによって、前記保存された複数の値を更新するステップ(UP10)と、
前記識別子によって識別される前記識別デバイスに前記更新された複数の値を保存するステップと
をさらに含む、請求項3と組み合わされる請求項4に記載の方法。
【請求項７】
前記保存された複数の値を更新するステップが、
前記第1のユーザ(110)によって、前記信用できる第三者(130)に、前記保存された複数の値のうちの前記第2の値を送信するステップ(SS10)と、
前記第1のユーザ(110)によって、前記信用できる第三者(130)から、前記保存された複数の値のうちの前記第2の値から導出される前記再暗号化された値を受信するステップ(SS13)と
を含む、請求項3と組み合わされる請求項5に記載の方法。
【請求項８】
前記複数の値を提供するステップが、前記第2のユーザの前記少なくとも1つの私有暗号値の関数である第1の値を提供するステップを含む、請求項1に記載の方法。
【請求項９】
前記第1のユーザ(110)および前記第2のユーザ(120)が、前記識別子によって識別される前記識別デバイス(100)にアクセスしたことがあることを検証するために、相互認証を実行するステップをさらに含む、請求項1から8のいずれか一項に記載の方法。
【請求項１０】
前記共用鍵を導出するステップが、相互認証を実行するステップを含み、相互認証を実行するステップが、
前記第1のユーザ(110)によって、前記第2のユーザ(120)に、ランダムチャレンジを送信するステップ(A10)と、
前記第1のユーザ(110)によって、前記第2のユーザ(120)から、前記ランダムチャレンジと前記第2のユーザの少なくとも1つの私有暗号値との関数である値を受信するステップ(A12)と
を含む、請求項9に記載の方法。
【請求項１１】
前記第1のユーザ(110)によって、前記保存された複数の値のうちの前記第2の値の関数を、前記第2のユーザ(120)の少なくとも1つの公開暗号値の関数と比較するステップ(A13)
をさらに含む、請求項9または10に記載の方法。
【請求項１２】
相互認証を実行するステップが、
前記第1のユーザ(110)によって導出された前記共用鍵を、前記第2のユーザ(120)の共用鍵と比較するステップ
を含む、請求項9に記載の方法。
【請求項１３】
各比較演算が、計算ディフィ-ヘルマン問題を効率的に計算できない、効率的に計算可能な非退化双線形写像に、入力として値を提供することによって実行される、請求項11または12に記載の方法。
【請求項１４】
コンピュータシステムにロードされて実行された場合に、請求項1から13のいずれか一項に記載の方法による動作を前記コンピュータシステムに実行させるコンピュータ可読命令を含むコンピュータプログラム製品。
【請求項１５】
複数のユーザ間における安全な通信を提供するコンピュータシステムであって、
無線周波識別タグなどの識別デバイス(100)であって、識別子によって識別され、メモリを含む識別デバイスと、
前記識別子によって識別される前記識別デバイスに複数の値を保存するための命令を処理する
ように動作可能な第1のコンピュータ(110)と、
第2のコンピュータと、
前記第1のコンピュータおよび前記第2のコンピュータに少なくとも1つの公開暗号値を提供し、
前記第1のコンピュータおよび前記第2のコンピュータに少なくとも1つの私有暗号値を提供する
ように動作可能な第3のコンピュータとを含み、
前記第1のコンピュータは、前記第1のコンピュータに提供される前記少なくとも1つの私有暗号値と、前記識別子によって識別される前記識別デバイス(100)に保存された前記複数の値のうちの少なくとも1つから、共用鍵を導出するように動作可能であり、
前記第2のコンピュータは、前記第2のコンピュータに提供される前記少なくとも1つの私有暗号値と、前記識別子によって識別される前記識別デバイス(100)に保存された別の複数の値のうちの少なくとも1つから、共用鍵を導出するように動作可能である、
コンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
以下の説明は、第1のユーザから第2のユーザへの通信を安全化するための暗号の使用に関する。
【背景技術】
【０００２】
アイテムのトラッキングおよびトレーシングをサポートする識別デバイスが役立つことがある。各アイテムは、シリアル番号とも呼ばれる識別子を保有する識別デバイスを備えることができる。識別デバイスは、無線周波識別(RFID: Radio Frequency Identification)タグとして実施することができ、無線周波通信を介して読み取ることができる。多数の識別デバイスを同時に読み取ることができる。
【０００３】
能動的RFIDタグと受動的RFIDタグが存在する。能動的RFIDタグは、独自の電源を有するが、受動的タグは、リーダによって放出される信号の電力でもっぱら動作する。リーダは、タグと相互動作を行ってタグのメモリに保存された識別子を読み取ることができる特別なデバイスである。より複雑で強力なタグは、メモリ内に情報を保存することができ、ハッシングなどの簡単な暗号操作を実行することさえできる。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】D. Boneh、M.K. Franklin、「Identity-Based Encryption from the Well Pairing」、Journal of Cryptology、17(4)、2004年
【非特許文献２】B. Waters、「Efficient Identity-Based Encryption Without Random Oracles」、EUROCRYPT、114〜127頁、2005年
【発明の概要】
【課題を解決するための手段】
【０００５】
一態様によれば、第1のユーザによって第2のユーザに送信される通信を安全化するコンピュータ実施方法が提供される。この方法は、
第1のユーザによって、信用できる第三者から、第1のユーザに対応する少なくとも1つの公開暗号値と、第1のユーザに対応する少なくとも1つの私有暗号値を受信するステップと、
第1のユーザによって、第2のユーザに、識別子によって識別される識別デバイスに対応する複数の値を提供するステップと、
第1のユーザによって、第1のユーザの少なくとも1つの私有暗号値と、識別子によって識別される識別デバイスに保存された複数の値のうちの少なくとも1つを使用して、共用鍵を導出するステップと、
第1のユーザによって第2のユーザに送信される通信を、共用鍵を用いて保護するステップと
を含むことができる。
【０００６】
第1のユーザによって導出される共用鍵は、第2のユーザの共用鍵に等しい。
【０００７】
したがって、両方のユーザは、識別子によって識別される識別デバイスにアクセスすることができ、識別デバイスは、無線周波識別タグとすることができる。
【０００８】
第2のユーザは、信用できる第三者から、少なくとも1つの公開暗号値と、少なくとも1つの私有暗号値を受信することができる。さらに、第2のユーザは、第2のユーザの少なくとも1つの私有暗号値と、識別子によって識別される識別デバイスに保存された複数の値のうちの少なくとも1つから、共用鍵を導出することができる。
【０００９】
複数の値を提供するステップは、第2のユーザの少なくとも1つの私有暗号値の関数である第2の値を提供するステップを含むことができる。さらに、保存された第2の値は、生成元の冪とすることができる。
【００１０】
複数の値を提供するステップは、識別デバイスの暗号識別子の関数である第1の値を提供するステップを含むことができる。加えて、暗号識別子は、生成元の冪とすることができる。
【００１１】
複数の値を提供するステップは、第1のユーザによって、識別子によって識別される識別デバイスに複数の値を保存するステップを含むことができる。
【００１２】
複数の値を提供するステップは、第1のユーザによって、第2のユーザに、識別子によって識別される識別デバイスに対応する複数の値を送信するステップを含むことができる。複数の値を送信するステップは、識別子によって識別される識別デバイスに値を保存するステップの代替として理解することができる。さらに、多数の識別デバイスに対応する1組の値を送信することもできる。
【００１３】
保存された複数の値のうちの少なくとも1つの値を再暗号化された値で置き換えることによって、保存された複数の値が更新される場合もある。
【００１４】
さらに、この方法は、
第1のユーザ(110)によって、信用できる第三者(130)から、第2のユーザ(120)の秘密暗号値の関数である値を受信するステップと、
第2のユーザ(120)の秘密暗号値の関数である値を使用して、第2のユーザの私有暗号値の関数である値を計算するステップと、
保存された複数の値のうちの第2の値を計算された値で置き換えることによって、保存された複数の値を更新するステップ(UP10)と、
識別子によって識別される識別デバイスに更新された複数の値を保存するステップと
を含むことができる。
【００１５】
さらに、この方法は、
第1のユーザによって、信用できる第三者に、保存された複数の値のうちの第2の値を送信するステップと、
第1のユーザによって、信用できる第三者から、保存された複数の値のうちの第2の値から導出される再暗号化された値を受信するステップと
を含むことができる。
【００１６】
保存された複数の値のうちの第2の値に施される再暗号化操作は、信用できる第三者によって実行することができる。加えて、保存された複数の値のうちの第2の値および再暗号化された第2の値は各々、生成元の冪とすることができる。
【００１７】
複数の値を提供するステップは、第1のユーザによって受信される少なくとも1つの私有暗号値の関数である第1の値を提供するステップを含む場合もある。
【００１８】
加えて、複数の値を保存するステップは、第1のユーザの識別情報の関数である第3の値を保存するステップを含むことができる。この方法は、
第1のユーザによって、信用できる第三者から、第2のユーザの識別情報の関数である値を受信するステップと、
第3の値を第2のユーザの識別情報の関数である値で置き換えることによって、保存された複数の値を更新するステップと、
第2のユーザによって、識別子によって識別される識別デバイスを受け取るステップと、
第2のユーザによって、保存された複数の値のうちの第3の値を、第2のユーザの識別情報の関数と比較するステップと
をさらに含むことができる。
【００１９】
第1のユーザおよび第2のユーザが、識別子によって識別される識別デバイスにアクセスしたことがあることを検証するために、相互認証が実行される場合もある。
【００２０】
さらに、共用鍵を導出するステップは、相互認証を実行するステップを含むことができる。相互認証を実行するステップは、
第1のユーザによって、第2のユーザに、ランダムチャレンジ(random challenge)を送信するステップと、
第1のユーザによって、第2のユーザから、ランダムチャレンジと第2のユーザの少なくとも1つの私有暗号値との関数である値を受信するステップと
を含むことができる。受信する値は、生成元の冪である場合もある。
【００２１】
相互認証を実行するステップは、第2のユーザによって、ランダムチャレンジと第2のユーザの少なくとも1つの私有暗号値との関数である値を計算するステップも含むことができる。
【００２２】
相互認証を実行するステップは、
第1のユーザによって、保存された複数の値のうちの第2の値の関数を、第2のユーザの少なくとも1つの公開暗号値の関数と比較するステップ
も含むことができる。
【００２３】
相互認証を実行するステップは、第2のユーザによって、保存された複数の値のうちの第2の値の関数を、第1のユーザの少なくとも1つの公開暗号値の関数と比較するステップをさらに含むことができる。
【００２４】
加えて、相互認証を実行するステップは、
第1のユーザによって導出された共用鍵を、第2のユーザの共用鍵と比較するステップ
を含むことができる。
【００２５】
上記の比較演算は、計算ディフィ-ヘルマン問題(Computational Diffie-Hellman Problem)が効率的に計算できない、効率的計算が可能な非退化な双線形写像(bilinear map)に、入力として値を提供することによって実行することができる。
【００２６】
また別の態様によれば、コンピュータプログラム製品が提供される。このコンピュータプログラム製品は、コンピュータ可読命令を含むことができ、このコンピュータ可読命令は、コンピュータシステムにロードされて実行された場合に、前記の方法による動作をコンピュータシステムに実行させる。
【００２７】
さらに別の態様によれば、複数のユーザ間における安全な通信を提供するコンピュータシステムが提供される。このシステムは、
無線周波識別タグなどの識別デバイスであって、識別子によって識別され、メモリを含む識別デバイスと、
識別子によって識別される識別デバイスに複数の値を保存するための命令を処理する
ように動作可能な第1のコンピュータと、
第2のコンピュータと、
第1のコンピュータおよび第2のコンピュータに少なくとも1つの公開暗号値を提供し、
第1のコンピュータおよび第2のコンピュータに少なくとも1つの私有暗号値を提供する
ように動作可能な第3のコンピュータとを含むことができ、
第1のコンピュータは、第1のコンピュータに提供される少なくとも1つの公開暗号値と、第1のコンピュータに提供される少なくとも1つの私有暗号値と、識別子によって識別される識別デバイスに保存された複数の値のうちの少なくとも1つから、共用鍵を導出するように動作可能であり、
第2のコンピュータは、第2のコンピュータに提供される少なくとも1つの公開暗号値と、第2のコンピュータに提供される少なくとも1つの私有暗号値と、識別子によって識別される識別デバイスに保存された別の複数の値のうちの少なくとも1つから、共用鍵を導出するように動作可能である。
【００２８】
直前の態様において言及されたような、第1のコンピュータによって使用される複数の値(すなわち第1の複数の値)および第2のコンピュータによって使用される別の複数の値(すなわち第2の複数の値)は、共通の値によって結び付けることができる。共通の値は、識別子によって識別される識別デバイスの暗号識別子とすることができる。
【００２９】
加えて、コンピュータシステムは、上で説明された方法の態様の変形を実行するようにさらに動作可能とすることができる。
【００３０】
本明細書で説明される主題は、おそらくは1つまたは複数のコンピュータプログラム製品の形態をとる、方法またはシステムとして実施することができる。本明細書で説明される主題は、データ信号内または機械可読媒体上で実施することができ、媒体は、CD-ROM、DVD-ROM、半導体メモリ、またはハードディスクなどの、1つまたは複数の情報保持体(information carrier)で具現される。そのようなコンピュータプログラム製品は、本明細書で説明される1つまたは複数の動作をデータ処理装置に実行させることができる。
【００３１】
加えて、本明細書で説明される主題は、プロセッサおよびプロセッサに結合されるメモリを含むシステムとして実施することもできる。メモリは、本明細書で説明される方法の1つまたは複数をプロセッサに実行させる1つまたは複数のプログラムを符号化することができる。さらに、本明細書で説明される主題は、様々な機械を使用して実施することができる。
【００３２】
1つまたは複数の実施の詳細が、添付の例示的な図面および以下の説明において説明される。他の特徴は、説明、図面、および特許請求の範囲から明らかとなろう。
【図面の簡単な説明】
【００３３】
【図１】第1のユーザuserAが第2のユーザuserBに識別デバイスを配送する例示的なシナリオを示す図である。ユーザと信用できる第三者(TTP)の間のデータの交換は点線で示される。実線はuserAからuserBへの識別デバイスの物理的な移動を示す。
【図２】第1のユーザによって第2のユーザに送信される通信を安全化する例示的な方法を示す図である。
【図３】別のユーザに配送される識別デバイスを準備する例示的な方法を示す図である。図2との関係はステップM3によって示され、図4との関係はステップSS10からステップSS13によって示され、図6との関係はステップA10によって示される。ステップM41は、ステップM4の可能な実施を表す。
【図４】別のユーザに配送される識別デバイスを準備する別の例示的な方法を示す図である。ステップM41およびステップUP10は、図3に関連する。
【図５】別のユーザに配送される識別デバイスを準備するまた別の例示的な方法を示す図である。ステップM42は、ステップM4の可能な実施を表す。ステップA20は、図6に関連する。
【図６】相互認証の2つの例を示す図である。ステップM5およびステップM7は、図2に関連する。ステップUP10およびステップR11は、それぞれ図3および図5に関連する。
【図７】例示的なコンピュータシステムのブロック図である。
【発明を実施するための形態】
【００３４】
専門用語および定義
以下の専門用語が、説明全般にわたって使用される。用語には以下の説明を当てはめることができるが、必ずしもそれに限定されない。
【００３５】
一般的な定義
用語に対して別の規定がなされない限り、以下の一般的な説明を使用することができる。
【００３６】
(G1,*)および(G2,*)を位数pの2つの群とし、pをある大きな素数とする。pのビットサイズは、セキュリティパラメータによって決定される。数のビットサイズ、例えばpのビットサイズは、pを表すのに必要とされるビットの数として理解することができる。安全化される通信の性質および第三者にとってのそれらの通信の可能な価値を含む多くの要因が、安全なビットサイズの決定に関係し得る。例えば、モッツァレラ(mozzarella)に関する通信は、核装置に関する通信に適したセキュリティのレベルを必要としないであろう。さらに、特定のアプリケーションについて、ある年には安全であったビットサイズが翌年にはもはや十分でなくなり得る可能性がある。技術の進歩および暗号解析の研究の進展が、暗号系の安全性および適切なビットサイズをもたらし得る。
【００３７】
一例によれば、pのビットサイズは、超特異楕円曲線(supersingular elliptic curve)に基づいた双線形写像の場合、1084ビットであり、非超特異楕円曲線(non-supersingular elliptic curve)に基づいた双線形写像の場合、640ビットである。
【００３８】
Z*p={1,...,p-1}、ここで、Z*pは乗法群(multiplicative group)であり、a,b∈Z*pとある場合、a、bはランダムに選択される。
【００３９】
例えばG1などの群の位数は、群の元の個数として理解することができる。
【００４０】
gは、G1のランダムな生成元である。生成元は、原始根(primitive root)または原始元(primitive element)と呼ばれることもある。位数pの群の生成元は、その冪が群の零以外のすべての元を生成する数である。
【００４１】
群が生成元をもつ場合、群は巡回的であると理解することができる。
【００４２】
ユーザは、ユーザコンピュータまたはユーザによって操作されるコンピューティング機器を指すと理解することができる。ユーザによって実行されるアクションも、ユーザに代わってまたはユーザの指図のもとで実行されるアクションを含むことができる。「第1」、「第2」、および「第3」という用語は、複数のユーザを区別するために使用される。userA、userB、およびuserC(それぞれ第1、第2、および第3のユーザを指す)という用語は、式および図において用語の理解を容易にするために使用される。ユーザは、自然人または法人を指すこともできる。
【００４３】
問題
以下の暗号問題は、難しいと見なすことができる。難しい問題または効率的に計算できない問題は、問題の解を計算するのに使用できる既知の確率的多項式時間(probabilistic polynomial time)(またはより効率的な)アルゴリズムが存在しない問題と理解することができる。
【００４４】
確率的アルゴリズムは、ランダムビット命令を使用するアルゴリズムと理解することができる。確率的アルゴリズムは、決定的アルゴリズム(ランダムビット命令を使用しないアルゴリズム)と対比させることができる。
【００４５】
問題1  計算ディフィ-ヘルマン問題(CDH)は、すべての確率的多項式時間アルゴリズムBについて、
AdvCDHB:=Pr[B(g,ga,gb)=gab]
が、セキュリティパラメータにおいて無視できる場合、難しい。言い換えると、ビットサイズpが与えられた場合、(g,ga,gb)が与えられたならば、gabの計算に有利性を提供する(すなわち効率的計算を可能にする)、確率的多項式時間アルゴリズムBが存在する確率は無視できる。
【００４６】
問題2  修正計算ディフィ-ヘルマン問題(mCDH: modified Computational Diffie-Hellman Problem)は、すべての確率的多項式時間アルゴリズムBについて、
【００４７】
【数１】
2010220212.tif 000003
【００４８】
が、セキュリティパラメータにおいて無視できる場合、難しい。言い換えると、ビットサイズpが与えられた場合、
【００４９】
【数２】
2010220212.tif 000004
【００５０】
が与えられたならば、gabの計算に有利性を提供する(すなわち効率的計算を可能にする)、確率的多項式時間アルゴリズムBが存在する確率は無視できる。
【００５１】
問題3  双線形決定ディフィ-ヘルマン問題(BDDH: Bilinear Decisional Diffie-Hellman Problem)は、すべての確率的多項式時間アルゴリズムBについて、
【００５２】
【数３】
2010220212.tif 000005
【００５３】
が、セキュリティパラメータにおいて無視できる場合、難しい。この確率は、g∈G1、a,b,c,x∈Z*pをランダムに選択して取得される。言い換えると、ビットサイズpが与えられた場合、1組の値(g,ga,gb,gc,gx)が与えられたならば、x=abcであるかどうかの計算に有利性を提供する(すなわち効率的計算を可能にする)、確率的多項式時間アルゴリズムBが存在する確率は無視できる。
【００５４】
これで暗号問題の列挙を終了する。
【００５５】
双線形写像
双線形写像(双線形関数とも呼ばれる)は、計算ディフィ-ヘルマン問題(CDH)が効率的に計算できない写像
【００５６】
【数４】
2010220212.tif 000006
【００５７】
である。さらに、G1およびG2は、巡回群(cyclic group)であると理解することができる。
【００５８】
双線形写像は、以下の3つの特性を満たすことができる。
・双線形:g,h∈G1とすると、a,b∈Z*pに対して、
【００５９】
【数５】
2010220212.tif 000007
【００６０】
・非退化:
【００６１】
【数６】
2010220212.tif 000008
【００６２】
はG2の生成元である。
・効率的に計算可能:すべてのg,h∈G1に対して、
【００６３】
【数７】
2010220212.tif 000009
【００６４】
を効率的に計算するアルゴリズムが存在する。
【００６５】
上記の3つの特性を満たす双線形写像は、許容双線形写像(admissible bilinear map)と呼ばれることもある。
【００６６】
双線形写像の例は、超特異楕円曲線上の修正ベイユペアリング(Weil pairing)と、超特異楕円曲線上の修正テイトペアリング(Tate pairing)である。
【００６７】
ベイユペアリングの定義およびベイユペアリングを計算するためのアルゴリズムは、D. Boneh、M.K. Franklin、「Identity-Based Encryption from the Well Pairing」、Journal of Cryptology、17(4)、2004年において提供されている。引用文献は、ベイユペアリングと修正ベイユペアリングの相違についても説明している。
【００６８】
暗号値
暗号値は、暗号操作において使用できる値と理解することができる。暗号操作は、共用鍵の導出、暗号化、暗号解除、再暗号化、認証、およびハッシングを含む。
【００６９】
公開暗号値および私有暗号値は、非対称暗号系の一部であると理解することができ、非対称暗号系においては、暗号化操作は、暗号解除操作を実行するのに使用される鍵とは異なる鍵を使用して実行される。例えば、公開鍵は、メッセージを暗号化するのに使用できる公開暗号値であり、私有鍵は、メッセージを暗号解除するのに使用できる私有暗号値である。
【００７０】
私有暗号値は、値が属するユーザおよび/または信用できる第三者が知ることができる。秘密暗号値は、特に非対称暗号系の文脈では、信用できる第三者だけが知っている暗号値と理解することができる。
【００７１】
共用鍵
共用鍵は、例えば対称暗号化など、対称暗号操作を実行するのに使用される鍵と理解することができる。対称暗号系は、暗号化操作と暗号解除操作が同じ鍵を使用して実行される系と理解することができる。暗号化操作と暗号解除操作は異なるエンティティによって実行され得るので、両方の操作を実行するのに1つの鍵を使用することは、その1つの鍵が共用鍵であることを示すと理解することができる。
【００７２】
認証
認証は、検証のプロセスと理解することができる。ある場合には、検証は、通信相手の識別情報に関して実行することができる。別の場合には、検証は、識別子によって識別される識別デバイスのアクセス、すなわち合法的アクセスに関して実行することができる。
【００７３】
暗号ハッシュ関数
暗号ハッシュ関数、暗号ハッシュ、またはハッシュは、任意の有限長のビット列を固定長の列に写像する関数と理解することができる。暗号ハッシュ関数は、片方向的であり、耐衝突性をもつと理解することができる。暗号ハッシュ関数の例は、SHA-256およびSHA-512である。
【００７４】
再暗号化
直観できるように、再暗号化は、私有暗号値または秘密暗号値を明かすことなく、新しい鍵のもとでデータを暗号化するプロセスである。値は、公開鍵または共用鍵のもとで再暗号化することができる。例えば、2つの独立した暗号化鍵、例えばk1およびk2と、k1を使用して暗号化されたデータが与えられた場合、再暗号化は、k2を使用してデータを暗号化するプロセスであると理解することができる。
【００７５】
識別デバイス
識別デバイスは、アイテムまたは物品を特定または識別すると理解することができる。アイテムは、パレット、ケース、または製品とすることができる。識別デバイスは、少なくとも1KBのメモリを有することができる。直観できるように、識別デバイスは、暗号エンベロープ(cryptographic envelope)の保持体と理解することができ、暗号エンベロープの内容は、セキュリティプロトコルの一部として、デバイスから取り出して処理することができる。
【００７６】
識別デバイスの一例は、無線周波識別(RFID)タグである。RFIDタグは、能動的または受動的とすることができる。RFIDタグは、再書き込み可能型または1回書き込み型とすることができる。RFIDタグが再書き込み可能ではない場合、タグは、各書き込みの前に、新しいRFIDタグに取り替えることができる。新しいRFIDタグは、同じ識別子を有することができる。以下の説明では、理解を容易にするため、識別デバイスは再書き込み可能型であることを暗黙の前提とすることがある。しかし、各書き込みの後に取り替えられる1回書き込み型のRFIDタグを使用することもできる。
【００７７】
識別デバイスとして使用できるRFIDタグのタイプは、EPCglobal規格によって定義される、クラス1ジェネレーション2のRFIDタグとすることができる。より強力または高度なRFIDタグを使用することもできる。
【００７８】
識別デバイスへのアクセスは、識別デバイスから情報を読み取ることを含むと理解することができる。RFIDタグの場合、アクセスは、RFIDタグリーダを使用してRFIDタグと対話することを含むことができる。
【００７９】
チャレンジ-レスポンスプロトコル
チャレンジ-レスポンスプロトコルは、第1のユーザが第2のユーザにランダムな数を送信し、その後、第2のユーザがその数の暗号変換を実行し、変換された数をおそらくは他のデータとともに第1のユーザに返信する、認証プロトコルと理解することができる。
【００８０】
疑似乱数発生器
疑似乱数発生器は、統計的にランダムに見える数を返す決定的アルゴリズムに基づいていると理解することができる。疑似乱数発生器は、ハードウェアにおけるゲートのアレイとして、またはコンピュータプログラムとして実施することができる。本説明におけるランダムな要素またはランダムな値の選択または選定についての言及は、疑似乱数発生器を使用するランダムな数の計算に関連すると理解することができる。
【００８１】
識別情報ベースの暗号系
識別情報ベースの暗号系は、識別情報ベースの暗号化システムまたは識別情報ベースの暗号システムと呼ばれることもある。識別情報ベースの暗号は、ユーザの公開鍵を任意の文字列とすることができる公開鍵暗号の1つのタイプと理解することができる。ある場合には、ユーザの公開鍵は、例えばユーザの電子メールアドレスなど、ユーザの身元についての何らかの一意的情報である。
【００８２】
一例によれば、信頼できる第三者は、マスタ公開鍵を公表し、マスタ私有鍵を保持することができる。マスタ公開鍵を与えられた場合、ユーザは、マスタ公開鍵を例えばユーザの電子メールアドレスなどの識別情報値と組み合わせることによって、公開鍵を計算することができる。私有鍵を取得するため、ユーザは、信頼できる第三者と連絡をとることができ、信頼できる第三者は、マスタ私有鍵を使用して、ユーザのための私有鍵を生成することができる。
【００８３】
識別情報ベースの暗号系は、ユーザの公開鍵を使用して平文を暗号文に変換する暗号化操作を含むことができる。識別情報ベースの暗号系は、ユーザが信頼できる第三者から暗号解除鍵を取得する暗号解除鍵取得操作をさらに含むことができる。ユーザは、チャレンジ-レスポンスプロトコルを使用して暗号解除鍵を取得することができる。加えて、識別情報ベースの暗号系は、暗号文を平文に変換する暗号解除操作を含むことができる。
【００８４】
詳細な説明
以下の本文では、図面を参照しながら、例についての詳細な説明が与えられる。例には様々な修正を施し得ることを理解されたい。別途明示的な指摘がない限り、1つの例の要素は、新しい例を形成するために、組み合わせることができ、また他の例において使用することができる。
【００８５】
識別デバイスの1つの可能な用途は、サプライチェーン(supply chain)管理におけるものである。サプライチェーンにおいては、各アイテムは、識別デバイスの一意識別子を使用してトラッキングすることができる。識別デバイスが読み取られたときに、イベントが発生する。最も基本的なレベルでは、これは、以下の値の組を生成する。
＜組織，識別子，タイムスタンプ＞
【００８６】
この値の組は通常、識別子、イベントのタイプ(例えば、荷受、配送、開梱など)、およびイベントのタイプに応じた追加フィールドなどの、追加情報によって拡大される。
【００８７】
会社は、多くの理由から、イベントに結び付けられた情報を伝達することに関心をもっている。1つの理由として、自分が購入した製品が通過した段階を知ることに消費者が関心をもっていることを挙げることができる。別の理由として、会社は欠陥製品を回収する必要があり、欠陥製品を販売した小売店の一覧を知ることに関心をもっていることを挙げることができる。
【００８８】
RFIDタグの使用に関するイベントに関連するデータを共用するため、会社は、EPCglobalコンソーシアムによって現在標準化されているグローバルネットワークに接続する。このネットワークは、発見サービス(discovery service)を含んでおり、発見サービスは、特定のタグについてのイベントデータを有するすべての会社の連絡情報を保存している。タグについてのすべての情報を引き出すため、利害関係者は、リクエストを用いて発見サービスと交信する。リクエストに応答して、発見サービスは、連絡をとるべきすべての会社の一覧を返信する。その後、利害関係者は、各会社と個別に連絡をとり、イベントデータを引き出すことができる。
【００８９】
このシステムがもつ1つの課題は、会社はイベント情報に関連するデータを共用することに自社の営業活動の促進というインセンティブを有するが、この情報は機密性が高く、(おそらくは競争関係にある)会社はなかなか相手を信用する気になれないことである。したがって、1つの心配事は、例えば競争相手のサプライチェーン内のアイテムについてのイベントデータを引き出すことによって実施される、競争相手のサプライチェーンに対するスパイ行為の可能性である。
【００９０】
1つの可能な状況においては、以前は通信することができなかった2つの会社が、発見サービスの助けを借りて互いに連絡をとり、相互に認証する必要があるが、両社がこれまでに共通して行ったただ1つのことは、ある時点において同じ識別デバイスにアクセスしたことである。これらの会社は、同じ識別デバイスにアクセスしたことがあることを互いに証明する必要がある。
【００９１】
このシナリオにおいて発生し得る多くの攻撃が存在する。
1.詐称者が、例えば競争相手のサプライチェーンをトラッキングするために、アクセスしたことのない識別デバイスについての情報を要求することがあり得る。
2.悪意ある会社が、例えば偽製品の出所を隠蔽するために、所有したことのない識別デバイスについての不正情報を供給することがあり得る。
【００９２】
同じ識別デバイスにともにアクセスしたことのあるユーザの間の通信を安全化するための1つの簡単な方法は、識別デバイスに共用鍵を保存することである。共用鍵は、その後の通信を安全化するために、識別デバイスにアクセスしたことのある全員によって使用することができる。通信は、高度暗号化標準(AES: Advanced Encryption Standard)などの対称暗号化アルゴリズムを使用して安全化することができる。この簡単な解決策は、互いに信用しているが、安全ではない環境において通信しなければならないビジネスパートナにとって適していることがある。
【００９３】
説明の一部は識別デバイスにアクセスしたことのあるユーザの間の通信を安全化することに関連しているが、他のシナリオも可能であることに留意されたい。例えば、第1のユーザが識別デバイスに対応する値を第2のユーザに送信することが可能である。送信される値は、識別デバイスから読み取られる値の代わりとすることができる。
【００９４】
しかし、簡単な解決策を使用した場合、漏洩行為は犯人まで遡及することはできないので、アイテムにアクセスしたことのある誰かが共用鍵を漏らすことが可能である。加えて、識別デバイスは、部外者が悪意をもって読み取ることも可能である。これらのケースはいずれも、攻撃者が合法的ユーザを欺いて、攻撃者は識別デバイスにアクセスしたことのある別の合法的ユーザであると思わせることを可能にすることができる。
【００９５】
図1は、識別デバイス100を第1のユーザ110であるuserAから第2のユーザ120であるuserBまたはuserCに配送するための、2つのユーザと信頼できる第三者130(TTP)の間の対話の高レベルな図である。TTP 130は、その顧客のために私有および/または秘密暗号値を保存するエンティティまたは組織と理解することができる。TTP 130は、暗号値を生成することもできる。TTP 130はさらに、識別デバイス100の所有権が変わる場合、識別デバイス100に保存された情報を更新する際にユーザをサポートすることができる。以下の説明はTTPを単一のエンティティとして扱っているが、TTPを(例えば別個のサプライチェーンのための)別個の関係者に分割することが可能であることを理解されたい。TTP間のレプリケーションを用いて、複数のTTPを提供することを可能にすることもできる。
【００９６】
図1についての以下の説明においては、ユーザが、サプライチェーンパートナのシステムに参加する。しかし、他のシステムおよび/または組織も可能である。プロセスは、以下のプロトコルを含むと理解することができる。
【００９７】
設定:TTP 130が、システムパラメータを公表し、システムパラメータを各ユーザ、例えばuserA 110およびuserB 120に配布する。
【００９８】
登録:新規ユーザ、例えばuserA 110が、サプライチェーンに参加するために、TTP 130に登録する。userA 110およびTTP 130は、userA 110の識別情報に結び付けられた複数の公開暗号値、私有暗号値、および秘密暗号値を設定する。TTP 130は、公開暗号値および私有暗号値をuserA 110に配布し、秘密暗号値を保持する。
【００９９】
初期化:userA 110が、識別デバイス100をアイテムに取り付けることを望む。userA 110は、識別デバイス100に複数の値を保存する。識別デバイス100の初期化は、TTP 130の介入なしに実行することができる。
【０１００】
配送:userA 110が、識別デバイス100をuserB 120に配送する準備をするために、TTP 130と連絡をとる。識別デバイス100をアイテムに取り付けることができる。TTP 130は、再暗号化鍵をuserA 110に送信することができる。再暗号化鍵は、識別デバイス100に保存する少なくとも1つの新しい値を生成するために使用することができる。再暗号化鍵の代替として、TTP 130は、識別デバイス100に保存する新しい値の組を計算し、送信することができる。
【０１０１】
受け取り:userB 120が、識別デバイス100をuserA 110から受け取る。その後、userBは、識別デバイス100から複数の値を読み取り、その値をデータベースに保存することができる。userB 120は、共用鍵を生成または導出し、やはり識別デバイス100にアクセスしたことのある別のユーザ、例えばuserA 110と相互認証を実行することによって、通信を安全化するために、保存された値を使用できることがある。
【０１０２】
安全な通信:userA 110は、少なくとも1つの公開暗号値、少なくとも1つの私有暗号値、および識別デバイス100に保存された複数の値のうちの少なくとも1つに基づいて、共用鍵を導出することができる。userB 120も、同様の操作を実行することができる。userA 110およびuserB 120は、両者が同じ識別デバイス100にアクセスしたことがあることを検証するために、相互認証を実行することもできる。相互認証は、プロトコルにソルト(salt)を加えるための、ランダムチャレンジの交換を含むことができ、ここで、ソルトは、交換を観測する第三者がプロトコルを繰り返すことができないよう保証するために加えられる値と理解することができる。ユーザが相互認証を実行し、後で共用鍵を導出する場合もある。代替として、導出された共用鍵を比較することによって、相互認証が実行される場合もある。
【０１０３】
具体的な例によれば、以下のシナリオが可能である。複雑な商品の製造は、異なる行為者の協力を必要とする。このプロセスはしばしば、サプライチェーンに参加する異なる会社を含む。例えば、3つの異なる会社A、B、Cは、以下のように協力することができ、すなわち、会社Aは、アイテムを有し、通常の業務によれば、さらなる処理のために、それを別の会社に配送する必要がある。「次の」会社はあらかじめ分かっておらず、会社Aは、(容易に会社B'を選択することもできたが)会社Bを選択する。その後、Aは、配送アルゴリズムを起動して、配送動作を実行する。同様に、Bは、会社Cにアイテムを配送する。最終的に、チェーンは停止する。
【０１０４】
後の時点において、上で説明されたように、会社Aと会社Cは、アイテムに結合された識別デバイス100にアクセスしたことがあることに基づいて、対話する必要があることがある。AとCは以前に対話したことがなく、どのような事前確立されたビジネス関係も有することはできないことに留意されたい。会社Aと会社Cは、識別デバイスの識別子DevIDと、その受け取り時に識別デバイス100内に保存された暗号値との関連をデータベースに保持している。会社Aと会社Cは、この情報を使用してハンドシェークを実行し、ハンドシェークは、成功した場合、両社が、識別デバイス100に関して相手をビジネスパートナとして安全に信頼し、さらなる通信を安全化するのに使用される鍵を共用することを可能にする。
【０１０５】
利点として、識別デバイス100に保存された値が意図された受取人とは異なる誰かによって読まれたとしても、システムの安全性は危険にさらされないことを挙げることができる。これは、上で定義された暗号問題の難しさを仮定すれば、識別デバイス100に保存された値から私有暗号値または秘密暗号値を導出することは実現可能でないためである。
【０１０６】
図2は、識別デバイス100にアクセスしたことのある2つのユーザの間の通信をどのように安全化するかを示している。M1において、TTP 130によってシステムパラメータを生成することができる。ユーザとTTP 130の間の通信またはデータ交換は、認証され、安全なチャネルを介して行うことができる。
【０１０７】
ユーザは、例えばサプライチェーンパートナネットワークに入るために、TTP 130に登録することができる。M2において、TTP 130は、第1のユーザ110(userAとも呼ばれる)に、少なくとも1つの公開暗号値A_PubCVと少なくとも1つの私有暗号値A_PrCVを提供することができる。代替として、少なくとも1つの公開暗号値は、少なくとも1つの私有暗号値の配布に先立って、配布することができる。M3において、TTP 130は、第2のユーザ120(userBまたはuserCとも呼ばれる)に、少なくとも1つの公開暗号値B_PubCVと少なくとも1つの私有暗号値B_PrCVを提供することができる。
【０１０８】
識別デバイス100を初期化するため、M4において、userA 110は、識別デバイス100に複数の値を保存することができる。初期化ステップでは、値の1つは、識別デバイスの暗号識別子DevCIDの関数とすることができる。しかし、ステップM4は、初期化がすでに別のユーザによって実行されていたとしても、識別デバイス100を配送するための準備において実行することもできる。識別デバイスの暗号識別子DevCIDは、識別デバイスの識別子またはシリアル番号DevIDと異なることができる。識別デバイス100の初期化は、TTP 130の介入なしに実行することができる。
【０１０９】
識別デバイス100を初期化した後、userA 110は、userB 120に識別デバイス100を送付または配送することができる。デバイスを受け取ると、第2のユーザ120は、M4の間にデバイスに保存された値を読み取り、その値をデータベースに保存することができ、値は、識別デバイスのシリアル番号に関連することができる。
【０１１０】
2つのユーザがともに、デバイスに対して合法的アクセスを行った後、それらのユーザは、共用鍵を導出することを望むことができる。共用鍵を導出する前に、ユーザが認証を行う場合もある。
【０１１１】
代替として、ユーザは、共用鍵を導出し、鍵を危険にさらすことなく共用鍵についての知識を証明するために、チャレンジ-レスポンスプロトコルを使用することができる。M5において、userA 110は、共用鍵を導出する。共用鍵は、第1のユーザの公開暗号値A_PubCVと、第1のユーザの私有暗号値A_PrCVと、識別デバイス100から読み取った値を使用して、導出することができる。代替として、共用鍵は、第2のユーザの公開暗号値B_PubCVと、第1のユーザの私有暗号値A_PrCVと、識別デバイス100から読み取った値を使用して、導出することができる。同様に、M6において、userB 120は、userA 110に関して上で説明された代替案のいずれかを使用して、共用鍵を導出することができる。
【０１１２】
そのような導出は、以下の利点を有することができる。共用鍵は、ユーザの公開暗号値とユーザの私有暗号値に基づいて導出される。悪意あるユーザに安全に通信させるため、第1のユーザ(または第2のユーザ)は、悪意あるユーザに、自らの私有暗号情報または自らの私有暗号情報を使用して生成された共用鍵を提供しなければならない。認証デバイスだけに結び付けられた共用鍵と異なり、ユーザの暗号値に結び付けられた共用鍵は、ユーザまで遡及することができる。
【０１１３】
M7において、共用鍵は、userA 110によって実行される通信を安全化または保護するために使用することができる。したがって、共用鍵は、userA 110とuserB 120の間の通信を保護するために使用することができる。
【０１１４】
図3は、別のユーザに配送される識別デバイス100を準備する例示的な方法を示しているステップSS10、SS11、SS12、およびSS13は、図4において説明されるステップに関連する。
【０１１５】
例示的な方法によれば、以下のシステムパラメータ、すなわち、
【０１１６】
【数８】
2010220212.tif 000010
【０１１７】
は、TTP 130によって生成することができ、ここで、gおよび
【０１１８】
【数９】
2010220212.tif 000011
【０１１９】
は、G1のランダムな生成元である。システムパラメータは、公表することができ、すべてのユーザが知ることができる。TTP 130はさらに、
【０１２０】
【数１０】
2010220212.tif 000012
【０１２１】
を選択し、S=gαと設定することができる。したがって、この例によれば、システムの公開パラメータは、
【０１２２】
【数１１】
2010220212.tif 000013
【０１２３】
であり、また、値αは、TTP 130にだけ知られた秘密暗号値である。
【０１２４】
TTP 130に登録するため、userA 110は、2つのランダムな元
【０１２５】
【数１２】
2010220212.tif 000014
【０１２６】
を選択することができる。その後、userA 110は、
【０１２７】
【数１３】
2010220212.tif 000015
【０１２８】
および
【０１２９】
【数１４】
2010220212.tif 000016
【０１３０】
をTTP 130に送信することができる。TTP 130は、Z*pからランダムな元xAを選択することができる。Z*pからランダムな元を選択することは、範囲{1,...,p-1}内の数を生成する疑似乱数発生器を構成することと理解することができる。TTP 130は、
【０１３１】
【数１５】
2010220212.tif 000017
【０１３２】
および
【０１３３】
【数１６】
2010220212.tif 000018
【０１３４】
を、第1のユーザすなわちuserA 110に送信することができる。
【０１３５】
userA 110(A)とTTP 130(T)の間の登録プロトコルに関連するネットワーク対話は、以下のように表すことができる。
【０１３６】
【数１７】
2010220212.tif 000019
【０１３７】
例を続けると、userA 110の公開暗号値A_PubCVは、2つの値の組
【０１３８】
【数１８】
2010220212.tif 000020
【０１３９】
として表すことができる。userAの公開暗号値A_PubCVは、TTP 130によって要求時に配布することができる。これらの公開暗号値を配布するプロセスは、認証局によって公開鍵を配布するプロセスと同様とすることができる。userA 110とTTP 130に知られているuserAの私有暗号値A_PrCVは、3つの値の組
【０１４０】
【数１９】
2010220212.tif 000021
【０１４１】
として表すことができる。TTP 130にだけ知られているuserA 110の秘密暗号値は、xAとして表すことができる。同様の登録プロセスは、M3において、userB 120とTTP 130の間でも実行することができる。
【０１４２】
M41において、userA 110は、識別デバイス100を初期化することができる。M41は、図1のステップM4の具体的な実施を表す。M41において、デバイスの暗号識別子の関数f(DevCID)と、第1のユーザに提供された少なくとも1つの私有暗号値の関数f(A_PrCV)が、デバイスに保存される。より具体的には、例示的な実施では、userA 110は、例えば疑似乱数発生器を使用して、ランダムな元
【０１４３】
【数２０】
2010220212.tif 000022
【０１４４】
を計算することができる。userA 110はさらに、
【０１４５】
【数２１】
2010220212.tif 000023
【０１４６】
および
【０１４７】
【数２２】
2010220212.tif 000024
【０１４８】
を計算することができる。X1およびX2は、識別デバイスに保存される第1および第2の値をそれぞれ指すために使用される。この例では、X1はf(DevCID)を指し、X2はf(A PrCV)を指す。
【０１４９】
【数２３】
2010220212.tif 000025
【０１５０】
は、再暗号化を実行するために使用できるuserAの私有暗号値A_PrCVとして理解することができる。userA 110は、複数の値(X1,X2)を識別デバイス100に保存することができる。userA 110は、後で使用するために、複数の値(X1,X2)をデータベースに保存することもできる。userA 110は、セキュリティ上の理由から、値ttagを削除または消去することができる。したがって、X1は、識別デバイスの暗号識別子の関数として理解することができ、ここで、
【０１５１】
【数２４】
2010220212.tif 000026
【０１５２】
は、識別デバイスの暗号識別子である。X2は、userAの私有暗号値の関数として理解することができ、ここで、userAの私有暗号値は、
【０１５３】
【数２５】
2010220212.tif 000027
【０１５４】
である。
【０１５５】
ステップM41は、userA 110によるステップS10およびTTP 130によるステップS11の実行に先立って、別のユーザによって実行できることを理解されたい。
【０１５６】
userA 110は、おそらくはアイテムに取り付けられた識別デバイス100を、userB 120に送付または配送する準備をすることができる。S10において、userA 110は、userAの識別子A_IDおよびuserBの識別子B_IDをTTP 130に送信することができる。ユーザ識別子は、ユーザまたはユーザの組織に関連する電子メールアドレスまたは他の何らかの値の暗号ハッシュとすることができる。userA 110からのA_IDおよびB_IDの受信は、userA 110が識別デバイス100をuserB 120に送付するつもりであることを、TTP 130に通知することができる。TTP 130は、userB 120の秘密暗号値の関数として再暗号化鍵を生成することができる。より具体的な例によれば、再暗号化鍵は、userB 120の秘密暗号値とuserAの秘密暗号値の逆元との関数、すなわち
【０１５７】
【数２６】
2010220212.tif 000028
【０１５８】
とすることができる。その後、TTP 130は、再暗号化鍵、すなわちkA,Bを、userA 110に送付または送信することができる。識別デバイス100を配送するための準備におけるuserA 110とTTP 130の間の対話を定義するプロトコルが、Diagram 2(数27)に示されている。
【０１５９】
【数２７】
2010220212.tif 000029
【０１６０】
Diagram 2(数27)の配送プロトコルは、すべての識別デバイス100について実行する必要はなく、配送パートナ毎に1回だけ実行すればよい。言い換えると、userA 110は、userA 110が初めて識別デバイス100をuserB 120に送付するときに、TTP 130から再暗号化鍵を取得しさえすればよい。userA 110は、その後、第1のデバイスのために提供された再暗号化鍵を、さらなる識別デバイスをuserB 120に送付するために再利用することができる。ユーザが再暗号化鍵を再利用できるようにすることで、TTP 130にかかる負荷を軽減させる(すなわちユーザとTTP 130の間の対話を減少させる)という利点を得ることができる。
【０１６１】
その後、userA 110は、
【０１６２】
【数２８】
2010220212.tif 000030
【０１６３】
を計算するために、TTP 130によって送信された再暗号化鍵を使用することができる。X2'の計算は、第2のユーザの私有暗号値の関数である値、すなわちX2'を計算するために、第2のユーザの秘密暗号値の関数である値、すなわち再暗号化鍵を使用することと理解することができる。UP10において、その後、userA 110は、X2をX2'で置き換えることによって、識別デバイス100に保存された複数の値を更新することができる。言い換えると、第1のユーザは、第2の値X2を値X2'で置き換えることによって、保存された複数の値を更新することができ、ここで、X2'は、第2のユーザに提供された私有暗号値の関数f(B_PrCV)である。具体的な例によれば、B_PrCVは、
【０１６４】
【数２９】
2010220212.tif 000031
【０１６５】
と表される。更新の後、識別デバイス100のメモリは、複数の値(X1,X2')を含むことができる。
【０１６６】
識別デバイス100を受け取った時、userB 120は、対(X1,X2')をデータベースに保存することができる。
【０１６７】
この例によれば、識別デバイスが1つのユーザから別のユーザに渡るときに、識別デバイスをトレースするため、TTPは、どのユーザが識別デバイスを別のユーザに送付できるかについてのグラフを構築することができる。
【０１６８】
図3による例は、TTPにかかる負荷を軽減することはできるが、TTP 130が、1つのユーザから別のユーザへの識別デバイス100の移動、例えばサプライチェーンを辿るデバイスの移動をトレースすることは困難であることがある。さらに、以下の攻撃が可能である。再暗号化鍵
【０１６９】
【数３０】
2010220212.tif 000032
【０１７０】
が与えられた場合、
【０１７１】
【数３１】
2010220212.tif 000033
【０１７２】
を効率的に計算することが可能である。さらに、(userAに提供されたような)再暗号化鍵kA,Bと、識別デバイスをuserBから第3のユーザ、すなわちuserCに配送するためにTTP 130によってuserBに提供されるkB,Cが与えられた場合、再暗号化鍵kA,C=kA,BkB,Cを効率的に計算することが可能である。これらの攻撃に対抗するため、TTPは、グラフの各辺の逆を含まなければならず、またグラフの推移閉包(transitive closure)を計算しなければならない。
【０１７３】
図4は、デバイスを別のユーザに配送するために識別デバイス100を準備する別の例示的な方法を示している。ステップSS10は、図3に示されるステップM41の後に実行することができる。ステップSS13の後、図3に示されるステップUP10を実行することができる。さらに、「SS」で始まるステップ(SS10、SS11、SS12、およびSS13)は、図3のステップS10およびS11の代替と理解することができる。
【０１７４】
図3に関して上で説明された攻撃に対抗するため、1つのユーザが別のユーザに識別デバイス100を配送する準備をするたびに、TTPを関与させることが可能である。
【０１７５】
userA 110は、おそらくはアイテムに取り付けられる識別デバイス100を、userB 120に送付または配送する準備をすることができる。SS10において、userA 110は、userBの識別子B_IDおよびuserAの私有暗号値の関数f(A_PrCV)をTTP 130に送信することができる。userBの識別子B_IDは、userBの電子メールアドレスのハッシュとすることができる。具体的な例によれば、userAの私有暗号値の関数f(A_PrCV)は、
【０１７６】
【数３２】
2010220212.tif 000034
【０１７７】
とすることができ、ここで、
【０１７８】
【数３３】
2010220212.tif 000035
【０１７９】
は、userAの私有暗号値A_PrCVであり、
【０１８０】
【数３４】
2010220212.tif 000036
【０１８１】
は、識別デバイスが初期化されたときに計算されたランダムな元の逆元である。X2は、識別デバイス100に保存された第2の値を指すと理解することができる。M41におけるように、userA 110が識別デバイス100を初期化することが可能であるが、userA 110は、別のユーザから識別デバイス100を受け取った後、識別デバイス100からX2を読み取ることもできる。
【０１８２】
例示的な方法によれば、TTPは、userBの識別子B_IDおよびuserAの私有暗号値の関数f(A_PrCV)を受け取る。SS11において、TTP 130は、userBの私有暗号値の関数f(B_PrCV)を生成するために、userAの私有暗号値の関数f(A_PrCV)に対して再暗号化操作を実行することができる。具体的な例によれば、以下の計算は、
【０１８３】
【数３５】
2010220212.tif 000037
【０１８４】
のように、f(B_PrCV)を生成するために実行される。X2'は、識別デバイス100に保存される新しい第2の値を表し、それは、この例によれば、第2のユーザの私有暗号値の関数f(B_PrCV)である。userA 110とTTP 130の間の交換は、Diagram 3(数36)に視覚的に示されている。
【０１８５】
【数３６】
2010220212.tif 000038
【０１８６】
TTP 130はさらに
【０１８７】
【数３７】
2010220212.tif 000039
【０１８８】
を計算することができる。SS12において、その後、TTPは、データベースに三つ組
【０１８９】
【数３８】
2010220212.tif 000040
【０１９０】
を保存することができ、Aは、userAの識別子A_IDに対応し、Bは、userBの識別子B_IDに対応する。値
【０１９１】
【数３９】
2010220212.tif 000041
【０１９２】
は、特定の識別デバイスを他の識別デバイスから一意的に区別し、この値は、変更されない。SS13において、TTP 130は、f(B_PrCV)、すなわちX2'に対応する値をuserA 110に送信することができる。userA 110は、f(B_PrCV)を受け取ると、図3に示されるように、ステップUP10において、f(A_PrCV)をf(B_PrCV)で置き換えることによって、識別デバイスに保存された値を更新することができる。
【０１９３】
(配送トランザクションがステップSS10からステップSS13またはステップS20からステップS23から成る場合)各配送トランザクションに関与し、トランザクションに対応する三つ組を記録することによって、TTP 130は、ユーザからユーザへの任意の識別デバイス100の経路をトレースすることができる。これは、すべての識別デバイスの経路についての完全な履歴記録をTTP 130が構築することを可能にするという利点を有することができる。言い換えると、TTP 130は、各識別デバイスについての完全な転送系図を構築することができる。したがって、TTP 130は、各識別デバイスおよび対応するアイテムについての全体的な配送グラフを構築することができる。グラフ外のユーザは、認証に成功することができない。
【０１９４】
その場合、詐称者(すなわち所有したことのない識別デバイスについての情報を要求するユーザ)が識別された場合に、誰であれ暗号値を漏らしたユーザをTTP 130が識別できることも利点とすることができる。
【０１９５】
さらに、(配送トランザクションがステップSS10からステップSS13またはステップS20からステップS23から成る場合)各配送トランザクションへのTTP 130の関与は、以下の利点を有することができる。非認可関係者が非合法的な認証に成功した場合、その非認可関係者をトレースすることができる。加えて、TTP 130は、非認可関係者が認証されることを可能にする情報を、どの合法的ユーザが漏らしたかをトレースすることもできる。したがって、識別デバイス100上の情報を意図的に開示しないことへの強力なインセンティブがはたらく。一例によれば、これは、サプライチェーンの厳格な統制をもたらすことができる。
【０１９６】
図5は、userA 110からuserB 120に配送される識別デバイス100を準備する例示的な方法を示している。図5の方法は、図3および図4で説明された方法の代替と理解することができる。図3のステップ(S10、S11)、図4のステップ(SS11、SS12、SS13)、および図5のステップ(S20、S21、S22、S23)は、1つのユーザから別のユーザに識別デバイスを配送する準備をするために取ることができる代替ステップの組と理解することができる。
【０１９７】
例示的な方法によれば、システムパラメータの組は、類似してはいるが、図3に対応する説明において生成されたパラメータに完全に対応することができるわけではない。さらに、以下の方法では、ユーザの公開暗号情報(すなわちユーザに割り当てられる公開暗号値)は、ユーザの識別情報のハッシュである。例えば、ユーザの公開暗号情報は、ユーザの電子メールアドレスの暗号ハッシュとすることができる。したがって、公開暗号情報を検証するために、証明書または認証局との対話を使用する必要はない。さらに、例示的な方法は、ユーザが識別デバイス100を配送する準備をするたびに、TTP 130のサポートを必要としてもよい。これは、識別デバイス100の経路(すなわちデバイスの転送系図)のすべてのステップが記録されることを可能にする。したがって、この例の方法は、図4に関して上で説明された利点を共有する。
【０１９８】
例の目的で、暗号ハッシュ関数、すなわちハッシュ関数Hは、以下のように定義することができる。
【０１９９】
ハッシュ関数Hのパラメータは、以下のようである。
【０２００】
【数４０】
2010220212.tif 000042
【０２０１】
ここで、gは、群G1のランダムな元であり、
【０２０２】
【数４１】
2010220212.tif 000043
【０２０３】
ここで、u0,u1,...,unは、群Z*pのn+1個のランダムな元である。
【０２０４】
したがって、ハッシュ関数Hを定義するため、
【０２０５】
【数４２】
2010220212.tif 000044
【０２０６】
と割り当て、
・nビット列としてv∈{0,1}nを定義し、
・h(v)=u0+Σi∈Vui∈Z*pを定義し、ここで、V⊆{1,...,n}は、vの第iビットが1に等しいインデックスiの集合である。
【０２０７】
最後に、ハッシュ関数Hは、H(v)=U0Πi∈VUi=gh(v)∈G1のように定義される。したがって、識別情報Aを有するユーザについて、H(A)=ghであり、ここで、h∈Z*pであり、gはG1のランダムな生成元であると理解することができる。
【０２０８】
例を続けると、M1において、以下のシステムパラメータ、すなわち
【０２０９】
【数４３】
2010220212.tif 000045
【０２１０】
は、TTP 130によって計算することができ、ここで、パラメータは、上で提供された一般的な定義に準拠する。TTP 130は、
【０２１１】
【数４４】
2010220212.tif 000046
【０２１２】
も計算し、
【０２１３】
【数４５】
2010220212.tif 000047
【０２１４】
と割り当てることができる。最後に、TTP 130は、
【０２１５】
【数４６】
2010220212.tif 000048
【０２１６】
を計算し、S=gα、および
【０２１７】
【数４７】
2010220212.tif 000049
【０２１８】
と設定することができる。システムの公開暗号値は、1組の値
【０２１９】
【数４８】
2010220212.tif 000050
【０２２０】
によって表すことができる。値u0、u1、...、un、およびαは、TTP 130だけが知っている秘密暗号値である。
【０２２１】
その後、TTP 130は、識別情報ベースの暗号系を初期化することができる。例によれば、TTP 130は、識別情報ベースの暗号系の公開パラメータをuserA 110およびuserB 120に配布する。公開パラメータは、マスタ公開鍵を含むことができる。
【０２２２】
例によれば、M2において、userA 110は、TTP 130に登録することができる。ユーザは、サプライチェーンネットワークに入るためにTTP 130に登録する場合もある。userA 110は、従来のチャレンジ-レスポンスプロトコルを使用して、TTP 130から認証を受けることができる。その後、userA 110は、公開鍵を選択することができる。公開鍵は、任意の文字列、例えばuserA 110の電子メールアドレスとすることができる。userA 110は、選択された公開鍵をTTP 130に安全に送信することができ、公開鍵に対応する私有鍵をTTP 130から受信することができる。私有鍵に加えて、userAは、私有暗号値IA=H(A)αを受信することもできる。(A_IDとも呼ばれる)H(A)は、userA 110の識別子の暗号ハッシュ、例えばuserA 110の電子メールアドレスの暗号ハッシュと理解することができる。
【０２２３】
M3において、userB 120は、同様の登録プロセスを実行することができる。
【０２２４】
M42において、userA 110は、識別デバイス100を初期化することができる。M42は、図1のステップM4の具体的な実施を表すと理解することができる。M42は、ステップM41の代替と理解することもできる。userA 110は、ランダムな値
【０２２５】
【数４９】
2010220212.tif 000051
【０２２６】
およびランダムな値
【０２２７】
【数５０】
2010220212.tif 000052
【０２２８】
を計算することができる。userA 110は、
【０２２９】
【数５１】
2010220212.tif 000053
【０２３０】
およびX3=H(A)rを計算することもできる。この計算が実行された後、ランダムな値ttagは、セキュリティ上の理由から、削除または消去することができる。その後、userA 110は、複数の値(X1,X2,X3)を識別デバイス100に保存することができる。したがって、保存される複数の値は、第1のユーザの識別情報の関数f(A_ID)である第3の値、すなわち、この例によればX3=H(A)rを含む。X1は、識別デバイス100に保存される第1の値と理解することができ、X2は、識別デバイス100に保存される第2の値と理解することができ、X3は、識別デバイス100に保存される第3の値と理解することができる。値の順序は例の理解を助けるように提供されたもので、値は任意の順序で識別デバイス100に保存できることを理解されたい。
【０２３１】
X1を構成する値のうち、
【０２３２】
【数５２】
2010220212.tif 000054
【０２３３】
は、識別デバイスの暗号識別子DevCIDと理解することができる。
【０２３４】
【数５３】
2010220212.tif 000055
【０２３５】
は、第1のユーザに提供される少なくとも1つの私有暗号値の関数f(A_PrCV)と理解することができる。したがって、識別デバイス100に保存される複数の値のうちの第1の値X1は、第1のユーザに提供される少なくとも1つの私有暗号値の関数f(A_PrCV)と理解することができる。
【０２３６】
M42においてuserA 110によって実行される識別デバイス100の初期化は、TTP 130の支援を必要としない。
【０２３７】
ステップM42は、ステップS20からステップS23の実行に先立って、別のユーザによって実行できることを理解されたい。言い換えると、ステップM42(およびステップM41)は、1回だけ実行されさえすればよい初期化ステップに対応すると理解することができる。しかし、ステップS20からステップS23(ならびにステップS10とステップS11およびステップSS10とステップSS13)は、識別デバイス100の配送に先立つ任意の時に実行することができる。
【０２３８】
S20において、userA 110は、userAの識別子A_ID、userBの識別子B_ID、および複数の値(X1,X2,X3)を、TTP 130に送信することができる。userA 110からのこれらの値の受信は、userA 110が識別デバイス100をuserB 120に配送するつもりであることをTTP 130に通知することができる。
【０２３９】
S21において、TTP 130は、userA 110から受信したuserAの識別子の関数f(A_ID)を、userAの識別子の関数f(A_ID)と比較することができる。具体的な例によれば、S21の比較は、
【０２４０】
【数５４】
2010220212.tif 000056
【０２４１】
であるかどうかを検査する以下の式を使用することによって実行することができ、ここで、X3=H(A)rおよびX2=grである。式の両辺において、A_IDはAとして表される。さらに、左辺のバイナリ写像、すなわち
【０２４２】
【数５５】
2010220212.tif 000057
【０２４３】
は、TTP 130がuserA 110から受信するf(A_ID)と理解することができる。右辺のバイナリ写像、すなわち
【０２４４】
【数５６】
2010220212.tif 000058
【０２４５】
は、f(A_ID)と理解することができる。S21の比較は、保存された複数の値がuserAの識別子A_IDに対応するかどうかを検査するために使用することができる。
【０２４６】
S22において、TTPは、
【０２４７】
【数５７】
2010220212.tif 000059
【０２４８】
を計算し、三つ組
【０２４９】
【数５８】
2010220212.tif 000060
【０２５０】
をデータベースに保存することができる。値
【０２５１】
【数５９】
2010220212.tif 000061
【０２５２】
は、識別デバイスの暗号識別子DevCIDと理解することができる。TTP 130のデータベースに保存される三つ組は、識別デバイス100の移動をトラックするために使用することができる。
【０２５３】
その後、TTP 130は、
【０２５４】
【数６０】
2010220212.tif 000062
【０２５５】
を計算し、さらに
【０２５６】
【数６１】
2010220212.tif 000063
【０２５７】
を計算することができる。
【０２５８】
S23において、TTP 130は、f(DevCID,B_PrCV)、X2'、f(B_ID)を、userA 110に送信することができる。具体的な例によれば、f(DevCID,B_PrCV)=X1'およびf(B_ID)=X3'であり、ここで、
【０２５９】
【数６２】
2010220212.tif 000064
【０２６０】
は、DevCIDに対応し、IBは、B_PrCVに対応し、Bは、B_IDに対応する。userAとTTPの間の対話(ステップS20およびステップS23)の一例が、Diagram 4(数63)に示されている。
【０２６１】
【数６３】
2010220212.tif 000065
【０２６２】
Diagram 4(数63)には(DevIDに対応する)値tagIDが示されているが、この値は代替配送プロトコルの任意選択部分であることを理解されたい。その後、userA 110は、第2のユーザの識別子の関数f(B_ID)である値を、TTP 130から受信することができる。この値は、TTP 130によって送信された第3の値、すなわちX3'に対応する。
【０２６３】
(配送トランザクションがステップSS10からステップSS13またはステップS20からステップS23から成る場合)各配送トランザクションに関与し、トランザクションに対応する三つ組を記録することによって、TTP 130は、ユーザからユーザへの任意の識別デバイス100の経路をトレースすることができる。これは、すべての識別デバイスの経路についての完全な履歴記録をTTP 130が構築することを可能にするという利点を有することができる。言い換えると、TTP 130は、各識別デバイスについての完全な転送系図を構築することができる。したがって、TTP 130は、各識別デバイスおよび対応するアイテムについての全体的な配送グラフを構築することができる。グラフ外のユーザが認証に成功できないことを利点とすることができる。
【０２６４】
その場合、詐称者(すなわち所有したことのない識別デバイスについての情報を要求するユーザ)が識別された場合に、誰であれ暗号値を漏らしたユーザをTTP 130が識別できることも利点とすることができる。
【０２６５】
さらに、(配送トランザクションがステップSS10からステップSS13またはステップS20からステップS23から成る場合)各配送トランザクションへのTTP 130の関与は、以下の利点を有することができる。非認可関係者が非合法的な認証に成功した場合、その非認可関係者をトレースすることができる。加えて、TTP 130は、非認可関係者が認証されることを可能にする情報を、どの合法的ユーザが漏らしたかをトレースすることもできる。したがって、識別デバイス100上の情報を意図的に開示しないことへの強力なインセンティブがはたらく。一例によれば、これは、サプライチェーンの厳格な統制をもたらすことができる。
【０２６６】
S20、S21、S22、およびS23は、userAからuserB 120への識別デバイス100の配送を準備するために実行することができる。
【０２６７】
UP20において、userA 110は、第3の値を第2のユーザの識別子の関数f(B_ID)である値で置き換えることによって、保存された複数の値を更新することができる。具体的な例によれば、userA 110は、(X1,X2,X3)を、TTP 130によって上で計算され、ステップS23においてuserA 110に送信された(X1',X2',X3')で置き換えることによって、保存された複数の値(X1,X2,X3)を更新することができる。UP20は、図3に示されたUP10の代替と理解することができる。
【０２６８】
その後、userA 110は、識別デバイス100をuserB 120に送付または配送することができる。
【０２６９】
R10において、userB 120は、識別子DevIDによって識別される識別デバイス100を受け取ることができる。userB 120は、識別デバイス100に保存された複数の値を読み取り、その値をデータベースに保存することができる。userB 120は、複数の値を識別デバイスの識別子DevIDに関連付けることができる。
【０２７０】
R11において、userB 120は、保存された複数の値のうちの第3の値を、第2のユーザの識別子の関数f(B_ID)と比較することができる。具体的な例によれば、userB 120は、
【０２７１】
【数６４】
2010220212.tif 000066
【０２７２】
であるかどうかを検査することができ、ここで、X2およびX3は、ステップUP20中に保存された値を指す。userB 120によって実行される検査は、受信した複数の値がuserB 120に宛てたものであることを検証するのに役立てることができる。識別デバイス100をさらに配送するため、userB 120は、上で説明された配送プロトコル(ステップS20からステップUP20)を適用することができる。
【０２７３】
図5に関して説明された識別情報ベースの暗号系の使用は、公開鍵配布インフラストラクチャの必要性をなくすという利点を有する。例えば失効日付などの情報をユーザ識別子に埋め込むことも可能とすることができる。
【０２７４】
図6は、相互認証の2つの代替方法を示している。認証は、第1のユーザ110および第2のユーザ120が、識別子DevIDによって識別される識別デバイス100にアクセスしたことがあることを検証するために実行することができる。
【０２７５】
第1の例示的な方法によれば、UP10およびUP10に先行するステップは、図3および図4に関して上で説明されたように実行することができる。以下の例では、第2のユーザ120は、userCと呼ばれる。userCは、userBと同一ユーザとすることができ、userCは、やはり識別デバイス100にアクセスしたことのある異なるユーザとすることもできる。
【０２７６】
userA 110は、以下の値
【０２７７】
【数６５】
2010220212.tif 000067
【０２７８】
をデータベースから取り出すことができる。UserC 120は、以下の値
【０２７９】
【数６６】
2010220212.tif 000068
【０２８０】
をデータベースから取り出すことができる。値は、ステップM41に関連して説明されたように、識別デバイス100の初期化の後、データベースに保存することができ、または図3の説明においてuserB 120に関して説明されたように、識別デバイス100の受け取り時に、データベースに保存することができる。
【０２８１】
userA 110は、userCの公開暗号値C_PubCVを取得するために、TTP 130と連絡をとることができる。userA 110は、userCの識別子C_IDをTTP 130に送信することができる。TTP 130は、userCの公開暗号値C_PubCVを用いて応答することができる。認証が実行された後、データは、安全なチャネル上でuserA 110とTTP 130の間で交換することができる。userCの公開暗号値C_PubCVは、
【０２８２】
【数６７】
2010220212.tif 000069
【０２８３】
と表すことができる。userC 120の公開暗号値を取得するためのuserA 110とTTPの間の可能な1組の対話が、Diagram 5(数68)に示されている。Diagram 5(数68)は、TTP 130による、例えばuserA 110またはuserC 120などのユーザへの公開暗号値の配布を管理するプロトコルとして説明することもできる。
【０２８４】
【数６８】
2010220212.tif 000070
【０２８５】
Diagram 5(数68)に示される対話の代替として、userCの公開暗号値C_PubCVは、TTP 130によって署名された証明書として配布することができる。言い換えると、userCの公開暗号値C_PubCVは、TTP 130の私有鍵を用いて暗号化することができる。署名された証明書は、任意のユーザによって配布することができる。したがって、userCの公開暗号値C_PubCVを取得するために、userA 110がTTP 130と対話することが必要ないこともある。
【０２８６】
A10において、userCの公開暗号値C_PubCVを取得した後、userA 110は、ランダムな元
【０２８７】
【数６９】
2010220212.tif 000071
【０２８８】
を計算することができる。その後、userA 110は、grをランダムチャレンジとしてuserC 120に送信することができる。言い換えると、第1のユーザは、第2のユーザにランダムチャレンジを送信することができる。
【０２８９】
A11において、userC 120は、ランダムチャレンジとuserCに提供された少なくとも1つの暗号値の関数である値f(チャレンジ,C_PrCV)を計算することができる。具体的な例によれば、userCの私有暗号値C_PrCVは、yCと表すことができる。したがって、f(チャレンジ,C_PrCV)は、
【０２９０】
【数７０】
2010220212.tif 000072
【０２９１】
と表すことができる。その後、userC 120は、自身のデータベースからX2Cを取り出すことができる。上で言及されたように、X2Cは、userC 120によって識別デバイス100に保存された複数の値のうちの第2の値と理解することができる。X2Cは、識別デバイス100の初期化中または識別デバイス100を配送する準備中に、識別デバイス100に保存することができる。
【０２９２】
A12において、具体的な例によれば、userC 120は、
【０２９３】
【数７１】
2010220212.tif 000073
【０２９４】
およびX2CをuserA 110に送信する。したがって、userA 110は、ランダムチャレンジとuserC 120の少なくとも1つの私有暗号値の関数である値を受信する。userA 110は、X2Cも受信する。
【０２９５】
A13において、userA 110は、保存された複数の値のうちの第2の値の関数を、userCに提供された少なくとも1つの公開暗号値C_PubCVの関数と比較することができる。具体的な例によれば、userA 110は、自身のデータベースからX1Aを取り出し、
【０２９６】
【数７２】
2010220212.tif 000074
【０２９７】
が成り立つかどうかを検査する。上の例では、保存された複数の値のうちの第2の値は、X2Cによって表される。より具体的には、X2Cは、userC 120によって識別デバイス100に保存された複数の値のうちの第2の値と呼ぶことができる。さらに、上の例示的な式では、C_PubCVは、
【０２９８】
【数７３】
2010220212.tif 000075
【０２９９】
によって表される。
【０３００】
userC 120は、userAの公開暗号値A_PubCVを求めて、TTP 130に問い合わせを行うことができる。代替として、userAの公開暗号値A_PubCVは、TTP 130によって署名された証明書として、例えばuserA 110によって配布することができる。その後、userC 120は、ランダムチャレンジgsをuserA 110に送信し、応答として
【０３０１】
【数７４】
2010220212.tif 000076
【０３０２】
を受信することができる。
【０３０３】
A14において、userC 120は、保存された複数の値のうちの第2の値の関数を、userCに提供された少なくとも1つの公開暗号値C_PubCVの関数と比較することができる。具体的な例によれば、userC 120は、データベースからX1Cを取り出し、
【０３０４】
【数７５】
2010220212.tif 000077
【０３０５】
が成り立つかどうかを検査する。上の例では、保存された複数の値のうちの第2の値は、X2Aによって表される。より具体的には、X2Aは、userA 110によって識別デバイス100に保存された複数の値のうちの第2の値と呼ぶことができる。さらに、userAに提供された少なくとも1つの公開暗号値A_PubCVは、
【０３０６】
【数７６】
2010220212.tif 000078
【０３０７】
によって表される。userAに提供された少なくとも1つの公開暗号値A_PubCVは、userA 110に提供された複数の公開暗号値のうちの少なくとも1つと理解することもできる。
【０３０８】
例を続けると、userA 110およびuserC 120について検査が満たされた場合、両方のユーザは、それらがタグにアクセスしたことがあり、安全に鍵合意を継続できることを確信することができる。
【０３０９】
上の比較の例によれば、各比較は、比較される値を、計算ディフィ-ヘルマン問題を効率的に計算できない、効率的に計算可能な非退化双線形写像に入力として提供することによって、実行することができる。双線形写像は、
【０３１０】
【数７７】
2010220212.tif 000079
【０３１１】
を用いて表される。
【０３１２】
以下の図は、上で説明された例に従って認証を実行するための、userA 110、userC 120、およびTTPの間の対話を説明している。
【０３１３】
【数７８】
2010220212.tif 000080
【０３１４】
相互認証に成功すると、userAおよびuserCは、別々に共用鍵を確立または導出することができる。具体的な例によれば、userA 110およびuserC 120は、鍵Kを
【０３１５】
【数７９】
2010220212.tif 000081
【０３１６】
と設定する。userA 110とuserC 120の間のその後の通信は、共用鍵Kの使用を通して保護することができる。既知の確率的多項式時間アルゴリズムは
【０３１７】
【数８０】
2010220212.tif 000082
【０３１８】
および
【０３１９】
【数８１】
2010220212.tif 000083
【０３２０】
から
【０３２１】
【数８２】
2010220212.tif 000084
【０３２２】
を構成できないので、盗聴者はuserA 110とuserC 120によって交換される情報から鍵を再構成できないことに留意されたい。
【０３２３】
上で説明された方法の安全性は、ゲームベースの証明を使用して示すことができる。
【０３２４】
例えば、攻撃者は、別のユーザの再暗号化鍵を取得したことなしに、そのユーザについての組(X1,X2)を生成しようと試みることができる。これは、識別デバイス100に保存された複数の値を積極的に漏らし、TTPのトレーサビリティを逃れることに対応する。再暗号化ゲームは、この攻撃を捕らえることと理解することができる。TTP 130が知っている暗号値についての知識なしに、このゲームに勝利することは難しい(すなわち、コンピュータは、提出された問題を効率的に解くことができない)。
【０３２５】
再暗号化ゲーム
その目標として、TTP 130のサポートなしに、(図3に関して説明された)配送プロトコルを実行しなければならない、(攻撃者とも呼ばれる)敵対者Aを考える。Aは、プロトコルのすべてのアルゴリズムを自由に実行することを許される。次に、Aは、自らの選択で、2つのユーザ
【０３２６】
【数８３】
2010220212.tif 000085
【０３２７】
およびI*を選び、シミュレータBは、
【０３２８】
【数８４】
2010220212.tif 000086
【０３２９】
としてチャレンジ識別デバイスを初期化し、
【０３３０】
【数８５】
2010220212.tif 000087
【０３３１】
および
【０３３２】
【数８６】
2010220212.tif 000088
【０３３３】
ならびにI*に関連する私有/秘密暗号値を除く、
【０３３４】
【数８７】
2010220212.tif 000089
【０３３５】
およびI*についてのすべての関連情報をAに供給する。最終的に、Bは、対
【０３３６】
【数８８】
2010220212.tif 000090
【０３３７】
を攻撃者に提示し、Aは、情報
【０３３８】
【数８９】
2010220212.tif 000091
【０３３９】
についての推測を出力する。このゲームは、再暗号化と呼ばれる。
【０３４０】
定理1  敵対者Aが非ゼロの有利性
ReencryptA:=Pr[Aが再暗号化ゲームに勝利する]
を有する場合、確率的多項式時間アルゴリズムBは、修正計算ディフィ-ヘルマン問題(mCDH)の与えられた事例を解くためにBがAの有利性を使用する環境を生成することができる。
【０３４１】
証明。Bを以下のように定義する。Bは、mCDH問題のランダムな事例
【０３４２】
【数９０】
2010220212.tif 000092
【０３４３】
を与えられ、gabを計算するためにAを使用することを望む。アルゴリズムBは、Aが動作する環境をシミュレートする。
【０３４４】
シミュレータBは、図3に関して説明されたように、公開パラメータを選び、公表する。
【０３４５】
攻撃者は、自ら選択した任意の識別情報Iとして随意に登録することができる。Aは、自ら選択したユーザとして、任意の識別デバイスを初期化することができる。Aは、シミュレータの関与なしに、この動作を自律的に実行することができる。配送プロトコルは、図3に関して説明されたように実行され、したがって、Aは、Aが受け取った任意の識別デバイスまたはAが初期化した任意の識別デバイスに対して配送プロトコルを実行するよう、Bに自由に求めることができる。その後、攻撃者は、自らが選択したどのユーザとの認証プロトコルにも関わることができ、この場合、Bは、xI、yI、およびzIを選択し、したがって、すべての秘密情報を知ることによって、(I*を除く)すべてのシミュレートされる関係者Iを生成する。最後に、Aは、ターゲットユーザIを名のって、受け取りプロトコルを実行することができ、したがって、Bから
【０３４６】
【数９１】
2010220212.tif 000093
【０３４７】
を受信し、ここで、
【０３４８】
【数９２】
2010220212.tif 000094
【０３４９】
である。
【０３５０】
その後、攻撃者Aは、先行するフェーズにおいてBがAのすべての問い合わせにすでに回答している識別情報
【０３５１】
【数９３】
2010220212.tif 000095
【０３５２】
と、Aが
【０３５３】
【数９４】
2010220212.tif 000096
【０３５４】
および
【０３５５】
【数９５】
2010220212.tif 000097
【０３５６】
ならびに秘密情報
【０３５７】
【数９６】
2010220212.tif 000098
【０３５８】
および
【０３５９】
【数９７】
2010220212.tif 000099
【０３６０】
を知らないI*を選択する。Aは、I*についての公開情報を質問し、Bは、
【０３６１】
【数９８】
2010220212.tif 000100
【０３６２】
によって回答する。最後に、Aは、I*に宛てた識別デバイスを受け取ることができ、そうするために、Bは、
【０３６３】
【数９９】
2010220212.tif 000101
【０３６４】
を選び、
【０３６５】
【数１００】
2010220212.tif 000102
【０３６６】
と
【０３６７】
【数１０１】
2010220212.tif 000103
【０３６８】
の対をAに送信する。最終的に、Bは、
【０３６９】
【数１０２】
2010220212.tif 000104
【０３７０】
および
【０３７１】
【数１０３】
2010220212.tif 000105
【０３７２】
のように巧みに作られたチャレンジ識別デバイスに結び付けられた情報をAに送信し、Aは、
【０３７３】
【数１０４】
2010220212.tif 000106
【０３７４】
についての推測を出力する。
【０３７５】
Aがゲームに勝利する場合、
【０３７６】
【数１０５】
2010220212.tif 000107
【０３７７】
であり、Bは受け取ったmCDHの事例に対して同じ回答を与えることができる。
【０３７８】
これで再暗号化ゲームの証明を終了する。
【０３７９】
第2のゲームベースの証明の基礎として、攻撃者は、別のユーザについての組(X1,X2)を盗むか、または他の方法で取得することができ、その後、そのユーザとして認証を受けようと試みる。これは、識別デバイスを保有し、その後、合法的所有者として認証を受けようとすることに対応する。認証ゲームは、この攻撃を捕らえることと理解することができる。
【０３８０】
認証ゲーム
その目標として、ユーザの暗号値、特にそのユーザだけが知っている暗号値yおよびz∈Z*pを所有せずに、そのユーザとして第1の認証プロトコルを実行しなければならない、敵対者Aを考える。このゲームは、RFIDタグの不正リーダを使用して可能なことがある、識別デバイス上の資格証明(対(X1,X2))の盗難の場合に、ユーザが保護されることを示している。Aは、(ユーザAとして)プロトコルのすべてのアルゴリズムを自由に実行することを許される。次に、Aは、自らの選択で、ユーザI*を選び、Aは、I*に宛てた任意の識別デバイスも受け取る。最終的に、Aは、第1の認証プロトコルに関わり、AがI*であり、アイテムを所有したことがあるとシミュレータに納得させなければならない値を生成する。このゲームを認証と呼ぶ。このゲームは、識別デバイス上の資格証明を第三者に意図的に漏らすユーザを排除することにも留意されたい。
【０３８１】
定理2  敵対者Aが非ゼロの有利性
AuthA:=Pr[Aが認証ゲームに勝利する]
を有する場合、確率的多項式時間アルゴリズムBは、計算ディフィ-ヘルマン問題(CDH)の与えられた事例を解くためにBがAの有利性を使用する環境を生成することができる。
【０３８２】
証明。Bを以下のように定義する。Bは、CDH問題のランダムな事例(g,ga,gb)を与えられ、gabを計算するためにAを使用することを望む。アルゴリズムBは、Aが動作する環境をシミュレートする。
【０３８３】
シミュレータBは、図3に関して説明されたように、
【０３８４】
【数１０６】
2010220212.tif 000108
【０３８５】
を選び、
【０３８６】
【数１０７】
2010220212.tif 000109
【０３８７】
と設定し、公開パラメータを公表する。
【０３８８】
攻撃者は、自ら選択した任意の識別情報Iとして登録することができる。Aは、自ら選択した任意のユーザとして、任意の識別デバイスを初期化することができる。配送プロトコルは、図3に関して上で説明されたように実行され、したがって、Aは、Aが受け取った任意の識別デバイスまたはAが初期化した任意の識別デバイスに対して配送プロトコルを実行するよう、Bに自由に求めることができる。その後、攻撃者は、自らが選択したどのユーザとの第1の認証プロトコルにも関わることができ、この場合、Bは、xI、yI、およびzIを選択し、したがって、すべての秘密情報を知ることによって、(I*を除く)すべてのシミュレートされる関係者Iを生成する。最後に、Aは、ターゲットユーザIを名のって、図3に関して説明されたように、受け取りプロトコルを実行することができ、したがって、Bから
【０３８９】
【数１０８】
2010220212.tif 000110
【０３９０】
を受信し、ここで、
【０３９１】
【数１０９】
2010220212.tif 000111
【０３９２】
である。
【０３９３】
その後、攻撃者Aは、以前に問い合わせたことのない識別情報の中から、それとして認証を受けることを望む識別情報I*を選択する。Aは、I*の公開情報
【０３９４】
【数１１０】
2010220212.tif 000112
【０３９５】
および
【０３９６】
【数１１１】
2010220212.tif 000113
【０３９７】
を受信する。Aは、I*に宛てた識別デバイス情報を受け取ることができ、Bは、
【０３９８】
【数１１２】
2010220212.tif 000114
【０３９９】
を選び、
【０４００】
【数１１３】
2010220212.tif 000115
【０４０１】
をAに送信する。チャレンジをトリガするため、Aは、I*として受け取った識別デバイスのうちの1つの識別子をBに送信する。今度は、Bが、ランダムチャレンジgbによって回答する。その後、Aは、プロトコルに従って、
【０４０２】
【数１１４】
2010220212.tif 000116
【０４０３】
および
【０４０４】
【数１１５】
2010220212.tif 000117
【０４０５】
によって回答しなければならない。
【０４０６】
Aがゲームに勝利する場合、
【０４０７】
【数１１６】
2010220212.tif 000118
【０４０８】
であり、Bは受け取ったCDHの事例に対して同じ回答を与えることができる。
【０４０９】
これで認証ゲームの証明を終了する。
【０４１０】
第2の例示的な方法によれば、R11およびR11に先行するステップは、図5に関して上で説明されたように実行することができる。以下の例では、第2のユーザ120は、再びuserBと呼ばれる。userBは、userCと同一ユーザとすることができ、userBは、やはり識別デバイス100にアクセスしたことのある異なるユーザとすることもできる。
【０４１１】
UserB 120は、識別デバイスの識別子DevIDをuserBに送信することによって、認証プロセスを開始することができる。一例によれば、userA 110およびuserB 120はともに、値(X1,X2,X3)を所有する。三つ組または保存された複数の値は、R10において受け取り時に識別デバイス100から読み取ることができ、またはM42において識別デバイス100の初期化の後に保存することができる。以下の例は、上で観察された規約を継続し、添字Aは、userA 110に対応する値を識別し、添字Bは、userB 120に対応する値を識別する。
【０４１２】
認証プロセスを継続するため、userA 110は、ランダムなノンス(nonce)nA∈Z*pを選択することができる。ノンスは、メッセージが攻撃者が観測した古いメッセージの再現でないことを受信者に保証するために使用される値と理解することができる。その後、userA 110は、
【０４１３】
【数１１７】
2010220212.tif 000119
【０４１４】
を計算し、計算された値をuserB 120に送信することができる。IBEB(m)は、userB 120のために暗号化されたメッセージ、またはuserB 120の公開暗号値、例えば公開鍵を用いて暗号化されたメッセージを示すと理解することができる。この場合、mは、
【０４１５】
【数１１８】
2010220212.tif 000120
【０４１６】
である。他の値は、図5に関して説明されたものと理解することができる。
【０４１７】
同様に、userB 120は、ランダムなnB∈Z*pを選択することができる。その後、userB 120は、
【０４１８】
【数１１９】
2010220212.tif 000121
【０４１９】
を計算し、それをuserA 110に返信することができる。IBEA(m)は、userA 110のために暗号化されたメッセージ、またはuserA 110の公開暗号値、例えば公開鍵を用いて暗号化されたメッセージを示すと理解することができる。
【０４２０】
A20において、userA 110およびuserB 120は、ともに同じ識別デバイス100にアクセスしたことがある場合、共通の共用鍵を導出することができる。したがって、
【０４２１】
【数１２０】
2010220212.tif 000122
【０４２２】
である。
【０４２３】
共用鍵は、識別デバイス100に合法的にアクセスしたことがあることを各ユーザが他のユーザに証明するために使用することができる。ハンドシェークを確定するため、すなわち認証プロセスを終了するため、ユーザは、共用鍵を漏らすことなく共用鍵の知識を相互に証明するために、従来のチャレンジ-レスポンスプロトコルを使用することができる。したがって、第1の共用鍵を第2の共用鍵と比較することは、チャレンジ-レスポンスプロトコルを使用して、共用鍵が等しいことを検証することと理解することができる。
【０４２４】
第1のユーザ110と第2のユーザ120の間の通信は、鍵Kを使用して保護することができる。userA 110とuserB 120の間の対話は、以下の図を通してより良く理解することができる。
【０４２５】
【数１２１】
2010220212.tif 000123
【０４２６】
図6に関して説明された第2の方法の利点として、証明書の代わりに識別情報を(すなわち、従来の公開鍵暗号系の代わりに識別情報ベースの暗号系を)使用することで、より容易な鍵管理が促進されることを挙げることができる。第2の方法のさらなる利点として、第1の方法と比較して、ユーザとTTP 130の間の対話の数が削減されることを挙げることができる。
【０４２７】
図6に関して説明された第1および第2の両方法の利点として、ユーザ宛てのチャレンジはそのユーザの識別情報の公開鍵のもとで暗号化されるので、チャレンジの盗聴または識別デバイス100に保存された複数の値の読み取りは、方法の安全性を危険にさらすことがないことを挙げることができる。
【０４２８】
第1および第2の両認証プロトコルのさらなる利点として、ユーザに提供された私有暗号値を開示しないことに対してユーザが強いインセンティブを有することを挙げることができる。例えば、userA 110が自分の私有暗号値A_PrCVを攻撃者に開示した場合、攻撃者は、userA 110として認証を受けることができる。
【０４２９】
以下のゲームベースの証明は、チャレンジ識別デバイスおよびチャレンジユーザに関連する暗号値以外の、敵対者の手元にあるすべての暗号値を用いて、敵対者が、チャレンジユーザになりすますことができないことを示している。このゲームは、以下の要素、すなわち、盗聴者からの鍵交換の秘匿、いくつかの参加者の共謀、および不正識別デバイス情報の偽造を含むだけの十分な広さを有する。
【０４３０】
その目標として、合法的情報を処理することなく、認証に成功し、それによって、自分は合法的に識別デバイスにアクセスしたことがあると別のユーザを納得させなければならない、敵対者Aを考える。特に、Aは、ともにチャレンジの対象である与えられたユーザv*および与えられた識別デバイスについての組
【０４３１】
【数１２２】
2010220212.tif 000124
【０４３２】
を有していない。
【０４３３】
なりすましゲーム
Aは、プロトコルのすべてのアルゴリズムを自由に実行することを許される。次に、シミュレータBは、チャレンジタグを初期化するが、敵対者は、自ら選択した(チャレンジの1つの対象以外の)任意のユーザとして、その識別デバイスについての認証を(第2のプロトコルに従って)成功させるための情報を取得することができる。
【０４３４】
最後に、攻撃者は、チャレンジユーザv*を選び、認証を成功させて、自分はチャレンジタグを所有したことのあるユーザv*であるとシミュレータを納得させる必要がある。特に、ゲームの終りにおいて、攻撃者は、鍵Kを出力する必要がある。このゲームをなりすましと呼ぶ。
【０４３５】
定理3  敵対者Aが非ゼロの有利性
ImpersonateA:=Pr[Aがなりすましゲームに勝利する]
を有する場合、確率的多項式時間アルゴリズムBは、双線形決定ディフィ-ヘルマン問題(BDDH)の与えられた事例を解くためにBがAの有利性を使用する環境を生成することができる。
【０４３６】
証明。Bを以下のように定義する。Bは、BDDH問題のランダムな事例(g,ga,gb,gc,gx)を与えられ、x=abcであるかどうかを検査するためにAを使用することを望む。アルゴリズムBは、Aが動作する環境をシミュレートする。
【０４３７】
シミュレータBは、整数m=4qと設定し、ここで、qは、様々なプロトコルについて敵対者が問い合わせ全体で検討する識別情報の数の上限である。その後、Bは、
【０４３８】
【数１２３】
2010220212.tif 000125
【０４３９】
を選択し、2つのランダムなベクトル
【０４４０】
【数１２４】
2010220212.tif 000126
【０４４１】
および
【０４４２】
【数１２５】
2010220212.tif 000127
【０４４３】
を選択する。以下の関数が定義され、F(v)=(p-mk)+x0+Σi∈Vxi、J(v)=y0+Σi∈Vyi
であり、K(v)は、
【０４４４】
【数１２６】
2010220212.tif 000128
【０４４５】
のように定義される。
【０４４６】
シミュレータは、gを決定双線形ディフィ-ヘルマン(BDH: Bilinear Diffie-Hellman)チャレンジ(BDHチャレンジは、B. Waters、「Efficient Identity-Based Encryption Without Random Oracles」、EUROCRYPT、114〜127頁、2005年において定義されたものとして理解することができる)から受け取った生成元
【０４４７】
【数１２７】
2010220212.tif 000129
【０４４８】
および
【０４４９】
【数１２８】
2010220212.tif 000130
【０４５０】
として設定し、その後、シミュレータは、図5に関して定義されたプロトコルの規則に従って、
【０４５１】
【数１２９】
2010220212.tif 000131
【０４５２】
を選び、S=gαおよび
【０４５３】
【数１３０】
2010220212.tif 000132
【０４５４】
と設定し、公開システムパラメータを公表する。今度は、H(v)=U0Πi∈VUi=gbF(v)+J(v)であり、ここで、Vは、手元の文字列の第iビットが1に等しいインデックスiの集合であることに留意されたい。
【０４５５】
最初に、攻撃者は、すべての識別情報ベース暗号化(IBE: Identity Based Encryption)の私有鍵を受け取り、このようにして、IBEの保護は無力化される。したがって、この証明の残りでは、IBE.(・)という表記は省略される。
【０４５６】
攻撃者は、v*とは異なる、自ら選択した任意の識別情報viとして随意に登録することができ、TTPから値
【０４５７】
【数１３１】
2010220212.tif 000133
【０４５８】
を受信する。
【０４５９】
Aは、自ら選択した任意のユーザとして、任意の識別デバイスを初期化することができる。Aは、シミュレータの関与なしに、この動作を自律的に実行することができる。
【０４６０】
図5に関して定義された代替配送プロトコルの実行時に、攻撃者Aは、識別デバイスのID、2つの識別情報viおよびvj、ならびに組
【０４６１】
【数１３２】
2010220212.tif 000134
【０４６２】
をBに送信する。Bは、代替配送プロトコルによって命じられるように
【０４６３】
【数１３３】
2010220212.tif 000135
【０４６４】
を計算し、組(X1',X2',X3')をAに返信する。
【０４６５】
最後に、Aは、保存された複数の値を単に読み取り、それらを保存し、その値を識別デバイスの識別子DevIDと関連付けることによって、図5に関して定義された、R10で開始する受け取りプロトコルを実行することができる。
【０４６６】
その後、Bは、チャレンジの対象である新しい識別デバイスを初期化する。その後、Aは、自ら選択した任意のユーザviについて、そのユーザとしてハンドシェークまたは認証に成功するのに必要な情報を受信する資格を与えられる。したがって、Aは、viをBに送信する。K(vi)=0である場合、Bはアボートし、ランダムな推測を出力する。K(vi)=0でない場合、Bは
【０４６７】
【数１３４】
2010220212.tif 000136
【０４６８】
を選び、
【０４６９】
【数１３５】
2010220212.tif 000137
【０４７０】
を計算し、ここで、
【０４７１】
【数１３６】
2010220212.tif 000138
【０４７２】
である。対(X1,X2)を用いて、攻撃者は、望む任意の認証を実行することができるが、図5に関して説明された代替配送プロトコルを実行することはできない。
【０４７３】
加えて、2つの識別情報viおよびvjについて対(X1,X2)が与えられた場合、攻撃者は、第2の認証プロトコルの実行を通して、問い合わせた識別情報に実際に結び付けられた資格証明を受け取ったかどうかを検査することができる。したがって、BによってAに提供されるシミュレーションは完全である。
【０４７４】
その後、攻撃者Aは、以前問い合わせたことのない識別情報v*を選択し、x0+Σi∈Vxi≠kmである場合、シミュレータはアボートし、ランダムな推測を提示する。それ以外の場合、F(v*)=0 mod pを得るが、これは、
【０４７５】
【数１３７】
2010220212.tif 000139
【０４７６】
であることを意味する。その後、Bは、第2の認証プロトコルの説明に従って、対
【０４７７】
【数１３８】
2010220212.tif 000140
【０４７８】
をチャレンジとして送信する。Aは、(H(vi)r,S'r)によって回答し、その後、鍵Kを出力する。
【０４７９】
Aがゲームに勝利する場合、
【０４８０】
【数１３９】
2010220212.tif 000141
【０４８１】
である。したがって、Bは、
【０４８２】
【数１４０】
2010220212.tif 000142
【０４８３】
が成り立つかどうかを検査することによって、BDDH問題を解くことができる。
【０４８４】
これでなりすましゲームの証明を終了する。
【０４８５】
これまでの説明は、識別子によって識別される識別デバイス(100)上に複数の値を保存する例に関連する。しかし、複数の値の提供は、有線(例えば銅線および光ファイバ)、無線、または衛星媒体などの伝送媒体を用いた値の送信を含むことができることを理解されたい。
【０４８６】
識別子によって識別される識別デバイス(100)に「対応」する複数の値に関する対応という語は、複数の値が識別子によって識別される識別デバイス(100)の暗号識別子を含むことを示すと理解することができる。
【０４８７】
ユーザに「対応」する公開または私有暗号値に関する対応という語は、暗号値がユーザに属すること、または(TTP 130によって)ユーザに割り当てられていることを示すと理解することができる。
【０４８８】
図7は、従来のコンピューティング環境920(例えばパーソナルコンピュータ)の形態をとる汎用コンピューティングデバイスを含む、上で説明された態様および実施形態を実施するための例示的なシステムを示している。従来のコンピューティング環境は、処理ユニット922と、システムメモリ924と、システムバス926を含む。システムバスは、システムメモリ924を含む様々なシステムコンポーネントを処理ユニット922に結合する。処理ユニット922は、システムメモリ924にアクセスすることによって、算術、論理、および/または制御演算を実行することができる。システムメモリ924は、処理ユニット922と組み合わせて使用される情報および/または命令を保存することができる。システムメモリ924は、ランダムアクセスメモリ(RAM)928およびリードオンリメモリ(ROM)930などの、揮発性および不揮発性メモリを含むことができる。スタートアップ中などにパーソナルコンピュータ920内の要素間で情報を転送する手助けをする基本ルーチンを含む基本入出力システム(BIOS)は、ROM 930に保存することができる。システムバス926は、様々なバスアーキテクチャのいずれかを使用する、メモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含む、いくつかのタイプのバス構造のいずれとすることもできる。
【０４８９】
パーソナルコンピュータ920は、ハードディスク(図示されず)に対して読み取りおよび書き込みを行うハードディスクドライブ932と、着脱可能ディスク936に対して読み取りおよび書き込みを行う外部ディスクドライブ934をさらに含むことができる。着脱可能ディスクは、磁気ディスクドライバのための磁気ディスク、または光ディスクドライブのためのCD ROMなどの光ディスクとすることができる。ハードディスクドライブ932および外部ディスクドライブ934は、それぞれハードディスクドライブインタフェース938および外部ディスクドライブインタフェース940によってシステムバス926に接続される。ドライブおよび関連するコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、および他のデータの不揮発性記憶を、パーソナルコンピュータ920に提供する。データ構造は、上で説明されたように、第1のユーザによって第2のユーザに送信される通信を安全化するための方法またはシステムを実施するための関連データを含むことができる。関連データは、例えばリレーショナルデータベースまたはオブジェクトデータベースなどの、データベース内に組織することができる。
【０４９０】
本明細書で説明される例示的な環境は、ハードディスク(図示されず)および外部ディスク936を利用するが、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ランダムアクセスメモリ、およびリードオンリメモリなど、コンピュータによってアクセス可能なデータを保存できる他のタイプのコンピュータ可読媒体も例示的な動作環境において使用できることを当業者であれば理解されたい。
【０４９１】
オペレーティングシステム(図示されず)、1つまたは複数のアプリケーションプログラム944、他のプログラムモジュール(図示されず)、およびプログラムデータ946を含む、多くのプログラムモジュールは、ハードディスク、外部ディスク936、ROM 930、またはRAM 928に保存することができる。アプリケーションプログラムは、図1から図6に示された機能の少なくとも一部を含むことができる。
【０４９２】
ユーザは、以下で説明されるように、コマンドおよび情報を、キーボード948およびマウス950などの入力デバイスを介して、パーソナルコンピュータ920に入力することができる。他の入力デバイスは、マイクロフォン(もしくは他のセンサ)、ジョイスティック、ゲームパッド、またはスキャナなどを含むことができる。これらおよび他の入力デバイスは、システムバス926に結合されるシリアルポートインタフェース952を介して処理ユニット922に接続することができ、またはパラレルポートインタフェース954、ゲームポート、もしくはユニバーサルシリアルバス(USB)などの他のインタフェースによって接続することができる。さらに、情報は、プリンタ956を使用して印刷することもできる。プリンタ956および他のパラレル入出力デバイスは、パラレルポートインタフェース954を介して処理ユニット922に接続することができる。モニタ958または他のタイプの表示デバイスも、ビデオ入出力960などのインタフェースを介してシステムバス926に接続することができる。モニタに加えて、コンピューティング環境920は、スピーカまたは他の可聴出力など、他の周辺出力デバイス(図示されず)も含むことができる。
【０４９３】
コンピューティング環境920は、コンピュータ、(有線または無線)電話、携帯情報端末、またはテレビなどの、他の電子デバイスと通信することができる。通信するため、コンピューティング環境920は、1つまたは複数の電子デバイスへの接続を使用して、ネットワーク環境で動作することができる。図7は、リモートコンピュータ962とネットワーク接続されたコンピュータ環境を示している。リモートコンピュータ962は、サーバ、ルータ、ネットワークPC、ピアデバイス、または他の共通ネットワークノードなどの、別のコンピューティング環境とすることができ、コンピューティング環境920に関して上で説明された要素の多くまたはすべてを含むことができる。図7に示された論理接続は、ローカルエリアネットワーク(LAN)964およびワイドエリアネットワーク(WAN)966を含む。そのようなネットワーク環境は、オフィス、企業規模コンピュータネットワーク、イントラネット、およびインターネットにおいて普通であり、特に暗号化することができる。
【０４９４】
LANネットワーク環境で使用される場合、コンピューティング環境920は、ネットワークI/O 968を介してLAN 964に接続することができる。WANネットワーク環境で使用される場合、コンピューティング環境920は、モデム970またはWAN 966を介して通信を確立するための他の手段を含むことができる。コンピューティング環境920の内部にもまたは外部にも存在することができるモデム970は、シリアルポートインタフェース952を介してシステムバス926に接続される。ネットワーク環境では、コンピューティング環境920またはその部分に関して示されたプログラムモジュールは、リモートコンピュータ962上に存在する、またはリモートコンピュータ962からアクセス可能な、リモートメモリ記憶デバイスに保存することができる。さらに、(上で説明された)第1のユーザによって第2のユーザに送信される通信の安全化に関する他のデータは、リモートコンピュータ962上に存在することができ、またはリモートコンピュータ962からアクセス可能とすることができる。示されたネットワーク接続は例示的なものであり、電子デバイス間で通信リンクを確立する他の手段も使用できることが理解されよう。
【０４９５】
上で説明されたコンピューティングシステムは、上で説明されたような、第1のユーザによって第2のユーザに送信される通信を安全化するための方法のいずれかを実施するのに使用できるコンピューティングシステムのタイプの一例に過ぎない。
【符号の説明】
【０４９６】
100  識別デバイス
110  第1のユーザ、userA
120  第2のユーザ、userB、userC
130  TTP
920  従来のコンピューティング環境
922  処理ユニット
924  システムメモリ
926  システムバス
928  ランダムアクセスメモリ(RAM)
930  リードオンリメモリ(ROM)
932  ハードディスクドライブ
934  外部ディスクドライブ
936  着脱可能ディスク
938  ハードディスクドライブインタフェース
940  外部ディスクドライブインタフェース
944  1つまたは複数のアプリケーションプログラム
946  プログラムデータ
948  キーボード
950  マウス
952  シリアルポートインタフェース
954  パラレルポートインタフェース
956  プリンタ
958  モニタ
960  ビデオ入出力
962  リモートコンピュータ
964  ローカルエリアネットワーク(LAN)
966  ワイドエリアネットワーク(WAN)
968  ネットワークI/O
970  モデム
Device  識別デバイス
A_PrCV  userAの少なくとも1つの私有暗号値
A_PubCV  userAの少なくとも1つの公開暗号値
B_PrCV  userBの少なくとも1つの私有暗号値
B_PubCV  userBの少なくとも1つの公開暗号値
DevCID  識別デバイスの暗号識別子
f(DevCID)  識別デバイスの暗号識別子の関数
f(A_PrCV)  userAの少なくとも1つの私有暗号値の関数
f(B_PrCV)  userBの少なくとも1つの私有暗号値の関数
f(DevCID,A_PrCV)  識別デバイスの暗号識別子とuserAの少なくとも1つの私有暗号値の関数
A_ID  userAの識別子
B_ID  userBの識別子
DB  データベース
X2  識別デバイスに保存された第2の値
X2'  識別デバイスに保存された更新された第2の値
DevID  識別デバイスの識別子またはシリアル番号
f(A_ID)  userAの識別子の関数
f(DevCID,B_PrCV)  識別デバイスの暗号識別子とuserBの少なくとも1つの私有暗号値の関数
f(B_ID)  userBの識別子の関数
C_PrCV  userCの少なくとも1つの私有暗号値
C_PubCV  userCの少なくとも1つの公開暗号値
【図１】
2010220212.tif 000143
【図２】
2010220212.tif 000144
【図３】
2010220212.tif 000145
【図４】
2010220212.tif 000146
【図５】
2010220212.tif 000147
【図６】
2010220212.tif 000148
【図７】
2010220212.tif 000149
【外国語明細書】
2010220212.tif 000150
2010220212.tif 000151
2010220212.tif 000152
2010220212.tif 000153
2010220212.tif 000154
2010220212.tif 000155
2010220212.tif 000156
2010220212.tif 000157
2010220212.tif 000158
2010220212.tif 000159
2010220212.tif 000160
2010220212.tif 000161
2010220212.tif 000162
2010220212.tif 000163
2010220212.tif 000164
2010220212.tif 000165
2010220212.tif 000166
2010220212.tif 000167
2010220212.tif 000168
2010220212.tif 000169
2010220212.tif 000170
2010220212.tif 000171
2010220212.tif 000172
2010220212.tif 000173
2010220212.tif 000174
2010220212.tif 000175
2010220212.tif 000176
2010220212.tif 000177
2010220212.tif 000178
2010220212.tif 000179
2010220212.tif 000180
2010220212.tif 000181
2010220212.tif 000182
2010220212.tif 000183
2010220212.tif 000184
2010220212.tif 000185
2010220212.tif 000186
2010220212.tif 000187
2010220212.tif 000188
2010220212.tif 000189
2010220212.tif 000190
2010220212.tif 000191
2010220212.tif 000192
2010220212.tif 000193
2010220212.tif 000194
2010220212.tif 000195
2010220212.tif 000196
2010220212.tif 000197
2010220212.tif 000198
2010220212.tif 000199
2010220212.tif 000200
2010220212.tif 000201
2010220212.tif 000202
2010220212.tif 000203
2010220212.tif 000204
2010220212.tif 000205
2010220212.tif 000206
2010220212.tif 000207
2010220212.tif 000208
2010220212.tif 000209
2010220212.tif 000210
2010220212.tif 000211
2010220212.tif 000212
2010220212.tif 000213
2010220212.tif 000214