CN1753356A - 信息处理方法、解密方法、信息处理装置和计算机程序 - Google Patents
信息处理方法、解密方法、信息处理装置和计算机程序 Download PDFInfo
- Publication number
- CN1753356A CN1753356A CNA2005101099087A CN200510109908A CN1753356A CN 1753356 A CN1753356 A CN 1753356A CN A2005101099087 A CNA2005101099087 A CN A2005101099087A CN 200510109908 A CN200510109908 A CN 200510109908A CN 1753356 A CN1753356 A CN 1753356A
- Authority
- CN
- China
- Prior art keywords
- node
- label
- subclass
- correlation
- tree
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/083—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
- H04L9/0833—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
- H04L9/0836—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key using tree structure or hierarchical structure
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/60—Digital content management, e.g. content distribution
- H04L2209/601—Broadcast encryption
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Storage Device Security (AREA)
Abstract
信息处理方法生成分级树,该分级树用于提供只有特定的选中设备通过广播加密可以解密的密文。该方法包括生成包括具有相应的节点相关值的节点的单向分级树,所述每个节点的节点相关值是通过函数使用至少一个较低节点的节点相关值和节点所附变量计算出;设置允许计算出与特殊子集相关联的标签值的中间标签,所述特殊子集选自基于子集差异方法定义的子集的标签;通过基于该中间标签的计算生成特殊子集的标签,并通过基于所生成标签的计算,生成不与特殊子集相关联的标签;以及确定要提供给接收器的标签,所述接收器与分级树的终端节点相关联。
Description
相关申请
本发明包含涉及于2004年9月14日提交给日本专利局的日本专利申请JP2004-266477的主题,该专利申请整体引用在此作为参考。
技术领域
本发明涉及信息处理方法、解密方法、信息处理装置和计算机程序。本发明更具体地涉及信息处理方法、解密方法、信息处理装置和计算机程序,其中使用Rabin树改进当前公知的基于分级树结构的广播加密方法子集差异(SD)方法和分层子集差异(LSD)方法,使得降低了每个接收器必须安全持有的保密信息量,诸如标签等,降低了每个接收器要执行的计算量,由此实现了有效和安全的信息发布。
1.背景技术
近来,各种软件数据(在下文中称为内容),包括诸如音乐等音频数据、诸如电影等视频数据、游戏程序,和各种应用程序经由诸如因特网等网络或经由诸如光盘(CD)、数字化视频光盘(DVD)和小型盘(MD)等信息记录媒体发布。所发布的内容被播放并由用户的各种信息处理装置使用,所述信息处理装置诸如个人计算机(PC)、播放器或游戏机。
在许多情况下,发布诸如音乐数据或视频数据等内容的权利通常掌握在内容创建者或销售者的手中。因此,当发布这种内容时,通常加以某些使用限制,这样使得只允许经授权的用户使用内容,而放置未经授权的复制或类似情况。
特别地,用于数字记录信息的记录装置或存储媒质最近变得通用。这种数字记录装置和存储媒质允许反复记录和播放,而无退化的内容,诸如视频或音频内容。这引起了问题,诸如在因特网上未经授权的内容复制的发布或在诸如CD-R等记录媒体上未经授权的复制。
在意图防止这种对内容的未经授权的使用的这类系统中,加密用于解密经加密的内容的内容或密钥用于发布,这样使得只有特定的经授权的用户或经授权的设备可以解密发布的数据。这种系统的一个例子是基于分级树结构的广播加密。
将参考附图描述基于分级树结构的、诸如加密密钥等经加密的数据的发布。
图1示出了二叉树的分级树结构。最低层被称为叶,根、分支点和叶被称为节点。根也被称为根节点。在图1所示的二叉分级树结构中,8-15表示叶,1-15表示节点,1表示根。
二叉分级树结构中的叶8到15,诸如播放器或接收器等使用内容的信息处理装置是一个接一个分配的。
此外,节点密钥是一个接一个地分配给树的各自节点(包括叶)。分配给叶8-15的节点密钥有时被称为叶密钥。
对于每个与叶相关联的信息处理装置,给出在从叶到根的路径上分配给节点的节点密钥。在图1所示的例子中,分别分配给叶8到15八个信息处理装置,分别分配给节点1到15节点密钥。例如,对于与叶8相关联信息处理装置101,给出了分配给节点1、2、4和8的四个节点密钥。对于与叶12相关联的信息处理装置102,给出了分配给节点1、3、6和12的四个节点密钥。每个信息处理装置安全地持有这些密钥。
将参考图2描述基于上述节点密钥的设置相关发布,发送仅可以通过所选信息处理装置获取的信息的方法。举例而言,考虑以下情况:通过加密诸如音乐或视频数据等某些内容生成的加密内容通过广播发布或发布在记录诸如DVD等媒质上,这样使得任何人可以获取经加密的内容,用于解密经加密内容的密钥(内容密钥Kc)被提供给特定用户,即授权使用内容的用户或信息处理装置。
假设分配给叶14的信息处理装置被撤销为未经授权的设备,而授权其他的信息处理装置。在这种情况下,生成密文使得分配给叶14的信息处理装置不能获取内容密钥Kc,而另一个信息处理装置可以获取内容密钥Kc,密文经过网络发布或存储在记录媒质上。
在除了被撤销的信息处理装置的节点密钥(由图2中的十字符号表示)之外的节点密钥的情况下,使用尽可能多的信息处理装置共享的一些节点密钥(即树上部中的一些节点密钥)来加密内容密钥。
在图2所示的例子中,提供了使用节点2、6和15的节点密钥加密内容密钥Kc生成的一组密文。即密文E(NK2,KC)、E(NK6,KC)和(NK15,KC)由网络发布生成和提供或存储在记录媒质上。E(A,B)表示使用密钥A加密数据B生成的数据。NKn表示第n个节点的节点密钥。因此,密文组包括三个密文,即通过使用节点密钥NK2加密内容密钥KC生成的数据E(NK2,KC),通过使用节点密钥NK6加密内容密钥KC生成的数据以及通过使用节点密钥NK15加密内容密钥KC生成的数据。
通过生成三个密文并例如经由广播信道发送密文到所有信息处理装置,每个没有被撤销的信息处理装置(与图2中叶8到13和叶15相关联的信息处理装置)可以使用它处理的节点密钥之一解密密文之一,由此获取内容密钥Kc。另一方面,与叶14相关联的经撤销的信息处理装置不处理用于生成三个密文的三个节点密钥NK2、NK6和NK15中的任何一个。因此,即使接收到密文,信息处理装置不能解密密文和获取内容密钥Kc。
在专题或类似会议上报告的广播加密方法的例子是在Cryptography-Crypto2001的进步,计算机科学2139中的演讲笔记,Springer 2001第41-62页,D.Naor、M.Naor和J.Lotspiech的“Revocation and Tracing Schemes for Stateless Receivers”中描述的方法。上述广播加密方法在文件中被称为完整子树(CS)方法。
然而,当使用这样的树结构发布信息时,要广播的消息随着与叶相关联的信息处理装置(用户设备)的数目的增加而增加。此外,必须安全地存储在每个信息处理装置(用户设备)中的密钥信息量,诸如节点密钥,也增加。
例如,在上面所述的CS方法中,当系统中接收器(收件人)的总数是N,经撤销的接收器(即不允许获取广播保密信息的接收器)的数目是r,那么要广播的消息(密文)的数目是rlog(N/r),每个接收器必须在安全存储器中持有的密钥的数目为logN+1。在该说明书中,除了另外说明的地方,对数的底数为2。
为了降低接收器的制造成本,期望降低密钥的数目。已经有提议降低密钥数目的方法,例如密码术和信息安全研讨会2004论文集,第189-194页,在2004年1月Nojima等人提出的“Efficient Tree-based Key Management Using One-wayFunctions”以及密码术和信息安全研讨会2004论文集,第195-199页,Ogata等人提出的”Efficient Tree Based Key Management Based on RSA Function”。
依照这些文章中提议的方法,基于RSA密码系统,每个接收器在CS方法中持有的密钥数目被降低到一个。然而,使用RSA密码系统导致大量的计算,从而期望降低计算量。
提议克服这些问题的方法包括子集差异(SD)方法和分层子集差异(LSD)方法,后者是SD方法的改进版本。举例而言,在Cryptography-Crypto 2001的进步,计算机科学2139中的演讲笔记,Springer 2001第41-62页,D.Naor、M.Naor和J.Lotspiech的“Revocation and Tracing Schemes for Stateless Receivers”中描述了SD方法。举例而言,在Cryptography-Crypto 2002的Advances,计算机科学2442中的演讲笔记,Springer 2002第47-60页,D.Halevy和A.Shamir的“The LSDBroadcast Encryption Scheme”中描述了LSD方法。
在任一方法中,系统中接收器(收件人)的总数是N,被撤销的接收器(即不允许获取广播保密信息的接收器)的数目是r,要广播的消息(密文)的数目是O(r)。与诸如先前描述的完整子树方法等其他方法的情况相比,有利的是这个值较小。
然而,每个接收器在安全系统中必须持有的密钥(标签)的数目在SD方法中是O(log2N)而在LSD方法中为O(log1+εN),其中ε是任意正整数。与诸如完整子树方法等其他方法的情况相比,密钥数目是较大的,由此期望降低密钥数目。
如上所述,当使用树结构来发布信息,消息数目和诸如节点密钥等必须安全存储的每个信息处理装置(用户设备)的密钥信息量随着与叶相关联的信息处理装置的数目的增加而增加。此外,接收器所需的计算密钥的计算工作量也引起了问题。例如,当要存储在每个用户设备中的信息量增加且计算工作量增加时,必须增加安全存储器区域和用户设备的处理能力。这造成了用户设备的制造成本的增加。此外,由于增加的计算工作量,发生了处理延时。
发明内容
期望使用Rabin树进一步改进子集差异(SD)方法和分层子集差异(LSD)方法的效率,这两种方法被视为通过基于分级树结构的广播加密的相对有效的信息发布方案,由此提供了降低计算量和需要安全保存的保密信息量的信息处理方法、解密方法、信息处理装置和计算机程序,从而实现了有效和安全的信息发布。
更优选地,期望提供一种信息处理方法、解密方法、信息处理装置和计算机程序,其中通过使用SD方法和LSD方法中的Rabin树降低每个接收器必须安全持有的密钥数目并显著降低每个接收器用于计算标签等的计算量。
依照本发明的实施例,提供了用于生成分级树的信息处理方法,用于提供仅可由特定的选定设备通过基于分级树结构的广播解密来解密的密文。信息处理方法包括以下步骤:生成单向分级树,所述单向分级树包括形成分级树的节点,所述节点具有各自的节点相关值,每个节点的节点相关值由使用至少一个较低的节点的节点相关值和节点所附变量的函数计算所得;设置中间标签为节点相关值,所述中间标签允许计算与特殊子集相关的标签值,所述特殊子集选自各自与基于分级树的子集差异方法基础上定义的子集相关联的标签;通过基于中间标签的计算生成与特殊子集相关联的标签,以及通过基于生成的标签的计算生成不与特殊子集相关联的标签;以及确定要提供给与分级树的终节点相关联的接收器的标签,这样使得选出不与特殊子集相关联特殊子集无关标签,并作为提供给与单向树的终节点相关联的接收器的信息,选出节点相关值和节点所附变量作为用于计算包含在从与接收器相关联的到作为最高节点的根的路径中的节点的节点相关值。
单向树生成步骤会生成单向树,其中可能通过依照基于较低节点的节点相关值的Rabin密码系统的加密来计算较高节点的节点相关值,且其中可能通过依照基于与较高节点的节点相关值的Rabin密码系统的加密来生成较低节点的节点相关值。
信息处理方法还可以包括选择性地应用子集密钥以生成密文,并将密文提供给接收器的步骤,其中所述子集密钥来自与子集相关联、在标签生成步骤中生成的相应标签。
单向树生成步骤会生成单向树,所述单向树是具有N个终节点的二叉分级树,其中节点号码1从二叉树的较高节点开始以宽度优先的顺序分配,其中l=2,3,...,2N-1,每个节点1的节点相关值NV1满足:
其中M是两个大质数的乘积,H是输出ZM的元素的映射函数。
单向树生成步骤会接收叶的数目N(表示具有N个终节点的二叉分级树中终节点的数目)和模数M的大小|M|输入,并通过以下步骤生成单向树:
(1)确定大小|M|/2的两个大的质数并由此计算乘积M;
(2)定义输出ZM的元素的映射函数H;
(3)随机选择与根节点的值NV1相关联的节点作为二叉树的最高节点,使得NV1∈Z* M;
(4)随着计数器从2到2N-1增加1时执行以下(a)和(b);
(a)找出最小的正整数salt1,temp1由以下公式表示,成为二次剩余模数M;
(b)计算temp1 1/2mod m,并确定四个解之一作为节点1的节点相关值NV1;
以及
(5)输出2N-1个|M|-比特节点相关值NV1,NV2,...,NV2N-1和2N-2个所附变量salt2,salt3,...,salt2N-1,并且设置这些值作为二叉树的相应节点1的节点相关值和节点所附变量,其中l=1到2N-1。
标签生成步骤可以包括接收对应于中间标签的节点相关值的输入并通过应用函数计算与特殊子集相关联的标签值的步骤。
标签生成步骤可以包括通过基于与特殊子集相关联的标签值的随机数生成而生成其他标签的步骤。
在中间标签生成步骤中选出的特殊子集会至少是以下之一:
第一特殊子集,其中节点i和节点j是在子集中的分级树中直接连接的父和子,所述子集每个被定义为通过从以节点i作为其顶点的子树减去以较低的节点j作为其顶点的子树所得的集合;或者
第二特殊子集,定义为以根作为顶点的整个树的集合,包括分级树的所有叶。
要提供的标签的确定步骤会设置一中间标签,所述中间标签被提供给与分级树的终节点相关联的接收器作为与在子集最低层处子集的中间标签相关联的节点相关值,所述子集组成第一特殊子集。
中间标签生成步骤会设置与特殊子集相关联的标签,所述标签选自与由基本分层子集差异方法定义的相应标签相关联的标签,其中子集是以由分级树中的特定层次集合分隔的各个层为基础管理的,值可以从与特殊子集相关联的中间标签计算得出。
中间标签生成步骤会设置与特殊子集相关联的标签,所述标签选自与由基本分层子集差异方法定义的相应标签相关联的标签,其中子集是以由分级树中多个特定层次集合分隔的各个层为基础管理的,值可以从与特殊子集相关联的中间标签计算得出。
依照本发明的另一个实施例,提供了一种解密方法,用于解密使用与基于子集差异方法定义的相应子集相关联的子集密钥生成的密文,所述子集差异方法是基于分级树结构的广播加密方法。解密方法包括以下步骤:选择使用子集密钥生成的密文,所述子集密钥是通过基于拥有的标签或基于可以基于节点相关值和节点所附变量作为拥有的中间标签的计算出的标签的随机数生成获得的;当用于加密的子集密钥不是通过基于所拥有的标签的随机数生成获取的子集密钥时,通过基于节点所附值和节点所附变量的计算,计算出与特殊子集相关联的标签;通过基于所拥有的标签或计算得出的标签的随机数生成,生成子集密钥;以及使用生成的子集密钥解密密文。
密文选择步骤会从分级树中用于加密的节点密钥的节点编号中搜索符合包含在从接收器到根的路径中的节点的节点编号之一的节点编号,其中节点编号以宽度优先顺序分配给相应节点,节点编号1分配给作为分级树的最高节点的根。
标签计算步骤会计算二叉树的相应节点1的节点编号中从拥有的节点到作为最高节点的根的路径上节点的节点相关值,其中l=2,3,...,2N-1,其中依照以下公式基于所拥有的节点相关值和节点相关变量,从较高节点开始以宽度优先顺序分配节点编号1:
其中M是两个大质数的乘积,而H是输出ZM的元素的映射函数。
标签计算步骤会基于作为拥有的节点相关值的中间标签或作为从拥有的节点到作为最高节点的根的路径上的节点的节点相关值的中间值,通过应用映射函数到基于节点相关值计算得出的中间标签,计算出标签。
用于加密的子集密钥可以是基于与第一特殊子集或第二特殊子集相关联的标签的随机数生成计算得出的子集密钥,在所述第一特殊子集中,节点i和节点j是在子集中的分级树中直接连接的父和子,所述子集每个被定义为通过从以节点i作为其顶点的子树减去以较低的节点j作为其顶点的子树所得的集合,所述第二特殊子集被定义为以根作为顶点的整个树的集合,包括分级树的所有叶,当不拥有与特殊子集相关联的标签时,标签计算步骤会通过基于作为拥有的中间标签的节点相关值和节点所附变量的计算,计算出节点相关值作为新的中间标签。
依照本发明的另一个例子,提供了用于生成分级树的信息处理装置,所述分级树用于提供只能由特定的选定设备通过基于分级树结构的广播加密来解密的密文。信息处理装置包括单向树生成装置,用于生成单向分级树,所述单向分级树包括形成分级树的节点,所述节点具有各自的节点相关值,每个节点的节点相关值由使用至少一个较低的节点的节点相关值和节点所附变量的函数计算所得;中间标签生成装置,用于设置中间标签为节点相关值,所述中间标签允许计算与特殊子集相关的标签值,所述特殊子集选自各自与基于分级树的子集差异方法基础上定义的子集相关联的标签;标签生成装置,用于通过基于中间标签的计算生成与特殊子集相关联的标签,以及通过基于生成的标签的计算生成不与特殊子集相关联的标签;以及要提供的信息的确定装置,用于确定要提供给与分级树的终节点相关联的接收器的标签,这样使得选出不与特殊子集相关联特殊子集无关标签,并作为提供给与单向树的终节点相关联的接收器的信息,选出节点相关值和节点所附变量作为用于计算包含在从与接收器相关联的节点到作为最高节点的根的路径中的节点的节点相关值。
单向树生成装置会生成单向树,其中可能通过依照基于较低节点的节点相关值的Rabin密码系统的加密来计算较高节点的节点相关值,且其中可能通过依照基于与较高节点的节点相关值的Rabin密码系统的加密来生成较低节点的节点相关值。
信息处理装置还可以包括选择性地应用子集密钥以生成密文,并将密文提供给接收器的装置,其中所述子集密钥来自与子集相关联、由标签生成装置生成的相应标签。
单向树生成装置会生成单向树,所述单向树是具有N个终节点的二叉分级树,其中节点号码1从二叉树的较高节点开始以宽度优先的顺序分配,其中l=2,3,...,2N-1,每个节点1的节点相关值NV1满足:
其中M是两个大质数的乘积,H是输出ZM的元素的映射函数。
单向树生成装置会接收叶的数目N(表示具有N个终节点的二叉分级树中终节点的数目)和模数M的大小|M|输入,并通过以下步骤生成单向树:
(1)确定大小|M|/2的两个大的质数并由此计算乘积M;
(2)定义输出ZM的元素的映射函数H;
(3)随机选择与根节点的值NV1相关联的节点作为二叉树的最高节点,使得NV1∈Z* M;
(4)随着计数器从2到2N-1增加l时执行以下(a)和(b);
(a)找出最小的正整数salt1,temp1由以下公式表示,成为二次剩余模数M;
(b)计算temp1 1/2 mod m,并确定四个解之一作为节点1的节点相关值NV1;
以及
(5)输出2N-1个|M|-比特节点相关值NV1,NV2,...,NV2N-1和2N-2个所附变量salt2,salt3,...,salt2N-1,并且设置这些值作为二叉树的相应节点1的节点相关值和节点所附变量,其中l=1到2N-1。
标签生成装置可以被配置成接收对应于中间标签的节点相关值的输入并通过应用函数计算与特殊子集相关联的标签值。
标签生成装置可以被配置成通过基于与特殊子集相关联的标签值的随机数生成而生成其他标签。
在中间标签生成装置中选出的特殊子集会至少是以下之一:
第一特殊子集,其中节点i和节点j是在子集中的分级树中直接连接的父和子,所述子集每个被定义为通过从以节点i作为其顶点的子树减去以较低的节点j作为其顶点的子树所得的集合;或者
第二特殊子集,定义为以根作为顶点的整个树的集合,包括分级树的所有叶。
要提供的标签的确定装置会被配置成设置一中间标签,所述中间标签被提供给与分级树的终节点相关联的接收器作为与在子集最低层处子集的中间标签相关联的节点相关值,所述子集组成第一特殊子集。
中间标签生成装置会被配置成设置与特殊子集相关联的标签,所述标签选自与由基本分层子集差异方法定义的相应标签相关联的标签,其中子集是以由分级树中的特定层次集合分隔的各个层为基础管理的,值可以从与特殊子集相关联的中间标签计算得出。
中间标签生成装置会被配置成设置与特殊子集相关联的标签,所述标签选自与由基本分层子集差异方法定义的相应标签相关联的标签,其中子集是以由分级树中多个特定层次集合分隔的各个层为基础管理的,值可以从与特殊子集相关联的中间标签计算得出。
依照本发明的另一个实施例,提供了一种信息处理装置,用于解密使用与基于子集差异方法定义的相应子集相关联的子集密钥生成的密文,所述子集差异方法是基于分级树结构的广播加密方法。信息处理装置包括以下装置:密文选择装置,用于选择使用子集密钥生成的密文,所述子集密钥是通过基于拥有的标签或基于可以基于节点相关值和节点所附变量作为拥有的中间标签的计算出的标签的随机数生成获得的;标签计算装置,当用于加密的子集密钥不是通过基于所拥有的标签的随机数生成获取的子集密钥时,通过基于节点所附值和节点所附变量的计算,计算出与特殊子集相关联的标签;子集密钥生成装置,用于通过基于所拥有的标签或计算得出的标签的随机数生成,生成子集密钥;以及解密装置,用于使用生成的子集密钥解密密文。
密文选择装置会被配置成从分级树中用于加密的节点密钥的节点编号中搜索符合包含在从接收器到根的路径中的节点的节点编号之一的节点编号,其中节点编号以宽度优先顺序分配给相应节点,节点编号1分配给作为分级树的最高节点的根。
标签计算装置会被配置成计算二叉树的相应节点1的节点编号中从拥有的节点到作为最高节点的根的路径上节点的节点相关值,其中l=2,3,...,2N-1,其中依照以下公式基于所拥有的节点相关值和节点相关变量,从较高节点开始以宽度优先顺序分配节点编号1:
其中M是两个大质数的乘积,而H是输出ZM的元素的映射函数。
标签计算装置会被配置成基于作为拥有的节点相关值的中间标签或作为从拥有的节点到作为最高节点的根的路径上的节点的节点相关值的中间值,通过应用映射函数到基于节点相关值计算得出的中间标签,计算出标签。
用于加密的子集密钥可以是基于与第一特殊子集或第二特殊子集相关联的标签的随机数生成计算得出的子集密钥,在所述第一特殊子集中,节点i和节点j是在子集中的分级树中直接连接的父和子节点,所述子集每个被定义为通过从以节点i作为其顶点的子树减去以较低的节点j作为其顶点的子树所得的集合,所述第二特殊子集被定义为以根作为顶点的整个树的集合,包括分级树的所有叶,当不拥有与特殊子集相关联的标签时,标签计算装置会被配置成通过基于作为拥有的中间标签的节点相关值和节点所附变量的计算,计算出节点相关值作为新的中间标签。
依照本发明的另一个例子,提供了用于生成分级树的计算机程序,所述分级树用于提供只能由特定的选定设备通过基于分级树结构的广播加密来解密的密文。计算机程序包括生成单向分级树的步骤,所述单向分级树包括形成分级树的节点,所述节点具有各自的节点相关值,每个节点的节点相关值由使用至少一个较低的节点的节点相关值和节点所附变量的函数计算所得;设置中间标签为节点相关值,所述中间标签允许计算与特殊子集相关的标签值,所述特殊子集选自各自与基于分级树的子集差异方法基础上定义的子集相关联的标签;通过基于中间标签的计算生成与特殊子集相关联的标签,以及通过基于生成的标签的计算生成不与特殊子集相关联的标签;以及确定要提供给与分级树的终节点相关联的接收器的标签,这样使得选出不与特殊子集相关联特殊子集无关标签,并作为提供给与单向树的终节点相关联的接收器的信息,选出节点相关值和节点所附变量作为用于计算包含在从与接收器相关联的节点到作为最高节点的根的路径中的节点的节点相关值。
依照本发明的另一个实施例,提供了计算机程序,用于使用生成的子集密钥解密密文,所述子集密钥与基于子集差异方法定义的相应密钥相关联,所述子集差异方法是基于分级树结构的广播加密方法。计算机程序包括以下步骤:选择使用子集密钥生成的密文,所述子集密钥是通过基于拥有的标签或基于可以基于节点相关值和节点所附变量作为拥有的中间标签的计算出的标签的随机数生成获得的;当用于加密的子集密钥不是通过基于所拥有的标签的随机数生成获取的子集密钥时,通过基于节点所附值和节点所附变量的计算,计算出与特殊子集相关联的标签;通过基于所拥有的标签或计算得出的标签的随机数生成,生成子集密钥;以及使用生成的子集密钥解密密文。
经由诸如CD、FD或MO等存储媒质或通信媒质或经由网络,计算机程序能以计算机可读形式依照这些实施例被提供给(例如)能够执行各种程序代码的计算机系统。有了以计算机可读形式提供的程序,允许计算机系统依照程序执行处理。
结合附图,阅读以下实施例的描述,其他特征将变得更为显而易见。在本说明书中,系统是指多个装置的逻辑组合,而无关这些装置是否在单独情况下存在。
依照这些实施例,为了子集差异(SD)方法和分层子集差异(LSD)方法的效率,使用如下述构建的Rabin树,所述子集差异(SD)方法和分层子集差异(LSD)方法被认为是通过基于分级树结构的广播加密的信息发布的相对有效的方案,所述Rabin树是单向树,其中为分层树的相应节点定义了节点相关值。相应地,降低了每个接收器要安全保存的保密信息量,并降低了用于计算子集密钥的计算量。
更具体地,可能通过基于至少一个较低节点的节点相关值和节点所附变量通过函数来计算节点相关值。这个节点相关值用作允许计算与选自标签的特殊子集相关联的标签值的中间标签,所述标签与基于SD方法定义的相应子集相关联。每个接收器必须安全持有的信息仅仅是不与特殊子集相关联的特岑谷子机无关标签以及对应于中间标签的节点相关值和节点所附变量。由此降低了每个接收器必须安全持有的信息量。无需安全地保存节点所附变量,其大小可以平均减小两个比特。由此,显著地降低了每个用户必须安全持有的信息量。此外,与基于RSC密码系统的方法相比较,由于可以使用单一的平方操作来执行模数求幂操作,因此计算量可以降低至大约1/17,其中所述模数求幂操作会造成接收器计算量的巨大负载。如上所述,依照本发明的实施例,降低了每个用户要安全保存的信息量,降低了每个用户要获取子集密钥的计算量。相应地,可以有效地执行密文发布和解密。
附图说明
图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是说明子集差异(SD)方法中子集定义的示意图;
图18A和18B是说明SD方法中标签的设置和配置的示意图;
图19A到19D是说明SD方法中子集设置的示意图;
图20是示出SD方法中,当接收器总数N=16时,每个接收器将持有的标签的示意图;
图21是说明SD方法中每个接收器将持有的标签的示意图;
图22是说明SD方法中每个接收器要持有的标签的示意图;
图23是示出SD方法中特定接收器u4所属的子集的细节的示意图;
图24是示出第一特殊子集的例子的示意图,其中节点是父和子节点;
图25是示出与特殊子集相关联的标签和依照参考图8描述的算法计算得出和用作中间标签的2N-1个中间标签之间的关系;
图26是说明确定要提供给接收器的标签的过程的示意图;
图27是示出设置过程流程的示意图;
图28是用于在接收器总数为N=16的分级树结构中撤销接收器u5、u11和u12的子集的示意图;
图29是示出信息发布过程的流程的示意图;
图30是说明获取子集密钥的特定例子的示意图;
图31是从接收器接收密文到获取子集密钥和解密的过程的流程图;
图32是示出采用Rabin树的SD方法中,在接收器处获取子集密钥的过程的流程图;
图33是示出SD方法中确定标签和生成密文的信息处理装置的配置的示意图;
图34是示出SD方法中解密密文的信息处理装置的功能配置的示意图;
图35是示出信息处理装置的示例性硬件配置的框图;
图36是说明基本LSD方法的示意图;
图37是说明基本LSD方法中每个接收器持有的标签数目的示意图;以及
图38是说明采用Rabin树的基本LSD方法中降低标签数的方案的示意图。
优选实施例的描述
现在会参照附图详细描述依照本发明的实施例的信息处理方法、解密方法、信息处理装置和计算机程序。
将用以下顺序给出描述:
1.完整子树(CS)方法的概述
2.采用Rabin树的CS方法的方案
3.使用采用Rabin树的CS方法的密文发布和解密
4.使用采用Rabin树的CS方法检查密文发布方案中计算量的降低
5.子树差异(SD)方法的概述
6.在SD方法中降低标签数目的方案
7.在采用Rabin树的SD方法中降低标签数目的方案
8.使用采用Rabin树的SD方法的密文发布和解密
9.基本分层子集差异(基本LSD)方法的概述
10.在采用Rabin树的基本LSD方法中降低标签数目的方案
11.通用分层子集差异(通用LSD)方法的概述
12.采用Rabin树的通用LSD方法中降低标签数目的方案
13.使用采用Rabin树的SD方法检查密文发布方案中计算量的降低
1.完整子树(CS)方法的概述
首先,将描述完整子树(CS)方法的概述,所述方法是公知的基于现有分级树结构的广播加密方法。
在以下描述中,简单起见,假设与分级树结构的叶相关联的信息处理装置(接收器)的总数N是2的幂数。也假设在以下描述中对数的底数总是2。可能将各种类型的信息处理装置与分级结构的叶相关联,诸如个人计算机或便携式中断,只要这些装置能够如下所述地解密保密信息。在以下描述中这些装置一般称为接收器。此外,假设该实施例中的密文发布过程包括提供记录在记录媒质上的密文的过程和经由通信网络提供密文的过程。
1.1完整子树(CS)方法的概述
现在将参考图3和随后的附图描述完整子树(CS)方法的概述。
在Cryptography-Crypto 2001的Advances,计算机科学2139中的演讲笔记,Springer 2001第41-62页,D.Naor、M.Naor和J.Lotspiech的“Revocation and TracingSchemes for Stateless Receivers”中描述的完整子树(CS)方法中(先前提到过),二叉树被用作分级树结构,其中每个节点分叉为两个,如图3所示。图3示出了接收器数目N=16的例子。接收器被分别分配给二叉树的叶(即图3中的u1到u16)。此外,树的每个节点被用于表示“分配给以该节点作为其顶点的子树的叶的一组接收器”。例如,图3中的节点i 201表示一组接收器u5和u6。
此外,为图3所示的二叉树的节点分别定义了节点密钥。在其安全存储器中每个接收器持有分配给从接收器分配给的叶到树的根的路径上节点的节点密钥。树的定义、节点密钥的定义、接收器的分配、节点密钥的发布等等是由信任管理中心管理的,所述新人管理中心在下文中被称为信任中心。
如图4所示,16个接收器u1到u16被分配给分级树,存在31个节点1到31。对于接收器u4,给出了分配给节点1、2、4、9和19的五个节点密钥。即,每个接收器持有logN+1个节点密钥,其中N表示接收器的总数。
参见图5,将描述基于上述设置,如何发送保密信息(例如用于解密经加密的内容的内容密钥)给未被撤销的接收器。这里假设信任中心(TC)作为保密信息的发送器。现在,假设接收器u2、u11和u12被撤销为未经授权的设备。即,只允许除接收器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的节点密钥由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的解密而允许所有其他接收器的解密。通过以上述方式生成和发送密文集,可以有效且安全的发送保密信息。
每个未经撤销的接收器可以通过解密可以由接收器解密的密文来获取保密信息,即使用与从接收器所分配给的叶到根的路径上的节点相关联的节点密钥加密的密文。在上述例子中,举例而言,接收器u4持有节点9的节点密钥,这样使得接收器u4可以使用节点9的节点密钥来解密密文E(NK9,Kc)。相似地,对于每个未经撤销的接收器,接收到的密文集包括可以由该未经撤销的接收器解密的单个密文。
1.2在CS方法中降低密钥数目
观察上述CS方法示出,在CS方法中,以给定节点作为其顶点的子树的叶也是根是那个节点的祖先节点的子树的叶。
举例而言,如图6所示,根为节点j 232的子树P235的叶u5和u6也是根是节点i的子树A230的叶,所述节点i是节点j 232的祖先节点。
因此,持有某个节点的节点密钥的接收器也持有那个节点的祖先的节点密钥。例如,如图6所示,当节点i 231是节点j 232的祖先时,每个具有节点j 232的节点密钥的接收器(u5和u6)也具有节点i 231的节点密钥。然而,相反未必为真。
由于上述特征,举例而言,通过定义节点密钥可能从给定树的节点的节点密钥计算出祖先节点的节点密钥,相比独立拥有多个节点密钥的情况可以降低密钥数目,即接收器的存储器。
然而,应该禁止从较高节点的节点密钥计算出后继节点的节点密钥。例如,如图6所示,当节点i 231是节点j 232的祖先,具有节点j 232的节点密钥的接收器(u5和u6)也具有节点i 231的节点密钥。相反地,具有节点i 231的节点密钥的接收器(u1到u8)不必须具有节点j 232的节点密钥。在如图6所示的分级中,在接收器u1到u8中,只允许接收器u5和u6具有节点j 232的节点密钥。不允许其他接收器u1到u4和u7到u8具有节点j 232的节点密钥,因为不允许这些接收器从节点I 231的节点密钥计算出节点j 232的节点密钥。
因此,在依照实施例的树结构中,使用单向函数y=F(x)为相应的节点定义节点密钥,所述单向函数即可以简单的从x计算出y而阻止相反操作的函数。
1.3使用RSA密码系统降低密钥数目
现在,将描述基于RSA密码系统的、由Nojima等人和Ogata等人在“EfficientTree-based Key Management Using One-way Functions,pp.189-194”和“Efficient TreeBased Key Management Based on RSA Function,pp.195-199”中提出的方法。在这个实施例中,如图7所示,使用RSA密码系统的正置换(f)和逆置换(f-1)。用M表示RSA密码系统的模数,e表示公开指数和d表示私用指数,知道模数M和公开指数e就允许正置换(f)而不知道私用指数d就禁止逆置换(f-1)。
举例而言在A.J.Menezes,P.C.van Oorschot和S.A.Vanstone的“Handbook ofApplied Crtyptography”CRC出版社,1996中描述了RSA密码系统。
在基于RSA密码系统的方法中,只有信任中心保密地持有私用指数d,而模数M和公开指数e对接收器公开。信任中心定义保密值K,使得K∈Z* M,并将它用作根密钥NK1,即NK1=K。K∈Z* M表示K是组Z* M的元素(即在组ZM={0,1,...,M-1}中具有逆元素的一组元素)。
其中[i]表示不大于i的最大整数
依照以下公式:
其中表示XOR操作
在上述等式中,H表示将任意大小的输入映射到ZM的元素的公开函数。
如上所述,只允许知道私用指数d的信任中心从父节点的密钥获取子节点的密钥。相反地,依照以下等式:
知道子节点的密钥NK1的接收器可以获取如下所示的父节点的节点密钥:
使用公开的模数M、公开指数e和公开函数H。
2.采用Rabin树的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的元素。
使用节点编号1和节点1的父节点的节点相关值计算出与非根的节点1(l=2,3,...,2N-1)相关联的值,表示为:
首先,用以下公式定义temp1:
确定了使得由上述公式定义的值temp1成为二次剩余模数两个大的质数的乘积M的最小正整数salt1。值salt1是与节点1相关联的节点所附变量。
在上述等式中,l||salt1表示l和salt1的级联,H表示将任意大小的输入映射到由两个大的质数的乘积M定义的组ZM。例如,使用对于任意长度的输入得出16比特的输出的Hash函数,将|M|-160比特的0和到SHA-1的输入l||salt1得出的输出级联,所得|M|比特值被用作H(l||salt1)。在例如A.J.Menezes、P.C.van Oorschot和S.A.Vanstone的“Handbook of Applied Cryptography”CSC出版社,1996中描述了Hash函数SHA-1。
当数字K是二次剩余模数M时,存在满足a2≡K(mod M)的数字a。这表示为K∈QRM。知道了M的素因数p和q,依照是否满足以下公式可能确定数字K是否满足QRM:
和
其中(a/p)是勒让德符号。即,当且仅当同时满足上述公式时K符合K∈QRM。
此外,知道M的素因数p和q就能计算出这样的值a使得a2≡K(mod M)。举例而言在Sangyo Tosho第14页,Tatsuaki Okamoto和Hiroshi Yamamoto的“Gendai Angou”中描述了计算方法。当K∈QRM时,有四个a的值满足a2≡K(mod M)。
相反地,当K∈QRM时,禁止不知道M的素因数p和q计算出满足a2≡K(modM)的值a。实际上,证实了这个问题等同于将M因数分解。当找到满足temp1∈QRM的最小正整数salt1时,计算出temp1 1/2mod M,并选择作为解获取的四个值之一作为与节点1相关的值,即节点1的节点相关值NV1。
这样,节点2和3的节点相关值NV2和NV3从根节点的节点相关值NV1来确定,重复这个过程直至确定到节点NV2N-1为止所有节点的节点相关值。
用上述方式确定的相应节点的节点相关值NV1(l=2,3,...,2N-1)满足以下关系:
(1)
由于函数H和模数M是公开的,以下所示的父节点的节点相关值可以容易地从给定节点的节点相关值NV1和节点所附变量salt1计算出:
以下将描述用于构建具有N个叶的二叉Rabin树的算法的例子。这个算法的输入如下:
输入:
N:二叉树叶的数目
|M|:模数M的大小
该算法的输入如下:
输出:
M
H:用于输出ZM的元素的映射函数
NV1,NV2,...,NV2N-1:2N-1个|M|比特节点相关值
salt2,salt3,...,salt2N-1:2N-2个节点所附变量
基于输出用于获取输出的算法如下:
1.确定大小|M|/2的两个大的质数并计算出它们的乘积。
2.确定将任意大小的输入映射到ZM的元素的函数H。
3.随机选择一值NV1∈Z* M作为根节点的节点相关值。
4.随着计数器从2到2N-1增加1时执行下述过程a和b;
a.找出最小的正整数salt1,以下所示的temp1是二次剩余模数M;
(2)
b.计算temp1 1/2mod m,并确定四个解之一作为节点1的节点相关值NV1。
5.输出M、H、2N-1个|M|-比特节点相关值NV1,NV2,...,NV2N-1和2N-2个节点所附变量salt2,salt3,...,salt2N-1,并推出过程。
输出值NV1用作Rabin树的节点l的节点相关值。具有N个叶的完整二叉树的节点总数为2N-1,而输出包括所有节点的节点相关值。
图8示出了算法的流程。现在,将描述流程的步骤。在步骤S101中,二叉树的叶的数目N和模数M的大小|M|是输入。
在步骤S102中,在确定模数M和映射函数H后,随机地选出根节点的节点相关值NV1∈Z* M。在步骤S103中,1起初被设置为l=2。
在步骤S104中,使得由公式(2)定义的temp1成为二次剩余模数M的最小正整数被选作节点所附变量。在步骤S105中,计算出temp1 1/2mod m,并确定四个解之一作为节点1的节点相关值NV1。
在步骤S106中,检查是否l=2N-1。当1≠2N-1时,过程进入步骤S107,其中1递增1。接着,执行步骤S104和S105。重复步骤S104和S105直至在步骤S107中确定l=2N-1。当在步骤S107中确定l=2N-1时,过程进入步骤S108。在步骤S108中,模数M、映射函数H、2N-1个|M|-比特节点相关值NV1,NV2,...,NV2N-1和2N-2个所附变量salt2,salt3,...,salt2N-1。过程接着退出。
图9示出了Rabin树的结构,其中相应节点的节点相关值由上述过程确定。关于由具有由上述过程确定的节点相关值NV1的节点组成的树,以下所示的父节点的节点相关值从给定节点的节点相关值NV1和节点所附变量salt1得出,而禁止相反的操作:
在图9中,沿着函数f的每个线性箭头表示通过对较低节点的节点相关值NV1应用函数f可以计算出较高节点的节点相关值。函数f是基于前向操作(平方modM)F。给定子节点的父节点的节点相关值可以依照先前给出的公式(1),使用公用函数H和模数M从节点相关值NV1和节点所附变量salt1计算得出。
在图9中,沿着函数f-1的每个线性箭头表示可以通过对作为输入的较高节点的节点相关值应用f-1计算出较低节点的节点相关值。函数-1是基于反向操作(1/2求幂mod M)F-1。为了从较高节点的节点相关值计算出子节点的节点相关值,需要知道保密信息p和q(M的素因数)。这仅对于信任中心可能。
如上所述,关于从较低到较高的方向单向树是这样生成的使得可以使用公用函数H和模数M依照先前给出的公式(1)计算出节点相关值NV,而同时禁止相反的操作。如上述具有节点相关值NV1的节点组成的单向树被称为Rabin树。这是因为Rabin密码系统使用平方mod M来加密(正向操作)和开方mod M来解密(反向操作)。
即分配给作为单向树的Rabin树的节点的节点相关值具有以下特征。较高节点的节点相关值可以通过基于较低节点的节点相关值的Rabin密码系统的加密(正向操作)来计算,而较低节点的节点相关值通过基于较低节点的基多电相关值的Rabin密码系统的解密(反相操作)来计算。相应地,较高节点的节点相关值可以使用公用函数H和模数M依照先前描述的表达式(1)从较低节点的节点相关值计算出。然而,禁止单独使用公用函数H和模数M从较高节点的节点相关值计算出较低节点的节点相关值,仅计算对于知道保密信息p和q(H的素因数)的信任中心可能。在例如A.J.Menezes、P.C.van Oorschot和S.A.Vanstone的“Handbookof Applied Cryptography”CSC出版社,1996,第292-294中详细描述了Rabin密码系统。表达式(1)中的加号“+”和表达式(2)中的减号“-”可以用异或(XOR)操作来代替。
2.2使用Rabin树降低密钥数目的方案
在如上述构建的Rabin树中,相应节点的节点密钥NK1类似于CS方法的情况来定义。节点密钥NK1是可以用上述方式中定义的节点相关值NV1计算的值。更具体地,节点1的节点密钥NK1是NK1=HC(NV1)。函数HC是将大小|M|映射到大小C的随机值的hash函数。例如,当C是160比特时,SHA-1可以用作对于任何大小的输入输出160比特值的函数。当C时128比特时,MD5可可以用作对于任意大小的输入输出128比特值的函数。MD5也在A.J.Menezes、P.C.van Oorschot和S.A.Vanstone的“Handbook of Applied Cryptography”CSC出版社,1996中进行了详细描述。
节点密钥用于加密要发送给接收器的信息,诸如会话密钥。因此,选择C的大小为用于该目的的加密算法的密钥的大小。例如,当使用AES(高级加密标准,FIPS 197)作为加密算法时,选择C为128比特,该标准使用128比特密钥。当用于加密函数的密钥大小为|M|时,会选择节点密钥使得NK1=NV1。即,HC可以时恒等函数。
Rabin树的N个叶是从左端开始编号,如leaf1,leaf2,...,leafN(即,由于最左端leaf1的节点编号是N,leafi的节点编号是N-1+i),接收器ui被分配给leafi。叶节点leafi的节点相关值NVN-1+i和从leafi到根的路径上的节点的logN个节点所附变量salt1被分配给接收器ui。当如图10所示分配接收器时,节点19的节点相关值NV19和从节点19到根的路径上节点所附变量salt19、salt9、salt4和salt2被分配给已分配给左节点19的接收器u4。
使用这个设置,接收器u4可以使用节点相关值NV19和从节点19到根的路径上节点的节点所附变量salt19、salt9、salt4和salt2来计算从节点19到根的路径上所有节点的节点相关值。相应节点的节点密钥NK1可以依照NK1=HC(NV1)从节点相关值NV1计算出,如先前所述。
在如图10所示的接收器分配中,节点19的节点相关值NV19和从节点19到根的路径上节点所附变量salt19、salt9、salt4和salt2被分配给已分配给左节点19的接收器u4。通过以下过程计算节点接收器u4(对于节点编号1、2、4和9)的较高节点的相关值NV和节点密钥NK。
(a1)较高节点9的节点相关值NV9是通过NV9=((NV19)2+H(19||salt19))modM从节点19的节点相关值NV19计算出
(a2)较高节点4的节点相关值NV4是通过NV4=((NV9)2+H(9||salt9))modM从节点9的节点相关值NV9计算出
(a3)较高节点2的节点相关值NV2是通过NV2=((NV4)2+H(4||salt4))modM从节点4的节点相关值NV4计算出
(a4)较高节点1的节点相关值NV1是通过NV1=((NV2)2+H(2||salt2))modM从节点2的节点相关值NV2计算出
较高节点的节点相关值是依照以上给出的等式从较低节点的节点相关值计算出的。
此外,可以依照以下等式从相应节点的节点相关值计算出节点密钥:
(b1)节点19的节点密钥NK19可以通过NK19=HC(NV19)从节点19的节点相关值NV19计算出
(b2)节点9的节点密钥NK9可以通过NK9=HC(NV9)从节点9的节点相关值NV9计算出
(b3)节点4的节点密钥NK4可以通过NK4=HC(NV4)从节点4的节点相关值NV4计算出
(b4)节点2的节点密钥NK2可以通过NK2=HC(NV2)从节点2的节点相关值NV2计算出
(b5)节点1的节点密钥NK1可以通过NK1=HC(NV1)从节点1的节点相关值NV1计算出
接收器u4需要将节点相关值NV19保密,而无需将节点所附变量salt保密。因此,可以安排所有的接收器具有所有节点所附变量salt1。
现在,考虑每个节点所附变量salt的大小。给定数字是二次剩余模数M的概率大约为1/4。因此,当尝试4个值作为salt1,期望平均有一个值使得temp1为二次剩余。因此,期望用于表示节点所附变量salt1所需的大小是2个比特。
在一些情况下,四个值中没有一个导致二次剩余。例如当L个值使用作为节点所附变量salt1时,没有temp1是二次剩余的的概率是3L/4L。因此,当L=4时,没有temp1是二次剩余发生的概率是34/44≈42.2%。然而,当节点所附变量salt1是8比特值且尝试256个值时,没有temp1是二次剩余的概率被显著地降低为3256/4256≈1.0×10-32。因此,即使当叶的数目N较大时,例如230≈109或240≈1012,未能找到节点所附变量salt1使得temp1成为二次剩余的概率变得忽略不计地小。
3.通过采用Rabin树的CS方法进行密文发布和解密
接着,将描述基于Rabin树的密文发布过程和密文解密过程,其中与二叉树的相应节点相关联的节点相关值NV1由上述过程分配。将用以下顺序给出描述:
3-1.设置过程
3-2.信息发故过程
3-3.信息接收和解密过程
3-1.设置过程
设置过程仅在激活系统时执行一次。每次出现要发送的信息时执行后续的信息发布过程和信息接收和解密过程,例如,当发布诸如DVD等存储新内容的信息记录媒质或经由网络发布新信息时。可以由独立于实际发布密文的实体的信任中心(TC)或由发布密文的实体执行设置过程。将在由信任中心(TC)执行设置过程的例子的环境中给出以下描述。
a.步骤1
信任中心(TC)定义具有N个叶的二叉树,并将节点编号k(j=1,2,...,2N-1)分配给树中的相应节点。指定根节点,即二叉树中的最高节点,为节点1,并以宽度优先的顺序编号子孙节点。即,举例而言,如图32所示分配节点编号1到31。因此,节点编号1到2N-1被分配给二叉树中的相应节点。此外,接收器um(m=1,2,...,N)被分配给树的相应节点。
b.步骤2
信任中心(TC)首先确定模数M的大小|M|。
接着,将树的叶数目N和模数M的大小|M|作为输入,依照参考图8中的流程图描述的算法创建具有N个叶的二叉Rabin树。首先,定义模数M和将任意大小的值映射到ZM的随机元素的映射函数H,随机地选择根节点的节点相关值NV1∈Z* M,接着定义节点1到2N-1的2N-1个|M|比特节点相关值NV1,NV2,...,NV2N-1和节点2到2N-1的2N-2个所附变量salt2,salt3,...,salt2N-1。由于salt值不是保密的,信任中心(TC)会公开salt值。此外,信任中心会公开模数M和映射函数H。此外,信任中心(TC)定义将大小|M|的值映射到大小C的随机值的函数HC并公开HC。
图9示出了结构Rabin树,其中相应节点的节点相关值NV1是由上述过程定义的。对于节点相关值NV1由上述过程定义的树,可能容易从给定节点的节点相关值NV1和节点所附变量salt1计算出父节点的节点相关值;然而,禁止反向操作。
此外,信任中心使用NK1=HC(NV1)从节点相关值NV1中计算出节点1的节点密钥NK1。
c.步骤3
信任中心(TC)依照以下规则将节点密钥分配给以分配给树的终端处的叶的接收器um(m=1,2,...,N)。如图10所示,接收器被分配给节点编号为16到31的树的叶。在图10所示的例子中,16个接收器u1到u16被分配给节点编号为16到31的节点。
从接收器um所分配的叶到根的路径将被示为路径m[path-m]。路径m[path-m]上的节点集将被示为路径节点m[PathNodes-m]。
在图10所示的例子中,
PathNodes-1={1,2,4,8,16}
PathNodes-4={1,2,4,9,19}
PathNodes-11={1,3,6,13,26}
图10中连接节点1、2、4、8和16的线表示接收器u1的路径1[path-1],它是由PathNodes-1={1,2,4,8,16}组成的。图10中连接节点1、2、4、9和19的线表示接收器u4的路径4[path-4],它是由PathNodes-4={1,2,4,9,19}组成的。
信任中心(TC)将以下项目分配给每个接收器um:
(a)接收器um所分配至的叶节点的节点相关值NV1
(b)接收器um的路径上除根节点外的路径节点的salt值
在图10所示的结构中,节点19的节点相关值NV19和从节点19到根的路径上节点的节点所附变量salt19、salt9、salt4和salt2被分配给已分配给叶节点19的接收器。
即,叶节点leafi的节点相关值NVN-1+i和从叶节点leafi到根的路径上节点的logN个节点所附变量salt1被分配给接收器ui。
接收器将节点相关值保密以防止泄漏。节点所附变量可以公开,无需保密。
图11示出了设置过程的流程。现在,将描述图11所示的步骤。
在步骤S201中,信任中心(TC)定义具有N个叶的二叉树,将编号分配给节点,其中根节点(即二叉树中的最高节点)的编号为1并以宽度优先顺序分配给子孙节点。即如图9和10所示的分配节点编号1到31。此外,信任中心(TC)分配接收器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|比特节点相关值NV1,NV2,...,NV2N-1和节点2到2N-1的2N-2个所附变量salt2,salt3,...,salt2N-1。此外,信任中心(TC)定义将大小|M|的值映射到大小C的随机值的函数HC并将函数HC公开。
此外,信任中心(TC)使用NK1=HC(NV1)从节点相关值NV1中计算出节点1的节点密钥NK1,由此确定相应节点1的机节点密钥NK1。
在步骤S203中,信任中心(TC)将先前描述的以下项目分配给已分配给树的终端处的叶节点的接收器um(m=1,2,...,N):
(a)接收器um所分配至的叶节点的节点相关值NV1
(b)接收器um的路径上除根节点外的路径节点的salt值
3-2.信息发布过程
通过信任中心(TC)广播一个或多个密文完成信息的发布,即保密信息的发送。每个密文是通过使用一个节点密钥加密保密信息生成的。用于加密的节点密钥是以与完整子树(CS)方法相同的方式选出的。
在图5所示的例子中,发送了五个密文。在图5所示的例子中,接收器u1、u11和u12是经撤销的接收器。即接收器u1、u11和u12被撤销为未经授权的设备,并且只允许其他接收器安全地接收消息,即基于广播密文执行解密。
当发送信息时,不使用在从经撤销的接收器u1、u11和u12所分配至的叶到树的根的路径上的节点的节点密钥生成和广播密文集。当从树删除从经撤销的接收器u1、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的解密,而允许其他接收器的解密。通过生成和发送这样的密文,可以有效而安全地发送保密消息。
可以找到用于这种加密的节点密钥,例如以完整子树(CS)方法中相同的方式或通过使用表示树。
将参考图12中所示的流程图描述信息发布过程。在步骤S301中,信任中心(TC)在信息发布中选择要撤销的接收器。
在步骤S302中,信任中心(TC)选择用于生成密文的节点密钥,即用于加密要发送的保密消息。在步骤S303中,信任中心(TC)生成要使用的节点密钥的特定信息,用作接收密文的接收器的索引数据用于选择可解密密文。要使用的节点密钥的特定信息是标志信息或表示已选节点的表示代码。
在步骤S304中,信任中心(TC)使用所选节点密钥加密要发送的保密信息。在步骤S305中,信任中心(TC)经由广播信道一起发送经加密的信息和要使用的节点密钥的特定信息或将其存储在信息记录媒质上。上述步骤不一定要用上述顺序执行。
用于加密的节点密钥可以是设置阶段中信任中心(TC)创建和维护的节点密钥。或者,可能在设置阶段中仅创建和维护相应叶的节点相关值NV1和相应节点的salt值并从这些值得出节点密钥。
当没有接收器要撤销时,根节点的节点密钥NK1被用于保密信息的加密。在这种情况下,允许所有的接收器解密所发送的信息。
3-3.信息发送和解密过程
接着,将描述上述密文的接收过程和解密过程。上述密文被通过广播或存储在信息记录媒质上提供给接收器。密文可以被所有的接收器接收,而无关是否被撤销。然而,经撤销的接收器不接收用于解密密文的节点密钥,这样使得不允许经撤销的接收器解密接收到的信息。
每个没有被撤销的接收器选择它可以从接收到的密文集中解密的密文。包含在接收到的密文集中用于加密密文的节点密钥包括它直接持有的节点相关值NV1和可以从salt值得出的节点密钥。
每个没有被撤销的接收器可以通过从节点相关值NV1和salt值得出与用于加密的节点密钥NKk相关联的节点相关值NVk、从节点相关值NVk得出节点密钥NKk以及使用得出的节点密钥解密密文来获取保密信息。可以使用先前描述的节点密钥特定信息找到接收器要解密的密文。
在提取密文过程中,接收器um提取用于加密的节点密钥的节点编号k并从与接收器um相关联的路径节点m[PathNodes-m]找到具有匹配节点编号的节点。
接收器um具有它所分配至的叶节点1的节点相关值NV1。因此,接收器依照以下公式(2)从它也持有的节点相关值salt1计算节点l的父节点的节点相关值,表示为:
接收器um重复这个操作以获取从节点1到根的路径上节点k的节点相关值NKk。接着,接收器um通过NKk=HC(NVk)从节点k的节点相关值NVk获取节点k的节点密钥NKk。接收器um使用所得出的节点密钥解密密文。
现在,将参考图13描述特定例子。假设接收器u4(节点编号19)没有被撤销,经描述由接收器u4执行的处理。当接收器u4(节点编号19)没有被撤销时,用于加密的节点密钥包括与符合节点编码之一的节点编码相关联的节点密钥,所述节点编码包含在与接收器u4相关联的路径节点4[PathNodes-4]={1,2,4,9,19}中。
即,包括E(NK1,KC)、E(NK2,KC)、E(NK4,KC)、E(NK9,KC)和E(NK19,KC)之一的密文集通过网络发布或存储在记录媒质上提供,其中[KC]表示保密信息。E(A,B)表示通过使用密钥A加密数据B生成的数据。接收器u4从接收到的密文集检测与符合节点编码之一的节点编码相关联的密文,所述节点编码包含在路径节点4[PathNodes-4]={1,2,4,9,19}中。
在确定节点密钥NK1、NK2、NK4、NK9和NK19中哪个被用于解密密文后,微机计算出确定的节点密钥,接收器u4使用它持有的节点相关值NV4计算较高节点的节点相关值和计算salt2、salt4、salt9和salt19的节点所附变量,并进一步从计算出的节点相关值计算节点密钥。如上所述,较高节点的节点相关值是依照以下公式从较低节点的节点相关值计算出的:
NV9=((NV19)2+H(19||salt19))mod M
NV4=((NV9)2+H(9||salt9))mod M
NV2=((NV4)2+H(4||salt4))mod M
NV1=((NV2)2+H(2||salt2))mod M
此外,节点密钥是依照以下公式从相应节点的节点相关值计算出的:
NK19=Hc(NV19)
NK9=Hc(NV9)
NK4=Hc(NV4)
NK2=Hc(NV2)
NK1=Hc(NV1)
接收器u4可以通过使用节点的节点密钥NK19、NK9、NK4、NK2和NK1之一解密包含在密文集中的密文以获取保密信息[KC],所述节点包含在路径节点4[PathNodes-4]={1,2,4,9,19}中。
将参考图14中所示的流程描述由接收器um执行的处理。在步骤S401中,接收器um接收到密文集。密文集是经由网络或信息记录媒质接收到的。
在步骤S402中,接收器um从接收到的密文集提取使用节点密钥加密的密文,所使用的节点密钥在用于加密包含在密文集中的密文的节点密钥中,可以基于可以从它直接持有的节点相关值NV和节点所附变量salt得出的节点相关值计算。这对应于检测符合节点编码之一的节点编码的接收器um,所述节点编码包含在与接收器um相关联的路径节点m[PathNodes-m]中。接收器未能确定要解密的密文表示该接收器已被撤销。
在步骤S403中,接收器um使用它持有的节点相关值NV和节点所附变量salt计算用于加密的节点密钥。更具体地,较高节点的节点相关值是依照先前给出的公式(1)计算的,而节点密钥NKk是依照NKk=HC(NVk)基于节点相关值计算的。
在计算出用于加密的节点密钥后,在步骤S404中,接收器使um用计算出的节点密钥来解密密文以获取保密消息。
保密消息是,例如,用于解密经加密的电视广播系统的内容的内容密钥。在这种情况下,接收器接收经加密的内容、使用内容密钥解密经加密的内容并输出经解密的内容。上述处理不一定要以所述的顺序执行。
接着,将参考图15和16描述提供密文的信息处理装置的功能配置以及接收和解密密文的信息处理装置的功能配置。提供密文的信息处理装置执行用于确定生成的节点密钥的过程和用于生成密文的过程。解密密文的接收器执行用于生成节点密钥的过程和用于使用节点密钥解密密文的过程。
首先,将参考图15描述提供密文的信息处理装置的配置。信息处理装置410包括单向树(Rabin树)生成器411、节点密钥生成器412、要提供的信息(节点相关值NV和节点所附变量salt)确定单元413、密文生成器414和密文提供单元415。
信息处理装置410采用基于分级树的广播加密以提供可以由不包括经撤销的设备的特定的选中设备解密的密文。单向树生成器411生成Rabin树,其中可以依照公式(1)使用至少一个较低层的节点相关值NV和节点所附变量salt计算出分级树的每个节点的节点相关值NV。
节点密钥生成器412通过NK=HC(NV)基于节点相关值NV计算出每个节点的节点密钥NK。
要提供的信息确定单元413将与接收器相关联的节点的节点相关值NV1和包含在从与接收器相关值节点到作为节点的最高根的路径中的节点的节点所附变量提供给与分级树的终端节点相关联的每个接收器。
密文生成器414基于与由单向树(Rabin树)生成器411生成的Rabin树的相应节点相关联的节点相关值NV,通过选择性地使用由节点密钥生成器412生成的节点密钥NK的加密生成密文。
接着,将参考图16描述作为用于执行解密密文过程接收器的信息处理装置的功能配置。
作为用于执行解密密文过程接收器的信息处理装置420包括密文选择器421、节点密钥计算器422、解密单元423和存储器424。
密文生成器421从设置成要处理的密文中选出由较高节点密钥生成的密文,所述较高节点密钥生成的密文可以从其内存424中持有的节点相关值NV1和节点所附变量salt计算出。更具体地,如前所述,密文生成器421依照先前给出的公式(1)使用它持有的节点相关值NV和节点所附变量salt计算较高节点的节点相关值,并依照NKk=HC(NVk)基于节点相关值计算用于加密的节点密钥NKk。
解密单元423基于由节点密钥计算器422计算出的节点密钥解密密文。
4.使用采用Rabin树的CS方法检查密文发布方案中计算量的降低
与通过基于先前描述的RSA密码系统的CS方法的密钥数目的降低相比,通过依照这个实施例的CS方法密文发布方案具有一个优势:接收器执行的计算量较小。
在基于RSA密码系统的CS方法中密钥数目的降低中,接收器从给定节点的节点密钥NK1得出其父节点的节点密钥,表示为:
依照:
由于XOR操作和hash函数H的计算强度比模数求幂操作低得多,因此在上述公式中模数求幂操作NK1 emod M占支配地位。
在基于RSA密码系统的系统中,为了降低计算量,期望将公用指数和e的汉明权减到最小。然而,例如e=3太小以至于不能确保安全性,因此一般推荐e=216+1。
当值216+1用作公用指数e时,可以通过几种方法计算出e的幂的给定值x。当使用“square-and-multiply”算法(参见A.J.Menezes,P.C.van Oorschot和S.A.Vanstone的“Handbook ofApplied Crtyptography”CRC出版社,1996,P614),需要16个平方操作和一个乘法操作。由于平方是乘法的特殊情况而与乘法相比可以降低计算量,因此其计算量大于17个平方操作的计算量。此外,即使在基于RSA密码系统的方法中值3被用作公用指数e,NK1 emod M的计算需要一次乘法操作和一次平发操作。因此,在这个实施例中计算量被降低到少于一半。
另一方面,依照这个实施例,在通过采用Rabin树的CS方法的密文发布方案中,接收器依照先前给出的公式(1)基于其持有的节点相关值NV1和节点所附变量salt执行计算,即:
同样在这种情况下,模数求幂操作占支配地位。然而,在上述公式中的模数求幂操作是NK1 2mod M,这样使得只要一次平方操作就足够。因此,依照这个实施例,相比基于RSA密码系统的方法,计算量可以降低至大约1/17。
如上所述,在所使用的CS方法中,每个接收器必须安全持有logN+1个节点密钥。依照这个实施例,在通过采用Rabin树的CS方法的密文发布方案中,每个接收器必须安全持有的密钥数目降低到1(即叶节点的节点相关值NV)。与CS方法中的节点密钥相反,依照这个实施例,无需安全地持有节点所附变量salt。此外,相比CS方法,其中节点密钥被用作加密密钥使得单个密钥具有几十到几百字节的长度,节点所附变量salt平均大小为2个字节。
此外,相比基于RSA密码系统的方法,类似于这个实施例其中每个接收器必须安全持有的密钥数目被降低到1个,依照这个实施例,可以由一个平方操作执行模数求幂操作,这样可以显著地将计算量降低至大约1/17,其中所述模数求幂操作趋于造成关于由接收器执行的计算量的较大负载。
如上所述,基于这个实施例,降低了每个接收器必须安全持有的信息量,这样可以降低每个接收器计算节点密钥所需的计算量。这足以完成有效密文发布和加密。
5.子树差异(SD)方法
上述处理是在完整子树(CS)方法中使用Rabin树的例子。接着,将描述将Rabin树用在子树差异(SD)方法中的处理的例子,这不同于完整子树(CS)方法。
如上所述,在完整子树(CS)方法中,使用分级树的每个节点表示“以一节点为其顶点的子树的叶相关联的接收器集”。相反地,在子树差异(SD)方法中,使用分级树的两个节点i和j(其中节点i是节点j的祖先)表示“通过从以节点i作为其顶点的子树的叶就提取以节点j作为其顶点的子树的叶集获取的一集合。
在以下描述中,使用以下符号:
P(i):节点i的父节点及其节点编号
S(i):节点i的兄弟节点(即不同于节点i但与节点i具有相同父节点的节点)及其节点编号
LC(i):节点i的左子节点及其节点编号
RC(i):节点i的右子节点及其节点编号
例如,图17中由节点i 531和节点j 532定义的集合Si,j是通过从一组接收器u1到u8减去u5和u6获取的一集合,即Si,j={u1,u2,u3,u4,u7,u8}。为相应节点集定义了类似的集合,其中节点i是节点k的祖先(即节点j不同于节点i,并且节点i在从节点j到根的路径上)。
子集密钥SKi,j被设置为与子集Si,j的相关联的密钥。子集密钥SKi,j被定义为通常由子集Si,j={u1,u2,u3,u4,u7,u8}拥有的密钥,其中所述子集Si,j通过从u1到u8的集合减去u5和u6获取。通过发送使用子集密钥SKi,j加密的保密信息,只允许对子集Si,j={u1,u2,u3,u4,u7,u8}的加密,而u5和u6是经撤销的。
在这个设置中,依照以下公式,接收器所属的集合的数目是O(N):
因此,如果子集密钥被独立地分配给单个子集,那么每个接收器必须安全地持有O(N)个子集密钥。然而,随着接收器N的数目的增加,O(N)显著地增加。因此,事实上要每个设备安全地持有这么大量的信息是不可行的。
因此,在子集差异(SD)方法中,采用以下方案。类似于先前描述的完整子树(CS)的情况,假设信任中心(TC)负责定义分级树、子集、密钥和发布密钥。
首先,如图18A所示,信任中心(TC)选择中间节点(即非叶节点)i,并随机地选择C比特的值S,节点i的标签为LABELi。
接着,如图18所示,LABELi=S是到C比特输入和3C比特输出的伪随机码生成器G的输入。输出从左开始(从最高位开始)以C比特分段,所得的分段由GL(S)、GM(S)和GR(S)表示。GL(S)和GR(S)被用作图18A中节点i的左子节点和右子节点的标签。
通过上述处理,关于图18A所示的节点i的左子节点k,关于节点i的节点k的标签LABLEi,k为LABLEi,k=GL(S),将由T表示。接着,LABLEi,k=GL(S)=T被输入到图18B中所示的伪随机编码生成器G中,其输出从左开始以C比特分段,所得的分段GL(T)、GM(T)和GR(T)定义如下:
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的所有子孙节点相关联的标签。依照上述定义,当节点是开始节点时,集合Si,i是空集,无需节点密钥。因此,不使用GM(S),其中GM(S)是以LABELi为输入的伪随机编码生成器G生成的输出的中间部分。
在图18A所示的例子中,定义了开始节点i的标签S,GR(S)表示开始节点i的右子节点的标签,通过输入GR(S)到伪随机生成器G获取的GL(GR(S))表示以节点i为开始节点的节点j的标签LABELi,j。对于每个中间节点i,创建了与节点i的所有子孙节点相关联的标签。
这个过程由信任中心(TC)在系统设置时执行。伪随机编码生成器(或伪随机编码生成函数)G由信任中心(TC)生成和公开。使用伪随机编码生成器(或伪随机编码生成函数)G,以节点i为开始节点,LABELi,j所给出的接收器可以计算出节点j的所有子孙节点的标签LABELi,n和节点j的子集密钥SKi,n及其子孙节点n。
对于这个设置,如图19A所示,接收器u(关于从接收器所分配至的叶到树的根的路径上的每个中间节点)能够持有直接从叶到开始节点i的路径上分叉出的节点a、b和c的标签。
可以生成a、b和c以及以节点i作为开始节点的子孙节点这些节点的子集密钥。在图19A中,关于节点i,三个节点a、b和c直接从u到i的路径上分叉出来,这样使得接收器u在系统设置时持有从信任中心(TC)接收到的三个标签。
通过伪随机编码生成器G基于节点a的标签LABELi,a的处理,叶u可以计算出与子集Si,a相关联的子集密钥SKi,a,即GM(LABELi,a)=SKi,a。
如图19B所示,子集Si,a是一子集,其中以节点a为根的子树的叶被选为经撤销的设备。即,在以节点i为其顶点的子树的叶的子集Si,a中,信息被发布给除了以节点a作为其顶点的子树的叶外的叶。
此外,通过伪随机编码生成器G的处理,叶u可以计算出与子集Sj,b相关联的子集密钥SKi,b,即GM(LABELi,b)=SKi,b。
如图19C所示,子集Si,b是一子集,其中以节点b为根的子树的叶被选为经撤销的设备。即,在以节点i为其顶点的子树的叶的子集Si,b中,信息被发布给除了以节点b作为其顶点的子树的叶外的叶。
此外,通过伪随机编码生成器G的处理,叶u可以计算出与子集Si,c相关联的子集密钥SKi,c,即GM(LACELi,c)=SKi,c。
如图19C所示,子集Si,c是一子集,其中以节点c为根的子树的叶被选为经撤销的设备。即,在以节点i为其顶点的子树的叶的子集Si,c中,信息被发布给除了叶c之外的叶。
在以节点i为开始节点的分级树中,可能通过除了以上给出的三个例子外的各种其他设置来撤销处理叶u之外的叶。例如,当只要撤销图19B中的叶d251时,子集Si,d被设置为应用子集密钥SKi,d。然而,与节点或叶相关联的密钥,即子集密钥,可以基于较高标签由伪随机编码生成来生成。因此叶u可以基于叶u所拥有的节点a的标签LABELi,a为撤销叶d251生成子集密钥SKi,d。
对于其他子集设置类似地,如图19A中所示,接收器u(关于从接收器所分配至的叶到树的根的路径上的每个中间节点)能够持有直接从叶到开始节点i的路径上分叉出的节点a、b和c的标签。
图20示出了当接收器编号N=16时,接收机持有的标签。关于接收器u4,从接收器u4分配至的左节点19到根节点1的路径上的中间节点1、2、4和9用作开始节点i。当节点l是开始节点时,四个节点,即3、5、8和18直接从节点19到节点1的路径上分叉出来,这样使得接收器u4持有以下四个标签:
LABEL1,3
LABEL1,5
LABEL1,8
LABEL1,18
类似地,当节点2是开始节点时,接收器u4持有以下三个标签:
LABEL2,5
LABEL2,8
LABEL2,18
当节点4是开始节点时,接收器u4持有以下两个标签:
LABEL4,8
LABEL4,18
当节点9是开始节点时,接收器u4持有以下一个标签:
LABEL9,18
此外,当没有接收器要撤销时,接收器u4持有与包含所有接收器的集合(称为子集S1,Φ)相关联的以下一个标签:
LABEL1,Φ
即,在图20所示的例子中,接收器u4总共持有以下11个标签:
对于i=1,四个标签j=3,5,8,18
对于i=2,三个标签j=5,8,18
对于i=4,两个标签j=8,18
对于i=9,一个标签j=18
对于没有接收器要撤销的情况为一个标签
虽然与子集S1,Φ相关联的标签是用于描述的一致性,接收器u4会直接持有与子集S1,Φ相关联的子集密钥。
如上所述,对于从相关叶到根的路径上的每个中间节点,每个接收器必须持有对应于中间节点高度的标签和一个特定标签。因此,当接收器的数目为N时,通过以下公式计算每个接收器可以持有的标签的数目:
每个接收器依照上述公式持有标签的编号并通过使用公开的伪随机编码生成器G生成所需的子集密钥。每个接收器必须安全地持有标签。
6.在SD方法中降低标签数目的方案
现在,将描述子集差异(SD)方法中降低标签数目的方案。上述子集差异(SD)方法的检查揭示出:
标签LABLEi,j可以是以下之一:
(A)直接从信任中心(TC)给接收器
(B)由接收器使用伪随机编码生成器G从其他标签得出
当节点i和节点j是父和子时(距离为1,即位于相邻的层次),情况(B)不会发生,所有的情况都属于(A),直接从信任中心(TC)给接收器。
例如如下。当接收器使用伪随机编码生成器G生成LABELi,j,需要与作为节点j的祖先节点的节点k相关联的LABELi,k。然而,由于节点i和j是父和子,不存在节点k是节点j的祖先和节点i的子孙,不LABELi分配给接收器。
这会在图12所示例子的环境中描述。直接从信任中心(TC)给接收器u4LABEL2,8。然而,LABEL2,不会直接给到接收器u5,接收器u5使用伪随即编号生成器G从信任中心(TC)给出的LABEL2,4计算GL(LABEL2,4)得出LABEL2,8。
另一方面,如图22中所示,与作为父与子的节点2和节点5相关联LABEL2,5的会直接给到属于子集S2,5的接收器u1、u2、u3和u4。对于其他不术语子集S2,5的接收器不可能计算出LABEL2,5。即这些标签会从信任中心(TC)直接给到接收器,且不可能使用伪随机编码生成器G得出这样的标签。
此外,在SD方法中,当节点i是两个不同节点j和k的父节点且节点j是另一个节点父节点时,属于子集Sj,n的接收器属于子集Si,k。
例如,如图23所示,属于子集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,Φ,子集S1,Φ在没有接收器要撤销时使用,由此降低标签数目。
在上述子集差异(SD)方法中,每个接收器总共持有logN个标签,即对于接收器所分配至的叶到树的根的路径上相应的中间节点一个接一个的以节点i和节点j为父和子的LABELi,j。在这个实施例中,可以从单个值总共得出logN+1个标签,即上述标签和包含所有接收器的子集S1,Φ相关联的LABEL1,Φ,这样降低了每个接收器要持有的标签的数目,其中所述子集S1,Φ在没有接收器要撤销时使用。
通过使用Rabin树,可能正转换y=F(x)和逆转换x=F-1(y),使得可以容易地计算出y(前向操作),并使得只有知道某个秘密(暗门)才能容易地执行逆操作而禁止其他的逆操作。
在原始SD方法中,如参考图20所述,接收器u4必须安全地持有以下总共11个标签:
对于i=1,四个标签j=3,5,8,18
LABEL1,3
LABEL1,5
LABEL1,8
LABEL1,18
对于i=2,三个标签j=5,8,18
LABEL2,5
LABEL2,8
LABEL3,18
对于i=4,两个标签j=8,18
LABEL4,8
LABEL4,18
对于i=9,一个标签j=18
LABEL9,18
对于没有接收器要撤销的情况
LABEL1,Φ
依照这个实施例,接收器必须持有以节点i和节点j作为父和子的标签:
LABEL1,3
LABEL2,5
LABEL4,8
LABEL9,18
且当没有接收器要撤销的情况下一个标签
LABEL1,Φ
依照这个实施例,通过使用Rabin树,可以从单个值总共得出logN+1个标签,即上述标签和包含所有接收器的子集S1,Φ相关联的LABEL1,Φ,这样降低了每个接收器要持有的标签的数目,其中所述子集S1,Φ在没有接收器要撤销时使用。
7.在采用Rabin树的SD方法中降低标签数目的方案
现在,将详细描述在采用Rabin树的SD方法中降低标签数目的方案。这种情况下使用的Rabin树与上述CS方法情况下描述的Rabin树相同,即依照参考在“2.采用Rabin树的CS方法的方案”中的“2. 1 Rabin树构建的例子”中所示的流程描述的算法生成的Rabin树。
即,如参考图8到10所述,Rabin树是具有N个叶的二叉树,其中定义了2N-1个|M|比特节点相关值NV1,NV2,...,NV2N-1和2N-2个节点所附变量salt2,salt3,...,salt2N-1。可能容易从给定节点的节点相关值NV1和节点所附变量salt1计算父节点的节点相关值;然而禁止相反的操作。在图9中,所示每个沿着函数f的线性箭头表示较高节点的节点相关值可以通过以较低节点的节点相关值NV1作为输入应用函数f计算出。函数f是基于正操作(平方mod M)F的。给定子节点的父节点的节点相关值可以依照先前给出的公式(1)使用公用函数H和模数M从子节点的节点相关值NV1和节点所附变量salt1计算出。
在图9中,所示每个沿着函数f-1的线性箭头表示较低节点的节点相关值可以通过以较高节点的节点相关值作为输入应用函数f-1计算出。函数f是基于逆操作(1/2求幂mod M)F-1的。为了从较高节点的节点相关值计算出子节点的节点相关值,需要知道保密信息p和q(M的素因数)。这只对信任中心可能。
由上述具有节点相关值NV1的节点组成的单向树被称为Rabin树。这是因为Rabin密码系统使用平方mod M来加密(正向操作)和开方(1/2求幂)mod M来解密(反向操作)。在例如A.J.Menezes、P.C.van Oorschot和S.A.Vanstone的“Handbook of Applied Cryptography”CSC出版社,1996,第292-294中详细描述了Rabin密码系统。
现在,将详细描述在采用Rabin树的方法中降低标签数目的方案。
在这个实施例中,在这个实施例中,Rabin树用于以节点i和节点j为父和子(距离为l,即位于相邻的层次)的标签LABELi,j和与包含所有接收器的子集S1,Φ相关联的LABEL1,Φ,子集S1,Φ在没有接收器要撤销时使用,由此降低标签数目。
在分级树中定义的所有子集Si,j,由作为父和子的节点i和j(距离为1,即位于相邻的层次)定义的子集将被表示为第一特殊子集SSi,j。除了根之外的树的每个节点具有单个父节点,这样使得j=2,3,...,2N-1的每个值在Si,j的j中只使用一次。此外,定义为包含分级树的所有叶的整个树的节点集的子集S1,Φ会被表示为第二特殊子集SS1,Φ。
此外,对于与第一特殊子集SSi,j相关联的标签LABELi,j(j=2,3,...,2N-1,定义了中间标签ILi,j,对于第二特殊子集SS1,Φ定义了中间标签IL1,Φ。
此外,这些中间标签与Rabin树的节点相关值NVj相关联。即,将与第二特殊子集SS1,Φ相关联的中间标签IL1,Φ设置成IL1,Φ=NV1,与第一特殊子集SSi,j(=2,3,...,2N-1)相关联的中间标签ILi,j如下定义。
被设置为节点1到2N-1的节点相关值的NVj(j=2,3,...,2N-1)被用作与第一特殊子集SSi,j相关联的中间标签ILP(j),S(j),所述第一特殊子集SSi,j由节点j的兄弟节点和父节点定义,即ILP(j),S(j)=NVj,其中j=2,3,...,2N-1。P(j)表示节点j的父节点,S(j)表示节点j的兄弟节点。
为了将上述过程至于不同的方式,节点相关值NV和Rabin树的中间标签IL之间的关系如下定义:
IL1,Φ=NV1
对于j=1,2,...,N-1
ILj,2j=NV2j+1
ILj,2j+1=NV2j+1
此外,标签LABELi,j和中间标签ILi,j之间的关系被定义为LABELi,j=HC(ILi,j)。
函数HC是大小|M|的值映射到大小C的随机值的hash函数。例如,当C是160比特时,SHA-1可以用作对于任何大小的输入输出160比特值的函数。当C时128比特时,MD5可可以用作对于任意大小的输入输出128比特值的函数。MD5也在A.J.Menezes、P.C.van Oorschot和S.A.Vanstone的“Handbook ofApplied Cryptography”CSC出版社,1996中进行了详细描述。
节点密钥用于加密要发送给接收器的信息,诸如会话密钥。因此,选择C的大小为用于该目的的加密算法的密钥的大小。例如,当使用AES(高级加密标准,FIPS 197)作为加密算法时,选择C为128比特。
图24示出了特定例子。在图24所示的例子中,节点相关值NVj被分配给节点j 551。
节点j 551的父节点是P(j)552,节点j 551的兄弟节点是S(j)553。由节点j 551的兄弟节点S(j)553和父节点P(j)552定义的第一特殊子集SSP(j),S(j)是图24中示出的子集SSP(j),S(j)。
在这种情况下,与子集SSP(j),S(j)相关联的标签是LABELP(j),S(j),它是基于中间标签ILP(j),S(j)(等于节点j 551的节点相关值NVj)计算出的。即LABELP(j),S(j)=HC(ILP(j),S(j)),这等价于LABELP(j),S(j)=HC(NVj)。
图25示出了作为中间标签(ILs)的节点相关值NVj的示例性设置,从中计算出(a)与包含所有接收器的整个树相关联的第二特殊子集SS1,Φ的标签LABEL1,Φ,这在没有接收器要撤销时使用,以及(b)与节点i和节点j作为父和子(j=2,3,...,2N-1)的第一特殊子集相关联的标签LABELi,j。
在图25中,[iNVkj]表示NVk=ILi,j,其中i表示j的祖先。例如,[1 NV32]表示NV3=IL1,2。
如上所述,节点相关值NVj被设置为与中间标签相关联的值,所述中间标签允许计算第一特殊子集SSi,j和第二特殊子集SS1,Φ的标签。
图25中所示的Rabin树的N个叶是从左端开始编号,如lea1,leaf2,...,leafN(即,由于最左端leaf1的节点编号是N,leafi的节点编号是N-1+i),接收器ui被分配给leafi。叶节点leafi的节点相关值NVN-1+i和从leafi到根的路径上的节点的logN个节点所附变量salt1被分配给接收器ui。节点相关值等于中间标签。当如图10所示分配接收器时,节点19的节点相关值NV19和从节点19到根的路径上节点所附变量salt19、salt9、salt4和salt2被分配给已分配给左节点19的接收器u4。节点相关值NV19对应于中间标签IL9,18。
使用这个设置,接收器u4可以使用节点相关值NV19(即,中间标签IL9,18)和从节点19到根的路径上节点的节点所附变量salt19、salt9、salt4和salt2来计算从节点19到根的路径上所有节点的节点相关值(即,中间标签IL)。从节点19到根的路径上节点的节点相关值NV和中间标签IL之间的关联如下表示:
NV19=IL9,18
NV9=IL4,8
NV4=IL2,5
NV2=IL1,3
NV1=IL1,Φ
通过以下程序计算出接收器的较高节点(节点编号1,2,4和9)的节点相关值NV(中间标签)。
(a1)较高节点9的节点相关值NV9(即,中间标签IL4,8)可以通过NV9(即,中间标签IL4,8)=((NV19)2+H(19||salt19)从
(a1)较高节点9的节点相关值NV9(即,中间标签IL4,8)是通过NV9(即,中间标签IL4,8)=((NV19)2+H(19||salt19))mod M从节点19的节点相关值NV19(即,中间标签IL9,18)计算出
(a2)较高节点4的节点相关值NV4(即,中间标签IL2,5)是通过NV4(即,中间标签IL2,5)=((NV9)2+H(9||salt9))mod M从节点9的节点相关值NV9(即,中间标签IL4,8)计算出
(a3)较高节点2的节点相关值NV2(即,中间标签IL1,3)是通过NV2(即,中间标签IL1,3)=((NV4)2+H(4||salt4))mod M从节点4的节点相关值NV4(即,中间标签IL2,5)计算出
(a4)较高节点1的节点相关值NV1(即,中间标签IL1,Φ)是通过NV1(即,中间标签IL1,Φ)=((NV2)2+H(2||salt2))mod M从节点2的节点相关值NV2(即,中间标签IL1,3)计算出
较高节点的节点相关值是依照以上给出的等式从较低节点的节点相关值计算出的。
此外,可以依照以下等式从相应节点的节点相关值(中间标签)计算出标签:(b1)节点19的标签(LABEL9,18)可以通过LABEL9,18=HC(IL9,18)从节点19的节点相关值NV19(中间标签IL9,18)计算出
(b2)节点9的标签(LABEL4,8)可以通过LABEL4,8=HC(IL4,8)从节点9的节点相关值NV9(中间标签IL4,8)计算出
(b3)节点4的标签(LABEL1,3)可以通过LABEL1,3=HC(IL1,3)从节点4的节点相关值NV4(中间标签IL1,3)计算出
(b4)节点2的标签(LABEL2,5)可以通过LABEL2,5=HC(IL2,5)从节点2的节点相关值NV2(中间标签IL2,5)计算出
(b5)节点1的标签(LABEL1,Φ)可以通过LABEL1,Φ=HC(IL1,Φ)从节点1的节点相关值NV1(中间标签IL1,Φ)计算出
接收器u4需要将节点相关值NV19保密,而无需将节点所附变量salt保密。因此,可以安排所有的接收器具有所有节点所附变量salt1。
依照上述方案,在具有N个叶的二叉树结构中,对于依照相关领域的SD方法中每个接收器要持有的标签LABELi,j,与叶相关联的每个接收器基于单个中间标签可以生成logN个以节点i和节点j为父和子节点的标签LABELi,j和与包含所有接收器的子集S1,Φ相关联的标签LABEL1,Φ,所述子集S1,Φ在没有接收器要撤销时使用。因此,每个接收器必须安全持有的密钥数目降低为logN。
现在,考虑每个节点所附变量salt的大小。给定数字是二次剩余模数M的概率大约为1/4。因此,当尝试4个值作为salt1,期望平均有一个值使得temp1为二次剩余。因此,期望用于表示节点所附变量salt1所需的大小是2个比特。
在一些情况下,四个值中没有一个导致二次剩余。例如当L个值使用作为节点所附变量salt1时,没有temp1是二次剩余的的概率是3L/4L。因此,当L=4时,没有temp1是二次剩余发生的概率是34/44≈42.2%。然而,当节点所附变量salt1是8比特值且尝试256个值时,没有temp1是二次剩余的概率被显著地降低为3256/4256≈1.0×10-32。因此,即使当叶的数目N较大时,例如230≈109或240≈1012,未能找到节点所附变量salt1使得temp1成为二次剩余的概率变得忽略不计地小。
8.通过采用Rabin树的SD方法进行密文发布和解密
接着,将描述通过采用基于Rabin树的SD方法进行密文发布和解密的例子。将按顺序描述以下过程:
8-1.设置过程
8-2.信息发故过程
8-3.接收和解密过程
8-1.设置过程
设置过程仅在激活系统时执行一次。每次出现要发送的信息时执行后续的信息发布过程和信息接收和解密过程,例如,当发布诸如DVD等存储新内容的信息记录媒质或经由网络发布新信息时。
设置过程包括以下四个步骤,将按顺序描述这四个步骤:
a.步骤1
信任中心(TC)定义具有N个叶的二叉分级树。该单向树与先前描述的单向置换树不同。信任中心(TC)将节点编号k(j=1,2,...,2N-1)分配给分级树中的相应节点作为标识符。指定根节点为节点1,并以宽度优先的顺序编号子孙节点以分配标识符。即,举例而言,如图31所示分配节点编号1到31。因此,节点编号y=1到2N-1被分配给二叉树中的相应节点,如图23中所示。
此外,信任中心(TC)将接收器um(m=1,2,...,N)分配给树的相应节点。在图23所示的例子中,16个接收器u1到u16被分配节点编号y=16到31的节点。
接着,对于每个中间节点i(i=1,2,...,N-1),信任中心(TC)定义与作为节点i的子孙的节点j相关联的子集Si,j。此外,对于如上述定义的所有子集Si,j以节点i和节点j作为父和子的每个子集将被表示为第一特殊子集SSi,j。除了根之外的树的每个节点具有单个父节点,这样使得j=2,3,...,2N-1的每个值在Si,j的j中只使用一次。此外,信任中心(TC)定义包含所有接收器的第二特殊子集SS1,Φ,该子集只有在没有接收器要撤销时使用。
b.步骤2
信任中心(TC)首先确定模数M的大小|M|(例如,1024比特)。
此外,信任中心(TC)定义伪随机编码生成器G并将其公开。伪随机编码生成器G是先前参考图18描述的伪随机编码生成器G。伪随机编码生成器G对于C比特的输入输出3C比特的伪随机编码,类似于用在先前所述的SD方法中在Noar等人在文章中所描述的。
接着,将树的叶数目N和模数M的大小|M|作为输入,信任中心(TC)定义模数M和将任意大小的映射到ZM的随机元素的函数H,并且依照参考图8中所示的流程图描述的算法创建具有N个叶的二叉Rabin树。首先,信任中心(TC)随机地选择根节点的节点相关值NV1∈Z* M,接着定义节点l到2N-1的2N-1个|M|比特节点相关值NV1,NV2,...,NV2N-1和节点2到2N-1的2N-2个所附变量salt2,salt3,...,salt2N-1。由于salt值不是保密的,信任中心(TC)会公开salt值。此外,信任中心会公开模数M和映射函数H。此外,信任中心(TC)定义将大小|M|的值映射到大小C的随机值的函数HC并公开HC。
信任中心(TC)将在上述过程中定义的节点相关值NV1设置为中间标签(IL),从中第二特殊子集SS1,Φ的标签LABEL1,Φ包含所有接收器,所述第二特殊子集SS1,Φ在没有接收器要撤销时使用,即IL1,Φ=NV1。
此外,信任中心(TC)在中间标签IL1,Φ=上使用函数HC计算第二特殊子集SS1,Φ的标签LABEL1,Φ,即LABEL1,Φ=HC(IL1,Φ)。
此外,对于所有的子集Si,j,信任中心(TC)定义中间标签ILi,j,从中标签与节点的第一特殊子集SSi,j相关联,其中节点i和节点j是父和子(其中j=2,3,...,2N-1)。更具体地,NVj(其中j=2,3,...,2N-1),即通过在先前描述的Rabin树生成过程(图8)中从为节点l到2N-1定义的节点相关值NV1到NV2N-1提取根的节点相关值NV1获取的子集,被设置为与由节点j的兄弟节点和父节点定义的第一特殊子集SSi,j相关联的中间标签ILP(j),S(j),即NVj=ILP(j),S(j)。P(j)表示节点j的父节点,S(j)表示节点j的兄弟节点。
此外,信任中心(TC)基于中间标签ILP(j),S(j)(等于节点j 551的节点相关值NVj)计算出LABELP(j),S(j),即LABELP(j),S(j)=HC(ILP(j),S(j)),这等价于LABELP(j),S(j)=HC(NVj)。
为了将上述过程至于不同的方式,节点相关值NV和Rabin树的中间标签IL之间的关系如下定义:
IL1,Φ=NV1
对于j=1,2,...,N-1
ILj,2j=NV2j+1
ILj,2j+1=NV2j+1
此外,信任中心依照LABELi,j=HC(ILi,j)从中间标签ILi,j计算出与特殊子集相关联的标签LABELi,j,并将这些标签设置为与相应特殊子集相关联的标签LABELi,j。
c.步骤3
信任中心(TC)输入第一特殊子集SSi,j的标签LABELi,j到伪随机编码生成器G以获取节点j的子节点的标签LABELi,LC(j)和LABELi,rC(j),其中节点i和节点j为父和子。
更具体地,GL(LABELi,j),即通过输入C比特标签LABELi,j到伪随机编码生成器G生成3C比特的伪随机编码的最左C比特,被设置为与以节点i作为开始节点的节点j的左子节点LC(j)相关联的(非特殊)子集Si,LC(j)的标签LABELi,LC(j);GR(LABELi,j),即通过输入C比特标签LABELi,j到伪随机编码生成器G生成3C比特的伪随机编码的最右C比特,被设置为与以节点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中定义的子集Si,j的标签。
d.步骤4
接着,信任中心(TC)确定要提供给接收器um的标签,即由接收器um要持有的标签。
首先,要提供给接收器um的标签被选为暂定选中标签。标签包括与从路径m(path-m)直接分叉出的节点j相关联子集Si,j的标签LABELi,j和与第二特殊子集SS1,Φ相关联的标签LABEL1,Φ,所述路径m(path-m)是从接收器um所分配至的叶到根的路径,它以路径m(path-m)上的中间节点i作为开始节点。
将参考图26和后续附图描述确定要提供给接收器的标签的过程。例如,在图26中与节点19相关联接收器u4的暂定选中标签,11个标签,即选择LABEL1,3、LABEL1,5、LABEL1,8、LABEL2,5、LABEL2,8、LABEL2,18、LABEL4,8、LABEL4,18、LABEL9,18和LABEL1,Φ。
信任中心(TC)从暂定选中标签中重新选择要提供给接收器um的标签。对于以上列出的11个暂定选中标签,四个标签LABEL1,3、LABEL2,5、LABEL4,8和LABEL9,18属于第一特殊子集SSi,j,其中节点i和节点j是父和子。
对于暂定选中标签,信任中心(TC)排除与上述第一和第二特殊子集相关联的标签以选择最终选中标签,即要提供的标签。
此外,对于接收器um所分配至的叶节点j,信任中心(TC)将与节点j的兄弟节点S(j)相关联的特殊子集SSP(j),S(j)的中间标签ILP(j),S(j)(节点相关值NVj)提供给接收器um,其中以节点j的父节点P(j)作为开始节点。在上述例子中,信任中心(TC)将IL9,18(节点相关值NV9)提供给接收器u4。接收器安全地持有给其的标签和中间标签(节点相关值NV)。
即,首先,作为接收器u4要拥有的标签,由以下组合i和j定义的标签LABELi,j被选作暂定选中标签:
对于i=1,j=3,5,8,18
对于i=2,j=5,8,18
对于i=4,j=8,18
对于i=9,j=18
对于没有接收器要撤销的情况为一个标签
接着,从以上列出的11个暂定选中标签中排除与第一和第二特殊子集相关联的标签的标签和一个中间标签被选为最终选中标签,即要提供的标签。即要提供的标签是由以下i和j的组合定义的标签LABELi,j:
对于i=1,j=5,8,18
对于i=2,j=8,18
对于i=4,i=18
一个中间标签IL9,18(节点相关值NV19)
以上列出的六个标签和一个中间标签(节点相关值NV)被选作要提供的标签。
在上述例子中除了接收器u4之外的接收器um中,虽然标签和中间标签(节点相关值NV)的组合不同,但是当N=16时,会提供给每个接收器um六个标签和一个中间标签(节点相关值NV)。
要提供给接收器um包含在标签中的中间标签(节点相关值NV)是与第一特殊子集相关联的中间标签ILi,j(节点相关值),所述第一特殊子集是由分级树中最接近接收器um的祖先定义的,即第一特殊子集SSi,j,其中节点i和节点j是父和子(其中j=2,3,...,2N-1)。即提供给与分级树的叶相关联的接收器的中间标签是与组成第一特殊子集的子集Sij中最低特殊子集相关联的中间标签。
图27示出了基于上述设置,由信任中心(TC)执行的过程的流程。在步骤S501中,定义了分级树的结构。在步骤S502中,关于分级树定义了子集。子集定义不一定要使得所有的叶都可以单独的被撤销,依照发布的信息任意设置是可能的,例如,子集可以是能够一起撤销的特定叶的集合。
在步骤S503中,设置参数,并生成单向树。更具体地,输入叶数目N和模数M的大小|M|作为参数,依照参考图8中所示的流程描述的算法生成具有N个叶的二叉Rabin树,并且计算出相应节点的节点相关值NVj。相应节点的节点相关值NVj满足先前给出的公式(1)。在这个步骤中,定义了模数M、映射函数H和映射函数HC。
在步骤S504中,节点相关值NVj被设置为中间标签的值,并且基于中间标签(IL)计算出与特殊子集相关联的标签,如下:
IL1,Φ=NV1
对于y=1,2,...,N-1
ILj,2j=NV2j+1
ILj,2j+1=NV2j
获取的中间标签是:
(a)与包括所有接收器的第二特殊子集SSi,Φ相关联的中间标签,这在没有接收器要撤销时使用
(b)与第一特殊子集SSi,j相关联的中间标签,其中节点i和节点j是父和子(其中j=2,3,...,2N-1)
基于这些中间标签,计算出与特殊子集相关联的标签。即,依照LABELi,j=HC(ILi,j)从中间标签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必须拥有的标签、在原始的SD方法中提供的标签,即与直接从路径m(path-m)分叉出的节点j相关联的子集Si,j的标签LABELi,j、以及与第二特殊子集SS’1,Φ相关联的标签LABEL1,Φ被选作暂定选中标签,其中所述路径m(path-m)是从接收器所分配至的叶到根的路径,以路径m(path-m)上的中间节点i作为开始节点。
排从暂定选中标签排除与第一和第二特殊子集相关联的标签,由此剩余的标签Li,j和一个中间标签(节点相关值NV)被选作要提供的标签。
选作要提供的标签的一个中间标签是与由分级树中接收器um所分配至的叶n的父节点和兄弟节点定义的第一特殊子集相关联的中间标签ILi,j(节点相关值NV),即第一特殊子集SSi,j,其中节点j是叶m的兄弟节点(由于j是叶,J=N,N+1,...,2N-1)。图9中示出的提供给与节点19相关联的接收器u4的中间标签是中间标签IL9,18(节点相关值NV19)。
在步骤S509中,将在步骤S508中确定的要提供给接收器um的标签提供给接收器um。接着,推出该过程。可以通过将标签存储在防窜改存储器中或经由安全通信路径或没有信息泄漏危险的媒质在制造接收器um提前提供标签。图27中所示的流程的步骤不一定要以所述顺序执行。
8-2.信息发布过程
接着,将详细描述在执行设置过程后发送保密信息的过程。通过信任中心(TC)广播一个或多个密文完成信息的发布,即保密信息的发送。每个密文是通过使用子集密钥加密保密信息生成的。例如信任中心发送的保密信息是通过使用不同的子集密钥加密相同的要发送的保密信息生成的密文集。
例如,当要发送的保密信息是用于解密经加密的内容的内容密钥Kc时,生成和提供了通过使用不同子集密钥的加密内容密钥Kc获取的密文集。例如,生成密文集E(SKa,b,Kc)、E(SKc,d,Kc)和E(SKe,f,Kc)并通过网络发布或存储在记录媒质上提供。上述例子中的密文集是由通过使用三个不同的子集密钥加密生成的三个密文组成的。
每个子集密钥SKa,b、SKc,d和SKe,f是由信任中心(TC)选出的与子集相关联的子集密钥以将特定设备设置成经撤销的设备。
每个未经撤销的设备可以基于接收器拥有的标签和中间标签生成用于加密密文的子集密钥之一。由此,只有不包括经撤销设备的经授权的选中接收器可以通过解密密文E(SKa,b,Kc)、E(SKc,d,Kc)和E(SKe,f,Kc)之一。获取内容密钥Kc。
图28示出了当在分级树结构中要撤销接收器u5、u11和u12时使用的子集,其中接收器总数N=16。当要撤销接收器u5、u11和u12时,使用图28中所示的两个子集S2,20和S3,13。
每个未经撤销的接收器包含在两个子集S2,20和S3,13之一中,每个经撤销的接收器u5、u11和u12不包含在两个子集S2,20和S3,13的任意之一中。因此,通过发送使用与这些子集相关联的子集密钥SK2,20和SK3,13加密的保密消息,只有未经撤销的接收器可以解密密文以获取保密信息。
将参考图29所示的流程描述信息发布过程的步骤。
在步骤S601中,信任中心(TC)选择经撤销的接收器,保密信息不会提供给所述经撤销的接收器。这里假设所有的接收器分别与分级树结构的叶相关联。
在步骤S602中,基于分级树中与经撤销的接收器相关联的叶的位置,确定用于发布保密消息的子集。在图28所示的例子中,接收器u5、u11和u12被选为经撤销的接收器,并使用两个子集S2,20和S3,13。
在步骤S603中,选出与子集相关联的子集密钥。信任中心(TC)预先持有与子集相关联的子集密钥。在图28所示的例子中,选出与两个子集S2,20和S3,13相关联的子集密钥SK2,20和SK3,13。
在步骤S604中,通过使用在步骤S603中选出的子集密钥加密保密信息以生成密文集。在图28所示例子中,通过使用两个子集密钥SK2,20和SK3,13加密保密信息生成密文集。即,使用两个子集密钥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(IL(1,Φ))加密保密信息。
8-3.接收和解密过程
每个未经撤销的接收器仅属于一个子集。因此每个未经撤销的接收器可以通过使用与该子集相关联的子集密钥解密生成的密文来获取保密信息。接收器可以使用上述的子集指定信息找到要解密的密文。在识别出要解密的密文后,接收器它所拥有的标签或中间标签得出子集密钥并使用该子集密钥解密密文。以下将描述获取子集密钥的方法。
接收器um确定与要用于解密的子集密钥SKi,j相关联的子集Si,j的节点j属于以下情况(A)还是情况(B):(A)接收器是具有标签LABELi,k的节点k的直接子孙(包括j=k的情况)。(B)接收器符合节点k,所述节点k不在从接收器所分配至的叶n到节点I的字节(即节点k,路径上的节点i的子节点之一的兄弟节点)点或其子孙节点(即节点j是否是节点k的子孙节点,所述节点k组成其标签被提供给接收器um的子集的第一特殊子集SSi,k)的根的路径上。
当没有接收器要撤销且第二特殊子集SS1,Φ的子集密钥SK1,Φ用于加密保密信息时,假定为情况(B)。
当情况(B)适用时,特殊子集SSi,k的中间标签从提供给接收器的中间标签ILP(n),S(n)得出,如下所述。
首先,当i=P(n)且j=k=S(n)时,接收器已经具有中间标签(节点相关值NV),使得无需特殊操作。否则,接收器通过对中间标签ILP(n),S(n)应用公用函数F(即依照先前给出的公式(1))顺序地计算出与较高子集相关联的中间标签(节点相关值NV)。关于接收器拥有的中间标签ILP(n),S(n),对于以接收器所分配至的叶n的父节点P(n)的父节点P(P(n))作为开始节点,与节点P(n)的兄弟节点S(P(n))相关联的特殊子集SSP(P(n)),S(P(n))的中间标签ILP(P(n)),S(P(n))可以通过公式计算出,其所述公式中先前给出的公式(1)的节点相关值NV由中间标签所代替,即由以下公式(3):
ILP(P(n)),S(P(n))=(ILP(n),S(n))2+H(n||saltn))mod M
(3)
这是基于关于先前描述的Rabin树的节点相关值的关系的等式(1)的。
此外,较高节点的节点相关值NV(中间标签)是基于较低节点的节点相关值NV(中间标签)计算出的。例如,在图26中所示的接收器u4中,通过以下程序计算较高节点(节点编号1、2、4和9)的节点相关值NV(中间标签)。
(a1)NV9(即中间标签IL4,8)=((NV19)2+H(19||salt19))mod M
(a2)NV4(即中间标签IL2,5)=((NV9)2+H(9||salt9))mod M
(a3)NV2(即中间标签IL1,3)=((NV4)2+H(4||salt4))mod M
(a4)NV1(即中间标签IL1,Φ)=((NV2)2+H(2||salt2))mod M
较高节点的节点相关值是依照以上给出的等式从较低节点的节点相关值计算出的。此外,可以依照以下等式从相应节点的节点相关值(中间标签)计算出标签:
(b1)LABEL9,18=HC(IL9,18)
(b2)LABEL4,8=HC(IL4,8)
(b3)LABEL1,3=HC(IL1,3)
(b4)LABEL2,5=HC(IL2,5)
(b5)LABEL1,Φ=HC(IL1,Φ)
如上所述,有了节点y和作为开始节点的父节点(当y存在时,节点P(y)的父节点P(P(y))),可以通过以下公式计算出与节点P(y)的兄弟节点S(P(y))相关联的特殊子集SSP(P(y)),S(P(y))的中间标签ILP(P(y)),S(P(y)):
ILP(P(y)),S(P(y))=(ILP(y),S(y))2+H(y||salty))mod M
节点y时存在于从接收器所分配至的叶到分布的路径上的节点。
此外,关于中间标签IL1,2或中间标签IL1,2,与第二特殊子集SS1,Φ相关联的中间标签IL1,Φ=K可以通过以下公式计算:
IL1,Φ=((IL1,2)2+H(3||salt3))mod M
IL1,Φ=((IL1,3)2+H(2||salt2))mod M
将参考图28描述接收器获取中间标签的过程。分配给叶19的接收器拥有中间标签LABEL9,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=((IL2,5)2+H(9||salt9))mod M
通过重复这个操作,接收器u4可以获取较高中间标签IL1,3和IL1,Φ:
在得出与子集Si,k相关联的中间标签ILi,k后,接收器通过LABELi,k=HC(ILi,k)计算标签LABELi,k。
接着,如先前参考图18所述,使用伪随机编码生成器G计算出所需的子集Si,j的标签LABELi,j,通过SKi,j=GM(LABELi,j)计算出子集的子集密钥SKi,j并使用子集密钥SKi,j解密密文。
将参考图30描述获取子集密钥的特定例子。假设如图30所示接收器u2、u11和u12被撤销,使用与子集S2,17和S3,13相关联的子集密钥生成的密文被广播。
接收器u4持有六个标签LABEL1,5、LABEL1,8、LABEL1,18、LABEL2,8、LABEL2,18和LABEL4,18以及中间标签IL9,18(节点相关值NV19),允许得出IL1,Φ、IL1,3、IL2,5和IL4,8。接收器u4适用先前所述的情况(A)。即,接收器u4直接持有关于节点8的标签LABEL2,8,所述节点8是节点17的祖先。因此,接收器u4可以通过按照所需多次应用伪随机编码生成器G得出子集密钥SK2,17。
此外,使用相同设置,接收器u5持有六个标签LABEL1,4、LABEL1,11、LABEL1,21、LABEL2,11、LABEL2,21和LABEL5,21以及中间标签IL10,21(节点相关值NV20),允许得出IL1,Φ、IL1,3、IL2,4和IL5,11。接收器u4适用先前所述的情况(B)。即,接收器u5不直接持有关于节点k的标签LABEL2,k,所述节点k是节点17的祖先。因此,接收器u5可以通过首先获取与节点4相关联的中间标签IL2,4(节点相关值NV5),接着按照所需多次应用伪随机编码生成器G得出子集密钥SK2,17,所述节点4是节点17的祖先。
当没有接收器要撤销且使用第二特殊子集SS’1,Φ时,接收器um通过上述程序计算中间标签IL1,Φ(节点相关之NV1),通过LABEL1,Φ=HC(IL1,Φ)计算标签LABEL1,Φ并将标签LABEL1,Φ输入到伪随机编码生成器G以获取输出的中间C比特。即。接收器um通过SK1,Φ=GM(LABEL1,Φ)计算出与子集S1,Φ相关联的子集密钥SK1,Φ,并且使用子集密钥SK1,Φ解密密文。
现在,将参考图31所示的流程图描述接收器接收密文、获取子集密钥和解密密文的过程。
在步骤S701中,接收器接收密文集。在步骤S702中,接收器从密文集中确定要解密的密文。即,接收器使用接收器可以生成的子集密钥提取经加密的密文。当接收器不能确定要解密的密文时,说明接收器被撤销。密文的选择是基于,例如,与密文一起发送的子集指定信息。
当确定了要解密的密文,在步骤S703中,接收器通过上述方法得出用于解密密文的子集密钥。
将参考图32详细描述得出子集密钥的过程。在步骤S801中,接收器确定与要用于解密的子集密钥SKi,j相关联的子集Si,j的节点j属于以下情况(A)还是情况(B):
(A)接收器是具有标签LABELi,k的节点k的直接子孙(包括j=k的情况)。
(B)接收器符合节点k,所述节点k不在从接收器所分配至的叶n到节点I的字节(即节点k,路径上的节点i的子节点之一的兄弟节点)点或其子孙节点(即节点j是否是节点k的子孙节点,所述节点k组成其标签被提供给接收器um的子集的第一特殊子集SSi,k)的根的路径上。
当没有接收器要撤销且第二特殊子集SS1,Φ的子集密钥SK1,Φ用于加密保密信息时,假定为情况(B)。
当情况(A)适用时,在步骤S803中,基于接收器拥有的标签,根据需要多次应用伪随机编码生成器G,由此得出要使用的子集密钥。
当情况(B)适用时,在步骤S804中,基于提供给接收器的中间标签ILP(n),S(n)(节点相关之NVn),依照先前给出的公式(1)(等价于公式(3))计算出与特殊子集相关联的中间标签。在步骤S805中,基于计算出的中间标签应用函数Hc以计算出与子集相关联的标签。在步骤S806中,基于计算出的标签应用伪随机编码生成器G以得出要使用的子集密钥。
再参考图31中所示的流程,再通过上述程序得出子集密钥后,在步骤S704中,接收器使用在步骤S703中得出的子集密钥解密在步骤S702中从密文集选出的密文,由此获取发送的保密信息。保密信息是,例如,在电视广播系统中用于解密经加密内容的内容密钥。在这种情况下,接收器接收经加密的内容,并使用内容密钥解密经加密的内容以输出经解密的内容。
接着,将参考图33和34描述定义标签和生成密文的信息处理装置和用作机密密文的接收器的信息处理装置的功能配置。
首先,将参考图33描述定义标签和生成密文的信息处理装置的功能配置。信息处理装置710包括单向树(Rabin树)生成器711、中间标签和标签生成器712、要提供的标签的确定单元713、密文生成器714和密文提供单元715。
信息处理装置710采用基于分级树的广播加密以提供可以由不包括经撤销的设备的特定的选中设备解密的密文。单向树(Rabin树)生成器711生成Rabin树,其中可以依照公式(1)使用至少一个较低节点的节点相关值NV和节点所附变量salt计算出分级树的每个节点的节点相关值NV。
中间标签和标签生成器712通过将基于中间标签通过映射函数Hc计算出的值定义为与相应子集相关联的标签中的特殊子集相关联的标签,所述相应子集是通过子集差异(SD)方法基于分级树定义的。
由中间标签和标签生成器712选出的特殊子集至少包括以下之一:
第一特殊子集,其中节点i和节点j是在子集Si,j中的分级树中直接连接的父和子,所述子集是通过从以节点i为其顶点的子树减去以较低节点j为其顶点的子树获取的集合。
第二特殊子集,即定义为包含分级树的所有叶的整个树的集合的子集S1,Φ。
中间标签和标签生成器712生成,作为Rabin树的节点相关值,与标签相关联的中间标签,所述标签在由子集差异(SD)方法定义的相应子集相关联的标签中与特殊子集相关联。
更具体地,单向树(Rabin树)生成器711生成Rabin树,其中依照先前参考图8中所示的流程描述的算法定义的节点相关值。中间标签和标签生成器712将节点相关值设置为与特殊子集相关联的中间标签。即,节点相关值被用作计算第一特殊子集SSi,j和第二特殊子集SS1,Φ的标签的中间标签。
此外,基于中间标签应用映射函数Hc以计算出特殊子集的标签。接着,将伪随机编码生成器G应用到与特殊子集相关联的标签上以顺序地计算出与相应子集相关联的标签。这个过程对应于先前参考图18描述的程序。
要提供的标签确定单元713确定要提供给与分级树的叶相关联的接收器的标签。要提供的标签确定单元713确定,作为要提供给接收器的标签,不与特殊子集相关联的特殊子集非关联标签和允许计算与特殊子集相关联的标签的中间标签(节点相关值)。
以下将描述由要提供的标签确定单元713执行的特定处理。首先,以中间节点i作为开始节点,节点i位于从接收器um所分配至的叶到根的路径上,与直接从叶到节点i的路径上分叉出的节点j相关联的子集Si,j的标签LABELi,j和与包含所有接收器的增个树相关联的子集SS1,Φ相关联的标签LABEL1,Φ作为暂定选中标签,其中所述SS1,Φ在没有接收器要撤销时使用。接着从暂定选中标签中选出不与特殊子集相关联的特殊子集非关联标签,并选出允许计算与特殊子集相关联的标签的中间标签(节点相关值)。这个被确定为要提供给接收器um的最终选中标签。
密文生成器714有选择地应用可以从由中间标签和标签生成器712生成的标签得出的子集密钥以生成密文。密文提供装置715经由网络或存储在记录媒质上提供如上所述生成的密文。
接着,将参考图34描述用作解密密文的接收器的信息处理装置的功能配置。
用作解密密文的接收器的信息处理装置720包括密文选择器721、标签计算器722、子集密钥生成器723、解密单元724和标签存储器725。
用作解密密文的接收器的信息处理装置720是使用子集密钥解密密文的信息处理装置,所述子集密钥与基于子集差异(SD)方法定义的子集之一相关联,所述子集差异(SD)方法是基于分级树结构的广播加密方法。密文选择器721选择可以使用子集密钥生成的密文,所述子集密钥可以基于在标签存储器725中持有的标签或可以从其拥有的中间标签计算出的标签得出。
当用于解密的子集密钥不是可以基于接收器所拥有的标签通过伪随机编码生成得出的子集密钥时,标签计算器722通过执行计算基于提供给接收器的中间标签ILP(n),S(n)计算出与所需的特殊子集相关联的中间标签。
更具体地,基于提供给接收器和存储在存储器725中的中间标签ILP(n),S(n),依照先前给出的公式(3)计算出与所需特殊子集相关联的中间标签(节点相关值)。此外,通过对计算出的中间标签计算出映射函数Hc,计算出与子集相关联的标签。
子集密钥生成器723通过应用伪随机编码生成器G基于存储在存储器725中的标签或由标签计算器722从中间标签计算出的标签计算出要使用的子集密钥。
解密单元724使用由子集密钥生成器723计算出的子集密钥解密密文。
图35示出了信息处理装置800的示例性硬件配置,所述信息处理装置800是用作生成密文或用作解密密文的接收器的信息处理装置。图35中由虚线示出的框是可选的。例如,当接收器800是光盘播放器等时,媒体界面807包含在内。当接收器800与其他设备交换信息或从天线接收信号时,输入/输出界面803包含在内。安全存储单元804安全地持有在设置阶段中信任中心(TC)给出的数据,诸如节点密钥、节点相关值或标签等。
如图35所示,信息处理装置800包括控制器801、计算单元802、输入/输出界面803、安全存储单元804、主存储单元805、显示器806和媒体界面807。
控制器801由例如CPU来实现,用作依照计算机程序执行数据处理的控制器。计算单元802用作特殊计算器或密码处理器,用于生成加密密钥、生成随机数、执行加密等等。计算单元802计算标签和中间标签,并基于标签计算出子集密钥。此外,当信息处理装置800是接收器时,计算单元802基于子集密钥解密密文。
输入/输出界面803时用于处理来自输入设备的数据输入、到外部输出设备的数据输出的界面以及经由网络发送和接收数据,所述输入设备诸如键盘和鼠标。
当信息处理装置是生成密文的信息处理装置时,在CS方法的情况下,安全存储单元804存储要安全或秘密保存的数据,诸如节点密钥或在设置阶段中生成的各种ID。在SD方法的情况下,安全存储单元804存储允许计算出与特殊子集相关联的标签的中间标签和不与特殊子集相关联的标签。
当信息处理装置是接收器时,在CS方法的情况下,在包含在与接收器um相关联的路径节点m[PathNodes-m]的节点的节点密钥中,安全存储单元804只存储不能基于单向函数F从所拥有的节点密钥得出的节点密钥。在SD方法的情况下,安全存储单元804存储要安全或秘密保存的数据,诸如信任中心(TC)给出的节点相关值(中间标签)、标签或各种ID。对于中间标签,存储允许计算出与特殊子集相关联的标签的中间标签和不予特殊子集相关联的标签。
当信息处理装置800是支持SD方法的接收器时,存储在安全存储单元804中基于中间标签生成的标签是与特殊子集相关联的标签,即:
(a)第一特殊子集,其中节点i和节点j是在子集Si,j中的分级树中直接连接的父和子,所述子集被定义为通过从以节点i为其顶点的子树减去以较低节点j为其顶点的子树获取的集合。
(b)第二特殊子集,即定义为包含分级树的所有叶的整个树的集合的子集S1,Φ。
主存储单元805用于,例如,由控制器801执行的数据处理程序的存储区域或临时存储处理参数或用于程序执行的工作区域。安全存储单元804和主存储单元805用例如RAM或ROM来实现的。显示器806用于例如输入经解密的内容。媒体界面807用于从诸如CD、DVD或MD等媒体读出数据或向其中写入数据。
9.基本分层子集差异(基本LSD)方法的概述
接着,将描述基本分层子集差异(基本LSD)方法的概述。
在Cryptography-Crypto 2002的Advances,计算机科学2442中的演讲笔记,Springer 2002第47-60页,D.Halevy和A.Shamir的“The LSD BroadcastEncryption Scheme”中,提出了分层子集差异方法,这是对SD方法的改进。LSD方法可以分类到基本LSD方法和通用LSD方法中。现在,下面将描述基本LSD方法。
LSD方法是SD方法的扩展,其中新引入了层次的概念。在基于SD方法的树结构中,特定高度被定义为特殊层数。在基本LSD方法中,只定义了一种类型的特殊层数。在通用LSD方法中,使用了具有不同重要程度的多个类型的特殊层数。
简单起见,这里假设log1/2N是一整数。在基本LSD方法中,如图36所示,对于从根到树的叶的层数、在log1/2N距离处的层数,包括根层数和叶层数,被定义为特殊层数。两个相邻特殊层数(包括两端的特殊层数)之间所夹的层数被称为层。在图36所示的例子中,根的层数、包含节点k的层数和叶的层数是特殊层数,根层数(包含节点i的层数)和包含节点k的层数组成了单层。同样地,包含节点k的层次、包含节点j的层次和叶层次组成另一层。
在基本LSD方法中,对于在SD方法中定义的子集Si,j,只定义了那些满足以下条件之一的子集:(1)节点i和节点j在相同的层上,或(2)节点i在特殊层数上。因此,在SD方法中定义的一些子集在基本LSD方法中不定义。然而,这样的子集可以由在基本LSD方法中定义的最多两个子集的并集表示。在图36所示的例子中,没有在基本LSD方法中定义子集Si,j,但是可以使用沿着从节点i到节点j的路径上最接近节点i的特殊层数上的节点k表示将其表示成Si,j=Si,k∪Sk,j。
即,依照基本LSD方法,发送使用与子集Si,k和Sk,j相关联的子集密钥SKi,k和SKk,j生成的两个密文,而非使用在SD方法中与子集Si,j相关联的子集密钥SKi,j生成的一个密文。
这与SD方法相比知识加倍了密文的数目,而与SD方法相比可以降低每个接收器要持有的标签的数目。
先前已参考图20描述了在SD方法中每个接收器要持有的标签数目。现在,将参考图37描述在相同设置下在基本LSD方法中每个接收器要持有的标签数目。图37所示的接收器u4只需持有标签LABELi,j,其中i和j在相同层上或i在特殊层数上。即,接收器u4持有LABEL1,3、LABEL1,5、LABEL1,8、LABEL1,18、LABEL2,5、LABEL4,8、LABEL4,18和LABEL9,18。此外,类似于SD方法,接收器u4持有当没有接收器要撤销时的特殊标签。
当接收器的总数是N时,可以如下计算每个接收器要持有的标签的总数。首先,因为对于给定i节点j的数目对应于标签中i的高度,一个层的标签数目可以如下计算:
由于在分级树中存在log1/2N,整个分级树的层次中标签的数目可以如下计算:
考虑到节点i在特殊层数上的情况,节点j的数目对应于整个分级树中i的高度。因此,整个分级树中标签的总数,包括在特殊层数上的节点i,可以如下计算:
由于标签与特殊层次上节点相关联,相同层上的节点j被计算两次。对于每层这样的组合的数目是log1/2N,而对于整个分级树是logN。考虑到这个数目并加上在没有接收器要撤销情况下的特殊标签,在基本LSD方法中每个接收器持有的标签总数可以如下计算:
10.在采用Rabin树的基本LSD方法中降低标签数目的方案
接着,将描述在采用Rabin树的基本LSD方法中降低标签数目的方案。在先前所述的基于SD方法的实施例中,中间标签被设置成Rabin树中的节点相关值,所述中间标签允许计算出中间标签ILi,j以便计算出子集Si,j的标签LABELi,j,其中节点i是节点j的父节点。由于只有一个中间标签(节点相关值),降低了每个接收器要持有的标签的数目。这可以类似地应用到基本LSD方法中。
特定方法实质上与先前描述的实施例中的方法相同。然而,当信任中心(TC)在设置过程中使用伪随机编码生成器G顺序的生成标签LABELi,j时,如果节点i不是在特殊层数上,不使用这样的标签使得j是低于直接处于i之下的特殊层次的节点,这样使得标签的生成可以到特殊层数处停止。此外,由于只创建了满足先前所述的条件的标签,它足以简单地将标签发布给接收器。
将参考图38描述在与图37相同设置下采用单向置换树的基本LSD方法中降低标签数目的方案的特定例子。在LSD方法中,如同参考37所述,接收器u4必须持有九个标签,即LABEL1,3、LABEL1,5、LABEL1,8、LABEL1,18、LABEL2,5、LABEL4,8、LABEL4,18和LABEL9,18以及类似于SD方法当没有接收器要撤销时使用的特殊标签。相反地,依照这个实施例,接收器u4持有以节点i和j为父和子的标签、与当没有接收器要撤销时使用的特殊标签相关联的中间标签ILi,j,以及允许计算出IL1,Φ的中间标签IL9,18(节点相关值NV19)。因此,接收器u4总共仅需持有五个标签就足够,即四个标签LABEL1,5、LABEL1,8、LABEL1,18和LABEL4,18以及一个中间标签IL9,18。
现在,将考虑当接收器总数为N时,依照这个实施例可以降低的标签数目。首先,将考虑在LSD方法中每个接收器要持有的标签LABELi,j的数目,其中节点i和j是父和子,本发明不应用于所述LSD方法。
当节点i和j是父和子节点时,以下三种关系是可能的:
(A)节点i在特殊层数上。
(B)节点j在特殊层数上。
(C)节点i和j都不在特殊层数上。
在任意一种情况下,当节点i和j是父和子(即在相邻层数上),节点i和j位于相同层上。即,子集Si,j满足在LSD方法中定义的条件。即,由于这样的子集在基本LSD方法中定义和使用,接收器必须持有与之相关联的标签LABELi,j。
对于给定接收器,节点i和j的这样组合的数目对应于树中i的高度,即logN(即从接收器所分配至的叶到根的路径上除了叶之外的所有节点),而对于给定的i,j是唯一确定的(i的子节点且不在路径上)。
通过从一个中间标签创建这logN个标签和一个特殊标签,每个接收器持有的标签数目可以降低至logN+1-1=logN。
如上所述,在基本LSD方法中,每个接收器持有的标签数是log3/2N+1。依照这个实施例,这个数目可以降低到log3/2N-logN+1。
11.通用分层子集差异(通用LSD)方法的概述
接着,将描述通用分层子集差异(通用LSD)方法的概述。
在基本LSD方法中,只使用一种类型的特殊层数。相反地,在通用LSD方法中,使用具有不同重要程度的多种特殊层数。
类似于提出LSD方法的文章,从根经由节点i扩展到节点j的路径被称为图形。树的根和节点j用作终点,树的节点用作图形节点,节点i是除了终点之外的一个节点。在这个图形中,每个节点以的d-位b-ary数的形式由离开根的距离表示,其中b=log1/dN。例如,根表示为0...00,其相邻节点(分级数结构中根的子节点)表示为0...01。
子集Si,j被称为通过由转换(节点到节点转换)定义的组合从节点i到节点j的最终转换。所定义的转换表示定义的子集,最终转换的单个转换表示定义的子集以表示子集Si,j的分段。如在原文中描述的,当节点i、k1、k2,...,kd-1和j以这个顺序存在于树的路径上时,SD方法中的子集Si,j在通用LSD方法中可以如下表示:
即,SD方法中的子集Si,j可以由通用LSD方法中至少d个子集的并集表示。
在通用LSD方法中,当节点i由图形表示为[x](→)a[0](→)(其中a是非零的最右数字,[x](→)表示数字的任意顺序,[0](→)表示零的顺序),所有到节点j的转换表示为[x+1](→)0[0](→)或[x](→)a’[y](→)(其中a’>a,[y](→)是与[0](→)具有相同长度的数字的任意顺序)。即,定义了所有由这样的i和j的组合表示的子集Si,j。
接着,基本LSD方法可以被认为以下的通用LSD方法的情况:其中d=2,由最右位为0的两位表示的层数是特殊层数。在通用LSD方法中,表示节点的数字中最右零序列的位数表示层数的有效位,而节点j可以是节点i+1和第一节点之间比i具有较高有效位数的任何节点(包括两端上的节点)。在这个设置下,例如,当i=825917且j=864563,从i到j的转换,即SD方法中的子集Si,j,可以由在通用LSD方法中定义的四个转换表示,即825917→825920→826000→830000→864563。
即,有了k1=825920,k2=826000和k3=830000,子集Si,j可以表示为:
为了将保密信息发送给属于SD方法中子集Si,j的接收器,在通用LSD方法中,发送由以下表达式表示的子集密钥生成的四个密文:
在通用LSD方法中每个接收器要持有的标签的数目随着参数d的增加而降低,而最终达到O(log1+εN),其中ε=1/d。要发送的密文数目的上限是d(2r-1)。请参考先前提到的文章。
12.在采用Rabin树的通用LSD方法中降低标签数目的方案
接着,将描述在采用Rabin树的通用LSD方法中降低标签数目的方案。上述在基本LSD方法中使用Rabin树降低每个接收器要持有的标签数目的方法也可以应用到通用LSD方法中。更具体地,基本LSD方法和通用LSD方法只是在所定义的子集要满足的条件上不同,而对Rabin树的使用没有不同。在通用LSD方法中,接收器um也必须持有与子集Si,j相关联的所有标签LABELi,j,其中节点i和j是在SD方法中定义和提供给接收器um的标签中的父和子。这是因为不管节点i的值是什么,到子节点j(即i+1)的转换满足所定义的转换的条件。即,类似于基本LSD方法,对于给定接收器,要持有的标签的数目是logN,其中节点i和j是父和子。通过创建从一个中间标签创建这些标签和特殊标签,可以降低logN个标签。由于在通用LSD方法中每个接收器要持有的标签的数目原来是O(log1+εN)(其中ε是任意正整数),可以由此降低logN个标签。在采用Rabin树的SD方法中检查密文发布方案中计算量的降低。
与依照相关领域的SD方法中降低密钥数目的方法相比较,依照本发明的SD方法中密文发布方案具有优势:每个接收器的计算量较小。将基于与基于RSA密码系统的SD方法相比较描述这个优势。
在基于RSA系统的SD和LSD方法中,接收器从节点的节点密钥NK1得出父节点的密钥,表示如下:
依照以下等式:
由于相比模数求幂操作XOR操作和hash函数H的计算量的很多,模数求幂操作NK1 emod M在上述公式中看主导位置。
在基于RSA密码系统的系统中,为了降低计算量,期望将公用指数和e的汉明权减到最小。然而,例如e=3太小以至于不能确保安全性,因此一般推荐e=216+1。
当值216+1用作公用指数e时,可以通过几种方法计算出e的幂的给定值x。当使用“square-and-multiply”算法(参见A.J.Menezes,P.C.van Oorschot和S.A.Vanstone的“Handbook ofApplied Crtyptogrphhy”CRC出版社,1996,614页),需要16个平方操作和一个乘法操作。由于平方是乘法的特殊情况而与乘法相比可以降低计算量,因此其计算量大于17个平方操作的计算量。此外,即使在基于RSA密码系统的方法中值3被用作公用指数e,NK1 emod M的计算需要一次乘法操作和一次平发操作。因此,在这个实施例中计算量被降低到少于一半。
相反地,另一方面,在依照这个实施例采用Rabin树的SD方法的密文发布方案中,接收器依照这个实施例基于其持有的节点相关值NV1和节点所附变量salt执行以下计算:
同样在这种情况下,模数求幂操作占支配地位。然而,在上述公式中的模数求幂操作是NV1 2mod M,这样使得只要一次平方操作就足够。因此,依照这个实施例,相比基于RSA密码系统的方法,计算量可以降低至大约1/17。
如上所述,与依照相关领域基于RSA密码系统的方法相比,由于可以使用一次平方操作来执行模数求幂操作,因此计算量可以降低至大约1/17,其中所述模数求幂操作会造成接收器计算量的巨大负载。此外,当值3用作公用指数e,NK1 emod M的计算需要一次乘法操作和一次平方操作。因此,在这个实施例中计算量被降低到少于一半。
在SD方法、基本LSD方法和依照相关领域的通用LSD方法中,每个接收器必须安全持有以下数目的标签。
SD:(1/2)log2N+(1/2)logN+1
基本SD:log2/3N+1
通用LSD:O(log1+εN)
其中N是接收器的总数,ε是满足ε>0的任意数字。
相反地,依照采用Rabin树的这个实施例,可以降低每个接收器要持有的标签数目。更具体地,对于节点i和j为父和子节点(距离为1,即在相邻的层数上)的标签LABELi,j和对于与当没有接收器要撤销是所使用的特殊子集1,Φ相关联的标签1,Φ,中间标签被设置成与Rabin树中的节点相关值相关联,这样使得可以基于中间标签计算出与较高特殊子集相关联的中间标签(节点相关值)。相应地,降低了每个接收器要持有的标签数目。
依照这个实施例,无需安全地持有节点所附变量salt。此外,节点所附变量平均和2个比特一样小,这样使得每个接收器处的存储数据负载较小。
如上所述,降低了每个接收器处要安全持有的信息量。此外,降低了每个接收器用于计算节点密钥的计算量。相应地,可以有效地实现密文发布和解密。
这里所描述的过程系列可以由硬件、软件以及硬件和软件的组合执行。当由软件执行过程时,处理序列的程序被安装在嵌入在特殊硬件中的计算机存储器中,或者安装在能够执行各种过程的通用计算机上。
例如,程序可以提前记录在作为记录媒体的硬盘或只读存储器(ROM)中。或者,程序可以临时地或永久地记录在可移动记录媒体上,诸如软盘、光盘只读存储器(CD-ROM)、磁光(MO)盘、数字视频盘(DVD)、磁盘或半导体存储器。这样的记录媒体可以作为软件包提供。
除了将程序从可移动记录媒体安装到计算机上,程序可以通过从下载站点无线发送到计算机或经由诸如局域网(LAN)或因特网等网络有线发送给计算机,这样使得计算机可用接收到发送到其上的程序并在诸如硬盘的内部记录媒体上安装程序。
这里所描述的各种过程不一定要以所述的顺序执行,可以根据需要或根据执行过程的装置的处理能力平行地或单独地执行。在该说明书中,系统是指多个装置的逻辑组合,而不管在相同的情况下是否存在这些装置。
依照这些实施例,为了子集差异(SD)方法和分层子集差异(LSD)方法的效率,这两种方法被视为通过基于分级树结构的广播加密的相对有效的信息发布方案,使用如下述构建的Rabin树,所述Rabin树是单向树,其中为分级树的相应节点定义了节点相关值。相应地,降低了每个接收器要安全保存的保密信息量,并降低了用于计算子集密钥的计算量。
更具体地,可能通过基于至少一个较低节点的节点相关值和节点所附变量的函数计算节点相关值。这个节点相关值用作允许计算标签值的中间标签,所述标签与从与基于SD方法定义的相应子集相关联的标签中选出的特殊子集相关联。每个接收器要安全持有的信息仅是不与特殊子集相关联的特殊子集非关联标签和对应于中间标签的节点相关值和节点所附变量。因此,降低了每个接收器要安全持有的信息量。无需安全地持有节点所附变量,其大小可以平均为2比特这样小。因此,显著地降低了每个接收器要安全持有的信息量。此外,与基于RSA的方法相比较,可以由一个平方操作执行模数求幂操作,这样可以显著地将计算量降低至大约1/17,其中所述模数求幂操作趋于造成关于由接收器执行的计算量的较大负载。如上所述,依照本发明的实施例,降低了每个接收器要安全持有的信息量,降低了每个接收器用于得出子集密钥的计算量。相应地,可以有效地实现密文发布和解密。
本领域的技术人员应该理解,可以在所附权利要求书及其等价方案的范围内根据设计需要和其他因数发生各种修改、组合、次组合和改变。
Claims (36)
1.一种信息处理方法,用于生成提供密文的分级树,所述密文只可由基于分级树结构通过广播加密的特定选中设备解密,所述信息处理方法包括步骤:
生成单向分级树,所述单向分级树包括形成分级树的节点,所述节点具有相应的节点相关值,每个节点的节点相关值通过使用至少一个较低节点的节点相关值和节点所附变量的函数来计算;
设置中间标签为节点相关值,所述中间标签允许计算与特殊子集相关联的标签的值,所述特殊子集选自分别与以基于分级树为基础的子集差异方法定义的子集相关联的标签;
通过基于所述中间标签的计算生成与所述特殊子集相关联的标签,并通过基于生成的子集的计算生成不与所述特殊子集相关联的标签;以及
确定要提供给与所述分级树的终端节点相关联的接收器的标签,从而选出不与所述特殊子集相关联的特殊子集非关联标签,并作为要提供给与单向树的终端节点相关联的接收器的信息,选出节点相关值和节点所附变量作为最小中间标签,用于计算包含在从与所述接收器相关联的的节点到作为最高节点的根的路径中的节点的节点相关值。
2.如权利要求1所述的信息处理方法,其特征在于,所述单向树生成步骤生成一单向树,其中可能通过根据Rabin密码系统的加密基于较低节点的节点相关值来计算较高节点的节点相关值,且其中可能通过根据Rabin密码系统的加密基于较高节点的节点相关值来生成较低节点的节点相关值。
3.如权利要求1所述的信息处理方法,其特征在于,还包括有选择地应用子集密钥的步骤,以便生成密文并将所述密文提供给所述接收器,所述子集密钥从与所述子集相关联的相应标签导出,所述标签在所述标签生成步骤中生成。
5.如权利要求4所述的信息处理方法,其特征在于,所述单向树生成步骤接受叶的数目N(表示具有N个终节点的二叉分级树中终节点的数目)和模数M的大小|M|的输入,并通过以下步骤生成单向树:
(1)确定大小|M|/2的两个大质数并由此计算乘积M;
(2)定义输出ZM的元素的映射函数H;
(3)随机选择与根节点的值NV1相关联的节点作为二叉树的最高节点,使得NV1∈Z* M;
(4)随着计数器从2到2N-1增加1时执行以下(a)和(b);
(a)找出最小的正整数salt1,temp1由以下公式表示,成为二次剩余模数M;
(b)计算temp1 1/2 mod m,并确定四个解之一作为节点l的节点相关值NV1;以及
(5)输出2N-1个|M|-比特节点相关值NV1,NV2,...,NV2N-1和2N-2个所附变量salt2,salt3,...,salt2N-1,并且设置这些值作为二叉树的相应节点l的节点相关值和节点所附变量,其中l=1到2N-1。
6.如权利要求1所述的信息处理方法,其特征在于,所述标签生成步骤包括接受对应于中间标签的节点相关值的输入,并通过应用函数来计算与特殊子集相关联的标签值的步骤。
7.如权利要求1所述的信息处理方法,其特征在于,所述标签生成步骤包括通过基于与特殊子集相关联的标签值的随机数生成而生成其他标签的步骤。
8.如权利要求1所述的信息处理方法,其特征在于,在中间标签生成步骤中选出的所述特殊子集至少是以下之一:
第一特殊子集,其中节点i和节点j是在子集中的分级树中直接连接的父和子节点,所述子集每个被定义为通过从以节点i作为其顶点的子树减去以较低的节点j作为其顶点的子树所得的集合;或者
第二特殊子集,被定义为以根作为顶点的整个树的集合,包括分级树的所有叶。
9.如权利要求1所述的信息处理方法,其特征在于,所述要提供的标签的确定步骤设置一中间标签,所述中间标签被提供给与分级树的终节点相关联的接收器,作为与在子集最低层处子集的中间标签相关联的节点相关值,所述子集组成第一特殊子集。
10.如权利要求1到9所述的信息处理方法,其特征在于,所述中间标签生成步骤设置与特殊子集相关联的标签,所述标签选自与由基本分层子集差异方法定义的相应标签相关联的标签,在所述方法中子集是以由分级树中的特定层次集合分隔的各个层为基础管理的,值可以从与特殊子集相关联的中间标签计算得出。
11.如权利要求1到9所述的信息处理方法,其特征在于,所述中间标签生成步骤设置与特殊子集相关联的标签,所述标签选自与由基本分层子集差异方法定义的相应标签相关联的标签,在所述方法中子集是以由分级树中多个特定层次集合分隔的各个层为基础管理的,值可以从与特殊子集相关联的中间标签计算得出。
12.一种解密方法,用于解密使用与基于子集差异方法定义的相应子集相关联的子集密钥生成的密文,所述子集差异方法是基于分级树结构的广播加密方法,所述解密方法包括以下步骤:
选择使用子集密钥生成的密文,所述子集密钥可通过基于拥有的标签或基于可以基于节点相关值和节点所附变量作为拥有的中间标签的计算出的标签的随机数生成导出;
当用于加密的子集密钥不是通过基于所拥有的标签的随机数生成导出的子集密钥时,通过基于节点所附值和节点所附变量的计算,计算出与特殊子集相关联的标签;
通过基于所拥有的标签或计算得出的标签的随机数生成,生成子集密钥;以及
使用生成的子集密钥来解密密文。
13.如权利要求12所述的解密方法,其特征在于,所述密文选择步骤从分级树中用于加密的节点密钥的节点编号中搜索匹配包含在从接收器到根的路径中的节点的节点编号之一的节点编号,在所述分级数中节点编号以宽度优先顺序分配给相应节点,节点编号1分配给作为分级树的最高节点的根。
14.如权利要求12所述的解密方法,其特征在于,所述标签计算步骤计算二叉树的相应节点l的节点编号中从拥有的节点到作为最高节点的根的路径上节点的节点相关值,其中l=2,3,...,2N-1,在所述二叉树中依照以下公式基于所拥有的节点相关值和节点相关变量,从较高节点开始以宽度优先顺序分配节点编号l:
其中M是两个大质数的乘积,而H是输出ZM的元素的映射函数。
15.如权利要求12所述的解密方法,其特征在于,所述标签计算步骤基于作为拥有的节点相关值的中间标签或作为从拥有的节点到作为最高节点的根的路径上的节点的节点相关值的中间值,通过应用映射函数到基于节点相关值计算得出的中间标签,计算出标签。
16.如权利要求12所述的解密方法,其特征在于:
所述用于加密的子集密钥是可以基于与第一特殊子集或第二特殊子集相关联的标签的随机数生成计算得出的子集密钥,在所述第一特殊子集中,节点i和节点j是在子集中的分级树中直接连接的父和子,所述子集每个被定义为通过从以节点i作为其顶点的子树减去以较低的节点j作为其顶点的子树所得的集合,所述第二特殊子集被定义为以根作为顶点的整个树的集合,包括分级树的所有叶,以及
当不拥有与特殊子集相关联的标签时,标签计算步骤会通过基于作为拥有的中间标签的节点相关值和节点所附变量的计算,计算出节点相关值作为新的中间标签。
17.一种信息处理装置,用于生成分级树,所述分级树用于提供只能由特定的选定设备通过基于分级树结构的广播加密来解密的密文,所述信息处理装置包括:
单向树生成装置,用于生成单向分级树,所述单向分级树包括形成分级树的节点,所述节点具有各自的节点相关值,每个节点的节点相关值由使用至少一个较低的节点的节点相关值和节点所附变量的函数计算所得;
中间标签生成装置,用于设置中间标签为节点相关值,所述中间标签允许计算与特殊子集相关的标签值,所述特殊子集选自各自与基于分级树的子集差异方法基础上定义的子集相关联的标签;
标签生成装置,用于通过基于中间标签的计算生成与特殊子集相关联的标签,以及通过基于生成的标签的计算生成不与特殊子集相关联的标签;以及
要提供的信息的确定装置,用于确定要提供给与分级树的终节点相关联的接收器的标签,这样使得选出不与特殊子集相关联特殊子集无关标签,并作为提供给与单向树的终节点相关联的接收器的信息,选出节点相关值和节点所附变量作为用于计算包含在从与接收器相关联的节点到作为最高节点的根的路径中的节点的节点相关值。
18.如权利要求17所述的信息处理装置,其特征在于,所述单向树生成装置生成一单向树,其中可能通过依照基于较低节点的节点相关值的Rabin密码系统的加密来计算较高节点的节点相关值,且其中可能通过依照基于与较高节点的节点相关值的Rabin密码系统的加密来生成较低节点的节点相关值。
19.如权利要求17所述的信息处理装置,其特征在于,还包括选择性地应用子集密钥以生成密文,并将密文提供给接收器的装置,其中所述子集密钥来自与子集相关联、由标签生成装置生成的相应标签。
21.如权利要求20所述的信息处理装置,其特征在于,所述单向树生成装置接收叶的数目N(表示具有N个终节点的二叉分级树中终节点的数目)和模数M的大小|M|输入,并通过以下步骤生成单向树:
(1)确定大小|M|/2的两个大质数并由此计算乘积M;
(2)定义输出ZM的元素的映射函数H;
(3)随机选择与根节点的值NV1相关联的节点作为二叉树的最高节点,使得NV1∈Z* M;
(4)随着计数器从2到2N-1增加1时执行以下(a)和(b);
(a)找出最小的正整数salt1,temp1由以下公式表示,成为二次剩余模数M;
(b)计算temp1 1/2 mod m,并确定四个解之一作为节点l的节点相关值NV1;以及
(5)输出2N-1个|M|-比特节点相关值NV1,NV2,...,NV2N-1和2N-2个所附变量salt2,salt3,...,salt2N-1,并且设置这些值作为二叉树的相应节点l的节点相关值和节点所附变量,其中l=1到2N-1。
22.如权利要求17所述的信息处理装置,其特征在于,所述标签生成装置被配置成接收对应于中间标签的节点相关值的输入并通过应用函数计算与特殊子集相关联的标签值。
23.如权利要求17所述的信息处理装置,其特征在于,所述标签生成装置被配置成通过基于与特殊子集相关联的标签值的随机数生成而生成其他标签。
24.如权利要求17所述的信息处理装置,其特征在于,所述由中间标签生成装置选出的特殊子集会至少是以下之一:
第一特殊子集,其中节点i和节点j是在子集中的分级树中直接连接的父和子节点,所述子集每个被定义为通过从以节点i作为其顶点的子树减去以较低的节点j作为其顶点的子树所得的集合;或者
第二特殊子集,定义为以根作为顶点的整个树的集合,包括分级树的所有叶。
25.如权利要求17所述的信息处理装置,其特征在于,所述要提供的标签的确定装置被配置成设置一中间标签,所述中间标签被提供给与分级树的终节点相关联的接收器作为与在子集最低层处子集的中间标签相关联的节点相关值,所述子集组成第一特殊子集。
26.如权利要求17到25所述的信息处理装置,其特征在于,所述中间标签生成装置被配置成设置与特殊子集相关联的标签,所述标签选自与由基本分层子集差异方法定义的相应标签相关联的标签,其中子集是以由分级树中的特定层次集合分隔的个别层为基础管理的,值可以从与特殊子集相关联的中间标签计算得出。
27.如权利要求17到25所述的信息处理装置,其特征在于,所述中间标签生成装置被配置成设置与特殊子集相关联的标签,所述标签选自与由基本分层子集差异方法定义的相应标签相关联的标签,其中子集是以由分级树中多个特定层次集合分隔的个别层为基础管理的,值可以从与特殊子集相关联的中间标签计算得出。
28.一种信息处理装置,用于解密使用与基于子集差异方法定义的相应子集相关联的子集密钥生成的密文,所述子集差异方法是基于分级树结构的广播加密方法,所述信息处理装置包括以下装置:
密文选择装置,用于选择使用子集密钥生成的密文,所述子集密钥是通过基于拥有的标签或基于可以基于节点相关值和节点所附变量作为拥有的中间标签的计算出的标签的随机数生成获得的;
标签计算装置,当用于加密的子集密钥不是通过基于所拥有的标签的随机数生成获取的子集密钥时,通过基于节点所附值和节点所附变量的计算,计算出与特殊子集相关联的标签;
子集密钥生成装置,用于通过基于所拥有的标签或计算得出的标签的随机数生成,生成子集密钥;以及
解密装置,用于使用生成的子集密钥解密密文。
29.如权利要求28所述的信息处理装置,其特征在于,所述密文选择装置被配置成从分级树中用于加密的节点密钥的节点编号中搜索符合包含在从接收器到根的路径中的节点的节点编号之一的节点编号,其中节点编号以宽度优先顺序分配给相应节点,节点编号1分配给作为分级树的最高节点的根。
30.如权利要求28所述的信息处理装置,其特征在于,所述标签计算装置被配置成计算二叉树的相应节点l的节点编号中从拥有的节点到作为最高节点的根的路径上节点的节点相关值,其中l=2,3,...,2N-1,其中依照以下公式基于所拥有的节点相关值和节点相关变量,从较高节点开始以宽度优先顺序分配节点编号l:
其中M是两个大质数的乘积,而H是输出ZM的元素的映射函数。
31.如权利要求28所述的信息处理装置,其特征在于,所述标签计算装置被配置成基于作为拥有的节点相关值的中间标签或作为从拥有的节点到作为最高节点的根的路径上的节点的节点相关值的中间值,通过应用映射函数到基于节点相关值计算得出的中间标签,计算出标签。
32.如权利要求28所述的信息处理装置,其特征在于:
所述用于加密的子集密钥可以是基于与第一特殊子集或第二特殊子集相关联的标签的随机数生成计算得出的子集密钥,在所述第一特殊子集中,节点i和节点j是在子集中的分级树中直接连接的父和子节点,所述子集每个都被定义为通过从以节点i作为其顶点的子树减去以较低的节点j作为其顶点的子树所得的集合,所述第二特殊子集被定义为以根作为顶点的整个树的集合,包括分级树的所有叶,以及
当不拥有与特殊子集相关联的标签时,所述标签计算装置会被配置成通过基于作为拥有的中间标签的节点相关值和节点所附变量的计算,计算出节点相关值作为新的中间标签。
33.一种用于生成分级树的计算机程序,所述分级树用于提供只能由特定的选定设备通过基于分级树结构的广播加密来解密的密文,所述计算机程序包括以下步骤:
生成单向分级树的步骤,所述单向分级树包括形成分级树的节点,所述节点具有各自的节点相关值,每个节点的节点相关值由使用至少一个较低的节点的节点相关值和节点所附变量的函数计算所得;
设置中间标签为节点相关值,所述中间标签允许计算与特殊子集相关的标签值,所述特殊子集选自各自与基于分级树的子集差异方法基础上定义的子集相关联的标签;
通过基于中间标签的计算生成与特殊子集相关联的标签,以及通过基于生成的标签的计算生成不与特殊子集相关联的标签;以及
确定要提供给与分级树的终节点相关联的接收器的标签,这样使得选出不与特殊子集相关联特殊子集无关标签,并作为提供给与单向树的终节点相关联的接收器的信息,选出节点相关值和节点所附变量作为用于计算包含在从与接收器相关联的节点到作为最高节点的根的路径中的节点的节点相关值。
34.一种用于使用生成的子集密钥解密密文的计算机程序,所述子集密钥与基于子集差异方法定义的相应密钥相关联,所述子集差异方法是基于分级树结构的广播加密方法,所述计算机程序包括以下步骤:
选择使用子集密钥生成的密文,所述子集密钥是通过基于拥有的标签或基于可以基于节点相关值和节点所附变量作为拥有的中间标签的计算出的标签的随机数生成获得的;
当用于加密的子集密钥不是通过基于所拥有的标签的随机数生成获取的子集密钥时,通过基于节点所附值和节点所附变量的计算,计算出与特殊子集相关联的标签;
通过基于所拥有的标签或计算得出的标签的随机数生成,生成子集密钥;以及
使用生成的子集密钥解密密文。
35.一种信息处理装置,用于生成分级树,所述分级树用于提供只能由特定的选定设备通过基于分级树结构的广播加密来解密的密文,所述信息处理装置包括:
单向树生成器,被配置成生成单向分级树,所述单向分级树包括形成分级树的节点,所述节点具有各自的节点相关值,每个节点的节点相关值由使用至少一个较低的节点的节点相关值和节点所附变量的函数计算所得;
中间标签生成器,被配置成设置中间标签为节点相关值,所述中间标签允许计算与特殊子集相关的标签值,所述特殊子集选自各自与基于分级树的子集差异方法基础上定义的子集相关联的标签;
标签生成器,被配置成通过基于中间标签的计算生成与特殊子集相关联的标签,以及通过基于生成的标签的计算生成不与特殊子集相关联的标签;以及
要提供信息的确定单元,被配置成确定要提供给与分级树的终节点相关联的接收器的标签,这样使得选出不与特殊子集相关联特殊子集无关标签,并作为提供给与单向树的终节点相关联的接收器的信息,选出节点相关值和节点所附变量作为用于计算包含在从与接收器相关联的节点到作为最高节点的根的路径中的节点的节点相关值。
36.一种信息处理装置,用于解密使用与基于子集差异方法定义的相应子集相关联的子集密钥生成的密文,所述子集差异方法是基于分级树结构的广播加密方法,所述信息处理装置包括以下装置:
密文选择器,被配置成选择使用子集密钥生成的密文,所述子集密钥是通过基于拥有的标签或基于可以基于节点相关值和节点所附变量作为拥有的中间标签的计算出的标签的随机数生成获得的;
标签计算器,当用于加密的子集密钥不是通过基于所拥有的标签的随机数生成获取的子集密钥时,被配置成通过基于节点所附值和节点所附变量的计算,计算出与特殊子集相关联的标签;
子集密钥生成器,被配置成通过基于所拥有的标签或计算得出的标签的随机数生成,生成子集密钥;以及
解密单元,被配置成使用生成的子集密钥解密密文。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004266477A JP2006086568A (ja) | 2004-09-14 | 2004-09-14 | 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム |
JP2004266477 | 2004-09-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1753356A true CN1753356A (zh) | 2006-03-29 |
Family
ID=36035357
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2005101099087A Pending CN1753356A (zh) | 2004-09-14 | 2005-09-14 | 信息处理方法、解密方法、信息处理装置和计算机程序 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7340054B2 (zh) |
JP (1) | JP2006086568A (zh) |
CN (1) | CN1753356A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102726108A (zh) * | 2010-04-06 | 2012-10-10 | 上海贝尔股份有限公司 | 在平坦反馈模式和分级反馈模式之间切换的方法和设备 |
CN108376054A (zh) * | 2018-01-30 | 2018-08-07 | 北京泰尔英福网络科技有限责任公司 | 一种对标识数据进行索引的处理方法及装置 |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4701381B2 (ja) * | 2005-01-24 | 2011-06-15 | 国立大学法人 奈良先端科学技術大学院大学 | 暗号鍵生成装置、暗号鍵生成方法、暗号化データ配信装置、個別暗号鍵再生成装置、暗号化データ受信装置、暗号化データ配信システム、暗号鍵生成プログラム、および記録媒体 |
JP4599194B2 (ja) * | 2005-03-08 | 2010-12-15 | 株式会社東芝 | 復号装置、復号方法、及びプログラム |
US8156332B2 (en) * | 2007-05-29 | 2012-04-10 | Apple Inc. | Peer-to-peer security authentication protocol |
US8978155B2 (en) * | 2008-07-25 | 2015-03-10 | Brown University | Apparatus, methods, and computer program products providing dynamic provable data possession |
JP5197424B2 (ja) * | 2009-02-19 | 2013-05-15 | 三菱電機株式会社 | 通信装置及び通信方法及び通信プログラム |
US8826036B1 (en) * | 2009-10-29 | 2014-09-02 | Amazon Technologies, Inc. | Ebook encryption using variable keys |
US8396896B2 (en) | 2010-11-10 | 2013-03-12 | International Business Machines Corporation | Assigning resources to a binary tree structure |
JP5676331B2 (ja) * | 2011-03-24 | 2015-02-25 | 株式会社東芝 | ルートノード及びプログラム |
JP2012248135A (ja) | 2011-05-31 | 2012-12-13 | Sony Corp | 情報処理装置、および情報処理方法、並びにプログラム |
WO2015097834A1 (ja) * | 2013-12-26 | 2015-07-02 | 株式会社東芝 | 通信制御装置、通信制御方法およびプログラム |
CN104092537B (zh) * | 2014-07-03 | 2017-07-14 | 飞天诚信科技股份有限公司 | 一种实现密钥信息编解码的装置及其工作方法 |
WO2016067471A1 (ja) * | 2014-10-31 | 2016-05-06 | 株式会社東芝 | 通信制御装置、通信制御方法およびプログラム |
US20160232553A1 (en) * | 2015-02-05 | 2016-08-11 | Xerox Corporation | Apparatus and method for secure digital coupon verification |
US9967093B2 (en) * | 2015-03-25 | 2018-05-08 | Intel Corporation | Techniques for securing and controlling access to data |
EP3411835B1 (en) * | 2016-02-05 | 2023-07-05 | DeepMind Technologies Limited | Augmenting neural networks with hierarchical external memory |
JP7209378B2 (ja) * | 2018-12-26 | 2023-01-20 | 国立大学法人 筑波大学 | 分散データ統合装置、分散データ統合解析装置、分散データ統合方法、及びプログラム |
US11316839B2 (en) | 2019-08-19 | 2022-04-26 | Red Hat, Inc. | Proof-of-work key wrapping for temporally restricting data access |
US11411728B2 (en) | 2019-08-19 | 2022-08-09 | Red Hat, Inc. | Proof-of-work key wrapping with individual key fragments |
US11424920B2 (en) | 2019-08-19 | 2022-08-23 | Red Hat, Inc. | Proof-of-work key wrapping for cryptographically controlling data access |
US11411938B2 (en) * | 2019-08-19 | 2022-08-09 | Red Hat, Inc. | Proof-of-work key wrapping with integrated key fragments |
US11436352B2 (en) | 2019-08-19 | 2022-09-06 | Red Hat, Inc. | Proof-of-work key wrapping for restricting data execution based on device capabilities |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3888138B2 (ja) | 2001-11-16 | 2007-02-28 | 東陶機器株式会社 | 超撥水性高輝度透明材およびその製造方法 |
-
2004
- 2004-09-14 JP JP2004266477A patent/JP2006086568A/ja not_active Abandoned
-
2005
- 2005-09-09 US US11/222,638 patent/US7340054B2/en not_active Expired - Fee Related
- 2005-09-14 CN CNA2005101099087A patent/CN1753356A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102726108A (zh) * | 2010-04-06 | 2012-10-10 | 上海贝尔股份有限公司 | 在平坦反馈模式和分级反馈模式之间切换的方法和设备 |
CN102726108B (zh) * | 2010-04-06 | 2014-12-03 | 上海贝尔股份有限公司 | 在平坦反馈模式和分级反馈模式之间切换的方法和设备 |
CN108376054A (zh) * | 2018-01-30 | 2018-08-07 | 北京泰尔英福网络科技有限责任公司 | 一种对标识数据进行索引的处理方法及装置 |
CN108376054B (zh) * | 2018-01-30 | 2020-11-03 | 中国信息通信研究院 | 一种对标识数据进行索引的处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2006086568A (ja) | 2006-03-30 |
US20060059179A1 (en) | 2006-03-16 |
US7340054B2 (en) | 2008-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1753356A (zh) | 信息处理方法、解密方法、信息处理装置和计算机程序 | |
CN1774886A (zh) | 信息处理方法,解密处理方法,信息处理设备和计算机程序 | |
CN1160940C (zh) | 代码生成方法、检测方法及其设备、水印嵌入器和检测器 | |
CN1157020C (zh) | 提高了安全性的密码处理装置 | |
CN1203639C (zh) | 信息处理系统及方法 | |
CN1224909C (zh) | 数字作品保护系统 | |
CN1211975C (zh) | 信息管理系统和方法 | |
CN1959770A (zh) | 加密方法、密文解码方法、加密器、密文解码器和通信系统 | |
CN1977250A (zh) | 进行加密或解密的计算机系统和计算机程序 | |
CN1303065A (zh) | 数据库管理装置和加密/解密系统 | |
CN1531241A (zh) | 密码重构方法、分散密码重构装置及密码重构系统 | |
CN1665185A (zh) | 内容提供系统、用户系统、跟踪系统、装置及方法 | |
CN1426642A (zh) | 信息处理系统及方法 | |
CN101053200A (zh) | 信息处理设备、信息存储媒体、内容管理系统、数据处理方法、以及计算机程序 | |
CN1922643A (zh) | 加密系统、加密装置、解密装置、程序和集成电路 | |
CN101076968A (zh) | 使用拟群的密码原语、差错编码和伪随机数改进方法 | |
CN1779689A (zh) | 数据处理设备和数据处理方法 | |
CN1608361A (zh) | 数字作品保护系统、密钥管理设备和用户设备 | |
CN1961274A (zh) | 未授权内容检测系统 | |
CN1726669A (zh) | 数据分割方法和使用异或运算的装置 | |
CN1668995A (zh) | 用于改善伪随机数发生器的输出的不可预测性的方法 | |
CN1759559A (zh) | 数字作品的保护系统、记录设备、再现设备及记录介质 | |
CN1910850A (zh) | 事件顺序证明方法 | |
CN1886927A (zh) | 管理装置、终端装置及著作权保护系统 | |
CN1493996A (zh) | 基于对称密钥加密保存和检索数据 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20060329 |