解密装置和解密方法

文档序号:2392778阅读:242来源:国知局
专利名称:解密装置和解密方法
技术领域
本发明涉及对密文进行解密的解密装置。
背景技术
通常,广播密码通信中的各种加密方法是公知的。在这些方法中,一种能够使秘密密钥无效的方法是有用的。使秘密密钥无效就是将具有特定秘密密钥的解密装置(这将被称为无效解密装置)的秘密密钥从系统中排除,这是通过对明文(加密目标数据)以一种不能由无效解密装置但可由其他解密装置进行解密的方式进行加密来实现的。
例如,如果由于一些原因给定解密装置的秘密密钥泄漏,那么第三方(其不被发送方允许来执行解密)可能获得该泄漏的秘密密钥,并且解密所述密文。因此,必须使所述解密装置的秘密密钥无效。在此种情况下,使所述秘密密钥无效使得可以消除所有泄漏的秘密密钥(包括副本)而不将其撤销。
作为一种能够使秘密密钥失效的加密方法,使用解密装置的二叉树结构的子集差(subset difference)方法(下文称为SD方法)是公知的(参考文献1D.Naor,M.Naor and J.Lotspiech“Revocation andTracing Schemes for Stateless Receivers,”In Proc.Of CRYPTO’01,LNCS 2139,Springer-Verlag,pp.41-62,2001)。
就传输开销仅仅与无效解密装置的数目成比例而言,上述方法是一种有效方法。在所述SD方法中,假定有一棵二叉树,每个解密装置标识符(ID)被分配给一个叶子(在该树结构中最底层的节点被称为叶子),并且秘密密钥被分配给由所述二叉树结构中的任意两个节点组成的每个节点对。每个解密装置被分配多个秘密密钥以及表示与秘密密钥中的每个对应的两个节点的索引信息,其中每个秘密密钥满足一个条件,即由相应的解密装置ID指示的叶子以上述两个节点之一作为祖先节点,但不以另一个节点作为祖先节点。在此种情况下,所述祖先节点是叶子节点的父节点或父节点的父节点等等。例如,参考图3,叶子节点“1”的祖先节点是节点“9”、“13”和“15”。在实践中,不是所有满足上述条件的秘密密钥都被分配给相应的解密装置,并且单向函数的引入向解密装置提供更少数目的秘密密钥以及与这些秘密密钥对应的索引信息,其中从该秘密密钥中能够导出满足上述条件的所有秘密密钥。
通常,发送方发送多个密文,并且指示被分配给用于解密密文的解密密钥的两个节点的索引信息被添加到每个密文中。已经接收多个密文的接收方(解密装置)确定是否每个密文都可以由该解密装置进行解密(在下文中,这个处理被称为密文确定处理)。如果所述解密装置不是无效解密装置,那么可解密的密文总是存在。
随后,从由所述解密装置持有的多个秘密密钥中选择一个秘密密钥,根据该秘密密钥可以导出用于解密被确定为可解密的密文的解密密钥(这个处理在下文被称为秘密密钥选择处理)。
最后,根据所选择的秘密密钥中导出解密密钥,并且使用所导出的解密密钥对该密文进行解密。
作为一种能够实现秘密密钥无效的加密方法,所述SD方法优选针对传输开销来使用。然而,所述SD方法存在下述问题。
(问题)在向解密装置输入所接收的密文之后获取明文有时花费太多的处理时间。必须为密文确定处理和秘密密钥选择处理执行穷尽搜索。在最坏的情况下,密文确定处理必须被执行与所接收的密文的数目对应的次数,而用于秘密密钥选择的搜索必须被执行与解密装置所持有的秘密密钥的数目对应的次数。通常,由于所接收的密文的数目和解密装置所持有的秘密密钥的数目比较大,所以密文确定处理和秘密密钥选择处理所需的处理时间相应增加。结果是,在向解密装置输入所接收的密文之后获取明文通常花费太多的处理时间。
因此,鉴于上述问题,已经实现了本发明,本发明的目的是提供一种解密装置和解密方法,其能够减少在向解密装置输入所接收的密文之后获取明文所花费的处理时间。

发明内容
根据本发明的实施例,解密装置(a)将多个秘密密钥存储在第一存储器中,其中每个秘密密钥由树结构中的两个节点指定;(b)将与树结构中的叶子对应的解密装置的标识符存储在第二存储器中;(c)获取每个密文和每个密文索引信息项,以获得多个密文和与各个密文对应的多个密文索引信息项,其中每个密文索引信息项指示树结构中的两个节点,该两个节点对应于用于解密每个密文的解密密钥;(d)从所述密文获取可解密的密文,由可解密的密文的密文索引信息项指示的两个节点中的一个是与所述标识符对应的叶子的祖先节点,而两个节点中的另一个是一个不是该叶子的祖先节点的节点;(e)从存储在所述第一存储器中的秘密密钥中选择一个秘密密钥,根据该密钥可以导出解密密钥;(f)根据所选择的秘密密钥导出解密密钥;以及(g)使用所导出的解密密钥来对可解密的密文进行解密。
附图简述

图1是示出根据本发明的一个实施例的数据通信系统的配置的示例的方框图;图2是树结构的示意图,其中解密装置ID被分配给每个叶子;图3是更加详细地示出图2中的树结构的视图;图4是用于解释将要给予解密装置的秘密密钥的视图;图5是用于解释加密装置中的加密处理的流程图;图6是用于解释在加密装置中用SD方法选择叶子集的方法的视图;图7是示出密文数据的数据结构的示例的视图;图8是示出在秘密密钥单元中存储的秘密密钥的数据结构的示例的视图;图9是用于解释确定将要存储在秘密密钥存储单元中的秘密密钥的存储顺序的方法的流程图;图10是示出树结构的示例的视图;
图11是用于解释确定将要存储在秘密密钥存储单元中的秘密密钥的存储顺序的方法的视图;图12是示出密文解密处理的概要的流程图;图13是用于解释密文确定处理的流程图;图14是用于解释表示树结构中的任一节点的码字的视图;图15是示出树结构中的叶子以及u节点和v节点的视图,所述叶子与解密装置ID对应,所述u节点和v节点包含在可由解密装置解密的密文的索引信息中;图16是示出表示图15示出的树结构中的叶子、u节点和v节点的码字的视图;图17是用于解释是否能够通过使用表示解密装置ID的码字、表示u节点的码字和表示v节点的码字来对密文进行解密的方法的视图,其中表示u节点的码字和表示v节点的码字包含在密文的索引信息中;图18是用于解释秘密密钥选择处理的流程图;图19是用于解释在传统解密装置中的处理操作的概要的流程图;图20是用于解释在根据本实施例的解密处理中的处理操作的概要的流程图;图21是用于解释解密密钥导出处理的流程图;图22是用于解释解密密钥导出处理的视图,示出了解密装置ID和表示u节点和v节点的码字;图23是用于解释解密密钥导出处理的视图;图24是示出发送系统的配置的另一示例的方框图;图25是示出接收系统的配置的另一示例的方框图;和图26是用于解释在其中对密文进行的情况下的密文确定处理的流程图。
发明详述下面将会参照附图来描述本发明的实施例。
(第一实施例)图1是示出根据第一实施例的数据通信系统的配置的示例的方框图,所述数据通信系统包括在密文数据发送端上的发送系统和在密文接收端上的接收系统。
如图1所示,在该数据通信系统中,包括加密装置10的发送系统1通过网络3连接到n(n是正整数)个接收系统2,每个接收系统包括解密装置20。
在此种情况下,发送系统1被设计来对明文进行加密且通过网络3来将其广播或多播。注意,明文可以是例如视频数据、音频数据、文本数据这样的数字数据、或静止图像数据、或者用于解密另一密文的解密密钥或用于导出解密密钥的数据。
n个接收系统2中的每个通过网络3接收从发送系统1广播或多播的密文数据并对其进行解密。
在图1中的数据通信系统中,每个网络节点与发送系统1和接收系统2中的任何一个对应,并且只有一个网络节点是发送系统1。然而,可以存在多个发送系统1。另外,一个网络节点可以既具有发送系统1的功能又具有接收系统2的功能。或者,所有网络节点可以都被形成为既具有发送系统1的功能又具有接收系统2的功能,以允许其互相执行密码通信。
网络3可以是有线或无线网络。数据通信系统可以既使用有线又使用无线网络。网络3可以是双向或单向网络。或者,网络3可以是离线的。也就是说,由发送系统1产生的密文等被存储在比如DVD的记录介质中,该介质被传送到每个接收系统2。每个接收系统从该记录介质中读取密文等并对其进行解密。
也就是说,作为一种用于在根据下述实施例的发送系统1和接收系统2之间交换信息数据的装置,可以使用包括有线/无线通信、记录介质等中的任何一种装置。
在描述图1中的加密装置10和解密装置20之前,将会描述一种树结构,该树结构具有被分配给叶子的解密装置标识符(ID)以及给予解密装置的秘密密钥。在本实施例中的每个解密装置具有唯一的解密装置标识符(ID),并且每个解密装置ID与树结构中的任意一个叶子对应,如图2所示。图2是示出其中将解密装置ID分配给叶子的树结构的示意图。
参考图2,每个解密装置ID被分配给树结构中的每个叶子。树结构中的最上层节点被称为根。如果在该树结构中的叶子节点的高度(height)是“0”,根节点的高度是“31”,则叶子的数目,即解密装置的总数目是231。一个秘密密钥被分配给该树结构中的两个节点。假定当两个节点分别被写为u节点和v节点时,u节点是上层节点,除非另外指定。假定分配给u节点和v节点的秘密密钥被写为kuv,将其中每个以u节点作为祖先节点而不以v节点作为祖先节点的叶子集写为Suv。在此种情况下,如果分配给解密装置IDd的叶子属于Suv,那么将kuv作为秘密密钥给出(或者以稍后描述的方式导出)。如同稍后描述的,解密装置通过使用秘密密钥导出用于解密密文的解密密钥。
图3更详细地示出了图2中的树结构,其中根节点“15”的高度是“3”。在此种情况下,叶子的数目,即解密装置的总数目是23=8。如果在图3中u节点是节点“13”,而在图3中v节点是节点“10”,则Suv=S(13,10)变成{节点“1”,节点“2”}={1,2},Suv是其中每个叶子以u节点作为祖先节点而不以v节点作为祖先节点的叶子集,而kuv=k(13,10)被分配给属于S(13,10)的叶子(解密装置)。
如果为所有可能的u节点/v节点组合生成秘密密钥kuv,那么就生成给予所有解密装置的秘密密钥。在此种情况下,如果为所有可能的u节点/v节点组合独立生成秘密密钥kuv,那么每个解密装置持有的秘密密钥的数目变得非常大。因此,按照图4中示出的方式来将秘密密钥给予每个解密装置,如同参考文献1中所述。
图4示出了类似于图3中示出的树结构的实例,其中节点“15”作为根节点。当要独立地生成所有秘密密钥时,将给予与叶子“1”对应的解密装置的秘密密钥是k(15,14),k(15,11),k(15,12),k(15,5),k(15,6),k(15,7),k(15,8),k(15,10),k(15,3),k(15,4),k(15,2),k(13,10),k(13,3),k(13,4),k(13,2),和k(9,2)。与此相比较,由下述表达式定义的单向函数G被引入来减少秘密密钥的数目G{0,1}x→{0,1}3x例如,在下述表达式中使用秘密密钥k(15,14),使得可以导出秘密密钥k(15,11)和k(15,12)G(k(15,14))=k(15,11)‖Dk(15,14)‖k(15,12)其中‖表示数据的串接(concatenation),Dk(15,14)表示用于对密文进行解密的解密密钥,添加到密文上的索引信息指示u节点是“15”,而v节点是“14”。作为一种形成函数G的方法,可以使用按照下列方式通过使用输出长度为x的散列函数H来产生函数的方法G(k(15,14))=H(k(15,14)‖s0)‖H(k(15,14)‖s1)‖H(k(15,14)‖s2)=k(15,11)‖Dk(15,14)‖k(15,12)其中s0,s1和s2是常数。在上述情况下,s0是一个值,用于根据秘密密钥k(15,14)获得秘密密钥k(15,11),其中秘密密钥k(15,11)指示u节点是“15”,v节点是节点“14”的左子节点“11”,s1是一个值,用于根据秘密密钥k(15,14)获得用于对密文进行解密的秘密密钥Dk(15,14),添加到该密文上的索引信息指示u节点是“15”而v节点是“14”,s2是一个值,用于根据秘密密钥k(15,14)获得秘密密钥k(15,12)的值,其中秘密密钥k(15,12)指示u节点是“15”,v节点是节点“14”的右子节点“12”。
如果引入单向函数G,那么将下述六个秘密密钥作为给予与叶子“1”对应的解密装置的秘密密钥k(15,14),k(15,10),k(15,2),k(13,10),k(13,2),和k(9,2),使得可以通过使用单向函数G来导出其他秘密密钥。例如,通过将单向函数G应用于秘密密钥k(15,14),可以获得秘密密钥k(15,11)和k(15,12)。另外,还通过将单向函数G应用于秘密密钥k(15,11),可以获得秘密密钥k(15,5)和k(15,6)。通过将单向函数G应用于秘密密钥k(15,12),可以获得秘密密钥k(15,7)和k(15,8)。同样,可以根据k(13,10)获得秘密密钥k(13,3)和k(13,4)。注意,除了上述秘密密钥之外,公共秘密密钥(根密钥)可以给予所有解密装置。
已经公知的是,通过将树结构划分成较小的部分并且独立地对其进行处理,可以进一步减少秘密密钥的数目。假定图3中示出的树结构被划分成分别具有节点“13”和节点“14”作为根节点的两个树结构。在此种情况下,在把节点“13”作为根节点的树结构中,给予与叶子“1”对应的解密装置的秘密密钥是上述六个秘密密钥中的三个,即k(13,10),k(13,2),和k(9,2)。然而,在此种情况下,传输开销几乎变成双倍。
回见图1,发送系统1的加密装置10包括加密密钥存储单元11、无效解密装置ID存储单元12、树结构信息存储单元13、消息加密单元14和索引信息生成单元15。另外,根据需要,假定连接到网络3的接口装置等已准备好。
在加密密钥存储单元11中,存储有与任意u节点/v节点组合对应的加密密钥。在此种情况下,对称密钥加密系统或公开密钥加密系统都可以被用来对明文进行加密。出于简单的目的,考虑其中对称密钥加密系统被用来对明文进行加密的情形。在此种情况下,与给定的u节点和v节点对应的加密和解密密钥彼此相同。可以在加密密钥存储单元11中存储能够导出与任意u节点/v节点组合对应的加密密钥的信息,而不是所有的加密密钥。
无效解密装置ID存储单元12存储不被允许来解密任何消息的解密装置的ID。树结构信息存储单元13存储与树结构大小相关联的信息(例如,可以指定树结构的高度、叶子的数目等的信息)。
图5是用于解释加密装置10中的加密处理操作的流程图。消息加密单元14从无效解密装置ID存储单元12接收无效解密装置的ID,并且从树结构信息存储单元13接收与树结构大小相关联的信息(步骤S1)。与可以解密密文的有效解密装置的ID对应的叶子集被作为Suv集之和而获得,而通过参考文献1中描述的技术来获得在Suv集之和中包括的每个Suv中的u节点和v节点组合(步骤S2)。
假定叶子“1”到“8”分别对应于解密装置“1”到“8”,并且解密装置“2”、“5”和“6”是无效解密装置,如图6所示。在此种情况下,与排除了无效解密装置的有效解密装置对应的叶子集{1,3,4,7,8}可以被表示为叶子集S(13,2)={1,3,4}和叶子集S(14,11)={7,8}之和,叶子集S(13,2)={1,3,4}中的每个以节点“13”为祖先节点而不以节点“2”为祖先节点,叶子集S(14,11)={7,8}中的每个以节点“14”为祖先节点而不以节点“11”为祖先节点,即{1,3,4,7,8}=S(13,2)+S(14,11)。
在此种情况下,有效解密装置“1”、“3”和“4”被提供(或能导出)与S(13,2)的u节点/v节点组合对应的秘密密钥k(13,2),而无效解密装置“2”不被提供(或不能导出)该秘密密钥。注意,叶子“5”到“8”未被给予(或不能导出)秘密密钥k(13,2)。另外,叶子“7”和“8”被提供(或能导出)与S(14,11)的u节点/v节点组合对应的秘密密钥k(14,11),而叶子“5”和“6”不被提供(或不能导出)该秘密密钥。注意,从一开始,叶子“1”到“4”就不能被提供(或不能导出)秘密密钥k(14,11)。
因此,在图6中示出的情况中,从加密密钥存储单元11中获取与解密密钥Dk(13,2)对应的加密密钥以及与解密密钥Dk(14,11)对应的加密密钥(步骤S3),其中解密密钥Dk(13,2)是从不给予与叶子“2”对应的无效解密装置的秘密密钥k(13,2)导出(当对称密钥加密系统被用来对明文进行加密时,相应的加密密钥也是Dk(13,2)),解密密钥Dk(14,11)是从不给予与叶子“5”和“6”对应的无效解密装置的秘密密钥k(14,11)导出(当对称密钥加密系统被用来对明文进行加密时,相应的加密密钥也是Dk(14,11))。利用每个所获得的加密密钥对输入明文进行加密(步骤S4)。
在图6中示出的树结构的情况中,当通过使用加密密钥Dk(13,2)和加密密钥Dk(14,11)的每个将明文加密成两个密文时,只有已经接收到该密文的解密装置“1”到“8”中的有效解密装置“1”、“3”、“4”、“7”和“8”才能对该密文进行解密。
索引信息生成单元15产生索引信息,该索引信息指示与用于解密每个产生的密文的解密密钥对应的u节点/v节点组合(步骤S5)。指示与用于解密每个密文的解密密钥对应的u节点/v节点组合的索引信息被添加到该密文,并且结果数据被作为密文数据输出(步骤S6)。在该实施例中,密文是通过加密明文获得的,并且密文数据包括密文和与该密文对应的索引信息。
图7示出了从加密装置10输出的密文数据的数据结构的示例。如图7所示,每个密文数据包含通过使用在步骤S3中获得的加密密钥而产生的密文和指示与用于解密该密文的解密密钥对应的u节点/v节点组合的索引信息(密文索引信息)。例如,密文索引信息“13,2”被添加到通过使用加密密钥Dk(13,2)产生的密文[1],密文索引信息“14,11”被添加到通过使用加密密钥Dk(14,11)产生的密文[2]。
接收系统中的解密装置20包括密文数据获取单元21、密文确定单元22、解密单元23、秘密密钥存储单元24、解密装置标识符(ID)存储单元25、秘密密钥选择单元26以及解密密钥导出单元27。注意,根据需要,假定连接到网络3的接口装置等已准备好。
如图8中所示,给予解密装置20的秘密密钥和指示与该秘密密钥对应的u节点/v节点组合的索引信息被存储(或仅仅解密装置的秘密密钥被存储,如后所述)在秘密密钥存储单元24中。
解密装置的标识符(ID)被存储在解密装置标识符(ID)存储单元25中。
密文数据获取单元21获取输入到解密装置20的密文数据。
密文确定单元22确定解密装置是否能够对由密文数据获取单元21获取的密文进行解密。
秘密密钥选择单元26从存储在秘密密钥存储单元24中的秘密密钥中选择一个秘密密钥,根据该秘密密钥,能够导出用于解密被密文确定单元22确定为可解密的密文的解密密钥。
解密密钥导出单元27通过使用由秘密密钥选择单元26选择的秘密密钥,导出用于解密被密文确定单元22确定为可解密的密文的解密密钥。
解密单元23通过使用由解密密钥导出单元27导出的解密密钥,对被密文确定单元22确定为可解密的密文进行解密。
可以按照预定顺序对秘密密钥存储单元24中存储的秘密密钥进行存储。参照图9的流程图来对存储顺序确定方法进行描述。首先,变量i、j和k被设置为“1”(步骤S11)。指示解密装置的ID的叶子被设置为A1节点(步骤S12)。Ak节点的父节点被设置为u节点,Aj节点的兄弟节点被设置为v节点(步骤S13)。与上述u节点/v节点组合对应的秘密密钥被存储为第i个秘密密钥(步骤S14)。
然后,确定是否所有给定的秘密密钥被存储(步骤S15)。如果所有秘密密钥被完全存储,那么处理结束。如果不是所有秘密密钥被完全存储,那么i加1,而j减1(步骤S16)。检查是否j=0。如果j≠0(步骤S17),流程返回到步骤S13,如果j=0,则Ak节点的父节点被设置为Ak+1节点(步骤S18),且k加1。利用k的值(在增加后)来替换i(步骤S19)。然后流程返回到步骤S13。
假定由解密装置的ID指示的叶子(A1节点)是图10中示出的树结构中的叶子“1”。给予与叶子“1”对应的解密装置的秘密密钥为k(15,14),k(15,10),k(15,2),k(13,10),k(13,2),和k(9,2)。将会参照图11,通过例示其中根据图9的流程图来确定这些秘密密钥的存储顺序的情形来对上述操作进行更加详细的描述。
首先,在i=1(Ak=A1,Aj=A1)的情况下,由于A1节点(叶子“1”)的父节点是节点“9”,而“A1”节点(叶子“1”)的兄弟节点是节点“2”(步骤S13),与第(i=1)个秘密密钥对应的u节点/v节点组合是{9,2}(步骤S13到S15的第一序列)。
在i=2(Ak=A2,Aj=A2)的情况下,由于“A2”节点(节点“9”)的父节点是节点“13”,而“A2”节点(节点“9”)的兄弟节点是节点“10”(步骤S13),与第(i=2)个秘密密钥对应的u节点/v节点组合是{13,10}(步骤S13到S15的第二序列)。
在i=3(Ak=A2,Aj=A1)的情况下,由于“A2”节点(节点“9”)的父节点是节点“13”,而“A1”节点(叶子“1”)的兄弟节点是节点“2”(步骤S13),与第(i=3)个秘密密钥对应的u节点/v节点组合是{13,2}(步骤S13到S15的第三序列)。
在i=4(Ak=A3,Aj=A3)的情况下,由于“A3”节点(节点“13”)的父节点是节点“15”,而“A3”节点(节点“13”)的兄弟节点是节点“14”(步骤S13),与第(i=4)个秘密密钥对应的u节点/v节点组合是{15,14}(步骤S13到S15的第四序列)。
在i=5(Ak=A3,Aj=A2)的情况下,由于“A3”节点(节点“13”)的父节点是节点“15”,而“A2”节点(节点“9”)的兄弟节点是节点“10”(步骤S13),与第(i=5)个秘密密钥对应的u节点/v节点组合是{15,10}(步骤S13到S15的第五序列)。
在i=6(Ak=A3,Aj=A1)的情况下,由于“A3”节点(节点“13”)的父节点是节点“15”,而“A1”节点(叶子“1”)的兄弟节点是节点“2”(步骤S13),与第(i=6)个秘密密钥对应的u节点/v节点组合是{15,2}(步骤S13到S15的第六序列)。
参照图10,当使用该存储顺序确定方法时,按照所指定的顺序将k(9,2),k(13,10),k(13,2),k(15,14),k(15,10)和k(15,2)存储在与叶子“1”对应的解密装置中。在上述示例中,按照在树结构中的u节点位置的升序对秘密密钥进行存储(存储是从与节点“9”对应的u节点开始)。然而,可以按照在树结构中的u节点位置的降序对秘密密钥进行存储(在图10示出的情况下,存储是从与节点“15”对应的u节点开始)。在上述示例中,对于相同的u节点,可以按照在树结构中的v节点位置的降序对秘密密钥进行存储(在图10示出的情况下,虽然当u节点是节点“13”时,节点“10”和节点“2”可以是v节点,但首先存储与作为v节点的节点“2”对应的秘密密钥)。
按照此种顺序预先存储秘密密钥使得可以为秘密密钥选择中应该被选择的秘密密钥进行有效搜索,如稍后所述。在上述情况下,按照预定顺序对将被存储在秘密密钥存储单元24中的秘密密钥进行存储。然而,也可以在不设置任何特定存储顺序的情况下对秘密密钥进行存储。另外,如稍后所述,由于密文可以在不使用任何指示与秘密密钥对应的u节点/v节点组合的索引信息的情况下进行解密,所以可以在不存储任何指示与秘密密钥对应的u节点/v节点组合的索引信息的情况下对秘密密钥进行存储。显然,可以存储秘密密钥和指示与秘密密钥对应的u节点/v节点组合的索引信息两者。
图12是示出密文的解密处理的概要的流程图。首先,密文确定单元22根据由密文数据获取单元21获取的密文数据来获取密文的索引信息(密文索引信息)(步骤S21)。然后,密文确定单元22确定解密装置是否能够对与所获得的密文的索引信息对应的密文进行解密,并且搜索可以由解密装置解密的密文(步骤S22)。此后,秘密密钥选择单元26从存储在秘密密钥存储单元24中的秘密密钥中选择一个秘密密钥,根据该秘密密钥能够导出用于解密被密文确定单元22确定为可解密的密文的解密密钥(步骤S23)。解密密钥导出单元27通过使用由秘密密钥选择单元26选择的秘密密钥,来导出用于解密被密文确定单元22确定为可解密的密文的解密密钥(步骤S24)。解密单元23通过使用由解密密钥导出单元27导出的解密密钥,对被密文确定单元22确定为可解密的密文进行解密(步骤S25)。
图13是用于解释图12中的步骤S22中的密文确定处理的流程图。首先,获取在解密装置ID存储单元25中存储的解密装置的IDd(步骤S31),并且将变量i设置为“1”(步骤S23)。从密文数据获取单元21获取包含在第i个密文数据中的密文的索引信息[i](步骤S33),并且提取由索引信息[i]指示的u节点和v节点。然后,确定由解密装置的IDd指示的叶子是否是在树结构中预先设置的、以u节点作为祖先节点而不以v节点作为祖先节点的叶子(步骤S34)。如果在预先设置的树结构中,由解密装置的IDd指示的叶子是以u节点作为祖先节点而不以v节点作为祖先节点的叶子(步骤S34中为是),则流程进行到步骤S35,以确定与索引信息[i]对应的密文[i]可被解密(步骤S35)。然后,该处理结束。如果在预先设置的树结构中,由解密装置的IDd指示的叶子不是以u节点作为祖先节点而不以v节点作为祖先节点的叶子(步骤S34中为否),则流程进行到步骤S36。
在步骤S36中确定由密文数据获取单元21获得的所有密文的索引信息条是否已经经历过步骤S33和S34的检查(步骤S36)。如果有任一密文的索引信息没有经历检查(在步骤S36中为否),流程进行到步骤S37,将i加“1”。然后,流程返回到步骤S33。如果在步骤S36中确定所有密文的索引信息条已经经历过检查,那么确定该解密装置是无效解密装置(步骤S38),在根据需要通知相应信息之后,所述处理结束。
注意,步骤S31不必总在步骤S32和S33之前执行,而可以在步骤S34之前执行一次。例如,可以按照指定的顺序执行步骤S32、S33和S31,或者步骤S31可以与步骤S32和S33同时进行。
如后所述,在密文确定处理中,可以使用秘密密钥的索引信息,而不是解密装置的IDd。在此种情况下,在步骤S31中,获取指示与存储在秘密密钥存储单元24中的秘密密钥对应的u节点/v节点组合的索引信息,而不是解密装置的IDd。另外,在密文确定处理中,解密装置的IDd和秘密密钥的索引信息两者都可以被使用。在此种情况下,在步骤S31中,解密装置的IDd和秘密密钥的索引信息两者都被获取。
下面描述在步骤S34中的具体处理。树结构中的节点预先被按照下述方式进行编码。如图14所示,在所述树结构中,“0”被分配给从给定的父节点向左子节点下降的路径,而“1”被分配给从给定的父节点向右子节点下降的路径,从而按照上述方式利用“0”和“1”来表述从根节点到目标节点(包括叶子)的路径。此后,一个“1”和必要数目的“0”被添加到上述码字的结束处。也就是说,“10…0”被添加。预先根据要应用于该系统的树结构的高度确定表示每个节点(包括叶子)的码字的位长度L。
例如,如图15所示,当树结构的高度是3时,表示每个节点(包括叶子)的码字的位长度的指定值L是4位。如图2所示,当树结构的高度是31时,位长度是32位。
在按照上述方式利用“0”和“1”来表述从根节点到目标节点(包括叶子)的路径之后,“1”被添加到结果码字的结束处。另外,为了使位长度等于指定值L,将必要数目的填充位“0”添加到结果码字(当位数目小于指定值L时),从而获得目标节点(包括叶子)的码字。
在如图15所示其中根节点是“15”的树结构中,由于每个节点的码字的位长度是4位,所以叶子“1”、叶子“3”和根“15”分别被表示为码字“0001”、“0101”和“1000”,如图16所示。从每个码字的最低有效位来看,直到“1”第一次出现的位被认为是用于使位长度等于L的冗余位。例如,在叶子“3”和叶子“1”的码字中,最后的一位“1”是冗余位,而在根“15”的码字中,“1000”是冗余位。在本实施例中,最低有效位是每个码字的最右边的位,而最高有效位是每个码字的最左边的位。
在与图15中示出的树结构中的叶子“1”对应的解密装置的解密装置ID存储单元25中,“0001”被作为装置IDd存储。另外,包含在密文的索引信息中的u节点和v节点由如上所述的码字表述。
假定在图13中的步骤S33中获取的密文的索引信息[i]中包含的u节点(例如,图15中的节点“15”)和v节点(例如,图15中的节点“3”)的码字分别由U和V表示,如图17所示。也就是说,U=“1000”,而V=“0101”。
令Mv是V的冗余位的位长度(填充长度),而Mu是U的冗余位的位长度(填充长度)。在此种情况下,Mv=1,Mu=4。
在树结构中由解密装置的IDd指示的叶子以u节点作为祖先节点,这意味这下述表达式成立(d^U)>>Mu=0 ...(x1)其中^表示每个位的异或,>>表示右移,而=表示等于。例如,在计算如图17所示每个具有长度L的d和U之间的异或之后,每个结果位被右移Mu位(在本示例中为4位),用“0”来填充空位,以获得“0000”。当“0000”被转换成数值(从二进制转换到十进制)时,得到“0”。因此,能够说由IDd指示的叶子以u节点为祖先节点。
另外,叶子不以v节点为祖先节点意味着下述表达式成立(d^V)>>Mv!=0...(x2)其中!=表示不等于。例如,在计算如图17所示每个具有长度L的d和V之间的异或之后,每个导出的位被右移Mv位(在本示例中为1位),用“0”来填充空位,以获得“0010”。当“0010”被转换成数值时,未得到“0”。因此,能够说由IDd指示的叶子不以v节点为祖先节点。
在图13的步骤S34中,表达式(x1)和(x2)被应用于表示在每个密文[i]的索引信息[i]中包含的u节点和v节点的码字,以确定密文[i]是否可由具有IDd的解密装置进行解密。
在上述情况下,通过使用解密装置的IDd和密文的索引信息来执行该确定。然而,本发明不限于此,可以通过使用秘密密钥的索引信息和密文的索引信息来执行该确定。令Mu是表示在密文的索引信息[i]中包含的u节点的编码数据(U)的冗余位长度(填充长度),而Mv是表示在密文的索引信息[i]中包含的v节点的编码数据(V)的冗余位长度(填充长度),Mu’是表示在存储在秘密密钥存储单元24中的秘密密钥的索引信息[j]中包含的u节点的编码数据(U’)的冗余位长度(填充长度),而Mv’是表示在存储在秘密密钥存储单元24中的秘密密钥的索引信息[j]中包含的v节点的编码数据(V’)的冗余位长度(填充长度)。在步骤S34中,通过使用如下给定的两个表达式来确定密文[i]是否能够由具有IDd的解密装置进行解密Mu==Mu’...(x3)(V&Mv’)==(V’&Mv’)...(x4)其中&表示每位的逻辑与。如图4中所示的情形,对于所有与给予具有IDd的解密装置的秘密密钥对应的u节点/v节点组合,由解密装置的IDd指示的叶子以u节点为祖先节点而不以v节点为祖先节点成立。因此,如果表达式(x3)和(x4)成立,由于对应于密文[i]的u节点与对应于秘密密钥[j]的u节点相同,且对应于密文[i]的v节点是对应于秘密密钥[j]的v节点的祖先节点(或同一节点),所以由解密装置的IDd指示的叶子以u节点为祖先节点而不以v节点为祖先节点成立。甚至使用这种方法,对于与密文对应的u节点和v节点,可以确定在预先提供的树结构中,由解密装置的IDd指示的叶子是否是以u节点作为祖先节点而不以v节点作为祖先节点的叶子。
将参照图18的流程图描述由秘密密钥选择单元26进行的秘密密钥选择处理。获取与在图13的步骤S35中被确定为可解密的密文[i]对应的密文的索引信息[i](步骤S51)。提取指示在索引信息[i]中包含的u节点的编码数据(U),并且获取U的填充长度Mu的值(步骤S52)。如果在图13的步骤S34中的确定处理中获取Mu,那么步骤S52可以省略。提取指示在索引信息[i]中包含的v节点的编码数据(V)(步骤S53)。注意,如果在图13的步骤S34中的确定处理中获取V,那么步骤S53可以省略。在步骤S53中,可以获取用于稍后描述的解密密钥导出操作的V的填充长度Mv的值。注意,可以在图13的步骤S34中的确定处理中获取Mv,如上所述。
如图17所示(在图17中采用图14中示出的树结构),假定装置IDd是与叶子“1”对应的“0001”,V是与叶子“3”对应的“0101”,而U是与根节点“15”对应的“1000”。
随后,为装置IDd和V所共有的前缀而进行搜索,并且获取该公共前缀的位长度t的值(步骤S54)。d和V所共有的前缀是在d和V之间的逐位比较之前的位串,开始于编码数据的最高有效位,指示第一次失配。然而,该比较不包括任何冗余位(填充位)。在图17所示的情况下,由于第一位相同,所以公共前缀是“0”,位长度t是“1”。注意,通过利用“1”和“0”填充该前缀而获得的“0100”对应于节点“13”,该节点是树结构中的叶子“1”和叶子“3”所共有的祖先的最底层节点。
注意,步骤S52到S54不必总按照指定的顺序执行。例如,可以按照指定的顺序执行步骤S53、S54和S52,或者步骤S52可以与步骤S53和S54同时执行。
随后,从在秘密密钥存储单元24中存储的秘密密钥获取第{(Mu-1)(Mu-2)/2+t-(L-Mu)+1}个秘密密钥(由K表示)(步骤S55)。在此种情况下,在与叶子“1”对应的解密装置中,将给予解密装置的多个秘密密钥按照图11所示的顺序存储在秘密密钥存储单元24中。也就是说,按照这样一个顺序来存储秘密密钥,即第一组,其中叶子“1”的父节点“9”是u节点;第二组,其中节点“9”的父节点“13”是u节点;第三组,其中节点“13”的父节点“15”是u节点。首先存储属于第一组且与作为u节点的节点“9”和作为v节点的节点“9”的子节点“2”的组合对应的秘密密钥。第二,存储属于第二组且与作为u节点的节点“13”和作为v节点的节点“13”的子节点“10”的组合对应的秘密密钥。同样,第三,存储与作为u节点的节点“13”和作为v节点的节点“13”的孙节点“2”的组合对应的秘密密钥。第四,存储属于第四组且与作为u节点的节点“15”和作为v节点的节点“15”的子节点“14”的组合对应的秘密密钥。同样,第五,存储与作为u节点的节点“15”和作为v节点的节点“15”的孙节点“10”的组合对应的秘密密钥。同样,第六,存储与作为u节点的节点“15”和作为v节点的节点“15”的曾孙节点“2”的组合对应的秘密密钥。按照这种方式,按照距离叶子“1”的距离增加的顺序存储秘密密钥。
如下给出的表达式(x5)使得能够获得上述六个秘密密钥中的一个所处的顺序位置,由此可以导出与密文的索引信息中包含的u节点和v节点对应的用于解密该密文的解密密钥。
(Mu-1)(Mu-2)/2+t-(L-Mu)+1 ...(x5)上面给出的表达式(x5)的前半部分{(Mu-1)(Mu-2)/2}的值,当u节点是节点“9”时,变成“0”;当u节点是节点“13”时,变成“1”,当u节点是节点“15”时,变成“3”,从而指示所述秘密密钥属于第一到第三组中的那一组。
上面给出的表达式(x5)的后半部分{t-(L-Mu)+1}的值指示所述秘密密钥在每个组中的顺序位置。
在图17所示的情况下,{(Mu-1)(Mu-2)/2}={(4-1)(4-2)/2}=3且{t-(L-Mu)+1}={1-(4-4)+1}=2,并且因此从秘密密钥存储单元24中获取第五个秘密密钥(在上述第三组中的第二个秘密密钥)k(15,10),在秘密密钥存储单元24中,秘密密钥按照图11所示的顺序进行存储。该秘密密钥用K表示。
在上述情况下,按照预定顺序存储将要在秘密密钥存储单元24中存储的秘密密钥,并且通过使用密文的索引信息和解密装置的ID来计算待选择的秘密密钥所处的顺序位置,其中该密文被密文确定单元22确定为可被解密装置解密的密文,解密装置的ID存储在解密装置ID存储单元25中。在秘密密钥选择中,不使用秘密密钥索引信息。本发明并不限于该方法。可以获得表示与待选择的秘密密钥对应的u节点和v节点的编码数据(U,V),其上添加有与所获得的U和V一致的索引信息的秘密密钥可以被从在秘密密钥存储单元24中存储的秘密密钥中搜索出来。
参考图17,在步骤S54中,“0110”(与节点“10”对应)被设置为与待选择的秘密密钥对应的V,其是通过获得d和V所共有的前缀、反转d的编码数据“0001”一位(在本情况下为第二位)、并且执行对第三位和后续位的填充处理而获得,其中所反转的一位是在与V从最高有效位开始的比较时第一次不同的位。在步骤S52中获取的U(在本情况下是与节点“15”对应的“1000”)被设置为与待选择的秘密密钥对应的U,其上添加有与所获得的U和V一致的索引信息的秘密密钥可以被从在秘密密钥存储单元24中存储的秘密密钥搜索出来。在该秘密密钥选择中,当与所获得的U和V一致的索引信息将要被搜索出来时,使用每个秘密密钥索引信息。
如上所述,在秘密密钥选择中,根据解密装置的IDd和表示在密文的索引信息[i]中包含的v节点的编码数据(V)所共有的前缀来选择一个秘密密钥,根据该秘密密钥能够导出用于解密密文[i]的解密密钥。假设存在多个密文。在这种情况下,可以获取d和每个密文的每个索引信息。然后,对于表示在每个密文的索引信息中包含的v节点的编码数据V,为表现d和V所共有的前缀的位长度t的最大值的密文进行搜索,提取出由所找到的密文的索引信息指示的u节点(如果v节点还没有被提取出,则也提取v节点)。很有可能的是,与d和V所共有的前缀的位长度t的较大值对应的密文可由该解密装置解密。因此,密文确定单元22可以按照d和v所共有的前缀的位长度t的降序,确定密文是否可由解密装置进行解密。利用此种操作,如果与d和v所共有的前缀的位长度t的最大值对应的密文可被解密,则可以期望的是,执行一个密文的确定,使得完成对可由解密装置进行解密的密文进行搜索成为可能。假定与d和v所共有的前缀的位长度t的最大值对应的密文不能被解密。即使在此种情况下,如果与t的第二大值对应的密文可被解密,则执行仅仅两个密文的确定,使得完成对可由解密装置进行解密的密文进行搜索成为可能。
在此种情况下,可以由密文确定单元22按照下述方式进行密文确定处理。获取解密装置的IDd。在搜索与d和V所共有的前缀的位长度t的最大值对应的密文的过程中,通过对每位的d和V进行比较而获得t的值,并且为与t的最大值对应的V进行搜索,其中所述V包含在多个密文中的每个的索引信息中。或者,d和每个V可被转换成数值(从二进制转换到十进制),并且对表示最接近于d的数值的值的V进行搜索。然后,确定由解密装置IDd指示的叶子是否是在预先设置的树结构中以u节点为祖先节点而不以v节点为祖先节点的叶子。如果在该判定步骤中获得的结果为“是”,则确定与该索引信息对应的密文可被解密。如果在该判定步骤中获得的结果为“否”,则为与d和V所共有的前缀的位长度t的第二大值对应的密文执行确定,或者重复图13中的处理。
可以将密文预先存储,从而可以更加有效地执行对与d和V所共有的前缀的位长度t的最大值对应的密文的搜索。密文可以由发送系统或接收系统排序。
图24示出了当由发送系统来对密文进行排序时发送系统的配置的示例。图25示出了当由接收系统来对密文进行排序时接收系统的配置的示例。
图24示出了一种情形,在该情形中,索引信息生成单元15包括密文排序单元151,且当将要为每个密文生成索引信息时,预先对密文进行排序。当每个密文的索引信息生成时,密文排序单元151按照从根一侧到下游方向或从叶子一侧到上游方向的顺序,根据v节点在树结构中的位置,对表示各个密文的索引信息条中包含的v节点的码字进行排序。可以按照降序或升序来对被转换成数值的各个码字V进行排序。然后,按照对表示各个密文的索引信息条中包含的v节点的码字进行排序的相同的顺序,对密文和密文的索引信息条进行排序。索引信息生成单元15将排序后的密文和排序后的密文的索引信息条作为密文数据输出。
如果发送系统具有图24中示出的配置,则图1中示出的接收系统的配置不需要改变。将会参照图26的流程图,对由此种情况下的接收系统的密文确定单元22进行的密文确定处理进行描述。
在接收从发送系统发送的排序后的密文数据时,密文数据获取单元21临时存储每个密文数据。密文确定单元22首先获取在解密装置ID存储单元25中存储的解密装置的IDd(步骤S71)。然后,密文数据获取单元21获取由各个密文的索引信息条指示的v节点的列表(步骤S72)。如上所述,在该列表中的v节点已经由发送系统进行了排序。然后,为与d和V所共有的前缀的位长度t的最大值对应的V执行搜索。作为一种搜索方法,可以在通过比较d和每个V的每一位而获得t的值后,为与t的最大值对应的V执行二叉树搜索。或者,d和每个V可被转换成数值(从二进制转换到十进制),可以为表示最接近于d的数值的值的V执行二叉树搜索。获取在密文数据获取单元21中的存储地址i,在该地址存储有密文,其中包含与d和V所共有的前缀的位长度t的最大值对应的V的索引信息被添加到该密文上(步骤S73)。此后,执行图13中的步骤S34中的确定处理。在该确定处理中,通过使用在步骤S73中获取的第i个密文的索引信息来执行确定。
当发送系统具有图1中示出的配置时,接收系统被设计为使得密文数据获取单元21包括如图25所示的密文排序单元211。当接收系统获取密文数据时,密文排序单元211对密文进行排序。将会参照图26的流程图,对由此种情况下的接收系统的密文确定单元22进行的密文确定处理进行描述。
在密文数据获取单元21接收从发送系统发送的密文数据时,密文排序单元211按照从根一侧到下游方向或从叶子一侧到上游方向的顺序,根据v节点在树结构中的位置,对表示各个密文的索引信息条中包含的v节点的码字V进行排序。或者,可以按照降序或升序来对被转换成数值的各个码字V进行排序。然后,按照与对表示各个密文的索引信息条中包含的v节点的码字V进行排序的相同的顺序,对包含密文和密文的索引信息条的密文数据进行排序。并且密文数据被临时存储在密文数据获取单元21中。
密文确定单元22首先获取在解密装置ID存储单元25中存储的解密装置的IDd(步骤S71)。然后,密文数据获取单元21获取由各个密文的索引信息条指示的v节点的列表(步骤S72)。如上所述,在该列表中的v节点已经由密文排序单元211进行了排序。然后,为与d和V所共有的前缀的位长度t的最大值对应的V执行搜索。作为一种搜索方法,可以在通过比较d和每个V的每一位而获得t的值后,为与t的最大值对应的V执行二叉树搜索。或者,d和每个V可被转换成数值(从二进制转换到十进制),可以为表示最接近于d的数值的值的V执行二叉树搜索。获取在密文数据获取单元21中的存储地址i,在该地址存储有密文,其中包含与d和V所共有的前缀的位长度t的最大值对应的V的索引信息被添加到该密文上(步骤S73)。此后,执行图13中的步骤S34中的确定处理。在该确定处理中,通过使用在步骤S73中获得第i个密文的索引信息来执行确定。
在上述情况中,为与解密装置的IDd和表示在密文的索引信息[i]中包含的v节点的码字V所共有的前缀的位长度t的最大值对应的V执行搜索。然而,本发明不限于此,可以为表示包含在密文的索引信息中的v节点的码字V和表示包含在秘密密钥的索引信息中的v节点的码字V’所共有的前缀的位长度t的最大值对应的V执行搜索。
对于秘密密钥选择,可以使用下述方法代替上述方法。通过使用由密文确定单元22确定为可被具有IDd的解密装置解密的密文的索引信息以及在秘密密钥存储单元24中存储的秘密密钥的索引信息,为满足表达式(x3)和(x4)的(秘密密钥的)索引信息进行搜索,并且选择与该索引信息对应的秘密密钥。另外,如上所述,当通过使用秘密密钥的索引信息和密文的索引信息,在图13的步骤S34中确定密文是否可被具有IDd的解密装置解密时,可认为在步骤S34中,密文确定和秘密密钥选择同时进行。
将参考图19和20描述本实施例中的秘密密钥选择的有效性。如图19所示,如果秘密密钥没有预先按照预定顺序进行存储(现有技术),那么必须在步骤S102中为秘密密钥执行穷尽搜索,根据该秘密密钥可以导出用于解密在步骤S101的密文确定处理之后被确定为可解密的密文的解密密钥。与此相对照,如图20所示,在本实施例中,由于秘密密钥是预先按照预定顺序存储的,所以只需要通过步骤S101中的密文确定处理获得可解密的密文,而不需要如图19中的步骤S102所示,为将被用于导出解密密钥的秘密密钥的选择执行秘密密钥搜索处理,图19所指的是现有技术。在本实施例中,通过使用解密装置的IDd和表示包含在图13的步骤S35中获得的可解密的密文的索引信息中的u节点和v节点的码字来计算存储秘密密钥的顺序位置。
在密文确定中,根据现有技术,必须为可由解密装置解密的密文执行穷尽搜索。与此相对照,根据本实施例,对给定的密文是否可被解密装置解密的确定是从其索引信息包含码字(V)的密文开始的,所述码字(V)表v节点,该v节点与所述解密装置的IDd所共有的前缀的位长度为最大值,即,确定是从其可解密的可能性较高的密文开始的,从而节省了不必要的搜索,并且使得密文确定处理有效率。
下面,将参考图21的流程图描述解密密钥导出单元27中的解密密钥导出处理。首先,提取表示在图13的步骤S35中被确定为可解密的密文[i]的索引信息[i]中包含的v节点的编码数据(V),并且获取V的填充长度Mv的值(步骤S61)。注意,可以在图13的步骤S34中或图18的步骤S53中的确定处理中获取Mv,其中参考图18已经描述了秘密密钥选择。如果已经获取Mv,那么步骤S61可以省略。为了确定与在图18的步骤S55中获取的秘密密钥K对应的v节点的位置是否与密文的索引信息[i]中包含的码字V所指示的v节点的位置相一致,应该通过使用解密装置的IDd和表示在密文的索引信息中包含的v节点的码字V所共有的前缀的位长度t,确定t+1=L-Mv是否成立(步骤S62)。注意,t也可以在图18的步骤S54中获取,或者通过再次执行与图18的步骤S54中相同的处理来获取。如果t+1=L-Mv不成立,则设定m=t+2(步骤S63)。并且获取V的第m(从最高有效位数起)位bm(步骤S64)。
将参考图17描述一种情况,其中由密文的索引信息[i]中包含的码字U指示的u节点是节点“15”,而由密文的索引信息[i]中包含的码字V指示的v节点是节点“3”。注意,在图15中示出了所述树结构。如果K是k(15,10),由于K的v节点(节点“10”)的位置不同于由密文的索引信息[i]中包含的码字V指示的v节点(节点“3”)的位置,所以很显然的是,t+1≠L-Mv。因此,流程进行到步骤S63。在此种情况下,m=t+2=1+2=3,而在从V的最高有效位数起的第三位上的“0”被作为bm获取(步骤S64)。通过下述使用利用所获取的位bm和输入的秘密密钥K的单向函数G的等式来对K的值进行更新(步骤S65)。注意,该更新操作是在工作存储器上进行的,并且,存储在秘密密钥存储单元24中的秘密密钥K自身并不更新。
G(K,bm)=H(K‖s0)(ifbm=0)=H(K‖s2)(ifbm=1) ...(x6)在上述给出的公式(x6)中,函数G表示,如果bm=0,则通过使用值s0,根据输入的秘密密钥K,输出一个秘密密钥,该秘密密钥的u节点是与秘密密钥K对应的u节点,v节点是与秘密密钥K对应的v节点的左子节点,如果bm=1,则通过使用值s2,根据输入的秘密密钥K,输出一个秘密密钥,该秘密密钥的u节点是与秘密密钥K对应的u节点,v节点是与秘密密钥K对应的v节点的右子节点。在上述情况下,在步骤S65中通过使用等式(x6)来计算G(k(15,10),0)。该计算出的值是u节点是节点“15”且v节点是节点“3”秘密密钥k(15,3)。通过使用在这里作为秘密密钥K获得的值来进行该处理。
然后,所述流程进行到步骤S66,以确定直到V的第m位的位串是否与通过将冗余位从V中移除而获得的位串(位数(L-Mv))相一致,即,确定直到V的第m位的位串是否与表示由树结构中的码字V指示的节点(v节点)的码字(没有冗余位)相一致。如果彼此不一致,即,m小于(L-Mv),那么流程进行到步骤S67,将m加1。然后重复步骤S64至S66。如果在步骤S66中确定,直到V的第m位的位串与表示由树结构中的码字V指示的节点(v节点)的码字(没有冗余位)相一致,即,m=L-Mv,那么流程进行到步骤S68。
在步骤S68中,根据等式(x7)导出解密密钥DkDk=H(K‖s1)...(x7)上述给出的等式(x7)表述,根据在步骤S65中获得的秘密密钥K,输出解密密钥Dk,其中,u节点是与秘密密钥K对应的u节点,v节点是与秘密密钥对应的v节点。
如果在步骤S62中确定,与图18的步骤S55中获得的秘密密钥K对应的v节点的位置与由密文的索引信息[i]中包含的码字V指示的v节点的位置相一致,即,t+1=L-Mv也成立,那么流程进行到步骤S68,以通过使用上面给出的等式(x7)获得解密密钥Dk。
下面将描述一种情况,其中,装置IDd是与图15中的树结构中的叶子“1”对应的码字“0001”,在图13的步骤S35中被确定为可解密的密文的索引信息中包含的u节点和v节点分别是图15中的节点“13”和节点“10”。在此种情况下,如图22中所示,d=“0001”,U=“0100”,V=“0110”。如图23所示,V和装置IDd所共有的前缀的位长度t是1,U的填充长度Mu是3,V的填充长度Mv是2。在此种情况下,在图18的步骤S55中,{(Mu-1)(Mu-2)/2+t-(L-Mu)+1}={(3-1)(3-2)/2+1-(4-3)+1}=第二秘密密钥,即k(13,10),是从按照图11示出的顺序存储的秘密密钥获得的。由于在步骤S62中确定,t+1=L-Mv成立且对应于秘密密钥k(13,10)的v节点的位置与由在密文的索引信息中包含的码字V指示的v节点的位置相一致,流程进行到步骤S68。在步骤S68中,计算H(k(13,10)‖s1)的值,且将计算出的值作为解密密钥Dk(13,10)输出(步骤S69)。
在步骤S69中,将步骤S68中获得的解密密钥Dk输出。
在上述情况下,根据在被密文确定单元22确定为可解密的密文的索引信息中包含的v节点的码字V、由秘密密钥选择单元26选择的秘密密钥K、以及在解密装置ID存储单元25中存储的解密装置的IDd,来导出解密密钥,但不使用秘密密钥选择单元26选择的秘密密钥的索引信息。因此,上述情况可被认为是这样一种情形,即通过使用秘密密钥选择单元26选择的秘密密钥,基于树结构中由被密文确定单元22确定为可解密的密文的索引信息所指示的v节点的位置、以及树结构中由存储在解密装置ID存储单元25中的解密装置的IDd指示的叶子的位置,导出用于对被密文确定单元22确定为可解密的密文进行解密的解密密钥。
将会描述一种情形,其中,由密文的索引信息[i]中包含的码字U指示的u节点是节点“15”,而由密文的索引信息[i]中包含的码字V指示的v节点是节点“3”。注意,在图15中示出了所述树结构。在步骤S63中获得的值m是3,L是4,Mv是1。因此,m=L-Mv,因此流程从步骤S66进行到步骤S68。在步骤S68,根据在步骤S65中获得的秘密密钥k(15,3),通过使用值s1,输出解密密钥Dk(15,3)。该情况也可以是这样一种情况,即通过使用秘密密钥选择单元26选择的秘密密钥,基于由被密文确定单元22确定为可解密的密文的索引信息所指示的树结构中的v节点的位置、以及由存储在解密装置ID存储单元25中解密装置Idd指示的树结构中的叶子的位置,导出用于对被密文确定单元22确定为可解密的密文进行解密的解密密钥。
本发明不限于上述情况。可以根据指示在被密文确定单元22确定为可解密的密文的索引信息中包含的v节点的码字V、由秘密密钥选择单元26选择的秘密密钥K、以及指示与秘密密钥选择单元26选择的秘密密钥对应的索引信息中包含的v节点的码字V,来导出解密密钥。将描述一种情形,其中,由被密文确定单元22确定为可解密的密文的索引信息中包含的码字U和V指示的u节点和v节点分别是节点“15”和节点“3”。由与秘密密钥选择单元26选择的秘密密钥对应的索引信息中包含的码字U和V指示的u节点和v节点分别是节点“15”和节点“10”。注意,在图15中示出了所述树结构。
由于节点“10”和节点“3”分别被编码为“0110”和“0101”,所以节点“10”和节点“3”所共有的前缀的位长度t是2。如果在将图21中的步骤S62中的判定表达式变为t=L-Mv,而将步骤S63中的赋值表达式变为m=t+1,则在步骤S64中获得bm=0,并且在步骤S65中计算出秘密密钥k(15,3)。最后,在步骤S69中输出解密密钥Dk(15,3)。该情形被认为是这样一种情形,即通过使用秘密密钥选择单元26选择的秘密密钥,基于由被密文确定单元22确定为可解密的密文的索引信息所指示的树结构中的v节点的位置、以及由与秘密密钥选择单元所选择的秘密密钥对应的索引信息所指示的树结构中的v节点的位置,导出用于对被密文确定单元22确定为可解密的密文进行解密的解密密钥。
根据上述的情形,由秘密密钥选择单元26选择的秘密密钥K(或由秘密密钥选择单元26选择的秘密密钥K和与该秘密密钥K对应的索引信息)被从秘密密钥选择单元26通知到解密密钥导出单元27,而不需要任何从解密密钥导出单元27发出的明确的获取请求。然而,本发明并不限于此,秘密密钥选择单元26可以在从解密密钥导出单元27接收到获取请求后,将秘密密钥K通知给解密密钥导出单元27。在此种情况下,在图18的步骤S55中,秘密密钥选择单元26将存储所选择的秘密密钥K的顺序位置(或与该秘密密钥K对应的索引信息)通知给解密密钥导出单元27。当第一次执行图21中的步骤S65(如果步骤S62中为是,则为步骤S68),解密密钥导出单元27将在秘密密钥选择单元26中存储所选择的秘密密钥K的顺序位置(或与该秘密密钥K对应的索引信息)发送到秘密密钥选择单元26,并且发出对秘密密钥K的请求。根据来自解密密钥导出单元27的请求,秘密密钥选择单元26将秘密密钥K(或秘密密钥K和与该秘密密钥K对应的索引信息)通知给解密密钥导出单元27。注意,在图18的步骤S55中,秘密密钥选择单元26可以将存储所选择的秘密密钥K的顺序位置以及与秘密密钥K对应的索引信息二者都通知给解密密钥导出单元27。
当解密密钥导出单元27要向秘密密钥选择单元26发送秘密密钥K存储的顺序位置时,存储秘密密钥K的顺序位置是基于由被密文确定单元22确定为可解密的密文的索引信息所指示的u节点和v节点的。因此,其中根据指示被密文确定单元22确定为可解密的密文的索引信息中包含的v节点的码字V、秘密密钥选择单元26选择的秘密密钥K、以及在解密装置ID存储单元25中存储的解密装置的IDd来导出解密密钥的上述情况可被认为是这样一种情况,即通过使用秘密密钥选择单元26选择的秘密密钥,基于由被密文确定单元22确定为可解密的密文的索引信息所指示的树结构中的u节点和v节点的位置、以及由在解密装置ID存储单元25中存储的解密装置的IDd所指示的树结构中的叶子的位置,导出用于对被密文确定单元22确定为可解密的密文进行解密的解密密钥。
当解密密钥导出单元27要向秘密密钥选择单元26发送秘密密钥K存储的顺序位置时,存储秘密密钥K的顺序位置是基于由被密文确定单元22确定为可解密的密文的索引信息所指示的u节点和v节点的。因此,其中根据指示被密文确定单元22确定为可解密的密文的索引信息中包含的v节点的码字V、秘密密钥选择单元26选择的秘密密钥K、以及指示在与秘密密钥选择单元26选择的秘密密钥对应的索引信息中包含的v节点的码字V来导出解密密钥的上述情况是这样一种情况,即通过使用秘密密钥选择单元26选择的秘密密钥,基于由被密文确定单元22确定为可解密的密文的索引信息所指示的树结构中的u节点和v节点的位置、以及由与秘密密钥选择单元26所选择的秘密密钥对应的索引信息所指示的树结构中的v节点的位置,导出用于对被密文确定单元22确定为可解密的密文进行解密的解密密钥。
当解密密钥导出单元27要把与秘密密钥K对应的索引信息发送到秘密密钥选择单元26时,秘密密钥K的索引信息是基于u节点和v节点的。因此,其中根据指示被密文确定单元22确定为可解密的密文的索引信息中包含的v节点的码字V、秘密密钥选择单元26选择的秘密密钥K、以及指示在与秘密密钥选择单元26选择的秘密密钥对应的索引信息中包含的v节点的码字V来导出解密密钥的上述情况可以被认为是这样一种情况,即通过使用秘密密钥选择单元26选择的秘密密钥,基于由被密文确定单元22确定为可解密的密文的索引信息所指示的树结构中的v节点的位置、以及由与秘密密钥选择单元26所选择的秘密密钥对应的索引信息所指示的树结构中的u节点和v节点的位置,导出用于对被密文确定单元22确定为可解密的密文进行解密的解密密钥。
当解密密钥导出单元27要把存储秘密密钥K的顺序位置以及与秘密密钥K对应的索引信息发送到秘密密钥选择单元26时,存储秘密密钥K的顺序位置是基于由被密文确定单元22确定为可解密的密文的索引信息所指示的u节点和v节点的。因此,其中根据指示被密文确定单元22确定为可解密的密文的索引信息中包含的v节点的码字V、秘密密钥选择单元26选择的秘密密钥K、以及指示在与秘密密钥选择单元26选择的秘密密钥对应的索引信息中包含的v节点的码字V来导出解密密钥的上述情况可以被认为是这样一种情况,即通过使用秘密密钥选择单元26选择的秘密密钥,基于由被密文确定单元22确定为可解密的密文的索引信息所指示的树结构中的u节点和v节点的位置、以及由与秘密密钥选择单元26所选择的秘密密钥对应的索引信息所指示的树结构中的u节点和v节点的位置,导出用于对被密文确定单元22确定为可解密的密文进行解密的解密密钥。
当要执行密文确定、秘密密钥选择或解密密钥导出时,存储在解密装置ID存储单元25中的解密装置的ID可以用来代替存储在秘密密钥存储单元24中的秘密密钥的索引信息。在这种情况下,由于不需要在秘密密钥存储单元24中存储秘密密钥的索引信息,因此,可以减少解密装置所需要的非易失性存储器的数量。
解密单元23对密文进行解密,该密文被密文确定单元22确定为可被解密装置通过使用由解密密钥导出单元27导出的解密密钥进行解密。
如上所述,根据上述实施例,在秘密密钥存储单元24中存储一个或多个秘密密钥以及索引信息项,其中每个秘密密钥由在预定树结构中的任意两个节点指定,每个索引信息项指示树结构中与所述每个秘密密钥对应的两个节点。与树结构中的任意一个叶子对应的解密装置ID被存储在解密装置ID存储单元中。密文数据获取单元21获取一个或多个密文以及一个或多个索引信息项,每个索引信息项指示树结构中与每个密文的解密密钥对应的任意两个节点。当由密文数据获取单元21获取的密文的索引信息指示的两个节点的一个是树结构中由解密装置ID存储单元25中存储的ID指示的叶子的祖先节点,另一个节点是一个不是该叶子的祖先节点的节点时,密文确定单元22确定该密文可被解密。然后,秘密密钥选择单元26从在秘密密钥存储单元24中存储的多个秘密密钥中选择一个秘密密钥,其中从该秘密密钥可以导出用于解密被密文确定单元22确定为可解密的密文的解密密钥。解密密钥导出单元27通过使用由秘密密钥选择单元26选择的秘密密钥导出用于解密被密文确定单元22确定为可解密的密文的解密密钥。通过使用由解密密钥导出单元27导出的解密密钥对被密文确定单元22确定为可解密的密文进行解密。
在秘密密钥存储单元24中,其中每个由树结构中的两个任意节点指定的秘密密钥被按照一种顺序进行存储,在该顺序中,基于在树结构中与每个秘密密钥对应的两个节点的位置来对秘密密钥进行排序(图9和图11)。在选择秘密密钥时,基于由被确定为可解密的密文的索引信息所指示的两个节点在树结构中的位置、以及由解密装置ID指示的叶子在树结构中的位置,秘密密钥选择单元26计算存储了秘密密钥的顺序位置,其中从该秘密密钥可以导出用于解密密文的解密密钥(见图18)。这使得可以缩短密钥选择所需要的处理时间,从而缩短在所接收的密文被输入到解密装置后获得明文所需要的处理时间。
另外,发送系统的密文排序单元151或者接收系统的密文排序单元211根据每个密文的索引信息预先对密文进行排序,并且执行上述二叉树搜索,从而缩短密文确定的处理时间。这使得可以缩短在所接收的密文被输入到解密装置后获得明文所需要的处理时间。
假设当密文确定、秘密密钥选择或解密密钥导出待执行时,存储在解密装置ID存储单元25中的解密装置的ID被用来代替在秘密密钥存储单元24中存储的秘密密钥的索引信息。在这种情况下,由于不需要在秘密密钥存储单元24中存储秘密密钥的索引信息,因此,可以减少解密装置所需要的非易失性存储器的数量。
在上述实施例中描述的技术可被作为程序分配,该程序在被存储在比如磁盘(例如,软盘或硬盘)、光盘(例如,CD-ROM或DVD),或半导体存储器这样的存储介质中后,可由计算机执行。也就是说,可以通过使计算机执行程序来行使作为密文数据获取单元21、密文确定单元22、解密单元23、秘密密钥存储单元24、解密装置ID存储单元25、秘密密钥选择单元26以及解密密钥导出单元27的计算机功能,来实现解密装置20。
(1)根据上述实施例,解密装置(a)将多个秘密密钥存储在第一存储器(秘密密钥存储单元)中,其中每个秘密密钥由树结构中的两个节点指定;(b)将与树结构中的叶子对应的解密装置的标识符存储在第二存储器(解密装置ID存储单元)中;(c)获取每个密文和每个密文索引信息项,以获得多个密文和与各个密文对应的多个密文索引信息项,其中每个密文索引信息项指示树结构中的两个节点,该两个节点与用于解密每个密文的解密密钥对应;(d)从所述多个密文中获取可解密的密文,由可解密的密文的密文索引信息项所指示的两个节点中的一个是与所述标识符对应的叶子的祖先节点,而两个中的另一个是一个不是该叶子的祖先节点的节点;(e)从存储在第一存储器中的多个秘密密钥中选择一个秘密密钥,从该密钥可以导出解密密钥;(f)从所选择的秘密密钥导出解密密钥;以及(g)使用所导出的解密密钥来对可解密密文进行解密。
(2)所述装置从多个密文中获取可解密的密文,所述多个密文是按照由每个密文的每个密文索引信息项所指示的两个节点的一个和与标识符对应的叶子所共用的祖先节点的数目的降序排列的。
这使得可以大大地减少待检查的密文的数目,并减少获取可解密的密文所需要的处理时间。
(3)基于由可解密的密文的密文索引信息项所指示的两个节点在树结构中的位置和在树结构中叶子的位置,所述装置从第一存储器中存储的多个秘密密钥中选择秘密密钥,其中从该秘密密钥可以导出解密密钥。
这使得不必要来为秘密密钥执行穷尽搜索,从而使得可以减少秘密密钥选择所需要的处理时间,其中从所述秘密密钥可以导出解密密钥。
另外,根据基于在树结构中与每个秘密密钥对应的两个节点的位置的顺序来在第一存储器中存储秘密密钥,并且基于由可解密的密文的密文索引信息项所指示的两个节点在树结构中的位置和在树结构中叶子的位置,通过计算秘密密钥存储的顺序位置,所述装置选择一个秘密密钥,从该秘密密钥可以导出解密密钥。
这使得可以进一步减少秘密密钥选择所需要的处理时间。
根据上述实施例,能够减少在将密文输入到解密装置后获得明文所要的处理时间。
权利要求
1.一种解密密文的解密装置,包括秘密密钥存储单元,用于存储多个秘密密钥,其中每个秘密密钥由树结构中的两个节点指定;解密装置ID存储单元,用于存储与所述树结构中的叶子对应的所述解密装置的标识符;第一获取单元,被配置为获取每个密文和每个密文索引信息项,以获得多个密文和与各个密文对应的多个密文索引信息项,其中所述每个密文索引信息项指示在所述树结构中与用于解密所述每个密文的解密密钥对应的两个节点;第二获取单元,被配置为从所述密文中获取可解密的密文,由所述可解密的密文的密文索引信息项指示的所述两个节点中的一个是与所述标识符对应的所述叶子的祖先节点,而所述两个节点中的另一个是一个不是所述叶子的祖先节点的节点;选择单元,被配置为基于所述树结构中的两个节点的位置以及在所述树结构中所述叶子的位置,从存储在所述秘密密钥存储单元中的所述多个秘密密钥中选择一个秘密密钥,其中从该选择出的秘密密钥可以导出所述解密密钥,所述两个节点由所述可解密的密文的密文索引信息项指示;导出单元,被配置为基于在所述树结构中的所述两个节点中的至少一个的位置以及在所述树结构中所述叶子的位置,从所选择的秘密密钥导出所述解密密钥,其中所述两个节点由所述可解密的密文的密文索引信息项指示;和解密单元,被配置为使用所导出的解密密钥对所述可解密的密文进行解密。
2.如权利要求1所述的装置,其中,所述第二获取单元从所述密文中获取所述可解密的密文,其中所述密文是按照对于两个节点中的一个和与所述标识符对应的所述叶子所共有的祖先节点的数目的降序排列的,所述两个节点由每个所述密文的每个密文索引信息项指示。
3.如权利要求1所述的装置,其中,所述秘密密钥存储单元按照基于在所述树结构中与每个所述秘密密钥对应的所述两个节点的位置的顺序,存储所述秘密密钥,和所述选择单元基于所述树结构中的两个节点的位置以及所述树结构中所述叶子的位置,通过计算存储所述秘密密钥的顺序位置,来选择所述秘密密钥,其中从所述秘密密钥可以导出所述解密密钥,所述两个节点由所述可解密的密文的密文索引信息项指示。
4.如权利要求1所述的装置,其中,所述秘密密钥存储单元存储所述秘密密钥以及与各个秘密密钥对应的秘密密钥索引信息项,每个秘密密钥索引信息项指示在所述树结构中与每个秘密密钥对应的两个节点。
5.一种解密密文的解密装置,包括秘密密钥存储单元,用于存储多个秘密密钥、以及多个与各个秘密密钥对应的秘密密钥索引信息项,其中每个秘密密钥由树结构中的两个节点指定,每个秘密密钥索引信息项指示在所述树结构中与每个秘密密钥对应的两个节点;解密装置ID存储单元,用于存储与所述树结构中的叶子对应的所述解密装置的标识符;第一获取单元,被配置为获取每个密文和每个密文索引信息项,以获得多个密文和与各个密文对应的多个密文索引信息项,其中所述每个密文索引信息项指示在所述树结构中与用于解密所述每个密文的解密密钥对应的两个节点;第二获取单元,被配置为从所述密文中获取可解密的密文,其中所述密文是按照对于两个节点中的一个和与所述标识符对应的所述叶子所共有的祖先节点的数目的降序排列的,所述两个节点由各个密文的每个所述密文索引信息项指示,由所述可解密的密文的密文索引信息项指示的所述两个节点中的一个是与所述标识符对应的所述叶子的祖先节点,而所述两个节点中的另一个是一个不是所述叶子的祖先节点的节点;选择单元,被配置为基于由所述可解密的密文的密文索引信息项指示的在所述树结构中的两个节点的位置、以及由存储在所述秘密密钥存储单元中的每个所述秘密密钥索引信息项指示的在所述树结构中的两个节点的位置,从存储在所述秘密密钥存储单元中的所述多个秘密密钥中选择一个秘密密钥,其中从该选择出的秘密密钥可以导出用于解密所述可解密的密文的所述解密密钥;导出单元,被配置为基于由所述可解密的密文的密文索引信息项指示的在所述树结构中的所述两个节点中的至少一个的位置、以及由所述选择单元所选的秘密密钥的秘密密钥索引信息项指示的在所述树结构中的两个节点中的至少一个的位置,来从所选择的秘密密钥导出所述解密密钥;和解密单元,被配置为使用所导出的解密密钥对所述可解密的密文进行解密。
6.一种解密密文的解密装置,包括秘密密钥存储单元,用于存储多个秘密密钥、以及多个与各个秘密密钥对应的秘密密钥索引信息项,其中每个秘密密钥由树结构中的两个节点指定,每个所述秘密密钥索引信息项指示与每个所述秘密密钥对应的所述两个节点;解密装置ID存储单元,用于存储与所述树结构中的叶子对应的所述解密装置的标识符;第一获取单元,被配置为获取每个密文和每个密文索引信息项,以获得多个密文和与各个密文对应的多个密文索引信息项,其中所述每个密文索引信息项指示在所述树结构中与用于解密所述每个密文的解密密钥对应的两个节点;第二获取单元,被配置为从所述密文中获取可解密的密文,其中所述密文是按照对于两个节点中的一个和与所述标识符对应的所述叶子所共有的祖先节点的数目的降序排列的,所述两个节点由各个密文的每个所述密文索引信息项指示,由所述可解密的密文的密文索引信息项指示的所述两个节点中的一个是与所述标识符对应的所述叶子的祖先节点,而所述两个节点中的另一个是一个不是所述叶子的祖先节点的节点;选择单元,被配置为基于由所述可解密的密文的密文索引信息项指示的在所述树结构中的两个节点的位置、以及由所存储的每个所述秘密密钥索引信息项指示的在所述树结构中的两个节点的位置,从所存储的多个秘密密钥中选择一个秘密密钥,其中从该选择出的秘密密钥可以导出用于解密所述可解密的密文的秘密密钥;导出单元,被配置为基于在所述树结构中的所述两个节点中的至少一个的位置以及在所述树结构中所述叶子的位置,从所选择的秘密密钥导出所述解密密钥,其中所述两个节点由所述可解密的密文的密文索引信息项指示;和解密单元,被配置为使用所导出的解密密钥对所述可解密的密文进行解密。
7.如权利要求5所述的装置,其中,所述秘密密钥存储单元按照基于在所述树结构中与每个所述秘密密钥对应的所述两个节点的位置的顺序,存储秘密密钥。
8.如权利要求6所述的装置,其中,所述秘密密钥存储单元按照基于在所述树结构中与每个所述秘密密钥对应的所述两个节点的位置的顺序,存储秘密密钥。
9.一种解密密文的解密装置,包括秘密密钥存储单元,用于存储多个秘密密钥、以及多个与各个秘密密钥对应的秘密密钥索引信息项,其中每个秘密密钥由树结构中的两个节点指定,每个所述秘密密钥索引信息项指示在所述树结构中与每个所述秘密密钥对应的两个节点;解密装置ID存储单元,用于存储与所述树结构中的叶子对应的所述解密装置的标识符;第一获取单元,被配置为获取每个密文和每个密文索引信息项,以获得多个密文和与各个密文对应的多个密文索引信息项,其中所述每个密文索引信息项指示在所述树结构中与用于解密所述密文的解密密钥对应的两个节点;第二获取单元,被配置为从所述密文中获取可解密的密文,由所述可解密的密文的密文索引信息项指示的所述两个节点中的一个是与所述标识符对应的所述叶子的祖先节点,而所述两个节点中的另一个是一个不是所述叶子的祖先节点的节点;选择单元,被配置为基于所述树结构中的两个节点的位置以及在所述树结构中所述叶子的位置,从所存储的多个秘密密钥中选择一个秘密密钥,其中从该选择出的秘密密钥可以导出用于解密所述可解密的密文的所述解密密钥,所述两个节点由所述可解密的密文的密文索引信息项指示;导出单元,被配置为基于由所述可解密的密文的密文索引信息项指示的在所述树结构中的所述两个节点中的至少一个的位置、以及由所选择的秘密密钥的秘密密钥索引信息项指示的在所述树结构中的两个节点中的至少一个的位置,来从所选择的秘密密钥导出所述解密密钥;和解密单元,被配置为使用所导出的解密密钥对所述可解密的密文进行解密。
10.如权利要求9所述的装置,其中,所述第二获取单元从所述密文中获取所述可解密的密文,其中所述密文是按照对于两个节点中的一个和与所述标识符对应的所述叶子所共有的祖先节点的数目的降序排列的,所述两个节点由每个所述密文的每个所述密文索引信息项指示。
11.如权利要求9所述的装置,其中,所述秘密密钥存储单元按照基于在所述树结构中与每个所述秘密密钥对应的所述两个节点的位置的顺序,存储所述秘密密钥,和所述选择单元基于所述树结构中的两个节点的位置以及所述树结构中所述叶子的位置,通过计算存储所述秘密密钥的顺序位置,来选择所述秘密密钥,其中从所述秘密密钥可以导出所述解密密钥,所述两个节点由所述可解密的密文的密文索引信息项指示。
12.一种应用于解密装置的解密方法,该解密装置包括用于存储多个秘密密钥的秘密密钥存储单元,其中每个秘密密钥由树结构中的两个节点指定,以及包括解密装置ID存储单元,用于存储与所述树结构中的叶子对应的所述解密装置的标识符,所述方法包括获取每个密文和每个密文索引信息项,以获得多个密文和与各个密文对应的多个密文索引信息项,其中所述每个密文索引信息项指示在所述树结构中与用于解密所述每个密文的解密密钥对应的两个节点;从所述密文中获取可解密的密文,由所述可解密的密文的密文索引信息项指示的所述两个节点中的一个是与所述标识符对应的所述叶子的祖先节点,而所述两个节点中的另一个是一个不是所述叶子的祖先节点的节点;基于所述树结构中的两个节点的位置以及在所述树结构中所述叶子的位置,从存储在所述秘密密钥存储单元中的所述多个秘密密钥中选择一个秘密密钥,其中从该选择出的秘密密钥可以导出所述解密密钥,所述两个节点由所述可解密的密文的密文索引信息项指示;基于在所述树结构中的所述两个节点中的至少一个的位置以及在所述树结构中所述叶子的位置,从所选择的秘密密钥导出所述解密密钥,其中所述两个节点由所述可解密的密文的密文索引信息项指示;和使用所导出的解密密钥对所述可解密的密文进行解密。
13.如权利要求12所述的方法,其中,获取所述可解密的密文是,从所述密文中获取所述可解密的密文,其中所述密文是按照对于两个节点中的一个和与所述标识符对应的所述叶子所共有的祖先节点的数目的降序排列的,所述两个节点由每个所述密文的每个所述密文索引信息项指示。
14.如权利要求12所述的方法,其包括,按照基于在所述树结构中与所述各个秘密密钥对应的所述两个节点的位置的顺序,来对秘密密钥进行排序,以将所排序的秘密密钥存储在所述秘密密钥存储单元中,和其中的选择是,基于所述树结构中的两个节点的位置以及所述树结构中所述叶子的位置,通过计算存储所述秘密密钥的顺序位置,来选择所述秘密密钥,其中从所述秘密密钥可以导出所述解密密钥,所述两个节点由所述可解密的密文的密文索引信息项指示。
15.如权利要求12所述的方法,其中,所述秘密密钥存储单元存储所述多个秘密密钥以及与各个秘密密钥对应的多个秘密密钥索引信息项,每个秘密密钥索引信息项指示与每个秘密密钥对应的在所述树结构中的两个节点。
16.一种在计算机可读的介质上存储的计算机程序,该计算机包括第一存储器和第二存储器,其中所述第一存储器存储多个秘密密钥,每个秘密密钥由树结构中的两个节点指定,所述第二存储器存储与所述计算机对应的且与所述树结构中的叶子对应的标识符,所述计算机程序包括第一程序指令模块,用于指示计算机处理器来获取每个密文和每个密文索引信息项,以获得多个密文和与各个密文对应的多个密文索引信息项,其中每个所述密文索引信息项指示在所述树结构中与用于解密所述每个密文的解密密钥对应的两个节点;第二程序指令模块,用于指示计算机处理器从所述密文中获取可解密的密文,由所述可解密的密文的密文索引信息项指示的所述两个节点中的一个是与所述标识符对应的所述叶子的祖先节点,而所述两个节点中的另一个是一个不是所述叶子的祖先节点的节点;第三程序指令模块,用于指示计算机处理器基于所述树结构中的两个节点的位置以及在所述树结构中所述叶子的位置,从存储在所述第一存储器中的所述多个秘密密钥中选择一个秘密密钥,其中从该选择出的秘密密钥可以导出所述解密密钥,所述两个节点由所述可解密的密文的密文索引信息项指示;第四程序指令模块,用于指示计算机处理器基于在所述树结构中的所述两个节点中的至少一个的位置以及在所述树结构中所述叶子的位置,从所选择的秘密密钥导出所述解密密钥,其中所述两个节点由所述可解密的密文的密文索引信息项指示;和第五程序指令模块,用于指示计算机处理器使用所导出的解密密钥对所述可解密的密文进行解密。
全文摘要
一种解密装置,在第一存储器中存储多个秘密密钥,其中每个秘密密钥由树结构中的两个节点指定;在第二存储器中存储与所述树结构中的叶子对应的解密装置的标识符;获取密文和密文索引信息项,以获得多个密文和与各个密文对应的多个密文索引信息项,所述密文索引信息项指示所述树结构中与用于解密密文的解密密钥对应的两个节点;从多个密文中获取可解密的密文,由可解密的密文的密文索引信息项指示的两个节点的一个是叶子的祖先节点,而所述两个节点中的另一个是一个不是叶子的祖先节点的节点;从所存储的多个秘密密钥中选择一个秘密密钥,其中从该选择出的秘密密钥可以导出解密密钥;从所选择的秘密密钥中导出解密密钥;和使用所导出的解密密钥来解密可解密的密文。
文档编号G09C1/00GK1831900SQ20051010360
公开日2006年9月13日 申请日期2005年9月7日 优先权日2005年3月8日
发明者松下达之 申请人:株式会社东芝
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1