(57)【特許請求の範囲】
【請求項１】
ユーザ鍵対を管理するためのコンピュータで実行される方法であって、前記方法が、
公開認証鍵と秘密認証鍵とをID暗号チップ(ICC)上のメモリに事前に記憶することによって、前記ICCを初期化するステップであって、前記公開認証鍵および前記秘密認証鍵が、前記ICCのマスターユーザに割り当てられた非対称鍵対である、ステップと、
ID情報とユーザ鍵対とを前記メモリに記憶する、ネットワーク上の他のコンピュータからの要求を受信するステップであって、前記要求が、デジタル署名を用いてデジタル署名されており、前記ID情報が、ユーザを一意に識別し、前記ユーザ鍵対が、前記ユーザに割り当てられている、ステップと、
前記メモリ内に事前に記憶された前記公開認証鍵に基づいて、前記デジタル署名が本物であると判定するステップと、
前記ID情報と前記ユーザ鍵対とを暗号化するステップと、
前記ID情報と前記ユーザ鍵対とを前記メモリに記憶するステップとを含む、
コンピュータで実行される方法。
【請求項２】
前記ICCを初期化するステップが、
前記ID情報に基づいて前記ユーザを認証するために実行可能なID認証コードを記憶するステップを含む、
請求項1に記載のコンピュータで実行される方法。
【請求項３】
前記ICCを初期化するステップが、
前記秘密認証鍵に基づいて、前記デジタル署名を追加するために実行可能な第1の暗号演算コードを記憶するステップと、
前記ユーザ鍵対に基づいて、ファイル暗号化またはファイル復号を実行するために実行可能な第2の暗号演算コードを記憶するステップとを含む、
請求項1または2に記載のコンピュータで実行される方法。
【請求項４】
ID情報および前記ユーザ鍵対を記憶するための前記要求が、第1の要求であり、
前記ID情報が、第1のID情報であり、
前記デジタル署名が、第1のデジタル署名であり、
前記コンピュータで実行される方法は、
第2のID情報と第2のデジタル署名をファイルに追加するための第2の要求とを受信するステップと、
前記第2のID情報を前記第1のID情報と照合させることに基づいて、前記第2の要求を認証するステップと、
前記第1の暗号演算コードと前記ユーザ鍵対の秘密鍵とに基づいて、前記第2のデジタル署名を前記ファイルに追加するステップとをさらに含む、
請求項3に記載のコンピュータで実行される方法。
【請求項５】
前記ID情報と前記ユーザ鍵対とを記憶するための要求が、第1の要求であり、
前記ID情報が、第1のID情報であり、
前記コンピュータで実行される方法は、
第2のID情報と、ファイルを暗号化または復号するための第2の要求とを受信するステップと、
前記第2のID情報を前記第1のID情報と照合させることに基づいて、前記ユーザを認証するステップと、
前記第2の要求と、前記第2の暗号演算コードと、前記ユーザ鍵対の公開鍵または秘密鍵とに基づいて、前記暗号化または復号を実行するステップとをさらに含む、
請求項3に記載のコンピュータで実行される方法。
【請求項６】
前記ID情報が、生体情報である、
請求項1から5のいずれか一項に記載のコンピュータで実行される方法。
【請求項７】
前記メモリが、プログラム可能読み取り専用メモリ(PROM)、電気的消去可能PROM、またはフラッシュメモリであり、
前記ID情報および前記ユーザ鍵対が、前記メモリの別個の記憶ユニット内に記憶される、
請求項1から6のいずれか一項に記載のコンピュータで実行される方法。
【請求項８】
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサに結合され、請求項1から7のいずれか一項に記載の方法を実行するために前記1つまたは複数のプロセッサによって実行可能な命令が記憶された1つまたは複数のコンピュータ可読メモリとを備える、
ユーザ鍵対を管理するシステム。
【請求項９】
ユーザ鍵対を管理する装置であって、前記装置が、請求項1から7のいずれか一項に記載の方法を実行する複数のモジュールを備える、
装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、ID(アイデンティティ)認証技術およびデータセキュリティに関する。
【背景技術】
【０００２】
ID認証技術は、ユーザのIDを検証し、データセキュリティを保証するために、コンピュータネットワーク内で一般的に使用される。ID情報は、コンピュータネットワーク内でデジタル的に記憶または通信される他の情報のように、データのセットによって表すことができる。コンピュータは、ユーザのデジタルIDに基づいてユーザを識別および認証することができる。データセキュリティのために、デジタルIDが認証されたユーザに属していること、または言い換えると、デジタルIDがユーザの実際のIDと一致していることを保証することが重要である。
【０００３】
技術が進化するにつれて、ブロックチェーンネットワークおよびインターネットオブシングス(IoT)ネットワークなどの分散システムが出現した。分散システムの下では、個人が自分自身のID情報を安全に自己記憶することが可能である。例えば、ユーザは、デジタルウォレットを保持することができ、デジタルウォレットは、ユーザがブロックチェーンネットワーク内またはIoTデバイス上でトランザクションを認証するためにデジタル署名を追加するために使用することができる秘密鍵を記憶する。秘密鍵は通常、コンピューティングデバイス上に暗号化セマンティクスを用いてデータ文字列として記憶され、ユーザにとってアクセス可能であることのみを意図される。他のデータ文字列として、秘密鍵は、潜在的にコピーおよび共有することができる。秘密鍵を有する任意のユーザは、秘密鍵に関連付けられたデジタル資産を制御することができる。さらに、秘密鍵が失われた場合、デジタル資産を取り戻すことができない。したがって、暗号化鍵の安全な記憶および効率的な使用が重要である場合がある。
【０００４】
ユーザのID情報を効率的に検証し、ユーザのための暗号鍵を安全に管理することができる鍵管理技術を開発することが望ましい。
【発明の概要】
【課題を解決するための手段】
【０００５】
本明細書は、ユーザを一意に識別するID情報に基づいて、ユーザに割り当てられたユーザ暗号鍵を管理するための技術について説明する。これらの技術は、一般に、ID暗号チップ(ICC)によって、ID情報とユーザ暗号鍵とを受信することであって、ID情報およびユーザ暗号鍵がマスターユーザに割り当てられた秘密鍵によって生成されたデジタル署名を用いてデジタル署名されている、ことと、デジタル署名がマスターユーザに割り当てられた公開鍵に基づいて本物であると判定することであって、公開鍵がICC上のメモリ内に事前に記憶されている、ことと、ID情報とユーザ暗号鍵とを暗号化してメモリに記憶することとを伴う。
【０００６】
本明細書は、1つまたは複数のプロセッサに結合され、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに、本明細書で提供される方法の実施形態に従って動作を実行させる命令を記憶する1つまたは複数の非一時的コンピュータ可読記憶媒体も提供する。
【０００７】
本明細書は、本明細書で提供される方法を実装するためのシステムをさらに提供する。システムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに、本明細書で提供される方法の実施形態に従って動作を実行させる命令を記憶する、1つまたは複数のプロセッサに結合されたコンピュータ可読記憶媒体とを含む。
【０００８】
本明細書による方法は、本明細書で説明される態様および特徴の任意の組合せを含んでもよいことが理解される。すなわち、本明細書による方法は、本明細書で具体的に説明する態様および特徴の組合せに限定されず、提供される態様および特徴の任意の組合せも含む。
【０００９】
本明細書の1つまたは複数の実施形態の詳細は、添付図面および以下の説明に記載されている。本明細書の他の特徴および利点は、説明および図面から、ならびに特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００１０】
【図１】本明細書の実施形態を実行するために使用することができるプロセスを実行するためのID暗号チップの例を示す図である。
【図２】本明細書の実施形態によるID暗号チップ初期化のためのプロセスの例を示すフローチャートである。
【図３】本明細書の実施形態によるID暗号チップへの情報入力のためのプロセスの例を示すフローチャートである。
【図４】本明細書の実施形態によるID暗号チップを使用して暗号演算を実行するためのプロセスの例を示すフローチャートである。
【図５】本明細書の実施形態による鍵管理デバイスの例を示す図である。
【図６】本明細書の実施形態に従って実行することができる方法の例を示す図である。
【図７】本明細書の実施形態による装置のモジュールの例を示す図である。
【発明を実施するための形態】
【００１１】
様々な図面内の同様の参照番号および名称は、同様の要素を示す。
【００１２】
本明細書は、ユーザを一意に識別するID情報に基づいて、ユーザに割り当てられたユーザ暗号鍵を管理するための技術について説明する。これらの技術は、一般に、ID暗号チップ(ICC)によって、ID情報とユーザ暗号鍵とを受信することであって、ID情報およびユーザ暗号鍵がマスターユーザに割り当てられた秘密鍵によって生成されたデジタル署名を用いてデジタル署名されている、ことと、デジタル署名がマスターユーザに割り当てられた公開鍵に基づいて本物であると判定することであって、公開鍵がICC上のメモリ内に事前に記憶されている、ことと、ID情報とユーザ暗号鍵とを暗号化してメモリに記憶することとを伴う。
【００１３】
図1は、本明細書の実施形態を実行するために使用することができるプロセスを実行するためのICC100の例を示す図である。高レベルでは、ICC100は、メモリ102と論理計算コンポーネント104とを含むコンピュータチップとすることができる。ICC100は、暗号演算を安全に実行するために使用することができる。いくつかの実施形態では、ICC100は、1つまたは複数のチップコンポーネントを含むチップセットとすることができる。メモリ102および論理計算コンポーネント104は、異なるチップコンポーネントに統合することができる。いくつかの実施形態では、メモリ102は、永続的な保存を提供するために使用することができる。いくつかの例では、メモリ102は、データが1回書き込まれることを可能にし、その後は読み取り専用であるプログラム可能読み取り専用メモリ(PROM)とすることができる。いくつかの例では、メモリ102は、電気的消去可能プログラム可能読み取り専用メモリ(EEPROM)、または再フォーマットおよび再プログラムすることができるフラッシュメモリとすることができる。いくつかの実施形態では、論理計算コンポーネントは、特定用途向け集積回路(ASIC)またはシングルチップマイクロコンピュータ(SCM)とすることができる。
【００１４】
いくつかのコンピュータネットワークでは、データまたはトランザクションのプライバシーを維持するために暗号化が実装される。例えば、他のユーザがトランザクションの詳細を識別することができないように、2人のユーザがトランザクションをプライベートに保ちたい場合、ユーザは、トランザクションデータを暗号化することができる。例示的な暗号演算は、限定はしないが、対称鍵暗号化と非対称鍵暗号化とを含む。対称暗号化は、暗号化(プレーンテキストから暗号テキストを生成する)と復号(暗号テキストからプレーンテキストを生成する)の両方に単一の鍵を使用する暗号化プロセスを指す。
【００１５】
非対称暗号化は、各々秘密鍵および公開鍵を含む鍵対を使用し、秘密鍵は、それぞれのノードのみに知られており、公開鍵は、公然と広めることができる。ユーザは、データを暗号化するために別のユーザの公開鍵を使用することができ、暗号化データは、他のユーザの秘密鍵を使用して復号することができる。
【００１６】
非対称暗号化は、デジタル署名を提供するために使用することができ、それは、トランザクションの参加者がトランザクションの他の参加者、ならびにトランザクションの有効性を確認することを可能にする。例えば、ユーザは、メッセージにデジタル署名することができ、別のユーザは、デジタル署名に基づいて、メッセージがユーザによって送信されたことを確認することができる。デジタル署名は、メッセージが送信中に改ざんされないことを保証するために使用することもできる。たとえば、ユーザAは、ユーザBにメッセージを送信する。ユーザAは、メッセージのハッシュを生成し、次いで、暗号化されたハッシュとしてデジタル署名を提供するために、その秘密鍵を使用してハッシュを暗号化する。ユーザAは、メッセージにデジタル署名を付加し、デジタル署名を有するメッセージをユーザBに送信する。ユーザBは、ユーザAの公開鍵を使用してデジタル署名を復号し、ハッシュを抽出する。ユーザBは、メッセージをハッシュし、ハッシュを比較する。ハッシュが同じである場合、ユーザBは、メッセージが実際にユーザAからのものであり、改ざんされなかったことを確認することができる。
【００１７】
ICC100は、ユーザID情報を検証することに基づいて暗号演算を安全に実行するために使用することができる。メモリ102は、信頼できるユーザID情報と暗号鍵情報とを記憶するために使用することができる。メモリ102は、ID認証アルゴリズム(例えば、コンピュータ実行可能コードとして)と暗号演算アルゴリズム(例えば、コンピュータ実行可能コードとして)とを記憶するために使用することもできる。いくつかの実施形態では、メモリ102内に記憶された情報およびアルゴリズムは、ICC100がリバースエンジニアリングされたときであってもその漏洩を防止するために暗号化される。暗号演算を実行するための要求がユーザから受信されると、論理計算コンポーネント104は、ID認証アルゴリズムに基づいてユーザのIDを検証するために、ユーザから収集されたID情報と、メモリ102内に記憶された信頼できるユーザID情報とを使用することができる。例えば、ID情報がユーザの指紋の指紋画像である場合、ID認証アルゴリズムは、ユーザから収集された指紋画像と、記憶された指紋画像とを比較するローカル認証アルゴリズムとすることができる。収集された指紋画像が記憶された指紋画像と一致する場合、ユーザのIDは、正常に検証される。論理計算コンポーネント104は、次いで、要求された暗号演算を実行するために、記憶された暗号鍵情報を使用することができる。暗号演算が実行された後、演算結果は、ICC100によって出力することができる。ICC100を使用することによって、暗号演算は、ユーザのIDが検証または認証された後にのみ実行することができる。そのため、演算を実行するユーザの認証を保証することができる。さらに、暗号鍵は、暗号テキストとしてICC100内に記憶されるので、暗号演算は、ICC100内で実行される。演算結果のみがICC100から出力される。このようにして、暗号鍵のセキュリティを保証することができる。
【００１８】
いくつかの実施形態では、ICC100のマスターユーザは、ユーザにICC100へのアクセスを提供するために公開認証鍵を使用することができる。マスターユーザは、ICC100のマネージャ、ネットワーク管理者、所有者、または発行者とすることができる。要するに、マスターユーザは、ICC100を制御しているユーザであり、認証鍵対がマスターユーザに割り当てられる。認証鍵対は、公開認証鍵と、マスターユーザ(または、マスターユーザの代わりに実行するICC100)が非対称暗号化通信に参加することおよび/または暗号演算(例えば、暗号化、復号)を実行することを可能にする秘密認証鍵とを含む。110において、公開認証鍵がICC100に書き込まれる。
【００１９】
112において、メモリ内容がクリアされ、公開認証鍵がメモリ102に書き込まれる。いくつかの実施形態では、メモリ102は、永続的記憶メモリである。いくつかの実施形態では、改ざんを防止するために、公開認証鍵は、メモリ102の記憶ユニットに一度だけ書き込むことのみができる。既存の公開認証鍵を置き換えるために新しい公開認証鍵が使用される必要がある場合、新しい公開認証鍵を書き込むことができる前に、メモリ102の内容は、消去されてもよい。いくつかの実施形態では、公開認証鍵は、セキュリティを強化するために、メモリ102に書き込む前に暗号化することができる。
【００２０】
114において、ユーザのID情報およびユーザの暗号鍵対がICC100に入力される。暗号鍵対は、公開ユーザ鍵と、ユーザ(または、ユーザの代わりに実行するコンピューティングデバイス)が非対称暗号化通信に参加することおよび/または暗号演算(例えば、暗号化、復号)を実行することを可能にする秘密ユーザ鍵とを含む。いくつかの実施形態では、ID情報は、ユーザの生体情報とすることができる。生体情報の例は、限定はしないが、指紋、声紋、心拍、および虹彩情報を含む。116において、ID情報および暗号鍵対にデジタル署名を追加することができる。いくつかの実施形態では、マスターユーザは、デジタル署名を入力ID情報および暗号鍵対に追加することができる。マスターユーザに割り当てられた秘密認証鍵は、デジタル署名を生成するために使用することができる。いくつかの実施形態では、マスターユーザによって秘密認証鍵を信頼できるユーザに発行することもできる。信頼できるユーザは、ID情報および暗号鍵対に直接署名するために秘密認証鍵を使用することができる。118において、120においてデジタル署名を検証するために、公開認証鍵がメモリ102から読み取られる。検証が成功した場合、ユーザは、暗号演算を実行するためにICC100を使用するために認証されていると判定される。
【００２１】
122において、ID情報および暗号鍵対が記憶のためにメモリ102に書き込まれる。いくつかの実施形態では、ID情報および暗号鍵対は、セキュリティを強化するために、メモリ102に書き込む前に暗号化することができる。いくつかの実施形態では、公開認証鍵は、ID情報と暗号鍵対とを暗号化するために使用することができる。いくつかの実施形態では、ID情報および暗号鍵対は、メモリ102の別個の記憶ユニットに書き込むことができる。
【００２２】
124において、暗号演算を実行するための要求がユーザによってICC100に送信される。いくつかの実施形態では、暗号演算が実行されるべきデータも、ICC100に送信することができる。例えば、暗号演算が暗号化である場合、対応するデータは、暗号化されるべきデータファイルとすることができる。125において、ユーザのID情報がメモリ102から収集され、ICC100に送信される。126において、128においてID検証を実行するために、122においてメモリ102に書き込まれたID情報が読み取られる。ID検証は、125において受信されたID情報を記憶されたID情報と比較することに基づいて実行することができる。ID情報が一致した場合、検証は、成功し、暗号鍵情報は、132において暗号演算を実行するために、130においてメモリ102から読み取られる。ID情報が一致しない場合、検証は、失敗し、暗号演算を実行するための要求は、拒否される。いくつかの実施形態では、ID検証は、受信された特定のタイプのID情報に基づくID検証アルゴリズムを使用して実行することができる。いくつかの実施形態では、暗号演算は、暗号演算アルゴリズムに基づいて実行することができる。上記で説明したように、暗号演算は、暗号化、復号、またはデータへのデジタル署名の追加とすることができる。暗号演算を実行した後、演算結果は、134において出力することができる。
【００２３】
上記で説明したように、ICC100は、認証されたユーザが暗号演算を安全に実行するためのハードウェア内に信頼できる環境を作成することができる。例えば、ICC100を所有するマスターユーザは、複数のユーザが自分のID情報と暗号鍵対とをICC100に記憶することを許可することができる。記憶されるようにユーザによって要求された情報は、マスターユーザの秘密認証鍵によってデジタル署名される。デジタル署名の信頼性は、ICC100内に事前に記憶されているマスターユーザの公開認証鍵によって検証することができる。デジタル署名が本物である場合、対応するID情報および暗号鍵対は、ICC100内に記憶することができる。
【００２４】
暗号演算がユーザによって要求されると、ICC100は、特定のユーザのためのID情報と暗号鍵対とをメモリから取得することができる。ID情報は、ユーザのIDを検証するために使用することができ、暗号鍵対は、ユーザのIDが検証された後、要求された暗号演算を実行するために使用することができる。暗号演算は、様々な実際的なシナリオのために実行することができる。例えば、暗号演算は、デジタル署名をブロックチェーントランザクションに追加する操作とすることができる。この例では、ノードA(例えば、ユーザの代わりに操作するコンピューティングデバイス)は、ノードBとのブロックチェーントランザクションデータにデジタル署名する要求を開始するブロックチェーンネットワーク内のコンピューティングデバイスとすることができる。ブロックチェーントランザクションデータは、ノードAとノードBとの間のトランザクションデータのハッシュ値とすることができる。ノードAは、ハッシュされたトランザクションデータに対するデジタル署名を生成するためにICC100を使用することができる。ICC100を使用するために、ノードAに関連付けられたID情報が収集され、ICC100内に記憶されたID情報と比較される。収集されたID情報が記憶されたID情報と一致する場合、ICC100を使用する暗号演算の実行についてノードAを認証することができる。より具体的には、ハッシュされたトランザクションデータに対するデジタル署名を生成するために、暗号鍵対の秘密鍵をICC100のメモリから読み取ることができる。ノードAは、次いで、ハッシュされたトランザクションデータをデジタル署名とともにノードBに送信することができる。ノードBは、暗号鍵対の公開鍵を使用してデジタル署名を復号し、ハッシュを抽出する。ノードBは、メッセージをハッシュし、ハッシュを比較する。ハッシュが同じである場合、ノードBは、メッセージが実際にノードAからのものであり、改ざんされなかったことを確認することができる。
【００２５】
図2は、本明細書の実施形態によるICC初期化のためのプロセス200の例を示すフローチャートである。いくつかの実施形態では、ICCは、ICCのマネージャ、ネットワーク管理者、または発行者などのマスターユーザによって初期化される。いくつかの実施形態では、マスターユーザは、どのユーザが暗号演算を安全に実行するためにICCを使用することを認証されるかを制御することができる。
【００２６】
202において、ICCがリセットされる。いくつかの実施形態では、ICCは、公開認証鍵を入力する要求を受信することに応答してリセットされる。いくつかの実施形態では、ICCをリセットすることは、ICCのメモリ内に記憶された内容を消去または再フォーマットすることを含むことができる。いくつかの実施形態では、ICCをリセットすることは、ICCの論理計算コンポーネントの設定をデフォルトに再構成またはリセットすることも含むことができる。ICCをリセットすることによって、ICCへの情報入力を制御するために1つの公開認証鍵が使用されることを保証することができる。さらに、データセキュリティを保証するために、ICC内に以前に記憶された任意のID情報および暗号鍵対が消去される。いくつかの実施形態では、ICCは、新しいICCであり、初めて使用され、ICCは、公開認証鍵の入力を受け入れるために初期化することができる。いくつかの実施形態では、公開認証鍵は、マスターユーザの秘密認証鍵によって生成されたデジタル署名を検証するために使用される公開鍵とすることができる。
【００２７】
204において、公開認証鍵がICCによって受信される。206において、公開認証鍵をメモリ202に入力するために、公開認証鍵入力機能が呼び出される。208において、ICCのメモリがワンタイムプログラマブル(OTP)メモリであるかどうかが判定される。OTPメモリは、データが一度だけメモリに書き込まれることを許可する。マスターユーザが新しい公開認証鍵をICCに入力すると、新しい公開認証鍵が以前に自分の情報を入力したユーザを制御しないことを保証するために、すべての以前に記憶されたID情報と暗号鍵対とを消去することができる。したがって、メモリがOTPである場合、公開認証鍵は、212において、暗号化され、メモリに入力することができる。そうでない場合、公開認証鍵が暗号化されてメモリに入力される前に、210において、メモリの内容は、クリアされる。212の後、プロセス200は、214において終了する。
【００２８】
図3は、本明細書の実施形態によるICCへの情報入力のためのプロセス300の例を示すフローチャートである。ICCが初期化された後、マスターユーザは、それぞれのID情報と暗号鍵対とをICCに記憶することをユーザに認証することができる。そのため、認証されたユーザは、暗号演算を安全に実行するためにICCを使用することができる。
【００２９】
302において、ID情報および暗号鍵対がICCによって受信される。いくつかの実施形態では、ID情報は、ICCと通信可能に結合されたコンピューティングデバイスによって収集することができる。例示的なコンピューティングデバイスは、IoTデバイス、スマートバンド、スマートウォッチ、ラップトップ(またはデスクトップコンピュータ)、およびスマートフォンを含むことができる。いくつかの実施形態では、ID情報は、指紋、声紋、心拍、および虹彩情報などのユーザの生体情報とすることができる。コンピューティングデバイスは、生体情報を収集するための指紋センサ、マイクロフォン、心拍センサ、または虹彩スキャナを含むことができる。例えば、コンピューティングデバイスは、ユーザの心拍情報を収集することができるスマートウォッチとすることができる。心拍情報は、ユーザを識別するためのID情報として使用することができる。ID情報が収集された後、それをユーザの暗号鍵対とともにICCに送信することができる。いくつかの実施形態では、ICCは、Bluetooth(登録商標)、近距離無線通信(NFC)、Wi-Fi、またはセルラーデータなどのワイヤレス通信プロトコルに基づいて無線でコンピューティングデバイスとワイヤレスで通信することができる。いくつかの実施形態では、ICCは、コンピューティングデバイスとの有線通信を実行するために、コンピューティングデバイスに挿入または統合することができる。
【００３０】
304において、デジタル署名がID情報および暗号鍵対に追加される。いくつかの実施形態では、マスターユーザは、認証されたユーザに属するID情報および暗号鍵対にデジタル署名を追加することができる。デジタル署名を生成するために使用される秘密鍵は、秘密認証鍵とすることができる。秘密認証鍵は、図2の説明で論じたように、ICC初期化プロセス200中にICCに記憶された公開認証鍵と同じ鍵対に属する。
【００３１】
306において、デジタル署名が公開認証鍵に基づいて検証される。デジタル署名が正しい場合、要求は断られID情報および暗号鍵対は、308において暗号化され、ICCのメモリに記憶される。その後、プロセス300は、310において終了する。デジタル署名が正しくない場合、プロセス300は、310において終了する。ユーザのID情報および暗号鍵対がICCに入力された後、ユーザは、暗号演算を安全に実行するためにICCを使用することができる。
【００３２】
図4は、本明細書の実施形態による、ICCを使用して暗号演算を実行するためのプロセス400の例を示すフローチャートである。402において、暗号演算を実行するための要求が受信される。暗号演算の例は、データ暗号化、データ復号、およびデジタル署名の追加を含むことができる。
【００３３】
404において、ユーザのID情報が受信される。図3の説明で論じたように、ID情報は、コンピューティングデバイスによって収集し、ICCに送信することができる。406において、ID情報を検証することができる。いくつかの実施形態では、ID情報は、ICCのメモリ内に記憶されたID情報と比較することができる。ID情報が記憶されたID情報と一致した場合、検証は、成功し、要求された暗号演算は、408において、ICCのメモリ内に記憶された暗号鍵対を使用して実行することができる。そうでない場合、プロセス400は、412において終了する。408の後、プロセス400は、410に進み、そこで演算結果が返される。演算結果は、408において実行された暗号演算に依存する場合がある。例えば、暗号演算がファイル暗号化である場合、ユーザの公開鍵を使用して暗号化されたファイルが返される場合がある。同様に、暗号演算がファイル復号である場合、ユーザの秘密鍵を使用して復号されたファイルが返される場合がある。暗号演算がデジタル署名を追加することである場合、ユーザのデジタル署名を有するファイルが秘密鍵を使用して生成され、返される。410の後、プロセスは、412において終了する。
【００３４】
図5は、本明細書の実施形態による鍵管理デバイス500の例を示す図である。いくつかの実施形態では、ユーザのための暗号演算を実行するためにICCによって使用される暗号鍵対は、鍵管理デバイス500によって管理することができる。鍵管理デバイス500は、鍵管理540とアルゴリズム管理514とを実行することができる。鍵管理504は、暗号鍵対の記憶506と、書き込み508と、ランダム生成510と、削除512とを含むことができる。暗号鍵は、マスターユーザに関連付けられた非対称鍵対(公開認証鍵を含む)と、暗号演算を実行するICCの認証されたユーザに関連付けられた暗号鍵対とを含むことができる。
【００３５】
アルゴリズム管理514によって管理されるアルゴリズムは、ID検証アルゴリズム516、デジタル署名検証アルゴリズム518、暗号化および復号アルゴリズム520、ならびにトークンアルゴリズムを記憶および管理することを含むことができる。ID検証アルゴリズム516は、図4のステップ406の説明で論じたようにID検証を実行するために使用することができる。デジタル署名検証アルゴリズム518は、本明細書で説明するようにデジタル署名検証を実行するために使用することができる。暗号化および復号アルゴリズム520は、本明細書で説明するように、要求された暗号演算を実行するために使用することができる。例えば、要求された暗号演算がユーザファイルの暗号化演算である場合、暗号化および復号アルゴリズム520は、ICCのメモリからユーザの公開鍵を取得し、ユーザファイルを暗号化するために実行することができる。トークンアルゴリズム522は、ユーザIDを検証する必要なしに、要求された暗号演算を実行する時間制限または量制限を示すトークンを管理するために使用することができる。いくつかの実施形態では、トークンを生成し、ICCのメモリ内に一時的に記憶することができる。トークンは、ユーザIDを検証する必要なしに、複数回の間、または所定の時間期間内に暗号演算を実行するための認証を提供することができる。例えば、受信された次の5ファイルまたは次の3時間以内のどちらかの条件が最初に満たされた場合にデジタル署名を追加するためにICCのユーザに認証を提供するためにトークンを生成することができる。いくつかの実施形態では、トークンは、それが満了するかまたは使い切ったとき、クリアし、ICCから削除することができる。
【００３６】
いくつかの実施形態では、鍵管理デバイス500は、ICCのバックアップとして機能することができる。ICCが紛失または破壊された場合であっても、暗号演算を実行するための暗号鍵およびアルゴリズムは、鍵管理デバイス500から取得することができる。
【００３７】
いくつかの実施形態では、鍵管理デバイス500は、入力管理524も実行することができる。鍵管理デバイス500は、アルゴリズム入力526、ID情報入力528、暗号鍵入力530、デジタル署名生成532、およびID検証534を管理するためにICCに通信可能に結合することができる。
【００３８】
図6は、本明細書の実施形態に従って実行することができる方法600の例を示す。提示の明確さのために、以下の説明は、この説明における他の図の文脈で方法600を概して説明する。しかしながら、方法600は、例えば、適宜、任意のシステム、環境、ソフトウェア、およびハードウェア、またはシステム、環境、ソフトウェア、およびハードウェアの組合せによって実行することができることが理解されよう。いくつかの実施形態では、方法600の様々なステップは、並行して、組合せて、ループで、または任意の適切な順序で実行することができる。いくつかの実施形態では、方法600は、本明細書の実施形態に従って説明するICCによって実行することができる。
【００３９】
602において、ID情報およびユーザ鍵対をICC上のメモリに記憶する要求が受信され、要求は、デジタル署名でデジタル署名され、ID情報は、ユーザを一意に識別し、ユーザ鍵対は、ユーザに割り当てられる。いくつかの実施形態では、ICCは、公開認証鍵および秘密認証鍵を事前に記憶することによって初期化される。公開認証鍵および秘密認証鍵は、ICCのマスターユーザに割り当てられた非対称鍵対である。いくつかの実施形態では、ICCを初期化することは、ID情報に基づいてユーザを認証するために実行可能なID認証コードを記憶することをさらに含む。いくつかの実施形態では、ICCを初期化することは、秘密認証鍵に基づいてデジタル署名を追加するために実行可能な第1の暗号演算コードを記憶することと、ユーザ鍵対に基づいてフィアル暗号化またはファイル復号を実行するために実行可能な第2の暗号演算コードを記憶することとを含む。
【００４０】
いくつかの実施形態では、ID情報とユーザ鍵対とを記憶するための要求は、第1の要求であり、ID情報は、第1のID情報であり、デジタル署名は、第1のデジタル署名であり、コンピュータで実行される方法は、第2のID情報と第2のデジタル署名をファイルに追加するための第2の要求とを受信することと、第2のID情報を第1のID情報と照合させることに基づいて第2の要求を認証することと、第1の暗号演算コードとユーザ鍵対の秘密鍵とに基づいて、第2のデジタル署名をファイルに追加することとをさらに含む。いくつかの実施形態では、ID情報とユーザ鍵対とを記憶するための要求は、第1の要求であり、ID情報は、第1のID情報であり、方法600は、第2のID情報と、ファイルを暗号化または復号するための第2の要求とを受信することと、第2のID情報を第1のID情報と照合させることに基づいてユーザを認証することと、第2の要求と、第2の暗号演算コードと、ユーザ鍵対の公開鍵または秘密鍵とに基づいて暗号化または復号を実行することとをさらに含む。いくつかの実施形態では、ID情報は、ユーザに関連付けられた生体情報である。
【００４１】
604において、デジタル署名は、メモリ内に事前に記憶された公開認証鍵に基づいて本物だと判定される。いくつかの実施形態では、メモリは、プログラム可能読み取り専用メモリ(PROM)、電気的消去可能PROM、またはフラッシュメモリであり、ID情報およびユーザ鍵対は、メモリの別個の記憶ユニット内に記憶される。
【００４２】
606において、ID情報およびユーザ鍵対が暗号化される。608において、ID情報およびユーザ鍵対がメモリに記憶される。
【００４３】
図7は、本明細書の実施形態による装置700のモジュールの例を示す。装置700は、ICCの実施形態の例とすることができる。装置700は、上記で説明した実施形態に対応することができ、装置700は、以下を含む。
【００４４】
ID情報とユーザ鍵対とをICC上のメモリに記憶する要求を受信する要求受信モジュール702であって、要求は、デジタル署名を用いてデジタル署名されており、ID情報は、ユーザを一意に識別し、ユーザ鍵対は、ユーザに割り当てられている。メモリ内に事前に記憶された公開認証鍵に基づいてデジタル署名が本物であることを判定するデジタル署名判定モジュール704。ID情報とユーザ鍵対とを暗号化する暗号化モジュール706。ID情報とユーザ鍵対とをメモリに記憶する記憶モジュール708。
【００４５】
オプションの実施形態では、装置700は、公開認証鍵と公開認証鍵に対応する秘密認証鍵とを事前に記憶することによってICCを初期化するチップ初期化モジュールを含む。公開認証鍵および秘密認証鍵は、ICCのマスターユーザに割り当てられた非対称鍵対である。
【００４６】
オプションの実施形態では、メモリは、プログラム可能読み取り専用メモリ(PROM)、電気的消去可能PROM、またはフラッシュメモリであり、ID情報および非対称鍵の対は、メモリの別個の記憶ユニット内に記憶される。オプションの実施形態では、ID情報は、生体情報である。
【００４７】
前述の実施形態に示すシステム、装置、モジュール、またはユニットは、コンピュータチップもしくはエンティティを使用することによって実装することができ、または、特定の機能を有する製品を使用することによって実装することができる。典型的な実施形態のデバイスは、コンピュータであり、コンピュータは、パーソナルコンピュータ、ラップトップコンピュータ、セルラー電話、カメラ付き携帯電話、スマートフォン、携帯情報端末、メディアプレーヤー、ナビゲーションデバイス、電子メール受信および送信デバイス、ゲームコンソール、タブレットコンピュータ、ウェアラブルデバイス、またはこれらのデバイスの任意の組合せとすることができる。
【００４８】
装置内の各モジュールの機能および役割の実施形態のプロセスについて、前述の方法における対応するステップの実施形態のプロセスへの参照を行うことができる。簡単化のため、ここでは詳細を省略する。
【００４９】
装置の実施形態は、基本的に方法の実施形態に対応するので、関連する部分について、方法の実施形態における関連する説明への参照を行うことができる。前述で説明した装置の実施形態は、単なる例である。別々の部分として説明したモジュールは、物理的に別々であってもなくてもよく、モジュールとして示した部分は、物理的モジュールであってもなくてもよく、1つの位置に配置されてもよく、いくつかのネットワークユニット上に分散されてもよい。モジュールのうちのいくつかまたはすべては、本明細書の解決策の目的を達成するために実際の需要に基づいて選択することができる。当業者は、創造的な努力なしに、本出願の実施形態を理解し実装することができる。
【００５０】
本明細書で説明する技法は、いくつかの技術的効果を生じる。例えば、主題の実施形態は、マスターユーザが、他のユーザがICCを使用する許可を制御し与えることを許可する。認証は、マスターユーザの秘密鍵を使用して、認証されたユーザのIDおよび暗号鍵情報にデジタル署名を追加することによって与えることができる。ICC内に事前に記憶されたマスターユーザの公開認証鍵によってデジタル署名を認証することができない場合、ICCは、IDおよび暗号鍵情報入力を拒否する。
【００５１】
ICCに暗号演算を実行するように要求するために、ユーザのID情報が収集され、事前に認証されてICC内に記憶されたID情報に対して検証される必要がある。そのため、暗号演算を要求したユーザが認証されたユーザであることを保証することができる。
【００５２】
さらに、ID情報および暗号鍵は、ICCのメモリに記憶する前に暗号化することができる。情報は、対応するID認証および暗号演算を実行するためにICC内でのみ復号される。暗号演算は、ICCの内部で実行され、演算結果のみがICCから出力される。したがって、ユーザID情報および暗号鍵は、安全であり、ICCがハッキングまたはリバースエンジニアリングされた場合であっても明らかにすることはできない。いくつかの実施形態では、ICCへのバックアップを提供し、データセキュリティをさらに強化するために、ID情報および暗号鍵を暗号テキストで記憶するために、鍵管理デバイスを使用することができる。
【００５３】
ユーザID情報を収集し、暗号演算に対する要求を開始するために、コンピューティングデバイスを使用することができる。ICCは、様々な通信プロトコルを介して無線でコンピューティングデバイスと通信することができ、または、安全な暗号演算に簡単に使用されるようにコンピューティングデバイスに統合もしくは挿入することができる。
【００５４】
本明細書で説明する主題の実装形態ならびにアクションおよび動作は、本明細書で開示された構造およびそれらの構造的等価物を含む、デジタル電子回路において、有形に具体化されたコンピュータソフトウェアもしくはファームウェアにおいて、コンピュータハードウェアにおいて、またはそれらのうちの1つもしくは複数の組合せにおいて実装することができる。本明細書で説明する主題の実施形態は、データ処理装置による実行のための、またはデータ処理装置の動作を制御するための、コンピュータプログラムキャリア上に符号化された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つまたは複数のリモートメモリに結合することができる。さらに、コンピュータは、別のデバイス、例えば、2〜3例を挙げると、携帯電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤー、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブル記憶デバイス、たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブに組み込むことができる。
【００６２】
コンポーネントは、直接または1つもしくは複数の中間コンポーネントを介して、互いに電気的または光学的に接続されるなど、相互的であることによって互いに「結合」することができる。コンポーネントのうちの1つが他のコンポーネントに統合されている場合、コンポーネントは、互いに「結合」することもできる。例えば、プロセッサに統合された記憶コンポーネント(例えば、L2キャッシュコンポーネント)は、プロセッサに「結合」される。
【００６３】
ユーザとの対話を提供するために、本明細書で説明する主題の実施形態は、ユーザに情報を表示するためのディスプレイデバイス、例えば、LCD(液晶ディスプレイ)モニタと、ユーザがコンピュータに入力を提供することができる入力デバイス、例えば、キーボードおよびポインティングデバイス、例えば、マウス、トラックボール、またはタッチパッドとを有するコンピュータ上に実装することができ、またはコンピュータと通信するように構成することができる。同様にユーザとの対話を提供するために他の種類のデバイスを使用することができ、例えば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックとすることができ、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態で受信することができる。加えて、コンピュータは、ユーザによって使用されるデバイスとの間でドキュメントを送受信することによって、例えば、ウェブブラウザから受信した要求に応答してユーザのデバイス上のウェブブラウザにウェブページを送信することによって、または、ユーザデバイス、例えば、スマートフォンもしくは電子タブレット上で実行されているアプリと対話することによって、ユーザと対話することができる。また、コンピュータは、テキストメッセージまたは他の形式のメッセージをパーソナルデバイス、例えば、メッセージングアプリケーションを実行しているスマートフォンに送信し、引き換えにユーザから応答メッセージを受信することによってユーザと対話することができる。
【００６４】
本明細書は、システム、装置、およびコンピュータプログラムコンポーネントに関連して「するように構成された」という用語を使用する。1つまたは複数のコンピュータのシステムについて、特定の動作またはアクションを実行するように構成されていることは、動作時にシステムに動作またはアクションを実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せがシステムにインストールされていることを意味する。1つまたは複数のコンピュータプログラムについて、特定の動作またはアクションを実行するように構成されていることは、1つまたは複数のプログラムが、データ処理装置によって実行されると装置に動作またはアクションを実行させる命令を含むことを意味する。専用論理回路について、特定の動作またはアクションを実行するように構成されていることは、回路が動作またはアクションを実行する電子ロジックを有することを意味する。
【００６５】
本明細書は、多くの特定の実施形態の詳細を含むが、これらは、特許請求の範囲自体によって定義される特許請求されているものの範囲に対する制限として解釈されるべきではなく、特定の実施形態に固有であり得る特徴の説明として解釈されるべきである。別々の実施形態の文脈において本明細書で説明されている特定の特徴は、単一の実施形態において組み合わせて実現することもできる。逆に、単一の実施形態の文脈において説明されている様々な特徴は、複数の実施形態で別々に、または任意の適切な部分的組合せで実現することもできる。さらに、特徴は、特定の組合せで機能するように上記で説明されている場合があり、当初はそのように特許請求さえされている場合があるが、特許請求された組合せからの1つまたは複数の特徴は、場合によっては、組合せから削除することができ、請求項は、部分的組合せまたは部分的組合せの変形例に向けられる場合がある。
【００６６】
同様に、動作は、特定の順序で図面内に示され、特許請求の範囲内に列挙されているが、これは、所望の結果を達成するために、そのような動作が図示された特定の順序もしくは連続した順序で実行されること、または、すべての示された動作が実行されることを必要とするものとして理解されるべきではない。特定の状況では、マルチタスクおよび並列処理が有利である場合がある。さらに、上記で説明した実施形態における様々なシステムモジュールおよびコンポーネントの分離は、すべての実施形態においてそのような分離を必要とするものとして理解されるべきではなく、説明されているプログラムコンポーネントおよびシステムを、一般に、単一のソフトウェア製品に一緒に統合することができ、または、複数のソフトウェア製品にパッケージ化することができることが理解されるべきである。
【００６７】
主題の特定の実施形態について説明した。他の実施形態は、以下の特許請求の範囲内にある。例えば、特許請求の範囲内に列挙されたアクションは、異なる順序で実行することができ、依然として所望の結果を達成することができる。一例として、添付図面内に描かれたプロセスは、所望の結果を達成するために、示された特定の順序、または連続的な順序を必ずしも必要としない。場合によっては、マルチタスクおよび並列処理が有利である場合がある。
【符号の説明】
【００６８】
100  ICC
102  メモリ
104  論理計算コンポーネント
500  鍵管理デバイス
504  鍵管理
506  記憶
508  書き込み
510  ランダム生成
512  削除
514  アルゴリズム管理
516  ID検証アルゴリズム
518  デジタル署名検証アルゴリズム
520  暗号化および復号アルゴリズム
522  トークンアルゴリズム
524  入力管理
526  アルゴリズム入力
528  ID情報入力
530  暗号鍵入力
532  デジタル署名生成
534  ID検証
700  装置
702  要求受信モジュール
704  デジタル署名判定モジュール
706  暗号化モジュール
708  記憶モジュール
【図１】
0006921222.tif 000002
【図２】
0006921222.tif 000003
【図３】
0006921222.tif 000004
【図４】
0006921222.tif 000005
【図５】
0006921222.tif 000006
【図６】
0006921222.tif 000007
【図７】
0006921222.tif 000008