(57)【要約】【課題】暗号鍵の漏洩リスクを増加させずに暗号通信の権限を委譲する。【解決手段】第１通信装置と、第１通信装置および外部の第２通信装置の間で暗号通信をさせる管理装置とを備えるシステムを提供する。管理装置は、第２通信装置との間で共有している第１暗号鍵を記憶する鍵記憶部と、鍵記憶部から読み出した第１暗号鍵を鍵付きの一方向関数に与える演算を行い、その演算結果を第２暗号鍵として生成する鍵生成部と、第２暗号鍵および一方向関数の鍵を第１通信装置に出力する鍵出力部とを有する。第１通信装置は、管理装置から受け取った一方向関数の鍵を第２通信装置に送信して、第２通信装置に、記憶している第１暗号鍵を鍵付きの一方向関数に与える演算をさせ、第２暗号鍵を生成させる鍵生成制御部と、管理装置から受け取った第２暗号鍵を用いて第２通信装置との間で暗号通信をする暗号通信部と、を有する。【選択図】図２
2008078952.tif 000002
【特許請求の範囲】
【請求項１】
第１通信装置と、前記第１通信装置および外部の第２通信装置の間で暗号通信をさせる管理装置とを備えるシステムであって、
前記管理装置は、
前記第２通信装置との間で共有している第１暗号鍵を記憶する鍵記憶部と、
前記鍵記憶部から読み出した前記第１暗号鍵を鍵付きの一方向関数に与える演算を行って、その演算結果を第２暗号鍵として生成する鍵生成部と、
前記第２暗号鍵および前記一方向関数の鍵を前記第１通信装置に出力する鍵出力部と、を有し、
前記第１通信装置は、
前記管理装置から受け取った前記一方向関数の鍵を前記第２通信装置に送信して、前記第２通信装置に、記憶している第１暗号鍵を前記鍵付きの一方向関数に与える演算をさせて、第２暗号鍵を生成させる鍵生成制御部と、
前記管理装置から受け取った前記第２暗号鍵を用いて前記第２通信装置との間で暗号通信をする暗号通信部と、を有するシステム。
【請求項２】
前記鍵記憶部は、複数の第２通信装置に対しブロードキャストした暗号化データを一部の第２通信装置に対し選択的に復号可能とするために、それぞれが当該管理装置および少なくとも１の第２通信装置の間で共有されている複数の第１暗号鍵を記憶しており、
前記鍵生成部は、前記複数の第２通信装置のうち前記第１通信装置によりブロードキャストされた暗号化データを復号可能とする第２通信装置を指定する入力を受け取り、指定された前記第２通信装置との間で共有されている第１暗号鍵を前記鍵記憶部から読み出して、読み出した前記第１暗号鍵を前記鍵付きの一方向関数に与える演算を行い、その演算結果を第２暗号鍵として生成し、
前記鍵生成制御部は、前記管理装置から受け取った前記一方向関数の鍵を前記複数の第２通信装置に対しブロードキャストし、
前記暗号通信部は、前記管理装置から受け取った前記第２暗号鍵によりデータを暗号化してブロードキャストすることで、指定された前記第２通信装置との間で暗号通信をする、請求項１に記載のシステム。
【請求項３】
前記鍵記憶部は、複数の第１暗号鍵のそれぞれを、多分木構造のデータにおける互いに異なるノードに対応付けて記憶しており、
さらに、前記多分木構造のデータにおけるそれぞれのリーフノードには、それぞれの第２通信装置が対応付けられており、
さらに、それぞれの第２通信装置には、当該第２通信装置に対応するリーフノードからルートノードに至る経路上の各ノードに対応するそれぞれの第１暗号鍵が予め配布されており、
前記鍵生成部は、前記複数の第２通信装置のうち前記第１通信装置によりブロードキャストされた暗号化データを復号可能とする第２通信装置のグループを指定する入力を受け取り、前記多分木において指定された前記グループを含む部分木内のそれぞれの第１暗号鍵を前記鍵記憶部から読み出し、読み出したそれぞれの前記第１暗号鍵を前記鍵付きの一方向関数に与える演算を行い、そのそれぞれの演算結果を対応する第２暗号鍵として生成し、
前記鍵出力部は、それぞれの前記第２暗号鍵および前記一方向関数の鍵を前記第１通信装置に出力し
前記鍵生成制御部は、前記管理装置から受け取った前記一方向関数の鍵を、指定された前記グループに対し送信し、前記グループ内のそれぞれの前記第２通信装置に、記憶している第１暗号鍵を前記鍵付きの一方向関数に与える演算をさせて、第２暗号鍵を生成させ、
前記暗号通信部は、前記管理装置から受け取った複数の前記第２暗号鍵の少なくとも一部を用いてデータを暗号化してブロードキャストすることで、指定された前記グループの少なくとも一部との間で暗号通信をする、請求項２に記載のシステム。
【請求項４】
前記暗号通信部は、データを暗号化した暗号鍵を、当該データの復号化を許可する第２通信装置には配信済みで、かつ、他の第２通信装置には未配信である第１暗号鍵から生成された第２暗号鍵によって暗号化して、暗号済暗号鍵を生成し、暗号化したデータに添付してブロードキャストし、
前記鍵生成制御部は、前記暗号通信部がブロードキャストするデータに、さらに、前記管理装置から受け取った前記一方向関数の鍵を添付して送信する、請求項３に記載のシステム。
【請求項５】
前記管理装置は、前記複数の第１暗号鍵のうち第三者に漏洩した結果として暗号通信に使用不能となった第１暗号鍵を指定する入力を受け付け、指定された前記第１暗号鍵から前記鍵生成部によって生成された第２暗号鍵を無効とすることを前記第１通信装置に通知する漏洩管理部をさらに有する、請求項２に記載のシステム。
【請求項６】
複数の第１通信装置を備え、
前記第２暗号鍵を受け取った前記第１通信装置は、さらに、
前記管理装置から受け取った前記第２暗号鍵を鍵付きの一方向関数に与える演算を行い、その演算結果を第３暗号鍵として生成する鍵生成部と、
前記第３暗号鍵、前記管理装置から受け取った前記一方向関数の鍵、および、前記第１通信装置において前記鍵生成部の演算に用いた前記一方向関数の鍵を、他の第１通信装置に出力する鍵出力部と、を有し、
前記第３暗号鍵を受け取った前記他の第１通信装置において、
前記鍵生成制御部は、受け取った前記一方向関数の２つの鍵を前記第２通信装置に送信し、前記第２通信装置に、記憶している第１暗号鍵に当該２つの鍵のそれぞれを付した２つの一方向関数のそれぞれを順次適用する演算をさせて演算結果を第３暗号鍵として生成させ、
前記暗号通信部は、受け取った前記第３暗号鍵を用いて前記第２通信装置との間で暗号通信をする、請求項１に記載のシステム。
【請求項７】
前記第１暗号鍵は、前記第２通信装置において外部から読み出し不能かつ書き換え不能に管理されたデバイス鍵である、請求項１に記載のシステム。
【請求項８】
前記管理装置は、前記第２暗号鍵が第三者に漏洩した結果として暗号通信に使用不能となったことを示す入力に応じ、前記一方向関数の鍵を前記第１暗号鍵で暗号化して前記第２通信装置に送信し、前記一方向関数の鍵を用いて生成した第２暗号鍵は使用不能であることを前記第２通信装置に通知する漏洩管理部をさらに有する、請求項１に記載のシステム。
【請求項９】
暗号通信の暗号鍵を管理すると共に、第１通信装置に第２通信装置との間で暗号通信をさせる管理装置であって、
前記第２通信装置との間で共有している第１暗号鍵を記憶する鍵記憶部と、
前記鍵記憶部から読み出した前記第１暗号鍵を鍵付きの一方向関数に与える演算を行って、その演算結果を第２暗号鍵として生成する鍵生成部と、
前記第１通信装置と前記第２通信装置とを第２暗号鍵を用いて暗号通信させるために、前記第２暗号鍵を前記第１通信装置に出力し、前記一方向関数の鍵を前記第２通信装置に受信させるべく出力する鍵出力部と、を備える管理装置。
【請求項１０】
暗号通信の暗号鍵を管理する管理装置の支援により、第２通信装置との間で暗号通信をする第１通信装置であって、
前記管理装置が前記第２通信装置と共有している第１暗号鍵から第２暗号鍵を生成するために用いた鍵付きの一方向関数の鍵を、前記管理装置から取得して、前記第２通信装置に対し送信し、前記第２通信装置に、記憶している第１暗号鍵を前記鍵付きの一方向関数に与える演算をさせ、その演算結果を第２暗号鍵として生成させる鍵生成制御部と、
前記第２暗号鍵を前記管理装置から取得して、前記第２暗号鍵を用いて前記第２通信装置との間で暗号通信をする暗号通信部と、を備える第１通信装置。
【請求項１１】
暗号通信の暗号鍵を管理する管理装置の支援により、第１通信装置との間で暗号通信をする第２通信装置であって、
前記管理装置との間で共有している第１暗号鍵を記憶する鍵記憶部と、
前記管理装置が前記第１通信装置を当該第２通信装置と通信させるために前記第１暗号鍵を与えて第２暗号鍵を生成した鍵付きの一方向関数の鍵を取得する鍵取得部と、
前記鍵記憶部に記憶された第１暗号鍵を、前記鍵取得部が取得した鍵を付した一方向関数に与える演算を行って第２暗号鍵を生成する鍵生成部と、
生成した前記第２暗号鍵を用いて前記第１通信装置と通信する暗号通信部と、を備える第２通信装置。
【請求項１２】
暗号通信の暗号鍵を管理すると共に、第１通信装置に第２通信装置との間で暗号通信をさせる方法であって、
前記第２通信装置との間で共有している第１暗号鍵をメモリに記憶し、
メモリから読み出した前記第１暗号鍵を鍵付きの一方向関数に与える演算を行って、その演算結果を第２暗号鍵として生成し、
前記第１通信装置と前記第２通信装置とを第２暗号鍵を用いて暗号通信させるために、前記第２暗号鍵を前記第１通信装置に出力し、前記一方向関数の鍵を前記第２通信装置に受信させるべく出力する、方法。
【請求項１３】
暗号通信の暗号鍵を管理すると共に、第１通信装置に第２通信装置との間で暗号通信をさせる管理装置として、情報処理装置を機能させるプログラムであって、
前記情報処理装置を、
前記第２通信装置との間で共有している第１暗号鍵を記憶する鍵記憶部と、
前記鍵記憶部から読み出した前記第１暗号鍵を鍵付きの一方向関数に与える演算を行って、その演算結果を第２暗号鍵として生成する鍵生成部と、
前記第１通信装置と前記第２通信装置とを第２暗号鍵を用いて暗号通信させるために、前記第２暗号鍵を前記第１通信装置に出力し、前記一方向関数の鍵を前記第２通信装置に受信させるべく出力する鍵出力部と、して機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号通信に関する。特に、本発明は、暗号通信の暗号鍵を管理または生成する技術に関する。
【背景技術】
【０００２】
ブロードキャストした暗号化コンテンツを、一部のユーザによってのみ復号可能とする暗号化方式として、ブロードキャスト暗号が用いられている。ブロードキャスト暗号において、それぞれのユーザの通信装置は互いに異なる暗号鍵のセットを記憶しており、それらの暗号鍵は外部から読み出せないように管理されている。鍵を管理する管理装置は、全てのユーザの暗号鍵を記憶している。コンテンツ作成者は、暗号化コンテンツを配信したい場合、コンテンツを任意の暗号鍵（タイトル鍵と呼ぶ）で暗号化したうえで、暗号化コンテンツおよびそのタイトル鍵を管理装置に送信して、暗号化コンテンツの配信を依頼する。
【０００３】
管理装置は、復号を許可するユーザのみが有するそれぞれの暗号鍵によって、受け取ったタイトル鍵を暗号化して、暗号化したタイトル鍵のセット（ＭＫＢ：Ｍｅｄｉａ  ｋｅｙ  Ｂｌｏｃｋと呼ばれる）を生成したうえで、暗号化コンテンツに対応付けてユーザにブロードキャストする。このように、ブロードキャスト暗号は、コンテンツの配信先を限定しなくとも、復号可能なユーザを任意に選択できるという特徴を有する。また、共通鍵暗号を基本とするから、暗号化によるデータサイズの増加が僅かであり、かつ、暗号化・復号化の処理負荷が小さいという利点を有する。実際に、この暗号化方式は、CPPM（Content Protection for Prerecorded Media）やCPRM（Content Protection for Recordable Media）等で既に実用化されている。
【０００４】
参考技術として、特許文献１〜２を挙げる。特許文献１および２の技術は、ツリー構造などの階層構造の各ノードに対応して暗号鍵を生成する場合に、上位階層のノードに対応する暗号鍵に基づいて、下位階層のノードに対応する暗号鍵を生成する。これにより、予め準備する暗号鍵の数を低減しつつも、ツリー構造のデータの任意の部分木を選択して特定のユーザに復号可能とすることなどが実現できる。
【特許文献１】特開２００５−０５１７２７号公報
【特許文献２】特表２００５−５３９４２３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ブロードキャスト暗号において、通常、暗号化コンテンツは、全てのユーザのデバイス鍵を管理する管理装置によってのみ配信可能である。したがって、コンテンツ作成者がコンテンツを配信したい場合には、そのコンテンツを管理装置に送信して、管理装置における暗号化処理を依頼しなければならない。このため、コンテンツ作成者は複数存在する場合もあることから、管理装置に暗号化の処理負荷が集中する恐れがあった。また、管理装置がメンテナンスなどで停止している場合には、動作再開まで暗号化が遅れてしまっていた。
【０００６】
これらの問題は、管理装置が他の装置に対し暗号鍵の複製を与えて処理を分散すれば解決できるとも考えられる。しかしながら、暗号鍵の複製を複数の装置で共有すると、暗号鍵が漏洩するリスクが高まり、また、漏洩元の特定が難しくなるおそれがある。例えば、親会社の管理装置に記憶された暗号鍵を、子会社の装置において複製し、さらにそれを孫会社の装置において複製した場合に、暗号鍵が漏洩しても、それが子会社から漏洩したものか、孫会社から漏洩したものかを特定するのは困難である。さらに、ユーザの通信装置に記憶された暗号鍵は変更が困難であるから、漏洩した暗号鍵の使用を停止した結果、正常な暗号通信が不能となる場合がある。
【０００７】
上記の参考技術は、ツリー構造として管理する暗号鍵のセットを生成するためのものであり、ブロードキャスト暗号においては、ユーザの通信装置に記憶させるべき暗号鍵の作成処理に対応する。このため、管理装置に集中する負荷を軽減したり、鍵漏洩リスクを軽減したりすることはできない。
【０００８】
そこで本発明は、上記の課題を解決することのできるシステム、管理装置、第１通信装置、第２通信装置、方法およびプログラムを提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明の１つの側面においては、第１通信装置と、第１通信装置および外部の第２通信装置の間で暗号通信をさせる管理装置とを備えるシステムであって、管理装置は、第２通信装置との間で共有している第１暗号鍵を記憶する鍵記憶部と、鍵記憶部から読み出した第１暗号鍵を鍵付きの一方向関数に与える演算を行って、その演算結果を第２暗号鍵として生成する鍵生成部と、第２暗号鍵および一方向関数の鍵を第１通信装置に出力する鍵出力部とを有し、第１通信装置は、管理装置から受け取った一方向関数の鍵を第２通信装置に送信して、第２通信装置に、記憶している第１暗号鍵を鍵付きの一方向関数に与える演算をさせて、第２暗号鍵を生成させる鍵生成制御部と、管理装置から受け取った第２暗号鍵を用いて第２通信装置との間で暗号通信をする暗号通信部とを有するシステムを提供する。また、当該システムとして情報システムを機能させるプログラムおよび方法を提供する。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【発明を実施するための最良の形態】
【００１０】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１１】
図１は、情報システム１０と複数の第２通信装置３０との接続関係を示す。情報システム１０は、例えば企業グループを構成するグループ内などに設けられており、管理装置２０と、複数の第１通信装置４０とを有する。管理装置２０は、例えば親会社などによって管理されており、複数の第１通信装置４０のそれぞれは、例えばその子会社や関連会社（Ｓ１−Ｓｍ）などによって管理されている。複数の第２通信装置３０のそれぞれは、例えば個人利用者（ｕ１−ｕｎ）によって管理されているパーソナルコンピュータまたは放送受信器である。そして、複数の第２通信装置３０のそれぞれは、情報システム１０の外部に設けられており、不特定多数人が利用し得る電気通信回線を介して情報システム１０に接続されている。この電気通信回線は、たとえば、公衆電話回線、インターネット、または、公衆放送網などである。
【００１２】
管理装置２０は、暗号通信の暗号鍵を少なくとも１つ管理しており、その暗号鍵はそれぞれの第２通信装置３０との間で既に共有されている。例えば、第２通信装置３０においてはそれが製品として出荷されるときに予め暗号鍵が記憶されており、その暗号鍵は外部から読み出しや書き換えができないように管理されている。そして、管理装置２０は、ある第１通信装置４０の要求に応じ、その第１通信装置４０および第２通信装置３０の間で暗号通信をさせる。例えば、管理装置２０は、既に管理している暗号鍵に基づいて新たな暗号鍵を生成して第１通信装置４０に与え、その新たな暗号鍵によって第１通信装置４０により暗号通信をさせる。この際、管理装置２０は、この新たな暗号鍵を生成するために使用した一方向関数の鍵を第１通信装置４０に与えることで、第１通信装置４０によってその鍵を通信先の第２通信装置３０に送信させ、第２通信装置３０においても新たな暗号鍵を生成可能とする。なお、一方向関数自体の演算内容は、管理装置２０および何れの第２通信装置３０からも参照可能に公開されていてよい。これによって、第２通信装置３０に一方向関数の鍵が与えられれば、新たな暗号鍵の生成が第２通信装置３０において可能となる。
【００１３】
このように、本実施形態に係る情報システム１０は、既に共有されている暗号鍵に基づいて新たな暗号鍵を生成して提供することで、変更が困難な既存の暗号鍵の漏洩リスクを増加させることなく、コンテンツ配信および暗号化処理の負荷を多数の第１通信装置４０に分散させることを目的とする。
【００１４】
図２は、管理装置２０の機能構成を示す。管理装置２０は、鍵記憶部２００と、鍵生成部２１０と、生成鍵ＤＢ２２０と、鍵出力部２３０と、漏洩管理部２４０とを有する。鍵記憶部２００は、複数の第２通信装置３０に対しブロードキャストした暗号化データを一部の第２通信装置３０に対し選択的に復号可能とするために、それぞれが管理装置２０および少なくとも１の第２通信装置３０の間で共有されている複数の第１暗号鍵を記憶している。これら複数の第１暗号鍵の構成を図３に例示する。
【００１５】
図３は、鍵記憶部２００において階層構造に管理された第１暗号鍵の構成を示す。１６個の第２通信装置３０のそれぞれは、１６人の利用者（ｕ１−ｕ１６）のそれぞれによって管理されている。そして、これら複数の第２通信装置３０のそれぞれは、多分木構造（ここでは完全２分木構造）のデータにおけるそれぞれのリーフノードに対応付けられている。そして、鍵記憶部２００は、複数の第１暗号鍵のそれぞれを、この多分木構造のデータにおける互いに異なるノードに対応付けて記憶している。ここでいうノードには、前記のリーフノードも含まれる。具体的には、ルートノードには第１暗号鍵Ｄ１が対応付けられ、その子ノードには第１暗号鍵Ｄ２およびＤ３のそれぞれが対応付けられている。第１暗号鍵Ｄ４からＤ１５は各子孫ノードに対応付けられ、リーフノードには、第１暗号鍵Ｄ１６からＤ３１がそれぞれ対応付けられる。
【００１６】
それぞれの第２通信装置３０には、その第２通信装置３０に対応するリーフノードからルートノードに至る経路上の各ノードに対応するそれぞれの第１暗号鍵が予め配布されている。即ち例えば、利用者ｕ６の第２通信装置３０には、第１暗号鍵Ｄ２１、Ｄ１０、Ｄ５、Ｄ２およびＤ１が配布されている。そして、鍵記憶部２００には、これらの第１暗号鍵Ｄ１からＤ３１が、この多分木構造を識別可能なように管理されて記憶されている。例えば、鍵記憶部２００は、図３に図示するノードのリンクの接続先から構成されるグラフ構造のデータを記憶してもよいし、それぞれの第１暗号鍵を、その第１暗号鍵を配布した第２通信装置３０またはその利用者を識別する情報に対応付けて記憶してもよい。
【００１７】
このような構造により第１暗号鍵を管理することで、暗号化データ自体が全ての第２通信装置３０に対しブロードキャストされたとしても、その暗号化データを復号可能な第２通信装置３０を任意に選択できる。例えば、いま、利用者ｕ１、ｕ４、ｕ７、ｕ８、および、ｕ１５に対しては暗号化データを復号化させたくないとすれば、まず、管理装置２０は、管理している全ての第１暗号鍵の中から、それらの利用者の第２通信装置３０に対し配信された第１暗号鍵を除外する。この結果、図３中に二重線で示す経路上の第１暗号鍵、即ちＤ１−Ｄ５、Ｄ７−Ｄ９、Ｄ１１、Ｄ１５−Ｄ１６、Ｄ１９、Ｄ２２−Ｄ２３、およびＤ３０は除外される。そして、管理装置２０は、除外された残りの第１暗号鍵を、暗号化に用いる暗号鍵として選択する。好ましくは、管理装置２０は、選択したこれらの第１暗号鍵の中に、祖先・子孫の関係にある複数の第１暗号鍵が含まれる場合には、それら複数の第１暗号鍵の中では最も祖先側に位置する第１暗号鍵のみを選択し、その他の第１暗号鍵を選択しない。この結果、図３中に※印で示したように、第１暗号鍵Ｄ６、Ｄ１０、Ｄ１４、Ｄ１７、Ｄ１８およびＤ３１が選択される。送信するデータをこれらそれぞれの第１暗号鍵で暗号化すれば、所望のそれぞれの利用者は、自己の有する何れかの暗号鍵によってそのデータを復号することができる。
【００１８】
図２に戻る。鍵生成部２１０は、複数の第２通信装置３０との間の暗号通信の権限を委譲する要求を第１通信装置４０から受け付ける。例えば、鍵生成部２１０は、複数の第２通信装置３０のうち第１通信装置４０によりブロードキャストされた暗号化データを復号可能とする第２通信装置３０を指定する入力を、第１通信装置４０から受け付けてもよいし、そのような暗号化データを復号可能とする第２通信装置３０のグループを指定する入力を受け付けてもよい。鍵生成部２１０は、第２通信装置３０が指定された場合には、指定されたその第２通信装置３０との間で共有されている第１暗号鍵を鍵記憶部２００から読み出して、読み出したその第１暗号鍵を鍵付きの一方向関数に与える演算を行う。そして、鍵生成部２１０は、その演算結果を第２暗号鍵として生成する。
【００１９】
鍵生成部２１０は、暗号化データを復号可能とする第２通信装置３０のグループが指定された場合には、図３に示した多分木において指定されたそのグループを含む部分木内のそれぞれの第１暗号鍵を鍵記憶部２００から読み出す。そして、鍵生成部２１０は、読み出したそれぞれの第１暗号鍵を鍵付きの一方向関数に与える演算を行い、そのそれぞれの演算結果を対応する第２暗号鍵として生成する。生成された第２暗号鍵、および、生成に際し用いられた一方向関数の鍵は、生成鍵ＤＢ２２０に記憶される。また、鍵出力部２３０は、第２暗号鍵および一方向関数の鍵を、委譲を要求した第１通信装置４０に対し出力する。第２暗号鍵は複数組み合わせて出力されてよく、これらの第２暗号鍵の組合せを暗号鍵セット２５とする。図３および図４を参照して、第２暗号鍵を生成する処理の一例を説明する。
【００２０】
図４は、第２暗号鍵の一例である暗号鍵セット２５の構成を示す。この第２暗号鍵は、利用者ｕ９−ｕ１６から成るグループが指定された場合に、鍵生成部２１０によって、図３の点線の枠内に示すそれぞれの第１暗号鍵に基づいて生成される。即ち、鍵生成部２１０は、このグループが指定されると、指定されたこのグループを含む部分木内のそれぞれの第１暗号鍵を鍵記憶部２００から読み出す。読み出される第１暗号鍵は、暗号鍵Ｄ３、Ｄ６、Ｄ７、Ｄ１２−Ｄ１５、Ｄ２４−Ｄ３１のそれぞれである。
【００２１】
そして、鍵生成部２１０は、これらそれぞれの第１暗号鍵を、鍵付きの一方向関数に与える演算を行う。鍵付きの一方向関数とは、例えば、鍵付きのハッシュ関数であってもよいし、所定の暗号鍵に基づく暗号化関数であってもよい。また、一方向関数とは、入力値から出力値を生成することはできるが、出力値から入力値を生成することが不可能、または、極めて難しい演算を行う関数をいう。例えば、入力値から出力値を生成する処理に比べて、出力値から入力値を生成する処理に要する時間が極めて大きい演算を行う関数であってもよい。
【００２２】
第１暗号鍵を、鍵付きの一方向関数に与えて演算した演算結果は、第２暗号鍵として生成される。生成される第２暗号鍵は、暗号鍵Ｄ［１］３、Ｄ［１］６、Ｄ［１］７、Ｄ［１］１２−Ｄ［１］１５、Ｄ［１］２４−Ｄ［１］３１のそれぞれである。なお、第２暗号鍵は、第１暗号鍵や後述の第３暗号鍵と区別するために［１］の添え字を付して表記する。鍵付きの一方向関数を関数Ｈ（）とし、その鍵をＫｈ１とすると、第１暗号鍵Ｄｉから第２暗号鍵Ｄ［１］ｉを生成する演算は以下の式のように表される。
Ｄ［１］ｉ＝Ｈ（Ｋｈ１，Ｄｉ）
ここで、関数Ｈの演算内容は少なくとも管理装置２０およびそれぞれの第２通信装置４０の間では公開されている。
【００２３】
そして、それぞれの第２暗号鍵は、対応する第１暗号鍵によって構成され多分木構造と同様の多分木構造を構成する。鍵出力部２３０は、委譲を要求した第１通信装置４０に対し、これらそれぞれの第２暗号鍵を出力する。好ましくは、鍵出力部２３０は、それぞれの第２暗号鍵を、この多分木構造を識別可能な情報に対応付けて出力する。例えば、鍵記憶部２００は、図４に示すノードのリンクの接続先から構成されるグラフ構造のデータを記憶してもよいし、それぞれの第２暗号鍵を、対応する第１暗号鍵を配布した第２通信装置３０またはその利用者を識別する情報に対応付けて記憶してもよい。
【００２４】
このような構造の第２暗号鍵を生成することで、暗号化データ自体が全ての第２通信装置３０に対しブロードキャストされたとしても、その暗号化データを復号可能な第２通信装置３０を任意に選択できる。例えば、いま、利用者ｕ１０、ｕ１５、およびｕ１６に対しては暗号化データを復号化させたくないとすれば、まず、第１通信装置４０の暗号通信部６１０は、これらの第２暗号鍵の中から、それらの利用者の第２通信装置３０に対し配信された第２暗号鍵を除外する。この結果、図４中に二重線で示す経路上の第２暗号鍵、即ちＤ［１］３、Ｄ［１］６、Ｄ［１］７、Ｄ［１］１２、Ｄ［１］１５、Ｄ［１］２５、Ｄ［１］３０およびＤ［１］３１は除外される。そして、暗号通信部６１０は、除外された残りの第２暗号鍵を、暗号化に用いる暗号鍵として選択する。好ましくは、暗号通信部６１０は、選択したこれらの第２暗号鍵の中に、祖先・子孫の関係にある複数の第２暗号鍵が含まれる場合には、それら複数の第２暗号鍵の中では最も祖先側に位置する第２暗号鍵のみを選択し、その他の第２暗号鍵を選択しない。この結果、図４中に※印で示したように、第２暗号鍵Ｄ１３、Ｄ１４およびＤ２４が選択される。送信するデータをこれらそれぞれの第２暗号鍵で暗号化すれば、暗号通信部６１０は、暗号通信の権限の委譲を受けたグループの少なくとも一部を任意に選択して、それらとの間で暗号通信をすることができる。
【００２５】
図２に戻る。生成鍵ＤＢ２２０は、鍵生成部２１０によって生成された第２暗号鍵を記憶する。図５に、記憶される第２暗号鍵の一例を示す。
図５は、生成鍵ＤＢ２２０のデータ構造の一例を示す。生成鍵ＤＢ２２０は、第２暗号鍵の生成に用いられた第１暗号鍵と、その第２暗号鍵自体と、その第２暗号鍵を生成するために用いた一方向関数の鍵（ハッシュ鍵）と、その第２暗号鍵の生成を要求しかつその第２暗号鍵を取得した第１通信装置の識別情報と、その第２暗号鍵によって暗号化されたデータを復号可能な利用者とを対応付けて記憶している。例えば、第２暗号鍵Ｄ［１］３は、第１暗号鍵Ｄ３を、ハッシュ鍵をＫｈ１とする鍵付きの一方向関数に与える演算によって生成される。そして、この第２暗号鍵Ｄ［１］３を要求しかつこの第２暗号鍵を取得した第１通信装置の識別情報はＳ１であり、この第２暗号鍵によって暗号化されたデータを復号できるのは利用者ｕ９−ｕ１６である。
【００２６】
第２暗号鍵を生成する要求を鍵生成部２１０が複数回受けると、生成鍵ＤＢ２２０は、それら複数の要求に応じ生成された第２暗号鍵を区別可能に記憶する。例えば、生成鍵ＤＢ２２０は、鍵生成部２１０が第１通信装置Ｓｋから第２暗号鍵の生成要求を受けると、その第１通信装置のために、別のハッシュ鍵Ｋｈ２を生成する。なお、ハッシュ鍵は一方向関数を使用する毎に、予め定められた規則に従って異なる値として生成されてもよいし、乱数によって生成されてもよい。そして、鍵生成部２１０は、その要求に応じて第１暗号鍵Ｄ２を読み出したとすれば、その第１暗号鍵Ｄ２を、このハッシュ鍵Ｋｈ２を用いた一方向関数に与える演算を行うことにより、第２暗号鍵Ｄ［１］２を生成する。この場合、生成鍵ＤＢ２２０は、第１暗号鍵Ｄ２と、第２暗号鍵Ｄ［１］２と、ハッシュ鍵Ｋｈ２と、第１通信装置のＩＤであるＳｋと、その第２暗号鍵により暗号化されたデータを復号できる利用者ｕ１−ｕ８とを対応付けて記憶する。
【００２７】
図２に戻る。漏洩管理部２４０は、暗号鍵の漏洩についての利用者の入力に応じて、生成鍵ＤＢ２２０に記憶された情報に基づいて、その暗号鍵を使用不能とする処理を行う。例えば、漏洩管理部２４０は、何れかの第２暗号鍵が第三者に漏洩した結果として暗号通信に使用不能となったことを示す入力に応じ、その第２暗号鍵に対応する一方向関数の鍵を生成鍵ＤＢ２２０から読み出す。即ち、この一方向関数の鍵は、その第２暗号鍵を生成するために用いた一方向関数の鍵である。そして、漏洩管理部２４０は、読み出したこの鍵を、その第２暗号鍵に対応する第１暗号鍵で暗号化して、第２通信装置３０に対し送信して、一方向関数のこの鍵で生成した第２暗号鍵は使用不能であることを第２通信装置３０に通知する。そのように第１暗号鍵で暗号化したデータは、特定の利用者にのみ復号可能であるから、この送信はすべての第２通信装置３０に対するブロードキャストであってよい。これを受けて、第２通信装置３０は、受信した一方向関数の鍵を用いた一方向関数に対し、記憶している第１暗号鍵を与える演算を行い、演算結果として生成した第２暗号鍵を、以降の暗号通信に使用しない暗号鍵として管理する。例えば、第２通信装置３０は、以降の暗号通信においてこの第２暗号鍵によってデータが暗号化されていた場合に、その暗号通信において受信したデータを破棄してもよい。
【００２８】
これに加えて、漏洩管理部２４０は、第１暗号鍵が第三者に漏洩したことを第１通信装置４０に対し通知してもよい。具体的には、漏洩管理部２４０は、複数の第１暗号鍵のうち第三者に漏洩した結果として暗号通信に使用不能となった第１暗号鍵を受け取ると、その第１暗号鍵に対応して記憶されている第２暗号鍵を生成鍵ＤＢ２２０から読み出す。この第２暗号鍵は、この第１暗号鍵から鍵生成部２１０によって生成された第２暗号鍵である。そして、漏洩管理部２４０は、読み出したこの第２暗号鍵を無効とすることを第１通信装置４０に通知するべく、この第２暗号鍵を示す信号を第１通信装置４０に送信する。これを受けて、第１通信装置４０は、この第２暗号鍵を当該第１通信装置４０において無効とする処理を行う。たとえば、第１通信装置４０は、その第２暗号鍵を削除してもよいし、その第２暗号鍵で暗号化された暗号化データを受信してもその暗号化データを破棄してもよい。
【００２９】
図６は、第１通信装置４０の機能構成を示す。第１通信装置４０は、鍵生成制御部６００と、暗号通信部６１０と、鍵生成部６２０と、鍵出力部６３０とを有する。鍵生成制御部６００は、管理装置２０から受け取った一方向関数の鍵を第２通信装置３０に送信し、第２通信装置３０に、記憶している第１暗号鍵を鍵付きの一方向関数に与える演算をさせて、第２暗号鍵を生成させる。鍵生成制御部６００は、この一方向関数の鍵を、宛先の第２通信装置３０を特に限定せずに、複数の第２通信装置３０に対しブロードキャストしてもよい。宛先を限定しなくとも、第１通信装置４０が有している第２暗号鍵は管理装置２０から委譲を受けたものだけであるから、第１通信装置４０との通信が可能となる第２通信装置３０も、管理装置２０から暗号通信の権限の委譲を受けたものに限られる。また、送信されるこの一方向関数の鍵は、後述の送信データ４５に含めて送信されてよい。暗号通信部６１０は、管理装置２０から受け取った第２暗号鍵を用いて第２通信装置３０との間で暗号通信をする。例えば、暗号通信部６１０は、この第２暗号鍵によりデータを暗号化して、特に宛先の第２通信装置３０を限定せずにそれぞれの第２通信装置３０に対しブロードキャストすることで、委譲を受けるべく指定した第２通信装置３０のみとの間で暗号通信をする。この暗号通信による暗号化データを送信データ４５とし、その一例を図７に示す。
【００３０】
図７は、送信データ４５の具体例を示す。送信データ４５は、第１通信装置４０から第２通信装置３０に対し送信されるデータであり、暗号通信部６１０による暗号通信のために送受信される暗号化データに加えて、鍵生成制御部６００によって第２通信装置３０において第２暗号鍵を生成させるために送信される一方向関数の鍵を含む。以下、具体的に説明する。送信データ４５は、ハッシュ鍵７００と、それぞれが暗号鍵Ｋｔを第２暗号鍵で暗号化した複数の暗号済暗号鍵７１０と、送信すべきデータＣを暗号鍵Ｋｔで暗号化した暗号化コンテンツ７２０とを有する。但し、暗号済暗号鍵を生成するための暗号化関数をＥｎｃ（）と表記し、この関数は管理装置２０、第１通信装置４０および第２通信装置３０間で共有されているものとする。ハッシュ鍵７００は、一方向関数の鍵の一例であり、一方向関数が鍵付きのハッシュ関数とすればそのハッシュ関数のハッシュ鍵であり、一方向関数が暗号化関数とすればその暗号鍵である。ハッシュ鍵７００より先頭側に含まれる数値１は、送信データ４５に含まれる一方向関数の鍵は、その数値１の次に配列される１つ目のデータのみの１個であることを示している。
【００３１】
つまり、この送信データ４５を受信した第２通信装置３０は、数値１の次に配列される１つ目のデータを一方向関数の鍵として、予め記憶している第１暗号鍵を一方向関数に与える演算を１回行えば、この送信データ４５に含まれる暗号済暗号鍵７１０を復号化するための第２暗号鍵を生成することができる。なお、管理装置２０から第２通信装置３０に送信される送信データにおいては、送信データの先頭の数値は０となって送信データに一方向関数の鍵は含まれない。このように、送信データ内のデータフォーマットを一律に定めておくことで、第２通信装置３０は、管理装置２０および何れの第１通信装置４０から受信したデータも、その送信元を特定する処理を要せずに適切に復号化できる。
【００３２】
送信データ４５においてハッシュ鍵７００の次に続くデータは、数値１３、数値１４および数値２５である。これらの数値は、これらの数値に続く暗号済暗号鍵がどの第２暗号鍵で暗号化されているかを示す。即ち、数値１３は、第１暗号鍵Ｄ１３に基づく第２暗号鍵Ｄ［１］１３により、送信されるべきデータＣを暗号化した暗号鍵Ｋｔが暗号化されていることを示す。数値１３に続く数値１４は、その次の暗号済暗号鍵７１０が、第１暗号鍵Ｄ１４に基づく第２暗号鍵Ｄ［１］１４により暗号化されていることを示し、数値１４に続く数値２５は、その次の暗号済暗号鍵７１０が、第１暗号鍵Ｄ２５に基づく第２暗号鍵Ｄ［１］２５により暗号化されていることを示す。これらの第１暗号鍵Ｄ１４および第１暗号鍵Ｄ２５は、データＣの復号化を許可する第２通信装置３０には配信済みで、かつ、復号化を許可しない他の第２通信装置３０には未配信である。したがって、データＣの復号化を許可された第２通信装置３０においては第２暗号鍵を適切に生成することができ、他の第２通信装置３０においては第２暗号鍵を生成できず、即ちデータＣを復号化することもできない。
【００３３】
このように、送信データ４５中のデータを、送信すべきデータを暗号化したデータと、その暗号化に用いた暗号鍵を暗号化した暗号済暗号鍵との組合せによって構成すれば、送信すべきデータのデータサイズが大きい場合であっても、送信データのデータサイズの増加量を抑えることができる。また、この図７の例示のように、送信データ４５中のデータを、データの内容を示す数値情報とデータ自体との組によって構成させることにより、一方向関数の鍵の数や暗号済暗号鍵の数に応じてデータの要素数が異なる場合であっても、受信側の第２通信装置３０において統一した処理方法によって迅速かつ適切にデータを復号化できる。
【００３４】
図６に戻る。鍵生成部６２０および鍵出力部６３０は、この第１通信装置４０が、他の第１通信装置４０に対し、暗号通信の権限を委譲する場合に機能する。具体的には、鍵生成部６２０は、他の第１通信装置４０から、暗号通信の権限を委譲する要求を受けると、管理装置２０から受け取ったその第２暗号鍵を鍵付きの一方向関数に与える演算を行い、演算結果を第３暗号鍵として生成する。この一方向関数の鍵は、管理装置２０において第２暗号鍵を生成する場合の一方向関数の鍵とは異なっていることが望ましい。そして、鍵出力部６３０は、生成したこの第３暗号鍵、管理装置２０から受け取った一方向関数の鍵、および、第１通信装置４０において鍵生成部６２０の演算に用いた一方向関数の鍵を、委譲を要求した当該他の第１通信装置４０に対し出力する。第３暗号鍵は複数組み合わせて出力されてよく、これらの第３暗号鍵の組合せを暗号鍵セット４８とする。
【００３５】
以上の説明における第１通信装置４０は、暗号通信の権限の委譲を管理装置２０から直接に受けるものであるが、これに代えて、第１通信装置４０は、他の第１通信装置４０から暗号通信の権限の委譲を受けるために、当該他の第１通信装置４０から第３暗号鍵の入力を受けてもよい。この場合、具体的には、鍵生成制御部６００は、当該他の第１通信装置４０から一方向関数の２つの鍵、および、第３暗号鍵の入力を受ける。この一方向関数の２つの鍵は、第１暗号鍵から第２暗号鍵を生成するための一方向関数の鍵、および、第２暗号鍵から第３暗号鍵を生成するための一方向関数の鍵である。そして、鍵生成制御部６００は、受け取った一方向関数の２つの鍵を第２通信装置３０に送信し、第２通信装置３０に、記憶している第１暗号鍵に、当該２つの鍵のそれぞれを付した２つの一方向関数のそれぞれを順次適用する演算をさせて、演算結果を第３暗号鍵として生成させる。そして、暗号通信部６１０は、受け取った第３暗号鍵を用いて第２通信装置３０との間で暗号通信をする。
【００３６】
この場合、鍵生成部６２０および鍵出力部６３０は、第３暗号鍵を用いた暗号通信の権限を委譲する要求をさらに他の第１通信装置４０から受けた場合に機能してもよい。具体的には、鍵生成部６２０は、さらに他の第１通信装置４０から、暗号通信の権限を委譲する要求を受けると、当該他の第１通信装置４０から受け取ったその第３暗号鍵を鍵付きの一方向関数に与える演算を行い、演算結果を第４暗号鍵として生成する。この一方向関数の鍵は、当該他の第１通信装置４０において第３暗号鍵を生成する場合の一方向関数の鍵とも、当該他の第１通信装置４０が受け取った一方向関数の鍵とも異なっていることが望ましい。そして、鍵出力部６３０は、生成したこの第４暗号鍵、当該他の第１通信装置４０から受け取った一方向関数の鍵、および、当該第１通信装置４０において鍵生成部６２０の演算に用いた一方向関数の鍵、および、当該他の第１通信装置４０が一方向関数の鍵の入力を受けていた場合には入力を受けていたこれら全ての鍵を、さらに他の第１通信装置４０に対し出力する。図８ａおよび図８ｂに、第３暗号鍵および第４暗号鍵を比較して示す。
【００３７】
図８ａは、第３暗号鍵の一例である暗号鍵セット４８の構成を示す。本図には、第１通信装置４０が他の第１通信装置４０から要求を受けて、当該第１通信装置４０が有する全ての第２暗号鍵のそれぞれに基づき生成した、複数の第３暗号鍵のそれぞれを示す。第３暗号鍵は、第１および第２暗号鍵と区別するために、第３暗号鍵である旨を示す添え字［２］を付して表記する。暗号鍵セット４８は、第２暗号鍵Ｄ［１］３、Ｄ［１］６、Ｄ［１］７、Ｄ［１］１２−Ｄ［１］１５、Ｄ［１］２４−Ｄ［１］３１のそれぞれから生成された、第３暗号鍵Ｄ［２］３、Ｄ［２］６、Ｄ［２］７、Ｄ［２］１２−Ｄ［２］１５、Ｄ［２］２４−Ｄ［２］３１を有する。
【００３８】
第１通信装置４０は、図８ａの点線の枠内に示す第３暗号鍵による暗号通信の権限の委譲を、さらに他の第１通信装置４０から受けると、図９ａに示す第４暗号鍵を生成して出力する。
図８ｂは、さらに他の第１通信装置４０に対し出力される第４暗号鍵の構成を示す。第４暗号鍵は、第１〜第３暗号鍵と区別するために、第４暗号鍵である旨を示す添え字［３］を付して表記する。出力される第４暗号鍵は、暗号鍵Ｄ［３］６、Ｄ［３］１２、Ｄ［３］１３、Ｄ［３］２４−Ｄ［３］２７から構成される。
【００３９】
このように、暗号通信の権限の委譲は、委譲元と委譲先とを親子関係とみなせば、何世代にもわたる祖先・子孫関係を構成してよい。本実施形態によれば、もとの第１暗号鍵の漏洩リスクを増加させることなく、このような何世代にもわたる委譲を実現することができる。
続いて、図８ｂおよび図９を参照して、この第４暗号鍵を用いた通信における送信データの一例を説明する。
図９は、図８ｂに示す暗号鍵に基づき暗号化された送信データの具体例を示す。いま、第４暗号鍵の委譲を受けた第１通信装置４０が、利用者ｕ９および利用者ｕ１２によってのみ復号可能であり、利用者ｕ１０および利用者ｕ１１によっては復号できない暗号化データを生成したいとする。この場合、第１通信装置４０は、受け取った第４暗号鍵から、利用者ｕ１０および利用者ｕ１１に対応するリーフノードのそれぞれからルートノードに至る経路上の各ノードに対応する第４暗号鍵を除外する。この結果、除外された残りの第４暗号鍵は、暗号鍵Ｄ［３］２４および暗号鍵Ｄ［３］２７であり、図８ｂ中にはこれらの鍵を※印によって示す。そして、第１通信装置４０の鍵生成制御部６００は、宛先の第２通信装置３０において第４暗号鍵を生成させるべく、第４暗号鍵と共に受け取った一方向関数の鍵であるハッシュ鍵９１０を送信データに含める。ハッシュ鍵９１０は、第１暗号鍵から第２暗号鍵を生成するための一方向関数の鍵であるＫｈ１、第２暗号鍵から第３暗号鍵を生成するための一方向関数の鍵であるＫｈ２、および、第３暗号鍵から第４暗号鍵を生成するための一方向関数の鍵であるＫｈ３を含む。なお、図９に示す送信データは一方向関数の鍵を３個含むので、送信データの先頭にはその旨を示す数値３が含まれる。
【００４０】
また、暗号通信部６１０は、利用者ｕ９および利用者ｕ１２による復号化を可能とするべく、送信すべきデータＣ´を暗号化した暗号鍵Ｋｔ´を、選択した第４暗号鍵Ｄ［３］２４および暗号鍵Ｄ［３］２７のそれぞれによって暗号化して、暗号済暗号鍵９２０のそれぞれを生成し、送信データに含める。また、暗号通信部６１０は、送信すべきデータＣ´を暗号鍵Ｋｔ´により暗号化した暗号化コンテンツ９３０を生成し、送信データの末尾に含めて送信する。これを受けて、第２通信装置３０の鍵生成部１０２０は、記憶している第１暗号鍵Ｄ２４に、鍵Ｋｈ１、鍵Ｋｈ２および鍵Ｋｈ３のそれぞれを付した複数の一方向関数のそれぞれを順次適用する演算を行い、演算結果を第４暗号鍵Ｄ［３］２４として生成する。この演算は、以下の式のように表される。
Ｄ［３］２４＝Ｈ（Ｋｈ３，Ｈ（Ｋｈ２，Ｈ（Ｋｈ１，Ｄ２４）））
【００４１】
そして、第２通信装置３０の暗号通信部１０３０は、この第４暗号鍵Ｄ［３］２４によって、暗号済暗号鍵を復号化して、暗号鍵Ｋｔ´を生成する。そして、暗号通信部１０３０は、生成した暗号鍵Ｋｔ´によって暗号化コンテンツ９３０を復号化することによりデータＣ´を得る。この演算は、以下の式のように表される。
Ｃ´´＝Ｄｅｃ（Ｄｅｃ（Ｄ［３］２４，Ｅｎｃ（Ｄ［３］２４，Ｋｔ´）），Ｅｎｃ（Ｋｔ´，Ｃ´））
この結果生成されるＣ´´は、送信されたデータＣ´と一致するから、第２通信装置３０において正しくデータを復号できたこととなる。
【００４２】
以上、図８および図９を参照して説明したように、暗号通信の権限は管理装置２０から複数の第１通信装置４０を経由して何世代にも渡って順次委譲することができ、委譲した暗号鍵を用いた暗号通信は適切に行うことができる。なお、本例において、暗号通信の権限は、１つの管理装置２０から複数の第１通信装置４０を経由した直列的な経路で委譲されているが、これに代えて、１つの管理装置２０または第１通信装置４０が、複数の第１通信装置４０に対し並列に暗号通信の権限を委譲してもよい。さらには、１つの第１通信装置４０が、他の複数の第１通信装置４０に対し、互いに重複する暗号通信の権限をそれぞれ委譲してもよい。このように、本実施形態に示す権限の委譲方式によれば、複数の第１通信装置４０に対し柔軟に暗号通信の権限を割り当てることができる。
【００４３】
図１０は、第２通信装置３０の機能構成の一例を示す。第２通信装置３０は、鍵記憶部１０００と、鍵取得部１０１０と、鍵生成部１０２０と、暗号通信部１０３０とを有する。鍵記憶部１０００は、管理装置２０との間で共有している第１暗号鍵を記憶する。具体的には、鍵記憶部１０００は、図３に例示した多分木において当該第２通信装置３０に対応するリーフノードからルートノードに至る経路上のそれぞれの第１暗号鍵を記憶している。これらの第１暗号鍵は、第２通信装置３０において外部から読み出し不能かつ書き換え不能に管理されたデバイス鍵であることが望ましい。鍵取得部１０１０は、管理装置２０が第１通信装置４０を当該第２通信装置３０と通信させるために第１暗号鍵を与えて第２暗号鍵を生成した鍵付きの一方向関数の鍵を取得する。この鍵は、上述のように、暗号化コンテンツを含む送信データに含めて受信するものであってよい。また、鍵取得部１０１０は、第３暗号鍵を生成する状況においては２つの鍵を、第４暗号鍵を生成する状況においては３つの鍵を取得してよい。
【００４４】
鍵生成部１０２０は、鍵記憶部１０００に記憶された第１暗号鍵を、鍵取得部１０１０が取得した鍵を付した一方向関数に与える演算を行って第２暗号鍵を生成する。一方向関数の鍵を複数取得している場合には、鍵生成部１０２０は、第１暗号鍵に対し、それら複数の鍵のそれぞれを付した複数の一方向関数のそれぞれを順次適用する演算を行って、第３暗号鍵または第４暗号鍵を生成してよい。また、鍵生成部１０２０は、複数の第１暗号鍵が記憶されている場合には、それぞれの第１暗号鍵に対し一方向関数をそれぞれ適用して複数の第２暗号鍵を生成してよい。暗号通信部１０３０は、生成した第２暗号鍵（あるいは、第３暗号鍵または第４暗号鍵）を用いて第１通信装置４０と暗号通信する。
【００４５】
図１１は、管理装置２０によって暗号通信の権限が第１通信装置４０に委譲される処理の流れを示す。鍵生成部２１０は、複数の第２通信装置３０との間の暗号通信の権限を委譲する要求を第１通信装置４０から受け付ける（Ｓ１１００）。例えば、鍵生成部２１０は、複数の第２通信装置３０のうち第１通信装置４０によりブロードキャストされた暗号化データを復号可能とする第２通信装置３０を指定する入力を、第１通信装置４０から受け付けてもよいし、そのような暗号化データを復号可能とする第２通信装置３０のグループを指定する入力を受け付けてもよい。鍵生成部２１０は、第２通信装置３０が指定された場合には、指定されたその第２通信装置３０との間で共有されている第１暗号鍵を鍵記憶部２００から読み出す（Ｓ１１１０）。鍵生成部２１０は、暗号化データを復号可能とする第２通信装置３０のグループが指定された場合には、図３に例示したような多分木において指定されたそのグループを含む部分木内のそれぞれの第１暗号鍵を鍵記憶部２００から読み出す。
【００４６】
鍵生成部２１０は、読み出したそれぞれの第１暗号鍵を鍵付きの一方向関数に与える演算を行い、そのそれぞれの演算結果を対応する第２暗号鍵として生成する（Ｓ１１２０）。そして、鍵出力部２３０は、生成した第２暗号鍵を、委譲を要求した第１通信装置４０に対し出力する（Ｓ１１３０）。また、鍵出力部２３０は、一方向関数の鍵を、第２通信装置３０に受信させて第２通信装置３０において第２暗号鍵を生成させるべく、第１通信装置４０に対し出力する（Ｓ１１３０）。本実施形態において、鍵出力部２３０は、一方向関数の鍵を第１通信装置４０に対し出力するが、これに代えて、鍵出力部２３０は、その一方向関数の鍵を、第１通信装置４０を経由せずに第２通信装置３０に対し直接出力してもよい。
【００４７】
図１２は、委譲された権限に基づき第１通信装置４０が暗号通信を開始するまでの処理の流れを示す。鍵生成制御部６００は、暗号通信の委譲を要求を第２通信装置３０のグループを指定して管理装置２０に送信することで、第２暗号鍵を生成するために用いた一方向関数の鍵および複数の第２暗号鍵を第１通信装置４０から取得する（Ｓ１２００）。そして、鍵生成制御部６００は、取得したこの一方向関数の鍵を、指定したそのグループに対し送信し、グループ内のそれぞれの第２通信装置３０に、記憶している第１暗号鍵を鍵付きの一方向関数に与える演算をさせて、第２暗号鍵を生成させる（Ｓ１２１０）。鍵生成制御部６００は、この処理を鍵取得後に直ちに行うのではなく、暗号通信開始時にこの鍵を送信データに含めて送信するような設定を暗号通信部６１０に対し行ってもよい。そして、暗号通信部６１０は、管理装置２０から受け取った第２暗号鍵を用いてデータを暗号化して、それぞれの第２通信装置３０に対しブロードキャストすることで、指定したグループ内の第２通信装置３０のみとの間で暗号通信を開始する（Ｓ１２２０））。
【００４８】
図１３は、第１通信装置４０がさらに他の第１通信装置４０に対し暗号通信の権限を委譲する処理の流れを示す。鍵生成部６２０は、他の第１通信装置４０から、暗号通信の権限を委譲する要求を受け付ける（Ｓ１３００）。そして、鍵生成部６２０は、管理装置２０から受け取ったその第２暗号鍵を鍵付きの一方向関数に与える演算を行い、演算結果を第３暗号鍵として生成する（Ｓ１３１０）。そして、鍵出力部６３０は、管理装置２０から受け取った一方向関数の鍵、および、第３暗号鍵を生成する演算に用いた一方向関数の鍵を、委譲を要求した当該他の第１通信装置４０に対し出力する（Ｓ１３２０）。そして、鍵出力部６３０は、生成した第３暗号鍵を当該他の第１通信装置４０に対し出力する（Ｓ１３３０）。
【００４９】
図１４は、第２通信装置３０が第１通信装置４０と暗号通信する処理の流れを示す。鍵取得部１０１０は、管理装置２０が第１通信装置４０を当該第２通信装置３０と通信させるために第１暗号鍵を与えて第２暗号鍵を生成した鍵付きの一方向関数の鍵を取得する（Ｓ１２００）。この鍵は、上述のように、暗号化コンテンツを含む送信データに含めて受信するものであってよい。鍵生成部１０２０は、鍵記憶部１０００に記憶された複数の第１暗号鍵のそれぞれを、鍵取得部１０１０が取得した鍵を付した一方向関数に与える演算を行って複数の第２暗号鍵のそれぞれを生成する（Ｓ１４１０）。そして、暗号通信部１０３０は、生成したこれらの第２暗号鍵を用いて第１通信装置４０と暗号通信を開始する（Ｓ１４２０）。
【００５０】
以上の説明においては、第１通信装置が、管理装置または他の第１通信装置に対して、権限の委譲を要求するものであったが、逆に、委譲元の管理装置または当該他の第１通信装置が、当該管理装置に対し、委譲する権限の範囲を決定し、委譲のための処理を行ってもよい。
【００５１】
図１５は、管理装置２０、第２通信装置３０または第１通信装置４０として機能する情報処理装置９００のハードウェア構成の一例を示す。情報処理装置９００は、ホストコントローラ１５８２により相互に接続されるＣＰＵ１５００、ＲＡＭ１５２０、及びグラフィックコントローラ１５７５を有するＣＰＵ周辺部と、入出力コントローラ１５８４によりホストコントローラ１５８２に接続される通信インターフェイス１５３０、ハードディスクドライブ１５４０、及びＣＤ−ＲＯＭドライブ１５６０を有する入出力部と、入出力コントローラ１５８４に接続されるＲＯＭ１５１０、フレキシブルディスクドライブ１５５０、及び入出力チップ１５７０を有するレガシー入出力部とを備える。
【００５２】
ホストコントローラ１５８２は、ＲＡＭ１５２０と、高い転送レートでＲＡＭ１５２０をアクセスするＣＰＵ１５００及びグラフィックコントローラ１５７５とを接続する。ＣＰＵ１５００は、ＲＯＭ１５１０及びＲＡＭ１５２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィックコントローラ１５７５は、ＣＰＵ１５００等がＲＡＭ１５２０内に設けたフレームバッファ上に生成する画像データを取得し、表示装置１５８０上に表示させる。これに代えて、グラフィックコントローラ１５７５は、ＣＰＵ１５００等が生成する画像データを格納するフレームバッファを、内部に含んでもよい。
【００５３】
入出力コントローラ１５８４は、ホストコントローラ１５８２と、比較的高速な入出力装置である通信インターフェイス１５３０、ハードディスクドライブ１５４０、及びＣＤ−ＲＯＭドライブ１５６０を接続する。通信インターフェイス１５３０は、ネットワークを介して外部の装置と通信する。ハードディスクドライブ１５４０は、情報処理装置９００が使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ１５６０は、ＣＤ−ＲＯＭ１５９５からプログラム又はデータを読み取り、ＲＡＭ１５２０又はハードディスクドライブ１５４０に提供する。
【００５４】
また、入出力コントローラ１５８４には、ＲＯＭ１５１０と、フレキシブルディスクドライブ１５５０や入出力チップ１５７０等の比較的低速な入出力装置とが接続される。ＲＯＭ１５１０は、情報処理装置９００の起動時にＣＰＵ１５００が実行するブートプログラムや、情報処理装置９００のハードウェアに依存するプログラム等を格納する。フレキシブルディスクドライブ１５５０は、フレキシブルディスク１５９０からプログラム又はデータを読み取り、入出力チップ１５７０を介してＲＡＭ１５２０またはハードディスクドライブ１５４０に提供する。入出力チップ１５７０は、フレキシブルディスク１５９０や、例えばパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して各種の入出力装置を接続する。
【００５５】
情報処理装置９００に提供されるプログラムは、フレキシブルディスク１５９０、ＣＤ−ＲＯＭ１５９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、入出力チップ１５７０及び/又は入出力コントローラ１５８４を介して、記録媒体から読み出され情報処理装置９００にインストールされて実行される。プログラムが情報処理装置９００等に働きかけて行わせる動作は、図１から図１４において説明した管理装置２０、第２通信装置３０または第１通信装置４０における動作と同一であるから、説明を省略する。
【００５６】
以上に示したプログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク１５９０、ＣＤ−ＲＯＭ１５９５の他に、ＤＶＤやＰＤ等の光学記録媒体、ＭＤ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムを情報処理装置９００に提供してもよい。
【００５７】
以上、本実施形態に係る情報システム１０および第２通信装置３０によれば、通信先との間で既に暗号鍵を共有している装置から、他の装置に対して、暗号鍵が漏洩するリスクを増加させることなく、暗号通信の権限を委譲可能とすることができる。これにより、第２通信装置３０において暗号鍵が書き換え不能に管理されている場合など、一旦暗号鍵が漏洩してしまうと変更が極めて困難な場合においても、暗号化通信の権限を委譲可能とすることができる。この結果、管理装置２０に集中していた暗号化の処理負荷を複数の第１通信装置４０に分散することができる。また、委譲先の第１通信装置４０の守秘管理が不十分な場合であって第１通信装置４０における暗号鍵が漏洩してしまったり悪用されてしまう場合であっても、直ちにその暗号鍵の使用を中止して、新たな暗号鍵を作り直すことができる。
【００５８】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【図面の簡単な説明】
【００５９】
【図１】図１は、情報システム１０と複数の第２通信装置３０との接続関係を示す。
【図２】図２は、管理装置２０の機能構成を示す。
【図３】図３は、鍵記憶部２００において階層構造に管理された第１暗号鍵の構成を示す。
【図４】図４は、第２暗号鍵の一例である暗号鍵セット２５の構成を示す。
【図５】図５は、生成鍵ＤＢ２２０のデータ構造の一例を示す。
【図６】図６は、第１通信装置４０の機能構成を示す。
【図７】図７は、送信データ４５の具体例を示す。
【図８ａ】図８ａは、第３暗号鍵の一例である暗号鍵セット４８の構成を示す。
【図８ｂ】図８ｂは、さらに他の第１通信装置４０に対し出力される第４暗号鍵の構成を示す。
【図９】図９は、図８ｂに示す暗号鍵に基づき暗号化された送信データの具体例を示す。
【図１０】図１０は、第２通信装置３０の機能構成の一例を示す。
【図１１】図１１は、管理装置２０によって暗号通信の権限が第１通信装置４０に委譲される処理の流れを示す。
【図１２】図１２は、委譲された権限に基づき第１通信装置４０が暗号通信を開始するまでの処理の流れを示す。
【図１３】図１３は、第１通信装置４０がさらに他の第１通信装置４０に対し暗号通信の権限を委譲する処理の流れを示す。
【図１４】図１４は、第２通信装置３０が第１通信装置４０と暗号通信する処理の流れを示す。
【図１５】図１５は、管理装置２０、第２通信装置３０または第１通信装置４０として機能する情報処理装置９００のハードウェア構成の一例を示す。
【符号の説明】
【００６０】
１０  情報システム
２０  管理装置
２５  暗号鍵セット
３０  第２通信装置
４０  第１通信装置
４５  送信データ
４８  暗号鍵セット
２００  鍵記憶部
２１０  鍵生成部
２２０  生成鍵ＤＢ
２３０  鍵出力部
２４０  漏洩管理部
６００  鍵生成制御部
６１０  暗号通信部
６２０  鍵生成部
６３０  鍵出力部
７００  ハッシュ鍵
７１０  暗号済暗号鍵
７２０  暗号化コンテンツ
９００  情報処理装置
９１０  ハッシュ鍵
９２０  暗号済暗号鍵
９３０  暗号化コンテンツ
１０００  鍵記憶部
１０１０  鍵取得部
１０２０  鍵生成部
１０３０  暗号通信部
【図１】
2008078952.tif 000003
【図２】
2008078952.tif 000004
【図３】
2008078952.tif 000005
【図４】
2008078952.tif 000006
【図５】
2008078952.tif 000007
【図６】
2008078952.tif 000008
【図７】
2008078952.tif 000009
【図８ａ】
2008078952.tif 000010
【図８ｂ】
2008078952.tif 000011
【図９】
2008078952.tif 000012
【図１０】
2008078952.tif 000013
【図１１】
2008078952.tif 000014
【図１２】
2008078952.tif 000015
【図１３】
2008078952.tif 000016
【図１４】
2008078952.tif 000017
【図１５】
2008078952.tif 000018