密钥提供系统、密钥提供装置、终端设备、密钥提供方法和密钥生成方法 【技术领域】
本发明涉及密钥提供系统、密钥提供装置、终端设备、密钥提供方法和密钥生成方法。
背景技术
近年来,诸如个人计算机(以下称为PC)、便携电话和数字家用电器等信息设备一般地被广泛使用。与这样的信息设备有关的技术以及诸如这样的设备的信息通信连接正大大地进步,并且利用这样的信息设备进行诸如音乐分发和视频分发的内容分发服务正在广泛地逐步展开。内容分发服务的示例有利用CATV(通信天线电视)的支付广播、卫星广播或因特网,以及利用诸如CD(压缩盘)或DVD(数字通用盘)之类的物理介质进行的内容分发。
然而,为了提供这样的内容分发服务,需要一种只允许签约方基于服务提供商(以下称为系统管理者)与视听者之间的签约来获取内容的机制。针对此问题,设计了一种从系统管理者向签约方提供预定密钥以及分发用于生成用来以预定密钥对内容M进行加密的内容密钥mek的头信息h和经过加密的内容M的机制。
称为广播加密系统的内容分发系统被认为是用于实现这样的机制的一种特定手段。此广播加密系统是一种这样的系统,其将各个签约与集合中的元素对应,然后将表示全部签约方的签约方集合分成多个子集,并且分发头h以使得只属于特定子集的签约方能获取内容密钥mek。也就是,通过应用这样的系统可以在排除系统管理者指定的特定签约方之外分发内容M。然而,实际上,考虑到计算在系统管理员侧的服务器设备(以下称为中心)以及签约方侧的终端设备处与内容密钥mek生成相关联的负荷、服务器设备和终端设备之间的通信负荷等,希望相关技术的广播加密系统更加高效。
具体地,当分发内容时,通信量根据由中心分发的头h的大小增大到什么程度、存储量根据由各个终端设备持有的密钥数量增大到什么程度、以及可以将各个终端设备生成内容密钥Mek所需的计算量减少到什么程度成为问题。各个量依赖于对签约方集合的划分方法而大大不同。已经提出了多种用于设计签约方集合划分方法的广播加密系统,以实现高效的内容分发。例如,非专利文献1公开了Nuttapong Attrapadung和Hideki Imai等人的内容分发系统,作为用于降低各个量的一种手段,该内容分发系统被称为基于子集递增链的广播加密系统(以下称为AI05系统)。
[非专利文献1]Nuttapong Attrapadung和Hideki Imai的“SubsetIncremental Chain Based Broadcast Encryption with Shorter Ciphertext”,第28届信息理论及应用会议(SITA2005)。
【发明内容】
本发明的申请人开发了比与在非专利文献1中描述的内容分发系统能够减少各个终端设备要持有的存储量的第一改进系统(以下称为A06(A)系统),能够减少用于各个终端设备生成内容密钥的计算量的第二改进系统(以下称为A06(B)系统)以及能够减少存储量和计算量的第三改进系统(以下称为A06(A+B)系统),并且已经向日本专利局提交以获得专利(A06(A)系统:日本申请No.2006-310182;A06(B)系统:日本申请No.2006-310213;以及A06(A+B)系统:日本申请No.2006-310226)。各个系统的特征在于当利用伪随机序列生成器生成内容密钥mek时,伪随机序列生成计算是基于由各个系统唯一的有向图表示的密钥生成算法来执行的。
然而,当根据某一系统从与一个子集对应的密钥生成与另一子集对应的密钥时,不限于上述各个系统,如果与诸如包括多个密钥生成路径的信息的有向图之类的集合相关信息都要被终端设备侧持有时,用于持有多个密钥生成路径的信息的存储容量变得很大。如果终端设备通过密钥提供装置持有所有密钥生成路径的信息,则所传播的以供终端设备获取多个密钥生成路径的信息的容量变得很大。
本发明解决上面确定地问题以及与传统方法和装置相关的其它问题,并且希望提供新的并且经过改进的密钥提供系统、密钥提供装置、终端设备、密钥提供方法和密钥生成方法,与当终端设备预先传播或持有所有密钥生成路径信息相比,它们能够减少终端设备传播或持有用于密钥生成的信息所需的容量。
根据本发明的一个实施例,提供了一种密钥提供系统,该密钥提供系统包括多个终端设备以及向所述多个终端设备提供用于对信息进行加密或解密的密钥信息的密钥提供装置。
此外,该密钥提供装置包括:集合关系信息获取单元,用于获取集合关系信息,所述集合关系信息包含多个集合信息和多个密钥生成路径信息,每个集合信息指示所述多个终端设备的不同组合,所述密钥生成路径信息指示从与所述多个集合信息中的一个相对应的密钥信息生成与所述多个集合信息中的另一个相对应的密钥信息所需的密钥生成路径;密钥生成路径信息提取单元,用于从在所述集合关系信息中包含的所述多个密钥生成路径信息提取所述多个密钥生成路径信息的一部分密钥生成路径信息;以及密钥生成路径信息提供单元,用于向所述终端设备提供由所述密钥生成路径信息提取单元提取的所述一部分密钥生成路径信息。
此外,所述终端设备可以包括:密钥生成路径信息获取单元,用于获取所述一部分密钥生成路径信息,以及密钥信息生成单元,用于基于所述一部分密钥生成路径信息从与所述多个集合信息中的一个相对应的密钥信息生成与所述多个集合信息中的另一个相对应的密钥信息。
根据本发明的另一实施例,提供一种密钥提供装置,用于向多个终端设备提供用于对数据进行加密或解密的密钥信息。所述密钥提供装置包括:集合关系信息获取单元,用于获取集合关系信息,所述集合关系信息包含多个集合信息和多个密钥生成路径信息,每个集合信息指示所述多个终端设备的不同组合,所述密钥生成路径信息指示从与所述多个集合信息中的一个相对应的密钥信息生成与所述多个集合信息中的另一个相对应的密钥信息所需的密钥生成路径;密钥生成路径信息提取单元,用于从在所述集合关系信息中包含的所述多个密钥生成路径信息提取所述多个密钥生成路径信息的一部分密钥生成路径信息;以及密钥生成路径信息提供单元,用于向所述终端设备提供由所述密钥生成路径信息提取单元提取的所述一部分密钥生成路径信息。
此外,所述密钥生成路径信息提供单元可以包括通信单元,用于通过网络向终端设备发送密钥生成路径信息。
此外,所述密钥生成路径信息提供单元包括记录单元,用于将密钥生成路径信息记录在记录介质中以便向终端设备提供。
此外,所述密钥提供装置还可以包括:加密单元,用于利用与所述多个集合信息的一个相对应的密钥信息来对信息进行加密;以及加密信息提供单元,用于向终端装置提供加密信息。
此外,所述密钥生成路径获取单元可以被配置为获取由连接关于多个坐标点的坐标点的有向分支形成的有向图作为集合关系信息,所述多个坐标点对应于多个集合信息,每个集合信息指示所述多个终端设备的不同组合。
此外,所述密钥生成路径提取单元可以被配置为提取达到与所述终端设备所属的集合信息对应的坐标点的有向图的一部分作为所述一部分密钥生成路径信息。
此外,所述密钥生成路径提取单元可以被配置为提取指示配置所述有向图的一部分的有向分支的终结端位置的信息作为所述一部分密钥生成路径信息。
此外,所述密钥生成路径提取单元可以被配置为提取指示配置所述有向图的一部分的有向分支的长度的信息作为所述一部分密钥生成路径信息。
此外,所述密钥提供装置还包括密钥信息生成单元,所述密钥信息生成单元用于根据与坐标点S0对应的密钥信息k(S0)的输入来生成与以坐标点S0作为开始端的所有有向分支的终结端的坐标点S1,...,Sm对应的密钥信息k(S1),...,k(Sm)。
此外,所述密钥信息可以由用于对信息进行加密或解密的设定密钥k以及用于生成所述设定密钥k的中间密钥t来配置。此外,所述密钥提供装置还可以包括:密钥信息生成单元,用于根据与所述坐标点S0对应的中间密钥t(S0)的输入来生成与所述坐标点S0对应的设定密钥k(S0)以及与以所述坐标点S0为开始端的所有有向分支的终结端的坐标点S1,...,Sm对应的中间密钥t(S1),...,t(Sm)。
根据本发明的另一实施例,提供了一种密钥提供装置,用于向多个终端设备提供用于对信息进行加密或解密的密钥信息。所述密钥提供装置包括:集合关系信息生成单元,所用于生成集合关系信息,所述集合关系信息包含多个集合信息和多个密钥生成路径信息,每个集合信息指示所述多个终端设备的不同组合,所述密钥生成路径信息指示从与所述多个集合信息中的一个相对应的密钥信息生成与所述多个集合信息中的另一个相对应的密钥信息所需的密钥生成路径;密钥生成路径信息提取单元,用于从在所述集合关系信息中包含的所述多个密钥生成路径信息提取所述多个密钥生成路径信息的一部分密钥生成路径信息;以及密钥生成路径信息提供单元,用于向所述终端设备提供由所述密钥生成路径信息提取单元提取的所述一部分密钥生成路径信息。
根据本发明的一方面,提供了一种终端设备,用于生成用于对信息加密或解密的密钥信息。所述终端设备包括:
密钥生成路径信息获取单元,用于获取从集合关系信息提取的多个密钥生成路径信息的一部分密钥生成路径信息,所述集合关系信息包括多个集合信息和多个密钥生成路径信息,每个集合信息指示多个终端设备的不同组合,所述密钥生成路径信息指示从与所述多个集合信息中的一个相对应的密钥信息生成与所述多个集合信息中的另一个相对应的密钥信息所需的密钥生成路径;密钥信息生成单元,用于基于所述一部分密钥生成路径信息从与所述多个集合信息中的一个对应的密钥信息生成与所述多个集合信息中的另一个对应的密钥信息。
此外,所述密钥生成路径信息获取单元可以包括通信单元,用于通过网络向接收密钥生成路径信息。
此外,所述密钥生成路径信息获取单元可以包括读出单元,用于获取记录有密钥生成路径信息的记录介质并且从记录介质读出密钥生成路径信息。
此外,所述终端设备还可以包括:加密信息获取单元,用于获取利用与所述多个集合信息中的另一个相对应的密钥信息所加密的信息;以及加密信息解密单元,用于对利用由所述密钥信息生成单元生成的与所述多个集合信息中的另一个相对应的密钥信息所加密的信息进行解密。
此外,所述密钥生成路径信息获取单元可以被配置为针对与所述多个集合信息对应的多个坐标点将从由连接坐标点的有向分支形成的有向图提取的达到与所述移动终端所属的集合信息相对应的坐标点的一部分有向图获取作为所述一部分密钥生成路径信息,其中每个集合信息指示所述多个终端设备的不同组合。
此外,所述密钥生成路径信息获取单元可以被配置为获取指示配置所述有向图的一部分的有向分支的终结端位置的信息作为所述一部分密钥生成路径信息。
此外,所述密钥生成路径信息获取单元可以被配置为获取指示配置所述有向图的一部分的有向分支的长度的信息作为所述一部分密钥生成路径信息。
此外,所述终端设备还可以包括密钥信息生成单元,所述密钥信息生成单元用于根据与所述有向分支的开始端S0对应的密钥信息k(S0)的输入来生成与所述有向分支的终结端的坐标点S1对应的密钥信息k(S1)。
此外,所述密钥信息由用于对信息进行加密或解密的设定密钥k以及用于生成所述设定密钥k的中间密钥t配置。此外,所述终端设备还可以包括:密钥信息生成单元,所述密钥信息生成单元用于根据与所述有向分支的开始端S0对应的中间密钥t(S0)的输入来生成与所述有向分支的开始端S0对应的设定密钥k(S0)以及与所述有向分支的终结端S1对应的中间密钥t(S1)。
根据本发明的另一方面,提供了一种用于向多个终端设备提供用于对数据进行加密或解密的密钥信息的密钥提供方法。所述密钥提供方法包括以下步骤:
获取集合关系信息,所述集合关系信息包含多个集合信息和多个密钥生成路径信息,每个集合信息指示所述多个终端设备的不同组合,所述密钥生成路径信息指示从与所述多个集合信息中的一个相对应的密钥信息生成与所述多个集合信息中的另一个相对应的密钥信息所需的密钥生成路径;
从在所述集合关系信息中包含的所述多个密钥生成路径信息提取所述多个密钥生成路径信息的一部分密钥生成路径信息;以及
向所述终端设备提供由密钥生成路径信息提取单元提取的所述一部分密钥生成路径信息。
根据本发明的另一方面,提供一种用于生成用于对信息进行加密或解密的密钥信息的密钥生成方法。所述方法包括以下步骤:获取从集合关系信息提取的多个密钥生成路径信息的一部分密钥生成路径信息,所述集合关系信息包括多个集合信息和多个密钥生成路径信息,每个集合信息指示多个终端设备的不同组合,所述密钥生成路径信息指示从与所述多个集合信息中的一个相对应的密钥信息生成与所述多个集合信息中的另一个相对应的密钥信息所需的密钥生成路径;以及基于所述一部分密钥生成路径信息,从与所述多个集合信息中的一个相对应的密钥信息生成与所述多个集合信息中的另一个相对应的密钥信息。
根据上述各个配置,由密钥提供装置提取的密钥生成路径信息的一部分被提供给终端设备,并且终端设备从与一个集合对应的密钥导出与另一集合对应的密钥,因此,与当接收密钥提供装置中持有的所有密钥生成路径信息的提供相比,从密钥提供装置向终端设备传播密钥生成路径信息所需的容量能够被限制。此外,与当终端设备预先持有所有密钥生成路径信息相比,终端设备持有密钥生成路径信息所需的容量能够被限制。
根据上述本发明,与当终端设备预先传播或持有所有密钥生成路径信息相比,能够减少终端设备传播或持有用于密钥生成的信息所需的容量。
【附图说明】
图1是示出根据本发明的第一和第二实施例的密钥提供系统100的配置的示例性示图;
图2是示出根据实施例的密钥分发服务器102和终端设备122的硬件配置的示例性示图;
图3是示出根据实施例的逻辑二进制树的结构的示例性示图;
图4是示出根据AI05系统的有向图H的示例性示图;
图5是示出根据AI05系统的密钥分发处理的流程的示例性示图;
图6是示出根据AI05系统的密钥分发处理的流程的示例性示图;
图7是示出根据当前实施例的对加密的文本进行的解密处理的示例性示图;
图8是示出根据当前实施例的密钥分发服务器102的功能配置的示例性示图;
图9是示出根据A06(A+B)系统用于生成临时有向图I’的处理的流程的示例性示图;
图10是示出A06(A+B)系统的临时有向图I’的示例性示图;
图11是示出根据A06(A+B)系统用于生成有向图I的处理的流程的示例性示图;
图12是示出根据A06(A+B)系统用于生成有向图I的处理的流程的示例性示图;
图13是示出根据A06(A+B)系统用于生成有向图I的处理的流程的示例性示图;
图14是示出根据A06(A+B)系统用于生成有向图I的处理的流程的示例性示图;
图15是示出A06(A+B)系统的有向图I的示例性示图;
图16是示出当将实施例应用到AI05系统的有向图H时参考的有向路径的示例的示例性示图;
图17是示出当将实施例应用到AI05系统的有向图H时参考的有向路径的示例的示例性示图;
图18是示出当将实施例应用到A06(A+B)系统的有向图I时参考的有向路径的示例的示例性示图;
图19是根据当前实施例的终端设备122的功能配置的示例性示图;
图20是根据本发明的第一实施例的密钥生成处理的流程的示例性示图;
图21是根据本发明的第二实施例的密钥生成处理的流程的示例性示图;
图22是示出用作本发明的第一和第二实施例的应用示例的广播加密系统300的配置的示例性示图;以及
图23是示出用作本发明的第一和第二实施例的应用示例的广播加密系统400的配置的示例性示图。
标号说明
100密钥提供系统
102密钥分发服务器
104树结构设定单元
106坐标轴设定单元
108临时有向图生成单元
110有向图生成单元
112初始中间密钥设定单元
114密钥生成单元
116加密单元
118通信单元
120子集确定单元
121路径信息生成单元
122终端设备
124通信单元
126判断单元
128密钥生成单元
130解密单元
202控制器
204计算单元
206输入/输出接口
208安全存储单元
210主存储单元
212网络接口
216介质接口
218信息介质
【具体实施方式】
下面,将参考附图详细描述本发明的优选实施例。
注意,在本说明书和附图中,具有基本相同功能配置的元件配置以相同的标号来表示,并且将省略对这些配置元件的冗余的说明。
<第一实施例>
下面将详细描述根据本发明的第一实施例的密钥提供系统100以及与密钥分发有关的特定系统的配置。
[概述]
在详细描述根据本实施例的密钥提供系统100的配置之前,将简要地描述根据本实施例的密钥分发系统的概要。
本发明可应用于多种密钥分发系统,但是为了说明的方便,将通过示例来描述本实施例应用于AI05系统和A06(A+B)系统的情况。将简要地描述本实施例可以应用于其中的AI05系统等的基本思想。
在AI05系统等中,考虑全部终端设备的集合(在密钥分发系统中包含的每个终端设备与集合的元素相对应),类似于常规的广播加密系统。密钥分发是利用通过对集合进行划分获得的多个子集来执行的。也就是,子集表示终端设备的组合。首先,密钥分发服务器形成二进制树(BT)并且将每个终端系统对应于一个叶节点。密钥分发系统然后根据预定规则生成多个“子集的集合”,该“子集的集合”以子集作为元素,并且将每个子集集合对应于BT的根节点和中间节点。密钥分发服务器基于预定规则将在子集集合中包含的多个子集进行关联(以下有时称为跳)。子集之间的关系以有向图或者有向分支(directional branch)来表示。所述集合和作为所述集合中的元素的子集合是集合信息的示例。由AI05系统等生成的有向图是集合关系信息的示例。此外,配置有向图的有向分支是密钥生成路径信息的一个示例,然而,密钥生成路径信息是表示由一个或多个有向分支或者与空集合相对应的有向图配置的密钥生成路径的信息。
有向图形成在坐标轴上,其中,子集的集合中包含的每个子集对应于每个坐标点,并且由连接多个坐标点的有向分支基于跳来配置。对于与BT中的根节点和每个中间节点相对应的每个子集集合,密钥分发服务器形成表示在子集集合中包含的多个子集间的关系的有向图。
此外,密钥分发服务器选择包括作为分发目的地的终端设备的子集,并且指定包含相关子集的有向图。密钥分发服务器基于指定的有向图通过伪随机序列生成器(PRSG)重复计算来生成密钥。与相关技术的广播加密系统相比,AI05系统的特征在于将表示所有终端设备的集合划分成子集,从而减少通信量、每个终端设备要持有的密钥数量以及每个终端设备用于生成密钥的计算量。因此,在适于AI05系统等的密钥分发系统中,可以利用有向图来生成要分发给每个终端设备的密钥。
A06(A)系统是从AI05系统改进得到的,以使得通过应用缩短配置有向图的有向分支的长度的处理来减少每个终端设备要持有的密钥数量。A06(B)系统是从AI05系统改进得到的,以使得通过形成有向图以使得有向分支的长度变长来减少每个终端设备用于生成密钥的计算量。此外,A06(A+B)系统是从AI05系统改进得到的,以使得通过类似于A06(A)系统那样以短有向分支替代预定的有向分支并且之后类似于A06(B)系统那样形成长有向分支的有向图来减少每个终端设备用于密钥生成的计算量以及要持有的密钥数量。因此,与AI05系统相比,通过应用A06(A)、A06(B)和A06(A+B)中的各个系统可以减少终端设备的负荷。
然而,在AI05系统等中,没有清楚地公开如何获取每个终端设备生成密钥所需的信息,并且存在没有提到的假设,即每个终端设备预先持有有向图的所有信息或者每个终端设备基于与密钥分发服务器相同的算法独自生成有向图。然而,考虑到实际情形,假定在密钥提供系统中包含大量终端设备,则每个终端设备持有的有向图的信息量以及用于生成有向图的计算量是庞大的,因此在一般终端设备的有限资源中是很难实现它们。
更具体地,考虑A06(B)系统的情况,在密钥提供系统中包含的终端设备的数量n通常约为n=232,因此即使一个有向分支的信息以4字节来表示,每个终端持有的信息量也将约为32G字节。当每个终端设备生成有向图时,对于数量n的终端设备n=232,(n-1)个有向分支被计算,因此每个终端设备用于生成有向图的计算负荷是非常大的。
当各个终端设备生成内容密钥mek时,各个系统仅仅建议利用由各个终端设备预先持有的各个有向图的信息,并且特定手段未被示出。如上所述,如果签约方的数量很大,则各个终端设备持有的有向图的信息量将变得庞大,因此实际难以将这些信息存储在终端设备中。当各个终端设备计算有向图时,各个终端的计算量变得庞大并且变得难以实现。
根据本实施例的密钥分发服务器具有提供各个终端设备用于生成密钥所需的有向图信息的配置。此外,各个终端设备具有如下配置:基于从密钥分发服务器获取的有向图信息来执行伪随机序列计算并生成所需的密钥。
已经简要描述了本实施例可以应用于其中的密钥分发系统。应当认识到,本实施例可以应用于其中的密钥分发系统不限于各个系统AI05、A06(A)、A06(B)和A06(A+B),并且本实施例可以应用于其它密钥分发系统。为了说明的方面,下面将描述将本实施例应用于AI05和A06(A+B)的情况,但是本申请的用意是本领域技术人员基于相关描述可以容易地设计其它密钥分发系统。
[密钥提供系统100的配置]
下面将参考图1简要描述根据本发明的第一实施例的密钥提供系统100的配置。图1是示出根据本实施例的密钥提供系统100的配置的示例性示图。
参考图1,密钥提供系统100主要由密钥分发服务器102、终端设备122和网络10来配置。密钥分发服务器102是密钥提供装置的一个示例。
网络10是用于以双向通信或单向通信连接密钥分发服务器102和终端设备122的通信线路网络。网络10由诸如因特网的公共线路网络、电话线路网络、卫星通信网络和广播通信路径,以及诸WAN(广域网)、LAN(局域网)、IP-VPN(因特网协议-虚拟私有网络)、无线LAN之类的专用线路网络配置,并且可以是有线或者无线的。
(密钥分发服务器102)
密钥分发服务器102可以在内容分发中加密和分发各种电子数据。例如,密钥分发服务器102可以生成用于对内容进行加密或解密的内容密钥并分发这些密钥。内容密钥可以由伪随机序列生成器计算出的随机序列(伪随机序列)、预定的字符串、数字序列等来表示。内容密钥还可以由加密内容密钥和解密内容密钥来配置。密钥分发服务器102还可以利用内容密钥基于预定的加密逻辑来对内容进行加密。此外,密钥分发服务器102可以向终端设备122分发内容和内容密钥中的一种或两种。
密钥分发服务器102可以生成用于对内容密钥进行加密或解密的多个设定密钥(set key)。在这样的情况中,密钥分发服务器102利用伪随机序列生成器基于预定的有向图来生成多个设定密钥。密钥分发服务器102利用各个设定密钥来对内容密钥进行加密,并且将经过加密的内容密钥分发给预定的终端设备122。此外,密钥分发服务器102可以向终端设备122分发用于生成预定的设定密钥的有向图信息。设定密钥是密钥信息的一个示例。内容密钥是由密钥信息加密/解密的信息的一个示例。
多个设定密钥与从大量签约方选出的多个签约方的子集组相对应,并且密钥分发服务器102生成设定密钥以使得仅仅被允许再现内容的签约方(以下称为被允许的签约方)的集合可以利用设定密钥来对内容密钥解密、对内容密钥加密,以及向所有的签约方的终端设备122分发经过加密的内容密钥。密钥分发服务器102因此不仅被配置用于对内容进行加密和分发,还用于对内容密钥进行加密和分发。应当认识到,通过加密并分发内容可以确保一定程度的安全水平,而更有益的是,灵活地响应于被允许使用内容的签约方向大量签约方中的添加和从其中的删除来来加密和分发内容密钥。
根据上述配置,仅仅预定的终端设备122可以对经过加密的内容密钥进行解密,并且因此仅仅预定的终端设备122可以对内容进行解密并查看。当被允许的签约方的集合被改变时,密钥分发服务器102可以通过改变在对内容密钥进行加密中所使用的设定密钥来对此改变做出响应。
伪随机序列生成器是一种能够通过输入预定的种子值而输出长周期的伪随机序列的设备或程序,并且利用诸如线性同余法(linear congruentialmethod)和高精度扰乱法(mersenne twister method)之类的逻辑来实现。应当注意,能够应用于本实施例的伪随机序列生成器不限于此,并且可以利用其它逻辑生成伪随机序列,或者可以是能够生成包含特定信息或条件的伪随机序列的设备或程序。
密钥分发服务器102由具有服务器功能的诸如个人计算机(PC)之类的信息处理设备来配置,并且可以经由网络10向外部设备发送多种类型的信息。例如,密钥分发服务器102可以生成广播加密系统的加密密钥,并且将该加密密钥分发给终端设备122。此外,密钥分发服务器102可以具有作为用于提供诸如视频分发服务、电子音乐分发服务等内容分发服务的内容分发服务器的功能,或者可以具有用于向终端设备122分发内容的功能。很明显,密钥分发服务器102和内容分发服务器可以配置为不同的设备。
内容可以是诸如电影、电视节目、视频节目、图片、音乐的音频内容、演讲、无线电节目、游戏内容和文件内容,或者包括软件等的任意内容数据。视频内容可以不仅包括视频数据还包括音频数据。
(终端设备122)
终端设备122可以接收来自密钥分发服务器102的各种信息。例如,终端设备122可以接收由密钥分发服务器102分发的内容和内容密钥。终端设备122可以利用从密钥分发服务器102提供的内容密钥来对经过加密的内容进行解密。然而,因为从密钥分发服务器102发送的内容或内容密钥是由预定的设定密钥加密的,所以内容或内容密钥将被解密。终端设备122因此利用从密钥分发服务器102获取的预定的设定密钥来对经过加密的内容或内容密钥进行解密。终端设备122还可以使用预先持有的设定密钥或者用来生成预定的设定密钥以生成密钥分发服务器102所使用的设定密钥的中间密钥来对内容或内容密钥进行加密。在这样的情况中,终端设备122将其持有的设定密钥或中间密钥输入到为随机序列生成器,并且基于从密钥分发服务器102获取的与有向图有关的信息来生成所希望的设定密钥。中间密钥是密钥信息的一个示例。
根据这样的配置,终端设备122不生成用于生成所希望的设定密钥所需的有向图,因此可以减少将要持有的信息量并且在生成设定密钥中可以减少计算负荷。
终端设备122是一种可以通过网络10与外部设备进行数据通信的终端设备。终端设备122由诸如个人计算机(未示出)之类的信息处理设备来配置,但是并不限于此,并且可以由诸如PDA(个人数字助理)、家庭游戏机、DVD/HDD记录仪、电视接收机、电视广播调谐器和解码器等的信息家用电气来配置,只要其是具有使能通过网络10的信息通信的通信功能的设备即可。终端设备122还可以是诸如便携游戏机、便携电话、便携视频/音频播放器、PDA和PHS之类的可以随身携带的便携设备。
上面已经简要描述了根据本实施例的密钥提供系统100的配置。现在将简要描述配置密钥提供系统100的密钥分发服务器102和终端设备122的硬件配置的具体示例。
[密钥分发服务器102和终端设备122的硬件配置]
将参考图2简要描述密钥分发服务器102和终端设备122的硬件配置。图2示出根据本实施例的能够实现密钥分发服务器102和终端设备122的功能够的硬件配置的一个示例。
参考图2,密钥分发服务器102和终端设备122由控制器202、计算单元204、输入/输出接口206、安全存储单元208、主存储单元210、网络接口212和介质接口216来配置。
(控制器202)
控制器202通过总线连接到其它配置元件,并且主要基于存储在主存储单元210中的程序和数据来控制设备中的各个单元。控制器202可以由诸如中央处理单元(CPU)之类的计算处理设备来配置。
(计算单元204(密钥分发服务器102的情况))
密钥分发服务器102的计算单元204可以执行内容的加密、内容密钥的加密、有向图的生成、设定密钥的生成以及用来生成设定密钥的中间密钥的生成。因此,计算单元204具有如用于基于预定的数据(种子值,等等)生成伪随机序列的伪随机序列生成器那样的功能,同时具有基于预定的算法对内容或内容密钥进行加密的功能。预定的算法可以作为可以被计算单元204易读的程序存储在主存储单元210中。预定的数据可以存储在主存储单元210或安全存储单元208中。计算单元204可以将通过执行各种类型的处理获得的输出结果记录在主存储单元210或安全存储单元208中。计算单元204由诸如CPU之类的计算处理设备来配置。计算单元204可以与控制器202集成形成。
(计算单元204(终端设备122的情况))
终端设备122的计算单元204可以执行内容的解密、内容密钥的解密、设定密钥的生成以及用来生成设定密钥的中间密钥的生成。因此,计算单元204具有如用于基于预定的数据(种子值,等等)生成伪随机序列的伪随机序列生成器那样的功能,同时具有基于预定的算法对内容或内容密钥进行解密的功能。预定的算法可以作为可以被计算单元204易读的程序存储在主存储单元210中。预定的数据可以存储在主存储单元210或安全存储单元208中。计算单元204可以将通过执行各种类型的处理获得的输出结果记录在主存储单元210或安全存储单元208中。计算单元204由诸如CPU之类的计算处理设备来配置。计算单元204可以与控制器202集成形成。
(输入/输出接口206)
输入/输出接口206主要连接到输入设备以便用户输入数据,和连接到输出设备以便输出计算结果或内容的内容。输入设备可以是密钥盘、鼠标、跟踪球、触摸笔、密钥区、触摸面板等。输入设备可以有线或者无线地连接到输入/输出接口206。输入设备可以有线或无线地连接到诸如便携电话或PDA之类地便携电子设备。输出设备可以是诸如显示器的显示设备、诸如扬声器的音频输入设备等。输出设备可以有线或无线地连接到输入/输出接口206。对于密钥分发服务器102或终端设备122,输入/输出设备可以集成形成。
输入/输出接口206通过总线连接到其它配置元件,并且可以向主存储单元210等发送通过输入/输出接口输入/输出接口206输入的数据。相对地,输入/输出接口206可以向输出设备输出存储在主存储单元210等中的数据、通过网络接口212等输入的数据、通过计算单元204基于有关数据的计算获得的结果,等等。
(安全存储单元208)
安全存储单元208是用于安全存储诸如主要的内容密钥、设定密钥和中间密钥的要求保密性的数据的存储设备安全存储单元208可以被配置为包括诸如硬盘之类的磁存储设备、诸如光盘之类的光存储设备、磁-光存储设备、半导体存储设备等。安全存储单元208可以被配置为具有防篡改特性的存储设备。
(主存储单元210)
主存储单元210可以存储用于对内容或内容密钥进行加密的加密程序、用于对经过加密的内容或内容密钥进行解密的解密程序、用于生成设定密钥或中间密钥的密钥生成程序,等等。主存储单元210可以临时性地或者永久性地存储从计算单元204输出的计算结果,或者存储从输入/输出接口206、网络接口212或介质接口216输入的数据。主存储单元210可以由诸如硬盘之类的磁存储设备、诸如光盘之类的光存储设备、磁-光存储设备、半导体存储设备等来配置。
(网络接口212)
网络接口212是通过网络10连接到其它通信设备的接口装置,用于发送和接收经过加密的内容或内容密钥、设定密钥、诸如中间密钥的数据、在加密中使用的参数信息以及与被允许的签约方的集合有关的数据。网络接口212通过总线连接到其它配置元件以在网络10中向其它配置元件发送从外部设备接收的数据或者在网络10中向外部设备发送其它配置元件的数据。
(介质接口216)
介质接口216是用于可移除地附接到信息介质218的用于读或写数据的接口,并且通过总线连接到其它配置元件。介质接口216可以从所附接的信息介质218读取数据并且将读取的数据发送给其它配置元件,或者将从其它配置元件提供的数据写如信息介质218。信息介质218可以是诸如光盘、磁盘和半导体存储器之类的便携存储介质(可移除存储介质),或者可以是不用网络10的情况下以相对较近的距离有线或者无线地连接的信息终端的存储介质。
上面已经描述了能够实现根据本实施例的密钥分发服务器102和终端设备122的功能的硬件配置的一个示例。上面的每个配置元件可以利用通用构件来配置,或者可以通过专用于各个配置元件的功能的专用硬件来配置。因此,可以根据实施本实施例时候的技术水平来适当改变要使用的硬件配置。上面描述的硬件配置仅仅是示例,并且并不限于此。例如,控制器202和计算单元204可以由相同的计算设备来配置,或者安全存储单元208和主存储单元210可以由相同的存储设备来配置。取决于使用模式,可以省略介质接口216、输入/输出接口206等。
[本实施例可以应用于其中的密钥分发系统]
将以AI05系统和A06(A+B)系统作为本实施例可以应用于其中的密钥分发系统的示例来进行详细描述。应当认识到,本实施例可以应用于其中的密钥分发系统并不限于此,并且本领域技术人员根据下面的描述可以容易地设计用于将本发明的实施例应用到其它密钥分发系统的手段。
(AI05系统)
下面将描述本实施例可以应用于其中的AI05系统。AI05系统是一种用于将要向其分发内容的终端设备122的集合划分成多个子集,并且利用与各个子集相对应的设定密钥对内容密钥进行加密并将加密的内容密钥进行分发的系统。下面描述的各个处理主要是由密钥分发服务器102执行的,但是下面的至少一部分算法被用在终端设备122中以生成用于对内容或内容密钥进行加密的密钥。
在AI05系统中,对向其分发内容、被划分成多个子集的终端设备122的集合进行查阅。下面将参考图3来描述根据AI05系统划分成子集的方法。虽然存在不止一种划分成子集的方法,但是在AI05系统中采用利用二进制树结构划分成子集的方法。在AI05系统中,考虑到形成二进制树结构的类似结的点(节点)之间的位置关系来看,预定的子集对应于各个节点,以使得可以无遗漏的选择具有预定组合的终端设备122的子集。首先,将参考附图3描述构建二进制树结构的方法。在描述中所使用的表达式被定义如下。
(各种定义)
将所有终端设备(签约方)设定为N={1,...,n}(n是2的幂次方)
关于自然数i和j(其中i≤j)
[i,j]={i,i+1,...,j}
(i→i)=(i←i)={{i}}
(i→j)={{i},{i,i+1},...,{i,i+1,...,j}}
={[i,i],[i,i+1],....,[i,j]}
(i←j)={{j},{j,j-1},...,{j,j-1,...,i}}
={[j,j],[j,j-1],...,[j,i]}
位于二进制树结构的末端的节点被称为叶节点,位于顶角的节点被称为根节点,并且位于根节点和叶节点之间的各个节点被称为中间节点。每个叶节点对应每个终端设备122。在图3的示例中,示出了BT的叶节点的数量n=64的情况。
(二进制树结构的形成)
首先,BT被形成以使得叶节点的数量为n(例如,n=64)。编号1,...,n从左端向右与各个叶节点相对应。即,编号1,...,n与各个终端设备122相对应。然后定义用于定义指派给某一中间节点v的子集的索引lv和rv。在位于某一中间节点的较低层的叶节点中,在最左侧的叶节点的数量被定义为lv,在最右侧的叶节点的数量被定义为rv。这里,中间节点v表示BT中具有以v为索引的中间节点。
接着,BT中的中间节点被分成两个集合。在BT的中间节点中,位于父母节点的左侧的中间节点的集合被定义为BTL,位于父母节点的右侧的中间节点的集合被定义为BTR。关于在BT中连接的两个节点之间的位置关系,位于较高层的节点被称为父母节点,位于较低层的节点被称为孩子节点。
(相对于根节点的集合的对应关系)
然后设定与BT的根节点相对应的集合。因为所有叶节点都耦合到较下层的根节点,所以包括以部分或全部终端设备122作为元素的子集的集合被对应。也就是说,集合(1→n)和集合(2←n)被设定作为要与根节点对应的集合。例如,集合(1→64)和集合(2←64)对应于图3的根节点。
此对应关系是由于以下的原因。根据上面的定义,集合(1→64)包括作为元素的子集[1,1],...,[1,64],因此包括所有终端设备122(编号从1到64)的终端设备122组可以被表示为[1,64]={1,...,64}。类似地,除了编号为16的终端设备122以外的所有终端设备122可以利用子集[1,15]以及子集[64,17]来表示。在此情况中,子集[1,15]包括子集集合(1→64),并且子集[64,17]包括集合(2←64)。也就是说,位于根节点的较下层的叶节点(例如,终端设备122)的任意组合可以利用与根节点对应的集合的子集来表示。
(相对于中间节点的集合的对应关系)
然后,子集与BT的各个中间节点相对应。首先,集合(lv+1←rv)对应于属于针对所有v的集合BTL的中间节点v。类似地,集合(lv→rv-1)属于针对所有v的集合BTR的中间节点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)的元素。也就是,可以利用与各个中间节点对应的集合的子集来表示所希望的叶节点(终端设备122)的组合。
在AI05系统中,利用BT来定义表示终端设备122的组合的子集的集合。由上述子集形成的全部集合被称为集合系统SS。可以按照下面的公式(1)来数学表达集合系统SS。
[公式1]
SS={∪v∈BTL(lv+1←rv)}∪{∪v∈BTR(lv→rv-1)}∪(1→n)∪(2←n)---(1)]]>
上面已经描述了在AI05系统中形成二进制树的方法。AI05系统的基本思想是针对每个子集生成多个用于对内容或内容密钥进行加密的设定密钥,针对每个设定密钥对内容或内容密钥进行加密,并且将加密的内容或内容密钥分发给预定的终端设备122。虽然从上面做出的描述没有清楚地暗示,但是通过根据上述规则定义子集可以提供对终端设备122的组合进行高效分类的手段。下面将描述利用子集生成设定密钥的算法。
(有向图的生成)
下面将参考图4来描述用于生成设定密钥的算法。该算法通过由多个有向分支形成的有向图来表示。将详细描述生成有向图的方法。首先,将描述用于对内容密钥进行加密的设定密钥以及用于生成设定密钥的中间密钥。
在AI05系统中,伪堆积序列生成器PRSG被用于生成设定密钥。当对某一子集S0对应的中间密钥t(S0)被输入时,PRSG输出与该子集S0对应的设定密钥k(S0)以及与子集S1,S2,...,Sk相对应的中间密钥t(S1),t(S2),...,t(Sk)。子集S0和其它子集S1,S2,...,Sk之间的关系由以下将要描述的有向图来定义。
集合S0,S1,S2,...,Sk是配置集合系统SS的子集的其中之一,并且如上所述,表示终端设备122的组合。AI05系统的特征在于有向图的形状,其中,表示出了定义PRSG的输入(例如t(S0))和输出(例如,k(S0),t(S1),...,t(Sk))之间的关系的逻辑。将描述根据AI05系统生成有向图的方法。首先,下面将定义所使用的符号等。
(各种定义)
对应于子集Si的中间密钥:t(Si)
对应于子集Si的设定密钥:k(Si)
内容密钥:mek
伪随机序列生成器:PRSG
有向分支:E
有向路径(路径):P
有向图:H
具有与子集Si相对应的作为开始点的坐标点的有向分支的数量:d
与集合(i→j)或者集合(i←j)相对应的AI05系统的有向图被标注为H(i→j)或H(i←j)。有向路径P是密钥生成路径信息的一个示例。PRSG的输入和输出按照下面的公式(2)标注。这指示设定密钥k(S0)和多个中间密钥t(S1),...,t(Sd)是作为对PRSG的中间密钥t(S0)输入的结果的输出。
[公式2]
t(S1)□...□t(Sd)□k(S0)←PRSG(t(S0)) (2)
(算法)
首先,定义参数k(k是自然数)。然而,为了简要,描述k|log(n)(以下称为log的底数为2)。参数k与终端设备122同时持有的中间密钥的数量以及终端设备122用于生成设定密钥所需的计算量有关。因此,参数k是根据本实施例适当设定的参数。在图4的示例中,设定k=6。
将参考图4针对与某个中间节点v对应的有向图H(lv→rv-1)来具体描述生成有向图的方法。
(步骤1)
首先设定用于配置有向图的水平坐标轴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]从左开始按顺序与水平坐标轴的坐标点相对应。
参考图4,绘出了与其上形成各个有向图H的水平坐标轴正交的多个垂线z(z=1到64)。垂线z和有向图H的交叉点表示坐标值。例如,有向图H(lv+1←rv)与垂线z的交叉点表示与子集[rv,z]对应的坐标点,并且有向图H(lv→rv-1)与垂线z的交叉点表示与子集[lv,z]对应的坐标点。与子集Si对应的坐标点在下面有时被标注为坐标点Si。
在根据上述规则设定了水平坐标轴之后,在位于水平坐标轴的最左侧的坐标点的左侧设定一个临时坐标点。此外,在位于水平坐标轴的最右侧的坐标点的右侧设定一个临时坐标点。在左端的临时坐标点被假定为开始点,在右端的坐标点被假定为结束点。从位于左端的临时坐标点到位于右端的临时坐标点的长度Lv为Lv=rv-lv+1。
(步骤2)
设定形成有向图H(lv→rv-1)的有向分支。
(2-1)计算满足n(x-1)k<Lv≤nx/k的整数x。这里,整数x为1≤x≤k。
(2-2)当从0向x-1移动计算器i时,重复执行下面的操作。从水平坐标轴上的开始点起,重复地生成从相关坐标点向右延伸到距离ni/k的坐标点的有向分支(即,从相关坐标点跳到距离ni/k的坐标点的有向分支),直到有向分支的终结点达到水平坐标轴的结束点为止或者直到下一形成的有向分支的终结点超过水平坐标轴的结束点为止。
(步骤3)
以临时坐标点为开始点或结束点的所有有向分支都被删除。
(步骤4)
如果达到某一坐标点的有向分支不止一个,则删除除了最长的有向分支以外的所有有向分支。
通过执行上述算法(步骤1到4)可以建立有向图H(lv→rv-1)。
作为示例,利用图4的有向图H(33→63)来具体描述有向图的配置。有向图H(33→63)由多个弧形曲线配置,并且连接到各个弧形曲线的一端的线水平延伸。弧形曲线和水平延伸的线是有向分支。各个有向分支和垂线的交叉点是水平坐标轴的坐标点。由多个耦合的有向分支形成的坐标点之间的路径被称为有向路径。
在有向图H(33→63)的上侧显示的轮廓箭头表示有向分支的方向。有向图H(33→63)是作为针对lv=33,rv=64,k=6,n=64的情况执行上述算法的结果而获得的。在图4中最下阶的黑色圆图案从左开始顺序表示有向图H(2←2),...,H(63→63)。
上述算法被提供用于生成向右的有向图H(lv→rv-1),但是通过应用该算法可以类似地生成左向有向图H(lv+1←rv)。然而,当设定形成有向图H(lv+1←rv)和H(2←n)的水平坐标轴时,应当注意,子集Si被布置以使得包括关系在水平坐标轴上从右向左变大,并且有向分支的方向是超左的。
上面已经描述了根据AI05系统的生成有向图H的方法。下面将描述利用有向图H生成设定密钥的逻辑。
(设定密钥的生成)
在AI05系统中,利用与配置集合系统SS的各个子集Si对应的各个设定密钥k(Si)来加密内容密钥mek。如上所述,与子集Si对应的有向图H的各个坐标点表示终端设备122的组合。设定密钥k(Si)和中间密钥t(Si)对应于各个子集Si。将根据这样的对应关系来描述基于有向图H生成设定密钥k(Si)的方法。
由以坐标点S0为开始点的一个或多个有向分支的终结端指示的坐标点按照与相关有向分支的开始端S0较接近的顺序(较短的有向分支的顺序)被表示为S1,S2,...,Sk。如果以坐标点S0为开始点的有向分支的数量为q(q<k),则坐标点S(q+1),S(q+2),...,Sk被视为哑元而实际上不被使用。因为在(步骤2-2)中的重复处理是x(1≤x≤k),所以具有以有向图H的各个坐标点为开始端的有向分支的数量最大为k。
根据AI05系统,利用对于λ比特的输入而输出(k+1)*λ比特的PRSG来生成设定密钥k(Si)。当与坐标点S0相对应的中间密钥t(S0)为输入时,PRSG输出对应以坐标点S0为开始端额有向分支达到的各个坐标点(例如,坐标点S1,S2,...,Sk)的中间密钥t(S1),t(S2),...,t(Sk),以及与输入中间密钥t(S0)对应的设定密钥k(S0)。也就是,t(S1)□...□t(Sk)□k(S0)←PRSG(t(S0))。中间密钥t(S1),t(S2),...,t(Sk)可以通过从左开始以λ比特对PRSG的输入进行分段来生成。
例如,参考图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(S4)和与S11=[1,17]、S12=[1,18]、S13=[1,20]、S14=[1,24]和S15=[1,32]对应的中间密钥t(S11),t(S12),t(S13),t(S14)t(S15)。因此,通过重复利用PRSG可以计算出多个设定密钥。
如上所述,如果持有预定的中间密钥t(S0),则可以基于有向图H生成中间密钥和设定密钥。然而,如果不能参考有向图H的信息,则通过向PRSG输入预定密钥t(S0)生成的中间密钥和设定密钥是未知的,因此变得难以生成所希望的设定密钥。本实施例的一个目的是提供对此问题的解决方案。这将在下面描述。
到目前为止已经描述了利用中间密钥的密钥生成方法,但是在现有AI05系统和下面要描述的本实施例中,利用中间密钥的配置不是必须的。中间密钥用于增强安全性的目的,而当重点关注的不是安全性时,当试图减少用于生成设定密钥的计算量等时,可以从设定密钥k(S0)直接计算出另一设定密钥k(S1)等。
例如,当设定密钥k(S0)被输入PRSG时,可以输出与从坐标点S0延伸的有向分支的达到目的地对应的设定密钥k(S1),k(S2),k(S3),k(S4)。
上面已经描述了生成设定密钥的方法。从上面的示例中可以很容易地明白,如果正在持有某一中间密钥,则可以使用此中间密钥并且可以重复执行PRSG以得出与从对应于相关中间密钥的坐标点开始延伸的有向分支的链可以达到的所有坐标点对应的中间密钥和设定密钥。因此,各个终端设备122只持有最少的中间密钥,这些中间密钥能够导出与其被包括作为元素的子集对应的所有中间密钥。
密钥分发服务器102利用了与每个有向图H的头坐标点(以下称为路由(route))对应的中间密钥,并且由PRSG重复执行计算以得出与配置各个有向图的有向分支可以达到的所有坐标点对应的设定密钥。
因此,例如,密钥提供系统100的管理者生成λ比特的随机序列并且在密钥提供系统100的设置的时间里在密钥分发服务器102中设定作为每个有向图H的路由的中间密钥。有向图H的路由涉及有向分支从相关坐标点延伸但是有向分支还没有达到相关坐标节点时的坐标点。例如,图4的有向图H(1→64)的路由是位于水平坐标轴的左端的坐标点[1,1]。
上面已经描述了生成设定密钥的方法。该方法不仅仅在为密钥分发服务器102(其时内容和内容密钥的发送侧)生成用于对内容和内容密钥加密的设定密钥和用于向终端设备122进行分发的中间密钥时使用,而且还用于利用其所预先持有的中间密钥来生成所希望的设定密钥,即使在终端设备122在接收侧时也是如此。
(分发中间密钥的方法)
现在将描述密钥分配服务器密钥分配服务器102向终端设备122分发预定的中间密钥的方法。从其可以导出与包括相关终端设备122的所有子集对应的设定密钥的中间密钥预先被提供给各个终端设122。相反,从其可以导出与不包括相关终端122的子集对应的设定密钥的中间密钥不提供给终端设备122,并且要被提供给终端设备122的中间密钥的数量优选是最少的。
密钥分配服务器102提取可以达到与包括签约方u的终端设备122的最忌对应的坐标点的所有有向图。如果签约方u的终端设备终端设备122包括在与有向图H的路由中,则仅仅与相关路由对应的中间密钥被提供给签约方u的终端设备122。
如果签约方u的终端设备122包括在与除了有向图H的路由以外的坐标点对应的子集中的一个,则提取子集S0,其中,签约方u的终端设备122包括在S0中,并且不包括在子集父母(S0)或子集S0的父母中。与子集S0对应的中间密钥t(S0)被提供给签约方u的终端设备122。
也就是,如果签约方u的终端设备终端设备122包括在与除了有向图H的路由以外的多个坐标点对应的子集中,则达到各个坐标点的有向分支的开始端被参考,并且选择一个坐标点以使得与各个坐标点的开始端对应的子集不包括对签约方u对应的终端设备122.随着与此坐标点对应的子集作为S0并且与达到坐标点S0的有向分支的开始端(父母)对应的子集作为父母(S0),与不包括子集父母(S0)的坐标点S0对应的中间密钥t(S0)被提供给签约方u的终端设备122。
如果坐标点S0存在多个,各个中间密钥t(S0)被提供给签约方u的终端设备终端设备122。坐标点的父母-孩子关系由有向分支来定义。也就是,有向分支的开始端为终结端的父母,并且有向分支的终结端为开始端的孩子。坐标点S0的父母被标注为父母(S0)。可以认识到,如果坐标点S0是有向图H的路由,则坐标点S0的父母不存在。如果坐标点S0不是有向图H的路由,则只存在一个坐标点S0的父母。
现在将参考图4具体描述分发中间密钥的方法。
(示例1)
将考虑分发给签约方1的终端设备122的中间密钥。首先,提取可以达到包括签约方1的终端设备122的子集的有向图H。参考图4,此有向图H仅仅是有向图H(1→64)。签约方1的终端设备122属于与有向图H(1→64)的路由对应的子集[1,1]。因此,中间密钥t([1,1])被分发给签约方1的终端设备122。
(示例2)
将考虑分发给签约方3的终端设备122的中间密钥。首先,提取可以达到包括签约方3的终端设备122的子集的有向图H。参考图4,此有向图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的终端设备122不包括在对与有向图H(1→64)的路由对应的子集[1,1]中。
然而,签约方3的终端设备122包括在第三坐标点之后的子集[1,3],[1,4],...,[1,64]中。参考这样的坐标点的父母的子集,可以看出父母的子集中不包括与签约方3的终端设备122的坐标点仅为[1,3]和[1,4]。因此,与坐标点[1,3]、[1,4]中的父母([1,3])和父母([1,4])对应的坐标点[1,2]不包括签约方3的终端设备122。
结果,与有向图H(1→64)对应的中间密钥t([1,3])和t([1,4])被分发给签约方3的终端设备122。类似地,针对其它有向图H(2←64)、H(2←32)、H(2←16)、H(2←8)、H(2←4)、H(3→3),中间密钥被选择并被分发给签约方的终端设备122。从而,总共八个中间密钥被分发给签约方3的终端设备122。
将参考图5简要描述密钥分配服务器102向各个终端设备122分发中间密钥的处理。图5是示出在系统建立时密钥分配服务器102向各个终端设备122分发中间密钥的处理的流程图。
如图5所示,密钥分配服务器102确定签约方n的数量、设定密钥和中间密钥的比特数λ、预定参数k和由PRSG进行的伪随机序列生成算法等,并且将它们公布给所有终端设备122(S102)。然后,密钥分配服务器102将终端设备122的集合划分成预定的子集,并且然后确定由集合的总和表示的集合系统SS(见公式(1))并将其公布给所有终端设备122(S104)。密钥分配服务器102确定由多个有向分支T形成的有向图并将部分或全部信息公布给所有终端设备122(S106)。然后,确定与配置集合系统SS的各个子集对应的中间密钥(S108)。终端设备122用来基于有向图导出所希望的设定密钥的中间密钥被分发给各个终端设备122(S110)。
上面已经描述了分发中间密钥的方法,通过使用给分发方法,能够高效地分发各个被允许的签约方的终端设备122用来射程设定密钥的中间密钥,并且密钥分配服务器102和终端设备122之间的通信量并且能够节省用于终端设备122持有密钥的存储量。
(分发内容密钥的方法)
将描述分发由密钥分配服务器102加密的内容密钥的方法。
密钥分配服务器102首先利用只可由被允许的签约方的终端设备122生成的设定密钥来对内容密钥mek进行加密。密钥分配服务器102确定包括要被排除的签约方的终端设备122的集合R(以下称为排除签约方),并且确定通过从包括所有签约方1到n的终端设备122的集合N排除集合R而获得的集合N/R。
从配置集合系统SS的子集中选择多个子集Si(i=1,2,...,m)中的一个,并且理由所选择的子集来表达集合N/R=S1∪S2∪...∪Sm。在此情况中,子集Si的组合存在很多,但是按照所希望的选择m为最小的子集Si。
密钥分配服务器102在选择子集Si之后利用与各个子集Si对应的设定密钥k(Si)对内容密钥mek进行加密,并且生成由设定密钥(S1),k(S2),....k(Sm)加密的m个内容密钥mek。密钥分配服务器102将此m个加密的内容密钥mek分发给所有签约方1到n的终端设备122。在此情况中,密钥分配服务器102还将集合N/R的信息和m个子集Si的信息中的一个或者两者同时分发给各个终端设备122。
将参考图6简要描述由密钥分配服务器102加密的内容密钥mek的分发处理。图6是示出内容密钥的分发处理的流程的示例性示图。
参考图6,密钥分配服务器102确定排除签约方的集合R并确定被允许的签约方的集合N/R(S112)。之后,密钥分配服务器102从配置集合系统SS的子集中选择m个子集Si(i=1,2,...,m),其中,集合的总和为N/R(S114)。密钥分配服务器102利用与各个所选择的子集Si对应的设定密钥k(Si)对内容密钥进行加密(S116)。然后,密钥分配服务器102将表示集合N/R或各个子集Si以及m个加密的内容密钥的信息分发给所有终端设备122(S118)。
上面已经描述了密钥分配服务器102进行的内容密钥mek的加密方法和分发方法。通过利用上面描述的加密方法,可以选择子集Si以使得加密所需的设定密钥的数量最小。因此,当对内容密钥mek进行加密时,可以减少用于加密的计算量,可以减少要分发的加密内容密钥的数量以及可以减少通信量。
(内容密钥的解密方法)
现在将描述在各个终端设备122中的内容或内容密钥的解密处理。终端设备122基于从密钥分发服务器接收的集合N/R或者m个子集Si的信息以及m个加密内容密钥来对内容密钥mek进行解密。
终端设备122从密钥分配服务器102接收加密内容密钥mek和表示集合N/R的信息或者表示m个子集Si的信息。然后,终端设备122对信息进行分析并判断其是否包括在m个子集Si中的一个中。当判断其不包括在任何子集中时,终端设备122判断其是否是排除签约方的终端设备122,并且结束此解密处理。当发现其包括在子集Si时,终端设备122利用PRSG导出与相关子集Si对应的设定密钥k(Si)。由终端设备122所使用的PRSG的配置与在加密中由密钥分配服务器102所使用的PRSG的配置类似。
假定在系统建立时终端设备122被预先分发有与子集Si对应的中间密钥t(Si)或者可以从密钥分配服务器102导出的中间密钥t(Sj)。终端设备122将其持有的中间密钥t(Si)或t(Sj)输入到PRSG以导出与子集Si对应的设定密钥k(Si)。在此情况中,终端设备终端设备122参考有向图的信息重复执行PRSG的处理,并且计算设定密钥k(Si)。然后,终端设备122利用导出的设定密钥k(Si)来对加密内容密钥进行解密。
再次参考图4,将参考图4描述在终端设备122中导出设定密钥k(Si)的方法的具体示例。
(示例1)
将回顾签约方3的122基于在图4中所示的有向图导出与子集[1,8]对应的设定密钥的处理。在系统建立时,密钥分配服务器102预先向签约方3的终端设备122分发子集[1,4]的中间密钥。
首先,参考有向图H(1→64),存在从坐标点[1,4]延伸到坐标点[1,8]的有向分支。此有向分支是以坐标点[1,4]为开始端的有向分支中的具有第三短距离的有向分支。然后,签约方3的终端设备122提取从通过向PRSG输入与坐标点[1,4]对应的中间密钥t([1,4])而获得的输出的头开始的第三个λ比特部分。输出的第三个λ比特部分是与子集[1,8]对应的中间密钥t([1,8])。在从PRSG的输出提取中间密钥t([1,8])之后,签约方3的终端设备122提取通过再次向PRSG输入中间密钥t(S[1,8])获得的输出的最后λ比特。输出的最后λ比特是所希望的设定密钥k([1,8])。通过上述处理,签约方3的终端设备122可以生成所希望的设定密钥k([1,8])。
(示例2)
类似地,将考虑签约方1的终端设备122基于图4的有向图生成设定密钥k([1,8])的情况。签约方1的终端设备122预先持有与子集[1,1]对应的中间密钥t([1,1])。签约方1的终端设备122提取从通过向PRSG输入中间密钥t([1,1])所获得的输出的头起的第一个λ比特的部分(中间密钥t([1,2]))。然后,签约方1的终端设备122提取从通过再次向PRSG输入中间密钥t([1,2])所获得的输出的头起的第二个λ比特的部分(中间密钥t([1,4]))。此外,签约方1的终端设备122提取从通过再次向PRSG输入中间密钥t([1,4])所获得的输出的头起的第三个λ比特的部分(中间密钥t([1,8]))。最后,签约方1的终端设备122提取从通过再次向PRSG输入中间密钥t([1,8])所获得的输出的头起的最后λ比特的部分(设定密钥k([1,8]))并且获取所希望的设定密钥k([1,8])。
现在将参考图7描述在各个终端设备122中的加密内容密钥的解密处理。图7是示出在终端设备122中内容密钥的解密处理的流程的示例性示图。
参考图7,终端设备122从密钥分配服务器102接收m个加密内容密钥mek和表示集合N/R的信息或者表示m个子集Si(i=1,2,...,m)的信息(S120)。然后,终端设备122搜索包括其的子集Si(S122),并且确定是否包括在m个子集Si中的一个中(S124)。
如果存在包括其的子集Si,则终端设备122利用PRSG导出与此子集Si对应的设定密钥k(Si)(S126)。然后,终端设备122利用所导出的设定密钥k(Si)对加密内容密钥mek进行解密(S128)。
如果没有包括在任何子集Si中,则终端设备122显示并输出不是被允许的签约方的终端设备122的通知(是排除的签约方的通知)(S130),并且结束对内容密钥的解密处理。
上面已经描述了在终端设备122中的内容密钥的解密方法。该解密方法需要终端设备122侧的PRSG和有向图的信息。然而,终端设备122难以持有有向图的所有信息,因为这给终端设备122的存储量施予了重压,并且所以终端设备122还难以生成所有有向图,因为这增大了终端设备122的计算负荷。此外,还难以分发有向图的所有信息,因为这大大增大了计算量或者给分发介质的存储容量施予了重压。根据本实施例的密钥提供系统100提供了用于解决这样的问题的手段,并且将在以下描述这些特征。
(AI05系统的总结)
上面已经描述了可以应用本实施例的AI05系统。通过利用AI05系统,可以将各个终端设备122持有的中间密钥的数量抑制到O(k*log(n))。生成设定密钥所需的计算量(PRSG的操作量)可以被抑制到小于或者等于约(2k-1)*(n1/k-1)。然而,如本主题申请的申请人所指出的,从功效来看,AI05系统仍然需要一些改进。例如,A06(A)成功减少了终端设备122要持有的密钥的数量,以及A06(B)系统成功减少了终端设备122生成密钥所需的计算量方面。A06(A+B)系统以满意的平衡方式成功减少了终端设备122要持有的密钥的数量以及用于生成密钥所需的计算量。本实施例的特征在于如何提供终端设备122生成密钥时所需的有向图的信息,因此能够应用于至少上述所有系统。
(A06(A+B)系统)
现在将描述可以应用本发明的A06(A+B)系统。如上所述,A06(A+B)系统是比AI05系统能够实现高效密钥分发的系统。因此,当应用本实施例时,应用A06(A+B)系统更加高效。
在描述A06(A+B)系统之前,将简要描述高效的密钥分发。首先,用于终端设备122生成所希望的密钥的计算量依赖于PRSG被执行以导出所希望的中间密钥的次数。最差的值对应于所存在的直到达到离路由最远端处的坐标点(有向分支不从其延伸的叶)的有向分支的数量。参考有向图H(1→64),十一个有向分支从路由[1,1]通过直到达到末端的坐标点[1,64]。这意味着,对于持有中间密钥t([1,1])的终端设备122导出中间密钥t([1,64]),PRSG被执行十一次。因此,通过减少配置有向图的最长路径的有向分支的数量,可以在确保可以达到水平坐标轴上的所有坐标点的路径的同时减少终端设备122的计算量。此问题的一中解决方法是A06(B),A06(A+B)是更加改进的系统。将借助示例来详细描述将本实施例应用于A06(A+B)系统的情况。
[密钥分配服务器102的配置]
下面将参考图8描述根据本实施例的密钥分配服务器102的配置。图8是示出根据本实施例的密钥分配服务器102和终端设备122的配置的示例性示图。
参考图8,密钥分配服务器102主要包括树结构设定单元104、坐标轴设定单元106、临时有向图生成单元108、有向图生成单元110、初始中间密钥设定单元112、密钥生成单元114、加密单元116、通信单元118和子集确定单元120配置。树结构设定单元104、坐标轴设定单元106、临时有向图生成单元108和有向图生成单元110集合起来称为“密钥生成逻辑构建块”。类似地,初始中间密钥设定单元112和密钥生成单元114集合起来被称为“密钥生成块”。坐标轴设定单元106、临时有向图生成单元108和有向图生成单元110是集合关系信息生成单元或者集合关系信息获取单元的示例。通信单元118是密钥生成路径信息提供单元或者加密信息提供单元的示例。
[密钥生成逻辑构建块]
首先,将详细描述密钥生成逻辑构建块。
(树结构设定单元104)
首先,将描述树结构设定单元104。类似于AI05系统,树结构设定单元104可以生成二进制树结构(见图3)。树结构设定单元104首先设定有n个叶节点1到n(n是自然数)、根节点和除了根节点和叶节点以外的中间节点形成的树结构。树结构设定单元104然后将布置在中间节点v或根节点v的较下层的多个叶节点中的位于左端的叶节点的数量设定为lv,将位于右端的叶节点的数量设定为rv。树结构设定单元104针对根节点分配集合(1→n)和集合(2←n)。对于形成二进制树的任意中间节点v,如果中间节点v位于父母节点的左侧,则树结构设定单元104将集合对应为(lv+1←rv),如果中间节点v位于父母节点的右侧,则树结构设定单元104将集合对应为(lv→rv-1)。
(坐标轴设定单元106)
将描述坐标轴设定单元106。坐标轴设定单元106基于与AI05系统类似的规则来设定水平坐标轴。首先,坐标轴设定单元106设定多个水平坐标轴。然后,坐标轴设定单元106将在集合(1→n-1)包含的多个子集对应于一个水平坐标轴上的各个坐标点,以使得包含关系为按照从左侧向右侧的顺序变大。类似地,坐标轴设定单元106将集合(lv→rv-1)包含的多个子集对应于另一水平坐标轴上的各个坐标点,以使得包含关系为按照从左侧向右侧的顺序变大。坐标轴设定单元106对与形成二进制树的中间节点对应的所有集合(lv→rv-1)重复类似的操作。
然后,坐标轴设定单元106将集合(2←n)包含的多个子集对应于又一水平坐标轴上的各个坐标点,以使得包含关系为按照从右侧向左的顺序变大。类似地,坐标轴设定单元106将集合(lv+1←rv)中包含的多个子集对应于另外一个水平坐标轴上的坐标点,以使得包含关系为从右侧向左的顺序变大。坐标轴设定单元106对与形成二进制树的中间节点对应的所有集合(lv+1←rv)重复类似的操作。
坐标轴设定单元106在位于与集合(1→n-1)对应的水平坐标轴的右端的坐标点的右侧生成两个临时坐标点。然后,坐标轴设定单元106在位于与集合(lv→rv-1)对应的水平坐标轴的右端的坐标点的右侧生成两个临时坐标点。坐标轴设定单元106还在位于与集合(2←n)对应的水平坐标轴以及与集合(lv+1←rv)对应的水平坐标轴的左端的坐标点的左侧生成两个临时坐标点。
通过上述处理,坐标轴设定单元106可以设定用于形成针对与形成二进制树的所有节点的集合的有向图的水平坐标轴。现在将在下面描述在坐标轴设定单元106生成各个水平坐标轴上形成有向图的手段。
(临时有向图生成单元108)
将描述临时有向图生成单元108。临时有向图生成单元108通过与在AI05系统中生成有向图H的方法类似的方法来生成临时有向图I’。首先,临时有向图生成单元108将预定的整数k设定作为参数。临时有向图生成单元108确定整数x满足n(x-1)/k<rv-lv+1≤nx/k。临时有向图生成单元108在与集合(1→n-1)和集合(lv→rv-1)对应的水平坐标轴上形成朝右的具有长度为ni/k(i=0~x-1)的有向分支。临时有向图生成单元108在与集合(2←n)和集合(lv+1←rv)对应的水平坐标轴上形成朝左的具有长度为ni/k(i=0~x-1)的有向分支。
如上所述,有向分支的生成从被布置与如下的坐标点相邻的临时坐标点开始,该坐标点对应在AI05系统的子集中具有最少数量的元素的子集(即,包含一个用户的子集)。应当注意,在A06(A+B)系统中,有向分支的生成从与子集中的具有最少数量的元素的子集(即,包含一个用户的子集)相对应的坐标点开始。
然后,临时有向图生成单元临时有向图生成单元108针对所有水平坐标轴上的有向分支擦除以水平坐标轴上的临时坐标点为开始端或终结端的所有有向分支。对于所有水平坐标轴上的所有坐标点,如果达到一个坐标点的有向分支存在多个,则临时有向图生成单元108从达到相关坐标点的所有有向分支中擦除除了具有最长长度的有向分支以外的所有有向分支。临时有向图生成单元108添加朝右的有向分支,该有向分支的长度为1,以在与集合(1→n-1)对应的水平坐标轴上生成的临时坐标点中左侧的临时坐标点作为终结端。也就是,临时有向图生成单元108执行下面的公式(3)的处理以生成与对应根节点的集合(1→n)对应的临时有向图I’(1→n)。
[公式3]
E(I′(1→n-1))∪{([1,n-1],[1,n])} (3)
通过上述处理,临时有向图生成单元108可以形成由比AI05系统中长的有向分支形成的临时有向图I’。算法基于A06(B)系统的基本思想。通过应用此算法可以减少用于终端设备122生成密钥的计算量。
(算法)
将参考图9来简要组织由坐标轴设定单元106和临时有向图生成单元108执行的处理的流程图。借助示例,图9中所示的流程图示出生成与集合(lv→rv-1)对应的有向图I’(lv→rv-1)的方法。
(S140)首先,集合(lv→rv-1)的元素被描绘以使得包含关系在水平线上从左向右变大。最左边的坐标点是开始点。两个临时坐标点布置在最右边坐标点的右侧。从开始点到最右边的临时坐标点的长度为Lv=rv-lv+1。然后,计算满足n(x-1)/k<Lv≤nx/k的整数x(1≤x≤k)。
(S142)然后,在将计数器i从0向x-1移动时执行下面的操作。从开始点开始,从此坐标点连续跳跃到间隔开ni/k的坐标点,直到达到临时坐标点或者下一跳超过临时坐标点为止。之后,生成与各跳对应的有向分支。
(S144)然后擦除达到临时坐标点的所有有向分支。
(S146)如果多个有向分支达到某一坐标点T,则除了具有最长跳距离的有向分支以外的有向分支被擦除。
在图10所示的临时有向图I’可以通过应用该算法来生成。图10的临时有向图I’是叶节点为n=64并且参数为k=6的情况。下面描述基于预定规则替代形成临时有向图I’的多个有向分支中的一些并且生成有向图I的算法。有向分支的替代处理主要由有向图生成单元110执行。
(有向图生成单元110)
现在将描述有向图生成单元110。有向图生成单元110通过替代配置临时有向图I’的多个有向分支中的一些来生成有向图I。首先,有向图生成单元110选择临时有向图I’中包含的有向路径中的配置有向路径的有向分支的数量最大的有向路径。这样的有向路径被称为最长的有向路径LP(最长路径)。在所有有向路径的有向分支的数量不超过最长有向路径LP的有向分支的数量的条件下,有向图生成单元110将在临时有向图I’中包含的有向路径替换成由一组较短的有向分支配置的有向路径。
(算法)
将参考图11到图14来详细描述用于生成有向图I的算法。图11是示出用于生成有向图I的处理的总流程的示例性示图。图12是示出用于提取最长有向路径LP的处理的流程的示例性示图。图13是示出从除了最长有向路径LP以外的有向路径提取具有最长长度的有向路径PLP(部分最长路径)的处理的流程的示例性示图。图14是示出以由一组较短的有向路径替换临时有向图I’的有向路径的处理的示例性示图。
如图11所示,首先,从形成有向图I’的有向路径提取最长的有向路径LP(S150)。从临时有向图I’的除了最长有向路径LP以外的有向路径提取最长长度的有向路径PLP(S152)。最长长度的有向路径PLP可以被提取用于与各个子集对应的临时有向图I’。然后,较短的有向分支替代预定的配置临时有向图I’的有向路径的有向分支(S154)。在此情况中,有向分支被替代以使得所有有向路径的有向分支的数量不超过最长有向路径LP的有向分支的数量。也就是,如果执行了此替代处理,则最坏的估计用于生成密钥的计算量也不会增大大于AI05系统或A06(B)系统。
下面将更具体的描述在图11中所述的各个步骤。
(S150的细节)
首先,将参考图12详细描述最长有向路径LP被提取的步骤(S160)。引入下面的符号。
DDT:最长有向路径LP的有向分支的数量
J(a,b):连续存在的长度为b的有向路径
首先,t=n1/k-1。然后,考虑临时有向图I’(1→n)的从坐标点[1,1]到坐标点[1,n]的有向路径P([1,1],[1,n])。该有向路径P([1,1],[1,n])被表示为J(t,n(k-1)/k),J(t,n(k-2)/k),...,J(t,n1/k),J(t,n0/k)。该有向路径被称为最长有向路径LP。最长有向路径LP的有向分支DDT的数量为DDT=k*(n1/k-1)。在配置最长有向路径LP的所有有向分支上设定活动标记。
(S152的细节)
下面参考图13描述提取最长长度的有向路径PLP以用于除了包括最长有向路径LP的临时有向图I’以外的与所有子集对应的临时有向图I’的处理(S162到S176)。
引入以下两个符号。
CP(当前路径):参考的有向路径(当前路径)
#JP(CP):当前路径的有向分支的数量
首先确定有向图I’的从开始点到结束点的当前路径CP。如果当前路径包括在有向图I’(a→b)中,则有向路径P([a,a],[a,b])是当前路径CP,而如果包括在有向图I’(a←b),则有向路径P([b,b],[b,a])是当前路径CP(S162)。配置当前路径CP的有向分支的最长有向分支被选择,并且其长度被设定为J(S164)。确定是否J≤1(S166)。
如果J≤1,当前路径CP被确定为最长长度的有向路径PLP,并且对在当前路径的所有有向分支设定活动标记(S176)。如果J>1,则确定是否#JP(CP)+t≤DDT(S168)。如果不是#JP(CP)+t≤DDT,则当前路径CP被确定为有向路径PLP,并且向在当前路径中包含的所有有向分支设定活动标记(S176)。如果#JP(CP)+t≤DDT,则计算满足J=nj/k的自然数j(S170)。
提取在当前路径CP中包含的具有长度为J的有向分支中离当前路径CP的开始点最远的有向分支(S172)。从在步骤S172提取出的有向分支的开始点延伸的具有长度为n(j-1)/k的t个有向分支之后,马上添加一个具有长度为n(j-1)/k的有向分支,并且移除在步骤S172中提取的有向分支(S174),并且处理返回步骤S162以重复执行上述处理。
当有向图I’中从开始点到结束点的所有有向路径由具有长度为一的有向分支配置时,或者当通过执行对较大数量的有向分支的替代而使得配置有向路径的有向分支的数量超过DDT时,从步骤S162和步骤S174之间的循环处理结束。
(S154的细节)
下面将参考图14详细描述以短有向分支替代在临时有向图I’中包含的有向分支的处理(S180到S202)。
首先,从有向图中的活动的并且没有被执行(没有被加标记)的有向分支提取具有最长长度J’的有向分支。如果最长有向分支存在多个,则选择离临时有向图I’的开始点最远的有向分支(S180)。所选择的有向分支被称为WJ(工作跳(Working Jump))。WJ的有向分支的开始点是WJS并且结束点是WJE。临时有向图I’的开始点到WJE的有向路径中包含的有向分支的数量被标注为D。
确定有向分支的长度J’是否是J’≤1(S182)。如果J’≤1,则擦除没有活动标记的所有有向分支,并且具有活动标记的所有有向分支的集合被设定为E(I(a→b))或E(I(a←b))(S202)。另一方面,如果不是J’≤1,则从WJS到WJE-1的有向路经被设定作为当前路径CP(S184)。这里,WJE-1表示WJE的前一个元素。
从在当前路径CP中包含的有向分支中选择最长的有向分支,并且其长度被设定为J(S186)。确定有向分支的长度J是否是J≤1(S188)。如果J≤1,则对在当前路径CP中包含的所有有向分支给出活动标记(S198)。对WJ给出完成标记(S200),并且处理返回到步骤S180的处理。如果不是J≤1,则确定是否#JP(CP)+t≤DDT-D(S190)。如果不是#JP(CP)+t≤DDT-D,则在步骤S198和S200之后处理返回到步骤S180。如果#JP(CP)+t≤DDT-D,则计算满足J=nj/k的j(S192)。
如果在当前路径CP中包含的具有长度为J的有向分支存在多个,则提取当前路径CP的最远离开始点的位置处的有向分支(S194)。在步骤S194中提取有向分支中从开始点延伸的具有长度为n(j-1)/k的n1/k-1个有向分支之后,马上添加具有长度为n(j-1)/k的一个有向分支,并且擦除在步骤S194中提取的有向分支(S196)。处理返回到步骤S184的处理。
从WJS到WJE-1的所有有向路径由具有长度为一的有向分支配置时,或者当通过执行对较大数量的有向分支的替代而使得从WJS到WJE-1的有向路径包含的有向分支的数量超过DDT时,从步骤S184和步骤S196之间的循环处理结束。在从临时有向图I’中包含的有向分支中擦除具有长度大于或等于二并且没有被设定为完成的有向路径时,从步骤S180和步骤S200之间的处理结束。
图15中所示的有向图I是利用上述算法应用到临时有向图I’而生成的。有向图I被生成用于签约者的数量n=64、参数k=6的情况。与AI05系统相比,通过利用这样的有向图I,可以减少各个终端设备122生成密钥所需的计算量以及各个终端设备终端设备122要持有的密钥的数量。
[密钥生成块]
下面将参考图8描述密钥生成块的细节。密钥生成块主要由初始中间密钥设定单元112、密钥生成单元114和加密单元116配置。
(初始中间密钥设定单元112)
初始中间密钥设定单元112生成与在逻辑二进制树中包括的所有中间节点和根节点的有向图I的路由对应的中间密钥。例如,初始中间密钥设定单元112可以通过由PRSG生成伪随机序列来设定与各个路由对应的中间密钥,或者可以通过预定的数值来设定各个路由的中间密钥。
(密钥生成单元114)
密钥生成单元114利用PRSG生成中间密钥或者设定密钥。密钥生成单元114可以基于AI05系统的有向图H、A06(A+B)系统的有向图I、A06(A)系统的有向图、A06(B)系统的有向图或者其它系统的有向图通过执行伪随机序列生成计算来生成所希望的中间密钥或者设定密钥。如上所述,当输入与配置有向图的有向分支的开始端对应的中间密钥时,PRSG输出与此中间密钥对应的设定密钥以及与这样的有向分支的终结端对应的中间密钥。如果多个有向分支从有向图的水平坐标轴的某一坐标点延伸,通过输入与该坐标点对应的中间密钥可以导出多个中间密钥。
在AI05系统中,已经利用公式(2)定义了PRSG的输入和输出,但是在本实施例中,PRSG的输入和输出由t(S1)||...||t(Sk)||k(S0)←PRSG(t(S0))来定义。换句话说,AI05系统的PRSG的输出是这样的:当具有与输入的中间密钥对应的作为开始点的坐标点的有向分支的数量为d时,对于λ比特的输入,输出(d+1)λ比特的输出。另一方面,根据本实施例的PRSG,输出(k+1)λ比特的输出,而与d的值无关。这里,k是系统参数。
在本实施例中,当与子集S0对应的中间密钥t(S0)被输入PRSG时,输出为t(S1)||...||t(Sk)||k(S0)。在输出中包含的t(S1)||...||t(Sk)部分是针对以与子集S0对应的坐标点为开始点的有向分支的各个坐标点或者结束点的相应子集S1,...,Sk的中间密钥。连接与子集S0对应的坐标点和与子集Si的坐标点的有向分支的长度成为n(i-1)/k。例如,如果连接与子集S0对应的坐标点和与Si对应的坐标点的有向分支的长度为n2/k,从PRSG的输出(t(S0))的开始起的第三个λ比特的部分成为t(Si)。如果具有长度为n(i-1)/k的有向分支不从与子集S0对应的坐标点延伸,则将不使用从PRSG输出的t(Si)的部分。
例如,当与有向图I上的坐标点S0对应的中间密钥t(S0)被输入PRSG时,密钥生成单元114可以导出与用于以坐标点S0为开始点的多个有向分支的终结端的坐标点S1,S2,...,Sm对应的中间密钥t(S1),t(S2),...,t(Sm)以及设定密钥k(S0)。这里,m表示从坐标点S0延伸的有向分支的数量。如果不使用此中间密钥,可以将设定密钥k(S0)输入PRSG以导出多个设定密钥k(S1),k(S2),...,k(Sm)。
(加密单元116)
加密单元116利用设定密钥对内容或内容密钥进行加密,并且生成加密文本。加密单元116利用与配置集合系统SS的所有子集中的预定子集相对应的设定密钥对内容或内容密钥进行加密。因此,对于一个内容或内容密钥,可以生成多个加密文本。
[信息生成块]
将再次参考图8描述信息生成块的细节。信息生成块主要由子集确定单元120和路径信息生成单元121配置。通信单元118也将被表述。
(子集确定单元120)
子集确定单元120确定用于对内容或者内容密钥进行加密的设定密钥。也就是,子集确定单元120提取至少一个包括预定的被允许的签约方的终端设备122的子集,并且确定要被分发给各个终端设备122的设定密钥的类型。例如,子集确定单元120确定不被允许再现内容或内容密钥的排除的签约方的集合(R)以及从所有签约方的集合(N)除去排除的签约方的集合(R)的被允许的签约方的集合(N/R)。也就是,通过在集合系统SS中包含的子集来确定配置被允许的签约方的集合(N/R=S1∪S2∪...∪Sm)的子集的集合(S1,S2,...,Sm)。
(路径信息生成单元121)
路径信息生成单元121参考在有向图中包含的有向分支的信息,以提取从有向图的开始点达到预定坐标点的有向路径的信息。预定的坐标点是与由子集确定单元120所选的各个子集对应的坐标点。路径信息生成单元121是生成路径信息提取单元的一个示例。
如前面所述,诸如AI05系统之类的分发系统假定所有终端设备122持有有向图的信息或者终端设备122基于各个密钥分发系统的算法来计算有向图。然而,此假定对终端设备122的存储量施于了重压并且大大增加了计算负荷,因此是不现实的。
例如,在AI05系统的有向图H(参见图16)的情况中,签约方3的终端设备122预先持有与子集S0=[1,4]对应的中间密钥t(S0)。假定子集确定单元120选择子集S=[1,8]并且利用与其对应的设定密钥k(S)来对内容密钥进行加密的情况,签约方3的终端设备122首先利用中间密钥t(S0)和PRSG导出中间密钥t(S)。然而,为了导出中间密钥t(S),签约方3的终端设备122持有在有向图H(1→64)上有向分支从坐标点S0=[1,4]到坐标点S1=[1,8]的信息(图16的粗实线的部分)。
然而,如下面的公式(4)所示,因为在有向图H(1→n)中存在(n-1)个有向分支,当n很大时,则变得很难持有所有有向分支的信息。例如,假定一个有向分支的信息可以利用约8字节的信息量来表示,则仅仅对于有向图(1→n)的信息就要求约32G字节的存储容量,因为签约方的实际数量是n=232=4,294,967,296。
[公式4]
t·n0/k+t·n1/k+...+t·nk-1/k]]>
=tΣi=0k-1t·ni/k---(4)]]>
=n-1]]>
本主题申请的申请人因此提出了一种除了向终端设备122分发所选子集(在上述示例中为[1,8])的信息以外还向其分发与从有向图的开始点达到与该子集对应的坐标点的有向路径的信息的方法。例如,与上面的示例类似,如果选择了子集[1,8],则从有向图H(1→64)的开始点[1,1]达到坐标点[1,8]的有向路径(图16的粗实线)的信息被分发给终端设备122。实现这样的特征的配置是路径信息生成单元121.
在下面的描述中,其中内容密钥mek被利用设定密钥k(S0)加密的加密文本被标注为C(k(S0),mek)。此外,子集Si=[SPi,TPi]的SPi、TPi、Si被定义如下。
(1)如果坐标点Si包括在超右的有向图中
SPi:子集Si的元素中最小的编号
TPi:子集Si的元素中最大的编号
Si={SPi,SPi+1,...,TPi}
(2)如果坐标点Si包括在超左的有向图中
SPi:子集Si的元素中最大的编号
TPi:子集Si的元素中最小的编号
Si={SPi,SPi-1,...,TPi}
(3)如果SPi=TPi
Si={SPi}
这里,SPi和TPi是大于或等于1并且小于或等于n的值。SPi表示与有向图的开始点交叉的垂线的数量(签约方的数量),并且TPi表示与所选的子集的坐标点交叉的垂线的数量(签约方的数量)。
首先,路径信息生成单元121生成导出子集Si所必要的有向路径的信息并且将其添加到在子集Si中包括的签约方的信息中,如下面的公式(5)所示。根据本实施例的路径信息生成单元121将表示在有向路径中包含的各个有向分支的终结端的信息作为有向路径的信息进行添加。假定在有向图中连接坐标点[SPi,SPi]和坐标点[SPi,TPi]的有向路径中存在p(p≤DDT)个有向分支。
[公式5]
Si=(SPi,IPi,1,...,IPi,(p-1),TPi) (5)
(示例)
例如,考虑这样的情况,在签约方的数量为n=64并且参数k=6的AI05系统中,子集确定单元120选择子集S=[1,8]。路径信息生成单元121生成(见图16的粗实线(有向路径))S=(1,2,4,8)作为包括该有向路径的信息的子集S的信息。
(示例2)
在另一示例中,考虑这样的情况,在签约方的数量为n=64并且参数k=6的AI05系统中,签约方45和签约方55被除去。在此情况中,如果子集确定单元120选择子集S1=[1,44],S2=[48,46],S3=[49,54],S4=[64,56],则路径信息生成单元121生成(见图17的粗实线(有向路径))如下的信息,其中有向路径的信息被添加到各个子集。
S1=(1,2,4,8,16,32,40,44),
S2=(48,47,46),
S3=(49,50,52,54),
S4=(64,63,61,57,56)。
(示例3)
在又一示例中,考虑这样的情况,在签约方的数量为n=64并且参数k=6的A06(A+B)系统中,签约方45和签约方55被除去。在此情况中,如果子集确定单元120选择子集S1=[1,44],S2=[48,46],S3=[49,54],S4=[64,56],则路径信息生成单元121生成(见图18的粗实线(有向路径))如下信息,其中有向路径的信息被添加到各个子集中。
S1=(1,33,37,41,42,43,44),
S2=(48,47,46),
S3=(49,53,54),
S4=(64,60,56)。
如上所述,对于一个子集,有向路径的信息以p+1个编号IPij来表示。因为p≤DDT并且表示各个编号IPij需要log(n)比特的存储区域,所以应当认识到表示一个子集最大需要(DDT+1)*log(n)比特。然而,对于所采用的每个密钥分发系统,DDT的值是不同的。例如,在AI05系统中,DDT=(2k-1)*(n1/k-1),而在A06(A+B)系统中,DDT=k(n1/k-1)。
(通信单元118)
通信单元118向与叶节点对应的所有终端设备122分发由加密单元116加密的内容或内容密钥。通信单元118还基于有向图I向终端设备122分发预定的中间密钥。在此情况中,通信单元118分发最少的中间密钥,以使得各个终端设备122可以导出与包括其的子集对应的所有中间密钥。通信单元118还向终端设备122分发预定的有向图的信息。此外,通信单元118还向各个终端设备122分发配置被允许的签约方的集合(N/R)或者被允许的签约方的集合(N/R=S1∪S2∪...∪Sm)的子集(S1,S2,...,Sm)的信息。在此情况中,通信单元118还分发由路径信息生成单元121添加的有向路径信息。
[终端设备122的配置]
现在将参考图19描述根据本实施例的终端设备122的配置。图19是示出终端设备122的配置的示例性示图。
参考图19,终端设备122主要由通信单元124、判断单元126、密钥生成单元128和解密单元130配置。终端设备122对应于上面描述的用户。通信单元124是密钥生成路径信息获取单元和加密信息获取单元的一个示例。密钥生成单元128是密钥信息生成单元的一个示例。解密单元130是加密信息解密单元的一个示例。
(通信单元124)
通信单元124接收从密钥分配服务器102分发的信息。例如,通信单元124接收从密钥分配服务器102分发的与内容、内容密钥、中间密钥和有向图有关的信息,与被允许的签约方有关的信息,等等。通信单元124还可以被配置用于从连接到有线或无线网络的多个信息源(例如,密钥分配服务器102)或者不通过网络而直接或间接连接的信息源(例如,诸如光盘设备、磁盘设备或便携终端设备之类的信息介质)获取信息。
(判断单元126)
判断单元126判断其是否被包括作为与设定密钥对应的子集的一个子集中的元素。判断单元126判断其是否被包括在由密钥分配服务器102的子集确定单元120所选择的子集的一个子集中。在此情况中,判断单元126参考从密钥分配服务器102获取的该子集的信息。
(密钥生成单元128)
密钥生成单元128利用预先分发的中间密钥和PRSG生成所希望的中间密钥或者设定密钥。在此情况中,密钥生成单元128参考从密钥分配服务器102获取的有向路径的信息,并且基于相关信息来生成所希望的中间密钥或者设定密钥。如果判断单元126判断不存在包括其的子集,则中间密钥或者设定密钥的生成处理结束。PRSG与密钥分配服务器102所持有的PRSG相同,这里,当基于预定的有向图输入与有向分支的开始端对应的中间密钥时,则输出与相关中间密钥对应的设定密钥和与相关有向分支的终结端对应的中间密钥。应当注意,如果多个有向分支从一个坐标点延伸,则当输入与该坐标点对应的中间密钥时,将得到与各个有向分支的终结端对应的多个中间密钥。
(算法)
现在将参考图20描述签约方u的终端设备122进行的密钥导出算法。图20是示出签约方u的终端设备122导出密钥的处理的示例性示图。此处理主要由128执行。
首先,签约方u的终端设备122被提供有表示由密钥分配服务器102的子集确定单元120所选的m个子集(S1,...,Sm)的信息以及由路径信息生成单元121为每个子集添加的有向路径的信息Sj=(SPj,IPj,1,...,IPj,(p-1),TPj)(这里j=1,...,m)。假定判断单元126判断出其包括在子集Si=[SPi,TPi]中。因此,密钥生成单元128在生成所希望的中间密钥或设定密钥的处理中参考该有向路径的信息Si=(SPi,IPi,1,...,IPi,(p-1),TPi)。将顺着图20中所示的流程图来具体描述该处理。
参考图20,首先,TPi的值被设定给变量IPi,p(S402)。然后计数器j被初始化为1(S404)。签约方u的终端设备122是否包括在子集[SPi,IPi,j]中(S406)。如果没有包括(S408),则SPi被设定给变量sp,并且IPi,j被设定给变量ep(S410)。在此情况中,签约方u的终端设备终端设备122预先持有与子集[sp,ep]对应的中间密钥t([sp,ep])。
然后,中间密钥t([sp,ep])被设定给变量tcurrent(S412)。然后判断是否ep=TPi(S414)。如果ep=TPi,则tcurrent被输入给PRSG,得出当输出PRSG(tcurrent)被以λ比特分段时的第k+1部分的设定密钥(对应于[SPi,TPi])(S424),设定密钥的生成处理结束。
如果不是ep=TPi,则计算变量logd(见公式(6))(S416)。换句话说,logd是指示从IPi,jIPi,j+1的有向分支的长度的n1/k次幂为多少的数值。然后,计数器j被递增(S418),并且IPi,j被设定给ep(S420)。然后,tcurrent被输入PRSG,并且当输出PRSG(tcurrent)被以λ比特分段时的第logd+1部分被设定作为新的tcurrent(S422)。之后,处理返回步骤S414。
[公式6]
logd=logn1/k|IPi,(j+1)-IPi,j|---(6)]]>
(解密单元130)
解密单元130利用由密钥生成单元128所生成的设定密钥来对内容或者内容密钥进行解密。解密单元130还可以利用内容密钥执行对内容进行解密的处理。
上面已经描述了根据本实施例的终端设备122的配置。根据上述配置,终端设备122可以利用从密钥分配服务器102获取的有向分支的信息来生成所希望的设定密钥。结果,终端设备122可以不持有或者生成有向图的所有巨大的信息量,从而可以将存储量和计算负荷抑制到实际水平。
<第二实施例>
下面将详细描述根据本发明的第二实施例的密钥提供系统和与密钥分发有关的特定系统的配置。与第一实施例具有基本相同功能配置的结构元件以相同的标号来表示,并且将省略其详细描述。
已经描述了根据第一实施例的密钥提供系统100的特性在于从密钥提供系统100向终端设备122提供的有向图的信息。具体地,所述特性在于用于向终端设备122提供达到预定坐标点的有向路径中包含的所有有向分支的信息作为有向图的信息的手段。在第一实施例中,表示各个有向分支的终结端的信息已经被认为是有向分支的信息,但是并不限于此,只要终端设备122可以辨认可以达到预定的坐标点的路径即可。
在第二实施例中,将描述如下的手段(路径信息生成单元121),该手段用于针对与由布置在密钥分配服务器102中的子集确定单元120选择的预定的子集Si=[SPi,TPi]对应的坐标点Si,向终端设备122提供表示在有向路径中包含的各个有向分支的长度的信息LDi,j作为达到坐标点Si的有向路径的信息。
关于某一有向图上位于从坐标点[SPi,SPi]达到坐标点[SPi,TPi]的有向路径上第j个有向分支的长度LDi,j,各个有向分支的长度LDi,j是以公式(7)表示的值。也就是,各个有向分支的长度被表示为LDi,j的n1/k次幂(其中,0≤LDi,j<k)。
[公式7]
LDi,j=logn1/kleni,j---(7)]]>
布置在密钥分配服务器102中的路径信息生成单元121利用表示各个有向分支的长度的信息LD i,j将子集Si表示为公式(8)。也就是,对于子集Si,路径信息生成单元121生成由公式(8)表示的有向路径的信息。对于所有选择的子集Si(i=1,...,m),该有向路径的信息是类似生成的。
[公式8]
Si=(SPi,LDi,1,...,LDi,p-1,LDi,p) (8)
(示例1)
例如,考虑这样的情况,在签约方的数量为n=64并且参数k=6的AI05系统中,签约方45和签约方55被去除。在此情况中,如果子集确定单元120选择子集S1=[1,44],S2=[48,46],S3=[49,54],S4=[64,56],则由根据第一实施例的路径信息生成单元121生成的信息被表示为如下(参考图17)。
(第一实施例的情况)
S1=(1,2,4,8,16,32,40,44),
S2=(48,47,46),
S3=(49,50,52,54),
S4=(64,63,61,57,56)。
在与第一实施例的情况相同的条件下,由根据第二实施例的路径信息生成单元路径信息生成单元121基于有向路径的长度而生成的信息被表示如下。
(第二实施例的情况)
S1=(1,0,1,2,3,4,3,2),
S2=(48,0,0),
S3=(49,0,1,1),
S4=(64,0,1,2,0)。
(示例2)
在另一示例中,考虑这样的情况,在签约方的数量为n=64并且参数k=6的A06(A+B)系统中,签约方45和签约方55被去除。在此情况中,如果子集确定单元120选择子集S1=[1,44],S2=[48,46],S3=[49,54],S4=[64,56],则由根据第一实施例的路径信息生成单元121生成的信息被表示为如下(参考图18)。
(第一实施例的情况)
S1=(1,33,37,41,42,43,44),
S2=(48,47,46),
S3=(49,53,54),
S4=(64,60,56).
在与第一实施例的情况相同的条件下,由根据第二实施例的路径信息生成单元路径信息生成单元121基于有向路径的长度而生成的信息被表示如下。
(第二实施例的情况)
S1=(1,5,2,2,0,0,0),
S2=(48,0,0),
S3=(49,4,0),
S4=(64,2,2)。
如上所述,当应用第二实施例时,与第一子集有关的有向路径的信息由一个开始点信息SPi(1≤SPi≤n)和p个长度信息IPi,j(0≤IPi,j≤k-1)表示。此外,p≤DDT,并且每个子集由log(n)+DDT*log(k)比特的数据来表示。在第一实施例的情况中,表示一个子集需要(DDT+1)*log(n)比特。因为k|log(n),log(k)≤log(log(n))<log(n),并且得到了log(n)+DDT*log(k)<(DDT+1)*log(n)的关系。因此,通过应用第二实施例可以比通过应用第一实施例减少用于表示各个子集Si的信息。结果,可以减少从密钥分配服务器102向终端设备终端设备122提供的信息量(节省了通行量或者节省了记录介质的容量)。
没有考虑如果诸如Si=[3,3]之类的包括一个用户的子集被选择作为子集时如何表示子集。在此情况中,在第一实施例的系统中,表示为Si=(3,3)。在第二实施例的系统中,可以设计各种表示方法,并且仅以诸如Si=(3)之类的一个数值来表示的方法可以被认为是一种表示方法。另一中表示方法包括利用特定符号⊥表示为Si=(3,⊥)。如果采用后一种方法,则在用于数量为两个或更多个的子集中的第二个以及之后的用户通常是大于或等于0的整数,因此可以认为用户数量为一个。
(算法)
现在将参考图21来描述根据第二实施例的终端设备122利用从密钥分配服务器102获取的各个子集的信息生成密钥的算法。图21是示出签约方u的终端设备122得出密钥的处理的示例性示图。此处理主要由布置在终端设备122中的128来执行。
首先,签约方u的终端设备122被提供有表示由密钥分配服务器102的子集确定单元120所选的m个子集(S1,...,Sm)的信息以及由路径信息生成单元121为每个子集添加的有向路径的信息Sj=(SPj,LDj,1,...,LDj,p-1,LDj,p)(这里j=1,...,m)。假定判断126判断出其包括在子集Si=[SPi,TPi]中。因此,密钥生成单元128在生成所希望的中间密钥或设定密钥的处理中参考该有向路径的信息Si=(SPi,LDi,1,...,LDi,p-1,LDi,p)。将顺着图21中所示的流程图来具体描述该处理。
参考图21,首先,SPi的值被设定给变量IPi,0(S432)。然后判断SPi的奇/偶,如果判断SPi是奇数,则为变量sign设定1,如果SPi是偶数则设定-1(S434)。然后,在将计数器j从1移到9时计算IPi,j(公式9)(S436)。这里p指示在子集S1的表示中SPi之后的大于或等于0的整数值的数量。也就是,在用户数为1的子集被表示为诸如S1=[3,3]之类的S1=(3)或S1=(3,⊥)的情况中,p=0,因此不执行S436的处理。然后,计数器j被初始化(S438)。
[公式9]
IPi,j=IPi,j-1+sign*nLDi,j/k---(9)]]>
判断签约方u的终端设备122是否包括在子集[SPi,IPi,j]中(S440)。如果签约方u的终端设备122没有包括在子集[SPi,IPi,j]中,则计数器j递增,并且处理再次返回到步骤S440(S442)。如果签约方u的终端设备122包括在子集[SPi,IPi,j]中,则SPi的值被设定给变量sp,并且IPi,j的值被设定给变量ep(S444)然后,从签约方u的终端设备122预先持有的中间密钥选择中间密钥t([sp,ep]),并且将其设定给tcurrent(S446)。
然后,判断ep是否是IPi,p(S448)。如果ep=IPi,p,则tcurrent被输入给PRSG,第k+1部分(对应于当输出PRSG(tcurrent)被以λ比特分段时的设定密钥k([SPi,IPi,p])被提取(S456),并且设定密钥的生成处理结束。如果不是ep=IPi,p,则计数器被递增(S450)。IPi,j被设定给变量ep(S452)。tcurrent被输入给PRSG,当输出PRSG(tcurrent)被以λ比特分段时的第LDi,j+1部分被提取(S454)。然后处理返回步骤S448。
所希望的密钥可以利用上述算法生成。很明显,根据本实施例的密钥生成单元128并不限于此,并且表示各个有向分支的终结端的信息IPi,j可以根据从密钥分配服务器102获取的有向路径的信息Si中包含的表示各个有向路径的长度的信息LDi,j预先计算得出,并且可以类似第一实施例那样利用算法计算密钥。
[效果]
通过根据本发明的各个实施例的配置的应用,在由AI05系统等表示的广播加密系统中,当通过密钥分配服务器102得出与各个所选子集对应的设定密钥时,终端设备122可以不预先持有用于生成密钥的有向图的信息,并且因此可以减少终端设备122的存储量的负荷。
在第一实施例中,指示包括在有向路径中的所有有向分支的终结端的信息被添加并作为终端设备122生成密钥所需的有向路径信息被分发。在第二实施例中,指示包括在有向路径中的所有有向分支的长度的信息被添加并作为终端设备122生成密钥所需的有向路径信息被分发。与第一实施例相比,通过采用第二实施例可以减少分发给终端设备122的信息量。
[密钥提供系统100的应用示例]
最后,将参考图22和图23简要描述根据各个实施例的密钥提供系统的应用示例。
(应用示例1)
首先,广播加密系统300的配置将被描述作为密钥提供系统100的一个应用示例。图21是示出利用广播卫星的广播加密系统300的配置的示例性示图。
参考图22,广播加密系统300主要被配置为包括卫星广播站302、管理中心304、广播卫星306、住所308和接收机310。广播加密系统300是用于经由广播信道向布置在住所308中的接收机310分发加密数据(密码文本)的系统。广播信道是卫星广播分发信道等。密码文本是包括加密密钥、音频数据、视频数据、文本数据等的内容。
首先,卫星广播站302被布置有用于经由广播卫星306发送诸如密码文本之类的数据的管理中心(广播监管中心(broadcast trustedcenter))304。管理中心304选择用于加密的密钥,并且执行数据的加密和数据的分发控制。也就是,管理中心304是根据上述各个实施例的密钥分发服务器102的一个示例。安装在住所308处的接收机310是根据上述各个实施例的终端设备的一个示例。
广播卫星306通过管理中心304向接收机310广播诸如密码文本之类的数据,接收机310布置在各个住所308中。接收机310是卫星广播接收机等,并且接收通过广播卫星306广播的数据。如图22所示,广播加密系统300可以包括多个接收机310,在这种情况中,管理中心304向由多个接收机310组成的接收机组分发数据。管理中心304加密并分发数据,以使得仅仅经过认证的接收机310才可以对此数据进行解密。
广播加密系统300用作上面已经描述的密钥提供系统100的一个应用示例。在图22中,已经借助示例描述了卫星广播,但是广播加密系统300还很容易应用于利用诸如有线电视和计算机网络之类的其它广播信道的加密系统。
(应用示例2)
广播加密系统400的配置将被描述作为密钥提供系统100的另一个应用示例。图23是示出利用记录介质的广播加密系统400的配置的示例性示图。
参考图23,广播加密系统400主要由介质制造商402、管理中心404、记录介质406、分发门店(distribution outlet)408、住所412和接收机414配置。在广播加密系统400中的广播信道是记录由数据的记录介质406。
首先,介质制造商402被布置有管理中心404,管理中心404用于利用记录介质406经由分发门店408向住所412提供诸如密码文本之类的数据。管理中心404只将诸如密码文本记录在记录介质406中,并且利用记录介质406间接提供诸如密码文本之类的数据。记录介质406是只读介质(例如CD-ROM、DVD-ROM,等等)、可重写介质(例如,CD-RW、DVD-RW,等等)等。类似应用示例1,管理中心404对应于根据上述各个实施例的密钥分发服务器102。稍稍的不同在于诸如密码文本之类的数据被记录并提供在记录介质中,但是根据本发明的实施例的密钥分发服务器可以按照本应用示例适当改变根据实施例的用于分发诸如密码文本之类的信息的部分。
介质制造商402将记录有诸如密码文本之类的数据的记录介质406发送给诸如零售商之类的分发门店408。分发门店408然后将介质406提供给各个住所412。例如,分发门店408向与各个住所412对应的个人销售记录介质406。个人将记录介质406带到家中用于住所412,并且利用接收机414再现记录在记录介质406商的数据。接收机414是根据各个实施例的终端设备的一个示例,并且稍稍不同在于通过记录介质获取诸如密码文本之类的数据。然而,根据本发明的实施例的终端设备可以按照本应用示例适当改变根据实施例的用于获取诸如密码文本之类的信息的部分。接收机414是CD播放器、DVD播放器或者配备有DVD-RW驱动器的计算机,并且由能够读出并再现记录在记录介质记录介质406上的数据的设备来配置。
已经描述了用作密钥提供系统100的一个应用示例的广播加密系统400。在图23中,已经借助示例描述了用于通过记录介质406向签约方提供诸如密码文本之类的数据的部分。根据本发明的实施例的密钥分发服务器和终端设备可以根据实施例来改变与各种信息的分发部分有关的配置。
上面参考附图描述了本发明最适用的实施例,但是应当认识到本发明并不限于这些示例。对于本领域技术人员,很明显在权利要求描述的范围内可以设计出多种修改和替代,应当理解这些也属于本发明的技术范围。
例如,上面描述的逻辑二进制树被假定具有分支从上向下展开的结构,但是并不限于此,并且可以被配置以使得分支从下向上、从左向右、从右向左展开。与这些布置有关的改变通过简单旋转和布置此逻辑二进制树来实现,并且与这些改变有关的配置也实质上落入相同的技术范围。反转形成临时有向图和有向图的水平坐标轴的镜像改变也落入本技术范围。
根据各个实施例的密钥分配服务器102包括用于独自生成有向图的部件,但是并不限于此。根据本发明的实施例的密钥分配服务器102可以包括用于获取与预定有向图有关的信息的获取单元,在此情况中,可以不布置树结构设定单元104、坐标轴设定单元106、临时有向图生成单元108和有向图生成单元110中所有这些单元。
根据上述各个实施例的密钥分发服务器102包括通信单元118,通信单元118用于向终端设备122分发内容、内容密钥、设定密钥、中间密钥、与被允许的签约方对应的子集的信息、有向图的信息等,但是如在应用示例2中所示,网络不总是用来提供这样的信息。替代通信单元118,密钥分发服务器102可以包括用于将信息记录在记录介质上的记录单元。在这样的情况中,替代通信单元124,终端设备122可以包括用于对记录有信息的记录介质进行读取的读出单元。