(57)【特許請求の範囲】
【請求項１】
ｊ∈｛１，…，Ｊ｝であり、ｉ∈｛１，…，Ｊ｝であり、Ｊは２以上の整数であり、
復号鍵ＤＫ（ｊ）を格納し、前記復号鍵ＤＫ（ｊ）を用いたクラウド鍵管理型の復号サービスを提供する複数個の鍵クラウド装置ＫＣ（ｊ）と、
前記鍵クラウド装置ＫＣ（ｊ）に格納された前記復号鍵ＤＫ（ｊ）に対応する暗号化鍵ＥＫ（ｊ）を用いて生成された名前情報Ｎ（ｊ）と、前記鍵クラウド装置ＫＣ（ｊ）のアドレス情報Ａ（ｊ）と、を対応付けて格納するディレクトリサービス装置と、
何れかの暗号化鍵ＥＫ（ｉ）を用いて暗号化された暗号文Ｃ（ｉ）が入力されるクライアント装置と、を有し、
前記復号鍵ＤＫ（ｊ）は秘密情報であり、前記暗号化鍵ＥＫ（ｊ）は公開情報であり、
前記クライアント装置は、前記暗号文Ｃ（ｉ）に埋め込まれた前記暗号化鍵ＥＫ（ｉ）を用いて名前情報Ｎ（ｉ）を生成し、前記名前情報Ｎ（ｉ）を前記ディレクトリサービス装置に送信し、
前記ディレクトリサービス装置は、前記名前情報Ｎ（ｉ）に対応付けられた前記アドレス情報Ａ（ｉ）を抽出し、前記アドレス情報Ａ（ｉ）を前記クライアント装置に送信し、
前記クライアント装置は、前記アドレス情報Ａ（ｉ）で特定される前記鍵クラウド装置ＫＣ（ｉ）に、前記暗号文Ｃ（ｉ）をかく乱した情報を送信し、
前記鍵クラウド装置ＫＣ（ｉ）は、自己訂正技術により、格納した復号鍵ＤＫ（ｉ）を用い、前記復号鍵ＤＫ（ｉ）の情報を前記クライアント装置に与えることなく、前記クライアント装置で前記暗号文Ｃ（ｉ）の復号値を得るための情報を前記クライアント装置に与える、鍵クラウドシステム。
【請求項２】
請求項１の鍵クラウドシステムであって、
前記名前情報Ｎ（ｊ）は、前記復号鍵ＤＫ（ｊ）に対応する暗号方式Ｓ（ｊ）を表す識別子ＩＤ（ｊ）を含み、
前記名前情報Ｎ（ｉ）は、前記復号鍵ＤＫ（ｉ）に対応する暗号方式Ｓ（ｉ）を表す識別子ＩＤ（ｉ）を含み、
前記復号鍵ＤＫ（ｉ）を格納する前記鍵クラウド装置ＫＣ（ｉ）は、前記暗号方式Ｓ（ｉ）の復号サービスを提供する、鍵クラウドシステム。
【請求項３】
鍵クラウドシステムの復号方法であって、
ｊ∈｛１，…，Ｊ｝であり、ｉ∈｛１，…，Ｊ｝であり、Ｊは２以上の整数であり、
前記鍵クラウドシステムは、
復号鍵ＤＫ（ｊ）を格納し、前記復号鍵ＤＫ（ｊ）を用いたクラウド鍵管理型の復号サービスを提供する複数個の鍵クラウド装置ＫＣ（ｊ）と、
前記鍵クラウド装置ＫＣ（ｊ）に格納された前記復号鍵ＤＫ（ｊ）に対応する暗号化鍵ＥＫ（ｊ）を用いて生成された名前情報Ｎ（ｊ）と、前記鍵クラウド装置ＫＣ（ｊ）のアドレス情報Ａ（ｊ）と、を対応付けて格納するディレクトリサービス装置と、
何れかの暗号化鍵ＥＫ（ｉ）を用いて暗号化された暗号文Ｃ（ｉ）が入力されるクライアント装置と、を有し、
前記復号鍵ＤＫ（ｊ）は秘密情報であり、前記暗号化鍵ＥＫ（ｊ）は公開情報であり、
前記復号方法は、
前記クライアント装置が、前記暗号文Ｃ（ｉ）に埋め込まれた前記暗号化鍵ＥＫ（ｉ）を用いて名前情報Ｎ（ｉ）を生成し、前記名前情報Ｎ（ｉ）を前記ディレクトリサービス装置に送信するステップと、
前記ディレクトリサービス装置が、前記名前情報Ｎ（ｉ）に対応付けられた前記アドレス情報Ａ（ｉ）を抽出し、前記アドレス情報Ａ（ｉ）を前記クライアント装置に送信するステップと、
前記クライアント装置が、前記アドレス情報Ａ（ｉ）で特定される前記鍵クラウド装置ＫＣ（ｉ）に、前記暗号文Ｃ（ｉ）をかく乱した情報を送信するステップと、
前記鍵クラウド装置ＫＣ（ｉ）が、自己訂正技術により、格納した復号鍵ＤＫ（ｉ）を用い、前記復号鍵ＤＫ（ｉ）の情報を前記クライアント装置に与えることなく、前記クライアント装置で前記暗号文Ｃ（ｉ）の復号値を得るための情報を前記クライアント装置に与えるステップと、を有する復号方法。
【請求項４】
請求項３の復号方法であって、
前記名前情報Ｎ（ｊ）は、前記復号鍵ＤＫ（ｊ）に対応する暗号方式Ｓ（ｊ）を表す識別子ＩＤ（ｊ）を含み、
前記名前情報Ｎ（ｉ）は、前記復号鍵ＤＫ（ｉ）に対応する暗号方式Ｓ（ｉ）を表す識別子ＩＤ（ｉ）を含み、
前記復号鍵ＤＫ（ｉ）を格納する前記鍵クラウド装置ＫＣ（ｉ）は、前記暗号方式Ｓ（ｉ）の復号サービスを提供する、復号方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クラウド鍵管理型の復号サービスを行う技術に関する。
【背景技術】
【０００２】
ネットワークでサーバ装置等の機器を一意に指定するための情報には、ＦＱＤＮ(Fully Qualified Domain Name)やｎｅｔｂｉｏｓ名などの名前情報（論理的名称）と、ＩＰアドレスなどの機器に固有のアドレス情報がある。ここで、ＩＰアドレスなどのアドレス情報は静的であり、その変更を行うことは容易ではない。そのため通常は、通信時にＦＱＤＮやｎｅｔｂｉｏｓ名などの名前情報で機器名を指定し、ＤＮＳ(Domain Name System)やＷＩＮＳ（Windows（登録商標） Internet Name Service）などの名前解決を利用してＩＰアドレスなどのアドレス情報に変換し、そのアドレス情報を使って機器と通信を始める。例えばＤＮＳでは、クライアントがＬＡＮやＷＡＮで指定されたＤＮＳサーバにＦＱＤＮの名前解決を依頼するとＤＮＳのルートサーバ装置からのヒエラルキをたどったり、上位サーバ装置に名前解決を依頼したりすることなどで、先のＤＮＳサーバ装置はＦＱＤＮに対応するＩＰアドレスをクライアントに返すことができる（特許文献１等参照）。【０００３】
一方、復号鍵(例えば、共通鍵暗号方式の場合は共通鍵、公開鍵暗号方式の場合は秘密鍵)の鍵管理問題を解決するクラウド鍵管理型暗号が提案され、そのシステム(クラウド鍵システム)について概要が論文等で発表されている（非特許文献１等参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２‐２３８９３５号公報
【非特許文献】
【０００５】
【非特許文献１】「オンライン環境でのデータ保護の課題を抜本的に解決する『クラウド鍵管理型暗号方式』を開発」、ＮＴＴ技術ジャーナル、２０１２年５月、ｐｐ．４６−４７．
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来提案されていたクラウド鍵システムは、物理的に一つの鍵クラウド装置が暗号化コンテンツの復号サービスを提供するものであった。そのため、復号サービスを受けようとするクライアント装置は、その一つの鍵クラウド装置の名前情報さえ保持していれば、その鍵クラウド装置にアクセスし、復号サービスを受けることができた。【０００７】
一方、複数個の鍵クラウド装置をネットワーク上に論理的、物理的に分散配置し、各鍵クラウド装置がそれぞれの復号鍵を用いた復号サービスを提供するクラウド鍵システムを構築することも想定できる。このような場合、或る暗号化コンテンツの復号サービスを受けようとするクライアント装置は、複数個の鍵クラウド装置のうち、その暗号化コンテンツに対応する復号サービスを提供する鍵クラウド装置にアクセスする必要がある。物理的に一つの鍵クラウド装置のみが暗号化コンテンツの復号サービスを提供する場合であっても、クライアント装置がその鍵クラウド装置の名前情報を知らない場合もある。【０００８】
本発明は、鍵クラウド装置がそれぞれの復号鍵を用いた復号サービスを提供する場合において、クライアント装置が暗号化コンテンツに対応する復号サービスを提供する鍵クラウド装置に容易にアクセスすることが可能な技術を提供する。
【課題を解決するための手段】
【０００９】
暗号化コンテンツを復号するための復号鍵に対応する値を用いて生成された名前情報を用い、この復号鍵を用いたクラウド鍵管理型の復号サービスを提供する鍵クラウド装置のアドレス情報を得る。
【発明の効果】
【００１０】
これにより、クライアント装置が暗号化コンテンツに対応する復号サービスを提供する鍵クラウド装置に容易にアクセスすることができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施形態の鍵クラウドシステムの構成を例示したブロック図である。
【図２】図２Ａは、実施形態のディレクトリサービス装置の構成を例示したブロック図である。図２Ｂから図２Ｅは、実施形態の名前情報を例示した図である。
【図３】図３Ａは、暗号化を行うクライアント装置の構成を例示したブロック図である。図３Ｂは、復号サービスを受けるクライアント装置の構成を例示したブロック図である。図３Ｃは、復号サービスを提供する鍵クラウド装置の構成を例示したブロック図である。
【図４】図４は、実施形態の登録処理を説明するための図である。
【図５】図５は、実施形態の鍵クラウド処理を説明するための図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照して本発明の実施形態を説明する。
＜構成＞
図１に例示するように、本形態の鍵クラウドシステム１は、システムを管理する管理装置１１、暗号化を行うＪ個のクライアント装置１３−１〜１３−Ｊ、クラウド鍵管理型の復号サービスを受けるクライアント装置１４、クラウド鍵管理型の復号サービスを提供するＪ個の鍵クラウド装置１５−１〜１５−Ｊ、および鍵クラウド装置１５−１〜１５−Ｊの名前解決を行うディレクトリサービス装置１２を有し、これらはネットワークを介して通信可能に構成されている。ただしＪ≧１であり、例えばＪ≧２である。なお、図１ではＪ個のクライアント装置１３−１〜１３−Ｊを例示しているが、暗号化を行うＪ＋１個以上のクライアント装置１３が存在してもよい。例えば、各クライアント装置１３−ｊ（ただし、ｊ∈｛１，…，Ｊ｝）がそれぞれ複数個存在し、各ｊに対応するグループを構成してもよい。また、図１では１個のクライアント装置１４を例示しているが、復号サービスを受ける２個以上のクライアント装置が存在してもよい。また、図１ではＪ個の鍵クラウド装置１５−１〜１５−Ｊを例示しているが、復号サービスを提供するＪ＋１個以上の鍵クラウド装置が存在してもよい。さらに、図１では１個のディレクトリサービス装置１２のみを例示しているが、アドレス情報が階層的に構成されている場合には、それぞれの階層の名前解決を行うための上位のディレクトリサービス装置が１個以上存在していてもよい。
【００１３】
図２Ａに例示するように、ディレクトリサービス装置１２は、記憶部１２１、入力部１２２、出力部１２３、登録処理部１２４、および検索部１２５を有する。図３Ａに例示するように、クライアント装置１３−ｊ（ただし、ｊ∈｛１，…，Ｊ｝）は、記憶部１３１−ｊ、入力部１３２−ｊ、出力部１３３−ｊ、および暗号化部１３４−ｊを有する。図３Ｂに例示するように、クライアント装置１４は、記憶部１４１、入力部１４２、出力部１４３、名前情報生成部１４４、および復号処理部１４５を有する。図３Ｃに例示するように、鍵クラウド装置１５−ｊ（ただし、ｊ∈｛１，…，Ｊ｝）は、記憶部１５１−ｊ、入力部１５２−ｊ、出力部１５３−ｊ、および復号能力提供部１５４−ｊを有する。
【００１４】
管理装置１１、ディレクトリサービス装置１２、クライアント装置１３−１〜１３−Ｊ、クライアント装置１４、および鍵クラウド装置１５−１〜１５−Ｊのそれぞれは、例えば、ＣＰＵ（central processing unit）等のプロセッサ（ハードウェア・プロセッサ）やＲＡＭ（random-access memory）・ＲＯＭ（read-only memory）等のメモリ等を備える汎用または専用のコンピュータが所定のプログラムを実行することで構成される装置である。コンピュータは１個のプロセッサやメモリを備えていてもよいし、複数個のプロセッサやメモリを備えていてもよい。このプログラムはコンピュータにインストールされてもよいし、予めＲＯＭ等に記録されていてもよい。また、ＣＰＵのようにプログラムが読み込まれることで機能構成を実現する電子回路（circuitry）ではなく、単独で処理機能を実現する電子回路を用いて一部またはすべての処理部が構成されてもよい。また、１個の装置を構成する電子回路が複数のＣＰＵを含んでいてもよい。例えば、管理装置１１はサーバ装置であり、ディレクトリサービス装置１２の具体例はDNSサーバ装置やWINSサーバ装置などであり、クライアント装置１３−１〜１３−Ｊやクライアント装置１４は端末装置であり、鍵クラウド装置１５−１〜１５−Ｊはサーバ装置である。
【００１５】
＜鍵設定処理＞
管理装置１１は、所定の暗号方式Ｓ（ｊ）（ただし、ｊ∈｛１，…，Ｊ｝）で暗号化を行って暗号化コンテンツＣ（ｊ）を生成するための暗号化鍵ＥＫ（ｊ）、および暗号化コンテンツＣ（ｊ）を復号するための復号鍵ＤＫ（ｊ）を設定する。暗号方式Ｓ（１），・・・，Ｓ（Ｊ）は互いに同一であってもよいし、同一でなくてもよい。暗号化鍵ＥＫ（１），・・・，ＥＫ（Ｊ）は互いに衝突困難（collision-resistant）であり、復号鍵ＤＫ（１），・・・，ＤＫ（Ｊ）は互いに衝突困難である。好ましくは、暗号化鍵ＥＫ（１），・・・，ＥＫ（Ｊ）は互いに異なり、復号鍵ＤＫ（１），・・・，ＤＫ（Ｊ）は互いに異なる。
【００１６】
暗号方式Ｓ（ｊ）の具体例は、公開鍵暗号方式、ＩＤベース暗号方式、関数型暗号方式、共通鍵暗号方式などである。例えば、暗号方式Ｓ（ｊ）が公開鍵暗号方式である場合、暗号化鍵ＥＫ（ｊ）は公開鍵であり、復号鍵ＤＫ（ｊ）はこの公開鍵に対応する秘密鍵である。暗号方式Ｓ（ｊ）がＩＤベース暗号方式である場合、暗号化鍵ＥＫ（ｊ）はメールアドレス等の識別子であり、復号鍵ＤＫ（ｊ）はこの識別子に対応する秘密鍵である。暗号方式Ｓ（ｊ）が関数型暗号方式である場合、暗号化鍵ＥＫ（ｊ）は属性等を表すベクトルであり、復号鍵ＤＫ（ｊ）はこのベクトルに対応する秘密鍵である。暗号方式Ｓ（ｊ）が共通鍵暗号方式である場合、暗号化鍵ＥＫ（ｊ）および復号鍵ＤＫ（ｊ）は共通鍵であり、ＥＫ（ｊ）＝ＤＫ（ｊ）である。復号鍵ＤＫ（ｊ）は、すべての暗号方式において秘密情報である。一方、暗号化鍵ＥＫ（ｊ）は、公開鍵暗号方式、ＩＤベース暗号方式、および関数型暗号方式では公開情報であるが、共通鍵暗号方式では秘密情報である。
【００１７】
暗号化鍵ＥＫ（ｊ）（ただし、ｊ∈｛１，…，Ｊ｝）は、クライアント装置１３−ｊ（図３Ａ）の記憶部１３１−ｊに格納される。復号鍵ＤＫ（ｊ）（ただし、ｊ∈｛１，…，Ｊ｝）は、鍵クラウド装置１５−ｊの記憶部１５１−ｊに格納される。
【００１８】
＜登録処理＞
図４に例示するように、管理装置１１は、復号鍵ＤＫ（ｊ）（ただし、ｊ∈｛１，…，Ｊ｝）に対応する値での登録要求を出力する（ステップＳ１０１）。この登録要求は、復号鍵ＤＫ（ｊ）に対応する値と、復号鍵ＤＫ（ｊ）を用いたクラウド鍵管理型の復号サービスを提供する鍵クラウド装置１５−ｊに固有のアドレス情報Ａ（ｊ）（例えば、ＩＰアドレス）とを含む。
【００１９】
復号鍵ＤＫ（１）に対応する値，・・・，復号鍵ＤＫ（Ｊ）に対応する値は、互いに衝突困難であり、圧倒的な確率で互いに異なる値である。例えば、復号鍵ＤＫ（ｊ）に対応する値は公開情報であり、この復号鍵ＤＫ（ｊ）に対応する値のみから復号鍵ＤＫ（ｊ）を特定することは困難である。例えば、暗号方式Ｓ（ｊ）が公開鍵暗号方式、ＩＤベース暗号方式、または関数型暗号方式である場合、復号鍵ＤＫ（ｊ）に対応する値は、それぞれ、公開鍵、識別子、またはベクトル等の暗号化鍵ＥＫ（ｊ）である。暗号方式Ｓ（ｊ）が共通鍵暗号方式である場合、復号鍵ＤＫ（ｊ）に対応する値は、共通鍵である暗号化鍵ＥＫ（ｊ）（＝ＤＫ（ｊ））に対応する鍵識別子である。
【００２０】
登録要求は、ネットワークを通じて送信され、ディレクトリサービス装置１２（図２Ａ）の入力部１２２に入力され、登録処理部１２４に送られる（ステップＳ１０２）。登録処理部１２４は、登録要求が含む復号鍵ＤＫ（ｊ）（第２復号鍵）に対応する値を用い、鍵クラウド装置１５−ｊ（第２鍵クラウド装置）に対応する名前情報Ｎ（ｊ）（第２名前情報）を生成する（ステップＳ１０３）。鍵クラウド装置１５−ｊに対応する名前情報Ｎ（ｊ）は、復号鍵ＤＫ（ｊ）に対応する値から得られ、ディレクトリサービス装置１２で登録可能な文字列（例えば１６進のASCII文字列）からなる。また、鍵クラウド装置１５−１に対応する名前情報Ｎ（１），・・・，鍵クラウド装置１５−Ｊに対応する名前情報Ｎ（Ｊ）は、互いに衝突困難であり、圧倒的な確率で互いに相違する。
【００２１】
鍵クラウド装置１５−ｊに対応する名前情報Ｎ（ｊ）の例は、復号鍵ＤＫ（ｊ）に対応する値を表す情報または復号鍵ＤＫ（ｊ）に対応する値を表す情報の一部を含む文字列である。図２Ｂの例では、ディレクトリサービス装置１２の権威ドメインが“ｎｔｔ．ｌｏｃａｌ”であり、“ｌｏｃａｌ”をトップレベルドメイン、“ｎｔｔ”をセカンドレベルドメイン、暗号化鍵ＥＫ（ｊ）である公開鍵を表す１６進の文字列“３７”をサードレベルドメインとする階層型のドメイン名を名前情報Ｎ（ｊ）としている。この例の場合、登録処理部１２４は、事前設定された権威ドメイン“ｎｔｔ．ｌｏｃａｌ”と、入力された公開鍵を表す１６進の文字列“３７”とを用い、名前情報“３７．ｎｔｔ．ｌｏｃａｌ”を生成する。
【００２２】
名前情報Ｎ（ｊ）の他の例は、復号鍵ＤＫ（ｊ）に対応する値の暗号学的なハッシュ値を表す情報、またはこのハッシュ値を表す情報の一部を含む文字列である。復号鍵ＤＫ（ｊ）に対応する値の暗号学的なハッシュ値とは、復号鍵ＤＫ（ｊ）に対応する値に、ＳＨＡ−１等の暗号学的なハッシュ関数を作用させて得られる関数値を意味する。暗号学的なハッシュ値は衝突困難性（collision resistance）を持つ。一般に暗号化鍵ＥＫ（ｊ）の長さが長いほど安全性は高い。一方で名前情報が長いほど登録すべきデータ量は多く、名前情報の長さの上限が定められている場合もある。復号鍵ＤＫ（ｊ）に対応する値の暗号学的なハッシュ値を表す情報またはその一部を含む名前情報とすることで、高い安全性を確保しつつ、名前情報の長さを短縮できる。図２Ｃの例では、“ｌｏｃａｌ”をトップレベルドメイン、“ｎｔｔ”をセカンドレベルドメイン、１６進の文字列“３７”の暗号学的なハッシュ値を表す文字列“＊＊＊”をサードレベルドメインとする階層型のドメイン名を名前情報Ｎ（ｊ）としている。図２Ｄの例では、文字列“０ｘ３７”の暗号学的なハッシュ値を表す文字列“＊＊＊”の一部“＊＊”をサードレベルドメインとする階層型のドメイン名を名前情報Ｎ（ｊ）としている。これらの例の場合、登録処理部１２４は、事前設定された権威ドメイン“ｎｔｔ．ｌｏｃａｌ”と、事前設定された暗号学的なハッシュ関数と、入力された公開鍵を表す文字列“０ｘ３７”とを用い、名前情報“＊＊＊．ｎｔｔ．ｌｏｃａｌ”や“＊＊．ｎｔｔ．ｌｏｃａｌ”を生成する。
【００２３】
名前情報Ｎ（ｊ）の他の例は、さらに復号鍵ＤＫ（ｊ）に対応する暗号方式Ｓ（ｊ）を表す識別子ＩＤ（ｊ）を含む文字列である。すなわち、名前情報Ｎ（ｊ）は、復号鍵ＤＫ（ｊ）に対応する値を表す情報または復号鍵ＤＫ（ｊ）に対応する値を表す情報の一部、および／または、復号鍵ＤＫ（ｊ）に対応する値の暗号学的なハッシュ値を表す情報またはハッシュ値を表す情報の一部に加え、さらに識別子ＩＤ（ｊ）を含んでいてもよい。図２Ｅの例では、“ｌｏｃａｌ”をトップレベルドメイン、“ｎｔｔ”をセカンドレベルドメイン、暗号化鍵ＥＫ（ｊ）である公開鍵を表す１６進の文字列“３７”と識別子ＩＤ（ｊ）との連結値をサードレベルドメインとする階層型のドメイン名を名前情報Ｎ（ｊ）としている。この例の場合、登録処理部１２４は、事前設定された権威ドメイン“ｎｔｔ．ｌｏｃａｌ”と、入力された公開鍵を表す１６進の文字列“３７”と、この公開鍵に対応する識別子ＩＤ（ｊ）を用い、名前情報“３７｜ＩＤ（ｊ）．ｎｔｔ．ｌｏｃａｌ”を生成する。ただし「α｜β」は文字列αとβとの連結（concatenation）を表す。
【００２４】
登録処理部１２４は、各ｊ∈｛１，…，Ｊ｝について、生成した名前情報Ｎ（ｊ）（第２名前情報）と、登録要求が含む鍵クラウド装置１５−ｊ（第２鍵クラウド装置）に固有のアドレス情報Ａ（ｊ）（第２アドレス情報）と、を対応付けて記憶部２１に格納する（ステップＳ１０４）。例えば、登録処理部１２４は、名前情報Ｎ（ｊ）である図２Ｂに例示した“３７．ｎｔｔ．ｌｏｃａｌ”と、アドレス情報Ａ（ｊ）であるＩＰアドレス“１９２．１６８．１．５４”と、を対応付けて記憶部２１に格納する
【００２５】
＜復号サービスの提供処理＞
暗号化を行う何れかのクライアント装置１３−ｊ（図３Ａ）の入力部１３２−ｊに平文のコンテンツが入力され、暗号化部１３４−ｊに送られる。暗号化部１３４−ｊは、記憶部１３１−ｊから読み込んだ暗号化鍵ＥＫ（ｊ）を用い、暗号方式Ｓ（ｊ）に則ってコンテンツを暗号化し、暗号化コンテンツＣ（ｊ）を生成して出力する。暗号化コンテンツＣ（ｊ）には、前述した「復号鍵ＤＫ（ｊ）に対応する値」が埋め込まれている。例えば暗号方式Ｓ（ｊ）が、公開鍵暗号方式、ＩＤベース暗号方式、または関数型暗号方式である場合、暗号化鍵ＥＫ（ｊ）が「復号鍵ＤＫ（ｊ）に対応する値」として暗号化コンテンツＣ（ｊ）に埋め込まれている。例えば暗号方式Ｓ（ｊ）が共通鍵暗号方式である場合、暗号化鍵ＥＫ（ｊ）＝ＤＫ（ｊ）に対応する鍵識別子が「復号鍵ＤＫ（ｊ）に対応する値」として暗号化コンテンツＣ（ｊ）に埋め込まれている。暗号化コンテンツＣ（ｊ）は、出力部１３３−ｊに送られ、出力部１３３−ｊから出力される。
【００２６】
暗号化コンテンツＣ（ｊ）は、ネットワークを通じて送信され、クライアント装置１４（図３Ｂ）の入力部１４２に入力される（ステップＳ１１１）。
【００２７】
暗号化コンテンツＣ（ｊ）に「復号鍵ＤＫ（ｊ）に対応する値」として埋め込まれた暗号化鍵ＥＫ（ｊ）またはそれに対応する鍵識別子は名前情報生成部１４４に送られる。名前情報生成部１４４は、暗号化鍵ＥＫ（ｊ）またはそれに対応する鍵識別子（復号鍵ＤＫ（ｊ）に対応する値）を用い、復号鍵ＤＫ（ｊ）を用いたクラウド鍵管理型の復号サービスを提供する鍵クラウド装置１５−ｊの名前情報Ｎ（ｊ）を生成して出力する（ステップＳ１１２）。ステップＳ１１２での名前情報Ｎ（ｊ）の生成方法は、登録処理のステップＳ１０３での名前情報Ｎ（ｊ）の生成方法と同じである。生成された名前情報Ｎ（ｊ）は出力部１４３に送られ、出力部１４３は、この名前情報Ｎ（ｊ）を含む名前解決要求をディレクトリサービス装置１２に対して出力する（ステップＳ１１３）。なお、出力部１４３がディレクトリサービス装置１２のアドレス情報を知っている場合には、出力部１４３はそのアドレス情報を用いてディレクトリサービス装置１２に名前情報を送る。ＤＮＳサーバ装置のように上位のディレクトリサービス装置が存在する場合には、出力部１４３がルートのディレクトリサービス装置からのヒエラルキをたどったり、上位のディレクトリサービス装置に名前解決を依頼したりすることなどで、ディレクトリサービス装置１２のアドレス情報を取得してもよい。
【００２８】
名前解決要求は、ネットワークを通じて送信され、ディレクトリサービス装置１２の入力部１２２に入力され、それが含む名前情報Ｎ（ｊ）が検索部１２５に送られる（ステップＳ１１４）。検索部１２５は、入力された名前情報Ｎ（ｊ）を用いて記憶部１２１を検索し、入力された名前情報Ｎ（ｊ）に対応するアドレス情報Ａ（ｊ）を得て（入力された名前情報Ｎ（ｊ）に対応する第２アドレス情報をアドレス情報Ａ（ｊ）として得て）出力する（ステップＳ１１５）。例えば、検索部１２５は、入力された名前情報Ｎ（ｊ）に一致する記憶部１２１内の名前情報を特定し、特定した名前情報に対応付けられたアドレス情報Ａ（ｊ）を得て出力する。例えば、記憶部１２１で名前情報“３７．ｎｔｔ．ｌｏｃａｌ”とアドレス情報“１９２．１６８．１．５４”とが対応付けられており、検索部１２５に名前情報“３７．ｎｔｔ．ｌｏｃａｌ”が入力された場合、検索部１２５はアドレス情報“１９２．１６８．１．５４”を得て出力する。得られたアドレス情報Ａ（ｊ）は、復号鍵ＤＫ（ｊ）を用いたクラウド鍵管理型の復号サービスを提供する鍵クラウド装置１５−ｊのアドレス情報である。アドレス情報Ａ（ｊ）は、出力部１２３に送られて出力される（ステップＳ１１６）。
【００２９】
アドレス情報Ａ（ｊ）は、ネットワークを通じて送信され、クライアント装置１４の入力部１４２に入力され、復号処理部１４５に送られる（ステップＳ１１７）。復号処理部１４５は、アドレス情報Ａ（ｊ）を用い、出力部１４３からネットワーク経由で鍵クラウド装置１５−ｊに接続する。これに対し、鍵クラウド装置１５−ｊ（図３Ｃ）の復号能力提供部１５４−ｊは、出力部１５３−ｊからネットワーク経由で復号処理部１４５に復号サービスを提供し、復号処理部１４５はこの復号サービスの提供を受けることで、暗号化コンテンツＣ（ｊ）の復号結果を得て出力する（ステップＳ１１８，Ｓ１１９）。
【００３０】
復号サービスの提供は、例えば、公知の自己訂正技術を用いて行われる（例えば国際公開WO/2012/057134，WO/2011/086992，WO/2012/121152等参照）。自己訂正技術とは、必ずしも正しい計算結果を出力するとは限らない計算機やシステムを用いて常に正しい計算を行う（正しい計算結果を出力する計算機を用いた場合に正しい計算結果を出力し、必ずしも正しい結果を出力するとは限らない計算機を用いた場合に、正しい計算結果を得るか、または計算できない旨の結果を得る）技術である。自己訂正技術を用いた復号サービスでは、鍵クラウド装置１５−ｊが復号鍵ＤＫ（ｊ）の情報を外部のクライアント装置１４に与えることなく、鍵クラウド装置１５−ｊが、クライアント装置１４で暗号化コンテンツＣ（ｊ）（復号対象の暗号文）の復号値を得るための情報をクライアント装置１４に与える処理を含む。好ましくは、鍵クラウド装置１５−ｊは、暗号化コンテンツＣ（ｊ）の情報をクライアント装置１４から得ることなく（例えば、暗号化コンテンツＣ（ｊ）をかく乱した情報を得て）、暗号化コンテンツＣ（ｊ）の復号値を得るための情報をクライアント装置１４に与える。
【００３１】
以下に自己訂正技術を用いた復号サービスの提供処理を例示する。以下の例では、Ｇ，Ｈが群、ｆ（ｘ）が群Ｈの元である暗号文ｘを特定の復号鍵ＤＫ（ｊ）で復号して群Ｇの元を得るための復号関数、Ｘ１，Ｘ２が群Ｇに値を持つ確率変数、ｘ１が確率変数Ｘ１の実現値、ｘ２が確率変数Ｘ２の実現値、ａ，ｂが互いに素である自然数である。ただし、以下の例は本発明を限定するものではなく、その他の自己訂正技術が用いられてもよい。
ステップ１１８ａ：復号処理部１４５は、暗号化コンテンツＣ（ｊ）に対応する、群Ｈの元である第一入力情報τ１及び第二入力情報τ２を出力する。例えば、ｆ（ｘ）が準同型関数、群Ｈが巡回群、巡回群Ｈの生成元がμｈ、ｒ１，ｒ２が０以上のランダムな自然数、τ１＝μｈｒ１ｘｂ、τ２＝μｈｒ２ｘａである。また、ａ，ｂの一方が１などの定数であってもよい。第一入力情報τ１及び第二入力情報τ２は鍵クラウド装置１５−ｊに送られる。
【００３２】
ステップ１１９ａ：復号能力提供部１５４−ｊは、送られた第一入力情報τ１を用い、或る確率より大きな確率でｆ（τ１）を正しく計算し、得られた計算結果を第一出力情報ｚ１とする。すなわち、ｚ１＝ｆ（τ１）である場合もあれば、ｚ１≠ｆ（τ１）である場合もある。言い換えると、復号能力提供部１５４−ｊは、ｆ（τ１）を計算可能であるが、意図的又は意図的ではない誤差を含んだ計算結果を出力する可能性がある。「或る確率」は１００％未満であり０％以上の確率である。「或る確率」の例は無視することができない確率であり、「無視することができない確率」の例は、セキュリティパラメータｋについての広義単調増加関数である多項式を多項式ψ（ｋ）とした場合の１／ψ（ｋ）以上の確率である。第一出力情報ｚ１はクライアント装置１４に送られる。
【００３３】
ステップ１１９ｂ：復号能力提供部１５４−ｊは、送られた第二入力情報τ２を用い、或る確率より大きな確率でｆ（τ２）を正しく計算し、得られた計算結果を第二出力情報ｚ２とする。すなわち、ｚ２＝ｆ（τ２）である場合もあれば、ｚ２≠ｆ（τ２）である場合もある。言い換えると、復号能力提供部１５４−ｊは、ｆ（τ２）を計算可能であるが、意図的又は意図的ではない誤差を含んだ計算結果を出力する可能性がある。第二出力情報ｚ２はクライアント装置１４に送られる。
【００３４】
ステップ１１８ｂ：復号処理部１４５は、送られた第一出力情報ｚ１から計算結果ｕ＝ｆ（ｘ）ｂｘ１を生成する。例えば、ν＝ｆ（μｈ）であり、ｕ＝ｚ１ν−ｒ１である。生成された計算結果ｕは復号処理部１４５の記憶部（図示せず）に格納される。
ステップ１１８ｃ：復号処理部１４５は、送られた第二出力情報ｚ２から計算結果ｖ＝ｆ（ｘ）ａｘ２を生成する。例えば、ｖ＝ｚ２ν−ｒ２である。生成された計算結果ｖは復号処理部１４５の記憶部（図示せず）に格納される。
【００３５】
ステップ１１８ｄ：復号処理部１４５は、記憶部に格納されている何れかのｕ及びｖの組がｕａ＝ｖｂを満たすかを判定し、満たした場合に、ｕａ＝ｖｂを満たすｕ及びｖの組およびａ’ａ＋ｂ’ｂ＝１を満たす整数ａ’，ｂ’についてのｕｂ’ｖａ’を復号値として出力する。ステップ１１８ａ〜１１８ｄ，１１９ａ，１１９ｂの処理を所定回数繰り返しても計算結果ｕ及びｖがｕａ＝ｖｂを満たさなかった場合、復号処理部１４５は、復号が不可能である旨のエラー情報を出力する。なお、復号処理部１４５の記憶部（図示せず）に１個以上のｖが格納されている場合には、ステップ１１８ｂとステップ１１８ｃとの間でもステップ１１８ｄの処理が行われてもよい。
【００３６】
自己訂正技術を用いた復号サービスが提供される場合、復号処理部１４５は、正しい復号値を得るか、或いは、復号が不可能である旨の結果を得る。復号処理部１４５が誤った復号値を得る確率は無視できるほど小さい。よって、自己訂正技術を用いた復号サービスが提供される場合、クライアント装置１４は、公開鍵等の「復号鍵ＤＫ（ｊ）に対応する値」の正当性や鍵クラウド装置１５−ｊの正当性を確認しなくても、誤った復号値が正しい復号値であると詐称されることはない。そのため、公開鍵証明書の検証や認証処理を行う必要がない。
【００３７】
＜変形例等＞
なお、本発明は上述の実施の形態に限定されるものではない。例えば、上記の実施形態では自己訂正技術を用いて復号サービスが提供される例を示した。しかしながら、自己訂正技術を用いることなく復号サービスが提供されてもよい。例えば、復号サービスを受けるクライアント装置が、アドレス情報Ａ（ｊ）を用い、ネットワーク経由で鍵クラウド装置１５−ｊに接続し、暗号化コンテンツＣ（ｊ）を鍵クラウド装置１５−ｊに送信し、鍵クラウド装置１５−ｊが復号鍵ＤＫ（ｊ）を用いて暗号化コンテンツＣ（ｊ）を復号し、それによって得られた復号値を当該クライアント装置に送信してもよい。
【００３８】
また、管理装置１１、ディレクトリサービス装置１２、クライアント装置１３−１〜１３−Ｊ、クライアント装置１４、および鍵クラウド装置１５−１〜１５−Ｊの一部からなる組み合わせが、同一のコンピュータ上で実装されてもよい。すなわち、これらの装置の一部からなる組み合わせが、同一の装置であってもよい。
【００３９】
名前情報は、上述したＦＱＤＮなどのドメイン名やｎｅｔｂｉｏｓ名などに限定されない。例えば、ユーザＩＤや装置ＩＤ等の識別子が名前情報でもよい。アドレス情報は、上述したＩＰアドレスに限定されない。例えば、メールアドレス、ＭＡＣアドレス等がアドレス情報であってもよい。
【００４０】
また自己訂正技術は前述したものに限定されない。例えば、群Ｈが群Ｇの直積群Ｇ×Ｇ、群Ｇが巡回群、巡回群Ｇの生成元がμｇ、暗号文ｘ＝（ｃ１，ｃ２），（Ｖ，Ｗ）が群Ｈの元、ｆ（Ｖ，Ｗ）＝Ｙであり、ｒ４〜ｒ７が０以上の自然数の乱数であり、τ１＝（ｃ２ｂＷｒ４，ｃ１ｂＶｒ４μｇｒ５）であり、τ２＝（ｃ２ａＷｒ６，ｃ１ａＶｒ６μｇｒ７）であり、ｕ＝ｚ１Ｙ−ｒ４μｇ−ｒ５、ｖ＝ｚ２Ｙ−ｒ６μｇ−ｒ７であってもよい。
【００４１】
その他上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【００４２】
上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体の例は、非一時的な（non-transitory）記録媒体である。このような記録媒体の例は、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等である。
【００４３】
このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【００４４】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。処理の実行時、このコンピュータは、自己の記録装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。
【００４５】
上記実施形態では、コンピュータ上で所定のプログラムを実行させて本装置の処理機能が実現されたが、これらの処理機能の少なくとも一部がハードウェアで実現されてもよい。
【００４６】
＜付記＞
［項目（Item）１］
復号鍵に対応する値を用いて生成された名前情報を入力とし、前記復号鍵を用いたクラウド鍵管理型の復号サービスを提供する鍵クラウド装置のアドレス情報を得る、ディレクトリサービス装置。
［項目２］
項目１のディレクトリサービス装置であって、
第２復号鍵に対応する値を用いて生成された第２名前情報と、前記第２復号鍵を用いたクラウド鍵管理型の復号サービスを提供する第２鍵クラウド装置の第２アドレス情報と、を対応付けて格納する記憶部と、
入力された前記名前情報を用いて前記記憶部を検索し、前記名前情報に対応する前記第２アドレス情報を前記アドレス情報として得る検索部と、
を有するディレクトリサービス装置。
［項目３］
項目１または２のディレクトリサービス装置であって、
前記復号サービスは、自己訂正技術を用い、前記鍵クラウド装置が前記復号鍵の情報を外部のクライアント装置に与えることなく、前記クライアント装置で暗号文の復号値を得るための情報を前記クライアント装置に与える処理を含む、ディレクトリサービス装置。
［項目４］
項目１から３の何れかのディレクトリサービス装置であって、
前記第２復号鍵に対応する値を用いて前記第２名前情報を生成し、生成した前記第２名前情報と、前記第２復号鍵を用いたクラウド鍵管理型の復号サービスを提供する第２鍵クラウド装置の第２アドレス情報と、を対応付けて前記記憶部に格納する登録処理部を有する、ディレクトリサービス装置。
［項目５］
項目１から４の何れかのディレクトリサービス装置であって、
前記名前情報は、前記復号鍵に対応する値を表す情報または前記復号鍵に対応する値を表す情報の一部を含む、ディレクトリサービス装置。
［項目６］
項目１から５の何れかのディレクトリサービス装置であって、
前記名前情報は、前記復号鍵に対応する値の暗号学的なハッシュ値を表す情報または前記ハッシュ値を表す情報の一部を含む、ディレクトリサービス装置。
［項目７］
項目１から６の何れかのディレクトリサービス装置であって、
前記名前情報は、前記復号鍵に対応する暗号方式を表す識別子を含む、ディレクトリサービス装置。
［項目８］
項目１から７の何れかのディレクトリサービス装置であって、
前記復号鍵が前記鍵クラウド装置に格納された秘密情報であり、前記復号鍵に対応する値が公開情報である、ディレクトリサービス装置。
［項目９］
項目１から８の何れかのディレクトリサービス装置であって、
前記復号鍵が秘密鍵であり、前記復号鍵に対応する値が公開鍵である、ディレクトリサービス装置。
【符号の説明】
【００４７】
１  鍵クラウドシステム
１２  ディレクトリサービス装置
１３−１〜１３−Ｊ，１４  クライアント装置
１５−１〜１５−Ｊ  鍵クラウド装置
【図１】
0006055919.tif 000002
【図２】
0006055919.tif 000003
【図３】
0006055919.tif 000004
【図４】
0006055919.tif 000005
【図５】
0006055919.tif 000006