JP2002237808A - デバイス情報生成装置、デバイス情報生成方法、制御データ生成装置、制御データ生成方法、情報利用装置、情報利用方法、および記憶媒体 - Google Patents
デバイス情報生成装置、デバイス情報生成方法、制御データ生成装置、制御データ生成方法、情報利用装置、情報利用方法、および記憶媒体Info
- Publication number
- JP2002237808A JP2002237808A JP2001033915A JP2001033915A JP2002237808A JP 2002237808 A JP2002237808 A JP 2002237808A JP 2001033915 A JP2001033915 A JP 2001033915A JP 2001033915 A JP2001033915 A JP 2001033915A JP 2002237808 A JP2002237808 A JP 2002237808A
- Authority
- JP
- Japan
- Prior art keywords
- control data
- path
- route
- information
- generating
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000003860 storage Methods 0.000 title claims description 73
- 238000004364 calculation method Methods 0.000 claims description 54
- 239000011159 matrix material Substances 0.000 claims description 23
- 230000010365 information processing Effects 0.000 claims description 4
- 230000001419 dependent effect Effects 0.000 claims 2
- 230000000694 effects Effects 0.000 abstract description 8
- 230000006870 function Effects 0.000 description 98
- 238000013500 data storage Methods 0.000 description 23
- 230000003936 working memory Effects 0.000 description 21
- 238000005516 engineering process Methods 0.000 description 16
- 238000003491 array Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000015654 memory Effects 0.000 description 2
- 239000013256 coordination polymer Substances 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
データによって制御する技術において、重大なセキュリ
ティ上の問題と、リボケーションに際して発生し、ユー
ザーの利便性を大きく損なう副作用の問題とを、共に回
避するデバイス情報生成装置を提供する。 【解決手段】 利用デバイス30に割り当てられる複数
の数の組からなるデバイス識別子を入力し、このデバイ
ス識別子の部分経路に対応する経路関数値を、計算する
経路関数計算部106を備えた。
Description
報利用装置に関わる。また、本発明は、当該利用デバイ
スにおける電子化データの利用を制御する制御データを
作成する、制御データ作成装置に関わる。また、デバイ
ス情報生成装置に関わる。更に、本発明は、当該制御デ
ータが記録されたデータ記録媒体に関わる。
後単にデータと言う)の利用を、制御データによって制
御する技術として、リボケーションと呼ばれる技術が知
られている。リボケーションは、しばしば電子化著作物
の著作権保護に応用されている。リボケーションの概念
を以下に説明する。
ス情報)を割り当てられており、デバイス内に保持して
いる。デバイス情報は、個々のデバイス毎に異なってい
る。あるいは、一群のデバイスが同一のデバイス情報を
割り当てられていても良い。例えば、A社が製造したC
D再生デバイスは全て同一のデバイス情報を持つ、と言
うような場合が、それに当たる。
ティ対策が不十分であった等の理由により、データの不
正利用が発生したと仮定する。この場合、不正利用が発
生したデバイスにおけるデータ利用を制限/禁止して、
被害の拡大を防ぐ事が重要である。
配布され、この制御データを利用デバイスで読み取り、
当該制御データと、当該利用デバイスが保持するデバイ
ス情報とに基づいて、データ利用の可否を決定する。こ
れにより、少なくとも不正利用が発生した利用デバイス
を含む、一群のデバイスはデータの利用が制限/禁止さ
れる。制御データは、例えば、放送やネットワークを通
じてデータを送信する場合には、データに付随させて利
用端末に配布したり、CD−ROMやDVD−ROM等
のパッケージ・メディアを通じて流通する場合には、パ
ッケージ・メディアに記録したりして配布される。
御データが配布され、2)利用デバイスは当該制御デー
タを読み込み、3)利用デバイスは、デバイス情報と制
御データに基づいて、データ利用の可否を判断するとい
った一連の処理により、利用デバイスにおけるデータ利
用を制限/禁止する事を、リボケーションと言う。利用
デバイスにおけるデータ利用がリボケーションによって
制限/禁止されたとき、当該利用デバイスはリボークさ
れたと言う。制御データの配布は、リボケーションを管
理する主体(通常は法人)が行う。これをリボーク主体
と呼ぶ。
/禁止の対象となる利用デバイスを(リボーク)対象デ
バイスと呼ぶ。リボケーションは、デバイス情報に基づ
いて行われるため、同一のデバイス情報を持つデバイス
は(例え複数存在しても)区別されない。しかし、後述
のMKB技術において見られるように、対象デバイスと
デバイス情報が異なっている利用デバイスであっても、
データ利用が制限/禁止される現象が発生する事があ
る。この現象を、リボケーションの錯誤と呼ぶ事にす
る。これはリボケーションの副作用であり、利用デバイ
スを使用する消費者の便宜を著しく損なう。この種の副
作用の発生を極力避ける事は、リボケーション技術にと
って非常に重要である。
て、リボケーション・リスト(RL)の技術が良く知ら
れている。RLは、制御データであり、通常はデータに
付随した形で利用デバイスに配布される。RLには、当
該データの利用を禁止するデバイスのデバイス情報が列
挙されている。利用デバイスは、データ利用に先立って
RLを読取り、自分自身のデバイス情報がRLに含まれ
ているか否かをチェックする。デバイス情報がRLに含
まれない場合、当該利用デバイスはデータを利用する。
一方、デバイス情報がRLに含まれる場合、当該利用デ
バイスはデータ利用を行わない。RLの改ざんを防ぐ
為、RLを暗号化する事がしばしば行われる。
報を個別に指定する事ができる。また、リボケーション
の錯誤は発生しない。ところが、RL技術は、セキュリ
ティ的に看過し難い問題点を有している。リボーク対象
デバイスがデータ利用を中止するのは、当該利用デバイ
スが自分自身のデバイス情報をRL中に見出したが故
に、データ利用を言わば「自粛」するからに過ぎない。
データ利用に必要な情報の入手は、リボケーションの判
断とは独立に行われる。そもそも、リボーク対象デバイ
スとは、改造等が施された可能性があり、「信用できな
い」利用デバイスである。リボーク対象デバイスが、デ
ータ利用を「自粛」しないよう改造されていれば、RL
のリボケーションは全く効果を持たない。
術は、RL技術が持つ上記のセキュリティ上の問題点を
解決する、リボケーション技術の一つである。MKB技
術では、先ず、デバイス・キー行列KDを用意する。KDの
行、列の数をそれぞれm,nとおく。またKDのi行j列成分
をk[i,j](ただし、0 <= i < n, 0 <= j < n)と表記す
る。KDの各成分は、例えば、乱数発生器で生成した乱数
である。マスター鍵をKとする。マスター鍵は、データ
利用に必要な情報の一つである。例えば、データがデー
タ・キーで暗号化されており、マスター鍵で暗号化され
たデータ・キーが、データと共に利用デバイスに配布さ
れている。マスター鍵を得た利用デバイスは、これを用
いてデータ・キーを復号し、更にデータを復号して利用
する事ができる。
バイス情報は、写像p:[ 0, ..., n- 1 ]→[ 0, ..., m
- 1 ]と、pが誘導するデバイス鍵の列:KD( p ) = [ k
[ p(0 ), 0 ], k[ p( 1 ), 1 ], ..., k[ p( n - 1 ),
n - 1 ] ]の組( p, KD( p ))とである。また、制御デー
タは、m行n列の行列Mである。MをMKBと呼ぶ。Mのi行
j列成分をM[ i, j ]と表記する。Mの初期値(即ち、リ
ボケーションがないときの値)は、M[ i, j ] = Enc
( k[ i, j ], K )で与えられる。Encは、適当な暗号化
アルゴリズムによる暗号化関数である。鍵wによってデ
ータxを暗号化した結果をEnc( w, x )と表記する。
デバイスは、MKBMを読取り、図39に示す処理を行
なう。この処理をMKB処理と呼ぶ。MKB処理におい
て、Decは、暗号化関数Encに対応する復号関数である。
Dec( w, x )は、データxを鍵wで復号した結果を示す。
定義から明らかに、Dec( w, Enc( w, x ) ) = xとな
る。
る。特にnull≠Kでなければならない。p及びKD( p )
は、それぞれ配列P及びKDPに格納されているものとす
る。P[ j ]= p( j )、KDP[ j ] = k[ p( j ), j ]と示
す。
期値に対して、リボーク処理が、デバイス情報( p, KD
( p ) )に関わりなくResult = Kを与える事は容易に読
取れる。
利用デバイスDをリボークする事を考える。この時、リ
ボーク主体は、次のMKB M'を利用デバイスに配布す
る。 M'[ a( j ), j ] = Enc( k[ a[ j ], j ], null ) M'[ i, j ] = Enc( k[ i, j ], K ) if i ≠ a( j ) 明らかに、利用デバイスDがMKB M'を処理して得る結
果はnullであり、マスター鍵Kを得る事はできない。一
方、D以外の利用機器D'がM'を処理すれば、Kを得る。利
用機器Dは、しかもDだけ、マスター鍵Kを得る事ができ
ない。その結果、利用機器Dはデータ復号等の処理に進
むことができず、リボークされた事になる。
るのは利用機器である。しかし、RLの場合とは異な
り、リボーク処理を行なうか否かの判断は利用機器に依
存していない。ある利用機器がメディア・キー・ブロッ
クによってリボークされている場合、当該利用機器に割
り当てられているデバイス情報をどのように利用して
も、マスター鍵を取り出す事はできない。従って、MK
B技術は、RLが持つ先述のセキュリティ上の問題点を
解決している。
在する。即ち、複数の利用機器がリボークされた場合、
リボケーションの錯誤が発生する可能性がある。簡単の
為に小さなMKBを用いて、この事を説明する。デバイ
ス・キー行列のサイズを4行4列とし、MKB Mの成分が
次の様に与えられているとする。 M[ 2, 0 ] = Enc( k[ 2, 0 ], null ), M[ 2, 1 ] = Enc( k[ 2, 1 ], null ), M[ 1, 2 ] = Enc( k[ 1, 2 ], null ), M[ 3, 3 ] = Enc( k[ 3, 3 ], null ), M[ i, j ] = Enc( k[ i, j ], K ) (上記以外) 上記MKBでは、デバイス情報( p, KD[ p ] )を持つ利用
デバイスD2が(そして、D2だけが)リボークされてい
る。ただし、p = [ 2, 2, 1, 3 ]。
)によって指定される利用デバイスD3をリボークする必
要が生じたとする。ただし、p' = [ 1, 3, 1, 2 ]。M
KBMは更新され、M'となる。M'の各成分は次の様に与
えられる: M'[ 2, 0 ] = M[ 2, 0 ], M'[ 1, 0 ] = Enc( k[ 1, 0 ], null ), M'[ 2, 1 ] = M[ 2, 1 ], M'[ 3, 1 ] = Enc( k[ 3, 1 ], null ), M'[ 1, 2 ] = M[ 1, 2 ], M'[ 3, 3 ] = M[ 3, 3 ], M'[ 2, 3 ] = Enc( k[ 2, 3 ], null ) M'[ i, j ] = Enc( k[ i, j ], K ) (上記以外) M'によって、利用デバイスD2及びD3は確かにリボークさ
れる。しかし、同時に、例えばデバイス情報( p'', KD
[ p'' ] )を有する利用デバイスまでリボークされてい
る。ただし、p'' = [ 2, 3, 1, 3 ]。D2、D3以外にはか
らずもリボークされてしまう利用デバイスは、全部で6
台ある。
用デバイス(s個のデバイス情報)をリボークした場
合、最大sn - s台の利用デバイスが、リボケーションの
錯誤によってリボークされる。「無実の罪」を着せられ
た利用デバイスのユーザーも、リボーク対象デバイスの
ユーザーと共に、データ利用を制限される不都合を被る
事となる。場合によっては、この事が重大な経済的損失
等に繋がる可能性も否定できない。MKBをリボケーシ
ョン技術として採用した場合、利用デバイスの供給業者
や製造業者は、ユーザーからの苦情や損害賠償の要求な
ど、潜在的な製品トラブルを抱える事になると言っても
過言ではない。
リボケーションの錯誤によってリボークされる確率は、
一般的な仮定の下で、リボーク対象デバイスの数に対し
て指数的に増大する。この事は、実際には、デバイス情
報全体の中で極く少数のデバイス情報しかリボークでき
ないと言う事を意味している。利用デバイス供給業者或
いは製造業者も、錯誤の数が少数に止まっている間は、
苦情に個別に対応しトラブルを処理する事が可能であ
る。
装置と、その構成及び動作を、以下若干詳細に述べる。
これは、MKB技術と本発明との相違を明確に述べる為
である。MKB技術におけるデバイス情報生成装置50
の構成を、図40に示す。また、その動作を、図41及
び図42に示す。デバイス・キー行列KDは二次元の配列
として、デバイス・キー格納部509に格納されてい
る。 k[ 0, 0 ] k[ 0, 1 ] k[ 0, 2 ] k[ 1, 0 ] k[ 1, 1 ] k[ 1, 2 ] デバイス・キー行列自体は、乱数発生器を用いるなど適
当な方法により、予め作成されているものとする。乱数
発生部504は、乱数発生指示を受け取ると、0または1
の値をとる乱数を3個発生する。鍵読取り部508は、
乱数を受け取り、当該乱数を行番号と見なして、デバイ
ス・キー行列の各列から順に、当該行番号によって指定
される要素を読みとる。
報が記憶される。 行位置の並び:[ R0, R1, R2 ] 鍵の並び:[ k[ R0, 0 ], k[ R1, 1 ], k[ R2, 2 ] ] これらが、機器情報を構成する。既出力情報格納部50
7には、行位置の並びが追加書きで記録される。従っ
て、既出力情報格納部507には、出力された行位置の
並びが全て記録されている。
す。図44及び図45にMKB生成時の動作を示す。先
の機器情報生成装置50の場合と同様、デバイス・キー
行列は、先述のデバイス・キー行列生成装置を用いて既
に生成されていて、下記の二次元配列として、デバイス
・キー行列格納部612に格納されているものとする。 K[ 0, 0 ] k[ 0, 1 ] k[ 0, 2 ] K[ 1, 0 ] k[ 1, 1 ] k[ 1, 2 ] 鍵読取り部611は、二つの引数を受け取る。二つの引
数は、デバイス・キー行列の行と列の番号であり、鍵読
取り部611は、これらの番号によって指定されるデバ
イス・キー行列の要素を返す。MKBは、二次元の配列
として、メディア・キー・ブロック格納部610に格納
される。 M[ 0, 0 ] M[ 0, 1 ] M[ 0, 2 ] M[ 1, 0 ] M[ 1, 1 ] M[ 1 ,2 ] なお、図44及び図45において、i, jは配列の添字を
格納する為の変数であり、例えば、CPU605内のメ
モリに割り当てられる。
0の動作である。リボークすべき利用機器の機器情報を
指定する必要があるが、それはMKBの各列の行番号で
指定される。例えば、リボークすべき利用機器のデバイ
ス情報( ( 1, 0, 0 ), KD( 1, 0, 0 ) )とする。この場
合、MKB生成装置60のリボーク情報入力部602
に、次のデータを入力して指定する。 ( l( 0 ), l( 1 ), l( 2 ) ) = ( 1, 0, 0 ). CPU605は、これを順に零列目、一列目、及び二列
目の行番号と見なし、それぞれをMKBの配列要素の指
定、即ち行番号と列番号のペア、に変換して更新部60
9に順次入力する。更新部609は入力された、当該行
番号と列番号のペアによって指定されるメディア・キー
・ブロックの要素を無効化する。
する利用機器70の構成を図47に示す。また、その動
作を図48及び図49に示す。利用機器70のMKB入
力部701は、次のMKBを読み込む。 M[ 0, 0 ] M[ 0, 1 ] M[ 0, 2 ] M[ 1, 0 ] M[ 1, 1 ] M[ 1, 2 ] 読み込まれたMKBは、MKB格納部702に格納され
る。デバイス情報格納部705は、例えば、機器情報(
l, KD( l ) )を格納している。なお、KD( l )の各成分
を、KD( l ) = ( k( 0 ), k( 1 ), k( 2 ) )のように表
記する。
5からデータを順に読取り、MKBに適用して行く。即
ち、先ず変数jの値を1として、デバイス情報格納部70
5からl( j )を読取り、配列要素読取り部707に数の
組( l( j ), j )を送る。配列要素読取り部707は、
MKB格納部702から要素M[ l( j ), j ]を読み出し
てCPU703に返す。CPU703は、M[ l( j ), j
]を復号部708に送る。
れを復号部708に送る。復号部708は、鍵k( j )で
M[ l( j ), j ]を復号し、その結果をCPU703に返
す。CPU703は、当該復号結果を、変数Resultに一
時的に格納する。変数Resultの値がnullに等しければ、
CPU703はjを1増やす。j < 3なら、CPU703
は上記動作を繰り返す。さもなければ、CPU703は
メディア・キー・ブロック処理動作を停止する。
ultの値がnullと異なっていた場合、CPUはResultの値
を、マスター鍵として、データ利用部709に送る。次
いで、CPU703はデータ入力部706からデータを
読取り、当該データをデータ利用部709に送る。デー
タ利用部709は、例えば、当該マスター鍵を用いて当
該データを復号し、復号結果を利用する。利用部709
には、データを利用する為の適当なアルゴリズムが予め
格納されているものとする。
スにおけるデータの利用を、制御データによって制御す
る技術であって、従来技術に一般的に見られる二つの問
題点を解決するものである。即ち、 1. セキュリティ上の問題 データ利用が利用デバイスにおける判断にのみ依存する
方式は、リボケーションの実効性そのものに疑義があ
る。 2. リボケーションの錯誤の問題 リボケーションの錯誤は一種の「冤罪」であり、一般の
善良な利用者の便宜を著しく損ねる。利用デバイス供給
・販売業者にとっては、製品を巡るトラブルの要因にな
る可能性があり、看過できない。本発明は、上記二つの
問題点を同時に解消することを目的とする。
に、情報処理装置に割り当てられる複数の数の組からな
るデバイス識別子を入力し、このデバイス識別子の部分
経路に対応する経路関数値を、少なくとも一つ生成する
ようにした。
成方法であって、入力された経路に属する数字の一部ま
たは全部を用いて作られる部分経路を、少なくとも一つ
出力するようにした。
デバイス識別子と、デバイス識別子の一部または全部の
数字を並べて作られる部分経路に対応する数値の少なく
とも一つを格納するようにした。
ータの利用を、制御データによって制御する技術におい
て、重大なセキュリティ上の問題と、リボケーションに
際して発生し、ユーザーの利便性を大きく損なう副作用
の問題とを、共に回避する事が可能となった。
の形態を説明する。
の概要を具体例を挙げて直感的に説明する。
を与えられているものとする。各数字は0、1または2の
値をとる。従って、今の場合、IDの総数は34 =81個であ
る。リボーク主体は、3行4列の行列Kを用意する。Kの成
分は、例えば、乱数発生器などで生成した非負整数の乱
数とする。Kのi行j列成分をk( i, j )と表記する。Kを
デバイス・キー行列と呼び、Kの成分をデバイス・キー
(デバイス鍵)と呼ぶ。
バイス鍵の列を次のように割り当てる: ( ρ( 1 ), ρ( 2 ), ρ( 3 ), ρ( 4 ) ) と言うデバイスのIDを持つデバイスに対して、デバイス
鍵の列 [ k( ρ( 1 ), 1 ), k( ρ( 2 ), 2 ), k( ρ( 3 ), 3
), k( ρ( 4 ), 4 ) ] を割り当てる。
を割り当てたデバイスに対して、次のデバイス鍵の列を
割り当てる: [ k( 0, 1 ), k( 2, 2 ), k( 0, 3 ), k( 1, 4 ) ]. 各デバイスは、IDと共に、割り当てられたデバイス鍵の
列を保持する。
初期状態で、リボーク主体は次のような制御データを配
布する: [ ( 0, Enc( k( 0, 1 ), K ) ), ( 1, Enc( k( 1, 1 ), K ) ),( 2, Enc( k( 2, 1), K ) ) ].…式1。
る暗号化を示す関数である:Enc( w,X )は、鍵wによっ
て、平文データXを暗号化した結果を表す。ここでは、
暗号化鍵、平文及び暗号文は非負整数と見なす。なお、
利用デバイスは、Enc()に対応する復号関数Dec()を具備
しているものとする。 Dec( w, Enc( w, X ) ) = X、が
任意の鍵wと任意のデータXに対して成立する。
データを利用する為に必要な情報である。式 1の制御デ
ータを初期制御データと呼ぶ。初期制御データは、三つ
の非負整数からなる。
つデバイスをリボークする事を考える。このとき、リボ
ーク主体は、次の制御データを作り、利用デバイスに配
布する: [ ( ( 0 ), a( 0 ) ), ( ( 2 ), a( 2 ) ), ( ( 1, 0 ), a( 1, 0 ) ), ( ( 1, 1 ), a( 1, 1 ) ),( ( 1, 2, 1 ), a( 1, 2, 1 ) ), ( ( 1, 2, 2 ), a( 1, 2, 2 ) ),( ( 1, 2, 0, 0 ), a( 1, 2, 0, 0 ) ), ( ( 1, 2, 0, 2 ), a( 1, 2, 0, 2 ) ) ]・・・式2 ここで、a( x1 ) = Enc( PF( x1 ), K ),a( x1, x2 ) =
Enc( PF( x1, x2 ),K ),a( x1, x2, x3 ) = Enc( PF(
x1, x2, x3 ), K ),a( x1, x2, x3, x4 ) = Enc( PF( x
1, x2, x3, x4 ), K )とする。
した場合の、排他的論理和を表すものとする。上記PFを
経路関数と呼ぶ。
る。( 1, 2, 0, 1 )と言う数字の並びの先頭から、数字
を1個、2個、3個、4個取ったものを並べる:( 1 ), (
1, 2 ), ( 1, 2, 0 ), ( 1, 2, 0, 1 ).この並びを、デ
バイスIDに随伴する頂点集合と呼ぶ。
数字を(0、1または2のいずれかで)別の数字に変えた
ものを列挙する。例えば、最後の数字が2であった場
合、最後の数字を0、1に変えた数を列挙する。この操作
によって、次の数の並びが得られる。 ( 0 ), ( 2 ), ( 1, 0 ), ( 1, 1 ), ( 1, 2, 1 ), ( 1, 2, 2 ),( 1, 2, 0, 0 ), ( 1, 2, 0, 2 ).・・・式 4 この数の並びの各要素を変数とする関数aの値を並べた
ものが、上記式 2である。上のデータの作り方は、木構
造を考えると理解し易い。
( 1, 2, 0, 1 )は点線の経路に対応する。また、式 4
の経路を実線で示す。それらは点線を辿って、最後だけ
実線を辿る。図1の点線と実線と、その始/終点は、所
謂三本木をなしている。この木をデバイスID ( 1, 2,
0, 1 )のリボケーション木と呼ぶ。
経路は、点線の経路を除いて、必ずどこかで実線を通ら
なければならない、と言う点である。式 4の経路の集合
を、デバイスID ( 1, 2, 0, 1 )の境界集合と呼ぶ。デ
バイスID ( 1, 2, 0, 1 )のリボケーション木の頂点集
合は、当該デバイスIDに随伴する頂点集合と、当該デバ
イスIDの境界集合の和集合である。式 2の制御データ
は、デバイスID ( 1, 2, 0, 1 )の境界集合に属する各
経路に対して、非負整数値を対応させるものである。こ
の対応をリボケーション関数と呼ぶ。この例では、aが
リボケーション関数である。
の処理を述べる。利用デバイスのデバイスIDが( 1, 2,
1, 1 )であったとする。まず、利用デバイスは、デバイ
スIDの先頭から一つの数をとって得られる経路( 1 )が
制御データに含まれるか否か調べる。即ち、経路( 1 )
が、デバイスID ( 1, 2, 0, 1 )の境界集合に属するか
否かを調べる。当該制御データは、経路( 0 )及び( 2 )
(とそれぞれの経路に対するリボケーション関数値)を
含むが、( 1 )を含まない。この場合、利用デバイス
は、デバイスIDの先頭から二つの数をとって得られる経
路( 1, 2 )について、この経路が制御データに含まれる
か否かを調べる。この様に、利用デバイスは、自分自身
のデバイスIDに沿って、図1のリボケーション木を順に
辿って行く。
)まで辿るときに、初めてリボケーション木の実線の枝
を通過する。即ち、経路( 1, 2, 1 )はデバイスID ( 1,
2,0, 1 )の境界集合に属しており、従って、当該経路
と当該経路に対応するリボケーション関数値が制御デー
タに含まれている。利用デバイスは、当該リボケーショ
ン関数値a( 1, 2, 1 )を読取り、次の値を計算する。 Dec( PF( 1, 2, 1 ), a( 1, 2, 1 ) ).・・・式 5 利用デバイスは、予め割り当てられたデバイス鍵の列[
k( 1, 1 ), k( 2, 2 ), k( 1, 3 ), k( 1, 4 ) ]を保持
しているので、PF( 1, 2, 1 )を式 3に従って計算する
事ができる。従って、利用デバイスは、確かに式 5の値
を計算する事ができる。式 5の値は、 Dec( PF( 1, 2,
1 ), Enc( PF( 1, 2, 1 ), K ) ) = K.に等しい。
得て、データを利用する事ができる。即ち、リボークさ
れていない。
0, 1 )を持っていたとする。上記と同じ手続きによ
り、利用デバイスは、自分自身のデバイスIDに沿って、
図1のリボケーション木を順に辿って行く。今の場合
は、しかし、リボケーション木の実線を通る事はない。
経路( 1 ), ( 1, 2 ), ( 1, 2, 0 ), ( 1, 2, 0, 1 )は
全て点線しか通らない。従って、どの経路も制御データ
中に、対応するリボケーション関数値を見出すことがで
きない。このデバイスは結局マスター鍵Kを得る事無く
処理を終える。即ち、このデバイスはリボークされる。
て、デバイスID ( 1, 1, 1, 0 )を持つデバイスをリボ
ークする場合を考える。( 1, 2, 0, 1 )に随伴する頂点
集合と( 1, 1, 1, 0 )に随伴する頂点集合の和集合を、
( 1, 2, 0, 1 )及び( 1, 1, 1,0 )に随伴する頂点集合
と言う。
の頂点集合と( 1, 1, 1, 0 )のリボケーション木の頂点
集合の和集合を、( 1, 2, 0, 1 )及び( 1, 1, 1, 0 )の
リボケーション木の頂点集合とする。( 1, 2, 0, 1 )及
び( 1, 1, 1, 0 )のリボケーション木の頂点集合から、
( 1, 2, 0, 1 )及び( 1, 1, 1, 0 )に随伴する頂点集合
を除いたものを、( 1, 2, 0, 1 )及び( 1, 1, 1, 0 )の
境界集合として定義する。
点集合は、( 1 ), ( 1, 1 ), ( 1,1, 1 ), ( 1, 1, 1,
0 )であるから、( 1, 2, 0, 1 )及び( 1, 1, 1, 0 )に
随伴する頂点集合は、次のようになる。 ( 1 ), ( 1, 1 ), ( 1, 2 ), ( 1, 1, 1 ), ( 1, 2, 0
), ( 1, 1, 1, 0 ), ( 1, 2, 0, 1 ). また、( 1, 1, 1, 0 )の境界集合は、( 0 ), ( 2 ), (
1, 0 ), ( 1, 2 ), (1, 1, 0 ), ( 1, 1, 2 ), ( 1, 1,
1, 1 ), ( 1, 1, 1, 2 )であるから、( 1, 2, 0, 1 )
及び( 1, 1, 1, 0 )のリボケーション木の頂点集合は、
下記のようになる。 ( 0 ), ( 1 ), ( 2 ), ( 1, 0 ), ( 1, 1 ), ( 1, 2 ),
( 1, 1, 0 ), ( 1, 1, 1), ( 1, 1, 2 ), ( 1, 2, 0 ),
( 1, 2, 1 ), ( 1, 2, 2 ),( 1, 1, 1, 0 ), (1, 1,
1, 1 ), ( 1, 1, 1, 2 ),( 1, 2, 0, 0 ), ( 1, 2, 0,
1 ), ( 1, 2, 0,2 ). 従って、( 1, 2, 0, 1 )及び( 1, 1, 1, 0 )の境界集合
は、下記の通りである。 ( 0 ), ( 2 ), ( 1, 0 ), ( 1, 1 ), ( 1, 1, 0 ), (
1, 1, 2 ), ( 1, 2, 1 ),( 1, 2, 2 ),( 1, 1, 1, 1 ),
( 1, 1, 1, 2 ), ( 1, 2, 0, 0 ), ( 1, 2, 0,2 ). 図2に二つのデバイスID ( 1, 2, 0, 1 )及び( 1, 1,
1, 0 )に随伴する頂点集合と境界集合とを図示する。頂
点集合は点線の辺を通る経路の全体に一致する。また、
境界集合は点線の辺を辿って最後が実線を通る経路の全
体に一致する。
IDが一つの場合と同じ手続きで、自分自身のデバイスID
に沿って、図1のリボケーション木を順に辿って行く。
)であったとする。利用デバイスの処理が経路( 1, 2 )
から経路( 1, 2, 1 )に移動する際に、実線を通過す
る。即ち、境界集合に含まれる経路の中で、利用デバイ
スが始めて出会うものが( 1, 2, 1 )である。先ほどと
全く同様に、制御データに含まれる、対応するリボケー
ション関数値に対する復号処理により、利用デバイス
は、マスター鍵Kを得る事ができる。即ち、当該利用デ
バイスはリボークされていない。
1, 1, 0 )であったとする。この利用デバイスによる制
御データの処理は、デバイスID ( 1, 1, 1, 0 )に随伴
する頂点集合だけを通る。それは決して、( 1, 2, 0, 1
)及び( 1, 1, 1, 0 )の境界集合に含まれる経路を通ら
ない。当該利用デバイスはリボケーション関数の値を得
る事ができず、従って、マスター鍵を得ることはできな
い。即ち、当該利用デバイスはリボークされる。
ついても、全く同様である。デバイスIDのリボケーショ
ン木を利用する方法によれば、錯誤の副作用を惹き起す
事無く、リボーク対象デバイスを個別にリボークする事
ができる。しかも、制御データの大きさ(要素数)は、
(リボーク対象デバイスの数)×(デバイスIDの長さ)
×2 を超えない。
たい場合も考えられる。例えば、或る利用デバイス・メ
ーカーに( 1, 2, *, * )と言うデバイスIDを割り当てた
とする。ここに*はワイルド・カード(数字0, 1または2
のいずれか)である。この場合、( 1, 2, *, * )に随伴
する頂点集合は、次の様になる。 ( 1 ), ( 1, 2 ), ( 1, 2, * ), ( 1, 2, *, * ) ( 1, 2, *, * )の境界集合は、下記の様になる。 ( 0 ), ( 2 ), ( 1, 0 ), ( 1, 1 ). 図3に、( 1, 2, *, * )に随伴する頂点集合と境界集合
とを図示する。
る。 ( ( 0 ), a( 0 ) ), ( ( 2 ), a( 2 ) ), ( ( 1, 0 ),
a( 1, 0 ) ), ( ( 1, 1), a( 1, 1 ) ). この制御データによって、デバイスID ( 1, 2, *, * )
を持つデバイスが、そして、それらだけがリボークされ
る。リボークの対象となるデバイスのグループが二つ以
上ある場合も、制御データを個別デバイスのリボークと
同様に定義する事により、錯誤の無いリボケーションが
実現される。
対象経路(群)が定める境界集合と、当該集合上のリボ
ケーション関数値からなる例を考えた。リボケーション
関数の定義域をリボーク対象経路(群)に随伴する頂点
集合に拡張し、制御データを、リボケーション木の頂点
集合と、当該頂点集合上のリボケーション関数値の組と
して定義する事もできる。この場合、上述の例より効率
は落ちるが、ほぼ同様の効果が得られる。上述の例に則
して、これを述べる。
イスIDを持つデバイスをリボークする事を考える。この
とき、リボーク主体は、次の制御データを作り、利用デ
バイスに配布する。 [ ( ( 0 ), a( 0 ) ), ( ( 2 ), a( 2 ) ), ( ( 1, 0 ), a( 1, 0 ) ), ( ( 1, 1 ), a( 1, 1 ) ),( ( 1, 2, 1 ), a( 1, 2, 1 ) ), ( ( 1, 2, 2 ), a( 1, 2, 2 ) ),( ( 1, 2, 0, 0 ), a( 1, 2, 0, 0 ) ), ( ( 1, 2, 0, 2 ), a( 1, 2, 0, 2 ) ),( ( 1 ), b( 1 ) ), ( ( 1, 2 ), b( 1, 2 ) ),( ( 1, 2, 0 ), b( 1, 2 , 0 ) ), ( ( 1, 2, 0, 1 ), b( 1, 2, 0, 1 ) ) ]・・・ 式 6 ここで、 b( x1 ) = Enc( PF( x1 ), null ), b( x1, x2 ) = Enc( PF( x1, x2 ), null ), b( x1, x2, x3 ) = Enc( PF( x1, x2, x3 ), null ), b( x1, x2, x3, x4 ) = Enc( PF( x1, x2, x3, x4 ), n
ull ) とする。nullは、マスター鍵が得られない事を示す、予
め定められている数値である。今の場合、図1で点線の
経路にもリボケーション関数値が割り当てられており、
その値を定める関数がbである。
であるが、制御データのチェック方法だけが異なってい
る。利用デバイスのデバイスIDが( 1, 2, 1, 1 )であっ
たとする。まず、利用デバイスは、デバイスIDの先頭か
ら一つの数をとって得られる経路( 1 )に対するリボケ
ーション関数値b( 1 )を制御データから読み取り、次の
値を計算する。 Dec( PF( 1 ), b( 1 ) ). この値は、下記に等しい。 Dec( PF( 1 ), Enc( k1( 1 ), null ) ) = null. 従って、この場合、利用デバイスは、デバイスIDの先頭
から二つの数をとって得られる経路( 1, 2 )について、
同じ処理を繰り返す。利用デバイスが、( 1, 2, 1 )ま
で辿ったときに、初めてリボケーション木の実線を通過
する。この場合の処理も同様である。ただし、今回はデ
バイス鍵Kを得る。
0, 1 )を持っていたとする。上記と同じ手続きによ
り、利用デバイスは、自分自身のデバイスIDに沿って、
図1のリボケーション木を順に辿って行く。今の場合
は、しかし、リボケーション木の実線を通る事はない。
経路( 1 ), ( 1, 2 ), ( 1, 2, 0 ), ( 1, 2, 0, 1 )は
全て点線しか通らない。従って、どの経路についても、
リボケーション関数値の復号によって、nullを得るだけ
である。このデバイスは結局マスター鍵Kを得る事無く
処理を終える。即ち、このデバイスはリボークされる。
に説明する。
たものである。
0を用いて、デバイスにデバイスIDとデバイス鍵列とを
割り当てる。各デバイスにデバイス鍵列を与えることに
よって、各デバイスは経路関数k1, k2, k3を計算するこ
とが可能である。本実施の形態のデバイス情報生成装置
10は、デバイス鍵列ではなく、各デバイス経路関数値
を直接与えるようにしたものである。こうすると、各デ
バイスはリボーク処理の際に、経路関数値計算の手間を
省く事ができる。
図6、図7及び図8を用いて説明する。なお、デバイス
IDは、各数字が0、1または2の値を取りうる3個の数字か
らなる長さ4であるとする。
求を受け取り、当該要求をCPU102へ送る(S12
01)。CPU102が乱数発生部104に、乱数発生
を指示すると(S1202)、乱数発生部104により
R1, R2, R3)を発生し、それらをCPU102へ送る
(S1203)。CPU102は、送られた R1, R2, R
3 を作業メモリ103に格納する(S1204)。
出力ID格納部110から検索する(S1205)。検
索により、( R1, R2, R3 )が見つかった否かを判定し
(S1206)、見つかった場合には、ステップS12
03に戻り、再度乱数の発生を行う。一方、( R1, R2,
R3 )が見つから無かった場合には、( R1, R2, R3 )を既
出力ID格納部110に格納する(S1207)。ま
た、( R1, R2, R3 )をデバイスID格納部109へも格
納する(S1208)。
6に送り(S1209)、経路関数計算部106にてPF
( R1 )値を計算する(S1210)。CPU102は、
計算されたPF( R1 )値をデバイスID格納部109へ格
納する(S1211)。
関数計算部106に送り(S1212)、経路関数計算
部106にてPF( R1, R2)値を計算する(S121
3)。CPU102は、計算されたPF( R1, R2)値をデ
バイスID格納部109へ格納する(S1214)。
を経路関数計算部106に送り(S1215)、経路関
数計算部106にてPF( R1, R2, R3)値を計算する(S
1216)。CPU102は、計算されたPF( R1, R2,
R3)値をデバイスID格納部109へ格納する(S12
17)。
部109からデバイスID( R1, R2, R3)を読み出し
て、出力部105へ送る(S1218)。また、デバイ
スID格納部109から経路関数値PF( R1 )、PF( R1,
R2)、PF( R1, R2, R3)を読み出し、出力部105へ送る
(S1219)。これにより、出力部105は、デバイ
スID( R1, R2, R3 )及び経路関数値PF( R1 )、PF( R
1, R2)、PF( R1, R2, R3)を出力する(S1220)。
)をデバイスID (R1, R2, R3 )の部分経路と呼ぶことが
ある。本実施の形態では、各部分経路に対する経路関数
値は次のようにとられる。 PF( R1 ) = Enc( k( R1, 1 ), 1 ) PF( R1, R2 ) = Enc( k( R2, 2 ), k1( R1 ) ), PF( R1, R2, R3 ) = Enc( k( R3, 3 ), k2( R1, R2 ) ) ここで、 k( 0, 1 ) k( 0, 2 ) k( 0, 3 ) k( 1, 1 ) k( 1, 2 ) k( 1, 3 ) k( 2, 1 ) k( 2, 1 ) k( 2, 3 ) は、デバイス・キー行列であり、予め乱数発生器などに
よって生成され、デバイス・キー行列格納部111に格
納されている。
の一例において、経路関数値を計算すべき経路pは、( p
( 1 ) )、( p( 1 ), p( 2 ) )または、( p( 1 ), p( 2
), p( 3 ) )と言う形で、経路関数計算部106に入力
される。なお、各p( j ) ( j= 1, 2, 3 )は、数字0, 1
または2である。経路関数計算部106は、入力された
経路の長さに応じて、PF ( p( 1 ) )、PF( p( 1 ), p(
2 ) )またはPF( p( 1 ),p( 2 ), p( 3 ) )の値を計算
し、出力する。この経路関数計算部106の動作の一例
を図5を用いて説明する。
pの長さを変数1に、V=1、J=1にそれぞれ初期設
定する(S1102〜S1104)。次にJが1より大
きいか否かを判定する(S1105)。この場合、J=
1なので、否と判定され、数の組(p( j ), j )を鍵読み
取り部108に送る(S1106)。次に、k(p( j ),
j )を鍵読み取り部108から受け取り(S110
7)、これを鍵としてVを暗号化し、その結果をVに代
入する(S1108)。次にJを一だけ増加させ(S1
109)、ステップS1105の判定に戻る。
1より大きいと判定されるとVの値を出力し、 (S1110)経路関数計算部106の動作は終了す
る。
報生成要求を受け取り、デバイスID:( R1, R2, R3 )、
経路関数値:( PF1, PF2, PF3 )を出力する。これら
は、それぞれ三つの符号無し整数の組である。経路関数
値は、その作り方から明らかな様に、デバイスIDに依存
して定まる。 PF1 = PF( R1 )、 PF2 = PF( R1, R2 )、 PF3 = PF( R1, R2, R3 )。
は、MKBのデバイス情報生成装置10と対比されるべ
きものである。MKBには、経路関数という概念が存在
しない。即ち、MKBでは、デバイスIDが通過するMK
Bの成分だけで、当該デバイスIDがリボークされるか否
かが決まる。一方、本発明は経路と見なしたデバイスID
をリボークの対象とするので、デバイスIDが通過する数
字を同定する為に、経路関数の値を利用する。本実施形
態のデバイス情報生成装置10は、以下の二点に特徴が
ある。 A)経路関数計算部106を具備している。経路関数計
算部106は、数字の並びであるデバイスIDについて、
デバイスIDを構成する数字の一部または全部を用いて作
られる部分経路に対する経路関数値を計算する。経路関
数値は、経路の長さが1の場合を除き、経路に対応する
デバイス・キー行列の複数の成分に依存して定められる
数値である。 B)デバイスIDと共に、当該デバイスIDの部分経路に対
応する経路関数値を出力する。
明する。図9は制御データ生成装置20の構成を示した
図である。
バイス・キー行列が格納されている。これは、デバイス
情報生成装置10で使用されるデバイス・キー行列と同
一のものである。
初期状態における、制御データ生成装置20の動作の一
例を図10に示す。
201により入力する(S1301)。CPU205
は、入力されたKをマスター鍵格納部209に送る(S
1302)。そして、Jを0に初期設定する(S130
3)。
1304)、Jが3以上になるまで以下の処理を繰り返
す。
209からマスター鍵Kを読む(S1305)。また、
CPU205は、数の組(J ,1)を制御データ格納部2
11に格納する(S1306)。この数の組(J ,1)を
鍵読み取り部215に送る(S1307)。
列格納部216からk(J ,1)を読み、CPU205へ
送る(S1308)。CPU205はk(J ,1)と、K
とを暗号化部207に送る(S1309)。
化し、得られた結果a(J ,1)をCPU205へ送る
(S1310)。
a(J ,1))を出力部204へ送り(S1311)、出
力部204は、これを出力する(S1312)。
ップS1304へ戻る。ステップS1304では、Jが
3以上になると上記の繰り返しを止め、終了する。
0の出力は、( ( 0 ), a( 0 ) ), (( 1 ), a( 1 ) ),
( ( 2 ), a( 2 ) )である。ここに、( 0 )、( 1 )、( 2
)はそれぞれ唯一つの数字からなる(長さ1の)経路で
ある。また、a( J )は、 Enc(k( J, 1 ), K )を示して
いる。
ーク情報入力部202に入力される。( 2, 0, 1 )ある
いは( 1, 1 )などがリボーク対象経路pとして、リボー
ク情報入力部202に入力される。
れた時の動作を図11、図12及び図13に示す。
が入力され(S1401)、作業メモリ206に書き込
まれる(S1402)。CPU205は、pを境界集合
計算部208へ送り(S1403)、境界集合計算部2
08がpの境界集合V’を求める(S1404)。得ら
れた境界集合V’を受けたCPU205は、V’を境界
集合格納部210に格納する(S1406)。
数Nに設定し(S1407)、Jを1に設定する(S1
408)。
し(S1409)、この判定結果が否であれば、ステッ
プS1410〜S1419を実行する。すなわち、 ・CPU205が、V'のJ番目の経路p[ J ]を経路関数
計算部213に送る(S1410) ・経路関数計算部213がp[ J ]における経路関数値k
( p[ J ] )を計算する(S1411) ・CPU205が、k( p[ J ] )を経路関数計算部21
3から受け取る(S1412) ・CPU205が、マスター鍵Kをマスター鍵格納部2
09から読み取る(S1413) ・CPU205が、数値の組( k( p[ J ], K )を暗号化
部207に送る(S1414) ・暗号化部207がk( p[ J ] )を鍵としてKを暗号化。
その結果a( p[ J ] )をCPU205に返す(S141
5) ・CPU205が経路と数値の組( p[ J ], a( p[ J ]
) )を制御データ格納部211に追加(S1416) ・CPU205が( p[ J ], a( p[ J ] ) )を出力部2
04に送る(S1417) ・出力部204が( p[ J ], a( p[ J ] ) )を出力(S
1418) ・Jを1だけ増分する(S1419) をJがNより大きくなるまで繰り返す。
きくなったと判断された場合、CPU205がpを作業
メモリ206から読み出し(S1420)、随伴頂点集
合計算部214に送る(S1421)。随伴頂点集合計
算部214がpの随伴頂点集合Vを求め(S142
2)、これをCPU205が受ける(S1423)。こ
の受け取った随伴頂点集合Vを随伴頂点集合格納部21
2に格納し(S1424)、処理を終える。
ク対象経路pを初めて入力する時点で、制御データ生成
装置20の境界集合格納部210と随伴頂点集合格納部
212には何も格納されていない。同様に、制御データ
格納部211の内容も空である。先に述べた様に、初期
状態についても制御データ自体は存在する。制御データ
生成装置20は、初期状態で、それを出力するが、当該
制御データは制御データ格納部211に格納されない。
データ生成装置20のCPU205は、pを境界集合計
算部208に送る。境界集合計算部208は、pの境界
集合に属する経路を全て求めて、CPU205に返す。
pの境界集合とは、pの先頭からとった部分経路の集合に
含まれる各経路の最後の数字を、異なった数字に置き換
える事で得られる経路の集合である。例えば、p = ( 2,
0, 1 )に対して、pの先頭からとった部分経路の集合
は、( 2 ), ( 2, 0 ), ( 2, 0, 1 )となるから、境界集
合は、( 0 ), ( 1 ),( 2, 1 ), ( 2, 2 ),( 2, 0, 0 ),
( 2, 0, 2 ) の各経路の集合である。
ら受け取った経路を境界集合格納部210に格納する。
る各経路に対するリボケーション関数値を求める。リボ
ケーション関数aは、経路( x1 )、( x1, x2 )、( x1, x
2, x3 )に対して、それぞれ次の様に定義される。 a( x1 ) = Enc( PF( x1 ), K ), a( x1, x2 ) = Enc( PF( x1, x2 ), K ), a( x1, x2, x3 ) = Enc( PF( x1, x2, x3 ), K ). 式 7のaは、長さ1の経路に関するリボケーション関数で
ある。ここで、Kはマスター鍵、PFは経路関数である。
各経路におけるPFの値は経路関数計算部で計算される。
本制御データ生成装置20における経路関数計算部21
3は、図4のデバイス情報生成装置10における経路関
数計算部106と同一のものである。制御データ生成装
置20は、境界集合に属する各経路と、当該経路におけ
る経路関数値の組を全て出力する。これらの組の全体
が、入力されたリボーク対象経路に対する制御データと
なる。例えば、リボーク対象経路p = ( 2, 0, 1 )に対
する制御データ生成装置20の出力は、次の様になる。 ( ( 0 ), a( 0 ) ), ( ( 1 ), a( 1 ) ),( ( 2, 1 ), a
( 2, 1 ) ), ( ( 2, 2 ), a( 2, 2 ) ), ( ( 2, 0, 0 ), a( 2, 0, 0 ) ), ( ( 2, 0, 2 ), a(
2, 0, 2 ) ). 次に、CPU205は、経路pを、随伴頂点集合計算部
214に送る。随伴頂点集合計算部214は、pの随伴
頂点集合に属する経路を全て求めて、CPUに返す。デバ
イスID pの随伴頂点集合とは、pの先頭から順にとった
部分経路の集合である。即ち( p( 1 ), p( 2 ), p( 3 )
)の随伴頂点集合は、( p( 1 ) ), ( p( 1), p( 2 ) ),
( p( 1 ), p( 2 ), p( 3 ) )の三つの経路の集合であ
る。
満たない経路に関して、随伴頂点集合は次のように定義
される。( p( 1 ) )の随伴頂点集合は、( p( 1 ) )及び
( p( 1 ), ?, ? )の形で書ける全ての経路からなる。(
p( 1 ), p( 2 ) )の随伴頂点集合は、( p( 1 ) )、( p
( 1), p( 2 ) )及び( p( 1 ), p( 2 ), ? )の形で書け
る全ての経路からなる。なお、「?」は0、1または2の任
意の数字を表すワイルド・カードである。
路の随伴頂点集合は、当該経路の部分経路と、デバイス
IDの長さまでワイルド・カード?を補った形で書ける経
路の全体である。デバイスID( 2, 0, 1 )に随伴する頂
点集合は、( 2 ), ( 2, 0 ),( 2, 0, 1 )の三つの経路
からなる。
は、( 1 ), ( 1, 1 ), ( 1, 1, 0 ), ( 1, 1, 1 ), (
1, 1, 2 )の5つの経路からなる。
から受け取った経路を、随伴頂点集合格納部212に格
納する。
の動作と、初めてリボーク対象経路を入力した際の制御
データ生成装置20の動作を述べた。
について、図14乃至図18のフローチャートを用い
て、動作の一例を示す。
(S1501)し、CPU205がpを読み取り、作業
メモリに格納(S1502)する。次に、CPU205
がpを境界集合計算部208に送る(S1503)。境
界集合計算部208は、pの境界集合V'を計算(S15
04)する。CPU205は、計算されたV'を受け取り
作業メモリに格納(S1505)する。
214に送る(S1506)。随伴頂点集合計算部21
4は、pの随伴頂点集合Vを計算(S1507)する。C
PU205は、その計算されたVを受け取り、作業メモ
リに格納(S1508)する。CPU205は、境界集
合格納部から経路集合U'を読み出す(S1509)。C
PU205は、差集合U' - Vを求め作業メモリに格納
(S1510)する。CPU205は、制御データ格納
部からU' - Vに含まれない経路と、対応するリボケーシ
ョン関数値とを削除する(S1511)。
部から経路集合Uを読み出す(S1512)。また、C
PU205は作業メモリからV'を読み出す(S151
3)。CPU205は、差集合V' - Uを求め、作業メモ
リに格納(S1514)する。CPU205が、V' - U
に含まれる経路の数を数え、経路数を変数Nに設定する
(S1515)。その後、ここで、Jを1に初期設定
(S1516)する。
1517)、JがNより大きくなるまで以下のステップ
S1518〜S1528を繰り返す。
関数計算部に送る(S1518)。 ・経路関数計算部が経路関数値PF( q[ J ] )を計算する
(S1519)。 ・CPU205がPF( q[ J ] )を受けとる(S152
0)。 ・CPU205は、マスター鍵Kをマスター鍵格納部か
ら取得する(S1521)。 ・CPU205が、数の組( PF( q[ J ] ), K )を暗号
化部に送る(S1522)。 ・暗号化部が、KをPF( q[ J ] )で暗号化結果a( q[ J ]
)を得る(S1523)。 ・CPU205は、a( q[ J ] )を暗号化部から取得す
る(S1524)。 ・CPU205が、経路と数の組( q[ J ], a( q[ J ]
) )が制御データ格納部に存在するか否か調べ(S15
25)、存在すると判断した場合のみ、CPU205
が、( q[ J ], a( q[ J ] ) )を制御データ格納部に追
加(S1527)する。 ・Jを1増分する。(S1528)。 の処理をJがNより大きくなるまで繰り返し行なう。
なったら、次に、CPU205が、作業メモリ上の経路
集合V'の要素数を数え、その数を変数Nに設定する(S
1529)。そして、Jを再度1に設定し直す(S15
30)。
(S1531)、大きくないならば、大きくなるまで、
CPU205が、V'のJ番目の経路q[ J ]が境界集合格
納部に存在するか否か調べ(S1532)、存在しない
場のみq[ J ]を境界集合格納部に追加(S1534)す
る。そして、jを1だけ増分し、ステップS1531に
戻る。ステップS1531において、JがNより大きく
なると、上記のステップS1529からステップS15
35までと同様の処理を経路集合Vに対しても行なう
(S1536〜S1542)。そして終了する。
合の動作の一例である。これを以下に解説する。
る時点で、制御データ生成装置20の境界集合格納部2
10と随伴頂点集合格納部212には、それぞれ現在の
制御データを求める際に計算した境界集合(の和集合)
と頂点集合とが格納されている。同様に、制御データ格
納部211には、現在の制御データが格納されている。
集合V'( p )と、pの随伴頂点集合V(p )とを求める。こ
れらは、それぞれ境界集合計算部208と随伴頂点計算
部214に経路pを送る事により求められる。CPU2
05は、V'( p )及びV( p )を作業メモリ206に格納
する。次いで、制御データ生成装置20は以下の処理を
順に行う。 a. 境界集合格納部210から経路の集合を読み出し、V
( p )に含まれていない経路のみを作業メモリ206に
書きこんで行く。境界集合格納部210に格納されてい
る経路の集合をU'とすると、作業メモリ206には差集
合U' - V( p )に属する経路が書きこまれる事になる。 b. 制御データ格納部211を調べ、作業メモリ206
上の経路集合U' - V( p )に含まれていない経路と、当
該経路におけるリボケーション関数値の組を消去する。 c. 随伴頂点集合格納部212から経路の集合Uを読み出
す。作業メモリ206上の経路集合V'( p )の経路を順
に選び、当該経路がUに含まれていなければ、当該経路
を作業メモリ206にコピーする。この処理により、作
業メモリ206上に差集合V'( p ) - Uが得られる。 d. 作業メモリ206上の経路集合V'( p ) - Uに属する
各経路に関して、当該経路におけるリボケーション関数
値を求める。そして、V'( p ) - Uに属する各経路と、
当該経路におけるリボケーション関数値の組を、制御デ
ータ格納部211に追加する。この際、重複する組は追
加しない。 e. 境界集合格納部210の経路集合U'に、V'( p )に含
まれる経路を追加する。この際、重複する経路は追加し
ない。これにより、U'の内容はU' ∪ V'( p )に変わ
る。 f. 随伴頂点集合格納部212の経路集合Uに、V( p )に
含まれる経路を追加する。この際、重複する経路は追加
しない。これにより、Uの内容はU ∪ V( p )に変わる。
ータ格納部211に格納されている経路の集合をCとお
く。即ち、制御データ格納部211は、Cに含まれる各
経路と、当該経路におけるリボケーション関数値の組を
格納していたとする。a〜dの処理を行う事により、制御
データ格納部211の経路集合は、次の様に更新され
る。 C' = ( C ∩ ( U' - V( p ) ) ) ∪ ( V'( p ) - U )…式 8 処理a〜dの終了後、制御データ格納部は、C'に属する各
経路と、当該経路におけるリボケーション関数値の組を
格納している。処理e及びfは、次のリボーク対象経路の
追加に備える為のデータ更新作業である。
とする。p[ 1 ], ..., p[ s ]に対して、順に上記処理a
〜dを繰り返す事によって得られる制御データを( Xs, a
( Xs) )とする。すなわち、当該制御データは、経路の
集合Xsに属する各経路と、当該経路におけるリボケーシ
ョン関数値の組の集合になっている。このとき、次式の
成立が証明される。 Xs = ( V'( p[ 1 ] ) ∪ … ∪ V'( p[ s ] ) ) - ( V( p[ 1 ] ) ∪ … ∪ V( p[ s ] )・・・ 式9。
計算部208と随伴頂点集合計算部214にそれぞれ入
力する事により、経路集合V'( p[ 1 ] ), ..., V'( p[
s ])とV( p[ 1 ] ), ..., V( p[ s ] )が得られるか
ら、式 9の右辺を直接構成する動作も勿論可能であり、
その様にしても良い。本実施の形態では、しかし、式 9
の右辺を漸化的に構成する方法を採った。
用してみる。デバイスID ( 2, 0, 1)と経路( 1, 1 )を
リボークする。先ず、( 2, 0, 1 )をリボークする制御
データは、次の通り。 ( ( 0 ), a( 0 ) ) ( ( 2, 1 ), a( 2, 1 ) ) ( ( 2,
0, 0 ), a( 2, 0, 0 ) )( ( 1 ), a( 1 ) ) ( ( 2, 2
), a( 2, 2 ) ) ( ( 2, 0, 2 ), a( 2, 0, 2 ) ) この段階で、境界集合格納部210に格納されている経
路集合U'は次の通りである。 ( 0 ) ( 2, 1 ) ( 2, 0, 0 ) ( 1 ) ( 2, 2 ) ( 2, 0,
2 ) また、随伴頂点集合格納部212は、次の経路集合Uを
格納している。 ( 2 ) ( 2, 0 ) ( 2, 0, 1 ) さて、経路( 1, 1 )を境界集合計算部208に入力する
事により、下記の境界集合V'( 1, 1 )を得る。 ( 0 )( 1, 0 ) ( 1, 2 ) また、経路( 1, 1 )を随伴頂点集合計算部に入力する事
により、下記の随伴頂点集合V( 1, 1 )を得る。 ( 1 ) ( 1, 1 ) ( 1, 1, 0 ) ( 1, 1, 1 ) ( 1, 1, 2 ) 上記処理aで作業メモリに書きこまれる経路集合U' - V
( 1, 1 )は、従って、次の様になる。 ( 0 ) ( 2, 1 ) ( 2, 0, 0 ) ( 2, 2 ) ( 2, 0, 2 ) 処理bにより、制御データ格納部の内容は次のように更
新される。 ( ( 0 ), a( 0 ) ) ( ( 2, 1 ), a( 2, 1 ) ) ( ( 2,
0, 0 ), a( 2, 0, 0 ) )( ( 2, 2 ), a( 2, 2 ) ) ( (
2, 0, 2 ), a( 2, 0, 2 ) ) 処理cの結果作業メモリに格納される経路集合V'( 1, 1
) - Uは次の様になる。 ( 0 ) ( 1, 0 ) ( 1, 2 ) 処理dの結果、制御データ格納部の内容、即ち制御デー
タは次のように変化する。 ( ( 0 ), a( 0 ) ) ( ( 2, 1 ), a( 2, 1 ) ) ( ( 2,
0, 0 ), a( 2, 0, 0 ) )( ( 2, 2 ), a( 2, 2 ) ) ( (
2, 0, 2 ), a( 2, 0, 2 ) ) ( ( 1, 0 ), a( 1,0 ) ) ( ( 1, 2 ), a( 1, 2 ) ) このデータが、制御データとして出力される。
容は次の様に更新される。 ( 0 ) ( 2, 1 ) ( 2, 0, 0 ) ( 1 ) ( 2, 2 ) ( 2, 0,
2 ) ( 0 ) ( 1, 0 ) ( 1, 2 ) 最後に処理fにより、随伴頂点集合格納部の内容は次の
様に変化する。 ( 2 ) ( 2, 0 ) ( 2, 0, 1 ) ( 1 ) ( 1, 1 ) ( 1, 1,
0 ) ( 1, 1, 1 ) ( 1, 1, 2 ) なお、処理dの結果更新された制御データ格納部が格納
する経路集合は、確かに下記経路集合に一致する。 ( V'( 2, 0, 1 ) ∪ V'( 1, 1 ) ) - ( V( 2, 0, 1 )
∪ V'( 1, 1 ) ) 次に、随伴頂点集合計算部214の動作の一例を図19
及び図20に示し、説明する。
路pを受け取り(S1601)、経路pの長さを変数Lに
格納する(S1602)。
長を読み取り、変数Nに格納する(S1603)。
定を行なう(S1604)。N−Lが0より大きけれ
ば、Jを1に設定する(S1605)。その後、JがL
より大きくなるまで、Jを1づつ、増分しながら経路(
p( 1 ), , p( J ) )を出力する(S1606〜S160
8)。
が0より大きくなければ、以下の処理に進む。まずJを
1に設定する(S1609)。その後、JがN−Lより
大きくなるまで、Jを1づつ増分(S1618)しなが
ら、以下の処理を行う。 ・J個の成分を持つ整数配列X, Yを用意する(S161
1)。 ・Y[ 0 ] = 2Y[ J - 1 ] = 2とする(S1612)。 ・xを0に設定する(S1613)。 ・x = Yとなるまで、Xを1づつ増分しながらxの三進表現
を配列Xに格納し、経路(p( 1 ), , p( L ), X[ 0 ], ,
X[ J - 1 ] )を出力する(S1614〜S1617)。 なお、ステップS1610において、JがN−Lより大
きくなった際に処理を終了する。
する。
い予めデバイスIDの長さが格納されているデバイスID長
格納部を持っている。随伴頂点集合計算部214は、格
納されたデバイスIDの長さを取得し、読みこんだ経路の
長さと比較する。読みこんだ経路の長さLがデバイスID
の長さNより小さい場合、デバイスIDの長さと経路の長
さの差をとり、その差N - Lに一致する要素数を持つ整
数配列X, Yを用意する。
終了条件判定用である。整数の変数xを0から3N-L − 1
まで変化させながら、xの三進表現を配列Xに格納して行
く。Xは0, ..., 0 (N - L個)から、2, ..., 2 (N - L
個)まで変化する。
に、( p( 1 ), ..., p( L ), X[ 0 ], ..., X[ N - L ]
)を出力する。Xは、随伴頂点集合の要素の中で、ワイ
ルド・カードを用いて表現される要素を生成する。リボ
ーク対象経路pの長さがデバイスIDの長さより小さいの
は、( p( 1 ), ..., p( L ), ?, ..., ? )と表現される
一群のデバイスIDを一括してリボークする場合及び、そ
の場合に限られる。この種の一括リボケーションは、特
定の製造業者による特定分野の製品を全てリボークする
場合等に発生する。
従って、高々数百〜数千万のオーダーである。そして、
生成すべき随伴頂点集合の個数は、リボーク対象デバイ
スIDの数の約二倍である。この数は大きいが、しかし、
この程度の数の随伴頂点集合を生成する処理は、現行の
計算機で現実的な時間内に終了させる事ができる。しか
も、この処理は、リボーク対象デバイス群が新たに追加
された場合に、リボーク主体が保有する制御データ生成
装置20で一度だけ実行すれば良い性質のものである。
1に示し説明する。
って(S1701)この経路pの差が差を変数Lに格納
する(S1702)。Jを1に設定し(S1703)、
JがLより大きくなるまで、次の処理を繰り返し行う。 ・Iに0を設定する(S1705)。 ・Iが3より小さいか否かを判定し(S1706)、小
さければ、IはP(J)と同じかを判定し(S170
7)、同じでなければ、経路( p( 1 ), ..., p( J-1 ),
I )を出力し(S1708)、Iを1だけ増分して、再
度、ステップS1706の判定処理を行う。 ・ステップS1706の判定処理で小さくないと判断さ
れるとJを1増分する。なお、JがLより大きくなる終
了となる。
08は、受け取った経路pについて、経路pの最後の数字
p( L )を、p( L )とは異なった数字に置き換えた経路を
作り、それを出力する。経路の長さがLで、経路を構成
する数字の範囲が0からm -1であるとき、境界集合に含
まれる経路の総数はmLである。
のMKB技術におけるMKB生成装置と対比すべきもの
である。本発明の制御データ生成装置20は、随伴頂点
集合計算部214を具備する点に特徴がある。また、本
発明の制御データ生成装置20は、境界集合計算部20
8を具備する点に特徴がある。また、本発明の制御デー
タ生成装置20は、経路関数計算部213を具備する点
に特徴がある。随伴頂点集合計算部:数字の並びである
経路について、入力された経路に属する数字の一部また
は全部を用いて作られる部分経路、または当該経路に少
なくとも一つの数字を追加して作られる経路を、少なく
とも一つ出力する。境界集合計算部:入力された経路に
属する数字の一部または全部を用いて作られる部分経路
の少なくとも一つについて、当該部分経路に属する数字
の一部または全部を変更して作られる経路を出力する。
は、以下のデータを出力する点に特徴がある。 −数字の並びである経路と、当該経路に対応付けられた
数値を、少なくとも一組出力する。 −特に、上記経路は、境界集合計算部の出力経路であ
る。 −特に、上記経路に対応付けられた数値は、当該経路に
おけるリボケーション関数値である。 −リボケーション関数値:数字の並びである経路に対し
て定められる数値で、当該経路における経路関数値とマ
スター鍵に依存する数値である。
する。
データは、ネットワークや放送を通じて利用デバイスに
配布される。あるいは、メディアに記録されて配布され
る事もある。制御データがメディアに記録されて配布さ
れる場合、制御データは、例えば、経路と当該経路にお
けるリボケーション関数値のペアを列挙する形式で、メ
ディアに記録される。この場合、経路を数字の列とし
て、辞書式に順序づけて列挙するようにしても良い。
れる。PDは8ビットのNLフィールドとPTフィールドを持
つ。NLフィールドには、経路を構成する数字の数が記録
されている。その数をνとする。PTフィールドは2*νビ
ットの長さを持つ。本実施例において、経路を構成する
数字は0, 1または2であるから、それは2ビットで表現さ
れる。例えば、経路( 2, 0, 1 )の場合、NLフィールド
の値は3であり、PTフィールドはこの6ビット"100001"の
ビット列である。
ション関数値の組を格納する。BPはPDフィールドとVRフ
ィールドから構成される。PDフィールドについては既に
説明した。VRフィールドは128ビットの符号なし整数で
ある。制御データのフォーマットはCDと書かれているも
のである。CDフォーマットは、NBPフィールドと0個以上
のBPフィールドから構成される。NBPフィールドには、
制御データを構成するBPフィールドの数が書かれてい
る。その数をnとすると、制御データは、BP 1からBP n
までn個のBPフィールドを持つ。
は、少なくとも下記の情報を含む点に特徴がある。 −数字の並びである経路と、当該経路に対応付けられた
数値が、少なくとも一組含まれる。当該経路と数値の組
は、本発明の制御データ生成装置20の出力である。 −特に、上記経路は、本発明の制御データ生成装置20
における境界集合計算部208が出力した経路である。 −特に、上記経路に対応付けられた数値は、当該経路に
おけるリボケーション関数値である。
スター鍵を必要とする。それは、例えばデータがデータ
・キーで暗号化されており、更にデータ・キーがマスタ
ー鍵で暗号化されているからである。あるいは、マスタ
ー鍵でデータが暗号化されている場合も考えられる。各
利用デバイスは、デバイス情報を割り当てられている。
デバイス情報は、本実施例のデバイス情報生成装置の出
力である。即ち、デバイスIDと利用デバイスは制御デー
タを読み込み、リボケーション関数値を復号して、マス
ター鍵を取得しようとする。
示し以下に説明する。
する(S1801)。CPUは制御データを制御データ
入力部から読み取る(S1802)。CPUは制御デー
タを制御データ格納部に格納する(S1803)。CP
Uは、デバイスIDの長さをデバイス情報格納部から読
み、変数Nに設定する(S1804)。ここで、Jに1
を初期設定する(S1805)。
(S1806)。大きければ、リボークであり、CPU
は、メッセージ表示部に当該利用デバイスのリボークを
表示する(S1811)。一方、現段階でJはNより大
きくなければ、次の処理を行う。 ・CPUが、デバイスIDの部分経路( P[ 1 ], , P[ J ] )
をデバイス情報格納部から読み出す(S1807)。 ・CPUが、経路( P[ 1 ], , P[ J ] )を制御情報格納部
から検索する(S1808)。 ・検索した結果、当該経路が存在しない場合には、Jを
1だけ増分し、ステップS1806に戻る(S180
9、S1810)。
たと判断されると、CPUは、経路( P[ 1 ], , P[ J ]
)におけるリボケーション関数値RV[ J ]を読む(S1
812)。次に、CPUは、J番目の経路関数値PF[ J ]
をデバイス情報格納部から読む(S1813)。そし
て、CPUは、数の組( PF[ J ], RV[ J ] )を復号部に
送る(S1814)。
得られた結果RをCPUに返す(S1815)。CPU
は、Rをデータ利用部に送る(S1816)。CPU
は、データをデータ入力部から読む(S1817)。C
PUは、データをデータ利用部に送る(S1818)。
そして、データ利用部がデータを利用することとなる
(S1819)。
のデバイス情報生成装置10が生成したデバイス情報の
一組が格納されている。即ち、デバイスIDと、経路関数
値の組である。 デバイスID:( P[ 1 ], P[ 2 ], P[ 3 ] ) 経路関数値:( PF1, PF2, PF3 ) デバイス情報格納部303は、このデバイス情報に加え
て、デバイスIDの長さを格納している。本実施例の場
合、デバイスIDの長さは3である。
て、制御データを読み込み、制御データ格納部302に
格納する。CPU307は、デバイスIDの部分経路を順
に取り出し、制御データに含まれる経路の中で当該経路
に一致するものがあるかを調べる。一致する経路が存在
すれば、当該経路に対応するリボケーション関数値を制
御データ格納部302から読み出す。
納部303から当該部分経路に対応する経路関数値を読
み出し、経路関数値とリボケーション関数値の組を復号
部306に送る。
リボケーション関数値を復号し、その結果RをCPU3
07に返す。Rの値は、リボーク主体がマスター鍵とし
て定めた値Kに等しい。CPU307は、データ利用部
304にRの値を送り、次いでデータ入力部305から
読みこんだデータを、データ利用部304に送る。
御データは、例えば、次の様に制御データ格納部に格納
される。 ( ( 0 ), a( 0 ) ) ( ( 2, 1 ), a( 2, 1 ) ) ( ( 2, 0, 0 ), a( 2, 0, 0 ) ) ( ( 2, 2 ), a( 2, 2 ) ) ( ( 2, 0, 2 ), a( 2, 0, 2 ) ) ( ( 1, 0 ), a( 1, 0 ) ) ( ( 1, 2 ), a( 1, 2 ) ) ・・・式10 制御データ生成装置20の説明で示したように、この制
御データは、デバイスID ( 2, 0, 1 )と経路( 1, 1 )と
をリボークするものである。
1, 0, 2 )を有していたとする。利用デバイス30のC
PU307は、先ず部分経路( 1 )を、制御データ格納
部302に格納されている、式10の制御データから探
す。この経路は式10の制御データ中に存在しない。従
って、利用デバイス30のCPU307は、次の部分経
路( 1, 0 )を式10の制御データ中から探す。この経路
は存在する。利用デバイス30のCPU307は、対応
するリボケーション関数値a( 1, 0 )を制御データ格納
部302から読み出し、当該関数値を経路関数値PF2 =
PF( 1, 0 )と共に復号部に送る。復号部306は、数値
PF2を鍵として数値a( 1, 0 )を復号し、その結果RをC
PU307に返す。先述の様に、a( 1, 0 )はEnc( PF(
1, 0 ), K )に等しい。従って、復号結果Rはマスター鍵
Kに等しい。データ利用部304は、Kの値を得て、デー
タ利用を行う事ができる。
1, 2 )と言うデバイスIDを有しているとする。
式10の制御データから探す。この経路は式10の制御
データ中に存在しない。従って、CPUは次の部分経路(
1, 1)を探す。この経路もまた式10の制御データ中に
は存在しない。CPU307は、更に部分経路( 1, 1,
2 )を、式10の制御データ中から探す。この経路もま
た存在しない。部分経路の長さがデバイス長に一致する
まで検索を行ったので、CPU307は当該利用デバイ
ス30がリボークされている事をメッセージ表示部30
8に表示し、処理を終了する。
徴がある。 1. デバイス情報格納部の特徴:デバイス情報格納部に
は、デバイスIDの一部または全部の数字をとって作られ
る部分経路に対応する数値である経路関数値が少なくと
も一つ予め格納されている。或いは、デバイス情報格納
部は、本実施例のデバイス情報生成装置が生成したデバ
イス情報を格納している。 2. 入力データの特徴:入力データは制御データを含
む。制御データは、経路と当該経路に対応するリボケー
ション関数値を、少なくとも一つ含む。 3. 動作の特徴: (ア) 入力された制御データに含まれる経路の中から、
デバイスIDの一部または全部の数字を並べて得られる部
分経路に一致する経路を検索する。 (イ) 上記3.(ア)の検索の結果一致する経路が見つから
なかった場合、当該利用デバイス30がリボークされて
いると判断し、リボーク時の処理を行う。 (ウ) 上記3.(ア)の検索の結果一致する経路が見つかっ
た場合、制御データから当該経路に対応するリボケーシ
ョン関数値を読み出し、デバイス情報格納部303に当
該経路に対応づけて格納されている経路関数値を鍵とし
て復号する。上記特徴は、いずれもMKB技術における
利用機器には無いものである。
形態を説明する。
装置20は、随伴頂点集合計算部214を具備してお
り、制御データを作る際に、リボーク対象経路の随伴頂
点集合を実際に生成した。
経路がある経路の随伴頂点集合に属するか否かを判定す
る随伴頂点集合判定部があれば十分である事が、制御デ
ータ生成装置20における制御データの生成手続きを検
討する事により分かる。この事を以下に説明する。
0の手続きaでは、境界集合格納部が格納する経路集合
U'と、経路pの随伴頂点集合V( p )の差集合が計算され
る。具体的には、Uに含まれる経路qを順に選び、qがV(
p )に含まれていない場合に限り、qを作業メモリに記録
して行けば良い。即ち、必ずしも随伴頂点集合V( p)を
実際に生成する必要は無く、qがV( p )に含まれるか否
かが分かれば良い。
0の手続きcでは、随伴頂点集合格納部212が格納す
る経路集合Uと、経路pの境界集合V'( p )の差集合V'( p
) -Uを求める。この差集合を求める際は、V'( p )の各
経路がUに含まれるか否かが分かれば良い。その為に
は、必ずしもUの要素を全て生成する必要は無い。
相当に短い場合、当該経路の随伴頂点集合は、既に述べ
た様に、かなり大きな集合になる。この集合を生成する
手間を省くことは、制御データ生成装置20の動作を効
率化する上で重要である。この点を改良した制御データ
生成装置40の構成を図26に示す。
作を図27乃至図29に、更新時の動作を図30乃至図
34に示し説明する。
御データ生成装置20の初回の動作(図11乃至図1
3)とほぼ同様な動作を行う。
1〜S1423の処理が無い点、及びステップS142
4が、Vを随伴頂点集合格納部に格納するのに対し、ス
テップS1921では、pを随伴頂点集合格納部に格納
する点である。このように制御データ生成装置40の初
回の動作は、制御データ生成装置40の初回の動作に比
較し、簡略化可能となった。
新時においても制御データ生成装置40の更新時の動作
と、類似している。従って、違いについてのみ以下に書
き出す。
ップ2006において、制御データ生成装置20では、
pを随伴頂点集合計算部に設定していたのを、制御デー
タ生成装置40では、pを随伴頂点集合判定部に設定す
ることとなる。また、ステップS1507、S1508
に相当する処理が不要になっている。
ップS2011「CPUがUを随伴頂点集合判定部に設
定する」点が追加されたのみである。
ては、制御データ生成装置20の図16及び図17に示
される動作と同様な動作で実現される。
置20での動作と異なっている。
pを読み出し(S2035)、随伴頂点集合格納部にp
が存在するか否かを調べる(S2036)。pが存在す
れば、そのまま終了し、pが存在しなければ、pを随伴
頂点集合格納部に追加し(S2038)、動作を終了す
る。
されている動作において、差集合U'- Vを求める際に用
いられる。ここにVは、リボーク対象経路pの随伴頂点集
合を表す。
1に示されている動作において、差集合V' - Uを求める
際にも用いられる。
明したもので有り、図36は差集合V' - Uを求める動作
を説明したものである。これらの動作は、同様な動作を
行うので、図35に従って説明し、図36の説明は、省
略する。
数Nに設定する(S2101)。また、Jを1に設定す
る(S2102)。
処理を繰り返し行う。 ・CPUは、U’のJ番目の経路q[J]を随伴頂点集合判
定部に送る(S2104)。 ・随伴頂点集合判定部は、判定動作を行って、判定結果
RをCPUへ送る(S2105)。 ・この判定結果Rが0でない場合のみ、CPUは、経路
q[J]をU’−Vの経路として、作業メモリに格納する
(S2107)。 ・Jを1だけ増分する(S2108)。
定部416の動作を示す。随伴頂点集合判定部416の
動作は、経路集合設定動作と、判定動作に分けられる。
集合Pを受け取り(S2301)、Pを経路集合格納部
に格納する(S2302)。
ず、判定対象経路pを受け取る(S2401)。次に、
経路集合格納部に格納されている経路集合Pの要素数を
変数Nに設定する(S2402)。Jを1に設定する
(S2403)。JがNより大きくなるか(S240
4)、IがLより大きくなる(S2408)まで、以下
の処理を行う。 ・PのJ番目の経路q[J]の長さと経路pの長さとのう
ち、大きくない方の長さを変数Lに設定する(S240
6)。 ・Iに1を設定する(S2407)。 ・IはLより大きいか否かを判定する(S2408)。 ・経路q[J]とpのI番目の数字を比較し(S240
9)、一致するか否かを判定する(S2410)。 ・一致した場合、Iを1増分し(S2411)、ステッ
プS2408へ戻る。一致しなければ、Jを1増分し
(S2412)、ステップS2404へ戻る。
大きいと判断されると、0を出力し(S2405)、終
了する。または、ステップS2408において、IがL
より大きいと判断されると、1を出力し(S241
3)、終了する。
は、判定対象経路を受け取り、当該経路が、経路集合格
納部に格納されている経路の随伴頂点集合になっている
かどうかを判定するものである。経路集合設定動作は、
経路集合格納部の内容を設定する動作である。
経路pの長さより長くない場合、qがpの随伴頂点集合に
含まれる事と、qの数列全体がpの数列の一部に一致する
事とは同値である。
は、pの数列全体がqの数列の一部に一致する事と、qがp
の随伴頂点集合に含まれる事とは同値である。随伴頂点
集合判定部416は、経路集合格納部417から経路q
を順に選択し、qの数の並びと入力された経路の数の並
びとを比較する事により、入力された経路がqの随伴頂
点集合に含まれるか否かを判定している。
伴頂点集合判定部416を具備する点に特徴がある。 −随伴頂点集合判定部416:数字の並びである経路を
少なくとも一つ設定することができる。入力された経路
が、設定された経路に属する数字の一部または全部を用
いて作られる部分経路に一致するか否かを判定する。或
いは、入力された経路が、設定された経路に少なくとも
一つの数字を追加して作られる経路に一致するか否かを
判定する。そして、判定結果を出力する。
データの利用を、制御データによって制御する技術にお
いて、重大なセキュリティ上の問題と、リボケーション
に際して発生し、ユーザーの利便性を大きく損なう副作
用の問題とを、共に回避する事が可能である。
(生成時)の第一
成時)の第二
新時)
タ生成装置 40・・・制御データ生成装置
Claims (27)
- 【請求項1】 情報処理装置に割り当てられる複数の数
の組からなるデバイス識別子を入力し、このデバイス識
別子の部分経路に対応する経路関数値を、少なくとも一
つ生成する生成手段とを具備することを特徴とするデバ
イス情報生成装置。 - 【請求項2】 情報処理装置に割り当てられる複数の数
の組からなるデバイス識別子を生成する第1生成手段
と、このデバイス識別子の部分経路に対応する経路関数
値を、少なくとも一つ生成する第2生成手段とを具備す
ることを特徴とするデバイス情報生成装置。 - 【請求項3】 デバイス情報を生成するデバイス情報生
成装置であって、数字の並びであるデバイス識別子を構
成する数字の一部または全部の数字の並びである、部分
経路の少なくとも一つに関して、当該部分経路における
経路関数値を計算する、経路関数計算部を具備する事を
特徴とする、デバイス情報生成装置。 - 【請求項4】 請求項3のデバイス情報生成装置であっ
て、互いに相異なる入力経路に対して互いに相異なる経
路関数値を対応させる、経路関数計算部を具備する事を
特徴とする、デバイス情報生成装置。 - 【請求項5】 請求項1のデバイス情報生成装置であっ
て、数字の並びである経路に対応して定まる、デバイス
・キー行列の複数の成分に依存する経路関数値を出力す
る、経路関数計算部を具備する事を特徴とする、デバイ
ス情報生成装置。 - 【請求項6】 制御データを生成する制御データ生成装
置であって、入力された経路に属する数字の一部または
全部を用いて作られる部分経路を、少なくとも一つ出力
する、随伴頂点集合計算部を具備する事を特徴とする、
制御データ生成装置。 - 【請求項7】 制御データを生成する制御データ生成装
置であって、経路を少なくとも一つ設定することがで
き、入力された経路が、設定された経路に属する数字の
一部または全部を用いて作られる部分経路に一致するか
否かを判定し、判定結果を出力する随伴頂点集合判定部
を具備する事を特徴とする、制御データ生成装置。 - 【請求項8】 制御データを生成する制御データ生成装
置であって、経路を少なくとも一つ設定することがで
き、入力された経路が、設定された経路に少なくとも一
つの数字を追加して作られる経路に一致するか否かを判
定し、判定結果を出力する随伴頂点集合判定部を具備す
る事を特徴とする、制御データ生成装置。 - 【請求項9】 制御データを生成する制御データ生成装
置であって、入力された経路に少なくとも一つの数字を
追加して作られる経路を、少なくとも一つ出力する、随
伴頂点集合計算部を具備する事を特徴とする、制御デー
タ生成装置。 - 【請求項10】 制御データを生成する制御データ生成
装置であって、入力された経路に属する数字の一部また
は全部を用いて作られる部分経路について、当該部分経
路に属する数字の一部または全部を変更して作られる経
路を少なくとも一つ出力する、境界集合計算部を具備す
る事を特徴とする、制御データ生成装置。 - 【請求項11】 制御データを生成する制御データ生成
装置であって、入力された経路に対して定まる経路関数
値を計算する、経路関数計算部を具備する事を特徴とす
る、制御データ生成装置。 - 【請求項12】 請求項11の制御データ生成装置であ
って、互いに相異なる入力経路に対して互いに相異なる
経路関数値を対応させる、経路関数計算部を具備する事
を特徴とする、制御データ生成装置。 - 【請求項13】 請求項11の制御データ生成装置であ
って、入力された経路に対して定まる、デバイス・キー
行列の複数の成分に依存する経路関数値を出力する、経
路関数計算部を具備する事を特徴とする、制御データ生
成装置。 - 【請求項14】 制御データを生成する制御データ生成
装置であって、経路と当該経路に対応付けられた数値の
組を、少なくとも一組出力する事を特徴とする、制御デ
ータ生成装置。 - 【請求項15】 請求項14の制御データ生成装置であ
って、入力された経路に属する数字の一部または全部を
用いて作られる部分経路について、当該部分経路に属す
る数字の一部または全部を変更して作られる経路を少な
くとも一つ出力する、境界集合計算部を具備し、出力さ
れる経路が当該境界集合計算部の出力である事を特徴と
する、制御データ生成装置。 - 【請求項16】 請求項11、12または13のいずれ
かの制御データ生成装置であって、当該制御データ生成
装置は、経路と当該経路に対応付けられた数値の組を少
なくとも一組出力し、経路に対応づけられた数値は、当
該経路の入力に対する経路関数計算部の出力値を鍵とし
て、データ利用に必要な情報であるマスター鍵を暗号化
する事によって得られる、リボケーション関数値である
事を特徴とする、制御データ生成装置。 - 【請求項17】 請求項6乃至14の何れかの制御デー
タ生成装置が出力した制御データを含む事を特徴とす
る、記録媒体。 - 【請求項18】 データ利用を行う情報利用装置であっ
て、デバイス識別子と、デバイス識別子の一部または全
部の数字を並べて作られる部分経路に対応する数値が、
少なくとも一つ予め格納されている、デバイス情報格納
部を具備する事を特徴とする、情報利用装置。 - 【請求項19】 データ利用を行う情報利用装置であっ
て、請求項1乃至4何れかのデバイス情報生成装置が出
力したデバイス情報を予め格納するデバイス情報格納部
を具備する事を特徴とする、情報利用装置。 - 【請求項20】 データ利用を行う情報利用装置であっ
て、経路と当該経路に対応付けられた数値の組を少なく
とも一組含む制御データを読みこむ、制御データ入力部
を具備する事を特徴とする、情報利用装置。 - 【請求項21】 データ利用を行う情報利用装置であっ
て、請求項6乃至16の何れかの制御データ生成装置が
出力した制御データを読みこむ、制御データ入力部を具
備する事を特徴とする、情報利用装置。 - 【請求項22】 請求項18乃至21記載の情報利用装
置において、入力された制御データの中から、デバイス
識別子の一部または全部の数字を並べて得られる、部分
経路に一致する経路を検索する事を特徴とする、情報利
用装置。 - 【請求項23】 請求項22記載の情報利用装置であっ
て、入力された制御データの中から、デバイスIDの一部
または全部の数字を並べて得られる、部分経路に一致す
る経路を検索し、制御データ中に、そのような経路が見
つからなかった場合、当該利用デバイスがリボークされ
ていると判断し、予め定められたリボーク処理を行う事
を特徴とする、情報利用装置。 - 【請求項24】 請求項22の情報利用装置であって、
入力された制御データの中から、デバイスIDの一部ま
たは全部の数字を並べて得られる、部分経路に一致する
経路を検索し、制御データ中に、そのような経路が見つ
かった場合、制御データから当該経路に対応するリボケ
ーション関数値を読み出し、またデバイス情報格納部か
ら当該経路に対応する経路関数値を読み出し、当該経路
関数値を鍵としてリボケーション関数値を復号する事を
特徴とする、情報利用装置。 - 【請求項25】 情報処理装置に割り当てられる複数の
数の組からなるデバイス識別子を入力し、このデバイス
識別子の部分経路に対応する経路関数値を、少なくとも
一つ生成することを特徴とするデバイス情報生成方法。 - 【請求項26】 制御データを生成する制御データ生成
方法であって、入力された経路に属する数字の一部また
は全部を用いて作られる部分経路を、少なくとも一つ出
力することを特徴とする制御データ生成方法。 - 【請求項27】 データ利用を行う情報利用装置に、デ
バイス識別子と、デバイス識別子の一部または全部の数
字を並べて作られる部分経路に対応する数値の少なくと
も一つを格納することを特徴とする情報利用方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001033915A JP3957978B2 (ja) | 2001-02-09 | 2001-02-09 | 暗号化システム、データ利用デバイス、及び、暗号化システムのデータ再生制御方法 |
US10/067,950 US7210042B2 (en) | 2001-02-09 | 2002-02-08 | Device information generating device, device information generating method, control data generating device, control data generating method, content utilizing device, content utilizing method, and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001033915A JP3957978B2 (ja) | 2001-02-09 | 2001-02-09 | 暗号化システム、データ利用デバイス、及び、暗号化システムのデータ再生制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002237808A true JP2002237808A (ja) | 2002-08-23 |
JP3957978B2 JP3957978B2 (ja) | 2007-08-15 |
Family
ID=18897599
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001033915A Expired - Fee Related JP3957978B2 (ja) | 2001-02-09 | 2001-02-09 | 暗号化システム、データ利用デバイス、及び、暗号化システムのデータ再生制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7210042B2 (ja) |
JP (1) | JP3957978B2 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004053699A2 (ja) * | 2002-12-06 | 2004-06-24 | Sony Corp | 記録再生装置、データ処理装置および記録再生処理システム |
WO2004086233A1 (ja) * | 2003-03-26 | 2004-10-07 | Sony Corporation | 情報記録媒体、情報処理装置、情報記録媒体製造装置、および方法、並びにコンピュータ・プログラム |
JP2008269088A (ja) * | 2007-04-17 | 2008-11-06 | Toshiba Corp | プログラム情報提供システム、プログラム情報提供方法、プログラム情報提供方法に用いられる記録媒体 |
JP4824037B2 (ja) * | 2005-01-11 | 2011-11-24 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 保護デジタル・コンテンツへのアクセスをメディア鍵ブロックの検証によって制御する方法、システム、及びコンピュータ・プログラム(読出し/書込み型メディア鍵ブロック) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7340603B2 (en) * | 2002-01-30 | 2008-03-04 | Sony Corporation | Efficient revocation of receivers |
JP5198539B2 (ja) * | 2010-11-05 | 2013-05-15 | 株式会社東芝 | 記憶装置、アクセス装置およびプログラム |
JP5306405B2 (ja) | 2011-03-31 | 2013-10-02 | 株式会社東芝 | 情報処理装置およびプログラム |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3688830B2 (ja) * | 1995-11-30 | 2005-08-31 | 株式会社東芝 | パケット転送方法及びパケット処理装置 |
US6735313B1 (en) * | 1999-05-07 | 2004-05-11 | Lucent Technologies Inc. | Cryptographic method and apparatus for restricting access to transmitted programming content using hash functions and program identifiers |
JP4023083B2 (ja) | 2000-04-06 | 2007-12-19 | ソニー株式会社 | 情報処理システム、情報処理方法、および情報記録媒体、並びにプログラム提供媒体 |
-
2001
- 2001-02-09 JP JP2001033915A patent/JP3957978B2/ja not_active Expired - Fee Related
-
2002
- 2002-02-08 US US10/067,950 patent/US7210042B2/en not_active Expired - Fee Related
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004053699A2 (ja) * | 2002-12-06 | 2004-06-24 | Sony Corp | 記録再生装置、データ処理装置および記録再生処理システム |
WO2004053699A3 (ja) * | 2002-12-06 | 2006-01-19 | Sony Corp | 記録再生装置、データ処理装置および記録再生処理システム |
JPWO2004053699A1 (ja) * | 2002-12-06 | 2006-04-13 | ソニー株式会社 | 記録再生装置、データ処理装置および記録再生処理システム |
US7500101B2 (en) | 2002-12-06 | 2009-03-03 | Sony Corporation | Recording/reproduction device, data processing device, and recording/reproduction system |
JP4600042B2 (ja) * | 2002-12-06 | 2010-12-15 | ソニー株式会社 | 記録再生装置およびデータ処理装置 |
WO2004086233A1 (ja) * | 2003-03-26 | 2004-10-07 | Sony Corporation | 情報記録媒体、情報処理装置、情報記録媒体製造装置、および方法、並びにコンピュータ・プログラム |
US7503077B2 (en) | 2003-03-26 | 2009-03-10 | Sony Corporation | Method, storage medium, and apparatus to prevent use or distribution of unauthorized copies of storage medium contents |
JP4824037B2 (ja) * | 2005-01-11 | 2011-11-24 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 保護デジタル・コンテンツへのアクセスをメディア鍵ブロックの検証によって制御する方法、システム、及びコンピュータ・プログラム(読出し/書込み型メディア鍵ブロック) |
JP2008269088A (ja) * | 2007-04-17 | 2008-11-06 | Toshiba Corp | プログラム情報提供システム、プログラム情報提供方法、プログラム情報提供方法に用いられる記録媒体 |
US8205083B2 (en) | 2007-04-17 | 2012-06-19 | Kabushiki Kaisha Toshiba | System and method for providing program information, and recording medium used therefor |
Also Published As
Publication number | Publication date |
---|---|
JP3957978B2 (ja) | 2007-08-15 |
US7210042B2 (en) | 2007-04-24 |
US20020111925A1 (en) | 2002-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102602119B1 (ko) | 블록체인 및 동형암호 기술을 이용하여 데이터를 공유하는 사용자 장치와 전자장치 및 그 방법들 | |
US11144663B2 (en) | Method and system for search pattern oblivious dynamic symmetric searchable encryption | |
US5745686A (en) | Information tracing system and information tracing method | |
KR101008135B1 (ko) | 데이터 처리 장치 | |
CN101529423B (zh) | 有范围查找 | |
KR101190061B1 (ko) | 결합 키워드를 이용한 데이터 암호화 방법 및 데이터 검색방법 | |
US10664610B2 (en) | Method and system for range search on encrypted data | |
CN101025714A (zh) | 数据处理设备和数据处理方法 | |
KR20100014483A (ko) | 키 제공 시스템, 키 제공 장치, 단말 장치, 키 제공 방법, 및 키 생성 방법 | |
JP6653246B2 (ja) | 計算機システム及びデータ管理方法 | |
KR20100072106A (ko) | 데이터 처리 장치 | |
KR20130024144A (ko) | 프라이버시를 보장하는 가중치 기반의 키워드 검색을 위한 방법 및 장치 | |
JP3957978B2 (ja) | 暗号化システム、データ利用デバイス、及び、暗号化システムのデータ再生制御方法 | |
CN115905238A (zh) | 隐匿查询方法、装置、电子设备和存储介质 | |
CN112001717A (zh) | 一种数字电视的加密货币计算方法、系统及存储介质 | |
CN116680713A (zh) | 基于隐私集合求交的联邦复合运算方法、装置、介质 | |
CN109413449B (zh) | 一种视频加密解密方法及系统 | |
CN110008725A (zh) | 一种用户结构化数据处理系统 | |
CN112039876A (zh) | 一种数据的摆渡方法、装置、设备和介质 | |
KR102500419B1 (ko) | 데이터 관리 방법과 이를 수행하기 위한 컴퓨팅 장치 | |
JP3520812B2 (ja) | データ生成方法及びデータ生成プログラムを格納した記憶媒体 | |
CN109478999A (zh) | 用于从在网络上传输并存储在数据存储设施中的数据中移除信息的反式加密方法和设备 | |
JP5543821B2 (ja) | 暗号化装置、復号化装置、および経路探索システム | |
JP2005006033A (ja) | 鍵生成方法、鍵生成装置、コンテンツ配信装置、端末装置およびプログラム | |
CN117596085B (zh) | 基于属性集的具有前后向隐私的可搜索加密方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20050414 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20050606 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060317 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060516 |
|
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: 20070508 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070509 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110518 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110518 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120518 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120518 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130518 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130518 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140518 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |