(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】2019519176
(43)【公表日】20190704
(54)【発明の名称】鍵管理システム及び方法
(51)【国際特許分類】
   H04L 9/08 20060101AFI20190614BHJP
   H04L 9/16 20060101ALI20190614BHJP
   G06F 21/60 20130101ALI20190614BHJP
【FI】
   !H04L9/00 601A
   !H04L9/00 601F
   !H04L9/00 643
   !G06F21/60 320
【審査請求】未請求
【予備審査請求】未請求
【全頁数】17
(21)【出願番号】2018567679
(86)(22)【出願日】20170623
(85)【翻訳文提出日】20190225
(86)【国際出願番号】US2017039043
(87)【国際公開番号】WO2017223478
(87)【国際公開日】20171228
(31)【優先権主張番号】15/192,755
(32)【優先日】20160624
(33)【優先権主張国】US
(81)【指定国】 AP(BW,GH,GM,KE,LR,LS,MW,MZ,NA,RW,SD,SL,ST,SZ,TZ,UG,ZM,ZW),EA(AM,AZ,BY,KG,KZ,RU,TJ,TM),EP(AL,AT,BE,BG,CH,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LT,LU,LV,MC,MK,MT,NL,NO,PL,PT,RO,RS,SE,SI,SK,SM,TR),OA(BF,BJ,CF,CG,CI,CM,GA,GN,GQ,GW,KM,ML,MR,NE,SN,TD,TG),AE,AG,AL,AM,AO,AT,AU,AZ,BA,BB,BG,BH,BN,BR,BW,BY,BZ,CA,CH,CL,CN,CO,CR,CU,CZ,DE,DJ,DK,DM,DO,DZ,EC,EE,EG,ES,FI,GB,GD,GE,GH,GM,GT,HN,HR,HU,ID,IL,IN,IR,IS,JO,JP,KE,KG,KH,KN,KP,KR,KW,KZ,LA,LC,LK,LR,LS,LU,LY,MA,MD,ME,MG,MK,MN,MW,MX,MY,MZ,NA,NG,NI,NO,NZ,OM,PA,PE,PG,PH,PL,PT,QA,RO,RS,RU,RW,SA,SC,SD,SE,SG,SK,SL,SM,ST,SV,SY,TH,TJ,TM,TN,TR,TT
(71)【出願人】
【識別番号】518179874
【氏名又は名称】エヌ・ティ・ティ イノベーション インスティチュート インク
【氏名又は名称原語表記】NTT Innovation Institute, Inc.
【住所又は居所】アメリカ合衆国 カリフォルニア州イーストパロオルト ユニバーシティ アベニュー スイート 600 1950
【住所又は居所原語表記】1950 University Avenue Suite 600, East Palo Alto, California United States of America
(74)【代理人】
【識別番号】100094569
【弁理士】
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100088694
【弁理士】
【氏名又は名称】弟子丸 健
(74)【代理人】
【識別番号】100103610
【弁理士】
【氏名又は名称】▲吉▼田 和彦
(74)【代理人】
【識別番号】100067013
【弁理士】
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100086771
【弁理士】
【氏名又は名称】西島 孝喜
(74)【代理人】
【識別番号】100109070
【弁理士】
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100109335
【弁理士】
【氏名又は名称】上杉 浩
(74)【代理人】
【識別番号】100120525
【弁理士】
【氏名又は名称】近藤 直樹
(74)【代理人】
【識別番号】100139712
【弁理士】
【氏名又は名称】那須 威夫
(72)【発明者】
【氏名】山本 剛
【住所又は居所】アメリカ合衆国 カリフォルニア州 94303 イーストパロオルト ユニバーシティ アベニュー スイート 600 1950
(57)【要約】
公開鍵暗号化システムにおける秘密鍵管理のためのシステム及び方法を開示する。1つの実施形態では、これらのシステム及び方法が、「偽の」秘密鍵を利用して秘密鍵管理を行うことができる。
【選択図】図1
【特許請求の範囲】
【請求項1】
公開鍵暗号化のための鍵管理方法であって、
暗号解読能力を有するシステムにおいて、各エンティティの鍵の組が該エンティティの秘密鍵と該エンティティの該秘密鍵に対応する偽の秘密鍵とを有する、前記エンティティの複数の鍵の組をエンティティから遠隔に保管するステップと、
前記エンティティから暗号文コンテンツ及び偽の秘密鍵を受け取るステップと、
前記暗号文コンテンツが特定のエンティティについて暗号解読されている時に、前記偽の秘密鍵に基づいて前記エンティティの前記秘密鍵を取得するステップと、
を含むことを特徴とする方法。
【請求項2】
前記暗号要素が、前記特定のエンティティの新たな秘密鍵と、前記特定のエンティティの前記新たな秘密鍵に対応する偽の秘密鍵とを生成するステップと、
前記暗号要素が、前記偽の秘密鍵を前記特定のエンティティに送信するステップと、
をさらに含む、請求項1に記載の方法。
【請求項3】
前記エンティティの前記秘密鍵を用いて前記暗号文コンテンツを暗号解読するステップをさらに含む、
請求項2に記載の方法。
【請求項4】
前記特定のエンティティの前記秘密鍵を取得するステップは、前記暗号要素のユニフォームリソースロケータを鍵情報から抽出するステップと、前記暗号要素の前記ユニフォームリソースロケータと前記偽の秘密鍵とに基づいて前記特定のエンティティの前記新たな秘密鍵を取り出すステップとをさらに含む、
請求項1に記載の方法。
【請求項5】
各エンティティは、暗号解読能力を有するアプリケーションを含むコンピュータ装置である、
請求項1に記載の方法。
【請求項6】
各エンティティは、暗号解読能力を有するアプリケーション、暗号解読能力を有する装置、及び暗号解読能力を有するアプリケーションを使用するユーザのうちの1つである、
請求項1に記載の方法。
【請求項7】
前記特定のエンティティの前記偽の秘密鍵は、前記特定のエンティティの新たな秘密鍵へのポインタをさらに含む、
請求項1に記載の方法。
【請求項8】
鍵管理システムであって、
それぞれが自身の秘密鍵と鍵ストレージとを用いた公開鍵暗号解読能力を有する1又は2以上のエンティティと、
特定のエンティティの新たな秘密鍵と、該新たな秘密鍵に対応する偽の秘密鍵とを生成するメタデータエンコーダを有する、コンピュータネットワークによって前記エンティティに接続された暗号要素と、
を備え、前記暗号要素は、前記特定のエンティティに前記偽の秘密鍵を送信する、
ことを特徴とするシステム。
【請求項9】
前記暗号要素は、前記特定のクライアントからの暗号文と前記偽の秘密鍵とを含む要求に基づいて暗号解読プロセスを実行し、前記暗号要素は、前記偽の秘密鍵に基づいて前記特定のエンティティの前記新たな秘密鍵を取得して、前記特定のエンティティの前記新たな秘密鍵を用いた前記暗号文の前記暗号解読を可能にする、
請求項8に記載のシステム。
【請求項10】
各エンティティは、前記特定のエンティティの前記新たな秘密鍵を用いた前記暗号文の前記暗号解読を実行する暗号解読モジュールを有する、
請求項9に記載のシステム。
【請求項11】
前記暗号解読モジュールは、鍵情報を受け取る構文解析器モジュール、及び前記偽の秘密鍵に基づいて前記特定のエンティティの前記新たな秘密鍵を取得するメタ情報抽出器モジュール、をさらに含む、
請求項10に記載のシステム。
【請求項12】
前記メタ情報抽出器モジュールは、前記鍵情報から前記暗号要素のユニフォームリソースロケータを抽出し、該暗号要素の該ユニフォームリソースロケータに基づいて前記特定のエンティティの前記新たな秘密鍵を取り出す、
請求項11に記載のシステム。
【請求項13】
各エンティティは、暗号解読能力を有するアプリケーションを含むコンピュータ装置である、
請求項8に記載のシステム。
【請求項14】
各エンティティは、暗号解読能力を有するアプリケーション、暗号解読能力を有する装置、及び暗号解読能力を有するアプリケーションを使用するユーザのうちの1つである、
請求項8に記載のシステム。
【請求項15】
前記特定のエンティティの前記偽の秘密鍵は、前記特定のエンティティの新たな秘密鍵へのポインタをさらに含む、
請求項8に記載のシステム。
【請求項16】
公開鍵暗号化システムであって、
それぞれが自身の秘密鍵と鍵ストレージとを用いた公開鍵暗号解読能力を有する1又は2以上のエンティティと、
特定のエンティティの新たな秘密鍵と、該新たな秘密鍵に対応する偽の秘密鍵とを生成するメタデータエンコーダを有する、コンピュータネットワークによって前記エンティティに接続された暗号要素と、
を備え、前記暗号要素は、前記特定のエンティティに前記偽の秘密鍵を送信する、
ことを特徴とするシステム。
【請求項17】
前記暗号要素は、前記特定のクライアントからの暗号文と前記偽の秘密鍵とを含む要求に基づいて暗号解読プロセスを実行し、前記暗号要素は、前記偽の秘密鍵に基づいて前記特定のエンティティの前記新たな秘密鍵を取得して、前記特定のエンティティの前記新たな秘密鍵を用いた前記暗号文の前記暗号解読を可能にする、
請求項16に記載のシステム。
【請求項18】
各エンティティは、前記特定のエンティティの前記新たな秘密鍵を用いた前記暗号文の前記暗号解読を実行する暗号解読モジュールを有する、
請求項17に記載のシステム。
【請求項19】
前記暗号解読モジュールは、鍵情報を受け取る構文解析器モジュールをさらに含み、メタ情報抽出器モジュールが、前記偽の秘密鍵に基づいて前記特定のエンティティの前記新たな秘密鍵を取得する、
請求項18に記載のシステム。
【請求項20】
前記メタ情報抽出器モジュールは、前記鍵情報から前記暗号要素のユニフォームリソースロケータを抽出し、該暗号要素の該ユニフォームリソースロケータに基づいて前記特定のエンティティの前記新たな秘密鍵を取り出す、
請求項19に記載のシステム。
【請求項21】
各エンティティは、暗号解読能力を有するアプリケーションを含むコンピュータ装置である、
請求項16に記載のシステム。
【請求項22】
各エンティティは、暗号解読能力を有するアプリケーション、暗号解読能力を有する装置、及び暗号解読能力を有するアプリケーションを使用するユーザのうちの1つである、
請求項16に記載のシステム。
【請求項23】
前記特定のエンティティの前記偽の秘密鍵は、前記特定のエンティティの新たな秘密鍵へのポインタをさらに含む、
請求項16に記載のシステム。
【請求項24】
鍵管理方法であって、
エンティティの秘密鍵を生成するステップと、
前記生成した秘密鍵を、前記エンティティから離れた、鍵ストレージを有する鍵管理要素に保管するステップと、
鍵管理要素において、前記生成された秘密鍵へのポインタとしての役割を果たす偽の秘密鍵を生成するステップと、
前記偽の秘密鍵を前記エンティティに送信して鍵ストレージに保管するステップと、
を含み、前記エンティティは、前記偽の秘密鍵を用いて要求を行うことによって暗号文を暗号解読する、
ことを特徴とする方法。
【請求項25】
新たなエンティティである前記エンティティの公開鍵を生成するステップをさらに含む、
請求項24に記載の方法。
【請求項26】
エンティティの前記秘密鍵を生成するステップは、既存のエンティティの新たな秘密鍵を生成するステップをさらに含む、
請求項24に記載の方法。
【請求項27】
前記エンティティは、暗号解読能力を有するコンピュータ装置である、
請求項24に記載の方法。
【請求項28】
前記エンティティは、暗号解読能力を有するアプリケーション、暗号解読能力を有する装置、及び暗号解読能力を有するアプリケーションを使用するユーザのうちの1つである、
請求項24に記載の方法。
【請求項29】
前記特定のエンティティの前記偽の秘密鍵は、前記特定のエンティティの新たな秘密鍵へのポインタをさらに含む、
請求項24に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に公開鍵暗号化システム及び方法に関し、具体的には、公開鍵暗号化システムにおける秘密鍵の管理に関する。
【背景技術】
【0002】
暗号化は、メッセージに含まれているデータ又は情報を無許可の第三者から見えなくするために使用される周知の技術である。これまで多くの異なるタイプの暗号化が使用されてきた。1つの有名なタイプの暗号化に、公開鍵と秘密鍵とを生成して少なくとも秘密鍵から公開鍵への計算が計算的に困難である数学的関係を持たせるようにした公開鍵暗号化がある。換言すれば、公開鍵のみを前提として秘密鍵を特定することは困難である。この結果、公開鍵は公的に配布(公開鍵リング又は鍵サーバなどに保管)することができ、秘密鍵はユーザによって安全に保持される。ユーザは、公開鍵暗号化を用いて暗号化メッセージを送信したいと望む時には受信者の公開鍵を見つけ出し、その公開鍵を用いてメッセージを暗号化する。受信者は、メッセージを受け取ると自身の秘密鍵を用いてメッセージを暗号解読する。同様に、誰かがユーザにメッセージを送信したいと望む時には、ユーザの公開鍵を用いてメッセージが暗号化され、ユーザは安全な秘密鍵を用いてメッセージを暗号解読する。公開鍵暗号化の利点は、ユーザの秘密鍵をいずれの第三者にも全く公開又は通信する必要がない点である。
【発明の概要】
【発明が解決しようとする課題】
【0003】
図1に、公開鍵暗号化を用いてメッセージを暗号化/暗号解読することができるアプリケーション102を含む理想的な暗号鍵システム100を示す。アプリケーションは、秘密鍵の保管を含むアプリケーションの公開鍵暗号化プロセスを管理する暗号APIラッパーに暗号サービスAPIを利用して接続することができる。図1の理想的なシステムは、関数呼び出しによってアクセスできる暗号サービス106も有する。暗号サービス106は、暗号関数108及び鍵ストレージ110を含むことができる。暗号サービス106は、安全にホストしてハッカーなどから保護することができる。この理想的なシステムでは、安全な暗号サービス106上に秘密鍵が維持されるように、暗号サービス106がユーザの秘密鍵を保管して管理するとともに、アプリケーションのための暗号解読機能を実行することもできる。
【0004】
図2に、同じアプリケーション202を有する典型的な暗号鍵システム200を示す。ほとんどの典型的な公開鍵システムの実装では、アプリケーション202が、ユーザの秘密鍵を保管して管理する鍵ストレージ204を含むことができる。このアプリケーションは、理想的なシステムと同様に、秘密鍵を用いて暗号化/暗号解読を実行するための複数の暗号関数208を有する暗号ライブラリ206に暗号関数APIを用いて接続することができる。典型的なシステムでは、暗号化/暗号解読を実行するために、アプリケーション内の鍵ストレージ204から秘密鍵を公開する暗号ライブラリ206に秘密鍵を通信しなければならない。また、図2のシステムでは、秘密鍵が各アプリケーション202上に保管されているので、秘密鍵を更新することが非常に困難である。さらに、モノのインターネット(IoT)タイプのシステムでは、秘密鍵の管理、従って公開鍵暗号化システムが実現不可能である。従って、公開鍵暗号化システムの秘密鍵を管理するためのシステム及び方法を提供することが望ましい。
【図面の簡単な説明】
【0005】
【図1】理想的な暗号鍵システムを示す図である。
【図2】典型的な暗号鍵システムを示す図である。
【図3】公開鍵暗号化を使用する複数のコンピュータ装置を有するコンピュータシステムネットワークを示す図である。
【図4】暗号鍵管理を含む暗号鍵システムを示す図である。
【図5】図2のシステムの暗号解読モジュールを示す図である。
【図6】図4の暗号化システムと共に使用できる暗号解読モジュールの第1の実装を示す図である。
【図7】図4の暗号化システムと共に使用できる暗号解読モジュールの第2の実装を示す図である。
【発明を実施するための形態】
【0006】
本開示は、モノのインターネット(IoT)ネットワークに使用される公開鍵暗号化システム及び方法における秘密鍵の管理にとりわけ適用可能であり、この文脈で本開示を説明する。しかしながら、この秘密鍵管理システムは、他の暗号化システムの秘密鍵を管理するために使用することもでき、あらゆるサイズのネットワーク又はコンピュータ装置に使用することもできると理解されるであろう。
【0007】
図3に、それぞれが公開鍵暗号化を使用する、図示の装置1、...、装置N+1などの複数のコンピュータ装置302を有するコンピュータシステムネットワーク300を示す。このコンピュータシステムネットワークは、各コンピュータ装置302が通信経路303を通じて他のコンピュータ装置302と通信するモノのインターネット(IoT)システムとすることができる。このシステムでは、IoT内の各コンピュータ装置302がプロセッサを有し、暗号化/暗号解読能力を有するアプリケーション304又はバックグラウンド暗号化/暗号解読ルーチンを実行する。この暗号化/暗号解読能力は、例えばコンピュータ装置302同士による安全な通信を可能にすることができる。コンピュータネットワークシステム300は、以下でさらに詳細に説明するように各コンピュータ装置302の暗号化/暗号解読要素の秘密鍵を管理する、通信経路303に接続された暗号サービス306を有することもできる。
【0008】
各コンピュータ装置302は、1又は2以上のプロセッサと、メモリと、ディスクドライブ又はフラッシュなどの永続記憶装置と、ディスプレイ(サーモスタットなどのいくつかのコンピュータ装置では任意)と、各コンピュータ装置302がコンピュータシステムネットワーク300上の他のサービス要素/装置と通信できるようにする通信回路とを有するプロセッサベースの装置とすることができる。例えば、各コンピュータ装置302は、パーソナルコンピュータ、ラップトップ又はタブレットコンピュータ、サーモスタット又はドアロックのような家庭機能を制御する装置、及び冷蔵庫又はオーブンなどの家庭用電化製品などとすることができる。1つの実施形態では、各コンピュータ装置が、(複数行のコンピュータコードを有する)暗号化/暗号解読要素を実行して暗号化/暗号解読能力をもたらすことができる。別の実施形態では、暗号化/暗号解読要素を、暗号化/暗号解読能力を実行する集積回路、フィールドプログラマブルゲートアレイ、マイクロコントローラ及びマイクロプロセッサなどのハードウェアとすることができる。
【0009】
暗号サービス306は、ハードウェア又はソフトウェアで実装することができる。ソフトウェアで実装する場合、暗号サービス306は、暗号サービス306をホストするコンピュータシステムのプロセッサが実行できる複数行のコンピュータコードとすることができる。このコンピュータシステムは、サーバコンピュータ、アプリケーションサーバ、ブレードサービス及びクラウドコンピューティングリソースなどとすることができる。ハードウェアで実装する場合、暗号サービス306は、後述する鍵管理プロセスを実行する集積回路、フィールドプログラマブルゲートアレイ、マイクロコントローラ及びマイクロプロセッサなどとすることができる。
【0010】
図3に示すコンピュータシステム300又は他のいずれかのコンピュータシステムでは、各コンピュータ装置302の秘密鍵を管理して維持しなければならない。図3に示すIoTのような大規模コンピュータシステム又はコンピュータネットワークでは、各コンピュータ装置302の秘密鍵の管理及び維持が非常に面倒なものとなり得る。この秘密鍵管理機能、及び秘密鍵管理機能を用いた暗号化/暗号解読能力は、図4を参照しながら後述するシステム及び図5〜図6を参照しながら後述する暗号解読モジュールによってもたらされる。
【0011】
図4に、鍵管理を含む暗号鍵システムを示す。この暗号鍵システムでは、1又は2以上のコンピュータ装置の各コンピュータ装置の暗号解読モジュールのインターフェイスを変更することなく、(図4の暗号サービス306などの)遠隔ソース上に保管された鍵情報を用いて暗号文(cyphertext)を平文に暗号解読することができる。他の暗号化ソリューションと同様に、暗号鍵システムが既存の暗号化システムとの互換性を有するように、各コンピュータ装置上には暗号化/暗号解読能力を有するアプリケーション304が存在する。アプリケーション304は、暗号鍵システムの「偽の」秘密鍵を保管する鍵ストレージ400を有することができる。
【0012】
アプリケーション304は、暗号ライブラリ402への既知の暗号関数APIと相互連結することができる。暗号ライブラリ402は、アプリケーション304から分離することができ、アプリケーション304と同じコンピュータシステム上に位置することも、或いはコンピュータシステムネットワークの遠隔コンピューティングリソース上に位置することもできる。暗号ライブラリ402は、アプリケーション304によって要求された暗号化/暗号解読を実行してデータの送信を管理するように動作するメタデータデコーダ404及び暗号APIラッパー406をさらに含むことができる。メタデータデコーダ404は、アプリケーション304のストレージ400から「偽の」秘密鍵を受け取った後に、遠隔鍵ストレージ410内の実際の秘密鍵を見つけ出すことができる。暗号APIラッパー406は、暗号化及び暗号解読機能を実装する既知の暗号APIへの、アプリケーション304の暗号化/暗号解読能力のためのインターフェイスを提供することができる。
【0013】
鍵管理を含む暗号鍵システムは、アプリケーション304と同じコンピュータシステム上又はコンピュータシステムネットワーク300内の異なるコンピュータシステム上にアプリケーション304から離れて存在することができる暗号サービス要素306をさらに含むことができる。暗号サービス要素306は、暗号関数408と、鍵ストレージ410と、メタデータエンコーダ412とをさらに含むことができる。暗号関数408は、様々な暗号関数の保管及び配布を行うとともに、鍵ストレージ410に保管できる秘密鍵を管理することができる。暗号関数408は、あらゆる公開鍵暗号化システムと同様に、対象受信者の公開鍵を用いてメッセージを暗号化する暗号化モジュール/要素と、暗号関数APIを用いて通信を行ったアプリケーション304からの要求に基づいてユーザの秘密鍵を用いて受信暗号化メッセージを暗号解読する暗号解読モジュール/要素とを含むことができる。メタデータエンコーダ412は、実際の秘密鍵に対応する「偽の」秘密鍵414を(各アプリケーションが独自の暗号化/暗号解読要素を有していると想定して)アプリケーション304毎に生成することができる。暗号サービス306は、この偽の秘密鍵414をアプリケーション304の暗号化/暗号解読要素の鍵ストレージ400に提供することができる。
【0014】
鍵ストレージ410は、システムが偽の秘密鍵に基づいて正しい秘密鍵を取得して暗号化コンテンツを暗号解読できるように各エンティティの秘密鍵と対応する偽の秘密鍵とを保管できるという点で、鍵管理機能の一部を実行することができる。
【0015】
暗号ライブラリ402及び暗号サービス306の各々は、ハードウェア又はソフトウェアで実装することができる。ソフトウェアで実装する場合、暗号ライブラリ402及び暗号サービス306の各々は、暗号ライブラリ402又は暗号サービス306をホスト又は記憶するコンピューティングリソース/装置のプロセッサが実行できる複数行のコンピュータコードとすることができる。ハードウェアで実装する場合、暗号ライブラリ402及び暗号サービス306の各々は、各構成要素の機能を実行する集積回路、フィールドプログラマブルゲートアレイ、マイクロコントローラ及びマイクロプロセッサなどとすることができる。
【0016】
動作中、メッセージの送信者は、アプリケーション304のユーザの公開鍵(又はアプリケーション304に関連する公開鍵)を用いてメッセージを暗号化する。アプリケーション304は、暗号解読すべきメッセージを受け取ると、鍵ストレージ400から(偽の秘密鍵414である)秘密鍵を取り出して暗号ライブラリ402上に転送し、これによってメタデータデコーダ404が偽の秘密鍵を復号して、実際の秘密鍵が保管されている鍵ストレージ410からの秘密鍵を用いた暗号解読を要求できるようになる。その後、暗号関数408がこの秘密鍵を用いてメッセージを暗号解読し、アプリケーション304に平文メッセージが戻される。偽の秘密鍵414は、遠隔鍵ストレージ410に保管されている実際の秘密鍵へのポインタである。ユーザ又はアプリケーションに関連する秘密鍵を更新する必要がある場合には、1)暗号関数408が新たな秘密鍵を生成することができ、2)秘密鍵を遠隔鍵ストレージ410に保管することができ、3)メタデータエンコーダ412が、実際の秘密鍵へのポインタとしての役割を果たす新たな偽の秘密鍵414を生成することができ、4)新たな偽の秘密鍵をアプリケーション304に送信して鍵ストレージ400に保管することができる。アプリケーション304は、秘密鍵の管理が容易になるように偽の秘密鍵をあたかも実際の秘密鍵であるかのように使用する。同様に、新たなユーザ又はアプリケーションについては、システムが、1)公開鍵及び秘密鍵のペアを生成し、2)メタデータエンコーダ412を用いて偽の秘密鍵を生成し、3)秘密鍵を鍵ストレージ410に保管し、4)偽の秘密鍵をアプリケーション又は新たなユーザに送信して上述したように使用できるようにする。
【0017】
図3及び図4のシステムを使用すれば、システムが既存の公開鍵暗号化システム及びそのモジュールとの互換性を有するように暗号解読モジュールのインターフェイスを変更することなく各コンピュータ装置302及びアプリケーション304に関連する秘密鍵を容易に管理することができる。
【0018】
図5に、図示のような構文解析/検証要素502と暗号解読要素/モジュール504とを含むことができる図2の典型的なシステムの暗号解読モジュール500を示す。暗号解読モジュール504は、秘密鍵情報及び暗号文を入力として受け取ってエラー信号及び平文を出力する。鍵情報を構文解析器によって処理して数学的に包括的な形で表される暗号鍵の組を取得し、この組を検証して有効な鍵の完全性を保っているかどうかを判定する。この組から暗号解読プロセスに必要な(単複の)秘密鍵を選択して暗号解読プロセス504に送信する。暗号解読プロセス504は、暗号文及び秘密鍵を用いて暗号文の暗号解読アルゴリズムを処理することによって平文を出力する。
【0019】
図6に、図3及び図4の暗号化システムと共に使用できる暗号解読モジュール600の第1の実装を示す。暗号解読モジュール600は、装置上のアプリケーション304の一部、又は暗号サービス306の一部とすることができる。暗号解読モジュール600は、構文解析器/検証器要素602と、暗号解読要素604と、メタ情報抽出器要素606と、遠隔暗号解読クライアント608とを有することができる。暗号解読モジュール600のこれらの各要素は、ハードウェア又はソフトウェアで実装することができる。暗号化システムについて上述したように、システムは、(暗号化/暗号解読能力を有するユーザ、アプリケーション、及びコンピュータ装置を含む)エンティティの実際の秘密鍵のための鍵ストレージ410と、システムの暗号関数408を含むことができる遠隔暗号解読サーバとを有する遠隔暗号サービスモジュール306を有する。暗号解読モジュールは、鍵情報及び暗号文(暗号化されたコンテンツ)を入力として用いて平文(秘密鍵を用いて暗号解読された暗号解読コンテンツ)を出力する。このモジュールは、メタ情報抽出器606が構文解析検証要素602及び暗号解読要素604からのあらゆるエラー信号を捕捉した後に停止する。メタ情報抽出器606は、鍵情報からサーバ情報を抽出する。サーバ情報は、正常に取得されると遠隔暗号解読クライアント608に送信され、遠隔暗号解読クライアント608が遠隔サーバに接続し、暗号解読プロトコルと暗号関数408を有する遠隔暗号解読サーバとを用いて暗号解読プロセスを実行する。遠隔暗号解読サーバは、偽の秘密鍵からの鍵情報に基づいて暗号解読用の秘密鍵を要求した後で、鍵ストレージ410からの実際の秘密鍵を用いて暗号解読を実行することができる。その後、遠隔暗号解読クライアント608は、モジュールからの出力として平文を出力する。
【0020】
例えば、RSA暗号システムのための暗号解読モジュールについて考察する。鍵情報が、RSA暗号の公開鍵モジュラスであるN、公開鍵指数であるE、及び秘密鍵であるDから成ると仮定する。平文mを暗号化するには、m^E mod Nを計算して暗号文を取得する。暗号文cを暗号解読するには、c^D mod Nを計算する。メタ情報抽出器は、以下に示すように実装することができる。
(1)2^(DE)=2 mod Nであるかどうかをチェックする。そうである場合、エラー信号を出力して停止する。
(2)Dを文字列として構文解析して遠隔暗号解読サーバのURLを取得する。上手くいかなかった場合、エラー信号を出力して停止する。
(3)入力にURLを使用して遠隔暗号解読サーバを呼び出す。
【0021】
ユーザは、暗号解読モジュールのインターフェイスを変更することなく遠隔暗号解読を実行することができる。遠隔暗号解読を実行するには、
(1)公開鍵N、Eと、遠隔暗号解読サーバのURLを表す文字列Sとを取得する。
(2)Sを大きな数字として符号化してDを取得する。
(3)N、E、Dを鍵情報として使用する。
【0022】
RSA暗号システムが安全とみなされる限り、上記で取得されたDが本物の公開鍵と衝突することはほぼあり得ず、このプロセスが正常に機能することを示す。
【0023】
鍵情報がさらに多くのエントリを有する場合には、これらを用いてサーバ情報を埋め込むことができる。例えば、鍵情報が、N=PQを満たす素数であるエントリP及びQを有する場合には、URLの一部又はURL全体をP及び/又はQに符号化することができる。上記のシステムは、他の公開鍵アルゴリズム、及び/又はECDH鍵共有又はEC ElGamal暗号などの楕円曲線暗号システムとも動作する。
【0024】
図7に、図4の暗号化システムと共に使用できる暗号解読モジュールの第2の実装を示しており、このシステムは図6に示すものと同様の機能を有する同様の要素(同じ参照数字で示す)を有するため、ここでは説明を繰り返さない。暗号解読モジュール600は、装置上のアプリケーション304の一部、又は暗号サービス306の一部とすることができる。この第2の実装では、構文解析器及び検証器602の前にメタ情報抽出器606を配置することができる。この構成では、メタ情報抽出器606を以下に示すように実装することができる。
(1)Dを文字列として構文解析して遠隔暗号解読サーバのURLを取得する。上手くいかなかった場合には構文解析及び検証を呼び出す。
(2)入力上のURLを用いて遠隔暗号解読サーバを呼び出す。
【0025】
秘密鍵は一様な乱数として選択されると考えられ、従って本物の秘密鍵がURL文字列のような完全性を有する確率は非常に低いため、この実装はほぼ正常に機能する。
【0026】
鍵情報がさらに多くのエントリを有する場合、システムはこれらを用いてサーバ情報を埋め込むことができる。例えば、鍵情報が、N=PQを満たす素数であるエントリP及びQを伝達する場合には、URLの一部又はURL全体をP及び/又はQに符号化することができる。この状況では、メタ情報抽出器を以下に示すように実装することができる。
(1)D=0をチェックし、Pを文字列として構文解析して遠隔暗号解読サーバのURLを取得する。上手くいかなかった場合には解析及び検証を呼び出す。
(2)入力上のURLを用いて遠隔暗号解読サーバを呼び出す。
【0027】
以上、特定の実施形態を参照しながら説明目的で解説を行った。しかしながら、上記の例示的な説明は、完全であることや、或いは開示した厳密な形に本開示を限定することを意図したものではない。上記の教示に照らして多くの修正及び変形が可能である。これらの実施形態は、本開示の原理及びその実際の応用を最良に説明することにより、他の当業者が検討する特定の用途に適した形で本開示及び様々な実施形態を様々に修正して最良に利用できるように選択し説明したものである。
【0028】
本明細書に開示したシステム及び方法は、1又は2以上のコンポーネント、システム、サーバ、機器又はその他のサブコンポーネントを通じて実装することができ、或いはこのような要素間で分散することもできる。システムとして実装する場合、このようなシステムは、とりわけ汎用コンピュータで見られるソフトウェアモジュール、汎用CPU、RAMなどのコンポーネントを含み、及び/又は伴うことができる。サーバに革新性が存在する実装では、このようなサーバが、汎用コンピュータで見られるようなCPU、RAMなどのコンポーネントを含み、及び/又は伴うことができる。
【0029】
また、本明細書におけるシステム及び方法は、上述した以外の異種の又は完全に異なるソフトウェアコンポーネント、ハードウェアコンポーネント及び/又はファームウェアコンポーネントを含む実装を通じて実現することもできる。このような他のコンポーネント(例えば、ソフトウェア、処理コンポーネントなど)、及び/又は本発明に関連する又は本発明を具体化するコンピュータ可読媒体については、例えば本明細書における革新性の態様を数多くの汎用又は専用コンピュータシステム又は構成と調和させて実装することができる。本明細書における革新性との併用に適することができる様々な例示的なコンピュータシステム、環境及び/又は構成としては、以下に限定されるわけではないが、パーソナルコンピュータ、ルーティング/接続性コンポーネントなどのサーバ又はサーバコンピュータ装置、ハンドヘルド又はラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、消費者電子装置、ネットワークPC,他の既存のコンピュータプラットフォーム、上記のシステム又は装置のうちの1つ又は2つ以上を含む分散型コンピュータ環境などの内部の又はこれらに組み込まれたソフトウェア又はその他のコンポーネントを挙げることができる。
【0030】
場合によっては、システム及び方法の態様を、例えばこのようなコンポーネント又は回路に関連して実行されるプログラムモジュールを含む論理回路及び/又は論理命令を介して実現し、或いはこのような論理回路及び/又は論理命令によって実行することもできる。一般に、プログラムモジュールは、本明細書における特定のタスク又は特定の命令を実行するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含むことができる。また、本発明は、通信バス、通信回路又は通信リンクを介して回路が接続された分散ソフトウェア、分散コンピュータ又は分散回路環境を背景として実施することもできる。分散環境では、メモリストレージデバイスを含むローカルコンピュータ記憶媒体及び遠隔コンピュータ記憶媒体の両方から制御/命令を行うことができる。
【0031】
本明細書におけるソフトウェア、回路及びコンポーネントは、1又は2以上のタイプのコンピュータ可読媒体を含み及び/又は利用することもできる。コンピュータ可読媒体は、このような回路及び/又はコンピュータコンポーネント上に存在する、これらに関連する、又はこれらがアクセスできるいずれかの利用可能な媒体とすることができる。一例として、限定するわけではないが、コンピュータ可読媒体としてはコンピュータ記憶媒体及び通信媒体を挙げることができる。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール又はその他のデータなどの情報を記憶するためのいずれかの方法又は技術で実装された揮発性及び不揮発性の取り外し可能及び取り外し不能媒体を含む。コンピュータ記憶媒体は、以下に限定するわけではないが、RAM、ROM、EEPROM、フラッシュメモリ又はその他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)又はその他の光学ストレージ、磁気テープ、磁気ディスクストレージ又はその他の磁気記憶装置、或いは所望の情報を記憶するために使用できるとともにコンピュータコンポーネントがアクセスできる他のいずれかの媒体を含む。通信媒体は、コンピュータ可読命令、データ構造、プログラムモジュール及び/又はその他のコンポーネントを含むことができる。さらに、通信媒体は、有線ネットワーク又は直接有線接続などの有線媒体を含むことができるが、本明細書におけるこのようなタイプの媒体は、いずれも一時的媒体を含まない。また、上記のいずれかの組み合わせもコンピュータ記憶媒体の範囲に含まれる。
【0032】
本明細書におけるコンポーネント、モジュール、装置などの用語は、様々な形で実装できるあらゆるタイプの論理的又は機能的ソフトウェア要素、回路、ブロック及び/又はプロセスを意味することができる。例えば、様々な回路及び/又はブロックの機能を互いに組み合わせて他のあらゆる数のモジュールにすることができる。各モジュールは、中央処理装置に読み取られて本明細書における革新性の機能を実行できる、有形メモリ(例えば、ランダムアクセスメモリ、リードオンリメモリ、CD−ROMメモリ、ハードディスクドライブなど)に記憶されたソフトウェアプログラムとして実装することもできる。或いは、これらのモジュールは、汎用コンピュータに送信される、又は送信搬送波を介して処理/グラフィックスハードウェアに送信されるプログラミング命令を含むこともできる。また、モジュールは、本明細書における革新性に含まれる機能を実装するハードウェア論理回路として実装することもできる。最後に、これらのモジュールは、専用命令(SIMD命令)、フィールドプログラマブルロジックアレイ、又は所望のレベルの性能及びコストをもたらすこれらのいずれかの混合物を用いて実装することもできる。
【0033】
本明細書に開示したように、本開示による機能は、コンピュータハードウェア、ソフトウェア及び/又はファームウェアを通じて実装することができる。例えば、本明細書で開示したシステム及び方法は、例えばデータベース、デジタル電子回路、ファームウェア、ソフトウェア又はこれらの組み合わせも含むコンピュータなどのデータプロセッサを含む様々な形態で具体化することができる。さらに、開示した実装の一部では、特定のハードウェアコンポーネントについて説明しているが、本明細書における革新性によるシステム及び方法は、ハードウェア、ソフトウェア及び/又はファームウェアのあらゆる組み合わせを用いて実装することもできる。さらに、上述した機能及びその他の態様、並びに本明細書における革新性の原理は、様々な環境で実装することができる。このような環境及び関連する用途は、本発明による様々なルーチン、プロセス及び/又は動作を実行するように特別に構成することも、或いは汎用コンピュータ、又は必要な機能を提供するようにコードによって選択的に有効化又は再構成されたコンピュータプラットフォームを含むこともできる。本明細書で開示したプロセスは、本質的にいずれかの特定のコンピュータ、ネットワーク、アーキテクチャ、環境又はその他の装置に関連するものではなく、ハードウェア、ソフトウェア及び/又はファームウェアの好適な組み合わせによって実装することができる。例えば、本発明の教示に従って書かれたプログラムと共に様々な汎用機械を使用することもでき、或いは必要な方法及び技術を実行するように特殊な装置又はシステムを構成する方が便利な場合もある。
【0034】
本明細書で説明したロジックなどの方法及びシステムの態様は、フィールドプログラマブルゲートアレイ(「FPGA」)、プログラマブルアレイロジック(「PAL」)デバイス、電気的にプログラム可能なロジックなどのプログラマブルロジックデバイス(「PLD」)、メモリデバイス及び標準的なセルベースの装置、並びに特定用途向け集積回路を含む様々な回路のいずれかにプログラムされる機能として実装することもできる。態様を実装するための他のいくつかの可能性としては、メモリデバイス、(EEPROMなどの)メモリ付きマイクロコントローラ、内蔵マイクロプロセッサ、ファームウェア、ソフトウェアなどが挙げられる。さらに、ソフトウェアベースの回路エミュレーション、個別ロジック(順序ロジック及び組み合わせロジック)、カスタムデバイス、ファジー(ニューラル)ロジック、量子デバイス、及びこれらのデバイスタイプのいずれかの混成を有するマイクロプロセッサにおいて態様を具体化することもできる。例えば、金属酸化物半導体電界効果トランジスタ(「MOSFET」)技術に似た相補型金属酸化物半導体(「CMOS」)、バイポーラ技術に似たエミッタ結合型論理回路(「ECL」)、ポリマー技術(例えば、シリコン共役ポリマー及び金属共役ポリマー金属構造体)、混合アナログ及びデジタルなどの基礎デバイス技術を様々なコンポーネントタイプで提供することができる。
【0035】
また、本明細書で開示した様々なロジック及び/又は機能は、挙動特性、レジスタ転送特性、論理コンポーネント特性及び/又はその他の特性の観点から、ハードウェア、ファームウェアのあらゆる数の組み合わせを使用して、及び/又は機械可読又はコンピュータ可読媒体に具体化されたデータ及び/又は命令として有効にすることができる。このようなフォーマットデータ及び/又は命令を具体化できるコンピュータ可読媒体は、限定的な意味ではなく様々な形態の不揮発性記憶媒体(例えば、光学記憶媒体、磁気記憶媒体又は半導体記憶媒体)を含むことができるが、ここでも一時的媒体は含まない。本明細書全体を通じ、「備える(comprise、comprising)」などの用語は、文脈上明らかに他の意味を必要としない限り、排他的又は網羅的な意味の対語である包括的な意味で、すなわち「〜を含むけれどもそれに限定されない(including,but not limited to)」という意味で解釈されたい。また、単数又は複数を用いた単語は、それぞれ複数又は単数も含む。また、「本明細書において(herein)」、「本明細書に従って(hereunder)」、「上記の(above)」、「以下の(below)」、及び同様の意味の単語は、本出願のいずれかの特定の部分ではなく本出願全体を示す。2又は3以上の項目のリストへの言及において「又は(or)」という単語を使用している場合、この単語は、リスト内のいずれかの項目、リスト内の全ての項目、及びリスト内の項目のいずれかの組み合わせ、という解釈を全て含む。
【0036】
本明細書では、本発明の現在のところ好ましいいくつかの実装について具体的に説明したが、本発明に関連する当業者には、本発明の趣旨及び範囲から逸脱することなく、本明細書で図示し説明した様々な実装の変形及び変更を行えることが明らかであろう。従って、本発明は、適用される法の原則によって定められる範囲のみに限定されるように意図されている。
【0037】
上記では、本開示の特定の実施形態について言及したが、当業者であれば、本開示の原理及び趣旨から逸脱することなく実施形態に変更を行うことができ、本開示の範囲は添付の特許請求の範囲によって定められると理解するであろう。
【符号の説明】
【0038】
100 暗号鍵システム
102 アプリケーション
104 暗号APIラッパー
106 暗号サービス
108 暗号関数
110 鍵ストレージ
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【国際調査報告】