CN101542966B - 信息处理装置 - Google Patents
信息处理装置 Download PDFInfo
- Publication number
- CN101542966B CN101542966B CN200780042754.1A CN200780042754A CN101542966B CN 101542966 B CN101542966 B CN 101542966B CN 200780042754 A CN200780042754 A CN 200780042754A CN 101542966 B CN101542966 B CN 101542966B
- Authority
- CN
- China
- Prior art keywords
- key
- coordinate points
- subset
- node
- directed graph
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明提供可以减少终端设备保存的密钥的数量和解码加密数据所需的计算量的信息处理设备。该信息处理设备建立由n个叶节点、一个根节点和与根节点和叶节点不同的多个中间节点组成的整个树结构,将整个树结构划分成具有n1/y个叶节点的多个基本子树,并将它分类成y层(y是log(n)的约数),以便下层的基本子树的根节点被配置成上层的基本子树的叶节点。进一步,该信息处理设备将终端设备的子集指定给每个基本子树的每个节点,并且生成建立相互连接坐标轴上的坐标点的有向枝的有向图。
Description
技术领域
本发明涉及信息处理单元、终端单元、信息处理方法、密钥生成方法及其程序。
背景技术
当今,与网络等上的内容分发有关的加密技术的发展引起人们越来越大的兴趣。尤其,安全地和有效地分发解密加密内容的加密密钥的方法引起人们特别的关注。一般说来,针对分发加密内容的一个分发者存在具有有效接收权的n个(n是2或以上的自然数)接收者,并且只有存在于网络上的无多个截取者当中的n个接收者才能解密加密内容的机制是必不可少的。进一步,因为具有有效接收权的接收者的数量n随时间而变,所以需要能够灵活应付接收者的集合的变化的机制。
更进一步,在这样机制的实现中,必然地,在分发者方面会产生与加密密钥的生成、保存和分发、内容的加密等有关的处理负担,而在接收者方面会产生与解密密钥的保存和接收、内容的解密等有关的处理负担。的确,加密分发成本的负担随着诸如信息处理设备的吞吐量、存储容量等的提高、和信息传输路径的通信速度的提高之类的各种各样最近技术发展而相应减轻。但是,由于内容分发服务的客户的数量的显著增加、和对安全得足以提防熟练的恶意截取者的加密技术的要求,由加密分发引起的处理负担随之增大。
在这样的环境下,作为使用广播信道安全地将信息传送给分发者任意选择的一组接收者的技术,人们已经提出了诸如撤销方案和广播加密方案之类的方案。广播加密方案的一个例子是公开在如下非专利文献1中的加密密钥分发方案,该方案的特征是使用现有分层树结构对密钥分发方案作出密钥导出路径方面的改进。具体地说,这种接收者的集合被认为划分成多个子集的方案通过将未包括在某个子集中的接收者加入该子集中创建一个新子集,作为重复这种方法的结果,创建一条子集链,然后导出与沿着该链的每个子集相对应的加密密钥。从而,可以减少接收者保存的密钥的数量、生成解密密钥的计算量和密钥分发的通信量。
非专利文献1:Nattapong Attrapadung and Hideki Imai,″Subset Incre-mental Chain Based Broadcast Encryption with Shorter Ciphertext″,The 28thSymposium on Information Theory and Its Application(SITA2005).
发明内容
本发明要解决的问题
按照上述非专利文献1的加密密钥分发方案与诸如按照现有技术的CD方案(完整子树方案)和SD方案(子集差分方案)之类的密钥分发方案相比具有明显的优点。但是,从打算实现的实际观点来看,存在着在接收者的数量很大的情况下,接收端上的终端单元要保存的密钥的数量和在使用解密密钥解密时所需的终端单元中的计算量仍然很大的问题。
本发明就是为了解决上面的问题而作出的,因此,本发明的目的是提供能够减少终端单元要保存的密钥的数量和解密加密数据所需的计算量的新颖和改进信息处理单元、终端单元、信息处理方法、密钥生成方法及其程序。
解决问题的手段
为了解决上面的问题,按照本发明的一个方面,提供了包括如下的信息处理单元:树结构设置部分,用于配置由n个叶节点、一个根节点和与根节点和叶节点不同的多个中间节点组成的整个二叉树,并且将整个树划分成包括n1/y个叶节点的多个基本子树,以形成y层(y是log(n)的约数)分层结构,以便下层的基本子树的根节点与上层的基本子树的叶节点一致,将比整个树的节点w低的叶节点的集合定义成Aw,在基本子树的叶节点中,将位于某个叶节点v左侧第i位置上的叶节点定义成v(-i),而将位于右侧第i位置上的叶节点定义成v(+i),关于基本子树的两个叶节点u和v(v在u的右侧),将集合(u→v)定义成{Au,Au∪Au(+1),...,Au∪...∪Av},而将集合(u←v)定义成{Av,Av∪Av(-1),...,Av∪...∪Au},当在比基本子树的节点v低的多个叶节点中,位于左端的叶节点被定义成lv′,而位于右端的叶节点被定义成rv′时,将集合(lroot′→rroot′)和集合(lroot′(+1)←rroot′)与顶层上的基本子树的根节点root相关联,将集合(lv′→rv′(-1))和集合(lv′(+1)←rv′)与除了顶层之外的其它层上的基本子树的根节点v相关联,如果每个子树的中间节点v位于它的父节点左侧,则将集合(lv′(+1)←rv′)与中间节点v相关联,而如果每个子树的中间节点v位于它的父节点右侧,则将集合(lv′→rv′(-1))与中间节点v相关联;和有向图生成部分,用于针对各个基本子树的根节点和中间节点v中的每一个,生成以从左到右增大的包含度在水平坐标轴上排列与包括在集合(lroot′→rroot′)或集合(lv′→rv′(-1))中的子集相对应的坐标点并设置连接坐标点的有向边的有向图、和/或以从右到左增大的包含度在水平坐标轴上排列与包括在集合(lroot′(+1)←rroot′)或集合(lv′(+1)←rv′)中的子集相对应的坐标点并设置连接坐标点的有向边的有向图。
进一步,有向图生成部分可以进一步包括子树间有向边设置部分,用于设置从与下层的基本子树相对应的有向图到与上层的基本子树相对应的有向图的有向边。
进一步,子树间有向边设置部分可以设置从与下层的基本子树相对应的有向图中的第一坐标点到与上层的基本子树相对应的有向图中的第二坐标点的有向边。
与第二坐标点相对应的子集可以包括与第一坐标点相对应的子集。
进一步,有向图生成部分可以包括坐标轴设置部分和有向边设置部分,坐标轴设置部分可以针对各个基本子树的根节点和中间节点v中的每一个,设置以从左到右增大的包含度排列与包括在集合(lroot′→rroot′)或集合(lv′→rv′(-1))中的子集相对应的坐标点的第一水平坐标轴、和/或包含度从右到左增大地排列与包括在集合(lroot′(+1)←rroot′)或集合(lv′(+1)←rv′)中的子集相对应的坐标点的第二水平坐标轴,另外还在第一和第二水平坐标轴每一根的左端和/或右端上总共设置至少两个临时坐标点,和有向边设置部分可以在设置了给定整数k(k是log(n1/y)的约数)和计算出满足n(x-1)/k*y<(rv′-lv′+1)≤nx/k*y的整数x之后,重复地设置从每根第一水平坐标轴上的左端坐标点开始延伸到相隔ni/(k*y)(i=0~x-1)的坐标点的向右有向边,重复地设置从每根第二水平坐标轴上的右端坐标点开始延伸到相隔ni/(k*y)(i=0~x-1)的坐标点的向左有向边,排除在第一和第二水平坐标轴的每一根上的临时坐标点上有头或有尾的所有有向边,和从到达第一和第二水平坐标轴上的每个坐标点的有向边中排除除了最长有向边之外的其它有向边。
信息处理单元可以进一步包括密钥生成部分,用于根据有向图生成加密内容或内容密钥的集合密钥(set key)。
进一步,密钥生成部分可以响应于关于与有向图中的某个坐标点相对应的子集S的中间密钥t(Si)的输入,输出与对应于该坐标点的子集Si相对应的集合密钥k(Si)、和在坐标点S上有尾的有向边的头上的坐标点S1、S2、...、Sk的中间密钥t(S1)、t(S2)、...、t(Sk)。
进一步,密钥生成部分可以响应于关于与有向图中的某个坐标点相对应的子集S的集合密钥k(S)的输入,输出在坐标点S上有尾的有向边的头上的坐标点S1、S2、...、Sk的集合密钥k(S1)、k(S2)、...、k(Sk)。
信息处理单元可以进一步包括加密部分,用于使用集合密钥加密内容或内容密钥。
信息处理单元可以进一步包括传送部分,用于将加密部分加密的内容或内容密钥传送到分别与整个树的叶节点1~n的一些或全部相关联的终端单元。
信息处理单元可以进一步包括子集确定部分,用于当整个树的叶节点1~n的子集被定义成Si时,确定允许解密使用集合密钥或内容密钥加密的内容的终端单元的集合(N\R),并确定满足集合(N\R)={S1∪S2∪...∪Sm}的m个子集S1~Sm。
进一步,子集确定部分可以确定使m的值最小的子集S1~Sm。
进一步,传送部分可以将指示集合(N\R)的信息或指示构成集合(N\R)的子集S1~Sm的信息传送到终端单元。
进一步,传送部分可以将加密部分使用分别与子集S1~Sm相对应的集合密钥加密的内容或内容密钥传送到终端单元。
进一步,为了解决上面的问题,按照本发明的另一个方面,提供了包括如下的终端单元:密钥生成部分,用于根据有向图生成解密加密内容或加密内容密钥的集合密钥,其中,有向图是通过如下步骤生成的:配置由n个叶节点、一个根节点和与根节点和叶节点不同的多个中间节点组成的整个二叉树,并且将整个树划分成包括n1/y个叶节点的多个基本子树,以形成y层(y是log(n)的约数)分层结构,以便下层的基本子树的根节点与上层的基本子树的叶节点一致,将比整个树的节点w低的叶节点的集合定义成Aw,在基本子树的叶节点中,将位于某个叶节点v左侧第i位置上的叶节点定义成v(-i),而将位于右侧第i位置上的叶节点定义成v(+i),关于基本子树的两个叶节点u和v(v在u的右侧),将集合(u→v)定义成{Au,Au∪Au(+1),...,Au∪...∪Av},而将集合(u←v)定义成{Av,Av∪Av(-1),...,Av∪...∪Au},当在比基本子树的节点v低的多个叶节点中,位于左端的叶节点被定义成lv′,而位于右端的叶节点被定义成rv′时,将集合(lroot′→rroot′)和集合(lroot′(+1)←rroot′)与顶层上的基本子树的根节点相关联,将集合(lv′→rv′(-1))和集合(lv′(+1)←rv′)与除了顶层之外的其它层上的基本子树的根节点v相关联,如果每个子树的中间节点v位于它的父节点左侧,则将集合(lv′(+1)←rv′)与中间节点v相关联,如果每个子树的中间节点v位于它的父节点右侧,则将集合(lv′→rv′(-1))与中间节点v相关联,和针对各个基本子树的根节点和中间节点v中的每一个,生成以从左到右增大的包含度在水平坐标轴上排列与包括在集合(lroot′→rroot′)或集合(lv′→rv′(-1))中的子集相对应的坐标点并设置连接坐标点的有向边的有向图、和/或以从右到左增大的包含度在水平坐标轴上排列与包括在集合(lroot′(+1)←rroot′)或集合(lv′(+1)←rv′)中的子集相对应的坐标点并设置连接坐标点的有向边的有向图。
进一步,可以设置从与下层的基本子树相对应的有向图到与上层的基本子树相对应的有向图的有向边。
进一步,可以设置从与下层的基本子树相对应的有向图中的第一坐标点到与上层的基本子树相对应的有向图中的第二坐标点的有向边,和与第二坐标点相对应的子集可以包括与第一坐标点相对应的子集。
终端单元可以进一步包括解密部分,用于使用密钥生成部分生成的集合密钥解密加密内容或加密内容密钥。
进一步,密钥生成部分可以响应于关于与有向图中的某个坐标点相对应的子集S的中间密钥t(Si)的输入,输出与对应于该坐标点的子集S相对应的集合密钥k(Si)、和与在坐标点S上有尾的有向边的头上的坐标点相对应的子集S1、S2、...、Sk的中间密钥t(S1)、t(S2)、...、t(Sk)。
进一步,密钥生成部分可以响应于关于与有向图中的某个坐标点相对应的子集S的集合密钥k(S)的输入,输出在坐标点S上有尾的有向边的头上的坐标点S1、S2、...、Sk的集合密钥k(S1)、k(S2)、...、k(Sk)。
进一步,解密部分可以使用集合密钥解密加密内容密钥,并使用解密内容密钥解密加密内容。
进一步,终端单元可以包括接收部分,用于当确定了允许解密使用集合密钥或内容密钥加密的内容的终端单元的集合(N\R),并确定了满足集合(N\R)={S1∪S2∪...∪Sm}的m个子集S1~Sm时,接收指示集合(N\R)的信息或指示构成集合(N\R)的子集S1~Sm的信息,其中,整个树的叶节点1~n的子集被定义成Si;和判定部分,用于根据接收信息判定终端单元是否属于子集S1~Sm的某一个,并且根据判定结果判定是否允许解密加密内容。
终端单元可以进一步包括解密部分,用于使用密钥生成部分生成的集合密钥解密加密内容或加密内容密钥,和当判定部分判定终端单元属于子集S1~Sm的某一个时,解密部分可以使用集合密钥解密加密内容或加密内容密钥。
进一步,为了解决上面的问题,按照本发明的另一个方面,提供了包括如下步骤的信息处理方法:配置由n个叶节点、一个根节点和与根节点和叶节点不同的多个中间节点组成的整个二叉树,并且将整个树划分成包括n1/y个叶节点的多个基本子树,以形成y层(y是log(n)的约数)分层结构,以便下层的基本子树的根节点与上层的基本子树的叶节点一致;将比整个树的节点w低的叶节点的集合定义成Aw,在基本子树的叶节点中,将位于某个叶节点v左侧第i位置上的叶节点定义成v(-i),而将位于右侧第i位置上的叶节点定义成v(+i),关于基本子树的两个叶节点u和v(v在u的右侧),将集合(u→v)定义成{Au,Au∪Au(+l),...,Au∪...∪Av},而将集合(u←v)定义成{Av,Av∪Av(-1),...,Av∪...∪Au},当在比基本子树的节点v低的多个叶节点中,位于左端的叶节点被定义成lv′,而位于右端的叶节点被定义成rv′时,将集合(lroot′→rroot′)和集合(lroot′(+1)←rroot′)与顶层上的基本子树的根节点root相关联,将集合(lv′→rv′(-1))和集合(lv′(+1)←rv′)与除了顶层之外的其它层上的基本子树的根节点v相关联,如果每个子树的中间节点v位于它的父节点左侧,则将集合(lv′(+1)←rv′)与中间节点v相关联,而如果每个子树的中间节点v位于它的父节点右侧,则将集合(lv′→rv′(-1))与中间节点v相关联;和针对各个基本子树的根节点和中间节点v中的每一个,生成以从左到右增大的包含度在水平坐标轴上排列与包括在集合(lroot′→rroot′)或集合(lv′→rv′(-1))中的子集相对应的坐标点并设置连接坐标点的有向边的有向图、和/或以从右到左增大的包含度在水平坐标轴上排列与包括在集合(lroot′(+1)←rroot′)或集合(lv′(+1)←rv′)中的子集相对应的坐标点并设置连接坐标点的有向边的有向图。
进一步,为了解决上面的问题,按照本发明的另一个方面,提供了根据有向图生成解密加密内容或加密内容密钥的集合密钥的密钥生成方法,其中,有向图是通过如下步骤获得的:配置由n个叶节点、一个根节点和与根节点和叶节点不同的多个中间节点组成的整个二叉树,并且将整个树划分成包括n1/y个叶节点的多个基本子树,以形成y层(y是log(n)的约数)分层结构,以便下层的基本子树的根节点与上层的基本子树的叶节点一致,将比整个树的节点w低的叶节点的集合定义成Aw,在基本子树的叶节点中,将位于某个叶节点v左侧第i位置上的叶节点定义成v(-i),而将位于右侧第i位置上的叶节点定义成v(+i),关于基本子树的两个叶节点u和v(v在u的右侧),将集合(u→v)定义成{Au,Au∪Au(+1),...,Au∪...∪Av},而将集合(u←v)定义成{Av,Av∪Av(-1),...,Av∪...∪Au},当在比基本子树的节点v低的多个叶节点中,位于左端的叶节点被定义成lv′,而位于右端的叶节点被定义成rv′时,将集合(lroot′→rroot′)和集合(lroot′(+1)←rroot′)与顶层上的基本子树的根节root点相关联,将集合(lv′→rv′(-1))和集合(lv′(+1)←rv′)与除了顶层之外的其它层上的基本子树的根节点v相关联,如果每个子树的中间节点v位于它的父节点左侧,则将集合(lv′(+1)←rv′)与中间节点v相关联,如果每个子树的中间节点v位于它的父节点右侧,则将集合(lv′→rv′(-1))与中间节点v相关联,和针对各个基本子树的根节点和中间节点v中的每一个,生成以从左到右增大的包含度在水平坐标轴上排列与包括在集合(lroot′→rroot′)或集合(lv′→rv′(-1))中的子集相对应的坐标点并设置连接坐标点的有向边的有向图、和/或以从右到左增大的包含度在水平坐标轴上排列与包括在集合(lroot′(+1)←rroot′)或集合(lv′(+1)←rv′)中的子集相对应的坐标点并设置连接坐标点的有向边的有向图。
进一步,为了解决上面的问题,按照本发明的另一个方面,提供了使计算机执行包括如下步骤的处理的程序:配置由n个叶节点、一个根节点和与根节点和叶节点不同的多个中间节点组成的整个二叉树,并且将整个树划分成包括n1/y个叶节点的多个基本子树,以形成y层(y是log(n)的约数)分层结构,以便下层的基本子树的根节点与上层的基本子树的叶节点一致;将比整个树的节点w低的叶节点的集合定义成Aw,在基本子树的叶节点中,将位于某个叶节点v左侧第i位置上的叶节点定义成v(-i),而将位于右侧第i位置上的叶节点定义成v(+i),关于基本子树的两个叶节点u和v(v在u的右侧),将集合(u→v)定义成{Au,Au∪Au(+1),...,Au∪...∪Av},而将集合(u←v)定义成{Av,Av∪Av(-1),...,Av∪...∪Au},当在比基本子树的节点v低的多个叶节点中,位于左端的叶节点被定义成lv′,而位于右端的叶节点被定义成rv′时,将集合(lroot′→rroot′)和集合(lroot′(+1)←rroot′)与顶层上的基本子树的根节点root相关联,将集合(lv′→rv′(-1))和集合(lv′(+1)←rv′)与除了顶层之外的其它层上的基本子树的根节点v相关联,如果每个子树的中间节点v位于它的父节点左侧,则将集合(lv′(+1)←rv′)与中间节点v相关联,而如果每个子树的中间节点v位于它的父节点右侧,则将集合(lv′→rv′(-1))与中间节点v相关联;和针对各个基本子树的根节点和中间节点v中的每一个,生成以从左到右增大的包含度在水平坐标轴上排列与包括在集合(lroot′→rroot′)或集合(lv′→rv′(-1))中的子集相对应的坐标点并设置连接坐标点的有向边的有向图、和/或以从右到左增大的包含度在水平坐标轴上排列与包括在集合(lroot′(+1)←rroot′)或集合(lv′(+1)←rv′)中的子集相对应的坐标点并设置连接坐标点的有向边的有向图。
进一步,为了解决上面的问题,按照本发明的另一个方面,提供了使计算机执行根据有向图生成解密加密内容或加密内容密钥的集合密钥的步骤的程序,其中,有向图是通过如下步骤获得的:配置由n个叶节点、一个根节点和与根节点和叶节点不同的多个中间节点组成的整个二叉树,并且将整个树划分成包括n1/y个叶节点的多个基本子树,以形成y层(y是log(n)的约数)分层结构,以便下层的基本子树的根节点与上层的基本子树的叶节点一致,将比整个树的节点w低的叶节点的集合定义成Aw,在基本子树的叶节点中,将位于某个叶节点v左侧第i位置上的叶节点定义成v(-i),而将位于右侧第i位置上的叶节点定义成v(+i),关于基本子树的两个叶节点u和v(v在u的右侧),将集合(u→v)定义成{Au,Au∪Au(+1),...,Au∪...∪Av},而将集合(u←v)定义成{Av,Av∪Av(-1),...,Av∪...∪Au},当在比基本子树的节点v低的多个叶节点中,位于左端的叶节点被定义成lv′,而位于右端的叶节点被定义成rv′时,将集合(lroot′→rroot′)和集合(lroot′(+1)←rroot′)与顶层上的基本子树的根节root点相关联,将集合(lv′→rv′(-1))和集合(lv′(+1)←rv′)与除了顶层之外的其它层上的基本子树的根节点v相关联,如果每个子树的中间节点v位于它的父节点左侧,则将集合(lv′(+1)←rv′)与中间节点v相关联,如果每个子树的中间节点v位于它的父节点右侧,则将集合(lv′→rv′(-1))与中间节点v相关联,和针对各个基本子树的根节点和中间节点v中的每一个,生成以从左到右增大的包含度在水平坐标轴上排列与包括在集合(lroot′→rroot′)或集合(lv′→rv′(-1))中的子集相对应的坐标点并设置连接坐标点的有向边的有向图、和/或以从右到左增大的包含度在水平坐标轴上排列与包括在集合(lroot′(+1)←rroot′)或集合(lv′(+1)←rv′)中的子集相对应的坐标点并设置连接坐标点的有向边的有向图。
为了解决上面的问题,按照本发明的一个方面,提供了包括如下的信息处理单元:有向图获取部分,用于获取由多条有向边组成的有向图,以便构成有向图的最长有向边的一个尾部与有向图的尾部一致;和密钥生成部分,用于根据有向图获取部分获取的有向图生成加密或解密内容或内容密钥的集合密钥。
进一步,为了解决上面的问题,按照本发明的一个方面,提供了处理临时有向图的信息处理单元,临时有向图是对于给定整数k,按照满足n(x-1)/k<(rv-lv+1)≤nx/k的自然数x,在第一到第四水平坐标轴上排列长度为ni/k(i=0、1、...、x-1)的多条有向边形成的,在由指定号码1~n(n是自然数)的n个叶节点、一个根节点和与根节点和叶节点不同的多个中间节点组成的二叉树中,其中,在比某个中间节点v或某个根节点v低的多个叶节点中,将指定给位于左端的叶节点的号码定义成lv,而将指定给位于右端的叶节点的号码定义成rv,对于自然数i和j(i≤j),假设将集合(i→j)表示成{{i},{i,i+1},...,{i,i+1,...,j-1,j}},而将集合(i←j)表示成{{j},{j,j-1},...,{j,j-1,...,i+1,i}},设置与根节点相关联和含有分别与包括在集合(1→n)中的子集相关联和以从左到右增大的包含度排列在水平坐标轴上的坐标点的第一水平坐标轴,设置与根节点相关联和含有分别与包括在集合(2←n)中的子集相关联和以从右到左增大的包含度排列在水平坐标轴上的坐标点的第二水平坐标轴,对于每个中间节点,设置与某个中间节点v相关联和含有分别与包括在集合(lv→rv-1)中的子集相关联和以从左到右增大的包含度排列在水平坐标轴上的坐标点的第三水平坐标轴,并设置与某个中间节点v相关联和含有分别与包括在集合(lv+1←rv)中的子集相关联和以从右到左增大的包含度排列在水平坐标轴上的坐标点的第四水平坐标轴,和该信息处理单元包括临时有向图获取部分,用于获取临时有向图;有向图生成部分,用于通过留下构成临时有向图获取部分获取的临时有向图的多条有向边当中的较长有向边,生成有向图;和密钥生成部分,用于根据有向图生成加密内容或内容密钥的集合密钥。
进一步,为了解决上面的问题,按照本发明的一个方面,提供了包括如下的信息处理单元:树结构设置部分,用于配置由指定号码1~n(n是自然数)的n个叶节点、一个根节点和与根节点和叶节点不同的多个中间节点组成的二叉树,对于自然数i和j(i≤j),将集合(i→j)定义成{{i},{i,i+1},...,{i,i+1,...,j-1,j}},而将集合(i←j)定义成{{j},{j,j-1},...,{j,j-1,...,i+1,i}},和在比某个中间节点v或某个根节点v低的多个叶节点中,将指定给位于左端的叶节点的号码设置成lv,而将指定给位于右端的叶节点的号码设置成rv;坐标轴设置部分,用于设置与根节点相关联和含有分别与包括在集合(1→n)中的子集相关联和以从左到右增大的包含度排列在水平坐标轴上的坐标点的第一水平坐标轴,与根节点相关联和含有分别与包括在集合(2←n)中的子集相关联和以从右到左增大的包含度排列在水平坐标轴上的坐标点的第二水平坐标轴,对于每个中间节点,与某个中间节点v相关联和含有分别与包括在集合(lv→rv-1)中的子集相关联和以从左到右增大的包含度排列在水平坐标轴上的坐标点的第三水平坐标轴,和与某个中间节点v相关联和含有分别与包括在集合(lv+1←rv)中的子集相关联和以从右到左增大的包含度排列在水平坐标轴上的坐标点的第四水平坐标轴,放置每一个在位于第三水平坐标轴右端的坐标点的右侧和在位于第二和第四水平坐标轴左端的坐标点的左侧上的两个临时坐标点,并且将位于第一水平坐标轴右端的坐标点设置成第一临时坐标点和将第二临时坐标点放置在第一临时坐标点的右边;和有向图生成部分,用于通过如下步骤生成分别与集合(1→n-1)、集合(2←n)、集合(lv+1→rv)和集合(lv←rv-1)有关的有向图:设置给定整数k,计算满足n(x-1)/k<(rv-lv+1)≤nx/k的整数x,和对于整数i=0~x-1中的每一个,通过耦合长度为ni/k的一条或多条向右有向边,形成在第一和第三水平坐标轴上的最左坐标点上有尾的有向路径,通过耦合长度为ni/k的一条或多条向左有向边,形成在第二和第四水平坐标轴上的最右坐标点上有尾的有向路径,排除在第一到第四水平坐标轴的每一根上的临时坐标点上有尾或有头的所有有向边,并且从到达第一到第四水平坐标轴上的每个坐标点的有向边中排除除了最长有向边之外的其它有向边,和通过将在第一水平坐标轴上的第一临时坐标点上有头的长度为1的有向边加入与集合(1→n-1)有关的有向图中,生成与集合(1→n)有关的有向图。
如上所述,使用中间密钥和集合密钥的加密密钥分发方案能够根据上述有向图分发中间密钥和生成集合密钥,从而不会使每个用户保存的密钥的数量增加地能够减小每个用户(终端单元)在解密分发的加密信息时生成解密密钥所需的计算量的最差值。
进一步,信息处理单元可以包括密钥生成部分,用于根据有向图生成加密内容或内容密钥的集合密钥。
进一步,密钥生成部分可以响应于关于与有向图中的某个坐标点相对应的子集S的中间密钥t(Si)的输入,输出与对应于该坐标点的子集S相对应的集合密钥k(Si)、和在坐标点S上有尾的有向边的头上的坐标点S1、S2、...、Sk的中间密钥t(S1)、t(S2)、...、t(Sk)。
进一步,密钥生成部分可以响应于关于与有向图中的某个坐标点相对应的子集S的集合密钥k(S)的输入,输出在坐标点S上有尾的有向边的头上的坐标点S1、S2、...、Sk的集合密钥k(S1)、k(S2)、...、k(Sk)。
进一步,密钥生成部分可以包括初始中间密钥设置部分,用于将给定随机数设置成与每个有向图的尾部相对应的中间密钥。
进一步,信息处理单元可以包括加密部分,用于使用集合密钥加密内容或内容密钥。
进一步,信息处理单元可以包括传送部分,用于将加密部分加密的内容或内容密钥传送到分别与构成给定二叉树的叶节点1~n(n是自然数)的一些或全部相关联的终端单元。
进一步,信息处理单元可以包括子集确定部分,用于将叶节点1~n的子集被定义成Si,确定允许解密使用集合密钥或内容密钥加密的内容的终端单元的集合(N\R),并确定满足集合(N\R)={S1∪S2∪...∪Sm}的m个子集S1~Sm。
进一步,子集确定部分可以确定使m的值最小的子集S1~Sm。
进一步,信息处理单元可以包括传送部分,用于将指示集合(N\R)的信息或指示构成集合(N\R)的子集S1~Sm的信息传送到终端单元。
信息处理单元可以进一步包括解密部分,用于使用集合密钥解密内容或内容密钥。
信息处理单元可以进一步包括与构成给定二叉树的一个或多个叶节点1~n(n是自然数)相关联的接收部分,用于接收使用集合密钥加密的内容或内容密钥。
接收部分接收到的加密内容或加密内容密钥可以通过与定义成叶节点1~n的子集的集合Si中作为包括与自身相关联的叶节点的集合S的元素的叶节点相关联的一个或多个信息处理单元解密。
进一步,为了解决上面的问题,按照本发明的另一个方面,提供了包括如下的终端单元:密钥生成部分,用于根据有向图生成解密内容或内容密钥的集合密钥。有向图是通过如下步骤生成的:配置由指定号码1~n(n是自然数)的n个叶节点、一个根节点和与根节点和叶节点不同的多个中间节点组成的二叉树,对于自然数i和j(i≤j),将集合(i→j)定义成{{i},{i,i+1},...,{i,i+1,...,j-1,j}},而将集合(i←j)定义成{{j},{j,j-1},...,{j,j-1,...,i+1,i}},和在比某个中间节点v或某个根节点v低的多个叶节点中,将指定给位于左端的叶节点的号码设置成lv,而将指定给位于右端的叶节点的号码设置成rv,设置与根节点相关联和含有分别与包括在集合(1→n)中的子集相关联和以从左到右增大的包含度排列在水平坐标轴上的坐标点的第一水平坐标轴,与根节点相关联和含有分别与包括在集合(2←n)中的子集相关联和以从右到左增大的包含度排列在水平坐标轴上的坐标点的第二水平坐标轴,对于每个中间节点,与某个中间节点v相关联和含有分别与包括在集合(lv→rv-1)中的子集相关联和以从左到右增大的包含度排列在水平坐标轴上的坐标点的第三水平坐标轴,和与某个中间节点v相关联和含有分别与包括在集合(lv+1←rv)中的子集相关联和以从右到左增大的包含度排列在水平坐标轴上的坐标点的第四水平坐标轴,放置每一个在位于第三水平坐标轴右端的坐标点的右侧和在位于第二和第四水平坐标轴左端的坐标点的左侧上的两个临时坐标点,将位于第一水平坐标轴右端的坐标点设置成第一临时坐标点和将第二临时坐标点放置在第一临时坐标点的右边,通过如下步骤生成分别与集合(1→n-1)、集合(2←n)、集合(lv+1→rv)和集合(lv←rv-1)有关的有向图:设置给定整数k,计算满足n(x-1)/k<(rv-lv+1)≤nx/k的整数x,和对于整数i=0~x-1中的每一个,通过耦合长度为ni/k的一条或多条向右有向边,形成在第一和第三水平坐标轴上的最左坐标点上有尾的有向路径,通过耦合长度为ni/k的一条或多条向左有向边,形成在第二和第四水平坐标轴上的最右坐标点上有尾的有向路径,排除在第一到第四水平坐标轴的每一根上的临时坐标点上有尾或有头的所有有向边,并且从到达第一到第四水平坐标轴上的每个坐标点的有向边中排除除了最长有向边之外的其它有向边,和通过将在第一水平坐标轴上的第一临时坐标点上有头的长度为1的有向边加入与集合(1→n-1)有关的有向图中,生成与集合(1→n)有关的有向图。
如上所述,使用中间密钥和集合密钥的加密密钥分发方案能够根据上述有向图分发中间密钥和生成集合密钥,从而不会使每个用户保存的密钥的数量增加地能够减小每个用户(终端单元)在解密分发的加密信息时生成解密密钥所需的计算量的最差值。
进一步,终端单元可以包括解密部分,用于使用集合密钥解密加密内容或加密内容密钥。
进一步,密钥生成部分可以响应于关于与有向图中的某个坐标点相对应的子集S的中间密钥t(S)的输入,输出与对应于该坐标点的子集S相对应的集合密钥k(S)、和与在坐标点S上有尾的有向边的头上的坐标点相对应的子集S1、S2、...、Sk的中间密钥t(S1)、t(S2)、...、t(Sk)。
进一步,密钥生成部分可以响应于关于与有向图中的某个坐标点相对应的子集S的集合密钥k(S)的输入,输出在坐标点S上有尾的有向边的头上的坐标点S1、S2、...、Sk的集合密钥k(S1)、k(S2)、...、k(Sk)。
进一步,解密部分可以使用集合密钥解密加密内容密钥,并使用解密内容密钥解密加密内容。
进一步,当树的叶节点1~n的子集被定义成Si时,并且在确定了允许解密使用集合密钥或内容密钥加密的内容的终端单元的集合(N\R),确定了满足集合(N\R)={S1∪S2∪...∪Sm}的m个子集S1~Sm,和接收到指示集合(N\R)的信息或指示构成集合(N\R)的子集S1~Sm的信息的情况下,终端单元可以包括判定部分,用于根据接收信息判定终端单元是否属于子集S1~Sm的某一个,并且根据判定结果判定是否允许解密加密内容。
进一步,当判定终端单元属于子集S1~Sm的某一个时,解密部分可以使用与终端单元所属的子集相对应的集合密钥解密内容或内容密钥。
进一步,为了解决上面的问题,按照本发明的又一个方面,提供了包括如下步骤的信息处理方法:有向图获取步骤,用于获取通过在由多条有向边组成的有向图中,留下构成临时有向图的多条有向边当中的较长有向边而生成的有向图;和密钥生成步骤,用于根据通过有向图获取步骤获取的有向图生成加密或解密内容或内容密钥的集合密钥。
进一步,为了解决上面的问题,按照本发明的又一个方面,提供了处理临时有向图的信息处理方法,临时有向图是对于给定整数k,按照满足n(x-1)/k<(rv-lv+1)≤nx/k的自然数x,在第一到第四水平坐标轴上排列长度为ni/k(i=0、1、...、x-1)的多条有向边形成的,在由指定号码1~n(n是自然数)的n个叶节点、一个根节点和与根节点和叶节点不同的多个中间节点组成的二叉树中,其中,在比某个中间节点v或某个根节点v低的多个叶节点中,将指定给位于左端的叶节点的号码定义成lv,而将指定给位于右端的叶节点的号码定义成rv,对于自然数i和j(i≤j),假设将集合(i→j)表示成{{i},{i,i+1},...,{i,i+1,...,j-1,j}},而将集合(i←j)表示成{{j},{j,j-1},...,{j,j-1,...,i+1,i}},设置与根节点相关联和含有分别与包括在集合(1→n)中的子集相关联和以从左到右增大的包含度排列在水平坐标轴上的坐标点的第一水平坐标轴,设置与根节点相关联和含有分别与包括在集合(2←n)中的子集相关联和以从右到左增大的包含度排列在水平坐标轴上的坐标点的第二水平坐标轴,对于每个中间节点,设置与某个中间节点v相关联和含有分别与包括在集合(lv→rv-1)中的子集相关联和以从左到右增大的包含度排列在水平坐标轴上的坐标点的第三水平坐标轴,并设置与某个中间节点v相关联和含有分别与包括在集合(lv+1←rv)中的子集相关联和以从右到左增大的包含度排列在水平坐标轴上的坐标点的第四水平坐标轴,和该信息处理方法包括临时有向图获取步骤,用于获取临时有向图;有向图生成步骤,用于通过留下构成临时有向图获取部分获取的临时有向图的多条有向边当中的较长有向边,生成有向图;和密钥生成步骤,用于根据有向图生成加密内容或内容密钥的集合密钥。
进一步,为了解决上面的问题,按照本发明的又一个方面,提供了包括如下步骤的信息处理方法:树结构设置步骤,用于配置由指定号码1~n(n是自然数)的n个叶节点、一个根节点和与根节点和叶节点不同的多个中间节点组成的二叉树,对于自然数i和j(i≤j),将集合(i→j)定义成{{i},{i,i+1},...,{i,i+1,...,j-1,j}},而将集合(i←j)定义成{{j},{j,j-1},...,{j,j-1,...,i+1,i}},和在比某个中间节点v或某个根节点v低的多个叶节点中,将指定给位于左端的叶节点的号码设置成lv,而将指定给位于右端的叶节点的号码设置成rv;坐标轴设置步骤,用于设置与根节点相关联和含有分别与包括在集合(1→n)中的子集相关联和以从左到右增大的包含度排列在水平坐标轴上的坐标点的第一水平坐标轴,与根节点相关联和含有分别与包括在集合(2←n)中的子集相关联和以从右到左增大的包含度排列在水平坐标轴上的坐标点的第二水平坐标轴,对于每个中间节点,与某个中间节点v相关联和含有分别与包括在集合(lv→rv-1)中的子集相关联和以从左到右增大的包含度排列在水平坐标轴上的坐标点的第三水平坐标轴,和与某个中间节点v相关联和含有分别与包括在集合(lv+1←rv)中的子集相关联和以从右到左增大的包含度排列在水平坐标轴上的坐标点的第四水平坐标轴,放置每一个在位于第三水平坐标轴右端的坐标点的右侧和在位于第二和第四水平坐标轴左端的坐标点的左侧上的两个临时坐标点,并且将位于第一水平坐标轴右端的坐标点设置成第一临时坐标点和将第二临时坐标点放置在第一临时坐标点的右边;和有向图生成步骤,用于通过如下步骤生成分别与集合(1→n-1)、集合(2←n)、集合(lv+1→rv)和集合(lv←rv-1)有关的有向图:设置给定整数k,计算满足n(x-1)/k<(rv-lv+1)≤nx/k的整数x,和对于整数i=0~x-1中的每一个,通过耦合长度为ni/k的一条或多条向右有向边,形成在第一和第三水平坐标轴上的最左坐标点上有尾的有向路径,通过耦合长度为ni/k的一条或多条向左有向边,形成在第二和第四水平坐标轴上的最右坐标点上有尾的有向路径,排除在第一到第四水平坐标轴的每一根上的临时坐标点上有尾或有头的所有有向边,并且从到达第一到第四水平坐标轴上的每个坐标点的有向边中排除除了最长有向边之外的其它有向边,和通过将在第一水平坐标轴上的第一临时坐标点上有头的长度为1的有向边加入与集合(1→n-1)有关的有向图中,生成与集合(1→n)有关的有向图。
如上所述,使用中间密钥和集合密钥的加密密钥分发方案能够根据上述有向图分发中间密钥和生成集合密钥,从而不会使每个用户保存的密钥的数量增加地能够减小每个用户(终端单元)在解密分发的加密信息时生成解密密钥所需的计算量的最差值。
进一步,为了解决上面的问题,按照本发明的再一个方面,提供了包括如下步骤的密钥生成方法:密钥生成步骤,用于根据有向图生成解密内容或内容密钥的集合密钥。有向图是通过如下步骤生成的:配置由指定号码1~n(n是自然数)的n个叶节点、一个根节点和与根节点和叶节点不同的多个中间节点组成的二叉树,对于自然数i和j(i≤j),将集合(i→j)定义成{{i},{i,i+1},...,{i,i+1,...,j-1,j}},而将集合(i←j)定义成{{j},{j,j-1},...,{j,j-1,...,i+1,i}},和在比某个中间节点v或某个根节点v低的多个叶节点中,将指定给位于左端的叶节点的号码设置成lv,而将指定给位于右端的叶节点的号码设置成rv,设置与根节点相关联和含有分别与包括在集合(1→n)中的子集相关联和以从左到右增大的包含度排列在水平坐标轴上的坐标点的第一水平坐标轴,与根节点相关联和含有分别与包括在集合(2←n)中的子集相关联和以从右到左增大的包含度排列在水平坐标轴上的坐标点的第二水平坐标轴,对于每个中间节点,与某个中间节点v相关联和含有分别与包括在集合(lv→rv-1)中的子集相关联和以从左到右增大的包含度排列在水平坐标轴上的坐标点的第三水平坐标轴,和与某个中间节点v相关联和含有分别与包括在集合(lv+1←rv)中的子集相关联和以从右到左增大的包含度排列在水平坐标轴上的坐标点的第四水平坐标轴,放置每一个在位于第三水平坐标轴右端的坐标点的右侧和在位于第二和第四水平坐标轴左端的坐标点的左侧上的两个临时坐标点,将位于第一水平坐标轴右端的坐标点设置成第一临时坐标点和将第二临时坐标点放置在第一临时坐标点的右边,通过如下步骤生成分别与集合(1→n-1)、集合(2←n)、集合(lv+1→rv)和集合(lv←rv-1)有关的有向图:设置给定整数k,计算满足n(x-1)/k<(rv-lv+1)≤nx/k的整数x,和对于整数i=0~x-1中的每一个,通过耦合长度为ni/k的一条或多条向右有向边,形成在第一和第三水平坐标轴上的最左坐标点上有尾的有向路径,通过耦合长度为ni/k的一条或多条向左有向边,形成在第二和第四水平坐标轴上的最右坐标点上有尾的有向路径,排除在第一到第四水平坐标轴的每一根上的临时坐标点上有尾或有头的所有有向边,并且从到达第一到第四水平坐标轴上的每个坐标点的有向边中排除除了最长有向边之外的其它有向边,和通过将在第一水平坐标轴上的第一临时坐标点上有头的长度为1的有向边加入与集合(1→n-1)有关的有向图中,生成与集合(1→n)有关的有向图。
如上所述,使用中间密钥和集合密钥的加密密钥分发方案能够根据上述有向图分发中间密钥和生成集合密钥,从而不会使每个用户保存的密钥的数量增加地能够减小每个用户(终端单元)在解密分发的加密信息时生成解密密钥所需的计算量的最差值。
进一步,为了解决上面的问题,按照本发明的又一个方面,提供了使计算机实现如下功能的程序:树结构设置功能,用于配置由指定号码1~n(n是自然数)的n个叶节点、一个根节点和与根节点和叶节点不同的多个中间节点组成的二叉树,对于自然数i和j(i≤j),将集合(i→j)定义成{{i},{i,i+1},...,{i,i+1,...,j-1,j}},而将集合(i←j)定义成{{j},{j,j-1},...,{j,j-1,...,i+1,i}},和在比某个中间节点v或某个根节点v低的多个叶节点中,将指定给位于左端的叶节点的号码设置成lv,而将指定给位于右端的叶节点的号码设置成rv;坐标轴设置功能,用于设置与根节点相关联和含有分别与包括在集合(1→n)中的子集相关联和以从左到右增大的包含度排列在水平坐标轴上的坐标点的第一水平坐标轴,与根节点相关联和含有分别与包括在集合(2←n)中的子集相关联和以从右到左增大的包含度排列在水平坐标轴上的坐标点的第二水平坐标轴,对于每个中间节点,与某个中间节点v相关联和含有分别与包括在集合(lv→rv-1)中的子集相关联和以从左到右增大的包含度排列在水平坐标轴上的坐标点的第三水平坐标轴,和与某个中间节点v相关联和含有分别与包括在集合(lv+1←rv)中的子集相关联和以从右到左增大的包含度排列在水平坐标轴上的坐标点的第四水平坐标轴,放置每一个在位于第三水平坐标轴右端的坐标点的右侧和在位于第二和第四水平坐标轴左端的坐标点的左侧上的两个临时坐标点,并且将位于第一水平坐标轴右端的坐标点设置成第一临时坐标点和将第二临时坐标点放置在第一临时坐标点的右边;和有向图生成功能,用于通过如下步骤生成分别与集合(1→n-1)、集合(2←n)、集合(lv+1→rv)和集合(lv←rv-1)有关的有向图:设置给定整数k,计算满足n(x-1)/k<(rv-lv+1)≤nx/k的整数x,和对于整数i=0~x-1中的每一个,通过耦合长度为ni/k的一条或多条向右有向边,形成在第一和第三水平坐标轴上的最左坐标点上有尾的有向路径,通过耦合长度为ni/k的一条或多条向左有向边,形成在第二和第四水平坐标轴上的最右坐标点上有尾的有向路径,排除在第一到第四水平坐标轴的每一根上的临时坐标点上有尾或有头的所有有向边,并且从到达第一到第四水平坐标轴上的每个坐标点的有向边中排除除了最长有向边之外的其它有向边,和通过将在第一水平坐标轴上的第一临时坐标点上有头的长度为1的有向边加入与集合(1→n-1)有关的有向图中,生成与集合(1→n)有关的有向图。
如上所述,使用中间密钥和集合密钥的加密密钥分发方案能够根据上述有向图分发中间密钥和生成集合密钥,从而不会使每个用户保存的密钥的数量增加地能够减小每个用户(终端单元)在解密分发的加密信息时生成解密密钥所需的计算量的最差值。
进一步,为了解决上面的问题,按照本发明的再一个方面,提供了使计算机实现如下功能的程序:密钥生成功能,用于根据有向图生成解密内容或内容密钥的集合密钥。有向图是通过如下步骤生成的:配置由指定号码1~n(n是自然数)的n个叶节点、一个根节点和与根节点和叶节点不同的多个中间节点组成的二叉树,对于自然数i和j(i≤j),将集合(i→j)定义成{{i},{i,i+1},...,{i,i+1,...,j-1,j}},而将集合(i←j)定义成{{j},{j,j-1},...,{j,j-1,...,i+1,i}},和在比某个中间节点v或某个根节点v低的多个叶节点中,将指定给位于左端的叶节点的号码设置成lv,而将指定给位于右端的叶节点的号码设置成rv,设置与根节点相关联和含有分别与包括在集合(1→n)中的子集相关联和以从左到右增大的包含度排列在水平坐标轴上的坐标点的第一水平坐标轴,与根节点相关联和含有分别与包括在集合(2←n)中的子集相关联和以从右到左增大的包含度排列在水平坐标轴上的坐标点的第二水平坐标轴,对于每个中间节点,与某个中间节点v相关联和含有分别与包括在集合(lv→rv-1)中的子集相关联和以从左到右增大的包含度排列在水平坐标轴上的坐标点的第三水平坐标轴,和与某个中间节点v相关联和含有分别与包括在集合(lv+1←rv)中的子集相关联和以从右到左增大的包含度排列在水平坐标轴上的坐标点的第四水平坐标轴,放置每一个在位于第三水平坐标轴右端的坐标点的右侧和在位于第二和第四水平坐标轴左端的坐标点的左侧上的两个临时坐标点,将位于第一水平坐标轴右端的坐标点设置成第一临时坐标点和将第二临时坐标点放置在第一临时坐标点的右边,通过如下步骤生成分别与集合(1→n-1)、集合(2←n)、集合(lv+1→rv)和集合(lv←rv-1)有关的有向图:设置给定整数k,计算满足n(x-1)/k<(rv-lv+1)≤nx/k的整数x,和对于整数i=0~x-1中的每一个,通过耦合长度为ni/k的一条或多条向右有向边,形成在第一和第三水平坐标轴上的最左坐标点上有尾的有向路径,通过耦合长度为ni/k的一条或多条向左有向边,形成在第二和第四水平坐标轴上的最右坐标点上有尾的有向路径,排除在第一到第四水平坐标轴的每一根上的临时坐标点上有尾或有头的所有有向边,并且从到达第一到第四水平坐标轴上的每个坐标点的有向边中排除除了最长有向边之外的其它有向边,和通过将在第一水平坐标轴上的第一临时坐标点上有头的长度为1的有向边加入与集合(1→n-1)有关的有向图中,生成与集合(1→n)有关的有向图。
如上所述,使用中间密钥和集合密钥的加密密钥分发方案能够根据上述有向图分发中间密钥和生成集合密钥,从而不会使每个用户保存的密钥的数量增加地能够减小每个用户(终端单元)在解密分发的加密信息时生成解密密钥所需的计算量的最差值。
本发明的优点
如上所述,按照本发明,可以减少接收端上的终端单元要保存的密钥的数量、和解密加密数据所需的计算量。
附图说明
图1是示出按照本发明一个实施例的加密密钥分发***的说明图;
图2是示出按照该实施例的密钥分发服务器和终端单元的硬件配置的方块图;
图3是示出按照基本方案的二叉树结构的说明图;
图4是示出按照基本方案的有向图的说明图;
图5是示出按照基本方案的有向图计算方法的流程图;
图6是示出按照基本方案的内容密钥分发方法的流程图;
图7是示出按照基本方案的集合密钥生成方法的流程图;
图8是示出按照本发明第一实施例的密钥分发服务器和终端单元的功能配置的方块图;
图9是示出按照该实施例的二叉树的整个树结构的说明图;
图10是示出按照该实施例的有向图的说明图;
图11是示出按照该实施例设置子树之间的有向边的有向图的说明图;
图12是示出按照该实施例的内容密钥分发方法的流程图;
图13是示出基本方案与按照该实施例的密钥分发方案之间的比较的比较图;
图14是示出按照该实施例的加密密钥分发***的一种应用的说明图;
图15是示出按照该实施例的加密密钥分发***的一种应用的说明图;
图16是示出按照本发明第二实施例的信息处理单元和终端单元的配置的方块图;
图17是示出按照该实施例的有向图生成方法的流程图;
图18是示出按照该实施例的有向图(k=6)的一个例子的说明图;和
图19是示出按照该实施例的有向图(k=3)的一个例子的说明图。
标号说明
5网络
10密钥分发服务器
20终端设备
100加密密钥分发***
102树结构设置部分
104坐标轴设置部分
106有向边设置部分
108子树间有向边设置部分
110有向图生成部分
112初始中间密钥设置部分
114密钥生成部分
116加密部分
118传送部分
120子集确定部分
124接收部分
126判定部分
128密钥生成部分
130解密部分
202控制器
204处理单元
206输入/输出接口
208安全存储部分
210主存储部分
212网络接口
216媒体接口
218信息媒体
154树结构设置部分
156坐标轴设置部分
160有向图生成部分
162初始中间密钥设置部分
164密钥生成部分
166加密部分
168传送部分
170子集确定部分
174接收部分
176判定部分
178密钥生成部分
180解密部分
优选实施方式
在下文中,将参照附图详细描述本发明的实施例。注意,在本说明书和附图中,基本上具有相同功能和配置的元件用相同标号表示,并且省略重复的说明。
[加密密钥分发***100的配置]
下文描述按照本发明一个实施例的加密密钥分发***100的配置。图1是示出按照该实施例的加密密钥分发***100的配置的说明图。
参照图1,加密密钥分发***100包括配置成按照该实施例的信息处理单元的一个例子的密钥分发服务器10、多个用户分别拥有的多个终端单元20、和连接密钥分发服务器10和终端单元20的网络5。
网络5是连接密钥分发服务器10和终端单元20,以便允许双向通信或单向通信的通信网络。例如,网络5由有线或无线、诸如因特网、电话线网络、卫星通信网络和广播信道之类的公用网络、诸如WAN(广域网)、LAN(局域网)、IP-VPN(因特网协议-虚拟专用网络)和无线LAN之类的租用线网络等构成。
密钥分发服务器10由具有服务器功能的计算机单元等构成,它可以通过网络5将各种类型的信息传送到外部单元。例如,密钥分发服务器10可以以广播加密方案生成加密密钥,并且将加密密钥分发给终端单元20。进一步,按照该实施例的密钥分发服务器10配有作为提供诸如视频分发服务和电子音乐分发服务的内容分发服务的内容分发服务器的功能,它可以将内容分发给终端单元20。当然,密钥分发服务器10和内容分发服务器可以配置成分立单元。
例如,内容可以是诸如由诸如视频、电视节目、视频节目和图表之类的运动图像或静止图像组成的视频内容、诸如音乐、演讲和无线电节目之类的音频内容、游戏内容、文档内容、软件等的任何内容数据。视频内容不仅可以包含视频数据,而且可以包含音频数据。
终端单元20是能够通过网络5与外部单元数据通信的信息处理单元,它由每个用户拥有。尽管终端单元20由诸如如图所示的个人计算机(下文称为“PC”)的计算机单元(笔记本型或台式)构成,但不局限于此,它可以由诸如PDA(个人数字助理)、家用视频游戏机、DVD/HDD(数字多功能盘/硬盘驱动器)记录器和电视机的家用信息电器、电视广播调谐器或解码器等构成,只要它具有通过网络5的通信功能即可。进一步,终端单元20可以是诸如便携式视频游戏播放器、蜂窝式电话、便携式视频/音频播放器、PDA和PHS(个人手持式电话***,俗称小灵通)等,用户可以携带的便携式设备。
终端单元20可以从密钥分发服务器10接收各种类型的信息。例如,终端单元20可以接收从密钥分发服务器10分发的内容。在内容分发的时候,密钥分发服务器10可以加密各种类型的电子数据并分发它们。例如,密钥分发服务器10可以生成加密内容的内容密钥并分发它。内容密钥可以用,例如,伪随机数发生器生成的随机数(伪随机数)、给定字符串或序列等表示。当使用内容密钥时,密钥分发服务器10可以通过给定加密逻辑加密内容。进一步,密钥分发服务器10可以将内容密钥或与内容密钥相对应的解密密钥分发给任意终端单元20。另一方面,终端单元20可以使用从密钥分发服务器10接收到的内容密钥或与内容密钥相对应的解密密钥解密加密内容。
用于生成内容密钥的伪随机数发生器是能够通过输入给定种子值输出长间隔伪随机数序列的单元或程序,一般使用诸如线性同余方法或马其赛特旋转(Mersenne Twister)方法的逻辑实现。可应用于该实施例的伪随机数发生器当然不局限于此,并且可以使用其它逻辑生成伪随机数,或者,它可以是能够生成包含特殊信息或条件的伪随机数序列的单元或程序。
进一步,按照该实施例的密钥分发服务器10不仅加密内容而且加密内容密钥,并且分发它们。的确,加密和分发内容保证了某种程度的安全水平。但是,为了灵活地应付大量用户当中许可拥有使用内容的权限的用户(下文称为“许可用户”)的加入或删除,加密内容密钥并分发它的方法是较有利的。在这样的情况下,在这个实施例中,密钥分发服务器10首先生成加密和解密内容密钥的多个集合密钥。正如后面详细描述的那样,将多个集合密钥分别与从大量用户中提取的许可用户的多个子集相关联。具体地说,密钥分发服务器10使用设置成只有许可用户的集合才可以解密内容密钥的集合密钥加密内容密钥,并将加密内容密钥分发给所有用户的终端单元20。在这种配置中,只有许可用户的终端单元20才可以解密加密内容密钥,然后使用内容密钥解密加密内容,从而使内容可看见。在许可用户的集合发生变化的情况下,密钥分发服务器10可以通过改变用于加密内容密钥的集合密钥应付这种变化。为了建立上面的加密密钥分发逻辑,有必要配置密钥分发服务器10等,以便实现与集合密钥的生成和分发有关的算法。
在下文中,首先描述按照该实施例的密钥分发服务器10和终端单元20的示范性硬件配置。其次,描述与按照该实施例的加密密钥分发逻辑有关的基本技术。第三,详细描述按照该实施例的密钥分发服务器10和终端单元20的配置,和具体描述在配置和效果方面与基本技术的差异。最后,描述按照该实施例的加密密钥分发***的应用。
[密钥分发服务器10和终端单元20的硬件配置]
在下文中,首先参照图2,描述按照该实施例的密钥分发服务器10和终端单元20的示范性硬件配置。图2示出了能够实现按照该实施例的密钥分发服务器10和终端单元20的功能的硬件配置的例子。
密钥分发服务器10和终端单元20包括,例如,控制器202、处理单元204、输入/输出接口206、安全存储部分208、主存储部分210、网络接口212和媒体接口216。
(控制器202)
控制器202通过总线与其它元件连接,它主要用于根据存储在主存储部分210中的程序和数据控制单元的每个部分。控制器202可以由诸如CPU(中央处理单元)的处理单元构成。
(处理单元204(密钥分发服务器10))
包括在密钥分发服务器10中的处理单元204可以进行,例如,内容的加密、内容密钥的加密、集合密钥的生成、和用于生成集合密钥的中间密钥的导出。因此,处理单元204可以起根据给定数据(种子值等)生成伪随机数的伪随机数发生器的作用,并且还根据给定算法加密内容或内容密钥。可以将给定算法存储在主存储部分210中作为处理单元204可读的程序。进一步,可以将给定信息存储在主存储部分210或安全存储部分208中。处理单元204可以将执行上面处理的输出结果记录在主存储部分210或安全存储部分208中。处理单元204可以由诸如CPU的处理单元构成,或与上述的控制器202合并在一起形成。
(处理单元204(终端单元20))
另一方面,包括在终端单元20中的处理单元204可以进行,例如,内容的解密、内容密钥的解密、集合密钥的生成、和用于生成集合密钥的中间密钥的生成。因此,处理单元204可以起根据给定数据(种子值等)生成伪随机数的伪随机数发生器的作用,并且还根据给定算法解密内容或内容密钥。可以将给定算法存储在主存储部分210中作为处理单元204可读的程序。进一步,可以将给定信息存储在主存储部分210或安全存储部分208中。处理单元204可以将执行上面处理的输出结果记录在主存储部分210或安全存储部分208中。处理单元204可以由诸如CPU的处理单元构成,或与上述的控制器202合并在一起形成。
(输入/输出接口206)
输入/输出接口206主要与用户输入信息的输入设备和输出内容的处理结果或描述的输出设备连接。例如,输入设备可以是键盘、鼠标、跟踪球、触控笔、键板、触摸板等,它可以经由无线或有线连接到输入/输出接口206。在一些情况下,输入设备可以是经由有线或无线连接的诸如蜂窝式电话或PDA(个人数字助理)的电子装备。另一方面,输出设备可以是,例如,诸如显示器的显示单元、诸如扬声器的音频输出设备等,它可以经由有线或无线连接到输入/输出接口206。输入/输出设备可以内置在密钥分发服务器10或终端单元20中或与它们合并在一起。
输入/输出接口206通过总线与其它元件连接,以便它可以将经由输入/输出接口206输入的信息传送到主存储部分210等。相反,输入/输出接口206可以将存储在主存储部分210等中的信息、经由网络接口212等输入的信息、或通过在处理单元204中处理那些信息获得的结果等输出到输出设备。
(安全存储部分208)
安全存储部分208主要安全地存储诸如内容密钥、集合密钥和中间密钥,有必要隐藏的信息。安全存储部分208可以由,例如,诸如硬盘的磁存储单元、诸如光盘的光存储单元、磁光存储单元、半导体存储单元等构成。进一步,安全存储部分208可以由,例如,防窜改存储单元构成。
(主存储部分210)
例如,主存储部分210可以存储控制其它元件的控制程序、加密内容、内容密钥等的加密程序、解密加密内容、内容密钥等的解密程序、生成集合密钥或中间密钥的密钥生成程序等。进一步,主存储部分210可以临时或永久地存储从处理单元204输出的计算结果,或存储从输入/输出接口206、网络接口212、媒体接口216等输入的信息。主存储部分210可以由,例如,诸如硬盘的磁存储单元、诸如光盘的光存储单元、磁光存储单元、半导体存储单元等构成。进一步,安全存储部分208可以与安全存储部分208合并在一起形成。
(网络接口212)
网络接口212与,例如,网络5上的另一个通信单元等连接,它是传送和接收,例如,诸如加密内容或内容密钥、集合密钥和中间密钥的信息、与加密有关的参数信息、和与许可用户的集合有关的信息的接口装置。网络接口212通过总线与其它元件连接,以便可以向其它元件传送从网络5上的外部单元接收到的信息,或向网络5上的外部单元传送其它元件保存的信息。
(媒体接口216)
媒体接口216是通过可换地附在信息媒体218上读取和写入信息的接口,它通过总线与其它元件连接。例如,媒体接口216可以从所附信息媒体218中读取信息,并且将它传送到其它元件,或者,将其它元件供应的信息写入信息媒体218中。例如,信息媒体218可以是诸如光盘、磁盘和半导体存储器的便携式存储媒体(可换存储媒体)、在相对短距离内经由有线或无线而不是通过网络5连接的信息终端的存储媒体等。
上文描述了能够实现按照该实施例的密钥分发服务器10和终端单元20的功能的硬件配置的例子。上面元件中的每一个都可以使用通用硬件构成,或可以由专用于每个元件的功能的硬件构成。从而,在实现该实施例时,可以按照技术水平改***件配置以便得到适当使用。进一步,上述硬件配置仅仅是一个例子,当然不局限于此。例如,控制器202和处理单元204可以由相同处理单元构成,和安全存储部分208和主存储部分210可以由相同存储单元构成。进一步,视使用而定,去掉媒体接口216、输入/输出接口206等的配置也是可行的。在下文中,将详细描述通过具有上述硬件配置的密钥分发服务器10和终端单元20实现的加密密钥分发方案。
[按照基本技术的加密密钥分发方案]
在提供按照该实施例的加密密钥分发方案的详细描述之前,下文将描述形成实现该实施例的基础的技术问题。通过改进如下所述的基本技术,将该实施例配置成具有更重要的优点。因此,与改进有关的技术是该实施例的特征。因此,应该注意到,尽管该实施例遵循下文所述的技术问题的基本构思,但该实施例的精髓应当合并到改进部分中,配置明显不同,在优点方面也与基本技术存在明显差异。
将按照下文所述的基本技术的加密密钥分发方案称为基本方案。该基本方案将要向其分发内容的用户的终端单元的集合划分成多个子集,然后通过指定给每个子集的集合密钥加密内容密钥并分发它。该基本方案提供了解决有关选择哪个子集、如何生成集合密钥和如何分发集合密钥的问题,以便减少加密密钥分发的通信量、每个用户要保存的解密密钥的数量、每个用户生成解密密钥所需的计算量等的一种手段。下文参照图3~7描述该基本方案。
(树结构的设置)
在该基本方案中,作为内容分发目标的终端单元(用户)的集合被认为划分成多个子集。下文参照图3描述按照该基本方案划分成子集的方式。尽管划分成子集的方式当然不止一种,但在该基本方案中应用使用二叉树划分成子集的方式。示意性地说,该基本方案在考虑了节点之间的位置关系之后,将给定子集指定给形成二叉树的每个节点,从而,正如后面详细描述的那样,以给定组合综合地选择用户的子集。这样选择方法的优点可以通过如图3所示的二叉树的特例得到更清楚理解。下文参照图3描述构建二叉树的方法。
首先,将用在下面描述中的集合定义如下。
-所有终端单元(用户)的集合N={1,2,...,n}(n是2的乘方)
对于自然数i和j(i≤j):
-[i,j]={i,i+1,i+2,...,j},
-(i→i)=(i←i)={{i}},
-(i→j)={{i},{i,i+1},...,{i,i+1,...,j}}
={[i,i],[i,i+1],[i,i+2],...,[i,j]}
-(i←j)={{j},{j,j-1},...,{j,j-1,...,i}}
={[j,j],[j-1,j],[j-2,j],...,[i,j]}。
在下文中,将位于二叉树(BT)底部的节点称为叶节点,将位于顶部的节点称为根节点,并且将位于根节点和叶节点之间的节点称为中间节点。叶节点对应于各个终端单元。进一步,为了便于描述,在下文中假设终端单元和用户是一一对应的,并且在一些情况下,与叶节点相关联的“终端单元”用措词“用户”指示。图3示出了BT的叶节点的数量是n=64的例子。
首先,以叶节点的数量是n(=64)的方式创建BT。然后,从左端开始往右将号码1,2,...,n指定给各个叶节点。
接着,定义调节要指定给某个中间节点v的子集的索引lv和rv。在比某个中间节点v低的叶节点当中,将指定给最左叶节点的号码定义成lv,而将指定给最右叶节点的号码定义成rv。注意,v可以是指定给各个中间节点的序号。因此,中间节点v指示索引为v的BT的中间节点。
然后,BT的中间节点通过将它们分类成两个集合来定义。在BT的中间节点当中,将位于父节点左侧的中间节点的集合定义成BTL,而将位于父节点右侧的中间节点的集合定义成BTR。本文所指的父子关系指示BT上连接的节点的分层关系,指的是父节点位于上层,而子节点位于下层的关系。
进一步,将与各个叶节点相关联的用户集合的子集与BT的根节点相关联。首先,将集合(1→n)和集合(2←n)与根节点相关联。因为在根节点的下层连接着所有叶节点,所以根节点通过综合地或有选择地包括那些叶节点的集合表示。具体地说,将集合(1→64)和集合(2←64)与图3的根节点相关联。例如,考虑集合(1→64)。集合(1→64)包括作为其元素的子集[1,1]、[1,2]、...、[1,64]。例如,为了表示所有用户(叶节点),可以使用子集[1,64],它作为集合(1→64)的元素包括在其中。进一步,为了表示除了号码为16的用户之外的所有其它用户,可以使用子集[1,15]和[17,64],它们分别作为集合(1→64)和集合(2←64)包括在其中。这样,可以通过相关联的集合的子集表示位于根节点下层的叶节点(用户)的组合。
然后,将用户的子集与BT的中间节点相关联。首先,将集合(lv+1←rv)与属于上述集合BTL的中间节点v相关联。另一方面,将集合(lv→rv-1)与属于上述集合BTR的中间节点v相关联。当然,那些集合与BT的所有中间节点v相关联。参照图3,在各个中间节点附近指示那些集合。例如,关于与集合(2←4)相关联的中间节点,在中间节点的下层存在分别与集合(2←2)和集合(3→3)相关联的两个中间节点,并且,号码为1~4的叶节点进一步与它们连接。当表示除了号码为3的那个除外的那些叶节点的组合时,可以通过一组子集{[1,1][2,2],[4,4]}或{[1,2],[4,4]}表示。虽然子集[1,1]和[1,2]是与根节点相关联的集合(1→64)的元素,但子集[2,2]和[4,4]分别是集合(2←2)和(2←4)的元素。
这样,该基本方案使用二叉树BT定义了用户集合的子集。这种方法能够以各种各样的组合表示用户的子集。由那些子集构成的全集被叫做集合***(set system)Φ,并且定义成下列表达式(1)。因此,下列表达式(1)数学地表示了通过上面方法构建的二叉树。
[表达式1]
上文描述了配置调节子集的二叉树的方法。该基本方案的基本构思是对各个子集设置加密内容密钥的集合密钥,使用各个集合密钥加密内容密钥,并且将它分发给所有用户。通过像上述那样定义子集,至少调节了分类用户组合的一种手段。在下文中,将描述使用那些子集生成集合密钥的算法。
(有向图的生成)
下文参照图4描述生成代表生成集合密钥的算法的有向图的方法。但是,在此之前,下文首先描述加密内容密钥的集合密钥与生成集合密钥的中间密钥之间的关系。
正如上面简述的那样,该基本方案将特定伪随机数发生器PRSG(伪随机序列发生器)用于生成集合密钥。当输入与某个子集S0相对应的中间密钥t(S0)时,PRSG输出与子集S0相对应的集合密钥k(S0)、和与关于子集S0的子集S1、S2、...、Sk相对应的中间密钥t(S1)、t(S2)、...、t(Sk)。集合S0和S1、S2、...、Sk当然是构成集合***Φ的子集的某一个。因此,PRSG是密钥生成单元。该基本方案的特征是调节PRSG的输入和输出之间的关系的逻辑。下文描述调节集合S0和集合S1、S2、...、Sk之间的关系的有向图。
将用于下列描述的符号定义如下:
-与子集Si相对应的中间密钥:t(Si)
-与子集Si相对应的集合密钥:k(Si)
-内容密钥: mek
-伪随机数发生器: PRSG
(注意,t(S0)的输入表达成PRSG(t(S0)))
另一方面,将来自PRSG的输出表达成
t(S1)||...||t(Sk)||k(S0)←PRSG(t(S0))
-有向图: H
(注意,与集合(i←j)相对应的有向图表达成H(i←j))
-有向边: E
-有向路径: V
首先,确定参数k(k是自然数)。为了简化起见,在本例中假设是k|log(n)(在下文中,log的底数是2)。因为参数k最终影响终端单元20保存的中间密钥的数量和生成集合密钥所需的计算量,所以应该按照状况适当设置。在图4中,例如,设置k=6。
接着,下文描述画出有向图的特定方式。首先,通过例示描述与属于BTR的中间节点v相对应的有向图H(lv→rv-1)。
(S1)设置构建有向图H(lv→rv-1)的水平坐标轴。在水平坐标轴上,将形成集合(lv→rv-1)的元素的子集Si指定成坐标点。形成坐标点的子集Si以包含度从左到右越来越大的方式排列。例如,将有向图H(5→7)=H({[5,5],[5,6],[5,7]})取作一个例子,坐标轴含有从左侧开始依次指定了子集[5,5]、[5,6]、[5,7]的三个坐标点。
如果第一水平坐标轴上向右有向图H的起点所在的垂线是x,则有向图H和垂线y的交点代表[x,y],而如果第二水平坐标轴上向左有向图H的起点所在的垂线是z,则有向图H和垂线y的交点代表[y,z]。
此后,将用作起点的临时坐标点放置在坐标轴上最左的坐标点的左侧,并且设置成起点,而将用作终点的临时坐标点放置在坐标轴上最右的坐标点的右侧,并且设置成终点。在这样设置的坐标轴中,从左端的临时坐标点(起点)到右端的临时坐标点(终点)的长度Lv是Lv=rv-lv+1。
(S2)设置构建有向图H(lv→rv-1)的有向边。
(S2-1)计算满足n(x-1)/k<Lv≤nx/k的整数x。整数x满足1≤x≤k。
(S2-2)通过改变从0到x-1的计数i进行下列操作。从水平坐标轴左端的起点开始,重复设置延伸到与该坐标点相隔ni/k(i=0~x-1)的坐标点的向右有向边(跳跃到与该坐标点相隔ni/k的坐标点),直到有向边的头部到达水平坐标轴右端的终点,或下一个设置的有向边的头部超过终点。
(S3)删除尾部或头部在临时坐标点上的所有有向边。
(S4)如果存在多条到达某个坐标点的有向边,则只留下最长有向边,并且删除除最长有向边之外的所有其它有向边。
在执行了上面的步骤(S1)~(S4)之后,有向图H(lv→rv-1)就完成了。例如,参照作为例子的从图4的顶端算起的第三层上位于右侧的有向图H(33→63),有向图H(33→63)的实质是由作为拱形曲线和与拱形曲线的一端连接并沿着水平方向延伸的直线的有向边组成的线组。进一步,构成有向图H(33→63)的曲线和直线是有向边。有向边的端点与垂线之间的交点是坐标点。尽管在图4中未清楚地示出水平坐标轴,但水平坐标轴由垂线与有向边的端点之间的一组交点组成。进一步,在有向图H(33→63)的上面描绘了空心箭头,它指示有向边的方向。具体地说,它指示形成有向图H(33→63)的所有有向边都向右。
以与有向图H(lv→rv-1)相同的方式,设置与属于BTL的中间节点v相关联的有向图H(lv+1←rv)、和与根节点相关联的有向图H(1→n)和H(2←n)。注意,当设置有向图H(lv+1←rv)和H(2←n)的坐标轴时,以包含度从右到左越来越大的方式将子集Si排列在水平坐标轴上,以便有向边的方向向左。进一步,通过将有向边E([1,n-1],[1,n])加入有向图H(1→n-1)中生成有向图H(1→n)。另一方面,通过与有向图H(lv+1←rv)相同的方法设置有向图H(2←n)。
下文将图4的有向图H(1→64)取作一个例子提供附加说明。首先,在有向图H(1→64)的水平坐标轴中,最左坐标点(与垂线1的交点)是[1,1]={1},右邻的坐标点(与垂线2的交点)是[1,2]={1,2},而进一步右邻的坐标点是[1,3]={1,2,3}。进一步,正好在每个有向图的上面或下面的箭头指示形成有向图H的所有有向边的方向。例如,有向图H(1→64)含有从坐标点[1,1]到[1,2]的一条有向边和从坐标点[1,2]延伸到[1,3]和[1,4]的两条有向边。进一步,描绘在图4底部的黑圆点从左侧开始分别指示有向图H(2→2)、H(3→3)、...、H(63→63)。
上文描述了配置有向图H的方法。图4示出了通过上述方法画出与BT的中间节点和根节点相对应的有向图H的结果。这个例子是n=64和k=6的情况。下文描述使用有向图H生成集合密钥的逻辑。
(集合密钥的生成)
如前所述,该基本方案使用指定给构成上面集合***Φ的每个子集Si的集合密钥k(Si)加密内容密钥mek并分发它。因此,上述的有向图H的每个坐标点对应于由一个或多个用户组成的子集Si,并且将集合密钥k(Si)指定给它。进一步,中间密钥t(Si)也指定给上述的每个子集Si,并且用于生成集合密钥k(Si)。
顺便说一下,因为在上述有向图H生成时步骤(S2-2)的处理中的重复次数是x,其中1≤x≤k,所以最多k条有向边源自有向图H的每个坐标点。作为源自某个坐标点(子集S0)的一条或不止一条有向边的目的地的坐标点的子集按与某个坐标点的接近次序(按有向边的长度次序)分别是S1、S2、...、Sk。注意,如果源自坐标点(子集S0)的有向边的数量是q(q<k),将Sq+1、Sq+2、...、Sk当作哑元来对待,实际上不使用它们。
该基本方案使用响应λ个位输入而输出(k+1)λ个位输出的上述PRSG。如果输入与某个坐标点(子集S0)相对应的中间节点t(S0),则PRSG输出与尾部在某个坐标点上的有向边的头上的坐标点(子集S1、S2、...、Sk)相对应的中间密钥t(S1)、t(S2)、...、t(Sk)、和子集S0的集合密钥k(S0)。因此,t(S1)||...||t(Sk)||k(S0)←PRSG(t(S0))。通过将PRSG的输出定界成每一个都来自左侧的λ个位,获得中间密钥t(S1)、t(S2)、...、t(Sk)和集合密钥k(S0)。
例如,参照图4的有向图H(1→64)和关注坐标点(子集S0)=[1,8](从左端算起的第8个坐标点),四条有向边源自坐标点S0,它们的头部在S1=[1,9]、S2=[1,10]、S3=[1,12]和S4=[1,16]上。因此,如果将中间密钥t(S0)输入PRSG中,可以获得k(S0)、t(S1)、t(S2)、t(S3)和t(S4)。进一步,如果将获得的t(S4)输入PRSG中,则可以获得与S11=[1,17]、S12=[1,18]、S13=[1,20]、S14=[1,24]和S15=[1,32]相对应的k(S4)和t(S11)、t(S12)、t(S13)、t(S14)和t(S15)。这样,通过重复使用PRSG可以计算出多个集合密钥k(Si)。
从上面的例子中可以容易地推断,对于某个中间密钥,通过重复使用PRSG可以导出与从对应于某个中间密钥的坐标点延伸的有向边链可达到的坐标点相对应的中间密钥和集合密钥。于是,每个用户只需保存可以导出与包括该用户的子集相对应的所有中间密钥的最少个中间密钥。另一方面,如果生成加密内容密钥的集合密钥的密钥分发服务器至少保存与每个有向图H的初始坐标点相对应的中间密钥,则通过使用PRSG重复进行处理,可以导出与有向图的其它坐标点相对应的集合密钥。
因此,一旦建立起密钥分发***,密钥分发***的管理者就针对密钥分发服务器中的每个有向图H的初始坐标点(根),将例如λ个位随机数设置成中间密钥。有向图H的初始坐标点(根)是有向边源自但没有有向边到达的坐标点。例如,图4中的有向图H(1→64)的初始坐标点是水平坐标轴左端的坐标点[1,1]。
中间密钥用于提高安全性的目的。在需要减少集合密钥生成的处理量而不特殊需要关注安全性的情况下,不使用中间密钥地直接从某个集合密钥中计算另一个集合密钥是可行的。例如,在上例中,将子集S0的集合密钥k(S0)输入PRSG时的输出可以是用作各个子集S1~S4的集合密钥的k(S1)、k(S2)、k(S3)和k(S4)。
上面描述了生成集合密钥的方法。上述集合密钥生成方法不仅用在内容密钥传送端的密钥生成服务器中,而且用在接收端的终端单元中。
(中间密钥的分发)
下文描述中间密钥从密钥分发服务器到每个用户的终端单元的分发。正如前面简述的那样,有必要将能够导出与包括用户的终端单元的所有子集相对应的集合密钥的多个中间密钥提供给每个用户的终端单元。当然,应该避免提供能够导出与不包括用户的终端单元的子集相对应的集合密钥的中间密钥,最好,就存储容量的效率而言,使所提供中间密钥的数量最少。
据此,中间密钥的分发器提取含有用户u的终端单元所属的子集(下文也称为“用户u所属的子集”或“包括用户u的子集)作为一个元素的所有有向图H。然后,如果用户u包括在与有向图H的初始坐标点(根)相对应的子集中,分发器只将与初始坐标点相对应的中间密钥提供给用户u的终端单元。另一方面,如果用户u属于与不同于有向图H的初始坐标点的坐标点相对应的某个子集,分发器找出这样的子集S0,即用户u包括在子集S0中,但不包括在作为子集S0的父母的子集parent(S0)中,并且将子集S0的中间密钥t(S0)提供给用户u的终端单元。换句话说,如果在有向图H中存在与初始坐标点不同和与包括用户u的子集相对应的多个坐标点,分发器从那些坐标点中提取这样的坐标点S0,即用户u不包括在与到达对应于子集S0的坐标点的有向边的尾部相对应的子集parent(S0)中,并且将坐标点(S0)的中间密钥t(S0)提供给用户u的终端单元。如果存在多个这样的坐标点S0,提供各个坐标点的中间密钥t(S0)。坐标点的父子关系通过有向边确定,有向边尾部的坐标点用作头部坐标点的父母,而有向边头部的坐标点用作尾部坐标点的子女。在下文中,将到达某个坐标点S0的有向边的尾部上的坐标点parent(S0)称为父坐标点。如果某个坐标点S0是有向图H的起点,则不存在父坐标点,而如果不是有向图H的起点,则只存在一个父坐标点。在一些情况下,在一个有向图H中,可能存在多个这样的坐标点,即用户u包括在与之相对应的子集中,但用户u不包括在与它的父坐标点相对应的子集中。
下文参照图4的例子具体描述中间密钥的分发方法。
(例1)考虑分发给用户1的中间密钥。首先,作为搜索含有用户1所属的子集作为元素的有向图H的结果,只找到有向图H(1→64)。用户1属于作为有向图H(1→64)的初始坐标点的子集[1,1]。因此,只将中间密钥t([1,1])提供给用户1。
(例2)考虑分发给用户3的中间密钥。首先,作为搜索含有用户3所属的子集作为元素的有向图H的结果,找到有向图H(1→64)、H(2←64)、H(2←32)、H(2←16)、H(2←8)、H(2←4)和H(3←3)。观察有向图H(1→64),用户3不属于初始坐标点上的子集[1,1],但属于第3和随后坐标点上的子集[1,3]、[1,4]、...、[1,64]。在那些坐标点当中,父坐标点不包括用户3的坐标点只有[1,3]和[1,4]。具体地说,用户3不包括在作为包括用户3的坐标点[1,3]和[1,4]的父坐标点parent([1,3])和parent([1,4])的坐标点[1,2]中。因此,将t([1,3])和t([1,4])提供给用户3作为与有向图H(1→64)相对应的中间密钥。同样,为其它有向图H(2←64)、H(2←32)、H(2←16)、H(2←8)、H(2←4)和H(3←3)选择相应中间密钥并将其提供给用户3。因此,将总共八个中间密钥提供给用户3。
下面参照图5简要总结一下直到将中间密钥分发给每个用户的终端单元为止的处理。图5是示出根据***建立在密钥分发服务器中分发中间密钥的处理流程的流程图。
如图5所示,密钥分发***的密钥分发服务器首先设置参数等。例如,密钥分发服务器确定用户的数量n、集合密钥和中间密钥的位数λ、给定参数k、PRSG的伪随机数生成算法等,并且向所有用户的终端单元公布它们(S102)。接着,密钥分发服务器将用户的集合划分成给定子集,然后确定并公布用并集表示的集合***Φ(参见上面表达式(1))(S104)。然后,密钥分发服务器确定并公布有向图H和形成各个有向图H的有向边T(S106)。进一步,密钥分发服务器确定与构成集合***Φ的各个子集相对应的中间密钥(S108)。此后,密钥分发服务器向每个用户分发必要的中间密钥的终端单元20,以便每个用户可以导出与包括用户的子集相对应的集合密钥(S110)。
上文描述了中间密钥的分发方法。如果使用上面的分发方法,则分发每个许可用户的终端单元生成集合密钥所需的最少个中间密钥,从而能够减少密钥分发服务器与终端单元之间的通信量和每个用户的终端单元中中间密钥的存储容量。
(内容密钥的分发)
下文描述密钥分发服务器分发加密内容密钥mek的方法。首先,密钥分发服务器使用只能由许可用户的终端单元20生成的集合密钥加密内容密钥mek。具体地说,密钥分发服务器确定要排除的用户(下文称为“排除用户”)的终端单元的集合R,然后通过从所有用户的终端单元1~n的集合N中排除掉排除用户的终端单元的集合R(下文称为“排除用户的集合(R)”),确定许可用户的终端单元的集合N\R(下文称为“许可用户的集合(N\R)”)。然后,用从构成集合***Φ的子集中选择的子集Si(i=1、2、...、m)的并集表示许可用户的集合(N\R)=S1∪S2∪...∪Sm。尽管存在子集Si的大量组合,但选择m的值最小的子集Si。在以这种方式选择子集Si之后,密钥分发服务器使用与每个子集Si相对应的集合密钥k(Si)加密内容密钥mek。具体地说,内容密钥mek被集合密钥k(S1)、k(S2)、...、k(Sm)加密,成为m个加密内容密钥mek。然后,将m个加密内容密钥mek分发给所有用户的终端单元1~n。此时,还将指示许可用户的集合(N\R)的信息或指示m个子集Si的信息分发给所有用户的终端单元1~n。
下面参照图6简要总结一下分发加密内容密钥mek的处理流程。图6是示出分发内容密钥的处理流程的流程图。
如图6所示,密钥分发服务器首先确定排除用户的集合(R),并获得许可用户的集合(N\R)(S112)。接着,密钥分发服务器以使m的值最小的方式从构成集合***Φ的子集中选择含有N\R的并集的m个子集Si(i=1、2、...、m)(S114)。然后,密钥分发服务器使用分别与所选子集Si相对应的集合密钥k(Si)加密内容密钥mek(S116)。进一步,密钥分发服务器将指示许可用户的集合(N\R)或各个子集Si的信息和m个加密内容密钥mek分发给所有用户的终端单元1~n(S118)。
上文描述了内容密钥mek的加密方法和分发方法。如果使用上面的加密方法,就可以有效地选择子集Si,以便使集合密钥的数量是最少必要个。因为从此而使用最少必要个集合密钥加密内容密钥mek,所以可以节约加密所需的计算量,并且还减少了要分发的加密内容密钥的数量,从而减少了通信量。
(内容密钥的解密)
下文描述每个用户的终端单元中加密内容密钥的解密处理。解密处理是这样的,终端单元根据从密钥分发服务器接收到的指示许可用户的集合(N\R)或m个子集Si的信息和m个密文获取内容密钥mek。
终端单元从密钥分发服务器接收加密内容密钥和指示许可用户的集合(N\R)的信息或指示m个子集Si的信息。进一步,终端单元分析该信息,并且判定它是否属于m个子集Si的某一个。如果终端单元不属于某个子集,它就结束解密处理,因为它是排除用户的终端单元。另一方面,如果终端单元找出它所属的子集Si,它就使用上述PRSG导出与子集Si相对应的集合密钥k(Si)。PRSG的配置与前述相同。
在这个步骤中,如果在***建立时事先将与上面子集Si相对应的中间密钥t(Si)从密钥分发服务器提供给终端单元,并且预先保存它,则通过将中间密钥t(Si)输入PRSG中可以导出与上面子集Si相对应的集合密钥k(Si)。另一方面,如果终端单元未保存相关中间密钥t(Si),终端单元可以通过重复地将保存的中间密钥输入PRSG中导出所希望集合密钥k(Si)。进一步,终端单元使用这样导出的集合密钥k(Si)解密加密内容密钥mek。
下面参照图4的例子具体描述终端单元中上述集合密钥k(Si)的导出。在用户3的终端单元中,假设“1、8”被选为它所属的子集。如上所述,用户3的终端单元保存着子集[1,4]的中间密钥。参照图4的有向图H(1→64),设置从坐标点[1,4]延伸到坐标点[1,8]的有向边,在尾部在坐标点[1,4]上的有向边当中,这个有向边具有第三短长度(跳跃距离)。因此,在将子集[1,4]的中间密钥t([1,4])输入PRSG时的输出当中,从顶端算起的第三λ个位部分是子集[1,8]的中间密钥t([1,8])。终端单元从PRSG的输出中提取中间密钥t([1,8]),再次将它输入PRSG中,并且提取最后λ个位部分,从而获得所希望集合密钥k([1,8])。
同样,在用户1的终端单元中,假设“1,8”被选为它所属的子集。用户1的终端单元保存着子集[1,1]的中间密钥。在这样的情况下,终端单元20可以通过从将子集[1,1]的中间密钥t([1,1])输入PRSG时的输出当中提取从顶端算起的第一λ个位部分(对应于中间密钥t([1,2])),然后从将中间密钥t([1,2])输入PRSG时的输出当中提取从顶端算起的第二λ个位部分(对应于中间密钥t([1,4])),进一步从将中间密钥t([1,4])输入PRSG时的输出当中提取从顶端算起的第三λ个位部分(对应于中间密钥t([1,8])),和最后从将中间密钥t([1,8])输入PRSG时的输出当中提取最后部分(对应于集合密钥k([1,8])),获得所希望集合密钥k([1,8])。
下面参照图7总结一下在每个用户的终端单元中解密加密内容密钥mek的处理流程。图7是示出在每个用户的终端单元中解密内容密钥的密钥生成处理流程的流程图。
如图7所示,每个用户的终端单元首先从密钥分发服务器接收m个加密内容密钥mek和指示许可用户的集合(N\R)的信息或指示m个子集Si(i=1、2、...、m)的信息(S120)。接着,终端单元根据该信息搜索它所属的子集Si(S122),并且判定它是否属于m个子集Si的某一个(步骤S124)。
结果,如果终端单元找出它所属的子集Si,它就使用上面PRSG导出与子集Si相对应的集合密钥k(Si)(S126)。PRSG的配置与前述相同。如果在建立时密钥分发服务器事先将与子集Si相对应的中间密钥t(Si)提供给终端单元,并且保存它,则它就可以通过一次性地使用PRSG导出集合密钥k(Si)。另一方面,如果终端单元未保存相关中间密钥t(Si),它可以通过重复地使用PRSG导出所希望集合密钥k(Si)。此后,终端单元使用这样导出的集合密钥k(Si)解密加密内容密钥mek(S128)。
另一方面,如果终端单元在步骤S124中判定它不属于子集Si的某一个,则终端单元显示和输出:“它被排除在允许访问内容的终端单元之外(即,它是排除用户)”(S130),并且结束内容密钥的解密处理。
上文描述了终端单元中内容密钥的解密方法。上面的解密方案是使用生成中间密钥和集合密钥的PRSG以及根据有关有向图H的信息执行的。因此,有关有向图的信息和PRSG在每个用户的终端单元中也是必不可少的。但是,使用PRSG的方法能够使每个用户的终端单元要保存的中间密钥的数量最少。
上文描述了按照该实施例的基本技术的加密密钥分发方案。通过使用基本方案,每个用户的终端单元要保存的中间密钥的数量是O(k*log(n)),和生成集合密钥所需的计算量(PRSG的操作次数)不超过(2k-1)*(n1/k-1)。但是,如后面所述的图13(A)所示,按照基本技术的加密密钥分发方案存在每个用户的终端单元要保存的中间密钥的数量仍然很大的问题。
进一步,解密加密内容密钥mek时终端单元所需的计算量的决定因素取决于为了导出所希望中间密钥而运行PRSG的次数。最差值用有向图H中从初始坐标点(根)到最远最后坐标点(没有有向边源自的叶)的有向边的数量(即,跳跃次数)表示。在如图4所示的例子中,为了从有向图H(1→64)的初始坐标点[1,1]到达最后坐标点[1,64],有必要穿过11条有向边(进行11次跳跃),这意味着运行PRSG多达11次。因此,按照基本技术的加密密钥分发方案存在PRSG的运行次数很多,因此,导出中间密钥的计算量很大的另一个问题。
<第一实施例>
本发明的发明人为了解决上面的问题,进行了广泛的研究,开发出了如下所述的按照本发明实施例(第一实施例)的加密密钥分发方案。按照该实施例的加密密钥分发方案将代表所有用户的终端单元的大二叉树BT划分成多个小基本子树,以创建分层结构,并且将上面基本方案的密钥导出方法用于每个基本子树并设置基本子树之间的有向边。这样既能够减少终端单元20保存的中间密钥的数量又能够减少终端单元20中的计算量。在下文中,将详细描述实现按照该实施例的加密密钥分发方案的密钥分发服务器10和终端单元20的功能配置、和该加密密钥分发方案的特征和优点。
[密钥分发服务器10的配置]
下文参照图8详细描述按照该实施例的密钥分发服务器10的功能配置。图8是示出按照该实施例的密钥分发服务器10和终端单元20的功能配置的方块图。
如图8所示,密钥分发服务器10包括树结构设置部分102、坐标轴设置部分104、有向边设置部分106、子树间有向边设置部分108、初始中间密钥设置部分112、密钥生成部分114、加密部分116、传送部分118、和子集确定部分120。坐标轴设置部分104、有向边设置部分106和子树间有向边设置部分108构成有向图生成部分。进一步,树结构设置部分102和有向图生成部分110统称为密钥生成逻辑构建块。同样,初始中间密钥设置部分112和密钥生成部分114统称为密钥生成块。
下文描述构成密钥生成逻辑构建块的元件。密钥生成逻辑构建块进行与上述的[基本技术的描述]中(树结构的设置)和(有向图的生成)相对应的处理。
(树结构设置部分102)
树结构设置部分102通过将含有指定与n(n是2的乘方)个终端单元20相对应的号码1~n(n是自然数)的n个叶节点的整个树BT划分成多个基本子树配置y层分层结构。这样,该实施例的特征是在树结构设置部分102中配置分层成基本子树的树结构。尽管为了便于描述起见,将终端单元20的总数n描述成2的乘方,但不局限于这样的例子,例如,如果终端单元20的总数不是2的乘方,可以配置含有超过终端单元20的总数的n个(n是2的乘方)叶节点的整个树。
除了用在前面所述的基本技术中的参数之外,该实施例还使用指示整个树BT的层数的参数y。注意,y|log(n),即,y是log(n)的约数。然后,树结构设置部分102使用含有n1/y个叶节点的基本子树分层代表用户的所有终端单元的二叉树结构的整个树BT。
整个树BT具有等效于前面所述的基本技术的二叉树BT(参见图3)、高度为log(n)的完整二叉树结构。整个树BT由指定给终端单元20的n个叶节点、在整个树BT的顶端的根节点、和不同于根节点和叶节点的多个中间密钥组成。另一方面,基本子树具有高度为((log(n))/y)的完整二叉树结构。基本子树由n1/y个叶节点、在基本子树的顶端的根节点、和不同于根节点和叶节点的多个中间密钥组成。
树结构设置部分102首先创建整个树,以便叶节点的数量n大于终端单元20的总数,并且从左端开始往右将号码1、2、...、n指定给各个叶节点。
进一步,树结构设置部分102将上面的整个树BT划分成多个基本子树,以形成y层分层结构,并且以这样的方式组合基本子树,即使下层的基本子树的根节点与上层的子树的叶节点一致,从而构建整个树BT。
在图9中示出了这样分层树结构的特例。在图9的例子中,将终端单元20的数量设置成n=64,并且将参数y设置成y=2。如图9所示,将整个树BT(高度为6和叶节点的数量为64)划分成具有双层分层结构的九个基本子树(高度为3和叶节点的数量为8)。上层的基本子树的数量是1个,而下层的基本子树的数量是8个。上层的基本子树的根节点与整个树BT的根节点相同,而上层的基本子树的叶节点的数量是8个,即,a、b、c、...、h。下层的各个基本子树的根节点与上层的基本子树的叶节点a、b、c、...、h一致,而下层的各个基本子树的叶节点是作为上述整个树BT的叶节点1~64的一部分的八个叶节点(例如,1~8、9~16、17~24、...、57~64)。
这样,图9中的符号“a、b、c、...、h”指示上层的基本子树的叶节点和下层的基本子树的根节点两者,并且还指示位于根节点的下层的叶节点的集合:{Aa}、{Ab}、{Ac}、...、{Ah}。例如,“a”指示集合{Aa}=子集{1,2,...,8},而“b”指示集合{Ab}=子集{9,...,16}。
低层上的基本子树的叶节点分别对应于终端单元20。进一步,假设在下列描述中,终端单元20和用户是一一对应的,并且在一些情况下,与整个树BT的叶节点1~n(底层上的各个基本子树的叶节点)相关联的“终端单元20”用措词“用户”指示。尽管图9示出了BT的叶节点的数量是n=64和y=2的例子,但不局限于这样的例子,n的值可以像n=4(=22)、8(=23)、16(=24)、32(=25)、128(=27)、...那样,是2的任意次方。进一步,除了如图所示的y=2的例子之外,分层参数y也可以任意设置,只要它是log(n)的约数即可。
进一步,树结构设置部分102在考虑了节点之间的位置关系之后,将组合与用户的终端单元20相对应的叶节点1~n的集合与形成如上构成的整个树BT的每个节点,即,每个基本子树的根节点和叶节点相关联。这样,树结构设置部分102还起集合关联部分的作用。下文详细描述集合的关联。
将用在下列描述中的集合和符号定义如下。
N:所有终端单元20(用户)的集合{1,2,...,n};
Aw:位于整个树BT的节点w的下层上的叶节点的集合。在节点w是整个树BT的叶节点的情况(节点w是底层上的基本子树的叶节点的情况)下,Aw只指示那些叶节点(即,节点w的集合)。那些叶节点统称为“属于Aw的叶节点的集合”;
pw:位于属于Aw的叶节点的集合最左侧的叶节点;
qw:位于属于Aw的叶节点的集合最右侧的叶节点;
[pw,qw]:{pw,pw+1,pw+2,...qw-1,qw};
v(-i):位于某个叶节点v的左侧第i位置上的每个基本子树的叶节点;
v(+i):位于某个叶节点v的右侧第i位置上的每个基本子树的叶节点;
关于基本子树的两个叶节点u,v(v在u的右侧):
集合(u→v)={Au,Au ∪Au(+1),...,Au∪...∪Av}
={[pu,qu],[pu,qu(+1)],...,[pu,qv(-1)],[pu,qv]};
集合(u←v):{Av,Av∪Av(-1),...,Av∪...∪Au}
lv′:位于位于基本子树的节点v(根节点或中间节点)的下层上的多个叶节点的左端上的叶节点;
rv′:位于位于基本子树的节点v(根节点或中间节点)的下层上的多个叶节点的右端上的叶节点;
A:从基本子树的根节点的集合中排除整个树的根节点的集合;
BTL:位于父节点的左侧上的基本子树的中间节点的集合;
BTR:位于父节点的右侧上的基本子树的中间节点的集合;
本文所指的父子关系指示基本子树上连接的节点的分层关系,指的是父节点位于上层,而子节点位于下层的关系。
当使用如上定义的集合和符号时,树结构设置部分102在考虑了节点之间的位置关系之后,将组合与终端单元20相对应的叶节点1~n的集合与如上构成的分层整个树BT的每个节点,即,每个基本子树的根节点和叶节点相关联。
具体地说,树结构设置部分102将集合(lroot′→rroot′)和集合(lroot′(+1)←rroot′)与顶层的基本子树的根节点(对应于整个树BT的根节点)相关联。在图9中的例子中,将集合(a→h)和集合(b←h)与上层的基本子树的根节点相关联。
进一步,对于与底层不同的层上的基本子树的中间节点,如果每个基本子树的中间节点v位于它的父节点左侧,树结构设置部分102将集合(lv′(+1)←rv′)与中间节点v相关联;另一方面,如果位于它的父节点右侧,树结构设置部分102将集合(lv′→rv′(-1))与中间节点v相关联。在图9的例子中,将集合(b←d)、集合(e→g)、集合(b←b)、集合(c→c)、集合(f←f)和集合(g→g)分别与上层的基本子树的六个中间节点v相关联。例如,因为符号e、f和g分别指示子集{30,...,40}、子集{41,...,48}和子集{49,...,56},所以集合(e→g)指示那些子集{Ae,Ae∪Af,Ae∪Af∪Ag}={{30,...,40},{33,...,48},{33,...,56}}的集合。
这样,在这个实施例中,子集不是以整个树的叶节点1~n为单位,而是以上层的基本子树的叶节点a~h为单位与基本子树的节点相关联。尽管图9的例子是双层分层结构,因此不存在中间层的基本子树,但如果分层结构含有,例如,三层或更多层,则子集以中间层的基本子树的叶节点为单位与中间层的基本子树的节点相关联。
进一步,树结构设置部分102将集合(lv′→rv′(-1))和集合(lv′(+1)←rv′)与不同于顶层的层上的基本子树的根节点v相关联。在图9的例子中,将两个集合与下层的八个基本子树的根节点a、b、c、...、h中的每一个相关联。例如,将集合(2←8)和集合(1→7)与根节点a相关联。这样,两个集合与基本子树的每个根节点相关联,而不只与整个树的根节点相关联。
更进一步,如果底层的每个基本子树的中间节点v位于它的父节点左侧,树结构设置部分102将集合(lv′(+1)←rv′)与中间节点v相关联,而如果位于它的父节点右侧,树结构设置部分102将集合(lv′→rv′(-1))与中间节点v相关联。例如,将集合(2←4)、集合(5→7)、和集合(2→2)等与图9的下层左端上的基本子树的各个中间节点相关联。
如上所述,在按照该实施例的加密密钥分发方案中,使用分层成多个基本子树的二叉树BT定义用户集合的子集。这种方法能够以各种各样的组合表示用户的子集。由那些子集组成的全集被叫做集合***ψ,并且定义成下列表达式(2)。因此,下列表达式(2)数学地表示了通过上面方法构建的二叉树结构的整个树BT。
[表达式2]
上文描述了通过按照该实施例的树结构设置部分102配置调节用户的终端单元20的子集的二叉树的方法。按照该实施例的加密密钥分发方案的基本构思是对各个子集设置加密内容密钥的集合密钥,使用各个集合密钥加密内容,并且将它分发给所有用户。通过像上述那样定义子集,至少调节了分类用户组合的一种手段。在下文中,将描述使用那些子集创建有向图和根据有向图生成集合密钥的算法。
有向图生成部分110创建分别对应于与树结构设置部分102配置的分层整个树BT的节点相关联的集合(lroot′→rroot′)、集合(lv′→rv′(-1))、集合(lroot′(+1)←rroot′)和集合(lv′(+1)←rv′)的有向图H′。有向图H′由以子集的包含度越来越大的方式依次排列与包括在那些集合中的子集相对应的坐标点的水平坐标轴、和连接水平坐标轴上的坐标点的有向边组成。
有向图生成部分110包括设置每个有向图H′的水平坐标轴的坐标轴设置部分104、设置每个有向图H′的水平坐标轴上的有向边的有向边设置部分106、和另外设置与不同基本子树相对应的有向图H′之间的有向边的子树间有向边设置部分108。下文描述有向图生成部分110的部件。
(坐标轴设置部分104)
坐标轴设置部分104设置以包含度从左到右越来越大的方式排列与包括在与顶层的基本子树的根节点相关联的集合(lroot′→rroot′)中的各个子集相对应的坐标点的第一水平坐标轴(例如,图10中的H′(a→h)的坐标轴)。进一步,坐标轴设置部分104设置以包含度从左到右越来越大的方式排列与包括在与除了顶层之外的其它层的基本子树的根节点v或每个基本子树的中间节点v相关联的集合(lv′→rv′(-1))中的各个子集相对应的坐标点的第一水平坐标轴(例如,图10中的H′(e→g)、H′(1→7)、H′(5→7)等的坐标轴)。
坐标轴设置部分104进一步设置以包含度从右到左越来越大的方式排列与包括在与顶层的基本子树的根节点相关联的集合(lroot′(+1)←rroot′)中的各个子集相对应的坐标点的第二水平坐标轴(例如,图10中的H′(b←h)的坐标轴)。进一步,坐标轴设置部分104设置以包含度从右到左越来越大的方式排列与包括在与除了顶层之外的其它层的基本子树的根节点v或每个基本子树的中间节点v相关联的集合(lv′(+1)←rv′)中的各个子集相对应的坐标点的第二水平坐标轴(例如,图10中的H′(b←d)、H′(2←8)、H′(2←4)等的坐标轴)。
如上所述,坐标轴设置部分104设置构建与树结构设置部分102配置的基本子树的各个节点相对应的有向图H′的坐标轴。第一水平坐标轴是向右坐标轴,而第二水平坐标轴是向左坐标轴。因为第一和第二水平坐标轴是针对各个基本子树的根节点和中间节点v设置的,所以设置了数根坐标轴。
进一步,坐标轴设置部分104另外还在第一和第二水平坐标轴中每一根的左端和/或右端上总共至少设置两个临时坐标点。在这个实施例中,例如,另外分别在第一和第二水平坐标轴每一根的左端坐标点的左侧上和右端坐标点的右侧上设置一个临时坐标点。在这样的情况下,设置在第一水平坐标轴左端上的临时坐标点在设置有向边时用作起点,而设置在第一水平坐标轴右端上的临时坐标点在设置有向边时用作终点。另一方面,设置在第二水平坐标轴左端上的临时坐标点在设置有向边时用作终点,而设置在第二水平坐标轴右端上的临时坐标点在设置有向边时用作起点。设置临时坐标点的技术不局限于上面的例子,例如,可以在第一和第二水平坐标轴的左端或右端之一上设置至少两个临时坐标点。
(有向边设置部分106)
有向边设置部分106具有在坐标轴设置部分104设置的坐标点之间设置形成有向图I的有向边的功能。
具体地说,有向边设置部分106首先设置给定整数k(其中,k|log(n1/y);于是,k是log(n1/y)的约数),并且计算满足n(x-1)/k*y<(rv′-lv′+1)≤nx/k*y的整数x。
进一步,对于具有上述第一水平坐标轴的有向图I,有向边设置部分106重复地进行从每根第一水平坐标轴左端的临时坐标点(起点)开始延伸到相隔ni/(k*y)(i=0~x-1)的坐标点的向右有向边的设置。进一步,对于具有上述第二水平坐标轴的有向图I,有向边设置部分106重复地进行从每根第二水平坐标轴右端的临时坐标点开始延伸到相隔ni/(k*y)(i=0~x-1)的坐标点的向左有向边的设置。
然后,对于第一和第二水平坐标轴,有向边设置部分106排除尾部或头部在每一个位于坐标轴左端和右端上的临时坐标点上的所有有向边。进一步,有向边设置部分106从到达第一和第二水平坐标轴上的各个坐标点的有向边中排除除了最长有向边之外的其它有向边。这样,有向边设置部分106就在与每个基本子树的根节点和中间节点v相关联的每个有向图I的每根水平坐标轴上设置了作为连接坐标点的链条的多条有向边。
除了叶节点的数量是n1/y之外,上面通过按照该实施例的坐标轴设置部分104和有向边设置部分106生成有向图I的技术基本上与按照前述的基本技术生成有向图H的技术相同。下文描述一个特例。作为生成有向图I的技术的一个例子,下文将描述与如图9所示的顶层的基本子树的根节点(整个树BT的根节点)相关联的有向图I(lroot′→rroot′)=有向图I(a→h)的例子。
与前述的基本技术一样,通过创建与集合(lv′→rv′(-1))相对应的有向图I(a→g),然后加入此后的有向边E([a,g],[a,h])创建作为与根节点相关联的向右图的有向图I(a→h)。因此,首先如下创建有向图I(a→h)。
(S10)首先,由坐标轴设置部分104设置配置有向图I(a→g)的第一水平坐标轴。在第一水平坐标轴上,将作为集合(a→g)的元素的子集Si指定成坐标点。以包含度从左到右越来越大的方式排列形成坐标点的子集Si。例如,在有向图I(a→h)=H({[a,a],[a,b],...,[a,g]})中,坐标轴含有从左侧开始依次指定子集[a,a]、[a,b]、...、[a,g]的七个坐标点。此后,坐标轴设置部分104在坐标轴上最左的坐标点的左侧设置用作起点的临时坐标点,以便用作起点,和在坐标轴上最右的坐标点的右侧设置用作终点的临时坐标点,以便用作终点。在这样设置的坐标轴中,从左端的临时坐标点(起点)到右端的临时坐标点(终点)的长度Lv是Lv=rv′-lv′+1=h-a+1=8。
(S20)由有向边设置部分106设置形成有向图I(a→g)的有向边。
(S20-1)计算满足n(x-1)/k*y<(h-a+1)≤nx/k*y的整数x。整数x满足1≤x≤k。
(S20-2)通过改变从0到x-1的计数i进行下列操作。从第一水平坐标轴左端的起点(临时坐标点)开始,重复设置延伸到与该坐标点相隔ni/(k*y)(i=0~x-1)的坐标点的向右有向边(跳跃到与该坐标点相隔ni/(k*y)的坐标点),直到有向边的头部到达水平坐标轴右端的终点(临时坐标点),或下一个设置的有向边的头部超过终点。
(S30)删除尾部或头部在第一水平坐标轴两端上的临时坐标点上的所有有向边。
(S40)如果存在多条到达某个坐标点的有向边,则只留下最长有向边,并且删除除最长有向边之外的所有其它有向边。
如果执行了上面的步骤(S10)~(S40),则有向图H(a→g)就完成了。通过将有向边E([a,g],[a,h])加入有向图H(a→g)中,完成有向图H(a→h)。例如,参照图如图10所示的有向图H(a→h),设置与子集[a,a](如方框“a”所示)、子集[a,b](如方框“b”所示)、...、子集[a,h](如方框“h”所示)相对应的坐标点、和连接那些坐标点的直线有向边或拱形弯曲有向边。尽管在图10中未清楚示出水平坐标轴,但水平坐标轴由坐标点与有向边的端点之间的一组交点组成。进一步,在有向图I(a→h)的上面描绘了向右空心箭头,它指示有向边的方向。具体地说,它指示形成有向图H(a→h)的所有有向边都向右。因此,在有向图H(a→h)中,从子集[a,a]的坐标点a开始设置到达子集[a,b]的坐标点b的一条向右有向边,而从子集[a,b]的坐标点b开始设置到达子集[a,c]的坐标点c和子集[a,d]的坐标点d的两条向右有向边。
以与有向图H(a→g)相同的方式,生成与顶层的基本子树的根节点相关联的有向图I(lroot′(+1)←rroot′)、和与其它基本子树的根节点或基本子树的中间节点相关联的有向图I(lv′→rv′(-1))和有向图I(lv′(+1)←rv′)。注意,当设置有向图I(lv′→rv′(-1))和有向图I(lv′(+1)←rv′)的坐标轴时,在第二水平坐标轴上以包含度从右到左越来越大的方式排列子集Si,以便使有向边的方向向左。
这样就生成了有向图I。图10代表使用有向图I的如图9所示的集合***ψ。图10示出了y=2和k=3的情况。
如图10所示的有向图I(a→h)和I(b←h)是与顶层的基本子树的根节点相关联的有向图I。进一步,有向图I(b←d)和I(e→g)是与顶层的基本子树的上层中间节点相关联的有向图I,和有向图I(b←b)、I(c→c)、I(f←f)和I(g→g)是与顶层的基本子树的下层中间节点相关联的有向图I。
进一步,有向图I(1→7)和I(2←8)、有向图I(9→15)和I(10←16)、...、和有向图I(57→63)和I(58←64)是分别与下层的八个基本子树的根节点v相关联的有向图I。有向图I(2←4)、I(5→7)、...、I(58←60)、I(61→63)是分别与下层的八个基本子树的上层中间节点v相关联的有向图I。更进一步,用一个坐标点(黑圆点)指示的有向图I(2←2)、I(3→3)、...、I(62←62)、I(63→63)是分别与下层的八个基本子树的下层中间节点v相关联的有向图I。
如图10所示,通过将整个树BT划分和分层成多个基本子树和生成与之相对应的有向图I,可以缩短每个有向图I的长度,并且还可以减少和缩短每个有向图I中有向边的数量和长度(跳跃的次数和距离)。从而,可以减少终端单元20要保存的密钥的数量和终端单元20的计算量。
(子树间有向边设置部分108)
如图8所示的子树间有向边设置部分108另外还在分层整个树BT中设置从与下层的基本子树相对应的有向图I到与上层的基本子树相对应的有向图I的有向边。具体地说,子树间有向边设置部分108设置从与下层的基本子树相对应的有向图I中的第一坐标点(例如,图11中有向图I(1→7)的子集[1,7]的坐标点)到与上层的基本子树相对应的有向图I中的第二坐标点(例如,图11中有向图I(a→h)的子集[a,a]的坐标点)的有向边。由第二坐标点表示的子集(例如,[a,a])包括与第一坐标点相对应的子集(例如,[1,7])。
图11示出了在以子集Si存在包含关系的方式在与不同基本子树相对应的有向图I之间设置有向边的情况下的有向图I。
如图10和图11所示,用方框“a”指示的第二坐标点的子集[a,a]={1,2,...,8}包括子集{1,2,...,7},也就是说,子集[a,a]是子集[1,7]的父集。因此,子树间有向边设置部分108另外还设置从与有向图I(1→7)中的子集[1,7]相对应的坐标点(第一坐标点)到与有向图I(a→h)中的子集[a,a]相对应的坐标点(第二坐标点)的有向边。
同样,子树间有向边设置部分108另外还设置从与有向图I(58←64)中的子集[64,58]相对应的坐标点(第一坐标点)到与有向图I(b←h)中的子集[h,h]相对应的坐标点(第二坐标点)的有向边。进一步,子树间有向边设置部分108另外还设置从与有向图I(26←32)中的子集[32,26]相对应的坐标点(第一坐标点)到与有向图I(b←d)中的子集[d,d]相对应的坐标点(第二坐标点)的有向边,并且另外还设置从与有向图I(33→39)中的子集[33,39]相对应的坐标点(第一坐标点)到与有向图I(e→g)中的子集[e,e]相对应的坐标点(第二坐标点)的有向边。更进一步,子树间有向边设置部分108另外还设置从与有向图I(10←16)、I(17→23)、I(42←48)、I(49→55)中的子集[16,10]、[17,23]、[48,42]、[49,55]相对应的坐标点(第一坐标点)到与包括上面子集的有向图I(10←16)、I(17→23)、I(42←48)、I(49→55)中的子集[b,b]、[c,c]、[f,f]、[g,g]相对应的坐标点(第二坐标点)的有向边。这样,通过在有向图I之间另外设置有向边,可以进一步减少终端单元20要保存的中间密钥的数量。例如,通过另外设置从有向图I(1→7)的子集[1,7]到有向图I(a→h)的子集[a,a]的有向边,号码为1~7的终端单元20无需保存子集[a,a]等的中间密钥,可以通过输入自身保存的中间密钥(例如,中间密钥t([1,7])),导出八个子集[a,a]、[a,b]、...、[a,h]的中间密钥t([a,a])、t([a,b])、...、t([a,h])。从而减少了那些终端单元20保存的中间密钥t(S)的数量。加在其它基本子树之间的有向边也有助于减少终端单元20保存的中间密钥t(S)的数量。
上文描述了密钥分发服务器10中的密钥生成逻辑构建块的部件。参照图8,除了密钥生成逻辑构建块之外,密钥分发服务器10进一步包括包含初始中间密钥设置部分112和密钥生成部分114的密钥生成块、加密部分116、传送部分118和子集确定部分120。
(初始中间密钥设置部分112)
初始中间密钥设置部分112针对与基本子树的每个节点相对应的每个有向图I,生成与有向图I的初始坐标点相对应的中间密钥。在含有向右第一水平坐标轴的有向图I中初始坐标点是位于左端的坐标点(例如,有向图I(1→7)中子集[1,1]的坐标点),而在含有向左第二水平坐标轴的有向图I中它是位于右端的坐标点(例如,有向图I(58←64)中子集[64,64]的坐标点)。初始中间密钥是初始坐标点的中间密钥t(S)。如果获得初始中间密钥,可以使用,例如,伪随机数发生器PRSG,根据与初始中间密钥相对应的有向图I依次导出包括在有向图I中的其它坐标点的中间密钥。初始中间密钥设置部分112可以使用伪随机数发生器PRSG生成随机数并将随机数设置成中间密钥,或可以将给定数值设置成中间密钥。
(密钥生成部分114)
密钥生成部分114根据上述有向图生成部分110生成的有向图I,为与有向图I中的坐标点相对应的每个子集Si生成加密内容密钥的集合密钥k(Si)。具体地说,当输入与有向图I中的某个坐标点相对应的子集S的中间密钥t(S0)时,密钥生成部分114输出与子集S0相对应的集合密钥k(S0)、和与尾部在坐标点S上的有向边的头上的坐标点相对应的子集S1、S2、...、Sk的中间密钥t(S1)、t(S2)、...、t(Sk)。因此,对于形成有向图I的某条有向边,一旦输入与有向边的尾部所指坐标点相对应的给定中间密钥t(S0),密钥生成部分114就输出与该有向边的尾部所指的坐标点相对应的集合密钥k(S0)、和与从该有向边的尾部延伸的所有至少k条有向边的头部相对应的中间密钥t(S1)、t(S2)、...、t(Sk)。
例如,密钥生成部分114由按照基本技术的伪随机数发生器(PRSG)和控制PRSG的控制部分组成。作为密钥生成部分114的PRSG,例如,可以使用响应λ个位输入而输出(k+1)λ个位输出,以便生成集合密钥k(Si)的上述PRSG。当输入与某个坐标点(子集S0)相对应的中间密钥t(S0)时,PRSG输出与尾部在某个坐标点上的有向边的头上的坐标点(子集S1、S2、...、Sk)相对应的中间密钥t(S1)、t(S2)、...、t(Sk)、和子集S0的集合密钥k(S0)。因此,t(S1)||...||t(Sk)||k(S0)←PRSG(t(S0))。通过将PRSG的输出定界成每一个都来自左侧的λ个位,获得中间密钥t(S1)、t(S2)、...、t(Sk)和集合密钥k(S0)。
(加密部分116)
加密部分116使用集合密钥k(Si)加密用于加密内容的内容密钥mek。尽管内容密钥mek的数量是一个,但集合密钥k(Si)的数量与构成集合***ψ的子集Si的数量相同。加密部分116使用与下述的子集确定部分120从构成集合***ψ的所有子集中选择的子集相对应的集合密钥加密内容密钥。因此,加密部分116生成与各个集合密钥k(Si)相对应的加密内容密钥mek。因此,如果所选子集的数量是m,生成m个加密内容密钥mek。可替代地,加密部分116可以加密内容。例如,加密部分116可以使用内容密钥mek加密内容,或可以使用各个集合密钥k(Si)加密内容。使用集合密钥k(Si)加密内容的配置是该实施例的一个可替代例子。
(传送部分118)
传送部分118通过网络5将各种类型的信息传送给每个终端单元20。例如,传送部分118将加密部分116使用各个集合密钥k(Si)加密的内容密钥mek传送给与整个树BT的叶节点1~n相关联的所有终端单元20。可替代地,传送部分118可以将使用各个集合密钥k(Si)加密的内容,而不是加密内容密钥mek传送给终端单元20。
进一步,传送部分118在建立时将中间密钥t(S0)分发给每个终端单元20。例如,传送部分118可以参照有向图I将终端单元20所属的子集Si的中间密钥t(Si)分发给每个终端单元20。此时,传送部分118可以分发最少必要个中间密钥t,以便每个终端单元20可以导出它所属的所有子集Si的中间密钥。具体地说,传送部分118可以从构成集合***ψ的子集中提取终端单元20所属的子集Si,从与提取子集Si相对应的有向图I的坐标点中选择这样的坐标点,即终端单元20不包括在与到达该坐标点的有向边的尾部相对应的子集Sj中,并且只将与所选坐标点相对应的中间密钥t(Sj)分发给终端单元20。但是,如果作为中间密钥t(Si)的分发目的地的终端单元20所属的子集Si对应于有向图I的初始坐标点,传送部分118可以只将与初始坐标点相对应的中间密钥t(Si)分发给分发目的地用户。
更进一步,传送部分118还可以起将与集合***ψ有关的信息(例如,有关n、λ、k、y、PRSG等的信息)、和与有向图I有关的信息(例如,有向图生成部分110等生成的多个有向图I)分发给每个终端单元20的有向图信息分发部分的作用。具体地说,一旦输入,例如,每个中间密钥t(Si),传送部分118就可以根据有向图I,分发与输出给定中间密钥t(Si)和集合密钥k(Si)的PRSG的密钥生成算法(例如,密钥生成程序)有关的信息。
传送部分118对中间密钥t(Si)的分发可以使用与用于分发内容的那个不同的通信信道,在分发内容之前进行。例如,每个终端单元20的中间密钥t(Si)可以从密钥分发服务器10输出并记录在记录媒体上,而从记录媒体读取的每个终端单元20的中间密钥t(Si)可以在终端单元20的制造车间中制造终端单元20时记录到每个终端单元20中。
(子集确定部分120)
子集确定部分120确定应该禁止使用集合密钥k(Si)解密内容密钥mek或内容的、要排除的终端单元20的集合(R)(下文称为“排除用户的集合(R)”),并且从指定给整个树BT的叶节点1~n的所有终端单元20的集合(N)中删除排除用户的集合(R),从而确定允许使用集合密钥k(Si)解密内容密钥mek或内容的终端单元20的集合(N\R)(下文称为“许可用户的集合(N\R)”)。进一步,子集确定部分120确定满足许可用户的集合(N\R)={S1∪S2∪...∪Sm}的m个(m是自然数)子集S1~Sm,以便使m是最小值。
子集确定部分120可以由确定许可用户的集合(N\R)的许可用户集合确定部分和确定构成许可用户的集合(N\R)的一组子集Si的许可用户子集确定部分组成。通过将子集Si确定成使m的值最小,可以减少要保存的中间密钥t(Sm)和集合密钥k(Sm)的数量和生成那些密钥所需的计算量。
在子集确定部分120以上面的方式确定了满足许可用户的集合(N\R)={S1∪S2∪...∪Sm}的子集(S1、S2、...、Sm)之后,传送部分118将标识允许解密内容密钥mek的终端单元20的许可终端标识信息等传送给每个终端单元20。例如,许可终端标识信息可以是指示许可用户的集合(N\R)的信息、指示排除用户的集合(R)的信息、指示构成许可用户的集合(N\R)的子集(S1、S2、...、Sm)的信息、指示用于加密内容密钥mek的一个或不止一个集合密钥k(Si)的信息等。根据许可终端标识信息,终端单元20可以判定它是否被排除。
进一步,加密部分116使用与子集确定部分120确定的子集(S1、S2、...、Sm)相对应的集合密钥加密内容密钥mek,并且将加密内容密钥mek传送给每个终端单元20。
上文描述了按照本发明优选实施例的密钥分发服务器10的配置。如上所述,该配置的特征主要是密钥生成逻辑构建块的配置。尤其,该实施例具有生成决定密钥生成逻辑的有向图I的子树间有向边设置部分108配置含有基本子树的分层结构的特征。按照该实施例的子树间有向边设置部分108可以生成能够减少每个终端单元20要保存的中间密钥t(Si)的数量,但不会使用户的每个终端单元20生成集合密钥k(Si)所需的计算量增大的密钥生成逻辑(有向图)。因此,可以节约每个终端单元20保存中间密钥t(Si)所需的存储容量,和降低将中间密钥t(Si)分发给终端单元20的分发成本。
上文描述了密钥分发服务器10的部件的功能配置。尽管在这个实施例中通过在密钥分发服务器10中安装实现上面功能的程序来配置密钥分发服务器10的部件,但不局限于这样的例子,一些或所有部件可以由专用硬件构成。程序可以存储在诸如便携式存储媒体的计算机可读存储媒体中并提供给密钥分发服务器10,或可以通过诸如网络5的通信信道从外部单元传送到密钥分发服务器10。
[终端单元20的配置]
下文参照图8描述按照该实施例的终端单元20的功能配置。图8是示出按照该实施例的终端单元20的功能配置的方块图。
如图8所示,终端单元20包括接收部分124、判定部分126、密钥生成部分128和解密部分130。终端单元20被指定给整个树底部上的叶节点1~n的某一个。
(接收部分124)
接收部分124通过网络5接收从包括在密钥分发服务器10中的传送部分118传送的各种类型的信息。例如,接收部分124从密钥分发服务器10接收通过内容密钥mek或每个集合密钥k(Si)加密的内容、通过每个集合密钥k(Si)加密的内容密钥mek、给定一个或不止一个中间密钥t(Si)、与集合***ψ或有向图I有关的信息、上述的许可终端标识信息(例如,指示许可用户的集合(N\R)的信息、指示构成许可用户的集合(N\R)的子集(S1、S2、...、Sm)的信息等)等。
进一步,接收部分124可以从多个信息源中收集信息,而不仅从单个信息源接收信息。例如,接收部分124可以从有线或无线地通过网络5连接的多个信息源(例如,密钥分发服务器10)或不通过网络5地直接或间接连接的信息源(例如,像光盘单元、磁盘单元和便携式终端单元那样的信息媒体)中获取信息。因为接收部分124当然可以从另一个终端单元20接收信息,所以可以配置成与属于,例如,相同分发目的地组的其它终端单元20共享有向图I的信息。在这样的情况下,相同分发目的地组指的是授权成从,例如,与上述的整个树BT的叶节点1~n的某一个相对应的同一个或多个密钥分发服务器10分发的内容的观众用户组的一组多个终端单元20。如前所述,可以事先将中间密钥提供给终端单元20,并且由终端单元20保存。
(判定部分126)
当接收部分124接收到许可终端标识信息时,判定部分126根据接收到的许可终端标识信息判定终端单元20是否属于包括在许可用户的集合(N\R)中的子集S1~Sm的某一个。许可终端标识信息是指示许可用户的集合(N\R)的信息、指示构成集合(N\R)的子集S1~Sm的信息等。根据判定结果,判定部分26进一步判定是否允许终端单元20解密加密内容。
因此,终端单元20只保存生成与它所属的子集Si相对应的集合密钥k(Si)的中间密钥t(Si)。从而,有必要根据来自密钥分发服务器10的指示许可用户的集合(N\R)的信息或指示构成集合(N\R)的子集S1~Sm的信息,事先判定终端单元20所属的子集Si是否包括在构成集合(N\R)的子集S1~Sm中。该判定是由判定部分126作出的。例如,除了上述信息之外,用于判定的从密钥分发服务器10接收到的信息还可以是指示用于加密内容密钥mek的一个或不止一个集合密钥k(Sj)的信息。
许可终端标识信息等是事先或与内容密钥mek同时从密钥分发服务器10分发的,并且被接收部分124接收。如果判定终端单元20所属的子集Si未包括在构成许可用户的集合(N\R)的子集S1~Sm中,终止内容密钥mek的解密处理,因为不能进行从终端单元20保存的中间密钥t(Si)中生成集合密钥k(Si)的处理。相反,如果判定终端单元20所属的子集Si包括在终端单元20所属的子集S1~Sm中,终端单元20的密钥生成部分128使用PRSG从自身保存的中间密钥t(Si)中生成集合密钥k(Si)。
(密钥生成部分128)
密钥生成部分128根据从密钥分发服务器10接收到的有向图I等的信息,生成解密加密内容或内容密钥mek的集合密钥。密钥生成部分128根据从密钥分发服务器10接收到的有向图I等的信息,为与有向图I内的坐标点相对应的每个子集Si生成加密内容密钥mek的集合密钥k(Si)。具体地说,当输入与有向图I中的某个坐标点相对应的子集S的中间密钥t(S0)时,密钥生成部分128输出与子集S0相对应的集合密钥k(S0)、和与尾部在坐标点S上的每条有向边的头上的坐标点相对应的子集S1、S2、...、Sk的中间密钥t(S1)、t(S2)、...、t(Sk)。密钥生成部分128基本上具有与上述的密钥分发服务器10的密钥生成部分114相同的功能配置,因此省略对它的详细描述。
(解密部分130)
解密部分130使用集合密钥k(Si)解密内容密钥mek。具体地说,解密部分130从与集合密钥k(Si)相对应的子集Si中提取作为一个元素包括在其中的子集Sii,并且使用与子集Sii相对应的集合密钥k(Sii)解密内容密钥mek。
上文描述了终端单元20的部件的功能配置。尽管在这个实施例中通过在终端单元20中安装实现上面功能的程序来配置终端单元20的部件,但不局限于这样的例子,一些或所有部件可以由专用硬件构成。程序可以存储在诸如便携式存储媒体的计算机可读存储媒体中并提供给终端单元20,或可以通过诸如网络5的通信信道从外部单元传送到终端单元20。
如上所述,按照该实施例的终端单元20可以根据包括在上述密钥分发服务器10中的有向图生成部分110生成的特殊密钥生成逻辑(有向图I)生成所希望集合密钥k(Si)。因此,终端单元20可以减少为生成用于解密内容密钥mek等的集合密钥k(Si)而保存的中间密钥t(Si)的数量。进一步,因为由于上述的整个树BT的分层结果,有效地设置了有向图I中的有向边,所以可以减少密钥生成部分128生成集合密钥k(Si)的计算量。
[密钥分发服务器10和终端单元20的操作]
(中间密钥的分发)
下文将描述将中间密钥从密钥分发服务器10分发给每个用户的终端单元20的操作。如上所述,为了灵活地应付大量排除用户和许可用户的加入/删除,有必要将能够导出与终端单元20包括在其中的所有子集Si相对应的集合密钥k(Si)的多个中间密钥t(Si)提供给每个终端单元20。当然,应该避免提供能够导出与终端单元20不包括在其中的子集Si相对应的集合密钥k(Si)的中间密钥t(Si),最好,就终端单元20存储容量的效率而言,使所提供中间密钥t(Si)的数量最少。
因此,当根据密钥分发***100的建立将中间密钥t(Si)从密钥分发服务器10分发给终端单元20时,提取含有每个终端单元20所属的子集Si作为元素的所有有向图I。然后,如果终端单元20包括在与有向图I的初始坐标点(根)相对应的子集Si中,只将与初始坐标点相对应的中间密钥t(Si)提供给终端单元20。另一方面,如果终端单元20属于与不同于有向图I的初始坐标点的坐标点相对应的子集Si的某一个,找出这样的子集S0,即终端单元20包括在子集S0中,但不包括在作为子集S0的父母的子集parent(S0)中,并且将子集S0的中间密钥t(S0)提供给终端单元20。如果存在多个这样的子集S0,提供各个子集的中间密钥t(S0)。子集Si的父子关系通过有向边确定,有向边尾部的坐标点用作头部坐标点的父母,而有向边头部的坐标点用作尾部坐标点的子女。在下文中,将到达某个坐标点S0的有向边的尾部上的坐标点parent(S0)称为父坐标点。如果某个坐标点S0是有向图H的起点,则不存在父坐标点,而如果不是有向图H的起点,则只存在一个父坐标点。在一些情况下,在一个有向图H中,可能存在多个这样的坐标点,即用户u包括在与之相对应的子集中,但用户u不包括在与它的父坐标点相对应的子集中。
下文参照图11的例子具体描述中间密钥的分发方法。
(例1)考虑分发给用户1的终端单元20的中间密钥t(Si)。首先,作为搜索含有用户1所属的子集Si作为元素的有向图I的结果,找到有向图I(1→7)和有向图I(a→h)。用户1的终端单元20属于作为有向图I(1→7)的初始坐标点的子集[1,1]。因此,将中间密钥t([1,1])提供给用户1。
虽然用户1的终端单元20属于有向图I(a→h)的子集[a,a],但因为从有向图I(1→7)到有向图I(a→h)设置了图间有向边,所以如果保存了中间密钥t([1,1]),用户1的终端单元20可以根据有向图I(1→7)和图间有向边导出中间密钥t([a,a])。因此,没有必要将中间密钥t([a,a])提供给用户1的终端单元20。于是,用户1的终端单元20保存的中间密钥只是中间密钥t([1,1])。
与用户1的终端单元20一样,对于有向图I(1→7),将子集[1,7]={1,2,...,7}的中间密钥或能够使用PRSG导出子集[1,7]的中间密钥的中间密钥提供给用户1~7的终端单元20。在这种情况下,因为如上所述,从有向图I(1→7)到有向图I(a→h)设置了图间有向边,所以用户1~7的终端单元20可以通过将子集[1,7]的中间密钥应用于PRSG导出中间密钥t([a,a]),并且进一步从中间密钥t([a,a])中导出中间密钥t([a,*])(注意,*是b~h的某一个)。因此,没有必要将有向图I(a→h)的中间密钥提供给用户1~7的终端单元20。
(例2)接着,考虑分发给用户12的终端单元20的中间密钥。首先,作为搜索含有用户12的终端单元20所属的子集Si作为元素的有向图I的结果,找到有向图I(a→h)、I(b←h)、I(b←d)、I(b←b)、I(9←15)、I(10←16)和I(10←12)。观察有向图H(10→16),用户12的终端单元20不属于初始坐标点上的子集[16,16],但属于第5和随后坐标点上的子集[16,12]、[16,11]、[16,10]。在那些坐标点当中,在它们的父坐标点上不包括用户12的坐标点只有[16,12]和[16,11]。具体地说,用户12不包括在作为包括用户12的坐标点[16,12]和[16,11]的父坐标点parent([16,12])和parent([16,11])的坐标点[16,13]中。因此,将t([16,12])和t([16,11])提供给用户12作为与有向图H(10←16)相对应的中间密钥。
同样,为其它有向图I(a→h)、I(b←h)、I(b←d)、I(9←15)和I(10←12)选择相应中间密钥,并且将其提供给用户12。但是,因为从I(10←16)到I(b←b)设置了图间有向边,所以用户12的终端单元20可以使用上面的中间密钥t([16,13])导出中间密钥t([b,b]),从而没有必要将中间密钥t([b,b])提供给用户12的终端单元20。因此,将总共七个中间密钥提供给用户12。
下面参照图12简要总结一下直到将中间密钥分发给每个用户的终端单元的处理。图12是示出按照该实施例,根据***建立在密钥分发服务器10中分发中间密钥的处理流程的流程图。
如图12所示,密钥分发***100的密钥分发服务器10首先设置各种各样参数等。例如,密钥分发服务器10确定指定给终端单元20的整个树BT的叶节点的数量n(用户的数量)、集合密钥和中间密钥的位数λ、指示整个树BT的分层的数量的参数y、给定参数k、PRSG的伪随机数生成算法等,并且向所有用户的终端单元20公布它们(S202)。这样,除了在上述基本方案中公布的参数n、λ、k和PRSG算法之外,该实施例还确定并公布了指示整个树BT的分层的数量的参数y。
接着,密钥分发服务器10将指定给叶节点的终端单元20的集合划分成给定子集Si,确定用并集表示的集合***ψ(参见上面表达式(2)),并公布集合***ψ(S204)。
然后,密钥分发服务器10生成上述的多个有向图I,确定由那些有向图I的集合组成的结构T,并且公布多个有向图I的结构T(S206)。进一步,密钥分发服务器10确定与构成集合***ψ的每个子集相对应的中间密钥(S208)。此后,密钥分发服务器10使用确定的中间密钥和密钥生成部分114的PRSG导出与其它坐标点相对应的中间密钥,并且向每个用户分发必要的中间密钥的终端单元20,以便导出与包括每个终端单元20的所有子集相对应的集合密钥(S210)。然后,终端单元20从密钥分发服务器10接收有关中间密钥等的信息,并且安全地将它存储到安全存储部分208中。
上文描述了按照该实施例在建立时对中间密钥的分发方法。如果使用上面的分发方法,则分发每个许可用户的终端单元生成集合密钥所需的最少个中间密钥,从而能够减少密钥分发服务器10与终端单元20之间的通信量和每个用户的终端单元20中中间密钥的存储容量。
(内容密钥的分发)
下文简要总结一下按照该实施例在密钥分发服务器10中分发加密内容密钥mek的处理流程。因为按照该实施例分发内容密钥的方法基本上与按照前述基本技术的内容分发方法相同,所以回头参照图6来描述。
如图6所示,在分发内容密钥的时候,按照该实施例的密钥分发服务器10首先确定排除用户的集合(R)从而获得许可用户的集合(N\R)(S112)。接着,密钥分发服务器10从构成集合***ψ的子集中选择含有(N\R)的并集的m个子集Si(i=1、2、...、m),以便使m的值最小(S114)。然后,密钥分发服务器10使用分别与所选子集Si相对应的m个集合密钥k(Si)加密内容密钥mek(S116)。进一步,密钥分发服务器10将指示许可用户的集合(N\R)或它的子集Si的信息和m个加密内容密钥mek分发给所有用户的终端单元20(S118)。
上文描述了按照该实施例的密钥分发服务器10中内容密钥mek的加密方法和分发方法。如果使用上面的加密方法,就可以有效地选择子集Si,以便使集合密钥的数量是最少必要个。因为从此使用最少必要个(m个)集合密钥加密内容密钥mek,所以可以节约加密所需的计算量,并且还减少了要分发的加密内容密钥的数量,从而减少了通信量。
(内容密钥的解密)
下文描述按照该实施例在每个用户的终端单元20中解密加密内容密钥的处理流程。因为按照该实施例解密内容密钥的方法基本上与按照前述基本技术的内容密钥解密方法相同,所以回头参照图7来描述。
如图7所示,每个用户的终端单元20首先从密钥分发服务器10接收m个加密内容密钥mek和诸如指示许可用户的集合(N\R)的信息或指示m个子集Si(i=1、2、...、m)的信息的许可终端标识信息(S120)。接着,终端单元20根据该许可终端标识信息搜索它所属的子集Si(S122),并且判定它是否属于m个子集Si的某一个(步骤S124)。
结果,如果终端单元20找出它所属的子集Si,它就根据密钥分发服务器10事先提供的中间密钥和有向图I,使用上述的密钥生成部分128的PRSG导出与子集Si相对应的集合密钥k(Si)(S126)。PRSG的配置与前述相同。如果事先将与子集Si相对应的中间密钥t(Si)从密钥分发服务器10提供给终端单元20,并且终端单元20保存它,则它就可以通过一次性地使用PRSG导出集合密钥k(Si)。另一方面,如果终端单元20未保存中间密钥t(Si),它可以通过重复地使用PRSG导出所希望集合密钥k(Si)。此后,终端单元20使用这样导出的集合密钥k(Si)解密加密内容密钥mek,从而能够解密加密内容(S128)。
另一方面,如果终端单元20在步骤S124中判定它不属于子集Si的某一个,则终端单元20显示和输出:“它被排除在允许访问内容的终端单元20之外(即,它是排除用户)”(S130),并且结束内容密钥mek的解密处理。
因为如上所述的按照该实施例的内容密钥解密处理不仅通过将整个树BT分层成基本子树适当地配置了有向图I的有向边,而且设置了图间有向边,所以与前述的基本技术相比,可以在终端单元20中减少使用PRSG获得中间密钥和集合密钥的计算量。
[本发明的优点]
上文详细描述了按照该实施例的密钥分发***100。在这个实施例中,将由终端单元20的子集组成的集合***ψ变更成用上面的表达式(2)表示,从而与前述的基本技术相比,改进了有向图I。该实施例将向其指定所有终端单元20的整个大树BT划分成小基本子树,以便将它分层成y层,和在每个基本子树中使用按照基本技术的密钥导出方法,并且进一步在与不同基本子树相对应的子集之间设置有向图I的有向边,和应用使用伪随机数发生器PRSG的密钥导出方法。
这种配置能够减少每个用户的终端单元20要保存的中间密钥的数量,和减少导出密钥所需的终端单元20的计算量。终端单元20要保存的中间密钥的数量存在k*log(n)的位置关联,和导出密钥所需的终端单元20的计算量存在k*logn(1/k))的位置关联。因为这个实施例通过将整个大树BT划分成n(1/y)个叶节点的小基本子树以便减少树结构的叶节点的数量n来配置集合***ψ和有向图I,所以可以减少终端单元20要保存的密钥的数量、和导出密钥所需的计算量。
下文参照图13在按照前述基本技术的密钥分发方案和按照该实施例的密钥分发方案之间比较终端单元20要保存的中间密钥的数量。图13(A)是示出在按照前述基本技术的密钥分发方案中每个终端单元要保存的中间密钥的数量(如图4所示的n=64和k=6的情况)的表格,而图13(B)是示出在按照该实施例的密钥分发方案中每个终端单元20要保存的中间密钥的数量(如图11所示的n=64、y=2和k=3的情况)的表格。
如图13所示,当比较按照该实施例的密钥分发方案和按照基本技术的密钥分发方案时,虽然在用户1和64的终端单元20中在两种方案之间中间密钥t的数量是相同的,即,1个和2个,但在其它用户2~63的终端单元20中密钥的数量在按照该实施例的密钥分发方案中少于在按照基本技术的密钥分发方案中。进一步,虽然在按照基本技术的密钥分发方案中所有终端单元20要保存的密钥的总数是705个,但在按照该实施例的密钥分发方案中是400个。更进一步,虽然在按照基本技术的密钥分发方案中每个终端单元20的平均密钥数是大约11.02个,但在按照该实施例的密钥分发方案中是6.25个。这样,按照该实施例的密钥分发方案与按照基本技术的密钥分发方案相比,能够将密钥的数量减少到大约56.7%,因此使每个终端单元20要保存的密钥的数量显著减少,并且减轻了终端单元20的存储负担。
接着,对在终端单元20中解密内容密钥mek所需的终端单元20的计算量作如下研究。计算量的最差值用有向图中从初始坐标点(根)到最远最后坐标点(有向边的叶)的有向边的数量(即,设置有向边时的跳跃次数)表示。在如图4的例子所示的按照基本技术的密钥分发方案中,为了从有向图H(1→64)的初始坐标点[1,1]到达最后坐标点[1,64],有必要穿过11条有向边(进行11次跳跃),这意味着运行PRSG多达11次。
另一方面,在如图11的例子所示的按照该实施例的密钥分发方案中,在有向图H(1→7)和H(a→h)中从初始坐标点[1,1]到最后坐标点[1,h]最远,而所需的有向边的数量(即,跳跃次数)是10,小于按照基本技术的密钥分发方案中的11。这样,按照该实施例的密钥分发方案与按照基本技术的密钥分发方案相比,能够减少在解密等时计算密钥所需的每个终端单元20中的计算量。
在按照基本技术的密钥分发方案中,如果使参数k的值较小,可以减少每个终端单元20要保存的密钥的数量,因为在图4中删除了长的有向边(长距离跳跃),而只保留了短的有向边(短距离跳跃);但是,这引起了每个有向图H中从初始坐标点到最后坐标点的有向边的数量所代表的终端单元20中的计算量增大的问题。
如上所述,在按照该实施例的密钥分发方案中,即使终端单元20(接收者)的数量很大,也可以减少终端单元20要保存的密钥的数量和使用加密密钥解密时所需的终端单元中的计算量两者。
[加密密钥分发***100的应用]
下文描述上述加密密钥分发***100的应用。
(应用1)
首先,作为应用1,在图14中示出了广播加密***300的配置。
图14是示出使用广播卫星的广播加密***的配置的方块图。在广播加密***300中,通过广播信道将加密数据(所谓的密文)传送到接收器310。广播加密***300中的广播信道是,例如,卫星广播分发信道。作为密文传送的数据是包含,例如,加密密钥、音频数据、视频数据、文本数据等的内容。***广播电台302中的广播信托中心304将数据传送到广播卫星306。广播信托中心304选择用于加密的密钥或控制例如数据的加密和数据的分发。广播卫星306广播数据。安装在住宅308中的接收器310包括例如卫星广播接收器,并且接收所广播的数据。多个其它接收器310也可以接收广播的数据。这样,广播信托中心304可以将数据传送给由接收器310组成的接收器组中的每个接收器310。如后所述,广播信托中心304以只有授权接收器310才能解密广播数据的方式加密广播数据。尽管图14示出了使用广播卫星306的广播***,但也可以使用其它广播信道,譬如闭路电视和计算机网络。
上文描述了作为加密密钥分发***100的一种应用的广播加密***300的配置。下面简要总结一下与加密密钥分发***100的关系,广播信托中心304对应于密钥分发服务器10(按照本发明的信息处理单元),和接收器310对应于终端单元20(按照本发明的终端单元)。广播卫星306作为连接它们的网络的媒介。
(应用2)
接着,作为应用2,在图15中示出了广播加密***400的配置。
图15是示出使用数据媒体的广播加密***400的配置的方块图。在广播加密***400中,广播信道是数据存储媒体的分发。媒体制造商402中的广播信托中心404将数据存储在诸如只读存储媒体(例如,CD-ROM、DVD-ROM等)和可重写存储媒体(例如,CD-RW、DVD-RW等)之类的存储媒体406的每件数据媒体中。在只读存储媒体中,广播信托中心404记录加密内容密钥和加密内容,以便只有授权用户才能解密数据和访问加密内容(例如,声音、视频、文本等)。另一方面,在可重写存储媒体中,广播信托中心404记录加密内容密钥,以便只有授权记录单元才能将相应数据记录到记录媒体中。媒体制造商402将存储媒体406传送到诸如零售商店等的分发中间商。分发中间商408将存储媒体410提供给住宅412中的接收器414。例如,分发中间商408将存储媒体410销售给某个人,这个人将存储媒体410拿到住宅412中,并且将存储媒体410***接收器414中。例如,接收器414可以是诸如CD播放器、DVD播放器和计算机之类,读取和播放记录在存储媒体410中的数据的单元。作为另一个特例,接收器414可以是能够将数据记录到存储媒体410中和从存储媒体410中读取数据的盘单元,如DVD-RW驱动器。广播信托中心404以只有授权接收器414才能解密加密数据的方式加密数据。
上文描述了作为加密密钥分发***100的一种应用的广播加密***400的配置。下面简要总结一下与加密密钥分发***100的关系,广播信托中心404对应于密钥分发服务器10(按照本发明的信息处理单元),和接收器414对应于终端单元20(按照本发明的终端单元)。进一步,取代连接它们的网络,存在由分发中间商408分发的存储媒体406和410作为媒介。
尽管上面参照附图描述了本发明的优选实施例,但本发明当然不局限于此。对于本领域的普通技术人员来说,显而易见,可以不偏离权利要求书范围地作出各种各样的改变和修改,因此,这意味着这些改变和修改也包含在本发明的技术范围之内。
例如,在上述树结构设置部分102中假设了树枝从顶部到底部越来越宽的树结构,但不局限于此,树结构可以是这样的,即树枝沿着任意方向,譬如,从底部到顶部、从左侧到右侧和从右侧到左侧越来越宽。在这样的情况下,有必要改变与各个中间节点相关联的子集的定义以便适应它。但是,该改变是简单地旋转通过上述树结构设置部分102设置的树结构,在任何情况下都意味着完全相同。进一步,尽管上述有向边设置部分106和子树间有向边设置部分108通过设置从左到右或从右到左的坐标轴来构建有向图I′和I,但坐标轴的方向可以相反或改变成非水平方向、诸如垂直方向的任意方向。因此,尽管在上面的描述中为了方便起见根据垂直方向或水平方向定义参数,但根据一般人或本领域普通技术人员的常识,即使将树结构或有向图旋转或反向,改变了垂直和水平关系,也意味着包含在相同技术范围之内。
进一步,尽管在上述实施例中,如图9所示,将叶节点的数量n=64的整个树BT分层成y=2个层,但本发明不局限于此,可以将指示分层层数的参数y设置成任何自然数,和可以将整个树分层成三层或更多层。例如,可以将n=64的整个树BT划分成高度为2和含有四个叶节点的基本子树,以便将它分层成y=3个层。在这样的情况下,可以以这样的方式配置树结构,即,将整个树BT划分成顶层的一个基本子树、中间层的四个基本子树和底层的十六个基本子树,使中间层的基本子树的根节点与顶层的基本子树的叶节点一致,和使底层的基本子树的根节点与中间层的基本子树的叶节点一致。
更进一步,通过子树间有向边设置部分108设置在不同基本子树的有向图I之间设置的有向边的技术不局限于图11的例子,各种各样的设计改变都是可行的。尽管就减少密钥的数量而言,以这样的方式设置子树之间的有向边是优选的,即,使下层的基本子树中的有向图的子集包括在上层的基本子树中的有向图I的子集中,但不局限于此,可以与包含关系无关地设置有向边。
<第二实施例>
下文描述按照本发明第二实施例的加密密钥分发方案。按照该实施例的加密密钥分发方案通过生成含有较长有向边的有向图,能够减少终端单元20中所需的计算量。在下文中,将详细描述实现按照该实施例的加密密钥分发方案的密钥分发服务器10和终端单元20的功能配置、和该加密密钥分发方案的特征和优点。
[密钥分发服务器10的配置]
首先,下文参照图16详细描述按照该实施例的密钥分发服务器10的配置。图16是示出按照该实施例的密钥分发服务器10和终端单元20的配置的方块图。
如图16所示,密钥分发服务器10包括树结构设置部分154、坐标轴设置部分156、有向图生成部分160、初始中间密钥设置部分162、密钥生成部分164、加密部分166、传送部分168、和子集确定部分170。尤其,树结构设置部分154、坐标轴设置部分156和有向图生成部分160统称为密钥生成逻辑构建块。同样,初始中间密钥设置部分162和密钥生成部分164统称为密钥生成块。
下文描述构成密钥生成逻辑构建块的元件。密钥生成逻辑构建块进行与上述的[基本技术的描述]中(树结构的设置)和(有向图的生成)相对应的处理。
(树结构设置部分154)
树结构设置部分154配置由指定号码1~n(n是自然数)的n个叶节点、根节点、和与根节点和叶节点不同的多个中间密钥t(S0)组成的二叉树,并且在位于某个中间节点v或根节点v的下层上的多个叶节点当中,将位于左端的叶节点的号码设置成lv,而将位于右端的叶节点的号码设置成rv。进一步,树结构设置部分154将集合(1→n)和集合(2←n)指定给根节点,如果某个中间节点v位于它的父节点左侧,则将集合(lv+1←rv)指定给该中间节点,而如果中间节点v位于它的父节点右侧,则将集合(lv→rv-1)指定给该中间节点。
如上所述,树结构设置部分154具有能够构建m层树结构的配置,例如,假设m=2的情况(二叉树),它可以构建与按照基本方案(图3)的二叉树结构相同的树结构。因此,通过树结构设置部分154构建的树结构的每个节点的含义基本上与按照前述基本方案构建的二叉树结构的每个节点的含义相同。尽管为了便于描述起见,下文只描述二叉树结构,但不局限于此。
(坐标轴设置部分156)
坐标轴设置部分156设置在水平坐标轴上以包含度从左到右越来越大的方式排列与包括在集合(1→n)中的子集相关联的坐标点的与根节点相对应的第一水平坐标轴。接着,坐标轴设置部分156设置在水平坐标轴上以包含度从右到左越来越大的方式排列与包括在集合(2←n)中的子集相关联的坐标点的与根节点相对应的第二水平坐标轴。然后,对于每个中间节点,坐标轴设置部分156设置在水平坐标轴上以包含度从左到右越来越大的方式排列与包括在集合(lv→rv-1)中的子集相关联的坐标点的与某个中间节点v相对应的第三水平坐标轴。进一步,坐标轴设置部分156设置在水平坐标轴上以包含度从右到左越来越大的方式排列与包括在集合(lv+1←rv)中的子集相关联的坐标点的与某个中间节点v相对应的第四水平坐标轴。此后,坐标轴设置部分156放置每一个在位于第三水平坐标轴右端的坐标点的右侧和在位于第二和第四水平坐标轴左端的坐标点的左侧上的两个临时坐标点,将位于第一水平坐标轴右端的坐标点设置成第一临时坐标点,并且将第二临时坐标点放置在第一临时坐标点的右边。
如上所述,坐标轴设置部分156设置构建与树结构设置部分154配置的树结构的各个节点相对应的有向图H的坐标轴。第一水平坐标轴指示与集合(1→n)相对应的坐标轴,第二水平坐标轴指示与集合(2←n)相对应的坐标轴,第三水平坐标轴指示与集合(lv→rv-1)相对应的坐标轴,和第四水平坐标轴指示与集合(lv+1←rv)相对应的坐标轴。因为第三水平坐标轴和第四水平坐标轴是针对每个中间节点v设置的,所以分别设置了数根坐标轴。具体地说,设置了数量与中间节点的数量相同的第三水平坐标轴和第四水平坐标轴。
(有向图生成部分160)
有向图生成部分160设置给定整数k和计算满足n(x-1)/k<(rv-lv+1)≤nx/k的整数x。接着,对于整数i=0~x-1中的每一个,有向图生成部分160通过耦合长度为ni/k的一条或多条向右有向边,形成尾部在第一和第三水平坐标轴上的最左坐标点上的有向路径,并且进一步通过耦合长度为ni/k的一条或多条向左有向边,形成尾部在第二和第四水平坐标轴上的最右坐标点上的有向路径。然后,对于第一到第四水平坐标轴的每一根,有向图生成部分160排除尾部或头部在每个临时坐标点上的所有有向边。进一步,有向图生成部分160从到达第一到第四水平坐标轴上的每个坐标点的有向边中排除除了最长有向边之外的其它有向边,从而生成分别与集合(1→n-1)、集合(2←n)、集合(lv+1→rv)和集合(lv←rv-1)有关的有向图。此后,有向图生成部分160将头部在第一水平坐标轴上的第一临时坐标点上的长度为1的有向边加入与集合(1→n-1)有关的有向图中,从而生成与集合(1→n)有关的有向图。
如上所述,有向图生成部分160通过与基本方案类似的方法生成有向图。但是,与基本方案的有向图相比,有向图生成部分160可以生成由较长有向边组成的有向图。如后所述,这减少了每个用户导出集合密钥所需的计算量。下文参照图17详细描述由有向图生成部分160进行的处理的处理流程。图17是示出有向图生成部分160生成有向图的处理流程的流程图。
参照图17,有向图生成部分160通过如下所述的步骤生成有向图。下文通过例示描述生成与集合(lv+1→rv)相对应的有向图I(lv+1→rv)的方法。
(步骤1;S140)有向图生成部分160通过以包含度从左到右越来越大的方式排列它们将包括在集合(lv+1→rv)中的子集放置在水平直线(水平坐标轴)上。精确地说,有向图生成部分160将作为集合(lv+1→rv)元素的子集指定给水平坐标轴上的各个坐标点,并且以指定子集的包含度朝右越来越大的方式放置坐标点。然后,有向图获取部分160在水平坐标轴上最右的坐标点的右侧放置两个临时坐标点。坐标轴上从最左坐标点到最右临时坐标点的长度Lv是Lv=rv-lv+1。此时,有向图生成部分160计算满足n(x-1)/k<Lv≤nx/k的整数x(1≤x≤k)。
(步骤2;S142)有向图生成部分160将整数值i设置成计数,并且使计数i从0变化到x-1地进行下列操作。从水平坐标轴左端的起点开始,有向图生成部分160重复设置延伸到与该坐标点相隔ni/k的坐标点的向右有向边(跳跃到与该坐标点相隔ni/k的坐标点),直到有向边的头部到达水平坐标轴右端或它的左侧的临时坐标点,或下一个设置的有向边的头部超过临时坐标点的某一个为止。
(步骤3;S144)有向图生成部分160从上面(步骤2)创建的有向边中删除到达临时坐标点的所有有向边。
(步骤4;S146)如果存在多条到达某个坐标点的有向边,有向图生成部分160删除除最长有向边之外的所有其它有向边。
通过上面的过程,有向图生成部分160可以生成由与基本方案相比较长的有向边组成的有向图。进一步,对于构成树结构的所有中间节点和根节点,有向图生成部分160通过与上面有向图I(lv→rv-1)相同的方法生成有向图。例如,有向图生成部分160生成与某个中间节点v相对应的有向图I(lv+1←rv),并且进一步生成与根节点相对应的有向图I(1→n)和I(2←n)。有向图I(lv+1←rv)和I(2←n)是在以包括在每个图中的子集的包含度朝“左向”越来越大的方式排列坐标点的水平坐标轴上形成的。因此,通过上面(步骤1)设置的水平坐标轴上的坐标点排列规则相反。进一步,形成有向图I(lv+1←rv)和I(2←n)的两个临时坐标点被放置在水平坐标轴上最左的坐标点的左侧。通过将有向边E([1,n-1],[1,n])加入有向图I(1→n-1)中生成有向图I(1→n)。
通过使用上述的有向图生成方法,生成如图18所示的有向图I。图18示出了根据如图3所示的叶节点的数量n=64的完全二叉树设置参数k=6时形成的有向图I。
首先,比较根据基本方案生成的有向图H(图4)和按照该实施例的有向图I(图18)得出,有向图I包括较长有向边。当作出有关最长有向路径V([1,1],[1,64])的比较时,虽然有向图H由11条有向边组成,但有向图I只由6条有向边组成。因此,可以肯定,有向图生成部分160生成集合密钥所需的计算量减少了。同样,在图19中示出了在参数k被设置成k=3的情况下的有向图I。
下文简要描述针对每个有向图评估每个用户所需的集合密钥的数量的评估方法。首先,为了选择每个用户要保存的中间密钥,有必要提取用户u所属的有向图。具体地说,从构成树结构的中间节点中提取与用户u相对应的叶节点u包括在位于下层的叶节点中的所有中间节点,并且选择与那些中间节点相对应的有向图。因为所有叶节点都存在于根节点的下层上,所以当然选择与根节点相对应的有向图。如果包括n个叶节点的树结构通过层来分类,存在一个根层、一个叶层、和log(n)-1个中间节点层。如图3所示,在每个中间节点层上只有一个包括与某个用户u相对应的子组作为元素的有向图I。因此,存在包括与根节点相关联的两个有向图的最少log(n)+1个有向图作为目标。
进一步,对于每个有向图,用户要保存的中间密钥的最大数量由其尾部位于一个坐标点上的有向边的最大数量决定。因此,对于某个有向图的每个坐标点,计数从一个坐标点开始的有向边的数量,当提取出号码最大的坐标点时,其尾部在该坐标点上的有向边的数量等于用户要保存的中间密钥的最大数量。至少对于有向图,用户无需保存超过最大数量的中间密钥。进一步,容易理解,根据有向图生成逻辑,其尾部在每个坐标点上的有向边的数量不会超过参数k。
结果,用户要保存的中间密钥的数量最多不会超过k*(log(n)+1)。因为用户的数量足够大,密钥数量的上限一般通过O(k*log(n))评估。但是,该评估值实际上是过高评估的,如果有关,例如,基本方案的情况计算出更具体的评估值,密钥数量的上限通过下列表达式(3)表示。在按照该实施例的密钥分发方案中,密钥数量的评估模型也是下列表达式(3),用户要保存的中间密钥的数量没有变化。
[表达式3]
另一方面,每个用户生成集合密钥所需的计算量的评估取决于构成有向图的有向路径的长度。具体地说,随着形成每条有向路径的有向边的数量减少,每个用户的计算量也减少。例如,在按照基本方案的有向图H的情况下,最长有向路径是有向图H(1→n)的有向路径V([1,1],[1,n])。该有向路径包括(2*k-1)*(n1/k-1)条有向边。另一方面,在按照该实施例的有向图I的情况下,最长有向路径是有向图I(1→n)的有向路径V([1,1],[1,n]),该有向路径包括(k*(n1/k-1)条有向边。因此,与基本方案相比,该实施例能够将用户的每个终端单元所需的计算量减少大约一半。
上文描述了生成不会使每个用户保存的中间密钥的数量增加地能够减小生成集合密钥所需的计算量的最差值的有向图的逻辑。上述的密钥生成逻辑(有向图)的构建主要由构成密钥分发服务器10的密钥生成逻辑构建块实施。但是,为了根据上面的密钥生成逻辑进行加密密钥分发,其它元件也是必要的。因此,下文回头参照图16描述其它元件。
回头参照图16,除了上述的密钥生成逻辑构建块之外,密钥分发服务器10还包括初始中间密钥设置部分162、密钥生成部分164、加密部分166、传送部分168和子集确定部分170。
(初始中间密钥设置部分162)
初始中间密钥设置部分162针对与树的每个中间节点相对应的每个有向图I,生成与有向图I的初始坐标点相对应的中间密钥。例如,初始中间密钥设置部分162可以使用伪随机数发生器生成随机数,并且将随机数设置成与上面初始坐标点(根)相对应的每个中间密钥,或可以将给定数值设置成每个中间密钥。
(密钥生成部分164)
对于构成有向图I的某条有向边,当输入指定给有向边的尾部所指的坐标点的给定中间密钥时,密钥生成部分164输出与有向边的尾部所指的坐标点相对应的集合密钥、和与从该有向边的尾部延伸的所有有向边的头部相对应的中间密钥。因此,密钥生成部分164对应于基本方案的PRSG。但是,密钥生成部分164与基本方案的PRSG的不同之处在于,它根据有向图生成部分160生成的有向图I输出中间密钥。如果将密钥生成部分164表示成与PRSG相同,当输入与有向图I的某个坐标点S0相对应的中间密钥t(S0)时,它输出与尾部在该坐标点(对应于子集S0)上的有向边的头部相对应的中间密钥t(S1)、t(S2)、...、t(Sm)、和集合密钥k(S0)。注意,m指示尾部在某个坐标点S0上的有向边的数量。
(加密部分166)
加密部分166使用集合密钥加密用于内容密钥。尽管内容密钥的数量是一个,但集合密钥的数量与构成集合***Φ的子集的数量相同。因此,加密部分166使用构成集合***Φ的所有子集的相应集合密钥加密内容密钥。因此,加密部分166生成与各个集合密钥相对应的加密内容密钥。于是,如果构成集合***Φ的子集的数量是m,生成m个加密内容密钥。可替代地,加密部分166可以加密内容。例如,加密部分166可以使用内容密钥加密内容,或可以使用各个集合密钥加密内容。使用集合密钥加密内容的配置是该实施例的一个可替代例子。
(传送部分168)
传送部分168将加密部分166加密的内容密钥传送给与叶节点相对应的所有用户。进一步,传送部分168可以参照上述有向图I将中间密钥传送给每个用户。此时,传送部分168可以分发最少必要个中间密钥,以便每个用户可以导出与它所属的子集相对应的中间密钥。具体地说,传送部分168可以从构成集合***Φ(参见上面表达式(1))的子集中提取中间密钥的分发目的地用户所属的子集,从与提取子集相对应的有向图I的坐标点中选择这样的坐标点,即分发目的地用户不包括在与到达该坐标点的有向边的尾部相对应的子集中,并且只将与所选坐标点相对应的中间密钥分发给分发目的地用户。但是,如果中间密钥的分发目的地用户所属的子集对应于有向图I的初始坐标点,传送部分168可以只将与初始坐标点相对应的中间密钥分发给分发目的地用户。进一步,传送部分168还可以起将有向图I的信息分发给每个用户的有向图信息分发部分的作用。具体地说,一旦输入每个中间密钥,传送部分168就可以根据有向图I,分发与输出给定中间密钥和集合密钥的PRSG的密钥生成算法(例如,密钥生成程序)有关的信息。
(子集确定部分170)
子集确定部分170确定应该禁止解密内容或内容密钥的排除用户的集合(R),并且通过使用从与有向图I的坐标点相对应的子集中选择的给定子集的并集从所有用户的集合(N)中删除排除用户的集合(R),定义许可用户的集合(N\R),然后以使构成许可用户的集合(N\R)的子集的数量最少的方式确定构成许可用户的集合(N\R)的一组子集。子集确定部分170可以由确定许可用户的集合(N\R)的许可用户集合确定部分和确定构成许可用户的集合(N\R)的一组子集的许可用户子集确定部分组成。
在子集确定部分170以上面的方式确定了构成许可用户的集合(N\R={S1∪S2∪...∪Sm};m是自然数)的子集(S1、S2、...、Sm)之后,传送部分168将指示许可用户的集合(N\R)或构成许可用户的集合(N\R)的子集(S1、S2、...、Sm)的信息分发给每个用户。进一步,加密部分166使用与子集确定部分170确定的子集(S1、S2、...、Sm)相对应的集合密钥加密内容或内容密钥,而传送部分168将加密内容或内容密钥传送给每个用户。
上文描述了按照本发明优选实施例的密钥分发服务器10的配置。如上所述,该配置的特征主要是密钥生成逻辑构建块的配置。尤其,该实施例在生成决定密钥生成逻辑的有向图I的有向图生成部分160的配置方面具有特征。按照该实施例的有向图生成部分160可以生成能够减少每个终端单元生成集合密钥所需的计算量,但不会使每个用户的终端单元要保存的密钥的数量增加的密钥生成逻辑(有向图)。
[终端单元20的配置]
下文参照图16描述按照该实施例的终端单元20的配置。图16是示出终端单元20的配置的方块图。
参照图16,终端单元20包括接收部分174、判定部分176、密钥生成部分178和解密部分180。终端单元20对应于上述的用户。
(接收部分174)
接收部分174接收从包括在密钥分发服务器10中的传送部分168传送的信息。例如,接收部分174从密钥分发服务器10接收分发的内容、加密内容密钥、给定中间密钥、与有向图I有关的信息、与许可用户有关的信息等。进一步,接收部分174可以从多个信息源中收集信息,而不仅从单个信息源接收信息。例如,接收部分174可以从通过有线或无线网络连接的多个信息源(例如,密钥分发服务器10)或不通过网络地直接或间接连接的信息源(例如,像光盘单元、磁盘单元和便携式终端单元那样的信息媒体)中获取信息。因为接收部分174当然可以从另一个终端单元20接收信息,所以可以配置成与属于,例如,相同分发目的地组的其它终端单元20共享有向图I的信息。在这样的情况下,相同分发目的地组指的是授权成从与对应于上述树结构的叶节点的用户的集合相对应的同一个或多个密钥分发服务器10分发的内容的观众用户的一个组。
(判定部分176)
判定部分176判定是否作为元素包括在与集合密钥相对应的子集的某一个中。因为终端单元20只保存生成与它所属的子集相对应的集合密钥的中间密钥,所以有必要根据有关密钥分发服务器10用于加密内容或内容密钥的集合密钥的信息事先判定它所属的子集是否包括在与集合密钥相对应的子集中。这样的判定由判定部分176作出。有关集合密钥的信息在与内容密钥相同或不同的时刻从密钥分发服务器10分发,并且被接收部分174接收。如果判定与所属的子集相对应的集合密钥未包括在用于加密的集合密钥中,终端单元20不进行使用自身保存的中间密钥生成集合密钥的处理地结束内容密钥的解密处理。相反,如果找到与所属的子集相对应的集合密钥,终端单元20使用自身保存的中间密钥和使用PRSG生成集合密钥。
(密钥生成部分178)
对于构成有向图I的某个有向边,当输入指定给有向边的尾部所指的坐标点的给定中间密钥时,密钥生成部分178输出与有向边的尾部所指的坐标点相对应的集合密钥、和与从该有向边的尾部延伸的所有有向边的头部相对应的中间密钥。因此,密钥生成部分178对应于包括在密钥分发服务器10中的密钥生成部分164。如果将密钥生成部分178表示成PRSG,如果输入与有向图I的某个坐标点S0相对应的中间密钥t(S0),它输出与尾部在坐标点S0上的有向边的头部相对应的中间密钥t(S1)、t(S2)、...、t(Sk)、和集合密钥k(S0)。注意,m指示尾部在坐标点S0上的有向边的数量。有向图I的信息可以从密钥分发服务器10中获得,或可以存储在包括在终端单元20中的存储部分(未示出)中。
(解密部分180)
解密部分180使用集合密钥解密内容密钥。具体地说,解密部分180从与集合密钥相对应的子集中提取作为一个元素包括在其中的子集,并且使用与子集相对应的集合密钥)解密内容或内容密钥。
上文描述了按照该实施例的终端单元20的配置。如上所述,终端单元20可以根据包括在上述密钥分发服务器10中的有向图生成部分160生成的特殊密钥生成逻辑(有向图I)生成所希望集合密钥。因此,终端单元20可以减少生成用于解密内容密钥的集合密钥所需的计算量。
尽管上面参照附图描述了本发明的优选实施例,但本发明当然不局限于此。对于本领域的普通技术人员来说,显而易见,可以不偏离权利要求书范围地作出各种各样的改变和修改,因此,这意味着这些改变和修改也包含在本发明的技术范围之内。
例如,在上述树结构设置部分154中假设了树枝从顶部到底部越来越宽的树结构,但不局限于此,树结构可以是这样的,即树枝沿着任意方向,譬如,从底部到顶部、从左侧到右侧和从右侧到左侧越来越宽。在这样的情况下,有必要改变与各个中间节点相关联的子集的定义以便适应它。但是,该改变是简单地旋转通过上述树结构设置部分154配置的树结构,在任何情况下都意味着完全相同。进一步,尽管有向图生成部分160通过设置从左到右或从右到左的坐标轴来构建有向图I′和I,但使左右反向的改变也是可行的。具体地说,尽管在上面的描述中为了方便起见根据垂直方向或水平方向定义参数,但根据一般人或本领域普通技术人员的常识,即使将树结构或有向图I旋转或反向,改变了垂直和水平关系,也意味着包含在相同技术范围之内。进一步,按照该实施例的信息处理单元可以包括获取,例如,给定有向图或与有向图有关的信息,以便根据获取的有向图生成集合密钥的获取部分。
Claims (51)
1.一种信息处理单元,包含:
树结构设置部分,用于
配置由n个叶节点、根节点和与根节点和叶节点不同的数个中间节点组成的整个二叉树,并且将整个树划分成包括n1/y个叶节点的数个基本子树,形成y层分层结构,以便下层的基本子树的根节点与上层的基本子树的叶节点一致,其中y是log(n)的约数,
将比整个树的节点w低的叶节点的集合定义成Aw,
在基本子树的叶节点中,将位于某个叶节点v左侧第i上的叶节点定义成v(-i)和将位于右侧第i上的叶节点定义成v(+i),
关于基本子树的两个叶节点u和v,将集合(u→v)定义成{Au,Au∪Au(+1),...,Au∪...∪Av},而将集合(u←v)定义成{Av,Av∪Av(-1),...,Av∪...∪Au},其中v在u的右侧,
当在比基本子树的节点v低的数个叶节点中,位于左端的叶节点被定义成lv′和位于右端的叶节点被定义成rv′时,
将集合(lroot′→rroot′)和集合(lroot′(+1)←root′)与顶层上的基本子树的根节点root相关联,
将集合(lv′→rv′(-1))和集合(lv′(+1)←rv′)与除了顶层之外的其它层上的基本子树的根节点v相关联,
如果每个子树的中间节点位于它的母节点左侧,将集合(lv′(+1)←rv′)与中间节点v相关联,和
如果每个子树的中间节点位于它的母节点右侧,将集合(lv′→rv′(-1))与中间节点v相关联;和
有向图生成部分,用于针对各自基本子树的根节点root和根节点v以及中间节点v的每一个,生成包含度从左到右增大地在水平坐标轴上排列与包括在集合(lroot′→rroot′)或集合(lv′→rv′(-1))中的子集相对应的坐标点和设置连接坐标点的有向枝的有向图、和/或包含度从右到左增大地在水平坐标轴上排列与包括在集合(lroot′(+1)←rroot′)或集合(lv′(+1)←rv′)中的子集相对应的坐标点和设置连接坐标点的有向枝的有向图;
密钥生成部分,用于根据有向图生成加密内容或内容密钥的设置密钥, 其中,当输入与有向图中的某个坐标点相对应的子集S的中间密钥t(Si)时,所述密钥生成部分输出与对应于坐标点的子集Si相对应的集合密钥k(Si)、和与尾部在坐标点S上的有向边的头上的坐标点相对应的子集S1,S2,...,Sk的中间密钥t(S1),t(S2),...,t(Sk)。
2.按照权利要求1所述的信息处理单元,其中,
有向图生成部分进一步包括子树间有向枝设置部分,用于设置从与下层的基本子树相对应的有向图到与上层的基本子树相对应的有向图的有向枝。
3.按照权利要求2所述的信息处理单元,其中,
子树间有向枝设置部分设置从与下层的基本子树相对应的有向图中的第一坐标点到与上层的基本子树相对应的有向图中的第二坐标点的有向枝,和
与第二坐标点相对应的子集包括与第一坐标点相对应的子集。
4.按照权利要求1所述的信息处理单元,其中,
有向图生成部分包括坐标轴设置部分和有向枝设置部分,
坐标轴设置部分针对各自基本子树的根节点root和根节点v以及中间节点v的每一个,设置包含度从左到右增大地排列与包括在集合(lroot′→rroot′)或集合(lv′→rv′(-1))中的子集相对应的坐标点的第一水平坐标轴、和/或包含度从右到左增大地排列与包括在集合(lroot′(+1)←rroot′)或集合(lv′(+1)←rv′)中的子集相对应的坐标点的第二水平坐标轴,另外还在第一和第二水平坐标轴每一根的左端和/或右端上总共设置至少两个临时坐标点,和
有向枝设置部分在设置了给定整数k和计算出满足n(x-1)/k*y<(rv′-lv′+1)≤nx/k*y的整数x之后,其中k是log(n1/y)的约数,
重复地设置从每根第一水平坐标轴上的左端坐标点开始延伸到相隔ni/(k*y)的坐标点的向右有向枝,其中i=0~x-1,
重复地设置从每根第二水平坐标轴上的右端坐标点开始延伸到相隔ni/(k*y)的坐标点的向左有向枝,其中i=0~x-1,
排除在第一和第二水平坐标轴的每一根上的临时坐标点上有头或有尾的所有有向枝,和
从到达第一和第二水平坐标轴上的每个坐标点的有向枝中排除除了最长有向枝之外的其它有向枝。
5.按照权利要求1所述的信息处理单元,其中,
响应与有向图中的某个坐标点相对应的子集S的中间密钥t(Si)的输入,密钥生成部分输出与对应于该坐标点的子集Si相对应的设置密钥k(Si)、和在坐标点S上有尾的有向枝的头上的坐标点S1、S2、...、Sk的中间密钥t(S1)、t(S2)、...、t(Sk)。
6.按照权利要求1所述的信息处理单元,其中,
响应与有向图中的某个坐标点相对应的子集S的设置密钥k(S)的输入,密钥生成部分输出在坐标点S上有尾的有向枝的头上的坐标点S1、S2、...、Sk的设置密钥k(S1)、k(S2)、...、k(Sk)。
7.按照权利要求1所述的信息处理单元,进一步包含:
加密部分,用于使用设置密钥加密内容或内容密钥。
8.按照权利要求7所述的信息处理单元,进一步包含:
发送部分,用于将加密部分加密的内容或内容密钥发送到分别与整个树的叶节点1~n的一些或全部相关联的终端单元。
9.按照权利要求1所述的信息处理单元,进一步包含:
子集确定部分,用于当整个树的叶节点1~n的子集被定义成Si时,确定允许解密使用设置密钥加密的内容或内容密钥的终端单元的集合(N\R),和确定满足集合(N\R)={S1∪S2∪...∪Sm}的m个子集S1~Sm。
10.按照权利要求9所述的信息处理单元,其中,
子集确定部分确定使m的值最小的子集S1~Sm。
11.按照权利要求9所述的信息处理单元,其中,
发送部分将指示集合(N\R)的信息或指示构成集合(N\R)的子集S1~Sm的信息发送到终端单元。
12.按照权利要求8所述的信息处理单元,其中,
发送部分将加密部分使用分别与子集S1~Sm相对应的设置密钥加密的内容或内容密钥发送到终端单元。
13.一种终端单元,包含:
密钥生成部分,用于根据有向图生成解密加密内容或加密内容密钥的设置密钥,其中,有向图是通过如下步骤生成的:
配置由n个叶节点、根节点和与根节点和叶节点不同的数个中间节点组成的整个二叉树,并且将整个树划分成包括n1/y个叶节点的数个基本子树,形成y层分层结构,以便下层的基本子树的根节点与上层的基本子树的叶节点 一致,其中y是log(n)的约数,
将比整个树的节点w低的叶节点的集合定义成Aw,
在基本子树的叶节点中,将位于某个叶节点v左侧第i上的叶节点定义成v(-i)和将位于右侧第i上的叶节点定义成v(+i),
关于基本子树的两个叶节点u和v,将集合(u→v)定义成{Au,Au∪Au(+1),Au ∪Au(+1)∪Au(+2),...,Au∪Au(+1)...Av(-1),Au∪Au(+1)...Av(-1)∪Av},而将集合(u←v)定义成{Av,Av∪Av(-1),Av∪Av(-1)∪Av(-2),...,A∪Av(-1)...Au(+1),Av∪Av(-1)...Au(+1)∪Au},其中v在u的右侧,
当在比基本子树的节点v低的数个叶节点中,位于左端的叶节点被定义成lv′和位于右端的叶节点被定义成rv′时,
将集合(lroot′→rroot′)和集合(lroot′(+1)←rroot′)与顶层上的基本子树的根节点相关联,
将集合(lv′→rv′(-1))和集合(lv′(+1)←rv′)与除了顶层之外的其它层上的基本子树的根节点v相关联,
如果每个子树的中间节点v位于它的母节点左侧,将集合(lv′(+1)←rv′)与中间节点v相关联,
如果每个子树的中间节点v位于它的母节点右侧,将集合(l v′→rv′(-1))与中间节点v相关联,和
针对各自基本子树的根节点root和根节点v以及中间节点v的每一个,生成包含度从左到右增大地在水平坐标轴上排列与包括在集合(lroot′→rroot′)或集合(lv′→rv′(-1))中的子集相对应的坐标点和设置连接坐标点的有向枝的有向图、和/或包含度从右到左增大地在水平坐标轴上排列与包括在集合(lroot′(+1)←rroot′)或集合(lv′(+1)←rv′)中的子集相对应的坐标点和设置连接坐标点的有向枝的有向图;以及
当输入与有向图中的某个坐标点相对应的子集S的中间密钥t(Si)时,所述密钥生成部分输出与对应于坐标点的子集Si相对应的集合密钥k(Si)、和与尾部在坐标点S上的有向边的头上的坐标点相对应的子集S1,S2,...,Sk的中间密钥t(S1),t(S2),...,t(Sk)。
14.按照权利要求13所述的终端单元,其中,
设置从与下层的基本子树相对应的有向图到与上层的基本子树相对应的有向图的有向枝。
15.按照权利要求14所述的终端单元,其中,
设置从与下层的基本子树相对应的有向图中的第一坐标点到与上层的基本子树相对应的有向图中的第二坐标点的有向枝,和
与第二坐标点相对应的子集包括与第一坐标点相对应的子集。
16.按照权利要求13所述的终端单元,进一步包含:
解密部分,用于使用密钥生成部分生成的设置密钥解密加密内容或加密内容密钥。
17.按照权利要求13所述的终端单元,其中,
响应与有向图中的某个坐标点相对应的子集S的中间密钥t(Si)的输入,密钥生成部分输出与对应于该坐标点的子集Si相对应的设置密钥k(Si)、和与在坐标点S上有尾的有向枝的头上的坐标点相对应的子集S1、S2、...、Sk的中间密钥t(S1)、t(S2)、...、t(Sk)。
18.按照权利要求13所述的终端单元,其中,
响应与有向图中的某个坐标点相对应的子集S的设置密钥k(S)的输入,密钥生成部分输出在坐标点S上有尾的有向枝的头上的坐标点S1、S2、...、Sk的设置密钥k(S1)、k(S2)、...、k(Sk)。
19.按照权利要求16所述的终端单元,其中,
解密部分使用设置密钥解密加密内容密钥,和使用解密内容密钥解密加密内容。
20.按照权利要求13所述的终端单元,包含:
接收部分,用于当确定了允许解密使用设置密钥加密的内容或内容密钥的终端单元的集合(N\R),和确定了满足集合(N\R)={S1∪S2∪...∪Sm}的m个子集S1~Sm时,接收指示集合(N\R)的信息或指示构成集合(N\R)的子集S1~Sm的信息,其中,整个树的叶节点1~n的子集被定义成Si;和
判定部分,用于根据接收信息判定终端单元是否属于子集S1~Sm的某一个,并且根据判定结果判定是否允许解密加密内容。
21.按照权利要求20所述的终端单元,进一步包含:
解密部分,用于使用密钥生成部分生成的设置密钥解密加密内容或加密内容密钥,
其中,当判定部分判定终端单元属于子集S1~Sm的某一个时,解密部分使用设置密钥解密加密内容或加密内容密钥。
22.一种信息处理方法,包含:
配置由n个叶节点、根节点和与根节点和叶节点不同的数个中间节点组成的整个二叉树,并且将整个树划分成包括n1/y个叶节点的数个基本子树,形成y层分层结构,以便下层的基本子树的根节点与上层的基本子树的叶节点一致的步骤,其中y是log(n)的约数;
将比整个树的节点w低的叶节点的集合定义成Aw的步骤,
在基本子树的叶节点中,将位于某个叶节点v左侧第i上的叶节点定义成v(-i)和将位于右侧第i上的叶节点定义成v(+i),
关于基本子树的两个叶节点u和v,将集合(u→v)定义成{Au,Au ∪Au(+1),Au∪Au(+1)∪Au(+2),...,Au∪Au(+1)...Av(-1),Au∪Au(+1)...Av(-1)∪Av},而将集合(u←v)定义成{Av,Av∪Av(-1),Av∪Av(-1)∪Av(-2),...,A∪Av(-1)...Au(+1),Av∪Av(-1)...Au(+1)∪Au},其中v在u的右侧,
当在比基本子树的节点v低的数个叶节点中,位于左端的叶节点被定义成lv′和位于右端的叶节点被定义成rv′时,
将集合(lroot′→rroot′)和集合(lroot′(+1)←rroot′)与顶层上的基本子树的根节点root相关联,
将集合(lv′→rv′(-1))和集合(lv′(+1)←rv′)与除了顶层之外的其它层上的基本子树的根节点v相关联,
如果每个子树的中间节点位于它的母节点左侧,将集合(lv′(+1)←rv′)与中间节点v相关联,和
如果每个子树的中间节点位于它的母节点右侧,将集合(lv′→rv′(-1))与中间节点v相关联;
针对各自基本子树的根节点root和根节点v以及中间节点v的每一个,生成包含度从左到右增大地在水平坐标轴上排列与包括在集合(lroot′→rroot′)或集合(lv′→rv′(-1))中的子集相对应的坐标点和设置连接坐标点的有向枝的有向图、和/或包含度从右到左增大地在水平坐标轴上排列与包括在集合(lroot′(+1)←rroot′)或集合(lv′(+1)←rv′)中的子集相对应的坐标点和设置连接坐标点的有向枝的有向图的步骤;和
用于根据有向图生成加密内容或内容密钥的设置密钥的步骤,其中,当输入与有向图中的某个坐标点相对应的子集S的中间密钥t(Si)时,输出与对应于坐标点的子集Si相对应的集合密钥k(Si)、和与尾部在坐标点S上的 有向边的头上的坐标点相对应的子集S1,S2,...,Sk的中间密钥t(S1),t(S2),...,t(Sk)。
23.一种根据有向图生成解密加密内容或加密内容密钥的设置密钥的密钥生成方法,其中,有向图是通过如下步骤获得的:
配置由n个叶节点、根节点和与根节点和叶节点不同的数个中间节点组成的整个二叉树,并且将整个树划分成包括n1/y个叶节点的数个基本子树,形成y层分层结构,以便下层的基本子树的根节点与上层的基本子树的叶节点一致,其中y是log(n)的约数,
将比整个树的节点w低的叶节点的集合定义成Aw,
在基本子树的叶节点中,将位于某个叶节点v左侧第i上的叶节点定义成v(-i)和将位于右侧第i上的叶节点定义成v(+i),
关于基本子树的两个叶节点u和v,将集合(u→v)定义成{Au,Au ∪Au(+1),Au∪Au(+1)∪Au(+2),...,Au∪Au(+1)...Av(-1),Au∪Au(+1)...Av(-1)∪Av},而将集合(u←v)定义成{Av,Av∪Av(-1),Av∪Av(-1)∪Av(-2),...,A∪Av(-1)...Au(+1),Av∪Av(-1)...Au(+1)∪Au},其中v在u的右侧,
当在比基本子树的节点v低的数个叶节点中,位于左端的叶节点被定义成lv′和位于右端的叶节点被定义成rv′时,
将集合(lroot′→rroot′)和集合(lroot′(+1)←root′)与顶层上的基本子树的根节点相关联,
将集合(lv′→rv′(-1))和集合(lv′(+1)←rv′)与除了顶层之外的其它层上的基本子树的根节点v相关联,
如果每个子树的中间节点v位于它的母节点左侧,将集合(lv′(+1)←rv′)与中间节点v相关联,
如果每个子树的中间节点v位于它的母节点右侧,将集合(lv′→rv′(-1))与中间节点v相关联,和
针对各自基本子树的根节点root和根节点v以及中间节点v的每一个,生成包含度从左到右增大地在水平坐标轴上排列与包括在集合(lroot′→rroot′)或集合(lv′→rv′(-1))中的子集相对应的坐标点和设置连接坐标点的有向枝的有向图、和/或包含度从右到左增大地在水平坐标轴上排列与包括在集合(lroot′(+1)←rroot′)或集合(lv′(+1)←rv′)中的子集相对应的坐标点和设置连接坐标点的有向枝的有向图;以及
当输入与有向图中的某个坐标点相对应的子集S的中间密钥t(Si)时,输出与对应于坐标点的子集Si相对应的集合密钥k(Si)、和与尾部在坐标点S上的有向边的头上的坐标点相对应的子集S1,S2,...,Sk的中间密钥t(S1),t(S2),...,t(Sk)。
24.一种信息处理单元,包含:
有向图获取部分,用于获取如权利要求1所述的由数条有向枝组成的有向图,以便构成有向图的最长有向枝的一个尾部与有向图的尾部一致;和
密钥生成部分,用于根据有向图获取部分获取的有向图生成加密或解密内容或内容密钥的设置密钥;
其中,当输入与有向图中的某个坐标点相对应的子集S的中间密钥t(Si)时,所述密钥生成部分输出与对应于坐标点的子集Si相对应的集合密钥k(Si)、和与尾部在坐标点S上的有向边的头上的坐标点相对应的子集S1,S2,...,Sk的中间密钥t(S1),t(S2),...,t(Sk)。
25.按照权利要求24所述的信息处理单元,其中,
响应与有向图中的某个坐标点相对应的子集S的中间密钥t(Si)的输入,密钥生成部分输出与对应于该坐标点的子集S相对应的设置密钥k(S)、和在坐标点S上有尾的有向枝的头上的坐标点S1、S2、...、Sk的中间密钥t(S1)、t(S2)、...、t(Sk)。
26.按照权利要求24所述的信息处理单元,其中,
响应与有向图中的某个坐标点相对应的子集S的设置密钥k(S)的输入,密钥生成部分输出在坐标点S上有尾的有向枝的头上的坐标点S1、S2、...、Sk的设置密钥k(S1)、k(S2)、...、k(Sk)。
27.按照权利要求24所述的信息处理单元,进一步包含:
初始中间密钥设置部分,用于将给定随机数设置成与每个有向图的尾部相对应的中间密钥。
28.按照权利要求24所述的信息处理单元,进一步包含:
加密部分,用于使用设置密钥加密内容或内容密钥。
29.按照权利要求28所述的信息处理单元,进一步包含:
发送部分,用于将加密部分加密的内容或内容密钥发送到分别与构成给定二叉树的叶节点1~n的一些或全部相关联的终端单元,其中n是自然数。
30.按照权利要求29所述的信息处理单元,进一步包含:
子集确定部分,用于将叶节点1~n的子集被定义成Si,确定允许解密使用设置密钥加密的内容或内容密钥的终端单元的集合(N\R),和确定满足集合(N\R)={S1∪S2∪...∪Sm}的m个子集S1~Sm。
31.按照权利要求30所述的信息处理单元,其中,
子集确定部分确定使m的值最小的子集S1~Sm。
32.按照权利要求29所述的信息处理单元,其中,
发送部分将指示集合(N\R)的信息或指示构成集合(N\R)的子集S1~Sm的信息发送到终端单元。
33.按照权利要求24所述的信息处理单元,进一步包含:
解密部分,用于使用设置密钥解密内容或内容密钥。
34.按照权利要求33所述的信息处理单元,进一步包含:
与构成给定二叉树的一个或多个叶节点1~n相关联的接收部分,用于接收使用设置密钥加密的内容或内容密钥,其中n是自然数。
35.按照权利要求34所述的信息处理单元,其中,
接收部分接收的加密内容或加密内容密钥可以通过与定义成叶节点1~n的子集的集合Si中作为包括与自身相关联的叶节点的集合S的元素的叶节点相关联的一个或多个信息处理单元解密。
36.一种处理临时有向图的信息处理单元,临时有向图是对于给定整数k,按照满足n(x-1)/k(rv-lv+1)≤nx/k的自然数x,在第一到第四水平坐标轴上排列长度为ni/k的数条有向枝形成的,其中i=0、1、...、x-1,
在由指定号码1~n的n个叶节点、根节点和与根节点和叶节点不同的数个中间节点组成的二叉树中,其中,在比某个中间节点v或某个根节点v低的数个叶节点中,将指定给位于左端的叶节点的号码定义成lv,而将指定给位于右端的叶节点的号码定义成rv,其中n是自然数,
对于自然数i和j,其中i≤j,假设将集合(i→j)表示成{{i},{i,i+1},{i,i+1,i+2},...,{i,i+1,...,j-1},{i,i+1,...,j-1,j}},而将集合(i←j)表示成{{j},{j,j-1},{j,j-1,j-2},...,{j,j-1,...,i+1},{j,j-1,...,i+1,i}},
设置与根节点相关联和含有分别与包括在集合(1→n)中的子集相关联和包含度从左到右增大地排列在水平坐标轴上的坐标点的第一水平坐标轴,
设置与根节点相关联和含有分别与包括在集合(2←n)中的子集相关联 和包含度从右到左增大地排列在水平坐标轴上的坐标点的第二水平坐标轴,
对于每个中间节点,
设置与某个中间节点v相关联和含有分别与包括在集合(lv→rv-1)中的子集相关联和包含度从左到右增大地排列在水平坐标轴上的坐标点的第三水平坐标轴,和
设置与某个中间节点v相关联和含有分别与包括在集合(lv+1←rv)中的子集相关联和包含度从右到左增大地排列在水平坐标轴上的坐标点的第四水平坐标轴,
该信息处理单元包含:
临时有向图获取部分,用于获取临时有向图;
有向图生成部分,用于通过留下构成临时有向图获取部分获取的临时有向图的数条有向枝当中的较长有向枝,生成有向图;和
密钥生成部分,用于根据有向图生成加密内容或内容密钥的设置密钥;
其中,当输入与有向图的某个坐标点Si相对应的中间密钥t(Si)时,所述密钥生成部分输出与尾部在与子集Si对应的坐标点上的有向边的头部相对应的中间密钥t(S1),t(S2),...,t(Sm)。
37.一种信息处理单元,包含:
有向图获取部分,用于获取通过在由数条有向枝组成的临时有向图中,留下构成临时有向图的数条有向枝当中的的较长有向枝生成的有向图,其中,所述临时有向图是如权利要求36所述的临时有向图,且所述较长有向枝是比如权利要求1所述的有向图中的有向枝更长的有向枝;和
密钥生成部分,用于根据有向图获取部分获取的有向图生成加密或解密内容或内容密钥的设置密钥;
其中,当输入与有向图的某个坐标点Si相对应的中间密钥t(Si)时,所述密钥生成部分输出与尾部在与子集Si对应的坐标点上的有向边的头部相对应的中间密钥t(S1),t(S2),...,t(Sm)。
38.一种信息处理单元,包含:
树结构设置部分,用于配置由指定号码1~n的n个叶节点、根节点和与根节点和叶节点不同的数个中间节点组成的二叉树,其中n是自然数,对于自然数i和j(i≤j),将集合(i→j)定义成{{i},{i,i+1},...,{i,i+1,...,j-1,j}},而将集合(i←j)定义成{{j},{j,j-1},...,{j, j-1,...,i+1,i}},和在比某个中间节点v或某个根节点v低的数个叶节点中,将指定给位于左端的叶节点的号码设置成lv,而将指定给位于右端的叶节点的号码设置成rv;
坐标轴设置部分,用于
设置与根节点相关联和含有分别与包括在集合(l→n)中的子集相关联和包含度从左到右增大地排列在水平坐标轴上的坐标点的第一水平坐标轴,
与根节点相关联和含有分别与包括在集合(2←n)中的子集相关联和包含度从右到左增大地排列在水平坐标轴上的坐标点的第二水平坐标轴,
对于每个中间节点,
与某个中间节点v相关联和含有分别与包括在集合(lv→rv-1)中的子集相关联和包含度从左到右增大地排列在水平坐标轴上的坐标点的第三水平坐标轴,和
与某个中间节点v相关联和含有分别与包括在集合(lv+1←rv)中的子集相关联和包含度从右到左增大地排列在水平坐标轴上的坐标点的第四水平坐标轴,
放置每一个在位于第三水平坐标轴右端的坐标点的右侧和在位于第二和第四水平坐标轴左端的坐标点的左侧上的两个临时坐标点,并且
将位于第一水平坐标轴右端的坐标点设置成第一临时坐标点和将第二临时坐标点放置在第一临时坐标点的右边;和
有向图生成部分,用于
通过如下步骤生成分别与集合(1→n-1)、集合(2←n)、集合(lv+1→rv)和集合(lv←rv-1)有关的有向图:
设置给定整数k,
计算满足n(x-1)/k<(rv-lv+1)≤nx/k的自然数,和
对于整数i=0~x-1的每一个,
通过耦合长度为ni/k的一条或数条向右有向枝,形成在第一和第三水平坐标轴上的最左坐标点上有尾的有向路径,
通过耦合长度为ni/k的一条或数条向左有向枝,形成在第二和第四水平坐标轴上的最右坐标点上有尾的有向路径,
排除在第一到第四水平坐标轴的每一根上的临时坐标轴上有尾或有头的所有有向枝,并且
从到达第一到第四水平坐标轴上的每个坐标点的有向枝中排除除了最长有向枝之外的其它有向枝,和
通过将在第一水平坐标轴上的第一临时坐标点上有头的长度为1的有向枝加入与集合(1→n-1)有关的有向图中,生成与集合(1→n)有关的有向图;和
密钥生成部分,用于根据有向图生成加密内容或内容密钥的设置密钥;
其中,当输入与有向图中的某个坐标点相对应的子集S的中间密钥t(Si)时,所述密钥生成部分输出与对应于坐标点的子集Si相对应的集合密钥k(Si)、和与尾部在坐标点S上的有向边的头上的坐标点相对应的子集S1,S2,...,Sk的中间密钥t(S 1),t(S2),...,t(Sk)。
39.按照权利要求38所述的信息处理单元,其中,
响应与有向图中的某个坐标点相对应的子集S的中间密钥t(Si)的输入,密钥生成部分输出与对应于该坐标点的子集S相对应的设置密钥k(S)、和在坐标点S上有尾的有向枝的头上的坐标点S1、S2、...、Sk的中间密钥t(S1)、t(S2)、...、t(Sk)。
40.按照权利要求38所述的信息处理单元,其中,
响应与有向图中的某个坐标点相对应的子集S的设置密钥k(S)的输入,密钥生成部分输出在坐标点S上有尾的有向枝的头上的坐标点S1、S2、...、Sk的设置密钥k(S1)、k(S2)、...、k(Sk)。
41.一种终端单元,包含:
密钥生成部分,用于根据有向图生成解密内容或内容密钥的设置密钥,其中,有向图是通过如下步骤生成的:
配置由指定号码1~n的n个叶节点、根节点和与根节点和叶节点不同的数个中间节点组成的二叉树,其中n是自然数,对于自然数i和j(i≤j),将集合(i→j)定义成{{i},{i,i+1},{i,i+1,i+2},...,{i,i+1,...,j-1},{i,i+1,...,j-1,j}},而将集合(i←j)定义成{{j},{j,j-1},{j,j-1,j-2},...,{j,j-1,...,i+1},{j,j-1,...,i+1,i}},和在比某个中间节点v或某个根节点v低的数个叶节点中,将指定给位于左端的叶节点的号码设置成l v,而将指定给位于右端的叶节点的号码设置成rv,
设置与根节点相关联和含有分别与包括在集合(1→n)中的子集相关联 和包含度从左到右增大地排列在水平坐标轴上的坐标点的第一水平坐标轴,
与根节点相关联和含有分别与包括在集合(2←n)中的子集相关联和包含度从右到左增大地排列在水平坐标轴上的坐标点的第二水平坐标轴,
对于每个中间节点,
与某个中间节点v相关联和含有分别与包括在集合(lv→rv-1)中的子集相关联和包含度从左到右增大地排列在水平坐标轴上的坐标点的第三水平坐标轴,和
与某个中间节点v相关联和含有分别与包括在集合(l v+1←rv)中的子集相关联和包含度从右到左增大地排列在水平坐标轴上的坐标点的第四水平坐标轴,
放置每一个在位于第三水平坐标轴右端的坐标点的右侧和在位于第二和第四水平坐标轴左端的坐标点的左侧上的两个临时坐标点,
将位于第一水平坐标轴右端的坐标点设置成第一临时坐标点和将第二临时坐标点放置在第一临时坐标点的右边,
通过如下步骤生成分别与集合(1→n-1)、集合(2←n)、集合(lv+1→rv)和集合(lv←rv-1)有关的有向图:
设置给定整数k,
计算满足n(x-1)/k<(rv-lv+1)≤nx/k的自然数,和
对于整数i=0~x-1的每一个,
通过耦合长度为ni/k的一条或数条向右有向枝,形成在第一和第三水平坐标轴上的最左坐标点上有尾的有向路径,
通过耦合长度为ni/k的一条或数条向左有向枝,形成在第二和第四水平坐标轴上的最右坐标点上有尾的有向路径,
排除在第一到第四水平坐标轴的每一根上的临时坐标轴上有尾或有头的所有有向枝,并且
从到达第一到第四水平坐标轴上的每个坐标点的有向枝中排除除了最长有向枝之外的其它有向枝,和
通过将在第一水平坐标轴上的第一临时坐标点上有头的长度为1的有向枝加入与集合(1→n-1)有关的有向图中,生成与集合(1→n)有关的有向图;
其中,当输入与有向图中的某个坐标点相对应的子集S的中间密钥t(Si) 时,所述密钥生成部分输出与对应于坐标点的子集Si相对应的集合密钥k(Si)、和与尾部在坐标点S上的有向边的头上的坐标点相对应的子集S1,S2,...,Sk的中间密钥t(S1),t(S2),...,t(Sk)。
42.按照权利要求41所述的终端单元,进一步包含:
解密部分,用于使用设置密钥解密加密内容或加密内容密钥。
43.按照权利要求41所述的终端单元,其中,
响应与有向图中的某个坐标点相对应的子集S的中间密钥t(Si)的输入,密钥生成部分输出与对应于该坐标点的子集S相对应的设置密钥k(S)、和与在坐标点S上有尾的有向枝的头上的坐标点相对应的子集S1、S2、...、Sk的中间密钥t(S1)、t(S2)、...、t(Sk)。
44.按照权利要求41所述的终端单元,其中,
响应与有向图中的某个坐标点相对应的子集S的设置密钥k(S)的输入,密钥生成部分输出在坐标点S上有尾的有向枝的头上的坐标点S1、S2、...、Sk的设置密钥k(S1)、k(S2)、...、k(Sk)。
45.按照权利要求42所述的终端单元,其中,
解密部分使用设置密钥解密加密内容密钥,和使用解密内容密钥解密加密内容。
46.按照权利要求41所述的终端单元,其中,
在树的叶节点1~n的子集被定义成S i的情况下,和
当确定了允许解密使用设置密钥加密的内容或内容密钥的终端单元的集合(N\R)时,确定满足集合(N\R)={S1∪S2∪...∪Sm}的m个子集S1~Sm,并且接收指示集合(N\R)的信息或指示构成集合(N\R)的子集S1~Sm的信息,和
终端单元包括判定部分,用于根据接收信息判定终端单元是否属于子集S1~Sm的某一个,并且根据判定结果判定是否允许解密加密内容。
47.按照权利要求45所述的终端单元,其中,
当判定终端单元属于子集S1~Sm的某一个时,解密部分使用与终端单元所属的子集相对应的设置密钥解密内容或内容密钥。
48.一种处理临时有向图的信息处理方法,临时有向图是对于给定整数k,按照满足n(x-1)/k<(rv-lv+1)≤nx/k的自然数x,在第一到第四水平坐标轴上排列长度为ni/k的数条有向枝形成的,其中i=0、1、...、x-1,
在由指定号码1~n的n个叶节点、根节点和与根节点和叶节点不同的数个中间节点组成的二叉树中,其中,在比某个中间节点v或某个根节点v低的数个叶节点中,将指定给位于左端的叶节点的号码定义成lv,而将指定给位于右端的叶节点的号码定义成rv,其中n是自然数,
对于自然数i和j(i≤j),假设将集合(i→j)表示成{{i},{i,i+1},{i,i+1,i+2},...,{i,i+1,...,j-1},{i,i+1,...,j-1,j}},而将集合(i←j)表示成{{j},{j,j-1},{j,j-1,j-2},...,{j,j-1,...,i+1},{j,j-1,...,i+1,i}},
设置与根节点相关联和含有分别与包括在集合(1→n)中的子集相关联和包含度从左到右增大地排列在水平坐标轴上的坐标点的第一水平坐标轴,
设置与根节点相关联和含有分别与包括在集合(2←n)中的子集相关联和包含度从右到左增大地排列在水平坐标轴上的坐标点的第二水平坐标轴,
对于每个中间节点,
设置与某个中间节点v相关联和含有分别与包括在集合(lv→rv-1)中的子集相关联和包含度从左到右增大地排列在水平坐标轴上的坐标点的第三水平坐标轴,和
设置与某个中间节点v相关联和含有分别与包括在集合(lv+1←rv)中的子集相关联和包含度从右到左增大地排列在水平坐标轴上的坐标点的第四水平坐标轴,
该信息处理方法包含:
临时有向图获取步骤,用于获取临时有向图;
有向图生成步骤,用于通过留下构成临时有向图获取部分获取的临时有向图的数条有向枝当中的较长有向枝,生成有向图;和
密钥生成步骤,用于根据有向图生成加密内容或内容密钥的设置密钥;
其中,当输入与有向图的某个坐标点Si相对应的中间密钥t(Si)时,输出与尾部在与子集Si对应的坐标点上的有向边的头部相对应的中间密钥t(S1),t(S2),...,t(Sm)。
49.一种信息处理方法,包含:
有向图获取步骤,用于获取通过在由数条有向枝组成的有向图中,留下构成临时有向图的数条有向枝当中的较长有向枝生成的有向图,其中,所述有向图是如权利要求48所述的有向图,且所述较长有向枝是比如权利要求1 所述的有向图中的有向枝更长的有向枝;和
密钥生成步骤,用于根据有向图获取部分获取的有向图生成加密或解密内容或内容密钥的设置密钥;
其中,当输入与有向图的某个坐标点Si相对应的中间密钥t(Si)时,输出与尾部在与子集Si对应的坐标点上的有向边的头部相对应的中间密钥t(S1),t(S2),...,t(Sm)。
50.一种信息处理方法,包含:
树结构设置步骤,用于
配置由指定号码1~n的n个叶节点、根节点和与根节点和叶节点不同的数个中间节点组成的二叉树,其中n是自然数,对于自然数i和j(i≤j),将集合(i→j)定义成{{i},{i,i+1},{i,i+1,i+2},...,{i,i+1,...,j-1},{i,i+1,...,j-1,j}},而将集合(i←j)定义成{{j},{j,j-1},{j,j-1,j-2},...,{j,j-1,...,i+1},{j,j-1,...,i+1,i}},和在比某个中间节点v或某个根节点v低的数个叶节点中,将指定给位于左端的叶节点的号码设置成lv,而将指定给位于右端的叶节点的号码设置成rv;
坐标轴设置步骤,用于
设置与根节点相关联和含有分别与包括在集合(1→n)中的子集相关联和包含度从左到右增大地排列在水平坐标轴上的坐标点的第一水平坐标轴,
与根节点相关联和含有分别与包括在集合(2←n)中的子集相关联和包含度从右到左增大地排列在水平坐标轴上的坐标点的第二水平坐标轴,
对于每个中间节点,
与某个中间节点v相关联和含有分别与包括在集合(lv→rv-1)中的子集相关联和包含度从左到右增大地排列在水平坐标轴上的坐标点的第三水平坐标轴,和
与某个中间节点v相关联和含有分别与包括在集合(lv+1←rv)中的子集相关联和包含度从右到左增大地排列在水平坐标轴上的坐标点的第四水平坐标轴,
放置每一个在位于第三水平坐标轴右端的坐标点的右侧和在位于第二和第四水平坐标轴左端的坐标点的左侧上的两个临时坐标点,并且
将位于第一水平坐标轴右端的坐标点设置成第一临时坐标点和将第二临 时坐标点放置在第一临时坐标点的右边;和
有向图生成步骤,用于
通过如下步骤生成分别与集合(1→n-1)、集合(2←n)、集合(lv+1→rv)和集合(lv←rv-1)有关的有向图:
设置给定整数k,
计算满足n(x-1)/k<(rv-lv+1)≤nx/k的自然数,和
对于整数i=0~x-1的每一个,
通过耦合长度为ni/k的一条或数条向右有向枝,形成在第一和第三水平坐标轴上的最左坐标点上有尾的有向路径,
通过耦合长度为ni/k的一条或数条向左有向枝,形成在第二和第四水平坐标轴上的最右坐标点上有尾的有向路径,
排除在第一到第四水平坐标轴的每一根上的临时坐标轴上有尾或有头的所有有向枝,并且
从到达第一到第四水平坐标轴上的每个坐标点的有向枝中排除除了最长有向枝之外的其它有向枝,和
通过将在第一水平坐标轴上的第一临时坐标点上有头的长度为1的有向枝加入与集合(1→n-1)有关的有向图中,生成与集合(1→n)有关的有向图;以及
当输入与有向图中的某个坐标点相对应的子集S的中间密钥t(Si)时,输出与对应于坐标点的子集Si相对应的集合密钥k(Si)、和与尾部在坐标点S上的有向边的头上的坐标点相对应的子集S1,S2,...,Sk的中间密钥t(S1),t(S2),...,t(Sk)。
51.一种密钥生成方法,包含:
密钥生成步骤,用于根据有向图生成解密内容或内容密钥的设置密钥,其中,有向图是通过如下步骤生成的:
配置由指定号码1~n的n个叶节点、根节点和与根节点和叶节点不同的数个中间节点组成的二叉树,其中n是自然数,对于自然数i和j(i≤j),将集合(i→j)定义成{{i},{i,i+1},{i,i+1,i+2},...,{i,i+1,...,j-1},{i,i+1,...,j-1,j}},而将集合(i←j )定义成{{j},{j,j-1},{j,j-1,j-2},...,{j,j-1,...,i+1},{j,j-1,...,i+1,i}},和在比某个中间节点v或某个根节点v低的数个叶节点中,将指定给位于左 端的叶节点的号码设置成lv,而将指定给位于右端的叶节点的号码设置成rv,
设置与根节点相关联和含有分别与包括在集合(1→n)中的子集相关联和包含度从左到右增大地排列在水平坐标轴上的坐标点的第一水平坐标轴,
与根节点相关联和含有分别与包括在集合(2←n)中的子集相关联和包含度从右到左增大地排列在水平坐标轴上的坐标点的第二水平坐标轴,
对于每个中间节点,
与某个中间节点v相关联和含有分别与包括在集合(lv→rv-1)中的子集相关联和包含度从左到右增大地排列在水平坐标轴上的坐标点的第三水平坐标轴,和
与某个中间节点v相关联和含有分别与包括在集合(lv+1←rv)中的子集相关联和包含度从右到左增大地排列在水平坐标轴上的坐标点的第四水平坐标轴,
放置每一个在位于第三水平坐标轴右端的坐标点的右侧和在位于第二和第四水平坐标轴左端的坐标点的左侧上的两个临时坐标点,
将位于第一水平坐标轴右端的坐标点设置成第一临时坐标点和将第二临时坐标点放置在第一临时坐标点的右边,
通过如下步骤生成分别与集合(1→n-1)、集合(2←n)、集合(lv+1→rv)和集合(lv←rv-1)有关的有向图:
设置给定整数k,
计算满足n(x-1)/k<(rv-lv+1)≤nx/k的自然数,和
对于整数i=0~x-1的每一个,
通过耦合长度为ni/k的一条或数条向右有向枝,形成在第一和第三水平坐标轴上的最左坐标点上有尾的有向路径,
通过耦合长度为ni/k的一条或数条向左有向枝,形成在第二和第四水平坐标轴上的最右坐标点上有尾的有向路径,
排除在第一到第四水平坐标轴的每一根上的临时坐标轴上有尾或有头的所有有向枝,并且
从到达第一到第四水平坐标轴上的每个坐标点的有向枝中排除除了最长有向枝之外的其它有向枝,和
通过将在第一水平坐标轴上的第一临时坐标点上有头的长度为1的有向 枝加入与集合(1→n-1)有关的有向图中,生成与集合(1→n)有关的有向图;以及
当输入与有向图中的某个坐标点相对应的子集S的中间密钥t(Si)时,输出与对应于坐标点的子集Si相对应的集合密钥k(Si)、和与尾部在坐标点S上的有向边的头上的坐标点相对应的子集S1,S2,...,Sk的中间密钥t(S1),t(S2),...,t(Sk)。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006310213A JP2008131078A (ja) | 2006-11-16 | 2006-11-16 | 情報処理装置、端末装置、情報処理方法、及び鍵生成方法 |
JP310208/2006 | 2006-11-16 | ||
JP310213/2006 | 2006-11-16 | ||
JP2006310208A JP2008131076A (ja) | 2006-11-16 | 2006-11-16 | 情報処理装置、端末装置、情報処理方法、鍵生成方法、及びプログラム |
PCT/JP2007/069388 WO2008059673A1 (fr) | 2006-11-16 | 2007-10-03 | Dispositif de traitement d'informations |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101542966A CN101542966A (zh) | 2009-09-23 |
CN101542966B true CN101542966B (zh) | 2013-03-27 |
Family
ID=39556539
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200780042754.1A Expired - Fee Related CN101542966B (zh) | 2006-11-16 | 2007-10-03 | 信息处理装置 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2008131076A (zh) |
CN (1) | CN101542966B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015097834A1 (ja) * | 2013-12-26 | 2015-07-02 | 株式会社東芝 | 通信制御装置、通信制御方法およびプログラム |
CN104092537B (zh) * | 2014-07-03 | 2017-07-14 | 飞天诚信科技股份有限公司 | 一种实现密钥信息编解码的装置及其工作方法 |
JP6290443B2 (ja) | 2014-10-31 | 2018-03-07 | 株式会社東芝 | 通信制御装置、通信制御方法およびプログラム |
CN107291725B (zh) * | 2016-03-31 | 2020-12-22 | 北京京东尚科信息技术有限公司 | 生成多向树的方法和装置 |
JP6472911B2 (ja) * | 2018-02-19 | 2019-02-20 | 株式会社東芝 | 通信装置、通信方法、プログラムおよび通信システム |
CN110138559B (zh) * | 2019-06-03 | 2022-02-01 | 北京智芯微电子科技有限公司 | 对台区内的终端进行量子密钥分配的方法及*** |
CN111131144B (zh) * | 2019-11-05 | 2021-11-16 | 远景智能国际私人投资有限公司 | IoT设备管理方法、装置、服务器及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1846396A (zh) * | 2003-07-11 | 2006-10-11 | 佳能株式会社 | 密钥信息处理方法及其设备和程序 |
-
2006
- 2006-11-16 JP JP2006310208A patent/JP2008131076A/ja active Pending
-
2007
- 2007-10-03 CN CN200780042754.1A patent/CN101542966B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1846396A (zh) * | 2003-07-11 | 2006-10-11 | 佳能株式会社 | 密钥信息处理方法及其设备和程序 |
Also Published As
Publication number | Publication date |
---|---|
CN101542966A (zh) | 2009-09-23 |
JP2008131076A (ja) | 2008-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101542966B (zh) | 信息处理装置 | |
US8300814B2 (en) | Information processing unit, terminal unit, information processing method, key generation method and program | |
US20050210014A1 (en) | Information-processing method, decryption method, information-processing apparatus and computer program | |
CN101150404B (zh) | 管理和生成用于密码通信的设备密钥的***和方法 | |
CN100595816C (zh) | 加密方法,加密装置,解密方法和解密装置 | |
CN1859086B (zh) | 一种内容分级访问控制***和方法 | |
Çetin et al. | Depth optimized efficient homomorphic sorting | |
KR20060129934A (ko) | 정보 처리 방법, 복호 처리 방법 및 정보 처리 장치와컴퓨터 프로그램 | |
US20100086133A1 (en) | Key Providing System, Key Providing Apparatus, Terminal Device, Key Providing Method, and Key Generation Method | |
TW201243643A (en) | Hierarchical encryption/decryption device and method thereof | |
US8300816B2 (en) | Information processing unit, terminal unit, information processing method, key generation method and program | |
US20050271211A1 (en) | Key management system and playback apparatus | |
JP4162237B2 (ja) | 複数の復号化装置に対し選択的にメッセージを配信する暗号化通信システム、暗号化装置、復号化装置、暗号化方法、復号化方法、暗号化プログラム、及び復号化プログラム | |
CN101138194A (zh) | 数据处理设备 | |
US8229121B2 (en) | Method of tracing device keys for broadcast encryption | |
JP2012090324A (ja) | ブロードキャスト暗号化システムにおける除かれたノードリストの生成方法 | |
JP2005141436A (ja) | 情報分散保管方法、情報分散保管システム、その装置、プログラム及び記録媒体 | |
Luo et al. | Revocable attribute-based encryption from standard lattices | |
Li et al. | Efficient and adaptively secure attribute-based proxy reencryption scheme | |
US20060101267A1 (en) | Key management system | |
JP2008131072A (ja) | 情報処理装置、端末装置、情報処理方法、及び鍵生成方法 | |
US20060002565A1 (en) | Key management system and playback apparatus | |
WO2005059776A2 (en) | Key assignment method for content distribution | |
US20090177888A1 (en) | Information processing device, key setting method, and program | |
US8150040B2 (en) | Key providing system, terminal device, and information processing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130327 Termination date: 20131003 |