(57)【特許請求の範囲】
【請求項１】
身元検証による暗号動作を実行するためのコンピュータ実装方法であって、
クライアントから要求された暗号動作を実行するための要求を、暗号チップによって受信するステップであって、前記要求が、前記クライアントに関連付けられたクライアント識別情報を含み、前記暗号チップが、暗号動作を実行する処理リソースと、前記暗号動作に使用される鍵情報および暗号動作の要求を許可された複数のクライアントに関連付けられた暗号化された識別情報を格納するストレージリソースとを含むハードウェア構成要素である、ステップと、
前記暗号チップのファームウェアに格納されたソフトウェア命令に含まれる鍵を使用して、前記暗号化された識別情報を、前記暗号チップによって復号するステップと、
前記クライアント識別情報を前記復号された識別情報と比較することに基づいて、前記クライアント識別情報が、暗号動作の要求を許可された複数のクライアントのうちの1つに関連付けられると、前記暗号チップによって決定するステップと、
前記クライアント識別情報が暗号動作の要求を許可された複数のクライアントのうちの1つに関連付けられると決定することに応答して、前記ストレージリソースに格納された前記鍵情報に基づいて前記要求された暗号動作を、前記暗号チップによって実行するステップと
を含む、コンピュータ実装方法。
【請求項２】
前記要求された暗号動作が、暗号化動作、復号動作、電子署名検証動作、または電子署名生成動作である、請求項1に記載のコンピュータ実装方法。
【請求項３】
前記暗号チップが、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、またはマイクロプロセッサである、請求項1に記載のコンピュータ実装方法。
【請求項４】
前記要求がデータを含み、前記暗号チップが前記データについて前記要求された暗号動作を実行する、請求項1に記載のコンピュータ実装方法。
【請求項５】
前記暗号チップが、前記暗号チップが含まれるコンピュータシステムを動作するための前記処理リソースによって実行されるオペレーティングシステムを含む、請求項1に記載のコンピュータ実装方法。
【請求項６】
前記要求が第1の要求であり、前記要求された暗号動作が、第1の要求された暗号動作であり、前記クライアント識別情報が、第1のクライアント識別情報であり、前記方法が、
第2のクライアントから第2の要求された暗号動作を実行するための第2の要求を、前記暗号チップによって受信するステップであって、前記第2の要求が、前記第2のクライアントに関連付けられた第2のクライアント識別情報を含む、ステップと、
前記第2のクライアント識別情報を前記復号された識別情報と比較することに基づいて、前記第2のクライアント識別情報が暗号動作の要求を許可された複数のクライアントのうちの1つに関連付けられないと、前記暗号チップによって決定するステップとをさらに含み、
前記第2のクライアント識別情報が暗号動作の要求を許可された複数のクライアントのうちの1つに関連付けられないと決定することに応答して、前記暗号チップが前記第2の要求された暗号動作を実行しない、請求項1に記載のコンピュータ実装方法。
【請求項７】
暗号動作を実行するための1つまたは複数の要求が、前記要求が暗号動作の要求を許可された複数のクライアントのうちのいずれか1つに関連付けられたクライアント識別情報を含まないことに基づいて、悪意があるものであると、前記暗号チップによって決定するステップと、
暗号動作を実行するための1つまたは複数の要求が、悪意があるものであると決定することに応答して、前記ストレージリソースから前記暗号化された識別情報および前記鍵情報を、前記暗号チップによって消去するステップと
をさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項８】
前記暗号チップが、フィールドプログラマブルゲートアレイ(FPGA)であり、前記方法は、
再プログラミング情報を含む、前記暗号チップを再プログラムするための要求を、前記暗号チップによって受信するステップと、
前記要求を受信することに応答して、前記再プログラミング情報に前記ストレージリソースに格納された情報を、前記暗号チップによって置き換えるステップと、
をさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項９】
動作を実行するためのコンピュータシステムによって実行可能な1つまたは複数の命令を格納する非一時的なコンピュータ可読記憶媒体であって、前記動作が、
クライアントから要求された暗号動作を実行するための要求を、暗号チップによって受信するステップであって、前記要求が、前記クライアントに関連付けられたクライアント識別情報を含み、前記暗号チップが、暗号動作を実行する処理リソースと、前記暗号動作に使用される鍵情報および暗号動作の要求を許可された複数のクライアントに関連付けられた暗号化された識別情報を格納するストレージリソースとを含むハードウェア構成要素である、ステップと、
前記暗号チップのファームウェアに格納されたソフトウェア命令に含まれる鍵を使用して、前記暗号化された識別情報を、前記暗号チップによって復号するステップと、
前記クライアント識別情報を前記復号された識別情報と比較することに基づいて、前記クライアント識別情報が、暗号動作の要求を許可された複数のクライアントのうちの1つに関連付けられると、前記暗号チップによって決定するステップと、
前記クライアント識別情報が暗号動作の要求を許可された複数のクライアントのうちの1つに関連付けられると決定することに応答して、前記ストレージリソースに格納された前記鍵情報に基づいて前記要求された暗号動作を、前記暗号チップによって実行するステップと
を含む、非一時的なコンピュータ可読記憶媒体。
【請求項１０】
前記要求された暗号動作が、暗号化動作、復号動作、電子署名検証動作、または電子署名生成動作である、請求項9に記載の非一時的なコンピュータ可読記憶媒体。
【請求項１１】
前記暗号チップが、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、またはマイクロプロセッサである、請求項9に記載の非一時的なコンピュータ可読記憶媒体。
【請求項１２】
前記要求がデータを含み、前記暗号チップが前記データについて前記要求された暗号動作を実行する、請求項9に記載の非一時的なコンピュータ可読記憶媒体。
【請求項１３】
前記暗号チップが、前記暗号チップが含まれるコンピュータシステムを動作するための前記処理リソースによって実行されるオペレーティングシステムを含む、請求項9に記載の非一時的なコンピュータ可読記憶媒体。
【請求項１４】
前記要求が第1の要求であり、前記要求された暗号動作が、第1の要求された暗号動作であり、前記クライアント識別情報が、第1のクライアント識別情報であり、前記動作が、
第2のクライアントから第2の要求された暗号動作を実行するための第2の要求を受信するステップであって、前記第2の要求が、前記第2のクライアントに関連付けられた第2のクライアント識別情報を含む、ステップと、
前記第2のクライアント識別情報を前記復号された識別情報と比較することに基づいて、前記第2のクライアント識別情報が暗号動作の要求を許可された複数のクライアントのうちの1つに関連付けられないと決定するステップとをさらに含み、
前記第2のクライアント識別情報が暗号動作の要求を許可された複数のクライアントのうちの1つに関連付けられないと決定することに応答して、前記第2の要求された暗号動作が実行されない、請求項9に記載の非一時的なコンピュータ可読記憶媒体。
【請求項１５】
前記動作は、
暗号動作を実行するための1つまたは複数の要求が、前記要求が暗号動作の要求を許可された複数のクライアントのうちのいずれか1つに関連付けられたクライアント識別情報を含まないことに基づいて、悪意があるものであると決定するステップと、
暗号動作を実行するための1つまたは複数の要求が、悪意があるものであると決定することに応答して、前記ストレージリソースから前記暗号化された識別情報および前記鍵情報を消去するステップと
をさらに含む、請求項9に記載の非一時的なコンピュータ可読記憶媒体。
【請求項１６】
前記記憶媒体が、フィールドプログラマブルゲートアレイ(FPGA)上にプログラムされた暗号チップを備え、前記動作は、
再プログラミング情報を含む、前記暗号チップを再プログラムするための要求を、前記暗号チップによって受信するステップと、
前記要求を受信することに応答して、前記再プログラミング情報に前記ストレージリソースに格納された情報を、前記暗号チップによって置き換えるステップと、
をさらに含む、請求項9に記載の非一時的なコンピュータ可読記憶媒体。
【請求項１７】
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータに相互動作可能に結合されるとともに、前記1つまたは複数のコンピュータによって実行されると、1つまたは複数の動作を実行する1つまたは複数の命令を格納する有形の非一時的な機械可読媒体を有する、1つまたは複数のコンピュータメモリデバイスとを備えるコンピュータ実装システムであって、前記1つまたは複数の動作が、
クライアントから要求された暗号動作を実行するための要求を、暗号チップによって受信するステップであって、前記要求が、前記クライアントに関連付けられたクライアント識別情報を含み、前記暗号チップが、暗号動作を実行する処理リソースと、前記暗号動作に使用される鍵情報および暗号動作の要求を許可された複数のクライアントに関連付けられた暗号化された識別情報を格納するストレージリソースとを含むハードウェア構成要素である、ステップと、
前記暗号チップのファームウェアに格納されたソフトウェア命令に含まれる鍵を使用して、前記暗号化された識別情報を、前記暗号チップによって復号するステップと、
前記クライアント識別情報を前記復号された識別情報と比較することに基づいて、前記クライアント識別情報が、暗号動作の要求を許可された複数のクライアントのうちの1つに関連付けられると、前記暗号チップによって決定するステップと、
前記クライアント識別情報が暗号動作の要求を許可された複数のクライアントのうちの1つに関連付けられると決定することに応答して、前記ストレージリソースに格納された前記鍵情報に基づいて前記要求された暗号動作を、前記暗号チップによって実行するステップと
を含む、システム。
【請求項１８】
前記要求された暗号動作が、暗号化動作、復号動作、電子署名検証動作、または電子署名生成動作である、請求項17に記載のシステム。
【請求項１９】
前記暗号チップが、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、またはマイクロプロセッサである、請求項17に記載のシステム。
【請求項２０】
前記要求がデータを含み、前記暗号チップが前記データについて前記要求された暗号動作を実行する、請求項17に記載のシステム。
【請求項２１】
前記暗号チップが、前記暗号チップが含まれるコンピュータシステムを動作するための前記処理リソースによって実行されるオペレーティングシステムを含む、請求項17に記載のシステム。
【請求項２２】
前記要求が第1の要求であり、前記要求された暗号動作が、第1の要求された暗号動作であり、前記クライアント識別情報が、第1のクライアント識別情報であり、前記動作が、
第2のクライアントから第2の要求された暗号動作を実行するための第2の要求を受信するステップであって、前記第2の要求が、前記第2のクライアントに関連付けられた第2のクライアント識別情報を含む、ステップと、
前記第2のクライアント識別情報を前記復号された識別情報と比較することに基づいて、前記第2のクライアント識別情報が暗号動作の要求を許可された複数のクライアントのうちの1つに関連付けられないと決定するステップとをさらに含み、
前記第2のクライアント識別情報が暗号動作の要求を許可された複数のクライアントのうちの1つに関連付けられないと決定することに応答して、前記第2の要求された暗号動作が実行されない、請求項17に記載のシステム。
【請求項２３】
前記動作は、
暗号動作を実行するための1つまたは複数の要求が、前記要求が暗号動作の要求を許可された複数のクライアントのうちのいずれか1つに関連付けられたクライアント識別情報を含まないことに基づいて、悪意があるものであると決定するステップと、
暗号動作を実行するための1つまたは複数の要求が、悪意があるものであると決定することに応答して、前記ストレージリソースから前記暗号化された識別情報および前記鍵情報を消去するステップと
をさらに含む、請求項17に記載のシステム。
【請求項２４】
フィールドプログラマブルゲートアレイ(FPGA)上にプログラムされた暗号チップを備え、前記動作は、
再プログラミング情報を含む、前記暗号チップを再プログラムするための要求を、前記暗号チップによって受信するステップと、
前記要求を受信することに応答して、前記再プログラミング情報に前記ストレージリソースに格納された情報を、前記暗号チップによって置き換えるステップと、
をさらに含む、請求項17に記載のシステム。
【請求項２５】
前記クライアント識別情報が前記クライアントに関連付けられた生体情報を含む、請求項1に記載のコンピュータ実装方法。
【請求項２６】
前記クライアント識別情報が前記暗号チップに含まれる生体認証装置から受信される、請求項25に記載のコンピュータ実装方法。
【請求項２７】
前記ソフトウェア命令に含まれる前記鍵が暗号化され、前記暗号化された識別情報を、前記暗号チップによって復号するステップが、
前記ソフトウェア命令に含まれる前記暗号化された鍵を復号するステップを含む、請求項1に記載のコンピュータ実装方法。
【請求項２８】
前記ストレージリソースが前記要求された暗号動作を実行するための前記処理リソースによって実行可能なプログラムロジックを格納し、
前記プログラムロジックが暗号化せずに格納される、請求項1に記載のコンピュータ実装方法。
【請求項２９】
前記暗号チップが物理的インターフェースを含み、前記要求された暗号動作を実行するための前記要求を受信するステップが、
前記クライアントからインターフェースを介して所望の暗号動作の選択を受信するステップを含む、請求項1に記載のコンピュータ実装方法。
【請求項３０】
前記クライアントがユーザであり、前記所望の暗号動作の前記選択を受信するステップが、前記物理的インターフェースを介して前記ユーザによる入力を受信するステップを含む、請求項29に記載のコンピュータ実装方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、身元検証による暗号動作の実行に関する。
【背景技術】
【０００２】
いくつかのコンピューティングアプリケーションでは、暗号を使用して、関連する暗号鍵を処理することなくデータの元の値を取得するのに解読することが不当に難しい形式にデータを変換する。暗号鍵を紛失すると、その鍵を用いて暗号化されたすべてのデータが回復不能になることがある。さらに、暗号鍵が無許可の関係者によって学習された場合、その鍵を用いて暗号化されたすべてのデータは、無許可の関係者が読み取ることができるため、もはや安全ではなくなる。鍵の所有者が被るであろう関連する経済的損失のリスクを減らすために、暗号鍵を紛失または侵害から保護することが望ましい。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本明細書は、身元検証による暗号動作を実行するための技術について説明する。これらの技術は、一般に、例えば、格納された識別情報に対して暗号動作を要求しているクライアントの識別情報を検証し、検証が成功した場合に要求された暗号動作を実行することを含む。検証が失敗した場合、要求された暗号動作は実行されない、および/または拒否される。
【０００４】
本明細書はまた、1つまたは複数のプロセッサに結合された1つまたは複数の非一時的コンピュータ可読記憶媒体を提供し、1つまたは複数の非一時的コンピュータ可読記憶媒体は、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに本明細書で提供される方法の実施形態に従う動作を実行させる命令を格納する。
【０００５】
本明細書は、本明細書で提供される方法を実施するためのシステムをさらに提供する。システムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行されると1つまたは複数のプロセッサに本明細書で提供される方法の実施形態に従う動作を実行させる命令を記憶する1つまたは複数のプロセッサに結合されたコンピュータ可読記憶媒体とを含む。
【０００６】
本明細書による方法は、本明細書で説明される態様および特徴の任意の組み合わせを含み得ることが理解される。すなわち、本明細書による方法は、本明細書で具体的に説明した態様および特徴の組み合わせに限定されることなく、提供される態様および特徴の任意の組み合わせをも含む。
【０００７】
本明細書の1つまたは複数の実施形態の詳細は、添付の図面および以降の説明に記載されている。本明細書の他の特徴および利点は、発明の詳細な説明、図面、ならびに特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【０００８】
【図１】本明細書の実施形態を実行するために使用され得る環境の例を示す図である。
【図２】本明細書の実施形態を実行するために使用され得るシステムの例を示す図である。
【図３】図２に示されるシステムの構成要素間の相互作用を示す図である。
【図４】本明細書の実施形態を実行するために使用され得る環境の例を示す図である。
【図５】本明細書の実施形態に従って実行され得るプロセスの例を示す図である。
【図６】本明細書の実施形態による装置のモジュールの例を示す図である。
【発明を実施するための形態】
【０００９】
さまざまな図面の同様の参照番号および名称は、同様の要素を示す。
【００１０】
本明細書では、暗号チップを使用して暗号動作を実行するための技術を説明する。暗号を使用して、いくつかのコンピューティングアプリケーションでは、関連する暗号化鍵を処理することなくデータの元の値を取得するのに解読することが不当に難しい形式にデータを変換する。例えば、2つのコンピューティングデバイスが、ネットワーク上のすべての関係者がデータにアクセスできるパブリックネットワークを介して機密データを通信したい場合、送信コンピューティングデバイスは送信前にデータを暗号文に暗号化し、受信コンピューティングデバイスはデータの元の値を復元するために暗号文を復号できる。暗号の例には、限定ではないが、対称暗号化および非対称暗号化が含まれる。
【００１１】
対称暗号化とは、暗号化(平文から暗号文を生成)と復号(暗号文から平文を生成)の両方に単一の鍵を使用する暗号化プロセスを指す。対称暗号化では、同じ鍵が通信するすべての関係者に配布されるため、各関係者はトランザクションデータを暗号化および復号できる。
【００１２】
非対称暗号化では、それぞれが秘密鍵と公開鍵を含む鍵ペアを使用し、秘密鍵は特定の関係者によって秘密にされ、公開鍵は特定の関係者によって他の関係者と自由に共有され得る。ある関係者が特定の関係者の公開鍵を使用してデータを暗号化でき、次いで暗号化されたデータは特定の関係者の秘密鍵を使用して復号され得る。ある関係者の公開鍵を用いて暗号化されたデータは、その関係者の秘密鍵を使用してのみ復号され得る。さらに、秘密鍵は公開鍵から導出できないため、公開鍵を自由に共有できる。
【００１３】
非対称暗号化は、デジタル署名を提供するために使用され、これにより、受信側は、受信データが期待される送信側から発信され、改ざんされていないことを確認できる。また、デジタル署名を使用して、データが改ざんされていない(つまり、データの値が変更されていない)ことを保証することができる。例えば、第1の関係者は、MD5、SHA-256、または別の関数などのハッシュ関数を使用してデータのハッシュをまず計算することにより、データのセットにデジタル署名することができる。次いで、第1の関係者は、自身の秘密鍵を使用してハッシュを暗号化し、デジタル署名を生成する。次いで、第2の関係者は、第1の関係者の公開鍵を使用してデジタル署名を復号し、ハッシュを回復できる。次いで、第2の関係者は、同じハッシュ関数を使用してデジタル署名に関連付けられたデータのハッシュを計算する。デジタル署名が異なる鍵を使用して作成されていた場合、対応する公開鍵を使用して復号されたときに、データに対する正しいハッシュを生成しないので、このハッシュがデジタル署名から回復されたハッシュと一致する場合、第2の関係者は、署名した第1の関係者が自身の秘密鍵を使用してデジタル署名を生成したことがわかる。さらに、改ざん者は、秘密鍵を知ることなしにデータの新しい値に一致させるように暗号化されたハッシュを変更することができないため、第2の関係者は、データが第1の関係者によって署名されたので、データが改ざんされていないとわかる。
【００１４】
本明細書では、動作の実行に使用される鍵を侵害または紛失から保護するように構成された暗号チップを使用して、暗号動作を実行する技術について説明する。いくつかの実施形態において、暗号チップは、鍵情報(例えば、1つまたは複数の暗号化鍵)および識別情報を格納する統合されたストレージリソースを含む。暗号チップは、暗号動作(データの暗号化、データの復号、デジタル署名の生成/検証など)を実行するための要求を受信する。要求は、動作を要求するユーザの識別情報を含む。要求ごとに、暗号チップは、要求からの識別情報を格納された識別情報と比較することに基づいて、要求元のユーザの身元を検証する。要求元のユーザの身元が検証された場合(例えば、受信した識別情報が、格納された識別情報と一致する場合)、暗号チップは要求された暗号動作を実行する。要求元のユーザの身元が検証されない場合(例えば、受信した識別情報が格納された識別情報と一致しない場合)、暗号チップは要求された暗号動作を実行しない。本明細書では、ユーザの身元を検証する例が提供されているが、本明細書で説明する各例では、クライアントも検証され得る。クライアントは、ユーザ、コンピューティングデバイス、組織、またはその他の種類のエンティティであってよい。
【００１５】
図1は、本明細書の実施形態を実行するために使用され得る環境100の例を示す図である。図示されるように、環境100は暗号チップ110を含む。暗号チップ110は、プログラムロジック122、識別情報124、および鍵情報126を格納するストレージリソース120を含む。暗号チップ110はまた、処理リソース130を含む。
【００１６】
暗号チップ110は、暗号動作を実行するように構成されたコンピューティング構成要素(例えば、集積回路)である。場合によっては、暗号チップ110は、図示された構成要素を含む集積回路であってよい。暗号チップ110は、図示された構成要素が取り付けられた半導体材料(シリコンなど)から成る基板を含むことができる。場合によっては、図示された構成要素を導電性材料の領域(例えば、ワイヤまたはリード)によって接続され、構成要素間に電気接続を形成することができる。暗号チップ110はまた、接続(例えばピン)を含むことができ、他のコンピューティングシステムに設置されて、他のコンピューティングシステムとインターフェースすることを可能にする。
【００１７】
暗号チップ110は、ストレージリソース120を含む。場合によっては、ストレージリソース120は、データの永続的記憶を可能にする電子ストレージデバイスである(すなわち、デバイスに電力が供給されないとき格納データは失われない)。いくつかの実施形態では、ストレージリソース120は、フラッシュメモリデバイス、プログラマブルリードオンリーメモリ(PROM)デバイス、電気的に消去可能なプログラマブルリードオンリーメモリ(EEPROM)デバイス、またはデータを永続的に格納するとともにデータを消去して再プログラム可能な別のタイプのストレージデバイスを含むことができる。
【００１８】
暗号チップ110は、処理リソース130も含む。場合によっては、処理リソース130は、例えば、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、シングルチップマイクロコンピュータ、マイクロプロセッサ、またはその他のタイプのプロセッサなどのソフトウェア命令を実行可能なプロセッサである。
【００１９】
図示されるように、プログラムロジック122は、ストレージリソース120に格納される。場合によっては、プログラムロジック122は、処理リソース130によって実行されるソフトウェア命令を含む。プログラムロジック122は、データの読出し要求の解析、要求内の識別情報の検証、身元検証が成功した場合の要求された暗号動作の実行など、暗号動作の実行を要求する受信した要求に関連する動作を実行するための、実行時に動作可能な命令を含むことができる。場合によっては、命令自体に機密情報が含まれていないため、プログラムロジック122は暗号化せずに格納され得る。
【００２０】
ストレージリソース120はまた、暗号チップ110を使用して暗号動作を実行することを許可されたユーザの識別を表す識別情報124を含む。場合によって、暗号チップ110に送信される暗号動作を実行するための要求は、ユーザ識別情報を含む。暗号チップ110は、識別情報124に基づいて暗号動作を要求するユーザの身元を検証する。暗号チップ110がユーザの身元を検証できる場合、要求された暗号動作が実行される。そうでない場合、要求された暗号動作は実行されない。このプロセスは、図2に関してより詳細に説明される。
【００２１】
ストレージリソース120はまた、暗号動作を実行するために暗号チップ110によって使用される1つまたは複数の暗号鍵を含む鍵情報126を含む。場合によっては、暗号鍵は、対称鍵、非対称鍵ペアの秘密鍵、または秘密にされるべき他のタイプの鍵とすることができる。いくつかの実施形態において、鍵情報126は、情報を復号するための適切な鍵なしでは、ストレージリソース120から鍵情報126を読み取ることができないように、暗号化された形式で格納され得る。このプロセスは、図2に関してより詳細に説明される。
【００２２】
図2は、本明細書の実施形態を実行するために使用され得るシステム200の例を示す図である。システム200は、図1に関連して上述したように、ストレージリソース120に格納された識別情報124および鍵情報126を含む暗号チップ110の一部を示す。システム200はまた、認証モジュール250および暗号モジュール260を含む。
【００２３】
図示されるように、システム200は、暗号動作を実行するための受信された要求に含まれる識別情報を検証するように動作可能な認証モジュール250を含む。場合によっては、認証モジュール250は、処理リソース130によって実行されるプログラムロジック122で定義されたソフトウェアモジュールとすることができる。いくつかの実施形態では、認証モジュール250は、追加のプロセッサまたは処理リソース130の処理コアなど、暗号チップ110に含まれる独立したハードウェア構成要素とすることができる。認証モジュール250は、認証プロセスの実行を担う処理リソース130の論理的または物理的区分でもあり得る。
【００２４】
図示されるように、システム200は、要求された暗号動作を実行するように動作可能な暗号モジュール260を含む。場合によっては、暗号モジュール260は、処理リソース130によって実行されるプログラムロジック122で定義されたソフトウェアモジュールとすることができる。いくつかの実施形態では、暗号モジュール260は、追加のプロセッサまたは処理リソース130の処理コアなど、暗号チップ110に含まれるような独立したハードウェア構成要素とすることができる。暗号モジュール260は、認証プロセスの実行を担う処理リソース130の論理的または物理的区分でもあり得る。
【００２５】
システム200はまた、インターフェース210を含む。インターフェース210は、外部構成要素またはユーザが、認証モジュール250および暗号モジュール260などの暗号チップ110内の構成要素とデータを送受信するためのメカニズムを提供する。いくつかの実施形態では、インターフェース210は、暗号チップ110とマザーボードなどのより大きな集積回路との間の物理的なピン接続など、暗号チップ110と暗号チップが設置されたシステムとの間の物理的インターフェースである。場合によっては、インターフェース210は、暗号チップ110の処理リソース130によって実行される、または暗号チップが設置されたより大きなシステムの別のプロセッサによって実行されるプログラムにアプリケーションプログラミングインターフェース(API)を提供するソフトウェア層である。
【００２６】
動作中、220において、認証モジュール250は、インターフェース210を介して外部構成要素またはプログラムから暗号動作を実行するための要求を受信する。各要求は、要求に関連付けられたユーザに関連付けられた識別情報を含む。場合によっては、受信した識別情報は、暗号動作を要求するユーザのデジタル署名を含む。
【００２７】
場合によっては、受信した識別情報は、ユーザに関連付けられた生体認証情報またはその他の識別情報を含むことができる。例えば、暗号チップ110は、ユーザから生体情報を収集するために指紋スキャナまたは他の生体認証装置を含むことができる。暗号動作を要求するために、ユーザは指紋スキャナにタッチし、指紋スキャナは、ユーザの指紋のデジタル表現を生成する。場合によっては、ユーザは、キーパッドまたは暗号チップ110の他のインターフェースなどを介して、所望の暗号動作を選択できる。所望の暗号動作の要求は、処理リソース130によって生成され、インターフェース210を経由して認証モジュール250に渡され得る。
【００２８】
認証モジュール250は、格納された識別情報124に基づいて、受信した識別情報を検証する。識別情報がユーザのデジタル署名を含む場合、認証モジュール250は、ユーザに関連付けられた公開鍵でデータを復号して、復号されたデータを期待値と比較すること（例えば、上述のハッシュ確認）によって、署名を検証することができる。値が一致する場合、ユーザの身元が検証される。値が一致しない場合、ユーザの身元が検証されない。識別情報が生体認証情報である場合、認証モジュール250は、要求に含まれる生体認証データのデジタル表現を識別情報124に含まれる格納された生体認証データと比較する。受信した生体認証データが格納された生体認証データと一致する場合、ユーザの身元が検証される。受信した生体認証データが格納された生体認証データと一致しない場合、ユーザの身元は検証されない。
【００２９】
場合によっては、認証モジュール250がユーザを検証する場合、認証モジュールは、暗号モジュール260に識別情報が検証されたことを示す(230)。この指示の受信に応答して、暗号モジュール260は、要求された暗号動作を実行し、インターフェース210を介して暗号結果を要求元に返す(240)。場合によっては、認証モジュール250がユーザを検証できない場合、暗号モジュール260は、要求された暗号動作を実行しない。いくつかの例では、認証モジュール250、暗号モジュール260、または別の構成要素によって、要求元に拒否が送信される。
【００３０】
暗号モジュール150によって実行される暗号動作には、限定されないが、データの暗号化、データの復号、デジタル署名の生成、デジタル署名の検証、または他の暗号動作が含まれる。例えば、暗号動作を実行する要求は、復号動作が要求されたことを示すことができ、および要求元ユーザに関連付けられた暗号化鍵(例えば、秘密鍵)を使用して復号されるべき暗号文を含むことができ得る。そのような場合、暗号モジュール150は、格納された鍵情報126を使用して暗号文を復号し、240において暗号結果として暗号文の復号されたバージョンを返すことができる。
【００３１】
図3は、図2に示すシステムの構成要素間の相互作用300を示す図である。305において、インターフェース210は、図2に関して前述したように、ユーザ識別情報を含む要求を認証モジュール140に送信する。310において、認証モジュール140は、ストレージリソース120から暗号化された識別情報(例えば、デジタル署名、生体認証データなどを検証するための暗号化鍵)を読み出す。315において、認証モジュール140は、ストレージリソース120から読み出された暗号化された識別情報を復号する。場合によっては、読み出された識別情報を復号するために使用される鍵はまた、ストレージリソース120から読み出される。鍵は、認証モジュール140または処理リソース130のファームウェアに格納されたソフトウェア命令に「ハードコード化」されることによってなど、認証モジュール140自体に含められ得る。
【００３２】
320において、認証モジュール140は、図2に関して前述したように、復号された識別情報に基づいてユーザ識別情報を検証する。325において、認証モジュール140の実行は、検証の結果に基づいて分岐する。ユーザの身元が検証されなかった場合、認証モジュール140は、インターフェース210を介して要求の拒否を要求元に返す(330)。ユーザの身元が検証された場合、認証モジュール140は、ユーザの身元が検証されたという指示を暗号モジュール150に送信する(335)。
【００３３】
340において、指示の受信に応答して、暗号モジュール150は、ストレージリソース120からユーザに関連付けられた暗号化された暗号鍵を読み出す。345において、暗号モジュール150は暗号鍵を復号する。場合によっては、検索された識別情報を復号するために使用される鍵はまた、ストレージリソース120から読み出される。鍵は、暗号モジュール150または処理リソース130のファームウェアに格納されたソフトウェア命令に「ハードコード化」されることによってなど、暗号モジュール150自体に含められ得る。
【００３４】
また345において、暗号モジュール150は、要求された暗号動作を実行する。350において、暗号モジュールは、インターフェース210を介して暗号動作の結果を要求元に返す。
【００３５】
図4は、本明細書の実施形態を実行するために使用され得る環境400の例を示す図である。図示されるように、環境400は、暗号チップ110を含む識別情報カード410を含む。識別情報カード410は、コンピュータ420、スマートフォン430、タブレットデバイス440、およびモノのインターネット(IOT)デバイス450に通信可能に結合される。
【００３６】
動作中、識別情報カード410は、様々なデバイス420、430、440、および450と通信する。この通信は、例えば、近距離通信(NFC)プロトコル、BLUETOOTH(登録商標)、WIFI、セルラプロトコル、赤外線通信プロトコル、または別の種類のプロトコルなどの、有線または無線通信プロトコルを介して行うことができる。場合によっては、通信は、例えば、トランスポート層セキュリティ(TLS)などの安全な通信プロトコルを使用して、デバイス420、430、440、450に送信されるデータにデジタル署名を提供して、デバイス420、430、440、450の1つによって提供されるデジタル署名を検証して、あるいは別のメカニズムを使用してなど、データの暗号化および/または復号を含む。上述のように、これらの暗号動作は、暗号チップ110が要求元のユーザの身元を検証できる場合、識別情報カード410に含まれる暗号チップ110によって実行される。
【００３７】
場合によっては、識別情報カード410は、スマートカードなど、ユーザが携帯する携帯機器とすることができる。場合によっては、上記のように、識別情報カードが生体認証センサを含むことができ、ユーザは生体認証センサと対話することによって識別情報を提供できる。場合によっては、識別情報カード410を互換性のあるデバイスに挿入し、それの動作を実行するためにデバイスから電力を供給することができる。そのような場合、データは、デバイスと識別情報カード410との間の導電性接触を介して、識別情報カード410とデバイスとの間で転送され得る。
【００３８】
図5は、身元検証による暗号動作を実行するプロセス500の一例のフローチャートである。便宜上、プロセス500は、1つまたは複数の場所に配置され、本明細書に従って適切にプログラムされた1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。例えば、適切にプログラムされた暗号チップ、例えば、図1の環境100の暗号チップ110は、プロセス500を実行できる。
【００３９】
510において、クライアントから要求された暗号動作を実行するための要求が暗号チップによって受信され、要求はクライアントに関連付けられたクライアント識別情報を含み、暗号チップが、暗号動作を実行する処理リソースと、暗号動作に使用される鍵情報および暗号動作の要求を許可された複数のクライアントに関連付けられた識別情報を格納するストレージリソースとを含むハードウェア構成要素である。場合によっては、要求された暗号動作は、暗号化動作、復号動作、デジタル署名検証動作、またはデジタル署名生成動作である。場合によっては、暗号チップは、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、またはマイクロプロセッサである。
【００４０】
520において、クライアント識別情報が、ストレージリソースに格納された識別情報をクライアント識別情報と比較することに基づいて、暗号動作の要求を許可された複数のクライアントの1つに関連付けられると決定される。
【００４１】
530において、クライアント識別情報が暗号動作の要求を許可された複数のクライアントの1つに関連付けられると決定したことに応答して、要求された暗号動作がストレージリソースに格納された鍵情報に基づいて実行される。場合によっては、要求はデータを含み、暗号チップはデータに対して要求された暗号動作を実行する。いくつかの例では、暗号チップは、暗号チップが含まれるコンピュータシステムを動作するために処理リソースによって実行されるオペレーティングシステムを含む。
【００４２】
場合によっては、要求が、第1の要求であり、要求された暗号動作が、第1の要求された暗号動作であり、クライアント識別情報が、第1のクライアント識別情報であり、プロセス500が、第2のクライアントから第2の要求された暗号動作を実行するための第2の要求を受信するステップであって、該要求が、第2のクライアントに関連付けられた第2のクライアント識別情報を含む、ステップと、第2のクライアント識別情報をストレージリソースに格納された識別情報と比較することに基づいて、第2のクライアント識別情報が暗号動作の要求を許可された複数のクライアントのうちの1つに関連付けられないと決定するステップとをさらに含み、第2のクライアント識別情報が暗号動作の要求を許可された複数のクライアントのうちの1つに関連付けられないと決定することに応答して、暗号チップが要求された暗号動作を実行しない。
【００４３】
いくつかの例では、プロセス500は、暗号動作を実行するための1つまたは複数の要求が、要求が暗号動作の要求を許可された複数のクライアントのうちの1つに関連付けられたクライアント識別情報を含まないことに基づいて、悪意があるものであると決定するステップと、暗号動作を実行するための1つまたは複数の要求が、悪意があるものであると決定することに応答して、ストレージリソースから識別情報および鍵情報を消去するステップとを含む。場合によっては、暗号チップは、限定ではなく、検証できない要求が受信される頻度、要求に含まれるクライアント識別情報に関連付けられたパターン(例えば、攻撃者が有効なIDを見つけようとして順番に異なるIDの値を試していることを示す)、特定の時間内に特定のクライアントからの未確認の要求の数、あるいはその他の要因を含む複数の要因に基づいて、要求は悪意があるものであると決定できる。ストレージリソースから鍵情報と識別情報を消去することは、攻撃者がいかなる手段によってもこの情報にアクセスできないことを確実にするために行われる。
【００４４】
いくつかの実施形態では、暗号チップは、フィールドプログラマブルゲートアレイ(FPGA)であり、プロセス500は、再プログラミング情報を含む暗号チップを再プログラムする要求を受信すること、および要求の受信に応じて、ストレージリソースに格納された情報を再プログラミング情報に置き換える。
【００４５】
図6は、本明細書の実施形態による装置600のモジュールの一例を示す図である。
【００４６】
装置600は、身元検証による暗号動作を実行するための暗号チップの実施形態の一例であり得る。装置600は上述の実施形態に対応することができ、装置600は、クライアントから要求された暗号動作を実行するための要求を、暗号チップによって受信するための受信モジュール610であって、要求が、クライアントに関連付けられたクライアント識別情報を含み、暗号チップが、暗号動作を実行する処理リソースと、暗号動作に使用される鍵情報および暗号動作の要求を許可された複数のクライアントに関連付けられた識別情報を格納するストレージリソースとを含むハードウェア構成要素である、受信モジュールと、クライアント識別情報をストレージリソースに格納された識別情報と比較することに基づいて、クライアント識別情報が、暗号動作の要求を許可された複数のクライアントのうちの1つに関連付けられると、暗号チップによって決定するための決定モジュール620と、クライアント識別情報が暗号動作の要求を許可された複数のクライアントのうちの1つに関連付けられると決定することに応答して、ストレージリソースに格納された鍵情報に基づいて要求された暗号動作を、暗号チップによって実行するための実行モジュール630とを備える。
【００４７】
先の実施形態に示されたシステム、装置、モジュール、またはユニットは、コンピュータチップまたはエンティティを使用することにより実装され得るか、または特定の機能を有する製品を使用することにより実装され得る。典型的な実施形態のデバイスはコンピュータであり、コンピュータは、パーソナルコンピュータ、ラップトップコンピュータ、携帯電話、カメラ付き携帯電話、スマートフォン、携帯情報端末、メディアプレーヤ、ナビゲーションデバイス、電子メールの送受信デバイス、ゲームコンソール、タブレットコンピュータ、ウェアラブルデバイス、またはこれらのデバイスの任意の組み合わせであってよい。
【００４８】
装置内の各モジュールの機能および役割の実施プロセスについては、先の方法の対応するステップの実施プロセスを参照することができる。簡単にするため、ここでは詳細を省略する。
【００４９】
装置の実施形態は基本的に方法の実施形態に対応するため、関連する部分については、方法の実施形態の関連する説明を参照することができる。上述の装置の実施形態は一例にすぎない。個別の部品として記述されたモジュールは、物理的に分離されてもされてなくてもよく、モジュールとして表示される部品は、物理モジュールであってもなくてもよく、1つの位置に配置されても、あるいはいくつかのネットワークモジュールに分散されてもよい。モジュールの一部またはすべては、本明細書の解決策の目的を達成するために実際の要求に基づいて選択され得る。当業者は、創造的な努力なしに本願の実施形態を理解および実施することができる。
【００５０】
再び図6を参照すると、身元検証の対象となる暗号動作を実行するための暗号チップの内部機能モジュールおよび構造を示すものと解釈できる。本質的に実行の主体は電子デバイスであってよく、電子デバイスには次のものが含まれる：1つまたは複数のプロセッサ、および1つまたは複数のプロセッサの実行可能な命令を格納するように構成されたメモリである。
【００５１】
本明細書で説明される技術は、1つまたは複数の技術的効果を生み出す。いくつかの実施形態では、技術は、格納した暗号鍵を使用して要求された暗号動作を実行する前にクライアントの身元を検証することによって(例えば、デジタル署名を検証することによって)、クライアントのセキュリティを高める。これにより、攻撃者(その身元が確認されない)が、クライアントの暗号鍵を使用して個人的なデータを復号したり、クライアントのデジタル署名を偽造してクライアントになりすましたり、その他の有害なアクションを実行することを防ぐため、強化されたセキュリティが提供される。いくつかの実施形態では、この技術は、悪意のある活動の検出に応答して、格納された暗号鍵を消去することによって追加のセキュリティを提供する。このことは、デバイスの暗号機能にアクセスするために、格納されたIDに一致しようとする多数のIDをデバイスに送ることによるデバイスに対する「強引な」攻撃を攻撃者に実行させないようにする。
【００５２】
主題の説明された実施形態は、1つまたは複数の特徴を単独でまたは組み合わせて含むことができる。例えば、第1の実施形態では、クライアントから要求された暗号動作を実行するための要求を、暗号チップによって受信するステップであって、要求が、クライアントに関連付けられたクライアント識別情報を含み、暗号チップが、暗号動作を実行する処理リソースと、暗号動作に使用される鍵情報および暗号動作の要求を許可された複数のクライアントに関連付けられた識別情報を格納するストレージリソースとを含むハードウェア構成要素である、ステップと、クライアント識別情報をストレージリソースに格納された識別情報と比較することに基づいて、クライアント識別情報が、暗号動作の要求を許可された複数のクライアントのうちの1つに関連付けられると、暗号チップによって決定するステップと、クライアント識別情報が暗号動作の要求を許可された複数のクライアントのうちの1つに関連付けられると決定することに応答して、ストレージリソースに格納された鍵情報に基づいて要求された暗号動作を、暗号チップによって実行するステップとを含む。
【００５３】
前述および他の説明された実施形態は、それぞれ、オプションで、以下の特徴の1つまたは複数を含むことができる。
【００５４】
第1の特徴は、以降の特徴のいずれかと組み合わせ可能であり、要求された暗号動作が、暗号化動作、復号動作、電子署名検証動作、または電子署名生成動作である、ことを特定する。
【００５５】
第2の特徴は、前述の特徴または以降の特徴のいずれかと組み合わせ可能であり、暗号チップが、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、またはマイクロプロセッサである、ことを特定する。
【００５６】
第3の特徴は、前述の特徴または以降の特徴のいずれかと組み合わせ可能であり、要求がデータを含み、暗号チップがデータについて要求された暗号動作を実行する、ことを特定する。
【００５７】
第4の特徴は、前述の特徴または以降の特徴のいずれかと組み合わせ可能であり、暗号チップが、暗号チップが含まれるコンピュータシステムを動作するための処理リソースによって実行されるオペレーティングシステムを含む、ことを特定する。
【００５８】
第5の特徴は、前述の特徴または以降の特徴のいずれかと組み合わせ可能であり、要求が第1の要求であり、要求された暗号動作が、第1の要求された暗号動作であり、クライアント識別情報が、第1のクライアント識別情報であり、方法が、第2のクライアントから第2の要求された暗号動作を実行するための第2の要求を、暗号チップによって受信するステップであって、要求が、第2のクライアントに関連付けられた第2のクライアント識別情報を含む、ステップと、第2のクライアント識別情報をストレージリソースに格納された識別情報と比較することに基づいて、第2のクライアント識別情報が暗号動作の要求を許可された複数のクライアントのうちの1つに関連付けられないと、暗号チップによって決定するステップとをさらに含み、第2のクライアント識別情報が暗号動作の要求を許可された複数のクライアントのうちの1つに関連付けられないと決定することに応答して、暗号チップが要求された暗号動作を実行しない、ことを特定する。
【００５９】
第6の特徴は、前述の特徴または以降の特徴のいずれかと組み合わせ可能であり、暗号動作を実行するための1つまたは複数の要求が、要求が暗号動作の要求を許可された複数のクライアントのうちの1つに関連付けられたクライアント識別情報を含まないことに基づいて、悪意があるものであると、暗号チップによって決定するステップと、暗号動作を実行するための1つまたは複数の要求が、悪意があるものであると決定することに応答して、ストレージリソースから識別情報および鍵情報を、暗号チップによって消去するステップとをさらに含む、ことを特定する。
【００６０】
第7の特徴は、前述の特徴または以降の特徴のいずれかと組み合わせ可能であり、暗号チップが、フィールドプログラマブルゲートアレイ(FPGA)であり、方法は、再プログラミング情報を含む、暗号チップを再プログラムするための要求を、暗号チップによって受信するステップと、要求を受信することに応答して、ストレージリソースに格納された情報を再プログラミング情報に、暗号チップによって置き換えるステップと、をさらに含む、ことを特定する。
【００６１】
本明細書で説明される主題、アクション、および動作の実施形態は、本明細書で開示される構造およびそれらの構造的同等物を含むデジタル電子回路、有形に具現化されたコンピュータソフトウェアまたはファームウェア、コンピュータハードウェアで、またはそれらを組み合わせて実装することができる。本明細書で説明する主題の実施形態は、データ処理装置による実行のため、またはデータ処理装置の動作を制御するための、コンピュータプログラムキャリア上に符号化された1つまたは複数のコンピュータプログラム、例えばコンピュータプログラム命令の1つまたは複数のモジュールとして実装することができる。例えば、コンピュータプログラムキャリアは、その上に命令がエンコードまたは記憶された1つまたは複数のコンピュータ可読記憶媒体を含むことができる。キャリアは、磁気ディスク、磁気光学ディスク、光ディスク、ソリッドステートドライブ、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、あるいは他のタイプの媒体など、有形の非一時的なコンピュータ可読媒体であってよい。あるいはまたは加えて、キャリアは人工的に生成された伝播信号、例えば、データ処理装置による実行のための適切な受信装置への送信のための情報を符号化するために生成される機械生成電気信号、光学信号、または電磁信号であり得る。コンピュータ記憶媒体は、機械可読記憶装置、機械可読記憶基板、ランダムまたはシリアルアクセスメモリデバイス、またはそれらの1つまたは複数の組み合わせであるか、その一部であり得る。コンピュータの記憶媒体は、伝播される信号ではない。
【００６２】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、エンジン、スクリプト、またはコードと、呼ばれるかまたは説明されるコンピュータプログラムは、コンパイル型またはインタプリタ型の言語、あるいは宣言型または手続き型の言語を含む、任意の形式のプログラミング言語で書かれてよく、コンピュータプログラムは、スタンドアロンプログラムとして、またはモジュール、コンポーネント、エンジン、サブルーチン、あるいは1つまたは複数の場所のデータ通信ネットワークによって相互接続された1つまたは複数のコンピュータを含み得るコンピューティング環境での実行に適したその他のユニットとして、任意の形式で展開され得る。
【００６３】
コンピュータプログラムは、必ずしもそうである必要はないが、ファイルシステム内のファイルに対応してよい。コンピュータプログラムは、他のプログラムまたはデータを保持するファイルの一部、例えばマークアップ言語ドキュメントに格納された1つまたは複数のスクリプトに、本件のプログラム専用の単一ファイルに、あるいは、1つまたは複数のモジュール、サブプログラム、またはコードの一部を格納する複数のファイルなどの複数の調整ファイルに格納され得る。
【００６４】
コンピュータプログラムを実行するためのプロセッサは、例として、汎用および専用の両方のマイクロプロセッサ、および任意の種類のデジタルコンピュータの1つまたは複数のプロセッサを含む。一般に、プロセッサは、実行用のコンピュータプログラムの命令と、プロセッサに結合された非一時的コンピュータ可読媒体からのデータとを受け取る。
【００６５】
「データ処理装置」という用語は、例として、プログラム可能なプロセッサ、コンピュータ、または複数のプロセッサまたはコンピュータを含む、データを処理するための任意の種類の装置、デバイス、および機械を包含する。データ処理装置は、例えば、FPGA(フィールドプログラマブルゲートアレイ)、ASIC(特定用途向け集積回路)、またはGPU(グラフィック処理ユニット)などの専用論理回路を含むことができる。装置はまた、ハードウェアに加えて、コンピュータプログラムの実行環境を作成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、あるいはそれらの1つまたは複数の組み合わせを構成するコードを含むことができる。
【００６６】
本明細書で説明するプロセスと論理フローは、1つまたは複数のコンピュータまたは1つまたは複数のコンピュータプログラムを実行するプロセッサによって実行され、入力データを動作して出力を生成することによって動作を実行する。プロセスおよび論理フローは、専用論理回路、例えばFPGA、ASIC、GPU、または専用論理回路と1つまたは複数のプログラムされたコンピュータの組み合わせによって実行され得る。
【００６７】
コンピュータプログラムの実行に適したコンピュータは、汎用または専用のマイクロプロセッサ、あるいはその両方、または他の任意の種類の中央処理装置に基づくことができる。一般に、中央処理装置は、読み取り専用メモリまたはランダムアクセスメモリ、あるいはその両方から命令およびデータを受け取る。コンピュータの要素は、命令を実行するための中央処理装置と、命令およびデータを格納するための1つまたは複数のメモリデバイスとを含むことができる。中央処理装置およびメモリは、特殊用途の論理回路によって補完され得る、または特殊用途の論理回路に組み込まれ得る。
【００６８】
一般に、コンピュータはまた、1つまたは複数のストレージデバイスからデータを受信するために、または1つまたは複数のストレージデバイスにデータを転送するために動作可能に結合される。ストレージデバイスは、例えば、磁気ディスク、磁気光学ディスク、または光ディスク、ソリッドステートドライブ、または他の任意の種類の非一時的コンピュータ可読媒体であり得る。ただし、コンピュータがそのようなデバイスを有する必要はない。したがって、コンピュータは、ローカルおよび/またはリモートである1つまたは複数のメモリなどの1つまたは複数のストレージデバイスに結合されてよい。例えば、コンピュータは、コンピュータに組み込まれた構成要素である1つまたは複数のローカルメモリを含むか、または、コンピュータは、クラウドネットワーク内にある1つまたは複数のリモートメモリに結合され得る。さらに、コンピュータは別のデバイス、例えば、ほんの数例を挙げると、携帯電話、携帯情報端末(PDA)、モバイルオーディオまたはビデオプレーヤ、ゲームコンソール、全地球測位システム（GPS）受信機、または例えばユニバーサルシリアルバス(USB)フラッシュドライブなどのポータブルストレージデバイスに組み込まれ得る。
【００６９】
構成要素は、直接、あるいは1つまたは複数の中間構成要素を介して相互に電気的または光学的に接続するなど、相互に通信可能にすることにより、互いに「結合」され得る。構成要素の1つが他の構成要素に統合されている場合、構成要素は互いに「結合」しているとすることもできる。例えば、プロセッサに統合されるストレージ構成要素(例えば、L2キャッシュ構成要素)は、プロセッサに「結合」されている。
【００７０】
ユーザとの対話を提供するために、本明細書で説明される主題の実施形態は、ユーザに情報を表示するための、例えばLCD(液晶ディスプレイ)モニタなどのディスプレイデバイスと、例えば、キーボード、およびマウス、トラックボール、またはタッチパッドなどのポインティングデバイスなど、ユーザがそれによってコンピュータに入力を提供できる入力デバイスとを有するコンピュータ上で、あるいは、該コンピュータと通信するように構成され得る。他の種類のデバイスを使用して、ユーザとの対話を提供することもでき、例えば、ユーザに提供されるフィードバックは、例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックなどのあらゆる形態の感覚フィードバックであり得、ユーザからの入力は、音響、音声、または触覚の入力を含む任意の形式で受信され得る。加えて、コンピュータは、ユーザが使用するデバイスとの間でドキュメントを送受信すること、例えば、ウェブブラウザから受信した要求に応答してユーザのデバイス上のウェブブラウザにウェブページを送信すること、またはスマートフォンや電子タブレットなどのユーザデバイス上で実行されているアプリと対話することによって、ユーザと対話できる。また、コンピュータは、テキストメッセージまたは他の形式のメッセージを個人用デバイス、例えばメッセージングアプリケーションを実行しているスマートフォンなどに送信し、返信にユーザから応答メッセージを受信することにより、ユーザと対話できる。
【００７１】
本明細書では、システム、装置、およびコンピュータプログラム構成要素に関連して「構成される」という用語を使用する。特定の動作またはアクションを実行するように構成される1つまたは複数のコンピュータのシステムは、動作中にシステムにその動作またはアクションを実行させるシステムにソフトウェア、ファームウェア、ハードウェア、またはそれらの組み合わせがインストールされていることを意味する。特定の動作またはアクションを実行するように構成される1つまたは複数のコンピュータプログラムとは、1つまたは複数のプログラムが、データ処理装置によって実行されると、装置に動作またはアクションを実行させる命令を含むことを意味する。特定の動作またはアクションを実行するように構成される専用ロジック回路とは、回路が動作またはアクションを実行する電子ロジックを有することを意味する。
【００７２】
本明細書は多くの特定の実施形態の詳細を含むが、これらは、請求項自体によって定義される請求される範囲の限定としてではなく、特定の実施形態に固有であり得る特徴の説明として解釈されるべきである。別個の実施形態の文脈において本明細書に記載されるいくつかの特徴は、単一の実施形態において組み合わせて実現することもできる。逆に、単一の実施形態の文脈で説明される様々な特徴は、複数の実施形態で別々に、または任意の適切な部分組合せで実現することもできる。さらに、特徴は、いくつかの組合せで作用するものとして上述され、当初はそのように請求される場合があるが、いくつかの場合、請求された組合せからの1つまたは複数の特徴を、組合せから削除することができ、特許請求の範囲は、部分組合せ、または部分組合せの変形を対象とする場合がある。
【００７３】
同様に、動作が図面に示され、特許請求の範囲に特定の順序で記載されているが、これは、そのような動作が、示された特定の順序で、または逐次的な順序で実行されること、あるいは望ましい結果を達成するために、図示されたすべての動作が実行されることを必要とするものとして理解されないものとする。いくつかの状況では、マルチタスキングおよび並列処理が有利である場合がある。さらに、上述した実施形態における様々なシステムモジュールおよび構成要素の分離は、すべての実施形態においてそのような分離を必要とするものと理解されないものとし、記述されたプログラム構成要素およびシステムを、一般に、単一のソフトウェア製品に一緒に組み入れることができ、または複数のソフトウェア製品にパッケージ化することができることを理解されたい。
【００７４】
主題の特定の実施形態が記載されている。他の実施形態は、以下の特許請求の範囲内にある。たとえば、特許請求の範囲に列挙されたアクションは、異なる順序で実行され、依然として望ましい結果を達成することができる。一例として、添付の図面に示されるプロセスは、望ましい結果を達成するために、示された特定の順序または逐次的な順序を必ずしも必要としない。いくつかの場合には、マルチタスキングおよび並列処理が有利である場合がある。
【符号の説明】
【００７５】
110  暗号チップ
120  ストレージリソース
122  プログラムロジック
124  識別情報
126  鍵情報
130  処理リソース
140  認証モジュール
150  暗号モジュール
200  システム
210  インターフェース
250  認証モジュール
260  暗号モジュール
410  識別情報カード
420  デバイス
430  スマートフォン
440  タブレットデバイス
450  モノのインターネット(IOT)デバイス
【図１】
0006756056.tif 000002
【図２】
0006756056.tif 000003
【図３】
0006756056.tif 000004
【図４】
0006756056.tif 000005
【図５】
0006756056.tif 000006
【図６】
0006756056.tif 000007