説明

デバイスを認証するためのキー生成方法及び装置と、デバイス認証方法及び装置

【課題】デバイスを認証するためのキー生成方法及び装置と、デバイス認証方法及び装置を提供する。
【解決手段】デバイスのIDのサイズに対応する個数だけの任意の数を生成して、エレメントベクトルを生成するステップと、デバイスのIDで“1”が配列された位置ごとに、その位置に対応する部分ベクトルを生成し、部分ベクトルをデバイスIDで“1”が配列された位置のサイズだけエレメントベクトルをシフトして生成するステップと、デバイスに対して生成された部分ベクトルを合成するステップと、を含むデバイスを認証するためのキー生成方法である。これにより、移動通信端末器のように性能が制限された機器で、公開キー暗号演算を使用せずに認証を行えるキー生成方法を提供できる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、認証プロトコルに係り、特に、デバイスを認証するためのキー生成方法及び装置と、デバイス認証方法及び装置に関する。
【背景技術】
【0002】
最近、数十年間、分散システムの導入、ターミナルユーザーとコンピュータとの間、コンピュータとコンピュータとの間のデータ伝達のためのネットワーク及び通信の使用により、情報保安の必要性は多くの変化を経た。ネットワーク保安は、伝送中のデータを保護し、データ伝送が信頼できるということを保証するために必要である。
【0003】
認証は、ある人の認識者を他の人に立証するプロセスである。認証プロトコルは、二人の通信関係者がある他のプロトコルを行う前に互いに認識するために行われるプロトコルである。
【0004】
現在使われている多くの認証プロトコルは、一般的に公開キー暗号システムを基盤にしている。しかし、公開キー暗号演算は、基本的に他の演算に比べて負荷が大きいため、制限された性能を有した機器で使用するのには無理がある。したがって、例えば、移動通信端末器のように性能が制限された機器で公開キー暗号演算を使用せずに認証を行える方案が要求される。
【特許文献1】国際公開第03/036867号パンフレット
【特許文献2】国際公開第00/008610号パンフレット
【特許文献3】米国特許出願公開第2004/003239号明細書
【発明の開示】
【発明が解決しようとする課題】
【0005】
本発明の目的は、前記の問題点を解決して、制限された性能を有した機器で公開キー演算を使用せずに認証を行える、デバイスを認証するためのキー生成方法及び装置と、デバイス認証方法及び装置を提供するところにある。
【課題を解決するための手段】
【0006】
前記の課題を解決するための本発明の一つの特徴は、デバイスを認証するためのキー生成方法において、前記デバイスのIDのビットにそれぞれ対応する複数の乱数を含むエレメントベクトルを生成するステップと、前記IDで“1”の値のビット位置に対応するビット位置の数だけ前記エレメントベクトルをシフトして、前記IDの各ビットに対する部分ベクトルを生成するステップと、前記キーを生成するために、前記部分ベクトルを合成するステップと、を含むことである。
【0007】
前記合成ステップは、前記部分ベクトルを合算するステップ、またはモジュラ演算を行うステップのうちの少なくとも一つを含むことが望ましい。
【0008】
本発明の他の特徴は、デバイスを認証するためのキー生成装置において、前記デバイスのIDのサイズに対応する個数だけのエレメントを有するエレメントベクトルを生成するエレメントベクトル生成部と、前記IDで“1”の値のビット位置に対応するビット位置の数だけ前記エレメントベクトルをシフトして、前記IDの各ビットに対する部分ベクトルを生成する部分ベクトル生成部と、前記キーを生成するために、前記部分ベクトルを合成する部分ベクトル合成部と、を備えることである。
【0009】
前記部分ベクトル合成部は、少なくとも前記部分ベクトルを合算するか、またはモジュラ演算を行うことによって、前記部分ベクトルを合成することが望ましい。
【0010】
また、前記エレメントは、乱数であることが望ましい。
【0011】
本発明のさらに他の特徴は、デバイスを認証する方法において、第1デバイスの固有のIDと固有のキーとを利用して第2デバイスを認証するステップを含み、前記第1デバイスの固有のキーは、前記固有のIDの各ビットに対する乱数を含むエレメントベクトルを生成するステップと、前記IDで“1”の値のビット位置に対応するビット位置の数だけ前記エレメントベクトルをシフトして、前記IDの各ビットに対する部分ベクトルを生成するステップと、前記キーを生成するために、前記部分ベクトルを合成するステップとにより生成される。
【0012】
本発明のさらに他の特徴は、デバイスを認証する装置において、第1デバイスの固有のIDと固有のキーとを利用して第2デバイスを認証する認証部と、前記デバイスのIDのサイズに対応する個数だけのエレメントを有するエレメントベクトルを生成するエレメントベクトル生成部と、前記IDで“1”の値のビット位置に対応するビット位置の数だけ前記エレメントベクトルをシフトして、前記IDの各ビットに対する部分ベクトルを生成する部分ベクトル生成部と、前記キーを生成するために、前記部分ベクトルを合成する部分ベクトル合成部と、を備えることである。
【発明の効果】
【0013】
本発明によれば、移動通信端末器のように性能が制限された機器で、公開キー暗号演算を使用せずに認証を行えるキー生成方法を提供できる。
【発明を実施するための最良の形態】
【0014】
以下、添付された図面を参照して、本発明を詳細に説明する。
【0015】
図1は、本発明による認証システムの概略的な構成図である。
【0016】
図1に示すように、デバイスA 110は、ID_A 111、Key_A 112及び廃棄デバイスリスト113を備え、デバイスB 120は、ID_B 121、Key_B 122及び廃棄デバイスリスト123を備える。
【0017】
ID_A 111及びKey_A 112は、デバイスA 110の固有なID及びキーを表し、ID_B 121及びKey_B 122は、デバイスB 120の固有なID及びキーを表す。
【0018】
廃棄デバイスリストは、キーがハッキングされて、それ以上有効でないキーを有するデバイスのリストである。すなわち、これは、廃棄された機器のリストであって、機器が作られるときに挿入されるか、または他の機器やメディアとの通信を通じて挿入されることもある。実際にそれをどのように管理するかについては、本発明の範囲を逸脱するので、それ以上の細部的な説明は省略し、ただし、本発明は、このような廃棄デバイスリストをどのように利用するかについてのみ後述する。
【0019】
キーは、一定個数のサブキーがベクトル形態で構成されてなるが、このベクトルのサイズは、機器IDのビット単位サイズと同一である。すなわち、もし、機器IDが32ビットとなれば、ベクトルのサイズも32となる。また、各機器のキー値は、任意の二つの機器A及び機器Bに対して(機器IDをビットストリングでないビットベクトルと見なせれば)、Key_A及びID_Bを内積した値と、Key_B及びID_Aを内積した値とが同一になるように設定される。
【0020】
例えば、機器IDが5ビットとなり、ID_Aが10110、ID_Bが01011とすれば、
Key_A=(100,200,300,400,500)
Key_B=(200,300,400,500,100)であり、したがって、
IP(Key_A,ID_B)=100*0+200*1+300*0+400*1+500*1=1100
IP(Key_B,ID_A)=200*1+300*0+400*1+500*1+100*0=1100
となることができる。
【0021】
以下、前記のような性質を満足させるように、キーを生成する方法を説明する。
【0022】
図2は、本発明によるキー生成装置の概略的なブロック図である。
【0023】
図2に示すように、キー生成装置200は、機器ID受信部210、乱数発生器220、エレメントベクトル生成部230、部分ベクトル生成部240、及び部分ベクトル合成部250を備える。
【0024】
機器ID受信部210は、外部からキーが生成される機器のnビットサイズのIDを受信して、部分ベクトル生成部240に出力する。機器IDは、キー生成装置200の内部で生成されることもある。
【0025】
乱数発生器220は、機器IDのサイズに対応するn個の乱数を発生させて、エレメントベクトル生成部230に出力する。
【0026】
エレメントベクトル生成部230は、乱数発生器220からn個の乱数を受信して、それをエレメントベクトルに作り、作られたエレメントベクトルを部分ベクトル生成部240に出力する。例えば、乱数発生器220からn個の乱数e_1,e_2,e_3,…,e_n−2,e_n−1,e_nを受信すれば、エレメントベクトル生成部230は、このような乱数をエレメントとして有するエレメントベクトル{e_1,e_2,e_3,…,e_n−2,e_n−1,e_n}を生成する。
【0027】
部分ベクトル生成部240は、エレメントベクトル生成部230から受信されたエレメントベクトルと、機器ID受信部210から受信された機器IDとを利用して部分ベクトルを生成する。すなわち、部分ベクトル生成部240は、機器IDで1が配列されたビット位置ごとにそのビット位置に対応する部分ベクトルを生成する。例えば、機器IDにm個の1が配列されていれば、部分ベクトルもm個生成される。部分ベクトルは、機器IDで1が配列された位置だけ前記エレメントベクトルをシフトすることによって生成される。例えば、図3に示すように、機器IDの0番目位置に1が配列されていれば、エレメントベクトルを0だけシフトする。したがって、結局、部分ベクトルは、シフトされていない本来のエレメントベクトル{e_1,e_2,e_3,…,e_n−2,e_n−1,e_n}となる。また、機器IDの1番目位置に1が配列されていれば、エレメントベクトルを1だけ左側にシフトして、部分ベクトルは、{e_2,e_3,…,e_n−2,e_n−1,e_n,e_1}となる。
【0028】
部分ベクトル合成部250は、部分ベクトル生成部240から生成された部分ベクトルを受信して、いずれも合算する。そして、このように合算された合成ベクトルをキーに出力する。ここで、合算演算(+)は、一般的な合算であることもあるが、モジュラ演算のように使われることもある。例えば、各元素のサイズが64ビットであるが、二つの数の和が64ビットの制限を超える場合、mod 2^64が適用されてLSB(Least Significant Bit)64ビットのみが使われうる。
【0029】
例えば、図3に示すように、機器IDに1が一つのみ配列されている場合には、部分ベクトルが一つのみ生成され、部分ベクトル合成部250の結果も、そのまま一つ生成された部分ベクトルとなる。このように部分ベクトル合成部250により行われる演算を整理すれば、次の通りである。
【0030】
【数1】

【0031】
図4を参照して、本発明によるキー生成方法の一例を説明する。
【0032】
例えば、機器IDが“10100000”としよう。機器IDの0番目及び2番目位置に、1が配列されている。
【0033】
そして、エレメントベクトル生成部は、エレメントベクトル{e_1,e_2,e_3,e_4,e_5,e_6,e_7,e_8}を生成する。
【0034】
これから生成される部分ベクトルV1={e_1,e_2,e_3,e_4,e_5,e_6,e_7,e_8}、部分ベクトルV2={e_3,e_4,e_5,e_6,e_7,e_8,e_1,e_2}である。
【0035】
そして、最後に、この二つの部分ベクトルV1とV2とを合算すれば、合成ベクトルは、{e_1+e_3,e_2+e_4,e_3+e_5,e_4+e_6,e_5+e_7,e_6+e_8,e_7+e_1,e_8+e_2}となる。このように作られた合成ベクトルをキーに出力する。
【0036】
図5は、本発明によるキー生成方法の過程を示すフローチャートである。
【0037】
まず、nビットの機器IDを入力される(510)。
【0038】
次いで、n個の乱数を生成して、n個のエレメントからなるエレメントベクトル{e_1,e_2,e_3,…,e_n−2,e_n−1,e_n}を生成する(520)。もちろん、ここで、エレメントベクトルは、機器IDごとに異なって生成されるものではなく、一回生成されたエレメントベクトルは、あらゆる機器IDに適用されてキーを生成するのに使われる。
【0039】
そして、機器IDで1が配列された位置ごとに、その位置に対応する部分ベクトルを生成する(530)。各部分ベクトルは、機器IDで1が配列された位置だけシフトされたエレメントベクトルとして表れる。
【0040】
次いで、生成された部分ベクトルをいずれも合算し(540)、合算したベクトルをキーに割り当てる(550)。
【0041】
以下、このように生成されたキーを利用して、一つの機器Aが他の機器Bを認証するときのプロトコルと相互認証を行う時のプロトコルとを説明する。
【0042】
図6は、本発明によって生成されたキーを利用して、デバイスAでデバイスBを認証するためのデバイスAの認証装置の概略的なブロック図である。
【0043】
図6に示すように、デバイスAの認証装置600は、送受信部610、廃棄デバイスリスト620、廃棄リスト検査部630、類似乱数生成器(Pseudo Random Generator:PNG)640、内積計算部650、ハッシュ演算部660、比較部670、及びキー割当部680を備える。
【0044】
送受信部610は、デバイスBの認証のために、ネットワークを通じてデバイスBへデバイスAのID_A及びNonce_Aを伝送し、デバイスBからデバイスBのIDであるID_B、Nonce_B、及びR値を受信する。これについての詳細な説明は後述する。
【0045】
廃棄デバイスリスト620は、廃棄された機器のリストであり、廃棄リスト検査部630は、デバイスAから受信したID_Bが廃棄デバイスリスト620に存在するかを検査する。
【0046】
PNG 640は、乱数値であるNonce_Aを生成して、それをハッシュ演算部660に出力する。Nonceは、プロトコルが一回のみ使用する数字であって、プロトコルが一回Nonceを使用すれば、この数字は、絶対に再び使用しない。
【0047】
内積計算部650は、本発明によって生成されたデバイスAのキーであるKey_Aと、デバイスBのIDであるID_Bとを内積計算して、内積結果であるKをハッシュ演算部660に出力する。
【0048】
ハッシュ演算部660は、PNG 640から受信されたNonce_A、内積計算部650から受信されたK、及びデバイスBから受信されたNonce_Bを連結してハッシュ演算を行う。ハッシュ演算は、Nonce_A、K、及びNonce_Bを連結した値を適切なハッシュ関数、例えばMD5、SHA1(Secure Hash Algorithm)等に入れて、Hを求めることである。そして、ハッシュ演算部660は、ハッシュ結果であるHの上位(h−k)ビットをR´とし、このR´を比較部670に出力する。すなわち、ハッシュ結果Hのサイズがhビットであり、キーのサイズがkビットであるとき、上位(h−k)ビットをR´とする。
【0049】
比較部670は、ハッシュ演算部660から受信されたR´と、デバイスBから受信されたRとを比較して同一であるか否かを判断する。
【0050】
キー割当部680は、比較部670の比較結果が同一であると判断された場合に、ハッシュ結果の下位kビットをキーに割り当てる。すなわち、ハッシュ結果Hで、上位(h−k)ビットを除いた残りの下位kビットをキーに割り当てる。
【0051】
図7は、図6に示すようなデバイスAの認証装置でデバイスBを認証するための認証方法のフローチャートである。
【0052】
デバイスBは、PNGを使用して乱数値であるNonce_Bを生成し、生成されたNonce_Bと自身のデバイスIDであるID_BとをデバイスAへ伝送する(710)。
【0053】
デバイスAは、デバイスBから受信したID_Bが廃棄されたデバイスリストに存在するか否かを確認することによって、デバイスBが廃棄されたか否かを確認する(720)。
【0054】
もし、デバイスBが廃棄されなければ、デバイスAもPNGを使用して乱数値であるNonce_Aを生成し、生成されたNonce_Aと自身のデバイスIDであるID_AとをデバイスBへ伝送する(730)。
【0055】
そして、デバイスAは、自身が有したキーであるKey_AとデバイスBから受けたID_Bとを内積することによってKを計算し、このように作られたK、Nonce_A、及びNonce_Bを連結した値を適切なハッシュ関数に入れてHを求める。そして、Hの上位(h−k)ビットをR´とする(740)。
【0056】
Nonce_AとID_Aとを受けたデバイスBも、自身が有したキーであるKey_Bと、デバイスAから受信したID_Aとを内積することによってK´を計算し、このように作られたK´、Nonce_A、及びNonce_Bを連結した値を、前記で使用したのようなハッシュ関数に入れてH´を求める(750)。そして、H´の上位(h−k)ビットをRとし、このR値をデバイスAへ伝送する(760)。
【0057】
デバイスBからRを受けたデバイスAは、この値がR´と同一であるか否かを比較し、同一である場合、Hの下位kビットをキーに割り当て、認証を成功的に終了する(770)。デバイスBでは、H´の下位kビット(すなわち、上位(h−k)番目ビットから最後のh番目ビットまで)をキーに割り当てる。
【0058】
図8は、本発明によって生成されたキーを利用して、デバイスAとデバイスBとを相互認証するための認証方法のフローチャートである。
【0059】
デバイスBは、PNGを使用して乱数値であるNonce_Bを生成し、生成されたNonce_Bと自身のデバイスIDであるID_BとをデバイスAへ伝送する(810)。
【0060】
デバイスAは、デバイスBから受信したID_Bが廃棄されたデバイスリストに存在するかを確認することによって、デバイスBが廃棄されたか否かを確認する(820)。
【0061】
もし、デバイスBが廃棄されなければ、デバイスAもPNGを使用して乱数値であるNonce_Aを生成し、自身が有したキーであるKey_AとデバイスBから受けたID_Bとを内積することによってKを計算し、このように作られたK、Nonce_A、及びNonce_Bを連結した値を適切なハッシュ関数に入れてHを求める。そして、Hの上位(h−k)/2ビットをR_A´とし、Hのその次の(h−k)/2ビット(すなわち、上位(h−k)/2番目ビットから(h−k)番目ビットまで)をR_B´とする(830)。
【0062】
そして、デバイスAは、Nonce_A、ID_A、及びR_A´をデバイスBへ伝送する(840)。
【0063】
デバイスBも、デバイスAから受信したID_Aが廃棄されたデバイスリストに存在するかを確認することによって、デバイスAが廃棄されたか否かを確認する(850)。
【0064】
もし、デバイスAが廃棄されなければ、デバイスBも、自身が有したキーであるKey_BとデバイスAから受信したID_Aとを内積することによってK´を計算し、このように作られたK´、Nonce_A、及びNonce_Bを連結した値を、前記で使用したのようなハッシュ関数に入れてH´を求める。そして、上位(h−k)/2ビットをR_Aとし、この値をデバイスAから受信したR_A´と同一であるか否かを比較する(860)。
【0065】
もし、R_AとR_A´とが同一であれば、デバイスBは、H´のその次の(h−k)/2ビットをR_Bとし、このR_B値をデバイスAへ伝送する(870)。これにより、デバイスBは、H´の下位kビット(すなわち、上位(h−k)番目ビットから最後のh番目ビットまで)をキーKey´に割り当てる。
【0066】
デバイスBからR_Bを受けたデバイスAは、この値がR_B´と同一であるか否かを比較し、同一である場合、Hの下位ビッドをキーKeyに割り当て、認証を成功的に終了する(880)。
【0067】
以上、説明したようなキー生成方法や認証方法は、また、コンピュータで読み取り可能な記録媒体にコンピュータで読み取り可能なコードとして具現することが可能である。コンピュータで読み取り可能な記録媒体は、コンピュータシステムにより読み取られるデータが保存されるあらゆる種類の記録装置を含む。コンピュータで読み取り可能な記録媒体の例としては、ROM(Read Only Memory)、RAM(Random Access Memory)、CD−ROM、磁気テープ、フレキシブルディスク、光データ保存装置などがあり、またキャリアウェーブ(例えば、インターネットを通じた伝送)の形態で具現されるものも含む。また、コンピュータで読み取り可能な記録媒体は、ネットワークで連結されたコンピュータシステムに分散され、分散方式でコンピュータで読み取り可能なコードが保存されて実行されうる。そして、前記キー生成方法や認証方法を具現するための機能的なプログラム、コード及びコードセグメントは、本発明が属する技術分野のプログラマにより容易に推論されうる。
【0068】
これまで、本発明について、その望ましい実施形態を中心に述べた。当業者は、本発明が、本発明の本質的な特性から逸脱しない範囲で、変形された形態に具現可能であるということを理解できるであろう。したがって、開示された実施形態は、限定的な観点ではなく、説明的な観点で考慮されねばならない。本発明の範囲は、前述した説明ではなく、特許請求の範囲に表れており、それと同等な範囲内にあるあらゆる差異点は、本発明に含まれていると解釈されねばならない。
【産業上の利用可能性】
【0069】
本発明は、デバイスを認証するためのキー生成方法及び装置と、デバイス認証方法及び装置に利用可能である。
【図面の簡単な説明】
【0070】
【図1】本発明による認証システムの概略的な構成図である。
【図2】本発明によるキー生成装置の概略的なブロック図である。
【図3】本発明によるキー生成方法を説明するための参考図である。
【図4】本発明によるキー生成方法の一例を示す図面である。
【図5】本発明によるキー生成方法の過程を示すフローチャートである。
【図6】図1に示したデバイスAで、デバイスBを認証するためのデバイスAの認証装置の概略的なブロック図である。
【図7】本発明によって生成されたキーを利用して、デバイスAでデバイスBを認証するための認証方法のフローチャートである。
【図8】本発明によって生成されたキーを利用して、デバイスAとデバイスBとが相互認証するためのデバイスAの認証装置の概略的なブロック図である。
【符号の説明】
【0071】
200 キー生成装置
210 機器ID受信部
220 乱数発生器
230 エレメントベクトル生成部
240 部分ベクトル生成部
250 部分ベクトル合成部

【特許請求の範囲】
【請求項1】
デバイスを認証するためのキー生成方法において、
前記デバイスのIDのビットにそれぞれ対応する複数の乱数を含むエレメントベクトルを生成するステップと、
前記IDで“1”の値のビット位置に対応するビット位置の数だけ前記エレメントベクトルをシフトして、前記IDの各ビットに対する部分ベクトルを生成するステップと、
前記キーを生成するために、前記部分ベクトルを合成するステップと、を含むことを特徴とするキー生成方法。
【請求項2】
前記合成ステップは、
前記部分ベクトルを合算するステップ、またはモジュラ演算を行うステップのうちの少なくとも一つを含むことを特徴とする請求項1に記載のキー生成方法。
【請求項3】
デバイスを認証するためのキー生成装置において、
前記デバイスのIDのサイズに対応する個数だけのエレメントを有するエレメントベクトルを生成するエレメントベクトル生成部と、
前記IDで“1”の値のビット位置に対応するビット位置の数だけ前記エレメントベクトルをシフトして、前記IDの各ビットに対する部分ベクトルを生成する部分ベクトル生成部と、
前記キーを生成するために、前記部分ベクトルを合成する部分ベクトル合成部と、を備えることを特徴とするキー生成装置。
【請求項4】
前記部分ベクトル合成部は、
少なくとも前記部分ベクトルを合算するか、またはモジュラ演算を行うことによって、前記部分ベクトルを合成することを特徴とする請求項3に記載のキー生成装置。
【請求項5】
前記エレメントは、乱数であることを特徴とする請求項3に記載のキー生成装置。
【請求項6】
デバイスを認証する方法において、
第1デバイスの固有のIDと固有のキーとを利用して第2デバイスを認証するステップを含み、前記第1デバイスの固有のキーは、
前記固有のIDの各ビットに対する乱数を含むエレメントベクトルを生成するステップと、
前記IDで“1”の値のビット位置に対応するビット位置の数だけ前記エレメントベクトルをシフトして、前記IDの各ビットに対する部分ベクトルを生成するステップと、
前記キーを生成するために、前記部分ベクトルを合成するステップとにより生成されることを特徴とするデバイス認証方法。
【請求項7】
デバイスを認証する装置において、
第1デバイスの固有のIDと固有のキーとを利用して第2デバイスを認証する認証部と、
前記デバイスのIDのサイズに対応する個数だけのエレメントを有するエレメントベクトルを生成するエレメントベクトル生成部と、
前記IDで“1”の値のビット位置に対応するビット位置の数だけ前記エレメントベクトルをシフトして、前記IDの各ビットに対する部分ベクトルを生成する部分ベクトル生成部と、
前記キーを生成するために、前記部分ベクトルを合成する部分ベクトル合成部と、を備えることを特徴とするデバイス認証装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2006−54879(P2006−54879A)
【公開日】平成18年2月23日(2006.2.23)
【国際特許分類】
【出願番号】特願2005−229878(P2005−229878)
【出願日】平成17年8月8日(2005.8.8)
【出願人】(390019839)三星電子株式会社 (8,520)
【氏名又は名称原語表記】Samsung Electronics Co.,Ltd.
【住所又は居所原語表記】416,Maetan−dong,Yeongtong−gu,Suwon−si Gyeonggi−do,Republic of Korea
【Fターム(参考)】