(57)【特許請求の範囲】
【請求項１】
事前共有鍵PSKと身元標識IDAとIDBとを記憶している記憶ユニットをそれぞれ含む装置Aと、装置Bとの間に身元認証を行うための事前共有鍵に基づくエンティティ認証方法であって、装置Aおよび装置Bは、処理ユニットをそれぞれ含み、前記方法は、
ステップ1)、装置Aに対応する処理ユニットが乱数NAを生成し、装置Bに送信することと、
ステップ2)、装置BがNAを受信した後に、装置Bに対応する処理ユニットが乱数NBと、キーシードとするための乱数ZSEEDBとを生成し、装置Bに対応する前記記憶ユニットに記憶された前記PSKと、前記IDAと、前記IDBとを参照して、鍵MKA||KEIA＝KDF1(NA,NB,PSK,IDA,IDB)を算出し、第１の暗号化認証データAuthEncDataB＝AuthEncKEIA(AAD,IV,NB||NA||IDB||IDA||ZSEEDB)を算出し、装置BがNB||NA||AuthEncDataBを装置Aに送信し、その中、MKAが認証鍵であり、KEIAがメッセージ暗号化と完全性鍵であり、KDF1が一種の鍵推定アルゴリズムであり、IDAが装置Aの身元標識であり、IDBが装置Bの身元標識であり、AuthEncは一種の暗号化認証アルゴリズムであり、AADが前記暗号化認証アルゴリズムに必要な他の認証データであり、IVが初期ベクトルであることと、
ステップ3)、装置AがNB||NA||AuthEncDataBを受信した後に、装置Aに対応する処理ユニットが復号化検証を行うことと、
ステップ4)、装置Aに対応する処理ユニットがキーシードとするための乱数ZSEEDAを生成し、装置Aに対応する前記記憶ユニットに記憶された前記IDAと、前記IDBとを参照して、第２の暗号化認証データAuthEncDataA＝AuthEncKEIA(AAD,IV,NA||NB||IDA||IDB||ZSEEDA)を算出し、共有キーシード
【数１】
0006417036.tif 000020
を算出し、マスター鍵MK＝KDF2(NA,NB,Z,IDA,IDB)を算出し、第１のメッセージ認証標識MacTagA＝MAC(MK,MsgID1||IDA||IDB||NA||NB)を算出し、装置AがNA||NB||AuthEncDataA||MacTagAを装置Bに送信し、その中、MsgID1が一つのメッセージシーケンス番号であり、
【数２】
0006417036.tif 000021
がビットごとの排他的論理和を示し、KDF2が一種の鍵推定アルゴリズムであり、MACが一種のメッセージ認証コード生成アルゴリズムであることと、
ステップ5)、装置BがNA||NB||AuthEncDataA||MacTagAを受信した後に装置Bに対応する処理ユニットが復号化検証を行うことと、
ステップ6)、装置Bに対応する処理ユニットが共有キーシード
【数３】
0006417036.tif 000022
を算出し、マスター鍵MK＝KDF2(NA,NB,Z,IDA,IDB)を算出し、第１のメッセージ認証標識MacTagA＝MAC(MK,MsgID1||IDA||IDB||NA||NB)を算出するとともに、受信したMacTagAと比較し、等しいならば、装置Aの身元が正当であると認められることと、
ステップ7)、装置Bに対応する処理ユニットが第２のメッセージ認証標識MacTagB＝MAC(MK,MsgID2||IDB||IDA||NB||NA)を算出し、MacTagBを装置Aに送信し、その中、MsgID2が一つのメッセージシーケンス番号であることと、
ステップ8)、装置AがMacTagBを受信した後に、装置Aに対応する処理ユニットが、まず、第２のメッセージ認証標識MacTagB＝MAC(MK,MsgID2||IDB||IDA||NB||NA)を算出し、それから、算出されたMacTagBと、受信したMacTagBとを比較し、等しいならば、装置Bの身元が正当であると認められることとを含むこととを特徴とする方法。
【請求項２】
前記ステップ2)における第１の暗号化認証データAuthEncDataBはEncDataB||MACBを含み、その中、EncDataBが装置Bの生成する暗号化データであり、MACBが装置Bの生成する完全性認証コードであり、
前記ステップ4)における第２の暗号化認証データAuthEncDataAはEncDataA||MACAを含み、その中、EncDataAが装置Aの生成する暗号化データであり、MACAが装置Aの生成する完全性認証コードであることを特徴とする請求項1に記載の方法。
【請求項３】
前記ステップ2)において第１の暗号化認証データAuthEncDataBを算出し、及び前記ステップ4)において第２の暗号化認証データAuthEncDataAを算出する他の認証データAADはプロトコルパラメータからなり、AAD＝SEP||PIDとして設置され、SEPがセキュリティプロトコルパラメータであり、PIDがプロトコル識別子であり、前記SEPとPIDとが規格ISO/IEC13157-1の定義に符合し、
前記ステップ2)において第１の暗号化認証データAuthEncDataBを算出する初期ベクトルIVは、鍵推定アルゴリズムにより生成され、KDF3(MKA,KEIA,NA,NB)の算出結果の低い96ビット値として設置され、
前記ステップ4)において第２の暗号化認証データAuthEncDataAを算出する初期ベクトルIVは、鍵推定アルゴリズムにより生成され、KDF3(MKA,KEIA,NA,NB)の算出結果の高い96ビット値として設置され、
その中、KDF3は一種の鍵推定アルゴリズムであることを特徴とする請求項1に記載の方法。
【請求項４】
前記ステップ3)において装置AがNB||NA||AuthEncDataBを受信した後に装置Aに対応する処理ユニットが復号化検証を行うことは、具体的に、
3.1)受信したNAと、先に装置Bに送信したNAとが等しいかどうかをチェックし、等しくない場合に検証が正しくないことと、
3.2)鍵MKA||KEIA＝KDF1(NA,NB,PSK,IDA,IDB)を算出することと、
3.3)前記AuthEncDataBにおけるEncDataB||MACB、NA||NB||IDA||IDB||ZSEEDB||MACB＝AuthDecKEIA(AAD,IV,AuthEncDataB)を復号化し、算出されたMACBと、受信したAuthEncDataBにおけるMACBとが等しいかどうかを比較し、等しくない場合に検証が正しくなく、復号化されたIDAと、IDBとが確かに装置Aと装置Bとの身元標識であるかどうかをチェックし、そうでないと検証が正しくなく、復号化されたNAと、先に装置Bに送信したNAとが等しいかどうかをチェックし、等しくない場合に検証が正しくなく、復号化されたNBと受信したNB||NA||AuthEncDataBにおけるNBとが等しいかどうかをチェックし、等しくない場合に検証が正しくなく、その中、AuthDecが復号化認証アルゴリズムであることと、
上記いずれか一つの検証が正しくない場合に、装置Aが受信したNB||NA||AuthEncDataBに対する検証結果が正しくないと認められることとを含むことを特徴とする請求項2に記載の方法。
【請求項５】
前記ステップ5)において装置BがNA||NB||AuthEncDataA||MacTagAを受信した後に、装置Bに対応する処理ユニットが復号化検証を行うことは、具体的に、
5.1)受信したNAと、先に装置Aに送信したNAとが等しいかどうかをチェックし、等しくない場合に検証が正しくないことと、
5.2)受信したNBと、先に装置Aに送信したNBとが等しいかどうかをチェックし、等しくない場合に検証が正しくないことと、
5.3)前記AuthEncDataAにおけるEncDataA||MACA、NA||NB||IDA||IDB||ZSEEDA||MACA＝AuthDec KEIA(AAD,IV,AuthEncDataA)を復号化し、算出されたMACAと、受信したAuthEncDataAにおけるMACAとが等しいかどうかを比較し、等しくない場合に検証が正しくなく、復号化されたIDAとIDBとが確かに装置Aと装置Bとの身元標識であるかどうかをチェックし、そうでないと検証が正しくなく、復号化されたNA、NBと、先に装置Aに送信したNA、NBとが等しいかどうかをチェックし、等しくない場合に検証が正しくなく、その中、AuthDecが復号化認証アルゴリズムであることと、
上記いずれか一つの検証が正しくない場合に、装置Bが受信したNA||NB||EncDataA||MACA||MacTagAに対する検証結果が正しくないと認められることとを含むことを特徴とする請求項2に記載の方法。
【請求項６】
装置Aが装置Bに送信するNAは、ACT_REQプロトコルデータユニットによりパッケージングされた後に伝送するものであり、装置Bが装置Aに送信するNB||NA||AuthEncDataBは、ACT_RESプロトコルデータユニットによりパッケージングされた後に伝送するものであり、装置Aが装置Bに送信するNA||NB||AuthEncDataA||MacTagAは、VFY_REQプロトコルデータユニットによりパッケージングされた後に伝送するものであり、装置Bが装置Aに送信するMacTagBは、VFY_RESプロトコルデータユニットによりパッケージングされた後に伝送するものであり、その中、ACT_REQ、ACT_RES、VFY_REQ及VFY_RESは規格ISO/IEC 13157-1の定義に符合するプロトコルデータユニットフォーマットであることを特徴とする請求項1-5のいずれか一項に記載の方法。
【請求項７】
他の装置と身元認証を行うための装置であって、当該装置は記憶ユニットと、処理ユニットと、送受信ユニットとを含み、
前記記憶ユニットは、前記他の装置との間の事前共有鍵PSK、及び前記他の装置の身元標識IDBを記憶するために用いられ、
前記送受信ユニットは、乱数NAを他の装置に送信し、他の装置が送信するNB||NA||AuthEncDataBを受信するために用いられ、
前記送受信ユニットは、さらに、NA||NB||AuthEncDataA||MacTagAを他の装置に送信するするととに、他の装置が送信してくる第２のメッセージ認証標識MacTagBを受信するために用いられ、
前記処理ユニットは、乱数NAを生成するために用いられ、
前記処理ユニットは、さらに、他の装置が送信してきたNB||NA||AuthEncDataBに対して復号化検証を行うために用いられ、
前記処理ユニットは、さらに、キーシードとしての乱数ZSEEDAを生成し、第２の暗号化認証データAuthEncDataA＝EncDataA||MACA＝AuthEncKEIA(AAD,IV,NA||NB||IDA||IDB||ZSEEDA)を算出し、共有キーシード
【数４】
0006417036.tif 000023
を算出し、マスター鍵MK＝KDF2(NA,NB,Z,IDA,IDB)を算出し、第１のメッセージ認証標識MacTagA＝MAC(MK,MsgID1||IDA||IDB||NA||NB)を算出し、NA||NB||AuthEncDataA||MacTagAを生成するために用いられ、その中、AuthEncが一種の暗号化認証アルゴリズムであり、EncDataAが当該装置の生成する暗号化データであり、MACAが当該装置の生成する完全性認証コードであり、AADが暗号化認証算出方法に必要な他の認証データであり、IVが初期ベクトルであり、IDAが当該装置の身元標識であり、IDBが他の装置の身元標識であり、KDF2が一種の鍵推定アルゴリズムであり、MsgID1が一つのメッセージシーケンス番号であり、MACが一種のメッセージ認証コード生成アルゴリズムであり、
【数５】
0006417036.tif 000024
がビットごとの排他的論理和を示し、
前記処理ユニットは、さらに、第２のメッセージ認証標識MacTagB＝MAC(MK,MsgID2||IDB||IDA||NB||NA)を算出し、それから、算出されたMacTagBと、他の装置が送信してきたMacTagBとを比較し、等しいならば、他の装置の身元が正当であるために用いられることを特徴とする装置。
【請求項８】
前記処理ユニットが他の装置の送信してきたNB||NA||AuthEncDataBに対して復号化検証を行うことは、具体的に、
前記処理ユニットが受信したNAと、他の装置に送信するNAとが等しいかどうかをチェックし、等しくない場合に検証が正しくないことと、
前記処理ユニットが鍵MKA||KEIA＝KDF1(NA,NB,PSK,IDA,IDB)を算出することと、
前記処理ユニットがAuthEncDataにおけるEncDataB||MACB、NA||NB||IDA||IDB||ZSEEDB||MACB＝AuthDecKEIA(AAD,IV,AuthEncDataB)を復号化し、算出されたMACBと受信したAuthEncDataBにおけるMACBとが等しいかどうかを比較し、等しくない場合に検証が正しくなく、復号化されたIDAとIDBとが確かに当該装置と他の装置の身元標識であるかどうかをチェックし、そうでないと検証が正しくなく、復号化されたNAと、先に他の装置に送信してきたNAとが等しいかどうかをチェックし、等しくない場合に検証が正しくなく、復号化されたNBと、受信したNB||NA||AuthEncDataBにおけるNBとが等しいかどうかをチェックし、等しくない場合に検証が正しくなく、その中、AuthDecが復号化認証アルゴリズムであり、
上記いずれか一つの検証が正しくない場合に、他の装置の送信してきたNB||NA||AuthEncDataBに対する検証結果が正しくないと認められることであることを特徴とする請求項7に記載の装置。
【請求項９】
他の装置と身元認証を行うための装置であって、前記装置は、記憶ユニットと、処理ユニットと、送受信ユニットとを含み、
前記記憶ユニットは、前記他の装置との間の事前共有鍵PSK、及び前記他の装置の身元標識IDAを記憶するために用いられ、
前記送受信ユニットは、他の装置が送信してくる乱数NAを受信するために用いられ、
前記送受信ユニットは、さらに、他の装置にNB||NA||AuthEncDataBを送信するとともに、他の装置が送信してくるNA||NB||AuthEncDataA||MacTagAを受信するために用いられ、
前記送受信ユニットは、他の装置に第２のメッセージ認証標識MacTagBを送信するために用いられ、
前記処理ユニットは、乱数NBと、キーシードとしての乱数ZSEEDBとを生成し、鍵MKA||KEIA＝KDF1(NA,NB,PSK,IDA,IDB)を算出し、第１の暗号化認証データAuthEncDataB＝EncDataB||MACB＝AuthEncKEIA(AAD,IV,NB||NA||IDB||IDA||ZSEEDB)を算出するとともに、NB||NA||AuthEncDataBを生成するために用いられ、その中、MKAが認証鍵であり、KEIAがメッセージ暗号化と完全性鍵であり、KDF1が一種の鍵推定アルゴリズムであり、IDBが当該装置の身元標識であり、IDAが他の装置の身元標識であり、AuthEncが一種の暗号化認証アルゴリズムであり、EncDataBが当該装置の生成する暗号化データであり、MACBが当該装置の生成する完全性認証コードであり、AADが暗号化認証算出方法に必要な他の認証データであり、IVが初期ベクトルであり、
前記処理ユニットは、さらに、他の装置が送信してきたNA||NB||AuthEncDataA||MacTagAに対して復号化検証を行うために用いられ、
前記処理ユニットは、さらに、共有キーシード
【数６】
0006417036.tif 000025
を算出し、マスター鍵MK＝KDF2(NA,NB,Z,IDA,IDB)を算出し、第１のメッセージ認証標識MacTagA＝MAC(MK,MsgID1||IDA||IDB||NA||NB)算出するとともに、受信したMacTagAと比較し、等しくなければ認証を終了し、等しいならば他の装置の身元が正当であると認められ、第２のメッセージ認証標識MacTagB＝MAC(MK,MsgID2||IDB||IDA||NB||NA)を算出するために用いられる装置。
【請求項１０】
前記処理ユニットがさらに他の装置の送信してきたNA||NB||AuthEncDataA||MacTagAに対して復号化検証を行うために用いられることは、具体的に、
前記処理ユニットが受信したNAと、他の装置に送信するNAとが等しいかどうかをチェックし、等しくない場合に検証が正しくないことと
前記処理ユニットが受信したNBと、他の装置に送信するNBとが等しいかどうかをチェックし、等しくない場合に検証が正しくないことと、
前記処理ユニットがAuthEncDataAにおけるEncDataA||MACA、NA||NB||IDA||IDB||ZSEEDA||MACA＝AuthDec KEIA(AAD,IV,AuthEncDataA)を復号化し、算出されたMACAと、受信したAuthEncDataAにおけるMACBとが等しいかどうかを比較し、等しくない場合に検証が正しくなく、復号化されたIDAとIDBとが確かに他の装置と当該装置との身元標識であるかどうかをチェックし、そうでないと検証が正しくなく、復号化されたNA、NBと、先に他の装置に送信したNA、NBとが等しいかどうかをチェックし、等しくない場合に検証が正しくないことと、
上記いずれか一つの検証が正しくない場合に、他の装置の送信してきたNA||NB||AuthEncDataA||MacTagAに対する検証結果が正しくないと認められることである請求項9に記載の装置。
【請求項１１】
装置Aと装置Bとが身元認証を行う際に、装置Aの処理ユニットによる作動方法であって、装置Aの記憶ユニットが装置Bとの間の事前共有鍵PSKと、装置Bの身元標識IDBとを記憶しており、当該方法は、
乱数NAを生成し、装置Bに送信し、
装置Bが送信してきたNB||NA||AuthEncDataBを受信した後に復号化検証を行い、
キーシードとするための乱数ZSEEDAを生成し、前記記憶ユニットに記憶された前記IDBを参照して、第２の暗号化認証データAuthEncDataA＝EncDataA||MACA＝AuthEncKEIA(AAD,IV,NA||NB||IDA||IDB||ZSEEDA)を算出し、共有キーシード
【数７】
0006417036.tif 000026
を算出し、マスター鍵MK＝KDF2(NA,NB,Z,IDA,IDB)を算出し、第１のメッセージ認証標識MacTagA＝MAC(MK,MsgID1||IDA||IDB||NA||NB)を算出し、NA||NB||AuthEncDataA||MacTagAを装置Bに送信し、
装置Bが送信してきた第２のメッセージ認証標識MacTagBを受信した後に、まず、第２のメッセージ認証標識MacTagB＝MAC(MK,MsgID2||IDB||IDA||NB||NA)を算出し、それから、算出されたMacTagBと、受信したMacTagBとを比較し、等しいならば装置Bの身元が正当であると認められることとを含み、
その中、IDAが装置Aの身元標識であり、IDBが装置Bの身元標識であり、AuthEncが一種の暗号化認証アルゴリズムであり、EncDataAが装置Aの生成する暗号化データであり、MACAが装置Aの生成する完全性認証コードであり、KDF2が一種の鍵推定アルゴリズムであり、MsgID1とMsgID2とがそれぞれ一つのメッセージシーケンス番号であり、
【数８】
0006417036.tif 000027
がビットごとの排他的論理和を示し、MACが一種のメッセージ認証コード生成アルゴリズムであることを特徴とする方法。
【請求項１２】
前記第２の暗号化認証データAuthEncDataAを算出する他の認証データAADは、プロトコルパラメータからなり、AAD＝SEP||PIDとして設置され、SEPがセキュリティプロトコルパラメータであり、PIDがプロトコル識別子であり、前記SEPとPIDとがいずれも規格ISO/IEC13157-1の定義に符合し、
前記第２の暗号化認証データAuthEncDataAを算出する初期ベクトルIVは、鍵推定アルゴリズムにより生成され、KDF3(MKA,KEIA,NA,NB)の算出結果の高い96ビット値として設置され、
その中、KDF3は一種の鍵推定アルゴリズムであることを特徴とする請求項11に記載の方法。
【請求項１３】
装置Bが受信してきたNB||NA||AuthEncDataBを受信した後に復号化検証を行うことは、具体的に、
受信したNAと、先に装置Bに送信したNAとが等しいかどうかをチェックし、等しくない場合に検証が正しくないことと、
鍵MKA||KEIA＝KDF1(NA,NB,PSK,IDA,IDB)を算出することと、
第１の認証暗号化データAuthEncDataBにおけるEncDataB||MACB、NA||NB||IDA||IDB||ZSEEDB||MACB＝AuthDecKEIA(AAD,IV,AuthEncDataB)を復号化し、算出されたMACBと、受信したAuthEncDataBにおけるMACBとが等しいかどうかを比較し、等しくない場合に検証が正しくなく、復号化されたIDAとIDBとが確かに装置Aと装置Bの身元標識であるかどうかをチェックし、そうでないと検証が正しくなく、復号化されたNAと、先に装置Bに送信したNAとが等しいかどうかをチェックし、等しくない場合に検証が正しくなく、復号化されたNBと、受信したNB||NA||AuthEncDataBにおけるNBとが等しいかどうかをチェックし、等しくない場合に検証が正しくないことと、
上記いずれか一つの検証が正しくない場合に、受信したNB||NA||AuthEncDataBに対する検証結果が正しくないと認められることを特徴とする請求項11に記載の方法。
【請求項１４】
装置Aと装置Bとが身元認証を行う際に、装置Bの処理ユニットによる作動方法であって、装置Bの記憶ユニットが装置Aとの間の事前共有鍵PSKと、装置Aの身元標識IDAとを記憶しており、当該方法は、
装置Aが送信してきた乱数NAを受信した後に、乱数NBと、キーシードとするための乱数ZSEEDBを生成し、前記記憶ユニットに記憶された前記IDAを参照して、第１の暗号化認証データAuthEncDataB＝EncDataB||MACB＝AuthEncKEIA(AAD,IV,NB||NA||IDB||IDA||ZSEEDB)を算出し、装置BがNB||NA||AuthEncDataBを装置Aに送信し、
装置Aが送信してきたNA||NB||AuthEncDataA||MacTagAを受信した後に復号化検証を行い、
共有キーシード
【数９】
0006417036.tif 000028
を算出し、マスター鍵MK＝KDF2(NA,NB,Z,IDA,IDB)を算出し、第１のメッセージ認証標識MacTagA＝MAC(MK,MsgID1||IDA||IDB||NA||NB)を算出するとともに、受信したMacTagAと比較し、等しくなければ認証を終了し、等しいならば、装置Aの身元が正当であると認められ、第２のメッセージ認証標識MacTagB＝MAC(MK,MsgID2||IDB||IDA||NB||NA)を算出し、MacTagBを装置Aに送信することとを含み、
その中、IDAが装置Aの身元標識であり、IDBが装置Bの身元標識であり、AuthEncが一種の暗号化認証アルゴリズムであり、EncDataBが装置Bの生成する暗号化データであり、MACBがエンティティ装置Bの生成する完全性認証コードであり、KDF2が一種の鍵推定アルゴリズムであり、MsgID1及びMsgID2がそれぞれ一つのメッセージシーケンス番号であり、
【数１０】
0006417036.tif 000029
がビットごとの排他的論理和を示し、MACが一種のメッセージ認証コード生成アルゴリズムであることを特徴とする方法。
【請求項１５】
前記第１の暗号化認証データAuthEncDataBを算出する他の認証データAADは、プロトコルパラメータからなり、AAD＝SEP||PIDとして設置され、SEPがセキュリティプロトコルパラメータであり、PIDがプロトコル識別子であり、前記SEPとPIDとが規格ISO/IEC13157-1の定義に符合し、
前記第１の暗号化認証データAuthEncDataBを算出する初期ベクトルIVは、鍵推定アルゴリズムにより生成され、KDF3(MKA,KEIA,NA,NB)の算出結果の低い96ビット値として設置され、
その中、KDF3は一種の鍵推定アルゴリズムであることを特徴とする請求項14に記載の方法。
【請求項１６】
装置Aが送信してきたNA||NB||AuthEncDataA||MacTagAを受信した後に復号化検証を行うことは、具体的に、
受信したNAと、先に装置Aに送信したNAとが等しいかどうかをチェックし、等しくない場合に検証が正しくないことと、
受信したNBと、先に装置Aに送信したNBとが等しいかどうかをチェックし、等しくない場合に検証が正しくないことと、
AuthEncDataAにおけるEncDataA||MACA,NA||NB||IDA||IDB||ZSEEDA||MACA＝AuthDec KEIA(AAD,IV,AuthEncDataA)を復号化し、算出されたMACAと、受信したAuthEncDataAにおけるMACAとが等しいかどうかを比較し、等しくない場合に検証が正しくなく、復号化されたIDAとIDBとが確かに装置Aと装置Bとの身元標識であるかどうかをチェックし、そうでないと検証が正しくなく、復号化されたNA、NBと、先に装置Aに送信したNA、NBとが等しいかどうかをチェックし、等しくない場合に検証が正しくないことと、
上記いずれか一つの検証が正しくない場合に、受信したNA||NB||AuthEncDataA||MacTagAに対する検証結果が正しくないと認められることを特徴とする請求項14に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、2014年10月17日に中国専利局に提出され、出願番号が201410554547.6で、発明の名称が「事前共有鍵に基づくエンティティ認証方法及び装置」である中国特許出願の優先権を要求しており、本願で、その全ての内容を援用するものとする。
【０００２】
本発明は、ネットワークセキュリティ技術の分野に属し、特に、事前共有鍵に基づくエンティティ認証方法及び装置に関する。
【背景技術】
【０００３】
通信ネットワークについては、例えば、ローカルエリアネットワークWLAN、ワイヤレスセンサーネットワークWSN、近距離無線通信NFC、RF識別RFID、パーソナル・エリア・ネットワークWPAN等、通信の際に、偽造、盗聴、リプレイ等の攻撃を受けやすいので、通信両方の身元の正当性を確保するために、通信の前に必ず、通信両方の間の身元認証問題を解決しなければならない。現在、暗号アルゴリズムに基づく、特に対称暗号アルゴリズムに基づく認証方案において、認証の過程で、一般に認証両方の身元を確認しないことに起因して、身元認証が成功したとしても、相手がある共有する秘密を持つことしか確定できないが、実際にまだ相手が誰であるかを確定できなく、あるセキュリティ上のリスクがある。
【発明の概要】
【課題を解決するための手段】
【０００４】
背景技術に存在している上記技術的問題を解決するために、事前共有鍵に基づくエンティティ認証方法及び装置を提供する必要がある。事前共有鍵PSKを共有し且つ互いに相手の身元標識IDAとIDBとを知っているエンティティAと、エンティティBとの間に身元認証を行うための事前共有鍵に基づくエンティティ認証方法であって、
ステップ1)、エンティティAが乱数NAを生成し、エンティティBに送信することと、
ステップ2)、エンティティBをNAを受信した後に、乱数NBと、キーシードとするための乱数ZSEEDBとを生成し、鍵MKA||KEIA＝KDF1(NA,NB,PSK,IDA,IDB)を算出し、第１の暗号化認証データAuthEncDataB＝AuthEncKEIA(AAD,IV,NB||NA||IDB||IDA||ZSEEDB)を算出し、エンティティBがNB||NA||AuthEncDataBをエンティティAに送信し、その中、MKAが認証鍵であり、KEIAがメッセージ暗号化と完全性鍵であり、KDF1が一種の鍵推定アルゴリズムであり、IDAがエンティティAの身元標識であり、IDBがエンティティBの身元標識であり、AuthEncは一種暗号化認証アルゴリズムであり、AADが前記暗号化認証アルゴリズムに必要な他の認証データであり、IVが初期ベクトルであることと、
ステップ3)、エンティティAがNB||NA||AuthEncDataBを受信した後に復号化検証を行うことと、
ステップ4)、エンティティAがキーシードとするための乱数ZSEEDAを生成し、第２の暗号化認証データAuthEncDataA＝AuthEncKEIA(AAD,IV,NA||NB||IDA||IDB||ZSEEDA)を算出し、共有キーシード
【数１】
0006417036.tif 000002
を算出し、マスター鍵MK＝KDF2(NA,NB,Z,IDA,IDB)を算出し、第１のメッセージ認証標識MacTagA＝MAC(MK,MsgID1||IDA||IDB||NA||NB)を算出し、エンティティAがNA||NB||AuthEncDataA||MacTagAをエンティティBに送信し、その中、MsgID1が一つのメッセージシーケンス番号であり、
【数２】
0006417036.tif 000003
がビットごとの排他的論理和を示し、KDF2が一種の鍵推定アルゴリズムであり、MACが一種のメッセージ認証コード生成アルゴリズムであることと、
ステップ5)、エンティティBがNA||NB||AuthEncDataA||MacTagAを受信した後に復号化検証を行うことと、
ステップ6)、エンティティBが共有キーシード
【数３】
0006417036.tif 000004
を算出し、マスター鍵MK＝KDF2(NA,NB,Z,IDA,IDB)を算出し、第１のメッセージ認証標識MacTagA＝MAC(MK,MsgID1||IDA||IDB||NA||NB)を算出するとともに、受信したMacTagAと比較し、等しいならば、エンティティAの身元が正当であると認められることと、
ステップ7)、エンティティBが第２のメッセージ認証標識MacTagB＝MAC(MK,MsgID2||IDB||IDA||NB||NA)を算出し、MacTagBをエンティティAに送信し、その中、MsgID2が一つのメッセージシーケンス番号であることと、
ステップ8)、エンティティAがMacTagBを受信した後に、まず、第２のメッセージ認証標識MacTagB＝MAC(MK,MsgID2||IDB||IDA||NB||NA)を算出し、それから、算出されたMacTagBと、受信したMacTagBとを比較し、等しいならば、エンティティBの身元が正当であると認められる。
【０００５】
他の装置と身元認証を行うための装置であって、当該装置は記憶ユニットと、処理ユニットと、送受信ユニットとを含み、前記記憶ユニットは、前記他の装置との間の事前共有鍵PSK、及び前記他の装置の身元標識IDBを記憶するために用いられ、前記送受信ユニットは、乱数NAを他の装置に送信し、他の装置が送信するNB||NA||AuthEncDataBを受信するために用いられ、
前記送受信ユニットは、さらに、NA||NB||AuthEncDataA||MacTagAを他の装置に送信するするととに、他の装置が送信してくる第２のメッセージ認証標識MacTagBを受信するために用いられ、
前記処理ユニットは、乱数NAを生成するために用いられ、
前記処理ユニットは、さらに、他の装置が送信してきたNB||NA||AuthEncDataBに対して復号化検証を行うために用いられ、
前記処理ユニットは、さらに、キーシードとしての乱数ZSEEDAを生成し、第２の暗号化認証データAuthEncDataA＝EncDataA||MACA＝AuthEncKEIA(AAD,IV,NA||NB||IDA||IDB||ZSEEDA)を算出し、共有キーシード
【数４】
0006417036.tif 000005
を算出し、マスター鍵MK＝KDF2(NA,NB,Z,IDA,IDB)を算出し、第１のメッセージ認証標識MacTagA＝MAC(MK,MsgID1||IDA||IDB||NA||NB)を算出し、NA||NB||AuthEncDataA||MacTagAを生成するために用いられ、その中、AuthEncが一種の暗号化認証アルゴリズムであり、EncDataAが当該装置の生成する暗号化データであり、MACAが当該装置の生成する完全性認証コードであり、AADが暗号化認証算出方法に必要な他の認証データであり、IVが初期ベクトルであり、IDAが当該装置の身元標識であり、IDBが他の装置の身元標識であり、KDF2が一種の鍵推定アルゴリズムであり、MsgID1が一つのメッセージシーケンス番号であり、MACが一種のメッセージ認証コード生成アルゴリズムであり、
【数５】
0006417036.tif 000006
がビットごとの排他的論理和を示し、
前記処理ユニットは、さらに、第２のメッセージ認証標識MacTagB＝MAC(MK,MsgID2||IDB||IDA||NB||NA)を算出し、それから、算出されたMacTagBと、他の装置が送信してきたMacTagBとを比較し、等しいならば、他の装置の身元が正当であるために用いられる。
【０００６】
他の装置と身元認証を行うための装置であって、前記装置は、記憶ユニットと、処理ユニットと、送受信ユニットとを含み、前記記憶ユニットは、前記他の装置との間の事前共有鍵PSK、及び前記他の装置の身元標識IDAを記憶するために用いられ、
前記送受信ユニットは、他の装置が送信してくる乱数NAを受信するために用いられ、
前記送受信ユニットは、さらに、他の装置にNB||NA||AuthEncDataBを送信するとともに、他の装置が送信してくるNA||NB||AuthEncDataA||MacTagAを受信するために用いられ、
前記送受信ユニットは、他の装置に第２のメッセージ認証標識MacTagBを送信するために用いられ、
前記処理ユニットは、乱数NBと、キーシードとしての乱数ZSEEDBとを生成し、鍵MKA||KEIA＝KDF1(NA,NB,PSK,IDA,IDB)を算出し、第１の暗号化認証データAuthEncDataB＝EncDataB||MACB＝AuthEncKEIA(AAD,IV,NB||NA||IDB||IDA||ZSEEDB)を算出するとともに、NB||NA||AuthEncDataBを生成するために用いられ、その中、MKAが認証鍵であり、KEIAがメッセージ暗号化と完全性鍵であり、KDF1が一種の鍵推定アルゴリズムであり、IDBが当該装置の身元標識であり、IDAが他の装置の身元標識であり、AuthEncが一種の暗号化認証アルゴリズムであり、EncDataBが当該装置の生成する暗号化データであり、MACBが当該装置の生成する完全性認証コードであり、AADが暗号化認証算出方法に必要な他の認証データであり、IVが初期ベクトルであり、
前記処理ユニットは、さらに、他の装置が送信してきたNA||NB||AuthEncDataA||MacTagAに対して復号化検証を行うために用いられ、
前記処理ユニットは、さらに、共有キーシード
【数６】
0006417036.tif 000007
を算出し、マスター鍵MK＝KDF2(NA,NB,Z,IDA,IDB)を算出し、第１のメッセージ認証標識MacTagA＝MAC(MK,MsgID1||IDA||IDB||NA||NB)算出するとともに、受信したMacTagAと比較し、等しくなければ認証を終了し、等しいならば他の装置の身元が正当であると認められ、第２のメッセージ認証標識MacTagB＝MAC(MK,MsgID2||IDB||IDA||NB||NA)を算出するために用いられる。
【０００７】
エンティティAとエンティティBとが身元認証を行う際に、エンティティAの作動方法であって、エンティティAがエンティティBとの間の事前共有鍵PSKを有し、エンティティBの身元標識IDBを知っており、
乱数NAを生成し、エンティティBに送信し、
エンティティBが送信してきたNB||NA||AuthEncDataBを受信した後に復号化検証を行い、
キーシードとするための乱数ZSEEDAを生成し、第２の暗号化認証データAuthEncDataA＝EncDataA||MACA＝AuthEncKEIA(AAD,IV,NA||NB||IDA||IDB||ZSEEDA)を算出し、共有キーシード
【数７】
0006417036.tif 000008
を算出し、マスター鍵MK＝KDF2(NA,NB,Z,IDA,IDB)を算出し、第１のメッセージ認証標識MacTagA＝MAC(MK,MsgID1||IDA||IDB||NA||NB)を算出し、NA||NB||AuthEncDataA||MacTagAをエンティティBに送信し、
エンティティBが送信してきた第２のメッセージ認証標識MacTagBを受信した後に、まず、第２のメッセージ認証標識MacTagB＝MAC(MK,MsgID2||IDB||IDA||NB||NA)を算出し、それから、算出されたMacTagBと、受信したMacTagBとを比較し、等しいならばエンティティBの身元が正当であると認められることとを含み、
その中、IDAがエンティティAの身元標識であり、IDBがエンティティBの身元標識であり、AuthEncが一種の暗号化認証アルゴリズムであり、EncDataAがエンティティAの生成する暗号化データであり、MACAがエンティティエンティティAの生成する完全性認証コードであり、KDF2が一種の鍵推定アルゴリズムであり、MsgID1とMsgID2とがそれぞれ一つのメッセージシーケンス番号であり、
【数８】
0006417036.tif 000009
がビットごとの排他的論理和を示し、MACが一種のメッセージ認証コード生成アルゴリズムである。
【０００８】
エンティティAとエンティティBとが身元認証を行う際に、エンティティBの作動方法であって、その中、エンティティBがエンティティBとの間の事前共有鍵PSKを有し、且つエンティティAの身元標識IDAを知っており、当該方法は、
エンティティAが送信してきた乱数NAを受信した後に、乱数NBと、キーシードとするための乱数ZSEEDBを生成し、第１の暗号化認証データAuthEncDataB＝EncDataB||MACB＝AuthEncKEIA(AAD,IV,NB||NA||IDB||IDA||ZSEEDB)を算出し、エンティティBがNB||NA||AuthEncDataBをエンティティAに送信し、
エンティティAが送信してきたNA||NB||AuthEncDataA||MacTagAを受信した後に復号化検証を行い、
共有キーシード
【数９】
0006417036.tif 000010
を算出し、マスター鍵MK＝KDF2(NA,NB,Z,IDA,IDB)を算出し、第１のメッセージ認証標識MacTagA＝MAC(MK,MsgID1||IDA||IDB||NA||NB)を算出するとともに、受信したMacTagAと比較し、等しくなければ認証を終了し、等しいならば、エンティティAの身元が正当であると認められ、第２のメッセージ認証標識MacTagB＝MAC(MK,MsgID2||IDB||IDA||NB||NA)を算出し、MacTagBをエンティティAに送信することとを含み、
その中、IDAがエンティティAの身元標識であり、IDBがエンティティBの身元標識であり、AuthEncが一種の暗号化認証アルゴリズムであり、EncDataBがエンティティBの生成する暗号化データであり、MACBがエンティティエンティティBの生成する完全性認証コードであり、KDF2が一種の鍵推定アルゴリズムであり、MsgID1及びMsgID2がそれぞれ一つのメッセージシーケンス番号であり、
【数１０】
0006417036.tif 000011
がビットごとの排他的論理和を示し、MACが一種のメッセージ認証コード生成アルゴリズムである。  
【発明の効果】
【０００９】
本発明は、以下の長所を含む：
1)両ネットワークエンティティの間の双方向認証を実現できるとともに後続の通信データを保護するためのマスター鍵を確立する、
2)認証しつつ相手の身元を確認する、
3)同一のアルゴリズム、同一の鍵を利用し、且つデータの暗号化と安全性保護の二つの算出を同時に実行することにより、並行処理の方式を効果的に利用し、効率を大幅に向上させ、ハードウェア算出リソースの消費を低減させ、データ伝送遅延と算出操作重畳の低減に有益である。  
【図面の簡単な説明】
【００１０】
【図１】本発明が提供するエンティティAとエンティティBとを含むエンティティ認証システムの模式図である。
【図２】本発明においてエンティティAの実行するフローチャートである。
【図３】本発明においてエンティティBが実行するフロー模式図である。
【図４】本発明においてエンティティAに対応する装置の構成の模式図である。
【図５】本発明においてエンティティBに対応する装置の構成の模式図である。
【発明を実施するための形態】
【００１１】
図1を参照して、本発明は、事前共有鍵に基づくエンティティ認証方法を提供し、当該方法を実施する際に、エンティティAとエンティティBとの間に既に事前共有鍵(Pre-Shared key：PSK)を共有しており、且つ互いに相手の身元標識を知っており、エンティティAの身元標識がIDAであり、エンティティBの身元標識がIDBであり、当該方法は、
ステップ1、エンティティAが乱数NAを生成し、エンティティBに送信することと、
ステップ2、エンティティBがNAを受信した後、乱数NBと、キーシードとするための乱数ZSEEDBとを生成し、鍵MKA||KEIA＝KDF1(NA,NB,PSK,IDA,IDB)を算出し、第１の暗号化認証データAuthEncDataB＝EncDataB||MACB＝AuthEncKEIA(AAD,IV,NB||NA||IDB||IDA||ZSEEDB)を算出し、エンティティBがNB||NA||AuthEncDataBをエンティティAに送信し、その中、AuthEncDataBがEncDataBとMACBとを含み、KEIAにより算出して生成され、MKAが認証鍵であり、KEIAがメッセージ暗号化と完全性鍵であり、KDF1が鍵推定アルゴリズムであり、本発明にかかる鍵推定アルゴリズムは例えば-128ビットの擬似ランダム関数(Pseudo-Random Function-128：PRF-128)等のアルゴリズムであり、AuthEncは暗号化認証アルゴリズムであり、本発明にかかる暗号化認証アルゴリズムは例えばガロアカウンタモード(Galois Counter Mode：GCM)等のアルゴリズムであり、EncDataBがエンティティBの生成する暗号化データであり、MACBがエンティティBの生成する完全性認証コードであり、AADが暗号化認証算出方法に必要な他の認証データであり、IVが初期ベクトルである。ここの「||」がフィールド間のカスケードを示し、フィールドの前後順序を限定せず、以下で同様である。また、本発明において「||」によりカスケーディングされた後のフィールドも一つの「フィールドグループ」を構成すると認められてもよく、なお、本発明における「フィールドグループ」がオープンであり、すなわち、「フィールドグループ」に含まれるフィールドを除いて、他のフィールドも「フィールドグループ」に含まれることを排除しないことと、
ステップ3、エンティティAがNB||NA||AuthEncDataBを受信した後に、復号化検証を行い、検証が正しくない場合に認証を終了し、検証が正しい場合に後続のステップを実行することと、
ステップ4、エンティティAがキーシードとするための乱数ZSEEDAを生成し、第２の暗号化認証データAuthEncDataA＝EncDataA||MACA＝AuthEncKEIA(AAD,IV,NA||NB||IDA||IDB||ZSEEDA)を算出し、共有キーシード
【数１１】
0006417036.tif 000012
を算出し、マスター鍵MK＝KDF2(NA,NB,Z,IDA,IDB)を算出し、第１のメッセージ認証標識MacTagA＝MAC(MK,MsgID1||IDA||IDB||NA||NB)を算出する。その中、AuthEncDataAは、EncDataAとMACAとを含み、KEIAにより算出して生成され、EncDataAがエンティティAの生成する暗号化データであり、MACAがエンティティエンティティAの生成する完全性認証コードであり、KDF2は一種の鍵推定アルゴリズムであり、MsgID1は一つのメッセージシーケンス番号であり(メッセージシーケンス番号は両方が予め確定されたものであってもよく、両方がメッセージの交換により得られたものであってもよい)、
【数１２】
0006417036.tif 000013
がビットごとの排他的論理和を示し、MACはメッセージ認証コード生成アルゴリズムであり、本発明にかかるメッセージ認証コード生成アルゴリズムは例えば暗号に基づくメッセージ認証コード(Cipher-based Message Authentication Code：CMAC)等のアルゴリズムであってもよい。エンティティAはNA||NB||AuthEncDataA||MacTagAをエンティティBに送信することと、
ステップ5、エンティティBがNA||NB||AuthEncDataA||MacTagAを受信した後に、復号化検証を行い、検証が正しくない場合に認証を終了し、検証が正しい場合に後続のステップを実行することと、
ステップ6、エンティティBが共有キーシード
【数１３】
0006417036.tif 000014
を算出し、マスター鍵MK＝KDF2(NA,NB,Z,IDA,IDBを算出し、メッセージ認証標識MacTagA＝MAC(MK,MsgID1||IDA||IDB||NA||NB)を算出するとともに、受信したMacTagAと比較し、等しくなければ認証を終了し、等しいならばエンティティAの身元が正当であると認められ、後続のステップを実行することと、
ステップ7、エンティティBがメッセージ認証標識MacTagB＝MAC(MK,MsgID2||IDB||IDA||NB||NA)を算出し、MacTagBをエンティティAに送信する。その中、MsgID2は一つのメッセージシーケンス番号である(メッセージシーケンス番号は両方が予め確定されてもよく、両方がメッセージの交換により得られても良い)ことと、
ステップ8、エンティティAがMacTagBを受信した後に、まず、メッセージ認証標識MacTagB＝MAC(MK,MsgID2||IDB||IDA||NB||NA)を算出し、それから、算出されたMacTagBと、受信したMacTagBとを比較し、等しいならば、エンティティBの身元が正当であると認められることとを含む。
【００１２】
上記ステップ2において、第１の暗号化認証データAuthEncDataBを算出する他の認証データAADは、プロトコルパラメータからなり、AAD＝SEP||PIDとして設置され、SEPがセキュリティプロトコルパラメータであり、PIDがプロトコル識別子であり、両者がいずれも規格ISO/IEC 13157-1の定義に符合する。
前記第１の暗号化認証データAuthEncDataBを算出する初期ベクトルIVは鍵推定アルゴリズムから生成し、KDF3(MKA,KEIA,NA,NB)の算出結果の低い96ビット値として設置される。その中、KDF3は一種の鍵推定アルゴリズムである。
【００１３】
上記ステップ3において、エンティティAがNB||NA||AuthEncDataBを受信した後に復号化検証を行うことは、具体的に、
3.1、受信したNAと、先にエンティティBに送信するNAとが等しいかどうかをチェックし、等しくない場合に検証が正しくないことと、
3.2、鍵MKA||KEIA＝KDF1(NA,NB,PSK,IDA,IDB)を算出することと、
3.3、AuthEncDataBにおけるEncDataB||MACB、NA||NB||IDA||IDB||ZSEEDB||MACB＝AuthDecKEIA(AAD,IV,AuthEncDataB)を復号化し、算出されたMACBと、受信したAuthEncDataBにおけるMACBが等しいかどうかを比較し、等しくない場合に検証が正しくなく、復号化されたIDAとIDBとが確かにエンティティAとエンティティBとの身元標識であるかをチェックし、そうでないと検証が正しくなく、復号化されたNAと先にエンティティBに送信したNAとが等しいかどうかをチェックし、等しくない場合に検証が正しくなく、復号化されたNBと、受信したNB||NA||AuthEncDataBにおけるNBとが等しいかどうかをチェックし、等しくない場合に検証が正しくないこととを含む。その中、AuthEncDataBはEncDataBとMACBとを含み、KEIAにより復号化検証を行い、AuthDecは復号化認証アルゴリズムであり、本発明にかかる復号化認証アルゴリズムは例えばガロアカウンタモード(Galois Counter Mode，GCM)等のアルゴリズムであってもよく、AADとIV値との設置方法はステップ2におけるAADとIV値とを設置する方法と同じである。
【００１４】
なお、以上の検証過程は厳しい順序要求がなく、且ついずれか一つの検証が正しくなければ、エンティティAが受信したNB||NA||AuthEncDataBに対する検証結果が正しくないと認められる。
【００１５】
上記ステップ4において、第２の暗号化認証データAuthEncDataAを算出する他の認証データAADはプロトコルパラメータからなり、AAD＝SEP||PIDとして設置され、SEPがセキュリティプロトコルパラメータであり、PIDがプロトコル識別子であり、両者がいずれも規格ISO/IEC 13157-1の定義に符合する。
前記第２の暗号化認証データAuthEncDataAを算出する初期ベクトルIVは鍵推定アルゴリズムにより生成され、KDF3(MKA,KEIA,NA,NB)の算出結果の高い96ビット値として設置される。その中、KDF3は一種の鍵推定アルゴリズムである。
【００１６】
上記ステップ5において、エンティティBがNA||NB||AuthEncDataA||MacTagAを受信した後に復号化検証を行うことは、具体的に、
5.1、受信したNAと、先にエンティティAに送信したNAとが等しいかどうかをチェックし、等しくない場合に検証が正しくないことと、
5.2、受信したNBと、先にエンティティAに送信したNBとが等しいかどうかをチェックし、等しくない場合に検証が正しくないことと、
5.3、AuthEncDataAにおけるEncDataA||MACA,NA||NB||IDA||IDB||ZSEEDA||MACA＝AuthDec KEIA(AAD,IV,AuthEncDataA)を復号化し、算出されたMACAと、受信したAuthEncDataAにおけるMACAとが等しいかどうかを比較し、等しくない場合に検証が正しくなく、復号化されたIDAとIDBとが確かにエンティティAとエンティティBとの身元標識であるかどうかをチェックし、そうでないと、検証が正しくなく、復号化されたNA、NBと、先にエンティティAに送信したNAとNBとが等しいかどうかをチェックし、等しくない場合に検証が正しくないこととを含む。その中、AuthEncDataAはEncDataAとMACAとを含み、KEIAにより復号化検証を行い、AuthDecは復号化認証アルゴリズムであり、AADとIV値との設置方法はステップ4においてAADとIV値を設置する方法と同じである。
【００１７】
なお、以上の検証過程は厳しい順序要求がなく、且ついずれか一つの検証が正しくない場合に、エンティティBの受信したNA||NB||EncDataA||MACA||MacTagAに対する検証が正しくないと認められる。
【００１８】
図2を参照して、上記エンティティ認証方法に基づいて、本発明は、上記方法を実現するためのエンティティAの作動方法を提供し、
ステップ10、乱数NAを生成し、エンティティBに送信することと、
ステップ20、エンティティBが受信してきたNB||NA||AuthEncDataBを受信した後に復号化検証を行い、検証が正しくない場合に認証を終了し、検証が正しい場合に後続のステップを実行することと、
ステップ30、キーシードとするための乱数ZSEEDAを生成し、第２の暗号化認証データAuthEncDataA＝EncDataA||MACA＝AuthEncKEIA(AAD,IV,NA||NB||IDA||IDB||ZSEEDA)を算出し、共有キーシード
【数１４】
0006417036.tif 000015
を算出し、マスター鍵MK＝KDF2(NA,NB,Z,IDA,IDB)を算出し、第１のメッセージ認証標識MacTagA＝MAC(MK,MsgID1||IDA||IDB||NA||NB)を算出し、NA||NB||AuthEncDataA||MacTagAをエンティティBに送信することと、
ステップ40、エンティティBが送信してきた第２のメッセージ認証標識MacTagBを受信した後に、まず、第２のメッセージ認証標識MacTagB＝MAC(MK,MsgID2||IDB||IDA||NB||NA)を算出し、それから、算出されたMacTagBと、受信したMacTagBとを比較し、等しいならば、エンティティBの身元が正当であると認められることとを含む。
【００１９】
上記ステップ20においてエンティティBが送信してきたNB||NA||AuthEncDataBを受信した後に復号化検証を行うことは、具体的に、
ステップ21、受信したNAと、先にエンティティBに送信したNAとが等しいかどうかをチェックし、等しくない場合に検証が正しくないことと、
ステップ22、鍵MKA||KEIA＝KDF1(NA,NB,PSK,IDA,IDB)を算出することと、
ステップ23、第１の認証暗号化データAuthEncDataBおけるEncDataB||MACB、NA||NB||IDA||IDB||ZSEEDB||MACB＝AuthDecKEIA(AAD,IV,AuthEncDataB)を復号化し、算出されたMACBと、受信したAuthEncDataBにおけるMACBとが等しいかどうかを比較し、等しくない場合に検証が正しくなく、復号化されたIDAとIDBとが確かにエンティティAとエンティティBとの身元標識であるかどうかをチェックし、そうでないと検証が正しくなく、復号化されたNAと、先にエンティティBに送信したNAとが等しいかどうかをチェックし、等しくない場合に検証が正しくなく、復号化されたNBと、受信したNB||NA||AuthEncDataBにおけるNBとが等しいかどうかをチェックし、等しくない場合に検証が正しくないこととを含む。その中、第１の暗号化認証データAuthEncDataBはEncDataBとMACBとを含み、KEIAにより復号化検証を行い、他の認証データAADはプロトコルパラメータからなり、AAD＝SEP||PIDとして設置され、SEPがセキュリティプロトコルパラメータであり、PIDがプロトコル識別子であり、両者はとも規格ISO/IEC 13157-1の定義に符合し、初期ベクトルIVは鍵推定アルゴリズムにより生成され、KDF3(MKA,KEIA,NA,NB)の算出結果の低い96ビット値として設置され、KDF3は一種の鍵推定アルゴリズムである。
【００２０】
なお、以上の検証過程は厳しい順序要求がなく、且ついずれか一つの検証が正しくない場合に、受信したNB||NA||AuthEncDataBに対する検証結果で正しくないと認められる。
【００２１】
上記ステップ30において算出される第２の暗号化認証データAuthEncDataAはEncDataAとMACAとを含み、KEIAにより算出して生成され、他の認証データAADはプロトコルパラメータからなり、AAD＝SEP||PIDとして設置され、SEPがプロトコルパラメータであり、PIDがプロトコル識別子であり、両者がいずれも規格ISO/IEC 13157-1の定義に符合し、初期ベクトルIVは鍵推定アルゴリズムに生成され、KDF3(MKA,KEIA,NA,NB)の算出結果の高い96ビット値として設置される。その中、KDF3は一種の鍵推定アルゴリズムである。
【００２２】
図3を参照して、上記エンティティ認証方法に基づいて、本発明は、さらに、上記方法を実施するためのエンティティBの作動方法を提供し、
ステップ100、エンティティAが送信してきた乱数NAを受信した後に、乱数NBと、キーシードとするための乱数ZSEEDBとを生成し、第１の暗号化認証データAuthEncDataB＝EncDataB||MACB＝AuthEncKEIA(AAD,IV,NB||NA||IDB||IDA||Z SEEDB)を算出し、エンティティBがNB||NA||AuthEncDataBをエンティティAに送信することと、
ステップ200、エンティティAが送信してきたNA||NB||AuthEncDataA||MacTagAを受信した後に復号化検証を行い、検証が正しくない場合に認証を終了し、検証が正しい場合に後続のステップステップ300を実行することと、
ステップ３００、共有キーシード
【数１５】
0006417036.tif 000016
を算出し、マスター鍵MK＝KDF2(NA,NB,Z,IDA,IDB)を算出し、メッセージ認証標識MacTagA＝MAC(MK,MsgID1||IDA||IDB||NA||NB)を算出するとともに、受信したMacTagAと比較し、等しくなければ認証を終了し、等しいならばエンティティAの身元が正当であると認められ、メッセージ認証標識MacTagB＝MAC(MK,MsgID2||IDB||IDA||NB||NA)を算出し、MacTagBをエンティティAに送信することとを含む。
【００２３】
具体的に、上記した第１の暗号化認証データAuthEncDataBを算出することは、
AuthEncDataBがEncDataBとMACBとを含み、KEIAにより算出して生成され、
他の認証データAADがプロトコルパラメータからなり、AAD＝SEP||PIDとして設置され、SEPがセキュリティプロトコルパラメータであり、PIDがプロトコル識別子であり、両者がいずれも規格ISO/IEC 13157-1の定義に符合し、
初期ベクトルIVが鍵推定アルゴリズムにより生成され、KDF3(MKA,KEIA,NA,NB)の算出結果の低いの96ビット値として設置されることを含む。その中、KDF3は、一種の鍵推定アルゴリズムである。
【００２４】
上記ステップ200においてエンティティAが送信してきたNA||NB||AuthEncDataA||MacTagAを受信した後に復号化検証を行うことは、具体的に、
ステップ201、受信したNAと、先にエンティティAに送信したNAとが等しいかどうかをチェックし、等しくない場合に検証が正しくないことと、
ステップ202、受信したNBと、先にエンティティAに送信したNBとが等しいかどうかをチェックし、等しくない場合に検証が正しくないことと、
ステップ203、AuthEncDataAにおけるEncDataA||MACA,NA||NB||IDA||IDB||ZSEEDA||MACA＝AuthDec KEIA(AAD,IV,AuthEncDataA)を復号化し、算出されたMACA、と受信したAuthEncDataAにおけるMACAとが等しいかどうかを比較し、等しくない場合に検証が正しくなく、復号化されたIDAとIDBとが確かにエンティティAとエンティティBとの身元標識であるかどうかをチェックし、そうでないと検証が正しくなく、復号化されたNA、NBと、先にエンティティAに送信したNA、NBとが等しいかどうかをチェックし、等しくない場合に検証が正しくないこととを含む。その中、AuthEncDataAはEncDataAとMACAとを含み、KEIAにより復号化検証を行い、他の認証データAADはプロトコルパラメータからなり、AAD＝SEP||PIDとして設置され、SEPがプロトコルパラメータであり、PIDがプロトコル識別子であり、両者がいずれも規格ISO/IEC 13157-1の定義に符合し、初期ベクトルIVは鍵推定アルゴリズムにより生成され、KDF3(MKA,KEIA,NA,NB)の算出結果の高い96ビット値として設置され、KDF3は一種の鍵推定アルゴリズムである。
【００２５】
なお、以上の検証過程は厳しい順序要求がなく、且ついずれか一つの検証が正しくない場合に、受信したNA||NB||AuthEncDataA||MacTagAに対する検証結果は正しくないと認められる。
【００２６】
図4を参照して、上記エンティティ認証方法に基づいて、本発明は、さらに、上記方法を実現するためのエンティティAに対応する装置を提供し、記憶ユニット11と、処理ユニット12と、送受信ユニット13とを含む。
前記記憶ユニット11は、前記他の装置との間の事前共有鍵PSK、及び前記他の装置の身元標識IDBを記憶するために用いられ、前記送受信ユニットは、乱数NAを他の装置に送信するとともに、他の装置が送信するNB||NA||AuthEncDataBを受信するために用いられる。
前記送受信ユニット13は、さらに、NA||NB||AuthEncDataA||MacTagAを他の装置に送信するとともに、他の装置が送信してくる第２のメッセージ認証標識MacTagBを受信するために用いられる。
前記処理ユニット12は、乱数NAを生成するために用いられる。
前記処理ユニット12は、さらに、他の装置が送信してきたNB||NA||AuthEncDataBに対して復号化検証を行うために用いられる。
前記処理ユニット12は、さらに、キーシードとしての乱数ZSEEDAを生成し、第２の暗号化認証データAuthEncDataA＝EncDataA||MACA＝AuthEncKEIA(AAD,IV,NA||NB||IDA||IDB||ZSEEDA)を算出し、共有キーシード
【数１６】
0006417036.tif 000017
を算出し、マスター鍵MK＝KDF2(NA,NB,Z,IDA,IDB)を算出し、第１のメッセージ認証標識MacTagA＝MAC(MK,MsgID1||IDA||IDB||NA||NB)を算出し、NA||NB||AuthEncDataA||MacTagAを生成するために用いられ、その中、AuthEncが一種の暗号化認証アルゴリズムであり、 EncDataAが当該装置の生成する暗号化データであり、MACAが当該装置の生成する完全性認証コードであり、AADが暗号化認証算出方法に必要な他の認証データであり、IVが初期ベクトルであり、IDAが当該装置の身元標識であり、IDBが他の装置の身元標識であり、KDF2が一種の鍵推定アルゴリズムであり、MsgID1が一つのメッセージシーケンス番号であり、MACが一種のメッセージ認証コード生成アルゴリズムであり、
【数１７】
0006417036.tif 000018
がビットごとの排他的論理和を示す。
前記処理ユニット12は、さらに、第２のメッセージ認証標識MacTagB＝MAC(MK,MsgID2||IDB||IDA||NB||NA)を算出し、それから、算出されたMacTagBと、他の装置が送信してきたMacTagBとを比較し、等しいならば、他の装置の身分が正当であるために用いられる。
【００２７】
前記処理ユニット12が他の装置の送信してきたNB||NA||AuthEncDataBに対して復号化検証を行うために用いられることは、具体的に、
前記処理ユニット12が受信したNAと、他の装置に送信したNAとが等しいかどうかをチェックし、等しくない場合に検証が正しくないことと、
前記処理ユニット12が鍵MKA||KEIA＝KDF1(NA,NB,PSK,IDA,IDB)を算出することと、
前記処理ユニット12がAuthEncDataBにおけるEncDataB||MACB、NA||NB||IDA||IDB||ZSEEDB||MACB＝AuthDecKEIA(AAD,IV,AuthEncDataB)を復号化し、算出されたMACBと、受信したAuthEncDataB中的MACBとが等しいかどうかを比較し、等しくない場合に検証が正しくなく、復号化されたIDAとIDBとが確かに当該装置と他の装置の身元標識であるかどうかをチェックし、そうでないと検証が正しくなく、復号化されたNAと、先に他の装置に送信したNAとが等しいかどうかをチェックし、等しくない場合に検証が正しくなく、復号化されたNBと、受信したNB||NA||AuthEncDataBにおけるNBとが等しいかどうかをチェックし、等しくない場合に検証が正しくないことであり、その中、AuthDecが復号化認証アルゴリズムである。
なお、以上の検証過程は厳しい順序要求がなく、上記いずれか一つの検証が正しくない場合に、他の装置が送信きたNB||NA||AuthEncDataBに対する検証結果が正しくないと認められる。
【００２８】
上記の処理ユニット12は、さらに、暗号化認証データAuthEncDataAを算出するために用いられ、AuthEncDataAはEncDataAとMACAとを含み、KEIAにより算出して生成される。
他の認証データAADはプロトコルパラメータからなり、処理ユニット12はAAD＝SEP||PIDとして設置され、SEPとPIDとが規格ISO/IEC 13157-1の定義に符合する。
初期ベクトルIVは鍵推定アルゴリズムにより生成され、処理ユニット12はKDF3 (MKA,KEIA,NA,NB)の算出結果の高い96ビット値として設置される。その中、KDF3は一種の鍵推定アルゴリズムである。
【００２９】
図5を参照して、上記認証方法に基づいて、本発明は、さらに、上記方法を実現するためのエンティティBに対応する装置を提供し、記憶ユニット21と、処理ユニット22と、送受信ユニット23とを含む。
前記記憶ユニット21は、前記他の装置との間の事前共有鍵PSK、及び前記他の装置の身元標識IDAを記憶するために用いられる。
前記送受信ユニット23は、他の装置が送信してくる乱数NAを受信するために用いられる。
前記送受信ユニット23は、さらに、他の装置にNB||NA||AuthEncDataBを送信するとともに、他の装置が送信してくるNA||NB||AuthEncDataA||MacTagAを受信するために用いられる。
前記送受信ユニット23は、さらに、他の装置に第２のメッセージ認証標識MacTagBを送信するために用いられる。
前記処理ユニット22は、乱数NBと、キーシードとしての乱数ZSEEDBを生成し、鍵MKA||KEIA＝KDF1(NA,NB,PSK,IDA,IDB)を算出し、第１の暗号化認証データAuthEncDataB＝EncDataB||MACB＝AuthEncKEIA(AAD,IV,NB||NA||IDB||IDA||ZSEEDB)を算出するとともに、NB||NA||AuthEncDataBを生成するために用いられ、その中、MKAが認証鍵であり、KEIAがメッセージ暗号化と完全性鍵であり、KDF1が一種の鍵推定アルゴリズムであり、IDBが当該装置の身元標識であり、IDAが他の装置の身元標識であり、AuthEncが一種の暗号化認証アルゴリズムであり、EncDataBが当該装置の生成する暗号化データであり、MACBが当該装置の生成する完全性認証コードであり、AADが暗号化認証算出方法に必要な他の認証データであり、IVが初期ベクトルである。
前記処理ユニット22は、さらに、他の装置が送信してきたNA||NB||AuthEncDataA||MacTagAに対して復号化検証を行うために用いられる。
前記処理ユニット22は、共有キーシード
【数１８】
0006417036.tif 000019
を算出し、マスター鍵MK＝KDF2(NA,NB,Z,IDA,IDB)を算出し、第１のメッセージ認証標識MacTagA＝MAC(MK,MsgID1||IDA||IDB||NA||NB)を算出するとともに、受信したMacTagAと比較し、等しくなければ認証を終了し、等しいならば他の装置の身元が正当であると認められ、第２のメッセージ認証標識MacTagB＝MAC(MK,MsgID2||IDB||IDA||NB||NA)を算出するために用いられる。
【００３０】
前記処理ユニット22がさらに他の装置の送信してきた NA||NB||AuthEncDataA||MacTagAに対して復号化検証を行うために用いられることは、具体的に、
前記処理ユニット22が受信したNAと、他の装置に送信したNAとが等しいかどうかをチェックし、等しくない場合に検証が正しくないことと、
前記処理ユニット22が受信したNBと、他の装置に送信したNBとが等しいかどうかをチェックし、等しくない場合に検証が正しくないことと、
前記処理ユニット22がAuthEncDataAにおけるEncDataA||MACA、NA||NB||IDA||IDB||ZSEEDA||MACA＝AuthDec KEIA(AAD,IV,AuthEncDataA)を復号化し、算出されたMACAと、受信したAuthEncDataAにおけるMACBとが等しいかどうかを比較し、等しくない場合に検証が正しくなく、復号化されたIDAとIDBとが確かに他の装置と当該装置との身元標識であるかどうかをチェックし、そうでないと検証が正しくなく、復号化されたNA、NBと、先に他の装置に送信したNA、NBとが等しいかどうかををチェックし、等しくない場合に検証が正しくないことである。
なお、以上の検証過程は厳しい順序要求がなく、上記いずれか一つの検証が正しくない場合に、他の装置が送信してきたNA||NB||AuthEncDataA||MacTagAに対する検証結果が正しくないと認められる。
【００３１】
その中、AuthEncDataBは、EncDataBとMACBとを含み、KEIAにより復号化検証を行い、他の認証データAADは、プロトコルパラメータからなり、AAD＝SEP||PIDとして設置され、SEPとPIDとが規格ISO/IEC 13157-1の定義に符合し、初期ベクトルIVは鍵推定アルゴリズムにより生成され、KDF3(MKA,KEIA,NA,NB)の算出結果の低い96ビット値として設置され、KDF3は一種の鍵推定アルゴリズムである。
【００３２】
図4及び図5にかかるそれぞれエンティティAに対応する装置と、エンティティBに対応する装置については、本発明が提供するエンティティ認証方法における対応部分が、ここで重複しない。
【００３３】
以上のように、本発明は、対称暗号アルゴリズムに基づいて鍵交換機能付きエンティティ間の身元認証を実現し、適用分野が非常に広い。本発明は、RF識別RFID、センサーネットワークWSN、近距離無線通信NFC、非接触型カード、ワイヤレスローカルエリアネットワークWLAN等のエアインタフェースに基づいて通信する分野に適用することができる。エンティティAとエンティティBは、RFID分野におけるリーダライタとタグ、センサーネットワークにおけるノード、NFC分野における端末デバイスであり、非接触型カードの技術分野におけるリーダライタとカード、ワイヤレスローカルエリアネットワークにおける端末とアクセスポイントなどであってもよい。
【００３４】
また、本発明の好適な実施形態において、本発明の技術案がNFC分野に応用される場合に、 エンティティAがエンティティBに送信するNAはACT_REQプロトコルデータユニットによりパッケージングされた後に伝送するものであり、エンティティBがエンティティAに送信するNB||NA||AuthEncDataBはACT_RESプロトコルデータユニットによりパッケージングされた後に伝送するものであり、エンティティAがエンティティBに送信するNA||NB||AuthEncDataA||MacTagAはVFY_REQプロトコルデータユニットによりパッケージングされた後に伝送するものであり、エンティティBがエンティティAに送信するMacTagBは、VFY_RESプロトコルデータユニットによりパッケージングされた後に伝送するものであり、その中、ACT_REQ、ACT_RES、VFY_REQ及VFY_RESは規格ISO/IEC 13157-1の定義に符合するプロトコルデータユニットフォーマットである。このようにパッケージングされた後、本発明の技術案は従来のNFC他のセキュリティメカニズムとの互換性がより優れる。
【００３５】
当業者は、本発明の実施例が方法、システム、又はコンピュータープログラム製品として提供されることが分かる。従って、本発明は、完全なハードウェア実施例、完全なソフトウェア実施例、又はソフトウェアとハードウェアを組み合わせた実施例の形を採用してもよい。そして、本発明は、１つ又は複数のコンピュータ利用可能なプログラムコードを含むコンピュータ利用可能な記憶媒体（磁気ディスクメモリ、ＣＤ−ＲＯＭ、光学的メモリ等を含むが、それらに限定されない）に実施されるコンピュータプログラム製品の形を採用してもよい。
【００３６】
本発明は本発明の実施例による方法、装置（システム）及びコンピュータプログラム製品のフローチャート及び／又はブロック図を参照しながら記述される。なお、コンピュータプログラム指令により、フローチャート及び／又はブロック図の各フロー及び／又はブロック、並びにフローチャート及び／又はブロック図のフロー及び／又はブロックの組み合わせを実現してもよい。これらのコンピュータプログラム指令を汎用コンピュータ、専用コンピュータ、埋め込みプロセッサ又は他のプログラム可能なデータ処理デバイスの処理器に提供して機器を生成し、コンピュータ又は他のプログラム可能なデータ処理デバイスの処理器により実行される指令を介して、フローチャートの１つ若しくは複数のフロー、及び／又はブロック図の１つ若しくは複数のブロックにおける指定の機能を実現するための装置を生成する。
【００３７】
これらのコンピュータプログラム指令は、コンピュータ又は他のプログラム可能なデータ処理デバイスに特定の方式で作動させるコンピュータ読み取り可能な記憶装置に記憶されてもよく、該コンピュータ読み取り可能な記憶装置に記憶された指令に指令装置を含む製造品を生成させ、該指令装置はフローチャートの１つ若しくは複数のフロー及び／又はブロック図の１つ若しくは複数のブロックにおける指定の機能を実現する。
【００３８】
これらのコンピュータプログラム指令は、コンピュータ又は他のプログラム可能なデータ処理装置にセットアップされてもよく、コンピュータ又は他のプログラム可能なデバイスにおいて一列の操作ステップを実行してコンピュータで実現される処理を生成し、コンピュータ又は他のプログラム可能なデバイスにおいて実行される指令は、フローチャートの１つ若しくは複数のフロー及び／又はブロック図の１つ若しくは複数のブロックにおける指令の機能を実現するためのステップを提供する。
【００３９】
本発明の好ましい実施例を記述しているが、当業者が一旦基本的な進歩性概念を知れば、これらの実施例に対して他の変更及び修正を行うことができる。このため、添付された特許請求の範囲が好ましい実施例並びに本発明の範囲に入る全ての変更及び修正を含むと解釈される。
【００４０】
なお、当業者は本発明の主旨及び範囲から離脱することなく本発明に対して各種の変更及び変形を行ってもよい。これにより、本発明のこれらの変更及び変形が本発明の特許請求の範囲及びそれと同等な技術的な範囲に属すれば、本発明はこれらの変更及び変形をさらに含む。
【符号の説明】
【００４１】
１１  記憶ユニット
１２  処理ユニット
１３  送受信ユニット
２１  記憶ユニット
２２  処理ユニット
２３  送受信ユニット
【図１】
0006417036.tif 000030
【図２】
0006417036.tif 000031
【図３】
0006417036.tif 000032
【図４】
0006417036.tif 000033
【図５】
0006417036.tif 000034