信息处理方法、解密处理方法、信息处理装置和计算机程序的制作方法

文档序号:7633315阅读:188来源:国知局
专利名称:信息处理方法、解密处理方法、信息处理装置和计算机程序的制作方法
技术领域
本发明涉及信息处理方法、解密处理方法、信息处理装置和计算机程序。更具体地,本发明涉及信息处理方法、解密处理方法、信息处理装置和计算机程序,它们都实现了有效的和安全的信息发布,其中通过使用作为单向树设置的Rabin树,通过增强并使得应用了分层树结构的广播加密方案中当前已知的完全子树方案(CS方案)更有效,与使用RSA密码系统的现有方案相比减少了所需的计算量和要安全管理的数据量。
背景技术
近来,包括音频数据例如音乐,图像数据例如电影,游戏程序的各种软件数据和各种应用程序(这些在后面被称为内容)通过诸如因特网的网络或通过诸如压缩盘(CD)、数字通用盘(DVD)、迷你盘(MD)的各种信息记录介质传播。由用户拥有的再现装置诸如个人计算机(PC)、播放器或游戏装置再现并使用这种传播内容。
诸如音乐数据和图像数据的各种内容的发布权等一般由它们的创造者或它们的发行者掌握。因此,在发布该内容时,通常采用用于设置某种受限制的访问的配置,即,仅有授权的用户允许使用该内容以便防止未授权的复制等。
具体地,近年来,用于以数字形式记录信息的记录设备和存储介质已经得以流行。借助于这种数字记录设备和存储介质,例如,可以重复记录和再现而不会使图像和声音变坏,并且因此提出了这样的问题,诸如欺骗性拷贝内容通过因特网的发布,以及对诸如可记录压缩盘(CD-R)的记录介质的未授权拷贝。
作为防止这种对内容的未授权使用的方法,存在这样的系统,其中用于解码内容或加密内容的密钥被译成密码发布,以便仅使得特定授权的用户或授权的设备可以解码发布的数据。例如,采用作为广播加密方案的实施例的分层树结构的配置是已知的。
将参考附图描述使用分层树结构提供加密数据诸如加密密钥的处理。
图1中示出的分层树结构使用二进制树。二进制树的最低层称为叶子,并且各个包括顶点的部分,各个分支部分和叶子称为节点。在图1所示的二进制树分层树结构中,由8-15表示叶子,并且由1-15表示节点,并且另外由1表示根。
将作为内容使用装置的信息处理装置诸如再现器、接收器逐一地分配给二进制树分层树结构中的叶子8-15。
此外,将节点密钥逐一地分配给树的节点(包括叶子)1-15。分配给叶子8-15的节点密钥某些时候被称为叶子密钥。
将分配给从相应叶子到根的路径内的节点的节点密钥授予相应于每个叶子的信息处理装置。在图1的配置中,有分别分配给叶子8-15的8个信息处理装置,且节点密钥分配给节点1-15中的每一个。相应于叶子8的信息处理装置101被授予分配给节点1,2,4,8的4个节点密钥。此外,相应于叶子12的信息处理装置102被授予分配给节点1,3,6,12的4个节点密钥。每个信息处理装置安全地保管这些节点密钥。
参考图2描述借助于涉及节点密钥发布处理的设置传输仅可由选择的信息处理装置获得的信息的方法。例如,假设一种配置。在该配置中,借助于广播发布或记录介质诸如存储该内容的DVD,以每个人都可获得的状态传播编码为加密内容的内容诸如特定音乐、图像数据,并且将用于解码加密内容的密钥(内容密钥Kc)仅提供给特定的用户,即,具有使用该内容的授权的用户或信息处理装置。
假设将分配给图2中所示的叶子14的信息处理装置排除为(取消)未授权的装置,并且其它信息处理装置是授权的信息处理装置。在该情况下,产生这样的密码文本,分配给叶子14的信息处理装置不能通过密码文本获得内容密钥Kc,但是其它信息处理装置可以通过其获得内容密钥Kc,并且通过网络或借助于存储该密码文本的记录介质发布该密码文本。
在该情况下,通过使用除了要取消的(排除的)信息处理装置拥有的节点密钥(在图2中以×标记)之外的节点密钥当中的由尽可能多的信息处理装置共同拥有的某些节点密钥,即位于树的上部的某些节点密钥,可以将该内容密钥译成密码以便传输。
在图2所示的例子中,使用节点2,6,15处的节点密钥将内容密钥Kc译成密码以便产生将要提供的一组密码文本。即,产生E(NK2,Kc)、E(NK6,Kc)、E(NK15,Kc)的密码文本,并且在通过网络发布或存储在记录介质内的同时提供它们。应当注意,E(A,B)的含义是以密钥A将数据B译成密码。另外,NKn表示图中示出的第n个节点密钥。因此,上面的公式表示包括以节点密钥NK2加密内容密钥Kc产生的加密数据E(NK2,Kc)、以节点密钥NK6加密内容密钥Kc产生的加密数据E(NK6,Kc)和以节点密钥NK15加密内容密钥Kc产生的加密数据E(NK15,Kc)的一组3个密码文本。
如果产生3个密码文本并且然后通过例如广播通信通道传输到所有信息处理装置,每个不将取消的信息处理装置(相应于图2中示出的叶子8-13和15的信息处理装置)可以使用其自己拥有的节点密钥解码任意密码文本以便获得内容密钥Kc。然而,相应于叶子14的取消的(排除的)信息处理装置不保持应用于3个密码文本的3个节点密钥NK2、NK6、NK15中的任意一个。因此,即使该信息处理装置接收了密码文本,该装置也不能执行密码文本解密处理,并且因此该装置不能获得内容密钥Kc。
在学术会议等中直到目前公开的广播加密方案当中有,例如,作为非专利文档1给出的方案。根据非专利文档1,上述广播加密方案命名为完全子树方案(CS方案)。
然而,如果使用这种树结构发布信息,存在一个问题,即,将要广播的消息的数目随着相应于叶子的信息处理装置(用户装置)的数目的增加而增加,并且密钥信息诸如将由各个信息处理装置(用户装置)安全存储的节点密钥也随之增加。
例如,在上述的CS方案中,假设系统的信息处理装置的总数设置为N,并且将要排除(取消)的接收器,即,不能接收将要广播的保密信息的接收器的数目设置为r,将要广播的消息(密码文本)数等于rlog(N/r),并且由每个接收器在安全存储器内保持的密钥数等于logN+1。注意,在本描述中,除非另外指定log的底数是2。
为了减小制造接收器的成本,问题是减少这些密钥的数目。作为密钥减少的建议,可以使用一些条约,诸如Nojima等人的“Improvingeffeciency of tree structure-based keymanagement scheme throughone-way function”(非专利文档2),和Ogata等人的“Efficient treestructure-based key management scheme using RSA cryptosystem”(非专利文档3)。
这些条约中提出的方案试图通过使用RSA密码系统将CS方案中每个接收器保持的密钥数减少到1。然而,有一个问题,即,使用RSA密码系统需要大的计算量,并且因此问题是要减少计算量。
如上所述,使用树结构的信息发布配置解决这样的问题,诸如由于增加数量的相应于叶子的信息处理装置(用户装置)而引起的增加数目的消息发布,以及增加的密钥信息数目,诸如在每个信息处理装置侧(用户装置)要安全存储的节点密钥,以及关于每个接收器的密钥计算所需的计算量的附加负载问题。例如,将由每个接收器存储的信息数量的增加和接收器所需的计算负载的增加伴随着安全存储器区域和用户装置的计算处理能力的另一个增加,其又导致用户装置的制造成本的增加。此外,还产生了由于增加的计算量引起的处理延迟问题。
Advances in Cryptography-Crypto 2001,LectureNotes in Computer Science 2139,Springer,2001,pp.41-62(D.Naorand J.Lotspiech,“evocation and Tracing Schemes for StatelessReceivers”)[非专利文档2]Transcations of Symposium on Cryptography andInformation Security 2004,pp.189-194[非专利文档3]Transcations of Symposium on Cryptographyand Information Security 2004,pp.195-199发明内容出于这种情况作出本发明,并且本发明的一个目的是提供一种信息处理方法、解密处理方法、信息处理装置和计算机程序,通过使用设置为单向树的Rabin树,通过增强并使应用了分层树结构的当前广播加密方案中已知的完全子树方案(CS方案)更有效,它们都以与使用RSA密码系统的现有方案相比压缩的所需计算量和减少的安全管理的数据量实现了有效的和安全的信息发布。
此外,具体地,在本发明中,将基于Rabin密码术的Rabin树应用于CS方案,从而将每个接收器安全保持的密钥数减少为1。每个接收器通过计算从1个密钥得出CS方案中所需的logN+1个密钥。另外,本发明提供了一种信息处理方法,解密处理方法、信息处理装置和计算机程序,通过采用Rabin密码术,如后面详细所述,在与采用RSA密码系统的由Nojima等人以及Ogata等人公开的方案相比时,它们都可以明显减少计算量。
本发明的第一个方面是一种用于产生分层树的信息处理方法,通过应用基于分层树配置的广播加密方案,所述分层树被应用于用于提供仅可由除了被排除的(取消的)装置之外的某些被选择的装置解密的密码文本的处理,该信息处理方法的特征在于具有产生单向树的单向树产生步骤,其中给各个节点设置节点相应值,设置所述节点相应值,从而可以通过应用基于被设置为相应于至少一个低级节点的节点相应值NVb和节点增加变量saltb的函数f计算相应于构成该分层树的每个节点的节点相应值NVa;
节点密钥计算步骤,通过应用使用相应于各个节点的节点相应值NV作为输入的函数Hc,计算相应于构成所述单向树的各个节点的节点密钥NK;和用于提供的信息确定步骤,选择计算包括在相应于接收器的节点到作为最高级节点的根的路径内的节点相应值所需的最小节点相应值和节点增加变量,作为将要提供给相应于所述单向树的终端节点的接收器的信息。
另外,在本发明的信息处理方法的实施例中,所述单向树产生步骤的特征在于产生具有这样设置的单向树,其中可以通过应用基于低级节点的节点相应值的Rabin密码术的加密处理(前向计算)计算高级节点的节点相应值,并且其中可以通过应用基于高级节点的节点相应值的Rabin密码术的解密处理(逆计算)计算低级节点的节点相应值。
另外,在本发明的信息处理方法的实施例中,该信息处理方法的特征在于还具有通过选择性地应用被设置为相应于所述分层树的各个节点的节点密钥执行加密处理而产生密码文本的密码文本产生步骤。
另外,在本发明的信息处理方法的实施例中,该单向树产生步骤的特征在于产生单向树,其中在具有带有N个终端节点的二进制树配置的分层树内,从所述二进制树中的高级节点以宽度优先的顺序被授予节点号l的各个节点l的节点相应值NVl(l=2,3,...,2N-1)满足下面表达式的关系[数学式19] 其中M是两个大素数的乘积,并且H是用于输出ZM的元素的映射函数。
另外,在本发明的信息处理方法的实施例中,该单向树产生步骤的特征在于通过在具有带有N个终端节点的二进制树配置的分层树内,使用作为节点终端数的叶子数N和模数M的大小|M|作为输入,执行步骤1确定两个大小为|M|/2的大素数,并且计算其乘积M;步骤2确定用于输出ZM的元素的映射函数H;步骤3随机选择作为所述二进制树的最高级节点的根节点的节点相应值NV1作为这样的值,从而NV1∈Z*M;步骤4在使用l作为计数器将l从2增1到2N-1的同时执行下面的处理a,ba寻找最小正整数saltl,从而在下面的表达式中tmpl是模M的二次剩余[数学式20] b寻找tmpl1/2mod M,并且确定4个结果中的任意一个作为节点l的节点相应值NVl;和步骤5输出2N-1个|M|-位的数(节点相应值)NVl,NV2,...,NV2N-1,和2N-2个数(节点增加变量)salt2,salt3,...,salt2N-1,并且将它们设置为所述二进制树的各个节点l(l=1到2N-1)的节点相应值和节点增加变量,来产生单向树。
另外,在本发明的信息处理方法的实施例中,节点密钥计算步骤的特征在于是通过应用使用相应于各个节点的节点相应值NV作为输入的函数Hc计算节点密钥NK的步骤,其中函数Hc是用于将节点相应值NV映射为相应于节点密钥的大小的位长度的数据的哈希函数。
另外,在本发明的信息处理方法的实施例中,单向树产生步骤的特征在于产生单向树,其中在具有带有N个终端节点的二进制树配置的分层树内,从所述二进制树中的高级节点以宽度优先的顺序被授予节点号l的各个节点l的节点相应值NVl(l=2,3,...,2N-1)满足下面表达式的关系 其中H是用于将任意大小的输入映射为所述两个大素数的乘积M的大小|M|的函数,并且Hsaltl(l)表示通过对l应用saltl次函数H获得的值。
另外,在本发明的信息处理方法的实施例中,单向树产生步骤的特征在于,通过在具有带有N个终端节点的二进制树配置的分层树内,使用作为节点终端数的叶子数N,模数M的大小|M|和具有|M|-位输出的映射函数H作为输入,执行步骤1确定两个大小为|M|/2的大素数,并且计算其乘积M;步骤2随机选择作为所述二进制树的最高级节点的根节点的节点相应值NV1作为这样的值,从而NV1∈Z*M;步骤3在使用l作为计数器将l从2增1到2N-1的同时执行下面的处理a,ba寻找最小正整数saltl,从而在下面的表达式中tmpl是模M的二次剩余[数学式22] b寻找tmpl1/2mod M,并且确定4个结果中的任意一个作为节点l的节点相应值NVl;和步骤4输出2N-1个|M|-位的数(节点相应值)NVl,NV2,...,NV2N-1,和2N-2个数(节点增加变量)salt2,salt3,...,salt2N-1,并且将它们设置为所述二进制树的各个节点l(l=1到2N-1)的节点相应值和节点增加变量,产生单向树。
另外,本发明的第二个方面是一种用于产生分层树的信息处理方法,使用基于分层树配置的广播加密方案,将该分层树应用于用于提供仅可由某些选择的装置解密的密码文本的处理,该信息处理方法的特征在于具有产生单向树的单向树产生步骤,其中给各个节点设置节点相应值,设置所述节点相应值,从而可以通过应用基于被设置为相应于至少一个低级节点的节点相应值NVb和节点增加变量saltb的函数f计算相应于构成该分层树的每个节点的节点相应值NVa;产生中间标签的中间标签产生步骤,所述中间标签是被设置为这样的值的中间标签(IL),通过计算处理可以从这些值计算出分别相应于基于应用了分层树的SD(子集差)方案而设置的子集的标签(LABEL)中的相应于某些选择的特定子集的标签的值;标签产生步骤,通过基于中间标签的计算处理产生相应于特定子集的标签,并且进一步通过基于产生的标签的计算产生不相应于特定子集的标签;和用于提供的标签确定步骤,确定提供给相应于所述分层树的终端节点的接收器的标签,并且选择不相应于所述特定子集的特定子集非相应标签,和节点相应值,作为计算包括在相应于接收器的节点到作为最高级节点的根的路径内的任意节点的节点相应值所需的最小中间标签和节点增加变量,作为提供给相应于所述单向树的终端节点的接收器的信息,并且其中所述单向树产生步骤产生单向树,其中在具有带有N个终端节点的二进制树配置的分层树内,从所述二进制树中的高级节点以宽度优先的顺序被授予节点号l的各个节点l的节点相应值NVl(l=2,3,...,2N-1)满足下面表达式的关系[数学式23] 其中H是用于将任意大小的输入映射为所述两个大素数的乘积M的大小|M|的函数,并且Hsaltl(l)表示对l应用saltl次函数H获得的值。
另外,在本发明的信息处理方法的实施例中,单向树产生步骤的特征在于通过在具有带有N个终端节点的二进制树配置的分层树内,使用作为节点终端数的叶子数N,模数M的大小|M|和具有|M|-位输出的映射函数H作为输入,执行步骤1确定两个大小为|M|/2的大素数,并且计算其乘积M;步骤2随机选择作为所述二进制树的最高级节点的根节点的节点相应值NV1作为这样的值,从而NV1∈Z*M;步骤3在使用l作为计数器将l从2增1到2N-1的同时执行下面的处理a,ba寻找最小正整数saltl,从而在下面的表达式中tmpl是模M的二次剩余[数学式24] b寻找tmpl1/2mod M,并且确定4个结果中的任意一个作为节点l的节点相应值NVl;和步骤4输出2N-1个|M|-位的数(节点相应值)NVl,NV2,...,NV2N-1,和2N-2个数(节点增加变量)salt2,salt3,...,salt2N-1,并且将它们设置为所述二进制树的各个节点l(l=1到2N-1)的节点相应值和节点增加变量,产生单向树。
另外,本发明的第三个方面是,一种解密处理方法,用于通过应用基于分层树配置的广播加密方案,执行对以分别相应于构成分层树的节点的节点密钥加密的密码文本解密的处理,该解密处理方法的特征在于具有密码文本选择步骤,从所述密码文本中选择应用了可基于由自身装置保持的节点相应值和节点增加变量salt产生的节点密钥的密码文本;基于由所述自身装置保持的节点相应值和节点增加变量salt计算应用于所述密码文本的节点密钥的节点密钥计算步骤;和解密步骤,基于计算出的节点密钥执行解密所述密码文本的处理。
另外,在本发明的解密处理方法的实施例中,密码文本选择步骤的特征在于是在以根作为编号为1的分层树最高级节点以宽度优先的顺序授予各个节点节点号的分层树中,寻找用于加密的节点密钥的节点号中的与包括在从接收器到根的路径内的节点的节点号符合的节点号的步骤。
另外,在本发明的解密处理方法的实施例中,所述节点密钥计算步骤的特征在于包括基于由自身装置保持的节点相应值和节点增加变量salt,通过应用下面的表达式,计算从所述二进制树中的高级节点以宽度优先的顺序被授予节点号l的各个节点l的节点相应值NVl(l=2,3,...,2N-1)当中的从自身节点到作为最高级节点的根的路径内的节点相应值的步骤[数学式25] 其中M是两个大素数的乘积,并且H是用于输出ZM的元素的映射函数。
另外,在本发明的解密处理方法的实施例中,节点密钥计算步骤的特征在于包括基于由自身装置保持的节点相应值或从自身节点到作为最高级节点的根的路径内的节点相应值,并且进一步基于下面的表达式进行计算的步骤NK=Hc(NV)其中NK是节点密钥;NV是节点相应值;并且Hc是映射函数。
另外,在本发明的解密处理方法的实施例中,节点密钥计算步骤的特征在于包括基于由所述自身装置保持的节点相应值和节点增加变量salt,通过应用下面的表达式,计算从所述二进制树中的高级节点以宽度优先的顺序被授予节点号l的各个节点l的节点相应值NVl(l=2,3,...,2N-1)当中的从自身节点到作为最高级节点的根的路径内的节点相应值的步骤 其中H是用于将任意大小的输入映射为所述两个大素数的乘积M的大小|M|的函数,并且并且Hsaltl(l)表示通过对l应用saltl次函数H获得的值。
另外,本发明的第四方面是一种解密处理方法,用于对以分别相应于基于作为基于分层树配置的广播加密方案的SD(子集差)方案而设置的子集的子集密钥加密的密码文本执行解密处理,该解密处理方法的特征在于具有密码文本选择步骤,从所述密码文本中选择通过应用可由基于自身装置保持的标签,或可以基于由自身装置保持的作为中间标签的节点相应值和节点增加变量salt计算出的标签的伪随机数产生处理得出的子集密钥产生的密码文本;标签计算步骤,如果不能由基于保持的标签的伪随机数产生处理得出将要应用于所述密码文本的子集密钥,通过基于节点相应值和节点增加变量salt执行计算处理,计算相应于特定子集的标签;由基于保持的标签或计算出的标签的伪随机数产生处理产生子集密钥的步骤;和通过应用产生的子集密钥对密码文本执行解密处理的解密步骤,并且其中所述标签计算步骤包括基于由自身装置保持的节点相应值和节点增加变量salt,通过应用下面的表达式,计算从所述二进制树中的高级节点以宽度优先的顺序被授予节点号l的各个节点l的节点相应值NVl(l=2,3,...,2N-1)当中的从自身节点到作为最高级节点的根的路径内的节点相应值[数学式27] 其中H是用于将任意大小的输入映射为所述两个大素数的乘积M的大小|M|的函数,并且并且Hsaltl(l)表示通过对l应用saltl次函数H获得的值。
另外,本发明的第五方面是一种用于产生分层树的信息处理装置,通过应用基于分层树配置的广播加密方案,将该分层树应用于用于提供仅可由除了被排除的(取消的)装置之外的某些被选择的装置解密的密码文本的处理,该信息处理装置的特征在于具有用于产生单向树的单向树产生装置,其中给各个节点设置节点相应值,设置所述节点相应值,从而可以通过应用基于设置为相应于至少一个低级节点的节点相应值NVb和节点增加变量saltb的函数f计算相应于构成该分层树的每个节点的节点相应值NVa;节点密钥计算装置,用于通过应用使用相应于各个节点的节点相应值NV作为输入的函数Hc,计算相应于构成所述单向树的各个节点的节点密钥NK;和用于提供的信息确定装置,用于选择计算包括在从相应于接收器的节点到作为最高级节点的根的路径内的节点相应值所需的最小节点相应值和节点增加变量,作为将要提供给相应于所述单向树的终端节点的接收器的信息。
另外,在本发明的信息处理装置的实施例中,单向树产生装置的特征在于被配置为产生具有这样设置的单向树,其中通过应用基于低级节点的节点相应值的Rabin密码术的加密处理(前向计算)可以计算高级节点的节点相应值,并且其中通过应用基于高级节点的节点相应值的Rabin密码术的解密处理(逆计算)可以计算低级节点的节点相应值。
另外,在本发明的信息处理装置的实施例中,信息处理装置的特征在于还具有密码文本产生装置,用于通过选择性地应用设置为相应于分层树的各个节点的节点密钥执行加密处理而产生密码文本。
另外,在本发明的信息处理装置的实施例中,单向树产生装置的特征在于被配置为产生单向树,其中在具有带有N个终端节点的二进制树配置的分层树内,从所述二进制树中的高级节点以宽度优先的顺序被授予节点号l的各个节点l的节点相应值NVl(l=2,3,...,2N-1)满足下面表达式的关系[数学式28] 其中M是两个大素数的乘积,并且H是用于输出ZM的元素的映射函数。
另外,在本发明的信息处理装置的实施例中,单向树产生装置的特征在于被配置为在具有带有N个终端节点的二进制树配置的分层树内,使用作为节点终端数的叶子数N和模数M的大小|M|作为输入,执行步骤1确定两个大小为|M|/2的大素数,并且计算其乘积M;步骤2确定用于输出ZM的元素的映射函数H;步骤3随机选择作为所述二进制树的最高级节点的根节点的节点相应值NV1作为这样的值,从而NV1∈Z*M;步骤4在使用l作为计数器将l从2增1到2N-1的同时执行下面的处理a,ba寻找最小正整数saltl,从而在下面的表达式中tmpl是模M的二次剩余[数学式29] b寻找tmpl1/2mod M,并且确定4个结果中的任意一个作为节点l的节点相应值NVl;和步骤5输出2N-1个|M|-位的数(节点相应值)NV1,NV2,...,NV2N-1,和2N-2个数(节点增加变量)salt2,salt3,...,salt2N-1,并且将它们设置为所述二进制树的各个节点l(l=1到2N-1)的节点相应值和节点增加变量,执行产生单向树的处理。
另外,在本发明的信息处理装置的实施例中,所述节点密钥计算装置的特征在于被配置为通过应用使用相应于各个节点的节点相应值NV作为输入的函数Hc计算节点密钥NK,其中函数Hc是用于将节点相应值NV映射为相应于节点密钥的大小的位长度的数据的哈希函数。
另外,在本发明的信息处理装置的实施例中,单向树产生装置的特征在于被配置为产生单向树,其中在具有带有N个终端节点的二进制树配置的分层树内,从所述二进制树中的高级节点以宽度优先的顺序被授予节点号l的各个节点l的节点相应值NVl(l=2,3,...,2N-1)满足下面表达式的关系[数学式30] 其中H是用于将任意大小的输入映射为所述两个大素数的乘积M的大小|M|的函数,并且Hsaltl(l)表示通过对l应用saltl次函数H获得的值。
另外,在本发明的信息处理装置的实施例中,单向树产生装置的特征在于被配置为在具有带有N个终端节点的二进制树配置的分层树内,使用作为节点终端数的叶子数N,模数M的大小|M|和具有|M|-位输出的映射函数H作为输入,执行步骤1确定两个大小为|M|/2的大素数,并且计算其乘积M;步骤2随机选择作为所述二进制树的最高级节点的根节点的节点相应值NV1作为这样的值,从而NV1∈Z*M;步骤3在使用l作为计数器将l从2增1到2N-1的同时执行下面的处理a,ba寻找最小正整数saltl,从而在下面的表达式中tmpl是模M的二次剩余[数学式31] b寻找tmpl1/2mod M,并且确定4个结果中的任意一个作为节点l的节点相应值NVl;和步骤4输出2N-1个|M|-位的数(节点相应值)NV1,NV2,...,NV2N-1,和2N-2个数(节点增加变量)salt2,salt3,...,salt2N-1,并且将它们设置为所述二进制树的各个节点l(l=1到2N-1)的节点相应值和节点增加变量,产生单向树。
另外,本发明的第六个方面是一种用于产生分层树的信息处理装置,使用基于分层树配置的广播加密方案,将该分层树应用于用于提供仅可由某些选择的装置解密的密码文本的处理,该信息处理装置的特征在于具有用于产生单向树的单向树产生装置,其中给各个节点设置节点相应值,设置所述节点相应值,从而可以通过应用基于被设置为相应于至少一个低级节点的节点相应值NVb和节点增加变量saltb的函数f计算相应于构成该分层树的每个节点的节点相应值NVa;用于产生中间标签的中间标签产生装置,所述中间标签是被设置为这样的值的中间标签(IL),通过计算处理可以从这些值计算出分别相应于基于应用了分层树的SD(子集差)方案而设置的子集的标签(LABEL)中的相应于某些选择的特定子集的标签的值;标签产生装置,用于通过基于中间标签的计算处理产生相应于特定子集的标签,并且进一步通过基于产生的标签的计算产生不相应于特定子集的标签;和用于提供的标签确定装置,用于确定提供给相应于所述分层树的终端节点的接收器的标签,并且选择不相应于所述特定子集的非相应特定子集标签,和节点相应值,作为计算包括在从相应于接收器的节点到作为最高级节点的根的路径内的任意节点的节点相应值所需的最小中间标签和节点增加变量,作为提供给相应于所述单向树的终端节点的接收器的信息,并且其中所述单向树产生装置被配置为产生单向树,其中在具有带有N个终端节点的二进制树配置的分层树内,从所述二进制树中的高级节点以宽度优先的顺序被授予节点号l的各个节点l的节点相应值NVl(l=2,3,...,2N-1)满足下面表达式的关系[数学式32] 其中H是用于将任意大小的输入映射为所述两个大素数的乘积M的大小|M|的函数,并且Hsaltl(l)表示通过对l应用saltl次函数H获得的值。
另外,在本发明的信息处理装置的实施例中,单向树产生装置的特征在于被配置为通过在具有带有N个终端节点的二进制树配置的分层树内,使用作为节点终端数的叶子数N,模数M的大小|M|和具有|M|-位输出的映射函数H作为输入,执行步骤1确定两个大小为|M|/2的大素数,并且计算其乘积M;步骤2随机选择作为所述二进制树的最高级节点的根节点的节点相应值NV1作为这样的值,从而NV1∈Z*M;步骤3在使用l作为计数器将l从2增1到2N-1的同时执行下面的处理a,ba寻找最小正整数saltl,从而在下面的表达式中tmpl是模M的二次剩余[数学式33] b寻找tmpl1/2mod M,并且确定4个结果中的任意一个作为节点l的节点相应值NVl;和步骤4输出2N-1个|M|-位的数(节点相应值)NV1,NV2,...,NV2N-1,和2N-2个数(节点增加变量)salt2,salt3,...,salt2N-1,
并且将它们设置为所述二进制树的各个节点l(l=1到2N-1)的节点相应值和节点增加变量,产生所述单向树。
另外,本发明的第七个方面是一种解密处理装置,用于通过应用基于分层树配置的广播加密方案,对以分别相应于构成分层树的节点的节点密钥加密的密码文本执行解密处理,该解密处理装置的特征在于具有密码文本选择装置,用于从所述密码文本中选择应用了可基于由自身装置保持的节点相应值和节点增加变量salt产生的节点密钥的密码文本;节点密钥计算装置,用于基于由所述自身装置保持的节点相应值和节点增加变量salt计算应用于所述密码文本的节点密钥;和解密装置,用于执行基于计算出的节点密钥对所述密码文本解密的处理。
另外,在本发明的解密处理装置的实施例中,密码文本选择装置的特征在于被配置为在以根作为编号为1的分层树最高级节点以宽度优先的顺序授予各个节点节点号的分层树中,寻找用于加密的节点密钥的节点号中的与包括在从接收器到根的路径内的节点的节点号符合的节点号。
另外,在本发明的解密处理装置的实施例中,节点密钥计算装置的特征在于被配置为执行处理,以便基于由自身装置保持的节点相应值和节点增加变量salt,通过应用下面的表达式,计算从所述二进制树中的高级节点以宽度优先的顺序被授予节点号l的各个节点l的节点相应值NVl(l=2,3,...,2N-1)当中的从自身节点到作为最高级节点的根的路径内的节点相应值[数学式34] 其中M是两个大素数的乘积,并且H是用于输出ZM的元素的映射函数。
另外,在本发明的解密处理装置的实施例中,节点密钥计算装置的特征在于被配置为执行处理,以便基于由自身装置保持的节点相应值,或从自身节点到作为最高级节点的根的路径内的节点相应值,并且进一步基于下面的表达式进行计算NK=Hc(NV)其中NK是节点密钥;NV是节点相应值;并且Hc是映射函数。
另外,在本发明的解密处理装置的实施例中,节点密钥计算装置的特征在于被配置为执行处理,以便基于由所述自身装置保持的节点相应值和节点增加变量salt,通过应用下面的表达式,计算从所述二进制树中的高级节点以宽度优先的顺序被授予节点号l的各个节点l的节点相应值NVl(l=2,3,...,2N-1)当中的从自身节点到作为最高级节点的根的路径内的节点相应值[数学式35] 其中H是用于将任意大小的输入映射为所述两个大素数的乘积M的大小|M|的函数,并且并且Hsaltl(l)表示通过对l应用saltl次函数H获得的值。
另外,本发明的第八个方面是一种解密处理装置,用于对以分别相应于基于作为基于分层树配置的广播加密方案的SD(子集差)方案而设置的子集的子集密钥加密的密码文本执行解密处理,该解密处理装置的特征在于具有密码文本选择装置,用于从所述密码文本中选择通过应用可由基于自身装置保持的标签,或可以基于自身装置保持的作为中间标签的节点相应值和节点增加变量salt计算出的标签的伪随机数产生处理得出的子集密钥产生的密码文本;标签计算装置,用于如果不能由基于所述保持的标签的伪随机数产生处理得出将要应用于所述密码文本的子集密钥,通过基于节点相应值和节点增加变量salt执行计算处理,计算相应于特定子集的标签;用于由基于保持的标签或计算出的标签的伪随机数产生处理产生子集密钥的装置;和解密装置,用于通过应用产生的子集密钥对密码文本执行解密处理,并且其中所述标签计算装置被配置为执行处理,以便基于由自身装置保持的节点相应值和节点增加变量salt,通过应用下面的表达式,计算从所述二进制树中的高级节点以宽度优先的顺序被授予节点号l的各个节点l的节点相应值NVl(l=2,3,...,2N-1)当中的从自身节点到作为最高级节点的根的路径内的节点相应值[数学式36] 其中H是用于将任意大小的输入映射为所述两个大素数的乘积M的大小|M|的函数,并且并且Hsaltl(l)表示通过对l应用saltl次函数H获得的值。
另外,本发明的第九个方面是一种用于产生分层树的计算机程序,通过应用基于分层树配置的广播加密方案,将该分层树应用于用于提供仅可由除了被排除的(取消的)装置之外的某些被选择的装置解密的密码文本的处理,该计算机程序的特征在于具有产生单向树的单向树产生步骤,其中给各个节点设置节点相应值,设置所述节点相应值,从而可以通过应用基于设置为相应于至少一个低级节点的节点相应值NVb和节点增加变量saltb的函数f,计算相应于构成该分层树的每个节点的节点相应值NVa;节点密钥计算步骤,通过应用使用相应于各个节点的节点相应值NV作为输入的函数Hc,计算相应于构成所述单向树的各个节点的节点密钥NK;和用于提供的信息确定步骤,选择计算包括在从相应于接收器的节点到作为最高级节点的根的路径内的节点相应值所需的最小节点相应值和节点增加变量,作为将要提供给相应于所述单向树的终端节点的接收器的信息。
另外,本发明的第十个方面是一种计算机程序,用于通过应用基于分层树配置的广播加密方案,对以分别相应于构成分层树的节点的节点密钥加密的密码文本执行解密处理,该计算机程序的特征在于具有密码文本选择步骤,从所述密码文本中选择应用了可基于由自身装置保持的节点相应值和节点增加变量salt产生的节点密钥的密码文本;节点密钥计算步骤,基于由自身装置保持的节点相应值和节点增加变量salt,计算应用于所述密码文本的节点密钥;和解密步骤,基于计算出的节点密钥对密码文本执行解密处理。
应当注意,本发明的计算机程序是可以用存储介质、通信介质,例如,诸如CD或FD、MO的存储介质,或诸如网络的通信介质,以计算机可读的形式提供给,例如,可以执行各种程序代码的计算机系统的计算机程序。通过以计算机可读的形式提供这种程序,在该计算机系统上实现根据该程序的处理。
从基于本发明后面描述的实施例和附图的更详细的描述中,可以明了本发明的其它目的、特征和优点。注意,本描述中使用的系统的含义是多个装置的逻辑组配置,并且不限于将具有其自己的配置的各个装置分组到同一个外壳内的情况。
根据本发明的实施例的配置,在应用了作为广播加密方案的一个实施例的分层树结构的信息发布配置中,其被配置为产生作为单向树的Rabin树,其中将节点相应值设置为相应于构成分层树的各个节点,进行设置从而通过应用基于设置为相应于至少一个低级节点的节点相应值NVb和节点增加值saltb的函数f,可以计算节点相应值NVa,并且从而可以通过使用相应于各个节点的节点相应值NV作为输入,并且通过应用函数Hc计算出相应于各个节点的节点密钥。作为本配置的结果,不同于每个接收器需要安全保持logN+1个节点密钥的传统的CS方案,在应用了本发明的配置中,可以减少每个接收器必须保持的密钥数。此外,不必安全保持节点增加值salt,并且每个节点增加值salt可以平均具有2位的小的大小,从而减小了接收器需要安全存储的信息量。另外,当与类似于本发明,将接收器安全保持的密钥数减少到1的使用RSA密码系统的方案相比,在本发明的方案中,其被配置从而幂剩余操作-它是作为接收器所需的计算量的沉重负载-仅涉及一个平方,大约是使用RSA密码系统的方案中的计算量的1/17,并且因此是一个极小的值。以这种方式,通过应用本发明的配置,可以减少接收器需要安全存储的信息量,并且另外可以减少接收器的节点密钥计算所需的计算量,从而实现了有效的密码文本发布、解密处理配置。
另外,根据本发明的实施例的配置,使用了Rabin树配置例子2,其中修改了节点增加变量设置,从而可以减少接收器的节点密钥计算所需的计算量,以便实现有效的处理。


图1是示出了二进制树分层树结构的视图;图2是示出了一种方法的视图,通过该方法在二进制树分层树结构中传输仅可由所选择的信息处理装置获得的信息;图3是示出了其中每个节点二分叉的应用了完全子树(CS)方案的分层树结构的视图;图4是示出了在完全子树(CS)方案中由分配给叶子的接收器拥有的节点密钥的视图;图5是示出了用于在CS方案中有选择地将保密信息仅提供给未取消的接收器的视图;图6是示出了树结构中不同子树之间的对应关系的视图;图7是示出了通过使用RSA密码系统中的前向置换和逆置换定义的树结构的视图;图8是示出了用于产生作为本发明应用的单向树的Rabin树的处理,和用于计算节点相应值、节点增加变量的过程的流程图;图9是示出了作为本发明应用的单向树的Rabin树的树结构的视图;
图10是示出了在应用了Rabin树的CS方案中授予接收器的数据的视图;图11是示出了用于设置处理的流程的图;图12是示出了用于信息发布处理的过程的流程图;图13是示出了在应用了Rabin树的CS方案中授予接收器的数据的视图;图14是示出了接收器中的密码文本解密处理的过程的流程图;图15是示出了用于在CS方案中执行节点密钥确定处理、密码文本产生处理的信息处理装置的配置的视图;图16是示出了在CS方案中作为执行密码文本解密处理的接收器的信息处理装置的功能配置的视图;图17是示出了在应用Rabin树配置例子2的情况下,Rabin树产生处理和节点相应值、节点增加变量计算过程的流程图;图18是示出了在应用Rabin树配置例子2的CS方案中授予接收器的数据的视图;图19是示出了在应用Rabin树配置例子2的情况下的节点密钥计算技术的图;图20是示出了接收器中的密码文本解密处理的过程的流程图;图21是示出了子集差(SD)方案中的子集定义的视图;图22是示出了子集差(SD)方案中的标签设置和配置的视图;图23是示出了子集差(SD)方案中的子集设置的视图;图24是示出了在SD方案中接收器总数被设置为N=16的情况下由每个接收器保持的标签的视图;图25是示出了在SD方案中由每个接收器保持的标签的细节的视图;图26是示出了在SD方案中由每个接收器保持的标签的细节的视图;图27是示出了在SD方案中特定接收器u4所属子集的细节的视图;
图28是示出了节点具有双亲-孩子关系的第一特定子集SSp(y),s(y)的配置例子的视图;图29是示出了相应于特定子集的标签和通过参考图8示出的算法计算出的作为2N-1个中间标签使用的值NV1,NV2,...,NV2N-1之间的对应关系的视图;图30是示出了用于确定提供给接收器的标签的处理的视图;图31是示出了用于设置处理的流程的图;图32是示出了用于在接收器总数被设置为N=16的分层树配置中取消接收器u5,u11,u12的子集的视图;图33是示出了用于示出信息发布处理的过程的流程的视图;图34是示出了子集密钥推导处理的特定例子的视图;图35是示出了用于示出通过由接收器执行的子集密钥获取、密码文本解密处理,进行密码文本接收的过程的视图;图36是示出了在应用Rabin树的SD方案中用于接收器中的子集密钥推导处理的详细过程的流程图;图37是示出了在SD方案中用于执行标签确定处理、密码文本产生处理的信息处理装置的配置的视图;图38是示出了在SD方案中作为用于执行密码文本解密处理的接收器的信息处理装置的功能配置的视图;图39是示出了作为该信息处理装置的硬件配置例子的方框图的视图;图40是示出了在应用Rabin树配置例子2的情况下,用于确定提供给接收器的标签的处理的视图;图41是示出了基本LSD方案的视图;图42是示出了在基本LSD方案中由每个接收器保持的标签数的视图;图43是示出了用于减少使用Rabin树的基本LSD方案中的标签数的配置的视图。
具体实施例方式
下面将参考附图描述一种信息处理方法、解密处理方法、信息处理装置和计算机程序的细节。
应当注意,根据下面条目给出描述。
1完整子树(CS)方案的概述2应用Rabin树配置例子1的CS方案配置3密码文本发布、解码处理,其中将Rabin树配置例子1应用于CS方案4对应用Rabin树配置例子1的CS方案中的密码文本发布配置中的计算量减少的讨论5应用Rabin树配置例子2的CS方案配置6密码文本发布、解码处理,其中应用了Rabin树配置例子27Rabin树配置例子2的应用效果8子集差(SD)方案概述9用于减少SD方案中的标签数的配置10用于减少使用Rabin树配置例子1的SD方案中的标签数的配置11密码文本发布、解码处理,其中将Rabin树配置例子1应用于SD方案12根据使用Rabin树配置例子2的SD方案的密码文本发布、解码处理13Rabin树配置例子2的应用效果14基本分层子集差(基本LSD)方案概述15用于减少使用Rabin树的基本LSD方案中的标签数的配置16一般分层子集差(一般LSD)方案概述17用于减少使用Rabin树的一般LSD方案中的标签数的配置18对应用Rabin树的SD方案中的密码文本发布配置中的计算量减少的讨论[1.完整子树(CS)方案概述]
首先,概述完整子树(CS)方案,完整子树(CS)方案作为一种应用了现有的分层树结构的广播加密方案为人所知。
应当注意,在下面的描述中为了易于描述,假设被设置为相应于分层树结构的叶子的信息处理装置(接收器)的总数N等于2到2的n次幂。另外,在下面的整个描述中,在所有场合log函数的底数都是2。注意,分配给分层树结构的叶子的装置可以包括各种信息处理装置,诸如,例如,PC、便携终端,只要它们能够执行下面描述的保密信息解密处理即可。这些装置在此处被一般地描述为接收器。另外,本发明中的密码文本提供处理被解释为不仅包括通过通信网络借助于通信发布密码文本的处理,而且包括用于提供存储在记录介质中的密码文本的处理。
(1.1)完整子树(CS)方案概述参考图3等,对完整子树(CS)方案进行概述。
在上述的非专利文档1[Advances in Cryptography-Crypto 2001,Lecture Notes in Computer Science 2139,Springer,2001,pp.41-46(D.Naor,M.Naor and J.Lotspiech,“Revocation and TracingScheme for Stateless Receivers”)]中描述的完整子树(CS)方案内,如图3所示,每个节点二分叉的二进制树被用作分层树结构。图3示出了接收器数为N=16的例子。将这些接收器分别分配给该二进制树的叶子(图3中的U1-U16)。此外,该树的任意一个节点被用于表示“由分配给以该节点为根的子树的叶子的接收器组成的集合”。图3中的节点I201表示由接收器U5和U6组成的集合。
为图3所示的二进制树的每个组成节点定义一个密钥(节点密钥)。每个接收器被授予分配给从分配有该接收器的叶子到该树的根(顶点)的路径中的节点的节点密钥,并且接收器将这些节点密钥保持在安全存储器内。由被称为“信任中心(TC)”的可靠的管理中心执行树的定义、节点密钥的定义、接收器的分配和节点密钥的发布等。
如图4所示,将16个接收器U1-U16分配给一个分层树,并且有31个节点1-31。将分配给节点1、2、4、9、19的节点密钥授予接收器U4。即,如果接收器的总数是N,每个接收器保持logN+1个节点密钥。
参考图5,描述使用这种设置如何将保密信息(例如,用于解密加密内容的内容密钥)传递给未取消的接收器。此处假设管理中心(TC)是保密信息的发送方。现在假设接收器U2、U11、U12是被取消的接收器。即,通过将U2、U11、U12作为未授权设备排除在外,只有除了这些接收器之外的接收器能够安全地接收信息,即,执行基于密码文本广播的解密。
当传输保密信息时,管理中心(TC)产生并广播一组密码文本,而不使用分别分配给从分配有取消的接收器U2、U11、U12的叶子到树的根的路径中的节点的节点密钥作为加密密钥。
分别分配给从分配有取消的接收器U2、U11、U12的叶子或节点到树的根的路径中的节点的节点密钥是由这些取消的接收器拥有的密钥,并且因此,如果使用这些密钥,则取消的设备可以获得该保密信息。因此,发送方不使用这些密钥产生并广播一组密码文本。
当从树中排除了从分配有取消的接收器U2、U11、U12的叶子到树的根的路径中的节点以及这些路径时,剩下了一个或多个子树,它们是例如以节点5为根的子树和以节点12为根的子树。
保密信息的发送方传输一组密码文本,其中使用分配给最接近这些子树的根的节点(即,在图5所示的例子中为节点5、7、9、12、16)的节点密钥对该保密信息加密。例如,假设传输的保密信息是将用于对加密内容解密的内容密钥Kc,并且分配给节点5、7、9、12、16的节点密钥是NK5、NK7、NK9、NK12、NK16。保密信息的发送方产生一组密码文本E(NK5,Kc)、E(NK7,Kc)、E(NK9,Kc)、E(NK12,Kc)、E(NK16,Kc),并且通过网络发布产生的密码文本组,或提供存储该密码文本组的记录介质。注意,E(A,B)的含义是以密钥A对数据B加密。
上述密码文本组仅对于取消的接收器U2、U11、U12是不可解密的,但是可被其它接收器解密。通过产生并传输这种密码文本组,可以实现保密信息的有效和安全的传输。
每个接收器通过对其可以解密的传输的密码文本中的一个密码文本(即,使用相应于从分配有该接收器的叶子到根的路径中的节点的节点密钥加密的一个密码文本)解密获得该保密信息。在上面的例子中,保持有节点9的节点密钥,接收器U4可以对使用该密钥加密的密码文本E(NK9,Kc)解密。以这种方式,密码文本组中必须总有一个未取消的接收器可以解密的密码文本。
(1.2)CS方案中的密钥数的减少观察上述的CS方案,可以理解下面的内容。即,在CS方案中,以某个节点为根的子树的叶子总是以该节点的祖先为根的子树的叶子。
例如,如图6所示,作为以节点j232为根的子树p235的叶子的U5、U6也是以节点j232的祖先,例如,节点I为根的子树A230的叶子。
因此,保持某个节点的节点密钥的接收器也保持其祖先节点的节点密钥。例如,如图6所示,当节点i231是节点j232的祖先时,具有节点j232的节点密钥的接收器(U5、U6)总是保保持节点i231的节点密钥。然而,相反的情况不一定为真。
根据这种性质,如果为树的各个节点设置节点密钥,从而可以通过计算从其中得出作为其祖先的节点的节点密钥,与具有多个独立的节点密钥相比,可以减少密钥数,即,接收器的存储容量。
然而,所需要的是,高级节点的节点密钥不能得出其后代节点的节点密钥。其原因如下。例如,在图6中,当节点i231是节点j232的祖先时,具有节点j232的节点密钥的接收器(U5、U6)总是保持有节点i231的节点密钥,但是具有节点i231的节点密钥的接收器(U1-U8)不必具有节点j232的节点密钥。在图6的配置中,仅有接收器U1-U8中的接收器U5、U6被允许具有节点j232的节点密钥,并且其它接收器U1-U4、U7、U8是不允许具有节点j232的节点密钥的节点。并且这些后面的接收器不应被允许从节点i231的节点密钥得出节点j232的节点密钥。
为了实现这种方案,在本发明中,配置了一种树结构,其中使用一种函数,即,单向函数y=F(x),设置其各个节点的节点密钥,从而可以从x容易地计算出y,但是相反的计算是困难的。
(1.3)使用RSA密码系统的密钥数的减少将描述一种由Nojima等人和Ogata等人在上述非专利文档2“Transactions of Symposium on Cryptography and InformationSecurity 2004,pp.189-194”和非专利文档3“Transactions ofSymposium on Cryptography and Information Security 2004,pp.195-199”中提出的使用RSA密码系统的方案。在该方案中,如图7所示,使用了前向置换(f)和逆置换(f-1)。假设RSA密码系统中的模数是M,加密指数是e,并且解密指数是d,如果已知模数M和加密指数是e,可以执行前向置换(f),然而,如果不知道解密指数是d,则执行逆置换(f-1)是困难的。
在例如A.J.Menzes,P.C.van Oorschot和S.AVanstone,“Handbook of Applied Cryptography,”CRC Press,1996中介绍了RSA密码系统的细节。
在使用RSA密码系统的方案中,仅有管理中心秘密地保持解密指数d,将模数M和加密指数e公布给接收器。管理中心确定一个秘密值K∈Z*M并且将该值设置为根的密钥NK1。即,NK1=K应当注意,K∈Z*M的含义是K是组Z*M的元素(即,组ZM={0,1,...M-1}中具有逆元素的元素构成的组)。
根据下面的表达式,可以从其双亲节点的密钥计算除了根之外的任意节点l的密钥。
其中 按照以下表达式表示i的最大整数et seq.,以及其节点号l 其中表示异或操作。
在上述表达式中,H是用于将任意大小的输入映射为ZM的元素的公开函数。
以这种方式,仅有知道解密指数d的管理中心可以从双亲节点的密钥获得孩子节点的密钥。在另一方面,知道孩子节点的密钥NK1的接收器可以使用模数M,加密指数e和公开函数H,根据下面的表达式得出双亲节点的密钥(节点密钥)。
[数学式40] [2.应用Rabin树配置例子1的CS方案的配置](2.1)用于配置Rabin树的示例方法在本发明中,使用设置为单向树的Rabin树。注意,“Rabin树”不是通用术语,而是用于解释本发明的术语。在给具有N个叶子的完全二进制树编号之后,从而根为1,并且以宽度优先的顺序从左到更高级节点,后续节点为2,3,...,2N-1,根据下面的过程配置Rabin树。
类似于RSA密码系统,由管理中心确定并发布两个大素数的积M。管理中心确定一个秘密值Y∈Z*M并且将该值设置为相应于根(节点1)的值NV1。注意,Y∈Z*M意味着Y是组Z*M的元素。
使用节点号l和相应于其双亲节点的节点相应值,获得相应于除了根之外的任意节点l(l=2,3,...,2N-1)的值NV1。
首先,以下面的表达式定义tmpl。
寻找这样一个最小的正整数salt1,由上式定义的值tmpl是模M的二次剩余,其中M是上述的两个大素数的积M。值salt1是设置为相应于节点l的节点增加变量。
应当注意,在上式中,l‖salt1表示l与salt1相关联,并且H是用于将任意大小的输入映射为由上述两个大素数的积M确定的组ZM内的公开函数。这种函数的例子包括作为压缩函数的SHA-1,其产生关于任意长度的输入的160位输出。即,使用SHA-1,|M|-位值可被用作H(l‖salt1),其中通过将|M|-160个零位增加到将l‖salt1输入到SHA-1而获得的输出,获得该|M|-位值。注意,SHA-1是例如A.J.Menzes,P.C.van Oorschot和S.A Vanstone,“Handbook ofApplied Cryptography,”CRC Press,1996中介绍的压缩函数。
此处,某个数K是模M的二次剩余的含义是存在一个数a,从而a2≡K(mod M)成立,并且这表达为K∈QRM如果M的素数因子p,q已知,可以从数K是否满足下面两个表达式判断数K是否满足K∈QRM。
(ap)=a(p-1)/2≡1modp]]>和
(aq)=a(q-1)/2≡1modq]]>应当注意,在上式中,(a/p)是勒让德符号。
即,如果并且只有在满足上式时,K满足K∈QRM。
另外,知道M的素数因子p,q的人也可以找到数a,从而a2≡K(mod M)例如,在Tatsuaki Okamoto和Hirosuke Yamamoto的“ModernCryptography”的114页(由Sangyo Tosho出版)公开了其方法。
当K∈QRM时,存在4个数a,从而a2≡K(mod M)相反,当K∈QRM时,寻找一个数a,从而a2≡K(mod M)对于不知道M的素数因子p,q的人是困难的。已经证明这实际上等同于因数分解M。
以上述方法,当已找到最小正整数从而tmpl∈QRM时计算tmpl1/2mod M并且将作为其结果的4个数中的任意一个设置为相应于节点l的值,即,节点l的节点相应值NV1。
以这种方法,从根的值NV1确定其孩子节点2,3的节点相应值NV2,NV3,并且通过重复该处理直到NV2N-1,确定所有节点的值(节点相应值)。
因此确定的节点l的节点相应值NVl(l=2,3,...2N-1)满足下面表达式的关系。

(Eq.1)即,从某个节点的节点相应值NVl和节点增加变量saltl容易找到其双亲节点的节点相应值。
这是因为函数H和模数M是公开的。
下面示出用于配置作为具有N个叶子的二进制树的Rabin树的示例算法。该算法的输入是[输入]构成该二进制树的叶子数N,和模数M的大小|M|并且该算法的输出是[输出]M,用于输出ZM的元素的映射函数H,2N-1个|M|-位的数(节点相应值)NV1,NV2,...,NV2N-1,和2N-2个数(节点增加变量)salt2,salt3,...,salt2N-1。
用于基于上述[输入]获得上述[输出]的算法如下。
1确定两个大素数,每个具有大小|M|/2,并且计算它们的积M。
2确定用于将任意大小的输入映射为ZM的元素的函数H。
3随机选择值NVl∈Z*M作为根节点的节点相应值。
4在使用l作为计数器将l从2增1直到2N-1的同时,执行下面的处理a,b。
a寻找最小正整数saltl,从而下式是模M的二次剩余。
(Eq.2)b寻找tmpl1/2mod M,并且确定其4个结果中的任意一个作为节点l的节点相应值NVl。
5输出M,H,2N-1个|M|-位的数(节点相应值)NVl,NV2,...,NV2N-1,以及2N-2个数(节点增加变量)salt2,salt3,...,salt2N-1并且结束。
输出值NVl是Rabin树中任意节点l的节点相应值。注意,上述输出覆盖所有节点的节点相应值,这是因为在具有N个叶子的完全二进制树中的节点总数是2N-1。
图8示出了用于上述算法的流程。将描述该流程中的每个步骤。在步骤S101,输入相应于构成二进制树的叶子的数目N以及模数M的大小|M|。
在步骤S102,确定模数M和映射函数H,之后随机选择作为根节点的节点相应值NVl∈Z*M。在步骤S103,将l=2设置为值l的初值。
在步骤S104,寻找最小正整数saltl,从而上面Eq.2定义的tmp1是模M的二次剩余。并且将其设置为节点增加变量。
在步骤S105,寻找tmpl1/2mod M,并且确定其4个结果中的任意一个作为节点l的节点相应值NVl。
在步骤S106,确定l是否等于2N-1。如果l≠2N-1,处理进入步骤S107,其中将l增1,之后执行步骤S104、S105。重复执行步骤S104、S105,直到在步骤S107确定l=2N-1为止。当在步骤S107确定l=2N-1,在步骤S108,输出模数M,映射函数H,2N-1个|M|-位的数(节点相应值)NVl,NV2,...,NV2N-1,以及2N-2个数(节点增加变量)salt2,salt3,...,salt2N-1并且然后处理结束。
图9中示出了Rabin树的配置,其中以上述处理确定其节点的节点相应值NVl。在以上述处理确定的节点相应值NVl构成的树中,从某个节点的节点相应值NVl和节点增加变量saltl容易找到其双亲节点的节点相应值。

但是逆操作是困难的。
在图9中,每个沿着函数f示出的带有箭头的直线表示以低级节点的节点相应值NVl作为输入,通过应用函数f可以获得高级节点的节点相应值。函数f是使用前向计算(平方模M)F的计算。可以根据上述Eq.1,通过应用其公开函数H和模数M,从节点相应值NVl和saltl计算一个节点(孩子节点)的双亲节点的节点相应值。
在图9中,每个沿着函数f-1示出的带有箭头的直线表示以高级节点的节点相应值NVl作为输入,通过应用函数f-1可以获得低级节点的节点相应值。函数f-1是使用逆计算(寻找平方根模M)F-1的计算。为了从高级节点的节点相应值获得其低级节点的节点相应值,应当知道保密信息p,q(M的素数),并且只有管理中心可以执行该计算。
以这种方式,产生单向树,其中作为从低级到高级的单个方向,通过应用公开函数H和模数M,根据上述Eq.1可以计算节点相应值NV,但是其中关于其相反方向,计算是困难的。由具有这种设置的节点相应值NVl构成的单向树被称为“Rabin树”。这是因为Rabin密码术对于加密使用平方模M的操作,并且对于解密使用寻找平方根模M的操作(逆计算)。
即,作为单向树的Rabin树内的节点的节点相应值具有如下设置。即,其配置是这样的,从而通过应用基于低级节点的节点相应值的Rabin密码术的加密处理(前向计算)计算高级节点的节点相应值,并且从而通过应用基于高级节点的节点相应值的Rabin密码术的解密处理(逆计算)计算低级节点的节点相应值。在这种配置下,通过应用公开函数H和模数M,根据上述Eq.1可以执行从低级到高级节点的节点相应值计算,而通过仅使用公开函数H和模数M,从高级到低级节点的节点相应值计算是困难的,并且仅可以由知道保密信息p,q(M的素数)的管理中心执行。注意,在例如上述的文献A.J.Menzes,P.C.van Oorschot和S.A Vanstone,“Handbook of AppliedCryptography,”CRC Press,1996中的pp.292-294详细描述了Rabin密码术。顺便说明,(Eq.1)中的加“+”和(Eq.2)中的减“-”可由异或“XOR”替代。
(2.2)用于使用Rabin树减少密钥数的配置在上述配置的Rabin树中,类似于CS方案,为树中的各个节点确定节点密钥NKl。其被这样配置从而可以使用上面确定的节点相应值NVl计算这些节点密钥。即,任意节点l的节点密钥被设置为NKl=Hc(NVl)应当注意,函数Hc是用于将大小为|M|的值映射为大小为C的随机值的哈希函数。例如,在C是160位的情况下,可使用上述的函数SHA-1作为对于任意大小的输入输出160位的值的函数。此外,在C是128位的情况下,MD5等是已知的对于任意大小的输入输出128位的值的函数。因此,这些函数是适用的。注意,在上述文献A.J.Menzes,P.C.van Oorschot和S.A Vanstone,“Handbook ofApplied Cryptography,”CRC Press,1996中也详细描述了MD5。
因为节点密钥用于对将要传输到接收器的信息诸如会话密钥加密,其大小C可被确定为等于所使用的加密算法的密钥的大小。例如,如果将具有128位密钥的AES(高级加密标准FIPS197)用作加密算法,C可以设置为128位。此外,如果用于加密函数的密钥的大小是|M|,则可替换地可以使用NKl=NVl。即,可将非变换函数用作Hc。
另外,Rabin树的N个叶子被编号为leaf1、leaf2、...leafN(即,最左边的leafl的号码为N,leafi的节点号是N-1+i),并且接收器Ui被分配给leafi。将相应于叶子(节点)leafi的值NVN-1+l以及相应于从leafi到根的路径中的节点的logN个节点增加变量saltl授予接收器Ui。当如图10所示分配接收器时,将节点相应值NV19和从节点19到根的路径内的节点的节点增加变量salt19、salt9、salt4、salt2授予分配给叶子节点19的接收器U4。
以这种设置,使用授予的节点相应值NV19和从节点19到根的路径内的节点的节点增加变量salt19、salt9、salt4、salt2,接收器U4可以获得从节点19到根的路径内的所有节点的值,即它们的节点相应值。此外,如上所述,可以从节点相应值NVl,即,从NKl=Hc(NVl)计算各个节点的节点密钥NKl。
在图10所示的接收器分配配置中,将节点相应值NV19和从节点19到根的路径内的节点的节点增加变量salt19、salt9、salt4、salt2授予分配给叶子节点19的接收器U4。根据下面的过程在接收器U4中执行高级节点(节点号=1、2、4、9)的节点相应值NV的计算和节点密钥的计算。
(a1)从节点19的节点相应值NV19计算高级节点9的节点相应值NV9NV9=((NV19)2+H(19‖salt19))mod M(a2)从节点9的节点相应值NV9计算高级节点4的节点相应值NV4NV4=((NV9)2+H(9‖salt9))mod M(a3)从节点4的节点相应值NV4计算高级节点2的节点相应值NV2NV2=((NV4)2+H(4‖salt4))mod M(a4)从节点2的节点相应值NV2计算高级节点1的节点相应值NV1NV1=((NV2)2+H(2‖salt2))mod M在基于上述表达式的计算中,从低级节点的节点相应值计算高级节点的节点相应值。
另外,通过下面的表达式,可以从这些节点的节点相应值分别计算节点密钥。
(b1)从节点19的节点相应值NV19计算节点19的节点密钥NK19NK19=Hc(NV19)(b2)从节点9的节点相应值NV9计算节点9的节点密钥NK9NK9=Hc(NV9)(b3)从节点4的节点相应值NV4计算节点4的节点密钥NK4NK4=Hc(NV4)
(b4)从节点2的节点相应值NV2计算节点2的节点密钥NK2NK2=Hc(NV2)(b5)从节点1的节点相应值NV1计算节点1的节点密钥NK1NK1=Hc(NV1)顺便说明,接收器U4必须秘密地保管节点相应值NV19,但是不必秘密保持节点增加变量salt。因此,其可被可替换地配置为所有接收器保持所有的saltl。
此处,考虑每个节点增加变量salt的大小。某个数是模M的二次剩余的概率大约为1/4。因此,当将4个值作为salt测试时,可以期望平均至少一个存在saltl从而tmpl是二次剩余,据此还可以期望用于表示节点增加变量saltl的所需大小是2位。
在另一方面,可能存在4个数中没有一个数使得tmpl是二次剩余的情况。例如,当将L个值作为节点增加变量saltl测试时,没有一个tmpl是二次剩余的概率是3L/4L。因此,如果L=4,没有一个tmpl是二次剩余的概率是34/44≈42.2%。然而,假设考虑以8位的值作为节点增加变量saltl,并且测试256个数,没有一个tmpl是二次剩余的概率为3256/4256≈1.0×10-32%,这是一个极小的数。因此,即使考虑以一个大数诸如230≈109或240≈1012作为叶子数N,在任意节点处发现不了节点增加变量saltl从而tmpl是二次剩余的概率如此之小,以致于可以忽略。
下面,将描述密码文本发布处理和密码文本解密处理,其中使用了作为树结构的Rabin树,在该Rabin树中,以上述处理设置相应于二进制树的任意节点l的节点相应值NV1。注意,针对下面的每个处理给出描述。
(3-1)设置处理(3-2)信息发布处理(3-3)信息接收和解密处理
(3-1)设置处理设置处理仅在启动系统时执行一次。在每次发生传输信息时都执行接收和解密处理。例如每次递交其中存储有新内容的信息记录介质诸如DVD时,或每次通过网络发放新信息时执行后面的处理。注意,设置处理可由管理中心(TC)独立于实际执行密码文本发布的实体执行,或可以由实际执行密码文本发布的实体执行。此处,将描述一个例子,其中管理中心(TC)执行设置处理。
a.步骤1管理中心(TC)定义是具有N个叶子的二进制树的树。对于树中的每个节点,其相应的号码被设置为k(k=1,2,...2N-1)。然而,作为最高级节点的根被设置为1,并且以宽度优先的顺序顺序地给后续节点编号。即,设置诸如图10中所示的节点相应号1-31。作为该处理的结果,节点号1到2N-1被设置到二进制树中的各个节点。另外,分别将接收器um(m=1,2,...,N)分配给该树的叶子。
b.步骤2首先,管理中心(TC)确定模数M的大小|M|。
接着,通过使用树结构的叶子数N,模数M的大小|M|作为输入,管理中心(TC)根据参考图8所述的算法产生Rabin树,它是一个具有N个叶子的二进制树。首先管理中心确定模数M,以及将任意大小的值映射为ZM的随机元素的映射函数H。然后,它随机选择值NV1∈Z*M作为根的节点相应值,之后确定2N-1个|M|-位的数(节点相应值)NVl,NV2,...,NV2N-1,以及2N-2个数(节点增加变量)salt2,salt3,...,salt2N-1。因为salt不是保密的,管理中心(TC)可以公布这些值。另外,管理中心(TC)公布模数M和映射函数H。另外,它确定并公布用于将大小为|M|的值映射为大小为C的随机数的函数Hc。
将Rabin树的配置,其中以上述处理定义节点的节点相应值NVl,设置为前面所述的图9的配置。在由上述处理定义的节点相应值NVl构成的树中,容易从某个节点的NVl和saltl获得其双亲节点的节点相应值,但是逆操作是困难的。
另外,管理中心(TC)根据NK1=Hc(NV1)从节点相应值NVl计算树的节点l的节点密钥NKl。
C.步骤3管理中心(TC)基于下面的规则,将节点密钥授予设置为相应于作为树中的终端节点的叶子的接收器um(m=1,2,...,N)。如图10所示,将接收器分配给树的叶子,即,节点16-31。在图10所示的例子中,有16个接收器分配到节点号16-31。
应当注意,以路径m[路径-m]表示从分配有um的叶子到根的路径。另外,以路径节点m[路径节点-m]表示路径m[路径-m]上的一组节点。
在图10的例子中,路径节点-1={1,2,4,8,16}路径节点-4={1,2,9,19}路径节点-11={1,3,6,13,26}图10中示出的连接节点1,2,4,8,16的线是接收器u1的路径1[路径-1],并且由路径节点-1={1,2,4,8,16}构成。接收器u4的路径4[路径-4]是图10中示出的连接节点1,2,4,9,19的线,并且由路径节点-4={1,2,9,19}构成。
管理中心(TC)授予每个接收器um(a)分配有接收器um的叶子节点(叶子)的节点相应值NVl,和(b)相应于接收器um的路径中的除了根之外的路径节点的salt值在图10所示的配置中,将节点19的NV19和从节点19到根的路径内的节点的节点增加变量salt19、salt9、salt4、salt2授予分配有接收器u4的叶子节点19。
即,将相应于叶子(节点)leafi的节点相应值NVN-1+I以及从leafi到根的路径内的logN个节点增加变量saltl授予接收器ui。
每个接收器秘密保持节点相应值以防泄露。注意,可以公开节点增加变量salt,并且因此不需秘密保持。
图11示出了用于上述设置处理的流程。将描述图11的流程中的每个步骤。
首先在步骤S201,管理中心(TC)定义具有N个叶子的二进制树。作为二进制树中的最高级节点的根被设置为1,并且以宽度优先的顺序顺序地给后续节点编号。即,设置诸如图9、10中所示的节点相应号1-31。另外,分别将接收器um(m=1,2,...,N)分配给树的叶子。
接着,在步骤S202,管理中心(TC)确定模数M的大小|M|。另外,通过使用树结构的叶子数N,模数M的大小|M|作为输入,管理中心(TC)确定模数M以及将任意大小的值映射为ZM的随机元素的映射函数H,并且然后根据参考图8的流程描述的算法产生具有N个叶子的二进制树的Rabin树。首先,然后,管理中心(TC)随机选择值NV1∈Z*M作为根的节点相应值,之后它确定相应于节点1到2N-1的节点相应值,即2N-1个|M|-位的数(节点相应值)NVl,NV2,...,NV2N-1,以及2N-2个数(节点增加变量)salt2,salt3,...,salt2N-1。另外,管理中心(TC)公布模数M和映射函数H。另外,它确定并公布用于将大小为|M|的值映射为大小为C的随机数的函数Hc。
另外,管理中心(TC)从节点相应值NVl,即,根据NK1=Hc(NV1)计算树的任意节点l的节点密钥NKl。
在步骤S203,管理中心(TC)授予被设置为相应于作为树的终端节点的叶子的各个接收器um(m=1,2,...,N)(a)分配有接收器um的叶子节点(叶子)的节点相应值NVl,和(b)相应于接收器um的路径中的除了根之外的路径节点的salt值。
(3-2)信息发布处理由广播一个或多个密码文本的管理中心(TC)执行信息发布,即保密信息的传输。通过使用一个节点密钥对保密信息加密获得每个密码文本。选择用于加密的节点密钥的方法与完整子树方案(CD方案)中的类似。
在图5所示的例子中,将传输5个密码文本。在图5所示的例子中,接收器u2,u11,u12是被取消的接收器。即,通过排除(取消)接收器u2,u11,u12作为未授权的装置,仅有除了这些接收器之外的接收器能够安全地接收信息,即,执行基于密码文本广播的解密。
当要传输该信息时,产生并广播一组密码文本,而不使用分别分配给从分配有取消的接收器U2、U11、U12的叶子到树的根的路径中的节点的节点密钥作为加密密钥。当从树中排除了从分配有取消的接收器U2、U11、U12的叶子到树的根的路径中的节点以及这些路径时,剩下了一个或多个子树,它们是例如以节点5为根的子树和以节点12为根的子树。
保密信息的发送方传输一组密码文本,其中使用分配给最接近这些子树的根的节点(即,在图5所示的例子中为节点5、7、9、12、16)的节点密钥对该保密信息加密。例如,假设传输的保密信息是将用于对加密内容解密的内容密钥Kc,并且分配给节点5、7、9、12、16的节点密钥是NK5、NK7、NK9、NK12、NK16。保密信息的发送方产生一组5个密码文本E(NK5,Kc)、E(NK7,Kc)、E(NK9,Kc)、E(NK12,Kc)、E(NK16,Kc),并且通过网络发布产生的密码文本组,或提供存储该密码文本集合的记录介质。注意,E(A,B)的含义是以密钥A对数据B加密。
上述密码文本组仅对于取消的接收器U2、U11、U12是不可解密的,但是可被其它接收器解密。通过产生并传输这种密码文本组,可以实现保密信息的有效和安全的传输。
寻找用于该加密的节点密钥的技术包括类似于完整子树方案(CD方案)或是应用了表示树的方法的技术。
将参考图12的流程描述用于信息发布处理的过程。在步骤S301,管理中心(TC)选择将从信息发布中取消(排除)的接收器。
另外,在步骤S302,管理中心(TC)选择用于产生密码文本,即,加密将要传输的保密信息的节点密钥,并且在步骤S303,产生使用的节点密钥指定信息,作为用于在接收该密码文本的接收器上选择可解密的密码文本的索引数据。该信息包括标记信息或表示选择哪个节点密钥的表示代码。
在步骤S304中,管理中心(TC)以选择的节点密钥对将要传输的保密信息加密,并且在步骤S305,使用广播通道将该加密信息与节点密钥指定信息一起传输,或是将该信息作为存储在信息记录介质中的信息发布。注意,不必以这种顺序执行上述处理。
应当注意,用于加密的节点密钥可以是由管理中心(TC)在设置阶段产生并保管的,或可以是以后从管理中心(TC)在设置阶段保管的叶子的节点相应值NVl和节点的salt值得出的那些节点密钥。
应当注意,如果没有取消的接收器,则将根的节点密钥NKl用于加密该保密信息。在该情况下,所有接收器都可以对传输的信息解密。
(3-3)信息接收和解密处理下面,将描述用于接收和解密上述密码文本的处理。通过广播将上述密码文本提供给接收器。可替换地,将它们作为存储在信息记录介质内的信息提供给接收器。这些密码文本可由所有接收器接收,不论接收器被取消与否。然而,因为取消的接收器不能获得将用于解密该密码文本的节点密钥,取消的接收器不能解密接收到的信息。
某个未被取消的接收器从接收到的密码文本中选择它可以解密的密码文本。在用于解密包含在接收到的密码文本组内的密码文本的节点密钥中,存在一个可从该未被取消的接收器自己直接保持的节点相应值NVl和salt得出的节点密钥。
未被取消的接收器从节点相应值NVl和salt得出相应于用于加密的节点密钥NKK的节点相应值NVK,并且进一步从该节点相应值NVK得出节点密钥NKK,以便使用得出的节点密钥解密密码文本,从而它可以获得该保密信息。接收器为了找到解密的密码文本,接收器可能仅必须使用上述的节点密钥指定信息。
在密码文本提取处理中,接收器um提取用于加密的节点密钥的节点号k,并且找到符合包括在相应于接收器um的路径节点m[路径节点-m]内的节点号的一个。
因为接收器um保持有分配有接收器um的叶子l的节点相应值NVl,该接收器使用下面的表达式,从它类似NVl保持的节点增加变量saltl获得节点l的双亲节点的节点相应值。
[数学式49] 并且进一步,通过重复该处理,得出从其自己的节点l到根的路径内的任意节点k的节点相应值NVK。并且从节点k的节点相应值NVK得出节点k的节点密钥NKK。
NKk=Hc(NVk)得出的节点密钥用于解密该密码文本。
将参考图13描述特定例子。现在假设接收器u4(节点号19)未被取消,考虑接收器u4的处理。当接收器u4(节点号19)未被取消时,用于加密的任意节点密钥必须符合包括在相应于接收器u4的路径节点4[路径节点-4]={1,2,4,9,19}中的节点号。
假设保密信息是[Kc],通过网络发布包含任意E(NK1,Kc)、E(NK2,Kc)、E(NK4,Kc)、E(NK9,Kc)、E(NK19,Kc)的密码文本组,或在存储它的记录介质内提供。注意,E(A,B)的含义是以密钥A对数据B加密。接收器u4从接收到的密码文本组中检测哪一个符合包括在相应于接收器u4的路径节点4[路径节点-4]={1,2,4,9,19}中的节点号。
在确定NK1、NK2、NK4、NK9、NK19中的哪一个用于加密该密码文本之后,为了计算确定的节点密钥,接收器u4通过应用它保持的节点相应值NV4和节点增加变量salt2、salt4、salt9、salt19,从高级节点的节点相应值计算该节点密钥,并且进一步从计算出的节点相应值计算该节点密钥。如上所述,为此使用的技术如下。
NV9=((NV19)2+H(19‖salt19))mod MNV4=((NV9)2+H(4‖salt4))mod MNV2=((NV4)2+H(2‖salt2))mod MNV1=((NV2)2+H(1‖salt1))mod M在基于上式的计算中,从低级节点的节点相应值计算高级节点的节点相应值。
另外,通过使用下面的表达式从各个节点的节点相应值计算节点密钥。
NK19=Hc(NV19)NK9=Hc(NV9)NK4=Hc(NV4)NK2=Hc(NV2)NK1=Hc(NV1)接收器u4通过应用包括在路径节点4[路径节点-4]={1,2,4,9,19}中的任意节点密钥NK19、NK9、NK4、NK2、NK1对包含在密码文本组内的密码文本解密,从而它可以获得保密信息[Kc]。
参考图14的流程描述由接收器um进行的处理。首先,在步骤S401,接收器um接收密码文本组。通过网络或通过信息记录介质接收这些密码文本。
在步骤S402,根据用于加密包含在接收到的密码文本组中的密码文本的节点密钥,接收器提取这样的密码文本,以可基于从其直接保持的节点相应值NV和节点增加变量salt可得出的节点相应值计算出的节点密钥加密该密码文本。这等同于接收器um从密码文本组中检测符合包括在相应于接收器um的路径节点m[路径节点-m]中的节点号的节点密钥的处理。注意,此处接收器不能确定用于解密的秘文意味着该接收器被取消了。
另外,在步骤S403中,接收器um通过应用它保持的节点相应值NV和节点增加变量salt计算用于加密的节点密钥。执行该计算作为根据上述(Eq.1)计算高级节点的节点相应值的处理,并且根据下面的表达式基于计算出的节点相应值获得所需的节点密钥NKk。
NKk=Hc(NVk)一旦计算出了用于加密的节点密钥,处理进入步骤S404,其中接收器通过应用计算出的节点密钥对密码文本解密,从而它获得该保密信息。
应当注意,该保密信息可以包括,例如,用于解密电视广播系统内的加密内容的内容密钥。在该情况下,接收器接收加密内容,通过使用内容密钥对其解密以便输出。注意,不必以该顺序执行上述处理。
下面参考图15、16,描述用于提供密码文本的信息处理装置以及用于接收和解密该密码文本的信息处理装置的功能配置。用于提供密码文本的信息处理装置执行处理,以便确定用于产生密码文本的节点密钥,并且进行处理以便产生该密码文本。执行密码文本解密处理的接收器使用产生的节点密钥执行节点密钥产生处理和密码文本解密处理。
首先参考图15,描述用于提供密码文本的信息处理装置的配置。信息处理装置410具有单向树(Rabin树)产生装置411、节点密钥产生装置412、用于提供的信息(节点相应值NV,节点增加变量salt)确定装置413、密码文本产生装置414、密码文本提供装置415。
信息处理装置410是用于执行处理,以便通过应用基于分层树配置的广播加密方案,提供仅可由除了被排除的(取消的)装置之外的某些所选择的装置解密的密码文本的信息处理装置。单向树(Rabin树)产生装置411产生作为单向树的Rabin树,通过该树可以通过应用至少一个低级节点的节点相应值NV和节点增加变量salt得出(见Eq.1)相应于构成该分层树的节点的节点相应值NV。
节点密钥产生装置412基于节点相应值通过
NK=Hc(NV)分别计算节点的节点密钥NK。
用于提供的信息确定装置413给相应于该分层树的终端节点的接收器提供相应于该接收器的节点的节点相应值NVl和包括在从该相应于接收器的节点到作为最高级节点的根的路径内的节点的节点增加变量salt。
密码文本产生装置414有选择地将节点密钥产生装置412基于分别设置为相应于由单向树(Rabin树)产生装置411产生的Rabin树的节点的节点相应值产生的节点密钥NK用于执行加密处理,以便产生密码文本。密码文本提供装置415通过网络或在存储密码文本的介质内提供这样产生的密码文本。
下面参考图16,描述作为用于执行密码文本解密处理的接收器的信息处理装置的功能配置。
作为用于执行密码文本解密处理的接收器的信息处理装置420具有密码文本选择装置421、节点密钥计算装置422、解密装置423、存储器424。
密码文本选择装置421执行处理,以便从用于处理的密码文本中选择通过应用可从保持在它的存储器424内的节点相应值NVl和节点增加变量salt计算出的高级节点密钥而产生的密码文本。具体地,如上所述,它首先通过应用其保持的节点相应值NV和节点增加变量salt,使用上述(Eq.1)计算高级节点的节点相应值,并且然后基于计算出的节点相应值根据下面的表达式执行用于获得所需的节点密钥NKk的处理。
NKk=Hc(NVk)解密装置423基于在节点密钥计算装置422中计算出的节点密钥执行密码文本解密处理。
与基于RSA密码系统的上述CS方案密钥减少方法相对比,使用Rabin树的根据本发明的上述CS方案密码文本发布配置具有接收器所需的计算量小的优点。将对其进行描述。
在根据使用RSA密码系统的CS方案的密钥减少方法中,接收器为了从某个节点的密钥NKl得出用于其双亲节点的密钥[数学式50] 接收器使用下面的表达式执行计算。
此处,与寻找幂剩余的操作相比XOR和函数H的散列仅需要极少量的计算。因此,上述计算的核心是寻找幂剩余的操作。
NKlemod M在使用RSA密码系统的系统内,为了减少计算量,希望使用尽可能小的加密指数e,同时其汉明权尽可能小。然而,已经指出小的e诸如e=3不能提供足够的安全,并且因此普遍推荐使用值e=216+1当值216+1被用作加密指数e时,可以使用若干方法寻找某个数x的e次幂。如果使用“重复平方并且相乘算法”(见上述的文献A.J.Menzes,P.C.van Oorschot和S.A Vanstone,“Handbook ofApplied Cryptography,”CRC Press,1996的第614页),需要16个平方和一个乘法。此处,平方是乘法的特殊情况,并且因此通过使用该方法,与乘法相比可以减少计算量。鉴于这种情况,上述的计算量大于17个平方。然而,即使在使用RSA密码系统的方案中使用3作为加密指数e,计算NKlemod M涉及一个乘法和一个平方,因此将本发明中的计算量减小到少于1/2的值。
作为比较,在应用根据本发明的上述Rabin树的基于CS方案的密码文本发布配置中,接收器基于其拥有的节点相应值NVl和节点增加变量salt,基于上述(Eq.1)执行计算,即, 该计算的核心也是寻找幂剩余的操作。然而,在上述表达式中,寻找幂剩余的操作是NVl2mod M其仅涉及一个平方。因此与使用RSA密码系统的方案相比可以将计算量减小到大约1/17。
以这种方法,在传统的CS方案中,某个接收器必须安全地保持logN+1个节点密钥,而在应用根据本发明的Rabin树的基于CS方案的密码文本发布配置中,某个接收器必须安全保持的密钥数可以减少到1(叶子节点的节点相应值NV)。与CS方案中的节点密钥不同,在本发明的配置中,不需要安全保持节点增加变量salt。另外,因为节点密钥在CS方案中被用作加密密钥,它们中的每一个的大小从几十到几百位,而某个节点增加变量具有平均2位的小的大小。
另外,类似于本发明,当与每个接收器安全保持的密钥数被减少到1的使用RSA密码系统的系统相比时,本方案具有这样的特征,即,寻找幂剩余的操作-就计算量而言它是接收器上的沉重负载-仅涉及一个平方,并且与使用RSA密码系统的方案相比将计算量减少到大约为1/17的极小的值。
以这种方式,通过应用本发明的配置,可以减小每个接收器需要安全存储的信息量,并且还可以减少接收器计算节点密钥所需要的计算量,从而可以实现有效的密码文本发布、加密处理配置。
接着,描述一个应用不同于上述的Rabin树配置例子1的Rabin树的处理例子。注意,如上所述,“Rabin树”不是通用术语,而是用于解释本发明的术语。在给具有N个叶子的完全二进制树编号之后,从而根为1,并且以宽度优先的顺序从左到更高级节点,后续节点为2,3,...,2N-1,根据下面的过程配置不同于上述的Rabin树配置例子1的Rabin树。
类似于RSA密码系统,由管理中心确定并发布两个大素数的积M。管理中心确定一个秘密值Y∈Z*M并且将该值设置为相应于根(节点1)的值NV1。应当注意,Y∈Z*M意味着Y是组Z*M的元素。
使用其节点号l和相应于其双亲节点的节点相应值获得相应于除了根之外的任意节点l(l=2,3,...,2N-1)的值NVl。
首先,以下面的表达式定义tmpl。
寻找一个最小的正整数salt1,从而由上式定义的值tmpl是模M的二次剩余。将值salt1设置为相应于节点l的节点增加变量。
应当注意,在上式中,H是用于将任意大小的输入映射为上述两个大素数的积M的大小|M|的公开函数,并且Hsaltl(l)表示通过对l应用saltl次函数H获得的值。例如,如果saltl=3则Hsaltl(l)=H(H(H(l)))应当注意映射函数H的例子包括作为压缩函数的SHA-1,其产生关于任意长度的输入的160位输出。即,使用SHA-1,|M|-位值可被用作H(l),其中通过将|M|-160多个零位增加到将l输入到SHA-1获得的输出,获得该|M|-位值。注意,SHA-1是例如A.J.Menzes,P.C.van Oorschot和S.A Vanstone,“Handbook of AppliedCryptography,”CRC Press,1996中介绍的压缩函数。
以上述方法,当找到最小的正整数,从而tmpl∈QRM时,
计算tmpl1/2mod M并且将作为其结果获得的4个数中的任意一个设置为相应于节点l的值,即节点l的节点相应值NVl。
以这种方法,管理中心从根的值NV1确定其孩子节点2,3的节点相应值NV2,NV3,并且通过重复该处理,确定直到NV2N-1的所有节点的值(节点相应值)。
因此确定的节点l的节点相应值NVl(l=2,3,...2N-1)满足下面表达式的关系。
(Eq.3)即,容易从某个节点的节点相应值NVl和节点增加变量saltl找到其双亲节点的节点相应值。
这是因为函数H和模数M是公开的。
下面示出用于配置作为具有N个叶子的二进制树的Rabin树的示例算法。该算法的输入是[输入]构成该二进制树的叶子数N,模数M的大小|M|,和用于输出|M|-位数的映射函数H并且该算法的输出是[输出]2N-1个|M|-位的数(节点相应值)NV1,NV2,...,NV2N-1,和2N-2个数(节点增加变量)salt2,salt3,...,salt2N-1。
用于基于上述[输入]获得上述[输出]的算法如下。
1确定两个大素数,每个具有大小|M|/2,并且计算它们的积M。
2随机选择值NVl∈Z*M作为根节点的节点相应值。
3在使用l作为计数器将l从2增1直到2N-1的同时,执行下面的处理a,b。
a寻找最小正整数saltl,从而下式是模M的二次剩余。
(Eq.4)b寻找tmpl1/2mod M,并且确定其4个结果中的任意一个作为节点l的节点相应值NVl。
4输出2N-1个|M|-位的数(节点相应值)NV1,NV2,...,NV2N-1,以及2N-2个数(节点增加变量)salt2,salt3,...,salt2N-1并且结束。
输出值NVl是Rabin树中任意节点l的节点相应值。注意,上述输出覆盖所有节点的节点相应值,这是因为在具有N个叶子的完全二进制树中的节点总数是2N-1。
图17示出了用于上述算法的流程。将描述该流程中的每个步骤。在步骤S421,输入构成该二进制树的叶子的数目N、模数M的大小|M|、以及用于输出|M|-位数的映射函数H。
在步骤S422,随机选择作为根节点的节点相应值NVl∈Z*M。在步骤S423,将l=2设置为值l的初值。
在步骤S424,寻找最小正整数saltl,从而上面Eq.4中定义的tmp1是模M的二次剩余。并且将其设置为节点增加变量。
在步骤S425,寻找tmpl1/2mod M,并且确定其4个结果中的任意一个作为节点l的节点相应值NVl。
在步骤S426,确定l是否等于2N-1。如果l≠2N-1,处理进入步骤S427,其中将l增1,之后执行步骤S424、S425。重复执行步骤S424、S425,直到在步骤S427确定l=2N-1为止。当在步骤S427确定l=2N-1,在步骤S428,输出2N-1个|M|-位的数(节点相应值)NVl,NV2,...,NV2N-1,以及2N-2个数(节点增加变量)salt2,salt3,...,salt2N-1并且然后处理结束。
Rabin树,其中以上述处理确定该Rabin树的节点的节点相应值,具有类似于前面图9的配置。在以上述处理确定的由节点相应值NVl构成的树中,容易从某个节点的节点相应值NVl和节点增加变量saltl找到其双亲节点的节点相应值。
但是逆操作是困难的。
应当注意,如前面所述,图9中沿着函数f示出的每个带有箭头的直线表示以低级节点的节点相应值NVl作为输入,通过应用函数f可以获得高级节点的节点相应值。函数f是使用前向计算(平方模M)F的计算。可以根据上述Eq.3,通过应用其公开函数H和模数M,从节点相应值NVl和saltl计算某个节点(孩子节点)的双亲节点的节点相应值。
在图9中,沿着函数f-1示出的每个带有箭头的直线表示以高级节点的节点相应值NVl作为输入,通过应用函数f-1可以获得低级节点的节点相应值。函数f-1是使用逆计算(寻找平方根模M)F-1的计算。为了从高级节点的节点相应值获得其孩子节点的节点相应值,应当知道保密信息p,q(M的素数),并且只有管理中心可以执行该计算。
以这种方式,产生单向树,其中作为从低级到高级的单个方向,通过应用公开函数H和模数M,根据上述Eq.3,可以计算节点相应值NV,但是其中关于其相反方向计算是困难的。由具有这种设置的节点相应值NVl构成的单向树被称为“Rabin树”。这是因为Rabin密码术对于加密使用平方模M的操作(前向计算),并且对于解密使用寻找平方根模M的操作(逆计算)。
即,为作为单向树的Rabin树内的节点设置的节点相应值具有如下设置。即,其配置是通过应用基于低级节点的节点相应值的Rabin密码术的加密处理(前向计算)计算高级节点的节点相应值,并且从而通过应用基于高级节点的节点相应值的Rabin密码术的解密处理(逆计算)计算低级节点的节点相应值。在这种配置下,通过应用公开函数H和模数M,根据上述Eq.3可以执行从低级到高级节点的节点相应值计算,而通过仅使用公开函数H和模数M,从高级到低级节点的节点相应值计算是困难的,并且仅可以由知道保密信息p,q(M的素数)的管理中心执行。注意,在例如上述的文献A.J.Menzes,P.C.van Oorschot和S.A Vanstone,“Handbook of AppliedCryptography,”CRC Press,1996中的pp.292-294详细描述了Rabin密码术。
下面,使用树结构的Rabin树,其中以上述处理设置相应于二进制树的各个节点l的节点相应值NV1,描述密码文本发布处理和密码文本解密处理。它们的处理阶段是(6-1)设置处理(6-2)信息发布处理(6-3)信息接收和解密处理由于阶段“(6-1)设置处理”和“(6-2)信息发布处理”涉及与前面在条目[3.密码文本发布、解密处理,其中将Rabin树配置例子1应用于CS方案]中所述的设置和信息发布的处理基本类似的处理,所以用较简单的方式对它们进行描述。
(6-1)设置处理除了设置上面[5.应用Rabin树配置例子2的CS方案的配置]中所述的Rabin树配置的处理之外,设置处理基本上与条目[3.密码文本发布、解密处理,其中将Rabin树配置例子1应用于CS方案]中所述的类似。该设置仅在启动系统时执行一次。在每次发生传输信息时都执行后续的信息发布和接收以及解密处理。例如每次传递其中存储有新内容的信息记录介质诸如DVD时,或每次通过网络发布新信息时执行后面的处理。
根据前面参考图17描述的处理序列设置Rabin树配置例子2。结果,设置了如图9所示的作为单向树的Rabin树。分别将其节点设置为相应于|M|-位的数(节点相应值)NVl,NV2,...,NV2N-1,以及2N-2个数(节点增加变量)salt2,salt3,...,salt2N-1。该设置使得容易从某个节点的节点相应值NVl和节点增加变量saltl获得其双亲节点的节点相应值,但是逆操作是困难的。
管理中心(TC)授予每个接收器um(a)分配有接收器um的叶子节点(叶子)的节点相应值NVl,和(b)相应于接收器um的路径中的除了根之外的路径节点的salt值。
每个接收器秘密保持节点相应值以防泄露。注意,可以公开节点增加变量salt,并且因此不需秘密保持。
设置处理序列类似于前面参考图11描述的处理序列。然而被设置的Rabin树具有上面[5.应用Rabin树配置例子2的CS方案的配置]中所述的Rabin树配置。
(6-2)信息发布处理由广播一个或多个密码文本的管理中心(TC)执行信息发布,即保密信息的传输。该处理与[3.密码文本发布、解密处理,其中将Rabin树配置例子1应用于CS方案]中的条目“(3-2)信息发布处理”中所述的处理类似。使用一个节点密钥对保密信息加密获得各个密码文本。选择用于加密的节点密钥的方法与完整子树方案(CS方案)中的类似。
在图5所示的例子中,将传输5个密码文本。在图5所示的例子中,接收器u2,u11,u12是被取消的接收器。即,通过排除(取消)接收器u2,u11,u12作为未授权的装置,仅有除了这些接收器之外的接收器能够安全地接收信息,即,执行基于密码文本广播的解密。
当传输该信息时,产生并广播一组密码文本,而不使用分别分配给从分配有取消的接收器U2、U11、U12的叶子到树的根的路径中的节点的节点密钥作为加密密钥。当从树中排除了从分配有取消的接收器U2、U11、U12的叶子到树的根的路径中的节点以及这些路径时,剩下了一个或多个子树,它们是例如以节点5为根的子树和以节点12为根的子树。
保密信息的发送方传输一组密码文本,其中使用分配给最接近这些子树的根的节点(即,在图5所示的例子中为节点5、7、9、12、16)的节点密钥对该保密信息加密。例如,假设传输的保密信息是将用于对加密内容解密的内容密钥Kc,并且分配给节点5、7、9、12、16的节点密钥是NK5、NK7、NK9、NK12、NK16。保密信息的发送方产生一组5个密码文本E(NK5,Kc)、E(NK7,Kc)、E(NK9,Kc)、E(NK12,Kc)、E(NK16,Kc),并且通过网络发布产生的密码文本组,或提供存储该密码文本组的记录介质。应当注意,E(A,B)的含义是以密钥A对数据B加密。
上述密码文本组仅对于取消的接收器U2、U11、U12是不可解密的,但是可被其它接收器解密。通过产生并传输这种密码文本组,可以实现保密信息的有效和安全的传输。
寻找用于该加密的节点密钥的技术包括类似于完整子树方案(CS方案)或是应用了表示树的方法的技术。信息发布处理过程类似于前面参考图12的流程描述的过程。
(6-3)信息接收和解密处理下面,描述用于接收和解密上述密码文本的处理。通过广播将上述密码文本提供给接收器。可替换地,将它们作为存储在信息记录介质内的信息提供给接收器。这些密码文本可由所有接收器接收,不论接收器被取消与否。然而,因为取消的接收器不能获得将用于解密该密码文本的节点密钥,取消的接收器不能解密接收到的信息。
每个未被取消的接收器从接收到的密码文本中选择它可以解密的密码文本。在用于解密包含在接收到的密码文本组内的密码文本的节点密钥中,存在可从该未被取消的接收器自己直接保持的节点相应值NVl和salt得出的节点密钥。
未被取消的接收器从节点相应值NVl和salt得出相应于用于加密的节点密钥NKK的节点相应值NVK,并且进一步从该节点相应值NVK得出节点密钥NKK,以便使用得出的节点密钥解密密码文本,从而它可以获得该保密信息。接收器为了找到用于解密的密码文本,接收器可能仅必须使用上述的节点密钥指定信息。
在密码文本提取处理中,接收器um提取用于加密的节点密钥的节点号k,并且找到符合包括在相应于接收器um的路径节点m[路径节点-m]内的节点号的一个。
因为接收器um保持有分配了接收器um的叶子l的节点相应值NVl,接收器使用下面的表达式从它类似NVl保持的节点增加变量saltl获得节点l的双亲节点的节点相应值。
[数学式60] 并且进一步,通过重复该处理,得出从其自己的节点l到根的路径内的任意节点k的节点相应值NVK。并且从节点k的节点相应值NVK得出节点k的节点密钥NKK。
NKk=Hc(NVk)得出的节点密钥用于解密该密码文本。
将参考图18描述特定例子。现在假设接收器u4(节点号19)未被取消,考虑接收器u4的处理。当接收器u4(节点号19)未被取消时,用于加密的任意节点密钥必须符合包括在相应于接收器u4的路径节点4[路径节点-4]={1,2,4,9,19}中的节点号。
假设保密信息是[Kc],包含任意E(NK1,Kc)、E(NK2,Kc)、E(NK4,Kc)、E(NK9,Kc)、E(NK19,Kc)的密码文本组被通过网络发布,或被提供在存储它们的记录介质内。注意,E(A,B)的含义是以密钥A对数据B加密。接收器u4从接收到的密码文本组中检测哪个密码文本符合包括在相应于接收器u4的路径节点4[路径节点-4]={1,2,4,9,19}中的节点号。
在确定NK1、NK2、NK4、NK9、NK19中的哪一个被用于加密该密码文本之后,为了计算确定的节点密钥,接收器u4通过应用它保持的节点相应值NV4和节点增加变量salt2、salt4、salt9、salt19,从高级节点的节点相应值计算该节点密钥,并且进一步从计算的节点相应值计算该节点密钥。图19中示出了所使用的技术。即,执行根据下面的过程的处理。
NV9=((NV19)2XOR Hsalt19(19))mod MNV4=((NV9)2XOR Hsalt9(9))mod MNV2=((NV4)2XOR Hsalt4(4))mod MNV1=((NV2)2XOR Hsalt2(2))mod M在基于上式的计算中,从低级节点的节点相应值计算高级节点的节点相应值。
另外,通过使用下面的表达式从各个节点的节点相应值计算节点密钥。
NK19=Hc(NV19)NK9=Hc(NV9)NK4=Hc(NV4)NK2=Hc(NV2)NK1=Hc(NV1)接收器u4通过应用包括在路径节点4[路径节点-4]={1,2,4,9,19}中任意节点密钥NK19、NK9、、NK4、NK2、NK1对包含在密码文本组内的密码文本解密,从而它可以获得保密信息[Kc]。
参考图20的流程描述由接收器um进行的处理。首先,在步骤S451,接收器um接收密码文本组。通过网络或通过信息记录介质接收这些密码文本。
在步骤S452,根据用于加密包含在接收到的密码文本组中的密码文本的节点密钥,接收器提取这样的密码文本,该密码文本被以可基于从其直接保持的节点相应值NV和节点增加变量salt可得出的节点相应值计算出的节点密钥加密。这等同于接收器um从密码文本组中检测符合包括在相应于接收器um的路径节点m[路径节点-m]中的节点号的节点密钥的处理。注意,此处接收器不能确定用于解密的加密秘文意味着该接收器被取消了。
另外,在步骤S453中,接收器um通过应用它保持的节点相应值NV和节点增加变量salt计算用于加密的节点密钥。以这样的处理执行该计算,其中从上述(Eq.3)计算高级节点的节点相应值,并且根据下面的表达式基于计算出的节点相应值获得所需的节点密钥NKk。
NKk=Hc(NVk)一旦计算出了用于加密的节点密钥,处理进入步骤S454,其中接收器通过应用计算出的节点密钥对密码文本解密,从而它获得该保密信息。
应当注意,该保密信息可以包括,例如,用于解密电视广播系统内的加密内容的内容密钥。在该情况下,接收器接收加密内容,通过使用内容密钥对其解密以便输出。注意,不必以该顺序执行上述处理。关于用于提供密码文本的信息处理装置和用于接收和解密该密码文本的信息处理装置的功能配置,可以应用类似于前面参考参考图15、16描述的配置。
在根据使用上述的Rabin树配置例子2的CS方案的密码文本发布配置中,设置为相应于各个节点的节点增加变量(salt)不同于上述Rabin树配置例子1中的节点增加变量(salt)。即,在Rabin树配置例子1中,[数学式61] 确定作为saltl的最小正整数(或非负整数)从而tmpl∈QRM。此处,考虑使用哈希函数,诸如SHA-1或MD5作为函数H。因为SHA-1或MD5将512为作为一个块,如果输入的大小超过了512位,但是等于或小于1024位,则需要大约两倍于512位或更少输入的情况的处理时间。
此处,如果l的大小是512位,即使saltl大小是若干位,l‖salt1的大小也超过了512位。当测试的saltl与满足条件tmpl在QRM一样多时,并且如果第A个saltl满足该条件,即使仅对于H的计算而言,上面的设置需要与2A个使用512位或更少输入的H的操作一样的时间。
作为对比,如在本实施例中,当一个节点增加变量(salt)被设置为最小的正整数从而tmpl在下面的表达式中是模M的二次剩余时[数学式62] H的输入仅是刚好等于512位的l。因此,与上述方法相比(Rabin树配置例子1),执行一轮H的计算所需的时间减少为1/2。此处,如果H输出随机值,每个saltl从而tmpl∈QRM的概率大约是1/4,这与上述方法(Rabin树配置例子1)相同,并且因此提示作为将测试的saltl数目的期望值,即,作为函数H的计算数目的期望值也是相同的。
上述的处理例子是将Rabin树应用于完全子树(CS)方案的例子。下面,描述将Rabin树应用于不同于完全子树(CS)方案的子集差(SD)方案的例子。
如上所述,在完全子树(CS)方案中,分层树的每个节点被用于表示“由分配给以该节点为根的子树的叶子的接收器组成的集合”。相对地,在子集差(SD)方案中,分层树的两个节点I,j(其中I是j的祖先节点)用于表示“通过从(由以节点I为根的子树的叶子构成的集合)中减去(由以节点j为根的子树的叶子构成的集合)所获得的集合”。
应当注意,下列的符号用于下面的描述。
P(i)节点I的双亲节点,以及其节点号S(i)节点I的兄弟节点(即,不同于节点I并且具有与节点I相同的双亲节点),以及其节点号LC(i)节点I左侧上的孩子节点,以及其节点号
RC(i)节点I右侧上的孩子节点,以及其节点号例如,通过从接收器u1-u8的集合中减去u5,u6获得图21的由节点i531和节点j532定义的集合Si,j。即,Si,j={u1,u2,u3,u4,u7,u8}。定义关于所有的节点对I,j的这种集合,其中I是j的祖先节点(即,节点j不同于节点I,并且节点I存在于从节点j到根的路径内)。
子集密钥SKi,j被设置为是相应于任意子集Si,j的密钥。子集密钥SKi,j被设置为是由通过从由u1-u8构成的集合中排除u5,u6获得的子集Si,j={u1,u2,u3,u4,u7,u8}共同拥有的密钥,并且通过传输使用子集密钥Si,j作为加密密钥加密的保密信息,仅可由子集Si,j={u1,u2,u3,u4,u7,u8}实现解密,并且因此取消了(排除了)u5,u6。
在这种设置下,单个接收器所属的集合数等于由下式表示的数O(N)[数学式63]Σk=1logN(2k-k)=O(N)]]>因此,当将密钥(子集密钥)独立地分配给每个集合(子集)时,每个接收器必须安全地保持O(N)个子集密钥。然而,随着接收器的总数N的增加,子集密钥的数目急剧增加,并且因此,实际上难以使得每个设备安全地保持这些数量极大的信息。
为了克服这个困难,在子集差(SD)方案中设计了下面的技术。类似于上述的完整树(CS)方案,管理中心(TC)执行定义分层树、定义子集、定义和发布密钥等。
首先,如图22(A)所示,管理中心(TC)专注于某个内部节点(即,不是叶子的节点)I,通过将节点I的标签设置为LABELi随机地选择C位的值S。
接着,如图22(B)中所示,将LABELi=S输入到C位输入3C位输出的伪随机数产生器G。从左侧起(从最高位一侧起)将输出分为C位的部分,并且将这些部分分别表示为GL(S)、GM(S)、GR(S)。然后,将图22(A)中示出的节点I左侧上的孩子节点k的标签设置为GL(S),并且将节点I右侧上的孩子节点的标签设置为GR(S)。
现在,作为该处理的结果,对于作为图22(A)中的节点I左侧上的孩子节点的节点k,如果将节点I设置为初始点,则节点k的标签LABELi,k是LABELi,k=GL(S)。设这为T。接着,此时将节点k的标签LABELi,k,即,LABELi,k=GL(S)=T输入图22(B)中所示的伪随机数产生器G,并且如下那样设置GL(T)、GM(T)、GR(T),所述GL(T)、GM(T)、GR(T)是从左侧起将输出划分到其中的C位部分。
GL(T)=如果以节点I为初始点,节点k左侧上的孩子节点LC(k)的标签LABELi,LC(k),GM(T)=如果以节点I为初始点,节点k的密钥(假定其为相应于集合Si,k的子集密钥SKi,k)GR(T)=如果以节点I为初始点,节点k右侧上的孩子节点RC(k)的标签LABELi,RC(k),通过重复该处理,产生如果以节点I为初始点相应于节点I的所有后代节点的标签。注意,根据上面的定义,任意集合Si,i是空集合,并且当将节点I设置为初始点时,不需要节点I的密钥。因此提示不使用将任意LABELi输入伪随机数产生器G而获得的中间部分GM(T)。
使用图22(A)的例子加以表示。确定作为初始点的节点I的标签S。GR(S)是节点i右侧上的孩子节点的标签。另外,通过将GR(S)输入伪随机数产生器G而获得的GL(GR(S))是如果以节点I为初始点,节点j的标签LABELi,j。对所有的内部节点I,执行用于如果以节点I为初始点,产生相应于节点I的所有后代节点的标签的处理。
由管理中心(TC)在系统设置时执行这些处理步骤。伪随机数产生器(或伪随机数产生函数)G可由管理中心(TC)指定和发布。因此,通过使用它们,被授予LABELi,j的接收器能够计算如果以节点I为初始点,节点j的所有后代节点n的标签LABELi,n,并且计算如果以节点I为初始点,节点j和其后代节点n的子集密钥SKi,n。
作为这种设置的结果,如图23(A)所示,对于从叶子u到树的根的路径内的任意内部节点I,某个接收器u仅需保持节点a,b,c的标签,节点a,b,c是如果以节点I为初始点,直接从分配有该接收器的叶子u到节点I的路径内的节点分支出的节点。
可以产生如果以节点I为初始点,这些节点a,b,c和它们的后代节点的子集密钥。在图23(A)中,通过专注于节点I,有3个直接从u到I的路径内的节点分支出的节点a,b,c。因此,在管理中心(TC)设置其系统期间,接收器u被从管理中心(TC)授予这些3个标签并且保持它们。
通过基于节点a的标签LABELi,a以伪随机数产生器G进行处理,叶子u可以获得相应于子集Si,a的子集密钥SKi,a。即,GM(LABELi,a)=SKi,a。
如图23(a)所示,子集Si,a是这样的子集,其中以节点a为根的子树的叶子被设置为取消的设备。因此,子集Si,a是这样的子集,其中仅有以节点I为根的子树的叶子中的除了以节点a为根的子树的叶子之外的叶子被设置为将被发布信息的叶子。
此外,通过基于节点b的标签LABELi,b以伪随机数产生器G进行处理,叶子u可以获得相应于子集Si,b的子集密钥SKi,b。即,GM(LABELi,b)=SKi,b。
如图23(b)所示,子集Si,b是这样的子集,其中以节点b为根的子树的叶子被设置为取消的设备。因此,子集Si,b是这样的子集,其中仅有以节点I为根的子树的叶子中的除了以节点b为根的子树的叶子之外的叶子被设置为将被发布信息的叶子。
此外,通过基于节点c的标签LABELi,c以伪随机数产生器G进行处理,叶子u可以获得相应于子集Si,c的子集密钥SKi,c。即,GM(LABELi,c)=SKi,c。
如图23(c)所示,子集Si,c是节点c(叶子c)被设置为取消的设备。因此,子集Si,c是这样的子集,其中仅有以节点I为根的子树的叶子中的除了叶子c之外的叶子被设置为将被发布信息的叶子。
除了这3个配置之外,可以有各种用于取消I被设置为初始点的分层树中的除了叶子u之外的叶子的其它配置。例如,如果仅取消图23(a)的叶子d251,需要设置子集Si,d并且应用子集密钥SKi,d。然而,可由基于高级标签的伪随机数产生处理产生相应于任意节点、叶子的密钥,即,子集密钥。因此,基于由叶子u保持的节点a的标签LABELi,a,叶子u可以产生用于取消叶子d251的子集密钥SKi,d。
这类似地适用于其它子集配置。因此,如图23(A)所示,对于分配有某个接收器u的叶子到树的根的路径内的任意内部节点I,某个接收器u仅需保持节点a,b,c的标签,节点a,b,c是如果以节点I为初始点,直接从该叶子u到节点I的路径内的节点分支出的节点。
图24是示出了如果接收器的总数被设置为N=16,由每个接收器保持的标签的视图。现在,考虑接收器u4。从分配有该接收器的节点19到根1的路径内的每个内部节点1,2,4,9都是初始点(节点i)。如果节点1被设置为初始点,直接从节点19到节点1的路径中分支出的分支出的节点共有4个,即,节点3、5、8、18,并且因此接收器u4保持4个标签,即,LABEL1,3LABEL1,5LABEL1,8LABEL1,18类似地,如果将节点2设置为初始点,接收器u4保持3个标签,LABEL2,5LABEL2,8LABEL2,18如果将节点4设置为初始点,接收器u4保持2个标签,LABEL4,8LABEL4,18如果将节点9设置为初始点,接收器u4保持1个标签,
LABEL9,18此外,接收器u4保持1个标签,LABEL1,Φ它相应于没有取消的接收器并且因此包括所有接收器的特定情况下使用的集合(该集合被表示为子集S1,Φ)。
即,在图24的配置中u4保持的标签LABEL可以被如下重新安排。如也在图24中指出的4个标签,其中对于I=1,j=3,5,8,183个标签,其中对于I=2,j=5,8,182个标签,其中对于I=4,j=8,181个标签,其中对于I=9,j=181个用于没有取消情况的标签因此,总共有11个标签。
此处,为了描述的一致性这样安排,从而u4具有相应于子集S1, Φ的标签。然而,可进行其它安排从而u4直接保持相应于子集S1,Φ的子集密钥而不是标签。
如上所述,对于叶子到根路径内的任意内部节点,每个接收器必须保持与内部节点的分层深度一样多的标签,加上一个特定标签。因此,如果传输器/接收器的数目是N,每个接收器保持的标签数等于以下面的表达式计算获得的数目。
1+Σk=1logNk=12log2N+12logN+1]]>每个接收器保持以上式指示出的标签数,并且可以通过使用公布的伪随机数产生函数G产生必需的子集密钥。接收器必须安全地保持这些标签。
将描述用于减少子集差(SD)方案中的标签数的配置。观察上述的子集差(SD)方案,可以理解下面的内容。
即,存在这样的情况,其中标签LABELi,j是(A)由管理中心(TC)直接授予接收器,和(B)通过使用伪随机数产生函数G,由接收器从除了这些标签之外的标签得出的。
然而,对于节点I和j具有双亲-孩子关系(具有距离1,即,在分层中是连续的)的任意标签,上述情况(B)不存在,并且仅可能存在情况(A),其中标签LABELi,j是由管理中心(TC)直接授予接收器的。
其原因如下。每个接收器为了使用伪随机数产生函数G产生LABELi,j,接收器必须知道使用作为节点j的祖先的节点k产生的LABELi,k。然而,因为节点I,j具有双亲-孩子关系,不存在是节点j的祖先并且是节点I的后代的节点k,也没有任意的接收器被授予LABELi。
将参考图25的配置给出描述。由管理中心(TC)直接将LABEL2,8授予接收器u4,但是不直接授予接收器u5。接收器u5根据由管理中心(TC)授予的LABEL2,4使用伪随机数产生函数G计算GL(LABEL2,4),以便获得LABEL2,8。
相反,如图26中所示,LABEL2,5其中节点2和节点5具有双亲-孩子关系被直接授予属于子集S2,5的接收器u1,u2,u3,u4。因为除了这些接收器之外的接收器不属于该集合,即使通过计算它们也不能得出LABEL2,5。即,该标签仅由管理中心(TC)直接授予接收器,并且不能使用伪随机数产生函数G得出。
此外,在该SD方案内,当某个节点I是两个不同节点j,k的双亲节点,并且节点j是不同于它们的节点n的双亲节点时,可以看出属于任意子集Sj,n的接收器必须总属于任意子集Si,k。
例如,如图27所示,属于子集S9,18的接收器u4也属于任意子集S4,8,S2,5,S1,3。即,S9,18={u4}S4,8={u3,u4}
S2,5={u1,u2,u3,u4}S1,3={u1,u2,u3,u4,u5,u6,u7,u8}另外,与接收器u4成对地属于子集S4,8的接收器u3也属于子集S2,5,S1,3中的任意一个。
在本发明中,通过将Rabin树应用于节点I和j具有双亲-孩子关系的任意标签LABELi,j,并且应用于相应于被设置为用于没有取消的接收器并且因此包括所有接收器的特定情况的子集S1,Φ的标签LABEL1,Φ,减少了由接收器保持的标签数。
在上述的子集差(SD)方案中,每个接收器保持总共logN个标签LABELi,j,在每个标签中节点I和j具有双亲-孩子关系,一个标签用于从分配有该接收器的叶子到树的根的路径内的一个内部节点。在本发明中,其被这样设置,从而可以从单个值得出总共logN+1个标签,它们是这些标签LABELi,j加上相应于被设置为用于没有取消的接收器并且因此包括所有接收器的特定情况的子集S1,Φ的标签LABEL1,Φ,从而减少了由接收器保持的标签数。
应当注意,通过应用Rabin树,可以配置前向置换y=F(x)和逆置换x=F-1(y),其中从x计算y是简单的(前向置换),但是难以执行逆计算。仅可由知道某个保密信息(陷门)的人容易地执行逆计算,但是对于其它人来说是困难的。
在原始的SD方案中,如已经参考图24所述,接收器u4需要安全地保持总共11个标签。即,4个标签,其中j=3,5,8,18对于i=1LABEL1,3,LABEL1,5,LABEL1,8,LABEL1,18,3个标签,其中j=5,8,18对于i=2LABEL2,5,LABEL2,8,
LABEL2,18,2个标签,其中j=8,18对于i=4LABEL4,8,LABEL4,18,1个标签,其中j=18对于i=9LABEL9,18,以及用于没有取消情况的一个LABELLABEL1,Φ,即使应用本发明的配置,接收器仍必须保持节点i和j具有双亲-孩子关系的标签,即,LABEL1,3,LABEL2,5,LABEL4,8,LABEL9,18,并且还有,用于没有取消的情况的标签LABELLABEL1,Φ,在本发明中,通过应用Rabin树,其被这样设置从而可以从单个值得出总共logN+1个标签,它们是这些标签LABELi,j加上相应于被设置为用于没有取消的接收器并且因此包括所有接收器的特定情况的子集S1,Φ的标签LABEL1,Φ,从而减少了由接收器保持的标签数。
下面,将详细描述用于减少使用Rabin树的SD方案中的标签数的配置。注意此处应用的Rabin树是应用于上述CS方案的Rabin树,即,根据在[2.应用Rabin树配置例子1的CS方案的配置]的条目“(2.1)用于配置Rabin树的示例方法”中描述的算法产生的Rabin树。
即,如已经参考图8到10描述的,该Rabin树是一个树结构,其中在具有N个叶子的二进制树中设置2N-1个|M|-位的数(节点相应值)NVl,NV2,...,NV2N-1,以及2N-2个数(节点增加变量)salt2,salt3,...,salt2N-1,并且具有这样的配置,从而容易从某个节点的NVl和saltl获得其双亲节点的节点相应值,但是逆操作是困难的。在图9中,每个沿着函数f示出的带有箭头的直线表示以低级节点的节点相应值NVl作为输入,通过应用函数f可以获得高级节点的节点相应值。函数f是使用前向计算(平方模M)F的计算。可以根据上述Eq.1,通过应用其公开函数H和模数M,从节点相应值NVl和saltl计算一个节点(孩子节点)的双亲节点的节点相应值。
在图9中,每个沿着函数f-1示出的带有箭头的直线表示以高级节点的节点相应值NVl作为输入,通过应用函数f-1可以获得低级节点的节点相应值。函数f-1是使用逆计算(寻找平方根模M)F-1的计算。为了从高级节点的节点相应值获得其孩子节点的节点相应值,应当知道保密信息p,q(M的素数),并且只有管理中心可以执行该计算。
由具有这种设置的节点相应值NVl构成的单向树被称为“Rabin树”。这是因为Rabin密码术对于加密使用平方模M的操作,并且对于解密使用寻找平方根模M的操作(逆计算)。注意在例如上述的文献A.J.Menzes,P.C.van Oorschot和S.A Vanstone,“Handbook ofApplied Cryptography,”CRC Press,1996中的pp.292-294详细描述了Rabin密码术。
下面将详细描述用于减少使用Rabin树的SD方案中的标签数的配置。
在本发明中,通过将Rabin树应用于相应于节点I和j具有双亲-孩子关系(具有距离1,即,在分层中是连续的)的任意子集的任意标签LABELi,j,并且应用于相应于被设置为用于没有取消的接收器并且因此包括所有接收器的特定情况的子集S1,Φ的标签LABEL1,Φ,减少了由接收器保持的标签数。
应当注意,分层树中定义的节点I和j具有双亲-孩子关系的所有子集Si,j被表示为第一特定子集(特定子集)SSi,j。此处应当提醒的是,树的除了根之外的每个节点仅有一个双亲节点,并且因此j,其取值n=2,3,...,2N-1,仅被在SSi,j中作为j使用一次。另外,子集S1,Φ定义为包括树的所有叶子的整个树集合,并且因此以根为根定义为第二特定子集SS1,Φ。
另外,为相应于第一特定子集SSi,j的标签LABELi,j(j=2,3,...,2N-1),定义了中间标签ILi,j,并且为第二特定子集SS1,Φ定义了中间标签ILi,Φ。
另外,这些中间标签被设置为相应于上述的Rabin树的节点相应值NVl。即,相应于第二特定子集SS1,Φ的中间标签ILi,Φ是Ili,Φ=NVl并且相应于相应于第一特定子集SSi,j(j=2,3,...,2N-1)的中间标签ILi,j定义如下。
设置为相应于任意节点1到2N-1的节点相应值NVj(j=2,3,...,2N-1)被设置为相应于由节点j的兄弟节点和双亲节点指定的第一特定子集SSp(j),S(j)的中间标签Ilp(j),S(j)。即,ILp(j),S(j)=NVj其中j=2,3,...,2N-1应当注意,P(j)是节点j的双亲节点,并且S(j)是节点j的兄弟节点。
通过以另一种方式表述上述处理,Rabin树和中间标签IL之间的相应关系被如下设置。
执行设置,从而ILi,Φ=NVl并且对于j=1,2,3,...,N-1还执行处理,从而ILj,2j=NV2j+1ILj,2j+1=NV2j另外,标签LABELi,j和中间标签ILi,j之间的关系被定义如下。
LABELi,j=Hc(ILi,j)应当注意,函数Hc是用于将大小为|M|的值映射为大小为C的随机值的哈希函数。例如,在C是160位的情况下,上述的函数SHA-1可用作对于任意大小的输入输出160位的值的函数。此外,在C是128位的情况下,MD5等是已知的用作对于任意大小的输入输出128位的值的函数。因此,这些函数是适用的。注意,在上述文献A.J.Menzes,P.C.van Oorschot和S.A Vanstone,“Handbook ofApplied Cryptography,”CRC Press,1996中也详细描述了MD5。
因为节点密钥用于对将要传输到接收器的信息诸如会话密钥加密,其大小C可被确定为等于所使用的加密算法的密钥的大小。例如,如果将具有128位密钥的AES(高级加密标准FIPS197)用作加密算法,C可以设置为128位。
图28中示出了特定的例子。在图28中,作为节点相应值的NVj被分配给节点j551。
节点j551的双亲节点是P(j)552,并且其兄弟节点是S(j)553。图28中示出了由节点j551的兄弟节点S(j)553和双亲节点P(j)552指定的第一特定子集SSp(j),S(j)550。
此时,相应于子集SSp(j),S(j)的标签是LABELp(j),S(j),并且基于中间标签ILp(j),S(j)(这等于节点j551的节点相应值的NVj)计算LABELp(j),S(j)。即,LABELp(j),S(j)=Hc(Ilp(j),S(j))上述表达式等同于LABELp(j),S(j)=Hc(NVj)图29中示出了用于设置节点相应值NVj作为中间标签(IL)的处理例子,其是这样的数据,该数据用于产生(a)在没有取消的接收器并且因此相应于包括所有接收器的整个树的情况下使用的第二特定子集SS1,Φ的标签LABEL1,Φ,和(b)相应于节点I和j具有双亲-孩子关系的任意第一特定子集SSi,j的标签LABELi,j(其中如上所述j=2,3,...,2N-1)。
在图29中,[I NVKj]表示NVK=ILi,j其中I是j的祖先例如,[1 NV32]表示
NV3=IL1,2以这种方式,节点相应值NVj被设置为相应于中间标签的值,从该中间标签可以计算出上述的第一特定子集SSi,j和第二特定子集SS1,Φ的标签。
此外,图29中的N个叶子被编号为leaf1,leaf2,...,leafN(即,最左边的叶子leafl的节点号为N,并且因此leafl的节点号是N-1+i),并且接收器ui被分配给叶子leafi。接收器ui被授予相应于叶子(节点)leafi的值NVN-1+I以及相应于从leafl到根的路径内的节点的logN个节点增加变量saltl。注意节点相应值等于中间标签。当如29所示分配接收器时,分配给作为叶子的节点19的接收器u4被授予节点19的节点相应值NV19和从节点19到根的路径内的节点的节点增加变量salt19、salt9、salt4、salt2。节点相应值NV19相应于中间标签IL9,18。
在这种设置下,通过使用授予的节点相应值NV19(=中间标签IL9,18)和从节点19到根的路径内的节点的节点增加变量salt19、salt9、salt4、salt2,接收器u4可以获得从节点19到根的路径内的所有节点的值,即节点相应值NV(=中间标签IL)。从节点19到根的路径内的节点相应值NV和中间标签IL的对应关系设置如下。
NV19=IL9,18NV9=IL4,8NV4=IL2,5NV2=IL1,3NV1=IL1,Φ根据下面的过程在接收器u4中执行高级节点(节点号=1,2,4,9)的节点相应值NV(中间标签)的计算。
(a1)从节点19的节点相应值NV19(中间标签IL9,18)计算高级节点9的节点相应值NV9(中间标签IL4,8)NV9(=中间标签IL4,8)=((NV9)2+H(19‖salt19))mod M(a2)从节点9的节点相应值NV9(中间标签IL4,8)计算高级节点4的节点相应值NV4(中间标签IL2,5)
NV4(=中间标签IL2,5)=((NV9)2+H(9‖salt9))mod M(a3)从节点4的节点相应值NV4(中间标签IL2,5)计算高级节点2的节点相应值NV2(中间标签IL1,3)NV2(=中间标签IL1,3)=((NV4)2+H(4‖salt4))mod M(a4)从节点2的节点相应值NV2(中间标签IL1,3)计算高级节点1的节点相应值NV1(中间标签IL1,Φ)NV1(=中间标签IL1,Φ)=((NV2)2+H(2‖salt2))mod M通过基于上述表达式的计算,从低级节点的节点相应值计算出了高级节点的节点相应值。
另外,可以从各个节点的节点相应值(中间标签)计算出标签(LABEL)。
(b1)从节点19的节点相应值NV19(中间标签IL9,18)计算节点19的标签(LABEL9,18)LABEL9,18=Hc(IL9,18)(b2)从节点9的节点相应值NV9(中间标签IL4,8)计算节点9的标签(LABEL4,8)LABEL4,8=Hc(IL4,8)(b3)从节点4的节点相应值NV4(中间标签IL2,5)计算节点4的标签(LABEL2,5)LABEL2,5=Hc(IL2,5)(b4)从节点2的节点相应值NV2(中间标签IL1,3)计算节点2的标签(LABEL1,3)LABEL1,3=Hc(IL1,3)(b5)从节点1的节点相应值NV1(中间标签IL1,Φ)计算节点1的标签(LABEL1,Φ)LABEL1,Φ=Hc(IL1,Φ)顺便说明,接收器U4必须秘密地保管节点相应值NV19。但是不必秘密保持节点增加变量salt。
通过采用上述配置,被设置为相应于具有叶子数=N的二进制树配置内的叶子的每个接收器能够基于单个中间标签产生在传统的SD方案中最初应保持的标签LABELi,j中的logN个标签LABELi,j-其中每个标签中的节点I和j具有双亲-孩子关系,以及相应于子集S1,Φ的标签LABEL1,Φ-子集S1,Φ是用于没有取消的接收器并且因此包括所有接收器的特定情况的集合。结果,每个接收器应秘密保持的标签数减少了logN个标签。
此处,考虑每个节点增加变量的大小。某个数是模M的二次剩余的概率大约是1/4。因此,当测试4个saltl值时,可以期望平均至少存在一个saltl从而tmpl是模M的二次剩余,因此可以期望用于表示节点增加变量saltl的大小是2位。
在另一方面,可能存在4个数中没有一个数使得tmpl是二次剩余的情况。例如,当将L个值作为节点增加变量saltl测试时,没有一个tmpl是二次剩余的概率是3L/4L。因此,如果L=4,没有一个tmpl是二次剩余的概率是34/44≈42.2%。然而,假设考虑以8位的值作为节点增加变量saltl,并且测试256个数,没有一个tmpl是二次剩余的概率是3256/4256≈1.0×10-32%,这是一个非常小的值。因此,即使考虑以一个大数诸如230≈109或240≈1012作为叶子数N,在任意节点发现不了节点增加变量saltl从而tmpl是二次剩余的概率是如此之小,以致于可以忽略。
接着,将描述密码文本发布、解密处理,其中将Rabin树配置例子1应用于SD方案。下面顺序地给出关于以下内容的描述。
(11-1)设置处理(11-2)信息发布处理(11-3)接收和解密处理(11-1)设置处理设置处理仅在启动系统时执行一次。在每次发生传输信息时都执行随后的信息发布和接收以及解密处理。例如每次创建其中存储有新内容的信息记录介质诸如DVD盘并且将它们发布给用户时,或是每次通过因特网发布加密内容时都重复执行后面的处理。
通过下面的步骤1-4执行设置处理。将描述每个步骤。
a.步骤1首先,管理中心(TC)定义作为具有N个叶子的二进制树的树。注意,该分层树不同于上述的单向置换树。相应于该分层树中的每个节点的标识符被设置为k(k=1,2,...,2N-1)。然而,根被设置为1,并且对于它的低级节点,以宽度优先的顺序顺序地给出标识符(号码)。即,执行诸如图27中所示的节点号(y)的设置。作为该处理的结果,将节点号y=1到2N-1设置给二进制树中的各个节点。
将接收器um(m=1,2,...,N)分配给该树的各个叶子。在图27的例子中,将16个接收器分配给节点号y=16到31。
接着,对于任意的内部节点I(I=1,2,...,N-1),定义相应于节点I的后代的任意节点j的子集Si,j。另外,将所有上面定义的子集Si,j中节点I和j具有双亲-孩子关系的任意子集表示为第一特定子集(特定子集)SSi,j。应当提醒的是,除了根之外,树的每个节点仅有一个双亲节点,并且因此j,其取值n=2,3,...,2N-1,仅作为SSi,j中的j使用一次。另外,还定义在没有取消的接收器标签因此包括所有接收器的情况下使用的第二特定子集SS1,Φ。
b.步骤2管理中心(TC)首先确定模数M的大小|M|(例如,1024位)。
另外,管理中心确定并公布伪随机数产生器G。该伪随机数产生器G是前面参考图22描述的伪随机数产生器G,它根据C位的输入输出3C位的伪随机数,并且因此类似于上述SD方案中应用的并且在Noar等的文献中解释的伪随机数产生器。
接着,通过使用树结构的叶子数N,模数M的大小|M|作为输入,管理中心(TC)根据参考图8描述的算法确定用于根据任意大小的值输出ZM的随机元素的模数M和映射函数H,以便产生作为具有N个叶子的二进制树的Rabin树。首先,管理中心随机选择值NV1∈Z*M作为根的节点相应值,之后它确定相应于节点1到2N-1的节点相应值,即,2N-1个|M|-位的数(节点相应值)NVl,NV2,...,NV2N-1,以及2N-2个数(节点增加变量)salt2,salt3,...,salt2N-1。因为salt不是保密的,管理中心(TC)可以公布这些值。另外,管理中心(TC)公布模数M和映射函数H。另外,它确定并公布用于将大小为|M|的值映射为大小为C的随机数的函数Hc。
管理中心(TC)将在上述处理中确定的节点相应值NV1设置为中间标签IL,作为用于产生在没有取消的接收器并且因此包括所有接收器的情况下使用的第二特定子集SS1,Φ的标签LABEL1,Φ的数据。即,IL1,Φ=NV1另外,将第二特定子集SS1,Φ标签LABEL1,Φ设置为对上述的IL1,Φ进行计算(Hc)计算出的值。即,LABEL1,Φ=Hc(IL1,Φ)另外,对于相应于所有子集Si,j当中的节点I和j具有双亲-孩子关系的第一特定子集SSi,j的标签,如下那样确定作为它们的产生器数据的中间标签ILi,j。即,通过上述的Rabin树产生处理(见图8)被设置为相应于节点1到2N-1的值的节点相应值NV1到VN2N-1中的除了根的节点相应值NV1之外的任意NVj(j=2,3,...2N-1)被设置为相应于由节点j的兄弟节点和双亲节点指定的第一特定子集SSp(j),S(j)的中间标签ILp(j),S(j)。即,NVj=ILp(j),S(j)注意,p(j)是节点j的双亲节点,并且S(j)是节点j的兄弟节点。
此外,LABELp(j),S(j)被设置为是可基于中间标签ILp(j),S(j)(这等于用于节点j551的节点相应值NVj)计算出的值。即,LABELp(j),S(j)=Hc(ILp(j),S(j))上述表达式等同于LABELp(j),S(j)=Hc(NVj)通过以另一种方式表述上述处理,Rabin树中的节点相应值NV和中间标签IL之间的相应关系被如下设置。
ILi,Φ=NVl此外,执行处理,从而ILj,2j=NV2j+1ILj,2j+1=NV2j并且进一步使用用于设置相应于各个特定子集的标签LABELi,j的下面的表达式,根据中间标签ILi,j计算相应于这些特定子集的标签LABELi,j。
LABELi,j=Hc(ILi,j)c.步骤3接着,管理中心(TC)将节点I和j具有双亲-孩子关系的第一特定子集SSi,j的标签ILi,j输入伪随机数产生器G,以便获得如果以节点I为初始点,节点j的孩子节点的标签LABELi,LC(j)和LABELi,RC(j)。
即,将表示通过将C位的LABELi,j输入伪随机数产生器G而获得的3C位随机数的高位的C位的GL(LABELi,j)设置为如果以节点I为初始点,相应于节点j的左孩子节点LC(j)的(非特殊)子集Si,LC(j)的标签LABELi,LC(j)。另外,将表示通过将C位的LABELi,j输入伪随机数产生器G而获得的3C位随机数的低位的C位的GR(LABELi,j)设置为如果以节点I为初始点,相应于节点j的右孩子节点RC(j)的(非特殊)子集Si,RC(j)的标签LABELi,RC(j)。即,标签被分别设置为LABELi,LC(j)=GL(LABELi,j)LABELi,RC(j)=GR(LABELi,j)另外,通过反复地将这些输出(标签)输入伪随机数产生器G,获得如果以节点I为初始点,相应于节点j的所有后代节点的标签。对所有特殊子集SSi,j的标签执行该处理,以便获得在步骤1定义的所有子集SSi,j的标签。
d.步骤4接着,管理中心(TC)确定用于提供给接收器um的标签,即,由接收器um保持的标签。
首先,选择在原始SD方案中授予接收器um的标签作为试验性选择的标签。它们是子集SSi,j的标签LABELi,j,以及相应于上述的第二特定子集SS1,Φ标签LABEL1,Φ。子集SSi,j中的每一个开始于分配有接收器um的叶子到根的路径m(路径-m)内的每个内部节点I,并且子集SSi,j中的每一个相应于从该叶子到I的路径内的任意节点直接分支出的节点j。
参考图30等,将描述确定用于提供给接收器的标签的处理。例如,作为相应于图30的节点号19的接收器u4的试验性选择的标签,选择了11个标签,它们是LABEL1,3、LABEL1,5、LABEL1,8、LABEL1,18、LABEL2,5、LABEL2,8、LABEL2,18、LABEL4,8、LABEL4,18、LABEL9,18、LABEL1,Φ。
管理中心(TC)从这些试验性选择的标签中重新选择用于提供给接收器um的标签。注意,上述的11个试验性选择的标签中的节点I和j具有双亲-孩子关系的第一特定子集SSi,j的标签共有4个LABEL1,3、LABEL1,5、LABEL2,5、LABEL4,8、LABEL9,18。
管理中心(TC)将这些试验性选择的标签中的通过排除相应于上述第一第二特定子集的那些标签而获得的标签指定为最后选择的用于,即,提供给接收器u4的标签。
另外,管理中心(TC)将开始于分配有该接收器的叶子j的双亲节点P(j),并且相应于j的兄弟节点S(j)的特定子集SSp(j),S(j)的中间标签ILp(j),S(j)(=节点相应值NVj)授予该接收器。在上面的例子中,管理中心(TC)将IL9,18(=节点相应值NV19)授予接收器u4。接收器秘密保持授予的标签和中间标签(=节点相应值NV)。
即,首先,作为接收器u4必须具有的标签(LABEL),将具有下列“i,j”对的标签LABELi,j指定为试验性选择的标签。
j=3,5,8,18对于i=1j=5,8,18对于i=2j=8,18对于i=4j=18对于i=9
一个用于没有取消情况的LABEL接着,从上述11个试验性选择的标签中,将通过排除相应于上述第一和第二子集的标签而获得的标签以及该单个中间标签指定为用于,即,提供给接收器u4的最后选择的标签。即,将具有下列“i,j”对的标签LABELi,j指定为用于提供的标签。
j=5,8,18对于i=1j=8,18对于i=2j=18对于i=4中间标签IL9,18(=节点相应值NV19)上述6个标签和一个中间标签被指定为用于提供的标签。
应当注意,在除了上面例子中示出的接收器u4之外的任意接收器中,在N=16的设置配置中被授予了6个标签和一个中间标签(=节点相应值NV),虽然授予的6个标签和一个中间标签(=节点相应值NV)的组合从一个接收器到另一个接收器发生变化。
应当注意,被设置为用于提供给接收器um的一个中间标签(=节点相应值NV)是相应于由分层树中最接近接收器um的祖先定义的第一特定子集的中间标签ILi,j(=节点相应值),即,节点I和j具有双亲-孩子关系的第一特定子集SSi,j(其中如上所述j=2,3,...,2N-1)中的一个。即,用于提供给相应于分层树中的叶子的接收器的一个中间标签是相应于上述第一特定子集Si,j的最低的一个的中间标签。
图31中示出了管理中心(TC)在上面的设置中执行的处理的流程。首先,在步骤S501,管理中心定义分层树配置。在步骤S502,它还定义子集,使其相应于设置的分层树。可以任意定义所述子集。可以这样设置子集,从而可以单独地取消任意叶子,或可以这样设置,从而例如根据将发布的信息将特定叶子分组到取消单元内。
接着,在步骤S503,管理中心设置参数并且产生单向树。此处,将作为参数的叶子数=N,模数M的大小|M|作为参数输入,以便根据前面参考图8的流程描述的算法产生作为具有N个叶子的二进制树的Rabin树,以便计算相应于各个节点j的节点相应值NVj。注意此处各个节点j的节点相应值NVj满足表达式(Eq.1)。
在步骤S504,管理中心将节点相应值NVj设置为中间标签的值,并且基于这些中间标签(IL)计算相应于特定子集的标签。即,IL1,Φ=NV1此外,对于y=1,2,...,N-1,其设置成使得ILj,2j=NV2j+1ILj,2j+1=NV2j应当注意,此处将获得的中间标签是相应于下面的中间标签(a)没有取消的接收器并且因此包括所有接收器的情况下使用的第二特定子集SS1,Φ,和(b)节点I和j具有双亲-孩子关系的任意第一特定子集SSi,j(其中如上所述j=2,3,...,2N-1)另外,基于这些中间标签,计算相应于特定子集的标签。相应于特定子集的标签是基于所述中间标签计算出的。即,使用下面的表达式,根据中间标签ILi,j计算相应于这些特定子集的标签LABELi,j。
LABELi,j=Hc(ILi,j)从而,它们被设置为相应于各个特定子集的标签LABELi,j。
接着,在步骤S505,管理中心基于相应于特定子集的标签计算不相应于所述特定子集的标签。例如,将第一特定子集SSi,j的标签LABELi,j输入伪随机数产生器G,以获得如果以节点I为初始点,节点j的孩子节点的标签LABELi,LC(j)和LABELi,RC(j)。并且通过反复执行该处理,计算相应于设置的子集的所有标签。
接着,在步骤S506,管理中心公布参数。公布的参数包括,例如,模数M。另外,在步骤S507,它还公布伪随机数产生器G,用于将任意大小的值映射为ZM的随机元素的映射函数H,以及用于将大小为|M|的值映射为大小为C的随机数的函数Hc。
在步骤S508,管理中心选择用于提供给被设置为相应于分层树的叶子的各个接收器的标签和中间标签。如前面所述,这部分处理被作为涉及试验性选择的标签和选择用于提供的标签的两步处理执行。
即,首先,作为接收器um需要具有的标签(LABEL),选择在原始SD方案中授予的标签,即,子集SSi,j的标签LABELi,j以及相应于上述的第二特定子集SS1,Φ标签LABEL1,Φ作为试验性选择的标签。子集SSi,j中的每一个开始于分配有接收器um的叶子到根的路径m(路径-m)内的每个内部节点I,并且子集SSi,j中的每一个相应于从该叶子到I的路径内的任意节点直接分支出的节点j。之后,将通过排除相应于第一第二特定子集的上述标签而获得的标签LABELi,j和一个中间标签(=节点相应值NV)设置为用于提供的标签。
设置为用于提供的一个中间标签是相应于由分配有接收器um的叶子n的双亲节点和兄弟节点定义的第一特定子集的中间标签ILi,j(=节点相应值NV),即,第一特定子集SSi,j(其中由于j是叶子,j=N,N+1,...,2N-1),其中节点I是节点n的双亲节点,标签节点j是节点n的兄弟节点。例如,用于提供给如图30中所示被设置为节点号19的接收器u4的中间标签是中间标签IL9,18(=节点相应值NV19)。
在步骤S509,管理中心将在步骤S508确定的用于提供给接收器的标签提供给接收器,之后,它结束处理。注意,或是通过将所述标签在接收器的制造过程中预先存储在防篡改存储器内,或是通过使用诸如保密通信通道或不会发生信息泄露的介质的装置提供所述标签。注意,图31中示出的处理流程中的步骤不必是该顺序。
(11-2)信息发布处理接着,将描述在上述的设置处理之后执行的保密信息传输处理。由广播至少一个密码文本的管理中心(TC)执行信息发布,即保密信息的传输。通过使用子集密钥之一对保密信息加密获得各个密码文本。例如,由通过分别使用不同的子集密钥对同一保密信息加密而获得的一组多个密码文本构成管理中心传输的保密信息。
例如,如果该保密信息是密钥,即,将用于解密加密内容的内容密钥Kc,管理中心产生并提供通过以多个子集密钥加密内容密钥Kc而获得的一组密码文本。例如,产生并且通过网络发布或以存储它们的记录介质提供密码文本
E(SKa,b,Kc)、E(SKc,d,Kc)、E(SKe,f,Kc)。
注意,E(A,B)的含意是以密钥A加密的数据B。上述的例子表示由通过应用3个不同的子集密钥加密的3个密码文本构成的密码文本组。
子集密钥SKa,b、SKc,d、SKe,f分别是相应于为了将特定的设备设置为取消的设备,由管理中心(TC)选择的子集的子集密钥。
除了取消的设备之外的接收器可以基于该接收器保持的标签(所述标签和一个中间标签)产生用于加密密码文本的任意子集密钥,并且仅有被授权的除了取消的设备之外的被选择的接收器可以通过解密包括在E(SKa,b,Kc)、E(SKc,d,Kc)、E(SKe,f,Kc)内的任意密码文本获得内容密钥Kc。
图32中示出了用于在接收器的总数被设置为N=16的分层树配置中取消接收器u5,u11,u12的子集。用于取消接收器u5,u11,u12的子集是2个子集,它们是图32中示出的S2,20和S3,13。
未取消的接收器被包括在2个子集S2,20和S3,13的任意一个内,并且取消的接收器u5,u11,u12不被包括在它们中的任意一个内。因此,如果使用相应于这些子集的子集密钥SK2,20和SK3,13加密保密信息并且传输该保密信息,仅有未取消的接收器可以对密码文本解密以便获得该保密信息。
参考图33所示的流程描述用于信息发布处理的过程。将描述图33中示出的流程内的每个步骤。
首先在步骤S601,管理中心(TC)选择取消的接收器,即,不将传输的保密信息提供给它们的被排除的装置。注意,将所有接收器分别设置为相应于分层树的叶子。
接着,在步骤S602,相应于确定的取消的接收器,管理中心基于分层树中的叶子的位置确定在发布该保密信息时所应用的子集。例如,在图32的例子中,接收器u5,u11,u12被选择为取消的接收器,并且将要应用的子集是2个子集S2,20和S3,13。
在步骤S603,管理中心选择相应于确定的子集的子集密钥。管理中心(TC)预先保持相应于所述子集的子集密钥。例如,在图32的例子中,选择相应于2个子集S2,20和S3,13的2个子集密钥SK2,20和SK3,13。
接着,在步骤S604,管理中心通过使用在步骤S603中选择的子集密钥加密保密信息产生密码文本组。例如,在图32的例子中,通过使用2个子集密钥SK2,20和SK3,13加密保密信息产生密码文本组。在图32的例子中,通过使用2个子集密钥SK2,20和SK3,13加密保密信息(即,内容密钥Kc)产生下面的密码文本组。
E(SK2,20,Kc)、E(SK3,13,Kc)在步骤S605中,管理中心将在步骤S604产生的密码文本组传输(广播)到接收器。传输的密码文本由仅能由除了取消的装置之外的接收器解密的密码文本构成。取消的装置不能对任何密码文本解密,并且因此可以实现保密信息的发布。
应当注意,在密码文本的传输中,包括在每个密码文本内的作为关于子集相应密码文本安排信息的子集指定信息可以被一起传输。基于该指定信息,每个接收器可以容易地提取应用了其自己可产生的子集密钥的密码文本。因此作为一种特定的方案,可以应用例如日本专利申请公开号2001-352322中公开的使用密钥指定代码的配置。
应当注意,用于加密的子集密钥可以是在设置阶段由管理中心(TC)产生并保管的密钥,或可以是通过使用伪随机数产生器G根据在设置阶段产生的基于子集的标签得出的密钥。
应当注意,如果没有取消的接收器,则使用上述的第二特定子集SS1,Φ的子集密钥SK1,Φ=GM(LABEL1,Φ)=GM(Hc(IL1,Φ))对保密信息加密。
(11-3)接收和解密处理任意未取消的接收器仅属于一个上述子集。因此,如果对使用相应于该子集的子集密钥产生的密码文本进行解密,接收器可以获得保密信息。接收器为了寻找解密的密码文本,接收器仅必须使用上述的子集指定信息。在指定密码文本之后,接收器从其拥有的任意标签或中间标签得出子集密钥,并且使用该子集密钥对密码文本解密。下面将描述一种用于得出子集密钥的方法。
首先,接收器um确定相应于将为应用密码文本解密处理而获得的任意子集密钥Ski,j的子集Si,j的节点j是否落在下面的(A)或(B)内。
接收器判断节点j是否(A)是节点k的后代,接收器直接具有节点k的标签LABELi,k(包括j=k的情况),或(B)与节点k匹配,节点k是节点I的孩子节点之一,并且是不存在于分配有该接收器的叶子n到根的路径内的节点(即,存在于该路径内的节点I的孩子节点的兄弟节点),或是其后代节点(即,节点j是构成在SD方案中接收器um被授予的标签的子集中的任意第一子集SSi,k的节点k的后代)。
应当注意,如果没有取消的接收器并且因此将第二特定子集SS1, Φ的子集密钥SK1,Φ用于加密,节点j被认为落在(B)之下。
在情况(B)中,如下所述,从授予接收器的中间标签ILp(j),S(j)得出特定子集SSi,k的中间标签。
首先,如果I=P(n),j=k=S(n),接收器已经具有了该中间标签(=节点相应值NV),并且因此不需要做任何特殊处理。否则,接收器对中间标签ILp(j),S(j)应用公开函数F,即,上述的(Eq.1),以便顺序地计算相应于高级子集的中间标签(=节点相应值NV)。对于由接收器拥有的中间标签ILp(j),S(j),可以由下面的表达式得出开始于分配有该接收器的叶子的双亲节点P(n)的双亲节点P(P(n)),并且相应于节点P(n)的兄弟节点S(P(n))的特定子集SSP(P(n)), S(P(n))的中间标签ILP(P(n)),S(P(n)),其中以中间标签代替上面的Eq.1中的节点相应值NV,即,[数学式65]ILP(P(n)),S(P(n))=(ILP(n),S(n))2+H(n‖saltn))mod M...(Eq.5)
这基于前面所述的用于Rabin树中的节点相应值的上述关系表达式(Eq.1)。
另外,基于低级节点的节点相应值NV(中间标签)计算高级节点的节点相应值NV(中间标签)。例如,根据下面的表达式在图30中示出的接收器u4中执行高级节点(节点号=1,2,4,9)的节点相应值NV(中间标签)的计算。
(a1)VN9(=中间标签IL4,8)=((VN19)2+H(19‖salt19)mod M(a2)VN4(=中间标签IL2,5)=((VN9)2+H(9‖salt9)mod M(a3)VN2(=中间标签IL1,3)=((VN4)2+H(4‖salt4)mod M(a4)VN1(=中间标签IL1,Φ)=((VN2)2+H(2‖salt2)mod M通过基于上述表达式的计算,从低级节点的节点相应值计算出高级节点的节点相应值,并且另外可以由下面的表达式从各个节点的节点相应值(中间标签)计算标签(LABEL)。
(b1)LABEL9,18=Hc(IL9,18)(b2)LABEL4,8=Hc(IL4,8)(b3)LABEL2,5=Hc(IL2,5)(b4)LABEL1,3=Hc(IL1,3)(b5)LABEL1,Φ=Hc(IL1,Φ)以这种方式,可由下面的表达式获得开始于某个节点y和其双亲节点(当y存在时,节点P(y)的双亲节点P(P(y))),并且相应于P(y)的兄弟节点S(P(y))的特定子集SSP(P(n)),S(P(n))的中间标签ILP(P(n)),S(P(n))。
ILP(P(y)),S(P(y))=(ILP(y),S(y))2+H(y‖salty))mod M注意,此处节点y包括存在于分配有该接收器的叶子到根的路径内的节点。
此外,对于中间标签IL1,2或中间标签IL1,3,可由下面的表达式获得相应于第二特定子集SS1,Φ的中间标签IL1,Φ=K。
IL1,Φ=((IL1,2)2+H(3‖salt3)mod M
IL1,Φ=((IL1,3)2+H(2‖salt2)mod M参考图32描述由接收器执行的特定中间标签获取处理。分配给叶子19的接收器u4保持有中间标签IL9,18。通过使用作为公开参数的模数M、加密指数e以及节点数进行计算,接收器可以获得由节点9的双亲节点4和兄弟节点8确定的子集S4,8的中间标签IL4,8。
IL4,8=((IL9,18)2+H(19‖salt19)mod M类似地,接收器可以获得由节点4的双亲节点2和兄弟节点5确定的子集S2,5的中间标签IL2,5。
IL2,5=((IL4,8)2+H(9‖salt9)mod M通过重复该处理,接收器可以获得高级中间标签IL1,3和IL1,Φ。
一旦接收器以上述方式得出了相应于任意子集Si,k的中间标签ILi,k,则接收器获得标签LABELi,kLABELi,k=Hc(ILi,k)然后,如前面参考图22所述,接收器使用伪随机数产生器G获得所需子集Si,j的标签LABELi,j,并且进一步通过下式获得该子集的子集密钥SKi,j,以便使用该子集密钥SKi,j对密码文本解密。
SKi,j=GM(LABELi,j)将参考图34描述子集密钥推导处理的特定例子。如图34所示,假设取消了接收器u2,u11,u12,并且使用相应于子集S2,17和子集S3,13的子集密钥对密码文本加密,并且通过广播将其发布。
接收器u4保保持6个标签LABEL1,5、LABEL1,8、LABEL1,18、LABEL2,8、LABEL2,18、LABEL4,18,以及一个中间标签IL9,18,可以从它们得出IL1,Φ,IL1,3,IL2,5,IL4,8。接收器u4相应于上述的(A)。即,对于子集S2,17,接收器u4直接保持使用节点17的祖先的节点8的标签LABEL2,8,并且因此通过对该标签使用所需次数的伪随机数产生器G,接收器u4可以获得子集密钥SK2,17。
此外,在同样的设置下,接收器u5保保持6个标签LABEL1,4、LABEL1,11、LABEL1,21、LABEL2,11、LABEL2,21、LABEL5,21以及一个中间标签IL10,21(=节点相应值NV20),可以从它们得出IL1,Φ,IL1,3,IL2,4,IL5,11。接收器u5相应于上述的(B)。即,对于子集S2,17,接收器u4不直接保持使用节点17的祖先的节点k的标签LABEL2,k。因此,接收器首先使用前面所述的技术从其保持的中间标签IL10,21(=节点相应值NV20)得出相应于节点17的祖先的节点4的中间标签IL2,4,并且然后获得标签LABEL2,4,之后通过对该标签应用所需次数的伪随机数产生器G,可以得出子集密钥SK2,17。
如果没有取消的接收器并且因此将第二特定子集SS1,Φ用作子集,接收器um通过上述处理,获得中间标签IL1,Φ(节点相应值NV1),并且使用该中间标签,接收器计算标签LABEL1,Φ。
标签LABEL1,Φ=Hc(IL1,Φ)并且然后,将其输入伪随机数产生器G,以便获得其输出的中间部分的C位。即,接收器通过下式获得相应于子集S1,Φ的子集密钥SK1,Φ。
SK1,Φ=GM(LABEL1,Φ)并且使用该密钥解密密码文本。
参考图35的流程图描述通过由接收器执行的子集密钥获取和密码文本解密处理进行的密码文本接收的过程。
当已在步骤S701接收了密码文本时,接收器在步骤S702从构成多个密码文本的密码文本组中确定多个密码文本中的它将解密的一个密码文本。这是提取以它可以产生的子集密钥加密的密码文本的处理。此处接收器不能确定用于解密的秘文意味着该接收器被取消了。基于例如与密码文本一起传递的子集指定信息执行密码文本选择处理。
一旦已经确定了密码文本,接收器在步骤S703使用上述的技术得出用于加密该密码文本的子集密钥。
将参考图36描述子集密钥推导处理的详细过程。首先,在步骤S801,接收器um判断相应于将为应用密码文本解密处理而获得的任意子集密钥Ski,j的子集Si,j(A)是节点k的后代,接收器直接具有用于节点k的标签LABELi,k(包括j=k的情况),或
(B)与节点k匹配,节点k是节点I的孩子节点之一,并且是不存在于分配有该接收器的叶子n到根的路径内的节点(即,存在于该路径内的节点I的孩子节点的兄弟节点),或是其后代节点(即,节点j是构成在SD方案中接收器um被授予的标签的子集中的任意第一子集SSi,k的节点k的后代)。
应当注意,如果没有取消的接收器并且因此将第二特定子集SS1, Φ的子集密钥SK1,Φ用于加密,节点j被认为落在(B)之下。
在情况(A)中,处理进入步骤S803,其中基于由该接收器拥有的标签,接收器通过应用所需次数的伪随机数产生器G获得所需的子集密钥。
在情况(B)中,处理进入步骤S804,其中接收器基于中间标签ILp(n),S(n)(=节点相应值NV)通过应用上述表达式(Eq.1(=Eq.5))计算相应于特定子集的所需的中间标签。另外,在步骤S805,接收器通过使用在步骤S806计算出的中间标签,计算相应于该子集的标签LABEL,并且在步骤S806基于计算出的标签通过应用伪随机数产生器G获得所需的子集密钥。
返回图35的流程,通过上述处理得出子集密钥的接收器在步骤S704使用在步骤S703中得出的子集密钥对在步骤S702从密码文本组中选择的密码文本进行解密,以便获得传输的保密信息。该保密信息是,例如,用于解密加密的电视广播内容的内容密钥。并且在该情况中,接收器接收加密内容,并且使用该内容密钥对其解密以便输出。
接着,参考图37、38,将描述用于执行标签设置处理、密码文本产生处理的信息处理装置的功能配置,以及作为执行密码文本解密处理的接收器的信息处理装置的功能配置。
首先,参考图37,将描述用于执行标签设置处理、密码文本产生处理的信息处理装置的配置。信息处理装置710具有单向树(Rabin树)产生装置711、中间标签和标签产生装置712、用于提供的标签确定装置713、密码文本产生装置714、密码文本提供装置715。
信息处理装置710是用于执行处理以便通过应用基于分层树配置的广播加密方案,提供仅可由除了被排除的(取消的)装置之外的某些被选择的装置解密的密码文本的信息处理装置。单向树(Rabin树)产生装置711产生作为单向树的Rabin树,通过该树可以通过应用至少一个低级节点的节点相应值NV和节点增加变量salt得出(见Eq.1)相应于构成该分层树的节点的节点相应值NV。
中间标签和标签产生装置712将分别相应于基于应用了分层树的SD(子集差)方案设置的子集的标签(LABEL)中的相应于特定子集的标签的值设置为基于中间标签计算出的值。
由中间标签和标签产生装置712选择的每个特定子集至少是下面的子集之一第一特定子集,它是子集Si,j中的通过从分层树中的以节点I为根的子树中排除以低于节点I的节点j为根的子树定义的子集,并且其中在分层树中节点I和j具有直接后代双亲-孩子关系,以及第二特定子集,它是被定义为包括二进制树中的所有叶子并且因此以根为根的整个树集合的子集S1,Φ。
中间标签和标签产生装置712产生使用哈希函数H得出的分别相应于基于应用分层树的SD(子集差)方案而设置的子集的标签(LABEL)中的相应于相应于特定子集的标签的中间标签,作为Rabin树的节点相应值NV。
具体地,单向树(Rabin树)产生装置711产生Rabin树,其中根据前面参考图8的流程描述的算法设置节点相应值,以便计算每个节点相应值。中间标签和标签产生装置712将节点相应值设置为相应于特定子集的一个中间标签。即,节点相应值被用作一个中间标签,从该中间标签可以计算出上述第一特定子集SSi,j和第二特定子集SS1,Φ的标签。
另外,基于该中间标签使用映射函数Hc计算特定子集的标签。此后,通过将伪随机数产生器G应用于这些相应于特定子集的标签的计算,分别顺序地计算相应于所述子集的标签。这是前面参考图22描述的处理。
用于提供的标签确定装置713执行处理,以便确定提供给相应于分层树的终端节点的接收器的标签。用于提供的标签确定装置713确定不相应于特定子集的非相应特定子集标签,以及一个可以根据其计算出相应于特定子集的标签的中间标签(=节点相应值),作为提供给接收器的标签。
由用于提供的标签确定装置713执行的处理如下。首先,将以从分配有接收器um的叶子到根的路径m(路径-m)内的任意内部节点I开始,并且相应于从该叶子到I的路径内的任意节点直接分支出的节点j的子集Si,j的标签LABELi,j和相应于在没有取消的接收器并且因此相应于包括所有接收器的整个树的情况下使用的子集SS1,Φ的标签LABEL1,Φ设置为试验性选择标签。然后,从这些试验性选择标签中,选择不相应于特定子集的非相应特定子集标签作为提供的标签。另外,选择一个中间标签(=节点相应值),根据该中间标签可以计算相应于特定子集的标签。将这些确定为提供给接收器um的最后标签。
密码文本产生装置714通过选择性地应用可从中间标签和标签产生装置712产生的标签得出的子集密钥执行加密处理,以便产生密码文本。密码文本提供装置715通过网络或存储它们的介质提供这样产生的密码文本。
接着,参考图38描述作为用于执行密码文本解密处理的接收器的信息处理装置的功能配置。
作为用于执行密码文本解密处理的接收器的信息处理装置720具有密码文本选择装置721、标签计算装置722、子集密钥产生装置723、解密装置724、标签存储器725。
作为用于执行密码文本解密处理的接收器的信息处理装置720是用于执行处理,以便对以分别相应于基于SD(子集差)方案-一种基于分层树配置的广播加密方案-设置的子集的子集密钥加密的密码文本解密的信息处理装置720。密码文本选择装置721从用于处理的密码文本中选择通过应用这样的子集密钥产生的密码文本,可以基于保持在其标签存储器725内的任意标签或可从其保持的一个中间标签计算出的任意标签的伪随机数产生处理,得出该子集密钥。
如果应用于密码文本的子集密钥不是可由基于保持的标签的伪随机数产生处理得出的子集密钥,标签计算装置722执行基于授予该接收器的中间标签ILP(n),S(n)(=节点相应值NVn)的计算处理,以便计算相应于特定子集的所需的中间标签。
具体地,通过基于授予该接收器并且存储在标签存储器725内的中间标签ILP(n),S(n)(=节点相应值NVn)应用上述表达式(Eq.5),计算相应于特定子集的所需的中间标签。另外,通过将映射函数Hc应用于计算出的中间标签的计算,计算出相应于该子集的标签LABEL。
子集密钥产生装置723通过基于存储在标签存储器725内的标签,或是由标签计算装置722从中间标签计算出的标签LABEL应用伪随机数产生器G,获得所需的子集密钥。
解密装置742基于由子集密钥产生装置723计算出的子集密钥执行密码文本解密处理。
在图39中,示出了信息处理装置800的硬件配置的例子,信息处理装置800执行密码文本产生处理,并且起执行密码文本解密处理的接收器的作用。不一定配备图中由虚线包围的方框。例如,如果接收器800是光盘播放器等,则配备有介质接口807。如果接收器800与其它装置交换信息或通过天线接收信号,则配备有输入/输出接口803。密钥项是安全存储单元804,其中安全地保管着在设置阶段由管理中心(TC)授予的数据,例如,节点密钥、节点相应值或标签。
信息处理装置800包括,如图39所示,控制器801、计算单元802、输入/输出接口803、安全存储单元804、主存储单元805、显示设备806、介质接口807。
控制器801包括具有作为根据计算机程序执行数据处理的控制单元的功能的CPU。计算单元802起专用的计算单元和用于例如产生加密密钥、产生随机数和执行加密处理的加密处理单元的作用。单元802执行标签和中间标签计算处理、基于标签的子集密钥计算处理。另外,如果信息处理装置800是作为接收器的信息处理装置,则单元802执行基于子集密钥的密码文本解密处理。
输入/输出接口803是处理从输入装置诸如键盘、鼠标输入的数据,输出到外部输出装置的数据、通过网络的数据传输/接收处理的接口。
如果信息处理装置800是用于执行密码文本产生处理的信息处理装置,在CS方案中安全存储单元804存储将要安全或秘密保持的数据,诸如例如,节点密钥、在设置阶段产生的各种ID。并且在SD方案中安全存储单元804存储一个中间标签(可从该中间标签产生相应于从所述子集中选择的特定子集的标签(LABEL))以及不相应于所述特定子集的标签(LABEL)。
应当注意,如果在CS方案中信息处理装置800是作为接收器的信息处理装置,存储在安全存储单元804内的节点密钥仅是包括在相应于接收器um的路径节点m[路径节点-m]内的节点的节点密钥中的那些不能基于单向函数F从保持的节点密钥计算出的节点密钥。此外,在SD方案中,存在将要安全地或秘密地保持的存储数据,诸如,由管理中心(TC)授予的节点相应值(中间标签)、标签、各种ID。对于中间标签,存储中间标签-可从该中间标签产生相应于从所述子集中选择的特定子集的标签(LABEL)-和不相应于于所述特定子集的标签(LABEL)。
如果信息处理装置800是用于执行密码文本产生处理的信息处理装置,并且被配置为准备用于SD方案,存储在安全存储单元804内的基于中间标签产生的标签是相应于特定子集的标签(LABEL),具体地它们是相应于下面的特定子集(a)、(b)的标签。
(a)第一特定子集,它是子集Si,j中的通过从分层树中的以节点I为根的子树中排除以低于节点I的节点j为根的子树定义的子集,并且其中在分层树中节点I和j具有直接后代双亲-孩子关系,以及(b)第二特定子集,它是被定义为包括二进制树中的所有叶子并且因此以根为根的整个树集合的子集S1,Φ。
主存储装置805是用于,例如,由控制器801执行的数据处理程序、临时存储的处理参数、用于程序执行的工作区域等的存储器区域。安全存储单元804和主存储单元805是包括例如,RAM、ROM等的存储器。显示设备806用于输出加密的内容等。介质接口807提供用于诸如CD、DVD、MD的介质的读/写功能。
接着,描述将Rabin树配置例子2应用于SD方案的密码文本发布、解密处理的例子。此处应用的Rabin树是前面所述的Rabin树配置例子2,即,[5.应用Rabin树配置例子2的CS方案的配置]中描述的Rabin树配置例子2,并且因此是根据参考图17的流程描述的算法产生的Rabin树。应用Rabin树配置例子2的SD方案的密码文本发布、解密处理包括下面的阶段。
(12-1)设置处理(12-2)信息发布处理(12-3)接收和解密处理因为“(12-1)设置处理”和“(12-2)信息发布处理”基本上类似于前面的条目[11.密码文本发布、解密处理,其中将Rabin树配置例子1应用于SD方案]中描述的设置和信息发布,以简单的方式描述这些步骤。
(12-1)设置处理除了设置上面[5.应用Rabin树配置例子2的CS方案的配置]中所述的Rabin树配置的处理之外,设置处理基本上类似于在上述的[11.密码文本发布、解密处理,其中将Rabin树配置例子1应用于SD方案]中的条目“(11-1)设置处理”中所描述的。该设置仅在启动系统时执行一次。在每次发生传输信息时都执行后续的信息发布和接收以及解密处理。例如每次传递其中存储有新内容的信息记录介质诸如DVD时,或每次通过网络发布新信息时执行后面的处理。
根据前面参考图17描述的处理序列设置Rabin树配置例子2。结果,设置了如图9所示的作为单向树的Rabin树。分别设置其节点使其相应于|M|-位的数(节点相应值)NVl,NV2,...,NV2N-1,以及2N-2个数(节点增加变量)salt2,salt3,...,salt2N-1。该设置使得容易从某个节点的节点相应值NVl和节点增加变量saltl获得其双亲节点的节点相应值,但是逆操作是困难的。
由管理中心(TC)执行的设置处理的流程类似于前面所述的图31的流程。然而,存在这样的差别,即,步骤S501内的分层树设置是根据参考图17的前面所述的处理序列的Rabin树配置例子2。
(12-2)信息发布处理由广播至少一个密码文本的管理中心(TC)执行信息发布,即保密信息的传输。该处理类似于[11.密码文本发布、解密处理,其中将Rabin树配置例子1应用于SD方案]中的条目“(11-2)信息发布处理”中所描述的。
通过以子集密钥中的一个子集密钥对保密信息加密获得各个密码文本。例如,由分别使用不同的子集密钥加密用于传输的同一保密信息而获得的一组多个密码文本构成管理中心传输的保密信息。
例如,如果该保密信息是密钥,即,将用于解密加密内容的内容密钥Kc,管理中心产生并提供通过以多个子集密钥加密内容密钥Kc而获得的一组密码文本。例如,产生并且通过网络发布或存储它们的记录介质提供密码文本E(SKa,b,Kc)、E(SKc,d,Kc)、E(SKe,f,Kc)。
应当注意,E(A,B)的含意是以密钥A加密的数据B。上述的例子表示由通过应用3个不同的子集密钥加密的3个密码文本构成的密码文本组。
子集密钥SKa,b、SKc,d、SKe,f分别是相应于为了将特定的设备设置为取消的设备由管理中心(TC)选择的子集的子集密钥。
除了取消的设备之外的接收器可以基于该接收器保持的标签(所述标签和一个中间标签)产生用于加密密码文本的任意子集密钥,并且仅有除了取消的设备之外的被授权的、被选择的接收器可以通过解密包括在E(SKa,b,Kc)、E(SKc,d,Kc)、E(SKe,f,Kc)内的任意密码文本获得内容密钥Kc。
如前面参考图32所述,在接收器总数被设置为N=16的分层树配置中,用于取消的接收器u5,u11,u12的子集是2个子集,它们是图32中示出的S2,20和S3,13。
未取消的接收器被包括在2个子集S2,20和S3,13的任意一个内,并且取消的接收器u5,u11,u12不被包括在它们中的任意一个内。因此,如果使用相应于这些子集的子集密钥SK2,20和SK3,13加密保密信息并且传输该保密信息,仅有未取消的接收器可以对密码文本解密以便获得该保密信息。
用于信息发布处理的过程类似于前面参考图33示出的流程描述的处理。应当注意,在传输密码文本组时,可以一起传输包括在每个密码文本内的作为关于子集相应密码文本安排信息的子集指定信息。基于该指定信息,每个接收器可以容易地提取应用了可由其自己产生的子集密钥的密码文本。因此作为一种特定方案,可以应用例如日本专利申请公开No.2001-352322中公开的使用密钥指定代码的配置。
应当注意,用于加密的子集密钥可以是在设置阶段由管理中心(TC)产生并保管的密钥,或可以是通过使用伪随机数产生器G,从在设置阶段产生的基于子集的标签得出的密钥。
应当注意,如果没有取消的接收器,则使用上述的第二特定子集SS1,Φ的子集密钥SK1,Φ=GM(LABEL1,Φ)=GM(Hc(IL1,Φ))对保密信息加密。
(12-3)接收和解密处理任意未取消的接收器仅属于一个上述子集。因此,如果对使用相应于该子集的子集密钥产生的密码文本进行解密,接收器可以获得保密信息。接收器为了寻找解密的密码文本,接收器仅必须使用上述的子集指定信息。在指定密码文本之后,接收器从其拥有的任意标签或中间标签得出子集密钥,并且使用该子集密钥对密码文本解密。下面将描述一种用于得出子集密钥的方法。
首先,接收器um确定相应于将为应用密码文本解密处理而获得的任意子集密钥Ski,j的子集Si,j的节点j是否落在下面的(A)或(B)内。
接收器判断节点j是否(A)是节点k的后代,接收器直接具有节点k的标签LABELi,k(包括j=k的情况),或(B)与节点k匹配,节点k是节点I的孩子节点之一,并且是不存在于分配有该接收器的叶子n到根的路径内的节点(即,存在于该路径内的节点I的孩子节点的兄弟节点),或是其后代节点(即,节点j是构成在SD方案中接收器um被授予的标签的子集中的任意第一子集SSi,k的节点k的后代)。
应当注意,如果没有取消的接收器,并且因此将第二特定子集SS1,Φ的子集密钥SK1,Φ用于加密,节点j被认为落在(B)之下。
在情况(B)中,如下所述,从授予接收器的中间标签ILp(j),S(j)得出特定子集SSi,k的中间标签。
首先,如果I=P(n),j=k=S(n),接收器已经具有了该中间标签(=节点相应值NV),并且因此不需要做任何特殊处理。否则,接收器对中间标签ILp(n),S(n)应用公开函数F,即,上述的(Eq.3),以便顺序地计算相应于高级子集的中间标签(=节点相应值NV)。对于接收器拥有的中间标签ILp(n),S(n),可以由下面的表达式得出开始于分配有该接收器的叶子的双亲节点P(n)的双亲节点P(P(n)),并且相应于节点P(n)的兄弟节点S(P(n))的特定子集SSP(P(n)),S (P(n))的中间标签ILP(P(n)),S(P(n)),其中以中间标签代替上面的Eq.3中的节点相应值NV,即,[数学式67]ILP(P(n)),S(P(n))=(ILP(n),S(n))2⊕Hsaltn(n))modM---(Eq.6)]]>这基于前面所述的Rabin树配置例子2中的用于节点相应值的上述关系表达式。
另外,基于低级节点的节点相应值NV(中间标签)计算高级节点的节点相应值NV(中间标签)。例如,根据下面的表达式在接收器u4中执行图40中示出的高级节点(节点号=1,2,4,9)的节点相应值NV(中间标签)的计算。
(a1)VN9(=中间标签IL4,8)=((VN19)2XOR Hsalt19(19)mod M(a2)VN4(=中间标签IL2,5)=((VN9)2XOR Hsalt9(9)mod M(a3)VN2(=中间标签IL1,3)=((VN4)2XOR Hsalt4(4)mod M(a4)VN1(=中间标签IL1,Φ)=((VN2)2XOR Hsalt2(2)mod M通过基于上述表达式的计算,从低级节点的节点相应值计算出高级节点的节点相应值,并且另外可以由下面的表达式从各个节点的节点相应值(中间标签)计算出标签(LABEL)。
(b1)LABEL9,18=Hc(IL9,18)(b2)LABEL4,8=Hc(IL4,8)(b3)LABEL2,5=Hc(IL2,5)(b4)LABEL1,3=Hc(IL1,3)(b5)LABEL1,Φ=Hc(IL1,Φ)以这种方式,可由下面的表达式获得开始于某个节点y和其双亲节点(当y存在时,节点P(y)的双亲节点P(P(y))),并且相应于P(y)的兄弟节点S(P(y))的特定子集SSP(P(n)),S(P(n))的中间标签ILP(P(n)),S(P(n))。
ILP(P(y)),S(P(y))=(ILP(y),S(y))2⊕Hsalty(y))modM]]>注意,此处节点y包括存在于分配有该接收器的叶子到根的路径内的节点。
此外,对于中间标签IL1,2或中间标签IL1,3,可由下面的表达式获得相应于第二特定子集SS1,Φ的中间标签IL1,Φ=K。
IL1,Φ=((IL1,2)2-Hsalt3(3)mod MIL1,Φ=((IL1,3)2-Hsalt2(2)mod M参考图40描述由接收器执行的特定中间标签获取处理。分配给叶子19的接收器u4保持中间标签IL9,18。通过使用作为公开参数的模数M、加密指数e以及节点数的计算,可以获得由节点9的双亲节点4和兄弟节点8确定的子集S4,8的中间标签IL4,8。
IL4,8=((IL9,18)2-Hsalt19(19))mod M类似地,可以获得由节点4的双亲节点2和兄弟节点5确定的子集S2,5的中间标签IL2,5为IL2,5=((IL4,8)2-Hsalt9(9))mod M通过重复该处理,接收器u4可以获得高级中间标签IL1,3和IL1,Φ。
一旦接收器以上述方式得出了相应于任意子集Si,k的中间标签ILi,k,则接收器获得标签LABELi,kLABELi,k=Hc(ILi,k)然后,如前面参考图22所述,接收器使用伪随机数产生器G获得所需子集Si,j的标签LABELi,j,并且进一步通过下式获得该子集的子集密钥SKi,j,以便使用该子集密钥SKi,j对密码文本解密。
Ski,j=GM(LABELi,j)除了用于计算的表达式不同之外,通过由接收器执行的子集密钥获取、解密处理进行的密码文本接收处理的过程具有类似于前面参考图35描述的序列。
在根据使用上述的Rabin树配置例子2的SD方案的密码文本发布配置中,设置为相应于各个节点的节点增加变量(salt)不同于上述Rabin树配置例子1中的节点增加变量(salt)。即,在Rabin树配置例子1中,[数学式70]
确定作为saltl的最小正整数(或非负整数)从而tmpl∈QRM。此处,考虑使用哈希函数诸如SHA-1或MD5作为函数H的例子。因为SHA-1或MD5将512为作为一个块,如果输入的大小超过了512位,但是等于或小于1024位,则需要大约两倍于512位或更少输入的情况的处理时间。
此处,如果l的大小是512位,即使saltl大小是若干位,l‖salt1的大小也超过了512位。当测试的saltl与满足条件tmpl在QRM中一样多时,并且如果第A个saltl满足该条件,即使仅对于H的计算而言,上面的设置需要与2A个使用512位或更少的输入的H的操作一样的时间。
作为对比,如在本实施例中,当一个节点增加变量(salt)被设置为最小的正整数从而tmpl在下面的表达式中是模M的二次剩余时[数学式71] H的输入仅是刚好等于512位的l。因此,与上述方法相比(Rabin树配置例子1),执行一轮H的计算所需的时间减少为1/2。此处,如果H输出随机值,每个saltl从而tmpl∈QRM的概率大约是1/4,这与上述方法(Rabin树配置例子1)相同,并且因此提示作为将测试的saltl的数目的期望值,即,作为函数H的计算数目的期望值也是相同的。
接着,将对基本分层子集差(基本LSD)进行概述。
在公开的文献[Advences in Cryptography-Crypto 2002,LectureNotes in Computer Science 2442,Springer,2002,pp.47-60(D.Halevyand A.Schamir,“The LSD Broadcast Encryption Scheme”)]中提出了通过改进SD方案而获得的分层子集差方案。LSD方案包括基本方案和作为基本方案的扩展的一般方案。此处,将描述基本方案。
LSD方案是SD方案的扩展,其中将层的概念引入了SD方案。在SD方案的树结构中,特定深度被定义为特定级(特定级)。虽然在基本LSD方案中仅有一种特定级,在一般LSD方案中使用具有改变的重要性程度的多个特定级。
现在为了易于描述,设log1/2N是整数。在基本LSD方案中,如图41所示,在从根到树的叶子的各级当中,将包括根级和叶子级的出现在每log1/2N的级确定为特定级。并且将介于两个相邻特定级之间的分层部分(包括两端的特定级)称为层。在图41的例子中,根级,包括节点k的级,以及叶子级是特定级,并且根级、包括节点I的级和包括节点k的级形成单个层。此外,包括节点k的级、包括节点j的级和包括叶子的级形成另一个层。
在基本LSD方案中,仅定义了定义于SD方案中的子集Si,j当中的满足条件(1)节点I和j属于同一个层,以及(2)节点I在特定层中的至少一个的子集。通过这样作,在SD方案中使用的某些子集在基本LSD方案中未被定义。然而,可以用定义于基本LSD中的至多两个子集的并集表示这种子集。例如,在图29的例子中,在基本LSD方案中未定义子集Si,j,但是使用从节点I到j的路径内离节点I最近的特定级上的节点(节点k),子集Si,j可表示为Si,j=Si,k∪Sk,j即,在基本LSD方案中,传输使用相应于子集Si,k和Sk,j的子集密钥Ski,k和SKk,j加密的两个密码文本,而不是使用相应于SD方案中的子集密钥Ski,k加密的一个密码文本。
作为该技术的结果,将传输的密码文本的数目至多仅比SD方案中的增加两倍,而与上述的SD方案相比可以减少由每个接收器保持的标签数。
前面已经参考图24描述了在SD方案中由每个接收器保持的标签数。现在将参考图42描述在相同设置下在基本LSD方案中由每个接收器保持的标签数。图42中的接收器u4可以仅需保持用于I,j两者属于同一层或I在特定级的情况的标签LABELi,j。即,由接收器u4保持的标签是LABEL1,3、LABEL1,5、LABEL1,8、LABEL1,18、LABEL2,5、LABEL4,8、LABEL4,18、LABEL9,18。另外,类似于SD方案,接收器还需要保持在没有取消的接收器的情况下使用的特定标签。
当接收器的总数被设置为N时,可以如下获得每个接收器必须保持的标签的总数。首先,每层的标签数等于使用下面的表达式计算而获得的数目,这是因为一旦确定了节点I,标签中存在与I的深度一样多的节点j。
Σi=1log1/2Ni=12(logN+log1/2N)]]>因为在分层树中有log1/2N个层,整个分层树的每层的标签数等于通过使用下面的表达式计算而获得的数目。
12(log3/2N+logN)]]>接着,考虑节点I位于特定级的情况。因为存在与I在整个分层树中的深度一样多的节点j,包括位于特定级的任意节点I的整个分层树内的标签数等于通过使用下面的表达式计算而获得的数目。
Σi=1log1/2N(log1/2N)i=12(log3/2N+logN)]]>现在位于特定级的节点I的并且属于同一层的节点j的标签被计数了两次,这些标签必须被减去。因为每层有log1/2N个这种组合,总共有logN个这种组合。当将没有取消的接收器的情况的特定标签加到它们上时,每个接收器在基本LSD方案中保持的标签总数等于由下面的表达式给出的数目。
12(log3/2N+logN)+12(log3/2N+logN)-logN+1=log3/2N+1]]>[15.用于减少使用Rabin树的基本LSD方案中的标签数的配置]接着,描述用于减少使用Rabin树的基本LSD方案中的标签数的配置。在基于上述SD方案的本发明内,通过将一个特定中间标签设置为Rabin树中的节点相应值,并且通过这样设计从而接收器仅具有一个这种中间标签(=节点相应值),减少了由每个接收器拥有的标签数,从该特定中间标签可以得出用于获得节点I是节点j的双亲的子集Si,j的标签LABELi,j的中间标签ILi,j。可将该技术类似地应用于基本LSD方案。
一种特定的配置方法大体上与本发明的上述实施例的配置方法相同。然而,当管理中心(TC)在设置过程中使用伪随机数产生器G连续地产生标签LABELi,j时,如果节点I不位于特定级,不使用低于紧接着I之下的任意特定级的节点是j的标签。因此,可以在该特定级处停止标签的产生。此外,当管理中心将产生的标签发布给每个接收器时,仅产生满足上述条件的标签,并且因此管理中心仅需发布这种标签。
作为与参考图42所述类似的设置,参考图42描述减少使用单向置换树的基本LSD方案中的标签数的特定配置例子。如已参考图42描述的,在基本LSD方案中,接收器u4保持的标签数总共是9,它们是LABEL1,3、LABEL1,5、LABEL1,8、LABEL2,5、LABEL4,8、LABEL4,18、LABEL9,18,加上一个用于没有取消的接收器的情况的特定标签。相反,如在本发明中,当设计为接收器保持一个中间标签IL9,18(=节点相应值NV19)(从该中间标签可以得出分别相应于在节点I,j具有双亲-孩子关系的情况和没有取消的接收器的情况下使用的中间标签ILi,j和IL1,Φ)时,接收器总共仅需保持5个标签,它们是4个标签LABEL1,5、LABEL1,8、LABEL1,18、LABEL4,18,和一个中间标签IL9,18。
考虑如果接收器的总数是N,可由本发明减少的标签数。考虑在不使用本发明的基本LSD方案中,每个接收器应保持多少个节点I,j具有双亲-孩子关系的标签LABELi,j。
当节点I,j具有双亲-孩子关系时,可以考虑下面的3种情况。
(A)节点I位于特定级
(B)节点j位于特定级(C)节点I和j都不位于特定级在这些情况的任一种情况下,如果节点i,j在任意上述情况下具有双亲-孩子关系(即,彼此相邻),i和j属于同一层。即,任意子集Si,j满足在基本LSD方案中被定义所需的任意一个条件。即,在基本LSD方案中定义并使用这种子集,并且因此接收器需要保持相应于它们的任意LABELi,j。
对于某个接收器,这种节点I,j被定义如下。即,存在如此多的这种节点I,j,以致于如果树中的节点I的总数等于树的深度(即,除了叶子之外,从分配有该接收器的叶子到根的路径内的所有节点),则覆盖了树的深度,并且一旦确定了I,仅有一个j被确定(I的孩子节点,并且不在该路径内)。因此,存在如此多的节点I,j,以致于覆盖了树的深度,即,logN个节点I,j。
通过设计,从而使用本发明根据一个中间标签产生这些logN个标签和一个特定标签,由接收器保持的标签数可以减少logN+1-1=logN如上所述,在基本LSD方案中接收器保持的标签总数是log3/2N+1并且,因此通过应用本发明,可以将其减少为log3/2N-logN+1[16.一般分层子集差(一般LSD)方案概述]接着,将对一般分层子集差(一般LSD)方案进行概述。
虽然在基本LSD中使用了一种特定级,在一般LSD方案中使用了具有不同程度的多个特定级。
类似于在提出LSD方案的论文中所提出的,在分层树中,通过节点I从根到节点j的路径被认为是单个图。树的根和节点j是端点。树的节点是图的节点。除了端点之外的节点之一是节点I。在该图中,由节点到根的距离表示每个节点。该距离被表示为以b(b=log1/dN)为基数d位数字。例如,根被表示为0...00。其下一个节点(分层树结构中根的孩子节点)被表示为0...01。
结合定义的转换,子集Si,j被认为是从任意节点I到任意节点j的最终变化(从一个节点变为另一个)。定义的转换表示定义的子集,并且最终转换所需的单个变化表示以分段形式表示子集SI,j所需的定义的子集。如原始论文中公开的,当节点I,k1,k2,...,kd-1,j以这种顺序存在于树的一个路径中时,由一般LSD方案中的下面的表达式表示SD方案中的子集Si,j。
Si,j=Si,k1∪Sk1,k2∪···∪Skd-1,j]]>即,以一般LSD方案中的最多d个子集的交集表示SD方案中的子集Si,j。
在一般LSD方案中,当节点I被表示为 (其中,a是最右边的非零数字, 是任意数字的序列,并且 是零序列),定义了如果j被表示为 或 I到j的所有变化。即,定义了由任意这种I,j对表示的子集Si,j。
通过这样做,在一般LSD方案中当d=2时以0结尾(在最右边)的任意两位数数字表示的级被认为是基本LSD方案中的特定级。在一般LSD方案中,节点I的表示中拖在最右边的零的数目确定该级的重要程度,并且节点j可以是从I+1到具有比I更高的重要程度的第一个节点的任意节点(包括两端的节点)。在这种设置下,设I和j是I=825917,j=864563。然后,从I到j的变化,即,SD方案中的子集Si,j可以被表示为定义于一般LSD方案中的4个转换,即,825917→825920→826000→830000→864563。
即,假设k1=825920,k2=826000,k3=830000,则由下面的表达式定义子集Si,j。即,[数学式77]Si,j=Si,k1∪Sk1,k2∪Sk2,k3∪Sk3,j]]>为了将保密信息传输给属于上述的SD方案的子集Si,j的接收器,传输以相应于由下面的表达式表示的子集的子集密钥加密的4个密码文本。
Si,k1,Sk1,k2,Sk2,k3,Sk3,j随着参数d的增加,一般LSD方案中的每个接收器保持的标签数减少,最终获得O(log1+εN)其中ε=1/d。此外,此时将要传输的密码文本的数目的上限是d(2r-1)细节请参考上述的论文。
接着,将描述用于减少使用Rabin树的一般LSD方案中的标签数的配置。用于在基本LSD方案中使用Rabin树减少由接收器保持的标签数的上述技术也适用于一般LSD方案。具体地,基本LSD方案和一般LSD方案的不同之处仅在于它们任意的定义的子集将满足的条件,但是就使用Rabin树而言它们没有不同之处。
同样,在一般LSD方案中,接收器um需要保持在SD方案中定义的标签中的被授予接收器um的相应于i,j具有双亲-孩子关系的子集Si,j的所有标签LABELi,j。其原因是即使I取任意值,变化到是其孩子(即,I+1)的节点j的变化都落在定义的转换的上述条件下。即,类似于基本LSD方案,对于某个接收器,在由接收器保持的标签当中有logN个节点i,j具有双亲-孩子关系的标签。通过设计从而从一个中间标签产生这些标签和所述特定标签,可以实现减少logN个标签。在原始的一般LSD方案中由每个接收器保持的标签数是O(log1+εN)(其中ε是任意整数),并且因此,可以从其中减少logN个标签。

相对于传统SD方案的上述密钥减少方法,根据本发明使用Rabin树的SD方案的上述密码文本发布配置具有接收器所需的计算量小的优点。通过与使用RSA密码术的SD方案比较对其进行讨论。
在根据使用RSA密码系统和LSD方案的SD方案的密钥减少方法中,接收器为了从某个节点的密钥NK1得出其双亲节点的密钥[数学式79] 接收器使用下面的表达式执行计算。
此处,与寻找幂剩余相比XOR和以哈希函数H进行散列仅需要极少量的计算。因此,上述计算的核心是寻找幂剩余的操作NKlemod M在使用RSA密码系统的系统内,为了减少计算量,希望使用其汉明权尽可能小的尽可能小的加密指数e。然而,已经指出小的e诸如e=3不能提供足够的安全,并且因此普遍推荐使用值e=216+1当值216+1被用作加密指数e时,可以使用若干方法寻找某个数x的e次幂。如果使用“重复平方并且相乘算法”(见上述的文献A.J.Menzes,P.C.van Oorschot和S.A Vanstone,“Handbook ofApplied Cryptography,”CRC Press,1996的第614页),需要16个平方和一个乘法。此处,平方是乘法的特殊情况,并且因此通过使用该方法,与乘法相比可以减少计算量。鉴于这种情况,上述的计算量大于17个平方。
作为比较,在应用根据本发明的上述Rabin树的基于SD方案的密码文本发布配置中,接收器基于其拥有的节点相应值NVl和节点增加变量salt,基于上述(Eq.1)执行计算,即,[数学式81]
该计算的核心也是寻找幂剩余的操作。然而,在上述表达式中,寻找幂剩余的操作是NVl2mod M其仅涉及一个平方。因此与使用RSA密码系统的方案相比可以将计算量减小到大约1/17。
如上所述,当与使用RSA密码系统的系统比较时,本方案具有寻找幂剩余的操作(就计算量而言它是接收器的沉重负载)仅涉及一个平方的特征,并且与使用RSA密码系统的方案相比这将计算量减小到大约为1/17的极小的值。此外,即使在使用RSA密码系统的方案中使用3作为加密指数e,NK1emod M涉及一个乘法和一个平方,因此将本发明中的计算量减小为小于1/2的值。
另外,在每个传统的SD方案、基本LSD方案、一般LSD方案中,每个接收器必须安全地保持,如上所述,如下的标签SD方案(1/2)log2N+logN+1基本LSD方案log2/3N+1一般LSD方案O(log1+εN)(其中,N是接收器总数,ε是满足ε>0的任意整数)。
相反,应用根据本发明的Rabin树的配置可以实现由每个接收器安全保持的标签数的减少。即,如上所述,在本发明中这样配置,从而相应于应用Rabin树的节点相应值的中间标签被设置为相应于节点I和j具有双亲-孩子关系的子集(具有距离1,即在分层上是连续的)的标签LABELi,j和相应于作为在没有取消的接收器并且因此包括所有接收器的特定情况下使用的集合的子集S1,Φ的标签LABEL1,Φ,以便可以基于该中间标签计算相应于高级特定子集的中间标签(=节点相应值),以便实现接收器保持的标签数的减少。
应当注意,在根据本发明的配置中,不需要安全地保持节点增加变量salt。此外,每个节点增加变量salt平均具有2位的小的大小,这提供了减少接收器部分的数据存储需求的优点。
以这种方式,通过应用本发明的配置,减少了每个接收器需要安全存储的信息量,并且此外,还可以减少由接收器计算节点密钥所需的计算量,从而可以实现有效的密码文本发布、解密处理配置。
已经参考前面的特定实施例非常详细地描述了本发明。然而显然本领域的技术人员可以对这些实施例进行修改或替代而不脱离本发明的范围和精神。即,已经以例子的方式公开了本发明,并且因此作限制性的解释。为了判断本发明的范围和精神,应当考虑所附权利要求。
应当注意,可由硬件或软件或具有组合的两者的配置实现该描述中描述的一系列处理。在根据软件执行处理的情况下,可以通过将其中具有记录的处理序列的程序安装到结合到专用硬件中的计算机内的存储器以便执行,或通过将该程序安装到可以执行各种处理的通用计算机中以便执行。
例如,该程序可以被预先记录在作为记录介质的硬盘和ROM(只读存储器)上。可替换地,该程序可被临时或永久地存储(记录)在可移动的记录介质诸如柔性盘、CD-ROM(压缩盘只读存储器)、MO(磁光学)盘、DVD(数字通用盘)、磁盘、半导体存储器上。可以作为所谓的打包软件提供这种可移动的记录介质。
应当注意,可以将所述程序从诸如上述的可移动记录介质安装到计算机,并且另外,从下载站点无线传输到计算机,通过网络诸如LAN(局域网)因特网有线传输到计算机,以便允许计算机接收这种传输的程序,以便在结合在其中的存储介质诸如硬盘中进行安装。
应当注意,在该描述中描述的各种处理不仅被根据该描述在时间上顺序地执行,而且还根据执行处理的装置的处理能力或在必要时并行或单独执行。另外,本描述中使用的系统的含义是多个装置的逻辑组配置,并且不限于这样的配置,其中每个具有其自己的配置的装置被分组在同一个外壳内。
工业实用性根据本发明的实施例的配置,在应用了作为广播加密方案的一个实施例的分层树结构的信息发布配置中,其被配置为产生作为单向树的Rabin树,其中将节点相应值设置为相应于构成分层树的各个节点,进行设置从而通过应用基于设置为相应于至少一个低级节点的节点相应值NVb和节点增加值saltb的函数f可以计算节点相应值NVa,并且从而可以通过使用相应于各个节点的节点相应值NV作为输入,并且通过应用函数Hc计算出相应于各个节点的节点密钥。作为本配置的结果,不同于每个接收器需要安全保持logN+1个节点密钥的传统的CS方案,在应用了本发明的配置中,可以减少每个接收器必须保持的密钥数。此外,不必安全保持节点增加值salt,并且每个节点增加值salt可以平均具有2位的小的大小,从而减小了接收器需要安全存储的信息量。另外,当与类似于本发明,将接收器安全保持的密钥数减少到1的使用RSA密码系统的方案相比,其被配置,从而幂剩余操作-它是接收器所需的计算量的沉重负载-仅涉及一个平方,大约是使用RSA密码系统的方案中的计算量的1/17,并且因此是一个极小的值。以这种方式,通过应用本发明的配置,可以减少接收器需要安全存储的信息量,并且另外可以减少接收器的节点密钥计算所需的计算量,从而实现了有效的密码文本发布、解密处理配置。
权利要求
1.一种用于产生分层树的信息处理方法,通过应用基于分层树配置的广播加密方案,所述分层树被应用于用于提供仅可由除了被排除的(取消的)装置之外的特定被选择的装置解密的密码文本的处理,该信息处理方法的特征在于包括产生单向树的单向树产生步骤,其中给各个节点设置节点相应值,所述节点相应值设置得使得可以通过应用基于被设置为相应于至少一个低级节点的节点相应值NVb和节点增加变量saltb的函数f,计算相应于构成该分层树的每个节点的节点相应值NVa;节点密钥计算步骤,通过应用使用相应于各个节点的节点相应值NV作为输入的函数Hc,计算相应于构成所述单向树的各个节点的节点密钥NK;和用于提供的信息确定步骤,选择计算包括在从接收器相应节点到作为最高级节点的根的路径内的节点相应值所需的最小节点相应值和节点增加变量,作为将要提供给相应于所述单向树的终端节点的接收器的信息。
2.如权利要求1的信息处理方法,其特征在于所述单向树产生步骤产生具有这样的设置的单向树在该设置中可以通过应用基于低级节点的节点相应值的Rabin密码术的加密处理(前向计算)计算高级节点的节点相应值,并且在该设置中可以通过应用基于高级节点的节点相应值的Rabin密码术的解密处理(逆计算)计算低级节点的节点相应值。
3.如权利要求1的信息处理方法,其特征在于还包括密码文本产生步骤,通过选择性地应用被设置为相应于所述分层树的各个节点的节点密钥执行加密处理,产生密码文本。
4.如权利要求1的信息处理方法,其特征在于单向树产生步骤产生单向树,其中在具有带有N个终端节点的二进制树配置的分层树内,从所述二进制树中的高级节点以宽度优先的顺序被授予节点号l的各个节点l的节点相应值NVl(l=2,3,...,2N-1)满足下面表达式的关系[数学式1] 其中M是两个大素数的乘积,并且H是用于输出ZM的元素的映射函数。
5.如权利要求4的信息处理方法,其特征在于单向树产生步骤包括在具有带有N个终端节点的二进制树配置的分层树内使用作为节点终端数的叶子数N和模数M的大小|M|作为输入来进行步骤1确定两个大小为|M|/2的大素数,并且计算其乘积M;步骤2确定用于输出ZM的元素的映射函数H;步骤3随机选择作为所述二进制树的最高级节点的根节点的节点相应值NV1作为这样的值,使得NV1∈Z*M;步骤4在使用l作为计数器将l从2递增1直到2N-1的同时执行下面的处理a,ba寻找最小正整数saltl,使得在下面的表达式中tmpl是模M的二次剩余[数学式2] b寻找tmpl1/2mod M,并且确定4个结果中的任意一个作为节点l的节点相应值NVl;和步骤5输出2N-1个|M|-位的数(节点相应值)NV1,NV2,...,NV2N-1,和2N-2个数(节点增加变量)salt2,salt3,...,salt2N-1,并且将它们设置为所述二进制树的各个节点l(l=1到2N-1)的节点相应值和节点增加变量。
6.如权利要求1的信息处理方法,其特征在于所述节点密钥计算步骤是通过应用使用相应于各个节点的节点相应值NV作为输入的函数Hc计算节点密钥NK的步骤,其中函数Hc是用于将节点相应值NV映射为相应于节点密钥的大小的位长度的数据的哈希函数。
7.如权利要求1的信息处理方法,其特征在于所述单向树产生步骤产生单向树,其中在具有带有N个终端节点的二进制树配置的分层树内,从所述二进制树中的高级节点以宽度优先的顺序被授予节点号l的各个节点l的节点相应值NVl(l=2,3,...,2N-1)满足下面表达式的关系[数学式3] 其中H是用于将任意大小的输入映射为所述两个大素数的乘积M的大小|M|的函数,并且Hsaltl(l)表示通过对l应用saltl次函数H获得的值。
8.如权利要求7的信息处理方法,其特征在于所述单向树产生步骤包括在具有带有N个终端节点的二进制树配置的分层树内使用作为节点终端数的叶子数N,模数M的大小|M|和具有|M|-位输出的映射函数H作为输入来进行步骤1确定两个大小为|M|/2的大素数,并且计算其乘积M;步骤2随机选择作为所述二进制树的最高级节点的根节点的节点相应值NV1作为这样的值,使得NV1∈Z*M;步骤3在使用l作为计数器将l从2递增1直到2N-1的同时执行下面的处理a,ba寻找最小正整数saltl,使得在下面的表达式中tmpl是模M的二次剩余[数学式4] b寻找tmpl1/2mod M,并且确定4个结果中的任意一个作为节点l的节点相应值NVl;和步骤4输出2N-1个|M|-位的数(节点相应值)NV1,NV2,...,NV2N-1和2N-2个数(节点增加变量)salt2,salt3,...,salt2N-1,并且将它们设置为所述二进制树的各个节点l(l=1到2N-1)的节点相应值和节点增加变量。
9.一种用于产生分层树的信息处理方法,通过使用基于分层树配置的广播加密方案,该分层树被应用于用于提供仅可由特定选择的装置解密的密码文本的处理,该信息处理方法的特征在于包括产生单向树的单向树产生步骤,其中给各个节点设置节点相应值,所述节点相应值设置得可以通过应用基于被设置为相应于至少一个低级节点的节点相应值NVb和节点增加变量saltb的函数f,计算相应于构成该分层树的每个节点的节点相应值NVa;产生中间标签的中间标签产生步骤,所述中间标签是被设置为这样的值的中间标签(IL)可以通过计算处理从这些值计算分别相应于基于应用分层树的SD(子集差)方案而设置的子集的标签(LABEL)中的相应于某些选择的特定子集的标签的值;标签产生步骤,通过基于中间标签的计算处理,产生相应于特定子集的标签,并且进一步通过基于产生的标签的计算,产生不相应于特定子集的标签;和用于提供的标签确定步骤,确定提供给相应于所述分层树的终端节点的接收器的标签,并且选择不相应于所述特定子集的特定子集非相应标签,和作为计算包括在从接收器相应节点到作为最高级节点的根的路径内的任意节点的节点相应值所需的最小中间标签和节点增加变量的节点相应值,作为提供给相应于所述单向树的终端节点的接收器的信息,并且其中所述单向树产生步骤产生单向树,其中在具有带有N个终端节点的二进制树配置的分层树内,从所述二进制树中的高级节点以宽度优先的顺序被授予节点号l的各个节点l的节点相应值NVl(l=2,3,...,2N-1)满足下面表达式的关系[数学式5] 其中H是用于将任意大小的输入映射到所述两个大素数的乘积M的大小|M|的函数,并且Hsaltl(l)表示通过对l应用saltl次函数H获得的值。
10.如权利要求9的信息处理方法,其特征在于所述单向树产生步骤包括在具有带有N个终端节点的二进制树配置的分层树内使用作为节点终端数的叶子数N,模数M的大小|M|和具有|M|-位输出的映射函数H作为输入来进行步骤1确定两个大小为|M|/2的大素数,并且计算其乘积M;步骤2随机选择作为所述二进制树的最高级节点的根节点的节点相应值NV1作为这样的值,使得NV1∈Z*M;步骤3在使用l作为计数器将l从2递增1直到2N-1的同时执行下面的处理a,ba寻找最小正整数saltl,从而在下面的表达式中tmpl是模M的二次剩余[数学式6] b寻找tmpl1/2mod M,并且确定4个结果中的任意一个作为节点l的节点相应值NVl;和步骤4输出2N-1个|M|-位的数(节点相应值)NV1,NV2,...,NV2N-1,和2N-2个数(节点增加变量)salt2,salt3,...,salt2N-1,并且将它们设置为所述二进制树的各个节点l(l=1到2N-1)的节点相应值和节点增加变量。
11.一种解密处理方法,用于通过应用基于分层树配置的广播加密方案,执行解密以分别相应于构成分层树的节点的节点密钥加密的密码文本的处理,该解密处理方法的特征在于包括密码文本选择步骤,从所述密码文本中选择应用了可基于自身装置所保持的节点相应值NV和节点增加变量salt产生的节点密钥的密码文本;节点密钥计算步骤,基于所述自身装置保持的节点相应值NV和节点增加变量salt,计算应用于所述密码文本的节点密钥;和解密步骤,基于计算出的节点密钥,执行解密所述密码文本的处理。
12.如权利要求11的解密处理方法,其特征在于所述密码文本选择步骤是在以根作为编号为1的分层树最高级节点以宽度优先的顺序授予各个节点节点号的分层树中,寻找用于加密的节点密钥的节点号中的与包括在从接收器到根的路径内的节点中的任意节点号符合的节点号的步骤。
13.如权利要求11的解密处理方法,其特征在于所述节点密钥计算步骤包括基于自身装置保持的节点相应值NV和节点增加变量salt,通过应用下面的表达式,计算从所述二进制树中的高级节点以宽度优先的顺序被授予节点号l的各个节点l的节点相应值NVl(l=2,3,...,2N-1)当中的从自身节点到作为最高级节点的根的路径内的节点相应值的步骤[数学式7] 其中M是两个大素数的乘积,并且H是用于输出ZM的元素的映射函数。
14.如权利要求11的解密处理方法,其特征在于所述节点密钥计算步骤包括基于自身装置保持的节点相应值,或从自身节点到作为最高级节点的根的路径内的节点相应值,并且进一步基于下面的表达式进行计算的步骤NK=Hc(NV)其中NK是节点密钥;NV是节点相应值;并且Hc是映射函数。
15.如权利要求11的解密处理方法,其特征在于所述节点密钥计算步骤包括基于所述自身装置保持的节点相应值NV和节点增加变量salt,通过应用下面的表达式,计算二进制树中的高级节点以宽度优先的顺序被授予节点号l的各个节点l的节点相应值NVl(l=2,3,...,2N-1)当中的从自身节点到作为最高级节点的根的路径内的节点相应值的步骤[数学式8] 其中H是用于将任意大小的输入映射为所述两个大素数的乘积M的大小|M|的函数,并且Hsaltl(l)表示通过对l应用saltl次函数H获得的值。
16.一种解密处理方法,用于执行解密以分别相应于基于SD(子集差)方案而设置的子集的子集密钥加密的密码文本的处理,所述SD(子集差)方案是基于分层树配置的广播加密方案,该解密处理方法的特征在于包括密码文本选择步骤,从所述密码文本中选择通过应用可由基于自身装置保持的标签的伪随机数产生处理得出的子集密钥产生的密码文本,或可以基于自身装置保持的作为中间标签的节点相应值NV和节点增加变量salt计算出的标签;标签计算步骤,如果不能由基于所述保持的标签的伪随机数产生处理得出将要应用于所述密码文本的子集密钥,通过基于节点相应值NV和节点增加变量salt执行计算处理,计算相应于特定子集的标签;由基于所述保持的标签或计算出的标签的伪随机数产生处理产生子集密钥的步骤;和解密步骤,通过应用产生的子集密钥执行解密所述密码文本的处理,并且其中所述标签计算步骤包括基于自身装置保持的节点相应值NV和节点增加变量salt,通过应用下面的表达式,计算从所述二进制树中的高级节点以宽度优先的顺序被授予节点号l的各个节点l的节点相应值NVl(l=2,3,...,2N-1)当中的从自身节点到作为最高级节点的根的路径内的节点相应值的步骤[数学式9] 其中H是用于将任意大小的输入映射为所述两个大素数的乘积M的大小|M|的函数,并且Hsaltl(l)表示通过对l应用saltl次函数H获得的值。
17.一种用于产生分层树的信息处理装置,通过应用基于分层树配置的广播加密方案,所述分层树被应用于用于提供仅可由除了被排除的(取消的)装置之外的特定被选择的装置解密的密码文本的处理,该信息处理装置的特征在于包括用于产生单向树的单向树产生装置,其中给各个节点设置节点相应值,设置所述节点相应值,使得可以通过应用基于被设置为相应于至少一个低级节点的节点相应值NVb和节点增加变量saltb的函数f,计算相应于构成该分层树的每个节点的节点相应值NVa;节点密钥计算装置,用于通过应用使用相应于各节点的节点相应值NV作为输入的函数Hc,计算相应于构成所述单向树的各个节点的节点密钥NK;和用于提供的信息确定装置,用于选择计算包括在从接收器相应节点到作为最高级节点的根的路径内的节点相应值所需的最小节点相应值和节点增加变量,作为将要提供给相应于所述单向树的终端节点的接收器的信息。
18.如权利要求17的信息处理装置,其特征在于所述单向树产生装置被配置为产生具有这样设置的单向树,在该设置中可以通过应用基于低级节点的节点相应值的Rabin密码术的加密处理(前向计算)计算高级节点的节点相应值,并且在该设置中可以通过应用基于高级节点的节点相应值的Rabin密码术的解密处理(逆计算)计算低级节点的节点相应值。
19.如权利要求17的信息处理装置,其特征在于还包括密码文本产生装置,用于通过选择性地应用被设置为相应于所述分层树的各个节点的节点密钥执行加密处理,产生密码文本。
20.如权利要求17的信息处理装置,其特征在于所述单向树产生装置被配置为产生单向树,其中在具有带有N个终端节点的二进制树配置的分层树内,从所述二进制树中的高级节点以宽度优先的顺序被授予节点号l的各个节点l的节点相应值NVl(l=2,3,...,2N-1)满足下面表达式的关系[数学式10] 其中M是两个大素数的乘积,并且H是用于输出ZM的元素的映射函数。
21.如权利要求20的信息处理装置,其特征在于所述单向树产生装置被配置为通过在具有带有N个终端节点的二进制树配置的分层树内使用作为节点终端数的叶子数N和模数M的大小|M|作为输入,执行步骤1确定两个大小为|M|/2的大素数,并且计算其乘积M;步骤2确定用于输出ZM的元素的映射函数H;步骤3随机选择作为所述二进制树的最高级节点的根节点的节点相应值NV1作为这样的值,使得NV1∈Z*M;步骤4在使用l作为计数器将l从2递增1直到2N-1的同时执行下面的处理a,ba寻找最小正整数saltl,从而在下面的表达式中tmpl是模M的二次剩余[数学式11] b寻找tmpl1/2mod M,并且确定4个结果中的任意一个作为节点l的节点相应值NVl;和步骤5输出2N-1个|M|-位的数(节点相应值)NV1,NV2,...,NV2N-1,和2N-2个数(节点增加变量)salt2,salt3,...,salt2N-1,并且将它们设置为所述二进制树的各个节点l(l=1到2N-1)的节点相应值和节点增加变量,来执行产生单向树的处理。
22.如权利要求17的信息处理装置,其特征在于所述节点密钥计算装置被配置为通过应用使用相应于各个节点的节点相应值NV作为输入的函数Hc计算节点密钥NK,其中函数Hc是用于将节点相应值NV映射到相应于节点密钥的大小的位长度的数据的哈希函数。
23.如权利要求17的信息处理装置,其特征在于所述单向树产生装置被配置为产生单向树,其中在具有带有N个终端节点的二进制树配置的分层树内,从所述二进制树中的高级节点以宽度优先的顺序被授予节点号l的各个节点l的节点相应值NVl(l=2,3,...,2N-1)满足下面表达式的关系[数学式12] 其中H是用于将任意大小的输入映射到所述两个大素数的乘积M的大小|M|的函数,并且Hsaltl(l)表示通过对l应用saltl次函数H获得的值。
24.如权利要求23的信息处理装置,其特征在于所述单向树产生装置被配置为通过在具有带有N个终端节点的二进制树配置的分层树内使用作为节点终端数的叶子数N,模数M的大小|M|和具有|M|-位输出的映射函数H作为输入,执行步骤1确定两个大小为|M|/2的大素数,并且计算其乘积M;步骤2随机选择作为所述二进制树的最高级节点的根节点的节点相应值NV1作为这样的值,使得NV1∈Z*M;步骤3在使用l作为计数器将l从2递增1直到2N-1的同时执行下面的处理a,ba寻找最小正整数saltl,从而在下面的表达式中tmpl是模M的二次剩余[数学式13] b寻找tmpl1/2mod M,并且确定4个结果中的任意一个作为节点l的节点相应值NVl;和步骤4输出2N-1个|M|-位的数(节点相应值)NV1,NV2,...,NV2N-1,和2N-2个数(节点增加变量)salt2,salt3,...,salt2N-1,并且将它们设置为所述二进制树的各个节点l(l=1到2N-1)的节点相应值和节点增加变量,来产生单向树。
25.一种用于产生分层树的信息处理装置,使用基于分层树配置的广播加密方案,该分层树被应用于用于提供仅可由特定选择的装置解密的密码文本的处理,该信息处理装置的特征在于包括用于产生单向树的单向树产生装置,其中给各个节点设置节点相应值,所述节点相应值设置得可以通过应用基于被设置为相应于至少一个低级节点的节点相应值NVb和节点增加变量saltb的函数f,计算相应于构成该分层树的每个节点的节点相应值NVa;用于产生中间标签的中间标签产生装置,所述中间标签是被设置为这样的值的中间标签(IL)可以通过计算处理从这些值计算分别相应于基于应用分层树的SD(子集差)方案而设置的子集的标签(LABEL)中的相应于某些选择的特定子集的标签的值;标签产生装置,用于通过基于中间标签的计算处理产生相应于特定子集的标签,并且进一步通过基于产生的标签的计算产生不相应于特定子集的标签;和用于提供的标签确定装置,用于确定提供给相应于所述分层树的终端节点的接收器的标签,并且选择不相应于所述特定子集的特定子集非相应标签,和作为计算包括在从接收器相应节点到作为最高级节点的根的路径内的任意节点的节点相应值所需的最小中间标签和节点增加变量的节点相应值,作为提供给相应于所述单向树的终端节点的接收器的信息,并且其中所述单向树产生装置被配置为产生单向树,其中在具有带有N个终端节点的二进制树配置的分层树内,从所述二进制树中的高级节点以宽度优先的顺序被授予节点号l的各个节点l的节点相应值NVl(l=2,3,...,2N-1)满足下面表达式的关系[数学式14] 其中H是用于将任意大小的输入映射到所述两个大素数的乘积M的大小|M|的函数,并且Hsaltl(l)表示通过对l应用saltl次函数H获得的值。
26.如权利要求25的信息处理方法,其特征在于所述单向树产生装置被配置为通过在具有带有N个终端节点的二进制树配置的分层树内使用作为节点终端数的叶子数N,模数M的大小|M|和具有|M|-位输出的映射函数H作为输入,执行步骤1确定两个大小为|M|/2的大素数,并且计算其乘积M;步骤2随机选择作为所述二进制树的最高级节点的根节点的节点相应值NV1作为这样的值,使得NV1∈Z*M;步骤3在使用l作为计数器将l从2递增1直到2N-1的同时执行下面的处理a,ba寻找最小正整数saltl,从而在下面的表达式中tmpl是模M的二次剩余[数学式15] b寻找tmpl1/2mod M,并且确定4个结果中的任意一个作为节点l的节点相应值NVl;和步骤4输出2N-1个|M|-位的数(节点相应值)NV1,NV2,...,NV2N-1,和2N-2个数(节点增加变量)salt2,salt3,...,salt2N-1,并且将它们设置为所述二进制树的各个节点l(l=1到2N-1)的节点相应值和节点增加变量,来产生所述单向树。
27.一种解密处理装置,用于通过应用基于分层树配置的广播加密方案,执行解密以分别相应于构成分层树的节点的节点密钥加密的密码文本的处理,该解密处理装置的特征在于包括密码文本选择装置,用于从所述密码文本中选择应用了基于可由自身装置保持的节点相应值NV和节点增加变量salt产生的节点密钥的密码文本;节点密钥计算装置,用于基于所述自身装置保持的节点相应值NV和节点增加变量salt,计算应用于所述密码文本的节点密钥;和解密装置,用于基于计算出的节点密钥执行解密所述密码文本的处理。
28.如权利要求27的解密处理装置,其特征在于所述密码文本选择装置被配置为在以根作为编号为1的分层树最高级节点以宽度优先的顺序授予各个节点节点号的分层树中,寻找用于加密的节点密钥的节点号中的与包括在从接收器到根的路径内的节点中的任意节点号符合的节点号。
29.如权利要求27的解密处理装置,其特征在于所述节点密钥计算装置被配置为执行基于自身装置保持的节点相应值NV和节点增加变量salt,通过应用下面的表达式,计算从二进制树中的高级节点以宽度优先的顺序被授予节点号l的各个节点l的节点相应值NVl(l=2,3,...,2N-1)当中的从自身节点到作为最高级节点的根的路径内的节点相应值的处理[数学式16] 其中M是两个大素数的乘积,并且H是用于输出ZM的元素的映射函数。
30.如权利要求27的解密处理装置,其特征在于所述节点密钥计算装置被配置为执行基于自身装置保持的节点相应值,或从自身节点到作为最高级节点的根的路径内的节点相应值,并且进一步基于下面的表达式进行计算的处理NK=Hc(NV)其中NK是节点密钥;NV是节点相应值;并且Hc是映射函数。
31.如权利要求11的解密处理装置,其特征在于所述节点密钥计算装置被配置为执行基于所述自身装置保持的节点相应值NV和节点增加变量salt,通过应用下面的表达式,计算从所述二进制树中的高级节点以宽度优先的顺序被授予节点号l的各个节点l的节点相应值NVl(l=2,3,...,2N-1)当中的从自身节点到作为最高级节点的根的路径内的节点相应值的处理[数学式17] 其中H是用于将任意大小的输入映射为所述两个大素数的乘积M的大小|M|的函数,并且Hsaltl(l)表示通过对l应用saltl次函数H获得的值。
32.一种解密处理装置,用于执行解密以分别相应于基于SD(子集差)方案而设置的子集的子集密钥加密的密码文本的处理,所述SD(子集差)方案是基于分层树配置的广播加密方案,该解密处理装置的特征在于包括密码文本选择装置,用于从所述密码文本中选择通过应用可由基于自身装置保持的标签的伪随机数产生处理得出的子集密钥产生的密码文本,或可以基于自身装置保持的作为中间标签的节点相应值NV和节点增加变量salt计算出的标签;标签计算装置,用于如果不能由基于所述保持的标签的伪随机数产生处理得出将要应用于所述密码文本的子集密钥,通过基于节点相应值NV和节点增加变量salt执行计算处理,计算相应于特定子集的标签;用于由基于所述保持的标签或计算出的标签的伪随机数产生处理产生子集密钥的装置;和解密装置,用于通过应用产生的子集密钥执行解密所述密码文本的处理,并且其中所述标签计算装置被配置为执行基于由自身装置保持的节点相应值NV和节点增加变量salt,通过应用下面的表达式,计算从所述二进制树中的高级节点以宽度优先的顺序被授予节点号l的各个节点l的节点相应值NVl(l=2,3,...,2N-1)当中的从自身节点到作为最高级节点的根的路径内的节点相应值的处理[数学式18] 其中H是用于将任意大小的输入映射为所述两个大素数的乘积M的大小|M|的函数,并且Hsaltl(l)表示通过对l应用saltl次函数H获得的值。
33.一种用于产生分层树的计算机程序,通过应用基于分层树配置的广播加密方案,所述分层树被应用于用于提供仅可由除了被排除的(取消的)装置之外的特定被选择的装置解密的密码文本的处理,该计算机程序的特征在于包括产生单向树的单向树产生步骤,其中给各个节点设置节点相应值,所述节点相应值设置得可以通过应用基于被设置为相应于至少一个低级节点的节点相应值NVb和节点增加变量saltb的函数f,计算相应于构成该分层树的每个节点的节点相应值NVa;节点密钥计算步骤,通过应用使用相应于各个节点的节点相应值NV作为输入的函数Hc,计算相应于构成所述单向树的各个节点的节点密钥NK;和用于提供的信息确定步骤,选择计算包括在从接收器相应节点到作为最高级节点的根的路径内的节点相应值所需的最小节点相应值和节点增加变量,作为将要提供给相应于所述单向树的终端节点的接收器的信息。
34.一种计算机程序,用于通过应用基于分层树配置的广播加密方案,执行解密以分别相应于构成分层树的节点的节点密钥加密的密码文本的处理,该计算机程序的特征在于包括密码文本选择步骤,从所述密码文本中选择应用了基于由自身装置保持的节点相应值NV和节点增加变量salt产生的节点密钥的密码文本;节点密钥计算步骤,基于由所述自身装置保持的节点相应值NV和节点增加变量salt,计算应用于所述密码文本的节点密钥;和解密步骤,基于计算出的节点密钥执行解密所述密码文本的处理。
全文摘要
提供了一种基于CS方法的加密文本提供结构,它能够减少对加密文本执行解密的装置中要存储的信息量和计算量。产生作为单向树的Rabin树,其中节点相应值被设置为相应于构成分层树的每个节点。这样设置节点相应值NV
文档编号H04L9/08GK1898899SQ20058000134
公开日2007年1月17日 申请日期2005年8月30日 优先权日2004年9月14日
发明者浅野智之 申请人:索尼株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1