JP4383084B2 - 公開鍵証明書の無効化リスト生成装置、無効判定装置及び認証システム - Google Patents

公開鍵証明書の無効化リスト生成装置、無効判定装置及び認証システム Download PDF

Info

Publication number
JP4383084B2
JP4383084B2 JP2003120629A JP2003120629A JP4383084B2 JP 4383084 B2 JP4383084 B2 JP 4383084B2 JP 2003120629 A JP2003120629 A JP 2003120629A JP 2003120629 A JP2003120629 A JP 2003120629A JP 4383084 B2 JP4383084 B2 JP 4383084B2
Authority
JP
Japan
Prior art keywords
invalidation
public key
information
leaf
tree structure
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003120629A
Other languages
English (en)
Other versions
JP2004032707A (ja
Inventor
稔久 中野
基司 大森
誠 館林
秀志 石原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2003120629A priority Critical patent/JP4383084B2/ja
Publication of JP2004032707A publication Critical patent/JP2004032707A/ja
Application granted granted Critical
Publication of JP4383084B2 publication Critical patent/JP4383084B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、公開鍵暗号技術を利用する認証技術に関し、特に無効化された公開鍵の証明書を特定する技術に関する。
【0002】
【従来の技術】
近年、インターネットの利用の急速な広がりにより、インターネットを通信の基盤とするシステムが増加している。例えば、インターネットを介して物品の売買を行う電子商取引がその1つである。
このような、インターネットを通信の基盤とするシステムにおいては、通信相手がシステムの正当な参加者であることを確認することが必須の条件となる。このような確認を認証という。通信相手が人間により操作される機器である場合や、通信相手が決められた手順で処理を行なう機器である場合があるが、以下ではこの両者を含めて機器という。そして通信相手を認証することを機器認証という。なお、機器自身が正当性を有すること、すなわち自分がシステムの正当な参加者であることを示すことを「証明する」といい、相手の正当性を確認することを「検証する」という。認証とは、証明及び検証の両方を含む概念である。
【0003】
機器認証においては、通常、暗号技術が用いられる。すなわち、証明者は、自身がシステムの正当な参加者であることを示すデータを秘密に有し,検証者に対してその秘密のデータを有することを示すことにより、自身の正当性を証明する。一方、検証者は、証明者が秘密のデータを有することを確認することにより、証明者の正当性を検証する。インターネットのような誰でもが通信データを入手できる通信路において,上記認証のための秘密のデータ(認証データ)は、認証に関連しない第三者にもれるものであってはならない。もしも、第三者に秘密のデータがもれてしまえば、その秘密のデータを入手した機器が、本来の機器になりすますことができるからである。そのために認証データは、暗号化されて検証者だけに伝送される。
【0004】
暗号技術には共通鍵暗号技術と公開鍵暗号技術とがある。共通鍵暗号技術では、暗号化のための鍵と復号のための鍵とは、同じ値を有する。一方、公開鍵暗号技術では、暗号化のための鍵と復号のための鍵とは、異なる値を有する。
共通鍵暗号技術を用いる認証においては,検証者は証明者と同じ秘密を持つので、検証者が証明者になりすます危険性がある。いわゆるパスワード方式はこれに該当する。一方、公開鍵暗号技術を用いる認証においては,証明者は公開鍵暗号技術の秘密鍵を用いて証明し、検証者はその秘密鍵に対応する公開鍵を用いて検証するのであり、公開鍵から秘密鍵は作成できないようになっているので、認証が終わった後で、検証者が証明者になりすますことができない。このため、上記の認証を行うには公開鍵暗号技術を用いる方が望ましい。
【0005】
なお、公開鍵暗号技術を用いる認証において、秘密鍵を用いて処理を行うことを署名するといい、秘密鍵に対応する公開鍵を用いてその署名の正当性を確認することを検証するという。
公開鍵暗号技術を用いる相手認証処理の1例は、次の通りである。すなわち、第1の機器は、第2の機器にチャレンジデータとして乱数データを送信し、続いて、第2の機器は、受信した乱数データに対して自分の秘密鍵で署名を行って署名文を生成して第1の機器にレスポンスデータとして返信し、最後に、第1の機器は、返信されてきた署名文に対して、第2の機器の公開鍵を用いて検証する。
【0006】
上述したような公開鍵暗号技術を用いる認証においては、公開鍵そのものが当該システム内で有効なものであることが前提となる。
このために、当該システムにおいて認証局と呼ばれる機関から、公開鍵が、各機器に対応する正当なものであることを示す「公開鍵証明書」(公開鍵に対する「お墨付き」となる)が発行されることが一般的である。公開鍵証明書は、機器の識別名、有効期限及び公開鍵などを結合したデータに認証局の電子署名が付加されたものであり、公開鍵証明書を受け取った機器は、そのデータに対する認証局の電子署名の正しさを確認し、さらに相手機器の識別名や現在の時間からその公開鍵証明書の記載内容を確認した上で、公開鍵の正しさを確認する。
【0007】
さらに、過去に発行された公開鍵証明書のうち、システムから排除され、正当ではないとされる機器の公開鍵証明書については、それらが無効化されていることを他の機器に知らせるために、無効化された公開鍵証明書を特定する情報の一覧に対して認証局の電子署名が付与された公開鍵証明書無効化リスト(Certificate Revocation List:以下、CRL)が発行される。
【0008】
このように、相手機器の公開鍵を用いてその相手機器を認証する際には、その相手機器の公開鍵証明書を入手し、入手した公開鍵証明書がCRLに登録されたものでないこと、つまり無効化されたものでないことを確認した上で、上述の認証処理を行うことで、不正な相手機器との取引を回避することができる。
なお、CRLの形式、実現例等については、公知の技術であるので、その詳細についてはここでは言及しない。その一例として、非特許文献1に、ISO/IEC/ITUにより定められたX.509標準で定義されるCRL形式(データ構造)が開示されている。
【0009】
また、非特許文献2及び非特許文献3には、無効化すべき多数の公開鍵証明書IDを格納するデータ形式の一つとして利用できる木構造型データ格納方式について、木構造を1次元で表現する表現方法が開示されている。この方法では、木構造の各ノードをある規則に従って並べることで、木構造を1次元で表現している。例えば、非特許文献3のp.136には、水準順の並べ方が示されている。この並べ方によると、水準(木構造における階層に相当する)については、小さい順に並べられ、それぞれの水準内については、その水準のノードの順に、左から右に並べられる。
【0010】
このような、特定の規則に基づく並べ方を利用することにより、機器では、1次元に並べた情報から木構造を構築することが可能となる。
上記に説明したように、機器は、相手機器の公開鍵を用いてその相手機器を認証するに先立って、CRLを取得し、取得したCRLを内部のメモリに記憶し、メモリに記憶しているCRLの中に、相手機器の公開鍵証明書IDが存在するか否かを確認し、存在しない場合に、前記認証を行う。このため、機器は、CRLを記憶するのに十分な容量のメモリを確保しておかなければならない。
【0011】
【非特許文献1】
「ディジタル署名と暗号技術」(山田慎一郎訳、ピアソン・エデュケーション発行、2000年)
【0012】
【非特許文献2】
「Manipulation of Trees in Information Retrieval」(G. Salton著、Communication of the ACM 5、1962年)
【0013】
【非特許文献3】
「基本算法/情報構造」(米田、筧訳、サイエンス社、昭和53年)
【0014】
【発明が解決しようとする課題】
しかしながら、従来のCRLは、全ての無効化する公開鍵証明書のIDを含んでおり、そのサイズは、無効化する公開鍵証明書の数に比例するため、無効化する公開鍵証明書が増加すると、それに伴いCRLのサイズが大きくなる。
このため、最大サイズのCRLを想定して、機器がCRLを格納するために十分な容量のメモリを確保することは、現実的ではないという問題点がある。
【0015】
例えば、システム全体の公開鍵証明書の総数を230(約10億個)とし、無効化された証明書の数をその0.01%の10万個とし、IDのサイズを30ビットと仮定する。このとき、従来のCRLでは、全てのIDを含むので、そのCRLのサイズは30ビット×10万=約375[KB]となる。従って、機器は、CRLを記憶するために、約375[KB]のメモリを確保すればよい。しかし、無効化された証明書の数が、0.02%の20万個であるなら、そのCRLのサイズは30ビット×20万=約750[KB]となり、機器は、約750[KB]のメモリを確保しなければならない。さらに、無効化された証明書の数が増えるならば、機器は、さらに多くの容量のメモリを確保しなければならない。
【0016】
【課題を解決するための手段】
上記の問題点を解決するために、本発明は、無効化すべき公開鍵証明書の数が増加してもCRLのサイズを小さく抑えることができる無効化リスト生成装置、無効判定装置、認証システム、無効リスト生成方法、プログラム、記録媒体、無効判定方法、プログラム及び記録媒体を提供することを目的とする。
【0017】
前記目的を達成するために、本発明は、公開鍵暗号を利用する認証システムであって、公開鍵暗号アルゴリズムにおける秘密鍵と公開鍵を有し、この秘密鍵を用いて通信相手に対して自己の正当性を証明する端末装置と、少なくとも前記端末装置の公開鍵からなるデータに対して公開鍵証明書を発行し配布する公開鍵証明書発行装置と、無効化される前記端末装置に対して前記公開鍵証明書発行装置が発行した前記公開鍵証明書を特定する公開鍵証明書無効化リストを発行し配布する無効化リスト生成装置と、検証する相手端末装置の公開鍵証明書と前記公開鍵証明書無効化リストを受け取り、前記公開鍵証明書が前記公開鍵証明書無効化リストに登録されているか否かを判定する無効化リスト利用装置と、前記無効化リスト利用装置により有効と判断された公開鍵を用いて通信相手の行う自己正当性証明を検証する検証装置とから構成される。
【0018】
前記無効化リスト生成装置は、複数の階層からなる木構造を構築して保管し、前記各端末装置の公開鍵証明書を識別する固有値を前記木構造のリーフに割り当て、さらに、前記保管している木構造に対して、あるノードの子孫であるリーフの少なくとも一つに無効化すべき公開鍵証明書の固有値が対応付けられている場合、そのノードを無効化ノードとし、さらに、子ノードの少なくとも1つが無効化ノードであるノードに対して、各子ノードが無効化ノードであるか否かを識別する識別子で示し、それら識別子を全子ノード分を連結したものをそのノードのノード無効化パターンとして割り当て、さらに、全木構造のノード無効化パターンを木構造のすべてのノードをたどるある所定の規則に基づいて並べて前記公開鍵証明書無効化リストを生成する。
【0019】
前記無効化リスト利用装置は、前記ノード無効化パターンを並べた公開鍵証明書無効化リストを前記所定の規則に基づいて解析して、前記検証すべき相手端末の公開鍵証明書が前記無効化リストに登録されているか否かを判定する。
また、本発明は、端末装置の公開鍵からなるデータに対して公開鍵証明書を発行し配布する公開鍵証明書発行装置と、無効化される前記端末装置に対して前記公開鍵証明書発行装置が発行した前記公開鍵証明書を特定する公開鍵証明書無効化リストを発行し配布する無効化リスト生成装置である。
【0020】
前記無効化リスト生成装置は、複数の階層からなる木構造を構築して保管し、前記各端末装置の公開鍵証明書を識別する固有値を前記木構造のリーフに割り当て、さらに、前記保管している木構造に対して、あるノードの子孫であるリーフの少なくとも一つに無効化すべき公開鍵証明書の固有値が対応付けられている場合、そのノードを無効化ノードとし、さらに、子ノードの少なくとも1つが無効化ノードであるノードに対して、各子ノードが無効化ノードであるか否かを識別する識別子で示し、それら識別子を全子ノード分を連結したものをそのノードのノード無効化パターンとして割り当て、さらに、全木構造のノード無効化パターンを木構造のすべてのノードをたどるある所定の規則に基づいて並べて前記公開鍵証明書無効化リストを生成する。
【0021】
【発明の実施の形態】
1.第1の実施の形態
本発明に係る1の実施の形態としての著作物保護システム10について説明する。
1.1 著作物保護システム10の構成
著作物保護システム10は、図1に示すように、鍵管理装置100、鍵情報記録装置200、記録装置300a、300b、300c、・・・及び再生装置400a、400b、400c、・・・から構成されている。
【0022】
鍵管理装置100は、鍵情報記録装置200により、DVD−RAM等のレコーダブルメディアであって、今だ何らの情報も記録されていない記録媒体500aに鍵情報を記録して、鍵情報が記録された記録媒体500bを予め生成しておく。また、鍵管理装置100は、記録装置300a、300b、300c、・・・及び再生装置400a、400b、400c、・・・のそれぞれに対して鍵情報を復号するためのデバイス鍵を割り当て、割り当てられたデバイス鍵と、デバイス鍵を識別するデバイス鍵識別情報と、記録装置300a、300b、300c、・・・及び再生装置400a、400b、400c、・・・を識別するID情報とを、記録装置300a、300b、300c、・・・及び再生装置400a、400b、400c、・・・のそれぞれに予め配布しておく。
【0023】
記録装置300aは、それぞれ、デジタル化されたコンテンツを暗号化して、暗号化コンテンツを生成し、生成した暗号化コンテンツを記録媒体500bに記録して、記録媒体500cを生成する。再生装置400aは、記録媒体500cから暗号化コンテンツを取り出し、取り出した暗号化コンテンツを復号して、元のコンテンツを得る。記録装置300b、300c、・・・は、記録装置300aと同様に動作し、再生装置400b、400c、・・・は、再生装置400aと同様に動作する。
【0024】
なお、以下において、記録装置300b、300c、・・・及び再生装置400b、400c、・・・をユーザ装置と呼ぶことがある。
1.1.1 鍵管理装置100
鍵管理装置100は、図2に示すように、木構造構築部101、木構造格納部102、デバイス鍵割当部103、無効化装置指定部104、木構造更新部105、鍵情報ヘッダ生成部106及び鍵情報生成部107から構成されている。
【0025】
鍵管理装置100は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレィユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記RAM又は前記ハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、鍵管理装置100は、その機能を達成する。
【0026】
(1)木構造格納部102
木構造格納部102は、具体的にはハードディスクユニットから構成されており、図3に一例として示すように、木構造テーブルD100を有している。
木構造テーブルD100は、図4に一例として示す木構造T100に対応しており、木構造T100を表現するためのデータ構造を示す。後述するように、木構造構築部101により木構造T100を表現するためのデータ構造が、木構造テーブルD100として生成され、木構造格納部102に書き込まれる。
【0027】
(木構造T100)
木構造T100は、図4に示すように、レイヤ0からレイヤ4までの5階層からなる2分木である。木構造T100は、2分木であるので、木構造T100が有する各ノード(リーフを除く)は、2本の経路を介して下位側の2個のノードにそれぞれ接続されている。レイヤ0にはルートである1個のノードが含まれ、レイヤ1には2個のノードが含まれ、レイヤ2には4個のノードが含まれ、レイヤ3には8個のノードが含まれ、レイヤ4にはリーフである16個のノードが含まれている。なお、木構造において下位側とはリーフ側を示し、上位側とはルート側を示している。
【0028】
木構造T100が有する各ノード(リーフを除く)と、下位側のノードとを接続する2本の経路のうち、一方である左の経路には、「0」の番号が割り当てられており、他方である右の経路には「1」の番号が割り当てられている。ここで、図4の紙面において、各ノードを中心として当該ノードから左側下方に接続されている経路を左の経路と称し、当該ノードから右側下方に接続されている経路を右の経路と称している。
【0029】
各ノードには、ノード名が付されている。ルートであるノードのノード名は、「ルート」である。また、レイヤ1を含め、レイヤ1より下位にあるレイヤに属するノードに対しては、レイヤ数が示す値と同じ文字数からなる文字列がノード名として付されている。この文字列は、ルートから当該ノードに至るまでの経路に割り当てられた番号を、上位から順に並べて生成されたものである。例えば、レイヤ1に属する2個のノードのノード名は、それぞれ「0」及び「1」である。また、レイヤ2に属する4個のノードのノード名は、それぞれ「00」、「01」、「10」及び「11」である。また、レイヤ3に属する8個のノードのノード名は、それぞれ「000」、「001」、「010」、「011」、・・・、「101」、「110」及び「111」である。また、レイヤ4に属する16個のノードのノード名は、それぞれ「0000」、「0001」、「0010」、「0011」、・・・、「1100」、「1101」、「1110」及び「1111」である。
【0030】
(木構造テーブルD100)
木構造テーブルD100は、木構造T100に含まれるノードと同じ数のノード情報を含んで構成されており、各ノード情報は、木構造T100を構成する各ノードにそれぞれ対応している。
各ノード情報は、ノード名、デバイス鍵及び無効化フラグを含む。
【0031】
ノード名は、当該ノード情報に対応するノードを識別するための名称である。デバイス鍵は、当該ノード情報に対応するノードに対して割り当てられた鍵である。
また、無効化フラグは、当該ノード情報に対応するデバイス鍵が無効化されているか否かを示すフラグであり、無効化フラグが「0」である場合には、無効化されていないことを示し、無効化フラグが「1」である場合には、無効化されていることを示す。
【0032】
木構造テーブルD100内には、次に示す順序規則1に従った順序により各ノード情報が記憶される。ここに示す順序規則1は、記録装置300a、300b、300c、・・・、再生装置400a、400b、400c、・・・により、木構造テーブルD100から各ノード情報がシーケンシャルに読み出される場合においても適用される。
【0033】
(a)木構造テーブルD100内には、木構造T100のレイヤ数の昇順に、各レイヤに属するノードに対応するノード情報が記憶される。具体的には、木構造テーブルD100内には、最初にレイヤ0に属する1個のルートに対応する1個のノード情報が記憶され、次に、レイヤ1に属する2個のノードに対応する2個のノード情報が記憶され、次に、レイヤ2に属する4個のノードに対応する4個のノード情報が記憶される。以下同様である。
【0034】
(b)各レイヤに属するノードについては、各ノードを識別するノード名の昇順により、対応するノード情報が記憶される。
具体的には、図3に示す木構造テーブルD100内には、次に示す順序により各ノード情報が記憶される。
「ルート」、「0」、「1」、「00」、「01」、「10」、「11」、「000」、「001」、「010」、「011」、・・・、「101」、「110」、「111」、「0000」、「0001」、「0010」、「0011」、・・・、「1100」、「1101」、「1110」、「1111」
ここでは、各ノード情報に含まれるノード名により、各ノード情報が記憶されている順序を示している。
【0035】
(2)木構造構築部101
木構造構築部101は、以下に示すようにして、デバイス鍵を管理するためのn分木のデータ構造を構築し、木構造格納部102に構築した木構造を格納する。ここで、nは2以上の整数であり、一例として、n=2である。
木構造構築部101は、最初に、ノード名として「ルート」を含むノード情報を生成し、木構造格納部102が有している木構造テーブルへ書き込む。
【0036】
次に、木構造構築部101は、レイヤ1について、2個のノードを識別するノード名「0」及び「1」を生成し、生成したノード名「0」及び「1」をそれぞれ含む2個のノード情報を生成し、生成した2個のノード情報をこの順序で、木構造格納部102が有している木構造テーブルへ追加して書き込む。
次に、木構造構築部101は、レイヤ2について、4個のノードを識別するノード名「00」、「01」、「10」及び「11」を生成し、生成したノード名「00」、「01」、「10」及び「11」をそれぞれ含む4個のノード情報を生成し、生成した4個のノード情報をこの順序で、木構造格納部102が有している木構造テーブルへ追加して書き込む。
【0037】
以降、木構造構築部101は、レイヤ3及びレイヤ4について、この順序で、上記と同様にして、ノード情報の生成と、木構造テーブルへの書き込みとを行う。
木構造構築部101は、次に、木構造のノード毎に乱数を用いてデバイス鍵を生成し、生成したデバイス鍵を各ノードに対応付けて木構造テーブル内に書き込む。
【0038】
(3)デバイス鍵割当部103
デバイス鍵割当部103は、以下に示すようにして、木構造格納部102に格納されている木構造から、ユーザ装置が割り当てられていないリーフと、デバイス鍵を与えるべきユーザ装置を対応付けて適当なデバイス鍵を選択し、選択したデバイス鍵をユーザ装置へ出力する。
【0039】
デバイス鍵割当部103は、4ビット長の変数IDを有している。
デバイス鍵割当部103は、以下に示す処理(a)〜(f)を16回繰り返す。16回の繰り返しのそれぞれにおいて、変数IDは、「0000」、「0001」、「0010」、・・・、「1110」、「1111」の値を保持する。16回の繰り返しにより、デバイス鍵割当部103は、16台のユーザ装置のそれぞれにID情報と5個のデバイス鍵とを割り当てる。
【0040】
(a)デバイス鍵割当部103は、木構造格納部102が有する木構造テーブルから、「ルート」のノード名を含むノード情報を取得し、取得したノード情報に含まれるデバイス鍵を抽出する。抽出したデバイス鍵が、ルートに割り当てられたデバイス鍵である。
(b)デバイス鍵割当部103は、木構造格納部102が有する木構造テーブルから、変数IDの先頭1ビットからなるノード名を含むノード情報を取得し、取得したノード情報に含まれるデバイス鍵を抽出する。ここで、抽出したデバイス鍵をデバイス鍵Aとする。
【0041】
(c)デバイス鍵割当部103は、木構造格納部102が有する木構造テーブルから、変数IDの先頭2ビットからなるノード名を含むノード情報を取得し、取得したノード情報に含まれるデバイス鍵を抽出する。ここで、抽出したデバイス鍵をデバイス鍵Bとする。
(d)デバイス鍵割当部103は、木構造格納部102が有する木構造テーブルから、変数IDの先頭3ビットからなるノード名を含むノード情報を取得し、取得したノード情報に含まれるデバイス鍵を抽出する。ここで、抽出したデバイス鍵をデバイス鍵Cとする。
【0042】
(e)デバイス鍵割当部103は、木構造格納部102が有する木構造テーブルから、変数IDの先頭4ビットからなるノード名を含むノード情報を取得し、取得したノード情報に含まれるデバイス鍵を抽出する。ここで、抽出したデバイス鍵をデバイス鍵Dとする。
(f)デバイス鍵割当部103は、ID情報としての変数ID、ルートに割り当てられたデバイス鍵、各ノードに割り当てられたデバイス鍵A、B、C、D、、及び前記5個のデバイス鍵をそれぞれ識別する5個のデバイス鍵識別情報を、ユーザ装置が有する鍵情報記憶部へ書き込む。
【0043】
こうして、各ユーザ装置の鍵情報記憶部は、図8に一例として示すように、ID情報、5個のデバイス鍵識別情報及び5個のデバイス鍵を記憶する。ここで、5個のデバイス鍵識別情報と5個のデバイス鍵とは、それぞれ対応付けられている。各デバイス鍵識別情報は、対応するデバイス鍵が割り当てられているノードが属するレイアの数(レイア数)である。
【0044】
以上のようにして、16台のユーザ装置のそれぞれに、ID情報及び5個のデバイス鍵が割り当てられる。
一例として、図4に示す木構造T100は、上述したように、レイヤ数5の2分木であり、16個のリーフを含んでいる。ここで、ユーザ装置は、16台あるものとし、16台のユーザ装置は、各々16個のリーフに対応している。各ユーザ装置には、木構造T100において、対応するリーフからルートに至るまでの経路上に位置するノードに割り当てられたデバイス鍵がそれぞれ与えられる。例えば、ユーザ装置1には、IK1、KeyH、KeyD、KeyB、KeyAの5つのデバイス鍵が与えられる。また、例えば、ユーザ装置1には、ID情報「0000」が与えられ、ユーザ装置14には、ID情報「1101」が与えられる。
【0045】
(4)無効化装置指定部104
無効化装置指定部104は、鍵管理装置100の運営管理者から、無効化する1台以上のユーザ装置をそれぞれ識別する1個以上のID情報を受け付け、受け付けたID情報を木構造更新部105へ出力する。
(5)木構造更新部105
木構造更新部105は、無効化装置指定部104から1個以上のID情報を受け取る。ID情報を受け取ると、受け取った1個以上のID情報のそれぞれについて、次に示す処理(a)〜(d)を繰り返す。
【0046】
(a)木構造更新部105は、受け取ったID情報をノード名として含むノード情報を木構造格納部102が有する木構造テーブルから取得し、取得したノード情報に無効化フラグ「1」を付加し、無効化フラグ「1」が付加されたノード情報を、木構造テーブル上において、取得した前記ノード情報が記憶されていた位置に上書きする。
【0047】
(b)木構造更新部105は、受け取ったID情報の先頭3ビットをノード名として含むノード情報を木構造格納部102が有する木構造テーブルから取得し、上記と同様にして、取得したノード情報に無効化フラグ「1」を付加して木構造テーブルに上書きする。
(c)木構造更新部105は、受け取ったID情報の先頭2ビットをノード名として含むノード情報を木構造格納部102が有する木構造テーブルから取得し、上記と同様にして、取得したノード情報に無効化フラグ「1」を付加して木構造テーブルに上書きする。
【0048】
(d)木構造更新部105は、「ルート」をノード名として含むノード情報を木構造格納部102が有する木構造テーブルから取得し、上記と同様にして、取得したノード情報に無効化フラグ「1」を付加して木構造テーブルに上書きする。
以上説明したように、木構造更新部105は、無効化装置指定部104から受け取ったID情報に基づいて、木構造において、受け取ったID情報が示すリーフから、ノードまでの経路上に存在する全てのノードを無効化する。
【0049】
図4に示す木構造T100において、ID情報「0000」、「1010」及び「1011」により示されるユーザ装置が無効化されると想定する場合、上記のようにしてノードが無効化された木構造T200を図5に示す。
また、木構造テーブルD100は、木構造T200に対応して無効化フラグが付加されたものである。
【0050】
木構造T200において、ID情報「0000」により示されるユーザ装置1に対応するリーフからルートまでの経路に存在する全てのノード、ID情報「1010」により示されるユーザ装置11に対応するリーフからルートまでの経路に存在する全てのノード、及びID情報「1011」により示されるユーザ装置12に対応するリーフからルートまでの経路に存在する全てのノードに、×印が付されているが、これらのノードは、無効化されたノードを示している。
【0051】
木構造テーブルD100において、上記の無効化されたノードに対応するノード情報には、無効化フラグが付加されている。
(6)鍵情報ヘッダ生成部106
鍵情報ヘッダ生成部106は、レイヤ数を示す変数i及びレイヤに含まれるノード名を示す変数jを有している。
【0052】
鍵情報ヘッダ生成部106は、次に示す処理(a)を、木構造に含まれるレイヤ数分、繰り返す。レイヤ数分の繰り返しのそれぞれにおいて、レイヤ数を示す変数iは、「0」、「1」、「2」、「3」の値を保持する。
(a)鍵情報ヘッダ生成部106は、変数iによりレイヤ数が示されるレイヤに含まれる全てのノードの数だけ、ノード毎に次に示す処理(a−1)〜(a−3)を繰り返す。ここで、処理(a−1)〜(a−3)の対象となる対象ノード名を変数jにより示す。
【0053】
(a−1)鍵情報ヘッダ生成部106は、木構造格納部102が有する木構造テーブルから、変数jに「0」を結合して得られるノード名を含むノード情報を取得し、変数jに「1」を結合して得られるノード名を含むノード情報を取得する。
このようにして得られた2個のノード情報は、それぞれ、変数jにより示される対象ノードの直下に接続されている2個の下位ノードに対応している。
【0054】
(a−2)鍵情報ヘッダ生成部106は、取得した2個の前記ノード情報のそれぞれに含まれている無効化フラグの両方が「0」であるか、否かを調べ、両方が「0」でない場合に、取得した2個の前記ノード情報のそれぞれに含まれている2個の無効化フラグを、2個の前記ノード情報が木構造テーブルに格納されている順序で並べて、ノード無効化パターン(Node RevocationPattern、以下、NRPと呼ぶ。)を生成する。
【0055】
具体的には、取得した2個の前記ノード情報のそれぞれに含まれている無効化フラグが「0」及び「0」である場合には、ノード無効化パターンを生成しない。
また、取得した2個の前記ノード情報のそれぞれに含まれている無効化フラグが「1」及び「0」である場合には、NRP{10}を生成する。
【0056】
取得した2個の前記ノード情報のそれぞれに含まれている無効化フラグが「0」及び「1」である場合には、NRP{01}を生成する。
取得した2個の前記ノード情報のそれぞれに含まれている無効化フラグが「1」及び「1」である場合には、NRP{11}を生成する。
(a−3)鍵情報ヘッダ生成部106は、生成したNRPを鍵情報記録装置200へ出力する。
【0057】
以上説明したように、鍵情報ヘッダ生成部106は、木構造のレイヤ内のノード毎に、当該ノードの下位側に直接接続されている2個の下位ノードが無効化されているか否かを調べ、2個の下位ノードのいずれか一方が無効化されている場合には、上記に示すようにしてNRPを生成する。図5に示す木構造T200において、×印が付されたノードの近辺に、当該ノードに対応して生成したNRPを示している。
【0058】
また、鍵情報ヘッダ生成部106は、上記に示すような繰り返しにおいて、NRPを出力するので、図5に示す場合には、図6に一例として示す複数個のNRPが生成されて出力される。鍵情報ヘッダ生成部106は、これらの複数個のNRPをヘッダ情報として出力する。
図5に示す木構造T200において、ユーザ装置1、ユーザ装置11及びユーザ装置12がそれぞれ無効化されている。ここで、無効化されるべき各ユーザ装置に対応するリーフから、ルートに至るまでの経路上に存在するノード(図5において、×印が付されたノード)を無効化ノードと称する。また、1個のノードの子ノードが無効化ノードである場合を「1」、そうでない場合を「0」で表現し、それら子ノードの状態を左から順に連結したものが、そのノードのNRPである。NRPは、n分木の場合、nビットの情報である。図5における木構造T200のルートT201について、2つの子ノードが共に無効化ノードであるため、NRPは、{11}と表現される。また、ノードT202に付されたNRPは、{10}と表現される。また、ノードT203は、無効化ノードであるが、子ノードが存在しないリーフであるため、NRPは付加されない。
【0059】
図6に一例として示すように、ヘッダ情報D200は、NRP{11}、{10}、{10}、{10}、{01}、{10}、{11}から構成され、各NRPをこの順序で含んでいる。
なお、これらの複数個のNRPのそれぞれは、ヘッダ情報D200内において格納される位置が定められている。この位置は、上記の繰り返しにより定まるものである。図6に示すように、ヘッダ情報D200内に「0」、「1」、「2」、「3」、「4」、「5」及び「6」により定まる位置において、それぞれ、NRP{11}、{10}、{10}、{10}、{01}、{10}、{11}が配置されている。
【0060】
以上説明したように、鍵情報ヘッダ生成部106は、無効化ノードの1以上のNRPを抽出し、抽出したNRPを鍵情報のヘッダ情報として、鍵情報記録装置200へ出力する。このとき、鍵情報ヘッダ生成部106は、複数のNRPを水準順に並べる。すなわち、複数のNRPを上位レイヤから下位レイヤの順に並べ、レイヤが同じNRPついては、左から右への順に並べる。なお、NRPの並べ方はある規則に基づいていればよく、例えば、レイヤが同じ場合に右から左の順に並べるとしてもよい。
【0061】
(7)鍵情報生成部107
鍵情報生成部107は、鍵情報ヘッダ生成部106と同様に、レイヤ数を示す変数i及びレイヤに含まれるノード名を示す変数jを有している。
鍵情報生成部107は、次に示す処理(a)を、木構造に含まれ、レイヤ0を除くレイヤ数分、繰り返す。レイヤ数分の繰り返しのそれぞれにおいて、レイヤ数を示す変数iは、「1」、「2」、「3」の値を保持する。
【0062】
(a)鍵情報生成部107は、変数iによりレイヤ数が示されるレイヤに含まれる全てのノードの数だけ、ノード毎に次に示す処理(a−1)〜(a−3)を繰り返す。ここで、処理(a−1)〜(a−3)の対象となる対象ノード名を変数jにより示す。
(a−1)鍵情報生成部107は、木構造格納部102が有する木構造テーブルから、変数jをノード名として含むノード情報を取得し、取得したノード情報に含まれる無効化フラグが「1」であるか又は「0」であるかを判断する。
【0063】
(a−2)無効化フラグが「0」である場合に、鍵情報生成部107は、さらに、対象ノードの上位に接続されている上位ノードに対応するデバイス鍵による暗号化がされているか否かを判断する。
(a−3)暗号化がされていない場合に、鍵情報生成部107は、取得したノード情報に含まれるデバイス鍵を抽出し、暗号化アルゴリズムE1を適用して、抽出したデバイス鍵を用いて、生成されたメディア鍵を暗号化して、暗号化メディア鍵を生成する。
【0064】
暗号化メディア鍵=E1(デバイス鍵、メディア鍵)
ここで、E(A、B)は、暗号化アルゴリズムEを適用して、鍵Aを用いて、データBを暗号化することを示している。
また、暗号化アルゴリズムE1は、一例として、DES(Data Encryption Standard)である。
【0065】
次に、鍵情報生成部107は、生成した暗号化メディア鍵を鍵情報記録装置200へ出力する。
なお、無効化フラグ「1」が付されている場合、又は暗号化がされている場合には、処理(a−3)は、行われない。
以上説明したように、鍵情報生成部107は、上記に示すような繰り返しにおいて、暗号化メディア鍵を出力するので、図5に示す場合には、図7に一例として示す複数個の暗号化メディア鍵が生成されて出力される。鍵情報生成部107は、これらの複数個の暗号化メディア鍵を鍵情報D300として出力する。
【0066】
なお、これらの複数個の暗号化メディア鍵のそれぞれは、鍵情報D300内において格納されている位置が定められている。この位置は、上記の繰り返しにより定まるものである。図7に示すように、鍵情報D300内に「0」、「1」、「2」、「3」及び「4」により定まる位置において、それぞれ、暗号化メディア鍵E1(KeyE、メディア鍵)、E1(KeyG、メディア鍵)、E1(KeyI、メディア鍵)、E1(KeyL、メディア鍵)、E1(IK2、メディア鍵)が配置されている。
【0067】
1.1.2 鍵情報記録装置200
鍵情報記録装置200は、鍵情報ヘッダ生成部106からヘッダ情報を受け取り、鍵情報生成部107から鍵情報を受け取り、受け取ったヘッダ情報と鍵情報とを記録媒体500aに書き込む。
1.1.3 記録媒体500a、b、c
記録媒体500aは、DVD−RAM等のレコーダブルメディアであって、今だ何らの情報も記録されていないものである。
【0068】
記録媒体500bは、記録媒体500aに、鍵管理装置100及び鍵情報記録装置200により、上記に述べたようにして、ヘッダ情報が付加された鍵情報が書き込まれたものである。
記録媒体500cは、記録媒体500bに、記録装置300a、300b、300c、・・・の何れかにより、上記に述べたようにして、暗号化コンテンツがが書き込まれたものである。
【0069】
図8に示すように、記録媒体500cは、ヘッダ情報が付加された鍵情報と暗号化コンテンツとを記録している。
1.1.4 記録装置300a、300b、300c、・・・
記録装置300aは、図8に示すように、鍵情報記憶部301、復号部302、特定部303、暗号部304及びコンテンツ記憶部305から構成されている。なお、記録装置300b、300c、・・・は、記録装置300aと同様の構成を有しているので、これらについて説明を省略する。
【0070】
記録装置300aは、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成され、前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、記録装置300aは、その機能を達成する。
記録装置300aには、記録媒体500bが装着される。記録装置300aは、自らが記憶しているID情報を元に記録媒体500bに記憶されているヘッダ情報の解析を行って、復号すべき暗号化メディア鍵の位置と、使用すべきデバイス鍵を特定し、特定したデバイス鍵を用いて復号してメディア鍵を獲得する。次に、獲得したメディア鍵を用いて、デジタル化されたコンテンツを暗号化し、暗号化コンテンツを記録媒体500bに記録する。
【0071】
(1)鍵情報記憶部301
鍵情報記憶部301は、ID情報と、5個のデバイス鍵と、5個のデバイス鍵をそれぞれ識別するための5個のデバイス鍵識別情報とを記憶するための領域を備えている。
(2)特定部303
特定部303は、鍵管理装置100が有する鍵情報ヘッダ生成部106が、鍵情報のヘッダ情報を上述した順序規則1に従って生成したものと想定して動作する。
【0072】
特定部303は、鍵情報記憶部301からID情報を読み出す。また、記録媒体500bからヘッダ情報及び鍵情報を読み出す。次に、特定部303は、読み出したID情報及び読み出したヘッダ情報を用いて、ヘッダ情報を上位からシーケンシャルに調べていくことにより、鍵情報の中から1個の暗号化メディア鍵が存在する位置Xと、前記暗号化メディア鍵の復号に使用するデバイス鍵を識別するためのデータ鍵識別情報とを特定する。なお、暗号化メディア鍵が存在する位置X及びデバイス鍵識別情報を特定する場合の詳細の動作については、後述する。
【0073】
次に、特定部303は、特定した1個の暗号化メディア鍵及び決定した1個のデバイス鍵識別情報を復号部302へ出力する。
(3)復号部302
復号部302は、特定部303から1個の暗号化メディア鍵及び1個のデバイス鍵識別情報を受け取る。1個の暗号化メディア鍵及び1個のデバイス鍵識別情報を受け取ると、受け取ったデバイス鍵識別情報により識別されるデバイス鍵を鍵情報記憶部301から読み出し、復号アルゴリズムD1を適用して、読み出したデバイス鍵を用いて、受け取った暗号化メディア鍵を復号して、メディア鍵を生成する。
【0074】
メディア鍵=D1(デバイス鍵、暗号化メディア鍵)
ここで、D(A、B)は、復号アルゴリズムDを適用して、鍵Aを用いて、暗号化データBを復号して元のデータを生成することを意味する。
また、復号アルゴリズムD1は、暗号化アルゴリズムE1に対応するものであり、暗号化アルゴリズムE1を適用して暗号化されたデータを復号するためのアルゴリズムである。
【0075】
次に、復号部302は、生成したメディア鍵を暗号部304へ出力する。
なお、図8に記載されている各ブロックは、接続線により他のブロックと接続されている。ただし、一部の接続線を省略している。ここで、各接続線は、信号や情報が伝達される経路を示している。また、復号部302を示すブロックに接続している複数の接続線のうち、接続線上に鍵マークが付されているものは、復号部302へ鍵としての情報が伝達される経路を示している。暗号部304を示すブロックについても同様である。また、他の図面についても同様である。
【0076】
(4)コンテンツ記憶部305
コンテンツ記憶部305は、デジタル化された音楽などの著作物であるコンテンツを記憶している。
(5)暗号部304
暗号部304は、復号部302からメディア鍵を受け取り、コンテンツ記憶部305からコンテンツを読み出す。次に、暗号部304は、暗号化アルゴリズムE2を適用して、受け取ったメディア鍵を用いて、読み出したコンテンツを暗号化して暗号化コンテンツを生成する。
【0077】
暗号化コンテンツ=E2(メディア鍵、コンテンツ)
ここで、暗号化アルゴリズムE2は、一例として、DESによる暗号化アルゴリズムである。
次に、暗号部304は、生成した暗号化コンテンツを記録媒体500bへ書き込む。このようにして、暗号化コンテンツが書き込まれた記録媒体500cが生成される。
【0078】
1.1.5 再生装置400a、400b、400c、・・・
再生装置400aは、図9に示すように、鍵情報記憶部401、特定部402、復号部403、復号部404及び再生部405から構成されている。なお、再生装置400b、400c、・・・は、再生装置400aと同様の構成を有しているので、これらについて説明を省略する。
【0079】
再生装置400aは、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成され、前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、再生装置400aは、その機能を達成する。
ここで、鍵情報記憶部401、特定部402及び復号部403は、それぞれ、記録装置300aが有している鍵情報記憶部301、特定部303及び復号部302と同様の構成を有しているので、説明を省略する。
【0080】
再生装置400aに記録媒体500cが装着される。再生装置400aは、自ら記憶しているID情報を元に、記録媒体500cに記憶されているヘッダ情報の解析を行って、復号すべき暗号化メディア鍵の位置と、使用すべきデバイス鍵を特定し、特定したデバイス鍵を用いて復号してメディア鍵を獲得する。次に、再生装置400aは、獲得したメディア鍵を用いて、記録媒体500cに記録されている暗号化コンテンツを復号してコンテンツを再生する
(1)復号部404
復号部404は、復号部403からメディア鍵を受け取り、記録媒体500cから暗号化コンテンツを読み出し、復号アルゴリズムD2を適用して、受け取ったメディア鍵を用いて、読み出した前記暗号化コンテンツを復号して、コンテンツを生成し、生成したコンテンツを再生部405へ出力する。
【0081】
コンテンツ=D2(メディア鍵、暗号化コンテンツ)
ここで、復号アルゴリズムD2は、暗号化アルゴリズムE2に対応するものであり、暗号化アルゴリズムE2を適用して暗号化されたデータを復号するためのアルゴリズムである。
(2)再生部405
再生部405は、復号部404からコンテンツを受け取り、受け取ったコンテンツを再生する。例えば、コンテンツが音楽の場合には、再生部405は、コンテンツを音声に変換して出力する。
【0082】
1.2.著作物保護システム10の動作
著作物保護システム10の動作について説明する。
1.2.1 デバイス鍵の割り当て、記録媒体の生成及びコンテンツの暗号化又は復号の動作
ここでは、ユーザ装置へデバイス鍵を割り当てる動作、鍵情報の生成と記録媒体への書き込みの動作及びユーザ装置によるコンテンツの暗号化又は復号の動作について、図10に示すフローチャートを用いて説明する。特に、デバイス鍵が不正な第三者により暴露されるまでの、各装置の動作について説明する。
【0083】
鍵管理装置100の木構造構築部101は、木構造を表す木構造テーブルを生成し、生成した木構造テーブルを木構造格納部102へ書き込み(ステップS101)、次に、木構造のノード毎にデバイス鍵を生成し、生成したデバイス鍵を各ノードに対応付けて木構造テーブル内に書き込む(ステップS102)。次に、デバイス鍵割当部103は、デバイス鍵、デバイス鍵識別情報及びID情報を対応するユーザ装置へ出力する(ステップS103〜S104)。ユーザ装置が有する鍵情報記憶部は、デバイス鍵、デバイス鍵識別情報及びID情報を受け取り(ステップS104)、受け取ったデバイス鍵、デバイス鍵識別情報及びID情報を記録する(ステップS111)。
【0084】
このようにして、デバイス鍵、デバイス鍵識別情報及びID情報を記録しているユーザ装置が生産され、生産されたユーザ装置がユーザに対して販売される。次に、鍵情報生成部107は、メディア鍵を生成し(ステップS105)、鍵情報を生成し(ステップS106)、生成した鍵情報を鍵情報記録装置200を介して記録媒体500aに出力し(ステップS107〜S108)、記録媒体500aは、鍵情報を記録する(ステップS121)。
【0085】
このようにして、鍵情報が記録された記録媒体500bが生成され、生成された記録媒体500bが販売などされることにより、利用者に配布される。
次に、鍵情報が記録された記録媒体が、ユーザ装置に装着され、ユーザ装置は、記録媒体から鍵情報を読み出し(ステップS131)、読み出した鍵情報を用いて、当該ユーザ装置自身に割り当てられた暗号化メディア鍵を特定し(ステップS132)、メディア鍵を復号し(ステップS133)、復号したメディア鍵を用いて、コンテンツを暗号化して記録媒体500bに書き込み、又は暗号化コンテンツの記録されている記録媒体500cから暗号化コンテンツを読み出し、読み出した暗号化コンテンツを復号したメディア鍵を用いて復号して、コンテンツを生成する(ステップS134)。
【0086】
以上のように、ユーザ装置により暗号化コンテンツを記録媒体500bに書き込み、ユーザ装置により暗号化コンテンツの記録されている記録媒体500cから暗号化コンテンツを読み出して復号し、コンテンツを再生する。
次に、不正な第三者が、ユーザ装置に割り当てられたデバイス鍵を、何らかの手段により不正に取得する。不正な第三者は、前記コンテンツを不正に流通させたり、正規のユーザ装置を模倣する不正な装置を生産して販売する。
【0087】
鍵管理装置100の運営管理者は、又は前記コンテンツの著作権者は、コンテンツが不正に流通していること、又は不正な装置が流通していることを知り、前記デバイス鍵が漏洩したことを知る。
1.2.2 デバイス鍵が暴露された後の動作
ここでは、デバイス鍵が不正な第三者により暴露された後における、暴露されたデバイス鍵に対応する木構造の内のノードの無効化の動作、新たな鍵情報の生成と記録媒体への書込みの動作、及びユーザ装置によるコンテンツの暗号化又は復号の動作について、図11に示すフローチャートを用いて説明する。
【0088】
鍵管理装置100の無効化装置指定部104は、無効化する1台以上のユーザ装置の1個以上のID情報を受け付け、受け付けたID情報を木構造更新部105へ出力する(ステップS151)。次に、木構造更新部105は、ID情報を受け取り、受け取ったID情報を用いて、木構造を更新し(ステップS152)、鍵情報ヘッダ生成部106は、ヘッダ情報を生成し、生成したヘッダ情報を鍵情報記録装置200へ出力し(ステップS153)、鍵情報生成部は、メディア鍵を生成し(ステップS154)、鍵情報を生成し(ステップS155)、生成した鍵情報を鍵情報記録装置200を介して出力し(ステップS156〜S157)、記録媒体500aは、鍵情報を記録する(ステップS161)。
【0089】
このようにして、新たな鍵情報が記録された記録媒体500bが生成され、生成された記録媒体500bが販売などされることにより、利用者に配布される。次に、新たな鍵情報が記録された記録媒体が、ユーザ装置に装着され、ユーザ装置は、記録媒体から鍵情報を読み出し(ステップS171)、読み出した鍵情報を用いて、当該ユーザ装置自身に割り当てられた暗号化メディア鍵を特定し(ステップS172)、メディア鍵を復号し(ステップS173)、復号したメディア鍵を用いて、コンテンツを暗号化して記録媒体500bに書き込み、又は暗号化コンテンツの記録されている記録媒体500cから暗号化コンテンツを読み出し読み出した暗号化コンテンツを復号したメディア鍵を用いて復号して、コンテンツを生成する(ステップS174)。
【0090】
以上のように、ユーザ装置により暗号化コンテンツを記録媒体500bに書き込み、又はユーザ装置により暗号化コンテンツの記録されている記録媒体500cから暗号化コンテンツを読み出して復号し、コンテンツを再生する。
1.2.3 木構造を構築して格納する動作
ここでは、木構造構築部101による木構造テーブルの生成と木構造格納部102への木構造テーブルの書き込みの動作について、図12に示すフローチャートを用いて説明する。なお、ここで説明する動作は、図10に示すフローチャートにおけるステップS101の詳細である。
【0091】
木構造構築部101は、最初に、ノード名として「ルート」を含むノード情報を生成し、木構造格納部102が有している木構造テーブルへ書き込む(ステップS191)。
次に、木構造構築部101は、レイヤi(i=1、2、3、4)について、次に示すステップS193〜S194を繰り返す。
【0092】
木構造構築部101は、2i 個の文字列をノード名として生成し(ステップS193)、生成した2i 個の文字列をノード名として含むノード情報を、順に木構造テーブルへ書き込む(ステップS194)。
1.2.4 デバイス鍵とID情報とを各ユーザ装置へ出力する動作
ここでは、デバイス鍵割当部103によるデバイス鍵とID情報とを各ユーザ装置へ出力する動作について、図13に示すフローチャートを用いて説明する。なお、ここで説明する動作は、図10に示すフローチャートにおけるステップS103の詳細である。
【0093】
デバイス鍵割当部103は、変数IDを「0000」、「0001」、「0010」、・・・、「1110」、「1111」のように変化させ、それぞれの変数IDについて、次に示すステップS222〜S227を繰り返す。
デバイス鍵割当部103は、ルートに割り当てられたデバイス鍵を取得し(ステップS222)、変数IDの先頭1ビットをノード名とするノードに割り当てられたデバイス鍵Aを取得し(ステップS223)、変数IDの先頭2ビットをノード名とするノードに割り当てられたデバイス鍵Bを取得し(ステップS224)、変数IDの先頭3ビットをノード名とするノードに割り当てられたデバイス鍵Cを取得し(ステップS225)、変数IDの先頭4ビットをノード名とするノードに割り当てられたデバイス鍵Dを取得し(ステップS226)、ID情報としての変数ID、ルートに割り当てられたデバイス鍵、各ノードに割り当てられたデバイス鍵A、B、C、Dをユーザ装置へ出力する(ステップS227)。
【0094】
1.2.5 木構造の更新の動作
ここでは、木構造更新部105による木構造の更新の動作について、図14に示すフローチャートを用いて説明する。なお、ここで説明する動作は、図11に示すフローチャートにおけるステップS152の詳細である。
木構造更新部105は、無効化装置指定部104から受け取った1個以上のID情報のそれぞれについて、次に示すステップS242〜S246を繰り返す。
【0095】
木構造更新部105は、受け取ったID情報をノード名として含むノード情報を取得し、取得したノード情報に無効化フラグ「1」を付加する(ステップS242)。
次に、木構造更新部105は、受け取ったID情報の先頭3ビットをノード名として含むノード情報を取得し、取得したノード情報に無効化フラグ「1」を付加する(ステップS243)。
【0096】
次に、木構造更新部105は、受け取ったID情報の先頭2ビットをノード名として含むノード情報を取得し、取得したノード情報に無効化フラグ「1」を付加する(ステップS244)。
次に、木構造更新部105は、受け取ったID情報の先頭1ビットをノード名として含むノード情報を取得し、取得したノード情報に無効化フラグ「1」を付加する(ステップS245)。
【0097】
次に、木構造更新部105は、「ルート」をノード名として含むノード情報を取得し、取得したノード情報に無効化フラグ「1」を付加する(ステップS246)。
1.2.6 ヘッダ情報の生成の動作
ここでは、鍵情報ヘッダ生成部106によるヘッダ情報の生成の動作について、図15に示すフローチャートを用いて説明する。なお、ここで説明する動作は、図11に示すフローチャートにおけるステップS153の詳細である。
【0098】
鍵情報ヘッダ生成部106は、レイヤ0からレイヤ3までの各レイヤについて、ステップS262〜S266を繰り返す。さらに、鍵情報ヘッダ生成部106は、各レイヤに含まれる対象ノード毎に、ステップS263〜S265を繰り返す。
鍵情報ヘッダ生成部106は、当該対象ノードの直下に接続されている2個の下位ノードを選択し(ステップS263)、次に選択した2個の下位ノードのそれぞれに無効化フラグが付されているか否かを調べてNRPを生成し(ステップS264)、生成したNRPを出力する(ステップS265)。
【0099】
1.2.7 鍵情報の生成の動作
ここでは、鍵情報生成部107による鍵情報の生成の動作について、図16に示すフローチャートを用いて説明する。なお、ここで説明する動作は、図11に示すフローチャートにおけるステップS155の詳細である。
鍵情報生成部107は、レイヤ1からレイヤ3までの各レイヤについて、ステップS282〜S287を繰り返す。さらに、鍵情報生成部107は、各レイヤに含まれる対象ノード毎に、ステップS283〜S286を繰り返す。
【0100】
鍵情報生成部107は、対象ノードに無効化フラグ「1」が付されているか否かを判断する。無効化フラグ「1」が付されていない場合には(ステップS283)、さらに対象ノードの上位に接続されている上位ノードに対応するデバイス鍵による暗号化がされているか否かを判断する。暗号化がされていない場合に(ステップS284)、対象ノードに対応するデバイス鍵を木構造テーブルから取得し(ステップS285)、取得したデバイス鍵を用いて、生成されたメディア鍵を暗号化して、暗号化メディア鍵を生成し、生成した暗号化メディア鍵を出力する(ステップS286)。
【0101】
無効化フラグ「1」が付されている場合(ステップS283)、又は暗号化がされている場合(ステップS284)、ステップS285〜S286は行われない。
1.2.8 鍵情報の特定の動作
ここでは、記録装置300aが有する特定部303により、記録媒体500bに記憶されている鍵情報から、1個の暗号化メディア鍵を特定する動作について、図17に示すフローチャートを用いて説明する。なお、ここで説明する動作は、図11に示すフローチャートにおけるステップS172の詳細である。
【0102】
また、再生装置400aが有する特定部402による動作は、特定部303による動作と同じであるので、説明を省略する。
特定部303は、暗号化メディア鍵の位置を示す変数X、ユーザ装置自身に関係するNRPの位置を示す変数A、あるレイヤにおけるNRPの数を示す変数W、及び木構造のレイヤ数を示す値Dを有している。ここで、ユーザ装置自身に関係するNRP(Node Revocation Pattern、以下、NRPと呼ぶ。)とは、木構造において、ユーザ装置に割り当てられているリーフから、ルートに至るまでの経路上に存在するノードのNRPを示す。
【0103】
特定部303は、レイヤi=0から、レイヤi=D−1まで、以下の手順で解析を行う。
特定部303は、初期値として、それぞれ変数A=0、変数W=1、変数i=0とする(ステップS301)。
変数iと値Dとを比較し、変数iが値Dより大きい場合(ステップS302)、このユーザ装置は、無効化されているので、次に、特定部303は、処理を終了する。
【0104】
変数iが値Dより小さいか又は等しい場合(ステップS302)、特定部303は、A番目のNRPを構成する左右2ビットのうち、ID情報の上位iビット目の値に対応するビット位置にある値Bが「0」であるか、又は「1」であるかをチェックする(ステップS303)。ここで、対応するビット位置とは、図4に示すように、木構造において左の経路に「0」、右の経路に「1」が割り当てられ、これらの規則に基づいてID情報が構成されているので、ID情報の上位iビット目の値「0」は、A番目のNRPの左ビットに対応し、iビット目の値「1」は、A番目のNRPの右ビットに対応する。
【0105】
値B=0の場合(ステップS303)、特定部303は、これまでにチェックしたNRPのうち、オール「1」でないNRPの数をカウントし、カウントした値を、変数Xに代入する。こうして得られた変数Xが、暗号化メディア鍵の位置を示している。また、この時点の変数iは、デバイス鍵を識別するためのデバイス鍵識別情報である(ステップS307)。次に、特定部303は、処理を終了する。
【0106】
値B=1の場合(ステップS303)、特定部303は、レイヤiに存在するW個の全NRPの「1」の数をカウントし、カウントした値を変数Wに代入する。こうして得られた変数Wが、次のレイヤi+1に存在するNRPの数を示す(ステップS304)。
次に、特定部303は、レイアiに存在するNRPのうちの最初のNRPから、対応するビット位置までのNRPをカウントし、カウントした値を変数Aに代入する。ここで、対応するビット位置の値はカウントしない。こうして得られた変数Aが、次のレイヤi+1のNRPのうち、ユーザ装置自身に関係するNRPの位置を示す(ステップS305)。
【0107】
次に、特定部303は、変数i=i+1を演算し(ステップS306)、次にステップS302へ制御を移し、上述の処理を繰り返す。
1.2.9 鍵情報の特定の動作の具体例
一具体例として、図6及び図7に示すヘッダ情報及び鍵情報を用いて、図5に示す無効化されていないユーザ装置14が暗号化メディア鍵を特定するまでの動作について以下に説明する。ユーザ装置14には、ID情報「1101」が割り当てられ、デバイス鍵「KeyA」、「KeyC」、「KeyG」、「KeyN」及び「IK14」が割り当てられているものとする。
【0108】
(ステップ1)特定部303は、ユーザ装置14に割り当てられたID情報「1101」の最上位ビットの値が「1」であるため、最初のNRP{11}の右ビットをチェックする(ステップS303)。
(ステップ2)最初のNRP{11}の右ビットの値が「1」であるため、特定部303は、解析を続ける(ステップS303で、B=1)。
【0109】
(ステップ3)特定部303は、レイヤ0に存在する1個のNRP{11}の「1」の数をカウントする。そのカウントした値が「2」であるので、次のレイヤ1には2個のNRPが存在することが分かる(ステップS304)。
(ステップ4)特定部303は、対応するビット位置までのNRPの「1」の数をカウントする。ただし、対応するビット位置の値はカウントしない。そのカウントした値が「1」であるため、次のレイヤ1の対応するNRPの位置は、レイア1内で、1番目である(ステップS305)。
【0110】
(ステップ5)次に、特定部303は、ID情報「1101」の上位から2ビット目の値が「1」であるため、レイヤ1の1番目のNRP{10}の右ビットをチェックする(ステップS303)。
(ステップ6)ここで、レイヤ1の1番目のNRP{10}の右ビットの値が「0」であるため、特定部303は、解析を終了する(ステップS303で、B=0)。
【0111】
(ステップ7)特定部303は、これまでのNRPのうち、オール「1」でないNRPの数をカウントする。ただし、最後にチェックしたNRPはカウントしない。カウントした値が「1」であるため、暗号化メディア鍵の位置は、鍵情報内において、1番目である(ステップS307)。
(ステップ8)図7に示すように、鍵情報の1番目の位置に格納されている暗号化メディア鍵は、E1(KeyG,メディア鍵)である。
【0112】
ユーザ装置14は、KeyGを保持している。よって、ユーザ装置14は、KeyGを用いて暗号化メディア鍵を復号してメディア鍵を獲得することができる。
1.3 まとめ
以上説明したように、第1の実施の形態によると、記録媒体に予め記録されている鍵情報のヘッダ情報内には、複数のNRPが水準順に並べられているので、鍵情報がコンパクトになる。また、プレーヤは、復号すべき暗号化メディア鍵を効率よく特定することができる。
【0113】
2.第2の実施の形態
ここでは、第1の実施の形態の変形例としての第2の実施の形態について説明する。
第1の実施の形態において、一例として図18に示すように、無効化されるユーザ装置が木構造の中で特定のリーフに偏って発生する可能性がある。この場合、鍵管理装置100が記録媒体に書き込む鍵情報のヘッダ情報内において、{11}であるNRPが多くなる。図18に示す例では、木構造T300の左半分のリーフは、全て無効化された装置に対応するので、鍵情報内のヘッダ情報は、11個のNRPを含むが、そのうち8個は{11}である。
【0114】
図18に示す例では、木構造T300の左半分は全て無効化された装置であるので、レイヤ1の左のノードから下は全て無効化ノードであると表現すれば、左半分の各ノードに対応したNRPをヘッダ情報として記録媒体に記録する必要がなくなる。
そこで、第2の実施の形態では、無効化された装置が木構造の中で特定のリーフに集中する場合に、ヘッダ情報のデータ量を少なく抑えることができる著作物保護システム10b(図示していない)について説明する。
【0115】
鍵管理装置100は、第1の実施の形態において説明したように、鍵情報のヘッダ情報として、NRPを生成する。ここで、鍵管理装置100は、NRPの先頭に1ビットを追加する。追加したビットが「1」である場合には、そのノードの子孫のノードに割り当てられたユーザ装置は全て無効化装置であることを示す。図19において、ノードT401及びノードT402は、これらのノードの子孫のノードに割り当てられた装置が全て無効化装置ではないので、先頭ビットは「0」であり、NRPは、それぞれ、{011}、{010}と表現される。ノードT403の子孫のノードに割り当てられた装置は、全て無効化装置であるため、NRPは{111}と表現される。鍵管理装置100は、ノードT403の子孫のノードについてのNRPを記録媒体に書き込まない。
【0116】
2.1 著作物保護システム10bの構成
著作物保護システム10bは、著作物保護システム10と同様の構成を有している。ここでは、著作物保護システム10との相違点を中心として説明する。
第2の実施の形態では、図19に示すように、ユーザ装置1〜ユーザ装置8及びユーザ装置12がそれぞれ無効化されているとする。
【0117】
2.1.1 鍵管理装置100
著作物保護システム10bの鍵管理装置100は、第1の実施の形態において述べた鍵管理装置100と同様の構成を有している。ここでは、その相違点を中心として説明する。
(1)木構造格納部102
木構造格納部102は、木構造テーブルD100に代えて、一例として図20に示す木構造テーブルD400を有している。
【0118】
木構造テーブルD400は、図19に一例として示す木構造T400に対応しており、木構造T400を表現するためのデータ構造を示す。
木構造テーブルD400は、木構造T400に含まれるノードと同じ数のノード情報を含んで構成されており、各ノード情報は、木構造T400を構成する各ノードにそれぞれ対応している。
【0119】
各ノード情報は、ノード名、デバイス鍵、無効化フラグ及びNRPを含む。
ノード名、デバイス鍵及び無効化フラグについては、第1の実施の形態で説明したとおりであるので、説明を省略する。
NRPは、3ビットから構成され、上位の1ビットは、上述したように、対応するノード名により示されるノードの子孫のノードに割り当てられたユーザ装置は全て無効化装置であることを示す。下位の2ビットは、第1の実施の形態で説明したNRPと同じ内容のものである。
【0120】
(2)鍵情報ヘッダ生成部106
鍵情報ヘッダ生成部106は、NRPの先頭の1ビットが「1」である場合には、そのノードの子孫のノードに割り当てられたユーザ装置は全て無効化装置であることを示すNRPを生成し、生成したNRPを鍵情報記録装置200へ出力する。なお、NRPの生成の詳細については、後述する。
【0121】
鍵情報ヘッダ生成部106は、一例として、図21に示すヘッダ情報D500を生成する。ヘッダ情報D500は、NRP{011}、{111}、{010}、{001}及び{001}から構成され、各NRPをこの順序で含んでいる。また、この図に示すように、ヘッダ情報D500内に「0」、「1」、「2」、「3」及び「4」により定まる位置において、それぞれ、NRP{011}、{111}、{010}、{001}及び{001}が配置されている。
【0122】
(3)鍵情報生成部107
鍵情報生成部107は、一例として、図22に示す鍵情報D600を生成する。鍵情報D600は、3個の暗号化メディア鍵を含んでいる。3個の暗号化メディア鍵は、それぞれデバイス鍵KeyG、KeyL、IK11を用いてメディア鍵を暗号化したものである。
【0123】
これらの複数個の暗号化メディア鍵のそれぞれは、鍵情報D600内において格納されている位置が定められている。この図に示すように、鍵情報D600内に「0」、「1」及び「2」により定まる位置において、それぞれ、暗号化メディア鍵E1(KeyG、メディア鍵)、E1(KeyL、メディア鍵)及びE1(IK11、メディア鍵)が配置されている。
【0124】
2.1.2 記録装置300a
記録装置300aは、第1の実施の形態において述べた記録装置300aと同様の構成を有している。ここでは、その相違点を中心として説明する。
(1)特定部303
特定部303は、ID情報及びヘッダ情報を用いて、ヘッダ情報を上位からシーケンシャルに調べていくことにより、鍵情報の中から1個の暗号化メディア鍵が存在する位置Xを特定する。なお、暗号化メディア鍵が存在する位置Xを特定する場合の詳細の動作については、後述する。
【0125】
2.2 著作物保護システム10bの動作
著作物保護システム10bの動作について、著作物保護システム10の動作との相違点を中心として説明する。
2.2.1 ヘッダ情報の生成の動作
ここでは、鍵情報ヘッダ生成部106によるヘッダ情報の生成の動作について、図23〜図26に示すフローチャートを用いて説明する。なお、ここで説明する動作は、図11に示すフローチャートにおけるステップS153の詳細である。
【0126】
鍵情報ヘッダ生成部106は、レイヤ0からレイヤ3までの各レイヤについて、ステップS322〜S327を繰り返す。さらに、鍵情報ヘッダ生成部106は、各レイヤに含まれる対象ノード毎に、ステップS323〜S326を繰り返す。
鍵情報ヘッダ生成部106は、当該対象ノードの直下に接続される2個の下位ノードを選択し(ステップS323)、選択した2個の下位ノードのそれぞれに無効化フラグが付されているか否かを調べて、NRPを生成し(ステップS324)、値「0」を有する拡張ビットを生成したNRPの先頭に付加し(ステップS325)、拡張ビットが付加されたNRPを木構造テーブル内の当該対象ノードに対応するノード情報内に付加する(ステップS236)。
【0127】
以上のようにして、ステップS321〜S328の繰返しが終了すると、第1の実施の形態において説明した方法と同様に、各ノード情報内にNRPが付加される。ここで、各NRPの先頭には、値「0」(1ビット)が付加されている。次に、鍵情報ヘッダ生成部106は、レイヤ3からレイヤ0までの各レイヤについて、ステップS330〜S335を繰り返す。さらに、鍵情報ヘッダ生成部106は、各レイヤに含まれる対象ノード毎に、ステップS331〜S334を繰り返す。
【0128】
鍵情報ヘッダ生成部106は、当該対象ノードの直下に接続される2個の下位ノードを選択し(ステップS331)、選択した2個のノードの両方にそれぞれNRP{111}が付加されているか否かを調べる。ただし、選択した2個のノードがリーフである場合には、選択した2個のノードの両方に無効化フラグが付されているか否かを調べる(ステップS332)。
【0129】
選択した2個の下位ノードの両方にそれぞれNRP{111}が付されている場合にのみ、ただし選択した2個のノードがリーフである場合には、選択した2個の下位ノードの両方に無効化フラグが付されている場合にのみ(ステップS333)、鍵情報ヘッダ生成部106は、当該対象ノードに付加されたNRPの先頭ビットを「1」に書き換える(ステップS334)。
【0130】
以上のようにして、ステップS329〜S336の繰返しが終了すると、それぞれNRP{111}が付加されている2個の下位ノードに接続する上位のノードには、{111}が付加されることになる。
次に、鍵情報ヘッダ生成部106は、レイヤ2からレイヤ0までの各レイヤについて、ステップS338〜S343を繰り返す。さらに、鍵情報ヘッダ生成部106は、各レイヤに含まれる対象ノード毎に、ステップS339〜S342を繰り返す。
【0131】
鍵情報ヘッダ生成部106は、当該対象ノードの直下に接続される2個の下位ノードを選択し(ステップS339)、選択した2個の下位ノードの両方にNRP{111}が付加されているか否かを調べる(ステップS340)。
選択した2個の下位ノードの両方にNRP{111}が付加されている場合にのみ(ステップS341)、鍵情報ヘッダ生成部106は、選択した2個の下位ノードにそれぞれ付加されたNRPを木構造テーブルから削除する(ステップS342)。
【0132】
次に、鍵情報ヘッダ生成部106は、木構造テーブルに記憶されているNRPをルートから順に読み出して、出力する(ステップS345)。
以上のようにして、NRPの先頭の1ビットが「1」である場合に、そのノードの子孫のノードに割り当てられたユーザ装置は全て無効化装置であることを示すNRPが生成される。
【0133】
2.2.2 鍵情報の特定の動作
ここでは、記録装置300aが有する特定部303により、記録媒体500bに記憶されている鍵情報から、1個の暗号化メディア鍵を特定する動作について、図27に示すフローチャートを用いて説明する。なお、ここで説明する動作は、図11に示すフローチャートにおけるステップS172の詳細である。
【0134】
また、特定部303による1個の暗号化メディア鍵を特定する動作は、第1の実施の形態において説明した動作と同様であり、ここでは、その相違点を中心として説明する。
値B=0の場合(ステップS303)、特定部303は、これまでにチェックしたNRPのうち、下位2ビットがオール「1」でないNRPの数をカウントし、カウントした値を、変数Xに代入する。こうして得られた変数Xが、暗号化メディア鍵の位置を示している(ステップS307a)。次に、特定部303は、処理を終了する。
【0135】
値B=1の場合(ステップS303)、特定部303は、レイヤiに存在するW個の全NRPの「1」の数をカウントする。ただし、NRPの最上位のビットが「1」のNRPについては、カウントしない。カウントした値を変数Wに代入する。こうして得られた変数Wが、次のレイヤi+1に存在するNRPの数を示す。(ステップS304a)。
【0136】
次に、特定部303は、最初のNRPから数えて、対応するビット位置までのNRPの「1」の数をカウントする。ただし、NRPの最上位のビットが「1」のNRPについては、カウントしない。カウントした値を変数Aに代入する。ここで、対応するビット位置の値はカウントしない。こういて得られた変数Aが、次のレイヤi+1のNRPのうち、ユーザ装置自身に関係するNRPの位置を示す(ステップS305a)。
【0137】
2.2.3 鍵情報の特定の動作の具体例
一具体例として、図21及び図22に示す鍵情報を用いて、図19に示す無効化されていないユーザ装置10が暗号化メディア鍵を特定するまでの動作について以下に説明する。ユーザ装置10には、ID情報「1001」が割り当てられ、デバイス鍵「KeyA」、「KeyC」、「KeyF」、「KeyL」及び「IK10」が割り当てられているものとする。
【0138】
(ステップ1)特定部303は、ユーザ装置10に割り当てられたID情報「1001」の最上位ビットの値が「1」であるため、最初のNRP{011}の下位2ビットのうちの右ビットをチェックする(ステップS303)。
(ステップ2)最初のNRP{011}の下位2ビットのうちの右ビットの値が「1」であるため、特定部303は、解析を続ける(ステップS303で、B=1)。
【0139】
(ステップ3)特定部303は、レイヤ0に存在する1個のNRP{011}の下位2ビットのうちの「1」の数をカウントする。そのカウントした値が「2」であるため、次のレイヤ1には2個のNRPが存在することが分かる(ステップS304a)。
(ステップ4)特定部303は、対応するビット位置までのNRP{011}の下位2ビットの「1」の数をカウントする。ただし、対応するビット位置の値はカウントしない。そのカウントした値が「1」であるため、次のレイヤ1の対応するNRPの位置は、レイヤ1内において、1番目である(ステップS305a)。
【0140】
(ステップ5)次に、特定部303は、ID情報「1001」の上位から2ビット目の値が「0」であるため、レイヤ1の1番目のNRP{010}の下位2ビットのうちの左ビットをチェックする(ステップS303)。
(ステップ6)ここで、レイヤ1の1番目のNRP{010}の下位2ビットのうちの左ビットの値が「1」であるため、特定部303は、解析を続ける(ステップS303で、B=1)。
【0141】
(ステップ7)特定部303は、レイヤ1に存在する2個のNRP{111}、{010}の下位2ビットのうちの「1」の数をカウントする。ただし、NRPの最上位ビットが「1」であるNRPについては、カウントしない。そのカウントした値が「1」であるため、次のレイヤ2には1個のNRPが存在することが分かる(ステップS304a)。
【0142】
(ステップ8)特定部303は、対応するビット位置までのNRPの「1」の数をカウントする。ただし、対応するビット位置の値はカウントしない。そのカウントした値が「0」であるため、次のレイヤ2の対応するNRPの位置は、レイヤ2内において、0番目である(ステップS305a)。
(ステップ9)次に、特定部303は、ID情報「1001」の上位から3ビット目の値が「0」であるため、レイヤ2の0番目のNRP{001}の下位2ビットのうちの左ビットをチェックする(ステップS303)。
【0143】
(ステップ10)ここで、レイヤ2の0番目のNRP{001}の下位2ビットのうちの左ビットの値が「0」であるため、特定部303は、解析を終了する(ステップS303で、B=0)。
(ステップ11)特定部303は、これまでに解析したNRPのうち、下位2ビットが、オール「1」でないNRPの数をカウントする。なお、最後にチェックしたNRPは、カウントしない。カウントした値が「1」であるため、暗号化メディア鍵の位置は、鍵情報内において、1番目である(ステップS307a)。
【0144】
(ステップ12)図22より、鍵情報の1番目の位置に格納されている暗号化メディア鍵は、E1(KeyL,メディア鍵)である。
ユーザ装置10は、KeyLを保持している。よって、ユーザ装置10は、KeyLを用いて暗号化メディア鍵を復号してメディア鍵を獲得することができる。
【0145】
なお、上述した第2の実施の形態においては、あるノードの子孫に存在するユーザ装置が全て無効化装置である場合に、追加するビットを「1」としている。しかし、リーフのレイヤ数がそれぞれ異なるような木構造がある場合、あるノードの子孫にNRPが存在しない場合は、追加したビットを「1」にすることで終端を意味するフラグとしても使用することができる。
【0146】
3.第3の実施の形態
上記の第2の実施の形態においては、あるノードの子孫が全て無効化装置であるか否かを示すビットをNRPの先頭に追加することで、無効化装置が集中した場合に、ヘッダ情報をさらに少なく抑える方法を示している。
次に述べる第3の実施の形態では、NRPにビットを追加する代わりに、特定のパターン{00}を有するNRPを用いて、1個のノードの子孫が全て無効化装置であるか否かを判断する。これは、レイヤ0を除く全てのレイヤにおいては、NRP{00}が使われないことに着目したものである。これにより、第2の実施の形態よりも、さらにヘッダ情報を少なく抑えることができる著作物保護システム10c(図示していない)について説明する。
−ここでは、図28に示すように、ユーザ装置1〜ユーザ装置8、ユーザ装置12がそれぞれ無効化されているとする。第3の実施の形態では、NRPは第1の実施の形態に示す通りであるが、あるノードの子孫のユーザ装置が全て無効化装置である場合には、そのノードのNRPを{00}で表現する。図28におけるノードT501について、そのノードの子孫が全て無効化装置であるため、NRPは{00}と表現されている。
【0147】
3.1 著作物保護システム10cの構成
著作物保護システム10cは、著作物保護システム10と同様の構成を有している。ここでは、著作物保護システム10との相違点を中心として説明する。
3.1.1 鍵管理装置100
著作物保護システム10cの鍵管理装置100は、第1の実施の形態において述べた鍵管理装置100と同様の構成を有している。ここでは、その相違点を中心として説明する。
【0148】
(1)鍵情報ヘッダ生成部106
鍵情報ヘッダ生成部106は、NRPが{00}である場合には、そのノードの子孫のノードに割り当てられたユーザ装置は全て無効化装置であることを示すNRPを生成し、生成したNRPを鍵情報記録装置200へ出力する。なお、NRPの生成の詳細については、後述する。
【0149】
鍵情報ヘッダ生成部106は、一例として、図29に示すヘッダ情報D700を生成する。ヘッダ情報D700は、NRP{11}、{00}、{10}、{01}及び{01}から構成され、各NRPをこの順序で含んでいる。また、この図に示すように、ヘッダ情報D700内に「0」、「1」、「2」、「3」及び「4」により定まる位置において、それぞれ、NRP{11}、{00}、{10}、{01}及び{01}が配置されている。
【0150】
(2)鍵情報生成部107
鍵情報生成部107は、一例として、図30に示す鍵情報D800を生成する。鍵情報D800は、3個の暗号化メディア鍵を含んでいる。3個の暗号化メディア鍵は、それぞれデバイス鍵KeyG、KeyL、IK11を用いてメディア鍵を暗号化したものである。
【0151】
これらの複数個の暗号化メディア鍵のそれぞれは、鍵情報D800内において格納されている位置が定められている。この図に示すように、鍵情報D800内に「0」、「1」及び「2」により定まる位置において、それぞれ、暗号化メディア鍵E1(KeyG、メディア鍵)、E1(KeyL、メディア鍵)及びE1(IK11、メディア鍵)が配置されている。
【0152】
3.1.2 記録装置300a
著作物保護システム10cの記録装置300aは、第1の実施の形態において述べた記録装置300aと同様の構成を有している。ここでは、その相違点を中心として説明する。
(1)特定部303
特定部303は、ID情報及びヘッダ情報を用いて、ヘッダ情報を上位からシーケンシャルに調べていくことにより、鍵情報の中から1個の暗号化メディア鍵が存在する位置Xを特定する。なお、暗号化メディア鍵が存在する位置Xを特定する場合の詳細の動作については、後述する。
【0153】
3.2 著作物保護システム10cの動作
著作物保護システム10cの動作について、著作物保護システム10の動作との相違点を中心として説明する。
3.2.1 ヘッダ情報の生成の動作
ここでは、鍵情報ヘッダ生成部106によるヘッダ情報の生成の動作について、図31〜図34に示すフローチャートを用いて説明する。なお、ここで説明する動作は、図11に示すフローチャートにおけるステップS153の詳細である。
【0154】
鍵情報ヘッダ生成部106は、レイヤ0からレイヤ3までの各レイヤについて、ステップS322〜S327を繰り返す。さらに、鍵情報ヘッダ生成部106は、各レイヤに含まれる対象ノード毎に、ステップS323〜S326aを繰り返す。
鍵情報ヘッダ生成部106は、当該対象ノードの直下に接続される2個の下位ノードを選択し(ステップS323)、選択した2個の下位ノードのそれぞれに無効化フラグが付されているか否かを調べて、NRPを生成し(ステップS324)、生成されたNRPを木構造テーブル内の当該対象ノードに対応するノード情報内に付加する(ステップS236a)。
【0155】
以上のようにして、ステップS321〜S328の繰返しが終了すると、第1の実施の形態において説明した方法と同様に、各ノードにNRPが付加される。次に、鍵情報ヘッダ生成部106は、レイヤ3からレイヤ0までの各レイヤについて、ステップS330〜S335を繰り返す。さらに、鍵情報ヘッダ生成部106は、各レイヤに含まれる対象ノード毎に、ステップS331〜S334aを繰り返す。
【0156】
鍵情報ヘッダ生成部106は、当該対象ノードの直下に接続される2個の下位ノードを選択し(ステップS331)、選択した2個のノードの両方にそれぞれNRP{11}が付加されているか否かを調べる。ただし、選択した2個のノードがリーフである場合には、選択した2個のノードの両方に無効化フラグが付されているか否かを調べる(ステップS332)。
【0157】
選択した2個の下位ノードの両方にそれぞれNRP{11}が付されている場合にのみ、ただし選択した2個のノードがリーフである場合には、選択した2個の下位ノードの両方に無効化フラグが付されている場合にのみ(ステップS333)、鍵情報ヘッダ生成部106は、当該対象ノードに付加されたNRPを{00}に書き換える(ステップS334a)。
【0158】
以上のようにして、ステップS329〜S336の繰返しが終了すると、それぞれNRP{11}が付加されている2個の下位ノードに接続する上位のノードには、{00}が付加されることになる。
次に、鍵情報ヘッダ生成部106は、レイヤ2からレイヤ0までの各レイヤについて、ステップS338〜S343を繰り返す。さらに、鍵情報ヘッダ生成部106は、各レイヤに含まれる対象ノード毎に、ステップS339〜S342aを繰り返す。
【0159】
鍵情報ヘッダ生成部106は、当該対象ノードの直下に接続される2個の下位ノードを選択し(ステップS339)、選択した2個の下位ノードの両方にNRP{00}が付加されているか否かを調べる(ステップS340a)。
選択した2個の下位ノードの両方にNRP{00}が付加されている場合にのみ(ステップS341a)、鍵情報ヘッダ生成部106は、選択した2個の下位ノードにそれぞれ付加されたNRPを木構造テーブルから削除する(ステップS342a)。
【0160】
次に、鍵情報ヘッダ生成部106は、木構造テーブルに記憶されているNRPをルートから順に読み出して、出力する(ステップS345)。
以上のようにして、NRPが{00}である場合に、そのノードの子孫のノードに割り当てられたユーザ装置は全て無効化装置であることを示すNRPが生成される。
【0161】
3.2.2 鍵情報の特定の動作
ここでは、記録装置300aが有する特定部303により、記録媒体500bに記憶されている鍵情報から、1個の暗号化メディア鍵を特定する動作について、図35に示すフローチャートを用いて説明する。なお、ここで説明する動作は、図11に示すフローチャートにおけるステップS172の詳細である。
【0162】
また、特定部303による1個の暗号化メディア鍵を特定する動作は、第1の実施の形態において説明した動作と同様であり、ここでは、その相違点を中心として説明する。
値B=0の場合(ステップS303)、特定部303は、これまでにチェックしたNRPのうち、オール「1」でないNRPの数とオール「0」でないNRPの数とをカウントする。ただし、レイヤ0に関してのみ、オール「0」のNRPもカウントする。カウントした値を、変数Xに代入する。こうして得られた変数Xが、暗号化メディア鍵の位置を示している。また、この時点の変数iは、デバイス鍵を識別するためのデバイス鍵識別情報である(ステップS307b)。次に、特定部303は、処理を終了する。
【0163】
3.2.3 鍵情報の特定の動作の具体例
一具体例として、図29及び図30に示す鍵情報を用いて、図28に示す無効化されていないユーザ装置10が暗号化メディア鍵を特定するまでの動作について以下に説明する。ユーザ装置10には、ID情報「1001」が割り当てられ、デバイス鍵「KeyA」、「KeyC」、「KeyF」、「KeyL」及び「IK10」が割り当てられているものとする。
【0164】
(ステップ1)特定部303は、ユーザ装置10に割り当てられたID情報「1001」の最上位ビットの値が「1」であるため、最初のNRP{11}の右ビットをチェックする(ステップS303)。
(ステップ2)最初のNRP{11}の右ビットの値が「1」であるため、特定部303は、解析を続ける(ステップS303で、B=1)。
【0165】
(ステップ3)特定部303は、レイヤ0に存在する1個のNRP{11}の「1」の数をカウントする。そのカウントした値が「2」であるため、次のレイヤ1には2個のNRPが存在することが分かる(ステップS304)。
(ステップ4)特定部303は、対応するビット位置までのNRPの「1」の数をカウントする。ただし、対応するビット位置の値はカウントしない。そのカウントした値が「1」であるため、次のレイヤ1の対応するNRPの位置は、レイヤ1内において、1番目である(ステップS305)。
【0166】
(ステップ5)次に、特定部303は、ID情報「1001」の上位から2ビット目の値が「0」であるため、レイヤ1の1番目のNRP{10}の左ビットをチェックする(ステップS303)。
(ステップ6)レイヤ1の1番目のNRP{10}の左ビットの値が「1」であるため、特定部303は、解析を続ける(ステップS303で、B=1)。
【0167】
(ステップ7)特定部303は、レイヤ1に存在する2個のNRPの「1」の数をカウントする。ここで、NRP{00}は、カウントしない。そのカウントした値が「1」であるため、次のレイヤ2には1個のNRPが存在することが分かる(ステップS304)。
(ステップ8)特定部303は、対応するビット位置までのNRPの「1」の数をカウントする。ただし、対応するビット位置の値はカウントしない。そのカウントした値が「0」であるため、次のレイヤ2の対応するNRPの位置は、レイヤ2内において、0番目である(ステップS305)。
【0168】
(ステップ9)次に、特定部303は、ID情報「1001」の上位から3ビット目の値が「0」であるため、レイヤ2の0番目のNRP{01}の下位2ビットのうちの左ビットをチェックする(ステップS303)。
(ステップ10)ここで、レイヤ2の0番目のNRP{01}の下位2ビットのうちの左ビットの値が「0」であるため、特定部303は、解析を終了する(ステップS303で、B=0)。
【0169】
(ステップ11)特定部303は、これまでに解析したNRPのうち、オール「1」でないNRPの数をカウントする。なお、最後にチェックしたNRPはカウントしない。カウントした値が「1」であるため、暗号化メディア鍵の位置は、鍵情報内において、1番目である。
(ステップ12)図30より、鍵情報の1番目の位置に格納されている暗号化メディア鍵は、E1(KeyL,メディア鍵)である。
【0170】
ユーザ装置10は、KeyLを保持している。よって、ユーザ装置10は、KeyLを用いて暗号化メディア鍵を復号してメディア鍵を獲得することができる。
4.第4の実施の形態
上記の第1の実施の形態においては、複数のNRPを上位レイヤから下位レイヤの順に並べ、レイヤが同じNRPについては、左から右への順に並べるようにしている。
【0171】
次に述べる第4の実施の形態では、別の並べ方により複数のNRPを出力する著作物保護システム10d(図示していない)について説明する。
4.1 著作物保護システム10dの構成
著作物保護システム10dは、著作物保護システム10と同様の構成を有している。ここでは、著作物保護システム10との相違点を中心として説明する。
【0172】
4.1.1 鍵管理装置100
著作物保護システム10dの鍵管理装置100は、第1の実施の形態において述べた鍵管理装置100と同様の構成を有している。ここでは、その相違点を中心として説明する。
(1)木構造格納部102
木構造格納部102は、具体的にはハードディスクユニットから構成されており、図37に一例として示すように木構造テーブルD1000を有している。
【0173】
木構造テーブルD1000は、図36に一例として示す木構造T600に対応しており、木構造T600を表現するためのデータ構造を示す。後述するように、木構造構築部101により木構造T600を表現するためのデータ構造が、木構造テーブルD1000として生成され、木構造格納部102に書き込まれる。
(木構造T600)
木構造T600は、図36に示すように、木構造T100と同様に、レイヤ0からレイヤ4までの5階層からなる2分木である。
【0174】
木構造T600の各レイヤに含まれるノードの数は、木構造T100と同じである。また、上位側のノードと下位側のノードを接続する経路に割り当てられる番号も、木構造T100と同じである。木構造T600において、×が付されているノードは、無効化されている。
木構造T600のルートであるノードのノード名は、空白である。他のノードのノード名は、木構造T100と同様に設定される。
【0175】
各ノード名は、4桁の文字で表現される。ルートであるノードのノード名は、4桁の空白文字からなる。ノード名「0」は、具体的には、文字「0」+1桁の空白文字+1桁の空白文字+1桁の空白文字である。ノード名「00」は、文字「0」+文字「0」+1桁の空白文字+1桁の空白文字である。ノード名「101」は、文字「1」+文字「0」+文字「1」+1桁の空白文字である。ノード名「1111」は、文字「1」+文字「1」+文字「1」+文字「1」である。その他のノード名についても同様である。
【0176】
木構造T600において、各ノードの付近に付された{10}などは、NRPを示している。また、各ノードの付近に付された○印で囲まれた番号は、NRPが出力される順序を示している。
(木構造テーブルD1000)
木構造テーブルD1000は、木構造T600に含まれるノードと同じ数のノード情報を含んで構成されており、各ノード情報は、木構造T600を構成する各ノードにそれぞれ対応している。
【0177】
各ノード情報は、ノード名、デバイス鍵及び無効化フラグを含んでいる。ノード名、デバイス鍵及び無効化フラグについては、木構造テーブルD100と同じであるので説明を省略する。
木構造テーブルD1000内には、次に示す順序規則2に従った順序により各ノード情報が記憶される。ここに示す順序規則2は、記録装置300a、300b、300c、・・・、再生装置400a、400b、400c、・・・により、木構造テーブルD1000から各ノード情報がシーケンシャルに読み出される場合においても適用される。
【0178】
(a)木構造テーブルD1000内の先頭には、ルートであるノードに対応するノード情報が記憶される。
(b)1個のノード(特定ノードと呼ぶ。)に対応するノード情報が木構造テーブルD1000内に記憶された後において、前記特定ノードの下位側に接続する2個の下位ノードが存在する場合には、次に示すようにして、ノード情報が並べられる。前記特定ノードに対応するノード情報に続いて、前記2個の下位ノードのうち、左側のノード及び前記左側のノードのさらに下位側に接続する全てのノードに対応する各ノード情報が記憶される。続いて、前記2個の下位ノードのうち、右側のノード及び前記右側のノードのさらに下位側に接続する全てのノードに対応する各ノード情報が記憶される。
【0179】
(c)(b)内において、(b)が再度、適用される。
具体的には、図37に示す木構造テーブルD100内には、次に示す順序により各ノード情報が記憶される。
空白(ルートを示す)、「0」、「00」、「000」、「0000」、「0001」、「001」、「0010」、「0011」、「01」、「010」、・・・、「11」、「110」、「1100」、「1101」、「111」、「1110」、「1111」
(2)木構造構築部101
木構造構築部101は、デバイス鍵を管理するためのn分木データ構造を構築し、木構造格納部102に構築した木構造を格納する。ここで、nは2以上の整数であり、一例として、n=2である。
【0180】
木構造構築部101による木構造の構築及び木構造格納部102への格納の詳細の動作については、後述する。
木構造構築部101は、次に、木構造のノード毎に乱数を用いてデバイス鍵を生成し、生成したデバイス鍵を各ノードに対応付けて木構造テーブル内に書き込む。
【0181】
(3)鍵情報ヘッダ生成部106
鍵情報ヘッダ生成部106は、複数のNRPを生成し、生成した複数のNRPをヘッダ情報として、鍵情報記録装置200へ出力する。NRPの生成の詳細の動作については、後述する。
鍵情報ヘッダ生成部106により生成されるヘッダ情報の一例を図38に示す。この図に示すヘッダ情報D900は、NRP{11}、{11}、{11}、{10}、{01}、{11}、{10}、{10}、{10}、{01}、{11}から構成され、各NRPをこの順序で含んでいる。
【0182】
なお、これらの複数個のNRPのそれぞれは、ヘッダ情報D900内において格納されている位置が定められている。この図に示すように、ヘッダ情報D900内に「0」、「1」、「2」、「3」、「4」、「5」、「6」、「7」、「8」、「9」、「10」、により定まる位置において、それぞれ、NRP{11}、{11}、{11}、{10}、{01}、{11}、{10}、{10}、{10}、{01}、{11}が配置されている。
【0183】
(4)鍵情報生成部107
鍵情報生成部107は、上記の木構造テーブルにノード情報が格納される順序と同じ順序で、無効化されていないノードに対応するデバイス鍵を用いて、メディア鍵を暗号化して暗号化メディア鍵を生成し、生成した暗号化メディア鍵を鍵情報として出力する。
【0184】
鍵情報生成部107は、一例として次に示す鍵情報を生成して出力する。
鍵情報は、デバイス鍵「IK2」、「IK3」、「IK6」、「IK8」、「KeyL」及び「KeyG」をそれぞれ用いて、メディア鍵を暗号化することにより、生成された暗号化メディア鍵E1(IK2、メディア鍵)、E1(IK3、メディア鍵)、E1(IK6、メディア鍵)、E1(IK8、メディア鍵)、E1(KeyL、メディア鍵)及びE1(KeyG、メディア鍵)から構成されている。この鍵情報内に、「0」、「1」、「2」、「3」、「4」、「5」及び「6」により定まる位置において、それぞれ、暗号化メディア鍵E1(IK2、メディア鍵)、E1(IK3、メディア鍵)、E1(IK6、メディア鍵)、E1(IK8、メディア鍵)、E1(KeyL、メディア鍵)及びE1(KeyG、メディア鍵)が配置されている。
【0185】
4.1.2 記録装置300a
著作物保護システム10dの記録装置300aは、第1の実施の形態において述べた記録装置300aと同様の構成を有している。ここでは、その相違点を中心として説明する。
(1)特定部303
特定部303は、ID情報及びヘッダ情報を用いて、ヘッダ情報を上位からシーケンシャルに調べていくことにより、鍵情報の中から1個の暗号化メディア鍵が存在する位置Xを特定する。なお、暗号化メディア鍵が存在する位置Xを特定する場合の詳細の動作については、後述する。
【0186】
4.2 著作物保護システム10dの動作
著作物保護システム10dの動作について、著作物保護システム10の動作との相違点を中心として説明する。
4.2.1 木構造を構築して格納する動作
ここでは、木構造構築部101による木構造テーブルの生成と木構造格納部102への木構造テーブルの書き込みの動作について、図39に示すフローチャートを用いて説明する。なお、ここで説明する動作は、図10に示すフローチャートにおけるステップS101の詳細である。
【0187】
木構造構築部101は、空白のノード名を含むノード情報を生成して木構造テーブルに書き込む(ステップS401)。
次に、木構造構築部101は、レイヤi(i=1、2、3、4)について、次に示すステップS403〜ステップS404を繰り返す。
木構造構築部101は、2i 個の文字列をノード名として生成する。具体的には、i=1のときは、21 =2個の文字列「0」及び「1」を生成する。また、i=2のときは、22 =4個の文字列「00」、「01」、「10」及び「11」を生成する。また、i=3のときは、23 =8個の文字列「000」、「001」、「010」、・・・・、「111」を生成する。また、i=4のときは、24 =16個の文字列「0000」、「0001」、「0010」、「0011」、・・・・、「1111」を生成する(ステップS403)。次に、木構造構築部101は、生成した各ノード名をそれぞれ含むノード情報を木構造テーブルに書き込む(ステップS404)。
【0188】
次に、木構造構築部101は、木構造テーブルに含まれている各ノード情報を、ノード名の昇順に並び換え、並び替えられた各ノード情報を再度、木構造テーブルに上書きする(ステップS406)。
このようにして、図37に一例として示す木構造テーブルD1000が生成される。生成された木構造テーブルD1000は、上述した順序規則2により各ノード情報を含んでいる。なお、この段階では、木構造テーブルD1000内に各デバイス鍵はまだ記録されていない。
【0189】
4.2.2 ヘッダ情報の生成の動作
ここでは、鍵情報ヘッダ生成部106によるヘッダ情報の生成の動作について、図40〜図41に示すフローチャートを用いて説明する。なお、ここで説明する動作は、図11に示すフローチャートにおけるステップS153の詳細である。
【0190】
鍵情報ヘッダ生成部106は、順序規則2に従って木構造テーブルから順に1個ずつノード情報の読出しを試みる(ステップS421)。
ノード情報の終了を検出すると(ステップS422)、鍵情報ヘッダ生成部106は、ステップS427へ制御を移す。
ノード情報の終了を検出せず、ノード情報が読み出せた場合には(ステップS422)、鍵情報ヘッダ生成部106は、読み出したノード情報に対応する対象ノードの下位側に接続されている2個の下位ノードに対応する2個のノード情報を読み出す(ステップS423)。
【0191】
下位ノードが存在する場合に(ステップS424)、鍵情報ヘッダ生成部106は、読み出した2個の下位ノードに対応する2個のノード情報の両方に、無効化フラグが付されているか否かを調べて、NRPを生成し(ステップS425)、次に、生成したNRPを読み出した対象ノードに対応するノード情報に付加する(ステップS426)。次に、ステップS421へ戻って処理を繰り返す。
【0192】
下位ノードが存在しない場合(ステップS424)、ステップS421へ戻って処理を繰り返す。
次に、鍵情報ヘッダ生成部106は、順序規則2に従って木構造テーブルから順に1個ずつノード情報の読出しを試みる(ステップS427)。
ノード情報の終了を検出すると(ステップS422)、鍵情報ヘッダ生成部106は、処理を終了する。
【0193】
ノード情報の終了を検出せず、ノード情報が読み出せた場合には(ステップS428)、鍵情報ヘッダ生成部106は、読み出したノード情報にNRPが付加されているか否かを調べ、付加されている場合(ステップS429)、付加されているNRPを出力し(ステップS430)、次に、ステップS427へ戻って処理を繰り返す。
【0194】
NRPが付加されていない場合(ステップS429)、鍵情報ヘッダ生成部106は、ステップS427へ戻って処理を繰り返す。
4.2.3 鍵情報の特定の動作
ここでは、記録装置300aが有する特定部303により、記録媒体500bに記憶されている鍵情報から、1個の暗号化メディア鍵を特定する動作について、図42に示すフローチャートを用いて説明する。なお、ここで説明する動作は、図11に示すフローチャートにおけるステップS172の詳細である。
【0195】
また、再生装置400aが有する特定部402による動作は、特定部303による動作と同じであるので、説明を省略する。
特定部303は、チェックするID情報のビット位置を示す変数i、現在チェックしているNRPが含まれるレイヤを示す変数L、分岐点のノードのレイヤを記憶する変数X、NRPをチェックするか否かを判断するフラグF(初期値、F=0)を有しており、木構造のレイヤ数を示す値Dを有している。また、チェックするNRPの位置を示すポインタAを有している。
【0196】
特定部303は、変数i=0、変数L=0、フラグF=0、変数X=0、ポインタA=0とする(ステップS1300)。
次に、特定部303は、変数Lがレイヤ数D−1よりも小さいか否かを判定する。大きいか又は等しい場合(ステップS1301)、特定部303は、変数Lに対して、変数Xの最後のレイヤ番号を入力する。変数Xは、後入れ先出しの変数であり、出力した値は削除されるものとする。即ち、変数Xにレイヤ0、レイヤ2、レイヤ3の順で入力されたとすると、最初に出力されるのはレイヤ3で、そのレイヤ3は削除され、次はレイヤ2が出力される(ステップS1313)。次に、ステップS1301へ戻って処理を繰り返す。
【0197】
変数Lがレイヤ数D−1よりも小さい場合(ステップS1301)、特定部303は、変数i=変数Lであるか否かを判定する。変数i=変数Lでない場合(ステップS1302)、特定部303は、ステップS1310へ制御を移す。
変数i=変数Lである場合(ステップS1302)、特定部303は、さらに、フラグF=0であるか否かを判定する。フラグF=0でない場合(ステップS1303)、特定部303は、フラグF=0とし(ステップS1309)、特定部303は、ステップS1310へ制御を移す。
【0198】
フラグF=0である場合(ステップS1303)、特定部303は、ID情報の上位iビット目の値に従って、A番目のNRPの対応するビット位置の値Bをチェックし、変数i=i+1とする(ステップS1304)。
次に、特定部303は、値B=1であるか否かを調べ、値B=1でない場合(ステップS1305)、このID情報が割り当てられた装置は無効化されていないとものとして、特定部303は、処理を終了する。
【0199】
値B=1である場合(ステップS1305)、変数≠D−1であるか否かを調べ、変数≠D−1でない場合(ステップS1306)、このID情報が割り当てられた装置は無効化されているものとして、特定部303は、処理を終了する。次に、変数≠D−1である場合(ステップS1306)、特定部303は、NRPが{11}であり、かつID情報のi−1番目の値が「1」であるか否かを判定する。Noの場合(ステップS1307)、特定部303は、ステップS1310へ制御を移す。
【0200】
Yesの場合(ステップS1307)、特定部303は、フラグF=1とし(ステップS1308)、次に、L=L+1とし(ステップS1310)、NRPが{11}であれば、そのレイヤ番号を変数Xに記憶し(ステップS1311)、A=A+1とし(ステップS1312)、次に、ステップS1310へ戻って処理を繰り返す。
【0201】
5.第5の実施の形態
上記の第4の実施の形態においては、複数のNRPを順序規則2により並べるようにしている。
次に述べる第5の実施の形態では、第4の実施の形態において述べた著作物保護システム10dと同様に、順序規則2により並べて複数のNRPを出力し、かつ、第2の実施の形態において述べた著作物保護システム10bと同様に、無効化された装置が木構造の中で特定のリーフに集中する場合に、ヘッダ情報のデータ量を少なく抑えることができる著作物保護システム10e(図示していない)について説明する。
【0202】
5.1 著作物保護システム10eの構成
著作物保護システム10eは、著作物保護システム10dと同様の構成を有している。ここでは、著作物保護システム10dとの相違点を中心として説明する。
5.1.1 鍵管理装置100
著作物保護システム10eの鍵管理装置100は、第4の実施の形態において述べた鍵管理装置100dと同様の構成を有している。ここでは、その相違点を中心として説明する。
【0203】
(1)木構造格納部102
木構造格納部102は、木構造テーブルを有している。木構造格納部102が有する木構造テーブルは、第4の実施の形態において説明した木構造格納部102が有している木構造テーブルD1000と同様の構造を備えており、木構造テーブルに含まれる各ノード情報は、さらに、NRPを含む。
【0204】
(2)鍵情報ヘッダ生成部106
鍵情報ヘッダ生成部106は、複数のNRPを生成し、生成した複数のNRPをヘッダ情報として、鍵情報記録装置200へ出力する。各NRPは、第2の実施の形態において説明したように、3ビットから構成される。
NRPの生成の詳細の動作については、後述する。
【0205】
5.1.2 記録装置300a
著作物保護システム10eの記録装置300aは、第4の実施の形態において述べた記録装置300aと同様の構成を有している。ここでは、その相違点を中心として説明する。
(1)特定部303
特定部303は、ID情報及びヘッダ情報を用いて、ヘッダ情報を上位からシーケンシャルに調べていくことにより、鍵情報の中から1個の暗号化メディア鍵が存在する位置Xを特定する。なお、暗号化メディア鍵が存在する位置Xを特定する場合の詳細の動作については、後述する。
【0206】
5.2 著作物保護システム10eの動作
著作物保護システム10eの動作について、著作物保護システム10dの動作との相違点を中心として説明する。
5.2.1 ヘッダ情報の生成の動作
ここでは、鍵情報ヘッダ生成部106によるヘッダ情報の生成の動作について、図43〜図46に示すフローチャートを用いて説明する。なお、ここで説明する動作は、図11に示すフローチャートにおけるステップS153の詳細である。
【0207】
鍵情報ヘッダ生成部106は、順序規則2に従って木構造テーブルから順に1個ずつノード情報の読出しを試みる(ステップS451)。
ノード情報の終了を検出すると(ステップS452)、鍵情報ヘッダ生成部106は、ステップS458へ制御を移す。
ノード情報の終了を検出せず、ノード情報が読み出せた場合には(ステップS452)、鍵情報ヘッダ生成部106は、読み出したノード情報に対応する対象ノードの下位側に接続されている2個の下位ノードに対応する2個のノード情報を読み出す(ステップS453)。
【0208】
下位ノードが存在する場合に(ステップS454)、鍵情報ヘッダ生成部106は、読み出した2個の下位ノードに対応する2個のノード情報の両方に、無効化フラグが付されているか否かを調べて、NRPを生成し(ステップS455)、値「0」を有する拡張ビットを生成したNRPの先頭に付加し(ステップS456)、次に、拡張ビットの付加されたNRPを読み出した対象ノードに対応するノード情報に付加する(ステップS457)。次に、ステップS451へ戻って処理を繰り返す。
【0209】
下位ノードが存在しない場合(ステップS454)、ステップS451へ戻って処理を繰り返す。
次に、鍵情報ヘッダ生成部106は、順序規則2に従って木構造テーブルから順に1個ずつノード情報の読出しを試みる(ステップS458)。
ノード情報の終了を検出すると(ステップS459)、鍵情報ヘッダ生成部106は、ステップS465へ制御を移す。
【0210】
ノード情報の終了を検出せず、ノード情報が読み出せた場合には(ステップS459)、鍵情報ヘッダ生成部106は、読み出したノード情報に対応する対象ノードの下位側に接続されている全ての下位ノードに対応する全てのノード情報を読み出す(ステップS460)。
下位ノードが存在する場合に(ステップS461)、鍵情報ヘッダ生成部106は、読み出した全ての下位ノードに対応する全てのノード情報に、無効化フラグが付されているか否かを調べ(ステップS462)、全てのノード情報に付加されている場合にのみ(ステップS463)、対象ノードに対応するノード情報に付加されたNRPの先頭ビットを「1」に書き換える(ステップS464)。
【0211】
次に、ステップS458へ戻って処理を繰り返す。
下位ノードが存在しない場合(ステップS461)、ステップS458へ戻って処理を繰り返す。
次に、鍵情報ヘッダ生成部106は、順序規則2に従って木構造テーブルから順に1個ずつノード情報の読出しを試みる(ステップS465)。
【0212】
ノード情報の終了を検出すると(ステップS466)、鍵情報ヘッダ生成部106は、ステップS472へ制御を移す。
ノード情報の終了を検出せず、ノード情報が読み出せた場合には(ステップS466)、鍵情報ヘッダ生成部106は、読み出したノード情報に対応する対象ノードの下位側に接続されている全ての下位ノードに対応する全てのノード情報を読み出す(ステップS467)。
【0213】
下位ノードが存在する場合に(ステップS468)、鍵情報ヘッダ生成部106は、読み出した全ての下位ノードに対応する全てのノード情報に、それぞれNRP{111}が付加されているか否かを調べ(ステップS469)、全てのノード情報に付加されている場合にのみ(ステップS470)、前記全てのノード情報に、それぞれ削除フラグを付加する(ステップS471)。
【0214】
次に、ステップS465へ戻って処理を繰り返す。
下位ノードが存在しない場合(ステップS468)、ステップS465へ戻って処理を繰り返す。
次に、鍵情報ヘッダ生成部106は、順序規則2に従って木構造テーブルから順に1個ずつノード情報の読出しを試みる(ステップS472)。
【0215】
ノード情報の終了を検出すると(ステップS473)、鍵情報ヘッダ生成部106は、処理を終了する。
ノード情報の終了を検出せず、ノード情報が読み出せた場合には(ステップS473)、鍵情報ヘッダ生成部106は、読み出したノード情報にNRPが付加されているか否かを調べ、付加されている場合(ステップS474)、さらに、削除フラグが付加されているか否かを調べ、削除フラグが付加されていない場合には(ステップS475)、付加されているNRPを出力し(ステップS476)、次に、ステップS472へ戻って処理を繰り返す。
【0216】
NRPが付加されていない場合(ステップS474)、又は、削除フラグが付加されている場合(ステップS475)、鍵情報ヘッダ生成部106は、ステップS472へ戻って処理を繰り返す。
5.2.2 鍵情報の特定の動作
ここでは、記録装置300aが有する特定部303により、記録媒体500bに記憶されている鍵情報から、1個の暗号化メディア鍵を特定する動作について、図47に示すフローチャートを用いて説明する。なお、ここで説明する動作は、図11に示すフローチャートにおけるステップS172の詳細である。
【0217】
また、再生装置400aが有する特定部402による動作は、特定部303による動作と同じであるので、説明を省略する。
また、ここでは、図42に示すフローチャートとの相違点を中心として説明する。
特定部303は、第4の実施の形態の場合と同様に、チェックするID情報のビット位置を示す変数i、現在チェックしているNRPが含まれるレイヤを示す変数L、分岐点のノードのレイヤを記憶する変数X、NRPをチェックするか否かを判断するフラグF(初期値、F=0)を有しており、木構造のレイヤ数を示す値Dを有している。また、チェックするNRPの位置を示すポインタAを有している。
【0218】
値B=1である場合(ステップS1305)、NRPの最上位ビットが「1」であるときにのみ(ステップS1316)、特定部303は、変数i=D−1とし、変数L=D−1とする(ステップS1317)。
また、特定部303は、NRPが{11}であり、かつNRPの最上位ビットが「1」でないとき、そのレイヤ番号を変数Xに記憶する(ステップS1311)。
【0219】
6.その他の変形例
なお、本発明を上記の実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
(1)本発明の実施の形態として、従来方式による無効化方法を例として説明したが、本発明は上記の実施の形態に限定されるものではない。鍵管理装置がある木構造を保持し、この木構造のリーフに記録装置又は再生装置を割り当て、ノードに付随するあるデバイス鍵を各記録装置又は各再生装置に割り当てるものであり、鍵管理装置がこの木構造を用いて前記デバイス鍵の無効化と、前記鍵情報の作成を行うものであれば、前記ノードに付随するデバイス鍵の割り当て方や、各装置へのデバイス鍵の割り当て方はどのようなものであってもよい。
【0220】
(2)また、本発明の実施の形態として、2分木の木構造を例として説明したが、本発明は2分木に限定されるものではない。一般にn分木でも実現可能である。このときID情報は、あるノードから下に派生するn本の経路に対して、0〜n−1を割り当て、上述した実施の形態と同様に、リーフからルートに至るまでの経路上に割り当てられた値を上位から順に連結することにより、設定される。
【0221】
(3)以上で述べた本発明の実施の形態においては、DVD−RAM等のレコーダブルメディアについて説明した。しかし、DVD−Video等のプレレコーディッドメディアについても、同様の方法で実現することができる。
プレレコーディッドメディアにおける著作物保護システム10fについて、説明する。
【0222】
著作物保護システム10fは、図48に示すように、鍵管理装置100、データ記録装置1701、データ再生装置1703a、1703b、1703c、・・・から構成されている。
鍵管理装置100は、上記の実施の形態において説明したように、ヘッダ情報が付加された鍵情報とコンテンツ鍵とをデータ記録装置1701へ出力し、複数のデバイス鍵と各デバイス鍵識別情報とID情報とをデータ再生装置1703a、1703b、1703c、・・・へ出力する。
【0223】
データ記録装置1701に、プレレコーディッドメディアである記録媒体500aが装着される。データ記録装置1701は、鍵管理装置100から鍵情報とメディア鍵とを受け取り、メディア鍵を用いてコンテンツを暗号化して暗号化コンテンツを生成し、生成した暗号化コンテンツと受け取った鍵情報とを記録媒体500aに書き込む。こうして、暗号化コンテンツと鍵情報とが書き込まれた記録媒体500dが生産される。
【0224】
記録媒体500dは、市場を流通し、利用者は、記録媒体500dを入手する。利用者は、記録媒体500dをデータ再生装置1703aに装着する。
データ再生装置1703aは、鍵管理装置100から複数のデバイス鍵と各デバイス鍵識別情報とID情報とを予め受け取っており、記録媒体500dが装着されると、記録媒体500dから鍵情報と暗号化コンテンツとを読み出し、鍵情報から暗号化メディア鍵を特定し、特定した暗号化メディア鍵をデバイス鍵を用いて復号し、得られたメディア鍵を用いて、暗号化コンテンツを復号して、コンテンツを生成する。
【0225】
このようなシステムにおいても、実施の形態で示した鍵管理装置100と同様の動作により、記録媒体に記録するヘッダ情報を少なく抑えつつ、各データ再生装置で効率よく復号すべき暗号化メディア鍵を特定することができる。
(4)以上では本発明をデジタルコンテンツの著作権保護のために用いる場合を例示したが、本発明の応用はこれに限定されるものではなく、例えば、会員制の情報提供システムにおいて、ある特定の会員以外に情報を提供するという、いわゆるコンディショナルアクセスの目的にも利用できる。
【0226】
(5)本発明の実施の形態においては、鍵情報あるいは暗号化コンテンツを、記録媒体を用いて配布する例を示したが、記録媒体の代わりに、インターネットに代表されるような通信媒体を用いてもよい。
(6)鍵管理装置と鍵情報記録装置が一体の装置から構成されているとしてもよい。
【0227】
(7)上記の実施の形態では、n分木を構成する全てのノードに予めデバイス鍵を割り当てておき、リーフからルートへの経路上に存在する全てのデバイス鍵を、前記リーフに対応する利用装置に割り当てるとしているが、本発明は、このようなデバイス鍵の割り当て方法には、限定されない。
n分木を構成する全てのノードに予めデバイス鍵を割り当てておくのではなく、一部のノードにのみ、予めデバイス鍵を割り当てておくとしてもよい。
【0228】
また、リーフからルートへの経路上に存在する全てのデバイス鍵を、前記リーフに対応する利用装置に割り当てるのではなく、リーフからルートへの経路上に存在する全てのデバイス鍵のうちの一部のデバイス鍵を前記利用装置に割り当てるとしてもよい。
(8)一例として図4に示す木構造を想定する。デバイス鍵が漏洩していない初期状態では、メディア鍵は、デバイス鍵KeyAを用いて暗号化され、暗号化メディア鍵が生成される。
【0229】
このとき、ユーザ装置1〜16のいずれかの装置が、悪意のある第三者によりハックされて、デバイス鍵KeyAが暴露され、デバイス鍵KeyAだけを内部に有するクローン機器が製造されたとする。このとき、前記クローン機器は、デバイス鍵KeyAだけを有するので、ユーザ装置1〜16のうちのどの装置がハックされた装置であるかを特定することはできない。一方で、前記クローン機器は、デバイス鍵KeyAを有しているので、正しいメディア鍵を不正に得ることができる。
【0230】
このような状況では、デバイス鍵KeyAのみを無効化し、かつ、全ての機器がカバーされるようなデバイス鍵を用いて、言い換えると、全ての機器が共有しているデバイス鍵を用いて、メディア鍵を暗号化しなければならない。ここで、全ての機器をカバーする理由は、このような状況では、ハックされた機器がどの機器か断定できないためである。
【0231】
そこで、デバイス鍵KeyB及びKeyCをそれぞれ用いて、メディア鍵を暗号化して2個の暗号化メディア鍵を生成する。
次に、デバイス鍵KeyBが暴露された場合には、デバイス鍵KeyBを無効化し、さらに、デバイス鍵KeyC、KeyD及びKeyEをそれぞれ用いて、メディア鍵を暗号化して3個の暗号化メディア鍵を生成する。
【0232】
このような操作が、木の高さ分だけ繰り返されると、最終的には、ハックされた機器が特定される。
以上説明したような状況に対応するために、デバイス鍵KeyAのみを無効化する場合、鍵管理装置は、デバイス鍵KeyAが対応するノードに対して、NRP{100}を付加する。図4に示す木構造の場合には、ルートに対して、NRP{100}を付加する。
【0233】
NRP{100}の先頭のビット「1」は、このノードが無効化されていることを示し、また、先頭のビット「1」に続くビット列「00」は、このノードの下に接続されている2個のノードは、両方とも、無効化されていないことを示している。
つまり、図4に示す木構造の場合に、ルートに対して、NRP{100}が付加されているならば、デバイス鍵KeyB及びKeyCを用いて、メディア鍵を暗号化して生成された2個の暗号化メディア鍵が存在することとなる。このように、NRPの先頭のビット「1」は、このノードの下には、暗号化メディア鍵が2個存在することを意味するフラグであるといえる。
【0234】
一方、第2の実施の形態で説明したように、NRPが{111}であるときの先頭のビット「1」は、このノードの下には、NRPが存在しないことを示している。
以下において、さらに詳細に説明する。
(鍵管理装置100)
ここでは、鍵管理装置100は、図4に示す木構造T100を生成し、この図に示すように、各ノードにデバイス鍵を割り当て、各リーフにユーザ装置を割り当てたものとする。
【0235】
この後、図49に示すように、ルートT701、ノードT702及びノードT703にそれぞれ割り当てられたデバイス鍵KeyA、KeyB及びKeyEが、上記に示すように漏洩したため、鍵管理装置100は、以下に示すようにして、デバイス鍵KeyA、KeyB及びKeyEを無効化し、ヘッダ情報及び鍵情報を生成し、生成したヘッダ情報及び鍵情報を、鍵情報記録装置200を介して、記録媒体に書き込む。
【0236】
(a)デバイス鍵KeyA、KeyB及びKeyEの無効化
鍵管理装置100は、木構造テーブルにおいて、デバイス鍵KeyA、KeyB及びKeyEがそれぞれ含まれるノード情報に無効化フラグ「1」を付加する。
(b)ヘッダ情報の生成
鍵管理装置100は、無効化フラグが付加されたノード情報を含む前記木構造テーブルを用いて、ルートT701に付加するNRP{010}を生成し、生成したNRP{010}をヘッダ情報の一部として、鍵情報記録装置200を介して、記録媒体に書き込む。ここで、NRPの先頭のビット「0」は、ルートT701の直下に接続される2個の下位のノードのいずれか一方が無効化され、他方は無効化されていないことを示している。また、NRPの下位の2ビット「10」は、上記の実施の形態においても説明したように、ルートT701の直下に接続される2個の下位のノードのうち、左側のノードT702は、無効化されており、右側のノードT704は、無効化されていないことを示している。
【0237】
次に、鍵管理装置100は、ノードT702に付加するNRP{001}を生成し、生成したNRP{001}をヘッダ情報の一部として、鍵情報記録装置200を介して、記録媒体に書き込む。ここで、NRPの先頭のビット「0」は、ノードT702の直下に接続される2個の下位のノードのいずれか一方が無効化され、他方は無効化されていないことを示している。また、NRPの下位の2ビット「01」は、ノードT702の直下に接続される2個の下位のノードのうち、左側のノードT705は、無効化されておらず、右側のノードT703は、無効化されていることを示している。
【0238】
次に、鍵管理装置100は、ノードT703に付加するNRP{100}を生成し、生成したNRP{100}をヘッダ情報の一部として、鍵情報記録装置200を介して、記録媒体に書き込む。NRP{100}は、上記において説明したように、ノードT703の直下に接続される2個の下位のノードT706、T707の両方とも無効化されておらず、これら2個のノードT706、T707には、それぞれ暗号化メディア鍵が存在することを示している。
【0239】
このようにして、図50に示すヘッダ情報D1000が記録媒体に書き込まれる。ヘッダ情報D1000は、この図に示すように、NRP{010}、{001}、{100}をこの順序で含んで構成されている。
(c)鍵情報の生成
次に、鍵管理装置100は、以下に示すようにして、無効化されていないデバイス鍵のうちの一部のデバイス鍵を用いて、メディア鍵を暗号化して暗号化メディア鍵を生成し、生成した暗号化メディア鍵を含む鍵情報とNRPを含むヘッダ情報とを、鍵情報記録装置200を介して、記録媒体に書き込む。
【0240】
最初に、鍵管理装置100は、無効化されていないデバイス鍵のうち、最上位のレイヤに存在するノードに割り当てられているデバイス鍵を用いて、メディア鍵を暗号化して暗号化メディア鍵を生成する。ここで、図49に示すように、無効化されていないデバイス鍵のうち、最上位のレイヤに存在するノードに割り当てられているデバイス鍵は、ノードT704に割り当てられたデバイス鍵KeyCであるので、鍵管理装置100は、デバイス鍵KeyCを用いて、メディア鍵を暗号化して、暗号化メディア鍵E1(KeyC、メディア鍵)を生成し、生成した暗号化メディア鍵E1(KeyC、メディア鍵)を、鍵情報記録装置200を介して、記録媒体に書き込む。
【0241】
次に、鍵管理装置100は、上記のデバイス鍵KeyCが割り当てられたノードT704及びノードT704の下位側の全てのノードを除く他のノードについて、これらの他のノードに割り当てられた無効化されていないデバイス鍵のうち、最上位のレイヤに存在するノードに割り当てられているデバイス鍵を用いて、メディア鍵を暗号化して暗号化メディア鍵を生成する。ここで、該当するノードは、ノードT705であるので、鍵管理装置100は、ノードT705に割り当てられたデバイス鍵KeyDを用いて、メディア鍵を暗号化して、暗号化メディア鍵E1(KeyD、メディア鍵)を生成し、生成した暗号化メディア鍵E1(KeyD、メディア鍵)を、鍵情報記録装置200を介して、記録媒体に書き込む。
【0242】
次に、鍵管理装置100は、上記のデバイス鍵KeyCが割り当てられたノードT704及びノードT704の下位側の全てのノード、及び上記のデバイス鍵KeyDが割り当てられたノードT705及びノードT705の下位側の全てのノードを除く他のノードについて、これらの他のノードに割り当てられた無効化されていないデバイス鍵のうち、最上位のレイヤに存在するノードに割り当てられているデバイス鍵を用いて、メディア鍵を暗号化して暗号化メディア鍵を生成する。ここで、該当するノードは、ノードT706であるので、鍵管理装置100は、ノードT706に割り当てられたデバイス鍵KeyJを用いて、メディア鍵を暗号化して、暗号化メディア鍵E1(KeyJ、メディア鍵)を生成し、生成した暗号化メディア鍵E1(KeyJ、メディア鍵)を、鍵情報記録装置200を介して、記録媒体に書き込む。
【0243】
次に、鍵管理装置100は、上記と同様にして、ノードt707に割り当てられたデバイス鍵KeyKを用いて、メディア鍵を暗号化して、暗号化メディア鍵E1(KeyK、メディア鍵)を生成し、生成した暗号化メディア鍵E1(KeyK、メディア鍵)を、鍵情報記録装置200を介して、記録媒体に書き込む。このようにして、図50に示す鍵情報D1010が記録媒体に書き込まれる。鍵情報D1010は、この図に示すように、暗号化メディア鍵E1(KeyC、メディア鍵)、E1(KeyD、メディア鍵)、E1(KeyJ、メディア鍵)及びE1(KeyK、メディア鍵)を、この順序で含んで構成されている。
【0244】
(記録装置300a)
次に、記録装置300aが有する特定部303により、上記のようにして記録媒体に記憶されたヘッダ情報及び鍵情報から、1個の暗号化メディア鍵を特定する動作について、図51に示すフローチャートを用いて説明する。
特定部303は、暗号化メディア鍵の位置を示す変数X、ユーザ装置自身に関係するNRPの位置を示す変数A、あるレイヤにおけるNRPの数を示す変数W、及び処理対象となるレイヤ数を示す変数iを有している。
【0245】
特定部303は、初期値として、それぞれ変数A=0、変数W=1、変数i=0とする(ステップS301)。
次に、特定部303は、A番目のNRPの下位2ビットのうち、ID情報の上位iビット目の値に対応するビット位置にある値Bが「0」であるか、又は「1」であるかをチェックする(ステップS303)。ここで、対応するビット位置とは、上記の実施の形態においても説明したように、図4に示す木構造において左の経路に「0」、右の経路に「1」が割り当てられ、これらの規則に基づいてID情報が構成されているので、ID情報の上位iビット目の値「0」は、A番目のNRPの下位2ビットのうちの左ビットに対応し、iビット目の値「1」は、A番目のNRPの下位2ビットのうちの右ビットに対応する。
【0246】
次に、値B=0の場合(ステップS303)、特定部303は、先頭のNRPから、最後にチェックしたNRPまでの各NRPについて、以下の通りチェックする。ただしA番目のNRPは含まない。
(a)NPRの最上位ビットが「0」であり、かつ下位2ビットが「11」でないとき、変数Xに「1」を加算する。
【0247】
(b)NPRの最上位ビットが「1」であるとき、下位2ビットに含まれる「0」の数を、変数Xに加算する。
最後にチェックしたA番目のNRPについては、NRPの最上位ビットが「1」であるときのみ、対応するビット位置までの「0」の数を変数Xに加算する。ここで、対応するビット自身は含まないものとする。こうして得られた変数Xが、暗号化メディア鍵の位置を示している。また、この時点の変数iは、デバイス鍵を識別するためのデバイス鍵識別情報である(ステップS307c)。次に、特定部303は、処理を終了する。
【0248】
一方、値B=1の場合(ステップS303)、さらに、特定部303は、NRPの最上位ビットが「1」でないか否かを判断し、NRPの最上位ビットが「1」であると判断する場合には(ステップS308)、このユーザ装置は、無効化されているので、次に、特定部303は、処理を終了する。
NRPの最上位ビットが「1」でないと判断する場合に(ステップS308)、特定部303は、レイヤiに存在するW個の全NRPの下位2ビットに含まれる「1」の数をカウントし、カウントした値を変数Wに代入する。ただし、NRPの最上位ビットが「1」のNPRは、カウントの対象とはしない。こうして得られた変数Wが、次のレイヤi+1に存在するNRPの数を示す(ステップS304c)。
【0249】
次に、特定部303は、レイアiに存在するNRPのうちの最初のNRPから、対応するビット位置までの各NRPについて、NRPの下位2ビットに含まれる「1」の数をカウントし、カウントした値を変数Aに代入する。ここで、対応するビット位置の値はカウントしない。また、NRPの最上位ビットが「1」であるNRPは、カウントの対象とはしない。こうして得られた変数Aが、次のレイヤi+1のNRPのうち、ユーザ装置自身に関係するNRPの位置を示す(ステップS305c)。
【0250】
次に、特定部303は、変数i=i+1を演算し(ステップS306)、次にステップS303へ制御を移し、上述の処理を繰り返す。
以上に示すようにして、木構造のリーフからルートへの経路上に存在するデバイス鍵が無効化された場合に限らず、木構造の一部のノードに割り当てられたデバイス鍵が無効化された場合であっても、鍵管理装置によるヘッダ情報及び鍵情報の記録媒体への書込みと、再生装置による暗号化メディア鍵の特定とが行える。
【0251】
(9)一例として図4に示す木構造を想定し、デバイス鍵が全く漏洩していない初期状態であり、前記木構造には無効化されたノードがないものとする。
この場合に、鍵管理装置は、ルートに対応付けられているデバイス鍵KeyAを用いて、メディア鍵を暗号化して1個の暗号化メディア鍵を生成する。次に、鍵管理装置は、前記木構造には無効化されたノードがなく、全てのノードが有効であることを示す特別なNRP{00}を1個生成する。次に、鍵管理装置は、生成した前記暗号化メディア鍵と生成したNRP{00}を、鍵情報記録装置を介して、記録媒体に書き込む。
【0252】
また、この場合に、再生装置は、前記記録媒体からNRPを読み出し、読み出したNRPが{00}のみであり、この他にNRPが前記記録媒体に記録されていないと判断する場合に、再生装置は、木構造において無効化されているノードが全く存在しないものと判断し、次に、前記記録媒体に記録されている前記暗号化メディア鍵を読み出し、再生装置自身が記憶しているデバイス鍵のうち、ルートに対応付けられているデバイス鍵KeyAを用いて、読み出した前記暗号化メディア鍵を復号して、メディア鍵を生成する。
【0253】
また、この場合に、記録装置も、前記再生装置と同様に動作する。
7.第6の実施の形態
本発明に係るさらに別の実施の形態としての認証システム1000について説明する。
認証システム1000は、図52に示すように、認証局装置1100、製造装置1200、製造装置1300、著作物記録装置1400及びパーソナルコンピュータ1500から構成されている。パーソナルコンピュータ1500は、ドライブ部1600と本体部1900とから構成され、ドライブ部1600と本体部1900とは、汎用通信路1020を介して接続されている。
【0254】
ドライブ製造業者は、インターネット1010に接続されている製造装置1200を有しており、ドライブ部1600を製造する。ドライブ部1600の製造の工程において、製造装置1200は、ドライブ部1600に対応するドライブ秘密鍵とドライブ公開鍵とを生成し、生成したドライブ秘密鍵をドライブ部1600の外部からアクセスされない記憶領域に書き込み、生成したドライブ公開鍵をインターネット1010を介して公開する。また、製造装置1200は、インターネット1010を介して、公開鍵証明書認証局が有する認証局装置1100に対して、公開鍵証明書の生成を依頼し、認証局装置1100は、ドライブ公開鍵に対応する公開鍵証明書を生成し、生成した公開鍵証明書をインターネット1010を介して、製造装置1200へ送信する。製造装置1200は、認証局装置1100から前記ドライブ公開鍵に対応する公開鍵証明書を取得し、取得した公開鍵証明書をドライブ部1600に書き込む。次に、ドライブ製造業者は、ドライブ秘密鍵及び公開鍵証明書が書き込まれたドライブ部1600をパソコン製造業者に納入する。
【0255】
パソコン製造業者は、インターネット1010に接続されている製造装置1300を有しており、パーソナルコンピュータ1500の本体部1900を製造する。本体部1900の製造の工程において、製造装置1300は、インターネット1010を介して公開されたドライブ公開鍵を取得し、取得したドライブ公開鍵を本体部1900に書き込む。次に、パソコン製造業者は、納入されたドライブ部1600と、ドライブ公開鍵が書き込まれた本体部1900とを汎用通信路1020により接続して組み立て、パーソナルコンピュータ1500を生産する。
【0256】
生産されたパーソナルコンピュータ1500は、販売業者を介して販売され、利用者は、パーソナルコンピュータ1500を購入する。
ここで、前記ドライブ秘密鍵と前記ドライブ公開鍵のセットが不正な第三者により暴露されたとする。この場合、対応する公開鍵証明書は無効化されなければならない。
【0257】
認証局装置1100は、公開鍵証明書を無効化すべきことを知ると、無効化すべき公開鍵証明書を識別する証明書IDを含むCRLを生成し、生成したCRLをインターネット1010を介して、著作物販売業者が有する著作物記録装置1400へ送信する。著作物記録装置1400は、デジタル著作物を記憶しており、デジタル著作物と受信したCRLとをDVD1800に書き込み、デジタル著作物とCRLとが書き込まれたDVD1800が販売される。
【0258】
利用者は、DVD1800を購入し、パーソナルコンピュータ1500に装着する。
パーソナルコンピュータ1500の本体部1900は、ドライブ部1600を介して、DVD1800からCRLを読み出し、ドライブ部1600から公開鍵証明書を取得し、読み出したCRLを用いて、取得した公開鍵証明書が無効化されているか否かを判断する。無効化されていると判断する場合には、本体部1900は、ドライブ部1600の利用を中止する。無効化されていないと判断する場合には、本体部1900は、さらに、内部に記憶しているドライブ公開鍵を用いて、ドライブ部1600の正当性を認証し、ドライブ部1600が正当であると認証された場合には、ドライブ部1600を介してDVD1800からデジタル著作物を読み出す。ドライブ部1600が不正であると認証された場合には、本体部1900は、ドライブ部1600を介してDVD1800からデジタル著作物を読み出すことを中止する。
【0259】
7.1 製造装置1200の構成
製造装置1200は、図53に示すように、情報記憶部1201、入力部1202、表示部1203、制御部1204、書込部1205及び通信部1206から構成されている。
製造装置1200は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、通信ユニット、ディスプレィユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記ハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、製造装置1200は、その機能を達成する。
【0260】
製造装置1200は、上述したように、ドライブ製造業者が有するものである。ドライブ部1600の製造の工程において、ドライブ製造業者は、製造装置1200と製造途中のドライブ部1600とを接続する。
(1)情報記憶部1201
情報記憶部1201は、製造情報テーブル1211を有している。
【0261】
製造情報テーブル1211は、図53に一例として示すように、製造番号、ドライブ秘密鍵、ドライブ公開鍵、有効期限、公開鍵証明書及び証明書署名データから構成される製造情報を複数個記憶するための領域を備えている。
ここで、製造番号は、ドライブ製造業者により製造されるドライブ部を一意に識別するための識別番号である。
【0262】
ドライブ秘密鍵は、当該ドライブ部に対応して生成された秘密鍵である。
ドライブ公開鍵は、前記ドライブ秘密鍵に対応して生成された公開鍵である。
有効期限は、前記ドライブ秘密鍵及び前記ドライブ公開鍵の使用の開始日及び使用の終了日から構成される。
公開鍵証明書は、前記ドライブ公開鍵に対応して生成された証明書であり、証明書ID、有効期限及びドライブ公開鍵を含んでいる。証明書IDは、当該公開鍵証明書を識別するための識別情報である。有効期限は、前記の有効期限と同一の内容のものである。ドライブ公開鍵は、前記ドライブ公開鍵と同一の内容のものである。
【0263】
証明書署名データは、前記公開鍵証明書を基にして生成された署名データである。
(2)入力部1202
入力部1202は、製造装置1200の操作者からドライブ部1600の製造番号の入力を受け付け、さらに有効期限の入力を受け付け、受け付けた製造番号及び有効期限を制御部1204へ出力する。
【0264】
(3)制御部1204
制御部1204は、入力部1202から製造番号及び有効期限を受け取る。製造番号及び有効期限を受け取ると、制御部1204は、乱数を生成し、生成した乱数を基にしてドライブ秘密鍵を生成し、次に、RSA公開鍵暗号技術を用いて、生成したドライブ秘密鍵を基にしてドライブ公開鍵を生成する。
【0265】
ここで、RSA公開鍵暗号技術については、公知であるので、説明を省略する。
次に、制御部1204は、生成したドライブ公開鍵、受け取った有効期限及び公開鍵証明書の発行の依頼を示す公開鍵証明書発行依頼を、通信部1206及びインターネット1010を介して、認証局装置1100へ出力する。
【0266】
次に、制御部1204は、認証局装置1100から、インターネット1010及び通信部1206を介して、公開鍵証明書及び証明書署名データを受け取り、製造番号、ドライブ秘密鍵、ドライブ公開鍵、有効期限、公開鍵証明書及び証明書署名データからなる製造情報を生成し、生成した製造情報を情報記憶部1200が有する製造情報テーブル1211に書き込む。
【0267】
また、制御部1204は、製造番号、ドライブ秘密鍵、公開鍵証明書及び証明書署名データを書込部1205へ出力する。
さらに、制御部1204は、製造番号及びドライブ公開鍵を、通信部1206及びインターネット1010を介して、公開する。
(4)書込部1205
書込部1205は、ドライブ製造業者により、ドライブ部1600が有する情報記憶部1601(後述する)に接続される。
【0268】
書込部1205は、制御部1204から製造番号、ドライブ秘密鍵、公開鍵証明書及び証明書署名データを受け取り、受け取った製造番号、ドライブ秘密鍵、公開鍵証明書及び証明書署名データをドライブ部1600が有する情報記憶部1601に書き込む。
(5)通信部1206
通信部1206は、インターネット1010に接続されており、インターネット1010に接続されている外部の装置と、制御部1204との間で情報の送受信を行う。
【0269】
(6)表示部1203
表示部1203は、制御部1204の制御の元に、各種の情報を表示する。
7.2 製造装置1300の構成
製造装置1300は、製造装置1200と同様に、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、通信ユニット、ディスプレィユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記ハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、製造装置1300は、その機能を達成する。
【0270】
製造装置1300は、インターネット1010に接続されている。
製造装置1300は、上述したように、パソコン製造業者が有するものである。本体部1900の製造の工程において、パソコン製造業者は、製造装置1300と本体部1900とを接続する。
製造装置1300は、インターネット1010を介して、公開された製造番号及びドライブ公開鍵を取得し、取得した製造番号及びドライブ公開鍵を本体部1900が有する情報記憶部1901(後述する)へ書き込む。
【0271】
7.3 認証局装置1100
認証局装置1100は、図54に示すように、木構造構築部1101、木構造格納部1102、CRL生成部1103、無効通知部1104、木構造更新部1105、CRL記憶部1106、CRL送信部1107、証明書生成部1108、証明書記憶部1109、送受信部1110、入力部1111、表示部1112及び制御部1113から構成されている。
【0272】
この装置は、具体的には、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、認証局装置1100は、その機能を達成する。
認証局装置1100は、鍵管理装置100と同様の構成を有している。ここでは、鍵管理装置100との相違点を中心として説明する。
【0273】
(1)木構造格納部1102
木構造格納部1102は、木構造格納部102が有している木構造テーブルD100と同様の木構造テーブルD1100(図示していない)を有している。
木構造テーブルD1100は、木構造T1100(図示していない)に対応している。
【0274】
(木構造T1100)
木構造T1100は、レイヤ0からレイヤ4までの5階層からなる2分木であり、図4に示す木構造T100と同一の木構造である。木構造T1100は、公開鍵証明書IDを管理するために用いられる。
一方、上述したように、木構造T100は、デバイス鍵を管理するために用いられる。このように、木構造T1100と木構造T100は、その使用の目的において異なる。木構造T1100の構成そのものについては、木構造T100と同一であるので、詳細な説明は、省略する。
【0275】
(木構造テーブルD1100)
木構造テーブルD1100は、木構造T1100に含まれるノードと同じ数のノード情報を記憶するための領域を備えており、各ノード情報は、木構造T1100を構成する各ノードにそれぞれ対応している。
木構造テーブルD1100に含まれるリーフ以外のノードに対応する各ノード情報は、ノード名及び無効化フラグを含む。リーフに対応する各ノード情報は、ノード名、ドライブ公開鍵及び無効化フラグを含む。ここで、ドライブ公開鍵は、後述するように、製造装置1200から受信したものである。
【0276】
なお、木構造テーブルD100に含まれる各ノード情報は、上述したように、ノード名、デバイス鍵及び無効化フラグを含んでおり、一方、木構造テーブルD1100に含まれる各ノード情報は、ノード名及び無効化フラグを含み、又はノード名、ドライブ公開鍵及び無効化フラグを含む。
この点において、木構造テーブルD1100と木構造テーブルD100とは、相違しており、その他の点について、同一である。従って、木構造テーブルD1100についての詳細な説明は、省略する。
【0277】
(2)木構造構築部1101
木構造構築部1101は、木構造構築部101と同様の構成を有している。
木構造構築部1101は、木構造構築部101と同様に、公開鍵証明書IDを管理するn分木のデータ構造を構築し、構築した木構造を木構造格納部1102に格納する。具体的には、木構造構築部101と同様に、木構造テーブルD1100に含まれる各ノード情報のうち、各ノードのノード名を生成し、生成したノード名を各ノード情報内に書き込む。
【0278】
こうして、木構造構築部1101による木構造の構築が完了した時点において、木構造テーブルD1100に含まれる各ノード情報は、ノード名のみを含んでいる。
なお、木構造構築部101は、木構造のノード毎にデバイス鍵を生成し、生成したデバイス鍵を各ノードに対応付けて木構造テーブル内に書き込むが、木構造構築部1101は、デバイス鍵の生成とデバイス鍵の木構造テーブル内への書込みは行わない。この点において、相違している。
【0279】
(3)証明書記憶部1109
証明書記憶部1109は、後述する公開鍵証明書を1個以上記憶するための領域を備えている。
(4)証明書生成部1108
証明書生成部1108は、製造装置1200から、インターネット1010及び送受信部1110を介して、公開鍵証明書の発行の依頼を示す公開鍵証明書発行依頼、ドライブ公開鍵及び有効期限を受け取る。
【0280】
公開鍵証明書発行依頼、ドライブ公開鍵及び有効期限を受け取ると、証明書生成部1108は、木構造格納部1102に格納されている木構造テーブルD1100内のリーフに対応するノード情報のうち、ドライブ公開鍵を含まないものを1個選択し、選択したノード情報内に、受け取った前記ドライブ公開鍵を書き込む。
【0281】
また、証明書生成部1108は、選択したノード情報からノード名を抽出する。ここで、抽出したノード名を受け取ったドライブ公開鍵に対応する公開鍵証明書を識別する証明書IDとする。
こうして、証明書生成部1108は、受け取ったドライブ公開鍵に対応する公開鍵証明書の証明書IDを生成する。次に、証明書生成部1108は、生成した証明書ID、受け取った有効期限及び受け取ったドライブ公開鍵から構成される公開鍵証明書を生成する。
【0282】
次に、証明書生成部1108は、認証局装置1100のみが秘密に保持している認証局秘密鍵を用いて、生成した前記公開鍵証明書にデジタル署名SIGを施して、証明書署名データを生成する。
ここで、デジタル署名SIGは、楕円曲線上の離散対数問題を安全性の根拠とするElGamal暗号を用いるデジタル署名である。
【0283】
次に、証明書生成部1108は、生成した公開鍵証明書及び証明書署名データを、送受信部1110及びインターネット1010を介して、製造装置1200へ送信する。また、証明書生成部1108は、生成した公開鍵証明書を証明書記憶部1109へ書き込む。
(5)無効通知部1104
ドライブ秘密鍵とドライブ公開鍵のセットが不正な第三者により暴露されたとする。この場合、対応する公開鍵証明書は無効化されなければならない。
【0284】
認証局装置1100の管理者が無効化されるべき公開鍵証明書の証明書IDを知ると、無効通知部1104は、管理者の操作により入力部1111を介して、無効化されるべき公開鍵証明書の証明書IDを取得し、取得した証明書IDを木構造更新部1105へ出力する。
(6)木構造更新部1105
木構造更新部1105は、無効通知部1104から証明書IDを受け取る。
【0285】
証明書IDを受け取ると、木構造更新部105と同様にして、木構造テーブルD1100の更新を行う。
なお、上述の木構造更新部105の説明部分において、「ID情報」とあるのを「証明書ID」と読み替える。
こうして、木構造更新部1105は、木構造更新部105と同様に、無効通知部1104から受け取った証明書IDに基づいて、木構造D1100において、受け取った証明書IDが示すリーフから、ルートまでの経路上に存在する全てのノードを無効化する。
【0286】
木構造D1100において、「0000」、「1010」及び「1011」により示される証明書IDが無効化されると想定する場合、上記のようにして木構造更新部1105によりノードが無効化された木構造は、図5に示すようになる。この図において、×印が付されたノードが無効化されたノードを示している。
(7)CRL記憶部1106
CRL記憶部1106は、1個以上のCRLを記憶するための領域を備えている。
【0287】
(8)CRL生成部1103
CRL生成部1103は、鍵情報ヘッダ生成部106と同様に動作する。この結果、CRL生成部1103は、複数個のNRPを生成する。
CRL生成部1103が生成する複数個のNRP(NRP群と呼ぶ)の一例を図55に示す。この図に示すように、NRP群は、NRP{11}、{10}、{10}、{10}、{01}、{10}、{11}から構成され、各NRPをこの順序で含んでいる。
【0288】
ここで、生成されたNRP群は、鍵情報ヘッダ生成部106により生成されたヘッダ情報D200(図6に示す)と同一の内容を有している。
ここまでに説明したCRL生成部1103の動作は、鍵情報ヘッダ生成部106と同様のものである。
次に、CRL生成部1103は、鍵情報ヘッダ生成部106と異なる動作として、認証局装置1100のみが秘密に保持している認証局秘密鍵を用いて、生成したNRP群に、デジタル署名SIGを施して、NRP署名データを生成し、前記NRP群と生成したNRP署名データとからなるCRLを生成する。
【0289】
CRLの一例を図55に示す。この図に示すCRL1131は、NRP群1132及びNRP署名データ1133から構成されている。
次に、CRL生成部1103は、生成したCRLをCRL記憶部1106に書き込む。また、生成したCRLを、CRL送信部1107及びインターネット1010を介して、著作物記録装置1400へ送信する。
【0290】
(9)CRL送信部1107
CRL送信部1107は、インターネット1010に接続されており、CRL生成部1103から情報を受け取り、受け取った情報を、インターネット1010を介して、外部の装置へ送信する。
(10)送受信部1110
送受信部1110は、インターネット1010に接続されており、証明書生成部1108とインターネット1010に接続されている外部の装置との間で、情報の送受信を行う。
【0291】
(11)制御部1113、表示部1112及び入力部1111
制御部1113は、認証局装置1100を構成する各構成要素を制御する。
表示部1112は、制御部1113の制御の元に、各種情報を表示する。
入力部1111は、認証局装置1100の操作者からの入力を受け付ける。
7.4 著作物記録装置1400
著作物記録装置1400は、図56に示すように、著作物記憶部1401、暗号化部1402、書込部1403及び送受信部1404から構成されている。
【0292】
著作物記録装置1400は、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、著作物記録装置1400は、その機能を達成する。
(1)著作物記憶部1401
著作物記憶部1401は、予めデジタル著作物を記憶している。
【0293】
(2)送受信部1404
送受信部1404は、インターネット1010に接続されている。
送受信部1404は、認証局装置1100からインターネット1010を介して、CRLを受信し、受信したCRLを暗号化部1402へ出力する。
(3)暗号化部1402
暗号化部1402は、送受信部1404からCRLを受け取る。
【0294】
また、暗号化部1402は、操作者の指示により、著作物記憶部1401からデジタル著作物を読み出し、読み出したデジタル著作物及び受け取ったCRLに暗号化アルゴリズムE3を施して、それぞれ、暗号化著作物及び暗号化CRLを生成する。
ここで、暗号化アルゴリズムE3は、DESによるものである。
【0295】
次に、暗号化部1402は、生成した暗号化著作物及び暗号化CRLを書込部1403へ出力する。
(4)書込部1403
書込部1403は、暗号化部1402から暗号化著作物及び暗号化CRLを受け取り、受け取った暗号化著作物及び暗号化CRLをDVD1800に書き込む。
【0296】
(5)送受信部1404
送受信部1404は、インターネット1010に接続されている。
送受信部1404は、外部の装置からインターネット1010を介して、情報を受信し、受信した情報を暗号化部1402へ出力する。
7.5 本体部1900
本体部1900は、図57に示すように、情報記憶部1901、復号部1902、認証部1903、表示部1904、入出力部1905、制御部1906、再生部1907、復号部1908及び入力部1909から構成されている。
【0297】
本体部1900は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレィユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記RAM又は前記ハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、本体部1900は、その機能を達成する。
【0298】
(1)情報記憶部1901
情報記憶部1901は、図57に一例として示すように、製造番号及びドライブ公開鍵を記憶するための領域を備えている。
上述したように、パソコン製造業者による本体部1900の製造の工程において、製造装置1300と本体部1900とが接続され、製造番号及びドライブ公開鍵は、製造装置1300により情報記憶部1901に書き込まれる。
【0299】
製造番号は、ドライブ部1600を識別するための識別情報であり、また、ドライブ公開鍵は、ドライブ部1600に対応して生成された公開鍵である。
(2)制御部1906
制御部1906は、入出力部1905を介して、ドライブ部1600にCRLの読出しを示すCRL読出指示を出力する。
【0300】
制御部1906は、認証部1903から、NRP群の正当性の検証成功を示す成功情報、又は検証失敗を示す失敗情報を受け取る。成功情報を受け取る場合には、さらに、認証部1903からNRP群を受け取る。
失敗情報を受け取った場合に、制御部1906は、表示部1904に対して、検証の失敗を示す旨のメッセージを出力し、当該メッセージを表示するように制御する。その後、制御部1906は、ドライブ部1600によるDVDへのアクセスを中止する。
【0301】
成功情報を受け取った場合に、制御部1906は、さらに、入出力部1905を介して、ドライブ部1600へ公開鍵証明書を要求する。
(無効化判定)
次に、制御部1906は、ドライブ部1600から公開鍵証明書を受け取り、受け取った公開鍵情報から証明書IDを抽出し、抽出した証明書IDと、認証部1903から受け取ったNRP群を用いて、以下に示すようにして、公開鍵証明書の無効化判定を行う。
【0302】
制御部1906は、第1の実施の形態に示す特定部303と同様にして、公開鍵証明書の無効化判定を行う。なお、特定部303は、暗号化メディア鍵を特定するために動作する。これに対して、制御部1906は、公開鍵証明書の無効化判定を行うために動作する。この点において、特定部303と制御部1906とは相違している。
【0303】
ここでは、特定部303による動作との相違点を中心として、制御部1906による公開鍵証明書の無効化判定の動作について説明する。
制御部1906は、図17のフローチャートに示すように動作することにより、公開鍵証明書の無効化判定を行う。
制御部1906は、証明書IDに関係するNRPの位置を示す変数A、あるレイヤにおけるNRPの数を示す変数W、及び木構造のレイヤ数を示す値Dを有している。ここで、証明書IDに関係するに関係するNRPとは、木構造において、証明書IDに割り当てられているリーフから、ルートに至るまでの経路上に存在するノードのNRPを示す。なお、制御部1906は、特定部303が有する暗号化メディア鍵の位置を示す変数Xを有していない。
【0304】
制御部1906は、図17のフローチャートのステップS302において、「No」と判断された場合に、当該公開鍵証明書は、無効化されているものとみなす。
また、制御部1906は、図17のフローチャートのステップS303において、「B=0」と判断された場合に、当該公開鍵証明書は、有効であるとみなす。なお、制御部1906は、ステップS307においては、何もしない。
【0305】
こうして、制御部1906は、公開鍵証明書の無効化判定を行い、公開鍵証明書が無効であると判定する場合には、制御部1906は、表示部1904に対して、公開鍵証明書が無効であることを示すメッセージを出力し、当該メッセージを表示するように制御する。その後、制御部1906は、ドライブ部1600によるDVDへのアクセスを中止する。
【0306】
一方、公開鍵証明書が有効であると判定する場合には、制御部1906は、乱数Rを生成し、生成した乱数Rを入出力部1905を介して、ドライブ部1600へ出力し、ドライブ部1600から認証署名データを受け取る。
制御部1906は、情報記憶部1901からドライブ公開鍵を読み出し、読み出したドライブ公開鍵を用いて、生成した乱数Rと受け取った認証署名データとに検証アルゴリズムVERを施して、ドライブ部1600の正当性を検証する。
【0307】
ここで、検証アルゴリズムVERは、上述したデジタル署名SIGに対応するものであり、デジタル署名SIGにより生成された署名データによる検証を行う。
検証に失敗すると、制御部1906は、表示部1904に対して、ドライブ部1600が不正であることを示すメッセージを出力し、当該メッセージを表示するように制御する。その後、制御部1906は、ドライブ部1600によるDVDへのアクセスを中止する。
【0308】
検証に成功すると、制御部1906は、入出力部1905を介して、ドライブ部1600へ著作物の読み出し指示を出力する。
次に、制御部1906は、入出力部1905を介して、ドライブ部1600から暗号化著作物を受け取り、受け取った暗号化著作物を復号部1908へ出力する。
【0309】
(3)復号部1902
復号部1902は、ドライブ部1600から入出力部1905を介して、暗号化CRLを受け取り、受け取った暗号化CRLに復号アルゴリズムD3を施して、NRP群及びNRP署名データを生成し、生成したNRP群及びNRP署名データを認証部1903へ出力する。
【0310】
(4)認証部1903
認証部1903は、予め、認証局装置1100から配布された認証局公開鍵を記憶している。認証局公開鍵は、前述した認証局秘密鍵に対応するものであり、認証局秘密鍵を基にして公開鍵暗号方式の公開鍵生成アルゴリズムを用いて生成されたものである。
【0311】
認証部1903は、復号部1902からNRP群及びNRP署名データを受け取り、認証局公開鍵を用いて、NPR群及びNRP署名データにデジタル署名の検証アルゴリズムVERを施して、NRP群の正当性を検証する。
ここで、検証アルゴリズムVERは、上述したデジタル署名SIGに対応するものであり、デジタル署名SIGにより生成された署名データによる検証を行う。
【0312】
検証結果がNRP群の正当性を示す場合、つまり検証に成功した場合には、認証部1903は、検証成功を示す成功情報を制御部1906へ出力する。この場合、認証部1903は、さらに、NRP群を制御部1906へ出力する。一方、検証結果がNRP群の不正を示す場合、つまり検証に失敗した場合には、認証部1903は、検証失敗を示す失敗情報を制御部1906へ出力する。
【0313】
(5)復号部1908
復号部1902は、制御部1906から暗号化著作物を受け取り、受け取った暗号化著作物に復号アルゴリズムD3を施して、デジタル著作物を生成し、生成したデジタル著作物を再生部1907へ出力する。
(6)再生部1907
再生部1907は、復号部1902からデジタル著作物を受け取り、受け取ったデジタル著作物を再生して出力する。
【0314】
(7)表示部1904
表示部1904は、制御部1906の制御の元に、制御部1906からメッセージを受け取り、受け取ったメッセージを表示する。
(8)入力部1909
入力部1909は、操作者からの入力を受け付ける。
【0315】
7.6 ドライブ部1600
ドライブ部1600は、図58に示すように、情報記憶部1601、読出部1602、制御部1603、認証部1604及び入出力部1605から構成されている。
(1)情報記憶部1601
情報記憶部1601は、図58に示すように、製造番号、ドライブ秘密鍵、公開鍵証明書及び証明書署名データを記憶するための領域を備えている。
【0316】
上述したように、ドライブ製造業者によるドライブ部1600の製造の工程において、製造装置1200とドライブ部1600とが接続され、製造番号、ドライブ秘密鍵、公開鍵証明書及び証明書署名データは、製造装置1200により情報記憶部1601に書き込まれる。
製造番号、ドライブ秘密鍵、公開鍵証明書及び証明書署名データについては、上述した通りであるので、ここでは、説明を省略する。
【0317】
(2)制御部1603
制御部1603は、本体部1900から、入出力部1605を介して、CRL読出指示、公開鍵証明書の要求、乱数R及び著作物の読出要求を受け取る。
CRL読出指示を受け取ると、制御部1603は、読出部1602を介して、DVD1800から暗号化CRLを読み出し、読み出した暗号化CRLを、入出力部1605を介して、本体部1900へ出力する。
【0318】
公開鍵証明書の要求を受け取ると、制御部1603は、情報記憶部1601から公開鍵証明書を読み出し、読み出した公開鍵証明書を、入出力部1605を介して、本体部1900へ出力する。
乱数Rを受け取ると、制御部1603は、受け取った乱数Rを認証部1604へ出力し、また認証部1604に対して、認証署名データの生成を行うように制御する。
【0319】
著作物の読出要求を受け取ると、制御部1603は、読出部1602を介して、DVD1800から暗号化著作物を読み出し、読み出した暗号化著作物を入出力部1605を介して、本体部1900へ出力する。
次に、制御部1603は、認証部1604から認証署名データを受け取り、受け取った認証署名データを入出力部1605を介して、本体部1900へ出力する。
【0320】
(3)認証部1604
認証部1604は、制御部1603から乱数Rを受け取り、また、制御部1603の制御の基に、情報記憶部1601からドライブ秘密鍵を読み出し、読み出したドライブ秘密鍵を用いて、受け取った乱数Rに対して、デシダル署名SIGを施して、認証署名データを生成し、生成した認証署名データを制御部1603へ出力する。
【0321】
(4)読出部1602
読出部1602は、制御部1603の制御の基に、DVD1800から情報を読み出し、読み出した情報を制御部1603へ出力する。
(5)入出力部1605
入出力部1605は、制御部1603の制御の基に、制御部1603と本体部1900との間で情報の送受信をする。
【0322】
7.7 認証システム1000の動作
(1)製造装置1200及び製造装置1300の動作
製造装置1200及び製造装置1300の動作について、図59に示すフローチャートを用いて説明する。
入力部1202は、製造装置1200の操作者からドライブ部1600の製造番号の入力を受け付け、受け付けた製造番号を制御部1204へ出力し、制御部1204は、入力部1202から製造番号を受け取る。(ステップS501)。次に、入力部1202は、製造装置1200の操作者から有効期限の入力を受け付け、受け付けた有効期限を制御部1204へ出力し、制御部1204は、入力部1202から有効期限を受け取る。(ステップS502)。
【0323】
次に、制御部1204は、乱数を生成し、生成した乱数を基にしてドライブ秘密鍵を生成し(ステップS503)、次に、RSA公開鍵暗号技術を用いて、生成したドライブ秘密鍵を基にしてドライブ公開鍵を生成する(ステップS504)。
次に、制御部1204は、生成したドライブ公開鍵、受け取った有効期限及び公開鍵証明書の発行の依頼を示す公開鍵証明書発行依頼を、通信部1206及びインターネット1010を介して、認証局装置1100へ出力する(ステップS505)。
【0324】
次に、制御部1204は、認証局装置1100から、インターネット1010及び通信部1206を介して、公開鍵証明書及び証明書署名データを受け取り(ステップS506)、製造番号、ドライブ秘密鍵、ドライブ公開鍵、有効期限、公開鍵証明書及び証明書署名データからなる製造情報を生成し、生成した製造情報を情報記憶部1200が有する製造情報テーブル1211に書き込む(ステップS507)。
【0325】
また、制御部1204は、製造番号、ドライブ秘密鍵、公開鍵証明書及び証明書署名データを書込部1205へ出力し、書込部1205は、制御部1204から製造番号、ドライブ秘密鍵、公開鍵証明書及び証明書署名データを受け取り、受け取った製造番号、ドライブ秘密鍵、公開鍵証明書及び証明書署名データをドライブ部1600が有する情報記憶部1601に書き込む(ステップS508)。
【0326】
さらに、制御部1204は、製造番号及びドライブ公開鍵を、通信部1206及びインターネット1010を介して、公開する(ステップS509)。
製造装置1300は、インターネット1010を介して、公開された製造番号及びドライブ公開鍵を取得し(ステップS509)、取得した製造番号及びドライブ公開鍵を本体部1900が有する情報記憶部1901へ書き込む(ステップS510)。
【0327】
(2)認証局装置1100による公開鍵証明書の発行の動作
認証局装置1100による公開鍵証明書の発行の動作について、図60に示すフローチャートを用いて説明する。
木構造構築部1101は、木構造構築部101と同様に、公開鍵証明書IDを管理するn分木のデータ構造を構築し、構築した木構造を木構造格納部1102に格納する(ステップS521)。
【0328】
証明書生成部1108は、製造装置1200から、インターネット1010及び送受信部1110を介して、公開鍵証明書の発行の依頼を示す公開鍵証明書発行依頼、ドライブ公開鍵及び有効期限を受け取る(ステップS505)。
次に、証明書生成部1108は、木構造格納部1102に格納されている木構造テーブルD1100内のリーフに対応するノード情報のうち、ドライブ公開鍵を含まないものを1個選択し、選択したノード情報内に、受け取った前記ドライブ公開鍵を書き込み、選択したノード情報からノード名を抽出する。ここで、抽出したノード名が公開鍵証明書を識別する証明書IDである(ステップS522)。次に、証明書生成部1108は、生成した証明書ID、受け取った有効期限及び受け取ったドライブ公開鍵から構成される公開鍵証明書を生成し(ステップS523)、さらに、認証局装置1100のみが秘密に保持している認証局秘密鍵を用いて、生成した前記公開鍵証明書にデジタル署名SIGを施して、証明書署名データを生成する(ステップS524)。
【0329】
次に、証明書生成部1108は、生成した公開鍵証明書及び証明書署名データを、送受信部1110及びインターネット1010を介して、製造装置1200へ送信する(ステップS506)。また、証明書生成部1108は、生成した公開鍵証明書を証明書記憶部1109へ書き込む(ステップS525)。次に、ステップS505へ戻って処理を繰り返す。
【0330】
(3)認証局装置1100によるCRLの発行の動作
認証局装置1100によるCRLの発行の動作について、図61に示すフローチャートを用いて説明する。
認証局装置1100の管理者が無効化されるべき公開鍵証明書の証明書IDを知ると、無効通知部1104は、管理者の操作により入力部1111を介して、無効化されるべき公開鍵証明書の証明書IDを取得し、取得した証明書IDを木構造更新部1105へ出力する(ステップS541)。
【0331】
次に、木構造更新部1105は、無効通知部1104から証明書IDを受け取り、木構造更新部105と同様にして、木構造テーブルD1100の更新を行う(ステップS542)。次に、CRL生成部1103は、鍵情報ヘッダ生成部106と同様に、NRP群を生成する(ステップS543)。
次に、CRL生成部1103は、認証局装置1100のみが秘密に保持している認証局秘密鍵を用いて、生成したNRP群に、デジタル署名SIGを施して、NRP署名データを生成し(ステップS544)、前記NRP群と生成したNRP署名データとからなるCRLを生成し(ステップS545)、生成したCRLをCRL記憶部1106に書き込む(ステップS546)。次に、CRL生成部1103は、生成したCRLを、CRL送信部1107及びインターネット1010を介して、著作物記録装置1400へ送信する(ステップS547)。
【0332】
著作物記録装置1400が有する送受信部1404は、認証局装置1100からインターネット1010を介して、CRLを受信し、受信したCRLを暗号化部1402へ出力し、暗号化部1402は、送受信部1404からCRLを受け取る(ステップS547)。
次に、暗号化部1402は、操作者の指示により、著作物記憶部1401からデジタル著作物を読み出し、読み出したデジタル著作物に暗号化アルゴリズムE3を施して、暗号化著作物を生成し(ステップS548)、次に、受け取ったCRLに暗号化アルゴリズムE3を施して、暗号化CRLを生成する(ステップS549)。
【0333】
次に、暗号化部1402は、生成した暗号化著作物及び暗号化CRLを書込部1403へ出力する(ステップS550)。
(4)本体部1900及びドライブ部1600の動作
本体部1900及びドライブ部1600の動作について、図62〜図63に示すフローチャートを用いて説明する。
【0334】
本体部1900の制御部1906は、入出力部1905を介して、ドライブ部1600にCRLの読出しを示すCRL読出指示を出力し、ドライブ部1600の制御部1603は、本体部1900から、入出力部1605を介して、CRL読出指示を受け取る(ステップS561)。
次に、制御部1603は、読出部1602を介して、DVD1800から暗号化CRLを読み出し(ステップS562)、読み出した暗号化CRLを、入出力部1605を介して、本体部1900へ出力する(ステップS563)。
【0335】
次に、復号部1902は、ドライブ部1600から入出力部1905を介して、暗号化CRLを受け取り(ステップS563)、受け取った暗号化CRLに復号アルゴリズムD3を施して、NRP群及びNRP署名データを生成し、生成したNRP群及びNRP署名データを認証部1903へ出力する(ステップS564)。
【0336】
認証部1903は、復号部1902からNRP群及びNRP署名データを受け取り、認証局公開鍵を用いて、NPR群及びNRP署名データにデジタル署名の検証アルゴリズムVERを施して、NRP群の正当性を検証し、成功情報又は失敗情報を制御部1906へ出力し、成功情報を出力する場合にさらに、NRP群を制御部1906へ出力する(ステップS565)。
【0337】
次に、失敗情報を受け取った場合に(ステップS566)、制御部1906は、表示部1904に対して、検証の失敗を示す旨のメッセージを出力し、当該メッセージを表示するように制御する(ステップS567)。その後、制御部1906は、ドライブ部1600によるDVDへのアクセスを中止する。
成功情報を受け取った場合に(ステップS566)、制御部1906は、さらに、入出力部1905を介して、ドライブ部1600へ公開鍵証明書を要求する(ステップS568)。
【0338】
制御部1603は、本体部1900から、入出力部1605を介して、公開鍵証明書の要求を受け取り(ステップS568)、情報記憶部1601から公開鍵証明書を読み出し(ステップS569)、読み出した公開鍵証明書を、入出力部1605を介して、本体部1900へ出力する(ステップS570)。
次に、制御部1906は、ドライブ部1600から公開鍵証明書を受け取り(ステップS570)、受け取った公開鍵情報から証明書IDを抽出し(ステップS571)、抽出した証明書IDと、認証部1903から受け取ったNRP群を用いて、公開鍵証明書の無効化判定を行う(ステップS572)。
【0339】
公開鍵証明書が無効であると判定する場合には(ステップS573)、制御部1906は、表示部1904に対して、公開鍵証明書が無効であることを示すメッセージを出力し、当該メッセージを表示するように制御する(ステップS574)。その後、制御部1906は、ドライブ部1600によるDVDへのアクセスを中止する。
【0340】
一方、公開鍵証明書が有効であると判定する場合には(ステップS573)、制御部1906は、乱数Rを生成し(ステップS575)、生成した乱数Rを入出力部1905を介して、ドライブ部1600へ出力する(ステップS576)。
制御部1603は、本体部1900から、入出力部1605を介して、乱数Rを受け取り(ステップS576)、受け取った乱数Rを認証部1604へ出力し、また認証部1604に対して、認証署名データの生成を行うように制御し、認証部1604は、受け取った乱数Rに対して、デシダル署名SIGを施して、認証署名データを生成し(ステップS577)、生成した認証署名データを制御部1603へ出力する(ステップS578)。
【0341】
制御部1906は、ドライブ部1600から認証署名データを受け取る(ステップS578)。次に、制御部1906は、情報記憶部1901からドライブ公開鍵を読み出し、読み出したドライブ公開鍵を用いて、生成した乱数Rと受け取った認証署名データとに検証アルゴリズムVERを施して、ドライブ部1600の正当性を検証する(ステップS579)。
【0342】
検証に失敗すると(ステップS580)、制御部1906は、表示部1904に対して、ドライブ部1600が不正であることを示すメッセージを出力し、当該メッセージを表示するように制御する(ステップS586)。その後、制御部1906は、ドライブ部1600によるDVDへのアクセスを中止する。
検証に成功すると(ステップS580)、制御部1906は、入出力部1905を介して、ドライブ部1600へ著作物の読出し指示を出力する(ステップS581)。
【0343】
制御部1603は、本体部1900から、入出力部1605を介して、著作物の読出要求を受け取り(ステップS581)、読出部1602を介して、DVD1800から暗号化著作物を読み出し(ステップS582)、読み出した暗号化著作物を入出力部1605を介して、本体部1900へ出力する(ステップS583)。
【0344】
次に、制御部1906は、入出力部1905を介して、ドライブ部1600から暗号化著作物を受け取り(ステップS583)、受け取った暗号化著作物を復号部1908へ出力し、復号部1902は、制御部1906から暗号化著作物を受け取り、受け取った暗号化著作物に復号アルゴリズムD3を施して、デジタル著作物を生成し、生成したデジタル著作物を再生部1907へ出力する(ステップS584)。
【0345】
再生部1907は、復号部1902からデジタル著作物を受け取り、受け取ったデジタル著作物を再生して出力する(ステップS585)。
7.8 その他の変形例
以上説明したように、第6の実施の形態において、第1の実施の形態に示す技術を適用している。すなわち、第6の実施の形態に示す認証システム1000におけるCRLの生成及び公開鍵証明書の無効化判定において、第1の実施の形態に示すヘッダ情報の生成の方法及び暗号化メディア鍵の特定の方法を適用している。
【0346】
なお、第6の実施の形態において、第2〜第5の実施の形態及びこれらの変形例を適用してもよい。すなわち、上記の第2〜第5の実施の形態及びこれらの変形例に示すヘッダ情報の生成の方法及び暗号化メディア鍵の特定の方法を、第6の実施の形態に示す認証システム1000におけるCRLの生成及び公開鍵証明書の無効化判定に適用するとしてもよい。
【0347】
また、第2の実施の形態を適用する第6の実施の形態において、あるノードの子孫が全て無効化ノードである場合に、NRPを「00」と表現したが、本発明はこれに限定されるのではない。例えば、「0」と「1」を入れ換えて「11」を上記を意味するNRPとして利用してもよい。また、さらに1ビットを追加して、そのビットを上記を意味するビットとして利用するものであってもよい。
【0348】
また、第3の実施の形態を適用する第6の実施の形態において、第2の実施の形態同様、あるノードの子孫が全て無効化ノードである場合に、NRPを「00」と表現したり、さらに1ビットを追加して、そのビットを上記を意味するビットとして利用したりしてもよい。
また、無効化された公開鍵証明書が存在しない場合には、その旨を示す情報を含むCRLを生成するしてもよい。
【0349】
7.9 まとめ
以上説明したように、本発明は、公開鍵暗号を利用する認証システムであって、公開鍵暗号アルゴリズムにおける秘密鍵と公開鍵を有し、この秘密鍵を用いて通信相手に対して自己の正当性を証明する端末装置と、少なくとも前記端末装置の公開鍵からなるデータに対して公開鍵証明書を発行し配布する公開鍵証明書発行装置と、無効化される前記端末装置に対して前記公開鍵証明書発行装置が発行した前記公開鍵証明書を特定する公開鍵証明書無効化リストを発行し配布する無効化リスト生成装置と、検証する相手端末装置の公開鍵証明書と前記公開鍵証明書無効化リストを受け取り、前記公開鍵証明書が前記公開鍵証明書無効化リストに登録されているか否かを判定する無効化リスト利用装置と、前記無効化リスト利用装置により有効と判断された公開鍵を用いて通信相手の行う自己正当性証明を検証する検証装置とから構成される。
【0350】
前記無効化リスト生成装置は、複数の階層からなる木構造を構築して保管し、前記各端末装置の公開鍵証明書を識別する固有値を前記木構造のリーフに割り当て、さらに、前記保管している木構造に対して、あるノードの子孫であるリーフの少なくとも一つに無効化すべき公開鍵証明書の固有値が対応付けられている場合、そのノードを無効化ノードとし、さらに、子ノードの少なくとも1つが無効化ノードであるノードに対して、各子ノードが無効化ノードであるか否かを識別する識別子で示し、それら識別子を全子ノード分を連結したものをそのノードのノード無効化パターンとして割り当て、さらに、全木構造のノード無効化パターンを木構造のすべてのノードをたどるある所定の規則に基づいて並べて前記公開鍵証明書無効化リストを生成する。
【0351】
前記無効化リスト利用装置は、前記ノード無効化パターンを並べた公開鍵証明書無効化リストを前記所定の規則に基づいて解析して、前記検証すべき相手端末の公開鍵証明書が前記無効化リストに登録されているか否かを判定する。
また、本発明は、端末装置の公開鍵からなるデータに対して公開鍵証明書を発行し配布する公開鍵証明書発行装置と、無効化される前記端末装置に対して前記公開鍵証明書発行装置が発行した前記公開鍵証明書を特定する公開鍵証明書無効化リストを発行し配布する無効化リスト生成装置である。
【0352】
前記無効化リスト生成装置は、複数の階層からなる木構造を構築して保管し、前記各端末装置の公開鍵証明書を識別する固有値を前記木構造のリーフに割り当て、さらに、前記保管している木構造に対して、あるノードの子孫であるリーフの少なくとも一つに無効化すべき公開鍵証明書の固有値が対応付けられている場合、そのノードを無効化ノードとし、さらに、子ノードの少なくとも1つが無効化ノードであるノードに対して、各子ノードが無効化ノードであるか否かを識別する識別子で示し、それら識別子を全子ノード分を連結したものをそのノードのノード無効化パターンとして割り当て、さらに、全木構造のノード無効化パターンを木構造のすべてのノードをたどるある所定の規則に基づいて並べて前記公開鍵証明書無効化リストを生成する。
【0353】
また、本発明は、検証する相手端末装置の公開鍵証明書と前記公開鍵証明書無効化リストを受け取り、前記公開鍵証明書が前記公開鍵証明書無効化リストに登録されているか否かを判定する無効化リスト利用装置である。
前記無効化リスト利用装置は、前記ノード無効化パターンを並べた公開鍵証明書無効化リストを前記所定の規則に基づいて解析して、前記検証すべき相手端末の公開鍵証明書が前記無効化リストに登録されているか否かを判定する。
【0354】
ここで、前記認証システムは、無効化リストの配布手段として、通信媒体を用いて前記無効化リストの配布を行うように構成してもよい。
ここで、前記無効化リスト利用装置は、無効化リストの配布手段として、通信媒体を用いて前記無効化リストの配布を行うように構成してもよい。
ここで、前記認証システムは、無効化リストの配布手段として、記録媒体を用いて前記無効化リストの配布を行うように構成してもよい。
【0355】
ここで、前記無効化リスト利用装置は、無効化リストの配布手段として、記録媒体を用いて前記無効化リストの配布を行うように構成してもよい。
ここで、前記認証システムは、無効化ノードに与えるノード無効化パターンのうち、無効化ノードの子孫であるリーフが全て無効化されているノードに対しては、そうではないノードとは識別されるノード無効化パターンを与えるように構成してもよい。
【0356】
ここで、前記無効化リスト生成装置は、無効化ノードに与えるノード無効化パターンのうち、無効化ノードの子孫であるリーフが全て無効化されているノードに対しては、そうではないノードとは識別されるノード無効化パターンを与えるように構成してもよい。
ここで、前記認証システムは、無効化ノードに与えるノード無効化パターンに対して、無効化ノードの子孫であるリーフが全て無効化されているか否かを表現する情報を追加してノード無効化パターンを構成するようにしてもよい。
【0357】
ここで、前記無効化リスト生成装置は、無効化ノードに与えるノード無効化パターンに対して、無効化ノードの子孫であるリーフが全て無効化されているか否かを表現する情報を追加してノード無効化パターンを構成するようにしてもよい。
ここで、前記認証システムは、ノード無効化パターンを並べるための規則として,木構造のルートから始まり、上位のレイヤのノードを優先し,同じレイヤにおいては左側のノードを優先するという規則に基づいて現れる無効化ノードのノード無効化パターンを並べるように構成してもよい。
【0358】
ここで、前記無効化リスト生成装置は、ノード無効化パターンを並べるための規則として,木構造のルートから始まり、上位のレイヤのノードを優先し,同じレイヤにおいては左側のノードを優先するという規則に基づいて現れる無効化ノードのノード無効化パターンを並べるように構成してもよい。
ここで、前記認証システムにおいて、木構造を構成する全てのノードが無効化された場合を想定する。この木構造を構成するノードを処理済ノード集合と呼ぶ。このとき、木構造に、次のようにして無効化されていないノードを新たに付加する。ここで、ノードを付加することを木構造を拡張すると呼ぶ。処理済ノード集合からなる木構造を初期状態と考え、初期状態において、木構造のうちの下位レイヤに属するノードに、さらに子ノードを付加する。このとき、下位レイヤに複数のノードが属する場合には、複数のノードのうち、左側のノードに優先的に子ノードを付加する。このような拡張規則に基づいて、木構造を拡張した後に、最下位のノード、つまりリーフに公開鍵証明書を割り当てる。
【0359】
ここで、公開鍵証明書が無効化された場合には、上述したように、前記無効化リスト生成装置は、当該ノードからルートに至る経路上の全てのノードを無効化する。このとき、前記拡張規則に基づいて、無効化ノードのノード無効化パターンを並べる。
このとき、前記無効化リスト利用装置は、前記ノード無効化パターンを並べた公開鍵証明書無効化リストを、前記拡張規則に基づいて解析して、前記検証すべき相手端末の公開鍵証明書が前記無効化リストに登録されているか否かを判定する。
【0360】
8.その他の変形例
(1)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD―ROM、MO、DVD、DVD−ROM、DVD−RAM、半導体メモリなど、に記録したものとしてもよい。また、これらの記録媒体に記録されている前記コンピュータプログラム又は前記デジタル信号であるとしてもよい。
【0361】
また、本発明は、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしてもよい。
【0362】
また、前記プログラム又は前記デジタル信号を前記記録媒体に記録して移送することにより、又は前記プログラム又は前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
(2)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【0363】
9.まとめ
以上の説明から明らかなように、第1の実施の形態において開示した発明によると、予め記録媒体に記録される鍵情報のヘッダ情報として、NRPを水準順に並べることにより、鍵情報をコンパクトにでき、プレーヤが効率よく復号すべき暗号化メディア鍵を特定することもできる。
【0364】
また、第2の実施の形態において開示した発明によると、ヘッダ情報として、あるノードの子孫が全て無効化装置であるか否かを示すビットをNRPの先頭に追加することで、無効化装置が集中した場合にヘッダ情報を少なくすることができる。
また、第3の実施の形態において開示した発明によると、ある特定のパターンで、あるノードの子孫が全て無効化装置であるか否かを判断することで、さらにヘッダ情報を少なく抑えることができる。
【0365】
また、第4の実施の形態及び第5の実施の形態において開示した発明によると、NRPの順序を、第1〜第3の実施の形態において開示した順序以外のものとすることができる。
また、第6の実施の形態において開示した発明によると、無効化すべき公開鍵証明書の数が増加してもCRLのサイズを小さく抑えることができる。
【0366】
10.産業上の利用の可能性
上記において説明した無効化された公開鍵証明書を判定する認証システムは、公開鍵暗号方式を用いて、秘密のメッセージの伝送、相手の認証、否認の防止、鍵共有、硬貨投げ、秘密分散などを行う際に、公開鍵証明書が有効であるか否かを判断するときに適用される。例えば、実施の形態6に示すように、ドライブ部の正当性を認証する場合に適用される。また、インターネットを介して物品の売買を行う電子商取引において、取引相手が正当であるか否かを認証する場合に、適用される。
【0367】
【発明の効果】
以上説明したように、本発明は、無効化された公開鍵証明書を示す無効化リストを生成する無効化リスト生成装置と、取得した公開鍵証明書が無効か否かを無効化リストを用いて判定し、無効と判定する場合に対応する公開鍵の利用を抑制する無効判定装置とから構成される認証システムであって、前記無効化リスト生成装置は、木構造の複数のリーフが、それぞれ複数の公開鍵証明書に対応し、各リーフを示すリーフ識別子は、各公開鍵証明書を識別し、前記公開鍵証明書のうち少なくとも1個の公開鍵証明書が無効化されており、無効化された公開鍵証明書を識別するリーフ識別子により示されるリーフからルートに至るまでの全てのノードは無効化されており、前記木構造を構成する複数のノードを有する木構造記憶手段と、リーフを除く無効化された各ノードについて、下位のノードのそれぞれが無効化されているか否かを示す無効化情報を生成し、その結果複数の無効化情報が得られ、得られた複数の無効化情報を、前記木構造の構成に係る配列順序に従って配列して無効化リストを生成する無効化リスト生成手段と、生成した無効化リストを出力する出力手段とを含み、前記無効判定装置は、前記木構造の1個のリーフを示すリーフ識別子により識別される公開鍵証明書を取得する証明書取得手段と、前記無効化リストを取得するリスト取得手段と、取得した前記無効化リスト内に配列されている前記無効化情報を用いて、ルートから前記リーフに至る経路の構築を試み、構築された経路内に前記リーフが含まれる場合に、取得した前記公開鍵証明書が無効であると判断し、前記リーフが含まれない場合に、取得した前記公開鍵証明書が有効であると判断する判定手段とを含む。また、無効化された公開鍵証明書を示す無効化リストを生成する無効化リスト生成装置であって、木構造の複数のリーフが、それぞれ複数の公開鍵証明書に対応し、各リーフを示すリーフ識別子は、各公開鍵証明書を識別し、前記公開鍵証明書のうち少なくとも1個の公開鍵証明書が無効化されており、無効化された公開鍵証明書を識別するリーフ識別子により示されるリーフからルートに至るまでの全てのノードは無効化されており、前記木構造を構成する複数のノードを有する木構造記憶手段と、リーフを除く無効化された各ノードについて、下位のノードのそれぞれが無効化されているか否かを示す無効化情報を生成し、その結果複数の無効化情報が得られ、得られた複数の無効化情報を、前記木構造の構成に係る配列順序に従って配列して無効化リストを生成する無効化リスト生成手段と、生成した無効化リストを出力する出力手段とを備える。また、無効化リスト生成装置により生成された無効化された公開鍵証明書を示す無効化リストを用いて、取得した公開鍵証明書が無効か否かを判定し、無効と判定する場合に対応する公開鍵の利用を抑制する無効判定装置であって、前記無効化リスト生成装置は、木構造を構成する複数のノードを有し、木構造の複数のリーフは、それぞれ複数の公開鍵証明書に対応し、各リーフを示すリーフ識別子は、各公開鍵証明書を識別し、前記公開鍵証明書のうち少なくとも1個の公開鍵証明書が無効化されており、無効化された公開鍵証明書を識別するリーフ識別子により示されるリーフからルートに至るまでの全てのノードは無効化されており、リーフを除く無効化された各ノードについて、下位のノードのそれぞれが無効化されているか否かを示す無効化情報を生成し、その結果複数の無効化情報が得られ、得られた複数の無効化情報を、前記木構造の構成に係る配列順序に従って配列して無効化リストを生成し、生成した無効化リストを出力し、前記無効判定装置は、前記木構造の1個のリーフを示すリーフ識別子により識別される公開鍵証明書を取得する証明書取得手段と、前記無効化リストを取得するリスト取得手段と、取得した前記無効化リスト内に配列されている前記無効化情報を用いて、ルートから前記リーフに至る経路の構築を試み、構築された経路内に前記リーフが含まれる場合に、取得した前記公開鍵証明書が無効であると判断し、前記リーフが含まれない場合に、取得した前記公開鍵証明書が有効であると判断する判定手段とを備える。
【0368】
これらの構成によると、前記無効化リスト生成装置は、リーフを除く無効化された各ノードについて、下位のノードのそれぞれが無効化されているか否かを示す無効化情報を生成するので、CRLのサイズを小さく抑えることができる。また、前記無効判定装置は、前記無効化情報を用いて、ルートから前記リーフに至る経路の構築を試み、構築された経路内に前記リーフが含まれる場合に、取得した前記公開鍵証明書が無効であると判断するので、無効化された公開鍵証明書を確実に判断することができる。
【0369】
ここで、前記木構造は、複数のレイヤから構成され、前記無効化リスト生成手段は、得られた複数の無効化情報を、ルートを起点とし、ルート側のレイヤからリーフ側のレイヤへの順序である前記配列順序に従って配列する。また、前記木構造は、複数のレイヤから構成され、前記無効化情報は、ルートを起点とし、ルート側のレイヤからリーフ側のレイヤへの順序である前記配列順序に従って配列され、前記判定手段は、前記配列順序に従って配列された前記複数の無効化情報を用いて、前記経路を構築し、取得した前記公開鍵証明書の無効を判断する。
【0370】
これらの構成によると、前記無効化リスト生成装置は、得られた複数の無効化情報を、ルートを起点とし、ルート側のレイヤからリーフ側のレイヤへの順序である前記配列順序に従って配列するので、前記無効判定装置により、前記経路を確実に構築することができる。
ここで、前記無効化リスト生成手段は、得られた複数の無効化情報を、ルートを起点とし、ルートから各リーフへ至る経路上に配されるノードの順序であって、重複して配列されない前記配列順序に従って配列する。また、前記無効化情報は、ルートを起点とし、ルートから各リーフへ至る経路上に配されるノードの順序であって、重複して配列されない前記配列順序に従って配列され、前記判定手段は、前記配列順序に従って配列された前記複数の無効化情報を用いて、前記経路を構築し、取得した前記公開鍵証明書の無効を判断する。
【0371】
これらの構成によると、前記無効化リスト生成装置は、得られた複数の無効化情報を、ルートを起点とし、ルートから各リーフへ至る経路上に配されるノードの順序であって、重複して配列されない配列順序に従って配列するので、前記無効判定装置により、前記経路を確実に構築することができる。
ここで、前記無効化リスト生成手段は、リーフを除き、無効化された全てのノードについて、無効化情報を生成する。また、リーフを除き、無効化された全てのノードについて、無効化情報が生成され、前記判定手段は、前記複数の無効化情報を用いて、取得した前記公開鍵証明書の無効を判断する。
【0372】
これらの構成によると、無効化リスト生成装置は、リーフを除き、無効化された全てのノードについて、無効化情報を生成するので、無効化リストから無効化情報が欠落することがない。
ここで、前記無効化リスト生成手段は、リーフを除き、無効化されたノードであって、下位側に接続する全てのノードが無効化されているものについて、下位側に接続する全てのノードが無効化されている旨を示す特別無効化情報を生成し、前記下位側に接続する全ての無効化されたノードについて、無効化情報の生成を抑制し、リーフを除く他の無効化されたノードについて、下位のノードのそれぞれが無効化されているか否かを示す無効化情報を生成する。また、リーフを除き、無効化されたノードであって、下位側に接続する全てのノードが無効化されているものについて、下位側に接続する全てのノードが無効化されている旨を示す特別無効化情報が生成され、前記下位側に接続する全ての無効化されたノードについて、無効化情報の生成が抑制され、リーフを除く他の無効化されたノードについて、下位のn個のノードのそれぞれが無効化されているか否かを示す無効化情報が生成され、前記判定手段は、前記特別無効化情報及び前記無効化情報を用いて、取得した前記公開鍵証明書の無効を判断する。
【0373】
これらの構成によると、無効化リスト生成装置は、リーフを除き、無効化されたノードであって、下位側に接続する全てのノードが無効化されているものについて、下位側に接続する全てのノードが無効化されている旨を示す特別無効化情報を生成するので、無効化リストのサイズをさらに少なくすることができる。
ここで、前記木構造は、n分木であり、nは、2以上の整数であり、前記無効化リスト生成手段は、リーフを除き、無効化されたノードであって、下位側に接続する全てのノードが無効化されているものについて、下位側に接続する全てのノードが無効化されている旨を示す第1付加情報と、下位のn個のノードのそれぞれが無効化されていることを示すn桁の情報とから構成される特別無効化情報を生成し、前記下位側に接続する全ての無効化されたノードについて、無効化情報の生成を抑制し、リーフを除く他の無効化されたノードについて、下位側に接続する全てのノードが無効化されていない旨を示す第2付加情報と、下位のn個のノードのそれぞれが無効化されているか否かを示すn桁の情報とから構成される無効化情報を生成する。また、リーフを除き、無効化されたノードであって、下位側に接続する全てのノードが無効化されているものについて、下位側に接続する全てのノードが無効化されている旨を示す第1付加情報と、下位のn個のノードのそれぞれが無効化されていることを示すn桁の情報とから構成される特別無効化情報が生成され、前記下位側に接続する全ての無効化されたノードについて、無効化情報の生成が抑制され、リーフを除く他の無効化されたノードについて、下位側に接続する全てのノードが無効化されていない旨を示す第2付加情報と、下位のn個のノードのそれぞれが無効化されているか否かを示すn桁の情報とから構成される無効化情報が生成され、前記判定手段は、前記特別無効化情報及び前記無効化情報を用いて、取得した前記公開鍵証明書の無効を判断する。
【0374】
これらの構成によると、無効化リスト生成装置は、リーフを除き、無効化されたノードであって、下位側に接続する全てのノードが無効化されているものについて、下位側に接続する全てのノードが無効化されている旨を示す第1付加情報と、下位のn個のノードのそれぞれが無効化されていることを示すn桁の情報とから構成される特別無効化情報を生成し、前記下位側に接続する全ての無効化されたノードについて、無効化情報の生成を抑制するので、無効化リストのサイズを少なくすることができる。
【0375】
ここで、前記木構造は、n分木であり、nは、2以上の整数であり、前記無効化リスト生成手段は、リーフを除き、無効化されたノードであって、下位側に接続する全てのノードが無効化されているものについて、下位のn個のノードのそれぞれが無効化されていることを示すn桁の特別値から構成される特別無効化情報を生成し、前記下位側に接続する全ての無効化されたノードについて、無効化情報の生成を抑制し、リーフを除く他の無効化されたノードについて、下位のn個のノードのそれぞれが無効化されているか否かを示すn桁の無効化情報を生成する。また、リーフを除き、無効化されたノードであって、下位側に接続する全てのノードが無効化されているものについて、下位のn個のノードのそれぞれが無効化されていることを示すn桁の特別値から構成される特別無効化情報が生成され、前記下位側に接続する全ての無効化されたノードについて、無効化情報の生成が抑制され、リーフを除く他の無効化されたノードについて、下位のn個のノードのそれぞれが無効化されているか否かを示すn桁の無効化情報が生成され、前記判定手段は、前記特別無効化情報及び前記無効化情報を用いて、取得した前記公開鍵証明書の無効を判断する。
【0376】
これらの構成によると、無効化リスト生成装置は、リーフを除き、無効化されたノードであって、下位側に接続する全てのノードが無効化されているものについて、下位のn個のノードのそれぞれが無効化されていることを示すn桁の特別値から構成される特別無効化情報を生成し、前記下位側に接続する全ての無効化されたノードについて、無効化情報の生成を抑制するので、無効化リストのサイズを少なくすることができる。
【0377】
ここで、前記木構造記憶手段が有する全てのノードが無効化されており、前記木構造は、さらに、当該木構造を構成するリーフの下位に、木構造の拡張に係る拡張規則に従って、1個以上の拡張ノードを有し、前記拡張ノードのうち最下位ノードである1個以上の拡張リーフは、それぞれ別の拡張公開鍵証明書に対応し、各拡張リーフを示す拡張リーフ識別子は、各拡張公開鍵証明書を識別する、前記拡張公開鍵証明書のうち少なくとも1個の拡張公開鍵証明書が無効化されており、無効化された拡張公開鍵証明書を識別する拡張リーフ識別子により示される拡張リーフからルートに至るまでの全てのノードは無効化されており、前記無効化リスト生成手段は、さらに、拡張リーフを除く無効化された各拡張ノードについて、下位の拡張ノードのそれぞれが無効化されているか否かを示す拡張無効化情報を生成し、その結果複数の拡張無効化情報が得られ、得られた複数の拡張無効化情報を、前記木構造の拡張に係る拡張規則に従って配列して前記無効化リストに付加し、前記出力手段は、拡張無効化情報が付加された前記無効化リストを出力する。また、前記無効化リスト生成装置が有する全てのノードが無効化されており、前記木構造は、さらに、当該木構造を構成するリーフの下位に、木構造の拡張に係る拡張規則に従って、1個以上の拡張ノードを有する、前記拡張ノードのうち最下位ノードである1個以上の拡張リーフは、それぞれ別の拡張公開鍵証明書に対応し、各拡張リーフを示す拡張リーフ識別子は、各拡張公開鍵証明書を識別する、前記拡張公開鍵証明書のうち少なくとも1個の拡張公開鍵証明書が無効化されており、無効化された拡張公開鍵証明書を識別する拡張リーフ識別子により示される拡張リーフからルートに至るまでの全てのノードは無効化されており、前記無効化リスト生成装置は、さらに、拡張リーフを除く無効化された各拡張ノードについて、下位の拡張ノードのそれぞれが無効化されているか否かを示す拡張無効化情報を生成し、その結果複数の拡張無効化情報が得られ、得られた複数の拡張無効化情報を、前記木構造の拡張に係る拡張規則に従って配列して前記無効化リストに付加し、拡張無効化情報が付加された前記無効化リストを出力し、前記証明書取得手段は、さらに、前記木構造の1個の拡張リーフを示す拡張リーフ識別子により識別される拡張公開鍵証明書を取得し、前記リスト取得手段は、拡張無効化情報が付加された前記無効化リストを取得し、前記判定手段は、さらに、取得した前記無効化リスト内に配列されている前記拡張無効化情報を用いて、ルートから前記拡張リーフに至る経路の構築を試み、構築された経路内に前記拡張リーフが含まれる場合に、取得した前記拡張公開鍵証明書が無効であると判断し、前記拡張リーフが含まれない場合に、取得した前記拡張公開鍵証明書が有効であると判断する。
【0378】
これらの構成によると、前記無効化リスト生成装置は、拡張リーフを除く無効化された各拡張ノードについて、拡張規則に従って、下位の拡張ノードのそれぞれが無効化されているか否かを示す拡張無効化情報を生成するので、木構造が拡張された場合であっても、小さくそのサイズを抑えたCRLを生成することができる。また、前記無効判定装置は、前記拡張無効化情報を用いて、ルートから前記拡張リーフに至る経路の構築を試み、構築された経路内に前記拡張リーフが含まれる場合に、取得した前記拡張公開鍵証明書が無効であると判断するので、無効化された拡張公開鍵証明書を確実に判断することができる。
【0379】
また、本発明は、無効化された公開鍵証明書を示す無効化リストを生成する無効化リスト生成装置であって、木構造の複数のリーフが、それぞれ複数の公開鍵証明書に対応し、各リーフを示すリーフ識別子は、各公開鍵証明書を識別し、前記公開鍵証明書のうちいずれも無効化されておらず、全てのノードは、無効化されておらず、前記木構造を構成する複数のノードを有する木構造記憶手段と、木構造を構成する全てのノードは、無効化されていないと判断し、無効化された公開鍵証明書が存在しないことを示す無効化リストを生成する無効化リスト生成手段と、生成した無効化リストを出力する出力手段とを備える。また、無効化リスト生成装置により生成された無効化された公開鍵証明書を示す無効化リストを用いて、取得した公開鍵証明書が無効か否かを判定し、無効と判定する場合に対応する公開鍵の利用を抑制する無効判定装置であって、前記無効化リスト生成装置は、木構造を構成する複数のノードを有し、木構造の複数のリーフは、それぞれ複数の公開鍵証明書に対応し、各リーフを示すリーフ識別子は、各公開鍵証明書を識別し、前記公開鍵証明書のうちいずれも無効化されておらず、全てのノードは、無効化されておらず、木構造を構成する全てのノードは、無効化されていないと判断し、無効化された公開鍵証明書が存在しないことを示す無効化リストを生成し、生成した無効化リストを出力し、前記無効判定装置は、前記木構造の1個のリーフを示すリーフ識別子により識別される公開鍵証明書を取得する証明書取得手段と、前記無効化リストを取得するリスト取得手段と、取得した前記無効化リストを用いて、公開鍵証明書が無効化されていないと判断する判定手段とを備える。
【0380】
これらの構成によると、無効化リスト生成装置は、無効化された公開鍵証明書が存在しない場合に、その旨を示す無効化リストを生成して、出力するので、公開鍵証明書が存在しないことを通知することができる。また、無効判定装置は、取得した前記無効化リストを用いて、公開鍵証明書が無効化されていないと判断するので、無効化された公開鍵証明書が存在しない場合に、公開鍵証明書に対応する公開鍵を利用することができる。
【図面の簡単な説明】
【図1】著作物保護システム10の構成を示すブロック図である。
【図2】鍵管理装置100の構成を示すブロック図である。
【図3】木構造テーブルD100のデータ構造の一例を示す。
【図4】木構造T100を示す概念図である。
【図5】無効化されたノードを含む木構造T200を示す概念図である。
【図6】ノード無効化パターンの一例を示すデータ構造図である。
【図7】複数個の暗号化メディア鍵を含む鍵情報の一例を示すデータ構造図である。
【図8】記録装置300aの構成を示すブロック図である。
【図9】再生装置400aの構成を示すブロック図である。
【図10】ユーザ装置へデバイス鍵を割り当てる動作、鍵情報の生成と記録媒体への書き込みの動作及びユーザ装置によるコンテンツの暗号化又は復号の動作を示すフローチャートである。特に、デバイス鍵が特に、デバイス鍵が不正な第三者により暴露されるまでの、各装置の動作を示すフローチャートである。
【図11】デバイス鍵が不正な第三者により暴露された後における、暴露されたデバイス鍵に対応する木構造の内のノードの無効化の動作、新たな鍵情報の生成と記録媒体への書込みの動作、及びユーザ装置によるコンテンツの暗号化又は復号の動作を示すフローチャートである。
【図12】木構造構築部101による木構造テーブルの生成と木構造格納部102への木構造テーブルの書き込みの動作を示すフローチャートである。
【図13】デバイス鍵割当部103によるデバイス鍵とID情報とを各ユーザ装置へ出力する動作を示すフローチャートである。
【図14】木構造更新部105による木構造の更新の動作を示すフローチャートである。
【図15】鍵情報ヘッダ生成部106によるヘッダ情報の生成の動作を示すフローチャートである。
【図16】鍵情報生成部107による鍵情報の生成の動作を示すフローチャートである。
【図17】記録装置300aが有する特定部303により、記録媒体500bに記憶されている鍵情報から、1個の暗号化メディア鍵を特定する動作を示すフローチャートである。
【図18】第1の実施の形態において、一例として無効化されるユーザ装置が木構造の中で特定のリーフに集中して発生する可能性がある場合の木構造の一例を示す。
【図19】第2の実施の形態において、無効化されるユーザ装置が木構造の中で特定のリーフに集中して発生した場合における特別なノード無効化パターンを示す木構造である。
【図20】木構造テーブルD400のデータ構造の一例を示す。
【図21】ヘッダ情報D500のデータ構造の一例を示す。
【図22】鍵情報D600のデータ構造の一例を示す。
【図23】鍵情報ヘッダ生成部106によるヘッダ情報の生成の動作を示すフローチャートである。図24へ続く。
【図24】鍵情報ヘッダ生成部106によるヘッダ情報の生成の動作を示すフローチャートである。図25へ続く。
【図25】鍵情報ヘッダ生成部106によるヘッダ情報の生成の動作を示すフローチャートである。図26へ続く。
【図26】鍵情報ヘッダ生成部106によるヘッダ情報の生成の動作を示すフローチャートである。図25から続く。
【図27】記録装置300aが有する特定部303により、記録媒体500bに記憶されている鍵情報から、1個の暗号化メディア鍵を特定する動作を示すフローチャートである。
【図28】第3の実施の形態において、特別なノード無効化パターンを示す木構造である。
【図29】ヘッダ情報D700のデータ構造の一例を示す。
【図30】鍵情報D800のデータ構造の一例を示す。
【図31】ヘッダ情報の生成の動作を示すフローチャートである。図32へ続く。
【図32】ヘッダ情報の生成の動作を示すフローチャートである。図33へ続く。
【図33】ヘッダ情報の生成の動作を示すフローチャートである。図34へ続く。
【図34】ヘッダ情報の生成の動作を示すフローチャートである。図33から続く。
【図35】記録装置300aが有する特定部303により、記録媒体500bに記憶されている鍵情報から、1個の暗号化メディア鍵を特定する動作を示すフローチャートである。
【図36】第4の実施の形態における複数のノード無効化パターンの並べ方を示す木構造である。
【図37】木構造テーブルD100のデータ構造の一例を示す。
【図38】ヘッダ情報D900のデータ構造の一例を示す。
【図39】木構造構築部101による木構造テーブルの生成と木構造格納部102への木構造テーブルの書き込みの動作を示すフローチャートである。
【図40】鍵情報ヘッダ生成部106によるヘッダ情報の生成の動作を示すフローチャートである。図41へ続く。
【図41】鍵情報ヘッダ生成部106によるヘッダ情報の生成の動作を示すフローチャートである。図40から続く。
【図42】記録装置300aが有する特定部303により、記録媒体500bに記憶されている鍵情報から、1個の暗号化メディア鍵を特定する動作を示すフローチャートである。
【図43】鍵情報ヘッダ生成部106によるヘッダ情報の生成の動作を示すフローチャートである。図44へ続く。
【図44】鍵情報ヘッダ生成部106によるヘッダ情報の生成の動作を示すフローチャートである。図45へ続く。
【図45】鍵情報ヘッダ生成部106によるヘッダ情報の生成の動作を示すフローチャートである。図46へ続く。
【図46】鍵情報ヘッダ生成部106によるヘッダ情報の生成の動作を示すフローチャートである。図45から続く。
【図47】記録装置300aが有する特定部303により、記録媒体500bに記憶されている鍵情報から、1個の暗号化メディア鍵を特定する動作を示すフローチャートである。
【図48】著作物保護システム10fの構成を示すブロック図である。
【図49】無効化されたデバイス鍵KeyA、KeyB及びKeyEが割り当てられたノードを含む木構造T700を示す概念図である。
【図50】ヘッダ情報D1000及び鍵情報D1010の構成を示すデータ構造図である。
【図51】記録装置300aが有する特定部303により、1個の暗号化メディア鍵を特定する動作を示すフローチャートである。
【図52】認証システム1000の構成を示すブロック図である。
【図53】製造装置1200の構成を示すブロック図である。
【図54】認証局装置1100の構成を示すブロック図である。
【図55】CRLの一例を示すデータ構造図である。
【図56】著作物記録装置1400の構成を示すブロック図である。
【図57】本体部1900の構成を示すブロック図である。
【図58】ドライブ部1600の構成を示すブロック図である。
【図59】製造装置1200及び製造装置1300の動作を示すフローチャートである。
【図60】認証局装置1100による公開鍵証明書の発行の動作を示すフローチャートである。
【図61】認証局装置1100によるCRLの発行の動作を示すフローチャートである。
【図62】本体部1900及びドライブ部1600の動作を示すフローチャートである。図63へ続く。
【図63】本体部1900及びドライブ部1600の動作を示すフローチャートである。図62から続く。
【符号の説明】
10、10b〜10f 著作物保護システム
100 鍵管理装置
200 鍵情報記録装置
300a〜300c 記録装置
400a〜400c 再生装置
1000 認証システム
1100 認証局装置
1200 製造装置
1300 製造装置
1400 著作物記録装置
1500 パーソナルコンピュータ
1600 ドライブ部
1900 本体部

Claims (25)

  1. 無効化された公開鍵証明書を示す無効化リストを生成する無効化リスト生成装置と、取得した公開鍵証明書が無効か否かを無効化リストを用いて判定し、無効と判定する場合に対応する公開鍵の利用を抑制する無効判定装置とから構成される認証システムであって、
    前記無効化リスト生成装置は、
    木構造の複数のリーフが、それぞれ複数の公開鍵証明書に対応し、各リーフを示すリーフ識別子は、各公開鍵証明書を識別し、前記公開鍵証明書のうち少なくとも1個の公開鍵証明書が無効化されており、無効化された公開鍵証明書を識別するリーフ識別子により示されるリーフからルートに至るまでの全てのノードは無効化されており、前記木構造を構成する複数のノードを有する木構造記憶手段と、
    リーフを除く無効化された各ノードについて、下位のノードのそれぞれが無効化されているか否かを示す無効化情報を生成し、その結果複数の無効化情報が得られ、得られた複数の無効化情報を、前記木構造の構成に係る配列順序に従って配列して無効化リストを生成する無効化リスト生成手段と、
    生成した無効化リストを出力する出力手段とを含み、
    前記無効判定装置は、
    前記木構造の1個のリーフを示すリーフ識別子により識別される公開鍵証明書を取得する証明書取得手段と、
    前記無効化リストを取得するリスト取得手段と、
    取得した前記無効化リスト内に配列されている前記無効化情報を用いて、ルートから前記リーフに至る経路の構築を試み、構築された経路内に前記リーフが含まれる場合に、取得した前記公開鍵証明書が無効であると判断し、前記リーフが含まれない場合に、取得した前記公開鍵証明書が有効であると判断する判定手段とを含む
    ことを特徴とする認証システム。
  2. 無効化された公開鍵証明書を示す無効化リストを生成する無効化リスト生成装置であって、
    木構造の複数のリーフが、それぞれ複数の公開鍵証明書に対応し、各リーフを示すリーフ識別子は、各公開鍵証明書を識別し、前記公開鍵証明書のうち少なくとも1個の公開鍵証明書が無効化されており、無効化された公開鍵証明書を識別するリーフ識別子により示されるリーフからルートに至るまでの全てのノードは無効化されており、前記木構造を構成する複数のノードを有する木構造記憶手段と、
    リーフを除く無効化された各ノードについて、下位のノードのそれぞれが無効化されているか否かを示す無効化情報を生成し、その結果複数の無効化情報が得られ、得られた複数の無効化情報を、前記木構造の構成に係る配列順序に従って配列して無効化リストを生成する無効化リスト生成手段と、
    生成した無効化リストを出力する出力手段と
    を備えることを特徴とする無効化リスト生成装置。
  3. 前記木構造は、複数のレイヤから構成され、
    前記無効化リスト生成手段は、得られた複数の無効化情報を、
    ルートを起点とし、
    ルート側のレイヤからリーフ側のレイヤへの順序
    である前記配列順序に従って配列する
    ことを特徴とする請求項2に記載の無効化リスト生成装置。
  4. 前記無効化リスト生成手段は、得られた複数の無効化情報を、
    ルートを起点とし、
    ルートから各リーフへ至る経路上に配されるノードの順序であって、
    重複して配列されない
    前記配列順序に従って配列する
    ことを特徴とする請求項2に記載の無効化リスト生成装置。
  5. 前記無効化リスト生成手段は、リーフを除き、無効化された全てのノードについて、無効化情報を生成する
    ことを特徴とする請求項2に記載の無効化リスト生成装置。
  6. 前記無効化リスト生成手段は、
    リーフを除き、無効化されたノードであって、下位側に接続する全てのノードが無効化されているものについて、下位側に接続する全てのノードが無効化されている旨を示す特別無効化情報を生成し、
    前記下位側に接続する全ての無効化されたノードについて、無効化情報の生成を抑制し、
    リーフを除く他の無効化されたノードについて、下位のノードのそれぞれが無効化されているか否かを示す無効化情報を生成する
    ことを特徴とする請求項2に記載の無効化リスト生成装置。
  7. 前記木構造は、n分木であり、nは、2以上の整数であり、
    前記無効化リスト生成手段は、
    リーフを除き、無効化されたノードであって、下位側に接続する全てのノードが無効化されているものについて、下位側に接続する全てのノードが無効化されている旨を示す第1付加情報と、下位のn個のノードのそれぞれが無効化されていることを示すn桁の情報とから構成される特別無効化情報を生成し、
    前記下位側に接続する全ての無効化されたノードについて、無効化情報の生成を抑制し、
    リーフを除く他の無効化されたノードについて、下位側に接続する全てのノードが無効化されていない旨を示す第2付加情報と、下位のn個のノードのそれぞれが無効化されているか否かを示すn桁の情報とから構成される無効化情報を生成する
    ことを特徴とする請求項6に記載の無効化リスト生成装置。
  8. 前記木構造は、n分木であり、nは、2以上の整数であり、
    前記無効化リスト生成手段は、
    リーフを除き、無効化されたノードであって、下位側に接続する全てのノードが無効化されているものについて、下位のn個のノードのそれぞれが無効化されていることを示すn桁の特別値から構成される特別無効化情報を生成し、
    前記下位側に接続する全ての無効化されたノードについて、無効化情報の生成を抑制し、
    リーフを除く他の無効化されたノードについて、下位のn個のノードのそれぞれが無効化されているか否かを示すn桁の無効化情報を生成する
    ことを特徴とする請求項6に記載の無効化リスト生成装置。
  9. 前記木構造記憶手段が有する全てのノードが無効化されており、
    前記木構造は、さらに、当該木構造を構成するリーフの下位に、木構造の拡張に係る拡張規則に従って、1個以上の拡張ノードを有し、前記拡張ノードのうち最下位ノードである1個以上の拡張リーフは、それぞれ別の拡張公開鍵証明書に対応し、各拡張リーフを示す拡張リーフ識別子は、各拡張公開鍵証明書を識別する、前記拡張公開鍵証明書のうち少なくとも1個の拡張公開鍵証明書が無効化されており、無効化された拡張公開鍵証明書を識別する拡張リーフ識別子により示される拡張リーフからルートに至るまでの全てのノードは無効化されており、
    前記無効化リスト生成手段は、さらに、拡張リーフを除く無効化された各拡張ノードについて、下位の拡張ノードのそれぞれが無効化されているか否かを示す拡張無効化情報を生成し、その結果複数の拡張無効化情報が得られ、得られた複数の拡張無効化情報を、前記木構造の拡張に係る拡張規則に従って配列して前記無効化リストに付加し、
    前記出力手段は、拡張無効化情報が付加された前記無効化リストを出力する
    ことを特徴とする請求項2に記載の無効化リスト生成装置。
  10. 無効化された公開鍵証明書を示す無効化リストを生成する無効化リスト生成装置であって、
    木構造の複数のリーフが、それぞれ複数の公開鍵証明書に対応し、各リーフを示すリーフ識別子は、各公開鍵証明書を識別し、前記公開鍵証明書のうちいずれも無効化されておらず、全てのノードは、無効化されておらず、前記木構造を構成する複数のノードを有する木構造記憶手段と、
    木構造を構成する全てのノードは、無効化されていないと判断し、無効化された公開鍵証明書が存在しないことを示す無効化リストを生成する無効化リスト生成手段と、
    生成した無効化リストを出力する出力手段と
    を備えることを特徴とする無効化リスト生成装置。
  11. 無効化リスト生成装置により生成された無効化された公開鍵証明書を示す無効化リストを用いて、取得した公開鍵証明書が無効か否かを判定し、無効と判定する場合に対応する公開鍵の利用を抑制する無効判定装置であって、
    前記無効化リスト生成装置は、木構造を構成する複数のノードを有し、木構造の複数のリーフは、それぞれ複数の公開鍵証明書に対応し、各リーフを示すリーフ識別子は、各公開鍵証明書を識別し、前記公開鍵証明書のうち少なくとも1個の公開鍵証明書が無効化されており、無効化された公開鍵証明書を識別するリーフ識別子により示されるリーフからルートに至るまでの全てのノードは無効化されており、リーフを除く無効化された各ノードについて、下位のノードのそれぞれが無効化されているか否かを示す無効化情報を生成し、その結果複数の無効化情報が得られ、得られた複数の無効化情報を、前記木構造の構成に係る配列順序に従って配列して無効化リストを生成し、生成した無効化リストを出力し、
    前記無効判定装置は、
    前記木構造の1個のリーフを示すリーフ識別子により識別される公開鍵証明書を取得する証明書取得手段と、
    前記無効化リストを取得するリスト取得手段と、
    取得した前記無効化リスト内に配列されている前記無効化情報を用いて、ルートから前記リーフに至る経路の構築を試み、構築された経路内に前記リーフが含まれる場合に、取得した前記公開鍵証明書が無効であると判断し、前記リーフが含まれない場合に、取得した前記公開鍵証明書が有効であると判断する判定手段と
    を備えることを特徴とする無効判定装置。
  12. 前記木構造は、複数のレイヤから構成され、
    前記無効化情報は、
    ルートを起点とし、
    ルート側のレイヤからリーフ側のレイヤへの順序
    である前記配列順序に従って配列され、
    前記判定手段は、前記配列順序に従って配列された前記複数の無効化情報を用いて、前記経路を構築し、取得した前記公開鍵証明書の無効を判断する
    ことを特徴とする請求項11に記載の無効判定装置。
  13. 前記無効化情報は、
    ルートを起点とし、
    ルートから各リーフへ至る経路上に配されるノードの順序であって、
    重複して配列されない
    前記配列順序に従って配列され、
    前記判定手段は、前記配列順序に従って配列された前記複数の無効化情報を用いて、前記経路を構築し、取得した前記公開鍵証明書の無効を判断する
    ことを特徴とする請求項11に記載の無効判定装置。
  14. リーフを除き、無効化された全てのノードについて、無効化情報が生成され、
    前記判定手段は、前記複数の無効化情報を用いて、取得した前記公開鍵証明書の無効を判断する
    ことを特徴とする請求項11に記載の無効判定装置。
  15. リーフを除き、無効化されたノードであって、下位側に接続する全てのノードが無効化されているものについて、下位側に接続する全てのノードが無効化されている旨を示す特別無効化情報が生成され、
    前記下位側に接続する全ての無効化されたノードについて、無効化情報の生成が抑制され、
    リーフを除く他の無効化されたノードについて、下位のn個のノードのそれぞれが無効化されているか否かを示す無効化情報が生成され、
    前記判定手段は、前記特別無効化情報及び前記無効化情報を用いて、取得した前記公開鍵証明書の無効を判断する
    ことを特徴とする請求項11に記載の無効判定装置。
  16. リーフを除き、無効化されたノードであって、下位側に接続する全てのノードが無効化されているものについて、下位側に接続する全てのノードが無効化されている旨を示す第1付加情報と、下位のn個のノードのそれぞれが無効化されていることを示すn桁の情報とから構成される特別無効化情報が生成され、
    前記下位側に接続する全ての無効化されたノードについて、無効化情報の生成が抑制され、
    リーフを除く他の無効化されたノードについて、下位側に接続する全てのノードが無効化されていない旨を示す第2付加情報と、下位のn個のノードのそれぞれが無効化されているか否かを示すn桁の情報とから構成される無効化情報が生成され、
    前記判定手段は、前記特別無効化情報及び前記無効化情報を用いて、取得した前記公開鍵証明書の無効を判断する
    ことを特徴とする請求項15に記載の無効判定装置。
  17. リーフを除き、無効化されたノードであって、下位側に接続する全てのノードが無効化されているものについて、下位のn個のノードのそれぞれが無効化されていることを示すn桁の特別値から構成される特別無効化情報が生成され、
    前記下位側に接続する全ての無効化されたノードについて、無効化情報の生成が抑制され、
    リーフを除く他の無効化されたノードについて、下位のn個のノードのそれぞれが無効化されているか否かを示すn桁の無効化情報が生成され、
    前記判定手段は、前記特別無効化情報及び前記無効化情報を用いて、取得した前記公開鍵証明書の無効を判断する
    ことを特徴とする請求項15に記載の無効判定装置。
  18. 前記無効化リスト生成装置が有する全てのノードが無効化されており、前記木構造は、さらに、当該木構造を構成するリーフの下位に、木構造の拡張に係る拡張規則に従って、1個以上の拡張ノードを有する、前記拡張ノードのうち最下位ノードである1個以上の拡張リーフは、それぞれ別の拡張公開鍵証明書に対応し、各拡張リーフを示す拡張リーフ識別子は、各拡張公開鍵証明書を識別する、前記拡張公開鍵証明書のうち少なくとも1個の拡張公開鍵証明書が無効化されており、無効化された拡張公開鍵証明書を識別する拡張リーフ識別子により示される拡張リーフからルートに至るまでの全てのノードは無効化されており、前記無効化リスト生成装置は、さらに、拡張リーフを除く無効化された各拡張ノードについて、下位の拡張ノードのそれぞれが無効化されているか否かを示す拡張無効化情報を生成し、その結果複数の拡張無効化情報が得られ、得られた複数の拡張無効化情報を、前記木構造の拡張に係る拡張規則に従って配列して前記無効化リストに付加し、拡張無効化情報が付加された前記無効化リストを出力し、
    前記証明書取得手段は、さらに、前記木構造の1個の拡張リーフを示す拡張リーフ識別子により識別される拡張公開鍵証明書を取得し、
    前記リスト取得手段は、拡張無効化情報が付加された前記無効化リストを取得し、
    前記判定手段は、さらに、取得した前記無効化リスト内に配列されている前記拡張無効化情報を用いて、ルートから前記拡張リーフに至る経路の構築を試み、構築された経路内に前記拡張リーフが含まれる場合に、取得した前記拡張公開鍵証明書が無効であると判断し、前記拡張リーフが含まれない場合に、取得した前記拡張公開鍵証明書が有効であると判断する
    ことを特徴とする請求項11に記載の無効判定装置。
  19. 無効化リスト生成装置により生成された無効化された公開鍵証明書を示す無効化リストを用いて、取得した公開鍵証明書が無効か否かを判定し、無効と判定する場合に対応する公開鍵の利用を抑制する無効判定装置であって、
    前記無効化リスト生成装置は、木構造を構成する複数のノードを有し、木構造の複数のリーフは、それぞれ複数の公開鍵証明書に対応し、各リーフを示すリーフ識別子は、各公開鍵証明書を識別し、前記公開鍵証明書のうちいずれも無効化されておらず、全てのノードは、無効化されておらず、木構造を構成する全てのノードは、無効化されていないと判断し、無効化された公開鍵証明書が存在しないことを示す無効化リストを生成し、生成した無効化リストを出力し、
    前記無効判定装置は、
    前記木構造の1個のリーフを示すリーフ識別子により識別される公開鍵証明書を取得する証明書取得手段と、
    前記無効化リストを取得するリスト取得手段と、
    取得した前記無効化リストを用いて、公開鍵証明書が無効化されていないと判断する判定手段と
    を備えることを特徴とする無効判定装置。
  20. 無効化された公開鍵証明書を示す無効化リストを生成する無効化リスト生成装置で用いられる無効化リスト生成方法であって、
    前記無効化リスト生成装置は、木構造の複数のリーフが、それぞれ複数の公開鍵証明書に対応し、各リーフを示すリーフ識別子は、各公開鍵証明書を識別し、前記公開鍵証明書のうち少なくとも1個の公開鍵証明書が無効化されており、無効化された公開鍵証明書を識別するリーフ識別子により示されるリーフからルートに至るまでの全てのノードは無効化され、前記木構造を構成する複数のノードを有する木構造記憶手段を備え、
    前記無効化リスト生成方法は、
    リーフを除く無効化された各ノードについて、下位のノードのそれぞれが無効化されているか否かを示す無効化情報を生成し、その結果複数の無効化情報が得られ、得られた複数の無効化情報を、前記木構造の構成に係る配列順序に従って配列して無効化リストを生成する無効化リスト生成ステップと、
    生成した無効化リストを出力する出力ステップと
    を含むことを特徴とする無効化リスト生成方法。
  21. 無効化された公開鍵証明書を示す無効化リストを生成する無効化リスト生成装置で用いられる無効化リスト生成プログラムであって、
    前記無効化リスト生成装置は、木構造の複数のリーフが、それぞれ複数の公開鍵証明書に対応し、各リーフを示すリーフ識別子は、各公開鍵証明書を識別し、前記公開鍵証明書のうち少なくとも1個の公開鍵証明書が無効化されており、無効化された公開鍵証明書を識別するリーフ識別子により示されるリーフからルートに至るまでの全てのノードは無効化されており、前記木構造を構成する複数のノードを有する木構造記憶手段を備え、
    前記無効化リスト生成プログラムは、
    リーフを除く無効化された各ノードについて、下位のノードのそれぞれが無効化されているか否かを示す無効化情報を生成し、その結果複数の無効化情報が得られ、得られた複数の無効化情報を、前記木構造の構成に係る配列順序に従って配列して無効化リストを生成する無効化リスト生成ステップと、
    生成した無効化リストを出力する出力ステップと
    を含むことを特徴とする無効化リスト生成プログラム。
  22. 無効化された公開鍵証明書を示す無効化リストを生成する無効化リスト生成装置で用いられる無効化リスト生成プログラムを記録しているコンピュータ読取り可能な記録媒体であって、
    前記無効化リスト生成装置は、木構造の複数のリーフが、それぞれ複数の公開鍵証明書に対応し、各リーフを示すリーフ識別子は、各公開鍵証明書を識別し、前記公開鍵証明書のうち少なくとも1個の公開鍵証明書が無効化されており、無効化された公開鍵証明書を識別するリーフ識別子により示されるリーフからルートに至るまでの全てのノードは無効化されており、前記木構造を構成する複数のノードを有する木構造記憶手段を備え、
    前記無効化リスト生成プログラムは、
    リーフを除く無効化された各ノードについて、下位のノードのそれぞれが無効化されているか否かを示す無効化情報を生成し、その結果複数の無効化情報が得られ、得られた複数の無効化情報を、前記木構造の構成に係る配列順序に従って配列して無効化リストを生成する無効化リスト生成ステップと、
    生成した無効化リストを出力する出力ステップとを含む
    ことを特徴とする記録媒体。
  23. 無効化リスト生成装置により生成された無効化された公開鍵証明書を示す無効化リストを用いて、取得した公開鍵証明書が無効か否かを判定し、無効と判定する場合に対応する公開鍵の利用を抑制する無効判定装置で用いられる無効判定方法であって、
    前記無効化リスト生成装置は、木構造を構成する複数のノードを有し、木構造の複数のリーフは、それぞれ複数の公開鍵証明書に対応し、各リーフを示すリーフ識別子は、各公開鍵証明書を識別し、前記公開鍵証明書のうち少なくとも1個の公開鍵証明書が無効化されており、無効化された公開鍵証明書を識別するリーフ識別子により示されるリーフからルートに至るまでの全てのノードは無効化されており、リーフを除く無効化された各ノードについて、下位のノードのそれぞれが無効化されているか否かを示す無効化情報を生成し、その結果複数の無効化情報が得られ、得られた複数の無効化情報を、前記木構造の構成に係る配列順序に従って配列して無効化リストを生成し、生成した無効化リストを出力し、
    前記無効判定方法は、
    前記木構造の1個のリーフを示すリーフ識別子により識別される公開鍵証明書を取得する証明書取得ステップと、
    前記無効化リストを取得するリスト取得ステップと、
    取得した前記無効化リスト内に配列されている前記無効化情報を用いて、ルートから前記リーフに至る経路の構築を試み、構築された経路内に前記リーフが含まれる場合に、取得した前記公開鍵証明書が無効であると判断し、前記リーフが含まれない場合に、取得した前記公開鍵証明書が有効であると判断する判定ステップと
    を含むことを特徴とする無効判定方法。
  24. 無効化リスト生成装置により生成された無効化された公開鍵証明書を示す無効化リストを用いて、取得した公開鍵証明書が無効か否かを判定し、無効と判定する場合に対応する公開鍵の利用を抑制する無効判定装置で用いられる無効判定プログラムであって、
    前記無効化リスト生成装置は、木構造を構成する複数のノードを有し、木構造の複数のリーフは、それぞれ複数の公開鍵証明書に対応し、各リーフを示すリーフ識別子は、各公開鍵証明書を識別し、前記公開鍵証明書のうち少なくとも1個の公開鍵証明書が無効化されており、無効化された公開鍵証明書を識別するリーフ識別子により示されるリーフからルートに至るまでの全てのノードは無効化されており、リーフを除く無効化された各ノードについて、下位のノードのそれぞれが無効化されているか否かを示す無効化情報を生成し、その結果複数の無効化情報が得られ、得られた複数の無効化情報を、前記木構造の構成に係る配列順序に従って配列して無効化リストを生成し、生成した無効化リストを出力し、
    前記無効判定プログラムは、
    前記木構造の1個のリーフを示すリーフ識別子により識別される公開鍵証明書を取得する証明書取得ステップと、
    前記無効化リストを取得するリスト取得ステップと、
    取得した前記無効化リスト内に配列されている前記無効化情報を用いて、ルートから前記リーフに至る経路の構築を試み、構築された経路内に前記リーフが含まれる場合に、取得した前記公開鍵証明書が無効であると判断し、前記リーフが含まれない場合に、取得した前記公開鍵証明書が有効であると判断する判定ステップと
    を含むことを特徴とする無効判定プログラム。
  25. 無効化リスト生成装置により生成された無効化された公開鍵証明書を示す無効化リストを用いて、取得した公開鍵証明書が無効か否かを判定し、無効と判定する場合に対応する公開鍵の利用を抑制する無効判定装置で用いられる無効判定プログラムを記録しているコンピュータ読取り可能な記録媒体であって、
    前記無効化リスト生成装置は、木構造を構成する複数のノードを有し、木構造の複数のリーフは、それぞれ複数の公開鍵証明書に対応し、各リーフを示すリーフ識別子は、各公開鍵証明書を識別し、前記公開鍵証明書のうち少なくとも1個の公開鍵証明書が無効化されており、無効化された公開鍵証明書を識別するリーフ識別子により示されるリーフからルートに至るまでの全てのノードは無効化されており、リーフを除く無効化された各ノードについて、下位のノードのそれぞれが無効化されているか否かを示す無効化情報を生成し、その結果複数の無効化情報が得られ、得られた複数の無効化情報を、前記木構造の構成に係る配列順序に従って配列して無効化リストを生成し、生成した無効化リストを出力し、
    前記無効判定プログラムは、
    前記木構造の1個のリーフを示すリーフ識別子により識別される公開鍵証明書を取得する証明書取得ステップと、
    前記無効化リストを取得するリスト取得ステップと、
    取得した前記無効化リスト内に配列されている前記無効化情報を用いて、ルートから前記リーフに至る経路の構築を試み、構築された経路内に前記リーフが含まれる場合に、取得した前記公開鍵証明書が無効であると判断し、前記リーフが含まれない場合に、取得した前記公開鍵証明書が有効であると判断する判定ステップとを含む
    ことを特徴とする記録媒体。
JP2003120629A 2002-05-09 2003-04-24 公開鍵証明書の無効化リスト生成装置、無効判定装置及び認証システム Expired - Fee Related JP4383084B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003120629A JP4383084B2 (ja) 2002-05-09 2003-04-24 公開鍵証明書の無効化リスト生成装置、無効判定装置及び認証システム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002134647 2002-05-09
JP2003120629A JP4383084B2 (ja) 2002-05-09 2003-04-24 公開鍵証明書の無効化リスト生成装置、無効判定装置及び認証システム

Publications (2)

Publication Number Publication Date
JP2004032707A JP2004032707A (ja) 2004-01-29
JP4383084B2 true JP4383084B2 (ja) 2009-12-16

Family

ID=31190197

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003120629A Expired - Fee Related JP4383084B2 (ja) 2002-05-09 2003-04-24 公開鍵証明書の無効化リスト生成装置、無効判定装置及び認証システム

Country Status (1)

Country Link
JP (1) JP4383084B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101172844B1 (ko) 2004-06-04 2012-08-10 코닌클리케 필립스 일렉트로닉스 엔.브이. 제 1 당사자를 제 2 당사자에게 인증하는 인증방법
KR100717005B1 (ko) * 2005-04-06 2007-05-10 삼성전자주식회사 폐기 키를 결정하는 방법 및 장치와 이것을 이용하여복호화하는 방법 및 장치
JP5952266B2 (ja) * 2011-04-22 2016-07-13 パナソニック株式会社 無効化リスト生成装置、無効化リスト生成方法及びコンテンツ管理システム

Also Published As

Publication number Publication date
JP2004032707A (ja) 2004-01-29

Similar Documents

Publication Publication Date Title
EP1510036B1 (en) Public key certificate revocation list generation apparatus, revocation judgement apparatus, and authentication system
US7738662B2 (en) Information processing system and method
US7224804B2 (en) Information processing device, information processing method, and program storage medium
KR100840823B1 (ko) 암호 키 블록을 이용한 정보 처리 시스템 및 방법
US8144869B2 (en) Content protection system, key data generation apparatus, and terminal apparatus
EP1249962A1 (en) Information processing system and method
KR100777906B1 (ko) 정보 처리 시스템 및 방법
JP2001352321A (ja) 情報処理システム、情報処理方法、および情報記録媒体、並びにプログラム提供媒体
JP2001358707A (ja) 暗号鍵ブロックを用いた情報処理システムおよび情報処理方法、並びにプログラム提供媒体
WO2002056535A1 (fr) Appareil et procede permettant d'enregistrer et de reproduire des informations
US20040076404A1 (en) Region restrictive playback system
JP2002198948A (ja) 情報処理システム、情報処理方法、情報処理装置、および情報記録媒体、並びにプログラム記録媒体
WO2011108268A1 (ja) 記録媒体装置に組み込まれるコントローラ、記録媒体装置、記録媒体装置の製造システム、および記録媒体装置の製造方法
JPH10106148A (ja) 暗号化方法、復号方法、記録再生装置、復号装置、復号化ユニット装置、記録媒体、記録媒体の製造方法および鍵の管理方法
JP4383084B2 (ja) 公開鍵証明書の無効化リスト生成装置、無効判定装置及び認証システム
JP4120135B2 (ja) 暗号鍵ブロックを用いた情報処理システムおよび情報処理方法、並びにプログラム提供媒体
JP4220213B2 (ja) 著作物保護システム、鍵管理装置及び利用者装置
JP2004118830A (ja) 地域限定再生システム
WO2004114584A1 (ja) 著作権保護システム並びにべき乗剰余演算装置及び方法
JP4638176B2 (ja) 著作権保護システム、べき乗剰余演算装置、演算装置、鍵管理装置、再生装置、記録装置、記録媒体、べき乗剰余演算方法、演算方法、及びプログラム
JP2005347897A (ja) 1組の電子鍵及びその生成方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090721

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090805

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090825

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090918

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121002

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4383084

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131002

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees