(57)【要約】この文書は、デバイス間のデジタル通信を符号化するための共通セッション鍵を生成するシステムおよび方法を説明する。特に、システムは、２つのデバイスが、これらの認証されたデバイスが共通セッション鍵の生成を開始する前に各デバイスの真偽を検証することを可能にし、この共通セッション鍵は次にこれら２つのデバイス間のデジタル通信を符号化するために利用される。
2019526205.tif 000002
【特許請求の範囲】
【請求項１】
第１のエンティティと第２のエンティティとの間のデジタル通信を符号化するための共通セッション鍵ＳＫijを生成する方法であって、
セキュアサーバによって、前記第１のエンティティに対するプライベート鍵ｓｋiを生成し、前記プライベート鍵ｓｋiは、前記第１のエンティティのアイデンティティｉｄiの離散対数型デジタル署名［Ｒi、ｓi］を含み、前記セキュアサーバによって、前記第２のエンティティに対するプライベート鍵ｓｋjを生成するステップであり、前記プライベート鍵ｓｋjは、前記第２のエンティティのアイデンティティｉｄjの離散対数型デジタル署名［Ｒj、ｓj］を含み、ＲiおよびＲjは群要素であり、ｓiおよびｓjはｑを法とする整数を含み、ｑは素数であり、前記プライベート鍵ｓｋiは前記第１のエンティティに伝達され、前記プライベート鍵ｓｋjは前記第２のエンティティに伝達される、ステップと、
前記第１のエンティティによって、暗号ノンスＮi、前記第１のエンティティの前記アイデンティティｉｄi、およびＲiを前記第２のエンティティと共有するステップと、
前記第２のエンティティによって、ｇが巡回群Ｇの生成元である暗黙的共有シークレットｋjiを前記共有Ｒiを使用して計算し、前記暗黙的共有シークレットｋji、前記暗号ノンスＮi、および暗号ノンスＮjを認証データ導出関数に供給して認証データＡｄjを生成するステップと、
前記第２のエンティティによって、前記暗号ノンスＮj、前記第２のエンティティの前記アイデンティティｉｄj、Ｒj、および前記認証データＡｄjを前記第１のエンティティと共有するステップと、
前記第１のエンティティによって、前記共有Ｒjを使用して暗黙的共有シークレットｋijを計算し、前記暗黙的共有シークレットｋij、前記暗号ノンスＮi、および前記暗号ノンスＮjを使用して前記認証データＡｄjを検証するステップであり、前記認証データＡｄjが検証されると、前記暗黙的共有シークレットｋij、前記暗号ノンスＮi、前記暗号ノンスＮj、前記第１のエンティティの前記アイデンティティｉｄi、および前記第２のエンティティの前記アイデンティティｉｄjを鍵導出関数に供給することにより前記共通セッション鍵ＳＫijを生成する、ステップと
を含む方法。
【請求項２】
前記第１のエンティティによって、前記暗黙的共有シークレットｋij、前記暗号ノンスＮi、および前記暗号ノンスＮjを認証データ導出関数に供給して認証データＡｄiを生成し、前記認証データＡｄiを前記第２のエンティティに伝達するステップと、
前記第２のエンティティによって、前記暗黙的共有シークレットｋjiを使用して認証データＡｄiを検証するステップであり、前記認証データＡｄiが検証されると、前記暗黙的共有シークレットｋji、前記暗号ノンスＮi、前記暗号ノンスＮj、前記第１のエンティティの前記アイデンティティｉｄi、および前記第２のエンティティの前記アイデンティティｉｄjを鍵導出関数に供給して前記共通セッション鍵ＳＫijを生成する、ステップと
をさらに含む、請求項１に記載の方法。
【請求項３】
前記認証データＡｄjの前記生成はさらに、前記認証データ導出関数に前記第１のエンティティの前記アイデンティティｉｄiおよび前記第２のエンティティの前記アイデンティティｉｄjを供給するステップを含む、請求項１または２のいずれか一項に記載の方法。
【請求項４】
前記認証データＡｄiの前記生成はさらに、前記認証データ導出関数に前記第１のエンティティの前記アイデンティティｉｄiおよび前記第２のエンティティの前記アイデンティティｉｄjを供給するステップを含む、請求項２または３のいずれか一項に記載の方法。
【請求項５】
前記認証データＡｄjを検証するステップは、
前記暗黙的共有シークレットｋij、前記暗号ノンスＮi、および前記暗号ノンスＮjを前記認証データ導出関数に供給して結果を取得し、前記結果が認証データＡｄjと一致するか否かを判定するステップであり、一致が見つかった場合、前記認証データＡｄjを検証する、ステップを含む、請求項１から４のいずれか一項に記載の方法。
【請求項６】
前記認証データＡｄiを検証するステップは、
前記暗黙的共有シークレットｋji、前記暗号ノンスＮi、および前記暗号ノンスＮjを前記認証データ導出関数に供給して結果を取得し、前記結果が認証データＡｄiと一致するか否かを判定するステップであり、一致が見つかった場合、前記認証データＡｄiを検証する、ステップを含む、請求項２から５のいずれか一項に記載の方法。
【請求項７】
前記暗号ノンスＮiは、ａが乱数であるｇaを含む、請求項１に記載の方法。
【請求項８】
前記暗号ノンスＮjは、ｂが乱数であるｇbを含む、請求項１または７のいずれか一項に記載の方法。
【請求項９】
前記認証データ導出関数は、メッセージ認証コード（ＭＡＣ）関数を含む、請求項１から８のいずれか一項に記載の方法。
【請求項１０】
前記鍵導出関数は、衝突耐性ハッシュ関数を含む、請求項１から９のいずれか一項に記載の方法。
【請求項１１】
前記プライベート鍵ｓｋiは、Ｒi＝ｇriおよびｓi＝ｒi＋ｘＨ（Ｒi、ｉｄi）（ｍｏｄｕｌｏ  ｑ）である、前記第１のエンティティの前記アイデンティティｉｄiのＳｃｈｎｏｒｒ署名であり、前記プライベート鍵ｓｋjは、Ｒj＝ｇrjおよびｓj＝ｒj＋ｘＨ（Ｒj、ｉｄj）（ｍｏｄｕｌｏ  ｑ）である、前記第２のエンティティの前記アイデンティティｉｄjのＳｃｈｎｏｒｒ署名であり、ｒiおよびｒjは乱数であり、ｘはマスターシークレット鍵であり、Ｈ（）は衝突耐性ハッシュ関数であり、
暗黙的共有シークレットｋji＝ｇsi・sjであり、暗黙的共有シークレットｋij＝ｇsj・siであり、ｇは巡回群Ｇの生成元である、請求項１から１０のいずれか一項に記載の方法。
【請求項１２】
前記プライベート鍵ｓｋiは、Ｒi＝ｇriおよびｓi＝ｘ-1・（Ｈ（ｉｄi）−ｒi・Ｒi）（ｍｏｄｕｌｏ  ｑ）である、前記第１のエンティティの前記アイデンティティｉｄiのＥｌＧａｍａｌ署名の第１のバリアントであり、前記プライベート鍵ｓｋjは、Ｒj＝ｇrjおよびｓj＝ｘ-1・（Ｈ（ｉｄj）−ｒj・Ｒj）（ｍｏｄｕｌｏ  ｑ）である、前記第２のエンティティの前記アイデンティティｉｄjのＥｌＧａｍａｌ署名の第１のバリアントであり、ｒiおよびｒjは乱数であり、ｘはマスターシークレット鍵であり、Ｈ（）は衝突耐性ハッシュ関数であり、
前記暗黙的共有シークレットｋji＝ｙsi・sjであり、前記暗黙的共有シークレットｋij＝ｙsj・siであり、ｙ＝ｇxはマスター公開鍵であり、ｇは巡回群Ｇの生成元である、請求項１から１０のいずれか一項に記載の方法。
【請求項１３】
前記プライベート鍵ｓｋiが、Ｒi＝ｇriおよびｓi＝ｘＲi＋ｒi・Ｈ（ｉｄi）（ｍｏｄｕｌｏ  ｑ）である、前記第１のエンティティの前記アイデンティティｉｄiのＥｌＧａｍａｌ署名の第２のバリアントであり、前記プライベート鍵ｓｋjは、Ｒj＝ｇrjおよびｓj＝ｘＲj＋ｒj・Ｈ（ｉｄj）（ｍｏｄｕｌｏ  ｑ）である、前記第２のエンティティの前記アイデンティティｉｄjのＥｌＧａｍａｌ署名の第２のバリアントであり、ｒiおよびｒjは乱数であり、ｘはマスターシークレット鍵であり、Ｈ（）は衝突耐性ハッシュ関数であり、
前記暗黙的共有シークレットｋji＝ｇsi・sjであり、前記暗黙的共有シークレットｋij＝ｇsj・siであり、ｇは巡回群Ｇの生成元である、請求項１から１０のいずれか一項に記載の方法。
【請求項１４】
前記プライベート鍵ｓｋiが、Ｒi＝ｇriおよびｓi＝ｘ・Ｈ（ｉｄi）＋ｒi・Ｒi（ｍｏｄｕｌｏ  ｑ）である、前記第１のエンティティの前記アイデンティティｉｄiのＥｌＧａｍａｌ署名の第３のバリアントであり、前記プライベート鍵ｓｋjは、Ｒj＝ｇrjおよびｓj＝ｘ・Ｈ（ｉｄj）＋ｒj・Ｒj（ｍｏｄｕｌｏ  ｑ）である、前記第２のエンティティの前記アイデンティティｉｄjのＥｌＧａｍａｌ署名の第３のバリアントであり、ｒiおよびｒjは乱数であり、ｘはマスターシークレット鍵であり、Ｈ（）は衝突耐性ハッシュ関数であり、
前記暗黙的共有シークレットｋji＝ｇsi・sjであり、前記暗黙的共有シークレットｋij＝ｇsj・siであり、ｇは巡回群Ｇの生成元である、請求項１から１０のいずれか一項に記載の方法。
【請求項１５】
前記プライベート鍵ｓｋiが、Ｒi＝ｇriおよびｓi＝ｘ-1・（Ｒi−ｒi・Ｈ（ｉｄi））（ｍｏｄｕｌｏ  ｑ）である、前記第１のエンティティの前記アイデンティティｉｄiのＥｌＧａｍａｌ署名の第４のバリアントであり、前記プライベート鍵ｓｋjは、Ｒj＝ｇrjおよびｓj＝ｘ-1・（Ｒj−ｒj・Ｈ（ｉｄj））（ｍｏｄｕｌｏ  ｑ）である、前記第２のエンティティの前記アイデンティティｉｄjのＥｌＧａｍａｌ署名の第４のバリアントであり、ｒiおよびｒjは乱数であり、ｘはマスターシークレット鍵であり、Ｈ（）は衝突耐性ハッシュ関数であり、
前記暗黙的共有シークレットｋji＝ｙsi・sjであり、前記暗黙的共有シークレットｋij＝ｙsj・siであり、ｙ＝ｇxはマスター公開鍵であり、ｇは巡回群Ｇの生成元である、請求項１から１０のいずれか一項に記載の方法。
【請求項１６】
第１のエンティティと第２のエンティティとの間のデジタル通信を符号化するための共通セッション鍵ＳＫijを生成する方法であって、
セキュアサーバによって、前記第１のエンティティに対するプライベート鍵ｓｋiを生成し、前記プライベート鍵ｓｋiは、前記第１のエンティティのアイデンティティｉｄiの離散対数型デジタル署名［Ｒi、ｓi］を含み、前記セキュアサーバによって、前記第２のエンティティに対するプライベート鍵ｓｋjを生成するステップであり、前記プライベート鍵ｓｋjは、前記第２のエンティティのアイデンティティｉｄjの離散対数型デジタル署名［Ｒj、ｓj］を含み、ＲiおよびＲjは群要素であり、ｓiおよびｓjはｑを法とする整数を含み、ｑは素数であり、前記プライベート鍵ｓｋiは前記第１のエンティティに伝達され、前記プライベート鍵ｓｋjは前記第２のエンティティに伝達される、ステップと、
前記第１のエンティティによって、暗号ノンスＮi、前記第１のエンティティの前記アイデンティティｉｄi、およびＲiを前記第２のエンティティと共有するステップと、
前記第２のエンティティによって、ｇが巡回群Ｇの生成元である、暗黙的共有シークレットｋji＝ｇsi・sjを前記共有Ｒiを使用して計算し、前記暗黙的共有シークレットｋji、前記暗号ノンスＮi、前記暗号ノンスＮj、前記第１のエンティティの前記アイデンティティｉｄi、および前記第２のエンティティの前記アイデンティティｉｄjを鍵導出関数に供給し、前記共通セッション鍵ＳＫji、前記暗号ノンスＮi、および暗号ノンスＮjを認証データ導出関数に供給することにより前記共通セッション鍵ＳＫjiを計算して認証データＡｄjを生成するステップと、
前記第２のエンティティによって、前記暗号ノンスＮj、前記第２のエンティティの前記アイデンティティｉｄj、Ｒj、および前記認証データＡｄjを前記第１のエンティティと共有するステップと、
前記第１のエンティティによって、前記共有Ｒjを使用して暗黙的共有シークレットｋij＝ｇsj・siを計算し、前記暗黙的共有シークレットｋij、前記暗号ノンスＮi、前記暗号ノンスＮj、前記第１のエンティティの前記アイデンティティｉｄiおよび前記第２のエンティティの前記アイデンティティｉｄjを前記鍵導出関数に供給することにより共通セッション鍵ＳＫijを計算し、前記共通セッション鍵ＳＫij、前記暗号ノンスＮi、および前記暗号ノンスＮjを使用して前記認証データＡｄjを検証するステップであり、前記認証データＡｄjが検証されると、第１のエンティティと第２のエンティティとの間のデジタル通信を符号化するための前記共通セッション鍵として前記共通セッション鍵ＳＫijまたはＳＫjiを使用する、ステップと
を含む方法。
【請求項１７】
第１のエンティティと第２のエンティティとの間のデジタル通信を符号化するための共通セッション鍵ＳＫijを生成するシステムであって、
前記第１のエンティティに対するプライベート鍵ｓｋiを共有し、前記プライベート鍵ｓｋiは、前記第１のエンティティのアイデンティティｉｄiの離散対数型デジタル署名［Ｒi、ｓi］を含み、セキュアサーバによって、前記第２のエンティティに対するプライベート鍵ｓｋjを生成するように構成されるセキュアサーバであり、前記プライベート鍵ｓｋjは、前記第２のエンティティのアイデンティティｉｄjの離散対数型デジタル署名［Ｒj、ｓj］を含み、ＲiおよびＲjは群要素であり、ｓiおよびｓjはｑを法とする整数を含み、ｑは素数であり、前記プライベート鍵ｓｋiは前記第１のエンティティに伝達され、前記プライベート鍵ｓｋjは前記第２のエンティティに伝達される、セキュアサーバを備え、
前記第１のエンティティは、暗号ノンスＮi、前記第１のエンティティの前記アイデンティティｉｄi、およびＲiを前記第２のエンティティと共有するように構成され、
前記第２のエンティティは、暗黙的共有シークレットｋjiを前記共有Ｒiを使用して計算し、前記暗黙的共有シークレットｋji、前記暗号ノンスＮi、および暗号ノンスＮjを認証データ導出関数に供給して認証データＡｄjを生成するするように構成され、
前記第２のエンティティは、前記暗号ノンスＮj、前記第２のエンティティの前記アイデンティティｉｄj、Ｒj、および前記認証データＡｄjを前記第１のエンティティと共有するように構成され、
前記第１のエンティティは、前記共有Ｒjを使用して暗黙的共有シークレットｋij＝ｇsj・siを計算し、前記暗黙的共有シークレットｋij、前記暗号ノンスＮi、および前記暗号ノンスＮjを使用して前記認証データＡｄjを検証するように構成され、前記認証データＡｄjが検証されると、前記暗黙的共有シークレットｋij、前記暗号ノンスＮi、前記暗号ノンスＮj、前記第１のエンティティの前記アイデンティティｉｄi、および前記第２のエンティティの前記アイデンティティｉｄjを鍵導出関数に供給することにより前記共通セッション鍵ＳＫijを生成する、システム。
【請求項１８】
前記第１のエンティティは、前記暗黙的共有シークレットｋij、前記暗号ノンスＮi、および前記暗号ノンスＮjを認証データ導出関数に供給して認証データＡｄiを生成し、前記認証データＡｄiを前記第２のエンティティに伝達するように構成され、前記第２のエンティティは、前記暗黙的共有シークレットｋjiを使用して認証データＡｄiを検証するように構成され、前記認証データＡｄiが検証されると、前記暗黙的共有シークレットｋji、前記暗号ノンスＮi、前記暗号ノンスＮj、前記第１のエンティティの前記アイデンティティｉｄi、および前記第２のエンティティの前記アイデンティティｉｄjを鍵導出関数に供給して前記共通セッション鍵ＳＫijを生成する、請求項１７に記載のシステム。
【請求項１９】
前記認証データＡｄjの前記生成はさらに、前記認証データ導出関数に前記第１のエンティティの前記アイデンティティｉｄiおよび前記第２のエンティティの前記アイデンティティｉｄjを供給することを含む、請求項１７または１８のいずれか一項に記載のシステム。
【請求項２０】
前記認証データＡｄiの前記生成はさらに、前記認証データ導出関数に前記第１のエンティティの前記アイデンティティｉｄiおよび前記第２のエンティティの前記アイデンティティｉｄjを供給することを含む、請求項１８または１９のいずれか一項に記載のシステム。
【請求項２１】
前記認証データＡｄjを検証することは、
前記暗黙的共有シークレットｋij、前記暗号ノンスＮi、および前記暗号ノンスＮjを前記認証データ導出関数に供給して結果を取得し、前記結果が認証データＡｄjと一致するか否かを判定し、一致が見つかった場合、前記認証データＡｄjを検証する、ことを含む、請求項１７から２０のいずれか一項に記載のシステム。
【請求項２２】
前記認証データＡｄiを検証することは、
前記暗黙的共有シークレットｋji、前記暗号ノンスＮi、および前記暗号ノンスＮjを前記認証データ導出関数に供給して結果を取得し、前記結果が認証データＡｄiと一致するか否かを判定し、一致が見つかった場合、前記認証データＡｄiを検証することを含む、請求項１８から２１のいずれか一項に記載のシステム。
【請求項２３】
前記暗号ノンスＮiは、ａが乱数であるｇaを含む、請求項１７に記載のシステム。
【請求項２４】
前記暗号ノンスＮjは、ｂが乱数であるｇbを含む、請求項１７から２３のいずれか一項に記載のシステム。
【請求項２５】
前記認証データ導出関数は、メッセージ認証コード（ＭＡＣ）関数を含む、請求項１７から２４のいずれか一項に記載のシステム。
【請求項２６】
前記鍵導出関数は、衝突耐性ハッシュ関数を含む、請求項１７から２５のいずれか一項に記載のシステム。
【請求項２７】
前記プライベート鍵ｓｋiは、Ｒi＝ｇriおよびｓi＝ｒi＋ｘＨ（Ｒi、ｉｄi）（ｍｏｄｕｌｏ  ｑ）である、前記第１のエンティティの前記アイデンティティｉｄiのＳｃｈｎｏｒｒ署名であり、前記プライベート鍵ｓｋjは、Ｒj＝ｇrjおよびｓj＝ｒj＋ｘＨ（Ｒj、ｉｄj）（ｍｏｄｕｌｏ  ｑ）である、前記第２のエンティティの前記アイデンティティｉｄjのＳｃｈｎｏｒｒ署名であり、ｒiおよびｒjは乱数であり、ｘはマスターシークレット鍵であり、Ｈ（）は衝突耐性ハッシュ関数であり、
暗黙的共有シークレットｋji＝ｇsi・sjであり、暗黙的共有シークレットｋij＝ｇsj・siであり、ｇは巡回群Ｇの生成元である、請求項１７から２６のいずれか一項に記載のシステム。
【請求項２８】
前記プライベート鍵ｓｋiは、Ｒi＝ｇriおよびｓi＝ｘ-1・（Ｈ（ｉｄi）−ｒi・Ｒi）（ｍｏｄｕｌｏ  ｑ）である、前記第１のエンティティの前記アイデンティティｉｄiのＥｌＧａｍａｌ署名の第１のバリアントであり、前記プライベート鍵ｓｋjは、Ｒj＝ｇrjおよびｓj＝ｘ-1・（Ｈ（ｉｄj）−ｒj・Ｒj）（ｍｏｄｕｌｏ  ｑ）である、前記第２のエンティティの前記アイデンティティｉｄjのＥｌＧａｍａｌ署名の第１のバリアントであり、ｒiおよびｒjは乱数であり、ｘはマスターシークレット鍵であり、Ｈ（）は衝突耐性ハッシュ関数であり、
前記暗黙的共有シークレットｋji＝ｙsi・sjであり、前記暗黙的共有シークレットｋij＝ｙsj・siであり、ｙ＝ｇxはマスター公開鍵であり、ｇは巡回群Ｇの生成元である、請求項１７から２６のいずれか一項に記載のシステム。
【請求項２９】
前記プライベート鍵ｓｋiは、Ｒi＝ｇriおよびｓi＝ｘＲi＋ｒi・Ｈ（ｉｄi）（ｍｏｄｕｌｏ  ｑ）である、前記第１のエンティティの前記アイデンティティｉｄiのＥｌＧａｍａｌ署名の第２のバリアントであり、前記プライベート鍵ｓｋjは、Ｒj＝ｇrjおよびｓj＝ｘＲj＋ｒj・Ｈ（ｉｄj）（ｍｏｄｕｌｏ  ｑ）である、前記第２のエンティティの前記アイデンティティｉｄjのＥｌＧａｍａｌ署名の第２のバリアントであり、ｒiおよびｒjは乱数であり、ｘはマスターシークレット鍵であり、Ｈ（）は衝突耐性ハッシュ関数であり、
前記暗黙的共有シークレットｋji＝ｇsi・sjであり、前記暗黙的共有シークレットｋij＝ｇsj・siであり、ｇは巡回群Ｇの生成元である、請求項１７から２６のいずれか一項に記載のシステム。
【請求項３０】
前記プライベート鍵ｓｋiが、Ｒi＝ｇriおよびｓi＝ｘ・Ｈ（ｉｄi）＋ｒi・Ｒi（ｍｏｄｕｌｏ  ｑ）である、前記第１のエンティティの前記アイデンティティｉｄiのＥｌＧａｍａｌ署名の第３のバリアントであり、前記プライベート鍵ｓｋjは、Ｒj＝ｇrjおよびｓj＝ｘ・Ｈ（ｉｄj）＋ｒj・Ｒj（ｍｏｄｕｌｏ  ｑ）である、前記第２のエンティティの前記アイデンティティｉｄjのＥｌＧａｍａｌ署名の第３のバリアントであり、ｒiおよびｒjは乱数であり、ｘはマスターシークレット鍵であり、Ｈ（）は衝突耐性ハッシュ関数であり、
前記暗黙的共有シークレットｋji＝ｇsi・sjであり、前記暗黙的共有シークレットｋij＝ｇsj・siであり、ｇは巡回群Ｇの生成元である、請求項１７から２６のいずれか一項に記載のシステム。
【請求項３１】
前記プライベート鍵ｓｋiが、Ｒi＝ｇriおよびｓi＝ｘ-1・（Ｒi−ｒi・Ｈ（ｉｄi））（ｍｏｄｕｌｏ  ｑ）である、前記第１のエンティティの前記アイデンティティｉｄiのＥｌＧａｍａｌ署名の第４のバリアントであり、前記プライベート鍵ｓｋjは、Ｒj＝ｇrjおよびｓj＝ｘ-1・（Ｒj−ｒj・Ｈ（ｉｄj））（ｍｏｄｕｌｏ  ｑ）である、前記第２のエンティティの前記アイデンティティｉｄjのＥｌＧａｍａｌ署名の第４のバリアントであり、ｒiおよびｒjは乱数であり、ｘはマスターシークレット鍵であり、Ｈ（）は衝突耐性ハッシュ関数であり、
前記暗黙的共有シークレットｋji＝ｇsi・sjであり、前記暗黙的共有シークレットｋij＝ｇsj・siであり、ｇは巡回群Ｇの生成元である、請求項１７から２６のいずれか一項に記載のシステム。
【請求項３２】
第１のエンティティと第２のエンティティとの間のデジタル通信を符号化するための共通セッション鍵ＳＫijを生成するシステムであって、
前記第１のエンティティに対するプライベート鍵ｓｋiを生成し、前記プライベート鍵ｓｋiは、前記第１のエンティティのアイデンティティｉｄiの離散対数型デジタル署名［Ｒi、ｓi］を含み、セキュアサーバによって、前記第２のエンティティに対するプライベート鍵ｓｋjを生成するように構成されるセキュアサーバを備え、前記プライベート鍵ｓｋjは、前記第２のエンティティのアイデンティティｉｄjの離散対数型デジタル署名［Ｒj、ｓj］を含み、ＲiおよびＲjは群要素であり、ｓiおよびｓjはｑを法とする整数を含み、ｑは素数であり、前記プライベート鍵ｓｋiは前記第１のエンティティに伝達され、前記プライベート鍵ｓｋjは前記第２のエンティティに伝達され、
前記第１のエンティティは、暗号ノンスＮi、前記第１のエンティティの前記アイデンティティｉｄi、およびＲiを前記第２のエンティティと共有するように構成され、
前記第２のエンティティは、ｇが巡回群Ｇの生成元である、暗黙的共有シークレットｋji＝ｇsi・sjを前記共有Ｒiを使用して計算し、前記暗黙的共有シークレットｋji、前記暗号ノンスＮi、前記暗号ノンスＮj、前記第１のエンティティの前記アイデンティティｉｄi、および前記第２のエンティティの前記アイデンティティｉｄjを鍵導出関数に供給し、前記共通セッション鍵ＳＫji、前記暗号ノンスＮi、および暗号ノンスＮjを認証データ導出関数に供給することにより前記共通セッション鍵ＳＫjiを計算して認証データＡｄjを生成するように構成され、
前記第２のエンティティは、前記暗号ノンスＮj、前記第２のエンティティの前記アイデンティティｉｄj、Ｒj、および前記認証データＡｄjを前記第１のエンティティと共有するように構成され、
前記第１のエンティティは、前記共有Ｒjを使用して暗黙的共有シークレットｋij＝ｇsj・siを計算し、前記暗黙的共有シークレットｋij、前記暗号ノンスＮi、前記暗号ノンスＮj、前記第１のエンティティの前記アイデンティティｉｄiおよび前記第２のエンティティの前記アイデンティティｉｄjを前記鍵導出関数に供給することにより共通セッション鍵ＳＫijを計算し、前記共通セッション鍵ＳＫij、前記暗号ノンスＮi、および前記暗号ノンスＮjを使用して前記認証データＡｄjを検証するように構成され、前記認証データＡｄjが検証されると、第１のエンティティと第２のエンティティとの間のデジタル通信を符号化するための前記共通セッション鍵として前記共通セッション鍵ＳＫijまたはＳＫjiを使用する、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバイス間のデジタル通信を符号化するための共通セッション鍵を生成するシステムおよび方法に関する。特に、システムは、２つのデバイスが、これらの認証されたデバイスが共通セッション鍵の生成を開始する前に各デバイスの真偽を検証することを可能にし、この共通セッション鍵は次にこれら２つのデバイス間のデジタル通信を符号化するために利用される。
【背景技術】
【０００２】
複数のテクノロジの収束により、ますます多くのデバイスがインターネットとシームレスに無線通信したり、それらの間で無線により通信を交換したりできるようになっている。この収束により、近年ではモノのインターネット（ＩｏＴ）のビジョンがさらに勢いを増している。モノのインターネットでは、何百万ものエンティティまたはデバイス（すなわちモノ）が相互に接続される。スマートチップ、スマートプラグ、スマートウォッチ、スマートフォン、スマートビークル、スマートビルなどのデバイスまたはエンティティを含むこれらのデバイスは、相互に直接通信するか、またはインターネットを介して通信する。
【０００３】
モノのインターネットがより多くの分野に普及するにつれて、これらのデバイスは、ハッカーや不正ユーザからのサイバー攻撃を受けやすくなる。というのもセキュリティ侵害されたデバイスは悪意あるユーザにそのデバイスが属するネットワークへのアクセスを許可するからである。したがって、２つのエンティティ間でデータが交換される前に、１つのエンティティが通信相手となるピアエンティティの真偽を検証できるようにセキュリティプロトコルを設定することが最も重要である。上記に加えて、一旦エンティティの真偽が検証されたら、これら２つのエンティティだけに知られているシークレット鍵を確立して、これらのエンティティ間のデータメッセージの署名を容易にする必要がある。これは、データが傍受またはリダイレクトされた場合でも、これら２つのエンティティ間で通信されるデータが危険にさらされないようにするためである。
【０００４】
エンティティ間のデータ通信に署名するためのシークレット鍵を確立する一般的な方法は、当事者間で共通の対称シークレット鍵を事前共有することを含む。そのような方法の場合、エンティティ間で送信されることになっているデータメッセージは、この事前共有または事前合意されたシークレット鍵を使用して署名されることになる。受信側エンティティがこの事前共有シークレット鍵を使用して受信メッセージを復号できる場合、これは送信者の真偽が検証されており、受信者はそれに応じて次に進んで、復号化メッセージを処理し得ることを意味する。残念ながら、この方法は、エンティティまたはデバイスが相互通信する前に共通のシークレットがすべての信頼できるエンティティまたはデバイスに事前共有または通信される必要があるため、スケーラブルではなく非常に融通性がない。ＩｏＴの設定では、デバイスの高モビリティが標準であり、データを相互交換するために必要なデバイスは、事前にシークレット鍵を確立する機会がなかった可能性もある。
【０００５】
提案されている別の手法は、公開鍵インフラストラクチャ（ＰＫＩ）ベースの解決策を利用し、それによって各許可されたエンティティに割り当てられた鍵ペアが公開鍵証明書によってその所有者に結び付けられる。次いで、鍵ペアは、公開鍵暗号化またはデジタル署名方法論などの公開鍵暗号システムを利用して、データメッセージに署名するか、または送信者の公開鍵証明書を検証することによって送信者の真偽を検証する。そのような公開鍵インフラストラクチャの設定と保守は、高価であるのは知られているが、それぞれの公開鍵証明書を検証するためにエンティティがＰＫＩサーバとの連絡を絶えず維持することを必要とする。
【０００６】
提案されているさらに別の手法は、エンティティを認証し、データメッセージに署名するためにアイデンティティベースの暗号化方法論を利用する。このようなアイデンティティベースの暗号システムは、双線形ペアリングに基づいており、ユーザ名、電子メールアドレス、電話番号、ＩＰアドレスなどのエンティティのアイデンティティを公開鍵として利用する特別な公開鍵暗号システムであり、次に、対応するプライベート鍵がエンティティのプライベート鍵の生成に利用されるマスターシークレット鍵を含む鍵生成センターによりエンティティのアイデンティティから導出される。この手法の欠点は、双線形ペアリングが高価で時間がかかる計算プロセスだということである。
【０００７】
上記の理由から、当業者は、エンティティの真偽を検証し、検証されたエンティティ間でデータメッセージを符号化するために使用される共通のセッション鍵を生成するためのシステムおよび方法を思いつくために絶えず努力している。
【発明の概要】
【０００８】
本発明による実施形態によって提供されるシステムおよび方法により上記および他の問題は解決され、当技術分野における進歩が達成される。
【０００９】
本発明によるシステムおよび方法の実施形態の第１の利点は、モノのインターネット設定においてデバイスまたはエンティティのペアが互いの真偽を検証し、共通のセッション鍵を独立して生成できることであり、これにより鍵生成サーバとの通信を常に維持する必要がないことである。
【００１０】
本発明によるシステムおよび方法の実施形態の第２の利点は、エンティティの認証および共通セッション鍵の生成方法が、好ましくは楕円曲線にわたって実施され（直接的には有限体にわたって実施されることも可能である）、それ故、高い計算および通信性能をもたらすことである。
【００１１】
本発明によるシステムおよび方法の実施形態の第３の利点は、エンティティ間のシークレットの暗黙的な共有がエンティティの認証プロセスおよびその後の認証されたエンティティに対する共通セッション鍵の生成を非常に単純化することである。
【００１２】
上記の利点は、以下の手法で動作する本発明による方法の実施形態によって提供される。簡潔にするために、本発明の実施形態の以下の説明では、乗法記法が算術演算に利用されるが、当業者にとって、算術演算が楕円曲線上で実行されるときには加算表記法を用いて記述されるべきであることを理解することは容易なはずである。
【００１３】
本発明の第１の態様によれば、第１のエンティティと第２のエンティティとの間のデジタル通信を符号化するための共通セッション鍵ＳＫijを生成する方法は、セキュアサーバによって、第１のエンティティに対するプライベート鍵ｓｋiを生成し、プライベート鍵ｓｋiは、第１のエンティティのアイデンティティｉｄiの離散対数型デジタル署名［Ｒi、ｓi］を含み、セキュアサーバによって、第２のエンティティに対するプライベート鍵ｓｋjを生成するステップであり、プライベート鍵ｓｋjは、第２のエンティティのアイデンティティｉｄjの離散対数型デジタル署名［Ｒj、ｓj］を含み、ＲiおよびＲjは群要素であり、ｓiおよびｓjはｑを法とする整数を含み、ｑは素数であり、プライベート鍵ｓｋiは第１のエンティティに伝達され、プライベート鍵ｓｋjは第２のエンティティに伝達される、ステップと、第１のエンティティによって、暗号ノンスＮi、第１のエンティティのアイデンティティｉｄi、およびＲiを第２のエンティティと共有するステップと、第２のエンティティによって、暗黙的共有シークレットｋjiを共有Ｒiを使用して計算し、暗黙的共有シークレットｋji、暗号ノンスＮi、および暗号ノンスＮjを認証データ導出関数に供給して認証データＡｄjを生成するステップと、第２のエンティティによって、暗号ノンスＮj、第２のエンティティのアイデンティティｉｄj、Ｒj、および認証データＡｄjを第１のエンティティと共有するステップと、第１のエンティティによって、共有Ｒjを使用して暗黙的共有シークレットｋijを計算し、暗黙的共有シークレットｋij、暗号ノンスＮi、および暗号ノンスＮjを使用して認証データＡｄjを検証するステップであり、認証データＡｄjが検証されると、暗黙的共有シークレットｋij、暗号ノンスＮi、暗号ノンスＮj、第１のエンティティのアイデンティティｉｄi、および第２のエンティティのアイデンティティｉｄjを鍵導出関数に供給することにより共通セッション鍵ＳＫijを生成する、ステップとを含む。
【００１４】
第１の態様に関して、第１の態様の第１の可能な実装方法において、本方法はさらに、第１のエンティティによって、暗黙的共有シークレットｋij、暗号ノンスＮi、および暗号ノンスＮjを認証データ導出関数に供給して認証データＡｄiを生成し、認証データＡｄiを第２のエンティティに伝達するステップと、第２のエンティティによって、暗黙的共有シークレットｋjiを使用して認証データＡｄiを検証するステップであり、認証データＡｄiが検証されると、暗黙的共有シークレットｋji、暗号ノンスＮi、暗号ノンスＮj、第１のエンティティのアイデンティティｉｄi、および第２のエンティティのアイデンティティｉｄjを鍵導出関数に供給して共通セッション鍵ＳＫijを生成する、ステップとを含む。
【００１５】
第１の態様または第１の態様の第１の可能な実装方法に関して、第１の態様の第２の可能な実装方法において、認証データＡｄjの生成はさらに、認証データ導出関数に第１のエンティティのアイデンティティｉｄiおよび第２のエンティティのアイデンティティｉｄjを供給するステップを含む。
【００１６】
第１の態様の第１または第２の可能な実装方法に関して、第１の態様の第３の可能な実装方法において、認証データＡｄiの生成はさらに、認証データ導出関数に第１のエンティティのアイデンティティｉｄiおよび第２のエンティティのアイデンティティｉｄjを供給するステップを含む。
【００１７】
第１の態様、第１の態様の第１、第２または第３の可能な実装方法に関して、第１の態様の第４の可能な実装方法において、認証データＡｄjを検証するステップは、暗黙的共有シークレットｋij、暗号ノンスＮi、および暗号ノンスＮjを認証データ導出関数に供給して結果を取得し、結果が認証データＡｄjと一致するか否かを判定するステップであり、一致が見つかった場合、認証データＡｄjを検証する、ステップを含む。
【００１８】
第１の態様の第１、第２、第３または第４の可能な実装方法に関して、第１の態様の第５の可能な実装方法において、認証データＡｄiを検証するステップは、暗黙的共有シークレットｋij、暗号ノンスＮi、および暗号ノンスＮjを認証データ導出関数に供給して結果を取得し、結果が認証データＡｄiと一致するか否かを判定するステップであり、一致が見つかった場合、認証データＡｄiを検証する、ステップを含む。
【００１９】
第１の態様に関して、第１の態様の第６の可能な実装方法において、暗号ノンスＮiは、ａが乱数であるｇaを含む。
【００２０】
第１の態様または第１の態様の第６の可能な実装方法に関して、第１の態様の第７の可能な実装方法において、暗号ノンスＮjは、ｂが乱数であるｇbを含む。
【００２１】
第１の態様または第１の態様の第１から第７の可能な実装方法に関して、第１の態様の第８の可能な実装方法において、認証データ導出関数は、メッセージ認証コード（ＭＡＣ）関数を含む。
【００２２】
第１の態様または第１の態様の第１から第８の可能な実装方法に関して、第１の態様の第９の可能な実装方法において、鍵導出関数は、衝突耐性ハッシュ関数を含む。
【００２３】
第１の態様または第１の態様の第１から第９の可能な実装方法に関して、第１の態様の第１０の可能な実装方法において、プライベート鍵ｓｋiは、Ｒi＝ｇriおよびｓi＝ｒi＋ｘＨ（Ｒi、ｉｄi）（ｍｏｄｕｌｏ  ｑ）である、第１のエンティティのアイデンティティｉｄiのＳｃｈｎｏｒｒ署名であり、プライベート鍵ｓｋjは、Ｒj＝ｇrjおよびｓj＝ｒj＋ｘＨ（Ｒj、ｉｄj）（ｍｏｄｕｌｏ  ｑ）である、第２のエンティティのアイデンティティｉｄjのＳｃｈｎｏｒｒ署名であり、ｒiおよびｒjは乱数であり、ｘはマスターシークレット鍵であり、Ｈ（）は衝突耐性ハッシュ関数であり、暗黙的共有シークレットｋji＝ｇsi・sjであり、暗黙的共有シークレットｋij＝ｇsj・siであり、ｇは巡回群Ｇの生成元である。
【００２４】
第１の態様または第１の態様の第１から第９の可能な実装方法に関して、第１の態様の第１１の可能な実装方法において、プライベート鍵ｓｋiは、Ｒi＝ｇriおよびｓi＝ｘ-1・（Ｈ（ｉｄi）−ｒi・Ｒi）（ｍｏｄｕｌｏ  ｑ）である、第１のエンティティのアイデンティティｉｄiのＥｌＧａｍａｌ署名の第１のバリアントであり、プライベート鍵ｓｋjは、Ｒj＝ｇrjおよびｓj＝ｘ-1・（Ｈ（ｉｄj）−ｒj・Ｒj）（ｍｏｄｕｌｏ  ｑ）である、第２のエンティティのアイデンティティｉｄjのＥｌＧａｍａｌ署名の第１のバリアントであり、ｒiおよびｒjは乱数であり、ｘはマスターシークレット鍵であり、Ｈ（）は衝突耐性ハッシュ関数である。この場合、ｋji＝ｙsi・sjであり、ｋij＝ｙsj・siであり、ｙ＝ｇxはマスター公開鍵である。
【００２５】
第１の態様または第１の態様の第１から第９の可能な実装方法に関して、第１の態様の第１２の可能な実装方法において、プライベート鍵ｓｋiは、Ｒi＝ｇriおよびｓi＝ｘＲi＋ｒi・Ｈ（ｉｄi）（ｍｏｄｕｌｏ  ｑ）である、第１のエンティティのアイデンティティｉｄiのＥｌＧａｍａｌ署名の第２のバリアントであり、プライベート鍵ｓｋjは、Ｒj＝ｇrjおよびｓj＝ｘＲj＋ｒj・Ｈ（ｉｄj）（ｍｏｄｕｌｏ  ｑ）である、第２のエンティティのアイデンティティｉｄjのＥｌＧａｍａｌ署名の第２のバリアントであり、ｒiおよびｒjは乱数であり、ｘはマスターシークレット鍵であり、Ｈ（）は衝突耐性ハッシュ関数であり、暗黙的共有シークレットｋji＝ｇsi・sjであり、暗黙的共有シークレットｋij＝ｇsj・siであり、ｇは巡回群Ｇの生成元である。
【００２６】
第１の態様または第１の態様の第１から第９の可能な実装方法に関して、第１の態様の第１３の可能な実装方法において、プライベート鍵ｓｋiは、Ｒi＝ｇriおよびｓi＝ｘ・Ｈ（ｉｄi）＋ｒi・Ｒi（ｍｏｄｕｌｏ  ｑ）である、第１のエンティティのアイデンティティｉｄiのＥｌＧａｍａｌ署名の第３のバリアントであり、プライベート鍵ｓｋjは、Ｒj＝ｇrjおよびｓj＝ｘ・Ｈ（ｉｄj）＋ｒj・Ｒj（ｍｏｄｕｌｏ  ｑ）である、第２のエンティティのアイデンティティｉｄjのＥｌＧａｍａｌ署名の第３のバリアントであり、ｒiおよびｒjは乱数であり、ｘはマスターシークレット鍵であり、Ｈ（）は衝突耐性ハッシュ関数であり、暗黙的共有シークレットｋji＝ｇsi・sjであり、暗黙的共有シークレットｋij＝ｇsj・siであり、ｇは巡回群Ｇの生成元である。
【００２７】
第１の態様または第１の態様の第１から第９の可能な実装方法に関して、第１の態様の第１４の可能な実装方法において、プライベート鍵ｓｋiは、Ｒi＝ｇriおよびｓi＝ｘ-1・（Ｒi−ｒi・Ｈ（ｉｄi））（ｍｏｄｕｌｏ  ｑ）である、第１のエンティティのアイデンティティｉｄiのＥｌＧａｍａｌ署名の第４のバリアントであり、プライベート鍵ｓｋjは、Ｒj＝ｇrjおよびｓj＝ｘ-1・（Ｒj−ｒj・Ｈ（ｉｄj））（ｍｏｄｕｌｏ  ｑ）である、第２のエンティティのアイデンティティｉｄjのＥｌＧａｍａｌ署名の第４のバリアントであり、ｒiおよびｒjは乱数であり、ｘはマスターシークレット鍵であり、Ｈ（）は衝突耐性ハッシュ関数である。この場合、ｋji＝ｙsi・sjおよびｋij＝ｙsj・siであり、ｙ＝ｇxはマスター公開鍵である。
【００２８】
本発明の第２の態様によれば、第１のエンティティと第２のエンティティとの間のデジタル通信を符号化するための共通セッション鍵ＳＫijを生成する方法は、セキュアサーバによって、第１のエンティティに対するプライベート鍵ｓｋiを生成し、プライベート鍵ｓｋiは、第１のエンティティのアイデンティティｉｄiの離散対数型デジタル署名［Ｒi、ｓi］を含み、セキュアサーバによって、第２のエンティティに対するプライベート鍵ｓｋjを生成するステップであり、プライベート鍵ｓｋjは、第２のエンティティのアイデンティティｉｄjの離散対数型デジタル署名［Ｒj、ｓj］を含み、ＲiおよびＲjは群要素であり、ｓiおよびｓjはｑを法とする整数を含み、ｑは素数であり、プライベート鍵ｓｋiは第１のエンティティに伝達され、プライベート鍵ｓｋjは第２のエンティティに伝達される、ステップと、第１のエンティティによって、暗号ノンスＮi、第１のエンティティのアイデンティティｉｄi、およびＲiを第２のエンティティと共有するステップと、第２のエンティティによって、ｇが巡回群Ｇの生成元である、暗黙的共有シークレットｋji＝ｇsi・sjを共有Ｒiを使用して計算し、暗黙的共有シークレットｋji、暗号ノンスＮi、暗号ノンスＮj、第１のエンティティのアイデンティティｉｄi、および第２のエンティティのアイデンティティｉｄjを鍵導出関数に供給し、共通セッション鍵ＳＫji、暗号ノンスＮi、および暗号ノンスＮjを認証データ導出関数に供給することにより共通セッション鍵ＳＫjiを計算して認証データＡｄjを生成するステップと、第２のエンティティによって、暗号ノンスＮj、第２のエンティティのアイデンティティｉｄj、Ｒj、および認証データＡｄjを第１のエンティティと共有するステップと、第１のエンティティによって、共有Ｒjを使用して暗黙的共有シークレットｋij＝ｇsj・siを計算し、暗黙的共有シークレットｋij、暗号ノンスＮi、暗号ノンスＮj、第１のエンティティのアイデンティティｉｄiおよび第２のエンティティのアイデンティティｉｄjを鍵導出関数に供給して共通セッション鍵ＳＫijを計算し、共通セッション鍵ＳＫij、暗号ノンスＮi、および暗号ノンスＮjを使用して認証データＡｄjを検証するステップであり、認証データＡｄjが検証されると、第１のエンティティと第２のエンティティとの間のデジタル通信を符号化するための共通セッション鍵として共通セッション鍵ＳＫijまたはＳＫjiを使用する、ステップとを含む。
【図面の簡単な説明】
【００２９】
本発明による上記利点および特徴は、以下の詳細な記載において説明され、以下の図面で図示される。
【図１】図１は、本発明の実施形態による、エンティティペアの認証および認証されたエンティティペアに対する共通セッション鍵生成システムを表すブロック図を示す。
【図２】図２は、本発明の実施形態による、実施形態を実装するための電子装置またはサーバ内の構成要素を表すブロック図を示す。
【図３】図３は、本発明の実施形態による、エンティティペアの認証および認証されたエンティティペアに対する共通セッション鍵の生成のためのタイミング図を示す。
【図４】図４は、本発明の実施形態による、エンティティペアの真偽を検証し、エンティティペアの共通セッション鍵を計算するためのプロセスの流れ図を示す。
【図５】図５は、本発明の実施形態による、第２のエンティティの真偽を検証し、第１のエンティティで共通セッション鍵を生成するためのプロセスの流れ図を示す。
【図６】図６は、本発明の実施形態による、第１のエンティティの真偽を検証し、第２のエンティティで共通セッション鍵を生成するためのプロセスの流れ図を示す。
【発明を実施するための形態】
【００３０】
本発明は、デバイス間のデジタル通信を符号化するための共通セッション鍵を生成するシステムおよび方法に関する。特に、共通セッション鍵が計算される前に、エンティティペアは最初に各エンティティまたはデバイスの真偽を検証する。一旦これらのエンティティが認証されると、エンティティペアは次に進んで、これらのエンティティ間のデジタル通信をエンコードするために使用される共通のセッション鍵を生成する。
【００３１】
図１は、本発明の実施形態による、エンティティペアの認証および共通セッション鍵生成システムのブロック図を示す。図１に示すシステムは、セキュアサーバ１２０に無線接続されているエンティティ１０５、１１０を含む。エンティティ１０５、１１０はそれぞれ、スマートフォン、タブレットコンピュータ、モバイルコンピュータ、ネットブック、スマートウォッチなどのウェアラブル電子装置、スマートプラグ、またはスマートデバイスまたはモノのインターネット（ＩｏＴ）対応デバイスに見られるトランシーバなどの無線通信機能を実行することができる任意のデバイスを含むことができるが、それらに限定されない。
【００３２】
セキュアサーバ１２０に関しては、このサーバは、インターネット１１５を介してまたは直接のいずれかで、エンティティ１０５および１１０と無線通信することができるセキュアクラウドサーバまたは遠隔地にあるセキュアサーバを備え得る。サーバ１２０がインターネット１１５を介してエンティティ１０５および１１０と通信するように構成された場合、サーバ１２０は、限定されないが、例えばセルラネットワーク、衛星ネットワーク、電気通信ネットワーク、または広域ネットワーク（ＷＡＮ）などの有線ネットワークまたはワイヤレスネットワーク１２５を介して通信することができる。あるいは、サーバ１２０がエンティティ１０５および１１０と直接通信するように構成されている場合、これは、限定ではないが、ワイヤレスフィディリティ（Ｗｉ−Ｆｉ）、Ｂｌｕｅｔｏｏｔｈ、または近距離無線通信（ＮＦＣ）などのワイヤレスネットワーク１３０を介して達成され得る。エンティティ１０５および１１０は、ワイヤレスネットワーク１２５（インターネットを介して）またはワイヤレスネットワーク１３０（直接通信）のいずれかを利用してデータメッセージを相互に交換し得ることに留意されたい。
【００３３】
図２は、本発明の実施形態による、実施形態を実施するためのエンティティ１０５、１１０およびサーバ１２０内に提供される電子装置２００の構成要素を表すブロック図を示す。当業者であれば理解するであろうが、エンティティまたはサーバ内に提供される各電子装置の正確な構成は異なってもよく、また電子装置２００の正確な構成は異なってもよく、また図２は一例としてのみ提供される。
【００３４】
本発明の実施形態において、デバイス２００は、コントローラ２０１とユーザインタフェース２０２とを備える。ユーザインタフェース２０２は、ユーザと電子装置２００との間の手動のインタラクションを可能にするように構成され、この目的のために、ユーザが命令を入力して電子装置２００を制御するのに必要な入力／出力コンポーネントを含む。当業者であれば理解するであろうが、ユーザインタフェース２０２の構成要素は実施形態ごとに異なり得るが、通常、ディスプレイ２４０、キーボード２３５、およびトラックパッド２３６のうちの１つまたは複数を含む。
【００３５】
コントローラ２０１は、バス２１５を介してユーザインタフェース２０２とデータ通信し、メモリ２２０、この実施形態の方法を実行するための命令およびデータを処理する回路基板に搭載された中央処理装置（ＣＰＵ）２０５、オペレーティングシステム２０６、ユーザインタフェース２０２と通信するための入出力（Ｉ／Ｏ）インタフェース２３０およびこの実施形態ではネットワークカード２５０の形態である通信インタフェースを含む。ネットワークカード２５０は、例えば電子装置２００からのデータを有線またはワイヤレスネットワークを介して他の処理装置へ送信するためにあるいはデータを有線またはワイヤレスネットワークを介して受信するために利用され得る。ネットワークカード２５０によって利用され得るワイヤレスネットワークは、ワイヤレスフィディリティ（Ｗｉ−Ｆｉ）、Ｂｌｕｅｔｏｏｔｈ、近距離無線通信（ＮＦＣ）、セルラネットワーク、衛星ネットワーク、電気通信ネットワーク、広域ネットワーク（ＷＡＮ）などを含むが、これらに限定されない。
【００３６】
メモリ２２０およびオペレーティングシステム２０６は、バス２１０を介してＣＰＵ２０５とデータ通信している。メモリコンポーネントは、揮発性および不揮発性メモリの両方、ならびにランダムアクセスメモリ（ＲＡＭ）２２０、読み出し専用メモリ（ＲＯＭ）２２５および１つまたは複数のソリッドステートドライブ（ＳＳＤ）を備える大容量記憶装置２４５を含む各タイプのメモリのうちの２つ以上を含む。メモリ２２０はまた、シークレット鍵、またはプライベート鍵を安全に記憶するためのセキュアストレージ２４６も含む。セキュアストレージ２４６内のコンテンツは、装置２００のスーパーユーザまたは管理者によってのみアクセス可能であり、装置２００のいかなるユーザによってもアクセスされ得ないことに留意されたい。当業者であれば理解するであろうが、上記のメモリコンポーネントは、非一時的コンピュータ可読媒体を含み、一時的な伝搬信号を除くすべてのコンピュータ可読媒体を含むものとする。通常、命令はプログラムコードとしてメモリコンポーネントに格納されるが、配線接続されることも可能である。メモリ２２０は、揮発性または不揮発性メモリのいずれかに格納され得るソフトウェアアプリケーションなどのカーネルおよび／またはプログラミングモジュールを含み得る。
【００３７】
本明細書では、「ＣＰＵ」という用語は、そのような命令を処理することができる任意のデバイスまたはコンポーネントを総称的に指すために使用され、マイクロプロセッサ、マイクロコントローラ、プログラマブルロジックデバイスまたは他の計算デバイスを含み得る。すなわち、ＣＰＵ２０５は、入力を受信し、メモリに格納された命令に従ってそれらを処理し、（例えば、メモリコンポーネントまたはディスプレイ２４０に対する）出力を生成するための任意の適切な論理回路によって提供され得る。この実施形態では、ＣＰＵ２０５は、メモリアドレス可能空間を有するシングルコアまたはマルチコアプロセッサであってもよい。一例では、ＣＰＵ２０５は、例えば８コアＣＰＵを含むマルチコアであってもよい。
【００３８】
図１に戻って参照すると、本発明の実施形態によるエンティティペア認証および共通セッション鍵生成システムにエンティティ１０５および１１０を追加する前に、サーバ１２０はまず離散対数型署名方式に基づいて設定手順を開始してマスターシークレット鍵「ｘ」およびマスター公開鍵「ｙ」を生成する。設定手順において、サーバ１２０はまず、素数位数ｑ、およびＧの生成元ｇを有する適切な巡回群Ｇを決定する。
【００３９】
次に、サーバ１２０は、暗号衝突耐性ハッシュ関数
【００４０】
【数１】
2019526205.tif 000003
【００４１】
を選択し、
【００４２】
【数２】
2019526205.tif 000004
【００４３】
は当業者には既知である適切な整数である。サーバ１２０はまた、システム内で使用するために採用されるべき認証データ導出関数および鍵導出関数を選択する。本発明の実施形態では、認証データ導出関数は、メッセージ認証コード（ＭＡＣ）、メッセージ完全性コード、または鍵付きハッシュ関数などのメッセージの真偽を検証するための任意のアルゴリズムまたは方式を含んでもよく、一方鍵導出関数は、衝突耐性ハッシュ関数などのシークレット値からシークレット鍵を導出するための任意の方式を含んでもよい。それが行われると、サーバ１２０は次に許可された整数のセット（ｘ∈Ｚq）からマスターシークレット鍵「ｘ」を選択し、マスター公開鍵「ｙ」はｙ＝ｇxとして設定される。上述の設定手順は、限定されるわけではないが、Ｓｃｈｎｏｒｒ署名方式またはＥｌＧａｍａｌ署名方式などの離散対数型の署名方式を設定するための初期手順と同様であることに留意されたい。
【００４４】
エンティティ１０５または１１０がシステムに参加すると、これらのエンティティのそれぞれに固有のプライベート鍵がセキュアサーバ１２０によって生成される。これらの固有のプライベート鍵は一旦生成されると次に、これらのエンティティのそれぞれに伝達され、それにより対応するプライベート鍵がエンティティ１０５および１１０のそれぞれ内のセキュアメモリ内に格納される。
【００４５】
特に、エンティティ１０５が自身をサーバ１２０に登録するとき、エンティティ１０５はそのアイデンティティをサーバ１２０に伝達する。エンティティ１０５のアイデンティティは、そのユーザ名、電子メールアドレス、電話番号、ＩＰアドレス、ＭＡＣアドレス、またはエンティティ１０５を一意的に特定するために利用され得る任意の英数字の組み合わせを含み得る。サーバ１２０は次に、乱数ｒ105を選択し、以前に生成されたマスターシークレット鍵「ｘ」とエンティティ１０５のアイデンティティｉｄ105とを利用して、エンティティ１０５のアイデンティティの離散対数型デジタル署名を取得する。エンティティ１０５に対するシークレットプライベート鍵ｓｋ105は次に、エンティティ１０５に対するアイデンティティ（Ｒ105、ｓ105）の取得された離散対数型デジタル署名として設定される、すなわちｓｋ105＝（Ｒ105、ｓ105）である。同様に、エンティティ１１０が自身をサーバ１２０に登録するとき、エンティティ１１０もまたそのアイデンティティをサーバ１２０に送信する。サーバ１２０は次に、乱数ｒ110を選択し、以前に生成されたマスターシークレット鍵「ｘ」およびエンティティ１１０のアイデンティティｉｄ110を利用してエンティティ１１０のアイデンティティｉｄ110の離散対数型デジタル署名を取得する。エンティティ１１０に対するシークレットプライベート鍵ｓｋ110は次に、エンティティ１１０に対するアイデンティティ（Ｒ110、ｓ110）の取得された離散対数型デジタル署名として設定される、すなわち、ｓｋ110＝（Ｒ110、ｓ110）である。上記２つのシークレットプライベート鍵については、Ｒ105とＲ110はグループ要素であり、一方ｓ105とｓ110は、素数であるｑを法とする整数を含む。ｓ105およびｓ110が対応する署名検証アルゴリズムにおいてｇsまたはｙsによってチェックされ得る任意の離散対数型デジタル署名方式が、本発明の実施形態において使用され得ることに留意されたい。
【００４６】
本発明の実施形態では、プライベート鍵ｓｋ105は、
【００４７】
【数３】
2019526205.tif 000005
【００４８】
およびｓ105＝ｒ105＋ｘＨ（Ｒ105、ｉｄ105）（ｍｏｄｕｌｏ  ｑ）である、第１のエンティティのアイデンティティｉｄ105のＳｃｈｎｏｒｒ署名を含み得る。同様に、プライベート鍵ｓｋ110は、
【００４９】
【数４】
2019526205.tif 000006
【００５０】
およびｓ110＝ｒ110＋ｘＨ（Ｒ110、ｉｄ110）（ｍｏｄ  ｑ）である、第２のエンティティのアイデンティティｉｄ110のＳｃｈｎｏｒｒ署名を含み得る。上記２つの式では、ｒ105とｒ110は乱数であり、ｘはマスターシークレット鍵であり、Ｈ（）は衝突耐性ハッシュ関数である。
【００５１】
本発明の別の実施形態では、プライベート鍵ｓｋ105は、
【００５２】
【数５】
2019526205.tif 000007
【００５３】
およびｓ105＝ｘ-1（Ｈ（ｉｄ105）−ｒ105・Ｒ105）（ｍｏｄｕｌｏ  ｑ）である、第１のエンティティのアイデンティティｉｄ105のＥｌＧａｍａｌ署名のバリアントを含み得る。同様に、プライベート鍵ｓｋ110は、
【００５４】
【数６】
2019526205.tif 000008
【００５５】
およびｓ110＝ｘ-1（Ｈ（ｉｄ110）−ｒ110・Ｒ110）（ｍｏｄｕｌｏ  ｑ）である、第２のエンティティのアイデンティティｉｄ110のＥｌＧａｍａｌ署名を含み得る。上記２つの式では、ｒ105とｒ110は乱数であり、ｘはマスターシークレット鍵であり、Ｈ（）は衝突耐性ハッシュ関数である。
【００５６】
本発明のさらに別の実施形態では、プライベート鍵ｓｋ105は、
【００５７】
【数７】
2019526205.tif 000009
【００５８】
およびｓ105＝ｘＲ105＋ｒ105・Ｈ（ｉｄ105）（ｍｏｄｕｌｏ  ｑ）である、第１のエンティティのアイデンティティｉｄ105のＥｌＧａｍａｌ署名の別のバリアントを含み得る。同様に、プライベート鍵ｓｋ110は、
【００５９】
【数８】
2019526205.tif 000010
【００６０】
およびｓ110＝ｘＲ110＋ｒ110・Ｈ（ｉｄ110）（ｍｏｄｕｌｏ  ｑ）である、第２のエンティティのアイデンティティｉｄ110のＥｌＧａｍａｌ署名の別のバリアントを含み得る。上記２つの式では、ｒ105とｒ110は乱数であり、ｘはマスターシークレット鍵であり、Ｈ（）は衝突耐性ハッシュ関数である。
【００６１】
本発明のさらに別の実施形態では、プライベート鍵ｓｋ105は、
【００６２】
【数９】
2019526205.tif 000011
【００６３】
およびｓ105＝ｘ・Ｈ（ｉｄ105）＋ｒ105・Ｒ105（ｍｏｄｕｌｏ  ｑ）である、第１のエンティティのアイデンティティｉｄ105のＥｌＧａｍａｌ署名のさらに別のバリアントを含み得る。同様に、プライベート鍵ｓｋ110は、
【００６４】
【数１０】
2019526205.tif 000012
【００６５】
およびｓ110＝ｘ・Ｈ（ｉｄ110）＋ｒ110・Ｒ110（ｍｏｄｕｌｏ  ｑ）である、第２のエンティティのアイデンティティｉｄ110のＥｌＧａｍａｌ署名のさらに別のバリアントを含み得る。上記２つの式では、ｒ105とｒ110は乱数であり、ｘはマスターシークレット鍵であり、Ｈ（）は衝突耐性ハッシュ関数である。
【００６６】
本発明のさらに別の実施形態では、プライベート鍵ｓｋ105は、
【００６７】
【数１１】
2019526205.tif 000013
【００６８】
およびｓ105＝ｘ-1（Ｒ105−ｒ105・Ｈ（ｉｄ105））（ｍｏｄｕｌｏ  ｑ）である、第１のエンティティのアイデンティティｉｄ105のＥｌＧａｍａｌ署名のさらに別のバリアントを含み得る。同様に、プライベート鍵ｓｋ110は、
【００６９】
【数１２】
2019526205.tif 000014
【００７０】
およびｓ110＝ｘ-1（Ｒ110−ｒ110・Ｈ（ｉｄ110））（ｍｏｄｕｌｏ  ｑ）である、第２のエンティティのアイデンティティｉｄ110のＥｌＧａｍａｌ署名のさらに別のバリアントを含み得る。上記２つの式では、ｒ105とｒ110は乱数であり、ｘはマスターシークレット鍵であり、Ｈ（）は衝突耐性のあるハッシュ関数である。
【００７１】
一旦プライベート鍵がそれぞれのエンティティのセキュアメモリに格納されると、エンティティペア、すなわちエンティティ１０５および１１０は認証手順を開始し得る。相互認証に成功した場合、エンティティペアは次に進んで、相互間で送信されたデジタル通信を符号化または署名するための共通セッション鍵を生成し得る。
【００７２】
図３を参照すると、エンティティ１０５は、最初に暗号ノンスＮ105を選択することによってエンティティ１１０との認証プロセスを開始する。選択された暗号ノンスは、任意の乱数または擬似乱数を含み得る。次に、エンティティ１０５は次に進み、ステップ３０５において、（エンティティ１０５のシークレットプライベート鍵から得られる）Ｒ105および擬似乱数ノンスＮ105と共にエンティティ１０５のアイデンティティｉｄ105をエンティティ１１０と共有する。共有情報を受信時に、エンティティ１１０は次に進み、ｋ110、105＝ｇs105・s110である、暗黙的共有シークレットｋ110、105を計算する。プライベート鍵ｓｋ110が上記の実施形態で説明したような第２のエンティティのアイデンティティのＥｌＧａｍａｌ署名のバリアントを含む本発明の実施形態では、暗黙的共有シークレットｋ110、105は代わりに以下のように、すなわちｙ＝ｇxであるｋ110,105＝ｙs105・s110として計算し得ることに留意されたい。
【００７３】
当業者であれば理解するであろうが、以下のセクションは、プライベート鍵ｓｋ105が、
【００７４】
【数１３】
2019526205.tif 000015
【００７５】
およびｓ105＝ｒ105＋ｘＨ（Ｒ105，ｉｄ105）（ｍｏｄｕｌｏ  ｑ）である、第１のエンティティのアイデンティティｉｄ105のＳｃｈｎｏｒｒ署名を含み、プライベート鍵ｓｋ110が、
【００７６】
【数１４】
2019526205.tif 000016
【００７７】
およびｓ110＝ｒ110＋ｘＨ（Ｒ110、ｉｄ110）（ｍｏｄ  ｑ）である、第２のエンティティのアイデンティティｉｄ110のＳｃｈｎｏｒｒ署名を含む実施形態を参照するが、上記のような他の種類の離散対数型デジタル署名方式は、本発明から逸脱することなくＳｃｈｎｏｒｒ署名方式の代わりに使用し得る。
【００７８】
Ｓｃｈｎｏｒｒ署名方式が採用されるこの実施形態では、暗黙共有シークレットｋ110、105がさらに拡張されると、結果として、
【００７９】
【数１５】
2019526205.tif 000017
【００８０】
となる。一旦これが行われると、エンティティ１１０は、自身の暗号ノンスＮ110を選択する。次に、暗黙的共有シークレットｋ110、105は、暗号ノンスＮ105およびＮ110と共に認証データ関数に供給され、Ａｄ110＝Ａｕｔｈｅｎｔｉｃａｔｉｏｎ＿Ｄａｔａ＿Ｆｕｎｃｔｉｏｎ（ｋ110、105、Ｎ105、Ｎ110）である、認証データＡｄ110が生成される。本発明の実施形態では、認証データ関数は、その認証データとしてＭＡＣを生成するメッセージ認証コード関数であってもよい。エンティティ１１０は次に進み、ステップ３１０において、（エンティティ１１０のシークレットプライベート鍵から得られる）Ｒ110、暗号ノンスＮ110、および生成された認証データＡｄ110と共に、エンティティ１１０のアイデンティティｉｄ110をエンティティ１０５と共有する。
【００８１】
エンティティ１０５が一度共有情報を受信すると、エンティティ１０５は次に進み、
【００８２】
【数１６】
2019526205.tif 000018
【００８３】
である、あるいは本発明のこの実施例では、さらに拡張されると、
【００８４】
【数１７】
2019526205.tif 000019
【００８５】
である、暗黙的共有シークレットｋ105、110を計算する。この段階でｋ105,110＝ｋ110,105となることに気づくのは有益である。
【００８６】
このステップに関し、プライベート鍵ｓｋ105が、上記の実施形態で説明したような第１のエンティティのアイデンティティのＥｌＧａｍａｌ署名のバリアントを含む本発明の実施形態では、暗黙的共有シークレットｋ105、110は代わりに以下のように、すなわち、ｙ＝ｇxである、
【００８７】
【数１８】
2019526205.tif 000020
【００８８】
として計算されてもよい。
【００８９】
次に、暗黙的共有シークレットｋ105、110は、暗号ノンスＮ105およびＮ110と共に認証データ関数に供給され、Ａｕｔｈｅｎｔｉｃａｔｉｏｎ＿Ｄａｔａ＿Ｆｕｎｃｔｉｏｎ（ｋ105、110、Ｎ105、N110）がエンティティ１１０によって共有される認証データＡｄ110と一致するか否かを判定する。Ａｕｔｈｅｎｔｉｃａｔｉｏｎ＿Ｄａｔａ＿Ｆｕｎｃｔｉｏｎ（ｋ105、110、Ｎ105、Ｎ110）の結果がエンティティ１１０によって共有される認証データＡｄ110と一致することが確認される場合、これはエンティティ１１０が認証されたことを示す。したがって、エンティティ１０５は次に進み、エンティティ１１０と共に使用するための共通セッション鍵を生成し得る。共通セッション鍵ＳＫ105、110は、暗黙的共有シークレットｋ105、110、エンティティ１０５および１１０のアイデンティティｉｄ105およびｉｄ110ならびに暗号ノンスＮ105およびＮ110を鍵導出関数に供給することによって計算される、すなわちＳＫ105、110＝Ｋｅｙ＿Ｄｅｒｉｖｉｎｇ＿Ｆｕｎｃｔｉｏｎ（ｋ105、110、ｉｄ105、ｉｄ110、Ｎ105、Ｎ110）である。本発明の実施形態では、鍵導出関数は衝突耐性ハッシュ関数であり得る。
【００９０】
共通セッション鍵ＳＫ105、110がエンティティ１０５によって計算された後、暗黙共有シークレットｋ105、110が暗号ノンスＮ110およびＮ105と共に認証データ関数に供給され、Ａｄ105＝Ａｕｔｈｅｎｔｉｃａｔｉｏｎ＿Ｄａｔａ＿Ｆｕｎｃｔｉｏｎ（ｋ105、110、Ｎ110、Ｎ105）である、認証データＡｄ105を生成し、Ａｄ105はその後、ステップ３１５でエンティティ１１０と共有される。
【００９１】
認証データＡｄ105を受信すると、エンティティ１１０は、暗黙共有シークレットｋ110、105を暗号ノンスＮ110およびＮ105と共に認証データ関数に供給して、Ａｕｔｈｅｎｔｉｃａｔｉｏｎ＿Ｄａｔａ＿Ｆｕｎｃｔｉｏｎ（ｋ110、105、Ｎ110、Ｎ105）がエンティティ１０５によって共有される認証データＡｄ105と一致するか否かを判定する。Ａｕｔｈｅｎｔｉｃａｔｉｏｎ＿Ｄａｔａ＿Ｆｕｎｃｔｉｏｎ（ｋ110、105、Ｎ110、Ｎ105）の結果が、エンティティ１０５によって共有される認証データＡｄ105と一致することが確認される場合、これは、エンティティ１０５が認証されたことを暗示する。
【００９２】
したがって、エンティティ１１０は次に進み、エンティティ１０５と共に使用するための共通セッション鍵を生成し得る。共通セッション鍵ＳＫ110、105は、暗黙的共有シークレットｋ110、105、エンティティ１１０および１０５のアイデンティティｉｄ110およびｉｄ105を暗号ノンスＮ110およびＮ105と共に鍵導出関数に供給することによって計算される、すなわち、ＳＫ110、105＝Ｋｅｙ＿Ｄｅｒｉｖｉｎｇ＿Ｆｕｎｃｔｉｏｎ（ｋ110、105、ｉｄ105、ｉｄ110、Ｎ105、Ｎ110）である。エンティティ１１０によって生成された共通セッション鍵ＳＫ110、105、およびエンティティ１０５によって生成された共通セッション鍵ＳＫ105、110は次に、このエンティティペア間のデジタルメッセージに署名または符号化するために利用され得る（１０５から１１０）。
【００９３】
本発明の別の実施形態では、エンティティ１０５が最初に暗号ノンスＮ105を選択することによって認証プロセスを開始する代わりに、エンティティ１０５は代わりに乱数「ａ」を選択し、乱数「ａ」を利用してＡ＝ｇaである、中間Ｄｉｆｆｅｒｙ−Ｈｅｌｍａｎ値Ａを計算する。エンティティ１０５は、前述のように、次に進み、エンティティ１０５のアイデンティティｉｄ105を（エンティティ１０５のシークレットプライベート鍵から得られる）Ｒ105および中間シークレットＡと一緒にエンティティ１１０と共有する。これはステップ３０５で行われる。
【００９４】
共有情報を受信すると、エンティティ１１０は次に進み、
【００９５】
【数１９】
2019526205.tif 000021
【００９６】
である、またはさらに拡張されると、
【００９７】
【数２０】
2019526205.tif 000022
【００９８】
である、暗黙的共有シークレットｋ110、105を計算する。一旦これが行われると、エンティティ１１０は次に、乱数「ｂ」を選択し、次いで乱数「ｂ」を利用してＢ＝ｇbである、中間Ｄｉｆｆｅｒｙ−Ｈｅｌｍａｎ値Ｂを計算する。次に、暗黙的共有シークレットｋ110、105は、中間シークレットＡおよびＢと共に認証データ関数に供給され、Ａｄ110＝Ａｕｔｈｅｎｔｉｃａｔｉｏｎ＿Ｄａｔａ＿Ｆｕｎｃｔｉｏｎ（ｋ110、105、Ｂ、Ａ）である、認証データＡｄ110を生成する。
【００９９】
エンティティ１１０は次に進み、ステップ３１０において、（エンティティ１１０のシークレットプライベート鍵から得られる）Ｒ110、中間シークレットＢ、および生成された認証データＡｄ110と共に、エンティティ１１０のアイデンティティｉｄ110をエンティティ１０５と共有する。
【０１００】
エンティティ１０５が一度共有情報を受信すると、エンティティ１０５は次に進み、
【０１０１】
【数２１】
2019526205.tif 000023
【０１０２】
である、さらに拡張されると、
【０１０３】
【数２２】
2019526205.tif 000024
【０１０４】
である、暗黙的共有シークレットｋ105、110を計算する。次に、暗黙的共有シークレットｋ105、110は、中間シークレットＡおよびＢと共に認証データ関数に供給され、Ａｕｔｈｅｎｔｉｃａｔｉｏｎ＿Ｄａｔａ＿Ｆｕｎｃｔｉｏｎ（ｋ105、110、Ｂ、Ａ）がエンティティ１１０によって共有される認証データＡｄ110と一致するか否かを判定する。Ａｕｔｈｅｎｔｉｃａｔｉｏｎ＿Ｄａｔａ＿Ｆｕｎｃｔｉｏｎ（ｋ105、110、Ｂ、Ａ）の結果がエンティティ１１０によって共有される認証データＡｄ110と一致することが確認される場合、これはエンティティ１１０が認証されたことを示す。
【０１０５】
したがって、エンティティ１０５は次に進み、エンティティ１１０と共に使用するための共通セッション鍵を生成し得る。共通セッション鍵ＳＫ105、110は、暗黙的共有シークレットｋ105、110、エンティティ１０５および１１０のアイデンティティｉｄ105およびｉｄ110、中間シークレットＡおよび乱数ａを鍵導出関数に供給することによって計算される、すなわちＳＫ105、110＝Ｋｅｙ＿Ｄｅｒｉｖｉｎｇ＿Ｆｕｎｃｔｉｏｎ（Ｂa、ｋ105、110、ｉｄ105、ｉｄ110）である。
【０１０６】
共通セッション鍵ＳＫ105、110がエンティティ１０５によって計算された後、暗黙共有シークレットｋ105、110が中間シークレットＡおよびＢと共に認証データ関数に供給され、Ａｄ105＝Ａｕｔｈｅｎｔｉｃａｔｉｏｎ＿Ｄａｔａ＿Ｆｕｎｃｔｉｏｎ（ｋ105、110、Ａ、Ｂ）である、認証データＡｄ105を生成し、Ａｄ105はその後、ステップ３１５でエンティティ１１０と共有される。
【０１０７】
認証データＡｄ105を受信すると、エンティティ１１０は、暗黙共有シークレットｋ110、105を中間シークレットＡおよびＢと共に認証データ関数に供給して、Ａｕｔｈｅｎｔｉｃａｔｉｏｎ＿Ｄａｔａ＿Ｆｕｎｃｔｉｏｎ（ｋ110、105、Ａ、Ｂ）がエンティティ１０５によって共有される認証データＡｄ105と一致するか否かを判定する。Ａｕｔｈｅｎｔｉｃａｔｉｏｎ＿Ｄａｔａ＿Ｆｕｎｃｔｉｏｎ（ｋ110、105、Ａ、Ｂ）の結果が、エンティティ１０５によって共有される認証データＡｄ105と一致することが確認される場合、これは、エンティティ１０５が認証されたことをエンティティ１１０に暗示する。
【０１０８】
したがって、エンティティ１１０は次に進み、エンティティ１０５と共に使用するための共通セッション鍵を生成し得る。共通セッション鍵ＳＫ110、105は、暗黙的共有シークレットｋ110、105とエンティティ１１０および１０５のアイデンティティｉｄ110およびｉｄ105とを中間シークレットＢおよび乱数ｂと共に鍵導出関数に供給することによって計算される、すなわち、ＳＫ110、105＝Ｋｅｙ＿Ｄｅｒｉｖｉｎｇ＿Ｆｕｎｃｔｉｏｎ（Ａb、ｋ110、105、ｉｄ105、ｉｄ110）である。エンティティ１１０によって生成された共通セッション鍵ＳＫ110、105、およびエンティティ１０５によって生成された共通セッション鍵ＳＫ105、110は次に、このエンティティペア（１０５−１１０）間のデジタルメッセージに署名または符号化するために利用され得る。
【０１０９】
本発明の実施形態によれば、第１のエンティティ「ｉ」と第２のエンティティ「ｊ」との間のデジタル通信を符号化するための共通セッション鍵ＳＫijを生成する方法は、以下のステップを含む。すなわち、
ステップ１：セキュアサーバによって、第１のエンティティに対するプライベート鍵ｓｋiを生成し、プライベート鍵ｓｋiは、第１のエンティティのアイデンティティｉｄiの離散対数型デジタル署名［Ｒi、ｓi］を含み、セキュアサーバによって、第２のエンティティに対するプライベート鍵ｓｋjを生成するステップであり、プライベート鍵ｓｋjは、第２のエンティティのアイデンティティｉｄjの離散対数型デジタル署名［Ｒj、ｓj］を含み、ＲiおよびＲjは群要素であり、ｓiおよびｓjはｑを法とする整数を含み、ｑは素数であり、プライベート鍵ｓｋiは第１のエンティティに伝達され、プライベート鍵ｓｋjは第２のエンティティに伝達される、ステップと、
ステップ２：第１のエンティティによって、暗号ノンスＮi、第１のエンティティのアイデンティティｉｄi、およびＲiを第２のエンティティと共有するステップと、
ステップ３：第２のエンティティによって、暗黙的共有シークレットｋjiを共有Ｒiを使用して計算し、暗黙的共有シークレットｋji、暗号ノンスＮi、および暗号ノンスＮjを認証データ導出関数に供給して認証データＡｄjを生成するステップと、
ステップ４：第２のエンティティによって、暗号ノンスＮj、第２のエンティティのアイデンティティｉｄj、Ｒj、および認証データＡｄjを第１のエンティティと共有するステップと、
ステップ５：第１のエンティティによって、共有Ｒjを使用して暗黙的共有シークレットｋijを計算し、暗黙的共有シークレットｋij、暗号ノンスＮi、および暗号ノンスＮjを使用して認証データＡｄjを検証するステップであり、認証データＡｄjが検証されると、暗黙的共有シークレットｋij、暗号ノンスＮi、暗号ノンスＮj、第１のエンティティのアイデンティティｉｄi、および第２のエンティティのアイデンティティｉｄjを鍵導出関数に供給することにより共通セッション鍵ＳＫijを生成する、ステップと
を含む。
【０１１０】
そのようなシステムまたは方法を提供するために、システムのエンティティのシークレットプライベート鍵を生成するため、およびエンティティペア間のデジタルメッセージを符号化するまたは署名するために共通セッション鍵が生成される前にエンティティペアのエンティティを認証するプロセスが必要である。以下の説明および図４から図６は、本発明によるプロセスを提供するプロセスの実施形態を説明する。
【０１１１】
図４は、セキュアサーバ、システムのエンティティに対するシークレットプライベート鍵を生成するため、およびエンティティペア間のデジタルメッセージを符号化するまたは署名するために共通セッション鍵が生成される前にエンティティペアのエンティティを認証するセキュアサーバ、第１のエンティティ「ｉ」および第２のエンティティ「ｊ」によって実行されるプロセス４００を示す。プロセスは、セキュアサーバがマスターシークレット鍵「ｘ」およびマスター公開鍵「ｙ」を生成するステップ４０５から開始する。第１のエンティティ「ｉ」が自身をセキュアサーバに登録するとき、セキュアサーバは、第１のエンティティのアイデンティティｉｄiを使用して、第１のエンティティに対するシークレットプライベート鍵ｓｋiを生成する。プライベート鍵ｓｋiは、Ｒiが群要素であり、ｓiがｑを法とする整数を含み、ｑは素数である、第１のエンティティのアイデンティティｉｄiの離散対数型デジタル署名［Ｒj、ｓj］を含み得る。本発明の実施形態では、シークレットプライベート鍵ｓｋiは、ｇが巡回群Ｇの生成元であり、ｒiが乱数であり、Ｈ（）が衝突耐性のあるハッシュ関数である、［Ｒi＝ｇri，ｓi＝ｒi＋ｘＨ（Ｒi，ｉｄi）］を含むＳｃｈｎｏｒｒ署名である。シークレットプライベート鍵ｓｋiは次に、第１のエンティティに送信され、第１のエンティティ内に安全に格納される。これはすべてステップ４１０で行われる。
【０１１２】
ステップ４１５では、次のエンティティ、すなわち第２のエンティティｊが自身をセキュアサーバに登録するとき、セキュアサーバは、第２のエンティティのアイデンティティｉｄjを使用して、第２のエンティティに対するシークレットプライベート鍵ｓｋjを生成する。プライベート鍵ｓｋjは、Ｒjが群要素であり、ｓjがｑを法とする整数を含み、ｑは素数である、第２のエンティティのアイデンティティｉｄjの離散対数型デジタル署名［Ｒj、ｓj］を含む。本発明のこの実施形態では、シークレットプライベート鍵ｓｋjは、ｇが巡回群Ｇの生成元であり、ｒjが乱数であり、Ｈ（）が衝突耐性のあるハッシュ関数である、［Ｒj＝ｇrj，ｓj＝ｒj＋ｘＨ（Ｒj，ｉｄj）］を含むＳｃｈｎｏｒｒ署名である。シークレットプライベート鍵ｓｋjは次に、第２のエンティティに送信され、第２のエンティティ内に安全に格納される。
【０１１３】
第１および第２のエンティティは次に、ステップ４２０において、暗黙的シークレットを相互に交換する。共有された暗黙的シークレットは、次に、第１のエンティティおよび第２のエンティティに対する認証データを計算するために利用される。計算された認証データは次にステップ４２３で交換され、他のエンティティの真偽を検証するために各エンティティによって利用される。例えば、第２のエンティティは認証データＡｄjを計算し、この認証データを一緒に第１のエンティティに送信する。第１のエンティティは次に、第２のエンティティから以前に受信された暗黙的シークレットデータを利用して、受信された認証データＡｄjの正確性を判断する。このプロセスは次に、第１のエンティティがその認証データＡｄiを計算して第２のエンティティに送信することによって繰り返され、それによって第２のエンティティは第１のエンティティから以前に受信した暗黙的シークレットデータを利用して受信した認証データＡｄiの正確性を判定する。
【０１１４】
一旦エンティティが認証されると、ステップ４２５で、第１および第２のエンティティは共有された暗黙的シークレットを使用して共通セッション鍵を生成する。生成された共通セッション鍵は次いで、第１のエンティティと第２のエンティティとの間で交換される任意のデジタルメッセージに署名または符号化するために使用され得る。そしてプロセス４００は終了する。
【０１１５】
図５は、本発明の実施形態による、第２のエンティティを認証し、共通セッション鍵を生成するために、第１のエンティティによって実行されるプロセス５００を示す。プロセス５００が開始する前に、［Ｒi、ｓi］を含むシークレットプライベート鍵ｓｋiが以前に伝達され、第１のエンティティ内に記憶されていたことに留意されたい。
【０１１６】
プロセス５００はステップ５０５で開始し、それによってプロセス５００は暗号ノンスＮiを選択する。ステップ５１０で、暗号ノンスＮi、Ｒi（ｓｋiから得られる）、および第１のエンティティのアイデンティティｉｄiは、すべて第２のエンティティｊと共有される。その代わりに、第２のエンティティは、暗号ノンスＮj、Ｒj（第２のエンティティのプライベートのシークレット鍵から取得される）、第２のエンティティのアイデンティティｉｄj、および認証データＡｄjを第１のエンティティと共有する。これはステップ５１５で行われる。
【０１１７】
プロセス５００は次に、ステップ５２０において、暗黙的共有シークレットを計算する。第１のエンティティにおける暗黙的共有シークレットは、
【０１１８】
【数２３】
2019526205.tif 000025
【０１１９】
としてまたはさらに拡張される場合、
【０１２０】
【数２４】
2019526205.tif 000026
【０１２１】
として表し得る。ステップ５２５において、プロセス５００は次に、計算された暗黙的共有シークレットｋijと暗号ノンスＮiおよびＮjとを利用して、第２のエンティティによって送信された情報の真偽を検証する。これは、Ａｕｔｈｅｎｔｉｃａｔｉｏｎ＿Ｄａｔａ＿Ｆｕｎｃｔｉｏｎ（ｋij、Ｎi、Ｎj）の結果が受信した認証データＡｄjと一致するか否かを検証することによって行われる。プロセス５００が第２のエンティティが認証されたエンティティであると判断した場合、すなわち上記の認証データ機能の結果が受信した認証データＡｄjと一致する場合、プロセス５００はステップ５３０に進み、プロセス５００が次の関数Ａｕｔｈｅｎｔｉｃａｔｉｏｎ＿Ｄａｔａ＿Ｆｕｎｃｔｉｏｎ（ｋij、Ｎj、Ｎi）を適用して第１のエンティティの認証データＡｄiを計算する。
【０１２２】
この認証データＡｄiはその後、第２のエンティティに送信される。プロセス５００は次に進み次の関数Ｋｅｙ＿Ｄｅｒｉｖｉｎｇ＿Ｆｕｎｃｔｉｏｎ（ｋij、ｉｄi、ｉｄj、Ｎi、Ｎj）を解くことによって共通セッション鍵ＳＫijを計算する。そしてプロセス５００は終了する。
【０１２３】
逆に、ステップ５２５でプロセス５００が第２のエンティティの真偽を検証できない場合、すなわちＡｕｔｈｅｎｔｉｃａｔｉｏｎ＿Ｄａｔａ＿Ｆｕｎｃｔｉｏｎ（ｋij、Ｎi、Ｎj）の結果が受信した認証データＡｄjと一致しない場合、プロセス５００はそこで終了する。
【０１２４】
本発明の別の実施形態では、ステップ５２５において、プロセス５００は、まず共通セッション鍵ＳＫijを計算し、代わりに認証データ関数内の暗黙的共有シークレットｋijを共通セッション鍵ＳＫijで置き換えることによって第２のエンティティによって送信される情報の真偽を検証してもよい。これは、Ａｕｔｈｅｎｔｉｃａｔｉｏｎ＿Ｄａｔａ＿Ｆｕｎｃｔｉｏｎ（ＳＫij、Ｎi、Ｎj）の結果が受信した認証データＡｄjと一致する場合、Ａｄｊが有効であることを意味する。プロセス５００は次に、ステップ５３０に進む。ステップ５３０において、プロセス５００は次に進み、次の関数Ａｕｔｈｅｎｔｉｃａｔｉｏｎ＿Ｄａｔａ＿Ｆｕｎｃｔｉｏｎ（ＳＫij、Ｎj、Ｎi）を適用することによって第１のエンティティの認証データＡｄiを計算する。この認証データ、Ａｄiはその後、第２のエンティティに送信される。本発明のこの実施形態では、第１のエンティティに対する共通セッション鍵、すなわちＳＫijはステップ５２５で既に計算されているので、プロセス５００は次にステップ５３５をスキップし、プロセス５００はそこで終了する。
【０１２５】
図６は、本発明の実施形態による、第１のエンティティｉを認証し、共通セッション鍵を生成するために第２のエンティティｊによって実行されるプロセス６００を示す。プロセス６００が開始する前に、［Ｒj、ｓj］を含むシークレットプライベート鍵ｓｋjが以前に伝達され、第２のエンティティ内に格納されていたことに留意されたい。
【０１２６】
プロセス６００はステップ６０５で開始し、それによってプロセス６００は暗号ノンスＮi、Ｒi（ｓｋiから得られる）、および第１のエンティティのアイデンティティｉｄiを第１のエンティティから受け取る。この受信された情報を用いて、プロセス６００は次に進み、ステップ６１０において暗黙的共有シークレットを計算する。第２のエンティティにおける暗黙的共有シークレットは
【０１２７】
【数２５】
2019526205.tif 000027
【０１２８】
として、または本発明の実施形態では、さらに拡張されると、
【０１２９】
【数２６】
2019526205.tif 000028
【０１３０】
として表し得る。ステップ６１５において、プロセス６００は次に進み暗号ノンスＮjを選択する。プロセス６００は次に、ステップ６２０において、計算された暗黙的共有シークレットｋijと暗号ノンスＮiおよびＮjとを利用して、次の関数Ａｕｔｈｅｎｔｉｃａｔｉｏｎ＿Ｄａｔａ＿Ｆｕｎｃｔｉｏｎ（ｋji、Ｎi、Ｎj）を適用することによって第２のエンティティの認証データＡｄjを計算する。次のステップ、すなわちステップ６２５において、プロセス６００は、計算された認証データＡｄj、暗号ノンスＮj、Ｒj（ｓｋjから得られる）、および第２のエンティティのアイデンティティＩｄjを第１のエンティティに送信する。代わりに、プロセス６００は、ステップ６３０で第１のエンティティから認証データＡｄiを受信する。
【０１３１】
ステップ６３５において、プロセス６００は次に、計算された暗黙的共有シークレットｋjiと暗号ノンスＮiおよびＮjとを利用して、ステップ６０５において第１のエンティティから以前に受信された情報の真偽を検証する。これは、Ａｕｔｈｅｎｔｉｃａｔｉｏｎ＿Ｄａｔａ＿Ｆｕｎｃｔｉｏｎ（ｋji、Ｎj、Ｎi）の結果が受信した認証データＡｄiと一致するか否かを検証することによって行われる。プロセス６００が第１のエンティティが認証されたエンティティであると判断した場合、すなわち認証データ関数の結果が受信した認証データＡｄiと一致する場合、プロセス６００はステップ６４０に進み、プロセス６００は次の関数Ｋｅｙ＿Ｄｅｒｉｖｉｎｇ＿Ｆｕｎｃｔｉｏｎ（ｋji、ｉｄi、ｉｄj、Ｎi、Ｎj）を解くことによって共通セッション鍵ＳＫjiを計算する。そしてプロセス６００は終了する。
【０１３２】
逆に、ステップ６３５でプロセス６００が第２のエンティティの真偽を検証できない場合、すなわちＡｕｔｈｅｎｔｉｃａｔｉｏｎ＿Ｄａｔａ＿Ｆｕｎｃｔｉｏｎ（ｋji、Ｎj、Ｎi）の結果が受信した認証データＡｄｉと一致しない場合、プロセス６００はそこで終了する。
【０１３３】
本発明の別の実施形態では、ステップ６２０において、計算された暗黙的共有シークレットｋijを利用して第２のエンティティの認証データＡｄjを計算する代わりに、プロセス６００はまず第２のエンティティの共通セッション鍵、すなわちＳＫjiを計算し、暗黙的共有シークレットｋjiの代わりにこの共通セッション鍵ＳＫjiを利用して認証データＡｄjを計算する。これは、認証データＡｄjが次の関数Ａｕｔｈｅｎｔｉｃａｔｉｏｎ＿Ｄａｔａ＿Ｆｕｎｃｔｉｏｎ（ＳＫji、Ｎi、Ｎj）を解くことによって取得されることを意味する。ステップ６２５において、プロセス６００は次に、計算された認証データＡｄj、暗号ノンスＮj、Ｒj（ｓｋjから得られる）、および第２のエンティティのアイデンティティＩｄjを第１のエンティティに送信する。
【０１３４】
同様に、プロセス６００は、ステップ６３０で第１のエンティティから認証データＡｄiを受信する。ステップ６３５で、プロセス６００は次に、共通セッション鍵ＳＫjiと暗号ノンスＮiおよびＮjとを利用して、ステップ６０５において第１のエンティティから以前に受信された情報の真偽を検証する。これは、Ａｕｔｈｅｎｔｉｃａｔｉｏｎ＿Ｄａｔａ＿Ｆｕｎｃｔｉｏｎ（ＳＫji、Ｎj、Ｎi）の結果が受信した認証データＡｄiと一致するか否かを検証することによって行われる。本発明のこの実施形態では、第２のエンティティの共通セッション鍵、すなわちＳＫjiはステップ６２０で既に計算されているので、プロセス６００は次にステップ６４０をスキップし、そしてプロセス６００は終了する。
【０１３５】
上記は、添付の特許請求の範囲に記載の本発明によるシステムおよびプロセスの実施形態の説明である。他者が添付の特許請求の範囲内に入る代替物を設計してもよく、また設計するであろうことが想定される。
【図１】
2019526205.tif 000029
【図２】
2019526205.tif 000030
【図３】
2019526205.tif 000031
【図４】
2019526205.tif 000032
【図５】
2019526205.tif 000033
【図６】
2019526205.tif 000034
【手続補正書】
【提出日】平成31年3月7日(2019.3.7)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００１８
【補正方法】変更
【補正の内容】
【００１８】
第１の態様の第１、第２、第３または第４の可能な実装方法に関して、第１の態様の第５の可能な実装方法において、認証データＡｄiを検証するステップは、暗黙的共有シークレットｋji、暗号ノンスＮi、および暗号ノンスＮjを認証データ導出関数に供給して結果を取得し、結果が認証データＡｄiと一致するか否かを判定するステップであり、一致が見つかった場合、認証データＡｄiを検証する、ステップを含む。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１１１
【補正方法】変更
【補正の内容】
【０１１１】
図４は、セキュアサーバ、システムのエンティティに対するシークレットプライベート鍵を生成するため、およびエンティティペア間のデジタルメッセージを符号化するまたは署名するために共通セッション鍵が生成される前にエンティティペアのエンティティを認証するセキュアサーバ、第１のエンティティ「ｉ」および第２のエンティティ「ｊ」によって実行されるプロセス４００を示す。プロセスは、セキュアサーバがマスターシークレット鍵「ｘ」およびマスター公開鍵「ｙ」を生成するステップ４０５から開始する。第１のエンティティ「ｉ」が自身をセキュアサーバに登録するとき、セキュアサーバは、第１のエンティティのアイデンティティｉｄiを使用して、第１のエンティティに対するシークレットプライベート鍵ｓｋiを生成する。プライベート鍵ｓｋiは、Ｒiが群要素であり、ｓiがｑを法とする整数を含み、ｑは素数である、第１のエンティティのアイデンティティｉｄiの離散対数型デジタル署名［Ｒi、ｓi］を含み得る。本発明の実施形態では、シークレットプライベート鍵ｓｋiは、ｇが巡回群Ｇの生成元であり、ｒiが乱数であり、Ｈ（）が衝突耐性のあるハッシュ関数である、［Ｒi＝ｇri，ｓi＝ｒi＋ｘＨ（Ｒi，ｉｄi）］を含むＳｃｈｎｏｒｒ署名である。シークレットプライベート鍵ｓｋiは次に、第１のエンティティに送信され、第１のエンティティ内に安全に格納される。これはすべてステップ４１０で行われる。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０１３０
【補正方法】変更
【補正の内容】
【０１３０】
として表し得る。ステップ６１５において、プロセス６００は次に進み暗号ノンスＮjを選択する。プロセス６００は次に、ステップ６２０において、計算された暗黙的共有シークレットｋijと暗号ノンスＮiおよびＮjとを利用して、次の関数Ａｕｔｈｅｎｔｉｃａｔｉｏｎ＿Ｄａｔａ＿Ｆｕｎｃｔｉｏｎ（ｋji、Ｎi、Ｎj）を適用することによって第２のエンティティの認証データＡｄjを計算する。次のステップ、すなわちステップ６２５において、プロセス６００は、計算された認証データＡｄj、暗号ノンスＮj、Ｒj（ｓｋjから得られる）、および第２のエンティティのアイデンティティｉｄjを第１のエンティティに送信する。代わりに、プロセス６００は、ステップ６３０で第１のエンティティから認証データＡｄiを受信する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０１３３
【補正方法】変更
【補正の内容】
【０１３３】
本発明の別の実施形態では、ステップ６２０において、計算された暗黙的共有シークレットｋijを利用して第２のエンティティの認証データＡｄjを計算する代わりに、プロセス６００はまず第２のエンティティの共通セッション鍵、すなわちＳＫjiを計算し、暗黙的共有シークレットｋjiの代わりにこの共通セッション鍵ＳＫjiを利用して認証データＡｄjを計算する。これは、認証データＡｄjが次の関数Ａｕｔｈｅｎｔｉｃａｔｉｏｎ＿Ｄａｔａ＿Ｆｕｎｃｔｉｏｎ（ＳＫji、Ｎi、Ｎj）を解くことによって取得されることを意味する。ステップ６２５において、プロセス６００は次に、計算された認証データＡｄj、暗号ノンスＮj、Ｒj（ｓｋjから得られる）、および第２のエンティティのアイデンティティｉｄjを第１のエンティティに送信する。
【国際調査報告】
2019526205.tif 000035
2019526205.tif 000036
2019526205.tif 000037