版权保护系统,模幂运算设备和模幂运算方法

文档序号:6755419阅读:212来源:国知局
专利名称:版权保护系统,模幂运算设备和模幂运算方法
技术领域
本发明涉及一种系统,用于将包括电影、音乐之类需要保护其版权的内容记录到光盘这种大容量记录媒介上去,以及从这种媒介上播放出来,具体而言涉及用于防止不保护版权的非法设备按照常规方法播放这些内容的一种技术。
背景技术
近些年来,由于涉及多媒介的技术不断发展,比如计算机处理视频图象速度的提高,记录媒介,例如光盘,容量的增大,以及通信线路速度的提高,一项兴旺发达的业务就是通过大容量记录媒介、网络或者广播系统分发包括视频和音频信息的大数据量数字内容(以后简称内容)。在这项业务中,保护内容的版权非常重要。
在分发内容的同时保护版权的系统中,常常采用加密技术。分发设备对内容进行加密,并且分发加密以后的内容。播放设备利用事先分发的解密密钥对加密内容进行解密。
在这样的系统中,考虑到这样的密钥会被分析播放设备等的内部的非法用户泄露给外界,除了加密技术以外还要采用密钥失效技术,以便使泄露的密钥不能被用于对将来提供的内容进行解密(参考专利文献1)。
专利文献1公开的系统利用具有N层叫做树状结构的一种结构来管理播放设备(其中N是一个大于或者等于2的自然数)。每个播放设备都在其中储存了N个装置密钥,这些装置密钥位于播放设备对应的树状结构从底端到顶端的路径上的节点上。播放设备根据记录媒介上记录的信息,利用N个装置密钥中被指定的一个装置密钥,对对应的加密文本进行解密,获得一个媒介密钥,对加密内容进行解密,并且播放这些内容。记录媒介上记录了与有效装置密钥数量一样多的加密文本。
但是,按照传统密钥失效技术,设备内储存的密钥的数量正比于叫做树状结构的分层结构的层数(以后简称为高度)。树状结构的层高正比于版权保护系统所支持设备的总数的对数。这样,属于该系统的设备总数越大,每个设备要在其中保存的密钥就越多。这就意味着每个设备都需要更大的存储容量来储存这些密钥,因此,每个设备的制造成本就会增加。
考虑到上述难题,本发明要提供一种版权保护系统,它能够保持制造成本较低,而不管属于该系统的设备的数量有多大。
专利文献1出版号为2002-281013的日本待审专利申请发明内容本发明提供包括分发系统和播放设备的一种版权保护系统,其中的分发系统包括操作数存储单元,其中储存了是自然数的操作数S;选择单元,能够从2a-2个互不相同的素数中选择由 表示的数量的素数,其中a是一个大于或者等于2的自然数,m是一个可变自然数,可以是1到a-1中的任意一个数;第一计算单元,能够在一个有限域进行模幂运算,这个模幂运算寻找S’=S1/PPmod N表示的一个值,其中N是素数p和素数q的乘积,素数p和q大于一个预订值,P是选择单元选择的所有素数的乘积;加密单元,能够利用操作数S对内容加密;以及分发单元,能够分发加密内容以及指定那些所选素数的第一指定信息,该播放设备包括能够获得加密内容和指定一个或者多个素数的第二指定信息的获取单元;结果存储单元,预先在其中储存值S’;第二计算单元,能够在一个有限域内进行模幂运算,这里的模幂运算由(S’)Qmod N定义,其中N是素数p和素数q的乘积,素数p和q大于所述预定值,Q是第二指定信息中指定的所有素数的乘积;以及解密单元,能够利用第二计算单元的计算结果对获得的加密内容解密。
利用这一方案能够提供一种系统,其中只需要将一个密钥分发给所述播放设备,这个密钥是第一密钥,它是分发系统获得的一个模幂运算结果,于是播放设备利用第一密钥获得第二密钥,利用第二密钥对信息进行解密。
关于第一密钥,在播放设备通过使用分发系统在模幂运算过程中使用过的除一个素数之外的所有素数对第一密钥进一步进行模幂运算来获得第二密钥的情形中,从需要的计算量来说,播放设备很难从第三密钥获得第二密钥,这第三密钥是模幂运算的结果,对于第三密钥,还没有使用被排除的素数的逆元对它进行模幂运算。在这种情况下,能否从第一密钥产生用于加密和解密的第二密钥取决于将哪一个素数选择为被排除的素数。
本发明还提供一种模幂运算设备,包括其中储存了是自然数的操作数S的存储单元;能够从存储单元读取操作数S的读取单元;能够从2a-2个互不相同的素数中选择 这样多个素数的选择单元,其中a是大于或等于2的自然数,m是一个可变自然数,它可以是1到a-1中的任意一个数;以及能够在有限域内进行模幂运算的计算单元,这个模幂运算寻找用下式表示的一个值S’=S1/Pmod N表达式1其中N是素数p和素数q的乘积,素数p和q大于预定值,P是选择单元选择的所有素数的乘积。
利用这一方案,能够获得随着选择单元所选素数而变化的一个模幂运算结果。
这种模幂运算设备特别适合于将模幂运算结果用作第一密钥,从第一密钥产生第二密钥的系统。将模幂运算结果用作第一密钥时,进一步使用上述模幂运算中使用的除一个素数除外的所有素数,对第一密钥进行模幂运算,获得第二密钥,该第二密钥是使用被排除的素数的逆元对储存在存储单元内的操作数进行模幂运算得到的结果;但是从运算量来看,很难从还没有用被排除的素数的逆元对其进行模幂运算的一个模幂运算结果得到第二密钥。这样,通过将第二密钥用于加密和解密,依赖于将哪个素数选择为被排除的素数,能够控制是否能够从模幂运算结果获得第二密钥。
此外,一个可以接受的方案是,选择单元可以包括素数存储子单元,其中储存了2a-2个素数,它们与从每个都连接到a元树中的一个节点的a个分枝中选择数量与1~(a-1)中所有数中每一个一样多的分枝的所有可能组合一一对应;分枝获取子单元,能够获得指定这a个分枝中一个分枝的分枝信息;素数选择子单元,能够从素数存储子单元中储存的2a-2个素数选择与都包括分枝信息中指定的分枝的每个组合对应的所有素数。
利用这一方案,就能够选择对应于所有可能组合的素数,每个组合都包括连接a元树中一个节点的分枝之一,并能够利用所选素数的逆元进行模幂运算获得计算结果。
此外,这个模幂设备可以包括写入单元,能够用计算出来现在用作操作数S的值S’覆盖存储单元中储存的操作数S;重复控制单元,能够控制分枝获取子单元、素数选择子单元、计算单元和写入单元,从而使a元树中从根开始,在叶结束,从根到叶的路径上的每个分枝上,指定分枝的分枝信息的获得、对应于包括指定分枝的每个组合的所有素数的选择、在表达式1基础之上的模幂运算以及将计算值S’写入存储单元这些操作都重复进行。
利用这一方案,就能够为每一叶获得与根到所述叶的路径唯一地对应的计算结果。
模幂运算设备还可以包括逆向运算单元,对计算出来的值S’进行逆运算,获得逆运算结果值;写入单元,能够将现在用作操作数S的逆运算结果值覆盖存储单元中储存的操作数S;重复控制单元,能够控制分枝获取子单元、素数选择子单元、计算单元、逆向运算单元以及写入单元,从而从根开始到叶结束,在a元树从根到叶的路径上的每个分枝上,重复进行指定分枝的分枝信息的获取、对应于包括所指定分枝的每个组合的所有素数的选择、在表达式1的基础之上进行的模幂运算、对计算值S’的逆运算以及将逆运算结果写入存储单元。
利用这一方案,通过对一个常数进行逆运算,就能够获得这样一个计算结果,这一计算被分布在a元树的每个分层上。
逆向运算单元通过将一个常数加到计算值S’上去获得逆运算结果的方案也是可行的。
利用这一方案,通过加一个常数,对a元树的每个分层进行该计算,就能够获得一个计算结果。
本发明提供一种模幂运算设备,包括其中储存了是自然数的操作数T的存储单元;素数存储单元,其中储存了2a-2个素数,它们与从每个都连接a元树一个节点的a个分枝中,选择数量与1~(a-1)中所有数中每一个一样多的分枝的所有可能组合一一对应,其中a是一个大于或者等于2的自然数;有效素数选择单元,当a元树上从根到叶的路径上所有分枝都被失效的时候,能够从素数存储单元中储存的2a-2个素数中选择一个素数,这个素数对应于包括每个都与结点之一连接的a个分枝中所有没有被失效的分枝的一个组合;计算单元,能够在有限域内进行模幂运算,这一模幂运算用以下表达式表示T1/Pmod N 表达式2其中N是素数p和素数q的乘积,素数p和q大于一个预定值,素数P是有效素数选择单元选择的素数。
利用这一方案就能够获得与素数的逆元相关联的计算结果,这个素数与a元树中的一个节点连接的所有有效(未被失效的)分枝对应。
这一模幂运算设备还可以包括存储器单元,其中储存了是自然数的操作数S;读取单元,能够从存储器单元读取操作数S;分枝获取单元,能够获得指定a个分枝中一个分枝的分枝信息;素数选择单元,能够从素数存储单元中储存的2a-2个素数选择对应于若干组合的所有素数,这些组合中每一个都包括分枝信息中被指定的分枝;产生单元,能够在有限域内进行模幂运算,这个模幂运算寻找下式表示的一个值S’=S1/Qmod N 表达式3
其中N是素数p和素数q的乘积,素数p和q大于预定值,Q是素数选择单元选择的所有素数的乘积;第一写入单元,能够用计算出来的当前用作操作数的值S’覆盖存储器单元中储存的操作数S;重复控制单元,能够控制分枝获取单元、素数选择单元、产生单元和第一写入单元,从而在a元树上从根开始到一个节点的路径上的每个分枝上,从根到叶,重复执行指定分枝的分枝信息的获取、对应于包括所指定的分枝的每个组合的所有素数的选择、按照表达式3所进行的模幂运算以及将计算值S’写入存储器单元;第二写入单元,在重复控制单元完成重复控制以后,能够将计算出来现在用作T的值S’写入存储单元;计算控制单元,能够控制有效素数选择单元和计算单元,从而选择对应于包括所有未被失效分枝的组合的一个素数,根据表达式2进行模幂运算。
利用这一方案,对于每一叶,能够获得一个计算结果,其与从根到该叶的路径唯一对应。
本发明还提供一种计算设备,包括素数存储单元,在其中储存2a-2个素数,所述素数与从每个都与a元树中一个节点连接的a个分枝里选择与从1到a-1的所有数字中每一个一样多的分枝的所有可能组合一一对应,这里的a是大于或者等于2的一个自然数;被失效分枝选择单元,当a元树中从根到叶的路径上的所有分枝都被失效的时候,该被失效分枝选择单元能够从连接一个节点的a个分枝中选择(a-1)个或者更少的被失效分枝;未被失效分枝选择单元,能够从连接这个节点的a个分枝中选择一个未被失效的分枝;指定信息分发单元,能够向播放设备分发指定信息,该指定信息从素数存储单元中储存的素数里指定分别对应于所有可能组合的那些素数,其中每一个组合都包括选中的未被失效分枝和被失效分枝中的至少一个。
利用这一方案就能够产生和分发密钥失效信息,只让对应于有效(未被失效)分枝的播放设备对内容解密。
此外,指定信息分发单元还可以包括一个通信子单元,能够通过通信分发指定信息。
利用这一方案就能够通过通信给播放设备分发密钥失效信息,只让对应于有效(未被失效)分枝的播放设备对内容解密。
指定信息分发单元还可以包括媒介写入子单元,能够将指定信息写入记录媒介。
利用这一方案,还能够通过记录媒介给播放设备分发密钥失效信息,只让对应于有效(未被失效)分枝的播放设备对内容解密。
本发明提供一种模幂运算设备,包括存储单元,其中储存了是自然数的操作数S’;素数存储单元,其中储存了2a-2个素数,它们与从每个都与a元树一个节点连接a个分枝中选择出和1到(a-1)中每一个一样多的分枝的所有可能组合一一对应;获取单元,能够获得指定素数存储单元中储存的素数中一个或者多个素数的指定信息;计算单元,能够在有限域内进行模幂运算,这个模幂运算定义为(S’)Qmod N 表达式4其中N是素数p和素数q的乘积,素数p和q大于或者等于一个预定值,Q是指定信息中指定的所有素数的乘积。
利用这一方案,使用了所指定的一个或者多个素数之积的逆元,就能够获得一个模幂运算结果。
这一模幂运算设备对于把模幂运算结果用作第一密钥,从第一密钥产生第二密钥的系统特别有效。使用排除了指定素数的那些预定素数对预先储存的第一密钥进行模幂运算,能够获得第二密钥;但是,如果预先储存的第一密钥是一个模幂运算结果,还没有利用指定素数的逆元对该模幂运算结果进行模幂运算,那么从所需要的运算量角度来看,很难获得第二密钥。因此,能够控制是否可以根据第一密钥和指定的素数来产生第二密钥。
这一模幂运算设备还可以包括存储单元,在其中储存是自然数的操作数S;读取单元,能够从存储单元读取操作数S;分枝获取单元,能够获得指定a个分枝中一个分枝的信息;素数选择单元,能够从素数存储单元中储存的2a-2个素数中选择对应于每个都包括分枝信息中指定的分枝的组合的所有素数;产生单元,能够在有限域内进行模幂运算,这一模幂运算寻找以下表达式表示的一个值R=SPmod N表达式5其中N是素数p和素数q的乘积,素数p和q大于预定值,P是素数选择单元选择的所有素数的乘积;第一写入单元,能够用现在用作操作数S的计算值R覆盖存储器单元中储存的操作数S;重复控制单元,能够控制分枝获取单元、素数选择单元、产生单元和第一写入单元,从而在a元树中从叶开始到节点结束的一条路径的每个分枝上,重复进行指定分枝的分枝信息的获取、对应于每个都包括指定的分枝的组合的所有素数的选择、按照表达式5进行的模幂运算以及将计算值R写入存储器单元;第二写入单元,在重复控制单元完成控制以后,能够将现在用作S’的计算值R写入存储单元;计算控制单元,能够控制获取单元和计算单元,从而获得指定信息,按照表达式4进行模幂运算。
利用这一方案就能够实现这样的模幂运算设备,它能进行对应于a元树每一分层的模幂运算。
本发明还提供一种模幂运算设备,它能够对前面提到的模幂运算设备计算出来的值S’进行计算,该模幂运算设备包括其中储存计算值S’的存储单元;选择单元,能够从2a-2个互不相同的素数中选择 这样多的素数,其中a是一个大于或者等于2的自然数,m是一个可变自然数,可以是从1到a-1中的任何一个;计算单元,能够在有限域内进行模幂运算,该模幂运算被定义为(S’)Qmod N,其中N是素数p和素数q的乘积,素数p和q大于预定值,Q是选择单元选择的所有素数的乘积。
利用这一方案,就能够利用这些素数的逆元,从对原始数(originnumber)进行模幂运算得到的操作数产生原始数。
本发明提供一种记录媒介,包括一个记录单元,能够记录前面提到的模幂运算设备分发的指定信息。
利用这一方案就能够按照记录的信息使播放设备失效。
本发明提供一种密钥管理设备,它管理播放设备用来对内容解密的密钥,这一密钥管理设备包括前面提到的模幂运算设备。
利用这一方案,就能够实现一种密钥管理设备,它包括能够产生用于内容解密的装置密钥的模幂运算设备。
本发明提供一种密钥管理设备,它管理播放设备用来对内容解密的密钥,这一密钥管理设备包括上面提到的模幂运算设备。
利用这一方案就能够实现一种密钥管理设备,它包括能够产生解密密钥的模幂运算设备。
本发明提供一种密钥管理设备,它管理播放设备用于对内容解密的密钥,这一密钥管理设备包括前面提到的模幂运算设备。
利用这一方案,就能够实现一种密钥管理设备,它包括能够产生密钥失效数据的模幂运算设备。
本发明提供一种播放设备,它对内容进行解密和播放,该播放设备包括上面提到的模幂运算设备。
利用这一方案就能够实现一种播放设备,它包括能够从装置密钥产生解密密钥的模幂运算设备,并且该播放设备能够利用解密密钥对加密内容进行解密。
本发明提供记录内容的一种记录设备,该记录设备包括上面提到的模幂运算设备。
利用这一方案就能够实现一种记录设备,它包括能够从装置密钥产生解密密钥的模幂运算设备,并且该记录设备能够利用解密密钥对内容进行加密。
本发明提供模幂运算设备使用的一种模幂运算方法,该设备包括其中储存是自然数的操作数S的存储单元,读取单元,选择单元和计算单元,该模幂运算方法包括读取单元从存储单元读取操作数S的读取步骤;选择单元从互不相同的2a-2个素数中选择 这样多个素数的选择步骤,其中a是大于或者等于2的一个自然数,m是从1到a-1中任意取值的一个可变自然数;计算单元在有限域内进行模幂运算的计算步骤,这一模幂运算寻找以下表达式表示的一个值
S’=S1/Pmod N 表达式1其中N是素数p和素数q的乘积,素数p和q大于预定值,P是选择单元选择出来的所有素数的乘积。
利用这一方案就能够获得随着选择单元选择的素数变化的模幂运算结果。
这一模幂运算设备对于将模幂运算结果用作第一密钥,并从第一密钥产生第二密钥的系统来说特别有效。将模幂运算结果用作第一密钥时,利用所述模幂运算中已经使用的除了一个素数以外的所有素数对第一密钥进行模幂运算,获得第二密钥,它是利用该被排除的素数的逆元对存储单元中储存的操作数进行模幂运算获得的值;但是,从需要的运算量角度看,在没有用被所述排除的素数的逆元对一个模幂运算结果进行模幂运算的情况下,很难从该模幂运算结果获得第二密钥。于是,通过将第二密钥用于加密和解密,根据哪一个素数选择为被排除素数,能够控制能否能够从模幂运算结果产生第二密钥。
本发明提供一种模幂运算方法,供模幂运算设备使用,该设备包括存储单元,其中储存了是自然数的操作数T;还包括一个素数存储单元,在其中储存2a-2个素数,它们与从每个都连接a元树的一个节点的a个分枝中选择数量与1~(a-1)中所有数中每一个一样多的分枝的所有可能组合一一对应,其中的a是一个大于或者等于2的自然数;还有有效素数选择单元;计算单元;该模幂运算方法包括a元树中从根到一叶的路径上的所有分枝都被失效的时候,有效素数选择单元执行的有效素数选择步骤,其中从素数存储单元中储存的2a-2个素数选择一个素数,它对应于包括每个都连接那一个节点的a个分枝中所有未被失效分枝的一个组合;计算单元执行在有限域内进行模幂运算的计算步骤,该模幂运算定义为T1/Pmod N表达式2其中N是素数p和素数q的乘积,素数p和q大于预定值,P是有效素数选择单元选择出来的素数。
利用这一方案,就能够获得与对应于连接a元树中一个节点的所有有效(未被失效)分枝的素数的逆元相关的计算结果。
本发明提供计算设备使用的一种计算方法,该计算设备包括素数存储单元,在其中储存2a-2个素数,它们与从每个都连接a元树一个节点的a个分枝中选择数量与1~(a-1)中所有数中每一个一样多的分枝的所有可能组合一一对应,其中的a是一个大于或者等于2的自然数;未被失效分枝选择单元;被失效分枝选择单元和指定信息分发单元;该计算方法包括被失效分枝选择单元执行的被失效分枝选择步骤,当a元树从根到一片叶的路径上的所有分枝都被失效的时候,从连接一个节点的a个分枝中选择(a-1)个或者更少被失效的分枝;未被失效分枝选择单元的未被失效分枝选择步骤,从连接所述节点的a个分枝中选择一个未被失效的分枝;指定信息分发单元的指定信息分发步骤,给播放设备分发指定信息,该指定信息从素数存储单元中储存的素数里指定分别对应每个都包括所选未被失效分枝和至少一个被失效分枝的所有可能组合的素数。
利用这一方案,能够产生和分发只让对应于有效(未被失效)分枝的播放设备对内容解密的密钥失效信息。
本发明提供模幂运算设备使用的一种模幂运算方法,该模幂运算设备包括存储单元,在其中储存是自然数的操作数S’;素数存储单元,在其中储存2a-2个素数,它们与从每个都连接a元树一个节点的a个分枝中选择数量与1~(a-1)中所有数中每一个一样多的分枝的所有可能组合一一对应;获取单元和计算单元;该模幂运算方法包括获取单元的获取步骤,该获取步骤获得指定素数存储单元中储存的素数中一个或者多个素数的指定信息;和计算单元执行的在有限域内进行模幂运算的计算步骤,该模幂运算定义为(S’)Qmod N 表达式4其中N是素数p和素数q的乘积,素数p和q大于一个预定值,Q是指定信息中指定的所有素数的乘积。
利用这一方案,能够获得一个模幂运算结果,在该模幂运算结果中使用了指定的一个或者多个素数的乘积的逆元。
本发明提供模幂运算设备使用的一种模幂运算方法,该模幂运算设备对上述模幂运算设备计算出来的值S’进行计算,并包括存储单元,在其中储存计算值S’;选择单元和计算单元;该模幂运算方法包括选择单元的选择步骤,从互不相同的2a-2个素数中选择 个素数,其中a是大于或者等于2的自然数,m是可变自然数,它可以是1~(a-1)中的任何一个数;和计算单元的在有限域内进行模幂运算的计算步骤,这一模幂运算被定义为(S’)Qmod N,其中N是素数p和素数q的乘积,素数p和q大于一个预定值,Q是选择单元选出来的所有素数的乘积。
利用这一方案,能够从一个操作数产生原始数,该操作数是利用多个素数的逆元对该原始数进行模幂运算产生的。
本发明提供应用到模幂运算设备的一种程序,该模幂运算设备包括其中储存是自然数的操作数S的存储单元、读取单元、选择单元和计算单元,该程序让计算机执行读取单元从存储单元读取操作数S的读取步骤;选择单元的选择步骤,从互不相同的2a-2个素数中选择 个素数,其中a是大于或者等于2的自然数,m是可变自然数,它可以是1~(a-1)中的任何一个数;计算单元在有限域内进行模幂运算的计算步骤,这一模幂运算寻找以下表达式表示的值S’=S1/Pmod N表达式1其中N是素数p和素数q的乘积,素数p和q大于一个预定值,P是选择单元选出来的所有素数的乘积。
利用这一方案,能够获得随着选择单元选择的素数而变化的一个模幂运算结果。
这一模幂运算设备对于将模幂运算结果用作第一密钥,从第一密钥产生第二密钥的系统而言特别有效。将模幂运算结果用作第一密钥,并且使用在该模幂运算中已经使用过的除一个素数外的所有素数,对该第一密钥进一步进行模幂运算时,能够得到第二密钥,它是通过使用该被排除的素数的逆元对存储单元中储存的操作数进行模幂运算得到的值;但是,从需要的计算量的角度看,很难从没有用被排除的素数的逆元进行过模幂运算的模幂运算结果获得第二密钥。这样,通过将第二密钥用于加密和解密,根据将哪个素数选出来作为被排除的素数,就能够控制能否从一个模幂运算结果产生第二密钥。
本发明提供应用于模幂运算设备的一种程序,该模幂运算设备包括在其中储存是自然数的操作数T的存储单元;素数存储单元,在其中储存2a-2个素数,它们与从每个都连接a元树一个节点的a个分枝中选择数量与1~(a-1)中所有数中每一个一样多的分枝的所有可能组合一一对应,其中的a是一个大于或者等于2的自然数;有效素数选择单元和计算单元;该程序使计算机执行有效素数选择单元的有效素数选择步骤,当a元树中从根到一片叶的路径上的所有分枝都被失效的时候,从素数存储单元中储存的2a-2个素数中选择一个素数,该素数对应于包括每个都连接到这一个节点的a个分枝中的所有未被失效分枝的一个组合;和计算单元的在有限域内进行模幂运算的计算步骤,这一模幂运算被定义为T1/Pmod N表达式2其中N是素数p和素数q的乘积,素数p和q大于预定值,P是有效素数选择单元选择出来的素数。
利用这一方案,就能够获得与一个素数的逆元相关的一个计算结果,这个素数对应于连接到a元树中一个节点的所有有效(未被失效)分枝。
本发明提供应用于计算设备的一种程序,该计算设备包括素数存储单元,在其中储存2a-2个素数,它们与从每个都连接a元树一个节点的a个分枝中选择数量与1~(a-1)中所有数中每一个一样多的分枝的所有可能组合一一对应,其中的a是一个大于或者等于2的自然数;被失效分枝选择单元;未被失效分枝选择单元;和指定信息分发单元;该程序使计算机执行被失效分枝选择单元的被失效分枝选择步骤,当a元树从根到一片叶的路径上的所有分枝都被失效的时候,从连接一个节点的a个分枝中选择(a-1)个或者更少被失效的分枝;未被失效分枝选择单元的从连接所述节点的a个分枝中选择一个未被失效的分枝的未被失效分枝选择步骤;和指定信息分发单元的向播放设备分发指定信息的指定信息分发步骤,该指定信息从素数存储单元中储存的素数中指定,分别对应每个都包括所选未被失效分枝和至少一个被失效分枝的所有可能组合的素数。
利用这一方案,能够产生和分发只让对应于有效(未被失效)分枝的播放设备对内容解密的密钥失效信息。
本发明提供应用于模幂运算设备的一种程序,该模幂运算设备包括存储单元,在其中储存是自然数的操作数S’;素数存储单元,在其中储存2a-2个素数,它们与从每个都连接a元树一个节点的a个分枝中选择数量与1~(a-1)中所有数中每一个一样多的分枝的所有可能组合一一对应;获取单元和计算单元,该程序使计算机执行获取单元获得指定素数存储单元中储存的素数中一个或者多个素数的指定信息的获取步骤,;和计算单元在有限域内进行模幂运算的计算步骤,这一模幂运算定义为(S’)Qmod N表达式4其中N是素数p和素数q的乘积,素数p和q大于一个预定值,Q是指定信息中指定的所有素数的乘积。
利用这一方案,能够获得一个模幂运算结果,该结果的计算使用了被指定的一个或者多个素数的乘积的逆元。
本发明提供应用于模幂运算设备的一种程序,该模幂运算设备对上述模幂运算设备计算出来的值S’进行计算,并包括存储存计算值S’的储单元,选择单元和计算单元;该程序使计算机执行选择单元的选择步骤,从互不相同的2a-2个素数中选择表示为 的数量的素数,其中a是大于或者等于2的自然数,m是可变自然数,它可以是1~(a-1)中的任何一个数;和计算单元的在有限域内进行模幂运算的计算步骤,这一模幂运算被定义为(S’)Qmod N,其中N是素数p和素数q的乘积,素数p和q大于一个预定值,Q是选择单元选出来的所有素数的乘积。
利用这一方案,能够从一个操作数产生原始数,该操作数是通过使用各素数的逆元对该原始数进行模幂运算产生的。
附图简述图1示意性地示出了本发明中版权保护系统的结构;图2是示出本发明中版权保护系统作为一个整体的工作流程图;图3示出具有三叉树结构的用于管理27个设备的一个树状结构;图4是示出本发明中密钥管理设备结构的一个框图;图5示出素数分配单元产生和储存的一个素数表;图6是示出素数分配单元为一个a元树产生素数表所作处理的流程图;图7是装置密钥产生单元根据具有三叉树的树状结构产生装置密钥所作处理的一个流程图;图8以典型的方式示出设备被失效的情况下树状结构中输出加密密钥的节点和加密密钥值之间的关系;图9示出了被失效设备识别单元储存的一个失效表,该失效表以被失效设备识别信息和树状结构为依据;图10是示出密钥失效数据产生单元产生一份密钥失效数据报头部分所作处理的一个流程图;图11示出记录媒介上记录的一份密钥失效数据的数据结构;图12是示出产生加密密钥所作运算的一个流程图;图13是示出产生加密密钥所作运算的一个流程图;图14是示出产生加密密钥所作运算的一个流程图;图15以一种典型方式示出记录媒介中记录的多份数据;图16是示出本发明中记录设备结构的一个框图;
图17是示出产生解密密钥所作处理的一个流程图;图18是示出产生解密密钥所作处理的一个流程图;和图19是示出播放设备结构的一个框图。
优选实施例下面参考


本发明的一个实施例。
本发明提供一种系统,通过防止非法设备按照正常的方式播放版权应该受到保护的内容,来保护内容的版权,因为例如泄露了密钥,这些非法设备不能保护内容的版权。
下面说明这一版权保护系统的大体结构,它是本发明的一个实施例。
图1是说明这一版权保护系统结构的一个示意图。
如图1所示,这一版权保护系统包括密钥管理设备100、记录设备110、记录媒介120和播放设备130、130a……103b。
密钥管理设备100由销售和管理播放设备130、130a……103b的一个公司操纵。作为与网络连接的一台服务器,密钥管理设备100产生装置密钥,每个装置密钥都唯一地对应于播放设备中不同的一台,将每个装置密钥发送给对应的播放设备,还将已经产生的所有装置密钥发送给记录设备110。
这个公司还生产记录内容的记录媒介120。密钥管理设备100将密钥失效数据记录到记录媒介120上,密钥失效数据是这样的数据,它用于阻止播放设备中因为泄露了装置密钥等而已经不能保护版权的特定播放设备,对为了保护版权而加密的内容进行解密。当加密内容记录到已经记录了密钥失效数据的记录媒介120上面的时候,这个特定的播放设备就不能对加密内容解密。
记录设备110对需要保护版权的内容加密,将加密内容记录在记录媒介120上,在记录媒介120上,密钥管理设备100已经记录了各种信息,包括密钥失效数据。
插入记录媒介120的时候,每个播放设备130、130a……130b都利用记录媒介120上记录的信息和相应播放设备中储存的一个装置密钥进行预先确定的处理。作为预先确定的处理结果,每个播放设备成功地解密出用于内容解密的密钥的时候,每个播放设备都用获得的密钥对内容解密,并且播放这些内容。
在这个实施例中,记录设备和播放设备互相独立地设置;但是,也可以采用这样一种记录和播放设备,它同时具有记录设备的记录功能和播放设备的播放功能,能够记录和播放内容。
为了在版权保护系统中对信息进行加密和解密,采用了四种密钥,比如装置密钥、加密密钥(以及与加密密钥相同的解密密钥)、媒介密钥和内容密钥。
如上所述,每个装置密钥都与播放设备和记录设备中不同的一个唯一地对应,并由密钥管理设备100产生,分发给对应的播放设备和记录设备。
如同前面指出的一样,解密密钥与加密密钥一样,用于对媒介密钥进行加密和对加密媒介密钥进行解密。解密密钥由密钥管理设备100产生。通过利用一份密钥失效数据和装置密钥进行预先确定的处理,有效(未被失效)的播放设备和记录设备每个都能够产生解密密钥。
媒介密钥用于加密和解密内容密钥。媒介密钥储存在密钥管理设备100中,密钥管理设备100用解密密钥对它加密,并记录在记录媒介120上。
内容密钥用于加密和解密内容。内容密钥储存在记录设备110中,由记录设备110利用媒介密钥进行加密,记录到记录媒介上去。
下面说明版权保护系统作为一个整体的工作过程。
图2是说明作为一个整体的版权保护系统工作过程的一个流程图。
在图2中,步骤S101~S107说明密钥管理系统100所作的处理。步骤S108~S111说明记录设备110所作的处理,步骤S112~S117说明播放设备130所作的处理。
密钥管理设备100产生一个素数表(S101)。
素数表给出密钥管理设备100用来产生装置密钥的素数。
密钥管理设备100利用素数表(S102)产生对应于播放设备的装置密钥,将每个装置密钥分发给对应的播放设备和记录设备(S103)。
密钥管理设备100产生一个或者多个解密密钥(S104),还产生一份密钥失效数据(S105)。
这份密钥失效数据包括用来只允许每个未被失效的播放设备产生一个解密密钥的信息。S104中产生的解密密钥的数量随着被失效播放设备的数量改变。
密钥管理设备100利用与S104中产生的解密密钥相同的每个加密密钥对媒介密钥进行加密(S106),将包括加密媒介密钥的那份密钥失效数据写到记录媒介120上去(S107)。
记录设备110利用从密钥管理设备100收到的装置密钥,和记录在记录媒介120上的那份密钥失效数据,产生一个解密密钥(S108)。
记录设备110从这份密钥失效数据提取加密媒介密钥,用S108中产生的解密密钥对这个加密媒介密钥解密,从而获得媒介密钥(S109)。
记录设备110在其中储存内容和内容密钥,用内容密钥加密内容,将加密内容记录到记录媒介120上去(S110),还用S109中产生的媒介密钥加密内容密钥,并将加密内容密钥记录到记录媒介120上去(S111)。
播放设备130试图利用从记录媒介120读出的那份密钥失效数据产生解密密钥(S112)。如果这一播放设备130没有被失效,播放设备130就能成功地产生解密密钥。
播放设备130判断是否成功地产生了解密密钥(S113),当没有成功地产生解密密钥的时候(S113否),这一处理就结束。
成功地产生解密密钥的时候(S113是),播放设备130就利用产生的解密密钥对记录媒介120上记录的加密媒介密钥进行解密(S114)。
播放设备130还利用S114中解密得到的媒介密钥,对记录媒介120上记录的加密内容密钥进行解密(S115)。
播放设备130利用S115中产生的内容密钥对记录媒介120上记录的加密内容进行解密(S116),并播放这一内容(S117)。
下面详细说明这一版权保护系统中包括的设备。
密钥管理设备100密钥管理设备100产生装置密钥,每个装置密钥都与播放设备和记录设备中不同的一个唯一地对应,该密钥管理设备100将产生的每个装置密钥分发给播放设备和记录设备中对应的那一个,并产生一份密钥失效数据,将这一份密钥失效数据记录到记录媒介上去。
密钥管理设备100利用树状结构管理一组播放设备,包括播放设备130、130a……130b,以及记录设备。在这个实施例中,密钥管理设备100管理的播放设备和记录设备总数是27个,树状结构是一种三叉树结构。
首先说明树状结构。
图3说明具有三叉树的用于管理27个设备的树状结构。
图3中N0~N333表示节点。连接这些节点的线条(以后简称为路径)从左到右采用了数字1、2、3……(以后叫做路径号)来表示,如图所示。
对于每个节点,用一个节点ID来说明该树状结构中从根节点N0到这个节点的路径。
在图3中,Nabc表示节点ID是“abc”的一个节点,它表示这条路径是按照顺序通过路径号是a的路径,路径号是b的路径,然后路径号是c的路径,从根节点N0到Nabc的。
这一树状结构有四个逻辑层,比如0、1、2、3层,0层是最上层。当节点ID是一个L位数字的时候,它表示这个节点属于第L层。
例如,如图3所示,N1属于第1层,N11属于第2层。N0是根,属于第0层,是一个特殊节点。
属于这个树状结构中最底层的第3层的节点N111~N333,对应于播放设备130、130a……130b这样的设备,以及设备ID与节点ID相同的记录设备110。
在图3中对应于第3层中那些节点的27个设备将被叫做设备1~27。装置密钥K1~K27将被分别分发给设备1~27。例如,密钥管理设备100将装置密钥K2分发给设备ID是“112”的设备2,将另一个装置密钥K20分发给设备ID是“312”的设备20。
下一步详细描述密钥管理设备100的构成。
图4是说明密钥管理设备100结构的一个框图。
如图4所示,密钥管理设备100包括素数分配单元201;随机数产生单元202;密钥信息存储单元203;装置密钥产生单元204;被失效设备识别单元205;密钥失效数据产生单元206;发送单元207;以及写入单元208,它是一个计算机系统,它的硬件包括CPU(中央处理单元)、ROM(只读存储器)、RAM(随机读写存储器)、硬盘、键盘、网络适配器等等。计算机程序储存在ROM或者硬盘中。当CPU按照计算机程序工作的时候,密钥管理设备100就实现它的功能。
素数分配单元201在其中预先储存了素数p和q,用于计算n,n是RSA加密算法中的一个模,产生装置密钥需要它,用密钥信息存储单元203储存这些素数p和q。
RSA加密算法是这样一种加密方法,其中采用了是素数的公开密钥和解密密钥,该解密密钥是以复合数n为模的公开密钥逆元,该模是素数p和q的乘积。这种加密方法的特点是素数p和q未知的时候,从所需要的计算量的角度,很难计算这些素数的逆元。
下面给出p、q和n中每一个的一个实例p=FFFFFFFFEA2DE66E D3B1B7E9 61B75DFC D9FAE2FF A07A2345 9B7956FB1B9B16D7 E1B6D59B BDF45B85 3CBF08EA 3BC7A1BD 541CB3A880E02E43 87CA7DEF 50948E87,q=FFFFFFFF E275B7F4 98A3811DE906ACF7 BFEB5CD6 A445AF09 D7906DE1 97CC2CCD 876147188C7C084F CE9231CA B7CFA113 13C3DDCF F1B70A54 844944678FCEF193,n=pq=FFFFFFFF CCA39E63 6ED9CF52 950C23A038AE0291 012B984A 964FFBBD 99E9DACB 91400431 0C5DD264B1873126 44A725C5 D5BC73F4 97CFD100 89FD1342 656026BE3FB583FE B134FE43 6957A1E1 D975B5BE DF1A9570 4C81A337F06E5F9F 9388A7AC 5ABFD5CF 0356D91A 9861C69F E50509C2323E5270 F2015FBD C08AA2C0 391CEE85。应当指出,p、q和n都用十六进制数表示。
这种RSA加密算法在“Ango Riron Nyumon”(Eiji OKAMOTO著,Kyoritsu Shuppan有限公司出版)中有详细介绍。因此省去了详细介绍。
素数分配单元201用密钥信息存储单元203储存产生装置密钥需要的m个素数。
m的值取决于树状结构。当该树状结构具有a元树结构时,m=2a-2。例如,对于图3所示的实例,既然树状结构是三叉树结构,因此m=23-2=6。
m的值等于,除了其中选择所有路径号的组合外,要从中选择的路径号“1”、“2”……“a”所有可能组合的数量。换句话说,m=aC1+aC2+...+aC(a-1)例如,对于三叉树情形,要从中选择的三个路径号“1”、“2”和“3”有6种可能组合,选择所有路径号的组合除外。这六种组合如下(1)只选择“1”,(2)只选择“2”,(3)只选择“3”,(4)选择“1”和“2”,(5)选择“1”和“3”,(6)选择“2”和“3”。
素数分配单元201预先在其中储存了m个或者更多的素数,给这m个组合中的每一个组合分配互不相同的素数中不同的一个。对应于这些组合的素数每个都叫做所产生的素数,以后表示为Px。关于“Px”中的“x”,将一个或者多个被选路径号结合在一起,将被叫做“被选路径号”例如,在“(1)只选择1”的情况中,被选路径号是“1”,这种情况下的素数是P1。“(4)选择1和2”这种情况下的被选路径号是“12”,这种情况下的素数是P12。
下面说明素数分配单元201如何产生素数表。
图5A和5B每一个都示出了素数分配单元201产生和储存的一个素数表。图5A示出了具有三叉树的树结构的情况,图5A示出了具有四叉树的树结构的情况。在图5A和5B中,素数表的每一行都示出一组被选路径号和产生的素数。
例如,在图5A中,素数表的第四行对应于情形(4)中路径号“1”和“2”的组合,并示出了被选路径号是12和产生的素数是P12。
图6是素数分配单元201为一个a元树产生素数所作处理的一个流程图,对应于图2中的S101。
素数分配单元201对运算中要使用的变量k和l初始化(S201)。
将初始值1赋给k。初始值k-1赋给l。素数分配单元201初始化存储区域P(0)到P(a-1),用于储存运算中使用的路径号,从而满足“P(x)=(x+1)”,在这里0≤x≤(k-1)(S202)。
例如,P(0)=1,P(1)=2,……,P(k-1)=k此外,素数分配单元201对表示素数表中写入目的地的指针进行初始化,从而使这一指针指向素数表的第一行(S203)。
将P(0)到P(k-1)组合在一起的一个数写入指针指向的写入目的地作为“被选路径号”(S204)。
产生一个素数,写入指针指向的写入目的地作为“产生的素数”(S205)。
判断P(k-1)+1是否比a大(S206)。
当判断结果是P(k-1)+1小于或者等于a(S206否)的时候,增大P(k-1)。(S207)刷新指针,从而使它指向下一个区域(S208)。
当判断结果是P(k-1)+1大于a的时候(S206是),就判断l-1是否大于零(S209)。
当判断结果是l-1大于或者等于0的时候(S209是),就判断P(l-k)+k是否大于a(S210)。
当判断结果是P(l-k)+k小于或者等于a的时候(S210否),就减小l(S211)。
增大P(l)中储存的值后,进行“P(l+x)=P(l)+x”这样的处理(其中1≤x≤(k-1-l)),这一过程进入S208(S212)。
当判断结果是l-1小于0的时候(S209否),或者S210中的当判断结果是P(l-k)+k小于a的时候(S210否),就判断(k+1)是否大于(a-1)(S213)。
当S213中的判断结果是(k+1)小于(a-1)的时候(S213否),这一处理就结束。
当S213中的判断结果是(k+1)大于(a-1)的时候(S213是),就增大k,将k-1赋给l(S214)。
令P(0)=1,P(1)=2,……,P(k-1)=k(S215)。
作为S201到S215的结果,如上所述,素数分配单元201产生并在其中储存图5所示的…个素数表。
随机数产生单元202产生一个随机数,也就是随机数S,产生装置密钥需要该随机数S,将这个随机数储存到密钥信息存储单元203。
密钥信息存储单元203在其中储存素数分配单元201产生的素数和随机数产生单元202产生的随机数。
密钥信息存储单元203还预先在其中储存媒介密钥,它们中的每一个对于包括记录媒介120在内的记录媒介中不同的一个是唯一的。
装置密钥产生单元204根据密钥信息存储单元203中储存的信息,产生分别对应于设备1~27的装置密钥。
图7是说明装置密钥产生单元204进行,在具有三叉树结构的树结构基础之上产生装置密钥所作处理的一个流程图。这一处理对应于图2所示的S102。
在图7中,“ID(J)”表示发布装置密钥的设备的设备ID中,从最低位数字数起的第J个路径号。例如,在设备ID是“312”的设备20这种情况下,获得了ID(1)=2,ID(2)=1,和ID(3)=3。
应该指出,在以后提到的每一次指数计算中,如果没有任何附加说明,“mod n”计算就是在以n为模的情况下进行的。
装置密钥产生单元204对所述运算中使用的每一个变量进行初始化(S401)。
将储存在密钥信息存储单元203中的随机数S赋给变量X。给变量J赋0。将设备ID中数字的个数赋给变量L。
在图3所示树状结构的实例中,L=3。
判断ID(J)的值是否等于1(S402)。当这个值是1的时候,这一程序就进入S404。当这一值不是1的时候,这一程序就进入S403。
然后判断ID(J)的值是不是2(S403)。当这个值是2的时候,程序进入S405。当这个值不是2的时候,程序进入S406。
应该指出,步骤S402和S403都是对应于三叉树的ID(J)是1、2、3的情况下执行的选择模幂运算的步骤。在a元树的情况下,需要选择针对ID(J)是1、2、……、(a-1)和a中每一种情形要执行的一个模幂运算;因此,需要执行“a-1”这么多次等价于步骤S402的判断步骤。
对于变量X,对素数P1、P12和P13的逆元进行模幂运算,从而将结果赋给变量X(S404)。
在步骤S404的模幂运算中使用其逆元的素数对应于ID(J)=1,并且在素数表中被选路径号里包括值“1”的所有素数。
在三叉树情形中,在图5A所示的素数中,将对应的被选路径号里包括值“1”的每一个素数P1、P12和P13用于S404的计算。
在4元树情形里,采用图5B所示的在被选路径号里包括值“1”的每一个素数P1、P12、P13、P14、P123、P124和P134。
应该指出,素数Px的逆元被表示为1/Px。
对于变量X,对素数P2、P12和P23的逆元进行模幂运算,从而将结果赋给变量X(S405)。
其逆元被用于步骤S405中的模幂运算的那些素数全部是对应于ID(J)=2,并且在素数表中被选路径号中包括值“2”的那些素数。
对于变量X,对素数P3、P13和P23的逆元进行模幂运算,从而将结果赋给变量X(S406)。
逆元被用于步骤S406的模幂运算的那些素数全部是对应于ID(J)=3,并且在素数表中被选路径号包括值“3”的那些素数。
应该指出,步骤S404、S405和S406是对应于三叉树的ID(J)是1、2和3的情况下执行模幂运算的步骤。在a元树这种情形中,ID(J)是1、2、……、(a-1)和a中的每一个情形都需要执行模幂运算步骤。换句话说,需要进行“a”这么多次等价于S404(或者S405、S406)的模幂运算。在该模幂运算中使用其逆元的那些素数全部是对应于ID(J)=h(其中1≤h≤a)并且在素数表中被选路径号里包括值“h”的那些素数。
于是,判断变量J是否大于变量L-2(S407)。当判断结果是变量J大于变量L-2的时候,这一程序进入S410。当判断结果是变量J不大于变量L-2的时候,程序进入S408。
变量X加1,将结果赋给变量X(S408)。
变量J加1,将结果赋给变量J(S409)。
将变量X的计算值赋给Ki,装置密钥Ki发布给设备i(S410)。
图7中流程图里所示的处理,重复每个都要为其产生装置密钥的设备的数量那么多次。
下面说明按照图7所示的流程图为设备20计算装置密钥的一个实例首先,在步骤S406中计算S^{1/(P3P13P23)},然后,在S408中加1。下一步,对于相加结果,也就是X,在步骤S404中计算X^{1/(P1P12P13)},在S408中再次加1。最后,针对相加结果,也就是X,在S405中计算X^{1/(P2P12P23)}。
作为以上处理的结果,将为设备20发布的装置密钥K20表示为K20=((S^(1/(P3P13P23))+1)^(1/(P1P12P13))+1)^(1/(P2P12P23))同样,为设备2发布的装置密钥K2可以被表示为K2=((S^(1/(P1P12P13))+1)^(1/(P1P12P13))+1)^(1/(P2P12P23))被失效设备识别单元205在其中储存说明一个或者多个设备应该被失效的被失效设备识别信息,该信息由例如操作员用密钥管理设备100包括的键盘(图中没有画出)输入。
在这个实施例中,假设装置密钥K1~K27分别被分发给设备1~27,然后公开对应于设备1和26的装置密钥K1和K26。密钥管理设备100产生密钥失效数据,从而使得利用K1或者K26对内容进行解密成为不可能。
图8示意性地示出前面所述的树状结构中,设备1和设备26被失效的情况下,输出加密密钥的节点与加密密钥值之间的关系。
失效设备n的时候,对于树状结构中从对应于设备n的节点到N0的路径上的每一个节点产生一个加密密钥。
例如,在图8中,在失效设备1的情形里,为从设备1到N0的路径上的节点N11、N1和N0产生加密密钥。在设备26被失效的情形里,为设备26到N0的路径上的节点N33、N3和N0产生加密密钥。
在这个实施例中,为了失效设备1和设备26,产生5个加密密钥Ke1~Ke5,对应于N0、N1、N2、N11和N22,它们是从设备1到N0的路径上的节点以及从设备26到N0的路径上的那些节点,从中排除了重复的结点。以后将把N11、N1、N0、N33和N3中的每一个都叫做被失效节点。
作为操作员等等输入数据的结果,被失效设备识别单元205在其中储存了设备1的设备ID的值“111”,以及设备26的设备ID的值“332”,作为被失效设备识别信息。
图9画出一个失效表,它被失效设备识别单元205储存,该失效表建立在被失效设备识别信息和树状结构的基础之上。
在这一失效表里,表的每一行都有一个节点ID、一个失效标志和一个被选路径号。在示出节点ID的那一栏内,登记了树状结构中除了最底层以外所有节点的节点ID。失效标志表明用节点ID识别的节点是否被失效。当这个节点被失效的时候,将失效标志登记为值“1”,而当节点没有被失效(也就是有效)的时候,失效标志被登记为“0”。被选路径号表示连接这一节点的路径中有效路径号的一个集合。在一个被选路径号内,每个数字都是一个有效路径号。
密钥失效数据产生单元206从密钥信息存储单元203中储存的信息和失效表产生一份密钥失效数据的报头部分,记录在记录媒介120上。
图10是一个流程图,示出密钥失效数据产生单元206进行的对应于图2中S105的一份密钥失效数据报头部分的产生过程。
一份密钥失效数据包括一个或者多个密钥失效条目。一个密钥失效条目由节点ID、被选路径号和加密媒介密钥组成。密钥失效条目中除加密媒介密钥外的部分,也就是节点ID和被选路径号,将被一起叫做一份密钥失效数据的报头部分。
下面参考图10说明密钥失效数据产生单元206产生一份密钥失效数据的报头部分所进行的处理。
密钥失效数据产生单元206有一个存储区域,用于储存要产生的密钥失效数据。
首先,密钥失效数据产生单元206将这一运算中要使用的变量E的值初始化成1(S451)。
将用于这一运算的指针设置在位于头部的密钥失效条目存储区(S452)。
获得失效表第E行中的内容(以后简称为条目E)(S453)。
例如,对于图9所示的失效表,对于E=1的条目E,节点ID等于“0”,撤消标志是“1”,被选路径号是“2”。
判断S453中获得的条目E的失效标志是不是表示被失效的“1”(S454)。
当失效标志不是表明要进行失效的“1”的时候(S454否),程序进入S457。
当失效标志是表示被失效的“1”的时候(S454是),就将条目E的节点ID作为节点ID,条目E的被选路径号作为被选路径号,分别写入指针指向的位置上的失效信息条目存储区域(S455)。
密钥失效数据产生单元206设置这一指针,使它指向下一个失效信息条目存储区域(S456)。
然后判断E+1是否大于失效表中包括的行数(S457)。
当E+1大的时候(S457是),处理就结束。
当E+1小于或者等于行数(S457否),E就增大(S458)。
图11A和11B说明要记录到记录媒介上去的密钥失效数据的数据结构。
图11A说明一些设备被失效的情况中的一份密钥失效数据。图11B说明没有设备被失效的情形中的一份密钥失效数据。
图11A和11B中的每一行都包括“节点ID”、“被选路径号”和“加密媒介密钥”。
通过步骤S451~S458,密钥失效数据产生并且写入单元206产生图11所示密钥失效数据中的报头部分,该部分由“节点ID”、“被选路径号”和“加密媒介密钥”组成。
“加密媒介密钥”是用与解密密钥相同的加密密钥加密的媒介密钥,将在后面给出对它的说明。
下面说明密钥失效数据产生单元206所进行的产生加密密钥的过程。“加密密钥”和“解密密钥”相同,用于对信息进行加密和解密。
图12~14形成一个流程图,说明产生与解密密钥相同的加密密钥所进行的操作,对应于图2中的S104。
在图13中,表达式“NID(J)”表示从一个节点ID中最低位数字算起的第J个路径号。例如,当节点ID是31的时候,NID(1)=1,NID(2)=3。另外,图中的“根”和“根节点”都表示N0。
密钥失效数据产生单元206确定,在树形结构中,连接被失效设备识别单元205识别的被失效设备与N0的路径上的所有节点都是被失效节点,在其中储存被失效节点(S501)。
密钥失效数据产生单元206从储存在密钥信息存储单元203中的树状结构的N0开始,从最上层到最下层,在每一层中,从左边的节点到右边的节点选择除了叶以外的每一个节点,作为处理节点(S502)。
在S502中,在仍然有一个处理节点要被选的情况中,则断定还没有把所有节点搜索到。在没有任何节点供选择的情形里,断定这一搜索对于所有节点已经完成(S503)。在搜索还没有完成的情形里,程序进入S504。在搜索已经完成的情形里,程序进入S507。
关于S502中选择的处理节点,判断该处理节点是不是一个被失效节点,并且至少它的一个子节点是未被失效节点(S504)。在该处理节点是被失效节点,并且它的子节点包括一个或者多个未被失效节点的情形中,程序进入S506。在该处理节点是未被失效节点的情形中,以及在它的子节点都是被失效节点的情形中,程序进入S505。
在这里,“子节点”表示这样的节点,它们与目标节点通过一些路径连接,并紧位于该目标节点下一层中。例如,第1层N3的子节点是第2层中的N31、N32和N33。
对于上面提到的处理节点,没有必要产生一个加密密钥;因此,按照S502中的方式选择下一个处理节点(S505)。
然后判断该处理节点是不是根(也就是N0)(S506)。在处理节点是根的情形中,程序进入S601。在处理节点不是根的情形中,程序进入S702。
用已经发布的所有加密密钥Kei逐个地加密媒介密钥,并产生密钥失效数据(S507)。
在这个实施例中,在设备1和设备26被失效的情形中,产生的加密密钥Ke1~Ke5具有图8所示的值。
密钥失效数据产生单元206对用于计算的变量初始化。将储存在密钥信息存储单元203中的随机数S赋给变量X。用0初始化变量J。变量L是节点ID中的数字位数(S601)。在图3所示的实例中,L=2。
关于处理节点,判断NID(J)的值是不是等于1(S602)。在这个值等于1的情形里,程序进入S604。在这个值不等于1的情形里,这个程序进入S603。
关于该处理节点,判断NID(J)的值是不是等于2(S603)。在这个值等于2的情形里,程序进入S605。在这个值不等于2的情形里,这个程序进入S606。
应该指出,S602和S603的步骤是选择在对应于三叉树的NID(J)是1、2和3的情形中执行的模幂运算。
在a元树情形里,需要为NID(J)是1、2、……、(a-1)和a的情形中每一种情形选择模幂运算;因此,需要进行“a-1”次等价于S602(或者S603)的进行判断的步骤。
对于变量X,对素数P1、P12和P13的逆元(也就是1/P1、1/P12、1/P13)进行模幂运算,将结果赋给变量X(S604)。
对于变量X,对素数P2、P12和P23的逆元(也就是1/P2、1/P12、1/P23)进行模幂运算,将结果赋给变量X(S605)。
对于变量X,对素数P3、P13和P23的逆元(也就是1/P3、1/P13、1/P23)进行模幂运算,将结果赋给变量X(S606)。
应该指出,S604、S605和S606中的步骤是在对应三叉树情况中的NID(J)是1、2和3的情形中进行模幂运算的步骤。在a元树情形中,需要为NID(J)是1、2、……、(a-1)和a的每一个情形执行模幂运算步骤。换句话说,需要进行“a”次等价于S604(或者S605、S606)的模幂运算执行步骤。在模幂运算中使用其逆元的素数全部是对应于NID(J)=h(在这里1≤h≤a),并且在素数表中被选择路径号里包括“h”的素数。
于是,判断变量J是不是比变量L-2大(S607)。在变量J较大的情形中,程序进入图14中的步骤S701。在变量J不大的情形中,程序进入S608。
变量X加1,将结果赋给变量X(S608)。
变量J加1,将结果赋给变量J(S609)。
变量X加1,将结果赋给变量X(S701)。
关于所述处理节点,判断它的子节点是不是被失效节点(S702)。
在只有通过路径号1与处理节点连接的子节点是被失效节点的情形中,对于变量X,对素数P23的逆元(也就是1/P23)进行模幂运算,将结果赋给变量X(S703)。在只有通过路径号2与该处理节点连接的子节点是被失效节点的情况下,对于变量X,对素数P13的逆元(也就是1/P13)进行模幂运算,将结果赋给变量X。在只有通过路径号3与该处理节点连接的子节点是被失效节点的情况下,对于变量X,对素数P12的逆元(也就是1/P12)进行模幂运算,将结果赋给变量X。在只有通过路径号1和2与该处理节点连接的子节点是被失效节点的情况下,对于变量X,对素数P3的逆元(也就是1/P3)进行模幂运算,将结果赋给变量X。在只有通过路径号1和3与该处理节点的子节点是被失效节点的情况下,对于变量X,对素数P2的逆元(也就是1/P2)进行模幂运算,将结果赋给变量X。在只有通过路径号2和3与该处理节点连接的子节点是被失效节点的情况下,对于变量X,对素数P1的逆元(也就是1/P1)进行模幂运算,将结果赋给变量X。
将变量X的计算值赋给Kei,从而输出加密密钥Kei(S704)。
密钥失效数据产生单元206通过执行步骤S501~S704中的处理,产生加密密钥Ke1~Ke5,并用加密密钥Ke1~Ke5中的每一个加密密钥信息存储单元203中的媒介密钥Km。
在没有任何设备被失效的情形中,密钥管理设备100利用密钥信息存储单元203中储存的随机S作为唯一加密密钥加密媒介密钥,从而将图11B所示的那份密钥失效数据记录在记录媒介120上。
密钥失效数据产生单元206通过写入单元208将密钥失效数据写入记录媒介120。
应该指出记录媒介120是一种便携式记录媒介,比如DVD(数字多功能盘),CD(激光唱盘),BD(蓝光盘(blu-ray Disc))等等。
图15示意性地示出了记录在记录媒介120上的数据。
图11所示的那份密钥失效数据被记录在密钥失效数据区域121。
记录设备110加密的内容密钥被写入加密内容密钥区域122。记录设备110用内容密钥加密的内容被写入加密内容区域123。
写入单元208将密钥失效数据产生单元206产生的加密密钥记录在记录媒介120上。
记录设备110记录设备110利用记录设备110中储存的内容密钥加密要保护其版权的内容,将加密内容记录到记录媒介120上以后,利用从密钥管理设备100获得的装置密钥和那份密钥失效数据产生媒介密钥,用这一媒介密钥加密内容,将加密内容密钥记录到记录媒介120上。
图16是说明记录设备110结构的一个框图。
记录设备110包括,如图16所示,通信单元1000,装置密钥存储单元1001,解密密钥产生单元1002,解密单元1003,加密单元1004,加密单元1005,输入/输出单元1006,以及存储单元1007。记录设备110是一个计算机系统,它的硬件包括CPU、ROM、RAM、硬盘、键盘、网络适配器等等。计算机程序储存在ROM或者硬盘上,当CPU按照计算机程序工作的时候,记录设备110实现它的功能。
另外,如上所述,记录设备110与属于树形结构最底层的第3层的一个节点相联系,将一个设备ID分配给记录设备110。
通信单元1000由网络适配器和它的控制单元组成,通过网络与密钥管理设备100通信。
装置密钥存储单元1001由非易失性存储器这样的存储装置和它的控制单元构成,在其中储存通信单元1000收到的装置密钥。
解密密钥产生单元1002通过输入/输出单元1006从记录媒介120读取一份密钥失效数据,并且利用这一份密钥失效数据和装置密钥存储单元1001储存的装置密钥计算解密密钥。
在这里,解密密钥产生单元1002预先在其中储存产生装置密钥的时候需要的6个素数,也就是P1、P2、P3、P12、P13和P23。
下面说明解密密钥产生单元1002计算解密密钥所进行的处理。
图17和18形成一个流程图,示出了产生解密密钥的处理过程。
解密密钥产生单元1002通过输入/输出单元1006读取记录在记录媒介120上那份密钥失效数据头部的一个密钥失效条目,作为一个处理字段(S1201)。
解密密钥产生单元1002判断是否存在一个处理字段(S1202)。具体而言,在解密密钥产生单元1002已经读入那份密钥失效数据的所有字段,再也没有处理字段存在的情况下,判断结果就是所有字段已经被检查完。在存在处理字段的情形中,判断结果是不是所有字段已经被检查完。
在所有字段都已经被检查完的情况下(S1202否),意味着这一设备已经被失效;因此,处理结束。
在不是所有字段都已经被检查完的情形里(S1202是),解密密钥产生单元1002判断写入该处理字段中的节点ID是否与从最高位取出的数字位数与节点ID相等的设备ID的一部分相一致(S1203)。应该指出,在写入该处理字段的节点ID是“0”的情形中,断定它们匹配。
在判断结果是它们不匹配的情形里(S1203否),解密密钥产生单元1002读取前面已经读完的密钥失效条目后面的密钥失效条目,作为处理字段(S1205)。
在判断结果是它们匹配的情形里(S1203是),判断树形结构里对应设备(属于第3层)的节点是否是这样一个节点,能够通过被写入到该处理字段的路径号标示的路径,从由写入处理字段中的节点ID标示的节点到达该节点(以后将这样一个节点叫做子孙节点(descendent node))(S1204)。
在判断结果是这个节点不是子孙节点这种情形里(S1204否),这一程序进入S1205。
在判断结果是这个节点是子孙节点的情形里(S1204是),解密密钥产生单元1002通过输入/输出单元1006,读取对应于记录媒介120上记录的那份密钥失效数据的处理字段的加密媒介密钥,作为处理加密媒介密钥(S1206)。
解密密钥产生单元1002初始化该计算中要使用的变量。将装置密钥Ki赋给变量X,将设备ID中的数字位数赋给变量J(S1301)。
解密密钥产生单元1002判断ID(J)表示的路径是不是直接与写入处理字段中的节点ID指明的节点连接(S1302)。在图18中,“ID(J)”表示从设备ID最低位数字数起的第J个路径号。例如,在设备ID是“312”的设备20这种情形里,ID(1)=2,ID(2)=1,ID(3)=3。
在ID(J)指明的路径不是直接连接的这种情形里(S1302否),对于变量X,针对对应于ID(J)的素数的乘积(这个乘积是Px)进行模幂运算,将结果赋给变量X(S1303)。
应当指出,关于对应于ID(J)的素数,在ID(J)=1的情形中Px=P1P12P13,在ID(J)=2的情形中Px=P2P12P23,在ID(J)=3的情形中Px=P3P13P23。
随后,将1加到变量X上,将结果赋给变量X。从变量J减去1,将结果赋给变量J(S1304)。
在ID(J)表示的路径直接连接的情形中(S1302是),对于变量X,从对应于ID(J)的素数乘积中排除所述处理字段指明的素数Py,对所得结果进行模幂运算,将结果赋给变量X(S1305)。
“Py”中的“y”表示处理字段中的一个被选路径号。例如,在被选路径号是“12”的情形里,Py是P12。在ID(J)=1的情形里,对通过从Px=P1P12P13排除作为Py的P12得到的P1P13进行模幂运算,将结果赋给变量X。
在这里,该图中表达式“Px/Py”指的是在没有P12的情况下计算P1P13。它并不意味着Px=P1P12P13乘以是Py的P12的逆元(1/P12)。
将变量X的计算值赋给Kdi,输出解密密钥Kdi(S1306)。
解密密钥产生单元1002利用S1306中获得的解密密钥Kdi对S1206中读出的加密媒介密钥解密,从而获得媒介密钥(S1307)。
通过上面描述的步骤,每个未被失效的设备都能够从它自己储存的装置密钥计算解密密钥,并用计算出来的解密密钥对媒介密钥解密。另一方面,不可能从被失效设备中储存的装置密钥计算任何解密密钥;因此,不可能对任何媒介密钥解密。
加密单元1004利用解密单元1003解密得到的媒介密钥对存储单元1007中储存的内容密钥加密,通过输入/输出单元1006将加密以后的内容密钥储存到加密内容密钥存储单元1012中。
加密单元1005利用存储单元1007中储存的内容密钥对存储单元1007中储存的内容加密,通过输入/输出单元1006将加密内容写入加密内容存储单元1013。
输入/输出单元1006将数据写入记录媒介120,并且从记录媒介120读取数据。
存储单元1007预先储存在其中需要保护其版权的内容,以及用于加密内容的内容密钥。
播放设备130播放设备130在其中储存了密钥管理设备100分发的装置密钥,从记录媒介120读取一份密钥失效数据,利用装置密钥和这份密钥失效数据获得媒介密钥,从记录媒介120读取加密内容密钥,用媒介密钥对加密内容密钥解密,读取加密内容,用内容密钥对加密内容解密,并播放解密内容。
图19是说明播放设备130结构的一个框图。
如图19所示,播放设备130包括通信单元1100,装置密钥存储单元1101,解密密钥产生单元1102,解密单元1103,解密单元1104,解密单元1105,输入/输出单元1106和播放单元1107。播放设备130是一个例如DVD录像机的记录和播放设备,它的硬件包括CPU(中央处理单元)、ROM(只读存储器)、RAM(随机存取存储器)、硬盘、网络适配器、传输解码器、前端等等。计算机程序储存在ROM或者硬盘内,当CPU按照计算机程序工作的时候,播放设备130实现它的功能。
通信单元1100由网络适配器和它的控制单元组成,并通过网络与密钥管理设备100通信。
装置密钥存储单元1001由例如非易失性存储器的记录装置和它的控制单元组成,在通信单元1100获得密钥管理设备100发布的装置密钥的情形下,装置密钥存储单元1001在其中储存了装置密钥。
也可以事先将装置密钥写入ROM。
解密密钥产生单元1102通过输入/输出单元1106从记录媒介120读取一份密钥失效数据,利用这一份密钥失效数据和装置密钥存储单元1101中储存的装置密钥计算解密密钥。
在这里,解密密钥产生单元1102在其中预先储存6个素数,也就是P1、P2、P3、P12、P13和P23,它们是产生装置密钥所需要的。与解密密钥产生单元1002一样,解密密钥产生单元1102按照图17和18所示的流程图计算解密密钥。
可以通过在图17和18的说明中将输入/输出单元1006换成输入/输出单元1106,将解密密钥产生单元1002换成解密密钥产生单元1102来说明由解密密钥产生单元1102执行的解密密钥的产生。
在这里,例如,关于图3所示的树状结构,为了让设备1能够从装置密钥K1计算解密密钥Kd4,关于装置密钥K1应该对P1P12P13进行模幂运算,还应该对P23的逆元,也就是1/P23,进行模幂运算。但是,用于模n(nn=pXq)的素数p和q是秘密值,只有设备管理设备100知道该值,其它设备不知道。这样,从需要的计算量角度来看,所有其它设备都很难从素数P23计算逆元1/P23。
因此,被失效的设备1不能利用设备1中储存的装置密钥K1获得解密密钥Kd4。
因为同样的原因,设备1不能获得解密密钥Kd1~Kd3和Kd5中的任何一个。此外,设备26不能获得解密密钥Kd1~Kd5中的任何一个。于是,有可能防止要失效的非法设备侵犯内容的版权。
解密单元1103通过输入/输出单元1106从记录媒介120读取加密媒介密钥,用解密密钥产生单元1102产生的解密密钥对加密媒介密钥解密,从而获得媒介密钥。
解密单元1104利用解密单元1103解密得到的媒介密钥,对从记录媒介120读取的加密内容密钥解密,以获得内容密钥。
解密单元1105从记录媒介120读取加密内容,利用内容密钥对该内容解密,从而获得内容。
输入/输出单元1106从记录媒介120输入信息,将信息输出给记录媒介120。
播放单元1107播放解密单元1105获得的内容。
工作过程下面说明在密钥管理设备100利用三叉树管理27个设备的情形中,版权保护系统的整体工作过程。
在密钥管理设备100中,素数分配单元201使用图3所示树状结构的三叉树,按照图6所示的流程图产生并储存图5A所示的素数表。素数表的产生过程中产生的这6(也就是23-2)个素数,也就是P1、P2、P3、P12、P13和P23,被事先分发给记录设备110和播放设备130。在以下实例中,假设播放设备130是图3所示的树状结构中的设备26。
接下来装置密钥产生单元204按照图7所示的流程图,利用素数分配单元201产生的储存在密钥信息存储单元203中的P1~P23,以及随机数产生单元202产生的随机数S,为该播放设备产生装置密钥。
在这里将设备26的装置密钥K26表示为K26=((S^(1/(P3P13P23))+1)^(1/(P3P13P23))+1)^(1/(P2P12P23))通过发送单元207将产生的装置密钥K26分发给对应于K26的设备,也就是播放设备130。
在播放设备130中,通信单元1100接收K26,装置密钥存储单元1101在其中储存K26。
下面针对几种不同的情形,即,没有被失效设备,设备26不是被失效设备以及设备26是被失效设备之一,来说明直到播放设备播放内容为止所进行的操作。
没有任何被失效设备的情形在没有任何被失效设备的情形里,在密钥管理设备100中,密钥失效数据产生单元206产生图11B所示的一份密钥失效数据,而不是按照图10所示的流程图。写入单元208将这一份密钥失效数据记录到记录媒介120上。
将记录了那一份密钥失效数据的记录媒介120传送到记录设备110。
记录设备110随后利用记录在记录媒介120上的那份密钥失效数据和未被失效设备的装置密钥,在这个实例中它是K26,按照图12~14所示的流程图,产生解密密钥S。
记录设备110利用解密密钥S对记录在那份密钥失效数据中的加密媒介密钥解密,从而获得媒介密钥。
记录设备110利用也储存在存储单元1007中的内容密钥,对存储单元1007中储存的内容加密,将加密后的内容记录到记录媒介120的加密内容区域123,用媒介密钥加密内容密钥,将加密内容密钥记录到加密内容密钥区域122。
记录媒介120是通过例如销售来分发的,传递到播放设备130的所有人手中,从而由播放设备130进行播放处理。
在播放设备130中,解密密钥产生单元1102按照图17和图18所示的流程图,利用那份密钥失效数据,从装置密钥K26产生解密密钥S。
解密单元1103利用解密密钥S对那份密钥失效数据中记录的加密媒介密钥解密,从而获得媒介密钥。解密单元1104利用媒介密钥对记录媒介120上记录的加密内容密钥解密,从而产生内容密钥。解密单元1105利用内容密钥对记录媒介120上记录的加密内容解密,从而产生内容。播放单元1107播放该内容。
播放设备130是属于未失效设备的设备27的情形在被失效设备是设备1和设备26的情形中,在密钥管理设备100中,密钥失效数据产生单元206按照图10所示的流程图产生图11A所示的一份密钥失效数据,并将产生的密钥失效数据记录在记录媒介120上。
上面记录了那份密钥失效数据的记录媒介120被传递给记录设备110。
接下来,记录设备110利用记录媒介120上记录的那份密钥失效数据,以及未被失效设备的装置密钥(在这个实例中是K26),按照图12~14中的流程图产生解密密钥Ke5。
记录设备110利用解密密钥Ke5对那份密钥失效数据中记录的加密媒介密钥解密,从而获得媒介密钥。
记录设备110利用储存在存储单元1007中的内容密钥,对也是在存储单元1007中储存的内容加密,将加密内容记录到记录媒介120的加密内容区域123,用媒介密钥加密内容密钥,将加密内容密钥记录到加密内容密钥区域122。
记录媒介120通过例如销售分发,传递到播放设备130的所有人,从而由播放设备130进行播放处理。
在这个实例中,假设播放设备130是属于未被失效设备的设备27。
在播放设备130中,解密密钥产生单元1102利用那份密钥失效数据,按照图17和18所示的流程图,从装置密钥K27产生解密密钥Ke5。
K27被表示为K27=((S^(1/(P3P13P23))+1)^(1/(P3P13P23))+1)^(1/(P3P13P23))在图3所示的树结构中,设备27的设备ID是“333”,在那份密钥失效数据的第一行到第四行是图17所示步骤S1203中的处理字段的情形中,判断结果是“否”,这一程序进入S1205。如果在那份密钥失效数据的第五行中的条目是该处理字段,节点ID“33”与设备ID“333”的高两位数字相同,也就是“33”;因此,判断结果是“是”,程序进入S1204。
在S1204中,那份密钥失效数据第五行中的被选择路径号是“13”。设备27通过树状结构中具有路径号3的路径与N33连接;因此,解密密钥产生单元1102断定设备27是一个子孙设备,程序进入S1206。
解密密钥产生单元1102取出E(Ke5,Km),这是S1206中一个对应的加密媒介密钥。
在S1301中,将K27赋给X,将3赋给J。
在S1302中,ID(3)指定的路径“3”与被选择路径号“13”中的“3”相同;因此,这一判断结果是“是”。
在S1305中,对于K27,对P3和P23的逆元进行模幂运算,P3和P23是从P3、P13、P23中通过排除作为选择出来的路径号P13而获得的。
(K27)^(P3P23)=((S^(1/(P3P13P23))+1)^(1/(P3P13P23))+1)^(1/(P13))=Ke5
这样,解密密钥产生单元1102成功地产生了Ke5。
接下来,解密单元1103利用解密密钥Ke5,对那份密钥失效数据中记录的加密媒介密钥解密,从而获得媒介密钥。
解密单元1104利用该媒介密钥对记录媒介120上记录的加密内容密钥进行解密,从而产生内容密钥。
解密单元1105利用该内容密钥对记录媒介120上记录的加密内容解密,从而产生内容。
播放单元1107播放该内容。
播放设备130是属于被失效设备的设备26的情形在被失效设备是设备1和设备26的情形中,在密钥管理设备100中,密钥失效数据产生单元206按照图10所示的流程图,产生图11A所示的一份密钥失效数据,将产生的那份密钥失效数据记录到记录媒介120上。
将上面记录了那份密钥失效数据的记录媒介120传递给记录设备110。
接下来,记录设备110利用记录媒介120上记录的那份密钥失效数据,以及未被失效设备的装置密钥(在这个实例中它是K27,不是K26),按照图12~14中的流程图,产生解密密钥Ke5。
记录设备110利用解密密钥Ke5对那份密钥失效数据中记录的加密媒介密钥进行解密,从而获得媒介密钥。
记录设备110利用储存在存储单元1007的内容密钥对也是在存储单元1007中储存的内容进行加密,将加密内容记录到记录媒介120的加密内容区域123,用该媒介密钥对内容密钥加密,将加密内容密钥记录到加密内容密钥区域122。
记录媒介120通过例如销售分发,并且传递到播放设备130所有人的手中,从而由播放设备130进行播放处理。
在这个实例中,假设播放设备130是属于被失效设备的设备26。
在播放设备130中,解密密钥产生单元1102利用那份密钥失效数据,按照图17和18所示的流程图,尝试从装置密钥K26产生解密密钥Ke5。
但是,根据图3所示的树形结构,设备26的设备ID是“332”,在那份密钥失效数据第一行到第四行是图17所示步骤S1203中的处理字段的情形下,判断结果是“否”,程序进入S1205。在那份密钥失效数据第五行的条目是处理字段的情形下,节点ID“33”与设备ID“332”的高两位数字相同,它们是“33”;因此,判断结果是“对”,程序进入S1204。
在S1204中,那份密钥失效数据第五行中的被选择路径号是“13”。设备26通过树状结构中具有路径号2的路径与N33连接;因此,解密密钥产生单元1102断定设备26不是一个子孙设备,从而程序进入S1205。
在S1205中,解密密钥产生单元1102没有任何字段要读取,在S1202中它判断所有字段都已经检查完(S1202是),并结束处理;因此,解密密钥产生单元1102不能产生Ke5。此外,解密密钥产生单元1102也不能产生解密密钥Ke1~Ke4中的任何一个。
另外,为了通过一个非法程序尝试产生Ke5,需要通过计算获得P13的一个逆元;但是,从需要的计算量的角度来看,只知道模n而不知道产生n的p和q,很难计算P13的逆元。
此外,由于和尝试产生Ke5的情形中同样的原因,很难产生Ke1~Ke4中的任何一个。
于是,很难产生媒介密钥、内容密钥等等,设备26不能播放内容。
其它修改实例(1)在本发明中,记录媒介被构造为一种可记录媒介,比如DVD-RAM;但是本发明并不限于这种结构。例如,记录媒介可以是一种预先记录的媒介,比如DVD-录象,每个播放设备都有一个装置密钥,并且播放记录在记录媒介上的内容。在这种情形中,将数据写入记录媒介的设备没有必要拥有装置密钥。写入设备可以直接从密钥管理设备接收媒介密钥,根据媒介密钥对内容加密并写入内容。
(2)作为加密内容的机制,本发明具有一种方案,其中用媒介密钥加密内容密钥,用内容密钥加密内容;但是,本发明不限于这种方案。例如,可以直接用媒介密钥加密内容,从而将密钥体系结构缩减一层。或者相反,可以引入盘密钥,这个盘密钥用媒介密钥加密,内容密钥用盘密钥加密,内容用内容密钥加密,从而使这个密钥体系结构增加一层。也可以用密钥体系结构某个地方增加的不同类型的信息调制密钥。
(3)在本发明中,一份密钥失效数据和加密内容记录在单独一个记录媒介上;但是,本发明不限于这种方案。例如,上面记录了一份密钥失效数据的记录媒介也可以不同于上面记录了加密内容的记录媒介。在这种情形中,首先将记录了那份密钥失效数据的记录媒介插入记录设备或者播放设备,从而能够计算媒介密钥,然后将另一个记录媒介插入,从而可以将内容记录上去,或者播放出来。
(4)在本发明中,将一份密钥失效数据和加密内容记录在记录媒介上并分发出去;但是,本发明不限于这种结构。例如,也可以利用广播或因特网这样的通信媒介分发一份密钥失效数据和加密内容。
(5)在本发明中,密钥管理设备采用具有三叉树的树形结构来管理密钥或者设备;但是,本发明不限于这一实例。例如,这一树形结构也可以具有二叉树结构或者四元树结构。在树状结构具有二叉树的情形中,用于产生装置密钥之类的素数的数量是2。在树状结构具有四元树的情形中,该素数的数量是14。
(6)在本发明中,在密钥管理设备产生装置密钥的步骤中,对每一层进行模幂运算,然后加1;但是,本发明不限于这一方案。要加的值也可以是例如2。此外,运算的类型和运算中使用的值不限于这个实例,运算可以是具有可逆性的任意类型,比如减法、乘法、除法或者XOR运算。
(7)在本发明中,当记录设备加密媒介密钥的时候,直接用从装置密钥计算出来的加密密钥加密媒介密钥;但是,本发明不限于这一实例。例如,也可以将加密密钥输入到压缩函数(function),比如SHA-1,每个媒介密钥都用其输出值或者该输出值的一部分加密。在这种情形里,以及在播放设备中,将计算出来的解密密钥输入压缩函数,用其输出值或者输出值的一部分对媒介密钥解密。或者,计算出来的加密密钥也可以被用于加密块密钥(block key),块密钥在长度上比加密密钥短,将块密钥用来加密每个媒介密钥。在这种情形里,在播放设备中,首先用计算出来的解密密钥对块密钥解密,然后对媒介密钥解密。
(8)在本发明中,素数被不同层和不同节点共用;但是,本发明不限于这一方案。例如,不同的层也可以采用不同的素数集合,或者不同的节点采用不同的素数集合。
(9)在本发明的实施例的说明中,说明了所述实施例,其中在具有三叉树结构的树形结构的实例中使用了六个素数。在本发明中,对这六个素数没有任何特定的限制。为了减少计算量,可以选择六个小素数。更加具体地说,可以采用按上升顺序列出来的3、5、7、11、13和17这样的六个素数。
(10)在本发明中,说明了一个实施例,其中的素数被事先产生和储存;但是,本发明不限于这一实例。例如,产生素数的规则可以事先设定,在进行每次运算之前为单步运算产生素数。
(11)具体地说每个设备都是一个计算机系统,它包括微处理器、ROM、RAM和硬盘单元、显示单元、键盘和鼠标器。计算机程序储存在RAM中或者硬盘单元里。当微处理器按照计算机程序工作的时候,每一个设备都实现它的功能。
(12)本发明可以是上面描述的方法。本发明也可以是计算机程序,该程序利用计算机实现这些方法,或者可以是由这样的计算机程序转换得到的数字信号。
另外,也可以认为本发明是一种计算机能够读取的记录媒介,例如软盘、硬盘、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(蓝光盘)以及半导体存储器,在它们上面记录这样的计算机程序或者这样的数字信号;或者认为本发明是记录在这种记录媒介上的这种计算机程序或者这种数字信号。
此外,也可以认为本发明是是通过通信线路、无线或者有线传输网络、因特网这样的网络等等,发送这种计算机程序或者这种数字信号来这样实现的。
更进一步,还可以认为本发明是一种计算机系统,包括微处理器和存储器,其中的存储器在其中储存所述计算机程序,微处理器按照这些计算机程序工作。
另外,也可以通过上述网络等传送记录在记录媒介上的所述程序或者数字信号,从而在独立的计算机系统内执行上述程序或者数字信号。
(13)本发明可以被看成任何所述实施例和所述修改实例的结合。
工业应用性本发明的版权保护系统作为一种技术可以用作一个系统的基础,该系统包括用来加密和分发版权需要保护的内容的分发系统,还包括对加密内容解密和播放的播放设备。这种分发系统和这种播放设备由例如数字电子家用电器制造商制造,用于播放数字内容。
权利要求
1.一种版权保护系统,包括分发系统和播放设备,其中该分发系统包括操作数存储单元,在其中储存是自然数的操作数S;选择单元,能够从互不相同的2a-2个素数中选择数量为如下表达式表示的素数Σm=1a-1a-1Cm-1]]>其中a是大于或者等于2的自然数,m是可变自然数,它可以是1至a-1中的任何一个数;第一计算单元,能够在有限域内进行模幂运算,该模幂运算寻找以下表达式表示的值S’=S1/Pmod N其中N是素数p和素数q的乘积,素数p和q大于一个预定值,P是所述选择单元选出来的所有素数的乘积;加密单元,能够用操作数S加密内容;和分发单元,能够分发该加密内容和指定所选择的素数的第一指定信息,并且该播放设备包括获取单元,能够获得该加密内容和指定一个或者多个素数的第二指定信息;结果存储单元,预先在其中储存值S’;第二计算单元,能够在有限域内进行模幂运算,该模幂运算定义为(S’)Qmod N其中N是素数p和素数q的乘积,素数p和q大于预定值,Q是第二指定信息指定的所有素数的乘积;和解密单元,能够用第二计算单元的计算结果对该获得的加密内容解密。
2.一种模幂运算设备,包括存储单元,在其中储存是自然数的操作数S;读取单元,能够从该存储单元读取操作数S;选择单元,能够从互不相同的2a-2个素数中选择数量为如下表达式表示的素数Σm=1a-1a-1Cm-1]]>其中a是大于或者等于2的自然数,m是可变自然数,它可以是1至a-1中的任何一个数;和计算单元,能够在有限域内进行模幂运算,该模幂运算寻找以下表达式表示的值S’=S1/Pmod N 表达式1其中N是素数p和素数q的乘积,素数p和q大于一个预定值,P是该选择单元选出来的所有素数的乘积。
3.如权利要求2所述的模幂运算设备,其中该选择单元包括素数存储子单元,在其中储存2a-2个素数,它们与从每个都连接a元树一个节点的a个分枝中选择数量与1至a-1中所有数中每一个一样多的分枝的所有可能组合一一对应;和分枝获取子单元,能够获得指定a个分枝中一个分枝的分枝信息;和素数选择子单元,能够从该素数存储子单元中储存的2a-2个素数中,选择与每个都包括所述分枝信息中指定的分枝的组合对应的所有素数。
4.如权利要求3所述的模幂运算设备,还包括写入单元,能够用计算出来,现在用作操作数S的值S’覆盖所述存储单元中储存的操作数S;和重复控制单元,能够控制该分枝获取子单元、该素数选择子单元、该计算单元和该写入单元,从而使a元树中从根到一片叶,从根开始到这片叶结束的路径上的每一个分枝上,重复执行指定分枝的分枝信息的获得,与每个都包括该指定的分枝的组合相对应的所有素数的选择,基于表达式1的模幂运算,以及将计算值S’写入所述存储单元。
5.如权利要求3所述的模幂运算设备,还包括可逆运算单元,能够对计算值S’进行可逆运算,以获得可逆运算结果值;写入单元,能够用现在用作操作数S的该可逆运算结果值覆盖所述存储单元中储存的操作数S;和重复控制单元,能够控制该分枝获取子单元、该素数选择子单元、该计算单元、该可逆运算单元和该写入单元,从而在a元树中从根到一片叶,从所述根开始到这片叶结束的路径上的每一个分枝上,重复执行指定所述分枝的分枝信息的获得,与包括该指定分枝的每个组合对应的所有素数的选择,基于表达式1的该模幂运算,对计算值S’的可逆运算以及将该可逆运算结果值写入所述存储单元。
6.如权利要求5所述的模幂运算设备,其中可逆运算单元通过将一个常数加到计算值S’上来获得所述可逆运算结果值。
7.一种模幂运算设备,包括存储单元,在其中储存是自然数的操作数T;素数存储单元,在其中储存2a-2个素数,它们与从每个都连接a元树中的一个节点的a个分枝中选择数量与1至a-1中所有数中每一个一样多的分枝的所有可能组合一一对应,其中的a是一个大于或者等于2的自然数;有效素数选择单元,当该a元树中从根到一片叶的路径上的所有分枝都被失效时,能够从所述素数存储单元中储存的所述2a-2个素数中选择一个素数,该素数对应于包括每个都连接到该一个节点的a个分枝中的所有未被失效分枝的一个组合;和计算单元,能够在有限域内进行模幂运算,该模幂运算被定义为T1/Pmod N 表达式2其中N是素数p和素数q的乘积,素数p和q大于预定值,P是该有效素数选择单元选择出来的所述素数。
8.如权利要求7所述的模幂运算设备,还包括存储器单元,在其中储存是自然数的操作数S;读取单元,能够从该存储器单元读该取操作数S;分枝获取单元,能够获得指定所述a个分枝中一个分枝的分枝信息;素数选择单元,能够从所述素数存储单元中储存的所述2a-2个素数中,选择对应于每个都包括所述分枝信息指定的所述分枝的组合的所有素数;产生单元,能够在有限域内进行模幂运算,该模幂运算寻找以下表达式表示的值S’=S1/Qmod N 表达式3其中N是素数p和素数q的乘积,素数p和q大于一个预定值,Q是所述素数选择单元选出来的所有素数的乘积;第一写入单元,能够用现在用作操作数S的计算值S’覆盖所述存储器单元中储存的该操作数S;重复控制单元,能够控制该分枝获取单元、该素数选择单元、该产生单元和该第一写入单元,从而在该a元树中从根到一个节点,从该根开始到该节点结束的路径上的每一个分枝上,重复执行指定所述分枝的分枝信息的获得,与每个都包括所述指定分枝的组合对应的所有素数的选择,基于表达式3的模幂运算,将计所述算值S’写入所述存储器单元;第二写入单元,在该重复控制单元完成所述控制以后,能够将现在用作T的所述计算值S’写入该存储单元;和计算控制单元,能够控制该有效素数选择单元和该计算单元,从而选择一个素数,该素数对应于包括所有未被失效分枝的一个组合,并进行基于表达式2的模幂运算。
9.一种计算设备,包括素数存储单元,在其中储存2a-2个素数,它们与从每个都连接a元树中一个节点的a个分枝中选择数量与1至a-1中所有数中每一个一样多的分枝的所有可能组合一一对应,其中的a是一个大于或者等于2的自然数;被失效分枝选择单元,当该a元树从根到一片叶的路径上的所有分枝都被失效的时候,能够从连接一个节点的a个分枝中选择a-1个或者更少被失效的分枝;未被失效分枝选择单元,能够从连接所述节点的a个分枝中选择一个未被失效的分枝;和指定信息分发单元,能够向播放设备分发指定信息,该指定信息从该素数存储单元中储存的所述素数里,指定分别对应每个都包括所选未被失效分枝和至少一个被失效分枝的所有可能组合的素数。
10.如权利要求9所述的计算设备,其中该指定信息分发单元包括一个通信子单元,能够通过通信分发所述指定信息。
11.如权利要求9所述的计算设备,其中该指定信息分发单元包括一个媒介写入子单元,能够将该指定信息写入记录媒介。
12.一种模幂运算设备,包括存储单元,在其中储存是自然数的操作数S’;素数存储单元,在其中储存2a-2个素数,它们与从每个都连接a元树中一个节点的a个分枝中选择数量与1至a-1中所有数中每一个一样多的分枝的所有可能组合一一对应;获取单元,能够获得指定所述素数存储单元中储存的所述素数中一个或者多个素数的指定信息;和计算单元,能够在有限域内进行模幂运算,该模幂运算定义为(S’)Qmod N 表达式4其中N是素数p和素数q的乘积,素数p和q大于一个预定值,Q是该指定信息中指定的所有素数的乘积。
13.如权利要求12所述的模幂运算设备,还包括存储单元,在其中储存是自然数的操作数S;读取单元,能够从该存储单元读取该操作数S;分枝获取单元,能够获得指定所述a个分枝中一个分枝的分枝信息;素数选择单元,能够从所述素数存储单元储存的所述2a-2个素数中,选择对应于每个都包括所述分枝信息中指定的所述分枝的组合的所有素数;产生单元,能够对有限域进行模幂运算,该模幂运算寻找以下表达式表示的值R=SPmod N 表达式5其中N是素数p和素数q的乘积,素数p和q大于预定值,P是该素数选择单元选择的所述所有素数的乘积;第一写入单元,能够将现在用作操作数S的该计算值R覆盖所述存储器单元中储存的操作数S;重复控制单元,能够控制分枝获取单元、素数选择单元、产生单元和第一写入单元,从而在所述a元树中从一片叶到一个节点,从该叶根开始到该节点结束的路径上的每一个分枝上,重复执行指定该分枝的分枝信息的获得,与每个都包括该指定的分枝的组合对应的所有素数的选择,基于表达式5的模幂运算,和将计算值R写入该存储器单元;第二写入单元,在重复控制单元完成所述控制以后,能够将现在用作S’的计算值R写入所述存储单元;和计算控制单元,能够控制所述获取单元和所述计算单元,从而获得所述指定信息,并进行基于表达式4的模幂运算。
14.对权利要求2所述的模幂运算设备计算出来的值S’进行计算的一种模幂运算设备,包括存储单元,在其中储存计算值S’;选择单元,能够从互不相同的2a-2个素数中选择数量为如下表达式表示的素数Σm=1a-1a-1Cm-1]]>其中a是大于或者等于2的自然数,m是可变自然数,它可以是1至a-1中的任何一个数;和计算单元,能够在有限域内进行模幂运算,该模幂运算被定义为(S’)Qmod N其中N是素数p和素数q的乘积,素数p和q大于一个预定值,Q是所述选择单元选出来的所有素数的乘积。
15.一种记录媒介,包括能够记录权利要求12所述的模幂运算设备分发的所述指定信息的一个记录单元。
16.密钥管理设备,管理播放设备用来对内容解密的密钥,该密钥管理设备包括权利要求2所述的模幂运算设备。
17.密钥管理设备,管理播放设备用来对内容解密的密钥,该密钥管理设备包括权利要求7所述的模幂运算设备。
18.密钥管理设备,管理播放设备用来对内容解密的密钥,该密钥管理设备包括权利要求9所述的模幂运算设备。
19.对内容进行解密并播放的一种播放设备,该播放设备包括权利要求12所述的模幂运算设备。
20.记录内容的一种记录设备,该记录设备包括权利要求12所述的模幂运算设备。
21.记录内容的一种记录设备,该记录设备包括权利要求14所述的模幂运算设备。
22.模幂运算设备使用的一种模幂运算方法,该模幂运算设备包括其中储存是自然数的操作数S的存储单元、读取单元、选择单元和计算单元,该模幂运算方法包括该读取单元从该存储单元读取该操作数S的读取步骤;该选择单元的选择步骤,从互不相同的2a-2个素数中选择数量为如下表达式表示的素数Σm=1a-1a-1Cm-1]]>其中a是大于或者等于2的自然数,m是可变自然数,它可以是1至a-1中的任何一个数;和计算单元在有限域内进行模幂运算的计算步骤,该模幂运算寻找以下表达式表示的值S’=S1/Pmod N 表达式1其中N是素数p和素数q的乘积,素数p和q大于一个预定值,P是该选择单元选出来的所有素数的乘积。
23.模幂运算设备使用的一种模幂运算方法,该模幂运算设备包括在其中储存是自然数的操作数T的存储单元和素数存储单元,在其中储存2a-2个素数,它们与从每个都连接a元树一个节点的a个分枝中选择数量与1至a-1中所有数中每一个一样多的分枝的所有可能组合一一对应,其中的a是一个大于或者等于2的自然数;还包括有效素数选择单元和计算单元,该模幂运算方法包括有效素数选择单元的有效素数选择步骤,当该a元树中从根到一片叶的路径上的所有分枝都被失效的时候,能够从所述素数存储单元中储存的所述2a-2个素数中选择一个素数,该素数对应于包括每个都连接到所述一个节点的a个分枝的所有未被失效分枝的一个组合;和计算单元的在有限域内进行模幂运算的计算步骤,这一模幂运算被定义为T1/Pmod N 表达式2其中N是素数p和素数q的乘积,素数p和q大于预定值,P是所述有效素数选择单元选择出来的所述素数。
24.计算设备使用的一种计算方法,该计算设备包括素数存储单元,在其中储存2a-2个素数,它们与从每个都连接a元树一个节点的a个分枝中选择数量与1至a-1中所有数中每一个一样多的分枝的所有可能组合一一对应,其中的a是一个大于或者等于2的自然数;未被失效分枝选择单元;被失效分枝选择单元和指定信息分发单元;该计算方法包括被失效分枝选择单元的被失效分枝选择步骤,当在该a元树中从根到一片叶的路径上的所有分枝都被失效的时候,从连接一个节点的a个分枝中选择a-1个或者更少被失效的分枝;未被失效分枝选择单元的未被失效分枝选择步骤,从连接所述节点的a个分枝中选择一个未被失效的分枝;和指定信息分发单元的指定信息分发步骤,给播放设备分发指定信息,从该素数存储单元中储存的该素数中,指定分别对应每个都包括所选未被失效分枝和至少一个被失效分枝的所有可能组合的素数。
25.模幂运算设备使用的一种模幂运算方法,该模幂运算设备包括存储单元,在其中储存是自然数的操作数S’;素数存储单元,在其中储存2a-2个素数,它们与从每个都连接a元树一个节点的a个分枝中选择数量与1至a-1中所有数中每一个一样多的分枝的所有可能组合一一对应;获取单元和计算单元,该模幂运算方法包括所述获取单元的获得指定信息的获取步骤,该指定信息指定所述素数存储单元中储存的所述素数中一个或者多个素数;和计算单元的在有限域内进行模幂运算的计算步骤,该模幂运算定义为(S’)Qmod N 表达式4其中N是素数p和素数q的乘积,素数p和q大于一个预定值,Q是所述指定信息中指定的所有素数的乘积。
26.模幂运算设备使用的一种模幂运算方法,该模幂运算设备对权利要求2所述的模幂运算设备计算出来的值S’进行计算,并包括存储单元,在其中储存计算值S’;选择单元和计算单元;该模幂运算方法包括所述选择单元的选择步骤,从互不相同的2a-2个素数中选择数量为如下表达式表示的素数Σm=1a-1a-1Cm-1]]>其中a是大于或者等于2的自然数,m是可变自然数,它可以是1至a-1中的任何一个数;和所述计算单元的在有限域内进行模幂运算的计算步骤,该模幂运算被定义为(S’)Qmod N其中N是素数p和素数q的乘积,素数p和q大于一个预定值,Q是所述选择单元选出来的所有素数的乘积。
27.应用于模幂运算设备的一种程序,该模幂运算设备包括其中储存是自然数的操作数S的存储单元、读取单元、选择单元和计算单元,该程序使计算机执行所述读取单元从所述存储单元读取操作数S的读取步骤;所述选择单元的选择步骤,从互不相同的2a-2个素数中选择数量为如下表达式表示的素数Σm=1a-1a-1Cm-1]]>其中a是大于或者等于2的自然数,m是可变自然数,它可以是1至a-1中的任何一个数;和所述计算单元在有限域内进行模幂运算的计算步骤,该模幂运算寻找以下表达式表示的值S’=S1/Pmod N 表达式1其中N是素数p和素数q的乘积,素数p和q大于一个预定值,P是所述选择单元选出来的所有素数的乘积。
28.应用于模幂运算设备的一种程序,该模幂运算设备包括在其中储存是自然数的操作数T的存储单元;和素数存储单元,在其中储存2a-2个素数,它们与从每个都连接a元树一个节点的a个分枝中选择数量与1至a-1中所有数中每一个一样多的分枝的所有可能组合一一对应,其中的a是一个大于或者等于2的自然数;有效素数选择单元和计算单元;该程序使计算机执行有效素数选择单元的有效素数选择步骤,当在该a元树中从根到一片叶的路径上的所有分枝都被失效的时候,从所述素数存储单元中储存的2a-2个素数中选择一个素数,该素数对应于包括每个都连接到这一个节点的a个分枝中的所有未被失效分枝的一个组合;和所述计算单元的在有限域内进行模幂运算的计算步骤,该模幂运算被定义为T1/Pmod N 表达式2其中N是素数p和素数q的乘积,素数p和q大于预定值,P是由所述效素数选择单元选择出来的所述素数。
29.应用于计算设备的一种程序,该计算设备包括素数存储单元,在其中储存2a-2个素数,它们与从每个都连接a元树一个节点的a个分枝中选择数量与1至a-1中所有数中每一个一样多的分枝的所有可能组合一一对应,其中的a是一个大于或者等于2的自然数;未被失效分枝选择单元;被失效分枝选择单元和指定信息分发单元;该程序使计算机执行所述被失效分枝选择单元的被失效分枝选择步骤,当所述a元树中从根到一片叶的路径上的所有分枝都被失效的时候,从连接一个节点的a个分枝中选择a-1个或者更少被失效的分枝;所述未被失效分枝选择单元的未被失效分枝选择步骤,从连接所述节点的a个分枝中选择一个未被失效的分枝;和所述指定信息分发单元的向播放设备分发指定信息的指定信息分发步骤,该指定信息指定所述素数存储单元中储存的素数中,分别对应每个都包括所选未被失效分枝和至少一个被失效分枝的所有可能组合的素数。
30.应用于模幂运算设备的一种程序,该模幂运算设备包括存储单元,在其中储存是自然数的操作数S’;素数存储单元,在其中储存2a-2个素数,它们与从每个都连接a元树一个节点的a个分枝中选择数量与1至a-1中所有数中每一个一样多的分枝的所有可能组合一一对应;获取单元和计算单元,该程序使计算机执行该获取单元的获取步骤,获得指定所述素数存储单元中储存的素数中一个或者多个素数的指定信息;和该计算单元的在有限域内进行模幂运算的计算步骤,该模幂运算定义为(S’)Qmod N 表达式4其中N是素数p和素数q的乘积,素数p和q大于一个预定值,Q是所述指定信息中指定的所有素数的乘积。
31.应用于模幂运算设备的一种程序,该模幂运算设备对权利要求2所述的模幂运算设备计算出来的值S’进行计算,包括存储单元,在其中储存计算值S’;选择单元和计算单元;该程序使计算机执行该选择单元的选择步骤,从互不相同的2a-2个素数中选择数量为如下表达式表示的素数Σm=1a-1a-1Cm-1]]>其中a是大于或者等于2的自然数,m是可变自然数,它可以是1至a-1中的任何一个数;和该计算单元的在有限域内进行模幂运算的计算步骤,该模幂运算被定义为(S’)Qmod N其中N是素数p和素数q的乘积,素数p和q大于一个预定值,Q是所述选择单元选出来的所有素数的乘积。
全文摘要
提供一种版权保护系统,不论属于这一系统的播放设备的总数是多少,该系统能够降低制造成本。在这个系统中,密钥管理设备的装置密钥产生单元利用预定素数的乘积的一个逆元对一个随机数进行模幂运算,从而以一一对应的方式产生和分发装置密钥给播放设备。密钥失效数据产生单元产生,作为密钥失效数据,识别未被失效的播放设备用来从它的装置密钥产生解密密钥的素数的信息,把密钥失效数据和加密内容一起分发给每个播放设备。每个播放设备在密钥失效数据的基础之上尝试产生解密密钥,只有成功地产生了解密密钥的那些播放设备能够对加密内容解密。
文档编号G11B20/00GK1795639SQ20048001409
公开日2006年6月28日 申请日期2004年5月24日 优先权日2003年5月22日
发明者中野稔久, 阿特巴东·努塔邦, 古原和邦, 今井秀树 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1