(57)【要約】  公開鍵暗号化システムにおける秘密鍵管理のためのシステム及び方法を開示する。１つの実施形態では、これらのシステム及び方法が、「偽の」秘密鍵を利用して秘密鍵管理を行うことができる。【選択図】図１
2019519176.tif 000002
【特許請求の範囲】
【請求項１】
公開鍵暗号化のための鍵管理方法であって、
暗号解読能力を有するシステムにおいて、各エンティティの鍵の組が該エンティティの秘密鍵と該エンティティの該秘密鍵に対応する偽の秘密鍵とを有する、前記エンティティの複数の鍵の組をエンティティから遠隔に保管するステップと、
前記エンティティから暗号文コンテンツ及び偽の秘密鍵を受け取るステップと、
前記暗号文コンテンツが特定のエンティティについて暗号解読されている時に、前記偽の秘密鍵に基づいて前記エンティティの前記秘密鍵を取得するステップと、
を含むことを特徴とする方法。
【請求項２】
前記暗号要素が、前記特定のエンティティの新たな秘密鍵と、前記特定のエンティティの前記新たな秘密鍵に対応する偽の秘密鍵とを生成するステップと、
前記暗号要素が、前記偽の秘密鍵を前記特定のエンティティに送信するステップと、
をさらに含む、請求項１に記載の方法。
【請求項３】
前記エンティティの前記秘密鍵を用いて前記暗号文コンテンツを暗号解読するステップをさらに含む、
請求項２に記載の方法。
【請求項４】
前記特定のエンティティの前記秘密鍵を取得するステップは、前記暗号要素のユニフォームリソースロケータを鍵情報から抽出するステップと、前記暗号要素の前記ユニフォームリソースロケータと前記偽の秘密鍵とに基づいて前記特定のエンティティの前記新たな秘密鍵を取り出すステップとをさらに含む、
請求項１に記載の方法。
【請求項５】
各エンティティは、暗号解読能力を有するアプリケーションを含むコンピュータ装置である、
請求項１に記載の方法。
【請求項６】
各エンティティは、暗号解読能力を有するアプリケーション、暗号解読能力を有する装置、及び暗号解読能力を有するアプリケーションを使用するユーザのうちの１つである、
請求項１に記載の方法。
【請求項７】
前記特定のエンティティの前記偽の秘密鍵は、前記特定のエンティティの新たな秘密鍵へのポインタをさらに含む、
請求項１に記載の方法。
【請求項８】
鍵管理システムであって、
それぞれが自身の秘密鍵と鍵ストレージとを用いた公開鍵暗号解読能力を有する１又は２以上のエンティティと、
特定のエンティティの新たな秘密鍵と、該新たな秘密鍵に対応する偽の秘密鍵とを生成するメタデータエンコーダを有する、コンピュータネットワークによって前記エンティティに接続された暗号要素と、
を備え、前記暗号要素は、前記特定のエンティティに前記偽の秘密鍵を送信する、
ことを特徴とするシステム。
【請求項９】
前記暗号要素は、前記特定のクライアントからの暗号文と前記偽の秘密鍵とを含む要求に基づいて暗号解読プロセスを実行し、前記暗号要素は、前記偽の秘密鍵に基づいて前記特定のエンティティの前記新たな秘密鍵を取得して、前記特定のエンティティの前記新たな秘密鍵を用いた前記暗号文の前記暗号解読を可能にする、
請求項８に記載のシステム。
【請求項１０】
各エンティティは、前記特定のエンティティの前記新たな秘密鍵を用いた前記暗号文の前記暗号解読を実行する暗号解読モジュールを有する、
請求項９に記載のシステム。
【請求項１１】
前記暗号解読モジュールは、鍵情報を受け取る構文解析器モジュール、及び前記偽の秘密鍵に基づいて前記特定のエンティティの前記新たな秘密鍵を取得するメタ情報抽出器モジュール、をさらに含む、
請求項１０に記載のシステム。
【請求項１２】
前記メタ情報抽出器モジュールは、前記鍵情報から前記暗号要素のユニフォームリソースロケータを抽出し、該暗号要素の該ユニフォームリソースロケータに基づいて前記特定のエンティティの前記新たな秘密鍵を取り出す、
請求項１１に記載のシステム。
【請求項１３】
各エンティティは、暗号解読能力を有するアプリケーションを含むコンピュータ装置である、
請求項８に記載のシステム。
【請求項１４】
各エンティティは、暗号解読能力を有するアプリケーション、暗号解読能力を有する装置、及び暗号解読能力を有するアプリケーションを使用するユーザのうちの１つである、
請求項８に記載のシステム。
【請求項１５】
前記特定のエンティティの前記偽の秘密鍵は、前記特定のエンティティの新たな秘密鍵へのポインタをさらに含む、
請求項８に記載のシステム。
【請求項１６】
公開鍵暗号化システムであって、
それぞれが自身の秘密鍵と鍵ストレージとを用いた公開鍵暗号解読能力を有する１又は２以上のエンティティと、
特定のエンティティの新たな秘密鍵と、該新たな秘密鍵に対応する偽の秘密鍵とを生成するメタデータエンコーダを有する、コンピュータネットワークによって前記エンティティに接続された暗号要素と、
を備え、前記暗号要素は、前記特定のエンティティに前記偽の秘密鍵を送信する、
ことを特徴とするシステム。
【請求項１７】
前記暗号要素は、前記特定のクライアントからの暗号文と前記偽の秘密鍵とを含む要求に基づいて暗号解読プロセスを実行し、前記暗号要素は、前記偽の秘密鍵に基づいて前記特定のエンティティの前記新たな秘密鍵を取得して、前記特定のエンティティの前記新たな秘密鍵を用いた前記暗号文の前記暗号解読を可能にする、
請求項１６に記載のシステム。
【請求項１８】
各エンティティは、前記特定のエンティティの前記新たな秘密鍵を用いた前記暗号文の前記暗号解読を実行する暗号解読モジュールを有する、
請求項１７に記載のシステム。
【請求項１９】
前記暗号解読モジュールは、鍵情報を受け取る構文解析器モジュールをさらに含み、メタ情報抽出器モジュールが、前記偽の秘密鍵に基づいて前記特定のエンティティの前記新たな秘密鍵を取得する、
請求項１８に記載のシステム。
【請求項２０】
前記メタ情報抽出器モジュールは、前記鍵情報から前記暗号要素のユニフォームリソースロケータを抽出し、該暗号要素の該ユニフォームリソースロケータに基づいて前記特定のエンティティの前記新たな秘密鍵を取り出す、
請求項１９に記載のシステム。
【請求項２１】
各エンティティは、暗号解読能力を有するアプリケーションを含むコンピュータ装置である、
請求項１６に記載のシステム。
【請求項２２】
各エンティティは、暗号解読能力を有するアプリケーション、暗号解読能力を有する装置、及び暗号解読能力を有するアプリケーションを使用するユーザのうちの１つである、
請求項１６に記載のシステム。
【請求項２３】
前記特定のエンティティの前記偽の秘密鍵は、前記特定のエンティティの新たな秘密鍵へのポインタをさらに含む、
請求項１６に記載のシステム。
【請求項２４】
鍵管理方法であって、
エンティティの秘密鍵を生成するステップと、
前記生成した秘密鍵を、前記エンティティから離れた、鍵ストレージを有する鍵管理要素に保管するステップと、
鍵管理要素において、前記生成された秘密鍵へのポインタとしての役割を果たす偽の秘密鍵を生成するステップと、
前記偽の秘密鍵を前記エンティティに送信して鍵ストレージに保管するステップと、
を含み、前記エンティティは、前記偽の秘密鍵を用いて要求を行うことによって暗号文を暗号解読する、
ことを特徴とする方法。
【請求項２５】
新たなエンティティである前記エンティティの公開鍵を生成するステップをさらに含む、
請求項２４に記載の方法。
【請求項２６】
エンティティの前記秘密鍵を生成するステップは、既存のエンティティの新たな秘密鍵を生成するステップをさらに含む、
請求項２４に記載の方法。
【請求項２７】
前記エンティティは、暗号解読能力を有するコンピュータ装置である、
請求項２４に記載の方法。
【請求項２８】
前記エンティティは、暗号解読能力を有するアプリケーション、暗号解読能力を有する装置、及び暗号解読能力を有するアプリケーションを使用するユーザのうちの１つである、
請求項２４に記載の方法。
【請求項２９】
前記特定のエンティティの前記偽の秘密鍵は、前記特定のエンティティの新たな秘密鍵へのポインタをさらに含む、
請求項２４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に公開鍵暗号化システム及び方法に関し、具体的には、公開鍵暗号化システムにおける秘密鍵の管理に関する。
【背景技術】
【０００２】
暗号化は、メッセージに含まれているデータ又は情報を無許可の第三者から見えなくするために使用される周知の技術である。これまで多くの異なるタイプの暗号化が使用されてきた。１つの有名なタイプの暗号化に、公開鍵と秘密鍵とを生成して少なくとも秘密鍵から公開鍵への計算が計算的に困難である数学的関係を持たせるようにした公開鍵暗号化がある。換言すれば、公開鍵のみを前提として秘密鍵を特定することは困難である。この結果、公開鍵は公的に配布（公開鍵リング又は鍵サーバなどに保管）することができ、秘密鍵はユーザによって安全に保持される。ユーザは、公開鍵暗号化を用いて暗号化メッセージを送信したいと望む時には受信者の公開鍵を見つけ出し、その公開鍵を用いてメッセージを暗号化する。受信者は、メッセージを受け取ると自身の秘密鍵を用いてメッセージを暗号解読する。同様に、誰かがユーザにメッセージを送信したいと望む時には、ユーザの公開鍵を用いてメッセージが暗号化され、ユーザは安全な秘密鍵を用いてメッセージを暗号解読する。公開鍵暗号化の利点は、ユーザの秘密鍵をいずれの第三者にも全く公開又は通信する必要がない点である。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
図１に、公開鍵暗号化を用いてメッセージを暗号化／暗号解読することができるアプリケーション１０２を含む理想的な暗号鍵システム１００を示す。アプリケーションは、秘密鍵の保管を含むアプリケーションの公開鍵暗号化プロセスを管理する暗号ＡＰＩラッパーに暗号サービスＡＰＩを利用して接続することができる。図１の理想的なシステムは、関数呼び出しによってアクセスできる暗号サービス１０６も有する。暗号サービス１０６は、暗号関数１０８及び鍵ストレージ１１０を含むことができる。暗号サービス１０６は、安全にホストしてハッカーなどから保護することができる。この理想的なシステムでは、安全な暗号サービス１０６上に秘密鍵が維持されるように、暗号サービス１０６がユーザの秘密鍵を保管して管理するとともに、アプリケーションのための暗号解読機能を実行することもできる。
【０００４】
図２に、同じアプリケーション２０２を有する典型的な暗号鍵システム２００を示す。ほとんどの典型的な公開鍵システムの実装では、アプリケーション２０２が、ユーザの秘密鍵を保管して管理する鍵ストレージ２０４を含むことができる。このアプリケーションは、理想的なシステムと同様に、秘密鍵を用いて暗号化／暗号解読を実行するための複数の暗号関数２０８を有する暗号ライブラリ２０６に暗号関数ＡＰＩを用いて接続することができる。典型的なシステムでは、暗号化／暗号解読を実行するために、アプリケーション内の鍵ストレージ２０４から秘密鍵を公開する暗号ライブラリ２０６に秘密鍵を通信しなければならない。また、図２のシステムでは、秘密鍵が各アプリケーション２０２上に保管されているので、秘密鍵を更新することが非常に困難である。さらに、モノのインターネット（ＩｏＴ）タイプのシステムでは、秘密鍵の管理、従って公開鍵暗号化システムが実現不可能である。従って、公開鍵暗号化システムの秘密鍵を管理するためのシステム及び方法を提供することが望ましい。
【図面の簡単な説明】
【０００５】
【図１】理想的な暗号鍵システムを示す図である。
【図２】典型的な暗号鍵システムを示す図である。
【図３】公開鍵暗号化を使用する複数のコンピュータ装置を有するコンピュータシステムネットワークを示す図である。
【図４】暗号鍵管理を含む暗号鍵システムを示す図である。
【図５】図２のシステムの暗号解読モジュールを示す図である。
【図６】図４の暗号化システムと共に使用できる暗号解読モジュールの第１の実装を示す図である。
【図７】図４の暗号化システムと共に使用できる暗号解読モジュールの第２の実装を示す図である。
【発明を実施するための形態】
【０００６】
本開示は、モノのインターネット（ＩｏＴ）ネットワークに使用される公開鍵暗号化システム及び方法における秘密鍵の管理にとりわけ適用可能であり、この文脈で本開示を説明する。しかしながら、この秘密鍵管理システムは、他の暗号化システムの秘密鍵を管理するために使用することもでき、あらゆるサイズのネットワーク又はコンピュータ装置に使用することもできると理解されるであろう。
【０００７】
図３に、それぞれが公開鍵暗号化を使用する、図示の装置１、．．．、装置Ｎ＋１などの複数のコンピュータ装置３０２を有するコンピュータシステムネットワーク３００を示す。このコンピュータシステムネットワークは、各コンピュータ装置３０２が通信経路３０３を通じて他のコンピュータ装置３０２と通信するモノのインターネット（ＩｏＴ）システムとすることができる。このシステムでは、ＩｏＴ内の各コンピュータ装置３０２がプロセッサを有し、暗号化／暗号解読能力を有するアプリケーション３０４又はバックグラウンド暗号化／暗号解読ルーチンを実行する。この暗号化／暗号解読能力は、例えばコンピュータ装置３０２同士による安全な通信を可能にすることができる。コンピュータネットワークシステム３００は、以下でさらに詳細に説明するように各コンピュータ装置３０２の暗号化／暗号解読要素の秘密鍵を管理する、通信経路３０３に接続された暗号サービス３０６を有することもできる。
【０００８】
各コンピュータ装置３０２は、１又は２以上のプロセッサと、メモリと、ディスクドライブ又はフラッシュなどの永続記憶装置と、ディスプレイ（サーモスタットなどのいくつかのコンピュータ装置では任意）と、各コンピュータ装置３０２がコンピュータシステムネットワーク３００上の他のサービス要素／装置と通信できるようにする通信回路とを有するプロセッサベースの装置とすることができる。例えば、各コンピュータ装置３０２は、パーソナルコンピュータ、ラップトップ又はタブレットコンピュータ、サーモスタット又はドアロックのような家庭機能を制御する装置、及び冷蔵庫又はオーブンなどの家庭用電化製品などとすることができる。１つの実施形態では、各コンピュータ装置が、（複数行のコンピュータコードを有する）暗号化／暗号解読要素を実行して暗号化／暗号解読能力をもたらすことができる。別の実施形態では、暗号化／暗号解読要素を、暗号化／暗号解読能力を実行する集積回路、フィールドプログラマブルゲートアレイ、マイクロコントローラ及びマイクロプロセッサなどのハードウェアとすることができる。
【０００９】
暗号サービス３０６は、ハードウェア又はソフトウェアで実装することができる。ソフトウェアで実装する場合、暗号サービス３０６は、暗号サービス３０６をホストするコンピュータシステムのプロセッサが実行できる複数行のコンピュータコードとすることができる。このコンピュータシステムは、サーバコンピュータ、アプリケーションサーバ、ブレードサービス及びクラウドコンピューティングリソースなどとすることができる。ハードウェアで実装する場合、暗号サービス３０６は、後述する鍵管理プロセスを実行する集積回路、フィールドプログラマブルゲートアレイ、マイクロコントローラ及びマイクロプロセッサなどとすることができる。
【００１０】
図３に示すコンピュータシステム３００又は他のいずれかのコンピュータシステムでは、各コンピュータ装置３０２の秘密鍵を管理して維持しなければならない。図３に示すＩｏＴのような大規模コンピュータシステム又はコンピュータネットワークでは、各コンピュータ装置３０２の秘密鍵の管理及び維持が非常に面倒なものとなり得る。この秘密鍵管理機能、及び秘密鍵管理機能を用いた暗号化／暗号解読能力は、図４を参照しながら後述するシステム及び図５〜図６を参照しながら後述する暗号解読モジュールによってもたらされる。
【００１１】
図４に、鍵管理を含む暗号鍵システムを示す。この暗号鍵システムでは、１又は２以上のコンピュータ装置の各コンピュータ装置の暗号解読モジュールのインターフェイスを変更することなく、（図４の暗号サービス３０６などの）遠隔ソース上に保管された鍵情報を用いて暗号文(cyphertext)を平文に暗号解読することができる。他の暗号化ソリューションと同様に、暗号鍵システムが既存の暗号化システムとの互換性を有するように、各コンピュータ装置上には暗号化／暗号解読能力を有するアプリケーション３０４が存在する。アプリケーション３０４は、暗号鍵システムの「偽の」秘密鍵を保管する鍵ストレージ４００を有することができる。
【００１２】
アプリケーション３０４は、暗号ライブラリ４０２への既知の暗号関数ＡＰＩと相互連結することができる。暗号ライブラリ４０２は、アプリケーション３０４から分離することができ、アプリケーション３０４と同じコンピュータシステム上に位置することも、或いはコンピュータシステムネットワークの遠隔コンピューティングリソース上に位置することもできる。暗号ライブラリ４０２は、アプリケーション３０４によって要求された暗号化／暗号解読を実行してデータの送信を管理するように動作するメタデータデコーダ４０４及び暗号ＡＰＩラッパー４０６をさらに含むことができる。メタデータデコーダ４０４は、アプリケーション３０４のストレージ４００から「偽の」秘密鍵を受け取った後に、遠隔鍵ストレージ４１０内の実際の秘密鍵を見つけ出すことができる。暗号ＡＰＩラッパー４０６は、暗号化及び暗号解読機能を実装する既知の暗号ＡＰＩへの、アプリケーション３０４の暗号化／暗号解読能力のためのインターフェイスを提供することができる。
【００１３】
鍵管理を含む暗号鍵システムは、アプリケーション３０４と同じコンピュータシステム上又はコンピュータシステムネットワーク３００内の異なるコンピュータシステム上にアプリケーション３０４から離れて存在することができる暗号サービス要素３０６をさらに含むことができる。暗号サービス要素３０６は、暗号関数４０８と、鍵ストレージ４１０と、メタデータエンコーダ４１２とをさらに含むことができる。暗号関数４０８は、様々な暗号関数の保管及び配布を行うとともに、鍵ストレージ４１０に保管できる秘密鍵を管理することができる。暗号関数４０８は、あらゆる公開鍵暗号化システムと同様に、対象受信者の公開鍵を用いてメッセージを暗号化する暗号化モジュール／要素と、暗号関数ＡＰＩを用いて通信を行ったアプリケーション３０４からの要求に基づいてユーザの秘密鍵を用いて受信暗号化メッセージを暗号解読する暗号解読モジュール／要素とを含むことができる。メタデータエンコーダ４１２は、実際の秘密鍵に対応する「偽の」秘密鍵４１４を（各アプリケーションが独自の暗号化／暗号解読要素を有していると想定して）アプリケーション３０４毎に生成することができる。暗号サービス３０６は、この偽の秘密鍵４１４をアプリケーション３０４の暗号化／暗号解読要素の鍵ストレージ４００に提供することができる。
【００１４】
鍵ストレージ４１０は、システムが偽の秘密鍵に基づいて正しい秘密鍵を取得して暗号化コンテンツを暗号解読できるように各エンティティの秘密鍵と対応する偽の秘密鍵とを保管できるという点で、鍵管理機能の一部を実行することができる。
【００１５】
暗号ライブラリ４０２及び暗号サービス３０６の各々は、ハードウェア又はソフトウェアで実装することができる。ソフトウェアで実装する場合、暗号ライブラリ４０２及び暗号サービス３０６の各々は、暗号ライブラリ４０２又は暗号サービス３０６をホスト又は記憶するコンピューティングリソース／装置のプロセッサが実行できる複数行のコンピュータコードとすることができる。ハードウェアで実装する場合、暗号ライブラリ４０２及び暗号サービス３０６の各々は、各構成要素の機能を実行する集積回路、フィールドプログラマブルゲートアレイ、マイクロコントローラ及びマイクロプロセッサなどとすることができる。
【００１６】
動作中、メッセージの送信者は、アプリケーション３０４のユーザの公開鍵（又はアプリケーション３０４に関連する公開鍵）を用いてメッセージを暗号化する。アプリケーション３０４は、暗号解読すべきメッセージを受け取ると、鍵ストレージ４００から（偽の秘密鍵４１４である）秘密鍵を取り出して暗号ライブラリ４０２上に転送し、これによってメタデータデコーダ４０４が偽の秘密鍵を復号して、実際の秘密鍵が保管されている鍵ストレージ４１０からの秘密鍵を用いた暗号解読を要求できるようになる。その後、暗号関数４０８がこの秘密鍵を用いてメッセージを暗号解読し、アプリケーション３０４に平文メッセージが戻される。偽の秘密鍵４１４は、遠隔鍵ストレージ４１０に保管されている実際の秘密鍵へのポインタである。ユーザ又はアプリケーションに関連する秘密鍵を更新する必要がある場合には、１）暗号関数４０８が新たな秘密鍵を生成することができ、２）秘密鍵を遠隔鍵ストレージ４１０に保管することができ、３）メタデータエンコーダ４１２が、実際の秘密鍵へのポインタとしての役割を果たす新たな偽の秘密鍵４１４を生成することができ、４）新たな偽の秘密鍵をアプリケーション３０４に送信して鍵ストレージ４００に保管することができる。アプリケーション３０４は、秘密鍵の管理が容易になるように偽の秘密鍵をあたかも実際の秘密鍵であるかのように使用する。同様に、新たなユーザ又はアプリケーションについては、システムが、１）公開鍵及び秘密鍵のペアを生成し、２）メタデータエンコーダ４１２を用いて偽の秘密鍵を生成し、３）秘密鍵を鍵ストレージ４１０に保管し、４）偽の秘密鍵をアプリケーション又は新たなユーザに送信して上述したように使用できるようにする。
【００１７】
図３及び図４のシステムを使用すれば、システムが既存の公開鍵暗号化システム及びそのモジュールとの互換性を有するように暗号解読モジュールのインターフェイスを変更することなく各コンピュータ装置３０２及びアプリケーション３０４に関連する秘密鍵を容易に管理することができる。
【００１８】
図５に、図示のような構文解析／検証要素５０２と暗号解読要素／モジュール５０４とを含むことができる図２の典型的なシステムの暗号解読モジュール５００を示す。暗号解読モジュール５０４は、秘密鍵情報及び暗号文を入力として受け取ってエラー信号及び平文を出力する。鍵情報を構文解析器によって処理して数学的に包括的な形で表される暗号鍵の組を取得し、この組を検証して有効な鍵の完全性を保っているかどうかを判定する。この組から暗号解読プロセスに必要な（単複の）秘密鍵を選択して暗号解読プロセス５０４に送信する。暗号解読プロセス５０４は、暗号文及び秘密鍵を用いて暗号文の暗号解読アルゴリズムを処理することによって平文を出力する。
【００１９】
図６に、図３及び図４の暗号化システムと共に使用できる暗号解読モジュール６００の第１の実装を示す。暗号解読モジュール６００は、装置上のアプリケーション３０４の一部、又は暗号サービス３０６の一部とすることができる。暗号解読モジュール６００は、構文解析器／検証器要素６０２と、暗号解読要素６０４と、メタ情報抽出器要素６０６と、遠隔暗号解読クライアント６０８とを有することができる。暗号解読モジュール６００のこれらの各要素は、ハードウェア又はソフトウェアで実装することができる。暗号化システムについて上述したように、システムは、（暗号化／暗号解読能力を有するユーザ、アプリケーション、及びコンピュータ装置を含む）エンティティの実際の秘密鍵のための鍵ストレージ４１０と、システムの暗号関数４０８を含むことができる遠隔暗号解読サーバとを有する遠隔暗号サービスモジュール３０６を有する。暗号解読モジュールは、鍵情報及び暗号文（暗号化されたコンテンツ）を入力として用いて平文（秘密鍵を用いて暗号解読された暗号解読コンテンツ）を出力する。このモジュールは、メタ情報抽出器６０６が構文解析検証要素６０２及び暗号解読要素６０４からのあらゆるエラー信号を捕捉した後に停止する。メタ情報抽出器６０６は、鍵情報からサーバ情報を抽出する。サーバ情報は、正常に取得されると遠隔暗号解読クライアント６０８に送信され、遠隔暗号解読クライアント６０８が遠隔サーバに接続し、暗号解読プロトコルと暗号関数４０８を有する遠隔暗号解読サーバとを用いて暗号解読プロセスを実行する。遠隔暗号解読サーバは、偽の秘密鍵からの鍵情報に基づいて暗号解読用の秘密鍵を要求した後で、鍵ストレージ４１０からの実際の秘密鍵を用いて暗号解読を実行することができる。その後、遠隔暗号解読クライアント６０８は、モジュールからの出力として平文を出力する。
【００２０】
例えば、ＲＳＡ暗号システムのための暗号解読モジュールについて考察する。鍵情報が、ＲＳＡ暗号の公開鍵モジュラスであるＮ、公開鍵指数であるＥ、及び秘密鍵であるＤから成ると仮定する。平文ｍを暗号化するには、ｍ＾Ｅ  ｍｏｄ  Ｎを計算して暗号文を取得する。暗号文ｃを暗号解読するには、ｃ＾Ｄ  ｍｏｄ  Ｎを計算する。メタ情報抽出器は、以下に示すように実装することができる。
（１）２＾（ＤＥ）＝２  ｍｏｄ  Ｎであるかどうかをチェックする。そうである場合、エラー信号を出力して停止する。
（２）Ｄを文字列として構文解析して遠隔暗号解読サーバのＵＲＬを取得する。上手くいかなかった場合、エラー信号を出力して停止する。
（３）入力にＵＲＬを使用して遠隔暗号解読サーバを呼び出す。
【００２１】
ユーザは、暗号解読モジュールのインターフェイスを変更することなく遠隔暗号解読を実行することができる。遠隔暗号解読を実行するには、
（１）公開鍵Ｎ、Ｅと、遠隔暗号解読サーバのＵＲＬを表す文字列Ｓとを取得する。
（２）Ｓを大きな数字として符号化してＤを取得する。
（３）Ｎ、Ｅ、Ｄを鍵情報として使用する。
【００２２】
ＲＳＡ暗号システムが安全とみなされる限り、上記で取得されたＤが本物の公開鍵と衝突することはほぼあり得ず、このプロセスが正常に機能することを示す。
【００２３】
鍵情報がさらに多くのエントリを有する場合には、これらを用いてサーバ情報を埋め込むことができる。例えば、鍵情報が、Ｎ＝ＰＱを満たす素数であるエントリＰ及びＱを有する場合には、ＵＲＬの一部又はＵＲＬ全体をＰ及び／又はＱに符号化することができる。上記のシステムは、他の公開鍵アルゴリズム、及び／又はＥＣＤＨ鍵共有又はＥＣ  ＥｌＧａｍａｌ暗号などの楕円曲線暗号システムとも動作する。
【００２４】
図７に、図４の暗号化システムと共に使用できる暗号解読モジュールの第２の実装を示しており、このシステムは図６に示すものと同様の機能を有する同様の要素（同じ参照数字で示す）を有するため、ここでは説明を繰り返さない。暗号解読モジュール６００は、装置上のアプリケーション３０４の一部、又は暗号サービス３０６の一部とすることができる。この第２の実装では、構文解析器及び検証器６０２の前にメタ情報抽出器６０６を配置することができる。この構成では、メタ情報抽出器６０６を以下に示すように実装することができる。
（１）Ｄを文字列として構文解析して遠隔暗号解読サーバのＵＲＬを取得する。上手くいかなかった場合には構文解析及び検証を呼び出す。
（２）入力上のＵＲＬを用いて遠隔暗号解読サーバを呼び出す。
【００２５】
秘密鍵は一様な乱数として選択されると考えられ、従って本物の秘密鍵がＵＲＬ文字列のような完全性を有する確率は非常に低いため、この実装はほぼ正常に機能する。
【００２６】
鍵情報がさらに多くのエントリを有する場合、システムはこれらを用いてサーバ情報を埋め込むことができる。例えば、鍵情報が、Ｎ＝ＰＱを満たす素数であるエントリＰ及びＱを伝達する場合には、ＵＲＬの一部又はＵＲＬ全体をＰ及び／又はＱに符号化することができる。この状況では、メタ情報抽出器を以下に示すように実装することができる。
（１）Ｄ＝０をチェックし、Ｐを文字列として構文解析して遠隔暗号解読サーバのＵＲＬを取得する。上手くいかなかった場合には解析及び検証を呼び出す。
（２）入力上のＵＲＬを用いて遠隔暗号解読サーバを呼び出す。
【００２７】
以上、特定の実施形態を参照しながら説明目的で解説を行った。しかしながら、上記の例示的な説明は、完全であることや、或いは開示した厳密な形に本開示を限定することを意図したものではない。上記の教示に照らして多くの修正及び変形が可能である。これらの実施形態は、本開示の原理及びその実際の応用を最良に説明することにより、他の当業者が検討する特定の用途に適した形で本開示及び様々な実施形態を様々に修正して最良に利用できるように選択し説明したものである。
【００２８】
本明細書に開示したシステム及び方法は、１又は２以上のコンポーネント、システム、サーバ、機器又はその他のサブコンポーネントを通じて実装することができ、或いはこのような要素間で分散することもできる。システムとして実装する場合、このようなシステムは、とりわけ汎用コンピュータで見られるソフトウェアモジュール、汎用ＣＰＵ、ＲＡＭなどのコンポーネントを含み、及び／又は伴うことができる。サーバに革新性が存在する実装では、このようなサーバが、汎用コンピュータで見られるようなＣＰＵ、ＲＡＭなどのコンポーネントを含み、及び／又は伴うことができる。
【００２９】
また、本明細書におけるシステム及び方法は、上述した以外の異種の又は完全に異なるソフトウェアコンポーネント、ハードウェアコンポーネント及び／又はファームウェアコンポーネントを含む実装を通じて実現することもできる。このような他のコンポーネント（例えば、ソフトウェア、処理コンポーネントなど）、及び／又は本発明に関連する又は本発明を具体化するコンピュータ可読媒体については、例えば本明細書における革新性の態様を数多くの汎用又は専用コンピュータシステム又は構成と調和させて実装することができる。本明細書における革新性との併用に適することができる様々な例示的なコンピュータシステム、環境及び／又は構成としては、以下に限定されるわけではないが、パーソナルコンピュータ、ルーティング／接続性コンポーネントなどのサーバ又はサーバコンピュータ装置、ハンドヘルド又はラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、消費者電子装置、ネットワークＰＣ，他の既存のコンピュータプラットフォーム、上記のシステム又は装置のうちの１つ又は２つ以上を含む分散型コンピュータ環境などの内部の又はこれらに組み込まれたソフトウェア又はその他のコンポーネントを挙げることができる。
【００３０】
場合によっては、システム及び方法の態様を、例えばこのようなコンポーネント又は回路に関連して実行されるプログラムモジュールを含む論理回路及び／又は論理命令を介して実現し、或いはこのような論理回路及び／又は論理命令によって実行することもできる。一般に、プログラムモジュールは、本明細書における特定のタスク又は特定の命令を実行するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含むことができる。また、本発明は、通信バス、通信回路又は通信リンクを介して回路が接続された分散ソフトウェア、分散コンピュータ又は分散回路環境を背景として実施することもできる。分散環境では、メモリストレージデバイスを含むローカルコンピュータ記憶媒体及び遠隔コンピュータ記憶媒体の両方から制御／命令を行うことができる。
【００３１】
本明細書におけるソフトウェア、回路及びコンポーネントは、１又は２以上のタイプのコンピュータ可読媒体を含み及び／又は利用することもできる。コンピュータ可読媒体は、このような回路及び／又はコンピュータコンポーネント上に存在する、これらに関連する、又はこれらがアクセスできるいずれかの利用可能な媒体とすることができる。一例として、限定するわけではないが、コンピュータ可読媒体としてはコンピュータ記憶媒体及び通信媒体を挙げることができる。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール又はその他のデータなどの情報を記憶するためのいずれかの方法又は技術で実装された揮発性及び不揮発性の取り外し可能及び取り外し不能媒体を含む。コンピュータ記憶媒体は、以下に限定するわけではないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ又はその他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）又はその他の光学ストレージ、磁気テープ、磁気ディスクストレージ又はその他の磁気記憶装置、或いは所望の情報を記憶するために使用できるとともにコンピュータコンポーネントがアクセスできる他のいずれかの媒体を含む。通信媒体は、コンピュータ可読命令、データ構造、プログラムモジュール及び／又はその他のコンポーネントを含むことができる。さらに、通信媒体は、有線ネットワーク又は直接有線接続などの有線媒体を含むことができるが、本明細書におけるこのようなタイプの媒体は、いずれも一時的媒体を含まない。また、上記のいずれかの組み合わせもコンピュータ記憶媒体の範囲に含まれる。
【００３２】
本明細書におけるコンポーネント、モジュール、装置などの用語は、様々な形で実装できるあらゆるタイプの論理的又は機能的ソフトウェア要素、回路、ブロック及び／又はプロセスを意味することができる。例えば、様々な回路及び／又はブロックの機能を互いに組み合わせて他のあらゆる数のモジュールにすることができる。各モジュールは、中央処理装置に読み取られて本明細書における革新性の機能を実行できる、有形メモリ（例えば、ランダムアクセスメモリ、リードオンリメモリ、ＣＤ−ＲＯＭメモリ、ハードディスクドライブなど）に記憶されたソフトウェアプログラムとして実装することもできる。或いは、これらのモジュールは、汎用コンピュータに送信される、又は送信搬送波を介して処理／グラフィックスハードウェアに送信されるプログラミング命令を含むこともできる。また、モジュールは、本明細書における革新性に含まれる機能を実装するハードウェア論理回路として実装することもできる。最後に、これらのモジュールは、専用命令（ＳＩＭＤ命令）、フィールドプログラマブルロジックアレイ、又は所望のレベルの性能及びコストをもたらすこれらのいずれかの混合物を用いて実装することもできる。
【００３３】
本明細書に開示したように、本開示による機能は、コンピュータハードウェア、ソフトウェア及び／又はファームウェアを通じて実装することができる。例えば、本明細書で開示したシステム及び方法は、例えばデータベース、デジタル電子回路、ファームウェア、ソフトウェア又はこれらの組み合わせも含むコンピュータなどのデータプロセッサを含む様々な形態で具体化することができる。さらに、開示した実装の一部では、特定のハードウェアコンポーネントについて説明しているが、本明細書における革新性によるシステム及び方法は、ハードウェア、ソフトウェア及び／又はファームウェアのあらゆる組み合わせを用いて実装することもできる。さらに、上述した機能及びその他の態様、並びに本明細書における革新性の原理は、様々な環境で実装することができる。このような環境及び関連する用途は、本発明による様々なルーチン、プロセス及び／又は動作を実行するように特別に構成することも、或いは汎用コンピュータ、又は必要な機能を提供するようにコードによって選択的に有効化又は再構成されたコンピュータプラットフォームを含むこともできる。本明細書で開示したプロセスは、本質的にいずれかの特定のコンピュータ、ネットワーク、アーキテクチャ、環境又はその他の装置に関連するものではなく、ハードウェア、ソフトウェア及び／又はファームウェアの好適な組み合わせによって実装することができる。例えば、本発明の教示に従って書かれたプログラムと共に様々な汎用機械を使用することもでき、或いは必要な方法及び技術を実行するように特殊な装置又はシステムを構成する方が便利な場合もある。
【００３４】
本明細書で説明したロジックなどの方法及びシステムの態様は、フィールドプログラマブルゲートアレイ（「ＦＰＧＡ」）、プログラマブルアレイロジック（「ＰＡＬ」）デバイス、電気的にプログラム可能なロジックなどのプログラマブルロジックデバイス（「ＰＬＤ」）、メモリデバイス及び標準的なセルベースの装置、並びに特定用途向け集積回路を含む様々な回路のいずれかにプログラムされる機能として実装することもできる。態様を実装するための他のいくつかの可能性としては、メモリデバイス、（ＥＥＰＲＯＭなどの）メモリ付きマイクロコントローラ、内蔵マイクロプロセッサ、ファームウェア、ソフトウェアなどが挙げられる。さらに、ソフトウェアベースの回路エミュレーション、個別ロジック（順序ロジック及び組み合わせロジック）、カスタムデバイス、ファジー（ニューラル）ロジック、量子デバイス、及びこれらのデバイスタイプのいずれかの混成を有するマイクロプロセッサにおいて態様を具体化することもできる。例えば、金属酸化物半導体電界効果トランジスタ（「ＭＯＳＦＥＴ」）技術に似た相補型金属酸化物半導体（「ＣＭＯＳ」）、バイポーラ技術に似たエミッタ結合型論理回路（「ＥＣＬ」）、ポリマー技術（例えば、シリコン共役ポリマー及び金属共役ポリマー金属構造体）、混合アナログ及びデジタルなどの基礎デバイス技術を様々なコンポーネントタイプで提供することができる。
【００３５】
また、本明細書で開示した様々なロジック及び／又は機能は、挙動特性、レジスタ転送特性、論理コンポーネント特性及び／又はその他の特性の観点から、ハードウェア、ファームウェアのあらゆる数の組み合わせを使用して、及び／又は機械可読又はコンピュータ可読媒体に具体化されたデータ及び／又は命令として有効にすることができる。このようなフォーマットデータ及び／又は命令を具体化できるコンピュータ可読媒体は、限定的な意味ではなく様々な形態の不揮発性記憶媒体（例えば、光学記憶媒体、磁気記憶媒体又は半導体記憶媒体）を含むことができるが、ここでも一時的媒体は含まない。本明細書全体を通じ、「備える（ｃｏｍｐｒｉｓｅ、ｃｏｍｐｒｉｓｉｎｇ）」などの用語は、文脈上明らかに他の意味を必要としない限り、排他的又は網羅的な意味の対語である包括的な意味で、すなわち「〜を含むけれどもそれに限定されない（ｉｎｃｌｕｄｉｎｇ，ｂｕｔ  ｎｏｔ  ｌｉｍｉｔｅｄ  ｔｏ）」という意味で解釈されたい。また、単数又は複数を用いた単語は、それぞれ複数又は単数も含む。また、「本明細書において（ｈｅｒｅｉｎ）」、「本明細書に従って（ｈｅｒｅｕｎｄｅｒ）」、「上記の（ａｂｏｖｅ）」、「以下の（ｂｅｌｏｗ）」、及び同様の意味の単語は、本出願のいずれかの特定の部分ではなく本出願全体を示す。２又は３以上の項目のリストへの言及において「又は（ｏｒ）」という単語を使用している場合、この単語は、リスト内のいずれかの項目、リスト内の全ての項目、及びリスト内の項目のいずれかの組み合わせ、という解釈を全て含む。
【００３６】
本明細書では、本発明の現在のところ好ましいいくつかの実装について具体的に説明したが、本発明に関連する当業者には、本発明の趣旨及び範囲から逸脱することなく、本明細書で図示し説明した様々な実装の変形及び変更を行えることが明らかであろう。従って、本発明は、適用される法の原則によって定められる範囲のみに限定されるように意図されている。
【００３７】
上記では、本開示の特定の実施形態について言及したが、当業者であれば、本開示の原理及び趣旨から逸脱することなく実施形態に変更を行うことができ、本開示の範囲は添付の特許請求の範囲によって定められると理解するであろう。
【符号の説明】
【００３８】
１００  暗号鍵システム
１０２  アプリケーション
１０４  暗号ＡＰＩラッパー
１０６  暗号サービス
１０８  暗号関数
１１０  鍵ストレージ
【図１】
2019519176.tif 000003
【図２】
2019519176.tif 000004
【図３】
2019519176.tif 000005
【図４】
2019519176.tif 000006
【図５】
2019519176.tif 000007
【図６】
2019519176.tif 000008
【図７】
2019519176.tif 000009
【国際調査報告】
2019519176.tif 000010