(57)【要約】  様々な特徴は、暗号化/暗号解読およびデジタル署名生成における使用のために公開鍵/秘密鍵対を生成するためにスマートフォン内にインストールされたシステムなど、組込み鍵生成およびプロビジョニングシステムに関する。いくつかの例では、2つの公開鍵/秘密鍵対(一方は暗号化/暗号解読用、他方は署名/検証用)を生成する組込みシステムが提供され、2つの公開鍵/秘密鍵対は、共通法を共有するが、他の点では別個または無相関である。これは、2つの完全に別々の鍵対が生成される場合よりも効率的に2つの鍵対を生成することを可能にし、少なくとも組込みシステムの文脈において、満足な完全性および機密性が達成される。共通法鍵を使用してメッセージを暗号解読し、署名するための技法が、パートナソフトウェアベンダの鍵プロビジョニングサーバなどのリモートシステムによる使用のためにメッセージを暗号化し、検証する技法と一緒に、モバイルデバイスの組込みコンポーネントによる使用に関して説明される。
2017517979.tif 000002
【特許請求の範囲】
【請求項１】
メッセージを暗号解読し、署名するための、暗号デバイス内で動作可能な方法であって、
第1および第2の公開鍵/秘密鍵対を入手するステップであって、前記第1および第2の公開鍵/秘密鍵対は、共通法を共有する、入手するステップと、
前記第1の公開鍵/秘密鍵対の秘密鍵を使用してメッセージを暗号解読するステップと、
前記第2の公開鍵/秘密鍵対の秘密鍵を使用して前記メッセージに署名することによって前記メッセージのデジタル署名を入手するステップと、
前記デジタル署名を前記暗号デバイスから送るステップと
を含む、方法。
【請求項２】
前記第1および第2の公開鍵/秘密鍵対は、お互いと別個である、請求項1に記載の方法。
【請求項３】
第1および第2の公開鍵(e1、e2)は、前記第1の公開鍵(e1)が整数の上で前記第2の公開鍵(e2)の倍数ではなく、かつ/または前記第2の公開鍵(e2)が整数の上で前記第1の公開鍵(e1)の倍数ではないように入手される、請求項2に記載の方法。
【請求項４】
前記共通法(N)は、N = pqであり、pおよびqは、素数である、請求項2に記載の方法。
【請求項５】
pおよびqは、前記法Nよりも小さい、請求項4に記載の方法。
【請求項６】
p-1およびq-1が前記第1の公開鍵(e1)と前記第2の公開鍵(e2)の両方と互いに素であることを検証しながら前記素数pおよびqを入手するステップをさらに含む、請求項4に記載の方法。
【請求項７】
第1の秘密鍵(d1)および第2の秘密鍵(d2)を入手するために、(p-1)(q-1)を法とする前記第1の公開鍵(e1)の逆数および(p-1)(q-1)を法とする前記第2の公開鍵(e2)の逆数を求めるステップをさらに含む、請求項6に記載の方法。
【請求項８】
前記第1の公開鍵/秘密鍵対を使用して暗号解読される前記メッセージは、リモートシステムから受信される、請求項1に記載の方法。
【請求項９】
前記デジタル署名は、前記リモートシステムに送られる、請求項8に記載の方法。
【請求項１０】
前記暗号デバイスは、モバイルワイヤレスデバイス内の組込み鍵プロビジョニングシステムのコンポーネントである、請求項1に記載の方法。
【請求項１１】
前記第1および第2の公開鍵/秘密鍵対は、RSA鍵対である、請求項1に記載の方法。
【請求項１２】
第1および第2の公開鍵/秘密鍵対を入手し、前記第1および第2の公開鍵/秘密鍵対は、共通法を共有し、
前記第1の公開鍵/秘密鍵対の秘密鍵を使用してメッセージを暗号解読し、
前記第2の公開鍵/秘密鍵対の秘密鍵を使用して前記メッセージに署名することによって前記メッセージのデジタル署名を入手する
ように構成された処理回路と、
前記デジタル署名を暗号デバイスから送る
ように構成された送信器デバイスと
を含むデバイス。
【請求項１３】
前記第1および第2の公開鍵/秘密鍵対は、お互いと別個である、請求項12に記載のデバイス。
【請求項１４】
前記処理回路は、第1の公開鍵(e1)が第2の公開鍵(e2)の倍数ではなく、かつ/または前記第2の公開鍵(e2)が前記第1の公開鍵(e1)の倍数ではないように前記第1および第2の公開鍵(e1、e2)を入手するようにさらに構成される、請求項13に記載のデバイス。
【請求項１５】
前記共通法(N)は、N = pqであり、pおよびqは、素数である、請求項13に記載のデバイス。
【請求項１６】
前記処理回路は、p-1およびq-1が前記第1の公開鍵(e1)と前記第2の公開鍵(e2)の両方と互いに素であることを検証しながら前記素数pおよびqを入手するようにさらに構成される、請求項15に記載のデバイス。
【請求項１７】
前記処理回路は、第1の秘密鍵(d1)および第2の秘密鍵(d2)を入手するために、(p-1)(q-1)を法とする前記第1の公開鍵(e1)の逆数および(p-1)(q-1)を法とする前記第2の公開鍵(e2)の逆数を求めるようにさらに構成される、請求項16に記載のデバイス。
【請求項１８】
受信器をさらに含み、前記第1の公開鍵/秘密鍵対を使用して暗号解読される前記メッセージは、前記受信器を使用してリモートシステムから受信される、請求項12に記載のデバイス。
【請求項１９】
前記デジタル署名は、前記送信器デバイスによって前記リモートシステムに送られる、請求項18に記載のデバイス。
【請求項２０】
メッセージを暗号化し、検証するための、システム内で動作可能な方法であって、
別々のデバイスから第1および第2の公開鍵/秘密鍵対の第1および第2の公開鍵を受信するステップであって、前記第1および第2の公開鍵/秘密鍵対は、共通法を共有する、受信するステップと、
前記共通法を共有する前記第1および第2の公開鍵/秘密鍵対の前記第1の公開鍵を使用してメッセージを暗号化するステップと、
前記暗号化されたメッセージを前記別々のデバイスに送るステップと、
前記別々のデバイスから前記メッセージに対する署名された応答を受信するステップであって、前記メッセージは、前記第2の公開鍵/秘密鍵対の秘密鍵を使用して入手された署名を用いて署名されている、受信するステップと、
前記共通法を共有する前記第1および第2の公開鍵/秘密鍵対の前記第2の公開鍵を使用して、前記署名された応答の前記署名を検証するステップと
を含む、方法。
【請求項２１】
前記第1および第2の公開鍵/秘密鍵対は、お互いと別個である、請求項20に記載の方法。
【請求項２２】
前記第1および第2の公開鍵(e1、e2)は、前記第1の公開鍵(e1)が整数の上で前記第2の公開鍵(e2)の倍数ではなく、かつ/または前記第2の公開鍵(e2)が整数の上で前記第1の公開鍵(e1)の倍数ではないようになっている、請求項21に記載の方法。
【請求項２３】
前記共通法(N)は、N = pqであり、pおよびqは、素数である、請求項21に記載の方法。
【請求項２４】
pおよびqは、前記法Nよりも小さい、請求項23に記載の方法。
【請求項２５】
リモートデバイスは、モバイルワイヤレスデバイス内の組込み鍵プロビジョニングシステムのコンポーネントである、請求項20に記載の方法。
【請求項２６】
別々のデバイスから第1および第2の公開鍵/秘密鍵対の第1および第2の公開鍵を受信するように構成された受信器デバイスであって、前記第1および第2の公開鍵/秘密鍵対は、共通法を共有する、受信器デバイスと、
送信器デバイスと、
処理回路であって、
前記共通法を共有する前記第1および第2の公開鍵/秘密鍵対の前記第1の公開鍵を使用してメッセージを暗号化することと、
前記送信器デバイスを使用して前記暗号化されたメッセージを前記別々のデバイスに送ることと、
前記受信器デバイスを使用して前記別々のデバイスから前記メッセージに対する署名された応答を受信することであって、前記メッセージは、前記第2の公開鍵/秘密鍵対の秘密鍵を使用して入手された署名を用いて署名されている、ことと、
前記共通法を共有する前記第1および第2の公開鍵/秘密鍵対の前記第2の公開鍵を使用して、前記署名された応答の前記署名を検証すること
を行うように構成された処理回路と
を含むデバイス。
【請求項２７】
前記第1および第2の公開鍵/秘密鍵対は、お互いと別個である、請求項26に記載のデバイス。
【請求項２８】
前記第1および第2の公開鍵(e1, e2)は、前記第1の公開鍵(e1)が前記第2の公開鍵(e2)の倍数ではなく、かつ/または前記第2の公開鍵(e2)が前記第1の公開鍵(e1)の倍数ではないようになっている、請求項27に記載のデバイス。
【請求項２９】
前記共通法(N)は、N = pqであり、pおよびqは、素数である、請求項28に記載のデバイス。
【請求項３０】
リモートデバイスは、モバイルワイヤレスデバイス内の組込み鍵プロビジョニングシステムのコンポーネントである、請求項26に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本願は、本願の譲受人に譲渡され、参照によってその全体が本明細書に組み込まれている、2014年6月10日に出願した米国特許仮出願第62/010400号、名称「Common Modulus RSA Key Pairs for Signature Generation and Encryption/Decryption」および2015年2月6日に出願した米国特許非仮出願第14/616552号、名称「Common Modulus RS Key Pairs for Signature Generation and Encryption/Decryption」に基づく優先権を主張するものである。
【０００２】
様々な特徴は、暗号化/暗号解読およびデジタル署名生成、特に公開鍵および秘密鍵を用いる非対称暗号法に関する。
【背景技術】
【０００３】
公開鍵システム(公開鍵/秘密鍵システムとも称する)などの非対称暗号システムは、通常、鍵管理および鍵配送に関して、他の暗号システムに優る利点を有する。しかしながら、公開鍵システムは、しばしば、計算的に困難である可能性があり、大きいデジタル署名を用いる場合がある。鍵生成プロセスは、計算的に高くつく可能性がある。さらに、非対称暗号システムは、強力なプロセッサを必要とするか追加の処理時間を必要とする可能性があり、これは、遅延を引き起こし、より多くのエネルギーを使用し、かつ/またはバッテリまたは他のリソースを枯渇させる可能性がある。
【０００４】
さらに、一般に、異なるアプリケーション/プロトコルのために別々の鍵を有することが、良い暗号実施と考えられる。具体的には、非対称暗号システムが、暗号化されたメッセージを受信し、それらを暗号解読し、デジタル署名を生成する必要がある場合に、この2つのプロトコルのために別個の鍵を有することが、しばしば、賢明である。しかしながら、Rivest-Shamir-Adleman(RSA)システムなどの非対称暗号システムを使用する時には、2つの鍵を生成することは、しばしば、計算的に高くつき過ぎる(たとえば、一般に、1つの鍵だけを生成することの2倍の負担)。これは、スマートフォンまたは類似の物など、限られたリソースを有する鍵プロビジョニングシステムの組込みデバイスにおいて特に問題になる可能性がある。本明細書では、簡潔さのために、鍵プロビジョニングシステムという用語が、一般に、鍵を生成し、かつ/またはプロビジョニングすることのできるシステムを指すことに留意されたい。実際には、他のシステムが鍵をプロビジョニングしながら、RSA鍵を生成するために別々のシステムを使用することができることを理解されたい。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Chaum、「Blind Signatures for Untraceable Payments.」Advances in Cryptology Proceedings of Crypto 82 (3): 199〜203頁(1983年)
【発明の概要】
【発明が解決しようとする課題】
【０００６】
前述に鑑みて、特に組込み鍵プロビジョニングシステムとともに使用するための、改善された鍵生成およびプロビジョニングの技法およびシステムを提供することが、役立つはずである。
【課題を解決するための手段】
【０００７】
メッセージを暗号解読し、署名するための、暗号デバイス内で動作可能な方法は、第1および第2の公開鍵/秘密鍵対を入手するステップであって、第1および第2の公開鍵/秘密鍵対は、共通法(Common Modulus)を共有する、入手するステップと、第1の公開鍵/秘密鍵対の秘密鍵を使用してメッセージを暗号解読するステップと、第2の公開鍵/秘密鍵対の秘密鍵を使用してメッセージに署名することによってメッセージのデジタル署名を入手するステップと、デジタル署名を暗号デバイスから送るステップとを含む。
【０００８】
別の態様において、デバイスは、第1および第2の公開鍵/秘密鍵対を入手し、第1および第2の公開鍵/秘密鍵対は、共通法を共有し、第1の公開鍵/秘密鍵対の秘密鍵を使用してメッセージを暗号解読し、第2の公開鍵/秘密鍵対の秘密鍵を使用してメッセージに署名することによってメッセージのデジタル署名を入手するように構成された処理回路と、デジタル署名を暗号デバイスから送るように構成された送信器デバイスとを含む。
【０００９】
さらに別の態様において、メッセージを暗号化し、検証するための、システム内で動作可能な方法は、別々のデバイスから第1および第2の公開鍵/秘密鍵対の第1および第2の公開鍵を受信するステップであって、第1および第2の公開鍵/秘密鍵対は、共通法を共有する、受信するステップと、共通法を共有する第1および第2の公開鍵/秘密鍵対の第1の公開鍵を使用してメッセージを暗号化するステップと、暗号化されたメッセージを別々のデバイスに送るステップと、別々のデバイスからメッセージに対する署名された応答を受信するステップであって、メッセージは、第2の公開鍵/秘密鍵対の秘密鍵を使用して入手された署名を用いて署名されている、受信するステップと、共通法を共有する第1および第2の公開鍵/秘密鍵対の第2の公開鍵を使用して、署名された応答の署名を検証するステップとを含む。
【００１０】
さらに別の態様において、デバイスは、別々のデバイスから第1および第2の公開鍵/秘密鍵対の第1および第2の公開鍵を受信するように構成された受信器デバイスであって、第1および第2の公開鍵/秘密鍵対は、共通法を共有する、受信器デバイスと、送信器デバイスと、共通法を共有する第1および第2の公開鍵/秘密鍵対の第1の公開鍵を使用してメッセージを暗号化し、送信器デバイスを使用して暗号化されたメッセージを別々のデバイスに送り、受信器デバイスを使用して別々のデバイスからメッセージに対する署名された応答を受信し、メッセージは、第2の公開鍵/秘密鍵対の秘密鍵を使用して入手された署名を用いて署名されており、共通法を共有する第1および第2の公開鍵/秘密鍵対の第2の公開鍵を使用して、署名された応答の署名を検証するように構成された処理回路とを含む。
【図面の簡単な説明】
【００１１】
【図１】共通法を共有する鍵の対が生成される例示的な鍵プロビジョニングシステムおよびプロビジョニング方法を示す図である。
【図２】システムオンアチップ(SoC)が署名生成および暗号化/暗号解読のための組込み共通法鍵プロビジョニングプロセッサを含む、モバイルデバイスの例示的なSoCを示す図である。
【図３】共通法鍵プロビジョニングのための例示的な手順を示す図である。
【図４】組込み暗号デバイスおよびパートナベンダのリモートサーバの例示的な動作と、それらの間で交換される情報とを示す図である。
【図５】複数のパートナソフトウェアベンダとともに使用するための共通法鍵プロビジョニングの例示的な手順を示す図である。
【図６】組込み暗号デバイスの例示的なソフトウェアコンポーネント、パートナベンダのリモートサーバのソフトウェアコンポーネント、ならびに初期通信、鍵交換、および類似物を容易にするためにそれらの間で交換される情報を示す図である。
【図７】組込み暗号デバイスの例示的なソフトウェアコンポーネント、リモートサーバのソフトウェアコンポーネント、ならびに認証チャレンジおよび類似物を容易にするためにそれらの間で交換される情報をさらに示す図である。
【図８】図1〜図7のシステム、方法、および装置を活用することのできる処理システムを使用する装置のハードウェア実施態様の例を示すブロック図である。
【図９】図8の処理回路の例示的なコンポーネントを示すブロック図である。
【図１０】図8の機械可読媒体の例示的な命令コンポーネントを示すブロック図である。
【図１１】たとえばモバイルデバイスの組込みコンポーネントによって実行され得る、メッセージを暗号解読し、署名する際に使用される例示的な手順を要約した図である。
【図１２】たとえば2つの鍵対を使用してメッセージを暗号解読し、署名する際に使用されるさらなる例示的な手順を要約した図である。
【図１３】3つ以上の鍵対を使用してメッセージを暗号解読し、署名する際に使用されるさらなる例示的な手順を要約した図である。
【図１４】図8の装置と通信し得るリモートシステムの例示的なコンポーネントを示すブロック図である。
【図１５】図8の装置と通信し得るリモートシステムの例示的な命令コンポーネントを示すブロック図である。
【図１６】たとえば図14のシステムによって実行され得る、メッセージを暗号化し、検証する際に使用される例示的な手順を要約した図である。
【図１７】たとえば2つの鍵対を使用してメッセージを暗号化し、検証する際に使用されるさらなる例示的な手順を要約した図である。
【図１８】3つ以上の鍵対を使用してメッセージを暗号化し、検証する際に使用されるさらなる例示的な手順を要約した図である。
【発明を実施するための形態】
【００１２】
以下の説明では、本開示の様々な態様の完全な理解を提供するために、特定の詳細が与えられる。しかしながら、これらの態様が、これらの特定の詳細なしに実践され得ることが、当業者によって理解されよう。たとえば、回路は、不必要な詳細で態様を不明瞭にすることを避けるために、ブロック図で示される場合がある。他の場合に、周知の回路、構造、および技法は、本開示の態様を不明瞭にしないために、詳細には示されない場合がある。
【００１３】
「例示的な」という単語は、本明細書では、「例、実例、または例証として働く」を意味するのに使用される。本明細書で「例示的」として説明されるすべての実施態様または態様は、必ずしも、本開示の他の態様より好ましいまたは有利と解釈されるべきではない。同様に、「態様」という用語は、本開示のすべての態様が議論される特徴、利点、または動作のモードを含むことを要求するものではない。
【００１４】
《概要》
複数の新規の特徴は、暗号化/暗号解読およびデジタル署名生成/検証における使用のためのRSA公開鍵/秘密鍵対を生成するためにスマートフォン内にインストールされたシステムなどの組込み鍵プロビジョニングシステムとともに使用するためのデバイスおよび方法に関する。短く言うと、少なくともいくつかの例において、2つの公開鍵/秘密鍵対(一方は暗号化/暗号解読用、他方は署名生成/検証用)を生成する組込み鍵プロビジョニングシステムが提供され、2つの公開鍵/秘密鍵対は、共通法(Common Modulus)を共有するが、それ以外は別個または無相関である。これは、2つの完全に別々の鍵対が生成されるすなわち、各鍵対がそれ自体の独自の法を有する場合よりもはるかに効率的に2つの鍵対を生成することを可能にし、なおかつ、少なくとも組込み鍵プロビジョニングシステムの文脈において、満足な完全性および機密性が達成される。本明細書では、2つの公開鍵/秘密鍵対(一方は暗号化/暗号解読用、他方は署名生成/検証用)を生成し、2つの公開鍵/秘密鍵対が、共通法を共有するが、それ以外は別個である、暗号システムおよび暗号方法は、幅広く全般的に、「共通法鍵プロビジョニングシステム/方法」と呼ばれる。
【００１５】
これに関して、本明細書で説明される共通法鍵プロビジョニングシステム/方法を使用して入手された同一の法(N=pq)に対する別々のRSA公開鍵/秘密鍵対(e1、d1)および(e2、d2)の使用は、Qualcomm社のMacchiato(商標)システムなどの組込み鍵プロビジョンシステムのためのセキュア、敏感、かつ性能効率の良い解決策を提供すると思われる。さらに、共通法鍵プロビジョニングシステムの実施は、既存の鍵プロビジョニングシステムに対する相対的に穏当な変更を必要とする。たとえば、鍵対を生成する際の使用のための素数p、qの生成中に、このシステムは、p-1およびq-1が、1つだけの公開指数と互いに素であることをチェックする(完全に別々のRSA鍵対が生成される場合のように)のではなく、p-1およびq-1が、e1とe2の両方と互いに素であることをチェックすることができる。その後、少なくともいくつかの例では、組込みシステムは、d1を入手するために(p-1)(q-1)を法とするe1の逆数を求め(Inverting e1 modulo (p-1)(q-1))、d2を入手するために(p-1)(q-1)を法とするe2の逆数を求める。別個または無相関によって、e1およびe2のいずれもが、他方の倍数ではないこと、または、アプリケーションに依存して、e1がe2の倍数ではないか、e2がe1の倍数ではないことが意味され、e1およびe2が、公開鍵を指すことに留意されたい。
【００１６】
伝統的に、暗号化/暗号解読と署名とのために完全に別々の鍵を提供することには、2つの主な理由すなわち、セキュリティおよび鍵管理がある。セキュリティに関する限り、2つの全般的なタイプの攻撃すなわち、a)暗号解読オラクルに関する問題に起因する、署名方式に関する完全性の消失と、b)署名オラクルに関する問題に起因する、暗号化方式に関する機密性の消失とが、関心事である。しかしながら、組込み鍵プロビジョニングシステムの文脈において、これらの脆弱性は、本明細書で説明される共通法鍵プロビジョニングシステム/方法を使用する時に、問題を提示するとは思われない。たとえば、完全性の消失は、すべての暗号化されたメッセージが、組込みデバイス内の証明書に戻ってチェーンする別個の製造業者鍵(組込みシステムの製造業者によって提供される)を用いて署名される場合に、問題になるはずがない。攻撃者が組込みデバイスの暗号解読オラクルへのアクセスを有する可能性は低い。というのは、この暗号解読オラクルが、デバイスのtrusted execution environment内で実施されるか、デバイス自体が耐タンパとされ得るからである。
【００１７】
署名オラクルに起因する暗号化方式に関する機密性の消失に関する限り、攻撃者が、メッセージを暗号解読し、次いで、出力を漏らすのに署名オラクルを使用できる必要がある可能性が高い。これは、暗号化と署名とにおいて異なるパディングが使用され得るので、少なくとも組込みシステム内では、非常に低リスクであると思われる。すべてのパディング生成もしくは検証、ハッシュ化、および署名は、Trusted Execution Environment(略してTEE、たとえば、TrustZoneの場合におけるTrustZone Operating Environment(TZBSP))のオペレーティングカーネルの内部で行われ、Trusted Application(TA)などのこれらのサービスを使用するアプリケーション内では行われない。(公開鍵暗号法において、パディングが、optimal asymmetric encryption padding(OAEP)、Public-Key Cryptography Standards #1(PKCS#1) v1.5、Probabilistic Signature Scheme(PSS)、PSS with Recovery(PSSR)、Institute of Electrical and Electronics Engineers(IEEE) P1363、Encoding Method for Signature with Appendix(EMSA2またはEMSA5)などの方式を使用する暗号化または署名のためにメッセージを準備するプロセスを指すことに留意されたい)。したがって、攻撃者は、TAアプリケーションを危険にさらすことと、メッセージを署名として渡し、これを暗号解読するために、「誤った」アドレスにおいてまたは誤ったパラメータを用いてTEEのカーネルルーチンを呼び出すことと、次いで、結果を出力することとをも必要とする可能性が高い。不可能ではないが、これは、非常に困難であると思われ、したがって、この形の攻撃は、同様に低リスクであるとわれる。
【００１８】
ここで鍵管理に移ると、ほとんどのシステムにおいて、署名鍵および暗号化鍵は、たとえばバックアップ、アクセス、エスクロー、拒絶、その他に関して、異なる要件を有する。通常、署名鍵は、それが危険にさらされた場合には破壊されなければならないが、暗号化鍵は、通常、より古いメッセージを暗号解読するために保持されなければならない。署名鍵および暗号化鍵は、ポリシーまたは規制によって、異なる寿命を有する場合がある。しかし、これらの懸念事項は、組込みデバイスの寿命が通常はすべての鍵ライフサイクルよりもはるかに短いので、組込みデバイス、特にスマートフォンおよび類似物内で使用される組込みデバイスには一般にあてはまらない。さらに、1つの法の因数分解を明らかにするための包括的な方法は、2つの法の因数分解を明らかにするのにも使用される可能性が最も高い。すなわち、本明細書で説明される共通法鍵プロビジョニングシステム/方法が、法の因数分解を明らかにする方法によって脆弱である場合には、鍵の対は、他の従来の技法を使用して別々に生成される場合においても脆弱である可能性が最も高い。たとえば、因数分解技法における予期されない数学的ブレークスルーが、両方のタイプのシステムを脆弱にする可能性があるが、そのようなブレークスルーは、非共通法技法をも脆弱にする可能性が高い。
【００１９】
2つの「数学的に無相関な」指数対(すなわち、別個の指数対)を単一の法とともに使用することが、上記の懸念事項に対処するのに十分であると思われる。RSA法N = pqおよび2つの公開鍵/秘密鍵対(e1、d1)および(e2、d2)の例を検討されたい。第1の鍵対は、暗号化のみに使用されるが、第2の鍵対は、排他的に署名のために使用される。メッセージc = me1が、e1を用いて暗号化されて到着し、ハッカーが、利用できる暗号解読オラクルまたは利用できる署名オラクルとすることのできる、(e2、d2)の暗号解読オラクルを有すると考えられたい。次いで、攻撃者は、全般的に、cd2 =m (e1d2) = m(e1/e2 mod φ(N))を計算することに制限され、次いで、オリジナルメッセージに対する関係は、関係e1/e2 mod φ(N)を決定できる場合に限って計算され得、ここで、φは、オイラー関数またはオイラーのファイ関数を指す。(関数φ(N)の値が、攻撃者には未知であることに留意されたい)。これは、全般的に、e1とe2との間の数学的関係が明白な関係ではない限り、RSA問題の計算と同等である。たとえば、e1(またはe2)は、e2(またはe1) mod φ(N)の倍数であってはならない。後者が、攻撃者によっては知られ得ない(攻撃者がRSA法を因数分解できるといけないので)ので、これは、e1(またはe2)が、整数としてのe2(またはe1)のべきになってはならない、ということになる。したがって、e1およびe2に関して2つの小さい素数(法に関して小さい)を使用することは、ほとんどの実用的な事例において十分以上である。たとえば、Chaum、「Blind Signatures for Untraceable Payments.」Advances in Cryptology Proceedings of Crypto 82 (3): 199〜203頁(1983年)に記載されている技法を参照されたい。
【００２０】
少なくともいくつかの例において、Trusted Application(TA)は、デバイス(モバイルデバイス、コンピュータ、その他)上のTrusted Execution Environment(TEE)内で走行し、TAは、サーバに対してそれ自体を認証する必要がある。これを行うために、RSA鍵対(または、共通法を用いる鍵対の対)が、TEEのカーネル内で生成され、そこで保持され、TAは、これらの鍵にアクセスする必要がなく、通常は、暗号動作を行わせるためにカーネルへの呼出しを行わなければならない。TAからサーバへ送られるメッセージは、平文であるまたは、サーバのために暗号化されるかのいずれかである(したがって、暗号化は、RSA鍵には何の関係もないサーバの鍵を使用することができる)。サーバからTAへのメッセージは、デバイスの鍵を用いて暗号化される。通常の2つの状況は、暗号化と署名の両方のための単一のRSA鍵(1つの法、1つの単一の公開指数/秘密指数対)または2つの完全に別個のRSA鍵(それぞれがそれ自体の法および単一の公開指数/秘密指数対を有する)である。RSA鍵生成は、デバイスのためにTA固有であるデータを暗号化するのにサーバによってその後に使用される鍵のデバイス一意セットを作成するために必須である。鍵プロビジョニングは、サーバからTAにデータをもたらす行為である。時間を節約し、これらの鍵に対する外部ポリシーがないという事実を活用するために、本明細書で説明される組込みデバイスは、1つの法Nと2つの異なる公開指数/秘密指数対(e1、d1)および(e2、d2)を生成し、第1の対は、デバイスへのメッセージを暗号化し(e1を使用して)、これらをデバイス上で暗号解読する(d1を使用して)のに使用され、第2の対は、デバイス上でメッセージに署名し(d2を使用して)、外部当事者が署名を検証することを可能にする(e2を使用して)のに使用される。RSA文献でのd、eの通常の意味を用いると、d1、d2は秘密指数であり、e1、e2は公開指数である。
【００２１】
少なくともいくつかの例において、鍵生成は、次のように動作する。2つの別個のランダムな素数p、qを生成し(たとえば、数を生成するのに擬似乱数ジェネレータ(PRNG)を使用し、それらが素数であるかどうかをテストし)、N=pq、t=(p-1)(q-1)=φ(N)を計算し、選択された公開指数e1、e2がtと互いに素であるかどうかを検証する。そうではない場合には、最初からやり直し、e1、e2がtと互いに素である場合には、d1またはd2を、e1またはe2 mod tの法逆元(Modular Inverse)にし、何らかの乱数値xのt乗がx自体であるかどうかを検証する。そうではない場合には、最初からやり直し、そうである場合には、組込みデバイスは、成功裡に鍵を生成し終えている。
【００２２】
無相関公開指数に関する限り、次の考慮事項があてはまる。数は、別個でなければならず、さもなければ、この方式は、古典的なRSA方式に還元されるはずである。一方が、他方の倍数であってはならない。e2=k e1である場合には、d1 = k d2 (mod φ(N))であり、攻撃者が、サーバによって暗号化されたメッセージを傍受し(これをe1乗にすることによって)、攻撃者が、d2の暗号解読オラクルへのアクセスを有する(たとえば、動作の結果を漏らすことができる(デバイスが、署名するデバイスなので、そうしなければならない)デバイス上の攻撃に利用される署名オラクル)場合には、攻撃者は、傍受されたメッセージをd2乗するのに、暗号解読オラクルを使用することができ、したがって、メッセージを暗号解読する(kがe1とe2との間の自明な係数なので、kが既知であるから)。重要な考慮事項は、整数として、e2がe1の倍数であってはならない(および、暗号解読オラクルを使用して署名方式を危険にさらすことが意図される場合には、逆も同様であり、この場合には、e1がe2の倍数であってはならない)。比e1/e2およびe2/e1が整数ではない場合には、このシステムを破るために、RSA問題(因数分解と同等であると思われる)を解く必要がある。
【００２３】
modulo φ(N) e1が、必ずe2の倍数である(逆も同様である)が、攻撃者がφ(N)を計算できない(この「不可能性」は、標準RSAセキュリティの前提である)ので、攻撃者が、この係数を判定できず、したがって、防がれなければならない乗数関係は、整数mod φ(N)ではなく、整数の上での必要性によって成り立つことに留意されたい。上記のように、同一の法を使用し、指数対を分離することは、攻撃者のためにメッセージを暗号解読するのに署名するオラクルを使用することを、実質的に不可能にする。これは、鍵分離の暗号原理を達成しながら、鍵生成時の計算の複雑さを減らし、鍵共有の際の帯域幅をも減らす。この技法は、これによって、1つの鍵を使用するシングルサインオンシステムを改善するのに有用である可能性があり、多数の他の応用例をも有する可能性がある。公開指数に関する限り、RSAシステムは、これらの指数がN未満の奇数である(かつ、φ(N)と互いに素であるが、これは鍵生成時にテストされる)ことだけを必要とする。実際には、実際の制限はない。システムは、しばしば、性能の理由から3、5、17、257、65537などの数を使用するが、その代わりに、他の数を使用することができる。RSAの例に関して説明されるが、本明細書で説明される技法の少なくともいくつかは、multi-prime RSAまたは他のRSA様鍵対など、他の暗号技法に適用可能であることにも留意されたい。RSA様によって、たとえば、3つ以上の素数の積である法が使用される(したがって、法Nは、N = p1 * p2 * … * prになり、ここで、piただしi-1,2,…,rは、すべて素数であり、e1、e2は、pi-1ただしi-1,2,…,rの各々と互いに素でなければならず、φ(N) = (p1-1)*(p2-1)*…*(pr-1)である)ことを意味する。したがって、本開示の諸態様は、複数素数(R>2)法に適用可能である。その場合に、鍵生成は、e1、e2が、単に(p-1)および(q-1)と互いに素であるのではなく、pi-1ただしi-1,2,…,rの各々と互いに素であるかどうかをチェックするはずである。
【００２４】
さらに、本明細書で説明される例示的な例の多くが、共通法を共有する2つの鍵対を使用するが、本技法は、共通法を共有する3つ以上の鍵対の生成および使用に適用可能である。たとえば、暗号化/暗号解読用の2つ(e1、d1およびe3、d3)と署名/検証用の2つ(e2、d2およびe4、d4)とであり、4つの公開鍵(e1、e2、e3、e4)の各々は、それぞれが他者によって割り切れない(整数の上で)という一般的な条件を満足する、4つの鍵対が生成され得る。一般に、1タイプあたり少なくとも1つの鍵対(すべてが、鍵対の公開指数がお互いを割り切らない(整数の上で)という条件を満足する)がある状態で、任意の個数の鍵対が、暗号化/暗号解読用に生成され得、任意の個数の鍵対が、署名/検証用に生成され得る。さらに、本明細書の例は、主にRSA鍵対またはRSA様鍵対を用いるが、本開示の少なくともいくつかの態様は、より高次の代数構造または多変量系を使用するもの(すなわち、有限体上の多変量多項式に基づく非対称暗号プリミティブを使用するシステム)など、他の暗号法方式または暗号法プロトコルに適用可能である。しかし、一般に、本明細書で説明される技法は、楕円曲線暗号法(ECC)または非可換数学構造に基づくすべての暗号システムに適用可能であるとは期待されない。
【００２５】
《例示的なハードウェア環境》
本明細書で説明される共通法組込み鍵プロビジョニングシステム/方法は、広範囲のデバイス内でおよび広範囲の応用例のために利用され得る。図1に、全体的なシステム100の1つの端点が、スマートフォンまたは他のコンピューティングデバイス106のtrusted execution environment (TEE)の組込みシステムまたは組込みデバイス104上で走行するtrusted application(TA) 102であり、他方の端点が、ソフトウェアベンダ110(通常は、スマートフォンまたは他のコンピューティングデバイスの製造業者との協力関係にある)のサーバシステム108である、通常の応用例を示す。そのような応用例では、組込みシステムのTA 102は、通常、パートナーサーバから受信された様々な暗号化されたメッセージ114を暗号解読し、また、サーバシステム108に送り返すための応答メッセージ116に署名するように装備される必要がある。また、すべてTEE組込みシステム104の一部であるがTA 102とは別々の、共通法RSA鍵対を生成するための前述のカーネル118および鍵対を記憶するための記憶デバイス120が、暗号解読オラクル122および署名オラクル124とともに図示されている。
【００２６】
一般に、本明細書で説明される共通法システム/方法は、デバイスが、公開鍵/秘密鍵対を生成できる必要があり、メッセージに署名する必要もある(法は機密に保たれ得る)すべての状況において幅広く有用である。具体的な例を提供するために、組込み鍵プロビジョニングコンポーネントが、スマートフォンモバイル通信デバイスまたは他のアクセス端末内での使用のためにSoC処理回路上で提供される、例示的なハードウェア環境を、これから説明する。組込み鍵プロビジョニングシステム/方法が実施され得る他の例示的なハードウェア環境は、他の通信デバイスおよびこれとともに使用するためのコンポーネントまたは周辺デバイス、ならびにインターネットに接続された、伝統的なデスクトップコンピュータおよびトランザクションサーバを含む。
【００２７】
図2に、様々な新規の特徴を活用できる一例による、モバイル通信デバイスのSoC処理回路200を示す。このSoC処理回路は、Qualcomm社のSnapdragon(商標)処理回路とすることができる。SoC処理回路200は、アプリケーション処理回路210を含み、アプリケーション処理回路210は、暗号化/暗号解読デバイス215およびデジタル署名デバイス217(署名コンポーネントと検証コンポーネントの両方を含むことができる)を有する組込み共通法鍵プロビジョニングプロセッサ213に関連して動作するように装備されたマルチコアCPU 212を含む。暗号化/暗号解読デバイス215は、共通法に基づいて入手された鍵対の対のうちの一方の鍵対を使用してメッセージを暗号化し、かつ/または暗号解読するのに使用され得る。署名デバイス217は、共通法に基づいて入手された鍵対の対のうちの他方の鍵対を使用してメッセージに署名し、かつ/またはこれを検証するのに使用され得る。メッセージ自体は、ワイヤレス通信ネットワークおよび他のネットワークを介してリモートシステム(図1のベンダサーバなど)に送られ/から受信され得る。図2の例では、鍵プロビジョニングプロセッサ213は、鍵の生成とプロビジョニングの両方が可能である。実用的なアプリケーションでは、他のシステムが鍵をプロビジョニングしながら、RSA鍵を生成するために別々のシステムを使用することができる。多数の実用的なアプリケーションでは、組込みデバイスは、外部サーバから受信されたメッセージを暗号解読するのみであり、メッセージを暗号化することはしないことにも留意されたい。暗号化コンポーネントと暗号解読コンポーネントの両方が、完全さおよび一般性のために図示されている。署名デバイス217は、いくつかの例で、署名を検証することもできる。
【００２８】
アプリケーション処理回路210は、通常、モバイル通信デバイスのすべてのコンポーネントの動作を制御する。一態様では、アプリケーション処理回路210は、内部共有ハードウェア(HW)リソース230の一部を形成する内部共有ストレージ232の鍵記憶要素233内での公開鍵および秘密鍵の記憶を含むデータの記憶を制御するために、ホストストレージコントローラ250に結合される。アプリケーション処理回路210は、SoC処理回路200の様々なコンポーネントのためのブートシーケンス命令を記憶するブートROMまたはブートRAM 218をも含むことができる。SoC処理回路200は、アプリケーション処理回路210によって制御される1つまたは複数の周辺サブシステム220をさらに含む。周辺サブシステム220は、ストレージサブシステム(たとえば、読取専用メモリ(ROM)、ランダムアクセスメモリ(RAM))、ビデオ/グラフィックスサブシステム(たとえば、デジタル信号処理回路(DSP)、グラフィックス処理ユニット(GPU))、オーディオサブシステム(たとえば、DSP、アナログデジタル変換器(ADC)、デジタルアナログ変換器(DAC))、電力管理サブシステム、セキュリティサブシステム(たとえば、他の暗号化コンポーネントおよびデジタル著作権管理(DRM)コンポーネント)、入出力(I/O)サブシステム(たとえば、キーボード、タッチスクリーン)、ならびに、有線およびワイヤレスの接続性サブシステム(たとえば、universal serial bus(USB)、全地球測位システム(GPS)、Wi-Fi、Global System Mobile(GSM(登録商標))、符号分割多元接続(CDMA)、2G Long Term Evolution(LTE)モデム)を含むことができるが、これに限定はされない。モデムサブシステムである例示的な周辺サブシステム220は、DSP 222、様々な他のハードウェア(HW)コンポーネントおよびソフトウェア(SW)コンポーネント224、ならびに様々な無線周波数(RF)コンポーネント226を含む。一態様では、各周辺サブシステム220は、関連する周辺サブシステム220のプライマリブートイメージ(図示せず)を記憶するブートROMまたはブートRAM 228をも含む。
【００２９】
注記したように、SoC処理回路200は、様々なランタイムデータもしくは他のパラメータを記憶し、ホストメモリを提供するためにアプリケーション処理回路210および様々な周辺サブシステム220によって共有される、内部共有ストレージ232(たとえば、スタティックランダムアクセスメモリ(SRAM)、フラッシュメモリ、その他)などの様々な内部共有HWリソース230をさらに含む。図2の例では、内部共有ストレージ232は、公開鍵および秘密鍵を記憶するのに使用され得る、前述の鍵記憶部分、鍵記憶コンポーネント、または鍵記憶要素233を含む。他の例では、鍵は、モバイルデバイス内の他所において記憶される。
【００３０】
一態様では、SoC処理回路200のコンポーネント210、218、220、228、および230は、シングルチップ基板上に集積される。SoC処理回路200は、異なるチップ基板上に配置され得、1つまたは複数のバスを介してSoC処理回路200と通信することができる、様々な外部共有HWリソース240をさらに含む。外部共有HWリソース240は、たとえば、オペレーティングシステム(OS)情報、システムファイル、プログラム、アプリケーション、ユーザデータ、オーディオ/ビデオファイル、その他などの様々なタイプのデータを記憶するためにアプリケーション処理回路210および様々な周辺サブシステム220によって共有され得る、外部共有ストレージ242(たとえば、ダブルデータレート(DDR)ダイナミックRAM)および/または永久的または半永久的データストレージ244(たとえば、セキュアデジタル(SD)カード、ハードディスクドライブ(HDD)、組込みマルチメディアカード、universal flash device(UFS)、その他)を含むことができる。SoC処理回路200を組み込んだモバイル通信デバイスがアクティブ化される時に、SoC処理回路は、システムブートアッププロセスを開始し、このシステムブートアッププロセス内で、アプリケーション処理回路210は、様々な周辺サブシステム220のためのブートシーケンス命令を含む、SoC処理回路200のためのブート命令を取り出すために、ブートROMまたはブートRAM 218にアクセスすることができる。周辺サブシステム220は、追加の周辺ブートROMまたは追加の周辺ブートRAM 228を有することもできる。
【００３１】
《例示的な共通法鍵生成/処理手順》
図3に、図2の組込み鍵プロビジョニングプロセッサまたは他の適切に装備されたコンポーネント、デバイス、システム、もしくは処理回路によって使用され得る、共通法鍵プロビジョニングの例300を示す。302において、鍵プロビジョニングプロセッサは、素数pおよびqを入手し、これらを使用して法N = pqを計算する。通常、これらの素数は、長さにおいて1024ビットから2048ビット程度である。304において、鍵プロビジョニングプロセッサは、p-1およびq-1がe1とe2の両方と互いに素であることを検証しながら、pおよびqに基づいて、公開鍵(e1、e2)を生成し、記憶する。306において、鍵プロビジョニングプロセッサは、これによって数学的に別個または無相関である第1および第2の鍵対(e1、d1)および(e2、d2)を生成するために、(p-1)(q-1)を法とするe1の逆数および(p-1)(q-1)を法とするe2の逆数を求めることによって、秘密鍵(d1, d2)を生成し、記憶する。すなわち、鍵対は、数学的にお互いとは別個である。上で注記したように、別個または無相関によって、e1およびe2のいずれもが他方の倍数ではないことまたは、アプリケーションに依存して、e1がe2の倍数ではないか、e2がe1の倍数ではないことが意味される。1つの条件だけを使用することが、いくつかのシナリオに対して保護し、両方を使用することが、より多くのシナリオまたはすべての関連するシナリオに対して保護することに留意されたい。例として、2つの鍵対は、a)互いに素、b)それぞれ他方によって割り切れない素数によって割り切れる、c)一方が他方のべき(整数上で)ではない、かつ/または、より一般的に、d)一方が他方の倍数(整数上で)ではないものとすることができる。すなわち、第1および第2の公開鍵(e1、e2)は、第1の公開鍵(e1)が、整数上で第2の公開鍵(e2)の倍数ではなく、かつ/または第2の公開鍵(e2)が整数上で第1の公開鍵(e1)の倍数ではないようにするために入手され得る。308において、鍵プロビジョニングプロセッサは、公開鍵/秘密鍵対のうちの1つ(たとえば、e1、d1)を使用して、メッセージを暗号化し、かつ/または暗号解読する。すでに注記したように、多くの実用的なアプリケーションでは、スマートフォンの組込みデバイスは、外部サーバから受信されたメッセージを暗号解読するのみであって、メッセージを暗号化することはしない。両方の手順は、一般性のために示されている。310において、鍵プロビジョニングプロセッサは、公開鍵/秘密鍵対のうちの他方(たとえば、e2、d2)を使用して、メッセージに署名し、かつ/またはこれを検証する。312において、鍵プロビジョニングプロセッサは、パートナソフトウェアベンダのサーバなどのリモートシステムに、暗号化されたメッセージおよび/または署名されたメッセージを送信する。
【００３２】
図4は、組込み暗号デバイス402およびパートナベンダのリモートサーバ404の例示的な動作を示すタイミング図400を提供する。この例では、処理は、406において開始され、ここで、組込み暗号デバイスは、RSA法N=pq (pおよびqは素数)、公開鍵(e1、e2)を、すでに議論したようにe1およびe2が別個であり、p-1とq-1の両方と互いに素であるように生成する。408において、組込み暗号デバイスは、やはりすでに議論したように、これによって第1および第2の鍵対(e1、d1)および(e2、d2)を生成するために、 (p-1)(q-1)を法とするe1の逆数および(p-1)(q-1)を法とするe2の逆数を求めることによって、秘密鍵(d1、d2)を生成する。通常、406および408の動作は、デバイスごとに1回だけ実行される。図4の残りの動作(すなわち、410以降)は、何回でも繰り返され得、通常は、パートナベンダごとに1回または複数回、すなわち、デバイスのTEE内で実行されるTAごとに1回実行される(特定のベンダが、デバイス内に2つ以上のTAを有する場合がある)。すなわち、406および408は、デバイスが初めてプロトコルを走行させる時にのみ実行され、残りのステップは、パートナベンダへの最初の接続ごとに実行される。410において、組込み暗号デバイスは、公開鍵(e1、e2)をリモートサーバに送り、リモートサーバは、412において、メッセージを生成し、公開鍵のうちの第1の公開鍵(e1)を用いてこれを暗号化することによって応答する。このメッセージは、チャレンジを含むことができる。414において、暗号化されたメッセージが、組込み暗号デバイスに送られ、組込み暗号デバイスは、416において、(e1、d1)を使用してメッセージを暗号解読し、(e2、d2)を使用して応答メッセージに署名する。416で受信されたメッセージがチャレンジを含む場合に、暗号デバイスが、アプリケーション固有の方法を使用してレスポンスを計算することに留意されたい。418において、署名された応答メッセージが、リモートサーバに送られ、リモートサーバは、420において、公開鍵(e2)を使用して応答メッセージの署名を検証する。次いで、422において、リモートサーバは、メッセージを処理し、署名が検証された場合には、サーバは、424において、肯定応答を送る。すなわち、すべての検証がokである場合に、肯定応答が送られる。この肯定応答は、デバイスの公開鍵(e1)を使用して暗号化された、デバイスにプロビジョニングされる(セキュアに記憶される)データを含むことができる。
【００３３】
注記したように、メッセージ412は、チャレンジ(すなわち、乱数)を含むことができる。このメッセージは、デバイス内に記憶される公開証明書にそれ自体がチェーンされるサーバ自体の鍵を使用してサーバによって署名されてもされなくても良い。この方法によって、デバイスは、それがサーバからの真正のメッセージを入手することを知る。次いで、デバイスが応答する。メッセージ412がチャレンジを含む場合には、署名された応答メッセージ418は、このチャレンジに対するレスポンスを含むことができる。このメッセージが、サーバ鍵を用いて暗号化されることは、必要ではないが、可能である。しかしながら、このメッセージが、オリジナルのチャレンジまたはレスポンスを含み、このメッセージが、署名される(これによって、署名がデバイスによってのみ行われ得、サーバがこれを検証できるので、署名は、正しいレスポンスの役割を演じることができる)ことに留意することが重要である。この点で、424の肯定応答は、サーバによってデバイスにプロビジョニングされる実際の鍵を含むことができるデータをも含むことができる。この鍵は、アプリケーション固有であり、サーバとデバイス内のターゲットTAとの間の任意のさらなる通信は、この新しい情報を使用する。
【００３４】
図5に、スマートフォンまたは他のユーザデバイスが様々なパートナベンダに様々なTAを登録する形を要約する。スマートフォンは、しばしば、複数のパートナソフトウェアベンダの各々に関連する複数のTAをインストールされる。502において開始して、ユーザデバイスは、複数のパートナソフトウェアベンダの各々の複数のTAの各々のデバイスアクティブ化に従うデバイスの共通法鍵対(e1、d1)および(e2、d2)を生成する。(これは、図4のブロック406およびブロック408に対応することができる)。504において、ユーザデバイスは、特定のパートナベンダの特定のTAがアクティブ化されているかどうかを判定しまたは検出し、次いで、505において、これが最初の接続であるか否か(すなわち、TAがすでにパートナベンダに登録されているか否か)を判定する。これが最初の接続である場合には、ユーザデバイスは、パートナベンダの鍵対の公開鍵(e1、e2)を送り、応答内で暗号化されたメッセージを受信し、メッセージを暗号解読し、応答メッセージに署名し、送り、プロビジョニングされるデータを含む肯定応答を受信する。(これは、図4のブロック410〜ブロック424に対応することができる)。処理は、追加のTAのために504に戻る。最終的に、パートナベンダのすべてに関連するTAのすべてが、この形で、様々な共通法鍵対を使用して登録される。いくつかの場合に、特定のベンダの特定のTAが、再登録を必要とする場合があり、そうである場合には、ブロック506の動作が、そのTAのために繰り返される。まれな場合に、新しい共通法鍵対が、特定のTAとともに使用するためまたは特定のベンダのために生成される必要がある場合もあり、そうである場合には、ブロック502の動作が、そのTAおよび/またはそのベンダのために繰り返される。
【００３５】
図6に、たとえば初期通信ハロー、ハンドシェーク、その他を容易にするために、本明細書で説明される組込み共通法鍵プロビジョニング手順とともに使用するための例示的なソフトウェアコンポーネントを示す。サーバペイロードライブラリ602は、組込み鍵プロビジョニングデバイスの製造業者(たとえば、組込み鍵プロビジョニングデバイスのコンポーネントがその中に組み込まれるスマートフォンの製造業者)によって提供される。サーバペイロードライブラリ602は、様々な機能を実行するように装備されたソフトウェアコンポーネント604を含むことができる。クライアントペイロードライブラリ606も、パートナベンダのリモートサーバ(図1のサーバシステム108など)上でのインストールのために組込み鍵プロビジョニングデバイスの製造業者によって提供される。クライアントペイロードライブラリ606は、様々な機能を実行するように装備されたソフトウェアコンポーネント608を含むことができる。使用中に、サーバペイロードライブラリ602は、ウェブサーバ/テスタ/ハードウェアセキュリティモジュール(HSM)610を介してクライアントペイロードライブラリ606と通信し、ウェブサーバ/テスタ/HSM 610は、HTTP、HTTPS、JTAG、TIC、またはUSBなどの通信コンポーネント/プロトコル612を使用することができる。同様に、クライアントペイロードライブラリ606は、同一のプロトコル616を使用することができるデバイストランスポートスタック614を介してサーバペイロードライブラリ602と通信する。(HTTPが、ハイパーテキスト転送プロトコルを表し、JTAGが、Joint Test Action Groupを表し、TICが、Technologies de l'information et de la Communicationを表し、USBが、Universal Serial Busを表すことに留意されたい)。この例の2つのライブラリの間で通信され得る例示的なメッセージは、Hello(証明書、チャレンジ)メッセージ618、HelloResp(ResponseMsg)メッセージ620、SetKey(ラップされた鍵、証明書)メッセージ622、およびResultメッセージ624を含む。これらのメッセージの詳細は、本開示の目的にとって重要ではなく、単に例として提供される。
【００３６】
例示的な例では、クライアントペイロードライブラリ606は、証明書およびチャレンジを使用してハロー機能を処理するように装備されたソフトウェアコンポーネント608を含むことができる。これは、たとえば、組み込まれたルートに証明書をチェーンすることと、暗号化されたデバイス公開鍵(DPK_EK)を生成することと、暗号化されたチップIDを生成することと、チャレンジレスポンスを生成することと、暗号化されたデバイス公開鍵(DPK_EK)、チップID、およびチャレンジレスポンスのRSA暗号化を実行することとによって実行され得る。クライアントペイロードライブラリ606は、組み込まれたルートに証明書をチェーンすることによって証明書とともにラップされた鍵をセットし(SetKey)、チャレンジおよびレスポンスを検証し、デバイス公開鍵(DPK)を生成し、鍵およびこれとともに提供されるすべてのメタデータをアンラップするように装備されたソフトウェアコンポーネントをも含むことができる。
【００３７】
例示的な例では、サーバペイロードライブラリ602は、暗号品質乱数ジェネレータ(RNG)またはPRNGを使用してチャレンジを生成するように装備されたソフトウェアコンポーネント604を含むことができる。サーバペイロードライブラリ602は、レスポンスメッセージ(ResponseMsg)、秘密鍵、サービス鍵、および何らかのメタデータに基づいてサービス鍵をラップするように装備されたソフトウェアコンポーネントを含むこともできる。たとえば、ソフトウェアは、秘密鍵を使用してクライアントペイロードライブラリ606から受信されたレスポンスメッセージを暗号解読するのにRSAを使用し、次いで、暗号化されたチップID、暗号化されたデバイス公開鍵(DPK_EK)、およびレスポンスを抽出することができる。次いで、ソフトウェアは、チャレンジレスポンスを検証し、暗号化されたチップIDを使用してデータベースルックアップを実行する。ソフトウェアは、デバイス公開鍵(DPK_EK)を使用してデータベースレコードを暗号解読し、データベースレコードのハッシュを検証し、デバイス公開鍵(DPK)、鍵ラップサービス鍵、およびメタデータを抽出する。やはり、これらは、共通法鍵対を活用しながら実行され得るソフトウェア機能の例示的な例にすぎない。
【００３８】
図7に、特に認証チャレンジおよびレスポンスに用いられる、例示的なソフトウェアコンポーネントをさらに示す。サーバペイロードライブラリ702は、様々な機能を実行するように装備されたソフトウェアコンポーネント704を含むことができる組込み鍵プロビジョニングデバイスの製造業者によって提供される。クライアントペイロードライブラリ706は、様々な機能を実行するように装備されたソフトウェアコンポーネント708を含むことができる。使用中に、サーバペイロードライブラリ702は、やはり、HTTP、HTTPS、JTAG、TIC、およびUSBなどの通信コンポーネント/プロトコル712を使用することができるウェブサーバ/テスタ/HSM 710を介してクライアントペイロードライブラリ706と通信する。同様に、クライアントペイロードライブラリ706は、同一のプロトコル716を使用することができるデバイストランスポートスタック714を介してサーバペイロードライブラリ702と通信する。この例の2つのライブラリの間で通信され得る例示的なメッセージは、authentication(チャレンジ)メッセージ718、AuthResp(チップID、デバイス公開鍵、署名されたレスポンス)メッセージ720、SendKey(ラップされた鍵、証明書)メッセージ722、およびResultメッセージ724を含む。これらのメッセージおよび図6のメッセージは、公開鍵の交換などを容易にする。
【００３９】
例示的な例では、サーバペイロードライブラリ702は、暗号品質RNGまたはPRNGを使用して前述のチャレンジを生成するように装備されたソフトウェアコンポーネント704を含むことができる。ソフトウェアは、チップID、データベースシード、承認されたTAハッシュのセット、署名されたレスポンス、およびデバイス公開鍵を使用してデバイスを認証するように動作可能なコンポーネントをも含む。たとえば、ソフトウェアは、デバイス公開鍵、チップID、およびデータベースシードを使用して認証のためのハッシュを生成し、次いで、デバイス公開鍵を検証する(ハッシュを使用するデータベースルックアップに基づいて)ことができる。ソフトウェアは、SoC(図2のSoC処理回路200など)の公開鍵を使用してレスポンスを検証し、次いで、チャレンジをも検証し、オプションで、供給業者承認済みリストに対してTAハッシュを検証し、最後に呼出し元に「不透明」データを返すのに、RSAを使用することもできる。ソフトウェアは、図6に関連して上でリストしたものとは多少異なるパラメータのセットを使用してサービス鍵をラップするように動作可能なコンポーネントをも含む。たとえば、図7のソフトウェアは、チップID、データベースシード、署名されたレスポンス、デバイス公開鍵、秘密鍵(KPSP)、サービス鍵、および何らかの鍵メタデータを使用して、サービス鍵ラップ機能を実行することができる。これは、デバイスを認証することと、次いで、AES256ラッピング鍵を生成するのにRNGを使用することとによって達成され得る。鍵ラップは、サービス鍵および鍵メタデータを使用して実行される。ラッピング鍵は、SoC公開鍵を使用して暗号化される。さらに、サービス鍵ラップ機能は、KPSP秘密鍵を使用して、ラップされたサービス鍵、ラッピング鍵、レスポンス、およびTAハッシュに署名することができる。
【００４０】
例示的な例では、クライアントペイロードライブラリ706は、認証チャレンジに応答するように装備されたソフトウェアコンポーネント708を含むことができる。RSAデバイス鍵対が存在しない場合には、ソフトウェアは、裸の公開鍵(BPK)派生物を使用して鍵対を生成し、その鍵対を記憶する。次いで、ソフトウェアは、チャレンジ、レスポンス、TAハッシュ(呼出し元TAの)、および不透明データに署名することによって、チャレンジに対するレスポンスを生成する。ソフトウェアは、組み込まれたデバイスルートに証明書をチェーンすることと、次いで、ラップされた鍵に対する署名を検証することとによって、サービス鍵および証明書をアンラップすることもできる。ソフトウェアは、ラッピング鍵を暗号解読するのにSoC秘密鍵を使用し、次いで、サービス鍵およびこれとともに提供されたすべてのメタデータをアンラップすることができる。呼出し元TAは、TAハッシュを使用して検証され得、検証された場合に、サービス鍵およびメタデータが、呼出し元に返される。やはり、これらはソフトウェア機能の例示的な例にすぎない。
【００４１】
《例示的なシステムおよび方法》
図8に、図1〜図7のシステム、方法、および装置を実施することのできる全体的なシステムまたは装置800を示す。本開示の様々な態様によれば、要素、要素の任意の部分、または要素の任意の組合せを、図2のSoC処理回路などの1つまたは複数の処理回路804を含む処理システム814を用いて実施することができる。たとえば、装置800を、モバイル通信システムのユーザ機器(UE)とすることができる。装置800を、無線ネットワーク制御装置(RNC)とともに使用することができる。SoCに加えて、処理回路804の例は、マイクロプロセッシング回路、マイクロコントローラ、デジタル信号処理回路(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理デバイス(PLD)、状態機械、ゲーテッド論理、ディスクリートハードウェア回路、および本開示全体で説明される様々な機能性を実行するように構成された他の適切なハードウェアを含む。さらに、処理システム814は、図1に示されたサーバなどのサーバのコンポーネントとすることができる。すなわち、装置800内で利用される時に、処理回路804は、デジタル署名生成、署名および検証、ならびに暗号化/暗号解読を実行するプロセスなど、上で説明され、図2、図3、および図4内に示された(および、下で議論する、図11、図12、図13、図16、図17、および図18に示された)プロセスのうちの任意の1つまたは複数を実施するのに使用され得る。
【００４２】
図8の例では、処理システム814を、全般的にバス802によって表されるバスアーキテクチャを用いて実施することができる。バス802は、処理システム814の特定の応用例および全体的な設計制約に依存して、任意の個数の相互接続するバスおよびブリッジを含むことができる。バス802は、1つまたは複数の処理回路を含む様々な回路(全般的に処理回路804によって表される)、記憶デバイス805、および機械可読、プロセッサ可読、処理回路可読、またはコンピュータ可読の媒体(全般的に、非一時的機械可読媒体806によって表される)をリンクする。バス802は、タイミングソース、周辺機器、電圧レギュレータ、および電力管理回路などの様々な他の回路をもリンクすることができ、これらの他の回路は、当技術分野で周知であり、したがって、これ以上は説明しない。バスインターフェース808は、バス802と、受信器および送信器を含むことができるトランシーバ810との間のインターフェースを提供する。トランシーバ810は、伝送媒体を介して様々な他の装置と通信するための手段を提供する。装置の性質に依存して、ユーザインターフェース812(たとえば、キーパッド、ディスプレイ、スピーカ、マイクロフォン、ジョイスティック)を設けることもできる。
【００４３】
処理回路804は、バス802の管理と、機械可読媒体806上に記憶されたソフトウェアの実行を含む全般的な処理との責任を負う。ソフトウェアは、処理回路804によって実行される時に、処理システム814に、任意の特定の装置について本明細書で説明される様々な機能を実行させる。機械可読媒体806は、ソフトウェアを実行する時に処理回路804によって操作されるデータを記憶するのにも使用され得る。
【００４４】
少なくともいくつかの例で、処理回路804は、第1および第2の公開鍵/秘密鍵対を入手し(第1および第2の公開鍵/秘密鍵対は、共通法を共有する)、第1の公開鍵/秘密鍵対の秘密鍵を使用してメッセージを暗号解読し、第2の公開鍵/秘密鍵対の秘密鍵を使用してメッセージに署名することによってメッセージのデジタル署名を入手するように構成され、トランシーバ810の送信器デバイスは、暗号デバイスからデジタル署名を送るように構成される。
【００４５】
さらに、少なくともいくつかの例では、処理回路804(または処理するための他の手段)は、第1および第2の公開鍵/秘密鍵対を入手するための手段(第1および第2の公開鍵/秘密鍵対は共通法を共有する)と、第1の公開鍵/秘密鍵対の秘密鍵を使用してメッセージを暗号解読するための手段と、第2の公開鍵/秘密鍵対の秘密鍵を使用してメッセージに署名することによってメッセージのデジタル署名を入手するための手段とを提供し、トランシーバ810の送信器デバイス(または送信するための他の手段)は、暗号デバイスからデジタル署名を送るための手段を提供する。いくつかの例では、処理回路は、第1の公開鍵(e1)が第2の公開鍵(e2)の倍数ではなく、かつ/または第2の公開鍵(e2)が第1の公開鍵(e1)の倍数ではないようにするために、第1および第2の公開鍵(e1、e2)を入手するための手段を提供するようにさらに構成される。いくつかの例では、処理回路は、p-1およびq-1が第1の公開鍵(e1)と第2の公開鍵(e2)の両方と互いに素であることを検証しながら、素数pおよびqを入手するための手段を提供するようにさらに構成される。
【００４６】
さらに、少なくともいくつかの例では、トランシーバ810の受信器デバイスは、別々のデバイスから第1および第2の公開鍵/秘密鍵対の第1および第2の公開鍵を受信するように構成され、第1および第2の公開鍵/秘密鍵対は、共通法を共有し、処理回路804は、共通法を共有する第1および第2の公開鍵/秘密鍵対の第1の公開鍵を使用してメッセージを暗号化し、トランシーバ810の送信器デバイスを使用して、暗号化されたメッセージを別々のデバイスに送り、トランシーバ810の受信器デバイスを使用して、別々のデバイスからメッセージに対する署名された応答を受信し(メッセージは、第2の公開鍵/秘密鍵対の秘密鍵を使用して入手された署名を用いて署名されている)、共通法を共有する第1および第2の公開鍵/秘密鍵対の第2の公開鍵を使用して、署名された応答の署名を検証するように構成される。
【００４７】
さらに、少なくともいくつかの例では、トランシーバ810の受信器デバイス(または受信するための他の手段)は、別々のデバイスから第1および第2の公開鍵/秘密鍵対の第1および第2の公開鍵を受信する手段を提供し、第1および第2の公開鍵/秘密鍵対は、共通法を共有し、処理回路804(または処理するための他の手段)は、共通法を共有する第1および第2の公開鍵/秘密鍵対の第1の公開鍵を使用してメッセージを暗号化するための手段と、トランシーバ810の送信器デバイスを使用して、暗号化されたメッセージを別々のデバイスに送るための手段と、トランシーバ810の受信器デバイス (または受信するための他の手段)を使用して、別々のデバイスからメッセージに対する署名された応答を受信するための手段であって、メッセージは、第2の公開鍵/秘密鍵対の秘密鍵を使用して入手された署名を用いて署名されている、受信するための手段と、共通法を共有する第1および第2の公開鍵/秘密鍵対の第2の公開鍵を使用して、署名された応答の署名を検証するための手段とを提供する。いくつかの例では、第1および第2の公開鍵/秘密鍵対は、お互いと別個である。いくつかの例では、第1および第2の公開鍵(e1、e2)は、第1の公開鍵(e1)が第2の公開鍵(e2)の倍数ではなく、かつ/または第2の公開鍵(e2)が第1の公開鍵(e1)の倍数ではないようになっている。いくつかの例では、共通法(N)は、N = pqであり、pおよびqは、素数である。
【００４８】
処理システム内の1つまたは複数の処理回路804は、ソフトウェアまたはソフトウェアコンポーネントを実行することができる。ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、または他のいずれとして呼ばれる場合であっても、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行可能ファイル、実行のスレッド、プロシージャ、関数、その他を意味するものとして幅広く解釈されなければならない。処理回路は、タスクを実行することができる。コードセグメントは、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または命令、データ構造、もしくはプログラムステートメントの任意の組合せを表すことができる。コードセグメントは、情報、データ、引数、パラメータ、メモリ内容、または記憶内容を渡し、かつ/または受け取ることによって、別のコードセグメントまたはハードウェア回路に結合され得る。情報、引数、パラメータ、データなどを、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク伝送などを含む任意の適切な手段を介して渡し、転送し、または伝送することができる。
【００４９】
ソフトウェアは、機械可読媒体806上に存在することができる。機械可読媒体806は、非一時的機械可読媒体とすることができる。非一時的な処理回路可読、機械可読、またはコンピュータ可読の媒体は、例として、磁気記憶デバイス(たとえば、ハードディスク、フロッピディスク、磁気ストリップ)、光ディスク(たとえば、コンパクトディスク(CD)またはデジタル多用途ディスク(DVD))、スマートカード、フラッシュメモリデバイス(たとえば、カード、スティック、またはキードライブ)、RAM、ROM、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、レジスタ、リムーバブルディスク、ハードディスク、CD-ROM、ならびに機械またはコンピュータによってアクセスされ読み取られ得るソフトウェアおよび/または命令を記憶する任意の他の適切な媒体を含む。「機械可読媒体」、「コンピュータ可読媒体」、「処理回路可読媒体」、および/または「プロセッサ可読媒体」という用語は、ポータブルまたは固定式の記憶デバイス、光学記憶デバイス、ならびに命令および/またはデータを記憶し、含み、または担持することのできる様々な他の媒体などの非一時的媒体を含むことができるが、これに限定されない。したがって、本明細書で説明される様々な方法を、「機械可読媒体」、「コンピュータ可読媒体」、「処理回路可読媒体」、および/または「プロセッサ可読媒体」内に記憶され、1つまたは複数の処理回路、機械、および/またはデバイスによって実行され得る命令および/またはデータによって完全にまたは部分的に実施することができる。機械可読媒体は、例として、搬送波、伝送線、ならびにコンピュータによってアクセスされ、読み取られ得るソフトウェアおよび/または命令を伝送するための任意の他の適切な媒体をも含むことができる。
【００５０】
機械可読媒体806は、処理システム814内に、処理システム814の外部に存在し、あるいは、処理システム814を含む複数のエンティティにまたがって分散され得る。機械可読媒体806を、コンピュータプログラム製品内で実施することができる。例として、コンピュータプログラム製品は、パッケージング材料内に機械可読媒体を含むことができる。当業者は、特定の応用例およびシステム全体に課せられる全体的な設計制約に依存して、本開示全体で提示される説明される機能性をどのようにして最もよく実施すべきかを認めるであろう。たとえば、機械可読記憶媒体806は、処理回路804によって実行された時に、処理回路に、第1および第2の公開鍵/秘密鍵対を入手させ(第1および第2の公開鍵/秘密鍵対は、共通法を共有する)、第1の公開鍵/秘密鍵対の秘密鍵を使用してメッセージを暗号解読させ、第2の公開鍵/秘密鍵対の秘密鍵を使用してメッセージに署名することによってデジタル署名を入手させ、デジタル署名を暗号デバイスから送らせる1つまたは複数の命令を有することができる。
【００５１】
図面に示されたコンポーネント、ステップ、特徴、および/または機能のうちの1つまたは複数を、単一のコンポーネント、ブロック、特徴、または機能に再配置し、かつ/または組合せ、あるいは複数のコンポーネント、ステップ、または機能内で実施することができる。追加の要素、コンポーネント、ステップ、および/または機能を、本開示から逸脱せずに追加することもできる。図に示された装置、デバイス、および/またはコンポーネントは、図に記載された方法、特徴、またはステップのうちの1つまたは複数を実行するように構成され得る。本明細書で説明されるアルゴリズムは、効率的にソフトウェア内で実施され、かつ/またはハードウェア内に組み込まれることも可能である。
【００５２】
本明細書で開示される例に関連して説明される様々な例示的な論理ブロック、モジュール、回路、要素、および/またはコンポーネントは、汎用処理回路、デジタル信号処理回路(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理コンポーネント、ディスクリートゲートもしくはトランジスタ論理、ディスクリートハードウェアコンポーネント、または本明細書で説明される機能を実行するように設計されたその任意の組合せを用いて実施されまたは実行され得る。汎用処理回路は、マイクロプロセッシング回路とすることができるが、代替案では、処理回路を、任意の従来の処理回路、コントローラ、マイクロコントローラ、または状態機械とすることができる。処理回路は、コンピューティングコンポーネントの組合せ、たとえば、DSPとマイクロプロセッシング回路との組合せ、複数のマイクロプロセッシング回路、DSPコアに関連する1つまたは複数のマイクロプロセッシング回路、または任意の他のそのような構成としても実施され得る。
【００５３】
したがって、本開示の一態様では、図2に示されたプロセッサ213は、共通法鍵対の生成専用、メッセージの暗号解読専用、およびデジタル署名の生成専用など、図3、図4、および/または図5(および/または下で議論する図11、図12、および図13)に記載のアルゴリズム、方法、および/またはブロックの少なくとも一部を実行するために特に設計され、かつ/またはハードワイヤされた特殊化された処理回路(たとえば、ASIC)とすることができる。したがって、そのような特殊化された処理回路(たとえば、ASIC)は、図3、図4、および/または図5(および/または下で議論する図11、図12、および図13)に記載のアルゴリズム、方法、および/またはブロックを実行するための手段の一例とすることができる。機械可読記憶媒体は、特殊化された処理回路(たとえば、ASIC)によって実行された時に、特殊化された処理回路に本明細書で説明されるアルゴリズム、方法、および/またはブロックを実行させる命令を記憶することができる。本開示の別の態様では、図1のリモートサーバシステム108は、共通法鍵対の受信専用、メッセージの暗号化専用、デジタル署名の検証専用など、図3および/または図4(および/または下で議論する図16、図17、および図18)に記載のアルゴリズム、方法、および/またはブロックの少なくとも一部を実行するように特に設計され、かつ/またはハードワイヤされた特殊化された処理回路を含むこともできる。したがって、そのような特殊化された処理回路は、図3および/または図4(および/または下で議論する図16、図17、および図18)に記載のアルゴリズム、方法、および/またはブロックを実行するための手段の一例とすることができる。機械可読記憶媒体は、特殊化された処理回路(たとえば、ASIC)によって実行された時に、特殊化された処理回路に本明細書で説明されるアルゴリズム、方法、および/またはブロックを実行させる命令を記憶することができる。
【００５４】
図9に、たとえば共通法鍵ジェネレータ904を含む共通法組込み鍵プロビジョニングプロセッサ902を有するモバイルデバイスの、処理回路804の選択された例示的なコンポーネントを示す。図9の鍵ジェネレータ904は、共通法を生成するのに適する素数を入手しまたは生成するように動作可能な素数選択モジュール/回路908と、素数を使用して共通法を入手しまたは生成するように動作可能な共通法生成モジュール/回路910と、第1および第2の公開鍵/秘密鍵対を入手しまたは生成するように動作可能な共通法公開鍵/秘密鍵生成モジュール/回路912とを含み、第1および第2の公開鍵/秘密鍵対は、共通法を共有する。上で説明したように、1タイプあたり少なくとも1つの鍵対(すなわち、暗号化/暗号解読用の少なくとも1つと、署名/検証用の少なくとも1つと)の、3つ以上の鍵対が、生成され得、鍵対のすべてが、公開指数がお互いを割り切らない(整数の上で)という条件を満足する。第1および第2の鍵対が生成される例が、図12(下で説明する)に示され、3つ以上の鍵対が生成される例が、図13(やはり下で説明する)に示されている。公開鍵/秘密鍵対を生成するために、公開鍵インバータモジュール/回路918が、秘密鍵を作成するために公開鍵の逆数を求めるのに使用され得る。非相関検証モジュール/回路916が、第1および第2の公開鍵/秘密鍵対が無相関であることを検証するのに使用され得る。鍵ストレージコントローラ920は、公開鍵/秘密鍵対の記憶を制御する。
【００５５】
組込み鍵プロビジョニングプロセッサ902は、第1の公開鍵/秘密鍵対を使用してメッセージを暗号化するように動作可能な暗号化モジュール/回路922および第1の公開鍵/秘密鍵対を使用してメッセージを暗号解読するように動作可能な暗号解読モジュール/回路923をも有する。さらに、組込み鍵プロビジョニングプロセッサ902は、第2の公開鍵/秘密鍵対の秘密鍵を使用してメッセージに署名することによってデジタル署名を提供し、入手し、または他の形で生成するように動作可能な共通法デジタル署名プロセッサモジュール/回路906をも有する。デジタル署名プロセッサモジュール/回路906は、第2の公開鍵/秘密鍵対の秘密鍵を使用してメッセージに署名するように動作可能な署名モジュール/回路924および第2の公開鍵/秘密鍵対の公開鍵を使用してメッセージの署名を検証するように動作可能な検証モジュール/回路926を含む。署名/メッセージ送信/受信モジュール/回路928は、暗号化されたメッセージ、署名されたメッセージ、および暗号化と署名の両方を行われたメッセージを受信し、かつ/または送信するように動作可能である。
【００５６】
図10に、鍵プロビジョニングにおける使用のためのコンピュータ可読または機械可読の媒体806の選択された例示的な命令を示す。図8の処理回路804によって実行された時に、処理回路に鍵プロビジョニングおよび関連する動作を制御させまたは実行させる共通法鍵生成命令1004を含む共通法組込み鍵プロビジョニング命令のセット1002が、提供される。図10の鍵生成命令1004は、共通法を生成するのに適する素数を入手しまたは生成するように動作可能な素数選択命令1008と、素数を使用して共通法を入手しまたは生成するように動作可能な共通法生成命令1010と、少なくとも第1および第2の公開鍵/秘密鍵対を入手しまたは生成するように動作可能な共通法公開鍵/秘密鍵生成命令1012とを含み、第1および第2の公開鍵/秘密鍵対は、共通法を共有する。注記したように、1タイプあたり少なくとも1つの鍵対(すなわち、暗号化/暗号解読用の少なくとも1つと、署名/検証用の少なくとも1つと)の、3つ以上の鍵対が、生成され得、鍵対のすべてが、公開指数がお互いを割り切らない(整数の上で)という条件を満足する。公開鍵/秘密鍵対を生成するために、公開鍵インバータ命令1018が、秘密鍵を作成するために公開鍵の逆数を求めるのに使用され得る。非相関検証命令1016が、第1および第2の公開鍵/秘密鍵対が無相関であることを検証するのに使用され得る。鍵ストレージコントローラ命令1020は、公開鍵/秘密鍵対の記憶を制御する。
【００５７】
組込み鍵プロビジョニング命令1002は、第1の公開鍵/秘密鍵対を使用してメッセージを暗号化するように動作可能な暗号化命令1022および第1の公開鍵/秘密鍵対を使用してメッセージを暗号解読するように動作可能な暗号解読命令1023をも含む。さらに、組込み鍵プロビジョニング命令1002は、第2の公開鍵/秘密鍵対の秘密鍵を使用してメッセージに署名することによってデジタル署名を提供し、入手し、または他の形で生成するように動作可能な共通法デジタル署名プロセッサ命令1006をも含む。デジタル署名プロセッサ命令1006は、第2の公開鍵/秘密鍵対の秘密鍵を使用してメッセージに署名するように動作可能な署名命令1024および第2の公開鍵/秘密鍵対の公開鍵を使用してメッセージの署名を検証するように動作可能な検証命令1026を含む。署名/メッセージ送信/受信命令1028は、暗号化されたメッセージ、署名されたメッセージ、および暗号化と署名の両方を行われたメッセージを受信し、かつ/または送信するように動作可能である。
【００５８】
図11に、公開鍵/秘密鍵対を生成するか他の形で入手し、メッセージを暗号解読し、署名するために、図8の処理回路804または他の適切に装備された暗号デバイスによって実行され得る方法または手順1100をおおまかに示し、要約する。1102において、暗号デバイスは、第1および第2の公開鍵/秘密鍵対を入手し、第1および第2の公開鍵/秘密鍵対は、共通法を共有する。1104において、暗号デバイスは、第1の公開鍵/秘密鍵対の秘密鍵を使用して、メッセージを暗号解読する。1106において、暗号デバイスは、第2の公開鍵/秘密鍵対の秘密鍵を使用してメッセージに署名することによって、メッセージのデジタル署名を入手する。1108において、暗号デバイスは、暗号デバイスからデジタル署名を送る。
【００５９】
図12に、公開鍵/秘密鍵対を生成しまたは他の形で入手し、メッセージを暗号解読し、署名するために、図8の処理回路804または他の適切に装備された暗号デバイスによって実行され得るさらなる方法または手順1200を示し、要約する。暗号デバイスは、モバイルワイヤレスデバイス内の組込み鍵プロビジョニングシステムのコンポーネントとすることができる。1202において、暗号デバイスは、第1および第2のRSA公開鍵/秘密鍵対(e1、d1)および(e2、d2)を入手し、第1および第2の公開鍵/秘密鍵対は、(1)共通法N = pqを共有し、pおよびqは、法Nよりも小さい素数であり、p-1およびq-1は、第1の公開鍵(e1)と第2の公開鍵(e2)の両方と互いに素であり、(2)お互いとは別個であり、第1および第2の公開鍵(e1、e2)は、第1の公開鍵(e1)が整数上で第2の公開鍵(e2)の倍数ではなく、かつ/または第2の公開鍵(e2)が整数上で第1の公開鍵(e1)の倍数ではないように入手され、第1の秘密鍵(d1)および第2の秘密鍵(d2)は、(p-1)(q-1)を法とする第1の公開鍵(e1)の逆数および(p-1)(q-1)を法とする第2の公開鍵(e2)の逆数を求めることによって入手される。1204において、暗号デバイスは、第1の公開鍵/秘密鍵対(e1、d1)の秘密鍵を使用してメッセージを暗号解読し、暗号解読されるメッセージは、リモートシステム(図1のパートナサーバなど)から受信される。1206において、暗号デバイスは、第2の公開鍵/秘密鍵対(e2、d2)の秘密鍵(d2)を使用してメッセージに署名することによってメッセージのデジタル署名を入手する。1208において、暗号デバイスは、暗号デバイスからリモートシステムにデジタル署名を送る。
【００６０】
図13に、1タイプあたり少なくとも1つの鍵対(すなわち、暗号化/暗号解読用の少なくとも1つおよび署名/検証用の少なくとも1つ)がある、3つ以上の鍵対が生成され、すべてが、鍵対の公開指数がお互いを割り切らない(整数の上で)という条件を満足する例を示す。すなわち、図13は、公開鍵/秘密鍵対を生成しまたは他の形で入手し、3つ以上の鍵対を使用しながらメッセージを暗号解読し、署名するために、図8の処理回路804または他の適切に装備された暗号デバイスによって実行され得るさらなる方法または手順1300を示し、要約する。1302において、暗号デバイスは、公開鍵/秘密鍵対(e1、d1) … (en、dn)を入手し、nは、2よりも大きく(すなわち、3以上)、公開鍵/秘密鍵対は、(1)共通法N = pqを共有し、pおよびqは、法Nよりも小さい素数であり、p-1およびq-1は、公開鍵のすべて(e1 … en)と互いに素であり、(2)それぞれお互いとは別個であり、公開鍵(e1 … en)の各々は、各公開鍵が整数上で他の公開鍵のいずれの倍数でもないように入手され、各個々の秘密鍵は、(p-1)(q-1)を法とする対応する公開鍵の逆数を求めることによって入手される。1304において、暗号デバイスは、公開鍵/秘密鍵対の秘密鍵のうちの1つを使用してメッセージを暗号解読し、暗号解読されるメッセージは、リモートシステムから受信される。1306において、暗号デバイスは、他の公開鍵/秘密鍵対のうちの1つの秘密鍵を使用してメッセージに署名することによってメッセージのデジタル署名を入手する。1308において、暗号デバイスは、暗号デバイスからリモートシステムにデジタル署名を送る。
【００６１】
したがって、図8〜図13は、共通法鍵対を生成し、利用するように動作可能な、モバイルデバイスまたは類似物の共通法暗号処理コンポーネントの使用に関係する様々な態様を示し、要約する。図14〜図18に、共通法鍵対の公開鍵を受信し、利用するように動作可能な、パートナソフトウェアサーバなどのリモートシステムの共通法コンポーネントの使用に関係する様々な態様を示し、要約する。
【００６２】
図14に、たとえば、共通法公開鍵ストレージモジュール/回路1406を使用して記憶され得る共通法を共有する2つ以上の公開鍵を受信するように動作可能な共通法公開鍵受信モジュール/回路1404を含む共通法鍵プロセッサ1402を有するリモートサーバ(図1のサーバシステム108など)の、処理回路1400の選択された例示的なコンポーネントを示す。たとえば、公開鍵受信モジュール/回路1404は、図9のデバイスから第1および第2の公開鍵/秘密鍵対の第1および第2の公開鍵を受信することができ、第1および第2の公開鍵/秘密鍵対は、共通法を共有する。共通法公開鍵のうちの少なくとも1つを使用する発信メッセージ(たとえば、図9のデバイスへの)の暗号化は、たとえば第1および第2の公開鍵/秘密鍵対の第1の公開鍵を使用してメッセージを暗号化するために、暗号化モジュール/回路1408を使用して実行され得る。すべての受信されたメッセージの暗号解読は、暗号解読モジュール/回路1410を使用して、リモートシステムの少なくとも1つの秘密鍵を使用して実行され得る。
【００６３】
さらに、共通法デジタル署名プロセッサモジュール/回路1412は、共通法鍵対を使用する署名検証手順および類似物を制御するように動作可能である。より具体的には、検証モジュール/回路1414は、リモートシステムによって受信されたメッセージの署名を検証するように動作可能であり、検証は、共通法鍵対の公開鍵を使用する。たとえば、検証モジュール/回路1414は、共通法鍵対の対の第2の公開鍵を使用して、図9のデバイスから受信された署名された応答の署名を検証することができる。署名モジュール/回路1416も、リモートシステムの秘密鍵を使用してメッセージに署名することによってデジタル署名を提供し、入手し、または他の形で生成するために提供され得る。公開鍵/応答メッセージ受信モジュール/回路1418は、リモートデバイスから署名された応答メッセージを受信し、他の情報またはデータを受信するために、図9のデバイスなどのリモートデバイスから共通法を共有する公開鍵を受信するように動作可能である。暗号化メッセージ送信モジュール/回路1420は、暗号化されたメッセージをリモートデバイスに送信し、他の情報またはデータを送信するように動作可能である。
【００６４】
図15に、共通法公開鍵対を処理し、利用する際の使用のための機械可読またはコンピュータ可読の媒体1500の選択された例示的な命令を示す。たとえばリモートサーバシステムの処理回路によって実行される時に、システムに、鍵プロビジョニングおよび関係する動作を制御または実行させる、共通法鍵プロビジョニング命令のセット1502が提供される。図15の共通法鍵プロビジョニング命令は、共通法公開鍵ストレージ命令1506の制御の下で記憶され得る共通法を共有する2つ以上の公開鍵を受信するように動作可能な共通法公開鍵受信命令1504を含む。たとえば、公開鍵受信命令1504は、図9のデバイスからの第1および第2の公開鍵/秘密鍵対の第1および第2の公開鍵の受信を制御することができ、第1および第2の公開鍵/秘密鍵対は、共通法を共有する。共通法公開鍵のうちの少なくとも1つを使用する発信メッセージ(たとえば、図9のデバイスへの)の暗号化は、たとえば第1および第2の公開鍵/秘密鍵対の第1の公開鍵を使用してメッセージを暗号化するために、暗号化命令1508を使用して実行され得る。すべての受信されたメッセージの暗号解読は、暗号解読命令1510を使用して、リモートシステムの少なくとも1つの秘密鍵を使用して実行され得る。
【００６５】
さらに、共通法デジタル署名プロセッサ命令1512は、共通法鍵対を使用する署名検証手順および類似物を制御するように動作可能である。より具体的には、検証命令1514は、リモートシステムによって受信されたメッセージの署名を検証するように動作可能であり、検証は、共通法鍵対の公開鍵を使用する。たとえば、検証命令1514は、共通法鍵対の対の第2の公開鍵を使用して、図9のデバイスから受信された、署名された応答の署名を検証することができる。署名命令1516も、リモートシステムの秘密鍵を使用してメッセージに署名することによってデジタル署名を提供し、入手し、または他の形で生成するために提供され得る。公開鍵/応答メッセージ受信命令1518は、リモートデバイスから署名された応答メッセージを受信し、他の情報またはデータを受信するために、図9のデバイスなどのリモートデバイスから共通法を共有する公開鍵を受信するように動作可能である。暗号化メッセージ送信命令1520は、暗号化されたメッセージをリモートデバイスに送信し、他の情報またはデータを送信するように動作可能である。
【００６６】
図16に、メッセージの暗号化および検証のために暗号デバイス(図9のデバイスなど)と通信しているシステム(図14のデバイスを組み込んだシステムなど)によって実行され得る方法または手順1600をおおまかに示し、要約する。1602において、システムは、別々のデバイスから第1および第2の公開鍵/秘密鍵対の第1および第2の公開鍵を受信し、第1および第2の公開鍵/秘密鍵対は、共通法を共有する。1604において、システムは、共通法を共有する第1および第2の公開鍵/秘密鍵対の第1の公開鍵を使用してメッセージを暗号化する。1605において、システムは、暗号化されたメッセージを別々のデバイスに送る。1606において、システムは、別々のデバイスからメッセージに対する署名された応答を受信し、メッセージは、第2の公開鍵/秘密鍵対の秘密鍵を使用して入手された署名を用いて署名されている。1608において、システムは、共通法を共有する第1および第2の公開鍵/秘密鍵対の第2の公開鍵を使用して、署名された応答の署名を検証する。
【００６７】
図17に、メッセージの暗号化および検証のために暗号デバイス(図9のデバイスなど)と通信しているシステム(図14のデバイスを有するシステムなど)によって実行され得るさらなる方法または手順1700をおおまかに示し、要約する。1702において、システムは、RSA公開鍵/秘密鍵対(e1、d1)および(e2、d2)の第1および第2の公開鍵(e1、e2)を受信し、第1および第2の公開鍵/秘密鍵対は、(1)共通法N = pqを共有し、pおよびqは、法Nよりも小さい素数であり、p-1およびq-1は、第1の公開鍵(e1)と第2の公開鍵(e2)の両方と互いに素であり、(2)お互いと別個であり、第1および第2の公開鍵(e1、e2)は、第1の公開鍵(e1)が整数の上で第2の公開鍵(e2)の倍数ではなく、かつ/または第2の公開鍵(e2)が整数の上で第1の公開鍵(e1)の倍数ではないようになっている。1704において、システムは、公開鍵(e1)を使用してメッセージを暗号化し、モバイルワイヤレスデバイスの組込みシステムに送る。1706において、システムは、モバイルワイヤレスデバイスの組込みシステムからメッセージに対する署名された応答を受信し、メッセージは、第2の公開鍵/秘密鍵対(e2、d2)の秘密鍵(d2)を使用して入手された署名を用いて署名されている。1708において、システムは、第2の公開鍵(e2)を使用して、署名された応答の署名を検証する。
【００６８】
図18に、3つ以上の鍵対が使用される、メッセージの暗号化および検証のために暗号デバイス(図9のデバイスなど)と通信しているシステム(図14のデバイスを有するシステムなど)によって実行され得るさらなる方法または手順1800をおおまかに示し、要約する。1802において、システムは、公開鍵/秘密鍵のセット(e1、d1) … (en、dn)の3つ以上の公開鍵(e1 … en)を受信し、nは、2よりも大きく、公開鍵は、(1)共通法N = pqを共有し、pおよびqは、法nよりも小さい素数であり、p-1およびq-1は、公開鍵(e1 … en)のすべてと互いに素であり、(2)公開鍵(e1 … en)の各々は、お互いと別個であり、公開鍵(e1 … en)の各々は、各公開鍵が整数の上で他の公開鍵のいずれの倍数でもないようになっている。1804において、システムは、公開鍵のうちの1つを使用してメッセージを暗号化し、モバイルワイヤレスデバイスの組込みシステムに送る。1806において、システムは、モバイルワイヤレスデバイスの組込みシステムからメッセージに対する署名された応答を受信し、メッセージは、公開鍵/秘密鍵対のセットの秘密鍵を使用して入手された署名を用いて署名されている。1808において、システムは、署名を入手するのに使用された秘密鍵に対応する公開鍵を使用して、署名された応答の署名を検証する。したがって、図18は、1タイプあたり少なくとも1つの鍵対がある、3つ以上の鍵対が生成され、鍵対のすべてが、公開指数がお互いを割り切らない(整数の上で)という条件を満足する例を示す。
【００６９】
本開示の態様が、フローチャート、流れ図、構造図、またはブロック図として示されるプロセスとして本明細書で説明される場合があることに留意されたい。フローチャートは、順次プロセスとして動作について説明するが、動作の多くが、並列にまたは同時に実行され得る。さらに、動作の順序は、再配置され得る。プロセスは、その動作が完了する時に終了される。プロセスは、方法、関数、プロシージャ、サブルーチン、サブプログラムなどに対応することができる。プロセスが関数に対応する時に、その終了は、呼出し元関数またはメイン関数への関数のリターンに対応する。
【００７０】
当業者は、本明細書で開示される態様に関連して説明された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップが、電子ハードウェア、コンピュータソフトウェア、またはその両方の組合せとして実施され得ることを、さらに了解する。ハードウェアおよびソフトウェアのこの互換性を明確に示すために、様々な例示的なコンポーネント、ブロック、モジュール、回路、およびステップが、上では全般的にそれらの機能性に関して説明された。そのような機能性が、ハードウェアまたはソフトウェアのいずれとして実施されるのかは、特定の応用例およびシステム全体に課せられる設計制約に依存する。
【００７１】
本明細書で開示される例に関連して説明される方法またはアルゴリズムは、処理ユニット、プログラミング命令、または他の指示の形において、ハードウェアにおいて直接に、プロセッサによって実行可能なソフトウェアモジュール内で、またはこの両方の組合せにおいて実施され得、単一のデバイス内に含まれまたは複数のデバイスにまたがって分散され得る。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野において既知の任意の他の形態の記憶媒体に存在することができる。プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、記憶媒体はプロセッサに結合され得る。代替案では、記憶媒体は、プロセッサに一体化され得る。
【００７２】
本明細書で説明される本発明の様々な特徴は、本発明から逸脱することなく、異なるシステム内で実施され得る。前述の実施形態が、単に例であり、本発明を限定するものとして解釈されてはならないことに留意されたい。実施形態の説明は、例示的であることが意図され、特許請求の範囲を限定することは意図されていない。したがって、本教示は、他のタイプの装置にたやすく適用され得、多数の代替形態、修正形態、および変形形態が、当業者には明白である。
【符号の説明】
【００７３】
100  システム
102  trusted application(TA)
104  組込みシステムまたは組込みデバイス
106  スマートフォンまたは他のコンピューティングデバイス
108  サーバシステム
110  ソフトウェアベンダ
114  暗号化されたメッセージ
116  応答メッセージ
118  カーネル
120  記憶デバイス
122  暗号解読オラクル
124  署名オラクル
200  SoC処理回路
210  アプリケーション処理回路
212  マルチコアCPU
213  組込み共通法鍵プロビジョニングプロセッサ
215  暗号化/暗号解読デバイス
217  デジタル署名デバイス
218  ブートROMまたはブートRAM
220  周辺サブシステム
222  DSP
224  他のハードウェア(HW)コンポーネントおよびソフトウェア(SW)コンポーネント
226  ラジオ周波数(RF)コンポーネント
228  ブートROMまたはブートRAM
230  内部共有ハードウェア(HW)リソース
232  内部共有ストレージ
233  鍵記憶要素
240  外部共有HWリソース
242  外部共有ストレージ
244  永久的または半永久的データストレージ
250  ホストストレージコントローラ
300  共通法鍵プロビジョニングの例
400  タイミング図
402  組込み暗号デバイス
404  リモートサーバ
602  サーバペイロードライブラリ
604  ソフトウェアコンポーネント
606  クライアントペイロードライブラリ
608  ソフトウェアコンポーネント
610  ウェブサーバ/テスタ/ハードウェアセキュリティモジュール(HSM)
612  通信コンポーネント/プロトコル
614  デバイストランスポートスタック
616  プロトコル
618  Hello(証明書、チャレンジ)メッセージ
620  HelloResp(ResponseMsg)メッセージ
622  SetKey(ラップされた鍵、証明書)メッセージ
624  Resultメッセージ
702  サーバペイロードライブラリ
704  ソフトウェアコンポーネント
706  クライアントペイロードライブラリ
708  ソフトウェアコンポーネント
710  ウェブサーバ/テスタ/HSM
712  通信コンポーネント/プロトコル
714  デバイストランスポートスタック
716  プロトコル
718  authentication(チャレンジ)メッセージ
720  AuthResp(チップID、デバイス公開鍵、署名されたレスポンス)メッセージ
722  SendKey(ラップされた鍵、証明書)メッセージ
724  Resultメッセージ
800  システムまたは装置
802  バス
804  処理回路
805  記憶デバイス
806  非一時的機械可読媒体
808  バスインターフェース
810  トランシーバ
812  ユーザインターフェース
814  処理システム
902  共通法組込み鍵プロビジョニングプロセッサ
904  共通法鍵ジェネレータ
906  共通法デジタル署名プロセッサモジュール/回路
908  素数選択モジュール/回路
910  共通法生成モジュール/回路
912  共通法公開鍵/秘密鍵生成モジュール/回路
916  非相関検証モジュール/回路
918  公開鍵インバータモジュール/回路
920  鍵ストレージコントローラ
922  暗号化モジュール/回路
923  暗号解読モジュール/回路
924  署名モジュール/回路
926  検証モジュール/回路
928  署名/メッセージ送信/受信モジュール/回路
1002  共通法組込み鍵プロビジョニング命令のセット
1004  共通法鍵生成命令
1006  共通法デジタル署名プロセッサ命令
1008  素数選択命令
1010  共通法生成命令
1012  共通法公開鍵/秘密鍵生成命令
1016  非相関検証命令
1018  公開鍵インバータ命令
1020  鍵ストレージコントローラ命令
1022  暗号化命令
1023  暗号解読命令
1024  署名命令
1026  検証命令
1028  署名/メッセージ送信/受信命令
1100  方法または手順
1200  方法または手順
1300  方法または手順
1400  処理回路
1402  共通法鍵プロセッサ
1404  共通法公開鍵受信モジュール/回路
1406  共通法公開鍵ストレージモジュール/回路
1408  暗号化モジュール/回路
1410  暗号解読モジュール/回路
1412  共通法デジタル署名プロセッサモジュール/回路
1414  検証モジュール/回路
1416  署名モジュール/回路
1418  公開鍵/応答メッセージ受信モジュール/回路
1420  暗号化メッセージ送信モジュール/回路
1500  機械可読またはコンピュータ可読の媒体
1502  共通法鍵プロビジョニング命令のセット
1504  共通法公開鍵受信命令
1506  共通法公開鍵ストレージ命令
1508  暗号化命令
1510  暗号解読命令
1512  共通法デジタル署名プロセッサ命令
1514  検証命令
1516  署名命令
1518  公開鍵/応答メッセージ受信命令
1520  暗号化メッセージ送信命令
1600  方法または手順
1700  方法または手順
1800  方法または手順
【図１】
2017517979.tif 000003
【図２】
2017517979.tif 000004
【図３】
2017517979.tif 000005
【図４】
2017517979.tif 000006
【図５】
2017517979.tif 000007
【図６】
2017517979.tif 000008
【図７】
2017517979.tif 000009
【図８】
2017517979.tif 000010
【図９】
2017517979.tif 000011
【図１０】
2017517979.tif 000012
【図１１】
2017517979.tif 000013
【図１２】
2017517979.tif 000014
【図１３】
2017517979.tif 000015
【図１４】
2017517979.tif 000016
【図１５】
2017517979.tif 000017
【図１６】
2017517979.tif 000018
【図１７】
2017517979.tif 000019
【図１８】
2017517979.tif 000020
【手続補正書】
【提出日】平成28年12月13日(2016.12.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
メッセージを暗号解読し、署名するための、暗号デバイス内で動作可能な方法であって、
第1および第2の公開鍵/秘密鍵対を入手するステップであって、前記第1および第2の公開鍵/秘密鍵対は、共通法(N)を共有し、お互いと別個であり、前記共通法(N)は、p-1およびq-1が前記第1の公開鍵/秘密鍵対の公開鍵と前記第2の公開鍵/秘密鍵対の公開鍵の両方と互いに素であることを検証しながら入手された素数pおよびqの積として形成される、入手するステップと、
前記第1の公開鍵/秘密鍵対の秘密鍵を使用してメッセージを暗号解読するステップと、
前記第2の公開鍵/秘密鍵対の秘密鍵を使用して前記メッセージに署名することによって前記メッセージのデジタル署名を入手するステップと、
前記デジタル署名を前記暗号デバイスから送るステップと
を含む、方法。
【請求項２】
前記第1および第2の公開鍵/秘密鍵対の第1および第2の公開鍵(e1、e2)は、前記第1の公開鍵(e1)が整数の上で前記第2の公開鍵(e2)の倍数ではなく、かつ前記第2の公開鍵(e2)が整数の上で前記第1の公開鍵(e1)の倍数ではないように入手される、請求項1に記載の方法。
【請求項３】
前記共通法(N)は、N = pqであり、pおよびqは、前記法Nよりも小さい、請求項1に記載の方法。
【請求項４】
数学的に無相関である第1および第2の公開鍵/秘密鍵対を生成するために、第1の秘密鍵(d1)を入手するために(p-1)(q-1)を法とする前記第1の公開鍵(e1)の逆数を求め、第2の秘密鍵(d2)を入手するために(p-1)(q-1)を法とする前記第2の公開鍵(e2))の逆数を求めるステップをさらに含む、請求項2に記載の方法。
【請求項５】
前記暗号デバイスは、モバイルワイヤレスデバイスのコンポーネントであり、前記共通法を共有する前記第1の公開鍵/秘密鍵対を使用して暗号解読される前記メッセージは、前記モバイルワイヤレスデバイスの製造業者と協力関係にあるソフトウェアベンダのリモートサーバから受信される、請求項1に記載の方法。
【請求項６】
前記暗号デバイスは、モバイルワイヤレスデバイス内の組込み鍵プロビジョニングシステムのコンポーネントであり、前記組込み鍵プロビジョニングシステムは、ハードウェアセキュリティモジュールを使用してリモートパートナサーバのクライアントペイロードライブラリと通信するように装備されたサーバペイロードライブラリを含み、前記方法は、前記ハードウェアセキュリティモジュールから前記リモートパートナサーバに送られる1つまたは複数のメッセージを介して前記リモートパートナサーバにチャレンジを発行するステップをさらに含む、請求項1に記載の方法。
【請求項７】
第1および第2の公開鍵/秘密鍵対を入手することであって、前記第1および第2の公開鍵/秘密鍵対は、共通法(N)を共有し、お互いと別個であり、前記共通法(N)は、p-1およびq-1が前記第1の公開鍵/秘密鍵対の公開鍵と前記第2の公開鍵/秘密鍵対の公開鍵の両方と互いに素であることを検証しながら入手された素数pおよびqの積として形成される、ことと、
前記第1の公開鍵/秘密鍵対の秘密鍵を使用してメッセージを暗号解読することと、
前記第2の公開鍵/秘密鍵対の秘密鍵を使用して前記メッセージに署名することによって前記メッセージのデジタル署名を入手することと
を行なうように構成された処理回路と、
前記デジタル署名を暗号デバイスから送る
ように構成された送信器デバイスと
を含むデバイス。
【請求項８】
前記処理回路は、第1の公開鍵(e1)が第2の公開鍵(e2)の倍数ではなく、かつ前記第2の公開鍵(e2)が前記第1の公開鍵(e1)の倍数ではないように前記第1および第2の公開鍵/秘密鍵対の前記第1および第2の公開鍵(e1、e2)を入手するようにさらに構成される、請求項7に記載のデバイス。
【請求項９】
前記共通法(N)は、N = pqであり、pおよびqは、前記法(N)よりも小さい、請求項7に記載のデバイス。
【請求項１０】
前記処理回路は、数学的に無相関である第1および第2の公開鍵/秘密鍵対を生成するために、第1の秘密鍵(d1)を入手するために(p-1)(q-1)を法とする前記第1の公開鍵(e1)の逆数を求め、第2の秘密鍵(d2)を入手するために(p-1)(q-1)を法とする前記第2の公開鍵(e2)の逆数を求めるようにさらに構成される、請求項9に記載のデバイス。
【請求項１１】
受信器をさらに含み、前記第1の公開鍵/秘密鍵対を使用して暗号解読される前記メッセージは、前記受信器を使用して、モバイルワイヤレスデバイスの製造業者と協力関係にあるソフトウェアベンダのリモートサーバから受信される、請求項7に記載のデバイス。
【請求項１２】
メッセージを暗号化し、検証するための、システム内で動作可能な方法であって、
別々のデバイスから第1および第2の公開鍵/秘密鍵対の第1および第2の公開鍵を受信するステップであって、前記第1および第2の公開鍵/秘密鍵対は、共通法(N)を共有し、お互いと別個であり、前記共通法(N)は、p-1およびq-1が前記第1の公開鍵/秘密鍵対の公開鍵と前記第2の公開鍵/秘密鍵対の公開鍵の両方と互いに素である素数pおよびqの積である、受信するステップと、
前記共通法を共有する前記第1および第2の公開鍵/秘密鍵対の前記第1の公開鍵を使用してメッセージを暗号化するステップと、
前記暗号化されたメッセージを前記別々のデバイスに送るステップと、
前記別々のデバイスから前記メッセージに対する署名された応答を受信するステップであって、前記メッセージは、前記第2の公開鍵/秘密鍵対の秘密鍵を使用して入手された署名を用いて署名されている、受信するステップと、
前記共通法を共有する前記第1および第2の公開鍵/秘密鍵対の前記第2の公開鍵を使用して、前記署名された応答の前記署名を検証するステップと
を含む、方法。
【請求項１３】
前記第1および第2の公開鍵/秘密鍵対の前記第1および第2の公開鍵(e1、e2)は、前記第1の公開鍵(e1)が整数の上で前記第2の公開鍵(e2)の倍数ではなく、かつ前記第2の公開鍵(e2)が整数の上で前記第1の公開鍵(e1)の倍数ではないようになっている、請求項12に記載の方法。
【請求項１４】
パディングが、暗号化および署名において使用され、暗号化のためのパディングは、署名のためのパディングとは異なる、請求項12に記載の方法。
【請求項１５】
前記別々のデバイスは、モバイルワイヤレスデバイス内の組込み鍵プロビジョニングシステムのコンポーネントであり、メッセージを暗号化し、検証するための前記システムは、前記モバイルワイヤレスデバイスの製造業者と協力関係にあるソフトウェアベンダのサーバのコンポーネントであり、前記暗号化されたメッセージは、前記組込み鍵プロビジョニングシステム内の証明書に戻ってチェーンする、前記製造業者によって提供される別個の製造業者鍵を用いて署名される、請求項12に記載の方法。
【請求項１６】
別々のデバイスから第1および第2の公開鍵/秘密鍵対の第1および第2の公開鍵を受信するように構成された受信器デバイスであって、前記第1および第2の公開鍵/秘密鍵対は、共通法(N)を共有し、お互いと別個であり、前記共通法(N)は、p-1およびq-1が前記第1の公開鍵/秘密鍵対の公開鍵と前記第2の公開鍵/秘密鍵対の公開鍵の両方と互いに素である素数pおよびqの積である、受信器デバイスと、
送信器デバイスと、
処理回路であって、
前記共通法を共有する前記第1および第2の公開鍵/秘密鍵対の前記第1の公開鍵を使用してメッセージを暗号化することと、
前記送信器デバイスを使用して前記暗号化されたメッセージを前記別々のデバイスに送ることと、
前記受信器デバイスを使用して前記別々のデバイスから前記メッセージに対する署名された応答を受信することであって、前記メッセージは、前記第2の公開鍵/秘密鍵対の秘密鍵を使用して入手された署名を用いて署名されている、ことと、
前記共通法を共有する前記第1および第2の公開鍵/秘密鍵対の前記第2の公開鍵を使用して、前記署名された応答の前記署名を検証することと
を行うように構成された処理回路と
を含むデバイス。
【請求項１７】
前記第1および第2の公開鍵/秘密鍵対の前記第1および第2の公開鍵(e1, e2)は、前記第1の公開鍵(e1)が前記第2の公開鍵(e2)の倍数ではなく、かつ前記第2の公開鍵(e2)が前記第1の公開鍵(e1)の倍数ではないようになっている、請求項16に記載のデバイス。
【請求項１８】
パディングが、暗号化および署名において使用され、暗号化のためのパディングは、署名のためのパディングとは異なる、請求項16に記載のデバイス。
【請求項１９】
前記別々のデバイスは、モバイルワイヤレスデバイス内の組込み鍵プロビジョニングシステムのコンポーネントであり、前記処理回路は、前記モバイルワイヤレスデバイスの製造業者と協力関係にあるソフトウェアベンダのサーバのコンポーネントであり、前記暗号化されたメッセージは、前記組込み鍵プロビジョニングシステム内の証明書に戻ってチェーンする、前記製造業者によって提供される別個の製造業者鍵を用いて署名される、請求項16に記載のデバイス。
【請求項２０】
前記共通法を共有する前記公開鍵/秘密鍵対のうちの前記第1の公開鍵/秘密鍵対の前記公開鍵は、リモートサーバに送られ、暗号解読される前記メッセージは、前記公開鍵/秘密鍵対のうちの前記第1の公開鍵/秘密鍵対の前記公開鍵の下で暗号化され、前記リモートサーバから入手される、請求項1に記載の方法。
【請求項２１】
前記デジタル署名を送るステップは、前記リモートサーバから入手された前記メッセージに応答して前記第2の公開鍵/秘密鍵対を使用して応答メッセージに署名するステップと、前記第2の公開鍵/秘密鍵対の前記公開鍵に基づく検証のために前記応答メッセージを前記リモートサーバに送るステップとを含み、前記方法は、前記応答メッセージが検証された場合に前記リモートサーバから肯定応答を入手するステップをさらに含む、請求項20に記載の方法。
【請求項２２】
前記第1および第2の公開鍵/秘密鍵対の前記公開鍵は、複数のリモートパートナサーバの各々の対応するTrusted Execution Environmentの複数のTrusted Applicationの各々に送られ、複数のパートナサーバの各々の複数のTrusted Applicationの各々は、前記第1および第2の公開鍵/秘密鍵対の公開鍵を送られる、請求項20に記載の方法。
【請求項２３】
前記共通法(N)は、3つ以上の素数の積N = p1 * p2 * … * prとして形成され、piただしi-1,2,…,rは、すべてが素数であり、前記第1および第2の公開鍵/秘密鍵対の前記公開鍵(e1、e2)は、e1およびe2がさらに前記pi-1ただしi-1,2,…,rの各々と互いに素になるように入手される、請求項1に記載の方法。
【請求項２４】
前記第1および第2の公開鍵/秘密鍵対は、互いに素である、請求項1に記載の方法。
【請求項２５】
前記共通法(N)は、3つ以上の素数の積N = p1 * p2 * … * prであり、piただしi-1,2,…,rは、すべてが素数であり、前記第1および第2の公開鍵/秘密鍵対の前記公開鍵(e1、e2)は、e1およびe2がさらに前記pi-1ただしi-1,2,…,rの各々と互いに素になるように入手される、請求項7に記載のデバイス。
【請求項２６】
前記第1および第2の公開鍵(e1、e2)は、それぞれが他方によって割り切れない素数によって割り切れるように入手される、請求項7に記載のデバイス。
【請求項２７】
前記共通法(N)は、3つ以上の素数の積N = p1 * p2 * … * prであり、piただしi-1,2,…,rは、すべてが素数であり、前記第1および第2の公開鍵/秘密鍵対の前記公開鍵(e1、e2)は、e1およびe2がさらに前記pi-1ただしi-1,2,…,rの各々と互いに素になるようになっている、請求項12に記載の方法。
【請求項２８】
前記第1および第2の公開鍵(e1、e2)は、それぞれが他方によって割り切れない素数によって割り切れるようになっている、請求項12に記載の方法。
【請求項２９】
前記共通法(N)は、3つ以上の素数の積N = p1 * p2 * … * prであり、piただしi-1,2,…,rは、すべてが素数であり、前記第1および第2の公開鍵/秘密鍵対の前記公開鍵(e1、e2)は、e1およびe2がさらに前記pi-1ただしi-1,2,…,rの各々と互いに素になるようになっている、請求項16に記載のデバイス。
【請求項３０】
前記第1および第2の公開鍵(e1、e2)は、それぞれが他方によって割り切れない素数によって割り切れるようになっている、請求項16に記載のデバイス。
【国際調査報告】
2017517979.tif 000021
2017517979.tif 000022
2017517979.tif 000023