CN101641904A - 密钥提供系统、终端设备和信息处理方法 - Google Patents

密钥提供系统、终端设备和信息处理方法 Download PDF

Info

Publication number
CN101641904A
CN101641904A CN200880009041A CN200880009041A CN101641904A CN 101641904 A CN101641904 A CN 101641904A CN 200880009041 A CN200880009041 A CN 200880009041A CN 200880009041 A CN200880009041 A CN 200880009041A CN 101641904 A CN101641904 A CN 101641904A
Authority
CN
China
Prior art keywords
key
oriented
generation unit
oriented branch
terminal equipment
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
CN200880009041A
Other languages
English (en)
Other versions
CN101641904B (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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Publication of CN101641904A publication Critical patent/CN101641904A/zh
Application granted granted Critical
Publication of CN101641904B publication Critical patent/CN101641904B/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/0822Key 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) using key encryption key
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

提供了被改进了各种类型的广播加密系统的密钥分发方法中的图生成方法的一种终端设备。该终端设备包括:获取单元,用于获取与集合相关的信息,所述集合是从代表多个终端设备的组合的多个集合中选出的,并且代表所述多个终端设备中的一些或全部终端设备;提取单元,用于提取包含在所述信息中的、所述终端设备所属的集合;以及图生成单元,用于生成由多个有向分支形成的预定图中的、用于生成与所提取的集合相对应的密钥的有向分支。

Description

密钥提供系统、终端设备和信息处理方法
技术领域
本发明涉及密钥提供系统、终端设备和信息处理方法。
背景技术
近来,诸如个人计算机(以下,称为PC)、便携式电话和数字家用电器之类的信息设备被一般地广泛使用。与这样的信息设备和连接这样的设备的信息通信相关的技术大大进步,并且诸如使用这样的信息设备的音乐分发和视频分发之类的内容分发服务被广泛开展。例如,使用CATV(社区天线电视)、卫星广播或因特网的付费广播和使用诸如CD(光盘)或DVD(数字通用光盘)之类的物理介质就是内容分发服务的示例。
然而,为了提供这样的内容分发服务,需要仅允许订约方(contractant)基于服务的提供者(以下,称为系统管理者)和观看者之间所订立的契约来获取内容的机制。关于这样的问题,发明了这样的机制,该机制从系统管理者向订约方提供预定密钥,并且分发经过加密的内容C以及头部信息h,头部信息h用于生成利用预定密钥对内容C进行加密所使用的内容密钥mek。
称为广播加密系统的内容分发系统作为实现这样的机制的一种特定手段而为人所知。广播加密系统是这样的系统,其将每个订约方与集合中的元素相对应,将表示全部订约方的订约方集合划分成多个子集,并且分发头部信息h使得只有属于特定子集的订约方能够获取内容密钥mek。即,利用这样的系统的应用,可以实现将系统管理者所指定的特定订约方排除在外的内容C的分发。然而,实际上,鉴于与系统管理者侧的服务器设备(以下,称为中心)处和订约方侧的终端设备处内容密钥mek的生成相关联的计算负荷和服务器设备与终端设备之间的通信负荷等,需要相关领域的更高效率的广播加密系统。
具体而言,当分发内容时,如何减少根据由中心分发的头部h的大小而增加的通信量、根据要由每个终端设备保存的密钥数而增加的存储量,以及每个终端设备生成内容密钥mek的计算量变成一个问题。各个量依赖于划分订约方集合的方法而大大不同。已经提议了在划分订约方集合的方法方面做出努力的各种广播加密系统来实现高效的内容分发。例如,非专利文件1公开了一种降低各个量的手段:由Nuttapong Attrapadung和Hideki等所提出的称为“Subset Incremental Chain Based BroadcastEncryption System”(以下,称为AI05系统)的内容分发系统。
[非专利文献1]Nuttapong Attrapadung and Hideki,”Subset IncrementalChain Based Broadcast Encryption System with Shorter Ciphertext”,The 28thSymposium on Information Theory and Its Applications(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时,基于由对各个系统唯一的图表示的密钥生成算法来执行伪随机序列发生计算。
然而,在各个系统中,仅仅建议了当各个终端生成内容密钥mek时使用事先由各个终端设备保存的各个图的信息,没有描述特定手段。因为当订约方数很大时,要由各个终端设备保存的图的信息量变的很大,这样的信息实际上很难存储在终端设备中。此外,还考虑了各个设备计算与中心类似的图的方法,但是各个终端设备的计算量变得非常大,因此很难实现。
申请人关注在各个终端设备生成密钥时,并不是所有图都是必要的,并且开发了用于计算对于各个终端设备必要的所希望的图的技术。根据这样的技术,各个终端可以不计算所有图的信息,因此减少了密钥生成中的计算负担,从而可以实现各个终端设备生成所希望的图并且导出密钥的方法。
本发明解决了与传统方法和设备相关联的上述和其他问题,并且希望提供能够减少各个终端设备用来计算希望的图以在密钥生成中使用的计算量的新的改进的密钥提供系统、终端设备和信息处理方法。
为了解决以上问题,根据本发明的一个方面,提供了一种密钥提供系统,该系统包括多个终端设备和用于向预定终端设备提供数据的加密或解密中使用的密钥的信息处理设备。所述信息处理设备包括:获取单元,用于获取通过在包括多个坐标点的坐标轴上布置连接所述坐标点的有向分支而形成的预定图,其中所述多个坐标点中的每个坐标点与代表所述多个终端设备的组合的一个集合相对应;选择单元,用于选择代表所述多个终端设备中的一些或全部终端设备的集合;密钥生成单元,用于基于所述预定图生成与所选择的集合相对应的密钥;以及提供单元,用于向所述多个终端设备提供所生成的密钥和与所选择的集合相关的信息。此外所述终端设备包括:获取单元,用于获取所生成的密钥和与所选择的集合相关的信息;图生成单元,用于生成形成所述预定图的有向分支中的、用于生成与所述终端设备所属的所选择的集合相对应的密钥的有向分支;以及密钥生成单元,用于基于由所生成的有向分支形成的图,来生成与所述终端设备所属的所选择的集合相对应的密钥。
为了解决以上问题,根据本发明的另一个方面,提供一种终端设备,包括:获取单元,用于获取与集合相关的信息,所述集合是从代表多个终端设备的组合的多个集合中选出的,并且代表所述多个终端设备中的一些或全部终端设备;提取单元,用于提取包含在所述信息中的、所述终端设备所属的集合;以及图生成单元,用于生成由多个有向分支形成的预定图中的、用于生成与所提取的集合相对应的密钥的有向分支。
此外,该预定图可配置为基于预定的第一图通过利用较短的有向分支来替换形成第一图的多个有向分支中的一些或全部有向分支而生成的第二图。
此外,该预定图可配置为基于预定的第一图通过利用较长的有向分支来替换形成第一图多个有向分支中的一些或全部有向分支而生成的第三图。
此外,该预定图可配置为对于基于预定的第一图通过利用较长的有向分支来替换形成第一图的多个有向分支中的一些或全部有向分支而生成的第三图,通过利用较短的有向分支来替换形成第三图的多个有向分支中的一些或全部有向分支而生成的第四图。
所述终端设备还可以包括密钥生成单元,用于基于由所述图生成单元所生成的有向分支来生成所述密钥。
此外,所述获取单元看看配置来获取利用与所述集合相对应的密钥加密的内容或内容密钥以及所述与集合相关的信息。另外,所述终端设备还可配置来进一步包括解密单元,用于利用由所述密钥生成单元所生成的密钥来对经加密的内容或内容密钥进行解密。
此外,所述获取单元可配置来通过网络接收所述与集合相关的信息。
此外,所述获取单元还可配置来读出记录在预定记录介质上的所述与集合相关的信息。
此外,所述密钥生成单元可配置来根据与所述有向分支的起始端S0相对应的密钥k(S0)的输入,生成与所述有向分支的结束端的坐标点S1相对应的密钥k(S1)。
此外,所述密钥可包括由用于对所述内容或所述内容密钥进行加密或解密的组密钥k以及用于生成所述组密钥k的中间密钥t。另外,所述密钥生成单元可配置来根据与所述有向分支的起始端S0相对应的中间密钥t(S0)的输入,生成与所述有向分支的起始端S0相对应的组密钥k(S0),以及与所述有向分支的结束端S1相对应的中间密钥t(S1)。
为了解决上述问题,根据本发明的另一个方面,提供了一种终端设备中的信息处理方法。所述信息处理方法包括以下步骤:获取与集合相关的信息,所述集合是从代表多个终端设备的组合的多个集合中选出的,并且代表所述多个终端设备中的一些或全部终端设备;提取包含在所述信息中的、所述终端设备所属的集合;以及生成由多个有向分支形成的预定图中的、用于生成与所提取的集合相对应的密钥的有向分支。
根据这样的配置,在各种类型的广播加密系统中,作为信息处理设备的示例,每个终端设备在导出与由密钥分发服务器选择的各个集合相对应的密钥时,可以计算所希望的图并且生成密钥。
因此,根据本发明,可以减少各个终端设备用来计算用于密钥生成的所希望的图的计算量。
附图说明
图1是示出根据本发明第一到第四实施例的密钥提供系统的配置的说明图;
图2是示出根据本实施例的密钥分发服务器和终端设备的硬件配置的说明图;
图3是示出根据本发明第一实施例的密钥分发服务器的功能配置的说明图;
图4是示出根据该实施例的逻辑二叉树的说明图;
图5是示出根据该实施例的图H的说明图;
图6是示出根据该实施例的密钥分发处理的流程的说明图;
图7是示出根据该实施例的密钥分发处理的流程的说明图;
图8是示出根据该实施例的密钥分发处理的流程的说明图;
图9是示出根据该实施例的图生成方法的流程的说明图;
图10是示出根据该实施例的终端设备的功能配置的说明图;
图11是示出根据该实施例的图G的说明图;
图12是示出根据该实施例的图G的说明图;
图13是示出根据该实施例的图生成方法的流程的说明图;
图14是示出根据该实施例的图生成方法的流程的说明图;
图15是示出根据该实施例的图生成方法的流程的说明图;
图16是示出根据该实施例的密钥生成方法的流程的说明图;
图17是示出根据该实施例的密钥分发系统的应用示例的说明图;
图18是示出根据该实施例的密钥分发系统的应用示例的说明图;
图19是示出根据本发明第二实施例的密钥分发服务器的配置的说明图;
图20是示出根据该实施例的图I的说明图;
图21是示出根据该实施例的图I的说明图;
图22是示出根据该实施例图生成方法的流程的说明图;
图23是示出根据该实施例的终端设备的功能配置的说明图;
图24是示出根据该实施例的图G的说明图;
图25是示出根据该实施例的图G的说明图;
图26是示出根据该实施例的图生成方法的流程的说明图;
图27是示出根据该实施例的图生成方法的流程的说明图;
图28是示出根据该实施例的图生成方法的流程的说明图;
图29是示出根据本发明第三实施例的密钥分发服务器的配置的说明图;
图30是示出根据该实施例的图生成方法的流程的说明图;
图31是示出根据该实施例的图生成方法的流程的说明图;
图32是示出根据该实施例的图生成方法的流程的说明图;
图33是示出根据该实施例的图生成方法的流程的说明图;
图34是示出根据该实施例的图生成方法的流程的说明图;
图35是示出根据该实施例的终端设备的功能配置的说明图;
图36是示出根据该实施例的图G的说明图;
图37是示出根据该实施例的图G的说明图;
图38是示出根据该实施例的图生成方法的流程的说明图;
图39是示出根据该实施例的图生成方法的流程的说明图;
图40是示出根据该实施例的图生成方法的流程的说明图;
图41是示出根据该实施例的图生成方法的流程的说明图;
图42是示出根据本发明第四实施例的密钥分发服务器的配置的说明图;
图43是示出根据该实施例的临时图I’的说明图;
图44是示出根据该实施例的临时图I’的说明图;
图45是示出根据该实施例的图生成方法的流程图的说明图;
图46是示出根据该实施例的图生成方法的流程图的说明图;
图47是示出根据该实施例的图生成方法的流程图的说明图;
图48是示出根据该实施例的图生成方法的流程图的说明图;
图49是示出根据该实施例的图I的说明图;
图50是示出根据该实施例的终端设备的功能配置的说明图;
图51是示出根据该实施例的图G的说明图;
图52是示出根据该实施例的图G的说明图;
图53是示出根据该实施例的图生成方法的流程的说明图;
图54是示出根据该实施例的图生成方法的流程的说明图;
图55是示出根据该实施例的图生成方法的流程的说明图;
图56是示出根据该实施例的图生成方法的流程的说明图。
标号说明
100密钥提供系统
102密钥分发服务器
104树结构设置单元
106坐标轴设置单元
108临时图生成单元
110图生成单元
112初始中间密钥设置单元
114密钥生成单元
116加密单元
118通信单元
120子集确定单元
122终端设备
124通信单元
126判断单元
127图生成单元
128密钥生成单元
130解密单元
202密钥分发服务器
206坐标轴设置单元
210图生成单元
222终端设备
227图生成单元
302密钥分发服务器
308临时图生成单元
310图生成单元
322终端设备
327图生成单元
402密钥分发服务器
408临时图生成单元
410图生成单元
422终端设备
427图生成单元
702控制器
704计算单元
706输入/输出接口
708安全存储单元
710主存储单元
712网络接口
716介质接口
718信息介质
具体实施方式
以下,将参考附图详细描述本发明的优选实施例。注意,在说明书和附图中,用相同的标号标注具有相同功能和结构的构成元件,并且省略对这些构成元件的重复说明。
[概要]
在描述本发明实施例之前,将简要描述可以应用本发明的技术、并且问题得到了解决的AI05系统、A06(A)系统、A06(B)系统和A06(A+B)系统。可以认识到,本发明的技术可以应用到的密钥分发系统不限于这样的系统,并且对本领域技术人员显而易见的是,参考这样的示例,本发明的技术可以容易地应用于其它密钥分发系统。
(AI05系统的概要)
在AI05系统中,与相关领域的广播加密系统类似,密钥提供系统中所包括的各个终端设备对应于集合中的元素,并且考虑全部终端设备的集合。使用通过划分集合所获得的多个子集来执行密钥分发。即,密钥分发服务器首先形成二叉树(BT)并且将每个终端设备对应于一个叶节点。然后,该密钥分发服务器根据预定规则生成多个以子集作为元素的“子集集合”,并且将各个“子集集合”对应于BT的根节点和各个中间节点。密钥分发服务器基于预定规则(以下,有时称为“跳”(jump))来关联“子集集合”中所包含的多个子集。子集之间的关系由图或有向分支来表示。
图形成在其中“子集集合”中所包含的各个子集对应于各个坐标点的坐标轴上,并且图由连接多个坐标点的有向分支(表示上述“跳”)配置。对于与BT中所包含的根节点和各个中间节点相对应的每一个“子集集合”,密钥分发服务器形成表示其中所包含的多个子集的关系的图。
密钥分发服务器还选择包括作为分发目的地的终端设备的子集,并且指定包含相关子集的图。密钥分发服务器基于所指定的图、通过重复伪随机序列发生器(PRSG)的计算来生成密钥。与相关领域的广播密钥系统相比较,AI05系统的特征在于将表示所有终端设备的集合划分成子集,并且基于图生成密钥以降低通信量、要由各个终端设备保存的密钥数和用于密钥生成的计算量。
(A06(A)、A06(B)和A06(A+B)系统的概要)
A06(A)系统是AI05系统的改进系统,其中,通过应用缩短构成图的有向分支的长度的处理,在减少要由各个终端设备保存的密钥数方面进行了改进。A06(B)系统是AI05系统的改进系统,其中,通过形成使得有向分支的长度变长的图,在减少用于密钥生成的计算量方面进行了改进。此外,A06(A+B)系统是AI05系统的改进系统,其中,通过形成与A06(B)系统相似的长有向分支的图并且之后用于与A06(A)系统类似的短有向分支来替换预定有向分支,在减少要由各个终端设备保存的密钥数和用于密钥生成的计算量方面进行的改进。
(问题的解决)
尽管AI05系统、A06(A)系统、A06(B)系统和A06(A+B)系统是在减少计算量、要由终端设备保存的密钥数和用于密钥生成的计算量的效果方面非常出色,但是并没有清楚地描述如何针对各个终端设备获取图的信息来生成密钥。本领域技术人员可以容易地假定:各个终端设备事先保存图的所有信息,或各个终端设备基于与密钥服务器相同的算法生成图。
然而,假定密钥提供系统被实际使用,则由各个终端设备保存的图的信息量和用于生成该图的计算量非常大,并且因此以一般终端设备有限的资源来保存或生成图很困难。更具体而言,考虑A06(B)系统的情况,密钥提供系统中所包括的终端设备数n通常约为n=232,并且因此,要由各个终端设备保存的信息量约为32G字节,这很难被保存到一般的终端设备的存储单元中,即使一个有向分支的信息可以用约8个字节来表示也是如此。容易认识到,很难使用网络或记录介质来分发图的大量信息。
也容易认识到,当生成图时,对于终端设备数n(n=232),要计算(n-1)个有向分支,则因此每个终端设备用来生成图的计算负荷非常大。因此,至今,密钥分发系统具有与每个终端设备获取用于密钥生成的图信息的手段相关的非常严重的问题,而本发明的一个目的在于提供解决这些问题的手段。具体地,本发明的一个目的在于提供一种手段,能够减少每个终端设备用来生成图的计算负荷并且使得每个终端设备能够生成所希望的图。
以上已经简要描述了可以应用本发明的技术的密钥分发系统并且密钥分发系统的问题得到了解决,并且已经明确地描述了本发明的目的之一。以下,将公开用于将本发明的技术应用于上述各个密钥分发系统的手段并且将描述上述各个密钥分发系统的细节。
<第一实施例>
以下,将详细描述根据本发明第一实施例的密钥提供系统100和与密钥分发相关的特定系统的配置。本实施例的特征在于,终端设备包括用于高效生成AI05系统中的密钥提供系统100中的图的手段。
[密钥提供系统100的配置]
将参考图1描述根据本发明第一实施例的密钥提供系统100的配置。图1是示出根据本发明的密钥提供系统100的配置的说明图。
参考图1,密钥提供系统100主要包括密钥分发服务器102、终端设备122和网络10。密钥分发服务器102是信息处理设备的示例。
(网络10)
首先,将描述网络10。网络10是用于以双向通信或单向通信连接密钥分发服务器102和终端设备122的通信线路网络。网络10包括诸如因特网、电话线路网络、卫星通信网络和广播通信路径之类的公用线路网络和诸如WAN(广域网)、LAN(局域网)、IP-VPN(网际协议-虚拟专用网)和无线LAN之类的专用线路网络,并且可以是有线的或无线的。
(密钥分发服务器102)
以下,将描述密钥分发服务器102。以下将描述密钥分发服务器102的详细功能配置。密钥分发服务器102可以加密并且分发各种电子数据。例如,密钥分发服务器102可以加密并且分发内容。在这种情况中,密钥分发服务器102使用用于对内容进行加密和解密的内容密钥来对内容进行加密。密钥分发服务器102也可以将内容密钥进行加密并且将它分发给预定的终端设备122。在这种情况中,密钥分发服务器102可以使用基于预定算法生成的密钥来对内容密钥进行加密,使得只有预定的终端设备122能够解密内容密钥。根据这样的配置,即使内容密钥被分发给了未被允许再现内容的终端设备122也可以保持高安全性,因为只有预定的终端设备122能够执行解密。内容密钥可以包括加密内容密钥和解密内容密钥,或解密内容密钥可以被加密并被分发。
为了实现这样的配置,密钥分发服务器102生成用来对内容密钥进行加密或解密的组密钥(set key)。在这种情况中,密钥分发服务器102将多个终端设备122划分成多个群组,并且生成分别对应于各个群组的多个组密钥。密钥分发服务器102利用形成预定集合的多个子集来表示群组,并且使用表示子集之间的关系的图来生成组密钥。密钥分发服务器102可以从另一个设备获取图或基于预定算法生成图。
密钥分发服务器102使用预定组密钥对内容密钥进行加密。在这种情况中,密钥分发服务器102选择包含被允许再现内容的终端设备122的至少一个子集,并且使用对应于各个所选子集的各个组密钥来对内容密钥进行加密。进行该选择使得所有被允许的终端设备122属于所有所选子集的集合的并集。
密钥分发服务器102将经过加密的内容密钥和所选子集的信息以及经过加密的内容一起分发给终端设备122中的一些或全部。假有向终端设备122提供至少一个密钥(组密钥或中间密钥),该至少一个密钥用于生成与该终端所属的所有子集相对应的组密钥。密钥分发服务器102也可以提供用于生成各个终端设备122所希望的图中的一些或所有图的预定算法。
根据这样的配置,密钥分发服务器102可以使得只有预定的终端设备122能够再现所分发的内容密钥,并且可以通过简单地改变加密中所使用的组密钥的组合,容易地对改变被许可再现的终端设备122的组合的改变作出响应。
密钥分发服务器102在生成组密钥时使用伪随机序列发生器(PRSG)。PRSG是能够通过输入预定种子值而输出较长周期的伪随机数序列的设备或程序。伪随机数生成逻辑是使用线性同余(linearcongruential)方法和马特赛特旋转(Mersenne Twister)方法来实现的。应当认识到,可以使用其它逻辑来生成伪随机数或可以使用预定的特殊伪随机序列。
密钥分发服务器102由诸如具有服务器功能的个人计算机(PC)的信息处理设备构成。因此,密钥分发服务器102可以经由网络10向外部设备发送各种类型的信息。例如,密钥分发服务器102可以经由网络10向多个终端设备122分发内容和内容密钥。
密钥分发服务器102可以具有提供诸如视频分发服务、电子音乐分发服务等的内容分发服务的功能。即,密钥分发服务器102可以分发诸如电影、电视节目、视频节目和图像之类的运动图像或静止图像的视频内容,音乐的音频内容、演讲、无线电节目、游戏内容、文档内容或诸如软件之类的内容。密钥分发服务器102可以被配置为分发经加密的内容密钥。例如,可以从外部设备分发经过加密的内容,并且密钥分发服务器102可以分发经过加密的内容密钥。
(终端设备122)
以下将简要描述终端设备122。以下将描述终端设备122的详细功能配置。终端设备122可以经由网络10从密钥分发服务器102获取各种信息。例如,终端设备122可以获取经过加密的内容和内容密钥。同时,终端设备122可以获取与由密钥分发服务器102选择的子集相关的信息。
终端设备122保存用于生成与其所属于的子集对应的组密钥的密钥,以及用来生成用于生成该组密钥的图的预定算法的信息。因此,终端设备122可以基于该预定算法来计算用于生成所希望的组密钥的图。终端设备122也可以使用其事先保存的密钥以及所计算出的图来生成所希望的组密钥。
终端设备122也可以使用所生成的组密钥来对内容密钥进行解密。此外,终端设备122可以使用解密后的内容密钥对内容进行解密。终端设备122在生成组密钥时使用伪随机序列发生器(PRSG)。该PRSG具有与密钥分发服务器102在生成组密钥中所使用的PRSG基本相同的配置。
根据这样的配置,终端设备122可以生成用来导出与其所属于的子集对应的组密钥的所希望的图。因此,终端设备122不保存所有图的信息,并且可以在现实计算负荷下生成图。结果,终端设备122可以基于其所生成的图来生成所希望的组密钥。
终端设备122包括可以通过网络10与外部设备进行信息通信的信息处理设备。终端设备122例如是由信息家电构成,例如PDA(个人数字助理)、家庭游戏机、DVD/HDD录像机和电视接收机、以及电视广播调谐器和解码器。终端设备122也可以是能够由订约方携带的便携式设备,例如,便携式游戏机、便携式电话、便携式视频/音频播放器、PDA和PHS。
以上已经参考图1简要描述了根据本实施例的密钥提供系统100的配置。以下将参考图2具体描述能够实现上述功能的密钥分发服务器102和终端设备122的硬件配置。
[密钥分发服务器102和终端设备122的硬件配置]
将参考图2描述根据本实施例的密钥分发服务器102和终端设备122的硬件配置。图2是示出能够实现密钥分发服务器102或终端设备122的功能的硬件配置的说明图。
如图2中所示,密钥分发服务器102和终端设备122包括控制器702、计算单元704、输入/输出接口706、安全存储单元708、主存储单元710、网络接口712和介质接口716。
(控制器702)
控制器702通过总线连接到其它组件,并且基于主存储单元710中所存储的程序和数据来实现控制各个单元的功能。控制器702可以由诸如中央处理单元(CPU)之类的计算处理设备构成。
(计算单元704)
密钥分发服务器102的计算单元704可以实现内容的加密/解密、内容密钥的加密/解密、图的生成、组密钥的生成以及用来生成组密钥的中间密钥的生成。计算单元704可以实现伪随机序列发生器(PRSG)的功能。
计算单元704由诸如中央处理单元(CPU)之类的计算处理设备配置成,并且能够基于主存储单元710中所存储的程序和数据来实现上述各个功能。例如,计算单元704可以基于主存储单元710中所记录的程序来生成图。因此,用于生成图的预定算法可以通过主存储单元710或安全存储单元708中所记录的程序来实现。计算单元704可以将输出结果记录在主存储单元710或安全存储单元708中。计算单元704可以与控制器702集成。
(输入/输出接口706)
输入/输出接口706主要连接到用户输入数据的输入设备和输出计算结果或内容的内容的输出设备。输入设备可以是键盘、鼠标、轨迹球、触摸笔、小键盘、触摸板等等。输入设备可被有线或者无线地连接到输入/输出接口706。输入设备可以是有线或无线连接的便携式电子设备,例如便携式电话和PDA。输出设备可以是诸如显示器之类的显示设备、诸如扬声器之类的音频输出设备等。输出设备可以有线或无线地连接到输入/输出接口706。
输入/输出接口706通过总线连接到其它组件,并且可以向主存储单元710等发送通过输入/输出接口706输入的数据。输入/输出接口706向输出设备输出主存储单元710中所存储的数据、通过网络接口712输入的数据或从计算单元704输出的计算结果。
(安全存储单元708)
安全存储单元708是用于安全地存储需要保密的数据的存储设备,所述数据例如主要是内容密钥、组密钥和中间密钥。安全存储单元708可以由诸如硬盘之类的磁存储设备、诸如光盘之类的光存储设备、磁光存储设备、半导体存储设备等构成。安全存储单元708可以具有防篡改特性。
(主存储单元710)
主存储单元710可以存储用于对内容或内容密钥进行加密的加密程序、用于对经过加密的内容或内容密钥进行解密的解密程序、用于生成组密钥或中间密钥的密钥生成程序,等等。主存储单元710可以临时或永久地存储从计算单元704输出的计算结果,或记录从输入/输出接口706、网络接口712或介质接口716输入的数据。主存储单元710可以由诸如硬盘之类的磁存储设备、诸如光盘之类的光存储设备、磁光存储设备、半导体存储设备等等构成。
(网络接口712)
网络接口712通过网络10连接到其它通信设备,并且是用于发送和接收经过加密的内容或内容密钥、组密钥、中间密钥、加密中所使用的参数以及与被允许再现内容的终端设备122的集合相关的数据的通信单元。网络接口712通过总线连接到其它组件,并且向其它组件发送从网络10上的外部设备接收到的数据或向网络10上的外部设备发送其它组件的数据。
(介质接口716)
介质接口716是用于可移除地附接信息介质718以读或写数据的接口,并且通过总线连接到其它组件。介质接口716具有如下功能:从所附接的信息介质718中读出数据并且将所述数据发送给其它组件,或将从其它组件提供的数据写入信息介质718。信息介质718可以是诸如光盘、磁盘、半导体存储器之类的便携式存储介质(可移除存储介质),或者可以是在没有网络10的情况下以相对近的距离有线或无线连接的信息终端的存储介质。
以上已经描述了能够实现密钥分发服务器102和终端设备122的功能的硬件配置的一个示例。以上各个组件可以使用通用构件来构成,或者通过专用于各个组件的功能的专用硬件来构成。因此,可以根据实现本实施例时的技术水平来恰当地改变使用的硬件配置。根据使用模式,可以省略诸如介质接口716或输入/输出接口706之类的组件。
[密钥分发服务器102的配置]
现在,将参考图3详细描述根据本实施例的密钥分发服务器102的功能配置。图3是示出密钥分发服务器102的功能配置的说明图。
如图3中所示,密钥分发服务器102主要包括以下单元:树结构设置单元104、坐标轴设置单元106、图生成单元110、初始中间密钥设置单元112、密钥生成单元114、加密单元116、通信单元118和子集确定单元120。树结构设置单元104、坐标轴设置单元106和图生成单元110统称为“密钥生成逻辑建立块”。初始中间密钥设置单元112和密钥生成单元114统称为“密钥生成块”。
[密钥生成逻辑建立块]
首先,将描述密钥生成逻辑建立块的功能配置。
(树结构设置单元104)
首先,将参考图4描述树结构设置单元104的功能配置。树结构设置单元104具有生成图4中所示的逻辑二叉树BT的功能。以下,将详细描述由树结构设置单元104建立逻辑二叉树BT的方法。在以下描述中,订约方u的终端设备122有时简单表示为订约方u。使用以下定义的算术表达。
(1)表示所有订约方=(1,...,n)的集合N定义为N={1,...,n}(n是2的冥)
(2)对于自然数i和j定义以下表达式
·[i,j]={i,i+1,…,j}(其中,i<j)
·[j,i]={i,i-1,...,j}(w其中,i<j)
·(i→i)=(i←i)={{i}}
·(i→j)={{i},{i,i+1},...,{i,i+1,...,j}}
={[i,i],[i,i+1],...,[i,j]}(where,i<j)
·(i←j)={{j},{j,j-1},...,{j,j-1,...,i}}
={[j,j],[j,j-1],...,[j,i]}(where,i<j)
位于逻辑二叉树BT的末端处的节点称为叶节点,位于顶点的节点称为根节点,并且位于根节点与叶节点之间的各个节点是中间节点。各个叶节点对应于各个订约方1,......,n。在图4的示例中,示出BT的叶节点数n,n=64的情况。
(二叉树的形成)
首先,树结构设置单元104创建叶节点数为n(n=64)的逻辑二叉树BT。树结构设置单元104从左端向右端将数字1,......,n对应到各个叶节点。然后,树结构设置单元104将编号为1,......,n的叶节点对应到订约方1,......,n。
然后,树结构设置单元104定义确定对应于中间节点v的子集的指标Iv和rv。这里,v是按照预定顺序给到逻辑二叉树BT中所包含的各个中间节点的编号,并且是表示中间节点的位置的指标。然后,树结构设置单元104将从中间节点v延伸的分支的末端处的叶节点中最左边的叶节点的编号设置为Iv,并且将最右边的叶节点的编号设置为rv
然后,树结构设置单元104将构成逻辑二叉树BT的各个中间节点分类成两个集合(BTL,BTR)。树结构设置单元104将逻辑二叉树BT上存在的中间节点中位于父节点左侧的中间节点的集合设置为BTL并且将位于父节点右侧的中间节点的集合设置为BTR。父节点是指位于通过分支连接两个节点的上层处的节点。
(关于根节点)
树结构设置单元104将集合(1→n)和集合(2←n)对应于逻辑二叉树BT的根节点。通过组合集合(1→n)和集合(2←n)中所包含的多个子集,可以配置表示根节点的下层处存在的叶节点中的一些或全部叶节点的集合。例如,可以使用集合(1→n)中所包含的子集{1,...,u-1}和集合(2←n)中所包含的子集{n,...,u+1}的集合的并集来表示排除叶节点u(1≤u≤n)的全部叶节点。
(特定示例)
图4中所示的逻辑二叉树BT(n=64)的根节点利用集合(1→64)和集合(2←64)来对应。集合(1→64)包括子集[1,1],......,[1,64]作为元素。例如,包含所有叶节点1,......,64的叶节点群组表示为子集[1,64]={1,...,64}。不包括叶节点16和叶节点17的叶节点群组由子集[1,15]和子集[64,18]表示。这里,子集[1,15]被包含在集合(1→64)中,并且子集[64,18]被包含在集合(2←64)中。
(有关中间节点)
然后,树结构设置单元104将子集对应到构成逻辑二叉树BT的各个中间节点。树结构设置单元104将集合(lv+1←rv)对应到属于集合BTL的中间节点v。树结构设置单元104还将集合(lv→rv-1)对应到属于集合BTR的中间节点。
(特定示例)
例如,参考图4,集合(2←4)对应于与lv=1、rv=4相对应的中间节点v。由于lv=1、rv=4,所以叶节点1、...、4位于中间节点v的末端。例如,叶节点1、2、4的组合由位于中间节点v的高层处的根节点的集合(1→64)中所包含的子集[1,2]={1,2}和中间节点v的子集(2←4)中所包含的子集[4,4]={4}来表示。
如从特定示例中可以推定的,叶节点的任意群组都可以通过组合与逻辑二叉树BT的根节点和各个中间节点对应的集合中所包含的子集来表示。即,可以通过子集的组合来表示包括多个订约方中的预定订约方的群组。以下,表示与逻辑二叉树BT的各个节点对应的全体集合的集合之和称为集合系统SS并且如等式(1)所定义。
[等式1]
SS = { &cup; v &Element; BT L ( l v + 1 &LeftArrow; r v ) } &cup; { &cup; v &Element; BT R ( l v &RightArrow; r v - 1 ) } &cup; ( 1 &RightArrow; n ) &cup; ( 2 &LeftArrow; n ) . . . ( 1 )
以上已经描述了根据本实施例的树结构设置单元104的功能配置。如上所述,树结构设置单元104提供了用于将预定子集对应到逻辑二叉树BT的各个节点并且通过子集的组合来表示订约方的群组的手段。现在,将描述定义各个子集之间的关系的图的生成手段。
(坐标轴设置单元106)
将参考图5描述坐标轴设置单元106的功能配置。坐标轴设置单元106具有设置多个水平坐标轴以形成图的功能。
坐标轴设置单元106将集合(1→n-1)中所包含的多个子集对应到一个水平坐标轴上的各个坐标点,使得包含关系向右变大,从而形成集合(1→n-1)的水平坐标轴。坐标轴设置单元106还将与中间节点v对应的集合(lv→rv-1)中所包含的多个子集对应到一个水平坐标轴上的坐标点,使得对于逻辑二叉树BT的v∈BTR中的中间节点v包含关系向右变大,从而形成集合(lv→rv-1)的水平坐标轴。坐标轴设置单元106对于v∈BTR中的所有v形成集合(lv→rv-1)的水平坐标轴。
然后,坐标轴设置单元106将集合(2←n)中所包含的多个子集对应到一个水平坐标轴上的各个坐标点,使得包含关系向左变大,从而形成集合(2←n)的水平坐标轴。坐标轴设置单元106还将集合(lv+1←rv)中所包含的多个子集对应到一个水平坐标轴上的各个坐标点,使得包含关系向左变大,从而形成集合(lv+1←rv)的水平坐标轴。坐标轴设置单元106对于v∈BTR中的所有v形成集合(lv+1←rv)的水平坐标轴。
具体而言,例如,集合[5,5]、[5,6]、[5,7]按顺序从左对应到集合(5→7)={[5,5],[5,6],[5,7]}的水平坐标轴的各个坐标点。
坐标轴设置单元106在位于与集合(1→n-1)对应的水平坐标轴的右端处的坐标点的右侧和位于该水平坐标轴的左端处的坐标点的左侧各布置一个临时坐标点。坐标轴设置单元106在位于集合(lv→rv-1)的水平轴的右端处的坐标点的右侧和位于集合(lv→rv-1)的水平轴的左端处的坐标点的左侧各布置一个临时坐标点。此外,坐标轴设置单元106在位于集合(2←n)的水平坐标轴的右端处的坐标点的右侧和位于集合(2←n)的水平坐标轴的左端处的坐标点的左侧各布置一个临时坐标点。坐标轴设置单元106还在位于集合(lv+1←rv)的水平坐标轴的右端处的坐标点的右侧和位于集合(lv+1←rv)的水平坐标轴的左端处的坐标点的左侧各布置一个临时坐标点。
以上已经描述了坐标轴设置单元106的功能配置。坐标轴设置单元106可以生成用于形成AI05系统的图的多个水平坐标轴。现在,以下将描述在由坐标轴设置单元106生成的水平坐标轴上生成图的手段。
(图生成单元110)
现在,将参考图5来描述图生成单元110的功能配置。图生成单元110具有在各个水平坐标轴上生成图H的功能。
首先,图生成单元110设置参数k(k是整数)。图生成单元110确定满足n(x-1)/k<rv-lv+1≤nx/k的整数x。这里,可以假定k|log(n)(以下,log的底为2)。参数k是要由终端设备122保存的中间密钥的数目和与用于生成组密钥的计算量相关的数量。
然后,图生成单元110在集合(1→n-1)和集合(lv→rv-1)的水平坐标轴上生成长度为ni/k(i=0到x-1)的右向有向分支。具体而言,在将计数器i从0移到x-1时,从与最小数目的元素的子集对应的最左边的坐标点的左侧的临时坐标点开始,连续形成长度为ni/k的右向有向分支,直到该有向分支到达在最右边的坐标点的右侧的临时坐标点或者下一个有向分支超过这样的临时坐标点为止。此外,图生成单元110在集合(2←n)的水平坐标轴和集合(lv+1←rv)的水平坐标轴上形成长度为ni/k(i=0到x-1)的左向有向分支。图生成单元110在对应于所有v的水平坐标轴上形成有向分支。这是通过反转左右的方法来执行的。
然后,图生成单元110擦除将布置在各个水平坐标轴上的临时坐标点作为起始点或结束点的有向分支。此外,如果多个有向分支到达一个坐标点,则图生成单元110从这多个有向分支中仅留下最长的有向分支、擦除所有其他有向分支。通过以上处理,生成了:集合(1→n-1)的图H(1→n-1),集合(2←n)的图H(2←n),集合(lv→rv-1)的图H(lv→rv-1)和集合(lv+1←rv)的图H(lv+1←rv)。
图生成单元110向图H(1→n-1)添加将布置在集合(1→n-1)的水平坐标轴的右侧处的临时坐标点作为结束点、长度为1的右向有向分支。即,图生成单元110执行等式(2)的处理并且生成集合(1→n)的图H(1→n)。这里,E(H(...))表示该有向分支。
[等式2]
E(H(1→n))=E(H(1→n-1))∪{([1,n-1],[1,n])}...(2)
以上已经描述了图生成单元110的功能配置。图生成单元110可以生成根据以上配置的AI05系统的图H。
(图的特定示例)
将通过示例、使用图5的图H(33→63)来具体描述图的配置。图H(33→63)由多个拱形曲线和连接到各个拱形曲线的一端并且水平延伸的线构成。拱形曲线和水平延伸线是有向分支。线表示长度为1的有向分支,曲线表示长度为2或更大的有向分支,但是是线还是曲线是标注问题,并且与本质无关。
在图H(33→63)的中心的上侧显示的箭头指示有向分支的方向。在图5中的最底下处画出的黑色圆点从左依次表示图H(2←2),......,H(63→63)。
参考图5,画出了与逻辑二叉树BT的根节点和中间节点相对应的多个图H以及与各个图H相交的多条垂直线z(z=1到64)。垂直线z和图H的交叉点表示水平坐标轴的坐标点。图H(lv+1←rv)与垂直线z的交叉点表示与子集[rv,z]对应的坐标点,并且图H(lv→rv-1)与垂直线z的交叉点表示与子集[lv,z]对应的坐标点。例如,图H(1→64)与垂直线10的交叉点是表示子集[1,10]的坐标点。以下,将描述使用这样的图H来生成组密钥的密钥生成块的配置。
[密钥生成块]
以下,将详细描述密钥生成块的功能配置。
(密钥生成单元114)
首先,将描述密钥生成单元114的功能配置。密钥生成单元114具有基于图H生成中间密钥或组密钥的功能。以下,将详细描述由密钥生成单元114进行的组密钥的生成方法。在以下描述中,与子集S对应的坐标点有时简单表示为坐标点S。为了便于说明,使用以下表述。
与子集Si对应的中间密钥:t(Si)
与子集Si对应的组密钥:k(Si)
内容密钥:mek
伪随机序列发生器:PRSG
有向分支:E
有向路径:P
密钥生成单元114在AI05系统和根据本实施例的系统之间不同,并且将描述这样的方面。密钥生成单元114使用伪随机序列发生器(PRSG)来生成组密钥。AI05系统的密钥生成单元114向伪随机序列发生器(PRSG)输入子集S0的中间密钥t(S0),并且获取子集S0的组密钥k(S0)和与预定子集S1、S2、...、Sd对应的中间密钥t(S1)、t(S2)、...、t(Sq)。子集S0与其它子集S1、S2、...、Sq之间的关系是利用图H定义的。集合S0、S1、...、Sq是构成集合系统SS的子集中的一个。这里,q是将与子集S0对应的坐标点作为起始点的有向分支的数目。
在以下描述中,利用等式(3)来表示作为向伪随机序列发生器PRSG输入中间密钥t(S0)的结果而输出组密钥k(S0)和多个中间密钥t(S1)、...、t(Sq)。参考图H,存在以坐标点S0作为起始端的k个有向分支,其中如果指示各个结束端的坐标点是S1、S2、...、Sq,则坐标点S1、S2、...、Sq从离坐标点S0最近的起被依次标注。
[等式3]
t(S1)||…||t(Sa)||k(S0)←PRSG(t(S0))...(3)
当与水平坐标轴的坐标点S0对应的中间密钥t(S0)被输入时,根据AI05系统的伪随机序列发生器PRSG基于据AI05系统的图H,根据与将坐标点S0作为起始端的有向分支的结束端对应的子集S1、S2、S3、...、Sq,输出中间密钥t(S1)、t(S2)、t(S3)、...、t(Sq)和与坐标点S0对应的组密钥k(S0)。
因为由图生成单元110确定的整数是1≤x≤k,所以将图H的各个坐标点作为起始端的有向分组的数目最大为k。
如果伪随机序列发生器PRSG被设置使得对于λ比特的数据输入t(S0),获得(q+1)*λ比特的数据输出t(S1)||...||t(Sq)||k(S0)←PRSG(t(S0)),则密钥生成单元114通过从左边起对PRSG的输出以λ比特进行划界和提取而获取中间密钥t(S1)、t(S2),...、t(Sq)和组密钥k(S0)。
作为具体示例,参考图5中所示的图H(1→64),从坐标点S0=[1,8](从左边端的8个坐标点)延伸4个有向分支。发现这4个有向分支的结束端是坐标点S1=[1,9]、S2=[1,10]、S3=[1、12]、S4=[1、16]。
因此,当中间密钥t(S0)被输入伪随机序列发生器PRSG时,生成中间密钥t(S1)、t(S2)、t(S3)、t(S4)和组密钥k(S0)。此外,当所获得的中间密钥t(S4)被输入PRSG时,生成与将坐标点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)和组密钥k(S4)。
根据本实施例的PRSG的输入/输出可以表示为t(S1)||…||t(Sk)||k(S0)←PRSG(t(S0))。
换而言之,AI05系统中使用的PRSG的输出是这样的输出:当将与输出中间密钥对应的坐标点作为起始点的有效分支的数目是q时,对于λ比特的输入,获得(q+1)λ比特的输出。另一方面,本实施例中使用的PRSG被配置为获得(k+1)λ比特的输出,而不论值q如何。这里,k是系统参数。
在本实施例中,当与子集S0对应的中间密钥t(S0)被输入PRSG时获得的输出是t(S1)||…||t(Sk)||k(S0)。t(S1)||…||t(Sk)部分是子集S1、...、Sk的中间密钥,子集S1、...、Sk对应以下各个坐标点,所述坐标点是将与子集S0对应的坐标点作为起始点的有效分支的结束点,并且连接与子集S0对应的坐标点和与子集Si对应的坐标点的有向分支的长度是n(i-1)/k
例如,如果连接与子集S0对应的坐标点和与子集Si对应的坐标点的有向分支的长度是n2/k,则从PRSG(t(S0))的输出开始的第三组λ比特部分变成t(Si)。
如果长度为n(i-1)/k的分支未从与子集S0对应的坐标点延伸,则t(Si)部分即使从PRSG被输出也不被使用。例如,在n1/k=2的系统的有效图中,如果长度为1和长度为4的有向分支从某一坐标点S0延伸,但是长度为2的有向分支未延伸,则PRSG(t(S0))的输出的第一组λ比特的部分变成与作为长度为1的有向分支的结束点的坐标点对应的子集的中间密钥,并且第三组λ比特的部分变成与作为长度为4的有向分支的结束点的坐标点对应的子集的中间密钥。在这种情况中,第二组λ比特的部分未被使用,因为不存在长度为2的有向分支。
在AI05系统中,PRSG的变成某一个坐标点的中间密钥的输出部分取决于从父坐标点延伸的其它有向分支的存在,与AI05系统不同,在本实施例中,通过限定如上的PRSG的使用方法、仅根据某个坐标点与其父坐标点之间的距离来唯一地限定使用PRSG的输出中哪个部分,并且因此可以不知道其它分支。
因此,密钥生成单元114可以通过基于图H、重复执行伪随机数发生计算来导出与多个有向分支连接的多个坐标点相对应的组密钥。以下,多个有向分支形成的两个坐标点之间的路径称为有向路径P。
当不是特别关注安全性时,或者当试图减少生成组密钥的计算量时,可以使用能够基于图H从组密钥k(S0)计算出其它组密钥k(S1)、...、k(Sq)的伪随机序列发生器PRSG。根据这样的配置,当组密钥k(S0)输入伪随机序列发生器PRSG时,与从坐标点S0延伸的有向分支的到达目的地对应的组密钥k(S1)、k(S2)、k(S3)、...、k(Sq)被输出。
以上,已经描述了密钥生成单元114的功能配置。如从以上示例可以容易认识到的,密钥生成单元114使用中间密钥(如果保存某一中间密钥的话),并且迭代(iteratively)执行伪随机序列发生器PRSG,以获取中间密钥和组密钥,该组密钥与通过从对应于该中间密钥的坐标点延伸的有向分支的链(有向路径P)可以到达的所有坐标点相对应。
(初始中间密钥设置单元112)
现在,将描述初始中间密钥设置单元112的功能配置。初始中间密钥设置单元112具有设置要由密钥分发服务器102保存以用来生成所希望的组密钥的中间密钥的功能。
如上所述,密钥生成单元114迭代执行伪随机序列发生器PRSG,以生成与将对应于输入中间密钥t(S)的坐标点S作为起始点的有向路径可以到达的所有坐标点对应的组密钥。因此,在由密钥生成单元114生成与构成逻辑二叉树BT的根节点和中间节点对应的所有集合中所包含的子集的组密钥时,密钥分发服务器102必须至少保存与各个集合的图H中的起始点对应的坐标点(以下,称为路线(route))的中间密钥。
初始中间密钥设置单元112生成与各个图H的路线对应的中间密钥。例如,初始中间密钥设置单元112在建立密钥提供系统100时生成λ比特的随机数,并且将所述随机数设置为与各个图H的路线对应的中间密钥。各个图H的路线被定义为在有向分支从相关坐标点延伸但是不存在到达这样的坐标点的有向分支的情况中的坐标点。图5中所示的图H(1→64)的坐标[1,1]是图H(1→64)的路线。对于只有一个坐标点的图,例如图H(3→3),这样的坐标点被认为是路线,尽管有向分支不从其延伸。
以上,已经描述了初始中间密钥设置单元112的功能配置。如上所述,由初始中间密钥设置单元112设置用于生成与所有子集对应的组密钥的中间密钥,并且可以由密钥生成单元114来生成所有组密钥。
[其它配置]
现在,将描述除了密钥生成逻辑建立块和密钥生成块之外的各个组件的功能配置。
(子集确定单元120)
子集确定单元120确定用于对内容密钥进行加密的组密钥。即,子集确定单元120提取包括被允许再现内容的订约方(以下,称为被允许订约方)的至少一个子集,并且确定要分发给每个订约方的组密钥的类型(即,与子集对应)。例如,子集确定单元120确定未被允许再现内容的订约方(以下,称为被取消订约方)的集合(R),和从所有订约方的集合(N)中将被取消订约方的集合(R)排除在外的被允许订约方的集合(N\R)。
然后,子集确定单元120确定子集(S1,S2,...,Sm)的集合,其中,使用集合系统SS中所包含的子集、通过集合(N\R=S1∪S2∪...∪Sm)的和可以构成被允许订约方的集合(N\R)。在这种情况中,子集数m优选小的。然后,子集确定单元120对于各个子集Sj=[SPj,TPj](其中,j=1、...、m)提取将子集Sj作为元素的图H(SPj→EPj)或H(EPj←SPj)的结束点EPj。这里,SPj表示指示将Sj作为元素的图的起始点的数字。与这样的子集相关的信息称为sgi(子群组信息),并且由等式(4)表示。
[等式4]
sgi={{S1=[SP1,TP1],EP1},..,{Sm=[SPm,TPm],EPm}}...(4)
(加密单元116)
现在,将描述加密单元116的功能配置。加密单元116使用组密钥对内容密钥进行加密,并且生成经过加密的文本。加密单元116使用与构成集合系统SS的所有子集中的预定子集对应的多个组密钥来对内容密钥进行加密。在这种情况中,加密单元116可以使用由密钥生成单元114生成的所有组密钥来对内容密钥进行加密,但是可以使用与由子集确定单元120确定的子集(S1,S2,...,Sm)的集合对应的组密钥k(S1)、k(S2)、...、k(Sm)来对内容密钥进行加密。结果,对于一个内容密钥可以生成多个经过加密的文本。加密单元116还使用内容密钥对内容进行加密。
假定:从坐标点[SPj,SPj]到达坐标点Sj=[SPj,TPj的有向路径Pj是从构成图H(SPj→EPj)或H(EPj←SPj)的至少一个有向分支中指定的,并且组密钥k(Sj)是由图生成单元110基于有向路径Pj的信息生成的。加密单元116使用组密钥k(Sj)对内容密钥mek进行加密。加密单元116还使用内容密钥mek对内容C进行加密。利用组密钥k(Sj)加密后的内容密钥mek表示为Ek(Sj)(s),并且通利用内容密钥mek加密后的内容C表示为Es(M)。利用仅包括被允许订约方的子集的组密钥k(S1)、k(S2)、...、k(Sm)加密的内容密钥Ek(S1)(s)、Ek(S2)(s)、...、Ek(Sm)(s)有时称为头部h={Ek(S1)(s),Ek(S2)(s),...,Ek(Sm)(s)}。
(通信单元118)
现在,将描述通信单元118的功能配置。主要在系统建立时,通信单元118基于图H向各个订约方分发预定的中间密钥。在这种情况中,通信单元118分发所有中间密钥,以使得各个订约方导出包括订约方在内的子集的所有组密钥。在系统运行时,通信单元118向所有订约方分发由加密单元116加密后的内容或内容密钥。通信单元118还向各个订约方分发用于一些或全部图的信息。此外,通信单元118向各个订约方分发与被允许订约方的集合(N\R)或说被允许订约方的集合(N\R=S1∪S2∪...∪Sm)相关的信息(例如,子集(S1,S2,...,Sm)的信息)。
即,通信单元118可以向订约方的终端设备122分发与至少被允许订约方的子集相关的信息sgi、头部h和经过加密的内容Es(M)。例如,考虑对于订约方的数目n=64,允许对子集S1=[1,48]、S2=[64,56]中所包括的订约方的解密内容的情况。由于将子集S1、S2作为元素的图是图H(1→64)和H(2←64),所以通信单元118向各个订约方的终端设备122分发等式(5)的信息。
[等式5]
sgi={{S1=[1,48],64},{S2=[64,56],2}},
h = { E k ( S 1 ) ( s ) , E k ( S 2 ) ( s ) } , . . . ( 5 )
Es(M)
以上已经描述了根据本实施例的密钥分发服务器102的功能配置。根据这样的配置,组密钥可以基于AI05系统的图H被生成,并且内容密钥可以被加密和被分发。内容分发服务可以被高效提供给被允许订约方的集合。
[密钥分发方法]
现在,将参考图6和图7来描述密钥分发服务器102的密钥分发方法。图6是示出系统建立时的密钥分发处理的流程的说明图。图7是示出分发内容密钥的处理的说明图。
(系统建立时的密钥分发方法)
首先,将参考图6描述系统建立时的密钥分发方法。
如图6中所示,密钥分发服务器102确定订约方的数目n、组密钥和中间密钥的比特数λ、预定参数k和PRSG的伪随机序列生成算法等等,并且将它们公开给所有终端设备122(S102)。然后,密钥分发服务器102将终端设备122的集合划分成预定子集,并且之后确定通过集合的并集表示的集合系统SS(参见等式(1)),并且将它们公开给所有终端设备122(S104)。密钥分发服务器102确定由多个有向分支E形成的图H,并且向所有终端设备122公开部分或全部信息(S106)。然后,确定与构成集合系统SS的各个子集对应的中间密钥(S108)。各个终端设备122用来基于图导出其所属于的所有子集的组密钥的中间密钥被分发给各个终端设备122(S110)。
如上所述,在系统建立时,事先向各个订约方提供用于导出包括相关订约方在内的所有子集的组密钥的多个中间密钥。用于导出不包括订约方在内的子集的组密钥的中间密钥不提供给订约方。要提供给各个订约方的中间密钥的数目优选为最小。将简要描述选择这样的中间密钥的方法。
首先,密钥分发服务器102提取可以到达包括订约方u在内的子集的坐标点的所有图H。如果订约方u被包括在与图H的路线对应的子集中,则只有与该路线对应的中间密钥被提供给订约方u。
如果订约方u被包括在与除图H的路线之外的坐标点对应的子集中的一个子集中,则密钥分发服务器102提取子集S0,其中,订约方u被包括在子集S0中但是不被包括在子集parent(S0)或子集S0的父中。然后,与相关子集S0对应的中间密钥t(S0)被提供给订约方u。
即,如果订约方u被包括在与除了图H的路线以外的多个坐标点对应的子集中,则密钥分发服务器102参考到达各个坐标点的有向分支的起始端,并且选择坐标点使得与各个坐标点的起始端对应的子集不包括订约方u。将与这样的坐标点对应的子集作为S0,将与到达坐标点S0的有向分支的起始端(父)对应的子集作为parent(S0),在对应于父坐标点的子集parent(S0)不包括订约方u但是对应于坐标点的子集S0包括订约方u的情况中,密钥分发服务器102向订约方提供与坐标点S0对应的中间密钥t(S0)。一个有向分支的起始端parent(S)表示为相关有向分支的结束点端S的父。坐标点S0的父标注为parent(S0)。
此外,如果这样的坐标点S0存在多个,则密钥分发服务器102向订约方u提供与坐标点对应的多个中间密钥t(S0)。显然,如果坐标点S0是有效图H的路线,则坐标点S0的父不存在。如果坐标点S0不是有效图H的路线,则仅坐标点S0的一个父存在。
(特定示例1)
考虑要分发给订约方1的中间密钥。首先,提取可以到达包括订约方1在内的子集的图H。对于图5,这样的图H是图H(1→64)。订约方1属于与图H(1→64)的路线对应的子集[1,1]。因此,中间密钥t([1,1])被分发给订约方1。
(特定示例2)
考虑要分发给订约方3的中间密钥。首先,提取可以到达包括订约方3的子集的图H。参考图5,这样的图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不被包括在与图H(1→64)的路线对应的子集[1,1]中。
然而,订约方3被包括在第三坐标点之后的子集[1,3]、[1,4]、......[1,64]中。参考这样的坐标点的父的子集,认识到父的子集中不包括订约方3的坐标点仅有[1,3]和[1,4]。因此,与坐标点[1,3]、[1,4]的parent([1,3])和parent([1,4])对应的坐标点[1,2]不包括订约方3。
结果,与图H(1→64)对应的中间密钥t([1,3])和t([1,4])被分发给订约方3。类似地,对于其它图H(2←64)、H(2←32)、H(2←16)、H(2←8)、H(2←4)、H(3→3),选择中间密钥,并且分发给订约方3。结果,总共8个中间密钥被分发给订约方3。
(内容密钥的分发方法)
以下,将参考图7描述内容密钥mek的分发方法。
参考图7,密钥分发服务器102确定被取消订约方的集合R,并且确定被允许订约方的集合N\R(S112)。之后,从构成集合系统SS的子集中选择并集为N\R的m个子集Si(i=1,2,...,m)(S114)。然后,使用与各个选出的子集Si对应的组密钥k(Si)来对内容密钥mek进行加密(S116)。表示集合N\R或各个子集Si的信息和m个经过加密的内容密钥mek被分发给所有终端设备122(S118)。
以上已经描述了建立时的密钥分发方法和密钥分发服务器102进行的对内容密钥mek的分发方法。根据分发方法,各个被允许订约方用来生成组密钥的中间密钥被高效分发。
[图H的生成方法]
现在,将参考图9描述图H的生成方法。图9是示出图H(lv→rv-1)的生成处理的流程的说明图。
参考图9,坐标轴设置单元106布置集合(lv→rv-1)的元素,使得包含关系在水平线上从左向右变大。然后,在最左边的坐标点的左侧布置一个临时坐标点Start,并且在最右边的坐标点的右侧布置一个临时坐标点End。从临时坐标点Start至临时坐标点End的长度变成Lv=rv-lv+1。此外,计算满足n(x-1)/k<Lv≤nx/k的整数(S150)。
然后,在计数器i从0移向x-1时,图生成单元110执行以下操作。从临时起始点Start开始,从该坐标点到隔开ni/k的坐标点连续进行跳,直到到达临时坐标点End或下一次跳超过临时坐标点End为止。之后,生成与每一跳相对应的有向分支(S152)。之后,取消到达临时坐标点Start或End的所有有向分支(S154)。如果多个有向分支到达某一坐标点T,则除了具有最长跳距离的有向分支以外的有向分支都被取消(S156)。
以上已经描述了图H的生成方法。通过执行以上处理可以生成图5中所示的图H。
[终端设备122的功能配置]
现在,将参考图10描述根据本实施例的终端设备122的功能配置。图10是示出终端设备122的功能配置的说明图。
如图10中所示,终端设备122主要包括通信单元124、判断单元126、图生成单元127、密钥生成单元128和解密单元130。
(通信单元124)
首先将描述通信单元124的功能配置。通信单元124是用于获取从密钥分发服务器102分发的信息的获取单元的示例。例如,通信单元124具有接收从密钥分发服务器102分发的以下信息的功能:与内容、内容密钥、中间密钥和图相关的信息、与被允许订约方相关的信息等。
通信单元124也可以是获取单元,用于从连接到有线或无此案网络的多个信息源(例如,密钥分发服务器102)或在没有网络的情况下直接或间接连接的信息源(例如,诸如光盘设备、磁盘设备或便携式终端设备之类的信息介质)获取信息。
(判断单元126)
以下将描述判断单元126的功能配置。判断单元126判断其是否被作为元素包括在与在对内容密钥的加密中所使用的组密钥对应的子集中的一个子集内。即,判断单元126判断是否被包括在由密钥分发服务器102的子集确定单元120选择的子集中的一个子集内。在这种情况中,判断单元126参考从密钥分发服务器102获得的被允许订约方的子集。
(图生成单元127)
现在,将描述图生成单元127的功能配置。图生成单元127具有这样的功能:在由密钥分发服务器102用来导出组密钥的图H中,仅生成用于导出它所属于的子集的组密钥的有向路径。即,图生成单元127可以生成仅由使得能够导出必要的组密钥的有向路径构成的图G。
在以上描述中,图H(a→b)和H(b←a)与垂直线z的交叉点被标为坐标点[a,z],而在以下描述中,图H与垂直线z的交叉点表示为坐标z。因此,应当注意,坐标点和坐标是不同的。
(图G的生成方法)
将参考图13和图14详细描述图G的生成方法。图13和图14是示出用于生成图G的处理的流程的说明图,图G由订约方i用来导出该订约方所属的子集Sj的组密钥k(Sj)。
在图13的最下面和图14的最上面标出的A、B、C、D、E、F中的每一个符号都是用于明确指示图13和图14中的处理的转变的移动目的地的符号。例如,假定:到达图13的A的步骤已经到达图14的A。
终端设备122事先保存订约方的数目n和参数k的信息。图G由坐标点的集合V(G(i))和有向分支的集合E(G(i))构成,并且被表示为G(i)={V(G(i),E(G(i)))。如果图G(i)中所包含的坐标点是1,则有向分支的集合E(G(i))表示为E(G(i))=φ(符号φ是空集)。[a,b]×[a,c]表示起始端的坐标点是[a,b]并且结束端的坐标点是[a,c]的有向分支。为了便于说明,假定等式(6)的信息是从密钥分发服务器102获得的。
[等式6]
sgi={{S1=[SP1,TP1],EP1},...,{Sy=[SPy,TPy],EPy}},
h = { E k ( S 1 ) ( s ) , . . . , E k ( S y ) ( s ) } , . . . ( 6 )
Es(M)
如图13中所示,判定在与由通信单元124获得被允许订约方的子集相关的信息sgi中是否存在包括它(订约方i)的子集Sj(j∈Sj)(S922)。如果存在子集Sj,则处理进行到步骤S924。如果不存在子集Sj,则假定订约方被取消(无权获取内容),图G的生成处理结束。步骤S922的处理主要由判断单元126执行。
然后,图生成单元127判断订约方的编号i是否匹配TPj(S924)。如果i=TPj,则当订约方i导出组密钥时生成的图G(i)={V(G(i),E(G(i))}被输出为V(G(i))={[SPj,i]},E(G(i))=φ(S978),并且图G的生成处理结束。如果不是i=TPj,则处理进行到步骤S926。
图生成单元127以以下方式初始化订约方i的当前位置的坐标cup、当前考虑的范围的起始点的坐标sp和结束点的坐标ep、计数器m、计数器z、坐标点的集合V(G(i))以及有向分支的集合E(G(i))(S926)。
sp=SPj,ep=EPj,cup=i,m=1,z=0,V(G(i))=φ,E(G(i))=φ。这里,j表示满足i∈Sj的子集Sj的索引j。
然后,图生成单元127判断SPj=1是否成立(S928)。如果SPj=1,则处理进行到步骤S930。然后,图生成单元127计算Lv=|EPj-SPj|+1,并且将ep-1代入ep(S930),然后,进行到步骤S934。如果SPj=1不成立,则处理进行到步骤S932。图生成单元127计算Lv=|EPj-SPj|+2(S932),并且之后,处理进行到步骤S934。
图生成单元127计算满足n(x-1)/k<Lv≤nx/k的x(1≤x≤k)(S934)。图生成单元127判断cup=TPj是否成立(S936)。如果cup=TPj,则处理进行到步骤S976。输出由订约方i用来导出子集的密钥所使用的图G{V(G(i)),E(G(i))}(S976),并且结束图G的生成处理。
如果cup=TPj不成立,则处理进行到步骤S938。然后,图生成单元127判断z=0是否成立(S938)。如果z=0,则处理进行到步骤S940。如果z=0不成立,则处理进行到步骤S946,并且确定从sp到ep的跳的数目变成最小值的最大有向路径(MP;MaxPath)(S946)。以下将描述该处理。
然后,图生成单元127判断SPj<EPj是否成立(S940)。如果SPj<EPj,则处理进行到步骤S942。这里,如等式(7)设置sp(S942),并且处理进行到步骤S946。如果SPj<EPj不成立,则处理进行到步骤S944。这里,如等式(8)设置sp(S944),并且处理进行到步骤S946。
[等式7]
Figure G200880009041XD00331
Figure G200880009041XD00332
然后,图生成单元127将从sp到ep的有向路径中跳的数目变成最小值的有向路径确定为MP(MaxPath),以匹配AI05系统中的图H的一个部分(S946)。以下,将描述用于确定MP的处理。
然后,图生成单元127判断z=0是否成立(S948)。如果z=0不成立,则处理进行到步骤S958。如果z=0,则处理进行到步骤S952。MP上的有向分支的数目为w,并且将[SPj,sp]作为起始点的有向分支作为第一有向分支,MP上的第i个有向分支的距离定义为dti。这里,dtw+1=0。将[SPj,SPj]作为起始点,在将计数器i从w移向1的同时,执行距离dti的跳,并且生成与此对应的有向分支。在这种情况中,应当注意,在第i跳中的到达点是第i-1跳的出发点。此外,步骤S946中所确定的MP和这里(S952)所生成的有向分支被设为新的MP并且z=1(S952)。
然后,图生成单元127判断SPj=1是否成立(S954)。如果SPj=1不成立,则处理进行到步骤S958。如果SPj=1,则处理进行到步骤S956。然后,图生成单元127向MP上添加有向分支[SPj,EPj-1]×[SPj,EPj]来获得新的MP(S956)。
图生成单元127指定坐标点[SPj,cup]被包含在MP上现有的各个有向分支的起始点和结束点之间的有向分支(S958)。然而,还包括起始点或结束端的坐标点与坐标点[SPj,cup]匹配的情况。指定的有向分支称为CUE(当前用户的边缘)。如果在MP上存在坐标点[SPj,cup]并且坐标点[SPj,cup]与两个相邻有向分支的起始端和结束端相匹配,则假定将坐标点[SPj,cup]作为起始点的有向分支作为CUE。
如果坐标点[SPj,TPj]不与CUE的结束端匹配并且不比CUE的结束端更接近图H的结束点侧,则图生成单元127进行到步骤S970。如果坐标点[SPj,TPj]匹配CUE的结束端或比CUE的结束端更接近图H的结束点侧,则处理进行到步骤S962(S960)。
然后,图生成单元127如下设置V(G(i))和E(G(i))(S962)。
如果V(G(i))=φ,则V(G(i))=[SPj,spi,m]∪[SPj,epi,m]。如果V(G(i))=φ不成立,则V(G(i))=V(G(i))∪[SPj,epi,m]。并且,E(G(i))=E(G(i))∪{[SPj,spi,m]×[SPj,epi,m]。
这里,spi,m、epi,m表示当前CUE的起始端和结束端的坐标。因为以下原因,该处理对于当V(G(i))=φ时和当V(G(i))=φ不成立时是不同的。如果V(G(i))=φ,则有向分支的起始端和结束端都将作为坐标点被添加,但是如果V(G(i))=φ不成立,则要被添加有向分支的起始端已经被添加作为V(G(i))的坐标点,因此仅结束端的坐标点被添加到V(G(i))以避免冗余。
图生成单元127将m+1代入m(S964)。图生成单元127判定CUE的下一个有向分支(将CUE的结束端作为起始端的有向分支)是否存在(S966)。如果CUE的下一个有向分支存在,则处理进行到步骤S968,MP上现有的CUE的下一个有向分支被设为新的CUE,并且该处理返回步骤S960的处理。如果CUE的下一个有向分支不存在,则处理进行到步骤S970。
然后,图生成单元127将CUE的起始端的坐标设置到sp,并将位于比CUE的结束端靠前一个点的坐标点的坐标设置到ep(S970)。然后,图生成单元127判断m=1是否成立(S972)。如果m=1,则处理返回步骤S936的处理。如果m=1不成立,则处理进行到步骤S974。
图生成单元127设置cup=epi,(m-1)(S974),并且返回到步骤S936的处理。
已经描述了根据本实施例的图G的生成方法。在上述生成方法中,进行这样的假设:与图H的结束点相关的信息EPj被包含在sgi中,但是订约方可以指定EPj,因为在SPj被确定之后,可以通过逻辑二叉树BT唯一指定EPj。这样的配置是通过向步骤S926的处理添加导出EPj的步骤来实现的。
(最大有向路径MP的确定方法)
现在将参考图15描述图13的步骤S946中的最大有向路径MP的确定方法。图15是示出最大有向路径MP的确定方法的流程的说明图。
如图15中所示,图生成单元127首先将如下对计数器1、当前正在考虑的跳的到达点的坐标tsp和当前正在考虑的距离dt进行初始化(S982)。1=x,tsp=sp,dt=|ep-tsp|。
然后,图生成单元127将1-1代入1(S984)。图生成单元127判断1≥0是否成立(S986)。如果1≥0不成立,则处理进行到步骤S996,将由从坐标点[SPj,sp]到[SPj,ep]的至少一个有向分支的链形成的有向路径设置为MP(S996),并且结束MP的确定处理。如果1≥0,则处理进行到步骤S988。
然后,图生成单元127判断dt-n1/k≥0是否成立(S988)。如果dt-n1/k≥0不成立,则处理返回步骤S984的处理。如果dt-n1/k≥0,则处理进行到步骤S990。
图生成单元127将[SPj,tsp]作为出发点执行距离为n1/k的跳,并且生成对应的有向分支(S990)。然后,图生成单元127将步骤S990中所生成的有向分支的结束端的坐标新设置为tsp(S992)。然后,图生成单元127将dt-n1/k代入dt(S994),并且返回步骤S988的处理。
以上已经描述了最大有向路径MP的确定方法。图的生成处理可以通过上述确定处理来执行。
(特定示例)
将参考图11和图12描述基于上述生成方法由图生成单元127生成的图G的特定示例。图11和图12是示出当订约方的数目为n=64并且参数k=6时所生成的图G的说明图。具体地,仅示出与集合(1→64)对应的图。图11和图12的上面画出的图是当使用AI05系统的算法时由订约方导出的图H。在下面画出的图是当使用本实施例的方法时由订约方导出的图G。
(特定示例1)
首先,参考图11示出为订约方1用来导出子集[1,2]的组密钥而生成的图G。图中的实线示出当订约方1推导组密钥时将最终导出的有向分支。即,当推导子集[1,2]的组密钥时,订约方1向PRSG输入与用实线示出的有向分支的起始点对应的中间密钥t([1,1]),并且导出与其结束端对应的t([1,2])。此外,由实线和虚线构成的图G表示要由订约方1导出的最大有向路径MP。
(特定示例2)
参考图12示出为订约方7用来生成子集[1,44]的组密钥的而生成的图G。图中的实线示出与当订约方7推导组密钥时将最终导出跳相对应的有向分支。即,当推导子集[1,44],的组密钥时,订约方7使用其事先保存的中间密钥t([1,4])并且沿用实线示出的有向分支重复执行PRSG来导出中间密钥t([1,44])。此外,由实线和虚线构成的图G表示要由订约方7导出的最大有向路径MP。
(密钥生成单元128)
现在描述密钥生成单元128的功能配置。密钥生成单元128使用事先分发的中间密钥和PRSG来生成所希望的中间密钥或组密钥。在这种情况中,密钥生成单元128基于由图生成单元127生成的图H来生成所希望的中间密钥或组密钥。如果由判断单元126判断出包括它的子集不存在,则密钥生成单元128不执行中间密钥或组密钥的生成处理。PRSG与密钥分发服务器102所保存的PRSG基本相同,并且具有这样的功能:当基于预定图输入与有向分支的起始端对应的中间密钥时,输出与相关中间密钥对应的组密钥和与相关有向分支的结束端对应的中间密钥。应当注意,如果多个有向分支从一个坐标点延伸,则PRSG输出与所有有向分支的结束端对应的中间密钥。
(密钥生成方法)
将参考图16描述根据本实施例的密钥生成方法。图16是示出由密钥生成单元128进行的密钥生成处理的流程的说明图。在以下描述中,假定订约方i已经导出图G(i)。构成图G(i)的有向分支的集合E(G(i))被表示为等式(9)。被包含在E(G(i))中并且被表示为等式(10)和等式(11)的两个相邻有向分支中,满足epi,(w-1)=spi,w。这里,w=2、...、m-1。
[等式8]
E(G(i))={[SPj,spi,1]×[SPj,epi,1],...,[SPj,spi,(m-1)]×[SPj,epi,(m-1)]}...(9)
[SPj,spi,(w-1)]×[SPj,epi,(w-1)]...(10)
[SPj,spi,w]×[SPj,epi,w]...(11)
如图16中所示,密钥生成单元128首先判断i=TPj的TPj是否存在(S572)。如果i=TPj的TPj存在,则处理进行到步骤S574。然后,密钥生成单元128指定中间密钥t(Sj),其中TPj与对应于中间密钥t(Sj)=t([SPj,epi,w])(w=1,...,z)的子集Sj的坐标epi,w相匹配(S574)。中间密钥t(Sj)被设为中间密钥CTK(当前临时密钥),并且处理进行到步骤S590。
如果在步骤S572中不存在i=TPj的TPj,则处理进行到步骤S576。密钥生成单元128将1代入计数器1(S576)。密钥生成单元128将其中指示[SPj,spi,1]×[SPj,epi,1]∈E(G(i))的结束端的坐标和与中间密钥t(Sj)=t([SPj,epi,w])(w=1,...,z)对应的子集Sj的坐标epw相匹配的中间密钥t(Sj)作为当前的中间密钥CTK(S578)。
然后,密钥生成单元128判断是否存在[SPj,spi,1]×[SPj,epi,1]∈E(G(i))的下一个有向分支(将某一有向分支的结束端作为起始端的有向分支)(S580)。如果下一个有向分支存在,则处理进行到步骤S582。如果下一个有向分支不存在,则处理进行到步骤S590。
密钥生成单元128向PRSG输入CTK并且输出(k+1)*λ比特的值(S582)。然后,密钥生成单元128将1+1代入1(S584)。然后,密钥生成单元128确定满足|epi,1-spi,1|=np/k的p(S586)。密钥生成单元128将步骤S582中获得的输出的MSB(最高有效位)设置为第一比特,并且将从p*λ+1位到(p+1)*λ位的值设置为新的CTK(S588)。处理返回步骤S580的处理。
然后,密钥生成单元128向PRSG输入CTK并且输出(k+1)*λ比特的值(S590)。然后,密钥生成单元128将步骤S590中获得的输出中的MSB设置为第一个比特,并且获得从k*λ+1位到(k+1)*λ位的值作为组密钥k(Sj)(S592)。
以上已经描述了根据本实施例的密钥生成方法。密钥生成单元128可以通过上述处理基于图G来生成所希望的组密钥。
(解密单元130)
现在,将描述解密单元130的功能配置。解密单元130使用由密钥生成单元128生成的组密钥来对内容密钥进行解密。解密单元130还可以使用内容密钥对内容进行解密。
(内容密钥的解码方法)
现在,将参考图8描述对经过加密的内容密钥mek的解密处理。图8是示出内容密钥的解密的流程的说明图。
如图8中所示,通信单元124从密钥分发服务器102获取m个经过加密的密钥mek和表示集合N\R的信息或表示m个子集Si(i=1,2,...,m)的信息(S120)。判断单元126搜索包括它的子集Si(S122),并且判断它是否被包括在这m个子集Si之一中(S124)。
如果存在包括它的子集Si,则密钥生成单元128利用伪随机序列发生器PRSG来导出与子集Si对应的组密钥k(Si)(S126)。解密单元130使用所导出的组密钥k(Si)来对经过加密的内容密钥mek进行解密(S 128)。如果它不被包括在子集Si中的任何一个子集中,则判断单元126显示并且输出它是被取消订约方的通知(S130),并且结束内容密钥的解码处理。
如上所述,终端设备122可以基于集合N\R或m个子集Si的信息以及从密钥分发服务器102获得的m个经过加密的内容密钥k(Si)来对内容密钥mek进行解密。
[密钥提供系统100的应用示例]
将参考图17和图18简要描述根据各个实施例的密钥提供系统100的应用示例。
(应用示例1)
首先,将描述广播加密系统800的配置作为密钥提供系统100的一个应用示例。图17是示出使用广播卫星的广播加密系统800的配置的说明图。
参见图17,广播加密系统800主要被配置为包括:卫星广播台802、管理中心804、广播卫星806、住所808和接收机810。广播加密系统800是用于经由广播信道向布置在住所808中的接收机810分发经过加密的数据(密文)的系统。广播信道是卫星广播分发信道等。密文是包括加密密钥、音频数据、视频数据、文本数据等的内容。
首先,卫星广播台802被布置有用于经由广播卫星806发送诸如密文之类的数据的管理中心(广播受信中心,broadcast trusted center)804。管理中心804选择用于加密的密钥,并且执行数据的加密和数据的分发控制。即,管理中心804是根据上述各个实施例的密钥分发服务器102的一个示例。安装在住所808中的接收机810是根据上述各个实施例的终端设备122的一个示例。
广播卫星806通过管理中心804和布置在各个住所808中的接收机810向接收机810广播诸如密文之类的数据。接收机810是卫星广播接收机等,并且接收通过广播卫星806广播的数据。如图17中所示,广播加密系统800可以包括多个接收机810,在这种情况中,管理中心804向包括多个接收机810的接收机组分发数据。管理中心804加密并且分发广播数据,使得只有经过认证的接收机810才能解密数据。
以上已经描述了用作密钥提供系统100的一个应用示例的广播加密系统800。在图17在,已经通过示例的方式描述了卫星广播,但是广播加密系统800也易于适用使用诸如有线电视和计算机网络之类的其它广播信道的加密系统。
(应用示例2)
将描述广播加密系统900的配置作为密钥提供系统100的另一个应用示例。图18是示出使用记录介质的广播加密系统900的配置的说明图。
参考图18,广播加密系统900主要包括介质制造者902、管理中心904、记录介质906、分发代销店908、住所912和接收机914。广播加密系统900中的广播信道是记录了数据的记录介质906。
首先,介质制造者902被布置有管理中心904,用于利用记录介质906来经由分发代销店908向住所912提供诸如密文之类的数据。管理中心904仅将诸如密文之类的数据记录到记录介质906中,并且使用记录介质906来间接提供诸如密文之类的数据。记录介质906是只读介质(例如,CD-ROM、DVD-ROM等)、可重写介质(例如,CD-RW、DVD-RW等)等。与应用示例1类似,管理中心904对应于根据上述各个实施例的密钥分发服务器102。存在的细微区别在于:诸如密文之类的数据被记录在记录介质中并被提供,但是根据本发明实施例的密钥分发服务器可以如在该应用示例中一样根据实施例来恰当地改变用于分发诸如密文之类的信息的手段。
介质制造者902向诸如零售商之类的分发代销店908发送记录有诸如密文之类的数据的记录介质906。然后,分发代销店908向各个住所912提供介质906。例如,分发代销店908向与各个住所912对应的个人出售记录介质906。个人将记录介质906带到住所912,并且使用接收机914来再现记录介质906上所记录的数据。接收机914是根据各个实施例的终端设备122的一个示例,但是细微的不同在于是通过记录介质来获取诸如密文之类的数据的。然而,根据本发明实施例的终端设备如在本应用示例中一样,根据实施例改变获取诸如密文之类的信息的手段。接收机914是CD播放器、DVD播放器或配备DVD-RW驱动的计算机,并且由能够读出和再现记录介质906上所记录的数据的设备构成。
以上已经描述了用作密钥提供系统100的一个应用示例的广播加密系统900。在图18中,已经通过示例的方式描述了用于通过记录介质906向订约方提供诸如密文之类的数据的手段。根据本发明实施例的密钥分发服务器和终端设备可以根据实施例而改变与各种类型的信息的分发手段相关的配置。
[效果]
在相关技术中,各个订约方保存与其所属的子集对应的所有图H或者自己导出所有图H。然而,本实施例提供了这样的手段:各个订约方在导出与其所属的子集对应的图H的密钥时,导出仅由必要的有向分支构成的图G。因此,与相关技术的密钥分发系统比较,大大减少了要由各个订约方计算的有向分支的数目,并且各个订约方可以高速生成图G并且导出所希望的组密钥。结果,可以大大减少用于对内容进行解密的时间。
<第二实施例>
以下,将详细描述根据本发明第二实施例的密钥提供系统100的配置和与密钥分发相关的特定系统。与根据第一实施例的密钥提供系统100基本相同的组件被标注相同的标号以省略多余描述,并且将详细描述不同的组件。本实施例的特征在于:终端设备包括用于高效生成A06(B)系统的密钥提供系统100中的图的手段。
[第二实施例的特征]
将比较和描述本发明的第二实施例和第一实施例来阐明实施例的差异,从而清楚地示出第二实施例的特征。首先,第一实施例和第二实施例的最大差别在于本发明的技术所应用到的密钥分发系统。第一实施例适用于AI05系统,而本实施例适用于A06(B)系统。
(AI05系统与A06(B)系统的比较)
将简要描述AI05系统与A06(B)系统之间的差异,并且将清楚地定义A06(B)的特征。AI05系统与A06(B)系统之间的差异在于用于密钥生成的计算量,如已经在说明书的开始所述。具体而言,差异如下。
如在第一实施例的描述中所述,在AI05系统中,图H(1→n)和H(2←n)与逻辑二叉树BT的根节点对应,并且图H(lv→rv+1)或H(lv+1←rv)与其它中间节点v对应。订约方u所属的图H是与从逻辑二叉树BT的叶节点u到根节点的路径上存在的节点中、排除了叶节点和根节点的log(n)-1个中间节点v(v=1,...,log(n)-1)中的每一个中的图或与根节点对应的两个图中的任一个。因此,存在总共log(n)+1个图。关于各个图H,要由订约方保存的密钥数的最大值比将某一坐标点作为出发点的有向路径中所包含的有向分支的最大数小。因此,有向分支的最大数与参数k相等,并且即使在最坏的情况中,要由各个订约方保存的密钥数也变得小于或等于k*(log(n)+1)。这逐渐变成O(k*log(n))。
更具体而言,通过计算满足n(x-1)/k<Lv≤nx/k的x(1≤x≤k)获得在生成图H中所使用的分段(segment)的长度Lv。当x是针对逻辑二叉树BT的各个中间节点被计算出的时,可以用等式(12)来表示要由各个订约方保存的密钥数的上限。结果,在AI05系统中,出现了一个问题:各个订约方的计算量仍然很大。
[等式9]
&Sigma; x = 1 k - 1 x ( log n k ) + k ( log n k - 1 ) + 2 k = ( k + 1 ) 2 log n + k . . . ( 12 )
现在,将考虑各个订约方用来生成组密钥的计算量。决定各个订约方的计算量的决定因素是生成所需要的中间密钥所需要的PRSG的计算次数。由在到达距离图H的路线最远的叶(有向分支不延伸的坐标点)的有向路径中所包含的有向分支数来表示最坏的值。这样的最坏的值变成从图H(1→n)的坐标点[1,1]到[1,n]的有向路径中的最大值。假定t=n1/k-1,并且用于连续执行距离为b的跳(对应于有向分支)a次的处理表示为J(a,b),则有向路径可以表示为等式(13)。
[等式10]
J(t,1),J(t,n1/k),...,J(t,n(k-2)/k),J(t-1,n(k-1)/k),J(t,n(k-2)/k),...,J(t,n1/k),J(t+1,1)
                                            ...(13)
即,构成这样的有向路径的有向分支数(跳数)用等式(14)表示。例如,如果订约方数n=64,并且参数k=6,则在从图H(1→64)的坐标点[1,1]到[1,64]的有向路径中存在11个有向分支。结果,在AI05系统中,有向分支数很大,并且因此出现另一个问题:跳数,即,要由各个订约方执行的计算量仍然很大。
[等式11]
2(k-1)(n1/k-1)+n1/k-2+1=(2k-1)(n1/k-1)...(14)
在A06(B)系统中,特征在于:改善了利用较长的有向分支来构成图。例如,在图20中示出了A06(B)系统的图I,其中,容易认识到,相比于图5中所示的AI05系统的图H,包含了更长长度的有向分支。这样的图明显是基于相同的逻辑二叉树BT来构成的,并且订约方数n和参数k也相同。结果,直觉上显而易见,相比于AI05系统,通过应用A06(B)系统,可以减少各个订约方的计算量。
与等式(13)类似,从A06(B)系统的图I(1→n)的坐标点[1,1]到[1,n]的有向路径可以表示为等式(15)。J(a,b)的定义与AI05系统相同。
[等式12]
J(t,n(k-1)/k),J(t,n(k-2)/k),...,J(t,n0/k)...(15)
因此,构成有向路径的有向分支数(跳数)变成k*(n1/k-1),这相比于AI05系统的(2k-1)*(n1/k-1),大约被减少了一半。因此,通过应用A06(B)系统,可以大大减少各个订约方的计算量。
(共同的问题)
如上所述,相比较于AI05系统,在A06(B)系统中,计算量被减少了约一半,但是出现了这样的问题:假定采取实现方式的真实情况,各个订约方的计算负荷仍然很高。在A06(B)系统中,与AI05系统类似,图I的信息都要被保存,或要生成所有的图I,其中,各个订约方的终端设备的计算负荷大大抑制了一般终端设备的有效资源。
具体而言,当在订约方数为n的情况中应用A06(B)系统时,用等式(16)来表示图I(1→n)中所包含的有向分支数。
[等式13]
t &CenterDot; n 0 / k + t &CenterDot; n 1 / k + . . . + t &CenterDot; n k - 1 / k
= t &Sigma; i = 0 k - 1 n i / k . . . ( 16 )
= n - 1
因此,当订约方数n=64时,与63个有向分支相关的信息被保存或被导出。与有向分支相关的信息需要有向分支的起始端和结束端的信息,其中,即使一个信息用32比特=4字节来表示,仅对于图I(1→n)就需要252字节的数据区。实际上,订约方数n约为n=232,因此,图I(1→n)的信息约为32G字节。显然,终端设备的存储资源被大大抑制了,并且用可移除介质来进行记录和分发变得困难。此外,当各个订约方生成图I(1→n)时,要计算n-1=4294967295个有向分支,其中,对于图的生成,就需要大量时间。
(本实施例的目的)
本实施例的一个目的是提供这样的手段:通过在基于A06(B)系统的图I的的密钥提供系统100中仅生成各个订约方所需要的图的信息来大大减少各个订约方的计算负荷。
[密钥提供系统100的配置]
将描述根据本实施例的密钥提供系统100的配置。基本的系统结构基本上与图1中所示的第一实施例的配置相同,并且因此将省略详细描述。布置在根据本实施例的密钥提供系统100中的密钥分发服务器202和终端设备222的硬件配置与图2中的密钥分发服务器102和终端设备122的硬件配置基本相同,因此省略对它们的详细描述。
[密钥分发服务器202的功能配置]
将参考图19描述根据本实施例的密钥分发服务器202的功能配置。图19是示出密钥分发服务器202的功能配置的说明图。
如图19中所示,密钥分发服务器202主要包括以下单元:树结构设置单元104、坐标轴设置单元206、图生成单元210、初始中间密钥设置单元112、密钥生成单元114、加密单元116、通信单元118和子集确定单元120。本实施例的特征配置主要在于坐标轴设置单元206和图生成单元210,其它组件和根据第一实施例的密钥分发服务器102基本相同。因此,将仅详细描述坐标轴设置单元206和图生成单元210的功能配置。
(坐标轴设置单元206)
首先,将描述坐标轴设置单元206的功能配置。坐标轴设置单元206具有设置构成图I的多个水平坐标轴的功能。
首先,坐标轴设置单元206将集合(1→n-1)中包含的多个子集对应到水平坐标轴上的各个坐标点,使得包含关系向右变大,从而形成集合(1→n-1)的水平坐标轴。对于逻辑二叉树BT的v∈BTR中的中间节点v,坐标轴设置单元206还将与中间节点v对应的集合(lv→rv-1)中所包含的多个子集也对应到一个水平坐标轴上的坐标点,使得包含关系向右变大,从而形成集合(lv→rv-1)的水平坐标轴。对于v∈BTR中的所有v,坐标轴设置单元206形成集合(lv→rv-1)的水平坐标轴。
然后,坐标轴设置单元206将集合(2←n)中所包含的多个子集对应到一个水平坐标轴上的各个坐标点,使得包含关系向左变大,从而形成集合(2←n)的水平坐标轴。坐标轴设置单元206还将集合(lv+1←rv)中所包含的多个子集对应到一个水平坐标轴上的各个坐标点,使得包含关系向左变大,从而形成集合(lv+1←rv)的水平坐标轴。对于v∈BTR中的所有v,坐标轴设置单元206形成集合(lv+1←rv)的水平坐标轴。
坐标轴设置单元206在位于与集合(1→n-1)对应的水平坐标轴的右端的坐标点的右侧布置两个临时坐标点。坐标轴设置单元206还在位于集合(lv→rv-1)的水平轴的右端的坐标点的右侧布置两个临时坐标点。此外,坐标轴设置单元206在位于集合(2←n)的水平坐标轴的左端的坐标点的左侧布置两个临时坐标点。坐标轴设置单元206还在位于集合(lv+1←rv)的水平坐标轴的左端的坐标点的左侧布置两个临时坐标点。
以上已经描述了坐标轴设置单元206的功能配置。根据上述配置,坐标轴设置单元206可以生成用于形成AI06(B)系统的图的多个水平坐标轴。现在,以下将描述在由坐标轴设置单元206生成的水平坐标轴上生成图的手段。
(图生成单元210)
现在,将描述图生成单元210的功能配置。图生成单元210具有在各个水平坐标轴上生成图I的功能。
首先,图生成单元210设置参数k(k是整数)。图生成单元210确定满足n(x-1)/k<rv-lv+1≤nx/k的整数x。这里,可以假定k|log(n)(以下,log的底为2)。参数k是要由终端设备222保存的中间密钥的数目和与用于生成组密钥的计算量相关的量。
然后,图生成单元210在集合(1→n-1)和集合(lv→rv-1)的水平坐标轴上生成长度为ni/k(i=0到x-1)的右向有向分支。图生成单元210还在集合(2←n)和集合(lv+1←rv)的水平坐标轴上形成长度为ni/k(i=0 to x-1)的左向有向分支。图生成单元210在对应于所有v的水平坐标轴上形成有向分支。
具体而言,对于集合(1→n-1)的水平坐标轴和集合(lv→rv-1)的水平坐标轴,集合(1→n-1)或集合(lv→rv-1)的元素被排列在线上,使得包含关系在水平线上从左到右变大。最左边的坐标点是起始点。此外,在最右边的坐标点的右侧布置两个临时坐标点。然后,在计数器i从0移向z-1的同时,执行以下操作。从起始点开始,连续进行从相关坐标点向隔开ni/k的坐标点的跳,直到到达临时坐标点或下一跳超过临时坐标点为止。之后,生成与各次跳对应的有向分支。应当注意,对于集合(2←n)和集合(lv+1←rv)的水平坐标轴,通过类似的处理来生成有向分支,但是左右反转。
然后,图生成单元210取消将各个水平坐标轴上所布置的临时坐标点作为起始点或结束点的所有有向分支。此外,如果多个有向分支到达一个坐标点,则图生成单元210从这多个有向分支中取消所有有向分支,仅留下最长的有向分支。通过以上处理,生成了:集合(1→n-1)的图H(1→n-1),集合(2←n)的图H(2←n),集合(lv→rv-1)的图H(lv→rv-1)和集合(lv+1←rv)的图H(lv+1←rv)。
图生成单元210向图H(1→n-1)添加将布置在集合(1→n-1)的水平坐标轴的右侧的两个临时坐标点中被布置在左侧的临时坐标点作为结束点、长度为1的右向有向分支。即,图生成单元210执行等式(17)的处理并且生成集合(1→n)的图H(1→n)。这里,E((...))表示有向分支。
[等式14]
E(H(1←n))=E(H(1←n-1))∪{([1,n-1],[1,n])}...(17)
以上已经描述了图生成单元210的功能配置。图生成单元210可以生成根据以上配置的AI06(B)系统的图I。
[图I的生成方法]
现在,将参考图22描述图I的生成方法。图22是示出图I(lv→rv-1)的生成处理的流程的说明图。
集合(lv→rv-1)的元素被排列在线上使得包含关系在水平线上从左向右变大。最左边的坐标点是起始点。在最右边的坐标点的右侧布置两个临时坐标点(S140)。从起始点到最右边的临时坐标点的长度变成Lv=rv-lv+1。此外,计算满足n(x-1)/k<Lv≤nx/k的整数x(1≤x≤k)。在将计数器i从0移向x-1的同时,执行以下操作。从临时起始点开始,连续进行从这样的坐标点向隔开ni/k的坐标点的跳,直到到达临时坐标点或下一跳超过临时坐标点为止。之后,生成与各跳对应的有向分支(S142)。然后,取消到达临时坐标点的所有有向分支(S144)。如果多个有向分支到达某一坐标点T,则除了具有最长跳距离的有向分支以外的有向分支都被取消(S146)。
通过针对根据本实施例的密钥分发服务器202的功能配置描述的上述配置,可以生成A06(B)系统的图I。在图20和图21中示出了图I的示例。图20是示出订约方数n=64并且参数k=6的条件下所生成的图I的说明图。图21是示出在订约方数n=64并且参数k=3的条件下所生成的图I的说明图。
[终端设备222的功能配置]
现在,将参考图23描述根据本实施例的终端设备222的功能配置。图23是示出终端设备222的功能配置的说明图。
如图23中所示,终端设备222主要包括通信单元124、判断单元126、图生成单元227、密钥生成单元128和解密单元130。本实施例的特征配置主要在于图生成单元227,并且其它组件和根据第一实施例的终端设备122的组件相同。因此,将只详细描述图生成单元227的功能配置。
(图生成单元227)
将首先描述图生成单元227的功能配置。图生成单元227具有在由密钥分发服务器202用来导出组密钥的图I中仅生成导出它所属的子集组密钥的有向路径的功能。即,图生成单元227可以生成图G,图G仅由使得能够导出必要的组密钥的有向路径构成。
(图G的生成方法)
将参考图26和图27详细描述图G的生成方法。图26和图27是示出用于生成图G的处理的流程的说明图,图G由订约方i用来导出该订约方所属的子集Sj的组密钥k(Sj)。
在图26的最下面和图27的最上面描述的A、B、C、D、E、F中的每一个符号都是用于明确指示图26和图27中的处理的转变的移动目的地的符号。例如,假定:到达图26的A的步骤已经到达图27的A。
终端设备222事先保存订约方数目n和参数k的信息。图G由坐标点的集合V(G(i))和有向分支的集合E(G(i))构成,并且被表示为G(i)={V(G(i),E(G(i)))。如果图G(i)中所包含的坐标点是一,则有向分支的集合E(G(i))表示为E(G(i))=φ(符号φ是空集)。[a,b]×[a,c]表示其中起始端的坐标点是[a,b]并且结束端的坐标点是[a,c]的有向分支。为了便于说明,假定等式(18)的信息是从密钥分发服务器202获得的。
[等式15]
sgi={{S1=[SP1,TP1],EP1},...,{Sy=[SPy,TPy],EPy}},
h = { E k ( S 1 ) ( s ) , . . . , E k ( S y ) ( s ) } , . . . ( 18 )
Es(M)
如图26中所示,判定在由通信单元124获得的与被允许订约方的子集相关的信息sgi中是否存在包括它(订约方i)的子集Sj(j∈Sj)(S502)。如果存在子集Sj,则处理进行到步骤S504。如果不存在子集Sj,则假定订约方被取消(无权获取内容)终止生成图G的处理。步骤S502的处理主要由判断单元126执行。
然后,图生成单元227判断订约方的编号i是否匹配TPj(S504)。如果i=TPj,则当订约方i导出组密钥时生成的图G(i)={V(G(i),E(G(i))}被输出为V(G(i))={[SPj,i]},E(G(i))=φ(S540),并且图G的生成处理结束。如果不是i=TPj,则处理进行到步骤S506。
图生成单元227以以下方式初始化订约方i的当前位置的坐标cup、正在考虑的当前范围的起始点的坐标sp和结束点的坐标ep、计数器m、坐标点的集合V(G(i))以及有向分支的集合E(G(i))(S506)。
sp=SPj,ep=EPj,cup=i,m=1,V(G(i))=φ,E(G(i))=φ。这里,j表示满足i∈Sj的子集Sj的索引。
然后,图生成单元227判断SPj=1是否成立(S508)。如果SPj=1,则处理进行到步骤S510。然后,图生成单元227计算Lv=|EPj-SPj|+1(S510),并且之后,处理进行到步骤S514。如果SPj=1不成立,则处理进行到步骤S512。图生成单元227计算Lv=|EPj-SPj|+2(S512),并且之后,处理进行到步骤S514。
图生成单元227计算满足n(x-1)/k<Lv≤nx/k的x(1≤x≤k)(S514)。图生成单元227判断cup=TPj是否成立(S516)。如果cup=TPj,则处理进行到步骤S538。输出由订约方i用来导出子集的密钥所使用的图G{V(G(i)),E(G(i))}(S538),并且结束图G的生成处理。
如果cup=TPj不成立,则处理进行到步骤S518。然后,图生成单元227确定从sp到ep的跳数变成最小值的最大有向路径(MP;MaxPath)(S518)。以下将描述该处理。
然后,图生成单元227指定MP上存在的各个有向分支中起始点与结束点之间的、包含坐标点[SPj,cup]的有向分支(S520)。然而,还包括起始点或结束点的坐标点与坐标点[SPj,cup]匹配的情况。指定的有向分支称为CUE(当前用户的边缘)。如果在MP上存在坐标点[SPj,cup]并且坐标点[SPj,cup]与两个相邻有向分支的起始点和结束点相匹配,则假定将坐标点[SPj,cup]作为起始点的有向分支作为CUE。
如果坐标点[SPj,TPj]不与CUE的结束端匹配并且不比CUE的结束端更接近图I的结束点侧,则图生成单元227进行到步骤S532(S522)。如果坐标点[SPj,TPj]匹配CUE的结束端或比CUE的结束端更接近图I的结束点侧,则处理前进到步骤S524(S522)。
然后,图生成单元227如下设置V(G(i))和E(G(i))(S524)。
如果V(G(i))=φ,则V(G(i))=[SPj,spi,m]∪[SPj,epi,m]。如果V(G(i))=φ不成立,则V(G(i))=V(G(i))∪[SPj,epi,m]。并且,E(G(i))=E(G(i))∪{[SPj,spi,m]×[SPj,epi,m]。
这里,spi,m、epi,m表示当前CUE的起始端和结束端的坐标。因为以下原因,该处理对于当V(G(i))=φ时和当V(G(i))=φ不成立时是不同的。如果V(G(i))=φ,则有向分支的起始端和结束端都被添加作为坐标点,但是如果V(G(i))=φ不成立,则要被添加的有向分支的起始端已经作为V(G(i))的坐标点被添加,因此仅结束端的坐标点被添加到V(G(i))以避免冗余。
图生成单元227将m+1代入m(S526)。图生成单元227判定CUE的下一个有向分支(将CUE的结束端作为起始端的有向分支)是否存在(S528)。如果CUE的下一个有向分支存在,则处理进行到步骤S530,MP上存在的CUE的下一个有向分支被设为新的CUE,并且该处理返回步骤S522的处理。如果CUE的下一个有向分支不存在,则处理进行到步骤S532。
然后,图生成单元227将CUE的起始端的坐标设为sp,并将CUE的结束端前一个点处的坐标点的坐标设置为ep(S532)。然后,图生成单元227判断m=1是否成立(S534)。如果m=1,则处理返回步骤S516的处理。如果m=1不成立,则处理进行到步骤S536。
图生成单元227设置cup=epi,(m-1)(S536),并且返回步骤S516的处理。
已经描述了根据本实施例的图G的生成方法。在上述生成方法中,进行这样的假设:与图I的结束点相关的信息EPj被包含在sgi中,但是订约方可以指定EPj,因为在SPj被确定之后,可以通过逻辑二叉树BT唯一指定EPj。这样的配置是通过向步骤S506的处理添加导出EPj的步骤来实现的。
(最大有向路径MP的确定方法)
现在将参考图28来描述图26的步骤S518中的最大有向路径MP的确定方法。图28是示出最大有向路径MP的确定方法的流程的说明图。
如图28中所示,图生成单元227首先如下对计数器1、当前正在考虑的跳的到达点的坐标tsp和当前正在考虑的距离dt进行初始化(S552)。1=x,tsp=sp,dt=|ep-tsp|。
然后,图生成单元227将1-1代入1(S554)。图生成单元227判断1≥0是否成立(S556)。如果1≥0不成立,则处理进行到步骤S566,将由至少一个从坐标点[SPj,sp]到[SPj,ep]的有向分支的链形成的有向路径设置为MP(S566),并且结束MP的确定处理。如果1≥0,则处理进行到步骤S558。
然后,图生成单元227判断dt-n1/k≥0是否成立(S558)。如果dt-n1/k≥0不成立,则处理返回步骤S554的处理。如果dt-n1/k≥0,则处理进行到步骤S560。
图生成单元227将[SPj,tsp]作为出发点执行距离为n1/k的跳,并且生成对应的有向分支(S560)。然后,图生成单元227将步骤S560中所生成的有向分支的结束端的坐标新设置为tsp(S562)。然后,图生成单元227将dt-n1/k代入dt(S564),并且返回步骤S558的处理。
以上已经描述了最大有向路径MP的确定方法。图G的生成处理可以通过上述确定处理来执行。
(特定示例)
将参考图24和图25描述基于上述生成方法由图生成单元227生成的图G的特定示例。图24和图25是示出当订约方数为n=64并且参数k=6时所生成的图G的说明图。具体地,仅示出与集合(1→64)对应的图。图24和图25的上面画出的图是当使用AI06(B)系统的算法时由订约方导出的图I。在下面画出的图是当使用本实施例的方法时由订约方导出的图G。
(特定示例1)
首先,参考图24示出为订约方1用来导出子集[1,2]的组密钥而生成的图G。图中的实线示出当订约方1推导组密钥时与最终导出的跳对应的有向分支。即,当推导子集[1,2]的组密钥时,订约方1向PRSG输入与用实线示出的有向分支的起始端对应的中间密钥t([1,1]),并且导出与其结束端对应的t([1,2])。此外,由实线和虚线构成的图G表示要由订约方1导出的最大有向路径MP。
(特定示例2)
参考图25示出为订约方7用来生成子集[1,44]的组密钥的而生成的图G。图中的实线示出当订约方7推导组密钥时与最终导出的跳对应的有向分支。即,当推导子集[1,44]的组密钥时,订约方7使用其事先保存的中间密钥key t([1,33])并且沿用实线示出的有向分支重复执行PRSG来导出中间密钥t([1,44])。此外,由实线和虚线构成的图G表示要由订约方7导出的最大有向路径MP。
(密钥生成方法)
将参考图16描述根据本实施例的密钥生成方法。根据本实施例的密钥生成单元128的功能配置与根据第一实施例的密钥生成单元128基本相同,但是不同在于在密钥生成中所要参考的图的形状不同。
首先,将参考图20和图24来描述订约方7导出子集[1,44]的组密钥的步骤。参考图20,显然,订约方7属于与7个图I(1→64)、I(2←64)、I(2←32)、I(2←16)、I(2←8)、I(6→7)、I(7→7)的元素对应的子集。在它们中,在图I(1→64)中存在订约方7所属的子集,即,作为其中订约方7不属于与这样子集的父对应的子集的4个子集[1,7]、[1,9]、[1,17]、[1,33]。因此,对于图I(1→64),在系统建立时向订约方7提供中间密钥t([1,7])、t([1,9])、t([1,17])、t([1,33])。对于其它图I(2←64)、I(2←32)、I(2←16)、I(2←8)、I(6→7)、I(7→7),还提供了类似的预定中间密钥。
首先,订约方7利用图生成单元227的功能来生成图24中的下面的图(本发明的系统)中所示的图G。之后,订约方7通过以下处理(参见图16)来获得子集[1,44]的组密钥k([1,44])。
首先,首先检查i=TPj的TPj是否存在并且将计数器1初始化为一。之后,从订约方事先保存的中间密钥t([1,7])、t([1,9])、t([1,17])、t([1,33])中指定与子集[1,33]对应的中间密钥t([1,33]),然后将t([1,33])设置为CTK,其中子集[1,33]与第一有向分支[1,1]×[1,33]∈E(G(7))的结束端的坐标匹配。
然后,检查下一个有向分支的存在。在这种情况中,由于在当前时间点存在有向分支[1,33]×[1,41]∈E(G(7)),所以CTK=t([1,33])被输入PRSG,并且获得如等式(19)中所示的(k+1)*λ比特的输出。
[等式16]
t([1,34])||t(1,35)||t(1,37)||t([1,41])||t([1,49])||t([1,65])||k([1,33])←PRSG(t([1,33]))
...(19)
这里,t([1,65])表示哑中间密钥(dummy intermediate key),因此实际不被使用。因此,在计数器1递增之后,从输出中间密钥来确定要使用的中间密钥。随着计数器1递增并且变成1=2,对于有向分支[1,33]×[1,41]∈E(G(7))确定满足|41-33|=8=23=np/k的p(p=3)。响应于这样的结果,从等式(19)的输出获得t([1,41]),并且CTK被更新为t([1,41])。类似地,检查有向分支[1,41]×[1,43]∈E(G(7))的存在,CTK被输入PRSG,并且获得等式(20)的输出。
[等式17]
t ( [ 1,42 ] ) | | t ( [ 1,43 ] ) | | t ( [ 1,45 ] ) | | t ( [ 1,49 ] ) | | t ( [ 1,57 ] ) | | t ( [ 1,73 ] ) | | k ( [ 1,41 ] ) &DoubleLeftArrow; PRSG ( t ( [ 1,41 ] ) ) . . . ( 20 )
然后,计数器1被设为1=3,对于有向分支[1,41]×[1,43]∈E(G(7))计算出p=1,并且之后CTK被更新为t([1,43])。以上处理被重复执行一次,以获得下一个有向分支不存在的状态。在这种情况中,CTK=t([1,44]),因此通过向PRSG输入CTK而输出的值中的k*λ+1th位到(k+1)*λth位被提取作为组密钥k([1,44])。
如上所述,订约方7可以使用订约方所保存的中间密钥来获得子集[1,44]的组密钥k([1,44])。因此,各个订约方可以使用订约方所保存的中间密钥来计算所希望的组密钥。
[效果]
本实施例提供了这样的手段:当各个订约方推导该订约方所属的子集组密钥时,使用从A06(B)系统的图生成方法改进的图生成方法,来生成只包含各个订约方所需要的有向分支的新的图G。将通过比较由A06(B)系统生成的图I的有向分支数和由本实施例的系统所生成的图G的有向分支数来阐明本实施例的效果。
在A06(B)系统中,每个订约方要导出组密钥,需要最多n-1个有向分支。另一方面,在本实施例的系统中,用以下等式(21)来表示当有向分支数变成最大值时(当订约方1导出与子集[1,2]对应的组密钥时)的有向分支数。
[等式18]
kt + ( kt - t ) + . . . + t
= &Sigma; i = 1 k ( k + 1 - i ) t . . . ( 21 )
= k ( k + 1 ) 2 &CenterDot; ( n 1 / k - 1 )
例如,当订约方的数目是n=232并且参数是k=32时,在A06(B)系统中需要n-1=4294967295个有向分支,而在本实施例中只需要k*(k+1)*(n1/k-1)/2=528个有向分支。即,在这种情况中,大约八百万分之一的计算量就足够了。在图24的图的示例中,在图I(1→64)中需要n-1=63个有向分支,而在图G(1→64)中只导出12个有向分支。在图24的情况中,订约方实际生成的有向分支数只有4。结果,各个订约方可以通过应用本实施例来高效生成所希望的图G,并且可以高速导出密钥。
<第三实施例>
以下,将详细描述根据本发明第三实施例的密钥提供系统100的配置和与该密钥分发相关的特定系统。与根据第一实施例的密钥提供系统100基本相同的组件被标注相同的标号以省略多余描述,并且将详细描述不同的组件。本实施例的特征在于:终端设备包括用于高效生成A06(A)系统的密钥提供系统100中的图的手段。
[第三实施例的特征]
将简要描述本发明的第三实施例和第一实施例之间的差异。首先,第一实施例和本实施例的最大差别在于本发明的技术所应用到的密钥分发系统。第一实施例适用于AI05系统,而本实施例适用于A06(A)系统。在与第二实施例相关的描述中,已经具体描述了AI05系统的问题,A06(A)系统提供用于解决要由订约方保存的密钥数很大的问题之一的手段。A06(A)系统的特征在于这样的配置:在不超过AI05系统的图H中构成有向路径的有向分支数目最大的最长有向路径的有向分支数目的条件下,替换构成图的有向分支的长度以变短,即,A06(A)系统在保持与AI05系统相同程度的计算量的同时,减少了要由各个订约方保存的密钥数。然而,和AI05系统和A06(B)系统类似,要由各个订约方保存或计算的图的信息非常大,其中,共同的问题在于难以在一般的终端设备中实现。
(本实施例的目的)
本实施例的一个目的是提供这样的手段:在基于A06(A)系统的图I的密钥提供系统100中,通过只生成各个订约方需要的图的信息而大大减少各个订约方的计算负荷。
[密钥提供系统100的配置]
将描述根据实施例的密钥提供系统100的配置。基本系统配置与图1中所示的第一实施例的配置基本相同,并且因此将省略详细描述。布置在根据本实施例的密钥提供系统100中的密钥分发服务器302和终端设备322的硬件配置也与图2中所示的密钥分发服务器102和终端设备122的硬件配置基本相同,因此将省略对它们的详细描述。
[密钥分发服务器302的功能配置]
将参考图29描述根据本实施例的密钥分发服务器302的功能配置。图29是示出密钥分发服务器302的功能配置的说明图。
如图29中所示,密钥分发服务器302主要包括以下单元:树结构设置单元104、坐标轴设置单元106、临时图生成单元308、图生成单元310、初始中间密钥设置单元112、密钥生成单元114、加密单元116、通信单元118和子集确定单元120。本实施例的特征配置主要在于临时图生成单元308和图生成单元310,其它组件和根据第一实施例的密钥分发服务器102的组件基本相同。因此,将仅详细描述临时图生成单元308和图生成单元310的功能配置。
(临时图生成单元308)
首先,将描述临时图生成单元308的功能配置。临时图生成单元308具有与根据第一实施例的图生成单元110基本相同的功能配置,并且具有生成形状与AI05系统的图H相同的临时图I’的功能。例如,在n=64和参数k=6的情况中,临时图I’与图5中所示的图H匹配。
(图生成单元310)
现在,将描述图生成单元310的功能配置。图生成单元310具有通过替换构成临时图I’的多个有向分支中的某些有向分支来生成图I的功能。首先,图生成单元310选择临时图I’中所包含的有向路径中、构成有向路径的有向分支的数目最大的有向路径。这样的有向路径称为最长有向路径LP(最长路径)。图生成单元310在所有有向路径的有向分支的数目不超过最长有向路径LP的有向分支的数目的条件下,用由多个较短的有向分支的链构成的有向路径替换临时图I’中所包含的有向路径中的某些有向路径来生成图I。
(图I的生成方法)
现在,将参考图30至图34来描述图I的生成方法。图30是示出用于生成图I的处理的整个流程的说明图。图31是示出临时图I’的生成处理的说明图。图32是示出用于提取最长有向路径LP的处理的流程的说明图。图33是示出用于从有向路径中提取除了最长有向路径LP以外的最长长度的有向路径PLP(部分最长路径,Partially Longest Path)的处理的流程的说明图。图34是示出用由一组较短有向分支构成的有向路径替换临时图I’的有向路径的处理的说明图。
如图30中所示,首先由临时图生成单元308生成临时图I’(S140)。然后,从形成图I’的有向路径中提取最长的有向路径LP(S142)。从除了临时图I’的最长有向路径LP以外的有向路径中提取最长长度的有向路径PLP(S144)。可以针对与各个子集对应的临时图I’提取最长长度的有向路径PLP。然后,用较短的有向分支替换构成临时图I’的有向路径的有向分支(S146)。在这种情况中,有向分支被替换使得所有有向路径的有向分支的数目不超过最长有向路径LP的有向分支的数目。即,即使这样的替换处理被执行,用于生成密钥的计算量的最坏值也不会比AI05系统多。
以下将更具体地描述图30中所示的各个步骤。
(S140的细节)
首先,将参考图31描述临时图I’的生成处理。图31是示出临时图I’(lv→rv-1)的生成处理的流程的说明图。
首先,集合(lv→rv-1)的元素被排列在线上使得包含关系在水平线上从左向右变大。在最右边的坐标点的右侧和左侧各布置一个临时坐标点(Start,End)。从最左边的临时坐标点Start到最右边的临时坐标点End的长度变成Lv=rv-lv+1。此外,计算满足n(x-1)/k<Lv≤nx/k的整数x(1≤x≤k)(S150)。该处理主要由坐标轴设置单元106执行。
在将计数器i从0移向x-1的同时,执行以下操作。从临时起始点Start开始,连续执行从这样的坐标点到隔开ni/k的坐标点的跳,直到到达临时坐标点End或下一次跳超过临时坐标点End为止。之后,生成与各次跳对应的有向分支(S152)。然后,取消到达临时坐标点的所有有向分支(S154)。如果多个有向分支到达某一坐标点T,则除了具有最长跳距离的有向分支以外的有向分支都被取消(S156)。该处理主要由临时图生成单元308执行。
(S142的细节)
将参考图32详细描述提取最长有向路径LP的步骤(S160)。引入以下两个标记。
DDT:最长有向路径LP的有向分支的数目
J(a,b):连续存在a个长度为b的有向分支
首先,t=n1/k-1。然后,考虑从临时图I’(1→n)的坐标点[1,1]到坐标点[1,n]的有向路径P([1,1],[1,n])。有向路径P([1,1],[1,n])表示为J(t,1)、J(t,n1/k)、...、J(t,n(k-2)/k)、J(t-1,n(k-1)/k)、J(t,n(k-2)/k)、...、J(t,n1/k)、J(t+1,1)。该有向路径称为最长有向路径LP。最长有向路径LP的有向分支的数目DDT变成DDT=(2k-1)*(n1/k-1)。对构成最长有向路径LP的所有有向分支设置active标志(S160)。
(S144的细节)
以下,将参考图33描述对除了包含最长有向路径LP的临时图I’以外的、与所有子集对应的临时图I’,提取最长长度的有向路径PLP的处理(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,并且对当前路径CP中所包含的所有有向分支设置active标志(S176)。如果J>1,判断#JP(CP)+t≤DDT是否成立(S168)。如果#JP(CP)+t≤DDT不成立,当前路径CP被确定为有向路径PLP,并且对当前路径中所包含的所有有向分支设置active标志(S176)。如果#JP(CP)+t≤DDT,则计算满足J=nj/k的自然数j(S170)。
提取当前路径CP中所包含的长度为J的有向分支中、距离当前路径CP的起始点最远的有向分支(S172)。紧接从在步骤S172中所提取的有向分支的起始点延伸的t个长度为n(j-1)/k的有向分支之后添加一个长度为n(j-1)/k的有向分支,去除步骤S172中所提取的有向分支(S174),并且处理返回步骤S162以重复执行以上处理。
当从图I’的起始点到结束点的所有有向路径都由长度为1的有向分支构成时,或当通过执行对较大数目的有向分支的替换而使构成有向路径的有向分支数超过DDT时,结束步骤S162和步骤S174之间的循环处理。
(S146的细节)
以下将参考图34详细描述利用短有向分支来替换临时图I’中所包含的有向分支的处理(S180至S202)。
首先,从图中的active和未执行(没有完成(done)标志)的有向分支中提取长度J’最长的有向分支。如果最大有向分支存在多个,则选择距离临时图I’的起始点最远的有向分支(S180)。所选择的有向分支称为WJ(工作跳,Working Jump)。有向分支WJ的起始点是WJS并且结束点是WJE。在从临时图I’的起始点到WJS的有向路径中所包含的有向分支的数目标为D。
判断有向分支的长度J’是否是J’≤1(S182)。如果J’≤1,则取消所有没有ative标志的有向分支,并且将所有具有active标志的有向分支的集合设置为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中所包含的所有有向分支给予active标志(S198)。对WJ给予done标志(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中提取出的有向分支的起始点延伸的n1/k-1个长度为n(j-1)/k的有向分支之后添加一个长度为n(j-1)/k的有向分支,并且取消步骤S194中所提取出的有向分支(S196)。然后,处理返回步骤S184的处理。
当从WJS到WJE-1的所有有向路径都由长度为1的有向分支构成时,或当通过较大数目的有向分支的替换而在从WJS到WJE-1的有向路径中所包含的有向分支的数目超过DDT时,结束步骤S184与步骤S196之间的循环处理。在从临时图I’中所包含的有向分支中取消了所有未被设置done并且所具有的长度大于等于2的有向分支时,结束步骤S180和S200之间的循环处理。
以上已经描述了根据本实施例的图I的生成方法。
[终端设备322的功能配置]
现在,将参考图35描述根据本实施例的终端设备322的功能配置。图35是示出终端设备322的功能配置的说明图。
如图35中所示,终端设备322主要包括通信单元124、判断单元126、图生成单元327、密钥生成单元128和解密单元130。本实施例的特征配置主要在于图生成单元327,并且其它组件和根据第一实施例的终端设备122的组件相同。因此,将只详细描述图生成单元327的功能配置。
(图生成单元327)
将首先描述图生成单元327的功能配置。图生成单元327具有在由密钥分发服务器302用来导出组密钥的图I中仅生成导出它所属的子集组密钥的有向路径的功能。即,图生成单元327可以生成图G,图G仅由使得能够导出必要的组密钥的有向路径构成。
(图G的生成方法)
将参考图38和图39详细描述图G的生成方法。图38和图39是示出用于生成图G的处理的流程的说明图,图G由订约方i用来导出该订约方所属于的子集Sj的组密钥k(Sj)。
在图38的最下面和图39的最上面描述的A、B、C、D、E、F中的每一个符号都是用于明确指示图38和图39中的处理的转变的移动目的地的符号。例如,假定:到达图38的A的步骤已经到达图39的A。
终端设备322事先保存订约方数的目目n和参数k的信息。图G由坐标点的集合V(G(i))和有向分支的集合E(G(i))构成,并且被表示为G(i)={V(G(i),E(G(i)))。如果图G(i)中所包含的坐标点是一,则有向分支的集合E(G(i))表示为E(G(i))=φ(符号φ是空集)。[a,b]×[a,c]表示起始点的坐标点是[a,b]并且结束点的坐标点是[a,c]的有向分支。为了便于说明,假定等式(22)的信息是从密钥分发服务器102获得的。
[等式19]
sgi={{S1=[SP1,TP1],EP1},...,{Sy=[SPy,TPy],EPy}},
h = { E k ( S 1 ) ( s ) , . . . , E k ( S y ) ( s ) } , . . . ( 22 )
Es(M)
如图38中所示,判定在由通信单元124获得的与被允许订约方的子集相关的信息sgi中是否存在包括它(订约方i)的子集Sj(j∈Sj)(S822)。如果存在子集Sj,则处理进行到步骤S824。如果不存在子集Sj,则假定订约方被取消(无权获取内容)因此生成图G的处理被终止。步骤S822的处理主要由判断单元126执行。
然后,图生成单元327判断订约方的编号i是否匹配TPj(S824)。如果i=TPj,则当订约方i导出组密钥时生成的图G(i)={V(G(i),E(G(i))}被输出为V(G(i))={[SPj,i]},E(G(i))=φ(S880),并且图G的生成处理结束。如果不是i=TPj,则处理进行到步骤S826。
图生成单元327以以下方式初始化订约方i的当前位置的坐标cup、正在考虑的当前范围的起始点的坐标sp和结束点的坐标ep、计数器m、计数器z、当前路径中的有向分支数ddT、坐标点的集合V(G(i))以及有向分支的集合E(G(i))(S826)。
sp=SPj,ep=EPj,cup=i,m=1,z=0,ddT=DDT=(2k-1)*(n1/k-1),V(G(i))=φ,E(G(i))=φ。这里,j表示满足i∈Sj的子集Sj的索引。
然后,图生成单元327判断SPj=1是否成立(S828)。如果SPj=1,则处理进行到步骤S830。然后,图生成单元327计算Lv=|EPj-SPj|+1,并且将ep-1代入ep(S830),并且之后,处理进行到步骤S834。如果SPj=1不成立,则处理进行到步骤S832。图生成单元327计算Lv=|EPj-SPj|+2(S832),并且之后,处理进行到步骤S834。
图生成单元327计算满足n(x-1)/k<Lv≤nx/k的x(1≤x≤k)(S834)。图生成单元327判断cup=TPj是否成立(S836)。如果cup=TPj,则处理进行到步骤S878。输出由订约方i用来导出子集的密钥所使用的图G{V(G(i)),E(G(i))}(S878),并且结束图G的生成处理。
如果cup=TPj不成立,则处理进行到步骤S838。然后,图生成单元327判断z=0是否成立(S838)。如果z=0,处理进行到步骤S840。如果z=0不成立,则处理进行到步骤S846,确定从sp到达ep的跳的数目变成最小值的最大有向路径(MP;MaxPath)(S846)。以下,将描述该处理。
然后,图生成单元327判断SPj<EPj是否成立(S840)。如果SPj<EPj,则处理进行到步骤S842。这里,sp如在等式(23)中被设置(S842),并且处理进行到步骤S846。如果SPj<EPj不成立,处理进行到步骤S844。这里,如等式(24)中设置sp(S844),并且处理进行到步骤S846。
[等式20]
Figure G200880009041XD00621
Figure G200880009041XD00622
然后,图生成单元327确定从sp到ep的有向路径中、跳的数目变成最小值的有向路径作为MP(MaxPath)以匹配AI06(A)系统中的图I的一部分(S846)。以下,将描述用于确定MP的处理。
然后,图生成单元327判断z=0是否成立(S848)。如果z=0不成立,则处理进行到步骤S858。如果z=0,则处理进行到步骤S852。MP上的有向分支数为w,并且将把[SPj,sp]作为起始端的有向分支作为第一有向分支,MP上的第i个有向分支距离定义为dti。这里,dtw+1=0。将[SPj,SPj]作为起始点,在将计数器i从w移向1的同时,执行距离为dti的跳,并且生成与此对应的有向分支。在这种情况中,应当注意,在第i跳中的到达点是第i-1次跳的出发点。此外,步骤S846中所确定的MP和这里(S852)所生成的有向分支被设为新的MP并且z=1,sp=SPj,ep=EPj(S852)。
然后,图生成单元327判断SPj=1是否成立(S854)。如果SPj=1不成立,则处理进行到步骤S858。如果SPj=1,则处理进行到步骤S856。然后,图生成单元327向MP添加有向分支[SPj,EPj-1]×[SPj,EPj]来获得新的MP(S856)。
图生成单元327确定CP,在CP中,与A06(A)系统的图I的一部分相匹配的MP上的有向分支被用在不超过ddT的范围内尽可能短的有向分支替换(S858)。之后,将详细描述CP的确定处理。
图生成单元327指定CP上存在各个有向分支中、在起始端和结束端之间包含坐标点[SPj,cup]的有向分支(S860)。然而,还包括起始端或结束端的坐标点与坐标点[SPj,cup]匹配的情况。指定的有向分支称为CUE(当前用户的边缘)。如果在CP上存在坐标点[SPj,cup]并且坐标点[SPj,cup]与两个相邻有向分支的起始端和结束端相匹配,则假定将坐标点[SPj,cup]作为起始点的有向分支作为CUE。在CP上,从[SPj,cup]到CUE的起始点存在的有向分支的数目是d,并且ddT-d被代入ddT
如果坐标点[SPj,TPj]不与CUE的结束端匹配并且不比CUE的结束端更接近图I的结束点侧,则图生成单元327进行到步骤S872。如果坐标点[SPj,TPj]匹配CUE的结束端或比CUE的结束端更接近图I的结束点侧,则处理前进到步骤S864(S862)。
然后,图生成单元327如下设置V(G(i))和E(G(i))(S864)。
如果V(G(i))=φ,则V(G(i))=[SPj,spi,m]∪[SPj,epi,m]。如果V(G(i))=φ不成立,则V(G(i))=V(G(i))∪[SPj,epi,m]。此外,E(G(i))=E(G(i))∪{[SPj,spi,m]×[SPj,epi,m]。
这里,spi,m、epi,m表示当前CUE的起始端和结束端的坐标。因为以下原因,该处理对于当V(G(i))=φ时和当V(G(i))=φ不成立时是不同的。如果V(G(i))=φ,则有向分支的起始端和结束端都被添加作为坐标点,但是如果V(G(i))=φ不成立,则要被添加的有向分支的起始端已经被添加作为V(G(i))的坐标点,因此仅结束端的坐标点被添加到V(G(i))以避免冗余。
图生成单元327将m+1代入m(S866)。图生成单元327判定在CP上是否存在CUE的下一个有向分支(将CUE的结束端作为起始端的有向分支)(S868)。如果CUE的下一个有向分支存在,则处理进行到步骤S870,CP上存在的CUE的下一个有向分支被设为新的CUE,并且该处理返回步骤S862的处理。如果CUE的下一个有向分支不存在,则处理进行到步骤S872。
然后,图生成单元327将CUE的起始端的坐标设置到sp,并将位于比CUE的结束端靠前一个点的坐标点的坐标设置到ep,其中,从CP的起始端到CUE的结束端存在的有向分支的数目是d,并且ddT-d被代入ddT(S872)。然后,图生成单元327判断m=1是否成立(S874)。如果m=1,则处理返回步骤S862的处理。如果m=1不成立,则处理进行到步骤S876。
图生成单元327设置cup=epi,(m-1)(S876),并且返回到步骤S836的处理。
已经描述了根据本实施例的图G的生成方法。在上述生成方法中,进行这样的假设:与图I的结束端相关的信息EPj被包含在sgi中,但是订约方可以指定EPj,因为在SPj被确定之后,可以通过逻辑二叉树BT唯一指定EPj。这样的配置是通过向步骤S826的处理添加导出EPj的步骤来实现的。
(最大有向路径MP的确定方法)
现在将参考图40描述图38的步骤S846中的最大有向路径MP的确定方法。图40是示出最大有向路径MP的确定方法的流程的说明图。
如图40中所示,图生成单元327首先将如下对计数器1、当前正在考虑的跳的到达点的坐标tsp和当前正在考虑的距离dt进行初始化(S882)。1=x,tsp=sp,dt=|ep-tsp|。
然后,图生成单元327将1-1代入1(S884)。图生成单元327判断1≥0是否成立(S886)。如果1≥0不成立,则处理进行到步骤S896,将由至少一个从坐标点[SPj,sp]到[SPj,ep]的有向分支的链形成的有向路径设置为MP(S896),并且结束MP的确定处理。如果1≥0,则处理进行到步骤S888。
然后,图生成单元327判断dt-n1/k≥0是否成立(S888)。如果dt-n1/k≥0不成立,则处理返回步骤S884的处理。如果dt-n1/k≥0,则处理进行到步骤S890。
图生成单元327将[SPj,tsp]作为出发点执行距离为n1/k的跳,并且生成对应的有向分支(S890)。然后,图生成单元327将步骤S890中所生成的有向分支的结束点的坐标新设置为tsp(S892)。然后,图生成单元327将dt-n1/k代入dt(S894),并且返回步骤S888的处理。
以上已经描述了最大有向路径MP的确定方法。
(当前路径CP的确定方法)
现在,将参考图41描述当前路径CP的确定方法。图41是示出CP的确定处理的流程的说明图。
如图41中所示,图生成单元327提取MP中所包含的有向分支中、距离为最大值的有向分支,并且将该距离设为J(S902)。然后,图生成单元327判断有向分支的长度J是否是J≤1(S904)。如果J≤1,则处理进行到步骤S914,确定从坐标点[SPj,sp]到[SPj,ep]的有向路径作为CP(S914),并且结束CP的确定处理。如果J≤1不成立,则处理进行到步骤S906。
然后,图生成单元327判断#JP(MP)+t≥ddT是否成立(S906)。如果#JP(MP)+t≥ddT,则处理进行到步骤S908。如果#JP(MP)+t≥ddT不成立,则处理进行到步骤S914,并且确定从坐标点[SPj,sp]到[SPj,ep]的有向路径作为CP(S914),并且结束CP的确定处理。
然后,图生成单元327获得满足J=nj/k的j(S908)。图生成单元327提取MP中所包含的距离为J的有向分支中、距离MP的起始点最远的位置处的有向分支(S910)。紧接在从步骤S910中所提取的有向分支的起始点开始的t个现有距离为n(j-1)/k的有向分支之后生成距离为n(j-1)/k的有向分支,并且取消步骤S910中所提取的有向分支。有向分支被替换的MP被设为新的MP(S912),并且处理返回步骤S902的处理。
以上已经描述了当前路径CP的确定方法。可以根据上述确定处理来执行图G的生成处理。
(特定示例)
将参考图36和图37来描述基于上述生成方法由图生成单元327生成的图G的特定示例。图36和图37是示出当订约方数为n=64并且参数k=6时所生成的图G的说明图。具体地,仅示出与集合(1→64)对应的图。图36和图37的上面画出的图是当使用AI06(A)系统的算法时由订约方导出的图I。在下面画出的图是当使用本实施例的方法时由订约方导出的图G。
(特定示例1)
首先,参考图36示出为订约方1用来生成子集[1,2]的组密钥而生成的图G。图中的实线示出当订约方1推导组密钥时最终导出的有向分支。即,当推导子集[1,2],的组密钥时,订约方1向PRSG输入与用实线示出的有向分支的起始端对应的中间密钥t([1,1]),并且导出与其结束端对应的t([1,2])。此外,由实线和虚线构成的图G表示要由订约方1导出的最大有向路径CP。
(特定示例2)
参考图37示出为订约方7用来生成子集[1,44]的组密钥而生成的图G。图中的实线示出与当订约方7推导组密钥时最终导出的跳相对应的有向分支。即,当推导子集[1,44],的组密钥时,订约方7使用其事先保存的中间密钥t([1,8])并且沿用实线示出的有向分支重复执行PRSG来导出中间密钥t([1,44])。此外,由实线和虚线构成的图G表示要由订约方7导出的最大有向路径CP。
[效果]
在相关技术中,各个订约方保存与其所属的子集对应的所有图I或者自己导出所有图I。然而,本实施例提供了这样的手段:各个订约方在导出与其所属的子集对应的图I的密钥时,导出仅由必要的有向分支构成的图G。因此,与相关技术的密钥分发系统比较,大大减少了要由各个订约方计算的有向分支的数目,并且各个订约方可以高速生成图G并且导出所希望的组密钥。结果,可以大大减少用于对内容进行解密的时间。
<第四实施例>
以下,将详细描述根据本发明第四实施例的密钥提供系统100的配置和与密钥分发相关的特定系统。与根据第一实施例的密钥提供系统100基本相同的组件被标注相同的标号以省略多余描述,并且将详细描述不同的组件。本实施例的特征在于:终端设备包括用于高效生成A06(A+B)系统的密钥提供系统100中的图的手段。
[第四实施例的特征]
将简要描述本发明的第四实施例和第一实施例之间的差异。首先,第一实施例与本实施例的最大不同在于本发明的技术所应用于的密钥分发系统的不同。第一实施例适用于AI05系统,而本实施例适用于A06(A+B)系统。与A06(B)系统类似,A06(A+B)的特征在于具有这样的配置:使用较长的有向分支来生成临时图,并且,在不超过临时图中构成有向路径的有向分支的数目变成最大的最长有向路径的有向分支的数目的条件下,替换构成该图的有向分支的长度以使得变短。即,与AI05系统相比较,A06(A+B)减少了用于密钥生成的计算量以及要由各个订约方保存的密钥数。然而,和AI05系统、A06(B)系统、A06(A)系统类似,要由各个订约方保存或计算的图的信息非常大,其中,共同的问题在于难以在一般的终端设备中实现。
(本实施例的目的)
本实施例的一个目的是提供这样的手段:在基于A06(A+B)系统的图I的密钥提供系统100中,通过只生成各个订约方需要的图的信息而大大减少各个订约方的计算负荷。
[密钥提供系统100的配置]
将描述根据实施例的密钥提供系统100的配置。基本系统配置与图1中所示的第一实施例的配置基本相同,并且因此将省略详细描述。布置在根据本实施例的密钥提供系统100中的密钥分发服务器402和终端设备422的硬件配置也与图2中所示的密钥分发服务器102和终端设备122的硬件配置基本相同,因此将省略对它们的详细描述。
[密钥分发服务器402的功能配置]
将参考图42描述根据本实施例的密钥分发服务器402的功能配置。图42是示出密钥分发服务器402的功能配置的说明图。
如图42中所示,密钥分发服务器402主要包括以下单元:树结构设置单元104、坐标轴设置单元206、临时图生成单元408、图生成单元410、初始中间密钥设置单元112、密钥生成单元114、加密单元116、通信单元118和子集确定单元120。本实施例的特征配置主要在于临时图生成单元408和图生成单元410,其它组件和根据第一或第二实施例的密钥分发服务器102的组件基本相同。因此,将仅详细描述临时图生成单元408和图生成单元410的功能配置。
(临时图生成单元408)
首先,将描述临时图生成单元408的功能配置。临时图生成单元408具有与根据第二实施例的图生成单元210基本相同的功能配置,并且具有生成形状与A06(B)系统的图I相同的临时图I’的功能。例如,在n=64和参数k=6的情况中,图32中示出的临时图I’与图20中所示的图I匹配。类似地,在n=64和参数k=3的情况中,图44中示出的临时图I’与图21中示出的图I相匹配。
(图生成单元410)
现在,将描述图生成单元410的功能配置。图生成单元410具有通过替换构成临时图I’的多个有向分支中的某些有向分支来生成图I的功能。首先,图生成单元410选择临时图I’中所包含的有向路径中、构成有向路径的有向分支的数目最大的有向路径。这样的有向路径称为最长有向路径LP(最长路径)。图生成单元310在所有有向路径的有向分支的数目不超过最长有向路径LP的有向分支的数目的条件下,用由多个较短的有向分支的链构成的有向路径替换临时图I’中所包含的有向路径中的某些有向路径来生成图I。
(图I的生成方法)
现在,将参考图45至图48来描述图I的生成方法。图45是示出用于生成图I的处理的整个流程的说明图。图46是示出临时图I’的生成处理的说明图。图47是示出用于从除了最长有向路径LP以外的有向路径中提取最长长度的有向路径PLP的处理的流程的说明图。图48是示出用由一组较短有向分支构成的有向路径替换临时图I’的有向路径的处理的说明图。
如图45中所示,从形成图I’的有向路径中提取最长的有向路径LP(S142)。从除了临时图I’的最长有向路径LP以外的有向路径中提取最长长度的有向路径PLP(S144)。可以针对与各个子集对应的临时图I’提取最长长度的有向路径PLP。然后,用较短的有向路径替换构成临时图I’的有向路径的有向分支(S146)。在这种情况中,有向分支被替换使得所有有向路径的有向分支的数目不超过最长有向路径LP的有向分支的数目。即,即使这样的替换处理被执行,用于生成密钥的计算量的最坏值也不会比A06(B)系统多。
以下将更具体地描述图45中所示的各个步骤。
(S142的细节)
将参考图46详细描述提取最长有向路径LP的步骤(S160)。引入以下两个标记。
DDT:最长有向路径LP的有向分支的数目
J(a,b):连续存在a个长度为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的所有有向分支设置active标志(S160)。
(S144的细节)
以下,将参考图47描述对除了包含最长有向路径LP的临时图I’以外的、与所有子集对应的临时图I’提取最长长度的有向路径PLP的处理(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,并且对当前路径CP中所包含的所有有向分支设置active标志(S176)。如果J>1,判断#JP(CP)+t≤DDT是否成立(S168)。如果#JP(CP)+t≤DDT不成立,当前路径CP被确定为有向路径PLP,并且对当前路径中所包含的所有有向分支设置active标志(S176)。如果#JP(CP)+t≤DDT,则计算满足J=nj/k的自然数j(S170)。
提取当前路径CP中所包含的长度为J的有向分支中、距离当前路径CP的起始点最远的有向分支(S172)。紧接从在步骤S172中所提取的有向分支的起始点延伸的t个长度为n(j-1)/k的有向分支之后添加一个长度为n(j-1)/k的有向分支,去除步骤S172中所提取的有向分支(S174),并且处理返回步骤S162以重复执行以上处理。
当从图I’的起始点到结束点的所有有向路径都由长度为1的有向分支构成时,或当通过执行对较大数目的有向分支的替换而使得构成有向路径的有向分支的数目超过DDT时,结束步骤S162和步骤S174之间的循环处理。
(S146的细节)
以下将参考图48详细描述利用短有向分支来替换临时图I’中所包含的有向分支的处理(S180至S202)。
首先,从图中的active和未执行(没有完成标志)有向分支中提取具有最长长度J’的有向分支。如果最长有向分支存在多个,则选择距离临时图I’的起始点最远的有向分支(S180)。所选择的有向分支称为WJ(工作跳)。有向分支WJ的起始点是WJS并且结束点是WJE。在从临时图I’的起始点到WJS的有向路径中包含的有向分支的数目标为D。
判断有向分支的长度J’是否是J’≤1(S182)。如果J’≤1,则取消所有没有ative标志的有向分支,并且将所有具有active标志的有向分支的集合设置为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中所包含的所有有向分支给予active标志(S198)。对WJ给予done标志(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中提取出的有向分支的起始点延伸的n1/k-1个长度为n(j-1)/k的有向分支之后添加一个长度为n(j-1)/k的有向分支,并且取消步骤S194中所提取出的有向分支(S196)。然后,处理返回步骤S184的处理。
当从WJS到WJE-1的所有有向路径都由长度为1的有向分支构成时,或当通过较大数目的有向分支的替换而使得在从WJS到WJE-1的有向路径中所包含的有向分支数超过DDT时,结束步骤S184与步骤S196之间的循环处理。在从临时图I’中所包含的有向分支中取消了所有未被设置done并且所具有的长度大于等于2的有向分支时,结束步骤S180和S200之间的循环处理。
以上已经描述了根据本实施例的图I的生成方法。在订约方数n=64和参数k=6的情况中,根据本实施例的图I如图49中所示。
[终端设备422的功能配置]
现在,将参考图50描述根据本实施例的终端设备422的功能配置。图50是示出终端设备422的功能配置的说明图。
如图50中所示,终端设备422主要包括通信单元124、判断单元126、图生成单元427、密钥生成单元128和解密单元130。本实施例的特征配置主要在于图生成单元427,并且其它组件和根据第一实施例的终端设备122的组件相同。因此,将只详细描述图生成单元427的功能配置。
(图生成单元427)
将首先描述图生成单元427的功能配置。图生成单元427具有在由密钥分发服务器402用来导出组密钥的图I中仅生成导出它所属的子集的组密钥的有向路径的功能。即,图生成单元427可以生成图G,图G仅由使得能够导出必要的组密钥的有向路径构成。
(图G的生成方法)
将参考图53和图54详细描述图G的生成方法。图53和图54是示出用于生成图G的处理的流程的说明图,图G由订约方i用来导出该订约方所属的子集Sj的组密钥k(Sj)。
在图53的最下面和图54的最上面描述的A、B、C、D、E、F中的每一个符号都是用于明确指示图53和图54中的处理的转变的移动目的地的符号。例如,假定:到达图53的A的步骤已经到达图54的A。
终端设备422事先保存订约方数目n和参数k的信息。图G由坐标点的集合V(G(i))和有向分支的集合E(G(i))构成,并且被表示为G(i)={V(G(i),E(G(i))}。如果图G(i)中所包含的坐标点是1,则有向分支的集合E(G(i))表示为E(G(i))=φ(符号φ是空集)。[a,b]×[a,c]表示起始点的坐标点是[a,b]并且结束点的坐标点是[a,c]的有向分支。为了便于说明,假定等式(25)的信息是从密钥分发服务器402获得的。
[等式21]
sgi={{S1=[SP1,TP1],EP1},...,{Sy=[SPy,TPy],EPy}},
h = { E k ( S 1 ) ( s ) , . . . , E k ( S y ) ( s ) } , . . . ( 25 )
Es(M)
如图53中所示,判定在由通信单元124获得的与被允许订约方的子集相关的信息sgi中是否存在包括它(订约方i)的子集Sj(j∈Sj)(S702)。如果存在子集Sj,则处理进行到步骤S704。如果不存在子集Sj,则假定订约方被取消(无权获取内容),从而结束图G的生成处理。步骤S702的处理主要由判断单元126执行。
然后,图生成单元427判断订约方的编号i是否匹配TPj(S704)。如果i=TPj,则当订约方i导出组密钥时生成的图G(i)={V(G(i),E(G(i))}被输出为V(G(i))={[SPj,i]},E(G(i))=φ(S742),并且图G的生成处理结束。如果不是i=TPj,则处理进行到步骤S706。
图生成单元427以以下方式初始化订约方i的当前位置的坐标cup、正在考虑的当前范围的起始点的坐标sp和结束点的坐标ep、计数器m、当前路径中的有向分支数ddT、坐标点的集合V(G(i))以及有向分支的集合E(G(i))(S706)。
sp=SPj,ep=EPj,cup=i,m=1,ddT=DDT=k*(n1/k-1),V(G(i))=φ,E(G(i))=φ。这里,j表示满足i∈Sj的子集Sj的索引。
然后,图生成单元427判断SPj=1是否成立(S708)。如果SPj=1,则处理进行到步骤S710。然后,图生成单元427计算Lv=|EPj-SPj|+1(S710),并且之后,处理进行到步骤S714。如果SPj=1不成立,则处理进行到步骤S712。图生成单元427计算Lv=|EPj-SPj|+2(S712),并且之后,处理进行到步骤S714。
图生成单元427计算满足n(x-1)/k<Lv≤nx/k的x(1≤x≤k)(S714)。图生成单元427判断cup=TPj是否成立(S716)。如果cup=TPj,则处理进行到步骤S740。输出由订约方i用来导出子集的密钥所使用的图G{V(G(i)),E(G(i))}(S740),并且结束图G的生成处理。
如果cup=TPj不成立,则处理进行到步骤S718。然后,图生成单元427确定从sp到ep的有向路径中、跳数变成最小值的有向路径作为MP(MaxPath),以匹配A06(A+B)系统的图I的一部分(S718)。以下,将描述用于确定MP的处理。
然后,图生成单元427确定CP,在CP中,与A06(A+B)系统的图I的一部分匹配的MP上的有向分支被在不超过的ddT的范围内、距离尽可能短的的有向分支替换(S720)。之后,将描述CP的确定处理。
图生成单元427指定CP上存在的各个有向分支中、起始端和结束端之间包含坐标点[SPj,cup]的有向分支(S722)。然而,还包括起始端或结束端的坐标点与坐标点[SPj,cup]匹配的情况。指定的有向分支称为CUE(当前用户的边缘)。如果在CP上存在坐标点[SPj,cup]并且坐标点[SPj,cup]与两个相邻有向分支的起始端和结束端相匹配,则假定将坐标点[SPj,cup]作为起始点的有向分支作为CUE。
如果坐标点[SPj,TPj]不与CUE的结束端匹配并且不比CUE的结束端更接近图H的结束点侧,则图生成单元427进行到步骤S734。如果坐标点[SPj,TPj]匹配CUE的结束端或比CUE的结束端更接近图I的结束点侧,则处理进行到步骤S726(S724)。
然后,图生成单元427如下设置V(G(i))和E(G(i))(S726)。
如果V(G(i))=φ,则V(G(i))=[SPj,spi,m]∪[SPj,epi,m]。如果V(G(i))=φ不成立,则V(G(i))=V(G(i))∪[SPj,epi,m]。此外,E(G(i))=E(G(i))∪{[SPj,spi,m]×[SPj,epi,m]。
这里,spi,m、epi,m表示当前CUE的起始端和结束端的坐标。因为以下原因,该处理对于当V(G(i))=φ时和当V(G(i))=φ不成立时是不同的。如果V(G(i))=φ,则有向分支的起始点和结束点都被添加作为坐标点,但是如果V(G(i))=φ不成立,则要被添加的有向分支的起始点已经被添加作为V(G(i))的坐标点,因此仅结束点的坐标点被添加到V(G(i))以避免冗余。
图生成单元427将m+1代入m(S728)。图生成单元427判定在CP上是否存在CUE的下一个有向分支(将CUE的结束端作为起始端的有向分支)(S730)。如果CUE的下一个有向分支存在,则处理进行到步骤S732,CP上存在的CUE的下一个有向分支被设为新的CUE,并且该处理返回步骤S724的处理。如果CUE的下一个有向分支不存在,则处理进行到步骤S734。
然后,图生成单元427将CUE的起始端的坐标设置为sp,并且将位于比CUE的结束端靠前一个点的坐标点的坐标设置为ep,其中,从CP的起始点到CUE的结束端存在的有向分支数是d,并且ddT-d被代入ddT(S734)。然后,图生成单元427判断m=1是否成立(S736)。如果m=1,则处理返回步骤S716的处理。如果m=1不成立,则处理进行到步骤S738。
图生成单元427设置cup=epi,(m-1)(S738),并且返回步骤S716的处理。
已经描述了根据本实施例的图G的生成方法。在上述生成方法中,进行这样的假设:与图I的结束点相关的信息EPj被包含在sgi中,但是订约方可以指定EPj,因为在SPj被确定之后,可以通过逻辑二叉树BT唯一指定EPj。这样的配置是通过向步骤S706的处理添加导出EPj的步骤来实现的。
(最大有向路径MP的确定方法)
现在将参考图55描述图53的步骤S718中的最大有向路径MP的确定方法。图55是示出最大有向路径MP的确定方法的流程的说明图。
如图55中所示,图生成单元427首先将如下对计数器1、当前正在考虑的跳的到达点的坐标tsp和当前正在考虑的距离dt进行初始化(S752)。1=x,tsp=sp,dt=|ep-tsp|。
然后,图生成单元427将1-1代入1(S754)。图生成单元427判断1≥0是否成立(S756)。如果1≥0不成立,则处理进行到步骤S766,将由从坐标点[SPj,sp]到[SPj,ep]的至少一个有向分支的链形成的有向路径设置为MP(S766),并且结束MP的确定处理。如果1≥0,则处理进行到步骤S758。
然后,图生成单元427判断dt-n1/k≥0是否成立(S758)。如果dt-n1/k≥0不成立,则处理返回步骤S754的处理。如果dt-n1/k≥0,则处理进行到步骤S760。
图生成单元427将[SPj,tsp]作为出发点执行距离为n1/k的跳,并且生成对应的有向分支(S760)。然后,图生成单元427将步骤S760中所生成的有向分支的结束端的坐标新设置为tsp(S762)。然后,图生成单元427将dt-n1/k代入dt(S764),并且返回步骤S758的处理。
以上已经描述了最大有向路径MP的确定方法。
(当前路径CP的确定方法)
现在,将参考图56描述当前路径CP的确定方法。图56是示出CP的确定处理的流程的说明图。
如图56中所示,图生成单元427提取MP中所包含的有向分支中距离最大的有向分支,并且将该距离设为J(S772)。然后,图生成单元427判断有向分支的长度J是否是J≤1(S774)。如果J≤1,则处理进行到步骤S784,确定从坐标点[SPj,sp]到[SPj,ep]的有向路径作为CP(S784),并且结束CP的确定处理。如果J≤1不成立,则处理进行到步骤S776。
然后,图生成单元427判断#JP(MP)+t≥ddT是否成立(S776)。如果#JP(MP)+t≥ddT,则处理进行到步骤S778。如果#JP(MP)+t≥ddT不成立,则处理进行到步骤S784,并且确定从坐标点[SPj,sp]到[SPj,ep]的有向路径作为CP(S784),并且结束CP的确定处理。
然后,图生成单元427获得满足J=nj/k的j(S778)。图生成单元427提取MP中所包含的距离为J的有向分支中、距离MP的起始点最远的位置处的有向分支(S780)。紧接在步骤S780中所提取的有向分支的起始点开始的t个现有距离为n(j-1)/k的有向分支之后生成距离为n(j-1)/k的有向分支,并且取消步骤S780中所提取的有向分支。有向分支被替换的MP被设为新的MP(S782),并且处理返回步骤S772的处理。
以上已经描述了当前路径CP的确定方法。可以根据上述确定处理来执行图G的生成处理。
(特定示例)
将参考图51和图52来描述基于上述生成方法由图生成单元427生成的图G的特定示例。图51和图52是示出当订约方数为n=64并且参数k=6时所生成的图G的说明图。具体地,仅示出与集合(1→64)对应的图。图51和图52的上侧画出的图是当使用AI06(A+B)系统的算法时由订约方导出的图I。在下面画出的图是当使用本实施例的方法时由订约方导出的图G。
(特定示例1)
首先,参考图51示出为订约方1用来生成子集[1,2]的组密钥的而生成的图G。图中的实线示出与当订约方1推导组密钥时要执行的跳相对应的有向分支。即,当推导子集[1,2]的组密钥时,订约方1向PRSG输入与用实线示出的有向分支的起始端对应的中间密钥t([1,1]),并且导出与其结束端对应的t([1,2])。此外,由实线和虚线构成的图G表示要由订约方1导出的最大有向路径CP。
(特定示例2)
参考图52示出为订约方7用来生成子集[1,44]的组密钥的而生成的图G。图中的实线示出与当订约方7推导组密钥时要执行的跳相对应的有向分支。即,当推导子集[1,44]的组密钥时,订约方7使用其事先保存的中间密钥t([1,33]),并且沿用实线示出的有向分支重复执行PRSG,来导出中间密钥t([1,44])。此外,由实线和虚线构成的图G表示要由订约方7导出的最大有向路径CP。
(密钥生成方法)
将参考图16使用特定示例来描述根据本实施例的密钥生成方法的流程。根据本实施例的密钥生成单元128的功能配置与根据第一实施例的密钥生成单元128基本相同,但是该密钥生成中参考的图的形状不同。
首先,将参考图49和图52来描述订约方7导出子集[1,44]的组密钥的步骤。参考图49,显然,订约方7属于与7个图I(1→64)、I(2←64)、I(2←32)、I(2←16)、I(2←8)、I(6→7)、I(7→7)的元素对应的子集。在它们中,在图I(1→64)中,存在订约方7所属的子集,即,作为其中订约方7不属于与这样的子集的父对应的子集的3个子集[1,7]、[1,9]、[1,33]的子集。因此,对于图I(1→64),在系统建立时向订约方7提供中间密钥t([1,7])、t([1,9])、t([1,33])。类似地,对于其它图I(2←64)、I(2←32)、I(2←16)、I(2←8)、I(6→7)、I(7→7),还提供类似的预定中间密钥。
首先,订约方7利用图生成单元427的功能来生成图52的下面的示图(本发明的系统)中的图G。之后,订约方7通过以下处理(参见图16)来获得子集[1,44]的组密钥k([1,44])。
首先,检查i=TPj的TPj是否存在,并且将计数器1初始化为1。之后,从订约方事先保存的中间密钥t([1,7])、t([1,9])、t([1,33])中指定与子集[1,33]对应的t([1,33]),然后将t([1,33])设置为CTK,子集[1,33]与中间密钥第一有向分支[1,1]×[1,33]∈E(G(7))的结束端的坐标匹配。
然后,检查下一个有向分支的存在。在这种情况中,由于在当前时间点存在有向分支[1,33]×[1,37]∈E(G(7)),所以CTK=t([1,33])被输入PRSG,并且获得如等式(26)中所示的(k+1)*λ比特的输出。
[等式22]
t([1,34])||t(1,35)||t(1,37)||t([1,41])||t([1,49])||t([1,65])||k([1,33])←PRSG(t([1,33]))
...(26)
在等式(26)中,t([1,35])、t([1,41])、t([1,65])的坐标35、41、65被计算为33+ni/k,i=1、3、5;但是不是在图G的[1,35]、[1,41]、[1,65]中将[1,33]作为起始点的有向分支的结束点,因此,t([1,35])、t([1,41])、t([1,65])表示哑中间密钥,因此实际不被使用。在计数器1递增之后,从输出中间密钥中确定要使用的中间密钥。这里,计数器1被递增并且变成1=2,因此对于有向分支[1,33]×[1,37]∈E(G(7)),确定满足|37-33|=4=22=np/k的p(p=2)。响应于这样的结果,从等式(0)的输出获得t([1,37]),并且CTK被更新为t([1,37])。类似地,检查有向分支[1,37]×[1,41]∈E(G(7))的存在,CTK被输入PRSG,并且获得等式(27)的输出。
[等式23]
t ( [ 1,38 ] ) | | t ( [ 1,39 ] ) | | t ( [ 1,41 ] ) | | t ( [ 1,45 ] ) | | t ( [ 1,53 ] ) | | t ( [ 1,69 ] ) | | t ( [ 1,37 ] ) | | &DoubleLeftArrow; PRSG ( t ( [ 1,37 ] ) ) . . . ( 27 )
然后,计数器1被设为1=3,对于有向分支[1,37]×[1,41]∈E(G(7))计算出p=2,并且之后CTK被更新为t([1,41])。以上处理被重复执行一次,以获得下一个有向分支不存在的状态。在这种情况中,CTK=t([1,44]),因此通过向PRSG输入CTK而输出的值中的从第k*λ+1位到第(k+1)*λ位被提取作为组密钥k([1,44])。
如上所述,订约方7可以使用订约方所保存的中间密钥来获得子集[1,44]的组密钥k([1,44])。因此,各个订约方可以使用订约方所保存的中间密钥来计算所希望的组密钥。
[效果]
在相关技术中,各个订约方保存与其所属的子集对应的所有图I或者自己导出所有图I。然而,本实施例提供了这样的手段:各个订约方在导出与其所属的子集对应的图I的密钥时,导出仅由必要的有向分支构成的图G。因此,与相关技术的密钥分发系统比较,大大减少了要由各个订约方计算的有向分支的数目,并且各个订约方可以高速生成图G并且导出所希望的组密钥。结果,可以大大减少用于对内容进行解密的时间。
本领域技术人员应当理解,根据设计需要和其他因素,可以进行各种修改、组合、子组合和更改,只要它们在本发明所附权利要求或等价物的范围之内即可。
例如,假定上述逻辑二叉树BT具有分支从顶向下扩展的结构,但这不限于此,并且可以被配置为使得分支从底向上、从左向右或从右向左扩展。与这样的布置相关的改变通过简单地旋转和布置逻辑二叉树来实现的,并且与这样的改变相关的所有配置都落在基本相同的技术范围内。对于对水平坐标轴进行反向镜像来形成临时图和图同样如此。
根据各个实施例的密钥分发服务器102包括用于自己生成图的组件,但是不限于此。根据本发明实施例的密钥分发服务器102可以包括用于获取与预定图相关的信息的获取单元,在这种情况中,可以不布置树结构设置单元104、坐标轴设置单元106、临时图生成单元108和图生成单元110中的某些或全部单元。
根据以上各个实施例的密钥分发服务器102包括用于向终端设备122分发内容、内容密钥、组密钥、中间密钥、与许可订约方对应的子集的信息、图的信息等的通信单元118,但网络并不是始终被用来提供这样的信息,如应用示例2中所示。密钥分发服务器102可以包括用于记录在记录介质上记录信息的记录单元来替换通信单元118。在这种情况中,终端设备122可以包括用于读出记录了信息的记录介质的读出单元来替换通信单元124。

Claims (12)

1.一种密钥提供系统,包括多个终端设备和用于向预定终端设备提供数据的加密或解密中使用的密钥的信息处理设备,其中
所述信息处理设备包括,
获取单元,用于获取通过在包括多个坐标点的坐标轴上布置连接所述坐标点的有向分支而形成的预定图,其中所述多个坐标点中的每个坐标点与代表所述多个终端设备的组合的一个集合相对应,
选择单元,用于选择代表所述多个终端设备中的一些或全部终端设备的集合,
密钥生成单元,用于基于所述预定图生成与所选择的集合相对应的密钥,以及
提供单元,用于向所述多个终端设备提供所生成的密钥和与所选择的集合相关的信息;以及
所述终端设备包括,
获取单元,用于获取所生成的密钥和与所选择的集合相关的信息,
图生成单元,用于生成形成所述预定图的有向分支中的、用于生成与所述终端设备所属的所选择的集合相对应的密钥的有向分支,以及
密钥生成单元,用于基于由所生成的有向分支形成的图,来生成与所述终端设备所属的所选择的集合相对应的密钥。
2.一种终端设备,包括:
获取单元,用于获取与集合相关的信息,所述集合是从代表多个终端设备的组合的多个集合中选出的,并且代表所述多个终端设备中的一些或全部终端设备;
提取单元,用于提取包含在所述信息中的、所述终端设备所属的集合;以及
图生成单元,用于生成由多个有向分支形成的预定图中的、用于生成与所提取的集合相对应的密钥的有向分支。
3.根据权利要求2所述的终端设备,其中,所述预定图是基于预定的第一图通过利用较短的有向分支来替换形成第一图的多个有向分支中的一些或全部有向分支而生成的第二图。
4.根据权利要求2所述的终端设备,其中,所述预定图是基于预定的第一图通过利用较长的有向分支来替换形成第一图多个有向分支中的一些或全部有向分支而生成的第三图。
5.根据权利要求2所述的终端设备,其中,所述预定图是对于基于预定的第一图通过利用较长的有向分支来替换形成第一图的多个有向分支中的一些或全部有向分支而生成的第三图,通过利用较短的有向分支来替换形成第三图的多个有向分支中的一些或全部有向分支而生成的第四图。
6.根据权利要求2所述的终端设备,还包括密钥生成单元,用于基于由所述图生成单元所生成的有向分支来生成所述密钥。
7.根据权利要求6所述的终端设备,其中
获取单元,获取利用与所述集合相对应的密钥加密的内容或内容密钥以及所述与集合相关的信息,并且
所述终端设备还包括解密单元,用于利用由所述密钥生成单元所生成的密钥来对经加密的内容或内容密钥进行解密。
8.根据权利要求2所述的终端设备,其中所述获取单元通过网络接收所述与集合相关的信息。
9.根据权利要求2所述的终端设备,其中所述获取单元读出记录在预定记录介质上的所述与集合相关的信息。
10.根据权利要求6所述的终端设备,其中所述密钥生成单元根据与所述有向分支的起始端S0相对应的密钥k(S0)的输入,生成与所述有向分支的结束端的坐标点S1相对应的密钥k(S1)。
11.根据权利要求6所述的终端设备,其中
所述密钥包括由用于对所述内容或所述内容密钥进行加密或解密的组密钥k以及用于生成所述组密钥k的中间密钥t,并且
所述密钥生成单元根据与所述有向分支的起始端S0相对应的中间密钥t(S0)的输入,生成与所述有向分支的起始端S0相对应的组密钥k(S0),以及与所述有向分支的结束端S1相对应的中间密钥t(S1)。
12.一种终端设备中的信息处理方法,所述信息处理方法包括以下步骤:
获取与集合相关的信息,所述集合是从代表多个终端设备的组合的多个集合中选出的,并且代表所述多个终端设备中的一些或全部终端设备;
提取包含在所述信息中的、所述终端设备所属的集合;以及
生成由多个有向分支形成的预定图中的、用于生成与所提取的集合相对应的密钥的有向分支。
CN200880009041XA 2007-03-20 2008-02-05 密钥提供系统、终端设备和信息处理方法 Expired - Fee Related CN101641904B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP073195/2007 2007-03-20
JP2007073195A JP2008236380A (ja) 2007-03-20 2007-03-20 鍵提供システム、端末装置、及び情報処理方法
PCT/JP2008/051815 WO2008114542A1 (ja) 2007-03-20 2008-02-05 鍵提供システム、端末装置、及び情報処理方法

Publications (2)

Publication Number Publication Date
CN101641904A true CN101641904A (zh) 2010-02-03
CN101641904B CN101641904B (zh) 2012-10-03

Family

ID=39765658

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200880009041XA Expired - Fee Related CN101641904B (zh) 2007-03-20 2008-02-05 密钥提供系统、终端设备和信息处理方法

Country Status (6)

Country Link
US (1) US8150040B2 (zh)
EP (1) EP2124380A1 (zh)
JP (1) JP2008236380A (zh)
KR (1) KR20100014474A (zh)
CN (1) CN101641904B (zh)
WO (1) WO2008114542A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015130580A (ja) * 2014-01-07 2015-07-16 富士通株式会社 データスクランブル装置、セキュリティ装置、セキュリティシステム及びデータスクランブル方法
RU2017102556A (ru) * 2014-06-27 2018-08-03 Конинклейке Филипс Н.В. Устройство для определения совместно используемого ключа

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2002100081A (ru) * 2000-04-06 2003-07-27 Сони Корпорейшн (JP) Система и способ обработки информации
JP2001352321A (ja) * 2000-04-06 2001-12-21 Sony Corp 情報処理システム、情報処理方法、および情報記録媒体、並びにプログラム提供媒体
JP4660899B2 (ja) * 2000-07-24 2011-03-30 ソニー株式会社 データ処理装置およびデータ処理方法、並びにプログラム提供媒体
WO2002016076A1 (fr) * 2000-08-18 2002-02-28 Tokyo Seimitsu Co., Ltd. Dispositif de meulage des bords peripheriques d'une feuille
JP4595182B2 (ja) * 2000-09-07 2010-12-08 ソニー株式会社 情報記録装置、情報再生装置、情報記録方法、情報再生方法、および情報記録媒体、並びにプログラム提供媒体
JP2005198043A (ja) * 2004-01-07 2005-07-21 Nec Corp コンテンツ配信システム、その方法、サーバ、ユーザ端末、暗号化装置、管理装置およびストリーミング装置
JP4632413B2 (ja) * 2004-09-01 2011-02-16 キヤノン株式会社 情報暗号化装置及び情報配信装置並びにそれらの制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
JP2006310182A (ja) 2005-04-28 2006-11-09 Toyota Motor Corp 燃料電池システム及びパージ弁制御方法
JP2006310226A (ja) 2005-05-02 2006-11-09 Omron Corp マイクロスイッチ
JP2006310213A (ja) 2005-05-02 2006-11-09 Sumitomo Electric Ind Ltd フラットケーブル及びフラットケーブルの製造方法

Also Published As

Publication number Publication date
WO2008114542A1 (ja) 2008-09-25
JP2008236380A (ja) 2008-10-02
KR20100014474A (ko) 2010-02-10
CN101641904B (zh) 2012-10-03
US20100040235A1 (en) 2010-02-18
EP2124380A1 (en) 2009-11-25
US8150040B2 (en) 2012-04-03

Similar Documents

Publication Publication Date Title
CN101663856B (zh) 密钥提供系统、密钥提供装置、终端设备、密钥提供方法和密钥生成方法
JP4599194B2 (ja) 復号装置、復号方法、及びプログラム
US8254570B2 (en) Method and system for encryption of data
KR100846262B1 (ko) 정보 처리 장치, 정보 처리 방법 및 프로그램 기억 매체
JP4162237B2 (ja) 複数の復号化装置に対し選択的にメッセージを配信する暗号化通信システム、暗号化装置、復号化装置、暗号化方法、復号化方法、暗号化プログラム、及び復号化プログラム
US8180059B2 (en) Management apparatus, terminal apparatus, and copyright protection system
CN103514351A (zh) 一种多媒体文件的编辑方法、装置和系统
JP2005286959A (ja) 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム
WO2008059673A1 (fr) Dispositif de traitement d&#39;informations
WO2008059672A1 (fr) Dispositif de traitement d&#39;informations
JP5198539B2 (ja) 記憶装置、アクセス装置およびプログラム
US20080046730A1 (en) Method and apparatus for providing content encrypted using broadcast encryption scheme in local server
Namasudra et al. Applications and future trends of DNA computing
CN101641904B (zh) 密钥提供系统、终端设备和信息处理方法
CN101536401B (zh) 信息处理设备
JP2008131076A (ja) 情報処理装置、端末装置、情報処理方法、鍵生成方法、及びプログラム
JP2004120008A (ja) 鍵管理システム
US20160020899A1 (en) Decrypting device, encrypting device, computer program product, recording medium, and manufacturing method
JP5286748B2 (ja) 情報処理装置、鍵設定方法、及びプログラム
JP2005006033A (ja) 鍵生成方法、鍵生成装置、コンテンツ配信装置、端末装置およびプログラム
JP2008131079A (ja) 情報処理装置、端末装置、情報処理方法、及び鍵生成方法
CN107645679A (zh) 机顶盒无卡条件接收系统的生产方法及系统
JP2005191805A (ja) 暗号文配信方法、情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
CN101878614B (zh) 由处理单元记录和恢复加密的内容的方法
JP2005252916A (ja) 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム

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: 20121003

Termination date: 20150205

EXPY Termination of patent right or utility model