JP2004032707A - Revocation list preparation apparatus for public key certificate, revocation discrimination apparatus, and authentication system - Google Patents

Revocation list preparation apparatus for public key certificate, revocation discrimination apparatus, and authentication system Download PDF

Info

Publication number
JP2004032707A
JP2004032707A JP2003120629A JP2003120629A JP2004032707A JP 2004032707 A JP2004032707 A JP 2004032707A JP 2003120629 A JP2003120629 A JP 2003120629A JP 2003120629 A JP2003120629 A JP 2003120629A JP 2004032707 A JP2004032707 A JP 2004032707A
Authority
JP
Japan
Prior art keywords
public key
information
leaf
tree structure
nodes
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.)
Granted
Application number
JP2003120629A
Other languages
Japanese (ja)
Other versions
JP4383084B2 (en
Inventor
Toshihisa Nakano
中野 稔久
Motoji Omori
大森 基司
Makoto Tatebayashi
館林 誠
Shuji Ishihara
石原 秀志
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 Holdings Corp
Original Assignee
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2003120629A priority Critical patent/JP4383084B2/en
Publication of JP2004032707A publication Critical patent/JP2004032707A/en
Application granted granted Critical
Publication of JP4383084B2 publication Critical patent/JP4383084B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a revocation list preparation apparatus and a revocation discrimination apparatus capable of reducing the size of a CRL. <P>SOLUTION: A leaf of a tree structure corresponds to a public key certificate. A leaf identifier identifies the public key certificate. Nodes from the leaf corresponding to a cancelled public key certificate to a root are invalidated. The revocation list preparation apparatus creates revocation information denoting whether or not each of subordinate nodes except the leaf is invalidated and prepares the revocation list including a plurality of revocation information items arranged according to an arrangement order. The revocation discrimination apparatus uses the revocation information in the revocation list to try to build up a path from the root to the leaf and discriminates that the acquired public key certificate is invalidated when the built-up path includes the leaf. <P>COPYRIGHT: (C)2004,JPO

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 Revocation
Pattern、以下、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  本体部
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an authentication technique using a public key encryption technique, and particularly to a technique for specifying a certificate of a revoked public key.
[0002]
[Prior art]
In recent years, with the rapid spread of the use of the Internet, systems using the Internet as a communication base are increasing. For example, one example is electronic commerce for buying and selling goods via the Internet.
In such a system using the Internet as a communication base, it is an essential condition to confirm that the communication partner is a valid participant of the system. Such confirmation is called authentication. The communication partner may be a device operated by a human or a device that performs processing according to a predetermined procedure. In the following, a device including both of them will be referred to as a device. Authenticating the communication partner is called device authentication. Note that “proving” means that the device itself has legitimacy, that is, indicating that the device is a valid participant of the system, and “verifying” that checking the validity of the other party is called “verifying”. Authentication is a concept that includes both certification and verification.
[0003]
In device authentication, encryption technology is usually used. That is, the prover confidentially has data indicating that he is a valid participant of the system, and proves his / her validity by showing the verifier that he / she has the secret data. . On the other hand, the verifier verifies the validity of the prover by confirming that the prover has secret data. In a communication channel such as the Internet where anyone can obtain communication data, the secret data for authentication (authentication data) must not be leaked to a third party who is not involved in authentication. If secret data leaks to a third party, the device that obtained the secret data can impersonate the original device. For this purpose, the authentication data is encrypted and transmitted only to the verifier.
[0004]
The encryption technology includes a common key encryption technology and a public key encryption technology. In the common key encryption technology, a key for encryption and a key for decryption have the same value. On the other hand, in the public key cryptography, a key for encryption and a key for decryption have different values.
In authentication using symmetric key cryptography, the verifier has the same secret as the prover, so there is a danger that the verifier will impersonate the prover. The so-called password method corresponds to this. On the other hand, in authentication using public key cryptography, a prover certifies using a secret key of public key cryptography, and a verifier verifies using a public key corresponding to the secret key. Since the private key cannot be created, the verifier cannot impersonate the prover after authentication is completed. For this reason, it is desirable to use the public key cryptography for performing the above-mentioned authentication.
[0005]
In the authentication using the public key cryptography, performing a process using a secret key is referred to as a signature, and verifying the validity of the signature using a public key corresponding to the secret key is referred to as verifying.
An example of the partner authentication processing using the public key encryption technology is as follows. That is, the first device transmits random number data as challenge data to the second device, and subsequently, the second device signs the received random number data with its own private key and generates a signature. The generated signature is returned to the first device as response data, and finally, the first device verifies the returned signature using the public key of the second device.
[0006]
In the authentication using the public key encryption technology as described above, it is assumed that the public key itself is valid in the system.
For this purpose, a "public key certificate"("certified" for the public key) is issued from an organization called a certification authority in the system, indicating that the public key is valid for each device. It is common that A public key certificate is data obtained by combining the identification name of a device, an expiration date, and a public key with an electronic signature of a certification authority added thereto. After confirming the correctness of the electronic signature of the public key certificate, and further confirming the contents of the public key certificate from the identification name of the partner device and the current time, the correctness of the public key is confirmed.
[0007]
Furthermore, among public key certificates issued in the past, public key certificates of devices that have been removed from the system and are not valid are required to notify other devices that they have been revoked. A public key certificate revocation list (CRL) in which a digital signature of a certificate authority is added to a list of information specifying the revoked public key certificate is issued.
[0008]
As described above, when authenticating the partner device using the public key of the partner device, the public key certificate of the partner device is obtained, and the obtained public key certificate is not registered in the CRL. In other words, by performing the above-described authentication processing after confirming that the device is not invalidated, it is possible to avoid a transaction with an unauthorized partner device.
Note that the format, implementation example, and the like of the CRL are well-known technologies, and thus details thereof will not be described here. As an example, Non-Patent Literature 1 discloses X.264 defined by ISO / IEC / ITU. The CRL format (data structure) defined by the H.509 standard is disclosed.
[0009]
Non-Patent Documents 2 and 3 describe a tree-structured data storage method that can be used as one of the data formats for storing a large number of public key certificate IDs to be invalidated. Is disclosed. In this method, the tree structure is expressed in one dimension by arranging each node of the tree structure according to a certain rule. For example, p. 136 shows how to arrange in order of level. According to this arrangement method, levels (corresponding to a hierarchy in the tree structure) are arranged in ascending order, and within each level, nodes are arranged from left to right in the order of the nodes of the level.
[0010]
By using such an arrangement method based on a specific rule, a device can construct a tree structure from information arranged in one dimension.
As described above, the device acquires the CRL and stores the acquired CRL in the internal memory and the memory before authenticating the partner device using the public key of the partner device. It is checked whether or not the public key certificate ID of the partner device exists in the CRL, and if not, the authentication is performed. For this reason, the device must secure a memory having a sufficient capacity to store the CRL.
[0011]
[Non-patent document 1]
"Digital Signature and Cryptography" (Translated by Shinichiro Yamada, Pearson Education, 2000)
[0012]
[Non-patent document 2]
"Manipulation of Trees in Information Retrieval" (G. Salton, Communication of the ACM 5, 1962)
[0013]
[Non-Patent Document 3]
"Basic Algorithm / Information Structure" (translated by Yoneda and Kakehi, Science Inc., 1978)
[0014]
[Problems to be solved by the invention]
However, the conventional CRL includes the IDs of all the public key certificates to be revoked, and the size thereof is proportional to the number of the public key certificates to be revoked. Then, the size of the CRL increases accordingly.
For this reason, there is a problem that it is not practical for the device to secure a memory having a sufficient capacity for storing the CRL, assuming the CRL having the maximum size.
[0015]
For example, assume that the total number of public key certificates in the entire system is 230 (approximately 1 billion), the number of revoked certificates is 100,000, 0.01% of which, and the size of the ID is 30 bits. . At this time, since the conventional CRL includes all IDs, the size of the CRL is 30 bits × 100,000 = about 375 [KB]. Therefore, the device only needs to secure about 375 [KB] of memory to store the CRL. However, if the number of revoked certificates is 0.02% or 200,000, the size of the CRL is 30 bits × 200,000 = about 750 [KB], and the device is about 750 [KB]. Memory must be secured. Furthermore, if the number of revoked certificates increases, the device must secure more memory.
[0016]
[Means for Solving the Problems]
In order to solve the above problems, the present invention provides a revocation list generation device, a revocation determination device, an authentication system, which can keep the CRL size small even when the number of public key certificates to be revoked increases. An object of the present invention is to provide a revocation list generation method, a program, a recording medium, a revocation determination method, a program, and a recording medium.
[0017]
In order to achieve the above object, the present invention relates to an authentication system using public key cryptography, which has a secret key and a public key in a public key cryptographic algorithm, and uses the secret key to communicate with a communication partner. A terminal device that certifies the validity of the terminal device, a public key certificate issuing device that issues and distributes a public key certificate to at least data including a public key of the terminal device, and a terminal device that is invalidated. A revocation list generation device that issues and distributes a public key certificate revocation list that identifies the public key certificate issued by the public key certificate issuing device, a public key certificate of a terminal device to be verified, and the public key A revocation list using device that receives a key certificate revocation list and determines whether the public key certificate is registered in the public key certificate revocation list; Composed of a verification device for verifying a self correctness proof performed by the communication partner by using a public key is determined invalid.
[0018]
The revocation list generation device constructs and stores a tree structure including a plurality of layers, assigns a unique value for identifying a public key certificate of each terminal device to a leaf of the tree structure, and further stores and stores If a unique value of a public key certificate to be revoked is associated with at least one of the leaves that are descendants of a node for a given tree structure, that node is regarded as a revoked node, and at least one of the child nodes For a node, one of which is an invalidation node, an identifier for identifying whether each child node is an invalidation node is indicated by an identifier for identifying whether or not each child node is an invalidation node. The public key certificate revocation list is further arranged by arranging node revocation patterns of the entire tree structure based on a predetermined rule for tracing all nodes of the tree structure. Generated.
[0019]
The revocation list using apparatus analyzes a public key certificate revocation list in which the node revocation patterns are arranged based on the predetermined rule, and determines that the public key certificate of the terminal to be verified is invalidated. It is determined whether or not it is registered in the list.
The present invention also provides a public key certificate issuing device for issuing and distributing a public key certificate to data comprising a public key of a terminal device, and a public key certificate issuing device for the terminal device to be revoked. A revocation list generation device that issues and distributes a public key certificate revocation list that specifies the public key certificate issued by the device.
[0020]
The revocation list generation device constructs and stores a tree structure including a plurality of layers, assigns a unique value for identifying a public key certificate of each terminal device to a leaf of the tree structure, and further stores and stores If a unique value of a public key certificate to be revoked is associated with at least one of the leaves that are descendants of a node for a given tree structure, that node is regarded as a revoked node, and at least one of the child nodes For a node, one of which is an invalidation node, an identifier for identifying whether each child node is an invalidation node is indicated by an identifier for identifying whether or not each child node is an invalidation node. The public key certificate revocation list is further arranged by arranging node revocation patterns of the entire tree structure based on a predetermined rule for tracing all nodes of the tree structure. Generated.
[0021]
BEST MODE FOR CARRYING OUT THE INVENTION
1. First embodiment
A copyright protection system 10 according to one embodiment of the present invention will be described.
1.1 Configuration of copyright protection system 10
As shown in FIG. 1, the copyright protection system 10 includes a key management device 100, a key information recording device 200, recording devices 300a, 300b, 300c,... And reproduction devices 400a, 400b, 400c,. Have been.
[0022]
The key management device 100 records the key information by using the key information recording device 200 on a recording medium 500a, which is a recordable medium such as a DVD-RAM, on which no information is currently recorded, and records the key information. The recorded recording medium 500b is generated in advance. Further, the key management device 100 allocates a device key for decrypting key information to each of the recording devices 300a, 300b, 300c,... And the playback devices 400a, 400b, 400c,. The device key, device key identification information for identifying the device key, and ID information for identifying the recording devices 300a, 300b, 300c,... And the reproducing devices 400a, 400b, 400c,. , 300b, 300c,... And the playback devices 400a, 400b, 400c,.
[0023]
The recording device 300a respectively encrypts the digitized content to generate an encrypted content, records the generated encrypted content on the recording medium 500b, and generates the recording medium 500c. The playback device 400a extracts the encrypted content from the recording medium 500c, and decrypts the encrypted content to obtain the original content. The recording devices 300b, 300c, ... operate in the same manner as the recording device 300a, and the playback devices 400b, 400c, ... operate in the same manner as the playback device 400a.
[0024]
In the following, the recording devices 300b, 300c,... And the reproducing devices 400b, 400c,.
1.1.1 Key Management Device 100
As shown in FIG. 2, the key management device 100 includes a tree structure construction unit 101, a tree structure storage unit 102, a device key allocation unit 103, an invalidation device designation unit 104, a tree structure update unit 105, a key information header generation unit 106 And a key information generation unit 107.
[0025]
The key management device 100 is, specifically, a computer system including a microprocessor, a ROM, a RAM, a hard disk unit, a display unit, a keyboard, a mouse, and the like. A computer program is stored in the RAM or the hard disk unit. The key management device 100 achieves its functions by the microprocessor operating according to the computer program.
[0026]
(1) Tree structure storage unit 102
The tree structure storage unit 102 is specifically composed of a hard disk unit, and has a tree structure table D100 as shown as an example in FIG.
The tree structure table D100 corresponds to the tree structure T100 shown as an example in FIG. 4, and shows a data structure for expressing the tree structure T100. As will be described later, a data structure for expressing the tree structure T100 by the tree structure construction unit 101 is generated as a tree structure table D100 and written to the tree structure storage unit 102.
[0027]
(Tree structure T100)
As shown in FIG. 4, the tree structure T100 is a binary tree including five layers from layer 0 to layer 4. Since the tree structure T100 is a binary tree, each node (excluding leaves) of the tree structure T100 is connected to two lower nodes via two paths. Layer 0 contains one node that is the root, layer 1 contains two nodes, layer 2 contains four nodes, and layer 3 contains eight nodes. , Layer 4 includes 16 nodes as leaves. In the tree structure, the lower side indicates the leaf side, and the upper side indicates the root side.
[0028]
Of the two paths connecting each node (except the leaf) of the tree structure T100 and the lower node, one of the left paths is assigned the number “0”, and the other is the number “0”. Is assigned a number “1”. Here, on the page of FIG. 4, a path connected to each node from the node to the lower left is referred to as a left path, and a path connected to the node from the node to the lower right is referred to as a right path. I have.
[0029]
Each node is given a node name. The node name of the node that is the root is “root”. In addition, a character string including the same number of characters as the value indicated by the number of layers is given as a node name to nodes belonging to layers lower than layer 1 including layer 1. This character string is generated by arranging the numbers assigned to the route from the root to the node in order from the top. For example, the node names of two nodes belonging to layer 1 are “0” and “1”, respectively. The node names of the four nodes belonging to layer 2 are “00”, “01”, “10”, and “11”, respectively. The node names of the eight nodes belonging to layer 3 are “000”, “001”, “010”, “011”,..., “101”, “110”, and “111”. The node names of the 16 nodes belonging to layer 4 are “0000”, “0001”, “0010”, “0011”,..., “1100”, “1101”, “1110”, and “1111”. ".
[0030]
(Tree structure table D100)
The tree structure table D100 is configured to include the same number of node information as the nodes included in the tree structure T100, and each node information corresponds to each node configuring the tree structure T100.
Each node information includes a node name, a device key, and a revocation flag.
[0031]
The node name is a name for identifying a node corresponding to the node information. The device key is a key assigned to a node corresponding to the node information.
The revocation flag is a flag indicating whether or not the device key corresponding to the node information has been revoked. When the revocation flag is “0”, it indicates that the device key has not been revoked. When the invalidation flag is “1”, it indicates that the invalidation has been performed.
[0032]
Each node information is stored in the tree structure table D100 in the order according to the following order rule 1. The order rule 1 shown here is applied even when each node information is sequentially read from the tree structure table D100 by the recording devices 300a, 300b, 300c,..., The reproducing devices 400a, 400b, 400c,. Is done.
[0033]
(A) In the tree structure table D100, node information corresponding to nodes belonging to each layer is stored in ascending order of the number of layers of the tree structure T100. Specifically, in the tree structure table D100, one piece of node information corresponding to one route belonging to layer 0 is first stored, and then two nodes corresponding to two nodes belonging to layer 1 are stored. Pieces of node information are stored, and then four pieces of node information corresponding to the four nodes belonging to layer 2 are stored. The same applies hereinafter.
[0034]
(B) For nodes belonging to each layer, corresponding node information is stored in ascending order of node names identifying each node.
Specifically, each node information is stored in the tree structure table D100 shown in FIG. 3 in the following order.
"Route", "0", "1", "00", "01", "10", "11", "000", "001", "010", "011", ..., "101" , "110", "111", "0000", "0001", "0010", "0011", ..., "1100", "1101", "1110", "1111"
Here, the order in which each node information is stored is indicated by the node name included in each node information.
[0035]
(2) Tree structure construction unit 101
The tree structure construction unit 101 constructs a data structure of an n-ary tree for managing device keys as described below, and stores the constructed tree structure in the tree structure storage unit 102. Here, n is an integer of 2 or more, and as an example, n = 2.
The tree structure construction unit 101 first generates node information including “root” as a node name, and writes the node information to the tree structure table of the tree structure storage unit 102.
[0036]
Next, the tree structure construction unit 101 generates node names “0” and “1” for identifying two nodes with respect to layer 1, and generates two node names including the generated node names “0” and “1”, respectively. Is generated, and the generated two pieces of node information are added in this order to the tree structure table of the tree structure storage unit 102 and written.
Next, the tree structure construction unit 101 generates node names “00”, “01”, “10”, and “11” for identifying four nodes for layer 2, and generates the generated node names “00”, Four pieces of node information including “01”, “10”, and “11” are generated, and the generated four pieces of node information are added to the tree structure table of the tree structure storage unit 102 in this order. And write.
[0037]
Thereafter, the tree structure construction unit 101 performs the generation of the node information and the writing to the tree structure table for the layers 3 and 4 in this order in the same manner as described above.
Next, the tree structure construction unit 101 generates a device key using a random number for each node of the tree structure, and writes the generated device key in the tree structure table in association with each node.
[0038]
(3) Device key assignment unit 103
The device key assignment unit 103 appropriately associates a leaf to which a user device is not assigned with a user device to which a device key is to be assigned from the tree structure stored in the tree structure storage unit 102 as described below. Device key, and outputs the selected device key to the user device.
[0039]
The device key assignment unit 103 has a 4-bit variable ID.
The device key assignment unit 103 repeats the following processes (a) to (f) 16 times. In each of the 16 repetitions, the variable ID holds a value of “0000”, “0001”, “0010”,..., “1110”, “1111”. By repeating 16 times, the device key assignment unit 103 assigns ID information and 5 device keys to each of the 16 user devices.
[0040]
(A) The device key assignment unit 103 acquires node information including the node name of “root” from the tree structure table of the tree structure storage unit 102, and extracts a device key included in the acquired node information. The extracted device key is the device key assigned to the root.
(B) The device key assignment unit 103 acquires, from the tree structure table of the tree structure storage unit 102, node information including the node name consisting of the first one bit of the variable ID, and acquires the device key included in the acquired node information. Extract. Here, the extracted device key is referred to as a device key A.
[0041]
(C) The device key assignment unit 103 acquires node information including a node name consisting of the first two bits of the variable ID from the tree structure table of the tree structure storage unit 102, and assigns the device key included in the acquired node information. Extract. Here, the extracted device key is referred to as a device key B.
(D) The device key assignment unit 103 acquires node information including a node name consisting of the first three bits of the variable ID from the tree structure table of the tree structure storage unit 102, and assigns a device key included in the acquired node information to the node information. Extract. Here, the extracted device key is referred to as a device key C.
[0042]
(E) The device key assignment unit 103 acquires, from the tree structure table included in the tree structure storage unit 102, node information including a node name including the first 4 bits of the variable ID, and acquires the device key included in the acquired node information. Extract. Here, the extracted device key is referred to as a device key D.
(F) The device key assignment unit 103 stores the variable ID as ID information, the device key assigned to the root, the device keys A, B, C, D assigned to each node, and the five device keys. The five device key identification information items to be identified are written to the key information storage unit of the user device.
[0043]
In this way, the key information storage unit of each user device stores the ID information, the five device key identification information, and the five device keys as shown as an example in FIG. Here, the five device key identification information and the five device keys are associated with each other. Each device key identification information is the number of layers (layer number) to which the node to which the corresponding device key is assigned belongs.
[0044]
As described above, the ID information and the five device keys are assigned to each of the 16 user devices.
As an example, as described above, the tree structure T100 illustrated in FIG. 4 is a binary tree having five layers, and includes 16 leaves. Here, it is assumed that there are 16 user devices, and each of the 16 user devices corresponds to 16 leaves. Each user device is provided with a device key assigned to a node located on a path from a corresponding leaf to a root in the tree structure T100. For example, the user device 1 is given five device keys of IK1, KeyH, KeyD, KeyB, and KeyA. Further, for example, the user device 1 is provided with ID information “0000”, and the user device 14 is provided with ID information “1101”.
[0045]
(4) Invalidation device designation unit 104
The revocation device specifying unit 104 receives one or more pieces of ID information for identifying one or more user devices to be revoked from the operation manager of the key management device 100, and transmits the received ID information to the tree structure updating unit 105. Output to
(5) Tree structure updating unit 105
The tree structure updating unit 105 receives one or more pieces of ID information from the invalidation device specifying unit 104. Upon receiving the ID information, the following processes (a) to (d) are repeated for each of the received one or more pieces of ID information.
[0046]
(A) The tree structure update unit 105 acquires node information including the received ID information as a node name from the tree structure table of the tree structure storage unit 102, and adds an invalidation flag “1” to the acquired node information. Then, the node information to which the invalidation flag “1” is added is overwritten on the tree structure table at the position where the acquired node information is stored.
[0047]
(B) The tree structure updating unit 105 acquires node information including the first three bits of the received ID information as a node name from the tree structure table of the tree structure storage unit 102, and acquires the acquired node information in the same manner as described above. To the tree structure table by adding an invalidation flag “1” to the table.
(C) The tree structure updating unit 105 acquires node information including the first two bits of the received ID information as a node name from the tree structure table of the tree structure storage unit 102, and acquires the acquired node information in the same manner as described above. To the tree structure table by adding an invalidation flag “1” to the table.
[0048]
(D) The tree structure updating unit 105 acquires node information including “root” as a node name from the tree structure table of the tree structure storage unit 102, and adds an invalidation flag “ "1" is added to overwrite the tree structure table.
As described above, based on the ID information received from the invalidation device specifying unit 104, the tree structure updating unit 105 determines, based on the ID information received from the leaf indicated by the received ID information, everything existing on the path from the leaf indicated by the received ID information to the node. Invalidate the node.
[0049]
In the tree structure T100 illustrated in FIG. 4, when it is assumed that the user devices indicated by the ID information “0000”, “1010”, and “1011” are invalidated, the tree structure in which the nodes are invalidated as described above. T200 is shown in FIG.
The tree structure table D100 has an invalidation flag added corresponding to the tree structure T200.
[0050]
In the tree structure T200, all nodes existing on the path from the leaf corresponding to the user device 1 indicated by the ID information “0000” to the root, from the leaf corresponding to the user device 11 indicated by the ID information “1010” to the root , All nodes existing on the path from the leaf to the root corresponding to the user device 12 indicated by the ID information “1011” are marked with “X”. Indicates a disabled node.
[0051]
In the tree structure table D100, an invalidation flag is added to the node information corresponding to the invalidated node.
(6) Key information header generator 106
The key information header generation unit 106 has a variable i indicating the number of layers and a variable j indicating the name of a node included in the layer.
[0052]
The key information header generation unit 106 repeats the following process (a) for the number of layers included in the tree structure. In each of the repetitions for the number of layers, the variable i indicating the number of layers holds values of “0”, “1”, “2”, and “3”.
(A) The key information header generation unit 106 repeats the following processes (a-1) to (a-3) for each node by the number of all nodes included in the layer whose number of layers is indicated by the variable i. . Here, a target node name to be subjected to the processes (a-1) to (a-3) is indicated by a variable j.
[0053]
(A-1) The key information header generation unit 106 acquires node information including a node name obtained by joining “0” to a variable j from the tree structure table of the tree structure storage unit 102, The node information including the node name obtained by combining “1” is obtained.
The two pieces of node information thus obtained correspond to the two lower nodes connected immediately below the target node indicated by the variable j.
[0054]
(A-2) The key information header generation unit 106 checks whether or not both of the invalidation flags included in each of the two pieces of acquired node information are “0”, and if both are “0”, , The two invalidation flags included in each of the obtained two pieces of node information are arranged in the order in which the two pieces of node information are stored in the tree structure table, and the node invalidation is performed. Pattern (Node Revocation)
Pattern, hereinafter, referred to as NRP. ).
[0055]
Specifically, if the invalidation flags included in each of the two pieces of acquired node information are “0” and “0”, no node invalidation pattern is generated.
If the invalidation flags included in each of the two pieces of acquired node information are “1” and “0”, NRP {10} is generated.
[0056]
If the invalidation flags included in each of the two pieces of acquired node information are “0” and “1”, NRP {01} is generated.
When the invalidation flags included in each of the two pieces of acquired node information are “1” and “1”, NRP {11} is generated.
(A-3) The key information header generation unit 106 outputs the generated NRP to the key information recording device 200.
[0057]
As described above, the key information header generation unit 106 checks, for each node in the tree structure layer, whether two lower nodes directly connected to the lower side of the node are invalidated. If one of the two lower nodes is invalidated, the NRP is generated as described above. In the tree structure T200 shown in FIG. 5, NRPs generated corresponding to the nodes are shown near nodes marked with a cross.
[0058]
In addition, since the key information header generation unit 106 outputs the NRP in the above-described repetition, in the case shown in FIG. 5, a plurality of NRPs shown as an example in FIG. 6 are generated and output. The key information header generator 106 outputs the plurality of NRPs as header information.
In the tree structure T200 illustrated in FIG. 5, the user device 1, the user device 11, and the user device 12 are each invalidated. Here, nodes existing on the route from the leaf corresponding to each user device to be invalidated to the root (nodes marked with a cross in FIG. 5) are referred to as invalidated nodes. In addition, the case where the child node of one node is an invalidation node is represented by “1”, and the case where it is not the case is represented by “0”. It is. The NRP is n-bit information in the case of an n-ary tree. Regarding the root T201 of the tree structure T200 in FIG. 5, the NRP is expressed as {11} because both the child nodes are invalidation nodes. The NRP assigned to the node T202 is expressed as {10}. Also, although the node T203 is an invalidated node, it is a leaf having no child node, and thus no NRP is added.
[0059]
As shown as an example in FIG. 6, the header information D200 is composed of NRP {11}, {10}, {10}, {10}, {01}, {10}, {11}. Include in order.
Note that the positions where the plurality of NRPs are stored in the header information D200 are determined. This position is determined by the above repetition. As shown in FIG. 6, NRP {11} at positions determined by “0”, “1”, “2”, “3”, “4”, “5” and “6” in the header information D200, respectively. , {10}, {10}, {10}, {01}, {10}, {11}.
[0060]
As described above, the key information header generation unit 106 extracts one or more NRPs of the invalidation node, and outputs the extracted NRP to the key information recording device 200 as header information of the key information. At this time, the key information header generation unit 106 arranges a plurality of NRPs in order of level. That is, a plurality of NRPs are arranged in order from an upper layer to a lower layer, and NRPs having the same layer are arranged in order from left to right. Note that the arrangement of the NRPs may be based on a certain rule. For example, when the layers are the same, the NRPs may be arranged in order from right to left.
[0061]
(7) Key information generation unit 107
The key information generation unit 107 has a variable i indicating the number of layers and a variable j indicating the name of a node included in the layer, similarly to the key information header generation unit 106.
The key information generation unit 107 repeats the following process (a) for the number of layers except for the layer 0 included in the tree structure. In each of the repetitions for the number of layers, the variable i indicating the number of layers holds the values of “1”, “2”, and “3”.
[0062]
(A) The key information generation unit 107 repeats the following processes (a-1) to (a-3) for each node by the number of all nodes included in the layer whose number is indicated by the variable i. Here, a target node name to be subjected to the processes (a-1) to (a-3) is indicated by a variable j.
(A-1) The key information generation unit 107 acquires node information including the variable j as a node name from the tree structure table of the tree structure storage unit 102, and sets the invalidation flag included in the acquired node information to “1”. ”Or“ 0 ”.
[0063]
(A-2) When the invalidation flag is “0”, the key information generation unit 107 further determines whether or not encryption has been performed with the device key corresponding to the upper node connected to the target node. Judge.
(A-3) When the encryption has not been performed, the key information generation unit 107 extracts the device key included in the acquired node information, applies the encryption algorithm E1, and uses the extracted device key. Then, the generated media key is encrypted to generate an encrypted media key.
[0064]
Encrypted media key = E1 (device key, media key)
Here, E (A, B) indicates that the data B is encrypted using the key A by applying the encryption algorithm E.
Further, the encryption algorithm E1 is, for example, DES (Data Encryption Standard).
[0065]
Next, the key information generation unit 107 outputs the generated encrypted media key to the key information recording device 200.
When the invalidation flag “1” is added or when encryption is performed, the process (a-3) is not performed.
As described above, the key information generation unit 107 outputs the encrypted media key in the above-described repetition. Therefore, in the case shown in FIG. 5, a plurality of encrypted media shown in FIG. A key is generated and output. The key information generation unit 107 outputs the plurality of encrypted media keys as key information D300.
[0066]
Note that the positions where the plurality of encrypted media keys are stored in the key information D300 are determined. This position is determined by the above repetition. As shown in FIG. 7, at positions determined by “0”, “1”, “2”, “3” and “4” in the key information D300, the encrypted media key E1 (KeyE, media key), E1 (KeyG, media key), E1 (KeyI, media key), E1 (KeyL, media key), and E1 (IK2, media key) are arranged.
[0067]
1.1.2 Key Information Recording Device 200
The key information recording device 200 receives header information from the key information header generation unit 106, receives key information from the key information generation unit 107, and writes the received header information and key information to the recording medium 500a.
1.1.3 Recording media 500a, b, c
The recording medium 500a is a recordable medium such as a DVD-RAM, on which no information has been recorded.
[0068]
The recording medium 500b is obtained by writing the key information with the header information added thereto by the key management device 100 and the key information recording device 200 as described above.
The recording medium 500c has the encrypted content written on the recording medium 500b by any of the recording devices 300a, 300b, 300c,... As described above.
[0069]
As shown in FIG. 8, the recording medium 500c records key information to which header information is added and encrypted content.
1.1.4 Recording Devices 300a, 300b, 300c,...
As shown in FIG. 8, the recording device 300a includes a key information storage unit 301, a decryption unit 302, a specification unit 303, an encryption unit 304, and a content storage unit 305. Since the recording devices 300b, 300c,... Have the same configuration as the recording device 300a, their description is omitted.
[0070]
The recording device 300a is specifically configured to include a microprocessor, a ROM, a RAM, and the like, and the RAM stores a computer program. The recording device 300a achieves its functions by the microprocessor operating according to the computer program.
A recording medium 500b is mounted on the recording device 300a. The recording device 300a analyzes the header information stored in the recording medium 500b based on the ID information stored therein, and specifies the position of the encrypted media key to be decrypted and the device key to be used. Then, decryption is performed using the specified device key to obtain a media key. Next, the digital content is encrypted using the obtained media key, and the encrypted content is recorded on the recording medium 500b.
[0071]
(1) Key information storage unit 301
The key information storage unit 301 includes an area for storing ID information, five device keys, and five device key identification information for identifying the five device keys, respectively.
(2) Identifying unit 303
The specifying unit 303 operates on the assumption that the key information header generation unit 106 included in the key management device 100 generates the header information of the key information according to the above-described order rule 1.
[0072]
The identification unit 303 reads out the ID information from the key information storage unit 301. The header information and the key information are read from the recording medium 500b. Next, the identification unit 303 sequentially examines the header information from the upper level using the read ID information and the read header information, thereby determining the position where one encrypted media key exists from the key information. X and data key identification information for identifying a device key used for decrypting the encrypted media key. The detailed operation for specifying the position X where the encrypted media key exists and the device key identification information will be described later.
[0073]
Next, the identification unit 303 outputs the identified one encrypted media key and the determined one device key identification information to the decryption unit 302.
(3) Decoding section 302
The decryption unit 302 receives one encrypted media key and one device key identification information from the identification unit 303. When one encrypted media key and one device key identification information are received, the device key identified by the received device key identification information is read out from the key information storage unit 301 and read out by applying the decryption algorithm D1. The received media key is decrypted using the device key to generate a media key.
[0074]
Media key = D1 (device key, encrypted media key)
Here, D (A, B) means that the decryption algorithm D is applied, the encrypted data B is decrypted using the key A, and the original data is generated.
The decryption algorithm D1 corresponds to the encryption algorithm E1, and is an algorithm for decrypting data encrypted by applying the encryption algorithm E1.
[0075]
Next, the decryption unit 302 outputs the generated media key to the encryption unit 304.
Each block illustrated in FIG. 8 is connected to another block by a connection line. However, some connection lines are omitted. Here, each connection line indicates a path through which signals and information are transmitted. In addition, among the plurality of connection lines connected to the block indicating the decryption unit 302, those having a key mark on the connection line indicate a path through which information as a key is transmitted to the decryption unit 302. . The same applies to the block indicating the encryption unit 304. The same applies to other drawings.
[0076]
(4) Content storage unit 305
The content storage unit 305 stores content that is a literary work such as digitized music.
(5) Encryption unit 304
The encryption unit 304 receives the media key from the decryption unit 302 and reads out the content from the content storage unit 305. Next, the encryption unit 304 applies the encryption algorithm E2, encrypts the read content using the received media key, and generates encrypted content.
[0077]
Encrypted content = E2 (media key, content)
Here, the encryption algorithm E2 is, for example, an encryption algorithm based on DES.
Next, the encryption unit 304 writes the generated encrypted content to the recording medium 500b. Thus, the recording medium 500c on which the encrypted content is written is generated.
[0078]
1.1.5 Playback devices 400a, 400b, 400c, ...
As shown in FIG. 9, the playback device 400a includes a key information storage unit 401, a specification unit 402, a decryption unit 403, a decryption unit 404, and a playback unit 405. Since the playback devices 400b, 400c,... Have the same configuration as the playback device 400a, description thereof will be omitted.
[0079]
The playback device 400a specifically includes a microprocessor, a ROM, a RAM, and the like, and a computer program is stored in the RAM. The playback device 400a achieves its functions by the microprocessor operating according to the computer program.
Here, the key information storage unit 401, the identification unit 402, and the decryption unit 403 have the same configurations as the key information storage unit 301, the identification unit 303, and the decryption unit 302 included in the recording device 300a, respectively. Therefore, the description is omitted.
[0080]
The recording medium 500c is mounted on the playback device 400a. The playback device 400a analyzes the header information stored in the recording medium 500c based on the ID information stored therein, and specifies the position of the encrypted media key to be decrypted and the device key to be used. Then, decryption is performed using the specified device key to obtain a media key. Next, the reproducing device 400a uses the obtained media key to decrypt the encrypted content recorded on the recording medium 500c and reproduce the content.
(1) Decoding unit 404
The decryption unit 404 receives the media key from the decryption unit 403, reads the encrypted content from the recording medium 500c, applies the decryption algorithm D2, and decrypts the read encrypted content using the received media key. , And outputs the generated content to the reproducing unit 405.
[0081]
Content = D2 (media key, encrypted content)
Here, the decryption algorithm D2 corresponds to the encryption algorithm E2, and is an algorithm for decrypting data encrypted by applying the encryption algorithm E2.
(2) Reproduction unit 405
The reproduction unit 405 receives the content from the decryption unit 404 and reproduces the received content. For example, when the content is music, the reproducing unit 405 converts the content into sound and outputs the sound.
[0082]
1.2. Operation of copyright protection system 10
The operation of the copyright protection system 10 will be described.
1.2.1 Device key allocation, recording medium generation, and content encryption or decryption operations
Here, the operation of assigning a device key to a user device, the operation of generating key information and writing it on a recording medium, and the operation of encrypting or decrypting content by the user device will be described with reference to the flowchart shown in FIG. In particular, the operation of each device until the device key is exposed by an unauthorized third party will be described.
[0083]
The tree structure construction unit 101 of the key management device 100 generates a tree structure table representing the tree structure, writes the generated tree structure table into the tree structure storage unit 102 (step S101), and then, for each node of the tree structure. A device key is generated, and the generated device key is written in the tree structure table in association with each node (step S102). Next, the device key assignment unit 103 outputs the device key, the device key identification information, and the ID information to the corresponding user device (Steps S103 to S104). The key information storage unit of the user device receives the device key, the device key identification information, and the ID information (Step S104), and records the received device key, the device key identification information, and the ID information (Step S111).
[0084]
In this way, a user device recording the device key, the device key identification information, and the ID information is produced, and the produced user device is sold to the user.
Next, the key information generation unit 107 generates a media key (Step S105), generates key information (Step S106), and outputs the generated key information to the recording medium 500a via the key information recording device 200 ( Steps S107 to S108), the recording medium 500a records the key information (step S121).
[0085]
In this manner, the recording medium 500b on which the key information is recorded is generated, and the generated recording medium 500b is distributed to users by selling or the like.
Next, the recording medium in which the key information is recorded is mounted on the user device, and the user device reads the key information from the recording medium (step S131), and is assigned to the user device itself using the read key information. The encrypted media key is identified (step S132), the media key is decrypted (step S133), and the content is encrypted using the decrypted media key and written on the recording medium 500b, or the encrypted content is recorded. The encrypted content is read from the stored recording medium 500c, and the read encrypted content is decrypted using the decrypted media key to generate the content (step S134).
[0086]
As described above, the encrypted content is written on the recording medium 500b by the user device, the encrypted content is read from the recording medium 500c on which the encrypted content is recorded by the user device, decrypted, and the content is reproduced.
Next, an unauthorized third party illegally acquires the device key assigned to the user device by some means. An unauthorized third party distributes the content illegally or produces and sells an unauthorized device imitating a legitimate user device.
[0087]
The operation manager of the key management device 100 or the copyright holder of the content knows that the content is distributed illegally or that an unauthorized device is distributed, and reports that the device key has been leaked. know.
1.2.2 Operation after device key is exposed
Here, after the device key has been exposed by an unauthorized third party, the operation of invalidating nodes in the tree structure corresponding to the exposed device key, the generation of new key information and the writing to the recording medium And the operation of encrypting or decrypting the content by the user device will be described with reference to the flowchart shown in FIG.
[0088]
The revocation device specifying unit 104 of the key management device 100 receives one or more pieces of ID information of one or more user devices to be revoked, and outputs the received ID information to the tree structure updating unit 105 (Step S151). Next, the tree structure update unit 105 receives the ID information, updates the tree structure using the received ID information (step S152), and the key information header generation unit 106 generates the header information and generates the generated header. The information is output to the key information recording device 200 (step S153), the key information generation unit generates a media key (step S154), generates key information (step S155), and stores the generated key information in the key information recording device. 200 (steps S156 to S157), and the recording medium 500a records the key information (step S161).
[0089]
In this way, the recording medium 500b on which the new key information is recorded is generated, and the generated recording medium 500b is sold or distributed to users.
Next, the recording medium on which the new key information is recorded is mounted on the user device, and the user device reads the key information from the recording medium (step S171), and uses the read key information to send the key information to the user device itself. The assigned encrypted media key is specified (step S172), the media key is decrypted (step S173), and the content is encrypted and written to the recording medium 500b using the decrypted media key, or the encrypted content is recorded. The encrypted content is read out from the recorded recording medium 500c and decrypted using the decrypted media key to generate the content (step S174).
[0090]
As described above, the encrypted content is written on the recording medium 500b by the user device, or the encrypted content is read from the recording medium 500c on which the encrypted content is recorded and decrypted by the user device to reproduce the content.
1.2.3 Operation to build and store tree structure
Here, the operation of generating the tree structure table by the tree structure construction unit 101 and writing the tree structure table into the tree structure storage unit 102 will be described using the flowchart shown in FIG. The operation described here is the details of step S101 in the flowchart shown in FIG.
[0091]
First, the tree structure construction unit 101 generates node information including “root” as the node name, and writes the node information to the tree structure table of the tree structure storage unit 102 (step S191).
Next, the tree structure construction unit 101 repeats the following steps S193 to S194 for the layer i (i = 1, 2, 3, 4).
[0092]
The tree structure construction unit 101 generates 2i character strings as node names (step S193), and sequentially writes node information including the generated 2i character strings as node names in the tree structure table (step S194).
1.2.4 Operation of outputting device key and ID information to each user device
Here, an operation of outputting a device key and ID information to each user device by the device key assignment unit 103 will be described with reference to a flowchart shown in FIG. The operation described here is the details of step S103 in the flowchart shown in FIG.
[0093]
The device key assignment unit 103 changes the variable IDs to “0000”, “0001”, “0010”,..., “1110”, “1111”, and for each variable ID, the following step S222 To S227 are repeated.
The device key assignment unit 103 acquires the device key assigned to the root (step S222), acquires the device key A assigned to the node having the first bit of the variable ID as the node name (step S223), The device key B assigned to the node having the first two bits of the ID as the node name is obtained (step S224), and the device key C assigned to the node having the first three bits of the variable ID as the node name is obtained (step S224). In step S225, a device key D assigned to a node having the first 4 bits of the variable ID as a node name is obtained (step S226), and a variable ID as ID information, a device key assigned to a root, and a device key assigned to each node are obtained. The device keys A, B, C, and D are output to the user device (step S227).
[0094]
1.2.5 Tree structure update operation
Here, the operation of updating the tree structure by the tree structure update unit 105 will be described using the flowchart shown in FIG. The operation described here is the details of step S152 in the flowchart shown in FIG.
The tree structure updating unit 105 repeats the following steps S242 to S246 for each of the one or more pieces of ID information received from the invalidation device specifying unit 104.
[0095]
The tree structure updating unit 105 acquires node information including the received ID information as a node name, and adds an invalidation flag “1” to the acquired node information (step S242).
Next, the tree structure updating unit 105 acquires node information including the first three bits of the received ID information as a node name, and adds an invalidation flag “1” to the acquired node information (step S243).
[0096]
Next, the tree structure updating unit 105 acquires node information including the first two bits of the received ID information as a node name, and adds an invalidation flag “1” to the acquired node information (step S244).
Next, the tree structure updating unit 105 acquires node information including the first bit of the received ID information as a node name, and adds an invalidation flag “1” to the acquired node information (step S245).
[0097]
Next, the tree structure updating unit 105 acquires node information including “root” as a node name, and adds an invalidation flag “1” to the acquired node information (Step S246).
1.2.6 Header information generation operation
Here, the operation of generating the header information by the key information header generation unit 106 will be described using the flowchart shown in FIG. The operation described here is the details of step S153 in the flowchart shown in FIG.
[0098]
The key information header generation unit 106 repeats steps S262 to S266 for each layer from layer 0 to layer 3. Further, the key information header generation unit 106 repeats steps S263 to S265 for each target node included in each layer.
The key information header generation unit 106 selects two lower nodes connected immediately below the target node (step S263), and adds an invalidation flag to each of the two selected lower nodes. It is checked whether or not the NRP is present (step S264), and the generated NRP is output (step S265).
[0099]
1.2.7 Key information generation operation
Here, the operation of generating key information by key information generating section 107 will be described using the flowchart shown in FIG. The operation described here is the details of step S155 in the flowchart shown in FIG.
The key information generation unit 107 repeats steps S282 to S287 for each layer from layer 1 to layer 3. Further, the key information generation unit 107 repeats steps S283 to S286 for each target node included in each layer.
[0100]
The key information generation unit 107 determines whether or not the target node has the invalidation flag “1”. If the invalidation flag “1” has not been added (step S283), it is further determined whether or not encryption has been performed with the device key corresponding to the upper node connected to the target node. If the encryption has not been performed (step S284), the device key corresponding to the target node is obtained from the tree structure table (step S285), and the generated media key is encrypted using the obtained device key. An encrypted media key is generated, and the generated encrypted media key is output (step S286).
[0101]
When the invalidation flag “1” is added (step S283) or when encryption is performed (step S284), steps S285 to S286 are not performed.
1.2.8 Specific operation of key information
Here, an operation of specifying one encrypted media key from the key information stored in the recording medium 500b by the specifying unit 303 included in the recording device 300a will be described using a flowchart illustrated in FIG. The operation described here is the details of step S172 in the flowchart shown in FIG.
[0102]
In addition, the operation of the specifying unit 402 included in the playback device 400a is the same as the operation of the specifying unit 303, and thus the description is omitted.
The specifying unit 303 includes a variable X indicating the position of the encrypted media key, a variable A indicating the position of the NRP related to the user device itself, a variable W indicating the number of NRPs in a certain layer, and a value indicating the number of layers in the tree structure. D. Here, an NRP (Node Revolution Pattern, hereinafter referred to as NRP) related to the user device itself is a node existing on a path from a leaf assigned to the user device to a root in a tree structure. 2 shows the NRP of
[0103]
The specifying unit 303 performs analysis from the layer i = 0 to the layer i = D−1 according to the following procedure.
The specifying unit 303 sets variable A = 0, variable W = 1, and variable i = 0 as initial values (step S301).
The variable i is compared with the value D, and when the variable i is larger than the value D (step S302), since the user device has been invalidated, the specifying unit 303 ends the process.
[0104]
When the variable i is smaller than or equal to the value D (step S302), the specifying unit 303 is located at a bit position corresponding to the value of the upper i-th bit of the ID information among the left and right 2 bits forming the A-th NRP. It is checked whether the value B is “0” or “1” (step S303). Here, as shown in FIG. 4, “0” is assigned to the left path and “1” is assigned to the right path in the tree structure, and ID information is configured based on these rules. Therefore, the value “0” of the i-th bit of the ID information corresponds to the left bit of the A-th NRP, and the value “1” of the i-th bit corresponds to the right bit of the A-th NRP.
[0105]
When the value B = 0 (step S303), the specifying unit 303 counts the number of NRPs that are not all “1” among the NRPs checked so far, and substitutes the counted value into a variable X. The variable X thus obtained indicates the position of the encrypted media key. The variable i at this time is device key identification information for identifying a device key (step S307). Next, the specifying unit 303 ends the processing.
[0106]
When the value B = 1 (step S303), the specifying unit 303 counts the number of “1” s of all W NRPs present in the layer i, and substitutes the counted value into a variable W. The variable W thus obtained indicates the number of NRPs existing in the next layer i + 1 (step S304).
Next, the specifying unit 303 counts NRPs from the first NRP in the layer i to the corresponding bit position, and substitutes the counted value into a variable A. Here, the value of the corresponding bit position is not counted. The variable A thus obtained indicates the position of the NRP related to the user device itself among the NRPs of the next layer i + 1 (step S305).
[0107]
Next, the specifying unit 303 calculates a variable i = i + 1 (step S306), then shifts the control to step S302, and repeats the above processing.
1.2.9 Specific example of specific operation of key information
As a specific example, an operation until the user device 14 not invalidated shown in FIG. 5 specifies the encrypted media key using the header information and the key information shown in FIGS. 6 and 7 will be described below. It is assumed that ID information “1101” is assigned to the user device 14 and device keys “KeyA”, “KeyC”, “KeyG”, “KeyN”, and “IK14” are assigned.
[0108]
(Step 1) Since the value of the most significant bit of the ID information “1101” assigned to the user device 14 is “1”, the identifying unit 303 checks the right bit of the first NRP {11} (Step S303). ).
(Step 2) Since the value of the right bit of the first NRP {11} is “1”, the specifying unit 303 continues the analysis (B = 1 in step S303).
[0109]
(Step 3) The identification unit 303 counts the number of “1” in one NRP {11} existing in layer 0. Since the counted value is “2”, it is known that two NRPs exist in the next layer 1 (step S304).
(Step 4) The specifying unit 303 counts the number of “1” of the NRP up to the corresponding bit position. However, the value of the corresponding bit position is not counted. Since the counted value is “1”, the position of the corresponding NRP of the next layer 1 is the first in the layer 1 (step S305).
[0110]
(Step 5) Next, since the value of the second highest bit of the ID information “1101” is “1”, the identifying unit 303 checks the right bit of the first NRP {10} of Layer 1 ( Step S303).
(Step 6) Here, since the value of the right bit of the first NRP {10} of layer 1 is “0”, the identifying unit 303 ends the analysis (B = 0 in step S303).
[0111]
(Step 7) The identification unit 303 counts the number of NRPs that are not all “1” among the NRPs so far. However, the NRP checked last is not counted. Since the counted value is “1”, the position of the encrypted media key is the first in the key information (step S307).
(Step 8) As shown in FIG. 7, the encrypted media key stored in the first position of the key information is E1 (KeyG, media key).
[0112]
The user device 14 holds KeyG. Therefore, the user device 14 can obtain the media key by decrypting the encrypted media key using KeyG.
1.3 Summary
As described above, according to the first embodiment, since a plurality of NRPs are arranged in order of level in the header information of the key information recorded in advance on the recording medium, the key information becomes compact. . Further, the player can efficiently specify the encrypted media key to be decrypted.
[0113]
2. Second embodiment
Here, a second embodiment as a modified example of the first embodiment will be described.
In the first embodiment, as shown in FIG. 18 as an example, there is a possibility that a user device to be invalidated is biased toward a specific leaf in a tree structure. In this case, in the header information of the key information that the key management device 100 writes on the recording medium, the NRP of {11} increases. In the example shown in FIG. 18, since the left half leaf of the tree structure T300 corresponds to all the invalidated devices, the header information in the key information includes 11 NRPs, of which 8 are $ 11 }.
[0114]
In the example shown in FIG. 18, since the left half of the tree structure T300 is an invalidated device, if all the nodes below the left node of the layer 1 are invalidated nodes, There is no need to record the corresponding NRP as header information on the recording medium.
Therefore, in the second embodiment, when the invalidated devices are concentrated on a specific leaf in the tree structure, the copyright protection system 10b (shown in the drawing) can reduce the data amount of the header information. No) will be described.
[0115]
As described in the first embodiment, the key management device 100 generates an NRP as the header information of the key information. Here, the key management device 100 adds one bit to the head of the NRP. When the added bit is “1”, it indicates that all the user devices assigned to the descendant nodes of the node are invalidation devices. In FIG. 19, the nodes T401 and T402 have a head bit of “0” because the devices assigned to the descendant nodes of these nodes are not all invalidation devices, and the NRPs are {011}, It is expressed as {010}. Since the devices assigned to the nodes descended from the node T403 are all invalidation devices, the NRP is expressed as {111}. The key management device 100 does not write the NRP for the descendant node of the node T403 on the recording medium.
[0116]
2.1 Configuration of copyright protection system 10b
The work protection system 10b has the same configuration as the work protection system 10. Here, the description will focus on differences from the copyright protection system 10.
In the second embodiment, it is assumed that the user devices 1 to 8 and the user device 12 are respectively invalidated as shown in FIG.
[0117]
2.1.1 Key Management Device 100
The key management device 100 of the copyrighted work protection system 10b has the same configuration as the key management device 100 described in the first embodiment. Here, the difference will be mainly described.
(1) Tree structure storage unit 102
The tree structure storage unit 102 has a tree structure table D400 shown in FIG. 20 as an example, instead of the tree structure table D100.
[0118]
The tree structure table D400 corresponds to the tree structure T400 shown as an example in FIG. 19, and shows a data structure for expressing the tree structure T400.
The tree structure table D400 is configured to include the same number of node information as the nodes included in the tree structure T400, and each node information corresponds to each node configuring the tree structure T400.
[0119]
Each node information includes a node name, a device key, a revocation flag, and an NRP.
The node name, the device key, and the invalidation flag are the same as those described in the first embodiment, and a description thereof will not be repeated.
The NRP is composed of three bits, and the upper one bit indicates that, as described above, all the user devices assigned to the descendants of the node indicated by the corresponding node name are invalidation devices. The lower two bits have the same contents as the NRP described in the first embodiment.
[0120]
(2) Key information header generation unit 106
If the first bit of the NRP is “1”, the key information header generation unit 106 generates an NRP indicating that all user devices assigned to nodes descended from the node are invalidation devices. , And outputs the generated NRP to the key information recording device 200. The details of the generation of the NRP will be described later.
[0121]
The key information header generation unit 106 generates the header information D500 shown in FIG. 21 as an example. The header information D500 includes NRPs {011}, {111}, {010}, {001}, and {001}, and includes each NRP in this order. Also, as shown in this figure, NRPs {011}, {111}, {} at positions determined by “0”, “1”, “2”, “3”, and “4” in the header information D500, respectively. 010}, {001} and {001} are arranged.
[0122]
(3) Key information generation unit 107
The key information generation unit 107 generates, for example, key information D600 shown in FIG. The key information D600 includes three encrypted media keys. The three encrypted media keys are obtained by encrypting the media keys using device keys KeyG, KeyL, and IK11, respectively.
[0123]
The position where each of the plurality of encrypted media keys is stored in the key information D600 is determined. As shown in this figure, at positions defined by “0”, “1” and “2” in the key information D600, the encrypted media key E1 (KeyG, media key), E1 (KeyL, media key) and E1 (IK11, media key) is arranged.
[0124]
2.1.2 Recording device 300a
The recording device 300a has the same configuration as the recording device 300a described in the first embodiment. Here, the difference will be mainly described.
(1) Identifying unit 303
The identification unit 303 identifies the position X where one encrypted media key exists from the key information by sequentially examining the header information from the top using the ID information and the header information. The detailed operation for specifying the position X where the encrypted media key exists will be described later.
[0125]
2.2 Operation of copyright protection system 10b
The operation of the copyright protection system 10b will be described focusing on differences from the operation of the copyright protection system 10.
2.2.1 Operation of generating header information
Here, the operation of generating the header information by the key information header generation unit 106 will be described using the flowcharts shown in FIGS. The operation described here is the details of step S153 in the flowchart shown in FIG.
[0126]
The key information header generation unit 106 repeats steps S322 to S327 for each layer from layer 0 to layer 3. Further, the key information header generation unit 106 repeats steps S323 to S326 for each target node included in each layer.
The key information header generation unit 106 selects two lower nodes connected immediately below the target node (step S323), and determines whether each of the selected two lower nodes has an invalidation flag. Is generated, an NRP is generated (step S324), an extension bit having a value “0” is added to the head of the generated NRP (step S325), and the NRP added with the extension bit is It is added to the node information corresponding to the node (step S236).
[0127]
When the repetition of steps S321 to S328 is completed as described above, an NRP is added to each node information as in the method described in the first embodiment. Here, a value “0” (1 bit) is added to the head of each NRP. Next, the key information header generation unit 106 repeats steps S330 to S335 for each layer from layer 3 to layer 0. Further, the key information header generation unit 106 repeats steps S331 to S334 for each target node included in each layer.
[0128]
The key information header generation unit 106 selects two lower nodes connected immediately below the target node (step S331), and determines whether NRP {111} is added to both of the selected two nodes. Find out what. However, if the two selected nodes are leaves, it is checked whether or not both of the selected two nodes have an invalidation flag (step S332).
[0129]
Only if both of the selected two lower nodes have NRP {111}, but if the selected two nodes are leaves, it is invalid for both of the selected two lower nodes. Only when the activation flag is attached (step S333), the key information header generation unit 106 rewrites the first bit of the NRP added to the target node to “1” (step S334).
[0130]
When the repetition of steps S329 to S336 is completed as described above, {111} is added to the upper nodes connected to the two lower nodes to which NRP {111} is added. .
Next, the key information header generation unit 106 repeats steps S338 to S343 for each layer from layer 2 to layer 0. Further, the key information header generation unit 106 repeats steps S339 to S342 for each target node included in each layer.
[0131]
The key information header generation unit 106 selects two lower nodes connected immediately below the target node (step S339), and determines whether NRP {111} is added to both of the selected two lower nodes. Is checked (step S340).
Only when NRP {111} is added to both of the selected two lower nodes (step S341), key information header generating section 106 generates a tree of the NRP added to each of the selected two lower nodes. It is deleted from the structure table (step S342).
[0132]
Next, the key information header generation unit 106 sequentially reads and outputs the NRPs stored in the tree structure table from the root (step S345).
As described above, when the first bit of the NRP is “1”, an NRP indicating that all the user devices assigned to the descendant nodes of the node are invalidation devices is generated.
[0133]
2.2.2 Specific operation of key information
Here, an operation of specifying one encrypted media key from the key information stored in the recording medium 500b by the specifying unit 303 included in the recording device 300a will be described using a flowchart illustrated in FIG. The operation described here is the details of step S172 in the flowchart shown in FIG.
[0134]
The operation of specifying one encrypted media key by the specifying unit 303 is the same as the operation described in the first embodiment, and the description will focus on the differences.
When the value B = 0 (step S303), the specifying unit 303 counts the number of NRPs whose lower 2 bits are not all “1” among the NRPs checked so far, and substitutes the counted value into a variable X. I do. The variable X thus obtained indicates the position of the encrypted media key (step S307a). Next, the specifying unit 303 ends the processing.
[0135]
When the value B = 1 (step S303), the specifying unit 303 counts the number of “1” of all W NRPs present in the layer i. However, the NRP in which the most significant bit of the NRP is “1” is not counted. The counted value is substituted for a variable W. The variable W thus obtained indicates the number of NRPs existing in the next layer i + 1. (Step S304a).
[0136]
Next, the specifying unit 303 counts the number of “1” s of the NRP up to the corresponding bit position, counting from the first NRP. However, the NRP in which the most significant bit of the NRP is “1” is not counted. The counted value is substituted for a variable A. Here, the value of the corresponding bit position is not counted. The variable A thus obtained indicates the position of the NRP related to the user device itself among the NRPs of the next layer i + 1 (step S305a).
[0137]
2.2.3 Specific example of specific operation of key information
As a specific example, an operation until the user device 10 which has not been revoked shown in FIG. 19 specifies the encrypted media key using the key information shown in FIGS. 21 and 22 will be described below. It is assumed that ID information “1001” is assigned to the user device 10, and device keys “KeyA”, “KeyC”, “KeyF”, “KeyL”, and “IK10” are assigned.
[0138]
(Step 1) Since the value of the most significant bit of the ID information “1001” assigned to the user device 10 is “1”, the specifying unit 303 determines the right bit of the lower two bits of the first NRP {011}. Is checked (step S303).
(Step 2) Since the value of the right bit of the lower two bits of the first NRP {011} is “1”, the specifying unit 303 continues the analysis (B = 1 in step S303).
[0139]
(Step 3) The identification unit 303 counts the number of “1” in the lower two bits of one NRP {011} existing in layer 0. Since the counted value is “2”, it is known that two NRPs exist in the next layer 1 (step S304a).
(Step 4) The identification unit 303 counts the number of “1” in the lower two bits of NRP {011} up to the corresponding bit position. However, the value of the corresponding bit position is not counted. Since the counted value is “1”, the position of the corresponding NRP of the next layer 1 is the first in the layer 1 (step S305a).
[0140]
(Step 5) Next, since the value of the second highest bit of the ID information “1001” is “0”, the specifying unit 303 determines that the lower two bits of the first NRP {010} of layer 1 The left bit is checked (step S303).
(Step 6) Here, since the value of the left bit of the lower two bits of the first NRP {010} of layer 1 is “1”, the specifying unit 303 continues the analysis (at step S303, B = 1).
[0141]
(Step 7) The identification unit 303 counts the number of “1” in the lower two bits of the two NRPs {111} and {010} existing in layer 1. However, the NRP in which the most significant bit of the NRP is “1” is not counted. Since the counted value is “1”, it is known that one NRP exists in the next layer 2 (step S304a).
[0142]
(Step 8) The specifying unit 303 counts the number of “1” s of the NRP up to the corresponding bit position. However, the value of the corresponding bit position is not counted. Since the counted value is “0”, the position of the corresponding NRP of the next layer 2 is the 0th in layer 2 (step S305a).
(Step 9) Next, since the value of the third bit from the high order of the ID information “1001” is “0”, the specifying unit 303 determines whether the low order 2 bits of the 0th NRP {001} of layer 2 The left bit is checked (step S303).
[0143]
(Step 10) Here, since the value of the left bit of the lower 2 bits of the 0th NRP {001} of the layer 2 is “0”, the specifying unit 303 ends the analysis (at step S303, B = 0).
(Step 11) The identification unit 303 counts the number of NRPs whose lower two bits are not all “1” among the NRPs analyzed so far. The NRP checked last is not counted. Since the counted value is “1”, the position of the encrypted media key is the first in the key information (step S307a).
[0144]
(Step 12) From FIG. 22, the encrypted media key stored in the first position of the key information is E1 (KeyL, media key).
The user device 10 holds KeyL. Therefore, the user device 10 can obtain the media key by decrypting the encrypted media key using KeyL.
[0145]
In the second embodiment described above, when all of the user devices existing in descendants of a certain node are invalidation devices, the added bit is set to “1”. However, if there is a tree structure in which the number of leaf layers is different, and if there is no NRP in the descendant of a certain node, the added bit is set to "1" so that it can be used as a flag indicating the end. Can be.
[0146]
3. Third embodiment
In the second embodiment, a bit indicating whether or not all descendants of a certain node are invalidation devices is added to the head of the NRP. It shows how to keep it even lower.
In the third embodiment described below, instead of adding a bit to the NRP, an NRP having a specific pattern {00} is used to determine whether all descendants of one node are invalidation devices. to decide. This focuses on the fact that NRP {00} is not used in all layers except layer 0. The following describes a copyright protection system 10c (not shown) that can further reduce the amount of header information as compared with the second embodiment.
Here, it is assumed that the user devices 1 to 8 and the user device 12 are respectively invalidated as shown in FIG. In the third embodiment, the NRP is as shown in the first embodiment, but when all the user devices descended from a certain node are invalidating devices, the NRP of the node is set to {00}. Express. For the node T501 in FIG. 28, the descendants of the node are all the invalidation devices, so the NRP is expressed as {00}.
[0147]
3.1 Configuration of copyright protection system 10c
The copyrighted work protection system 10c has the same configuration as the copyrighted work protection system 10. Here, the description will focus on differences from the copyright protection system 10.
3.1.1 Key Management Device 100
The key management device 100 of the copyrighted work protection system 10c has the same configuration as the key management device 100 described in the first embodiment. Here, the difference will be mainly described.
[0148]
(1) Key information header generation unit 106
When the NRP is {00}, the key information header generation unit 106 generates an NRP indicating that all the user devices assigned to the descendant nodes of the node are invalidation devices, and generates the generated NRP. Output to the key information recording device 200. The details of the generation of the NRP will be described later.
[0149]
The key information header generation unit 106 generates, for example, header information D700 shown in FIG. The header information D700 is composed of NRP {11}, {00}, {10}, {01}, and {01}, and includes each NRP in this order. Also, as shown in this figure, NRP {11}, {00}, {} at positions determined by “0”, “1”, “2”, “3”, and “4” in the header information D700, respectively. 10}, {01} and {01} are arranged.
[0150]
(2) Key information generation unit 107
The key information generation unit 107 generates, for example, key information D800 illustrated in FIG. The key information D800 includes three encrypted media keys. The three encrypted media keys are obtained by encrypting the media keys using device keys KeyG, KeyL, and IK11, respectively.
[0151]
The position where each of the plurality of encrypted media keys is stored in the key information D800 is determined. As shown in this figure, at positions determined by “0”, “1” and “2” in the key information D800, the encrypted media key E1 (KeyG, media key), E1 (KeyL, media key) and E1 (IK11, media key) is arranged.
[0152]
3.1.2 Recording device 300a
The recording device 300a of the copyrighted work protection system 10c has the same configuration as the recording device 300a described in the first embodiment. Here, the difference will be mainly described.
(1) Identifying unit 303
The identification unit 303 identifies the position X where one encrypted media key exists from the key information by sequentially examining the header information from the top using the ID information and the header information. The detailed operation for specifying the position X where the encrypted media key exists will be described later.
[0153]
3.2 Operation of copyright protection system 10c
The operation of the copyright protection system 10c will be described focusing on differences from the operation of the copyright protection system 10.
3.2.1 Operation of generating header information
Here, the operation of generating the header information by the key information header generation unit 106 will be described using the flowcharts shown in FIGS. The operation described here is the details of step S153 in the flowchart shown in FIG.
[0154]
The key information header generation unit 106 repeats steps S322 to S327 for each layer from layer 0 to layer 3. Further, the key information header generation unit 106 repeats steps S323 to S326a for each target node included in each layer.
The key information header generation unit 106 selects two lower nodes connected immediately below the target node (step S323), and determines whether each of the selected two lower nodes has an invalidation flag. Is checked to generate an NRP (step S324), and the generated NRP is added to the node information corresponding to the target node in the tree structure table (step S236a).
[0155]
When the repetition of steps S321 to S328 is completed as described above, the NRP is added to each node in the same manner as in the method described in the first embodiment.
Next, key information header generating section 106 repeats steps S330 to S335 for each layer from layer 3 to layer 0. Further, the key information header generation unit 106 repeats steps S331 to S334a for each target node included in each layer.
[0156]
The key information header generation unit 106 selects two lower nodes connected immediately below the target node (step S331), and determines whether NRP {11} is added to both of the selected two nodes. Find out what. However, if the two selected nodes are leaves, it is checked whether or not both of the selected two nodes have an invalidation flag (step S332).
[0157]
Only if both of the selected two lower nodes have NRP {11}, but if the selected two nodes are leaves, it is invalid for both of the selected two lower nodes. Only when the activation flag is attached (step S333), the key information header generation unit 106 rewrites the NRP added to the target node to {00} (step S334a).
[0158]
When the repetition of steps S329 to S336 is completed as described above, {00} is added to the upper nodes connected to the two lower nodes to which NRP {11} is added. .
Next, the key information header generation unit 106 repeats steps S338 to S343 for each layer from layer 2 to layer 0. Further, the key information header generation unit 106 repeats steps S339 to S342a for each target node included in each layer.
[0159]
The key information header generation unit 106 selects two lower nodes connected immediately below the target node (step S339), and determines whether NRP {00} is added to both of the selected two lower nodes. Is checked (step S340a).
Only when NRP {00} is added to both of the selected two lower nodes (step S341a), the key information header generation unit 106 generates a tree of the NRP added to each of the selected two lower nodes. It is deleted from the structure table (step S342a).
[0160]
Next, the key information header generation unit 106 sequentially reads and outputs the NRPs stored in the tree structure table from the root (step S345).
As described above, when the NRP is {00}, an NRP indicating that all the user devices assigned to the descendant nodes of the node are invalidation devices is generated.
[0161]
3.2.2 Specific operation of key information
Here, an operation of specifying one encrypted media key from the key information stored in the recording medium 500b by the specifying unit 303 included in the recording device 300a will be described with reference to the flowchart illustrated in FIG. The operation described here is the details of step S172 in the flowchart shown in FIG.
[0162]
The operation of specifying one encrypted media key by the specifying unit 303 is the same as the operation described in the first embodiment, and the description will focus on the differences.
When the value B = 0 (step S303), the specifying unit 303 counts the number of NRPs that are not all “1” and the number of NRPs that are not all “0” among the NRPs checked so far. However, only for layer 0, the NRP of all “0” is counted. The counted value is substituted for a variable X. The variable X thus obtained indicates the position of the encrypted media key. The variable i at this time is device key identification information for identifying a device key (step S307b). Next, the specifying unit 303 ends the processing.
[0163]
3.2.3 Specific example of specific operation of key information
As a specific example, an operation until the user device 10 that has not been revoked shown in FIG. 28 specifies an encrypted media key using the key information shown in FIGS. 29 and 30 will be described below. It is assumed that ID information “1001” is assigned to the user device 10, and device keys “KeyA”, “KeyC”, “KeyF”, “KeyL”, and “IK10” are assigned.
[0164]
(Step 1) Since the value of the most significant bit of the ID information “1001” assigned to the user device 10 is “1”, the identification unit 303 checks the right bit of the first NRP {11} (Step S303). ).
(Step 2) Since the value of the right bit of the first NRP {11} is “1”, the specifying unit 303 continues the analysis (B = 1 in step S303).
[0165]
(Step 3) The identification unit 303 counts the number of “1” in one NRP {11} existing in layer 0. Since the counted value is “2”, it is known that two NRPs exist in the next layer 1 (step S304).
(Step 4) The specifying unit 303 counts the number of “1” of the NRP up to the corresponding bit position. However, the value of the corresponding bit position is not counted. Since the counted value is “1”, the position of the corresponding NRP of the next layer 1 is the first in the layer 1 (step S305).
[0166]
(Step 5) Next, since the value of the second highest bit of the ID information “1001” is “0”, the identifying unit 303 checks the left bit of the first NRP {10} of Layer 1 ( Step S303).
(Step 6) Since the value of the left bit of the first NRP {10} of the layer 1 is “1”, the identifying unit 303 continues the analysis (B = 1 in step S303).
[0167]
(Step 7) The identification unit 303 counts the number of “1” s of two NRPs existing in layer 1. Here, NRP {00} is not counted. Since the counted value is “1”, it is known that one NRP exists in the next layer 2 (step S304).
(Step 8) The specifying unit 303 counts the number of “1” s of the NRP up to the corresponding bit position. However, the value of the corresponding bit position is not counted. Since the counted value is “0”, the position of the corresponding NRP of the next layer 2 is the 0th in layer 2 (step S305).
[0168]
(Step 9) Next, since the value of the third bit from the high order of the ID information “1001” is “0”, the identifying unit 303 determines that the low order 2 bits of the 0th NRP {01} of the layer 2 The left bit is checked (step S303).
(Step 10) Here, since the value of the left bit of the lower 2 bits of the 0th NRP {01} of the layer 2 is “0”, the identifying unit 303 ends the analysis (at step S303, B = 0).
[0169]
(Step 11) The identifying unit 303 counts the number of NRPs that are not all “1” among the NRPs analyzed so far. The NRP checked last is not counted. Since the counted value is “1”, the position of the encrypted media key is the first in the key information.
(Step 12) From FIG. 30, the encrypted media key stored at the first position of the key information is E1 (KeyL, media key).
[0170]
The user device 10 holds KeyL. Therefore, the user device 10 can obtain the media key by decrypting the encrypted media key using KeyL.
4. Fourth embodiment
In the first embodiment, a plurality of NRPs are arranged in order from an upper layer to a lower layer, and NRPs having the same layer are arranged in order from left to right.
[0171]
In a fourth embodiment described below, a copyright protection system 10d (not shown) that outputs a plurality of NRPs in another arrangement will be described.
4.1 Configuration of copyright protection system 10d
The copyrighted work protection system 10d has the same configuration as the copyrighted work protection system 10. Here, the description will focus on differences from the copyright protection system 10.
[0172]
4.1.1 Key Management Device 100
The key management device 100 of the copyrighted work protection system 10d has the same configuration as the key management device 100 described in the first embodiment. Here, the difference will be mainly described.
(1) Tree structure storage unit 102
The tree structure storage unit 102 is specifically composed of a hard disk unit, and has a tree structure table D1000 as shown as an example in FIG.
[0173]
The tree structure table D1000 corresponds to the tree structure T600 shown as an example in FIG. 36, and shows a data structure for expressing the tree structure T600. As will be described later, a data structure for expressing the tree structure T600 by the tree structure construction unit 101 is generated as a tree structure table D1000 and written to the tree structure storage unit 102.
(Tree structure T600)
As shown in FIG. 36, the tree structure T600 is a binary tree including five layers from layer 0 to layer 4, similarly to the tree structure T100.
[0174]
The number of nodes included in each layer of the tree structure T600 is the same as that of the tree structure T100. Also, the numbers assigned to the paths connecting the upper node and the lower node are the same as in the tree structure T100. In the tree structure T600, nodes marked with “x” are invalidated.
The node name of the node that is the root of the tree structure T600 is blank. The node names of the other nodes are set similarly to the tree structure T100.
[0175]
Each node name is represented by four digits. The node name of the root node is composed of four digits of blank characters. The node name “0” is, specifically, a character “0” +1 digit blank character + 1 digit blank character + 1 digit blank character. The node name “00” is a character “0” + a character “0” +1 digit blank character + 1 digit blank character. The node name “101” is a character “1” + character “0” + character “1” + 1-digit blank character. The node name “1111” is a character “1” + a character “1” + a character “1” + a character “1”. The same applies to other node names.
[0176]
In the tree structure T600, {10} or the like added near each node indicates an NRP. The number enclosed by a circle near each node indicates the order in which NRPs are output.
(Tree structure table D1000)
The tree structure table D1000 is configured to include the same number of node information as the nodes included in the tree structure T600, and each node information corresponds to each node configuring the tree structure T600.
[0177]
Each node information includes a node name, a device key, and a revocation flag. The node name, the device key, and the invalidation flag are the same as those in the tree structure table D100, and a description thereof will not be repeated.
Each node information is stored in the tree structure table D1000 in the order according to the order rule 2 shown below. The order rule 2 shown here is applied even when each node information is sequentially read from the tree structure table D1000 by the recording devices 300a, 300b, 300c,..., The reproducing devices 400a, 400b, 400c,. Is done.
[0178]
(A) At the head of the tree structure table D1000, node information corresponding to the root node is stored.
(B) After node information corresponding to one node (referred to as a specific node) is stored in the tree structure table D1000, there are two lower nodes connected to the lower side of the specific node. , The node information is arranged as shown below. Subsequent to the node information corresponding to the specific node, the node information corresponding to the left node and all the nodes connected to the lower nodes of the left node among the two lower nodes is stored. Subsequently, node information corresponding to the right node of the two lower nodes and all nodes connected to the lower nodes of the right node is stored.
[0179]
(C) Within (b), (b) is applied again.
Specifically, each node information is stored in the tree structure table D100 shown in FIG. 37 in the following order.
Blank (indicating the route), “0”, “00”, “000”, “0000”, “0001”, “001”, “0010”, “0011”, “01”, “010”,. , “11”, “110”, “1100”, “1101”, “111”, “1110”, “1111”
(2) Tree structure construction unit 101
The tree structure construction unit 101 constructs an n-ary tree data structure for managing device keys, and stores the constructed tree structure in the tree structure storage unit 102. Here, n is an integer of 2 or more, and as an example, n = 2.
[0180]
The details of the operation of constructing the tree structure by the tree structure construction unit 101 and storing it in the tree structure storage unit 102 will be described later.
Next, the tree structure construction unit 101 generates a device key using a random number for each node of the tree structure, and writes the generated device key in the tree structure table in association with each node.
[0181]
(3) Key information header generator 106
The key information header generation unit 106 generates a plurality of NRPs and outputs the generated NRPs to the key information recording device 200 as header information. The detailed operation of generating the NRP will be described later.
FIG. 38 shows an example of header information generated by the key information header generation unit 106. The header information D900 shown in this figure includes NRP {11}, {11}, {11}, {10}, {01}, {11}, {10}, {10}, {10}, {01}, {11}, and includes each NRP in this order.
[0182]
Note that the positions where the plurality of NRPs are stored in the header information D900 are determined. As shown in this figure, “0”, “1”, “2”, “3”, “4”, “5”, “6”, “7”, “8”, “9” are included in the header information D900. , "10", NRP {11}, {11}, {11}, {10}, {01}, {11}, {10}, {10}, {10}, {01} and {11} are arranged.
[0183]
(4) Key information generation unit 107
The key information generation unit 107 encrypts the media key by using the device key corresponding to the node that has not been revoked in the same order as the order in which the node information is stored in the tree structure table. Is generated, and the generated encrypted media key is output as key information.
[0184]
The key information generation unit 107 generates and outputs the following key information as an example.
The key information includes device keys “IK2”, “IK3”, “IK6”, “IK8”,
The encrypted media key E1 (IK2, media key), E1 (IK3, media key), and E1 (IK6, media key) are generated by encrypting the media key using “KeyL” and “KeyG”, respectively. ), E1 (IK8, media key), E1 (KeyL, media key), and E1 (KeyG, media key). In the key information, at positions determined by “0”, “1”, “2”, “3”, “4”, “5”, and “6”, the encrypted media key E1 (IK2, media key ), E1 (IK3, media key), E1 (IK6, media key), E1 (IK8, media key), E1 (KeyL, media key), and E1 (KeyG, media key).
[0185]
4.1.2 Recording device 300a
The recording device 300a of the copyrighted work protection system 10d has the same configuration as the recording device 300a described in the first embodiment. Here, the difference will be mainly described.
(1) Identifying unit 303
The identification unit 303 identifies the position X where one encrypted media key exists from the key information by sequentially examining the header information from the top using the ID information and the header information. The detailed operation for specifying the position X where the encrypted media key exists will be described later.
[0186]
4.2 Operation of copyright protection system 10d
The operation of the copyright protection system 10d will be described focusing on differences from the operation of the copyright protection system 10.
4.2.1 Operation to build and store tree structure
Here, the operation of generating the tree structure table by the tree structure construction unit 101 and writing the tree structure table into the tree structure storage unit 102 will be described using the flowchart shown in FIG. The operation described here is the details of step S101 in the flowchart shown in FIG.
[0187]
The tree structure construction unit 101 generates node information including a blank node name and writes the node information in the tree structure table (step S401).
Next, the tree structure construction unit 101 repeats the following steps S403 to S404 for layer i (i = 1, 2, 3, 4).
The tree structure construction unit 101 generates 2i character strings as node names. Specifically, when i = 1, 21 = 2 character strings “0” and “1” are generated. When i = 2, 22 = 4 character strings “00”, “01”, “10” and “11” are generated. When i = 3, 23 = 8 character strings “000”, “001”, “010”,..., “111” are generated. When i = 4, 24 = 16 character strings “0000”, “0001”, “0010”, “0011”,..., “1111” are generated (step S403). Next, the tree structure construction unit 101 writes the node information including each of the generated node names into the tree structure table (step S404).
[0188]
Next, the tree structure construction unit 101 rearranges the node information included in the tree structure table in ascending order of the node names, and overwrites the rearranged node information on the tree structure table again (step S406). ).
Thus, a tree structure table D1000 shown as an example in FIG. 37 is generated. The generated tree structure table D1000 includes each node information according to the order rule 2 described above. At this stage, each device key has not yet been recorded in the tree structure table D1000.
[0189]
4.2.2 Operation of generating header information
Here, the operation of generating the header information by the key information header generation unit 106 will be described using the flowcharts shown in FIGS. The operation described here is the details of step S153 in the flowchart shown in FIG.
[0190]
The key information header generation unit 106 attempts to read node information one by one from the tree structure table in order according to the order rule 2 (step S421).
Upon detecting the end of the node information (Step S422), the key information header generation unit 106 shifts the control to Step S427.
If the end of the node information is not detected and the node information is read (step S422), the key information header generation unit 106 determines whether the two nodes connected to the lower side of the target node corresponding to the read node information The information of the two nodes corresponding to the lower nodes of is read out (step S423).
[0191]
If there is a lower node (step S424), the key information header generation unit 106 determines whether both of the two pieces of node information corresponding to the two read lower nodes have an invalidation flag. The NRP is checked to generate an NRP (step S425), and the generated NRP is added to the node information corresponding to the read target node (step S426). Next, the process returns to step S421 to repeat the processing.
[0192]
If there is no lower node (step S424), the process returns to step S421 to repeat the processing.
Next, the key information header generation unit 106 attempts to read node information one by one from the tree structure table in order according to the order rule 2 (step S427).
Upon detecting the end of the node information (step S422), the key information header generation unit 106 ends the processing.
[0193]
If the end of the node information has not been detected and the node information has been read (step S428), the key information header generation unit 106 checks whether or not the read node information has an NRP added thereto. If there is (Step S429), the added NRP is output (Step S430), and the process returns to Step S427 to repeat the processing.
[0194]
When the NRP has not been added (step S429), the key information header generation unit 106 returns to step S427 and repeats the processing.
4.2.3 Specific operation of key information
Here, an operation of specifying one encrypted media key from the key information stored in the recording medium 500b by the specifying unit 303 included in the recording device 300a will be described with reference to the flowchart illustrated in FIG. The operation described here is the details of step S172 in the flowchart shown in FIG.
[0195]
In addition, the operation of the specifying unit 402 included in the playback device 400a is the same as the operation of the specifying unit 303, and thus the description is omitted.
The specifying unit 303 checks whether to check the variable i indicating the bit position of the ID information to be checked, the variable L indicating the layer including the currently checked NRP, the variable X storing the layer of the node at the branch point, and NRP. And a value D indicating the number of layers in the tree structure. Further, it has a pointer A indicating the position of the NRP to be checked.
[0196]
The specifying unit 303 sets variable i = 0, variable L = 0, flag F = 0, variable X = 0, and pointer A = 0 (step S1300).
Next, the specifying unit 303 determines whether or not the variable L is smaller than the number of layers D-1. If the values are larger or equal (step S1301), the specifying unit 303 inputs the last layer number of the variable X for the variable L. The variable X is a last-in first-out variable, and the output value is to be deleted. That is, if the variable X is input in the order of layer 0, layer 2, and layer 3, the first output is the layer 3, the layer 3 is deleted, and the layer 2 is output next (step S1313). ). Next, the process returns to step S1301 to repeat the processing.
[0197]
When the variable L is smaller than the number of layers D-1 (step S1301), the specifying unit 303 determines whether or not the variable i = variable L. If the variable i is not the variable L (step S1302), the specifying unit 303 shifts the control to step S1310.
When the variable i = the variable L (step S1302), the specifying unit 303 further determines whether or not the flag F = 0. If the flag F is not 0 (step S1303), the specifying unit 303 sets the flag F = 0 (step S1309), and the specifying unit 303 shifts the control to step S1310.
[0198]
If the flag F is 0 (step S1303), the specifying unit 303 checks the value B at the corresponding bit position of the A-th NRP according to the value of the upper i-th bit of the ID information, and sets the variable i = i + 1. (Step S1304).
Next, the specifying unit 303 checks whether or not the value B = 1. If the value B is not equal to 1 (step S1305), the specifying unit 303 specifies that the device to which the ID information is assigned is not invalidated. The unit 303 ends the processing.
[0199]
If the value B is 1 (step S1305), it is checked whether or not the variable is ≠ D-1. If the value is not ≠ D-1 (step S1306), the device to which this ID information is assigned is invalidated. The specifying unit 303 terminates the process. Next, if the variable is {D-1} (step S1306), the specifying unit 303 determines whether or not the NRP is {11} and the (i−1) th value of the ID information is “1”. I do. If No (step S1307), the specifying unit 303 shifts the control to step S1310.
[0200]
If Yes (step S1307), the specifying unit 303 sets the flag F = 1 (step S1308), and then sets L = L + 1 (step S1310). If NRP is {11}, the layer number is set to the variable X (Step S1311), A = A + 1 (Step S1312), and the process returns to Step S1310 to repeat the processing.
[0201]
5. Fifth embodiment
In the fourth embodiment, a plurality of NRPs are arranged according to the order rule 2.
In the fifth embodiment described below, a plurality of NRPs are output by arranging according to the order rule 2 in the same manner as the copyright protection system 10d described in the fourth embodiment. Similarly to the copyright protection system 10b described above, when the invalidated devices are concentrated on a specific leaf in the tree structure, the copyright protection system 10e (shown in the drawing) can reduce the data amount of the header information. Not described).
[0202]
5.1 Configuration of copyright protection system 10e
The work protection system 10e has the same configuration as the work protection system 10d. Here, the description will focus on differences from the copyright protection system 10d.
5.1.1 Key Management Device 100
The key management device 100 of the copyrighted work protection system 10e has the same configuration as the key management device 100d described in the fourth embodiment. Here, the difference will be mainly described.
[0203]
(1) Tree structure storage unit 102
The tree structure storage unit 102 has a tree structure table. The tree structure table included in the tree structure storage unit 102 has the same structure as the tree structure table D1000 included in the tree structure storage unit 102 described in the fourth embodiment, and is included in the tree structure table. Each node information further includes an NRP.
[0204]
(2) Key information header generation unit 106
The key information header generation unit 106 generates a plurality of NRPs and outputs the generated NRPs to the key information recording device 200 as header information. Each NRP is composed of 3 bits as described in the second embodiment.
The detailed operation of generating the NRP will be described later.
[0205]
5.1.2 Recording device 300a
The recording device 300a of the copyrighted work protection system 10e has the same configuration as the recording device 300a described in the fourth embodiment. Here, the difference will be mainly described.
(1) Identifying unit 303
The identification unit 303 identifies the position X where one encrypted media key exists from the key information by sequentially examining the header information from the top using the ID information and the header information. The detailed operation for specifying the position X where the encrypted media key exists will be described later.
[0206]
5.2 Operation of copyright protection system 10e
The operation of the copyright protection system 10e will be described focusing on differences from the operation of the copyright protection system 10d.
5.2.1 Operation of generating header information
Here, the operation of generating the header information by the key information header generation unit 106 will be described using the flowcharts shown in FIGS. The operation described here is the details of step S153 in the flowchart shown in FIG.
[0207]
The key information header generation unit 106 attempts to read node information one by one from the tree structure table in order according to the order rule 2 (step S451).
Upon detecting the end of the node information (Step S452), the key information header generation unit 106 transfers the control to Step S458.
If the end of the node information is not detected and the node information is read (step S452), the key information header generation unit 106 determines whether the two nodes connected to the lower side of the target node corresponding to the read node information The node information of the two nodes corresponding to the lower nodes is read out (step S453).
[0208]
When there is a lower node (step S454), the key information header generation unit 106 determines whether or not both of the two pieces of node information corresponding to the two read lower nodes have an invalidation flag. Then, an NRP is generated (step S455), and an extension bit having a value “0” is added to the head of the generated NRP (step S456). It is added to the corresponding node information (step S457). Next, the process returns to step S451 to repeat the processing.
[0209]
If there is no lower node (step S454), the process returns to step S451 to repeat the processing.
Next, the key information header generation unit 106 tries to read node information one by one from the tree structure table in accordance with the order rule 2 (step S458).
Upon detecting the end of the node information (step S459), the key information header generation unit 106 shifts the control to step S465.
[0210]
If the end of the node information has not been detected and the node information has been read (step S459), the key information header generation unit 106 checks all the nodes connected to the lower side of the target node corresponding to the read node information. All node information corresponding to the lower node is read (step S460).
When there is a lower node (step S461), the key information header generation unit 106 checks whether or not all the node information corresponding to all the read lower nodes has an invalidation flag (step S462). ), The head bit of the NRP added to the node information corresponding to the target node is rewritten to “1” only when it is added to all the node information (step S463) (step S464).
[0211]
Next, the process returns to step S458 to repeat the processing.
If there is no lower node (step S461), the process returns to step S458 and repeats the process.
Next, the key information header generation unit 106 tries to read node information one by one from the tree structure table in order according to the order rule 2 (step S465).
[0212]
Upon detecting the end of the node information (step S466), the key information header generation unit 106 shifts the control to step S472.
When the end of the node information has not been detected and the node information has been read (step S466), the key information header generation unit 106 checks all the nodes connected to the lower side of the target node corresponding to the read node information. All node information corresponding to the lower node is read (step S467).
[0213]
If there is a lower node (step S468), the key information header generation unit 106 checks whether or not NRP {111} is added to all the node information corresponding to all the read lower nodes (step S468). Only when it is added to all the node information (step S469), a deletion flag is added to all the node information (step S471).
[0214]
Next, the process returns to step S465 to repeat the processing.
If there is no lower node (step S468), the process returns to step S465 to repeat the processing.
Next, the key information header generation unit 106 tries to read node information one by one from the tree structure table in order according to the order rule 2 (step S472).
[0215]
Upon detecting the end of the node information (step S473), the key information header generation unit 106 ends the processing.
If the end of the node information has not been detected and the node information has been read (step S473), the key information header generation unit 106 checks whether or not the read node information has an NRP added thereto. If the deletion flag is added (step S474), it is further checked whether or not the deletion flag is added. If the deletion flag is not added (step S475), the added NRP is output (step S476). Then, the process returns to step S472 to repeat the processing.
[0216]
When the NRP has not been added (step S474) or when the deletion flag has been added (step S475), the key information header generation unit 106 returns to step S472 and repeats the processing.
5.2.2 Specific operation of key information
Here, an operation of specifying one encrypted media key from the key information stored in the recording medium 500b by the specifying unit 303 included in the recording device 300a will be described using a flowchart illustrated in FIG. The operation described here is the details of step S172 in the flowchart shown in FIG.
[0219]
In addition, the operation of the specifying unit 402 included in the playback device 400a is the same as the operation of the specifying unit 303, and thus the description is omitted.
The description here will focus on the differences from the flowchart shown in FIG.
As in the case of the fourth embodiment, the specifying unit 303 includes a variable i indicating a bit position of ID information to be checked, a variable L indicating a layer including the currently checked NRP, and a layer of a node at a branch point. Has a flag F (initial value, F = 0) for determining whether or not to check the NRP, and has a value D indicating the number of layers in the tree structure. Further, it has a pointer A indicating the position of the NRP to be checked.
[0218]
When the value B = 1 (step S1305), only when the most significant bit of the NRP is “1” (step S1316), the specifying unit 303 sets the variable i = D−1 and the variable L = D−1 (Step S1317).
When the NRP is {11} and the most significant bit of the NRP is not “1”, the specifying unit 303 stores the layer number in a variable X (Step S1311).
[0219]
6. Other modifications
Although the present invention has been described based on the above embodiment, it is needless to say that the present invention is not limited to the above embodiment. The following cases are also included in the present invention.
(1) As an embodiment of the present invention, an invalidation method according to a conventional method has been described as an example, but the present invention is not limited to the above embodiment. A key management device holds a certain tree structure, a recording device or a playback device is assigned to a leaf of the tree structure, and a device key associated with a node is assigned to each recording device or each playback device. If the revocation of the device key and the creation of the key information are performed using this tree structure, what is the method of allocating the device key associated with the node and the method of allocating the device key to each device? It may be something.
[0220]
(2) Also, as an embodiment of the present invention, a tree structure of a binary tree has been described as an example, but the present invention is not limited to a binary tree. Generally, it can also be realized by an n-ary tree. At this time, the ID information is assigned 0 to n-1 for the n paths descending from a certain node, and is assigned on the path from the leaf to the root as in the above-described embodiment. The values are set by concatenating the values in order from the top.
[0221]
(3) In the embodiment of the present invention described above, a recordable medium such as a DVD-RAM has been described. However, pre-recorded media such as DVD-Video can be realized in a similar manner.
The copyright protection system 10f for pre-recorded media will be described.
[0222]
As shown in FIG. 48, the copyright protection system 10f includes a key management device 100, a data recording device 1701, data reproducing devices 1703a, 1703b, 1703c,...
As described in the above embodiment, the key management device 100 outputs the key information to which the header information is added and the content key to the data recording device 1701, and outputs the plurality of device keys, each device key identification information, and the ID. The information is output to the data reproducing devices 1703a, 1703b, 1703c,...
[0223]
The recording medium 500a, which is a pre-recorded medium, is mounted on the data recording device 1701. The data recording device 1701 receives the key information and the media key from the key management device 100, encrypts the content using the media key, generates encrypted content, and records the generated encrypted content and the received key information. Write to medium 500a. Thus, the recording medium 500d in which the encrypted content and the key information are written is produced.
[0224]
The recording medium 500d is distributed in the market, and the user obtains the recording medium 500d. The user attaches the recording medium 500d to the data reproducing device 1703a.
The data reproducing device 1703a has previously received a plurality of device keys, each device key identification information, and ID information from the key management device 100, and when the recording medium 500d is mounted, the key information and the encrypted content from the recording medium 500d. Is read out, the encrypted media key is identified from the key information, the identified encrypted media key is decrypted using the device key, and the encrypted content is decrypted using the obtained media key to generate the content. I do.
[0225]
In such a system as well, by the same operation as the key management device 100 shown in the embodiment, the header information to be recorded on the recording medium is reduced, and the encrypted media key to be efficiently decrypted by each data reproducing device is determined. Can be identified.
(4) In the above, the case where the present invention is used to protect the copyright of digital contents has been described as an example. However, the application of the present invention is not limited to this. It can be used for the purpose of so-called conditional access, which provides information to members other than the members.
[0226]
(5) In the embodiment of the present invention, an example has been shown in which key information or encrypted content is distributed using a recording medium, but a communication medium represented by the Internet is used instead of a recording medium. You may.
(6) The key management device and the key information recording device may be configured as an integrated device.
[0227]
(7) In the above embodiment, device keys are allocated to all nodes constituting the n-ary tree in advance, and all device keys existing on the path from the leaf to the root are used for the leaf. Although it is described that the device key is allocated, the present invention is not limited to such a device key allocation method.
Instead of assigning device keys to all nodes constituting the n-ary tree in advance, device keys may be assigned to only some of the nodes in advance.
[0228]
Also, instead of allocating all device keys existing on the path from the leaf to the root to the use device corresponding to the leaf, a part of all the device keys existing on the path from the leaf to the root is used. May be assigned to the use device.
(8) As an example, assume a tree structure shown in FIG. In an initial state where the device key is not leaked, the media key is encrypted using the device key KeyA, and an encrypted media key is generated.
[0229]
At this time, it is assumed that any one of the user devices 1 to 16 is hacked by a malicious third party, the device key KeyA is exposed, and a clone device having only the device key KeyA therein is manufactured. At this time, since the clone device has only the device key KeyA, it is not possible to specify which of the user devices 1 to 16 is the hacked device. On the other hand, since the clone device has the device key KeyA, it is possible to illegally obtain a correct media key.
[0230]
In such a situation, only the device key KeyA is invalidated, and a media key is used by using a device key that covers all devices, in other words, by using a device key shared by all devices. Must be encrypted. Here, the reason why all the devices are covered is that in such a situation, it is not possible to determine which device the hacked device is.
[0231]
Therefore, the media key is encrypted using the device keys KeyB and KeyC, respectively, to generate two encrypted media keys.
Next, when the device key KeyB is exposed, the device key KeyB is invalidated, and further, the media key is encrypted using each of the device keys KeyC, KeyD, and KeyE to generate three encrypted media keys. I do.
[0232]
When such an operation is repeated for the height of the tree, the hacked device is finally specified.
In order to cope with the situation described above, when invalidating only the device key KeyA, the key management device adds NRP {100} to the node corresponding to the device key KeyA. In the case of the tree structure shown in FIG. 4, NRP {100} is added to the route.
[0233]
A leading bit “1” of NRP {100} indicates that this node is invalidated, and a bit string “00” following the leading bit “1” is connected below this node. Both nodes indicate that they have not been revoked.
That is, in the case of the tree structure shown in FIG. 4, if NRP {100} is added to the root, two media keys generated by encrypting the media key using the device keys KeyB and KeyC are used. An encrypted media key will be present. As described above, the first bit “1” of the NRP can be said to be a flag indicating that there are two encrypted media keys below this node.
[0234]
On the other hand, as described in the second embodiment, the leading bit “1” when the NRP is {111} indicates that there is no NRP below this node.
This will be described in more detail below.
(Key management device 100)
Here, it is assumed that the key management device 100 generates a tree structure T100 shown in FIG. 4, allocates a device key to each node, and allocates a user device to each leaf, as shown in FIG.
[0235]
Thereafter, as illustrated in FIG. 49, the device keys KeyA, KeyB, and KeyE assigned to the root T701, the node T702, and the node T703, respectively, leaked as described above. Then, the device keys KeyA, KeyB, and KeyE are invalidated, header information and key information are generated, and the generated header information and key information are written to a recording medium via the key information recording device 200.
[0236]
(A) Invalidation of device keys KeyA, KeyB and KeyE
The key management device 100 adds an invalidation flag “1” to the node information including the device keys KeyA, KeyB, and KeyE in the tree structure table.
(B) Generation of header information
The key management device 100 generates an NRP {010} to be added to the root T701 by using the tree structure table including the node information to which the invalidation flag is added, and generates the generated NRP {010} as part of the header information. Is written to a recording medium via the key information recording device 200. Here, the leading bit “0” of the NRP indicates that one of the two lower nodes connected immediately below the root T701 is invalidated, and the other is not invalidated. As described in the above embodiment, the lower two bits “10” of the NRP indicate that the left node T702 of the two lower nodes connected immediately below the root T701 is invalidated. The right node T704 indicates that it has not been invalidated.
[0237]
Next, the key management device 100 generates NRP {001} to be added to the node T702, and writes the generated NRP {001} as a part of header information to the recording medium via the key information recording device 200. Here, the first bit “0” of the NRP indicates that one of the two lower nodes connected immediately below the node T702 is invalidated, and the other is not invalidated. The lower two bits “01” of the NRP indicate that the left node T705 is not invalidated and the right node T703 is invalid among the two lower nodes connected immediately below the node T702. It has been shown that
[0238]
Next, the key management device 100 generates an NRP {100} to be added to the node T703, and writes the generated NRP {100} as a part of the header information to the recording medium via the key information recording device 200. As described above, the NRP {100} does not invalidate both of the two lower nodes T706 and T707 connected immediately below the node T703, and these two nodes T706 and T707 have , Respectively, indicates that an encrypted media key exists.
[0239]
Thus, the header information D1000 shown in FIG. 50 is written on the recording medium. As shown in the figure, the header information D1000 includes NRP {010}, {001}, and {100} in this order.
(C) Generation of key information
Next, the key management device 100 generates an encrypted media key by encrypting the media key using some of the device keys that have not been revoked, as described below. The key information including the encrypted media key and the header information including the NRP are written to the recording medium via the key information recording device 200.
[0240]
First, the key management device 100 generates an encrypted media key by encrypting a media key using a device key assigned to a node existing in the highest layer among device keys that have not been revoked. I do. Here, as shown in FIG. 49, among the device keys that have not been revoked, the device key assigned to the node existing in the highest layer is the device key KeyC assigned to the node T704. The key management device 100 encrypts the media key using the device key KeyC, generates an encrypted media key E1 (KeyC, media key), and generates the encrypted media key E1 (KeyC, media key). The data is written to a recording medium via the key information recording device 200.
[0241]
Next, the key management device 100 invalidates the nodes T704 to which the device key KeyC has been allocated and the other nodes except for all nodes lower than the node T704, which have been revoked to these other nodes. A media key is encrypted by using a device key assigned to a node existing in the highest layer among device keys that are not present, and an encrypted media key is generated. Here, since the corresponding node is the node T705, the key management device 100 encrypts the media key using the device key KeyD assigned to the node T705, and encrypts the encrypted media key E1 (KeyD, media key ) Is generated, and the generated encrypted media key E1 (KeyD, media key) is written to the recording medium via the key information recording device 200.
[0242]
Next, the key management device 100 transmits the nodes T704 and all the nodes below the node T704 to which the device key KeyC is assigned, and the nodes T705 and T705 to which the device key KeyD is assigned. For other nodes except for all nodes, the media key is used by using the device key assigned to the node existing in the highest layer among the non-invalidated device keys assigned to these other nodes. To generate an encrypted media key. Here, since the corresponding node is the node T706, the key management device 100 encrypts the media key using the device key KeyJ assigned to the node T706, and encrypts the encrypted media key E1 (KeyJ, media key ) Is generated, and the generated encrypted media key E1 (KeyJ, media key) is written to the recording medium via the key information recording device 200.
[0243]
Next, the key management device 100 encrypts the media key using the device key KeyK assigned to the node t707 in the same manner as described above to generate an encrypted media key E1 (KeyK, media key). The generated encrypted media key E1 (KeyK, media key) is written to the recording medium via the key information recording device 200. In this way, the key information D1010 shown in FIG. 50 is written on the recording medium. As shown in the figure, the key information D1010 includes an encrypted media key E1 (KeyC, media key), E1 (KeyD, media key), E1 (KeyJ, media key), and E1 (KeyK, media key). It is configured to include in order.
[0244]
(Recording device 300a)
FIG. 51 is a flowchart illustrating an operation of specifying one encrypted media key from the header information and the key information stored in the recording medium as described above by the specifying unit 303 included in the recording device 300a. It will be described using FIG.
The specifying unit 303 indicates a variable X indicating the position of the encrypted media key, a variable A indicating the position of the NRP relating to the user device itself, a variable W indicating the number of NRPs in a certain layer, and indicating the number of layers to be processed. It has a variable i.
[0245]
The specifying unit 303 sets variable A = 0, variable W = 1, and variable i = 0 as initial values (step S301).
Next, the specifying unit 303 determines whether the value B at the bit position corresponding to the value of the upper i-th bit of the ID information is “0” or “1” in the lower 2 bits of the A-th NRP. It is checked whether there is (Step S303). Here, as described in the above embodiment, “0” is assigned to the left path and “1” is assigned to the right path in the tree structure shown in FIG. Since the ID information is configured based on the rule, the value “0” of the upper i-th bit of the ID information corresponds to the left bit of the lower 2 bits of the A-th NRP, and the value of the i-th bit “ "1" corresponds to the right bit of the lower two bits of the A-th NRP.
[0246]
Next, when the value B = 0 (step S303), the specifying unit 303 checks each NRP from the first NRP to the last NRP checked as follows. However, the A-th NRP is not included.
(A) When the most significant bit of the NPR is “0” and the lower two bits are not “11”, “1” is added to the variable X.
[0247]
(B) When the most significant bit of the NPR is “1”, the number of “0” included in the lower two bits is added to the variable X.
For the A-th NRP checked last, the number of “0” s up to the corresponding bit position is added to the variable X only when the most significant bit of the NRP is “1”. Here, it is assumed that the corresponding bit itself is not included. The variable X thus obtained indicates the position of the encrypted media key. The variable i at this time is device key identification information for identifying a device key (step S307c). Next, the specifying unit 303 ends the processing.
[0248]
On the other hand, when the value B is 1 (step S303), the specifying unit 303 determines whether the most significant bit of the NRP is not “1” and determines that the most significant bit of the NRP is “1”. If so (step S308), since this user device has been invalidated, the specifying unit 303 ends the process.
When determining that the most significant bit of the NRP is not “1” (step S308), the specifying unit 303 counts the number of “1” included in the lower 2 bits of all W NRPs present in layer i. , And substitute the counted value into a variable W. However, the NPR in which the most significant bit of the NRP is “1” is not counted. The variable W thus obtained indicates the number of NRPs existing in the next layer i + 1 (step S304c).
[0249]
Next, the specifying unit 303 counts the number of “1” included in the lower two bits of the NRP for each NRP from the first NRP among the NRPs existing in the layer i to the corresponding bit position. The value obtained is substituted for the variable A. Here, the value of the corresponding bit position is not counted. NRPs whose most significant bit is “1” are not counted. The variable A thus obtained indicates the position of the NRP of the next layer i + 1 relating to the user device itself (step S305c).
[0250]
Next, the specifying unit 303 calculates a variable i = i + 1 (step S306), then shifts the control to step S303, and repeats the above processing.
As described above, not only when the device key existing on the path from the leaf of the tree structure to the root is invalidated, the device key assigned to some nodes of the tree structure is invalidated. Even in this case, the key management device can write the header information and the key information on the recording medium and the reproducing device can specify the encrypted media key.
[0251]
(9) As an example, suppose the tree structure shown in FIG. 4 is in an initial state in which no device key is leaked, and there is no invalidated node in the tree structure.
In this case, the key management device encrypts the media key using the device key KeyA associated with the root to generate one encrypted media key. Next, the key management device generates one special NRP {00} indicating that there is no invalidated node in the tree structure and all nodes are valid. Next, the key management device writes the generated encrypted media key and the generated NRP {00} to a recording medium via a key information recording device.
[0252]
In this case, the reproducing apparatus reads the NRP from the recording medium, and when determining that the read NRP is only {00} and that the NRP is not recorded on the recording medium, the reproducing apparatus Determines that there is no invalidated node in the tree structure, then reads the encrypted media key recorded on the recording medium, and retrieves the device key stored in the playback device itself. The read-out encrypted media key is decrypted using the device key KeyA associated with the root to generate a media key.
[0253]
In this case, the recording device operates in the same manner as the reproducing device.
7. Sixth embodiment
An authentication system 1000 as still another embodiment according to the present invention will be described.
As shown in FIG. 52, the authentication system 1000 includes a certificate authority device 1100, a manufacturing device 1200, a manufacturing device 1300, a copyrighted work recording device 1400, and a personal computer 1500. The personal computer 1500 includes a drive unit 1600 and a main unit 1900, and the drive unit 1600 and the main unit 1900 are connected via a general-purpose communication path 1020.
[0254]
The drive manufacturer has a manufacturing apparatus 1200 connected to the Internet 1010, and manufactures the drive unit 1600. In the process of manufacturing the drive unit 1600, the manufacturing apparatus 1200 generates a drive secret key and a drive public key corresponding to the drive unit 1600, and writes the generated drive secret key to a storage area that is not accessed from outside the drive unit 1600. , And publish the generated drive public key via the Internet 1010. In addition, the manufacturing apparatus 1200 requests the certificate authority apparatus 1100 of the public key certificate authority to generate a public key certificate via the Internet 1010, and the certificate authority apparatus 1100 responds to the drive public key. A public key certificate to be generated is generated, and the generated public key certificate is transmitted to the manufacturing apparatus 1200 via the Internet 1010. The manufacturing apparatus 1200 acquires a public key certificate corresponding to the drive public key from the certificate authority apparatus 1100, and writes the acquired public key certificate into the drive unit 1600. Next, the drive manufacturer delivers the drive unit 1600 in which the drive secret key and the public key certificate are written to the personal computer manufacturer.
[0255]
The personal computer manufacturer has a manufacturing apparatus 1300 connected to the Internet 1010 and manufactures the main body 1900 of the personal computer 1500. In the process of manufacturing the main body 1900, the manufacturing apparatus 1300 obtains a drive public key published via the Internet 1010, and writes the obtained drive public key into the main body 1900. Next, the personal computer manufacturer connects the supplied drive unit 1600 and the main unit 1900 in which the drive public key is written by connecting the general-purpose communication path 1020 to assemble the personal computer 1500.
[0256]
The produced personal computer 1500 is sold through a dealer, and the user purchases the personal computer 1500.
Here, it is assumed that the set of the drive secret key and the drive public key has been disclosed by an unauthorized third party. In this case, the corresponding public key certificate must be revoked.
[0257]
Upon knowing that the public key certificate should be revoked, the certificate authority apparatus 1100 generates a CRL including a certificate ID for identifying the public key certificate to be revoked, and transmits the generated CRL to the Internet via the Internet 1010. This is transmitted to the copyrighted work recording device 1400 of the product seller. The work recording device 1400 stores a digital work, writes the digital work and the received CRL on the DVD 1800, and sells the DVD 1800 on which the digital work and the CRL are written.
[0258]
The user purchases the DVD 1800 and mounts it on the personal computer 1500.
The main unit 1900 of the personal computer 1500 reads the CRL from the DVD 1800 via the drive unit 1600, acquires the public key certificate from the drive unit 1600, and invalidates the acquired public key certificate using the read CRL. It is determined whether or not it has been performed. If it is determined that the drive unit 1600 has been invalidated, the main body unit 1900 stops using the drive unit 1600. If it is determined that the drive unit 1600 has not been revoked, the main unit 1900 further authenticates the validity of the drive unit 1600 using the drive public key stored therein, and determines that the drive unit 1600 is valid. If authenticated, the digital work is read from the DVD 1800 via the drive unit 1600. If the drive unit 1600 is authenticated as being unauthorized, the main unit 1900 stops reading the digital work from the DVD 1800 via the drive unit 1600.
[0259]
7.1 Configuration of Manufacturing Apparatus 1200
As shown in FIG. 53, the manufacturing apparatus 1200 includes an information storage unit 1201, an input unit 1202, a display unit 1203, a control unit 1204, a writing unit 1205, and a communication unit 1206.
The manufacturing apparatus 1200 is, specifically, a computer system including a microprocessor, a ROM, a RAM, a hard disk unit, a communication unit, a display unit, a keyboard, a mouse, and the like. The hard disk unit stores a computer program. The manufacturing apparatus 1200 achieves its functions by the microprocessor operating according to the computer program.
[0260]
As described above, the manufacturing apparatus 1200 is owned by the drive manufacturer. In the process of manufacturing the drive unit 1600, the drive manufacturer connects the manufacturing apparatus 1200 and the drive unit 1600 during manufacture.
(1) Information storage unit 1201
The information storage unit 1201 has a manufacturing information table 1211.
[0261]
As shown as an example in FIG. 53, the manufacturing information table 1211 stores a plurality of pieces of manufacturing information including a manufacturing number, a drive secret key, a drive public key, an expiration date, a public key certificate, and certificate signature data. Area.
Here, the serial number is an identification number for uniquely identifying a drive unit manufactured by a drive manufacturer.
[0262]
The drive secret key is a secret key generated corresponding to the drive unit.
The drive public key is a public key generated corresponding to the drive secret key.
The expiration date includes a start date and an end date of use of the drive private key and the drive public key.
The public key certificate is a certificate generated corresponding to the drive public key, and includes a certificate ID, an expiration date, and a drive public key. The certificate ID is identification information for identifying the public key certificate. The expiration date has the same content as the above expiration date. The drive public key has the same contents as the drive public key.
[0263]
The certificate signature data is signature data generated based on the public key certificate.
(2) Input unit 1202
The input unit 1202 receives the input of the serial number of the drive unit 1600 from the operator of the manufacturing apparatus 1200, further receives the input of the expiration date, and outputs the received serial number and the expiration date to the control unit 1204.
[0264]
(3) Control unit 1204
The control unit 1204 receives the serial number and the expiration date from the input unit 1202. Upon receiving the serial number and the expiration date, the control unit 1204 generates a random number, generates a drive secret key based on the generated random number, and then generates the drive secret key using RSA public key encryption technology. A drive public key is generated based on.
[0265]
Here, the RSA public key encryption technology is well-known, and thus the description is omitted.
Next, the control unit 1204 transmits the generated drive public key, the received expiration date, and a public key certificate issuance request indicating a request to issue a public key certificate via the communication unit 1206 and the Internet 1010 to the certificate authority device. 1100.
[0266]
Next, the control unit 1204 receives the public key certificate and the certificate signature data from the certificate authority device 1100 via the Internet 1010 and the communication unit 1206, and obtains the serial number, drive private key, drive public key, expiration date, The production information including the public key certificate and the certificate signature data is generated, and the generated production information is written in the production information table 1211 of the information storage unit 1200.
[0267]
The control unit 1204 outputs the serial number, the drive secret key, the public key certificate, and the certificate signature data to the writing unit 1205.
Further, the control unit 1204 discloses the serial number and the drive public key via the communication unit 1206 and the Internet 1010.
(4) Writing unit 1205
The writing unit 1205 is connected to an information storage unit 1601 (described later) of the drive unit 1600 by a drive manufacturer.
[0268]
The writing unit 1205 receives the serial number, the drive secret key, the public key certificate, and the certificate signature data from the control unit 1204, and writes the received serial number, the drive secret key, the public key certificate, and the certificate signature data into the drive unit. The data is written in the information storage unit 1601 of the 1600.
(5) Communication unit 1206
The communication unit 1206 is connected to the Internet 1010, and transmits and receives information between an external device connected to the Internet 1010 and the control unit 1204.
[0269]
(6) Display unit 1203
The display unit 1203 displays various information under the control of the control unit 1204.
7.2 Configuration of Manufacturing Apparatus 1300
Like the manufacturing apparatus 1200, the manufacturing apparatus 1300 is a computer system including a microprocessor, a ROM, a RAM, a hard disk unit, a communication unit, a display unit, a keyboard, a mouse, and the like. The hard disk unit stores a computer program. The manufacturing apparatus 1300 achieves its functions by the microprocessor operating according to the computer program.
[0270]
The manufacturing apparatus 1300 is connected to the Internet 1010.
As described above, the manufacturing apparatus 1300 is owned by the personal computer manufacturer. In the process of manufacturing the main body 1900, the personal computer manufacturer connects the manufacturing apparatus 1300 and the main body 1900.
The manufacturing apparatus 1300 obtains the published serial number and drive public key via the Internet 1010, and writes the obtained serial number and drive public key into the information storage unit 1901 (described later) of the main unit 1900.
[0271]
7.3 Certificate Authority 1100
As shown in FIG. 54, the certificate authority apparatus 1100 includes a tree structure construction unit 1101, a tree structure storage unit 1102, a CRL generation unit 1103, an invalidation notification unit 1104, a tree structure update unit 1105, a CRL storage unit 1106, and a CRL transmission unit 1107. , A certificate generation unit 1108, a certificate storage unit 1109, a transmission / reception unit 1110, an input unit 1111, a display unit 1112, and a control unit 1113.
[0272]
This device is, specifically, a computer system including a microprocessor, a ROM, a RAM, and the like. When the microprocessor operates according to the computer program, the certificate authority apparatus 1100 achieves its function.
The certificate authority device 1100 has the same configuration as the key management device 100. Here, the description will focus on differences from the key management device 100.
[0273]
(1) Tree structure storage unit 1102
The tree structure storage unit 1102 has a tree structure table D1100 (not shown) similar to the tree structure table D100 of the tree structure storage unit 102.
The tree structure table D1100 corresponds to a tree structure T1100 (not shown).
[0274]
(Tree structure T1100)
The tree structure T1100 is a binary tree including five layers from layer 0 to layer 4, and is the same tree structure as the tree structure T100 shown in FIG. The tree structure T1100 is used to manage the public key certificate ID.
On the other hand, as described above, the tree structure T100 is used for managing device keys. Thus, the tree structure T1100 differs from the tree structure T100 in the purpose of its use. The configuration itself of the tree structure T1100 is the same as that of the tree structure T100, and a detailed description thereof will be omitted.
[0275]
(Tree structure table D1100)
The tree structure table D1100 has an area for storing the same number of node information as the nodes included in the tree structure T1100, and each node information corresponds to each node configuring the tree structure T1100.
Each node information corresponding to a node other than a leaf included in the tree structure table D1100 includes a node name and an invalidation flag. Each node information corresponding to a leaf includes a node name, a drive public key, and a revocation flag. Here, the drive public key is received from the manufacturing apparatus 1200 as described later.
[0276]
Note that each node information included in the tree structure table D100 includes the node name, the device key, and the invalidation flag as described above, while each node information included in the tree structure table D1100 includes the node name and the node name. It includes an invalidation flag, or includes a node name, a drive public key, and an invalidation flag.
In this respect, the tree structure table D1100 is different from the tree structure table D100, and the other points are the same. Therefore, a detailed description of the tree structure table D1100 will be omitted.
[0277]
(2) Tree structure construction unit 1101
The tree structure construction unit 1101 has the same configuration as the tree structure construction unit 101.
The tree structure constructing unit 1101 constructs a data structure of an n-ary tree for managing the public key certificate ID similarly to the tree structure constructing unit 101, and stores the constructed tree structure in the tree structure storage unit 1102. Specifically, similarly to the tree structure construction unit 101, the node name of each node is generated from the node information included in the tree structure table D1100, and the generated node name is written in each node information.
[0278]
Thus, at the time when the tree structure construction unit 1101 completes the construction of the tree structure, each node information included in the tree structure table D1100 includes only the node name.
Note that the tree structure construction unit 101 generates a device key for each node of the tree structure, and writes the generated device key in the tree structure table in association with each node. The generation and the writing to the tree structure table of the device key are not performed. In this respect, they are different.
[0279]
(3) Certificate storage unit 1109
The certificate storage unit 1109 has an area for storing one or more public key certificates described below.
(4) Certificate generation unit 1108
The certificate generation unit 1108 receives a public key certificate issuance request indicating a request for issuing a public key certificate, a drive public key, and an expiration date from the manufacturing apparatus 1200 via the Internet 1010 and the transmission / reception unit 1110.
[0280]
Upon receiving the public key certificate issuance request, the drive public key, and the expiration date, the certificate generation unit 1108 checks the drive information in the node information corresponding to the leaf in the tree structure table D1100 stored in the tree structure storage unit 1102. One that does not include the public key is selected, and the received drive public key is written in the selected node information.
[0281]
Further, the certificate generation unit 1108 extracts a node name from the selected node information. Here, the extracted node name is set as a certificate ID for identifying a public key certificate corresponding to the received drive public key.
Thus, the certificate generation unit 1108 generates the certificate ID of the public key certificate corresponding to the received drive public key. Next, the certificate generation unit 1108 generates a public key certificate including the generated certificate ID, the received expiration date, and the received drive public key.
[0282]
Next, the certificate generation unit 1108 applies the digital signature SIG to the generated public key certificate using the certificate authority private key held only by the certificate authority device 1100 in secret, and generates the certificate signature data. Generate.
Here, the digital signature SIG is a digital signature that uses ElGamal encryption based on the security of a discrete logarithm problem on an elliptic curve.
[0283]
Next, the certificate generation unit 1108 transmits the generated public key certificate and certificate signature data to the manufacturing apparatus 1200 via the transmission / reception unit 1110 and the Internet 1010. Further, the certificate generation unit 1108 writes the generated public key certificate into the certificate storage unit 1109.
(5) Invalid notification unit 1104
Assume that a set of a drive private key and a drive public key has been disclosed by an unauthorized third party. In this case, the corresponding public key certificate must be revoked.
[0284]
When the administrator of the certificate authority apparatus 1100 knows the certificate ID of the public key certificate to be revoked, the invalidation notifying unit 1104 sends the public key to be revoked via the input unit 1111 by the operation of the administrator. The certificate ID of the certificate is obtained, and the obtained certificate ID is output to the tree structure updating unit 1105.
(6) Tree structure update unit 1105
The tree structure updating unit 1105 receives the certificate ID from the invalidation notifying unit 1104.
[0285]
Upon receiving the certificate ID, the tree structure updating unit 105 updates the tree structure table D1100.
In the description of the tree structure updating unit 105, “ID information” is replaced with “certificate ID”.
Thus, similarly to the tree structure updating unit 105, the tree structure updating unit 1105 determines, based on the certificate ID received from the invalidation notifying unit 1104, the tree structure D1100 from the leaf indicated by the received certificate ID to the root. Invalidate all nodes existing on the route.
[0286]
When it is assumed that the certificate IDs indicated by “0000”, “1010”, and “1011” are invalidated in the tree structure D1100, the tree whose nodes have been invalidated by the tree structure updating unit 1105 as described above. The structure is as shown in FIG. In this figure, the nodes marked with “x” indicate the invalidated nodes.
(7) CRL storage unit 1106
The CRL storage unit 1106 has an area for storing one or more CRLs.
[0287]
(8) CRL generation unit 1103
The CRL generation unit 1103 operates in the same manner as the key information header generation unit 106. As a result, CRL generating section 1103 generates a plurality of NRPs.
FIG. 55 shows an example of a plurality of NRPs (referred to as an NRP group) generated by the CRL generation unit 1103. As shown in this figure, the NRP group is composed of NRP {11}, {10}, {10}, {10}, {01}, {10}, {11}, and includes each NRP in this order. In.
[0288]
Here, the generated NRP group has the same contents as the header information D200 (shown in FIG. 6) generated by the key information header generation unit 106.
The operation of the CRL generation unit 1103 described above is the same as that of the key information header generation unit 106.
Next, as a different operation from the key information header generation unit 106, the CRL generation unit 1103 uses the certification authority private key held only by the certification authority device 1100 to add the digital signature SIG to the generated NRP group. Then, NRP signature data is generated, and a CRL including the NRP group and the generated NRP signature data is generated.
[0289]
FIG. 55 shows an example of the CRL. The CRL 1131 shown in the figure includes an NRP group 1132 and NRP signature data 1133.
Next, the CRL generation unit 1103 writes the generated CRL into the CRL storage unit 1106. The generated CRL is transmitted to the copyrighted work recording device 1400 via the CRL transmission unit 1107 and the Internet 1010.
[0290]
(9) CRL transmission section 1107
The CRL transmission unit 1107 is connected to the Internet 1010, receives information from the CRL generation unit 1103, and transmits the received information to an external device via the Internet 1010.
(10) Transmission / reception unit 1110
The transmission / reception unit 1110 is connected to the Internet 1010, and transmits / receives information between the certificate generation unit 1108 and an external device connected to the Internet 1010.
[0291]
(11) Control unit 1113, display unit 1112, and input unit 1111
The control unit 1113 controls each component of the certificate authority device 1100.
The display unit 1112 displays various information under the control of the control unit 1113.
The input unit 1111 receives an input from an operator of the certificate authority device 1100.
7.4 Work recording device 1400
As shown in FIG. 56, the work recording device 1400 includes a work storage unit 1401, an encryption unit 1402, a writing unit 1403, and a transmission / reception unit 1404.
[0292]
The copyrighted work recording device 1400 is a computer system including a microprocessor, a ROM, a RAM, and the like. When the microprocessor operates according to the computer program, the copyrighted work recording device 1400 achieves its function.
(1) Work storage unit 1401
The work storage unit 1401 stores a digital work in advance.
[0293]
(2) Transmission / reception unit 1404
The transmission / reception unit 1404 is connected to the Internet 1010.
The transmission / reception unit 1404 receives a CRL from the certificate authority device 1100 via the Internet 1010, and outputs the received CRL to the encryption unit 1402.
(3) Encryption unit 1402
The encryption unit 1402 receives the CRL from the transmission / reception unit 1404.
[0294]
In addition, the encryption unit 1402 reads the digital work from the work storage unit 1401 according to the instruction of the operator, applies the encryption algorithm E3 to the read digital work and the received CRL, and respectively outputs the encrypted work. And generate an encrypted CRL.
Here, the encryption algorithm E3 is based on DES.
[0295]
Next, the encryption unit 1402 outputs the generated encrypted work and the encrypted CRL to the writing unit 1403.
(4) Writing unit 1403
The writing unit 1403 receives the encrypted work and the encrypted CRL from the encryption unit 1402, and writes the received encrypted work and the encrypted CRL to the DVD 1800.
[0296]
(5) Transmission / reception unit 1404
The transmission / reception unit 1404 is connected to the Internet 1010.
The transmission / reception unit 1404 receives information from an external device via the Internet 1010 and outputs the received information to the encryption unit 1402.
7.5 Main Body 1900
As shown in FIG. 57, the main unit 1900 includes an information storage unit 1901, a decoding unit 1902, an authentication unit 1903, a display unit 1904, an input / output unit 1905, a control unit 1906, a reproduction unit 1907, a decoding unit 1908, and an input unit 1909. It is configured.
[0297]
The main body 1900 is specifically a computer system including a microprocessor, a ROM, a RAM, a hard disk unit, a display unit, a keyboard, a mouse, and the like. A computer program is stored in the RAM or the hard disk unit. The main unit 1900 achieves its functions by the microprocessor operating according to the computer program.
[0298]
(1) Information storage unit 1901
As shown as an example in FIG. 57, the information storage unit 1901 includes an area for storing a serial number and a drive public key.
As described above, in the process of manufacturing the main body 1900 by the personal computer manufacturer, the manufacturing apparatus 1300 and the main body 1900 are connected, and the manufacturing number and the drive public key are written into the information storage unit 1901 by the manufacturing apparatus 1300.
[0299]
The serial number is identification information for identifying the drive unit 1600, and the drive public key is a public key generated corresponding to the drive unit 1600.
(2) Control unit 1906
The control unit 1906 outputs a CRL reading instruction indicating CRL reading to the drive unit 1600 via the input / output unit 1905.
[0300]
The control unit 1906 receives, from the authentication unit 1903, success information indicating successful verification of the validity of the NRP group or failure information indicating verification failure. When receiving the success information, it further receives an NRP group from the authentication unit 1903.
Upon receiving the failure information, the control unit 1906 outputs a message indicating that the verification has failed to the display unit 1904, and controls the display unit 1904 to display the message. After that, the control unit 1906 stops access to the DVD by the drive unit 1600.
[0301]
Upon receiving the success information, the control unit 1906 further requests a public key certificate from the drive unit 1600 via the input / output unit 1905.
(Invalidation judgment)
Next, the control unit 1906 receives the public key certificate from the drive unit 1600, extracts a certificate ID from the received public key information, and uses the extracted certificate ID and the NRP group received from the authentication unit 1903. The public key certificate is invalidated as described below.
[0302]
The control unit 1906 makes a public key certificate invalidation determination in the same manner as the specifying unit 303 shown in the first embodiment. The specifying unit 303 operates to specify the encrypted media key. On the other hand, the control unit 1906 operates to determine whether or not the public key certificate is invalidated. In this point, the specifying unit 303 and the control unit 1906 are different.
[0303]
Here, the operation of the control unit 1906 for determining the revocation of the public key certificate will be described focusing on the difference from the operation of the specifying unit 303.
The control unit 1906 operates as shown in the flowchart of FIG. 17 to determine whether the public key certificate is invalidated.
The control unit 1906 has a variable A indicating the position of the NRP related to the certificate ID, a variable W indicating the number of NRPs in a certain layer, and a value D indicating the number of layers in the tree structure. Here, the NRP related to the certificate ID indicates the NRP of a node existing on a path from a leaf assigned to the certificate ID to a root in a tree structure. Note that the control unit 1906 does not have the variable X indicating the position of the encrypted media key of the specifying unit 303.
[0304]
If the determination is “No” in step S302 of the flowchart in FIG. 17, the control unit 1906 regards the public key certificate as invalid.
When it is determined that “B = 0” in step S303 of the flowchart in FIG. 17, the control unit 1906 regards the public key certificate as valid. Note that the control unit 1906 does nothing in step S307.
[0305]
In this way, the control unit 1906 determines whether or not the public key certificate is invalid, and when it is determined that the public key certificate is invalid, the control unit 1906 displays the public key certificate on the display unit 1904. A message indicating that the message is invalid is output, and control is performed to display the message. After that, the control unit 1906 stops access to the DVD by the drive unit 1600.
[0306]
On the other hand, when determining that the public key certificate is valid, the control unit 1906 generates a random number R, outputs the generated random number R to the drive unit 1600 via the input / output unit 1905, and The authentication signature data is received from 1600.
The control unit 1906 reads the drive public key from the information storage unit 1901, performs a verification algorithm VER on the generated random number R and the received authentication signature data using the read drive public key, and verifies the validity of the drive unit 1600. Verify
[0307]
Here, the verification algorithm VER corresponds to the digital signature SIG described above, and performs verification using signature data generated by the digital signature SIG.
If the verification fails, the control unit 1906 outputs to the display unit 1904 a message indicating that the drive unit 1600 is invalid, and controls to display the message. After that, the control unit 1906 stops access to the DVD by the drive unit 1600.
[0308]
If the verification is successful, the control unit 1906 outputs an instruction to read the copyrighted work to the drive unit 1600 via the input / output unit 1905.
Next, the control unit 1906 receives the encrypted work from the drive unit 1600 via the input / output unit 1905, and outputs the received encrypted work to the decryption unit 1908.
[0309]
(3) Decoding unit 1902
The decryption unit 1902 receives the encrypted CRL from the drive unit 1600 via the input / output unit 1905, performs a decryption algorithm D3 on the received encrypted CRL, generates an NRP group and NRP signature data, and generates the generated NRP group. And the NRP signature data to the authentication unit 1903.
[0310]
(4) Authentication unit 1903
The authentication unit 1903 stores a certificate authority public key distributed from the certificate authority device 1100 in advance. The certificate authority public key corresponds to the above-described certificate authority secret key, and is generated based on the certificate authority secret key using a public key generation algorithm of a public key cryptosystem.
[0311]
The authentication unit 1903 receives the NRP group and the NRP signature data from the decryption unit 1902, performs a digital signature verification algorithm VER on the NPR group and the NRP signature data using the certificate authority public key, and verifies the validity of the NRP group. I do.
Here, the verification algorithm VER corresponds to the digital signature SIG described above, and performs verification using signature data generated by the digital signature SIG.
[0312]
When the verification result indicates the validity of the NRP group, that is, when the verification is successful, the authentication unit 1903 outputs success information indicating the verification success to the control unit 1906. In this case, the authentication unit 1903 further outputs the NRP group to the control unit 1906. On the other hand, when the verification result indicates that the NRP group is invalid, that is, when the verification fails, the authentication unit 1903 outputs failure information indicating the verification failure to the control unit 1906.
[0313]
(5) Decoding section 1908
The decryption unit 1902 receives the encrypted work from the control unit 1906, performs a decryption algorithm D3 on the received encrypted work, generates a digital work, and outputs the generated digital work to the reproduction unit 1907.
(6) Reproduction unit 1907
The reproducing unit 1907 receives the digital work from the decrypting unit 1902, and reproduces and outputs the received digital work.
[0314]
(7) Display unit 1904
The display unit 1904 receives a message from the control unit 1906 under the control of the control unit 1906, and displays the received message.
(8) Input unit 1909
The input unit 1909 receives an input from an operator.
[0315]
7.6 Drive unit 1600
As shown in FIG. 58, the drive unit 1600 includes an information storage unit 1601, a read unit 1602, a control unit 1603, an authentication unit 1604, and an input / output unit 1605.
(1) Information storage unit 1601
As shown in FIG. 58, the information storage unit 1601 includes an area for storing a serial number, a drive secret key, a public key certificate, and certificate signature data.
[0316]
As described above, in the process of manufacturing the drive unit 1600 by the drive manufacturer, the manufacturing apparatus 1200 and the drive unit 1600 are connected, and the serial number, the drive secret key, the public key certificate, and the certificate signature data are stored in the manufacturing apparatus. The data is written in the information storage unit 1601 by 1200.
The serial number, the drive private key, the public key certificate, and the certificate signature data are as described above, and thus the description will be omitted here.
[0317]
(2) Control unit 1603
The control unit 1603 receives a CRL read instruction, a public key certificate request, a random number R, and a work read request from the main unit 1900 via the input / output unit 1605.
Upon receiving the CRL read instruction, the control unit 1603 reads the encrypted CRL from the DVD 1800 via the read unit 1602, and outputs the read encrypted CRL to the main unit 1900 via the input / output unit 1605.
[0318]
Upon receiving the request for the public key certificate, control unit 1603 reads the public key certificate from information storage unit 1601, and outputs the read public key certificate to main unit 1900 via input / output unit 1605.
Upon receiving the random number R, the control unit 1603 outputs the received random number R to the authentication unit 1604, and controls the authentication unit 1604 to generate authentication signature data.
[0319]
Upon receiving the request to read the work, the control unit 1603 reads the encrypted work from the DVD 1800 via the read unit 1602 and outputs the read encrypted work to the main unit 1900 via the input / output unit 1605. I do.
Next, the control unit 1603 receives the authentication signature data from the authentication unit 1604, and outputs the received authentication signature data to the main unit 1900 via the input / output unit 1605.
[0320]
(3) Authentication unit 1604
The authentication unit 1604 receives the random number R from the control unit 1603, reads the drive secret key from the information storage unit 1601 under the control of the control unit 1603, and uses the read drive secret key to On the other hand, the digital signature is applied to generate the authentication signature data, and the generated authentication signature data is output to the control unit 1603.
[0321]
(4) Reading unit 1602
The reading unit 1602 reads information from the DVD 1800 under the control of the control unit 1603, and outputs the read information to the control unit 1603.
(5) Input / output unit 1605
The input / output unit 1605 transmits and receives information between the control unit 1603 and the main unit 1900 under the control of the control unit 1603.
[0322]
7.7 Operation of Authentication System 1000
(1) Operation of manufacturing apparatus 1200 and manufacturing apparatus 1300
The operations of the manufacturing apparatuses 1200 and 1300 will be described with reference to the flowchart shown in FIG.
The input unit 1202 receives the input of the serial number of the drive unit 1600 from the operator of the manufacturing apparatus 1200, outputs the received serial number to the control unit 1204, and the control unit 1204 receives the serial number from the input unit 1202. (Step S501). Next, the input unit 1202 receives an input of an expiration date from the operator of the manufacturing apparatus 1200, outputs the received expiration date to the control unit 1204, and the control unit 1204 receives the expiration date from the input unit 1202. (Step S502).
[0323]
Next, the control unit 1204 generates a random number, generates a drive secret key based on the generated random number (step S503), and then uses the generated drive secret key using RSA public key encryption technology. Then, a drive public key is generated (step S504).
Next, the control unit 1204 transmits the generated drive public key, the received expiration date, and a public key certificate issuance request indicating a request to issue a public key certificate via the communication unit 1206 and the Internet 1010 to the certificate authority device. Output to 1100 (step S505).
[0324]
Next, the control unit 1204 receives the public key certificate and the certificate signature data from the certificate authority apparatus 1100 via the Internet 1010 and the communication unit 1206 (step S506), and obtains the serial number, the drive secret key, and the drive public key. , And generates the manufacturing information including the expiration date, the public key certificate, and the certificate signature data, and writes the generated manufacturing information into the manufacturing information table 1211 of the information storage unit 1200 (step S507).
[0325]
The control unit 1204 outputs the serial number, the drive secret key, the public key certificate, and the certificate signature data to the writing unit 1205. The writing unit 1205 sends the serial number, the drive secret key, and the public key from the control unit 1204. The key certificate and the certificate signature data are received, and the received serial number, drive private key, public key certificate, and certificate signature data are written in the information storage unit 1601 of the drive unit 1600 (step S508).
[0326]
Further, the control unit 1204 discloses the serial number and the drive public key via the communication unit 1206 and the Internet 1010 (step S509).
The manufacturing apparatus 1300 obtains the published serial number and drive public key via the Internet 1010 (step S509), and writes the obtained serial number and drive public key to the information storage unit 1901 of the main unit 1900 (step S509). S510).
[0327]
(2) Operation of Issuing Public Key Certificate by Certificate Authority 1100
The operation of issuing a public key certificate by the certificate authority 1100 will be described with reference to the flowchart shown in FIG.
The tree structure construction unit 1101 constructs a data structure of an n-ary tree for managing the public key certificate ID similarly to the tree structure construction unit 101, and stores the constructed tree structure in the tree structure storage unit 1102 (step S521). ).
[0328]
The certificate generation unit 1108 receives a public key certificate issuance request indicating a request for issuing a public key certificate, a drive public key, and an expiration date from the manufacturing apparatus 1200 via the Internet 1010 and the transmission / reception unit 1110 (step S505). ).
Next, the certificate generation unit 1108 selects one of the node information corresponding to the leaves in the tree structure table D1100 stored in the tree structure storage unit 1102 that does not include the drive public key, and selects the selected node information. The received drive public key is written in the node information, and a node name is extracted from the selected node information. Here, the extracted node name is a certificate ID for identifying the public key certificate (step S522). Next, the certificate generation unit 1108 generates a public key certificate including the generated certificate ID, the received expiration date, and the received drive public key (step S523). A digital signature SIG is applied to the generated public key certificate using a secret key of a certificate authority held in secret to generate certificate signature data (step S524).
[0329]
Next, the certificate generation unit 1108 transmits the generated public key certificate and certificate signature data to the manufacturing apparatus 1200 via the transmission / reception unit 1110 and the Internet 1010 (step S506). Further, the certificate generation unit 1108 writes the generated public key certificate into the certificate storage unit 1109 (Step S525). Next, the process returns to step S505 to repeat the processing.
[0330]
(3) CRL Issuing Operation by Certificate Authority 1100
The operation of issuing a CRL by the certificate authority apparatus 1100 will be described with reference to the flowchart shown in FIG.
When the administrator of the certificate authority apparatus 1100 knows the certificate ID of the public key certificate to be revoked, the invalidation notifying unit 1104 sends the public key to be revoked via the input unit 1111 by the operation of the administrator. The certificate ID of the certificate is obtained, and the obtained certificate ID is output to the tree structure updating unit 1105 (step S541).
[0331]
Next, the tree structure updating unit 1105 receives the certificate ID from the invalidation notifying unit 1104, and updates the tree structure table D1100 in the same manner as the tree structure updating unit 105 (Step S542). Next, the CRL generation unit 1103 generates an NRP group, similarly to the key information header generation unit 106 (step S543).
Next, the CRL generation unit 1103 applies a digital signature SIG to the generated NRP group using the certificate authority private key held only by the certificate authority device 1100 in secret, and generates NRP signature data (step In step S544, a CRL including the NRP group and the generated NRP signature data is generated (step S545), and the generated CRL is written in the CRL storage unit 1106 (step S546). Next, the CRL generation unit 1103 transmits the generated CRL to the copyrighted work recording device 1400 via the CRL transmission unit 1107 and the Internet 1010 (step S547).
[0332]
The transmission / reception unit 1404 of the copyrighted work recording device 1400 receives the CRL from the certificate authority device 1100 via the Internet 1010 and outputs the received CRL to the encryption unit 1402. The CRL is received (Step S547).
Next, the encryption unit 1402 reads the digital work from the work storage unit 1401 in accordance with the instruction of the operator, performs an encryption algorithm E3 on the read digital work, and generates an encrypted work (step S1). (S548) Then, the received CRL is subjected to the encryption algorithm E3 to generate an encrypted CRL (step S549).
[0333]
Next, the encryption unit 1402 outputs the generated encrypted work and the encrypted CRL to the writing unit 1403 (step S550).
(4) Operations of the main unit 1900 and the drive unit 1600
The operations of the main unit 1900 and the drive unit 1600 will be described with reference to the flowcharts shown in FIGS.
[0334]
The control unit 1906 of the main unit 1900 outputs a CRL read instruction indicating CRL reading to the drive unit 1600 via the input / output unit 1905, and the control unit 1603 of the drive unit 1600 sends the input / output unit A CRL read instruction is received via 1605 (step S561).
Next, the control unit 1603 reads the encrypted CRL from the DVD 1800 via the reading unit 1602 (step S562), and outputs the read encrypted CRL to the main unit 1900 via the input / output unit 1605 (step S562). S563).
[0335]
Next, the decryption unit 1902 receives the encrypted CRL from the drive unit 1600 via the input / output unit 1905 (step S563), performs a decryption algorithm D3 on the received encrypted CRL, and converts the NRP group and the NRP signature data. The generated NRP group and NRP signature data are output to the authentication unit 1903 (step S564).
[0336]
The authentication unit 1903 receives the NRP group and the NRP signature data from the decryption unit 1902, performs a digital signature verification algorithm VER on the NPR group and the NRP signature data using the public key of the certification authority, and verifies the validity of the NRP group. Then, success information or failure information is output to the control unit 1906, and when the success information is output, the NRP group is further output to the control unit 1906 (step S565).
[0337]
Next, when the failure information is received (step S566), the control unit 1906 outputs a message indicating that the verification has failed to the display unit 1904, and controls to display the message (step S566). S567). After that, the control unit 1906 stops access to the DVD by the drive unit 1600.
When receiving the success information (step S566), the control unit 1906 further requests a public key certificate from the drive unit 1600 via the input / output unit 1905 (step S568).
[0338]
The control unit 1603 receives the request for the public key certificate from the main unit 1900 via the input / output unit 1605 (step S568), reads the public key certificate from the information storage unit 1601 (step S569), and reads the read public key certificate. The key certificate is output to the main unit 1900 via the input / output unit 1605 (step S570).
Next, the control unit 1906 receives the public key certificate from the drive unit 1600 (step S570), extracts a certificate ID from the received public key information (step S571), and outputs the extracted certificate ID and the authentication unit 1903. The public key certificate is determined to be invalid using the NRP group received from (step S572).
[0339]
If the control unit 1906 determines that the public key certificate is invalid (step S573), the control unit 1906 outputs a message indicating that the public key certificate is invalid to the display unit 1904. The display is controlled (step S574). After that, the control unit 1906 stops access to the DVD by the drive unit 1600.
[0340]
On the other hand, if it is determined that the public key certificate is valid (step S573), the control unit 1906 generates a random number R (step S575), and transmits the generated random number R to the drive via the input / output unit 1905. Output to the unit 1600 (step S576).
The control unit 1603 receives the random number R from the main unit 1900 via the input / output unit 1605 (step S576), outputs the received random number R to the authentication unit 1604, and sends the authentication signature data to the authentication unit 1604. The authentication unit 1604 applies a decisional signature SIG to the received random number R to generate authentication signature data (step S577), and sends the generated authentication signature data to the control unit 1603. Output (Step S578).
[0341]
The control unit 1906 receives the authentication signature data from the drive unit 1600 (Step S578). Next, the control unit 1906 reads the drive public key from the information storage unit 1901, performs a verification algorithm VER on the generated random number R and the received authentication signature data using the read drive public key, and Is verified (step S579).
[0342]
If the verification fails (step S580), the control unit 1906 outputs a message indicating that the drive unit 1600 is invalid to the display unit 1904, and controls to display the message (step S586). After that, the control unit 1906 stops access to the DVD by the drive unit 1600.
If the verification is successful (step S580), the control unit 1906 outputs an instruction to read the copyrighted work to the drive unit 1600 via the input / output unit 1905 (step S581).
[0343]
The control unit 1603 receives a work read request from the main unit 1900 via the input / output unit 1605 (step S581), reads the encrypted work from the DVD 1800 via the read unit 1602 (step S582), The read encrypted work is output to the main unit 1900 via the input / output unit 1605 (step S583).
[0344]
Next, the control unit 1906 receives the encrypted work from the drive unit 1600 via the input / output unit 1905 (step S583), outputs the received encrypted work to the decryption unit 1908, and the decryption unit 1902 The encrypted work is received from the control unit 1906, a decryption algorithm D3 is applied to the received encrypted work to generate a digital work, and the generated digital work is output to the reproducing unit 1907 (step S584).
[0345]
The reproducing unit 1907 receives the digital work from the decrypting unit 1902, and reproduces and outputs the received digital work (Step S585).
7.8 Other Modifications
As described above, the technology described in the first embodiment is applied to the sixth embodiment. That is, in the generation of the CRL and the revocation determination of the public key certificate in the authentication system 1000 shown in the sixth embodiment, the method of generating the header information shown in the first embodiment and the identification of the encrypted media key are performed. The method has been applied.
[0346]
In the sixth embodiment, the second to fifth embodiments and their modifications may be applied. That is, the method of generating the header information and the method of specifying the encrypted media key shown in the second to fifth embodiments and the modified examples thereof are described in the CRL in the authentication system 1000 shown in the sixth embodiment. May be applied to the generation of the public key certificate and the revocation determination of the public key certificate.
[0347]
In the sixth embodiment to which the second embodiment is applied, when all descendants of a certain node are invalidation nodes, the NRP is expressed as “00”, but the present invention is not limited to this. Not. For example, "0" and "1" may be interchanged and "11" may be used as the NRP meaning the above. Further, one bit may be added and the bit may be used as a bit meaning the above.
[0348]
In the sixth embodiment to which the third embodiment is applied, similarly to the second embodiment, when all descendants of a certain node are invalidation nodes, the NRP is expressed as “00”. , One bit may be added and the bit may be used as a bit meaning the above.
If there is no revoked public key certificate, a CRL including information indicating that fact may be generated.
[0349]
7.9 Summary
As described above, the present invention relates to an authentication system using public key cryptography, which has a secret key and a public key in a public key cryptographic algorithm, and uses the secret key to give a communication partner its own validity. Terminal, a public key certificate issuing device for issuing and distributing a public key certificate to at least data comprising a public key of the terminal device, and a public key certificate for the terminal device to be invalidated. A revocation list generating device for issuing and distributing a public key certificate revocation list for specifying the public key certificate issued by the key certificate issuing device, a public key certificate of the terminal device to be verified, and the public key certificate Revocation list receiving device, and a revocation list using device that determines whether the public key certificate is registered in the public key certificate revocation list. Composed of a verification device for verifying a self correctness proof performed by the communication partner by using a cross-sectional public key.
[0350]
The revocation list generation device constructs and stores a tree structure including a plurality of layers, assigns a unique value for identifying a public key certificate of each terminal device to a leaf of the tree structure, and further stores and stores If a unique value of a public key certificate to be revoked is associated with at least one of the leaves that are descendants of a node for a given tree structure, that node is regarded as a revoked node, and at least one of the child nodes For a node, one of which is an invalidation node, an identifier for identifying whether each child node is an invalidation node is indicated by an identifier for identifying whether or not each child node is an invalidation node. The public key certificate revocation list is further arranged by arranging node revocation patterns of the entire tree structure based on a predetermined rule for tracing all nodes of the tree structure. Generated.
[0351]
The revocation list using apparatus analyzes a public key certificate revocation list in which the node revocation patterns are arranged based on the predetermined rule, and determines that the public key certificate of the terminal to be verified is invalidated. It is determined whether or not it is registered in the list.
The present invention also provides a public key certificate issuing device for issuing and distributing a public key certificate to data comprising a public key of a terminal device, and a public key certificate issuing device for the terminal device to be revoked. A revocation list generation device that issues and distributes a public key certificate revocation list that specifies the public key certificate issued by the device.
[0352]
The revocation list generation device constructs and stores a tree structure including a plurality of layers, assigns a unique value for identifying a public key certificate of each terminal device to a leaf of the tree structure, and further stores and stores If a unique value of a public key certificate to be revoked is associated with at least one of the leaves that are descendants of a node for a given tree structure, that node is regarded as a revoked node, and at least one of the child nodes For a node, one of which is an invalidation node, an identifier for identifying whether each child node is an invalidation node is indicated by an identifier for identifying whether or not each child node is an invalidation node. The public key certificate revocation list is further arranged by arranging node revocation patterns of the entire tree structure based on a predetermined rule for tracing all nodes of the tree structure. Generated.
[0353]
Further, the present invention receives a public key certificate of the partner terminal device to be verified and the public key certificate revocation list, and determines whether or not the public key certificate is registered in the public key certificate revocation list. The revocation list using device to be determined.
The revocation list using apparatus analyzes a public key certificate revocation list in which the node revocation patterns are arranged based on the predetermined rule, and determines that the public key certificate of the terminal to be verified is invalidated. It is determined whether or not it is registered in the list.
[0354]
Here, the authentication system may be configured to distribute the revocation list using a communication medium as a revocation list distribution unit.
Here, the revocation list using apparatus may be configured to distribute the revocation list using a communication medium as a revocation list distribution unit.
Here, the authentication system may be configured to distribute the revocation list using a recording medium as a revocation list distribution unit.
[0355]
Here, the revocation list using device may be configured to distribute the revocation list using a recording medium as a revocation list distribution unit.
Here, the authentication system identifies a node in which all the leaves that are descendants of the invalidated node are invalidated among the node invalidation patterns given to the invalidated node. It may be configured to give a node invalidation pattern.
[0356]
Here, the revocation list generation device, for a node in which all leaves that are descendants of the revocation node are revoked in the node revocation pattern given to the revocation node, It may be configured to provide the identified node invalidation pattern.
Here, the authentication system adds, to the node invalidation pattern given to the invalidation node, information representing whether or not all the leaves that are descendants of the invalidation node are invalidated, and adds the node invalidation pattern. May be configured.
[0357]
Here, the revocation list generation device adds, to a node revocation pattern given to the revocation node, information indicating whether or not all the leaves that are descendants of the revocation node are revoked. An invalidation pattern may be configured.
Here, the authentication system is based on a rule for arranging the node invalidation patterns, starting from the root of the tree structure, giving priority to a node in an upper layer, and giving priority to a node on the left side in the same layer. You may comprise so that the node invalidation pattern of the invalidation node which appears may be arranged.
[0358]
Here, the revocation list generation device has a rule that, starting from the root of the tree structure, gives priority to nodes in upper layers and gives priority to left nodes in the same layer, as rules for arranging node revocation patterns. May be arranged so that the node invalidation patterns of the invalidation nodes appearing on the basis of.
Here, it is assumed that, in the authentication system, all nodes configuring the tree structure are invalidated. The nodes constituting this tree structure are called a processed node set. At this time, a node that has not been invalidated is newly added to the tree structure as follows. Here, adding a node is referred to as expanding a tree structure. A tree structure including a processed node set is considered as an initial state. In the initial state, a child node is further added to a node belonging to a lower layer of the tree structure. At this time, when a plurality of nodes belong to the lower layer, a child node is preferentially added to the left node among the plurality of nodes. After expanding the tree structure based on such an extension rule, a public key certificate is assigned to the lowest node, that is, a leaf.
[0359]
Here, when the public key certificate is revoked, as described above, the revocation list generation device invalidates all nodes on the route from the node to the root. At this time, the node invalidation patterns of the invalidation nodes are arranged based on the extension rule.
At this time, the revocation list using device analyzes the public key certificate revocation list in which the node revocation patterns are arranged based on the extension rule, and determines that the public key certificate of the terminal to be verified is It is determined whether or not it is registered in the revocation list.
[0360]
8. Other modifications
(1) The present invention may be the method described above. Further, these methods may be a computer program that is realized by a computer, or may be a digital signal formed by the computer program.
Further, the present invention records the computer program or the digital signal on a computer-readable recording medium such as a flexible disk, a hard disk, a CD-ROM, an MO, a DVD, a DVD-ROM, a DVD-RAM, and a semiconductor memory. It may be done. Further, the present invention may be the computer program or the digital signal recorded on these recording media.
[0361]
Further, according to the present invention, the computer program or the digital signal may be transmitted via an electric communication line, a wireless or wired communication line, a network represented by the Internet, or the like.
The present invention may be a computer system including a microprocessor and a memory, wherein the memory stores the computer program, and the microprocessor operates according to the computer program.
[0362]
Further, the program or the digital signal is recorded on the recording medium and transferred, or the program or the digital signal is transferred via the network or the like, so that it is executed by another independent computer system. It may be.
(2) The above embodiments and the above modifications may be combined.
[0363]
9. Conclusion
As is apparent from the above description, according to the invention disclosed in the first embodiment, key information can be made compact by arranging NRPs in order of level as header information of key information recorded in advance on a recording medium. It is also possible to specify an encrypted media key that the player should efficiently decrypt.
[0364]
According to the invention disclosed in the second embodiment, a bit indicating whether or not all descendants of a certain node are invalidating devices is added to the head of the NRP as header information. When concentrated, header information can be reduced.
Further, according to the invention disclosed in the third embodiment, it is possible to further reduce header information by determining whether or not all descendants of a certain node are invalidation devices in a certain specific pattern. .
[0365]
Further, according to the inventions disclosed in the fourth and fifth embodiments, the order of NRPs can be other than the order disclosed in the first to third embodiments.
Further, according to the invention disclosed in the sixth embodiment, the size of the CRL can be kept small even if the number of public key certificates to be revoked increases.
[0366]
10. Industrial potential
The authentication system for determining a revoked public key certificate described above uses a public key cryptosystem to transmit a secret message, authenticate a partner, prevent non-repudiation, share a key, throw coins, share secrets, etc. Is applied when determining whether the public key certificate is valid. For example, as shown in Embodiment 6, the present invention is applied to the case where the validity of a drive unit is authenticated. Also, in electronic commerce in which goods are bought and sold via the Internet, the present invention is applied when authenticating whether or not a trading partner is legitimate.
[0367]
【The invention's effect】
As described above, the present invention uses a revocation list generation device that generates a revocation list indicating a revoked public key certificate, and uses the revocation list to determine whether the acquired public key certificate is invalid. And an invalidation determination device that suppresses the use of a public key corresponding to the case where the invalidation is determined. The revocation list generation device includes a plurality of leaves each having a tree structure. A leaf identifier corresponding to a plurality of public key certificates and indicating each leaf identifies each public key certificate, and at least one public key certificate among the public key certificates is invalidated. All nodes from the leaf indicated by the leaf identifier that identifies the converted public key certificate to the root are invalidated, and a tree structure storage unit having a plurality of nodes constituting the tree structure; To For each invalidated node, invalidation information indicating whether each of the lower nodes is invalidated is generated, and as a result, a plurality of invalidation information is obtained, and the obtained plurality of invalidation information is obtained. Comprises an invalidation list generating means for generating an invalidation list by arranging the tree according to the arrangement order related to the configuration of the tree structure, and an output means for outputting the generated invalidation list. A certificate obtaining unit for obtaining a public key certificate identified by a leaf identifier indicating one leaf of a structure; a list obtaining unit for obtaining the revocation list; and a list arranged in the obtained revocation list. Attempt to construct a route from the root to the leaf using the revocation information, and if the constructed route includes the leaf, it is determined that the obtained public key certificate is invalid. And, if the does not contain leaf, and a judging means for the public key certificate obtained is determined to be valid. The revocation list generating apparatus generates a revocation list indicating a revoked public key certificate, wherein a plurality of leaves having a tree structure correspond to the plurality of public key certificates, and indicate each leaf. The leaf identifier identifies each public key certificate, at least one of the public key certificates has been revoked, and is indicated by a leaf identifier identifying the revoked public key certificate. All the nodes from the leaf to the root are invalidated, and a tree structure storage means having a plurality of nodes constituting the tree structure, and for each invalidated node except the leaf, a lower node Invalidation information indicating whether or not each is invalidated is generated. As a result, a plurality of pieces of invalidation information are obtained, and the obtained plurality of pieces of invalidation information are arranged according to the arrangement order according to the tree structure. Provided by a revocation list generation means for generating a revocation list by, and output means for outputting the generated revocation list that. Also, using the revocation list indicating the revoked public key certificate generated by the revocation list generation device, it is determined whether or not the obtained public key certificate is invalid. The revocation list generation device has a plurality of nodes constituting a tree structure, and a plurality of leaves of the tree structure each have a plurality of public key certificates. And a leaf identifier indicating each leaf identifies each public key certificate, and at least one of the public key certificates has been revoked, and the revoked public key certificate has been revoked. All nodes from the leaf to the root indicated by the leaf identifier that identifies the book are invalidated, and for each invalidated node except the leaf, whether each of the lower nodes is invalidated To A plurality of pieces of revocation information are obtained, and the obtained pieces of revocation information are arranged in accordance with the arrangement order of the tree structure to generate a revocation list. The invalidation list is output, and the invalidation determination device acquires a public key certificate identified by a leaf identifier indicating one leaf of the tree structure, and acquires the revocation list. Using a list acquisition unit and the invalidation information arranged in the acquired invalidation list, an attempt is made to construct a route from a root to the leaf, and when the leaf is included in the constructed route, A determination unit that determines that the obtained public key certificate is invalid, and determines that the obtained public key certificate is valid when the leaf is not included.
[0368]
According to these configurations, the revocation list generation device generates revocation information indicating whether or not each of the lower nodes has been revoked for each revoked node except the leaf. The size can be kept small. Further, the invalidation determination device attempts to construct a path from a root to the leaf using the invalidation information, and when the constructed path includes the leaf, the acquired public key certificate is Since it is determined that the certificate is invalid, the revoked public key certificate can be reliably determined.
[0369]
Here, the tree structure is composed of a plurality of layers, and the revocation list generating means converts the obtained revocation information from the root to the leaf-side layer in order from the root to the leaf-side layer. Are arranged according to the above-mentioned arrangement order. The tree structure is composed of a plurality of layers, and the invalidation information is arranged in accordance with the arrangement order, which is an order from a root-side layer to a leaf-side layer, starting from a root, and the determination unit includes: Using the plurality of pieces of revocation information arranged according to the arrangement order, constructing the path, and determining whether the acquired public key certificate is invalid.
[0370]
According to these configurations, the revocation list generation device arranges the obtained pieces of revocation information according to the arrangement order, which is the order from the layer on the root side to the layer on the leaf side, starting from the root. The route can be reliably established by the invalidity determination device.
Here, the revocation list generating means may use the obtained pieces of revocation information in the order of the nodes arranged on the route from the root to each leaf, starting from the root, and not being arranged in a redundant manner. Arrange in accordance with the arrangement order. In addition, the invalidation information is arranged in accordance with the order of nodes arranged on the route from the root to each leaf, starting from the root, and is not arranged in an overlapping manner. The route is constructed using the plurality of pieces of revocation information arranged according to the arrangement order, and the invalidation of the obtained public key certificate is determined.
[0371]
According to these configurations, the revocation list generation device uses the obtained plurality of revocation information as an order of nodes arranged on a route from the root to each leaf, starting from the root, and overlapping. Since the paths are arranged according to the non-arranged arrangement order, the path can be reliably established by the invalidation determination device.
Here, the revocation list generating means generates revocation information for all revoked nodes except for the leaf. In addition, revocation information is generated for all revoked nodes except for the leaf, and the determining unit determines revocation of the acquired public key certificate using the plurality of revocation information.
[0372]
According to these configurations, the revocation list generation device generates revocation information for all revoked nodes except the leaf, so that revocation information is not missing from the revocation list.
Here, the revocation list generating means may determine that all the nodes connected to the lower side of the invalidated nodes except for the leaf, in which all the nodes connected to the lower side are invalidated. Generate special invalidation information indicating that invalidation has been performed, and for all invalidated nodes connected to the lower side, suppress generation of invalidation information, and disable other invalidated nodes except for leaves , Invalidation information indicating whether each of the lower nodes is invalidated is generated. In addition, a special node indicating that all nodes connected to the lower side are invalidated for nodes that have been invalidated except for the leaf and all nodes connected to the lower side have been invalidated. Invalidation information is generated, generation of invalidation information is suppressed for all invalidated nodes connected to the lower side, and for all invalidated nodes other than leaves, the lower n nodes Revocation information indicating whether or not each has been revoked is generated, and the determination unit determines revocation of the obtained public key certificate using the special revocation information and the revocation information.
[0373]
According to these configurations, the revocation list generation device, for all the nodes that are revoked except for the leaf and for which all nodes connected to the lower side are revoked, are connected to the lower side. Since the special revocation information indicating that the node is revoked is generated, the size of the revocation list can be further reduced.
Here, the tree structure is an n-ary tree, where n is an integer of 2 or more, and the revocation list generating unit is a revoked node except for a leaf and connects to a lower side. The first additional information indicating that all nodes connected to the lower side are invalidated, and each of the lower n nodes is invalidated when all nodes are invalidated. , Generating special invalidation information composed of n-digit information indicating the invalidation of all the invalidated nodes connected to the lower side, suppressing generation of invalidation information, and performing other invalidation except for leaves Additional information indicating that all nodes connected to the lower side have not been invalidated, and n-digit information indicating whether or not each of the lower n nodes has been invalidated for the given node Generate invalidation information consisting of . In addition, for a node that has been invalidated except for the leaf and in which all nodes connected to the lower side are invalidated, a node indicating that all nodes connected to the lower side are invalidated. 1 special additional information and n-digit information indicating that each of the lower n nodes is invalidated are generated, and all invalidated information connected to the lower side is invalidated. The generation of invalidation information is suppressed for the node that has been invalidated. For the invalidated nodes other than the leaf, second additional information indicating that all nodes connected to the lower side are not invalidated, Invalidation information composed of n-digit information indicating whether or not each of the n nodes is invalidated is generated, and the determination unit uses the special invalidation information and the invalidation information to generate the invalidation information. The obtained public To determine the invalidity of the key certificate.
[0374]
According to these configurations, the revocation list generation device, for all the nodes that are revoked except for the leaf and for which all nodes connected to the lower side are revoked, are connected to the lower side. Generating special invalidation information including first additional information indicating that the node is invalidated and n-digit information indicating that each of the lower n nodes is invalidated; Since the generation of revocation information is suppressed for all revoked nodes connected to the lower side, the size of the revocation list can be reduced.
[0375]
Here, the tree structure is an n-ary tree, where n is an integer of 2 or more, and the revocation list generating unit is a revoked node except for a leaf and connects to a lower side. For all the nodes that have been invalidated, special invalidation information composed of an n-digit special value indicating that each of the lower n nodes is invalidated is generated, and For all the invalidated nodes to be connected, generation of invalidation information is suppressed, and for each of the invalidated nodes other than the leaf, it indicates whether or not each of the lower n nodes is invalidated. Generate n-digit invalidation information. In addition, for nodes that have been invalidated except for the leaf and for which all nodes connected to the lower side have been invalidated, n indicates that each of the lower n nodes has been invalidated. Special invalidation information composed of special values of digits is generated, and generation of invalidation information is suppressed for all invalidated nodes connected to the lower side, and other invalidated nodes except for leaves , N-digit invalidation information indicating whether or not each of the lower n nodes is invalidated is generated, and the determination unit obtains the invalidation information using the special invalidation information and the invalidation information. It is determined whether the public key certificate is invalid.
[0376]
According to these configurations, the revocation list generation device determines, for all the nodes that are revoked except the leaves and for which all the nodes connected to the lower side are revoked, of the lower n nodes. It generates special invalidation information composed of an n-digit special value indicating that each is invalidated, and suppresses generation of invalidation information for all invalidated nodes connected to the lower side. Therefore, the size of the revocation list can be reduced.
[0377]
Here, all the nodes of the tree structure storage means are invalidated, and the tree structure further includes one tree below the leaves constituting the tree structure in accordance with the expansion rule for expanding the tree structure. One or more extended leaves which are the lowest nodes among the extended nodes correspond to different extended public key certificates, and the extended leaf identifier indicating each extended leaf is At least one of the extended public key certificates that identify the public key certificate has been revoked, and is indicated by an extended leaf identifier that identifies the revoked extended public key certificate. All nodes from the extended leaf to the root are invalidated, and the revocation list generating means further includes a subordinate extended node for each invalidated extended node except the extended leaf. Are generated, indicating whether or not each of them is invalidated.As a result, a plurality of extended invalidation information is obtained, and the obtained plurality of extended invalidation information is related to the extension of the tree structure. Arranged according to the extension rule and added to the revocation list, the output means outputs the revocation list to which extended revocation information is added. Further, all nodes of the revocation list generation device are revoked, and the tree structure further includes one tree below a leaf configuring the tree structure according to an expansion rule related to expansion of the tree structure. One or more extended leaves which are the lowest nodes among the extended nodes having the above extended nodes respectively correspond to different extended public key certificates, and the extended leaf identifier indicating each extended leaf is an extended public key. At least one of the extended public key certificates for identifying a key certificate has been revoked, and the extension indicated by an extended leaf identifier for identifying the revoked extended public key certificate All nodes from the leaf to the root are invalidated, and the revocation list generation device further performs lower-level expansion for each invalidated expansion node except the expansion leaf. Generates extended invalidation information indicating whether or not each of the nodes is invalidated.As a result, a plurality of extended invalidation information is obtained, and the obtained plurality of extended invalidation information is used to extend the tree structure. Arranged according to the extension rule and added to the revocation list, the revocation list to which the extended revocation information is added is output, and the certificate acquisition unit further includes one extended leaf of the tree structure. Acquiring the extended public key certificate identified by the extended leaf identifier indicated by the extended leaf key identifier, the list acquiring unit acquires the revocation list to which extended revocation information is added, and the determining unit further acquires the acquired invalidation. Using the extended invalidation information arranged in the activation list, an attempt is made to construct a path from a root to the extended leaf, and when the extended leaf is included in the constructed path, the acquired It determines that Zhang public key certificate is invalid, when the do not include extension leaf, the extended public key certificate obtained is determined to be valid.
[0378]
According to these configurations, the revocation list generation device, for each of the revoked extended nodes except for the extended leaf, indicates whether or not each of the subordinate extended nodes has been revoked according to the extension rule. Since the information is generated, even if the tree structure is expanded, it is possible to generate a CRL with a small size. Further, the invalidation determination device attempts to construct a route from a root to the extended leaf using the extended invalidation information, and when the extended leaf is included in the constructed route, the acquired extended public information is acquired. Since it is determined that the key certificate is invalid, the revoked extended public key certificate can be reliably determined.
[0379]
Further, the present invention is a revocation list generation device that generates a revocation list indicating a revoked public key certificate, wherein a plurality of leaves in a tree structure respectively correspond to a plurality of public key certificates, A leaf identifier indicating each leaf identifies each public key certificate, none of the public key certificates has been revoked, and all nodes have not been revoked, forming the tree structure. The tree structure storage means having a plurality of nodes to be executed and all the nodes constituting the tree structure are determined not to be revoked, and a revocation list indicating that there is no revoked public key certificate is generated. And an output unit for outputting the generated revocation list. Also, using the revocation list indicating the revoked public key certificate generated by the revocation list generation device, it is determined whether or not the obtained public key certificate is invalid. The revocation list generation device has a plurality of nodes constituting a tree structure, and a plurality of leaves of the tree structure each have a plurality of public key certificates. The leaf identifier indicating each leaf identifies each public key certificate, none of the public key certificates has been revoked, and all nodes have not been revoked, All nodes constituting the structure determine that the revocation has not been performed, generate a revocation list indicating that the revoked public key certificate does not exist, output the generated revocation list, and output the revocation list. The judgment device is one of the tree structures Certificate obtaining means for obtaining a public key certificate identified by a leaf identifier indicating a leaf, list obtaining means for obtaining the revocation list, and using the obtained revocation list, a public key certificate is invalidated. Determining means for determining that the data has not been converted.
[0380]
According to these configurations, when there is no revoked public key certificate, the revocation list generation device generates and outputs a revocation list indicating that, so that the public key certificate does not exist. Can be notified. Further, the revocation determination device determines that the public key certificate has not been revoked by using the obtained revocation list. Therefore, if there is no revoked public key certificate, the Can be used.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of a copyrighted work protection system 10.
FIG. 2 is a block diagram showing a configuration of a key management device 100.
FIG. 3 shows an example of a data structure of a tree structure table D100.
FIG. 4 is a conceptual diagram showing a tree structure T100.
FIG. 5 is a conceptual diagram showing a tree structure T200 including an invalidated node.
FIG. 6 is a data structure diagram illustrating an example of a node invalidation pattern.
FIG. 7 is a data structure diagram illustrating an example of key information including a plurality of encrypted media keys.
FIG. 8 is a block diagram illustrating a configuration of a recording device 300a.
FIG. 9 is a block diagram showing a configuration of a playback device 400a.
FIG. 10 is a flowchart showing an operation of assigning a device key to a user device, an operation of generating key information and writing it on a recording medium, and an operation of encrypting or decrypting content by the user device. In particular, it is a flowchart showing the operation of each device until the device key is exposed by an unauthorized third party.
FIG. 11 shows an operation of invalidating a node in a tree structure corresponding to an exposed device key after a device key is exposed by an unauthorized third party, generation of new key information, and generation of new key information on a recording medium. 9 is a flowchart illustrating a writing operation and an operation of encrypting or decrypting content by the user device.
FIG. 12 is a flowchart showing an operation of generating a tree structure table by the tree structure construction unit 101 and writing the tree structure table into the tree structure storage unit 102.
FIG. 13 is a flowchart showing an operation performed by the device key assignment unit 103 to output a device key and ID information to each user device.
14 is a flowchart illustrating an operation of updating a tree structure by the tree structure update unit 105. FIG.
FIG. 15 is a flowchart illustrating an operation of generating header information by the key information header generation unit 106.
FIG. 16 is a flowchart illustrating an operation of generating key information by the key information generation unit 107.
FIG. 17 is a flowchart illustrating an operation of specifying one encrypted media key from key information stored in a recording medium by a specifying unit included in the recording device.
FIG. 18 illustrates an example of a tree structure in a case where user devices to be invalidated may be concentrated on a specific leaf in the tree structure according to the first embodiment.
FIG. 19 is a tree structure showing a special node invalidation pattern when a user device to be invalidated is concentrated on a specific leaf in the tree structure in the second embodiment.
FIG. 20 shows an example of a data structure of a tree structure table D400.
FIG. 21 shows an example of a data structure of header information D500.
FIG. 22 shows an example of the data structure of key information D600.
FIG. 23 is a flowchart showing an operation of generating key information by the key information header generating unit 106. It continues to FIG.
FIG. 24 is a flowchart showing an operation of generating header information by a key information header generation unit 106. It continues to FIG.
FIG. 25 is a flowchart showing an operation of generating the header information by the key information header generation unit 106. It continues to FIG.
FIG. 26 is a flowchart showing an operation of generating key information by the key information header generating unit 106. Continued from FIG.
FIG. 27 is a flowchart illustrating an operation of specifying one encrypted media key from the key information stored in the recording medium 500b by the specifying unit 303 included in the recording device 300a.
FIG. 28 is a tree structure showing a special node invalidation pattern in the third embodiment.
FIG. 29 shows an example of the data structure of header information D700.
FIG. 30 shows an example of the data structure of key information D800.
FIG. 31 is a flowchart illustrating an operation of generating header information. It continues to FIG.
FIG. 32 is a flowchart illustrating an operation of generating header information. It continues to FIG.
FIG. 33 is a flowchart showing an operation of generating header information. It continues to FIG.
FIG. 34 is a flowchart illustrating an operation of generating header information. Continued from FIG.
FIG. 35 is a flowchart showing an operation of specifying one encrypted media key from the key information stored in the recording medium 500b by the specifying unit 303 included in the recording device 300a.
FIG. 36 is a tree structure showing how to arrange a plurality of node invalidation patterns in the fourth embodiment.
FIG. 37 shows an example of the data structure of a tree structure table D100.
FIG. 38 shows an example of the data structure of header information D900.
FIG. 39 is a flowchart showing an operation of generating a tree structure table by the tree structure construction unit 101 and writing the tree structure table into the tree structure storage unit 102.
40 is a flowchart showing an operation of generating header information by the key information header generation unit 106. FIG. It continues to FIG.
FIG. 41 is a flowchart showing an operation of generating key information by the key information header generating unit 106. Continued from FIG.
FIG. 42 is a flowchart showing an operation of specifying one encrypted media key from the key information stored in the recording medium 500b by the specifying unit 303 included in the recording device 300a.
FIG. 43 is a flowchart showing an operation of generating key information by the key information header generating unit 106. It continues to FIG.
FIG. 44 is a flowchart showing an operation of generating header information by the key information header generation unit 106. It continues to FIG.
FIG. 45 is a flowchart showing an operation of generating key information by the key information header generating unit 106. It continues to FIG.
FIG. 46 is a flowchart illustrating an operation of generating header information by the key information header generation unit 106. Continued from FIG.
FIG. 47 is a flowchart showing an operation of specifying one encrypted media key from the key information stored in the recording medium 500b by the specifying unit 303 included in the recording device 300a.
FIG. 48 is a block diagram showing a configuration of a copyrighted work protection system 10f.
FIG. 49 is a conceptual diagram showing a tree structure T700 including nodes to which revoked device keys KeyA, KeyB, and KeyE are assigned.
FIG. 50 is a data structure diagram showing a configuration of header information D1000 and key information D1010.
FIG. 51 is a flowchart showing an operation of specifying one encrypted media key by the specifying unit 303 included in the recording device 300a.
FIG. 52 is a block diagram showing a configuration of an authentication system 1000.
FIG. 53 is a block diagram showing a configuration of a manufacturing apparatus 1200.
FIG. 54 is a block diagram showing a configuration of a certificate authority apparatus 1100.
FIG. 55 is a data structure diagram showing an example of a CRL.
FIG. 56 is a block diagram showing a configuration of a copyrighted work recording device 1400.
FIG. 57 is a block diagram showing a configuration of a main unit 1900.
FIG. 58 is a block diagram showing a configuration of a drive unit 1600.
FIG. 59 is a flowchart showing an operation of the manufacturing apparatus 1200 and the manufacturing apparatus 1300.
FIG. 60 is a flowchart showing an operation of issuing a public key certificate by the certificate authority apparatus 1100.
FIG. 61 is a flowchart showing an operation of issuing a CRL by the certificate authority apparatus 1100.
FIG. 62 is a flowchart showing the operation of the main unit 1900 and the drive unit 1600. It continues to FIG.
FIG. 63 is a flowchart showing the operation of the main unit 1900 and the drive unit 1600. It continues from FIG.
[Explanation of symbols]
10, 10b-10f Copyright protection system
100 key management device
200 Key information recording device
300a-300c recording device
400a-400c playback device
1000 authentication system
1100 Certificate Authority device
1200 Manufacturing Equipment
1300 Manufacturing equipment
1400 Work recording device
1500 personal computer
1600 drive section
1900 main unit

Claims (27)

無効化された公開鍵証明書を示す無効化リストを生成する無効化リスト生成装置と、取得した公開鍵証明書が無効か否かを無効化リストを用いて判定し、無効と判定する場合に対応する公開鍵の利用を抑制する無効判定装置とから構成される認証システムであって、
前記無効化リスト生成装置は、
木構造の複数のリーフが、それぞれ複数の公開鍵証明書に対応し、各リーフを示すリーフ識別子は、各公開鍵証明書を識別し、前記公開鍵証明書のうち少なくとも1個の公開鍵証明書が無効化されており、無効化された公開鍵証明書を識別するリーフ識別子により示されるリーフからルートに至るまでの全てのノードは無効化されており、前記木構造を構成する複数のノードを有する木構造記憶手段と、
リーフを除く無効化された各ノードについて、下位のノードのそれぞれが無効化されているか否かを示す無効化情報を生成し、その結果複数の無効化情報が得られ、得られた複数の無効化情報を、前記木構造の構成に係る配列順序に従って配列して無効化リストを生成する無効化リスト生成手段と、
生成した無効化リストを出力する出力手段とを含み、
前記無効判定装置は、
前記木構造の1個のリーフを示すリーフ識別子により識別される公開鍵証明書を取得する証明書取得手段と、
前記無効化リストを取得するリスト取得手段と、
取得した前記無効化リスト内に配列されている前記無効化情報を用いて、ルートから前記リーフに至る経路の構築を試み、構築された経路内に前記リーフが含まれる場合に、取得した前記公開鍵証明書が無効であると判断し、前記リーフが含まれない場合に、取得した前記公開鍵証明書が有効であると判断する判定手段とを含む
ことを特徴とする認証システム。
A revocation list generation device for generating a revocation list indicating a revoked public key certificate, and determining whether or not the obtained public key certificate is invalid using the revocation list. An authentication system comprising an invalidation determination device that suppresses use of a corresponding public key,
The revocation list generation device,
A plurality of leaves in a tree structure correspond to a plurality of public key certificates, respectively, a leaf identifier indicating each leaf identifies each public key certificate, and at least one public key certificate among the public key certificates is provided. All nodes from the leaf indicated by the leaf identifier that identifies the revoked public key certificate to the root have been revoked, and a plurality of nodes constituting the tree structure have been revoked. Tree structure storage means having
For each invalidated node excluding the leaf, invalidation information indicating whether each of the lower nodes is invalidated is generated, and as a result, a plurality of invalidation information is obtained, and the obtained invalidation information is obtained. Revocation information, revocation list generating means for generating an revocation list by arranging according to the arrangement order related to the configuration of the tree structure,
Output means for outputting the generated revocation list.
The invalidity determination device,
Certificate obtaining means for obtaining a public key certificate identified by a leaf identifier indicating one leaf of the tree structure;
List acquisition means for acquiring the revocation list,
Using the revocation information arranged in the obtained revocation list, an attempt is made to construct a route from a root to the leaf, and if the leaf is included in the constructed route, the acquired disclosure An authentication system for determining that the key certificate is invalid, and determining that the obtained public key certificate is valid when the leaf is not included.
無効化された公開鍵証明書を示す無効化リストを生成する無効化リスト生成装置であって、
木構造の複数のリーフが、それぞれ複数の公開鍵証明書に対応し、各リーフを示すリーフ識別子は、各公開鍵証明書を識別し、前記公開鍵証明書のうち少なくとも1個の公開鍵証明書が無効化されており、無効化された公開鍵証明書を識別するリーフ識別子により示されるリーフからルートに至るまでの全てのノードは無効化されており、前記木構造を構成する複数のノードを有する木構造記憶手段と、
リーフを除く無効化された各ノードについて、下位のノードのそれぞれが無効化されているか否かを示す無効化情報を生成し、その結果複数の無効化情報が得られ、得られた複数の無効化情報を、前記木構造の構成に係る配列順序に従って配列して無効化リストを生成する無効化リスト生成手段と、
生成した無効化リストを出力する出力手段と
を備えることを特徴とする無効化リスト生成装置。
A revocation list generation device that generates a revocation list indicating a revoked public key certificate,
A plurality of leaves in a tree structure correspond to a plurality of public key certificates, respectively, a leaf identifier indicating each leaf identifies each public key certificate, and at least one public key certificate among the public key certificates is provided. All nodes from the leaf indicated by the leaf identifier that identifies the revoked public key certificate to the root have been revoked, and a plurality of nodes constituting the tree structure have been revoked. Tree structure storage means having
For each invalidated node excluding the leaf, invalidation information indicating whether each of the lower nodes is invalidated is generated, and as a result, a plurality of invalidation information is obtained, and the obtained invalidation information is obtained. Revocation information, revocation list generating means for generating an revocation list by arranging according to the arrangement order related to the configuration of the tree structure,
Output means for outputting the generated revocation list.
前記木構造は、複数のレイヤから構成され、
前記無効化リスト生成手段は、得られた複数の無効化情報を、
ルートを起点とし、
ルート側のレイヤからリーフ側のレイヤへの順序
である前記配列順序に従って配列する
ことを特徴とする請求項2に記載の無効化リスト生成装置。
The tree structure is composed of a plurality of layers,
The revocation list generation means, the obtained plurality of revocation information,
Starting from the route,
3. The revocation list generation device according to claim 2, wherein the reordering list is arranged in accordance with the arrangement order, which is the order from the root layer to the leaf layer.
前記無効化リスト生成手段は、得られた複数の無効化情報を、
ルートを起点とし、
ルートから各リーフへ至る経路上に配されるノードの順序であって、
重複して配列されない
前記配列順序に従って配列する
ことを特徴とする請求項2に記載の無効化リスト生成装置。
The revocation list generation means, the obtained plurality of revocation information,
Starting from the route,
The order of nodes arranged on the route from the root to each leaf,
The revocation list generating device according to claim 2, wherein the revocation list is arranged according to the arrangement order that is not overlapped.
前記無効化リスト生成手段は、リーフを除き、無効化された全てのノードについて、無効化情報を生成する
ことを特徴とする請求項2に記載の無効化リスト生成装置。
The revocation list generation device according to claim 2, wherein the revocation list generation unit generates revocation information for all revoked nodes except for the leaf.
前記無効化リスト生成手段は、
リーフを除き、無効化されたノードであって、下位側に接続する全てのノードが無効化されているものについて、下位側に接続する全てのノードが無効化されている旨を示す特別無効化情報を生成し、
前記下位側に接続する全ての無効化されたノードについて、無効化情報の生成を抑制し、
リーフを除く他の無効化されたノードについて、下位のノードのそれぞれが無効化されているか否かを示す無効化情報を生成する
ことを特徴とする請求項2に記載の無効化リスト生成装置。
The revocation list generation means,
Special invalidation indicating that all nodes connected to the lower side are invalidated for all invalidated nodes except for the leaf, and all nodes connected to the lower side are invalidated. Generate information,
For all invalidated nodes connected to the lower side, suppress generation of invalidation information,
3. The revocation list generating device according to claim 2, wherein revocation information indicating whether or not each of the lower nodes is revoked for other revoked nodes other than the leaf is generated.
前記木構造は、n分木であり、nは、2以上の整数であり、
前記無効化リスト生成手段は、
リーフを除き、無効化されたノードであって、下位側に接続する全てのノードが無効化されているものについて、下位側に接続する全てのノードが無効化されている旨を示す第1付加情報と、下位のn個のノードのそれぞれが無効化されていることを示すn桁の情報とから構成される特別無効化情報を生成し、
前記下位側に接続する全ての無効化されたノードについて、無効化情報の生成を抑制し、
リーフを除く他の無効化されたノードについて、下位側に接続する全てのノードが無効化されていない旨を示す第2付加情報と、下位のn個のノードのそれぞれが無効化されているか否かを示すn桁の情報とから構成される無効化情報を生成する
ことを特徴とする請求項6に記載の無効化リスト生成装置。
The tree structure is an n-ary tree, where n is an integer of 2 or more,
The revocation list generation means,
A first addition indicating that all nodes connected to the lower side of the invalidated nodes except for the leaf, in which all nodes connected to the lower side are invalidated, are invalidated. Generating special invalidation information including information and n-digit information indicating that each of the lower n nodes is invalidated,
For all invalidated nodes connected to the lower side, suppress generation of invalidation information,
For other invalidated nodes other than the leaf, second additional information indicating that all nodes connected to the lower side are not invalidated, and whether each of the lower n nodes is invalidated 7. The revocation list generation device according to claim 6, wherein revocation information including n-digit information indicating whether the revocation list is generated is generated.
前記木構造は、n分木であり、nは、2以上の整数であり、
前記無効化リスト生成手段は、
リーフを除き、無効化されたノードであって、下位側に接続する全てのノードが無効化されているものについて、下位のn個のノードのそれぞれが無効化されていることを示すn桁の特別値から構成される特別無効化情報を生成し、
前記下位側に接続する全ての無効化されたノードについて、無効化情報の生成を抑制し、
リーフを除く他の無効化されたノードについて、下位のn個のノードのそれぞれが無効化されているか否かを示すn桁の無効化情報を生成する
ことを特徴とする請求項6に記載の無効化リスト生成装置。
The tree structure is an n-ary tree, where n is an integer of 2 or more,
The revocation list generation means,
For an invalidated node excluding a leaf, in which all nodes connected to the lower side are invalidated, an n-digit number indicating that each of the lower n nodes is invalidated. Generate special invalidation information consisting of special values,
For all invalidated nodes connected to the lower side, suppress generation of invalidation information,
7. The n-digit invalidation information indicating whether or not each of the lower n nodes is invalidated for other invalidated nodes other than the leaves is generated, according to claim 6, wherein: Revocation list generator.
前記木構造記憶手段が有する全てのノードが無効化されており、
前記木構造は、さらに、当該木構造を構成するリーフの下位に、木構造の拡張に係る拡張規則に従って、1個以上の拡張ノードを有し、前記拡張ノードのうち最下位ノードである1個以上の拡張リーフは、それぞれ別の拡張公開鍵証明書に対応し、各拡張リーフを示す拡張リーフ識別子は、各拡張公開鍵証明書を識別する、前記拡張公開鍵証明書のうち少なくとも1個の拡張公開鍵証明書が無効化されており、無効化された拡張公開鍵証明書を識別する拡張リーフ識別子により示される拡張リーフからルートに至るまでの全てのノードは無効化されており、
前記無効化リスト生成手段は、さらに、拡張リーフを除く無効化された各拡張ノードについて、下位の拡張ノードのそれぞれが無効化されているか否かを示す拡張無効化情報を生成し、その結果複数の拡張無効化情報が得られ、得られた複数の拡張無効化情報を、前記木構造の拡張に係る拡張規則に従って配列して前記無効化リストに付加し、
前記出力手段は、拡張無効化情報が付加された前記無効化リストを出力する
ことを特徴とする請求項2に記載の無効化リスト生成装置。
All nodes of the tree structure storage means are invalidated,
The tree structure further has one or more extension nodes below the leaves constituting the tree structure in accordance with an extension rule relating to the expansion of the tree structure. The above-mentioned extended leaves correspond to different extended public key certificates respectively, and the extended leaf identifier indicating each extended leaf identifies at least one of the extended public key certificates identifying the extended public key certificate. The extended public key certificate has been revoked, and all nodes from the extended leaf to the root indicated by the extended leaf identifier that identifies the revoked extended public key certificate have been revoked,
The revocation list generating means further generates, for each of the revoked extension nodes except the extension leaf, extended extension revocation information indicating whether or not each of the subordinate extension nodes is revoked, and as a result, The extended invalidation information of the obtained, a plurality of obtained extended invalidation information, arranged in accordance with the expansion rules pertaining to the expansion of the tree structure, and added to the invalidation list,
3. The revocation list generation device according to claim 2, wherein the output unit outputs the revocation list to which extended revocation information is added.
無効化された公開鍵証明書を示す無効化リストを生成する無効化リスト生成装置であって、
木構造の複数のリーフが、それぞれ複数の公開鍵証明書に対応し、各リーフを示すリーフ識別子は、各公開鍵証明書を識別し、前記公開鍵証明書のうちいずれも無効化されておらず、全てのノードは、無効化されておらず、前記木構造を構成する複数のノードを有する木構造記憶手段と、
木構造を構成する全てのノードは、無効化されていないと判断し、無効化された公開鍵証明書が存在しないことを示す無効化リストを生成する無効化リスト生成手段と、
生成した無効化リストを出力する出力手段と
を備えることを特徴とする無効化リスト生成装置。
A revocation list generation device that generates a revocation list indicating a revoked public key certificate,
A plurality of leaves having a tree structure correspond to a plurality of public key certificates, respectively. A leaf identifier indicating each leaf identifies each public key certificate, and any of the public key certificates is invalidated. All the nodes are not invalidated, tree structure storage means having a plurality of nodes constituting the tree structure,
Revocation list generation means for determining that all nodes constituting the tree structure have not been revoked, and generating a revocation list indicating that the revoked public key certificate does not exist;
Output means for outputting the generated revocation list.
無効化リスト生成装置により生成された無効化された公開鍵証明書を示す無効化リストを用いて、取得した公開鍵証明書が無効か否かを判定し、無効と判定する場合に対応する公開鍵の利用を抑制する無効判定装置であって、
前記無効化リスト生成装置は、木構造を構成する複数のノードを有し、木構造の複数のリーフは、それぞれ複数の公開鍵証明書に対応し、各リーフを示すリーフ識別子は、各公開鍵証明書を識別し、前記公開鍵証明書のうち少なくとも1個の公開鍵証明書が無効化されており、無効化された公開鍵証明書を識別するリーフ識別子により示されるリーフからルートに至るまでの全てのノードは無効化されており、リーフを除く無効化された各ノードについて、下位のノードのそれぞれが無効化されているか否かを示す無効化情報を生成し、その結果複数の無効化情報が得られ、得られた複数の無効化情報を、前記木構造の構成に係る配列順序に従って配列して無効化リストを生成し、生成した無効化リストを出力し、
前記無効判定装置は、
前記木構造の1個のリーフを示すリーフ識別子により識別される公開鍵証明書を取得する証明書取得手段と、
前記無効化リストを取得するリスト取得手段と、
取得した前記無効化リスト内に配列されている前記無効化情報を用いて、ルートから前記リーフに至る経路の構築を試み、構築された経路内に前記リーフが含まれる場合に、取得した前記公開鍵証明書が無効であると判断し、前記リーフが含まれない場合に、取得した前記公開鍵証明書が有効であると判断する判定手段と
を備えることを特徴とする無効判定装置。
Using the revocation list indicating the revoked public key certificate generated by the revocation list generation device, it is determined whether the obtained public key certificate is invalid, and the corresponding public key is determined when the obtained public key certificate is determined to be invalid. An invalidation determination device that suppresses use of a key,
The revocation list generation device has a plurality of nodes forming a tree structure, a plurality of leaves in the tree structure respectively correspond to a plurality of public key certificates, and a leaf identifier indicating each leaf is a public key. Identifying a certificate, wherein at least one of the public key certificates has been revoked, from the leaf indicated by the leaf identifier identifying the revoked public key certificate to the root. Are invalidated, and for each invalidated node except the leaf, invalidation information indicating whether each of the lower nodes is invalidated is generated, and as a result, multiple invalidations are performed. Information is obtained, a plurality of obtained revocation information is arranged according to the arrangement order according to the configuration of the tree structure to generate a revocation list, and the generated revocation list is output,
The invalidity determination device,
Certificate obtaining means for obtaining a public key certificate identified by a leaf identifier indicating one leaf of the tree structure;
List acquisition means for acquiring the revocation list,
Using the revocation information arranged in the obtained revocation list, an attempt is made to construct a route from a root to the leaf, and if the leaf is included in the constructed route, the acquired disclosure An invalidity judging device comprising: judging means for judging that a key certificate is invalid, and judging that the obtained public key certificate is valid when the leaf is not included.
前記木構造は、複数のレイヤから構成され、
前記無効化情報は、
ルートを起点とし、
ルート側のレイヤからリーフ側のレイヤへの順序
である前記配列順序に従って配列され、
前記判定手段は、前記配列順序に従って配列された前記複数の無効化情報を用いて、前記経路を構築し、取得した前記公開鍵証明書の無効を判断する
ことを特徴とする請求項11に記載の無効判定装置。
The tree structure is composed of a plurality of layers,
The invalidation information includes:
Starting from the route,
Are arranged according to the arrangement order, which is the order from the root layer to the leaf layer,
12. The method according to claim 11, wherein the determining unit constructs the path using the plurality of pieces of revocation information arranged according to the arrangement order, and determines whether the obtained public key certificate is invalid. Invalidity determination device.
前記無効化情報は、
ルートを起点とし、
ルートから各リーフへ至る経路上に配されるノードの順序であって、
重複して配列されない
前記配列順序に従って配列され、
前記判定手段は、前記配列順序に従って配列された前記複数の無効化情報を用いて、前記経路を構築し、取得した前記公開鍵証明書の無効を判断する
ことを特徴とする請求項11に記載の無効判定装置。
The invalidation information includes:
Starting from the route,
The order of nodes arranged on the route from the root to each leaf,
Arranged in accordance with the above-mentioned sequence order that is not arranged redundantly,
12. The method according to claim 11, wherein the determining unit constructs the path using the plurality of pieces of revocation information arranged according to the arrangement order, and determines whether the obtained public key certificate is invalid. Invalidity determination device.
リーフを除き、無効化された全てのノードについて、無効化情報が生成され、
前記判定手段は、前記複数の無効化情報を用いて、取得した前記公開鍵証明書の無効を判断する
ことを特徴とする請求項11に記載の無効判定装置。
Invalidation information is generated for all invalidated nodes except for the leaf,
The invalidation determination apparatus according to claim 11, wherein the determination unit determines whether the acquired public key certificate is invalid by using the plurality of pieces of revocation information.
リーフを除き、無効化されたノードであって、下位側に接続する全てのノードが無効化されているものについて、下位側に接続する全てのノードが無効化されている旨を示す特別無効化情報が生成され、
前記下位側に接続する全ての無効化されたノードについて、無効化情報の生成が抑制され、
リーフを除く他の無効化されたノードについて、下位のn個のノードのそれぞれが無効化されているか否かを示す無効化情報が生成され、
前記判定手段は、前記特別無効化情報及び前記無効化情報を用いて、取得した前記公開鍵証明書の無効を判断する
ことを特徴とする請求項11に記載の無効判定装置。
Special invalidation indicating that all nodes connected to the lower side are invalidated for all invalidated nodes except for the leaf, and all nodes connected to the lower side are invalidated. Information is generated,
For all the invalidated nodes connected to the lower side, generation of invalidation information is suppressed,
For other invalidated nodes other than the leaf, invalidation information indicating whether or not each of the lower n nodes is invalidated is generated,
12. The invalidation determination apparatus according to claim 11, wherein the determination unit determines the invalidation of the obtained public key certificate using the special revocation information and the revocation information.
リーフを除き、無効化されたノードであって、下位側に接続する全てのノードが無効化されているものについて、下位側に接続する全てのノードが無効化されている旨を示す第1付加情報と、下位のn個のノードのそれぞれが無効化されていることを示すn桁の情報とから構成される特別無効化情報が生成され、
前記下位側に接続する全ての無効化されたノードについて、無効化情報の生成が抑制され、
リーフを除く他の無効化されたノードについて、下位側に接続する全てのノードが無効化されていない旨を示す第2付加情報と、下位のn個のノードのそれぞれが無効化されているか否かを示すn桁の情報とから構成される無効化情報が生成され、
前記判定手段は、前記特別無効化情報及び前記無効化情報を用いて、取得した前記公開鍵証明書の無効を判断する
ことを特徴とする請求項15に記載の無効判定装置。
A first addition indicating that all nodes connected to the lower side of the invalidated nodes except for the leaf, in which all nodes connected to the lower side are invalidated, are invalidated. Special invalidation information composed of information and n-digit information indicating that each of the lower n nodes is invalidated is generated,
For all the invalidated nodes connected to the lower side, generation of invalidation information is suppressed,
For other invalidated nodes other than the leaf, second additional information indicating that all nodes connected to the lower side are not invalidated, and whether each of the lower n nodes is invalidated And n-digit information indicating whether the invalidation information is generated.
16. The invalidation determination apparatus according to claim 15, wherein the determination unit determines whether the obtained public key certificate is invalid using the special revocation information and the revocation information.
リーフを除き、無効化されたノードであって、下位側に接続する全てのノードが無効化されているものについて、下位のn個のノードのそれぞれが無効化されていることを示すn桁の特別値から構成される特別無効化情報が生成され、
前記下位側に接続する全ての無効化されたノードについて、無効化情報の生成が抑制され、
リーフを除く他の無効化されたノードについて、下位のn個のノードのそれぞれが無効化されているか否かを示すn桁の無効化情報が生成され、
前記判定手段は、前記特別無効化情報及び前記無効化情報を用いて、取得した前記公開鍵証明書の無効を判断する
ことを特徴とする請求項15に記載の無効判定装置。
For an invalidated node excluding a leaf, in which all nodes connected to the lower side are invalidated, an n-digit number indicating that each of the lower n nodes is invalidated. Special invalidation information consisting of special values is generated,
For all the invalidated nodes connected to the lower side, generation of invalidation information is suppressed,
For other invalidated nodes other than the leaf, n-digit invalidation information indicating whether or not each of the lower n nodes is invalidated is generated,
16. The invalidation determination apparatus according to claim 15, wherein the determination unit determines whether the obtained public key certificate is invalid using the special revocation information and the revocation information.
前記無効化リスト生成装置が有する全てのノードが無効化されており、前記木構造は、さらに、当該木構造を構成するリーフの下位に、木構造の拡張に係る拡張規則に従って、1個以上の拡張ノードを有する、前記拡張ノードのうち最下位ノードである1個以上の拡張リーフは、それぞれ別の拡張公開鍵証明書に対応し、各拡張リーフを示す拡張リーフ識別子は、各拡張公開鍵証明書を識別する、前記拡張公開鍵証明書のうち少なくとも1個の拡張公開鍵証明書が無効化されており、無効化された拡張公開鍵証明書を識別する拡張リーフ識別子により示される拡張リーフからルートに至るまでの全てのノードは無効化されており、前記無効化リスト生成装置は、さらに、拡張リーフを除く無効化された各拡張ノードについて、下位の拡張ノードのそれぞれが無効化されているか否かを示す拡張無効化情報を生成し、その結果複数の拡張無効化情報が得られ、得られた複数の拡張無効化情報を、前記木構造の拡張に係る拡張規則に従って配列して前記無効化リストに付加し、拡張無効化情報が付加された前記無効化リストを出力し、
前記証明書取得手段は、さらに、前記木構造の1個の拡張リーフを示す拡張リーフ識別子により識別される拡張公開鍵証明書を取得し、
前記リスト取得手段は、拡張無効化情報が付加された前記無効化リストを取得し、
前記判定手段は、さらに、取得した前記無効化リスト内に配列されている前記拡張無効化情報を用いて、ルートから前記拡張リーフに至る経路の構築を試み、構築された経路内に前記拡張リーフが含まれる場合に、取得した前記拡張公開鍵証明書が無効であると判断し、前記拡張リーフが含まれない場合に、取得した前記拡張公開鍵証明書が有効であると判断する
ことを特徴とする請求項11に記載の無効判定装置。
All nodes of the revocation list generation device are revoked, and the tree structure further includes one or more nodes below a leaf configuring the tree structure according to an expansion rule related to expansion of the tree structure. One or more extension leaves that are extension nodes and are the lowest nodes among the extension nodes correspond to different extension public key certificates, and an extension leaf identifier indicating each extension leaf is an extension public key certificate. At least one extended public key certificate among the extended public key certificates for identifying a certificate has been revoked, and from an extended leaf indicated by an extended leaf identifier for identifying the revoked extended public key certificate. All nodes up to the root are invalidated, and the revocation list generation device further includes a lower extended node for each invalidated extended node except the extended leaf. Are generated, indicating whether or not each of them is invalidated.As a result, a plurality of extended invalidation information is obtained, and the obtained plurality of extended invalidation information is related to the extension of the tree structure. Arranged according to the extension rule and added to the revocation list, output the revocation list with extended revocation information added,
The certificate obtaining means further obtains an extended public key certificate identified by an extended leaf identifier indicating one extended leaf of the tree structure,
The list acquisition unit acquires the revocation list to which extended revocation information is added,
The determining unit further attempts to construct a route from a root to the extended leaf using the extended invalidation information arranged in the acquired revocation list, and further includes an extension leaf in the constructed route. Is included, the acquired extended public key certificate is determined to be invalid, and if the extended leaf is not included, the acquired extended public key certificate is determined to be valid. The invalidity judging device according to claim 11, wherein:
無効化リスト生成装置により生成された無効化された公開鍵証明書を示す無効化リストを用いて、取得した公開鍵証明書が無効か否かを判定し、無効と判定する場合に対応する公開鍵の利用を抑制する無効判定装置であって、
前記無効化リスト生成装置は、木構造を構成する複数のノードを有し、木構造の複数のリーフは、それぞれ複数の公開鍵証明書に対応し、各リーフを示すリーフ識別子は、各公開鍵証明書を識別し、前記公開鍵証明書のうちいずれも無効化されておらず、全てのノードは、無効化されておらず、木構造を構成する全てのノードは、無効化されていないと判断し、無効化された公開鍵証明書が存在しないことを示す無効化リストを生成し、生成した無効化リストを出力し、
前記無効判定装置は、
前記木構造の1個のリーフを示すリーフ識別子により識別される公開鍵証明書を取得する証明書取得手段と、
前記無効化リストを取得するリスト取得手段と、
取得した前記無効化リストを用いて、公開鍵証明書が無効化されていないと判断する判定手段と
を備えることを特徴とする無効判定装置。
Using the revocation list indicating the revoked public key certificate generated by the revocation list generation device, it is determined whether the obtained public key certificate is invalid, and the corresponding public key is determined when the obtained public key certificate is determined to be invalid. An invalidation determination device that suppresses use of a key,
The revocation list generation device has a plurality of nodes forming a tree structure, a plurality of leaves in the tree structure respectively correspond to a plurality of public key certificates, and a leaf identifier indicating each leaf is a public key. Identify the certificate, none of the public key certificates has been revoked, all nodes have not been revoked, and all nodes constituting the tree structure have not been revoked. Judge, generate a revocation list indicating that the revoked public key certificate does not exist, output the generated revocation list,
The invalidity determination device,
Certificate obtaining means for obtaining a public key certificate identified by a leaf identifier indicating one leaf of the tree structure;
List acquisition means for acquiring the revocation list,
A determination unit configured to determine that the public key certificate has not been revoked using the obtained revocation list.
無効化された公開鍵証明書を示す無効化リストを生成する無効化リスト生成装置で用いられる無効化リスト生成方法であって、
前記無効化リスト生成装置は、木構造の複数のリーフが、それぞれ複数の公開鍵証明書に対応し、各リーフを示すリーフ識別子は、各公開鍵証明書を識別し、前記公開鍵証明書のうち少なくとも1個の公開鍵証明書が無効化されており、無効化された公開鍵証明書を識別するリーフ識別子により示されるリーフからルートに至るまでの全てのノードは無効化され、前記木構造を構成する複数のノードを有する木構造記憶手段を備え、
前記無効化リスト生成方法は、
リーフを除く無効化された各ノードについて、下位のノードのそれぞれが無効化されているか否かを示す無効化情報を生成し、その結果複数の無効化情報が得られ、得られた複数の無効化情報を、前記木構造の構成に係る配列順序に従って配列して無効化リストを生成する無効化リスト生成ステップと、
生成した無効化リストを出力する出力ステップと
を含むことを特徴とする無効化リスト生成方法。
A revocation list generation method used in a revocation list generation device that generates a revocation list indicating a revoked public key certificate,
In the revocation list generation device, a plurality of leaves having a tree structure respectively correspond to a plurality of public key certificates, a leaf identifier indicating each leaf identifies each public key certificate, At least one of the public key certificates is revoked, and all nodes from the leaf to the root indicated by the leaf identifier identifying the revoked public key certificate are revoked, and the tree structure Tree storage means having a plurality of nodes constituting
The revocation list generation method includes:
For each invalidated node excluding the leaf, invalidation information indicating whether each of the lower nodes is invalidated is generated, and as a result, a plurality of invalidation information is obtained, and the obtained invalidation information is obtained. Invalidation information, an invalidation list generating step of arranging according to the arrangement order according to the configuration of the tree structure to generate an invalidation list,
An output step of outputting the generated revocation list.
無効化された公開鍵証明書を示す無効化リストを生成する無効化リスト生成装置で用いられる無効化リスト生成プログラムであって、
前記無効化リスト生成装置は、木構造の複数のリーフが、それぞれ複数の公開鍵証明書に対応し、各リーフを示すリーフ識別子は、各公開鍵証明書を識別し、前記公開鍵証明書のうち少なくとも1個の公開鍵証明書が無効化されており、無効化された公開鍵証明書を識別するリーフ識別子により示されるリーフからルートに至るまでの全てのノードは無効化されており、前記木構造を構成する複数のノードを有する木構造記憶手段を備え、
前記無効化リスト生成プログラムは、
リーフを除く無効化された各ノードについて、下位のノードのそれぞれが無効化されているか否かを示す無効化情報を生成し、その結果複数の無効化情報が得られ、得られた複数の無効化情報を、前記木構造の構成に係る配列順序に従って配列して無効化リストを生成する無効化リスト生成ステップと、
生成した無効化リストを出力する出力ステップと
を含むことを特徴とする無効化リスト生成プログラム。
A revocation list generation program used in a revocation list generation device that generates a revocation list indicating a revoked public key certificate,
In the revocation list generation device, a plurality of leaves having a tree structure respectively correspond to a plurality of public key certificates, a leaf identifier indicating each leaf identifies each public key certificate, At least one of the public key certificates has been revoked, and all nodes from the leaf indicated by the leaf identifier identifying the revoked public key certificate to the root have been revoked; A tree structure storage unit having a plurality of nodes forming a tree structure,
The revocation list generation program includes:
For each invalidated node excluding the leaf, invalidation information indicating whether each of the lower nodes is invalidated is generated, and as a result, a plurality of invalidation information is obtained, and the obtained invalidation information is obtained. Invalidation information, an invalidation list generating step of arranging according to the arrangement order according to the configuration of the tree structure to generate an invalidation list,
And an output step of outputting the generated revocation list.
無効化された公開鍵証明書を示す無効化リストを生成する無効化リスト生成装置で用いられる無効化リスト生成プログラムを記録しているコンピュータ読取り可能な記録媒体であって、
前記無効化リスト生成装置は、木構造の複数のリーフが、それぞれ複数の公開鍵証明書に対応し、各リーフを示すリーフ識別子は、各公開鍵証明書を識別し、前記公開鍵証明書のうち少なくとも1個の公開鍵証明書が無効化されており、無効化された公開鍵証明書を識別するリーフ識別子により示されるリーフからルートに至るまでの全てのノードは無効化されており、前記木構造を構成する複数のノードを有する木構造記憶手段を備え、
前記無効化リスト生成プログラムは、
リーフを除く無効化された各ノードについて、下位のノードのそれぞれが無効化されているか否かを示す無効化情報を生成し、その結果複数の無効化情報が得られ、得られた複数の無効化情報を、前記木構造の構成に係る配列順序に従って配列して無効化リストを生成する無効化リスト生成ステップと、
生成した無効化リストを出力する出力ステップとを含む
ことを特徴とする記録媒体。
A computer-readable recording medium recording a revocation list generation program used in a revocation list generation device that generates a revocation list indicating a revoked public key certificate,
In the revocation list generation device, a plurality of leaves having a tree structure respectively correspond to a plurality of public key certificates, a leaf identifier indicating each leaf identifies each public key certificate, At least one of the public key certificates has been revoked, and all nodes from the leaf indicated by the leaf identifier identifying the revoked public key certificate to the root have been revoked; A tree structure storage unit having a plurality of nodes forming a tree structure,
The revocation list generation program includes:
For each invalidated node excluding the leaf, invalidation information indicating whether each of the lower nodes is invalidated is generated, and as a result, a plurality of invalidation information is obtained, and the obtained invalidation information is obtained. Invalidation information, an invalidation list generating step of arranging according to the arrangement order according to the configuration of the tree structure to generate an invalidation list,
An output step of outputting the generated revocation list.
無効化リスト生成装置により生成された無効化された公開鍵証明書を示す無効化リストを用いて、取得した公開鍵証明書が無効か否かを判定し、無効と判定する場合に対応する公開鍵の利用を抑制する無効判定装置で用いられる無効判定方法であって、
前記無効化リスト生成装置は、木構造を構成する複数のノードを有し、木構造の複数のリーフは、それぞれ複数の公開鍵証明書に対応し、各リーフを示すリーフ識別子は、各公開鍵証明書を識別し、前記公開鍵証明書のうち少なくとも1個の公開鍵証明書が無効化されており、無効化された公開鍵証明書を識別するリーフ識別子により示されるリーフからルートに至るまでの全てのノードは無効化されており、リーフを除く無効化された各ノードについて、下位のノードのそれぞれが無効化されているか否かを示す無効化情報を生成し、その結果複数の無効化情報が得られ、得られた複数の無効化情報を、前記木構造の構成に係る配列順序に従って配列して無効化リストを生成し、生成した無効化リストを出力し、
前記無効判定方法は、
前記木構造の1個のリーフを示すリーフ識別子により識別される公開鍵証明書を取得する証明書取得ステップと、
前記無効化リストを取得するリスト取得ステップと、
取得した前記無効化リスト内に配列されている前記無効化情報を用いて、ルートから前記リーフに至る経路の構築を試み、構築された経路内に前記リーフが含まれる場合に、取得した前記公開鍵証明書が無効であると判断し、前記リーフが含まれない場合に、取得した前記公開鍵証明書が有効であると判断する判定ステップと
を含むことを特徴とする無効判定方法。
Using the revocation list indicating the revoked public key certificate generated by the revocation list generation device, it is determined whether the obtained public key certificate is invalid, and the corresponding public key is determined when the obtained public key certificate is determined to be invalid. An invalidation determination method used in an invalidation determination device that suppresses use of a key,
The revocation list generation device has a plurality of nodes forming a tree structure, a plurality of leaves in the tree structure respectively correspond to a plurality of public key certificates, and a leaf identifier indicating each leaf is a public key. Identifying a certificate, wherein at least one of the public key certificates has been revoked, from the leaf indicated by the leaf identifier identifying the revoked public key certificate to the root. Are invalidated, and for each invalidated node except the leaf, invalidation information indicating whether each of the lower nodes is invalidated is generated, and as a result, multiple invalidations are performed. Information is obtained, a plurality of obtained revocation information is arranged according to the arrangement order according to the configuration of the tree structure to generate a revocation list, and the generated revocation list is output,
The invalidity determination method includes:
A certificate obtaining step of obtaining a public key certificate identified by a leaf identifier indicating one leaf of the tree structure;
A list acquisition step of acquiring the revocation list,
Using the revocation information arranged in the obtained revocation list, an attempt is made to construct a route from a root to the leaf, and if the leaf is included in the constructed route, the acquired disclosure Determining that the key certificate is invalid and, if the leaf is not included, determining that the obtained public key certificate is valid.
無効化リスト生成装置により生成された無効化された公開鍵証明書を示す無効化リストを用いて、取得した公開鍵証明書が無効か否かを判定し、無効と判定する場合に対応する公開鍵の利用を抑制する無効判定装置で用いられる無効判定プログラムであって、
前記無効化リスト生成装置は、木構造を構成する複数のノードを有し、木構造の複数のリーフは、それぞれ複数の公開鍵証明書に対応し、各リーフを示すリーフ識別子は、各公開鍵証明書を識別し、前記公開鍵証明書のうち少なくとも1個の公開鍵証明書が無効化されており、無効化された公開鍵証明書を識別するリーフ識別子により示されるリーフからルートに至るまでの全てのノードは無効化されており、リーフを除く無効化された各ノードについて、下位のノードのそれぞれが無効化されているか否かを示す無効化情報を生成し、その結果複数の無効化情報が得られ、得られた複数の無効化情報を、前記木構造の構成に係る配列順序に従って配列して無効化リストを生成し、生成した無効化リストを出力し、
前記無効判定プログラムは、
前記木構造の1個のリーフを示すリーフ識別子により識別される公開鍵証明書を取得する証明書取得ステップと、
前記無効化リストを取得するリスト取得ステップと、
取得した前記無効化リスト内に配列されている前記無効化情報を用いて、ルートから前記リーフに至る経路の構築を試み、構築された経路内に前記リーフが含まれる場合に、取得した前記公開鍵証明書が無効であると判断し、前記リーフが含まれない場合に、取得した前記公開鍵証明書が有効であると判断する判定ステップと
を含むことを特徴とする無効判定プログラム。
Using the revocation list indicating the revoked public key certificate generated by the revocation list generation device, it is determined whether the obtained public key certificate is invalid, and the corresponding public key is determined when the obtained public key certificate is determined to be invalid. An invalidation determination program used in an invalidation determination device that suppresses use of a key,
The revocation list generation device has a plurality of nodes forming a tree structure, a plurality of leaves in the tree structure respectively correspond to a plurality of public key certificates, and a leaf identifier indicating each leaf is a public key. Identifying a certificate, wherein at least one of the public key certificates has been revoked, from the leaf indicated by the leaf identifier identifying the revoked public key certificate to the root. Are invalidated, and for each invalidated node except the leaf, invalidation information indicating whether each of the lower nodes is invalidated is generated, and as a result, multiple invalidations are performed. Information is obtained, a plurality of obtained revocation information is arranged according to the arrangement order according to the configuration of the tree structure to generate a revocation list, and the generated revocation list is output,
The invalidity determination program includes:
A certificate obtaining step of obtaining a public key certificate identified by a leaf identifier indicating one leaf of the tree structure;
A list acquisition step of acquiring the revocation list,
Using the revocation information arranged in the obtained revocation list, an attempt is made to construct a route from a root to the leaf, and if the leaf is included in the constructed route, the acquired disclosure A determining step of determining that the key certificate is invalid, and determining that the acquired public key certificate is valid when the leaf is not included.
無効化リスト生成装置により生成された無効化された公開鍵証明書を示す無効化リストを用いて、取得した公開鍵証明書が無効か否かを判定し、無効と判定する場合に対応する公開鍵の利用を抑制する無効判定装置で用いられる無効判定プログラムを記録しているコンピュータ読取り可能な記録媒体であって、
前記無効化リスト生成装置は、木構造を構成する複数のノードを有し、木構造の複数のリーフは、それぞれ複数の公開鍵証明書に対応し、各リーフを示すリーフ識別子は、各公開鍵証明書を識別し、前記公開鍵証明書のうち少なくとも1個の公開鍵証明書が無効化されており、無効化された公開鍵証明書を識別するリーフ識別子により示されるリーフからルートに至るまでの全てのノードは無効化されており、リーフを除く無効化された各ノードについて、下位のノードのそれぞれが無効化されているか否かを示す無効化情報を生成し、その結果複数の無効化情報が得られ、得られた複数の無効化情報を、前記木構造の構成に係る配列順序に従って配列して無効化リストを生成し、生成した無効化リストを出力し、
前記無効判定プログラムは、
前記木構造の1個のリーフを示すリーフ識別子により識別される公開鍵証明書を取得する証明書取得ステップと、
前記無効化リストを取得するリスト取得ステップと、
取得した前記無効化リスト内に配列されている前記無効化情報を用いて、ルートから前記リーフに至る経路の構築を試み、構築された経路内に前記リーフが含まれる場合に、取得した前記公開鍵証明書が無効であると判断し、前記リーフが含まれない場合に、取得した前記公開鍵証明書が有効であると判断する判定ステップとを含む
ことを特徴とする記録媒体。
Using the revocation list indicating the revoked public key certificate generated by the revocation list generation device, it is determined whether the obtained public key certificate is invalid, and the corresponding public key is determined when the obtained public key certificate is determined to be invalid. A computer-readable recording medium recording an invalidation determination program used in an invalidation determination device that suppresses use of a key,
The revocation list generation device has a plurality of nodes forming a tree structure, a plurality of leaves in the tree structure respectively correspond to a plurality of public key certificates, and a leaf identifier indicating each leaf is a public key. Identifying a certificate, wherein at least one of the public key certificates has been revoked, from the leaf indicated by the leaf identifier identifying the revoked public key certificate to the root. Are invalidated, and for each invalidated node except the leaf, invalidation information indicating whether each of the lower nodes is invalidated is generated, and as a result, multiple invalidations are performed. Information is obtained, a plurality of obtained revocation information is arranged according to the arrangement order according to the configuration of the tree structure to generate a revocation list, and the generated revocation list is output,
The invalidity determination program includes:
A certificate obtaining step of obtaining a public key certificate identified by a leaf identifier indicating one leaf of the tree structure;
A list acquisition step of acquiring the revocation list,
Using the revocation information arranged in the obtained revocation list, an attempt is made to construct a route from a root to the leaf, and if the leaf is included in the constructed route, the acquired disclosure A determination step of determining that the key certificate is invalid and determining that the obtained public key certificate is valid when the leaf is not included.
無効化リスト生成装置により生成された無効化された公開鍵証明書を示す無効化リストを記録しているコンピュータ読取り可能な記録媒体であって、
前記無効化リスト生成装置は、
木構造の複数のリーフが、それぞれ複数の公開鍵証明書に対応し、各リーフを示すリーフ識別子は、各公開鍵証明書を識別し、前記公開鍵証明書のうち少なくとも1個の公開鍵証明書が無効化されており、無効化された公開鍵証明書を識別するリーフ識別子により示されるリーフからルートに至るまでの全てのノードは無効化されており、前記木構造を構成する複数のノードを有する木構造記憶手段と、
リーフを除く無効化された各ノードについて、下位のノードのそれぞれが無効化されているか否かを示す無効化情報を生成し、その結果複数の無効化情報が得られ、得られた複数の無効化情報を、前記木構造の構成に係る配列順序に従って配列して無効化リストを生成する無効化リスト生成手段とを備え、
前記記録媒体は、生成された前記無効化リストを記録している
ことを特徴とする記録媒体。
A computer-readable recording medium recording a revocation list indicating a revoked public key certificate generated by a revocation list generation device,
The revocation list generation device,
A plurality of leaves in a tree structure correspond to a plurality of public key certificates, respectively, a leaf identifier indicating each leaf identifies each public key certificate, and at least one public key certificate among the public key certificates is provided. All nodes from the leaf indicated by the leaf identifier that identifies the revoked public key certificate to the root have been revoked, and a plurality of nodes constituting the tree structure have been revoked. Tree structure storage means having
For each invalidated node excluding the leaf, invalidation information indicating whether each of the lower nodes is invalidated is generated, and as a result, a plurality of invalidation information is obtained, and the obtained invalidation information is obtained. Revocation information, revocation list generating means for generating a revocation list by arranging according to the arrangement order related to the configuration of the tree structure,
The recording medium, wherein the generated revocation list is recorded.
無効化リスト生成装置により生成された無効化された公開鍵証明書を示す無効化リストを記録しているコンピュータ読取り可能な記録媒体であって、
前記無効化リスト生成装置は、
木構造の複数のリーフが、それぞれ複数の公開鍵証明書に対応し、各リーフを示すリーフ識別子は、各公開鍵証明書を識別し、前記公開鍵証明書のうちいずれも無効化されておらず、全てのノードは、無効化されておらず、前記木構造を構成する複数のノードを有する木構造記憶手段と、
木構造を構成する全てのノードは、無効化されていないと判断し、無効化された公開鍵証明書が存在しないことを示す無効化リストを生成する無効化リスト生成手段とを備え、
前記記録媒体は、生成された前記無効化リストを記録している
ことを特徴とする記録媒体。
A computer-readable recording medium recording a revocation list indicating a revoked public key certificate generated by a revocation list generation device,
The revocation list generation device,
A plurality of leaves having a tree structure correspond to a plurality of public key certificates, respectively. A leaf identifier indicating each leaf identifies each public key certificate, and any of the public key certificates is invalidated. All the nodes are not invalidated, tree structure storage means having a plurality of nodes constituting the tree structure,
All nodes constituting the tree structure are provided with revocation list generation means for determining that the revocation has not been performed and generating a revocation list indicating that the revoked public key certificate does not exist;
The recording medium, wherein the generated revocation list is recorded.
JP2003120629A 2002-05-09 2003-04-24 Public key certificate revocation list generation device, revocation determination device, and authentication system Expired - Fee Related JP4383084B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003120629A JP4383084B2 (en) 2002-05-09 2003-04-24 Public key certificate revocation list generation device, revocation determination device, and authentication system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002134647 2002-05-09
JP2003120629A JP4383084B2 (en) 2002-05-09 2003-04-24 Public key certificate revocation list generation device, revocation determination device, and authentication system

Publications (2)

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

Family

ID=31190197

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003120629A Expired - Fee Related JP4383084B2 (en) 2002-05-09 2003-04-24 Public key certificate revocation list generation device, revocation determination device, and authentication system

Country Status (1)

Country Link
JP (1) JP4383084B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008535440A (en) * 2005-04-06 2008-08-28 サムスン エレクトロニクス カンパニー リミテッド Method and apparatus for determining discard key and method and apparatus for decryption using the same
JP4856063B2 (en) * 2004-06-04 2012-01-18 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Authentication method for authenticating the first party to the second party
JP5952266B2 (en) * 2011-04-22 2016-07-13 パナソニック株式会社 Invalidation list generation device, invalidation list generation method, and content management system

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4856063B2 (en) * 2004-06-04 2012-01-18 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Authentication method for authenticating the first party to the second party
US9898591B2 (en) 2004-06-04 2018-02-20 Koninklijke Philips N.V. Authentication method for authenticating a first party to a second party
JP2008535440A (en) * 2005-04-06 2008-08-28 サムスン エレクトロニクス カンパニー リミテッド Method and apparatus for determining discard key and method and apparatus for decryption using the same
JP5952266B2 (en) * 2011-04-22 2016-07-13 パナソニック株式会社 Invalidation list generation device, invalidation list generation method, and content management system

Also Published As

Publication number Publication date
JP4383084B2 (en) 2009-12-16

Similar Documents

Publication Publication Date Title
EP1510036B1 (en) Public key certificate revocation list generation apparatus, revocation judgement apparatus, and authentication system
CN101167300B (en) Information security device
US7224804B2 (en) Information processing device, information processing method, and program storage medium
TWI244584B (en) Data processing system, data processing method, and program providing medium
US8144869B2 (en) Content protection system, key data generation apparatus, and terminal apparatus
JP5657639B2 (en) Controller incorporated in recording medium apparatus, recording medium apparatus, recording medium apparatus manufacturing system, and recording medium apparatus manufacturing method
EP2330533A1 (en) Recording/reproducing system, recording medium device, and recording/reproducing device
US20070098177A1 (en) Information processing system and method
JP2001352321A (en) Information processing system, information processing method, and information recording medium, and program providing medium
JP2002198948A (en) System, method, and device for processing information, information recording medium, and program recording medium
JPH10106148A (en) Ciphering method, decoding method, recording and reproducing device, decoding device, decoding unit device, recording medium, manufacture of recording medium and method of managing key
JP2002198950A (en) System and method for processing information, and program recording medium
JP2001358707A (en) Information processing system and method using cryptographic key block and program providing medium
EP1464139A2 (en) Digital work protection system, key management apparatus, and user apparatus
WO2001099331A1 (en) System and method for processing information using encryption key block
JP2002077131A (en) Information processing system, information processing method, information recording medium and program providing medium
KR20050034639A (en) Region restrictive playback system
JP4383084B2 (en) Public key certificate revocation list generation device, revocation determination device, and authentication system
JP4220213B2 (en) Copyright protection system, key management device and user device
JP2001358705A (en) Information processing system and method using cryptographic key block and program providing medium
JP2003204321A (en) Literary work protective system and key management system
JP2004229128A (en) Encryption data distribution system, information processor and information processing method, and computer program
JP2004118830A (en) Limited-regional reproducing system
WO2004114584A1 (en) Copyright protection system, power residue calculation device, and method
JP2005012786A (en) Copyright protecting system, exponentiation/remainder arithmetic device, arithmetic device, key management device, reproducing device, recording device, record medium, exponentiation remainder arithmetic method, arithmetic method, and program

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