CN1831900A - 解密装置和解密方法 - Google Patents

解密装置和解密方法 Download PDF

Info

Publication number
CN1831900A
CN1831900A CNA2005101036035A CN200510103603A CN1831900A CN 1831900 A CN1831900 A CN 1831900A CN A2005101036035 A CNA2005101036035 A CN A2005101036035A CN 200510103603 A CN200510103603 A CN 200510103603A CN 1831900 A CN1831900 A CN 1831900A
Authority
CN
China
Prior art keywords
ciphertext
key
nodes
node
privacy key
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.)
Granted
Application number
CNA2005101036035A
Other languages
English (en)
Other versions
CN100511330C (zh
Inventor
松下达之
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Publication of CN1831900A publication Critical patent/CN1831900A/zh
Application granted granted Critical
Publication of CN100511330C publication Critical patent/CN100511330C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • H04L9/0836Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key using tree structure or hierarchical structure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

一种解密装置,在第一存储器中存储多个秘密密钥,其中每个秘密密钥由树结构中的两个节点指定;在第二存储器中存储与所述树结构中的叶子对应的解密装置的标识符;获取密文和密文索引信息项,以获得多个密文和与各个密文对应的多个密文索引信息项,所述密文索引信息项指示所述树结构中与用于解密密文的解密密钥对应的两个节点;从多个密文中获取可解密的密文,由可解密的密文的密文索引信息项指示的两个节点的一个是叶子的祖先节点,而所述两个节点中的另一个是一个不是叶子的祖先节点的节点;从所存储的多个秘密密钥中选择一个秘密密钥,其中从该选择出的秘密密钥可以导出解密密钥;从所选择的秘密密钥中导出解密密钥;和使用所导出的解密密钥来解密可解密的密文。

Description

解密装置和解密方法
技术领域
本发明涉及对密文进行解密的解密装置。
背景技术
通常,广播密码通信中的各种加密方法是公知的。在这些方法中,一种能够使秘密密钥无效的方法是有用的。使秘密密钥无效就是将具有特定秘密密钥的解密装置(这将被称为无效解密装置)的秘密密钥从***中排除,这是通过对明文(加密目标数据)以一种不能由无效解密装置但可由其他解密装置进行解密的方式进行加密来实现的。
例如,如果由于一些原因给定解密装置的秘密密钥泄漏,那么第三方(其不被发送方允许来执行解密)可能获得该泄漏的秘密密钥,并且解密所述密文。因此,必须使所述解密装置的秘密密钥无效。在此种情况下,使所述秘密密钥无效使得可以消除所有泄漏的秘密密钥(包括副本)而不将其撤销。
作为一种能够使秘密密钥失效的加密方法,使用解密装置的二叉树结构的子集差(subset difference)方法(下文称为SD方法)是公知的(参考文献1:D.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。在此种情况下,如果分配给解密装置ID d的叶子属于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节点。然后,确定由解密装置的ID  d指示的叶子是否是在树结构中预先设置的、以 u节点作为祖先节点而不以 v节点作为祖先节点的叶子(步骤S34)。如果在预先设置的树结构中,由解密装置的ID d指示的叶子是以 u节点作为祖先节点而不以 v节点作为祖先节点的叶子(步骤S34中为是),则流程进行到步骤S35,以确定与索引信息[i]对应的密文[i]可被解密(步骤S35)。然后,该处理结束。如果在预先设置的树结构中,由解密装置的ID d指示的叶子不是以 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同时进行。
如后所述,在密文确定处理中,可以使用秘密密钥的索引信息,而不是解密装置的ID  d。在此种情况下,在步骤S31中,获取指示与存储在秘密密钥存储单元24中的秘密密钥对应的 u节点/ v节点组合的索引信息,而不是解密装置的ID  d。另外,在密文确定处理中,解密装置的ID  d和秘密密钥的索引信息两者都可以被使用。在此种情况下,在步骤S31中,解密装置的ID  d和秘密密钥的索引信息两者都被获取。
下面描述在步骤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”被作为装置ID  d存储。另外,包含在密文的索引信息中的 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。
在树结构中由解密装置的ID  d指示的叶子以 u节点作为祖先节点,这意味这下述表达式成立:
(d^U)>>Mu=0                           ...(x1)
其中^表示每个位的异或,>>表示右移,而=表示等于。例如,在计算如图17所示每个具有长度L的 d和U之间的异或之后,每个结果位被右移Mu位(在本示例中为4位),用“0”来填充空位,以获得“0000”。当“0000”被转换成数值(从二进制转换到十进制)时,得到“0”。因此,能够说由ID  d指示的叶子以 u节点为祖先节点。
另外,叶子不以 v节点为祖先节点意味着下述表达式成立:
(d^V)>>Mv!=0                        ...(x2)
其中!=表示不等于。例如,在计算如图17所示每个具有长度L的 d和V之间的异或之后,每个导出的位被右移Mv位(在本示例中为1位),用“0”来填充空位,以获得“0010”。当“0010”被转换成数值时,未得到“0”。因此,能够说由ID  d指示的叶子不以 v节点为祖先节点。
在图13的步骤S34中,表达式(x1)和(x2)被应用于表示在每个密文[i]的索引信息[i]中包含的 u节点和 v节点的码字,以确定密文[i]是否可由具有ID  d的解密装置进行解密。
在上述情况下,通过使用解密装置的ID  d和密文的索引信息来执行该确定。然而,本发明不限于此,可以通过使用秘密密钥的索引信息和密文的索引信息来执行该确定。令Mu是表示在密文的索引信息[i]中包含的 u节点的编码数据(U)的冗余位长度(填充长度),而Mv是表示在密文的索引信息[i]中包含的 v节点的编码数据(V)的冗余位长度(填充长度),Mu’是表示在存储在秘密密钥存储单元24中的秘密密钥的索引信息[j]中包含的 u节点的编码数据(U’)的冗余位长度(填充长度),而Mv’是表示在存储在秘密密钥存储单元24中的秘密密钥的索引信息[j]中包含的 v节点的编码数据(V’)的冗余位长度(填充长度)。在步骤S34中,通过使用如下给定的两个表达式来确定密文[i]是否能够由具有ID  d的解密装置进行解密:
Mu==Mu’                            ...(x3)
(V&Mv’)==(V’&Mv’)                ...(x4)
其中&表示每位的逻辑与。如图4中所示的情形,对于所有与给予具有ID  d的解密装置的秘密密钥对应的 u节点/ v节点组合,由解密装置的ID  d指示的叶子以 u节点为祖先节点而不以 v节点为祖先节点成立。因此,如果表达式(x3)和(x4)成立,由于对应于密文[i]的 u节点与对应于秘密密钥[j]的 u节点相同,且对应于密文[i]的 v节点是对应于秘密密钥[j]的 v节点的祖先节点(或同一节点),所以由解密装置的ID  d指示的叶子以 u节点为祖先节点而不以 v节点为祖先节点成立。甚至使用这种方法,对于与密文对应的 u节点和 v节点,可以确定在预先提供的树结构中,由解密装置的ID  d指示的叶子是否是以 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中示出的树结构),假定装置ID  d是与叶子“1”对应的“0001”,V是与叶子“3”对应的“0101”,而U是与根节点“15”对应的“1000”。
随后,为装置ID  d和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一致的索引信息将要被搜索出来时,使用每个秘密密钥索引信息。
如上所述,在秘密密钥选择中,根据解密装置的ID  d和表示在密文的索引信息[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按照下述方式进行密文确定处理。获取解密装置的ID  d。在搜索与 d和V所共有的前缀的位长度 t的最大值对应的密文的过程中,通过对每位的 d和V进行比较而获得 t的值,并且为与 t的最大值对应的V进行搜索,其中所述V包含在多个密文中的每个的索引信息中。或者, d和每个V可被转换成数值(从二进制转换到十进制),并且对表示最接近于 d的数值的值的V进行搜索。然后,确定由解密装置ID  d指示的叶子是否是在预先设置的树结构中以 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中存储的解密装置的ID  d(步骤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中存储的解密装置的ID  d(步骤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个密文的索引信息来执行确定。
在上述情况中,为与解密装置的ID  d和表示在密文的索引信息[i]中包含的 v节点的码字V所共有的前缀的位长度 t的最大值对应的V执行搜索。然而,本发明不限于此,可以为表示包含在密文的索引信息中的 v节点的码字V和表示包含在秘密密钥的索引信息中的 v节点的码字V’所共有的前缀的位长度 t的最大值对应的V执行搜索。
对于秘密密钥选择,可以使用下述方法代替上述方法。通过使用由密文确定单元22确定为可被具有ID  d的解密装置解密的密文的索引信息以及在秘密密钥存储单元24中存储的秘密密钥的索引信息,为满足表达式(x3)和(x4)的(秘密密钥的)索引信息进行搜索,并且选择与该索引信息对应的秘密密钥。另外,如上所述,当通过使用秘密密钥的索引信息和密文的索引信息,在图13的步骤S34中确定密文是否可被具有ID  d的解密装置解密时,可认为在步骤S34中,密文确定和秘密密钥选择同时进行。
将参考图19和20描述本实施例中的秘密密钥选择的有效性。如图19所示,如果秘密密钥没有预先按照预定顺序进行存储(现有技术),那么必须在步骤S102中为秘密密钥执行穷尽搜索,根据该秘密密钥可以导出用于解密在步骤S101的密文确定处理之后被确定为可解密的密文的解密密钥。与此相对照,如图20所示,在本实施例中,由于秘密密钥是预先按照预定顺序存储的,所以只需要通过步骤S101中的密文确定处理获得可解密的密文,而不需要如图19中的步骤S102所示,为将被用于导出解密密钥的秘密密钥的选择执行秘密密钥搜索处理,图19所指的是现有技术。在本实施例中,通过使用解密装置的ID  d和表示包含在图13的步骤S35中获得的可解密的密文的索引信息中的 u节点和 v节点的码字来计算存储秘密密钥的顺序位置。
在密文确定中,根据现有技术,必须为可由解密装置解密的密文执行穷尽搜索。与此相对照,根据本实施例,对给定的密文是否可被解密装置解密的确定是从其索引信息包含码字(V)的密文开始的,所述码字(V)表 v节点,该 v节点与所述解密装置的ID  d所共有的前缀的位长度为最大值,即,确定是从其可解密的可能性较高的密文开始的,从而节省了不必要的搜索,并且使得密文确定处理有效率。
下面,将参考图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节点的位置相一致,应该通过使用解密装置的ID  d和表示在密文的索引信息中包含的 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)导出解密密钥Dk:
Dk=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。
下面将描述一种情况,其中,装置ID  d是与图15中的树结构中的叶子“1”对应的码字“0001”,在图13的步骤S35中被确定为可解密的密文的索引信息中包含的 u节点和 v节点分别是图15中的节点“13”和节点“10”。在此种情况下,如图22中所示,d=“0001”,U=“0100”,V=“0110”。如图23所示,V和装置ID  d所共有的前缀的位长度 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中存储的解密装置的ID  d,来导出解密密钥,但不使用秘密密钥选择单元26选择的秘密密钥的索引信息。因此,上述情况可被认为是这样一种情形,即通过使用秘密密钥选择单元26选择的秘密密钥,基于树结构中由被密文确定单元22确定为可解密的密文的索引信息所指示的 v节点的位置、以及树结构中由存储在解密装置ID存储单元25中的解密装置的ID  d指示的叶子的位置,导出用于对被密文确定单元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中解密装置Id  d指示的树结构中的叶子的位置,导出用于对被密文确定单元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中存储的解密装置的ID  d所指示的树结构中的叶子的位置,导出用于对被密文确定单元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)基于由可解密的密文的密文索引信息项所指示的两个节点在树结构中的位置和在树结构中叶子的位置,所述装置从第一存储器中存储的多个秘密密钥中选择秘密密钥,其中从该秘密密钥可以导出解密密钥。
这使得不必要来为秘密密钥执行穷尽搜索,从而使得可以减少秘密密钥选择所需要的处理时间,其中从所述秘密密钥可以导出解密密钥。
另外,根据基于在树结构中与每个秘密密钥对应的两个节点的位置的顺序来在第一存储器中存储秘密密钥,并且基于由可解密的密文的密文索引信息项所指示的两个节点在树结构中的位置和在树结构中叶子的位置,通过计算秘密密钥存储的顺序位置,所述装置选择一个秘密密钥,从该秘密密钥可以导出解密密钥。
这使得可以进一步减少秘密密钥选择所需要的处理时间。
根据上述实施例,能够减少在将密文输入到解密装置后获得明文所要的处理时间。

Claims (16)

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、一种在计算机可读的介质上存储的计算机程序,该计算机包括第一存储器和第二存储器,其中所述第一存储器存储多个秘密密钥,每个秘密密钥由树结构中的两个节点指定,所述第二存储器存储与所述计算机对应的且与所述树结构中的叶子对应的标识符,所述计算机程序包括:
第一程序指令模块,用于指示计算机处理器来获取每个密文和每个密文索引信息项,以获得多个密文和与各个密文对应的多个密文索引信息项,其中每个所述密文索引信息项指示在所述树结构中与用于解密所述每个密文的解密密钥对应的两个节点;
第二程序指令模块,用于指示计算机处理器从所述密文中获取可解密的密文,由所述可解密的密文的密文索引信息项指示的所述两个节点中的一个是与所述标识符对应的所述叶子的祖先节点,而所述两个节点中的另一个是一个不是所述叶子的祖先节点的节点;
第三程序指令模块,用于指示计算机处理器基于所述树结构中的两个节点的位置以及在所述树结构中所述叶子的位置,从存储在所述第一存储器中的所述多个秘密密钥中选择一个秘密密钥,其中从该选择出的秘密密钥可以导出所述解密密钥,所述两个节点由所述可解密的密文的密文索引信息项指示;
第四程序指令模块,用于指示计算机处理器基于在所述树结构中的所述两个节点中的至少一个的位置以及在所述树结构中所述叶子的位置,从所选择的秘密密钥导出所述解密密钥,其中所述两个节点由所述可解密的密文的密文索引信息项指示;和
第五程序指令模块,用于指示计算机处理器使用所导出的解密密钥对所述可解密的密文进行解密。
CNB2005101036035A 2005-03-08 2005-09-07 解密装置和解密方法 Expired - Fee Related CN100511330C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005064219A JP4599194B2 (ja) 2005-03-08 2005-03-08 復号装置、復号方法、及びプログラム
JP064219/2005 2005-03-08

Publications (2)

Publication Number Publication Date
CN1831900A true CN1831900A (zh) 2006-09-13
CN100511330C CN100511330C (zh) 2009-07-08

Family

ID=36970918

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005101036035A Expired - Fee Related CN100511330C (zh) 2005-03-08 2005-09-07 解密装置和解密方法

Country Status (3)

Country Link
US (1) US7724906B2 (zh)
JP (1) JP4599194B2 (zh)
CN (1) CN100511330C (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101192918B (zh) * 2006-11-24 2011-05-11 中兴通讯股份有限公司 一种广播网络中处理加密流的方法及***
CN104092537A (zh) * 2014-07-03 2014-10-08 飞天诚信科技股份有限公司 一种实现密钥信息编解码的装置及其工作方法
WO2017185312A1 (zh) * 2016-04-28 2017-11-02 华为技术有限公司 加密、解密方法及装置
CN108123804A (zh) * 2017-12-29 2018-06-05 广州汇智通信技术有限公司 一种数据解密的执行方法、装置及介质

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100970391B1 (ko) * 2005-04-19 2010-07-15 삼성전자주식회사 브로드 캐스트 암호화 시스템에서의 태그 형성방법
JP4359622B2 (ja) 2007-01-22 2009-11-04 富士通株式会社 電子署名プログラム、および電子署名装置
JP5286748B2 (ja) * 2007-11-09 2013-09-11 ソニー株式会社 情報処理装置、鍵設定方法、及びプログラム
CN101739400B (zh) * 2008-11-11 2014-08-13 日电(中国)有限公司 生成索引的方法和装置以及检索方法和装置
CN101770462A (zh) * 2008-12-30 2010-07-07 日电(中国)有限公司 用于密文索引和检索的装置和方法
CN101950301A (zh) * 2010-09-26 2011-01-19 北京飞天诚信科技有限公司 数据处理的方法及装置
JP5198539B2 (ja) 2010-11-05 2013-05-15 株式会社東芝 記憶装置、アクセス装置およびプログラム
US8738657B2 (en) * 2011-09-27 2014-05-27 Hewlett-Packard Development Company, L.P. Distribution of key values
US11128452B2 (en) * 2017-03-25 2021-09-21 AVAST Software s.r.o. Encrypted data sharing with a hierarchical key structure
CN108063756B (zh) 2017-11-21 2020-07-03 阿里巴巴集团控股有限公司 一种密钥管理方法、装置及设备
WO2019142260A1 (ja) * 2018-01-17 2019-07-25 三菱電機株式会社 秘匿分析装置、秘匿分析システム、秘匿分析方法及び秘匿分析プログラム
CN112106323B (zh) * 2018-07-12 2024-03-22 塞克罗斯股份有限公司 用于存储和读取不信任环境中的存储设备上的数据的方法
CN116975935B (zh) * 2023-09-22 2023-12-26 北京天润基业科技发展股份有限公司 数据比较方法、存储介质及电子设备

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4281252B2 (ja) * 2001-01-16 2009-06-17 ソニー株式会社 情報記録装置、情報再生装置、情報記録方法、情報再生方法、および情報記録媒体、並びにプログラム記憶媒体
US7039803B2 (en) * 2001-01-26 2006-05-02 International Business Machines Corporation Method for broadcast encryption and key revocation of stateless receivers
US7010125B2 (en) * 2001-01-26 2006-03-07 Interntional Business Machines Corporation Method for tracing traitor receivers in a broadcast encryption system
CN1663175A (zh) * 2002-06-17 2005-08-31 皇家飞利浦电子股份有限公司 利用群组证书进行设备之间认证的***
JP2004120008A (ja) * 2002-09-20 2004-04-15 Pioneer Electronic Corp 鍵管理システム
CN1241350C (zh) * 2002-09-23 2006-02-08 国际商业机器公司 有条件接收***中的密钥分配方法及装置
US7450722B2 (en) * 2002-12-13 2008-11-11 General Instrument Corporation Subset difference method for multi-cast rekeying
JP2004248272A (ja) * 2003-01-24 2004-09-02 Kazuo Ota コンテンツ再生のための鍵を管理する方法
JP2004320655A (ja) * 2003-04-18 2004-11-11 Sony Corp データ処理方法、そのプログラム、その装置と受信装置
JP2005005806A (ja) * 2003-06-09 2005-01-06 Sony Corp データ処理方法、そのプログラムおよびその装置
JP2005012280A (ja) * 2003-06-16 2005-01-13 Sony Corp データ処理方法、そのプログラムおよびその装置と処理装置
JP4614744B2 (ja) * 2003-11-28 2011-01-19 パナソニック株式会社 管理装置、端末装置及び著作権保護システム
JP2005191805A (ja) * 2003-12-25 2005-07-14 Sony Corp 暗号文配信方法、情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
JP4635459B2 (ja) * 2004-03-15 2011-02-23 ソニー株式会社 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム
US20050210014A1 (en) * 2004-03-08 2005-09-22 Sony Corporation Information-processing method, decryption method, information-processing apparatus and computer program
JP2005286959A (ja) * 2004-03-31 2005-10-13 Sony Corp 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム
JP4664358B2 (ja) * 2004-05-12 2011-04-06 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 安全なブロードキャストのための鍵管理メッセージ
JP2006086568A (ja) * 2004-09-14 2006-03-30 Sony Corp 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム
JP2006115464A (ja) * 2004-09-14 2006-04-27 Sony Corp 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム
KR101092543B1 (ko) * 2004-11-12 2011-12-14 삼성전자주식회사 브로드캐스트 암호화를 위한 사용자 키 관리 방법
US7949135B2 (en) * 2004-11-16 2011-05-24 Telefonaktiebolaget Lm Ericsson (Publ) Key distribution in systems for selective access to information

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101192918B (zh) * 2006-11-24 2011-05-11 中兴通讯股份有限公司 一种广播网络中处理加密流的方法及***
CN104092537A (zh) * 2014-07-03 2014-10-08 飞天诚信科技股份有限公司 一种实现密钥信息编解码的装置及其工作方法
CN104092537B (zh) * 2014-07-03 2017-07-14 飞天诚信科技股份有限公司 一种实现密钥信息编解码的装置及其工作方法
WO2017185312A1 (zh) * 2016-04-28 2017-11-02 华为技术有限公司 加密、解密方法及装置
CN108028754A (zh) * 2016-04-28 2018-05-11 华为技术有限公司 加密、解密方法及装置
CN108123804A (zh) * 2017-12-29 2018-06-05 广州汇智通信技术有限公司 一种数据解密的执行方法、装置及介质

Also Published As

Publication number Publication date
CN100511330C (zh) 2009-07-08
US7724906B2 (en) 2010-05-25
JP2006253822A (ja) 2006-09-21
US20060204008A1 (en) 2006-09-14
JP4599194B2 (ja) 2010-12-15

Similar Documents

Publication Publication Date Title
CN1831900A (zh) 解密装置和解密方法
CN1134933C (zh) 安全性高的秘密键传送***、发送装置及接收装置
CN1244058C (zh) 信息分配***
CN1113295C (zh) 错误校正编码方法及其设备
CN1227908C (zh) 加密传输***
CN1175614C (zh) 数字视听数据发送装置、接收装置、收发***和媒体
CN1324831C (zh) 加密/解密***和加密/解密方法
CN1303777C (zh) 无状态接收机的广播加密和密钥撤销方法
CN1943238A (zh) 媒体数据编码设备
CN1136692C (zh) 数据变换装置及数据变换方法
CN1528068A (zh) 用于计算机网络中分布式数据处理的集成式保护的方法与***
CN1282324C (zh) 数据加密装置和方法
CN1572099A (zh) 设备鉴别***和设备鉴别方法
CN1349182A (zh) 加密、解密装置及扩展密钥生成装置、方法以及记录媒体
CN101040275A (zh) 内容加密方法、***和利用该加密方法通过网络提供内容的方法
CN1364284A (zh) 数据变换装置和数据变换方法以及记录用以在计算机上执行数据变换方法的程序的计算机可读取存储媒体
CN1910923A (zh) 用于内容保护的方法和条件存取***
CN1943239A (zh) 对渐次加密的可伸缩数据序列进行伸缩变换的方法
CN1909023A (zh) 发送/接收***和方法、发送/接收装置和方法及所用程序
CN1902560A (zh) 内容分发***,许可证分发方法和终端设备
CN1402920A (zh) 使用单向函数的数学约束型密钥的生成
CN1238988C (zh) 密钥信息生成的方法和装置、内容信息加密与解密的方法和装置
CN1663173A (zh) 信息处理方法、信息处理设备、程序和存储媒体
CN1806410A (zh) 加密通信***
CN1262071C (zh) 码分多址移动通信***中的编码/解码设备和方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090708

Termination date: 20140907

EXPY Termination of patent right or utility model