数据通信系统、加密装置及解密装置 【技术领域】
本发明涉及将内容加密之后提供给用户的内容提供系统以及用户系统、使用于该系统的加密装置以及解密装置、用于确定非正当用户的跟踪系统、密钥生成方法、内容提供方法以及加密内容解密方法。
背景技术
在广播型内容发送中的各种确定非正当用户的方法早已为人所知,这些方法根据用户的的解密密钥的生成方法,可以分为两种类型,一种是建立在组合论构成基础之上的方法,另一种是建立在代数式构成基础上的方法。采用前一种方法时,为了使将正当(与非正当用户系统的产生无关)用户误判为非正当用户的概率减少到最小,就必须将发送开销搞得非常大。而采用后一种方法时,已解决了这个问题,实现了高效的发送开销。此外,关于后一种方法,有人建议通过采用在密钥配送方法中应用秘密分散法,使之具有使某一特定用户的解密密钥失效的功能,用来确定非正当用户。例如参考M.Naor and B.Pinkas:“E fficient Trace and Revoke Schemes”、In Proc.of FinancialCryptography’00、LNCS 1962、Springer-Verlag、pp.1-20、February2000。
然而,当从非正当解密器的盗版解密器中(盗版解密器之中往往安装有与多个用户(非正当用户)对应的密钥f(x)(或具有与此功能相同的数据);我们将此称之为串通),确定1个或多个非正当人时,要想实现不必采用撬开对方的解密器等手段,寻找盗版解密器的内部信息(解密密钥等)而是仅通过观察其输入与输出,来确定非正当用户的暗箱跟踪而采用后一种方法时,暗箱跟踪所需要的处理步骤数是指数函数,存在着从实用角度而言是不可能进行暗箱跟踪地问题。具体说,跟踪者(进行暗箱跟踪的人)设定怀疑对象(候选非正当用户),然后对该怀疑对象是否是真正的非正当用户进行调查。对所有的怀疑对象都得进行这种处理。这是因为现在使用的密钥生成多项式过于简单,f(x)=a0+a1·x+a2·x2+…+ak·xk因而一次检查的怀疑对象数量有限,当设定全体用户为n,最大串通人数为k时,则必须对nCk=n!/{k!(n-k)!}之多的怀疑对象进行调查,很不实用。
正如上面所述,这种现有方法,在进行暗箱跟踪时,存在着处理步骤数目过于庞大的问题,而且(从可使之失效的数量有限的意义上而言),也不能灵活实施解密密钥无效化。
【发明内容】
本发明正是针对上述情况而提出的,其目的在于提供一种在使发送开销提高效率的同时,可更灵活实施解密密钥无效化或者可更有效地进行暗箱跟踪的密钥生成方法、内容提供方法、加密内容解密方法,非正当用户确定方法、内容提供系统、用户系统、跟踪系统、加密装置及解密装置。
【附图说明】
图1是与本发明的第1实施方式有关的数据通信系统的构成例示图。
图2是与本发明第1实施方式有关的数据通信系统的整体过程的例示图。
图3是与本发明第1实施方式有关的在内容提供系统中安装的加密装置的构成例示图。
图4是与本发明第1实施方式有关的在用户系统中安装的解密装置的构成例示图。
图5A、图5B、图5C、图5D是用于说明用户集合的分群以及无效化对象的图示。
图6是与本发明第1实施方式有关的跟踪装置的构成例示图。
图7是与本发明第1实施方式有关的表示跟踪计算规则(非正当用户确定方法)的处理顺序的流程图。
图8是表示跟踪计算规则的步骤S3的处理顺序的例示流程图。
图9是与本发明第1实施方式有关的跟踪计算规则(非正当用户确定方法)的处理顺序的流程图。
图10是与本发明第2实施方式有关的跟踪计算规则的步骤S3的处理顺序的流程图。
【具体实施方式】
下面参照附图介绍本发明的实施方式。
第1实施方式
图1表示与本实施方式有关的数据通信系统的构成。
正如图1所示,该数据通信系统包括:内容提供系统1和多个用户系统2。内容提供系统1将内容加密之后,以广播方式或者复播方式通过通信网3发送。用户系统2则通过通信网接收并解密由内容提供系统1以广播方式或复播方式发送来的加密内容。
虽然在图1之中,只标示出1个内容提供系统,但该内容提供系统1也可以是多个。
此外,一个结点也可以同时兼备内容提供系统的功能与用户系统的功能。此外,也可通过所有的结点均同时兼备内容提供系统的功能与用户系统的功能,彼此进行密码通信。
通信网3既可以是有线网也可以是无线网,还可以是有线、无线综合网。此外,既可以是双向网也可以是单向网。
图2是本实施方式的整体过程的例示。
设定为给每个用户系统2均配置了各自固有的用户识别信息(用户ID)。
内容提供系统1生成规定的对话密钥(单一的密钥)(S1),生成供用户系统2取得解密该对话密钥的报头信息(S2),用该密钥对内容加密(S3),将报头信息附加于加密内容,然后以广播方式或复播方式发送(S4)。而且,S2与S3既可以用与上述相反的顺序实施,也可以同时实施。此外,在并每次均不变更对话密钥的情况下,有时也省略S1。这种情况下,使用以前的对话密钥。
接收到报头信息与加密内容(S4)的各个用户系统2,根据用分配给自己的用户ID获取的解密密钥以及报头信息,获取(解密)对话密钥(S5),并用获取(解密)的对话密钥解密加密内容(S6)。
此外,详细情况将在后文中介绍,内容提供系统1,在有应使之解密密钥失效对象的用户ID存在的情况下,可以通过根据失效对象的1个或多个用户ID,生成报头信息,使拥有该失效对象的用户ID的用户系统2无法用S5获取正确的对话密钥(因而不能用S6解密加密的内容)。此外,即使在这种情况下,拥有该失效对象的用户ID以外的用户ID的用户系统2,则当然能用S5获取正确的对话密钥,(因而能用S6对加密内容解密)。
在本实施方式之中,此处使用的是将用户ID(设定为从一定范围内选择出的正整数(例如从1到n的连续数列)代入密钥生成多项式,生成用户的解密密钥的,此时,正如图5A所示,将用户集合分割为多个子群,对各子群分配密钥生成多项式的分配方法为:
对U1子群,分配f1(x)=a0+b1·x+a2·x2+a3·x3+…+ak·xk
对U2子群,分配f2(x)=a0+a1·x+b2·x2+a3·x3+…+ak·xk
对U3子群,分配f3(x)=a0+a1·x+a2·x2+b3·x3+…+ak·xk
下面也一样,对Um子群,分配fm(x)=a0+a1·x+a2·x2+a3·x3+…+bm·xm+…+ak·xk
正如以上所示,设定为采用对不同的子群分配不同的密钥生成多项式(上面是将多项式系数的一部分设定为不同的密钥生成多项式的例示)的分配方法,即设定为用分配给该用户ID所属子群的密钥生成多项式,生成该用户ID的解密密钥。
这样即可使任意人数的用户的解密密钥失效,而且还可以减少进行暗箱跟踪时所需要的处理步骤。
此外,还设定为将分配给用户系统2的用户ID代入分配给该用户ID所属子群的密钥生成多项式获取的解密密钥预先由内容提供系统1或者由可靠的第3者配送给用户系统2,存储在用户信息存储器23之中。
图5A所示的分群方式只是其中一例,除此而外还可以采用各种分群方法。
此外,上面举例的用户ID设定为从一定范围中选择出的正整数(例如从1到n的正整数列),然而用户ID并非只能用正整数,(例如也可以用英文数字),对使用英文数字的用户ID,也可采用下述构成:从一定范围中选择出的固定分配的正整数,以固定分配给用户ID的正整数以及相应的密钥生成多项式为基础,计算解密密钥。
图3是在本实施方式的内容提供系统1之中安装的加密装置10的构成例示。
如图3所示,该加密装置10由下述各部分构成:存储公开密钥的公开密钥存储器14;在公开密钥的基础上生成对话密钥的对话密钥生成器15;用该对话密钥对内容加密的内容加密器11;存储与设定为失效对象的用户有关的信息的失效对象用户信息存储器13;根据公开密钥与对话密钥(或构成其基础的信息)、(当有失效对象用户情况下的)信息失效对象用户信息、其它必要参数(在后面介绍的例中为参数p、q、k、U)等,生成报头信息的报头生成器12。
内容提供系统1设定为根据需要配置通信接口、存储内容的装置或输入内容的装置等各种装置。
图4是在本实施方式的用户系统2中安装的解密装置20的构成图。
如图4所示,该解密装置20由下述各部分构成:存储自身所属子群的ID,分配给自身的用户ID,与该用户ID相对应的解密密钥(根据该用户ID以及分配给其所属子群的密钥生成多项式获取的解密密钥:秘密密钥)的用户信息存储器23;根据解密密钥以及报头信息,获取(解密)对话密钥的对话密钥解密器21;用获取(解密)的对话密钥,将加密内容解密的内容解密器22。
而用户系统2,则设定为根据需要配置通信接口、存储内容的装置以及显示内容的装置等种种装置。
在此简要介绍根据报头信息解密对话密钥的计算规则的概要。
首先,如图5B(下标线表示失效对象用户)所示,当仅使用户ID=1、2、3失效的情况下,设定为需集中某4个数据(后述的分配值(share))才能对对话密钥解密。为了简要说明,将失效对象用户数设定为与最大串通人数相等,则只有集中失效对象用户数+1的分配值后才能对对话密钥解密。
在报头信息之中,记述可求得用户ID=1的分配值(1,grF(1)),可求得用户ID=2的分配值(2,grF(2)),可求得用户ID=3的分配值(3,grF(3))的同时,记述构成求取该用户ID=Xo的分配值(Xo,grF(X0))基础的信息。
关于用户ID=1、2、3以外的用户ID,由于可通过求取与该用户ID=Xo相对应的分配值(Xo,grF(X0)),集中所需要的4个分配值,因而能够获取正确的对话密钥。
与此相对应,关于用户ID=1,即使求出与用户ID=1相对应的分配值(1,grF(1)),也因为与报头信息中所述的分配值重复,无法集中所需要的4个数据,因而不能获取正确的对话密钥。关于用户ID=2、3,也与此相同。
接着,如图5C所示,在失效对象用户ID=1~20全部属于同一个子群U1的情况下,则不必使用全部失效对象用户的分配值,而是使该子子群U1整体失效。在使子群U1整体失效的情况下,仅在构成与该子群U1对应的对话密钥的计算基础的信息之中预先记述错误的值(乱数等),即可使该子群U1无法获取正确的对话密钥。
关于属于子群U1的用户ID,由于构成对话密钥计算基础的信息是错误的值,因而无法获取正确的对话密钥。
此外,如图5D所示,用户ID=1-20,也就是使整个子群U1失效的同时,还要使用户ID=21、22、23失效的情况下,将图5B的方法与图5C的方结合实施。为了简要说明,当不属于子群整体失效子群的失效对象用户的数与最大串通人数相等的情况下,对话密钥的解密所需的分配值设定为不属于子群整体失效子群的失效对象用户数+1。
在该例的情况下,在报头信息之中,记述求取用户ID=21的分配值(21,grF(21))、求取用户ID=22的分配值(22,grF(22))、求取用户ID=23的分配值(23,grF(23))。此外,为了只让失效子群U1无法获取正确的分配值,在构成与该子群U1相对应的分配值计算基础的信息之中,预先记述错误的值(乱数等)。而为了使其以外的子群,能获取正确的分配值,在构成与该子群对应的分配值计算基础的信息之中预先记述正确的值。
关于既不属于子群U1,也不是用户ID=21、22、23的用户ID,则能求取正确的分配值,由于这样即可集中所需要的4个数据,因而能够获取正确的对话密钥。
关于用户ID=21、22、23,即便能求取正确的分配值,可是由于无法集中所需的4个分配值,因而无法获取正确的对话密钥。
关于属于子群U1的用户ID,由于构成正确的分配值基础的信息是错误的值,因而无法集中正确的4个分配值,结果是不能获取正确的对话密钥。
下面将详细介绍密钥生成阶段,加密阶段,解密阶段。
首先定义参数。
将全体用户数设定为n,将最大串通人数设定为k。
将p、q设定为素数,q能用p-1整除,而且q设定为n+1以上。
设Zq={0,1,…,q-1}。
设Zp*={1,…,p-1}。
将g设定为Zp*上的1的q根。
将Gq设定为是Zp*的部分群,且位数是q的乘法群。
将用户集合(用户的识别信息(用户号码)的集合)设定为U(UZq-{0})。且Zq-{0}意味着从Zq中减去{0}。
将失效对象用户集合(解密密钥被失效的用户的集合)设定为x。
p、q、g的值为公开值。
下面只要没有特别理由,设定为在Zp*上进行计算。
(密钥生成阶段)
从zq之中随器性选择构成公开密钥基础的参数ao,…ak,b1,…,bk,Co而(gCo)r构成对话密钥。
但在此处也可以是不选择Co的构成,在此种构成的情况下,可在后面介绍的加密阶段的生成Co。
下面计算公开密钥e。
当选择了上述的Co的情况下,公开密钥e,则成为式(1)e=(g,y0,0,...,y0,k,y1,1,...,y1,k,y2,0)]]>=(g,ga0,...,gak,gb1,...,gbk,gc0)---(1)]]>在不选择Co的构成的情况下,公开密钥e则成为式(2)所示。e=(g,y0,0,...y0,k,y1,1,...,y1,k)]]>=(g,ga0,...,gak,gb1,...,gbk)---(2)]]>
进而将用户集合U分割为不拥有共同要素的k(=最大串通人数)个子集。将该k个子集设定为U1,…UK。U1,…UK被公开。
最后,将解密密钥fi(u)(将x=u代入分配给用户u所属的子集Ui的密钥生成多项式fi(x)之后得出的值给与子集U1所属的用户u(将用户u的用户ID设定为u)。在此,密钥生成多项式fi(x)表现为式(3)fi(x)=Σj=0kai,jxjmodq---(3)]]>(加密阶段)从失效对象用户集合x(例如图5D的{1,…23))之中减去满足uzχ的所有子集Uz(例如图5D的U1)的集合不是空集的情况下,将其设定为{x1,…xm),例如图5D的情况下,成为{x1,…,x3)。{21,22,23)(m=3)等。
下面从Zq之中随器选择c1,…cm(当在密钥生成阶段不能生成Co的构成情况下,Co,…Cm),根据式(4)~式(4-8)计算报头h(r,x)。 h(r,X)={h,h0,0,…,h0,max(m,k),h1,1,…,h1,k,H1,…,Hm}…(4)
h=gr …(4-1)
h0,0=(y0,0y2,0)r …(4-2)Hj=(xj,grF(xj))---(4-7)]]>F(x)=Σj=0mcjxjmodq---(4-8)]]>
在这儿,r、ri为乱数。
构成前面已介绍过的分配值求取基础的信息是上述式(4)的要素。
例如,对于属于子群i的用户而言,构成自身分配值生成基础的信息是下述信息。
h,h0,0,…,h0,max(m,k),h1,i
该构成不能在密钥生成阶段生成Co的情况下,也是y2,0=gCo。例如在图5D的情况下,成为H1=(21,grF(21))、H2=(22,grF(22))、H3=(23,grF(23))。
另一方面,当从失效对象用户集合x之中减去满足H的所有子集Uz的集合为空集的情况下,(例如用5C的情况下)或者无效对象用户集合x是空集的情况下,(例如图5A的情况下)(不能在密钥生成阶段生成Co的情况下,从Zq之中随器选择Co)按式(5)所示,计算报头h(r、x) h(r,X)={h,h0,0,…,h0,k,h1,1,…,h1,k} …(5)
h=gr …(5-1) h0,0=(y0,0y2,0)r …(5-2)h0,j=h0,jr---(5-3)]]>
在此1≤j≤k,r、rj为乱数。
该构成不能在密钥生成阶段生成Co的构成情况下,y2,0=gCo。且,式(5)所示的报头,可看作是从式(4)所示报头中减去H1,…,Hm,且m=0的构成。
在此,r为内容发送人生成的乱数,因报头可用公开密钥计算,因而任何人都可成为内容发送人。
对话密钥为grc0(=y2,0r)=grF(0),把报头h(r,x)与用对话密钥加密的内容发送给用户。
(解密阶段)
考虑属于子集Ui的用户xo。当接收到式(4)的报头的情况下,当用户xo不具备失效对象用户集合的要素时,即,用户xo不是失效对象用户时,首先如式(6)所示,计算用于计算对话密钥的分配值grF(Xo)。grF(x0)=Di(x0)/hfi(x0)---(6)]]>Di(x0)=Πj=0max(m,k)Bi,jx0j---(6-1)]]>
在此,r、rj为乱数。
采用该分配值grF(Xo),如式(7)所示,计算对话密钥grF(Xo)。grF(0)=Πj=0m(grF(xj))Lj---(7)]]>Lj=Π0≤1≤m,1≠jx1x1-xjmodq---(7-1)]]>
另外,接收到的报头是式(5)形式的情况下,设m=0,如式(8)所示,计算对话密钥grF(Xo)。grF(0)=Di(x0)/hfi(x0)---(8)]]>Di(x0)=Πj=0kBi,jx0j---(8-1)]]>
Di(xo),Bi,j的定义与设m=0的情况相对应的式(6)一样。
在上述处理之中,对于从失效对象用户集合x之中,减去所有满足H的子集Uz的集合{x1,…,xm},可任意附加(在用户集合以外且{0}以外)从Zq中适当选择出的xm+1,…,xt,这种情况下,也可将{x1,…xm,xm+1,…xt}看作是过去的{x1…xm},(即在过去的各种数式中设定为m=t)进行计算。
下面介绍该实施方式的跟踪装置。
该跟踪装置用于在没收到盗版解密器(非正当解密器)的情况下,采用暗箱跟踪(不必检查解密器的内部信息,只通过观察其输入与输出,确定非正当用户ID的非正当用户确定方法),即可确定构成该盗版解密器仿制基础的非正当用户ID。
在以正当的解密器为基础仿制盗版解密器的情况下,有两种可能,一种是仅根据一部解密器进行仿制,另一种是根据多部解密器进行仿制。
我们将第二种情况下的解密器用户(非正当用户)称之为串通者。
仅根据一部解密器仿制的盗版解密器,有可能使用与该解密器相同的解密密钥。而根据多部解密器仿制的盗版解密器则有可能使用与该多个解密装置相同的解密密钥中的任意一种。在后者的情况下,只要不是使所有串通者的脱离密钥全部失效就有可能获得对话密钥。
图6是本实施方式的跟踪装置的构成例示。
在本实施方式之中,利用前面已介绍过的密钥配送方法,可以消除一次可检查的怀疑对象的人数限制。
如图6所示,该跟踪装置40由下述各个部分构成:
实施整体控制的控制器42;存储公开密钥的公开密钥存储器43;根据控制器42发出的指令,以公开密钥及其它必要参数等(在后面介绍的例中,参数p、q、k、U)为依据,生成报头信息的报头生成器41。
本跟踪装置40,既可以安装在内容提供系统1之中,也可以是独立于内容提供系统之外的单独装置。此外,既可以具有与通信网连接的功能,也可以不具备该功能。
大体而言,控制器42将应该失效的1个或多个用户ID,即失效对象用户集合,指令给报头生成器41,报头生成器41根据被指令的失效对象用户集合,生成报头信息。且,对话密钥(或者形成其基础的信息)即可以由控制器42生成之后再指令给报头生成器41,也可由报头生成器41生成,然后再通知控制器42。生成的报头信息被发送给跟踪对象解密装置200。控制器42输入该跟踪对象解密装置200控制器解密的对话密钥,调查其是否获取了正确的对话解密密钥。控制器42边改变失效对象用户集合,边重复同样的处理,综合这些判定结果之后确定非正当用户ID。
这里是判断跟踪对象解密装置200是否获取了正确的对话密钥,但也可以设定为将用对话密钥加密的内容输入跟踪对象解密装置200,跟踪对象解密装置200用获取的对话密钥将加密内容解密,将其结果发送给控制器42。控制器42判定在跟踪对象解密装置200之中,加密的内容是否可正确解密。
下面介绍几个本实施方式的跟踪计算规则的顺序。关于具体的跟踪计算规则的顺序,可以有种种变形,并不局限于下面所举的例子。
(顺序例1)
图7表示与本实施方式有关的跟踪计算规则的处理顺序的一例。
此外,图8表示图7的步骤S3的计算规则的处理顺序的一例。盗版解密器D被没收时,通过以下的处理确定非正当用户。
而且,子集U1,…,Uk的要素如式(9)所示,设定为有专门标示。U1={u1,...,ud1}]]>U2={ud1+1,...,ud1+d2}]]>uk={uΣj=1k-1dj+1,...,uΣj=1kdj}]]>
此处为∑k=1dj=n。
设定R=Φ(空集)以及z=1(S1),关于z=1,…n,实施下述处理(S5、S6)。
设定Tz=U-{uz}(S2)。且U-{uz}意味着从U之中减去{uz}。
将输入设定为U1,…UK,Tz,D,实施计算规则A(S3)。
计算规则A(U1,…UK,Tz,D)的输出若为“1”,将uz加入R的要素中(S4)。输出若为“0”,则什么也不要干。
在步骤S5之中,若z<n,则将z只增加1(S6),回到步骤S2。
而且,在步骤S5之中,若成为z=n,则退出处理环路,将R定为非正当集合(非正当用户ID的集合),输出R(S7)。
计算规则(算法)A的详细内容如图8所示。
将从Tz之中减去满足UiTz条件的所有子集Ui的集合设定为B(S11)。
调查B是否空集(S12)。
当B不是空集的情况下,将B的全部要素代入X1,…,Xm,如式(4)所示,计算h(r,Tz)(s13)。另外,当B是空集的情况下,则如式(5)所示,计算h(r、Tz)(S14)。
对盗版解密器D,输入用步骤S13或S14计算的h(r、Tz),观察其输出(S15)。
在此判定盗版解密器D是否输出了正确的对话密钥(S16)。
在盗版解密器D输出的是正确的对话密钥时,输出“1”(S18)。当不是时,输出“0”(S17)。
盗版解密器D只输出解密后的内容时,观察内容是否被正确解密,若内容被正确解密,则输出“1”,若不是,则可输出“0”。
在该跟踪方法之中,每次选择一个怀疑对象(候补非正当用户),即,将选择的1个用户ID以外的所有用户ID均作为失效对象,将生成的报头信息发送给跟踪对象解密装置,调查该怀疑对象是否真正的非正当用户,通过把这种调查进行n次,即可确定所有非正当用户。
例如,将用户ID的集合设定为{1,…,n},将跟踪对象解密装置的串通者的用户ID设定为C1,C2。
这种情况下,若将用户ID=C1之外的全部用户ID均作为失效对象给与生成的报头信息,由于该跟踪对象解密装置与用户ID=C1对应,因而可获得正确的对话密钥。
此外,若将用户ID=C2之外的全部用户ID均作为失效对象给与生成的报头信息,由于该跟踪对象解密装置与用户ID=C2对应,因而可获得正确的对话密钥。
此外,若将与用户ID=C2、C3不相当的某一个用户ID以外的所有用户ID均作为失效对象给与生成的报头信息,则不能从该跟踪对象解密装置中获取正确的对话密钥。
因而可知该跟踪对象解密装置的串通者的用户ID是C1以及C2。(顺序例2)
图9示出与本实施方式有关的跟踪计算的处理顺序的另一个例子。
在该跟踪方法之中,采用两分探索法,通过/log2n/+1次的检查确定非正当用户集合中的一人。/log2n/表示不超过log2n的最大的整数。这种情况下,需要处理的步骤数成为O(log n)。
与上例相同,子集U1,…UK的要素如式(9)所示,均设定为有专门标示。
设定Lo=0、Hi=n、以及z=1(S21),关于z=1,…/log2n/+1,实施下述处理(S26、S27)。
代入Mid=/(LO+Hi)/2/(即,不超过(LO+Hi)/2的最大的整数)、Tz={u1,…,uMid}(S22),把输入设定为U1,…UK,、Tz、D,实施上述的计算规则A(参照图8)(S23)。
计算规则A(U1,…UK,Tz,D)的输出若为“1”则代入Lo=Mid(S24)。若输出为“0”则代入Hi=Mid(S25).
在步骤S26之中,若z</log2n/+1,则将z仅增加1(S27)之后,回到步骤S22。
而且在步骤S26之中,若成为z=/log2n/+1,则退出处理环路,关于某个z(z=1,…,/log2n/+1),将满足A(U1,…,Uk,Tz,D)=“1”且A(U1,…,Uk,TzU{u},D)=“0”的U定为非正当用户输出(S28)。
(顺序例3)
在顺序例2之中,是用二分探索法增减怀疑对象人数进行检查的,但也可以用每次增加一个怀疑对象的方法进行检查。
依据本实施例,采用上述密钥生成方法生成的解密密钥即可将加密数据用解密密钥的对话密钥解密,使任意人数的用户解密密钥失效。解密密钥的失效,可通过即使使用失效对象用户(某特定的(1个或多个)用户)的解密密钥,也不能获取对话密钥,而用除此之外的用户的解密密钥却能解密的形式,将对话密钥加密。
此外,依据本实施例,从采用上述的密钥生成方法生成的解密密钥的盗版解密器之中确定非正当用户时,不必探察串通者构成的非正当解密器内部信息,而是仅通过观察其输入输出,确定串通者(的用户识别信息)。在本发明之中,可通过应用上述密钥生成方法或密钥配送方法,消除一次可检查的怀疑对象的人数限制。
第2实施方式
接下来介绍本发明的第2实施方式。
下面重点介绍与第1实施方式不同的部分。
本实施方式涉及的数据通信系统的构成与图1相同。此外,在下述几个方面均与第1实施方式相同:内容提供系统1也可以是多个,同一个结点也可以同时兼备内容提供系统与用户系统两种功能,可通过所有结点同时兼备内容提供系统与用户系统的功能,彼此进行密码通信。此外,关于与通信网3有关的变种也与第1实施方式相同。
本实施方式的整体过程与图2相同。
在设定为对各用户系统2分别分配固有的用户识别信息(用户ID)方面也与第1实施方式相同。
此外,当出现应使其解密密钥失效的对象用户ID的情况时,由于内容提供系统1是根据失效对象的1个或多个用户ID生成报头信息的,因而对于持有该失效的对象用户ID的用户系统2而言,在图2的S5之中不能获取正确的对话密钥(因此不能用图2的S6对加密内容解密)。而且,对于持有该失效对象的用户ID以外的用户ID的用户系统2而言,则可以在图2的S6之中,获取正确的对话密钥(因此可在图2的S6之中对加密内容解密),在这一方面也与第1实施方式相同。
此外,本实施方式也与第1实施方式一样,用户的解密密钥是通过将用户ID代入密钥生成多项式而生成的,同时设定为将用户集合分割为多个子群,对各个子群分配彼此不同的多项式,采用分配给各用户ID所属子群的密钥生成多项式生成各用户ID的解密密钥。这样就可实现使任意数量用户的解密密钥失效,同时也可以减少暗箱跟踪所需要的处理步骤。
本实施方式的内容提供系统1中安装的加密装置10的构成与图3相同。内容提供系统1在通信接口、内容存储装置或内容输入装置等根据需要配置的种种装置方面也与第1实施方式相同。
在本实施例用户系统2中安装的解密装置20的构成例基本与图4是相同的。而且,用户系统2在包括必要的各种装置如通信接口电路、内容存储装置或内容显示等装置的方面,是与第一实施例相同的。
在此简要介绍根据报头信息对对话密钥解密的途径。
首先,如图5B所示(下标线表示失效对象用户),当只使用户ID=1、2、3、失效的情况下,设定为必须集中某4个数据才能将对话密钥解密,为了简化介绍,若将失效对象用户数设定为与最大串通者数量相等,则只有在集中了失效对象用户数+1的分配值之后,才能将对话密钥解密。
在报头信息之中,记述求取用户ID=1的分配值(1,gF(1))、求取用户ID=2的分配值(2,gF(2))、求取用户ID=3的分配值(3,gF(3))的同时,记述构成该用户ID=Xo的分配值(Xo,gF(Xo))求取基础的信息。
关于用户ID=1、2、3以外的用户ID,由于可通过求取与该用户ID=Xo相对应的分配值(Xo,gF(Xo))、集中所需要的4个分配值,因而能获取正确的对话密钥。
与此相反,关于用户ID=1,即便求出与该用户ID=1相对应的分配值(1,gF(1)),由于也与报头信息中记述的分配值重复,不能集中所需要的4个数据,因而不能获取正确的对话密钥。关于用户ID=2、3,也与此相同。
接着,如图5C所示,失效对象用户ID=1~20全部属于同一子群的情况下,不必使用全部失效对象用户各自的分配值,而是使该子群整体失效。使一个子群U1整体失效的情况下,在构成与该子群U1相对应的对话密钥计算基础的信息之中,预先记述错误的值(乱数等),只使该子群不能获取正确的对话密钥。
关于属于子群U1的用户ID,由于构成对话密钥计算基础的信息是错误的值,因而不能获取正确的对话密钥。
此外,如图5D所示,在使用户ID=1~20,即一个子群U1整体失效的同时还要使用户ID=21、22、23失效的情况下,将图5B的方法与图5C的方法组合实施。为了简要说明,在不属于整个子群全体失效的对象用户的数量与最大串通者人数相等的情况下,将对话密钥的解密所需的分配值设定为不属于子群的整体失效对象用户数+1。
该例的情况下,在报头信息之中,记述可求取的用户ID=21的分配值(21、gF(21)),可求取的用户ID=22的分配值(22,gF(22)),可求取的用户ID=23的分配值(23,gF(23))。此外,在构成与该子群U1相对应的分配值计算基础的信息中预先记述错误的值(乱数等),以便只使失效子群U1不能获取正确的分配值。而对其之外的子群,则在构成与该子群对应的分配值计算基础的信息中预先记述正确的值,以便使之获取正确的分配值。
关于不属于U1也不属于用户ID=21、22、23的用户ID,由于可求取正确的分配值,并用此集中所需要的4个数据,因而能够获取正确的对话密钥。关于用户ID=21、22、23,即使能求取正确的分配值,由于不能集中所需4个分配值,因而不能获取正确的对话密钥。
对于用户ID=21,22,23,即使能求出正确的分配值,也由于没有凑齐必要的4个分配值,所以不能取得正确的对话密钥。
关于属于子群U1的用户ID,由于构成正确分配值计算基础的信息是错误的值,因而不能集中4个正确的分配值,结果是不能获取正确的对话密钥。
下面详细介绍密钥生成阶段、加密阶段、解密阶段。
首先定义参数。
设整个用户数为n,设最大串通人数为k。
设p、q为素数,q可用p-1整除,且设q为n+k+1以上。
设Zq={0,1,…,q-1}。
设Zp*={1,…,p-1}。把g设为Zp*上的1的q根。
把Gq设定为Zp*的部分群,且位数是q的乘法群。
将用户集合(用户的识别信息(用户号码)的集合)设定为U(UZq-{0})。且Zq-{0}意味着从Zq中减去{0}。
将失效对象用户集合(解密密钥被失效的用户的集合)设定为x。
p、q、g的值为公开值。
下面只要没有特别理由,计算设定为在Zp*上进行。
(密钥生成阶段)
将构成公开密钥基础的参数ao,…ak,b1,…bk从Zq之中随器选择,而gCo构成对话密钥。
下面计算公开密钥。
公开密钥如式(2)所示
进而将用户集合U分割为不具备共同要素的k(=最大串通人数)个子集。将这些k个子集设定为U1,…Uk。U1,…Uk公开。
最后,将解密密钥fi(u)(将分配给用户u所属的子集Ui的密钥生成多项式代入后得到的值)配送给属于子集Ui的用户u(把用户u的用户ID设定为u)。在此,密钥生成多项式fi(x)可用式(3)表示。
(加密阶段)
检查从失效对象用户集合x(例如图5D的{1,…23})之中减去满足Uzx的所有子集Uz(例如图5D的U1)的集合(定义为y)是否空集。当y不是空集的情况下,将其设定为{x1,…xm},例如图5D的情况下,成为{x1,…,x3}={21,22,23}(w=3)接着找出满足d(k+1)≤w≤d(k+1)+k条件的整数d,设定为m=d(k+1)+k。另外,当y是空集时(例如图5C时),或失效对象用户集合x是空集时(例如图5A时),设定为m=k。w=0。
接着从Zq之中随器选择c0,…,cm,若w<m,从Zq-(U+{0})之中随器选择xw,…,xm。而Zq-(U+{0}则意味着从Zq之中减去U与{0}之并集。根据式(10)~式(10-6),计算报头h(r,x)。
h(r,X)={h,h0,0,…,h0,m,h1,1,…,h1,m,H1,…,Hm} …(10)
h=gr …(10-1)h0,j=y0,zjrgcj---(10-2)]]>
zj=j mod(k+1) …(10-3)Hj=(xj,gF(xj))---(10-5)]]>F(x)=Σj=0mcjxjmodq---(10-6)]]>
在此r、rj是乱数。
(j∈{z|1≤z≤m,z≠0(mod(k+1)),Uz mod(k+1)x})
而zj=0时,不需要h1、j,不包含在报头之中。
例如图5D时H1(21,gF(21))、H2=(22,gF(22))、H3=(23,gF(23))等等
在此,r,rj是内容配送人生成的乱数,因报头可采用公开密钥e进行计算,因而任何人都可成为内容配送人。
对话密钥gCo=gF(0),把报头h(r,x)和用对话密钥加密的内容发送给用户。
前面介绍到的构成分配值基础的信息是指上述式(10)的要素。
例如对于属于子群i的用户而言,构成自己的分配值生成基础的信息是以下的信息。
h,h0,0,…,h0,m,h1,i,h1,i+k+1,…
(解密阶段)
考虑属于子集Ui的用户xo。当用户xo不是失效对象用户集合x要素时,即,用户xo不是失效对象用户时,首先如式(11)所示,计算用于计算对话密钥的分配值grF(Xo)。gF(x0)=Di(x0)/hfi(x0)Σj=0dx0j(k+1)---(11)]]>
d=(m-k)/(k+1) …(11-1)Di(x0)=Πj=0mBi,jx0j---(11-2)]]>
在此,r、rj为乱数。
采用该分配值gF(Xo),如式(12)所示计算对话密钥gF(0)。gF(0)=Πj=0m(gF(xj))Lj---(12)]]>Lj=Π0≤1≤m,1≠jx1x1-xjmodq---(12-1)]]>
关于本实施方式的跟踪装置,基本与第1实施方式相同。
此外,本实施方式的跟踪计算的顺序也基本与第1实施方式的顺序例1~顺序例3相同。但由于本实施方式对顺序例1、2中的一部分加以了修改,因而关于具体的跟踪计算的顺序,自然会有种种变形方式,在不局限于顺序例1~顺序例3方面也一样。
(顺序例1)
与本实施方式有关跟踪计算的处理顺序(顺序例1)与图7相同。
图10示出图7的步骤S3的计算规则A在本实施方式中的处理顺序。
本实施方式中图10的计算规则A的顺序与第1实施方式中的图8的计算规则之间的区别在于:图8的步骤S13与S14被图10的步骤S13’S14’置换。
即,在本实施方式的顺序例1之中,在步骤S12,检查是否空集之后,当B不是空集的情况下,将B的全部要素代入X1,…,Xw,找出满足d(k+1)≤w≤d(k+1)+k条件的整数d,设定m=d(k+1)+k,如式(10)所示,计算h(r、Tz)(S13’)。另外,当B是空集的情况下,设定m=k,w=0,如式(10)所示,计算(h(r、Tz)(S14’)
(顺序例2)
与本实施方式有关的跟踪计算的处理顺序的另一个例子(顺序例2),与图9相同。此时,在步骤S23实施的计算规则A也与图(10)相同。
不过,在上述各种实施方式之中,最大分割子群数为k,当想使子群数增加时,需使k值增加后生成密钥生成多项式。例如,使最大分割子群数增加到m·k+Δk个,(在此,设1≤M、0<Δk≤k=的情况下,与各子群U1~UM·k+Δk分别对应的密钥生成多项式f1(x)~fM·k+Δk(x)则变为式(13)。这种情况下,与此相对应,只要适当进行公开密钥、报头的变更(追加要素)即可。
f1(x)=a0+b1·x+a2·x2+a3·x3+…+aM·k+Δk·xM·k+Δk
f2(x)=a0+a1·x+b2·x2+a3·x3+…+aM·k+Δk·xM·k+Δk
∶
fM·k+Δk(x)=a0+a1·x+a2·x2+a3·x3+…+bM·k+Δk·x M·k+Δk …(13)
而且,在M=1,Δk=k的情况下,成为式(14)
f2(x)=a0+a1·x+b2·x2+a3·x3+…+ak+Δk·xk+Δk
∶
f2k(x)=a0+a1·x+a2·x2+a3·x3+…+b2k·x2k
…(14)对此还可能有其它种种方法。
例如,在分割为M·k+Δk个(1≤M、0<Δk≤k)子群时,对于可用第m·k+i(0≤m≤M、0≤m<M时,1≤i≤k,m=M时,1≤i≤ΔK)表示的子群,也有可能采用式(15)所示的分配密钥生成多项式的方法。
fi(x)=a0+a1·x+a2·x2+a3·x3+…+bm,i·xi+…+ak-2
·xk-2+ak-1·xk-1+ak·xk …(15)
在上述bm,i中,m=0时的各系数bo,1,…,bo,Δk分别对应于前面介绍的b1,…,bk。此外,在下面的介绍之中,有时也将bo,1,…,bo,k分别简化为b1,…,bk,将b1,1,…,b1,k分别简化为d1,…,dk。
例如若设M=1,则不增加k的值,而j在密钥生成阶段,追加d1,…,dΔk(在上述式(15)之中,b1,1,…,b1,Δk),也可如下式(16)所示,使密钥生成多项式的种类(子群数)增加。
f1(x)=a0+b1·x+a2·x2+a3·x3+…+ak·xk
f2(x)=a0+a1·x+b2·x2+a3·x3+…+ak·xk
∶
fk(x)=a0+a1·x+a2·x2+a3·x3+…+bk·xk
fk+1(x)=a0+d1·x+a2·x2+a3·x3+…+ak·xk
fk+2(x)=a0+a1·x+d2·x2+a3·x3+…+ak·xk
∶
fk+Δk(x)=a0+a1·x+a2·x2+…+dΔk·xΔk+…+ak·xk
…(16)
而在M=1,Δk=k的情况下,成为式(17)
f1(x)=a0+b1·x+a2·x2+a3·x3+…+ak·xk
f2(x)=a0+a1·x+b2·x2+a3·x3+…+ak·xk
∶
fk(x)=a0+a1·x+a2·x2+a3·x3+…+bk·xk
fk+1(x)=a0+d1·x+a2·x2+a3·x3+…+ak·xk
fk+2(x)=a0+a1·x+d2·x2+a3·x3+…+ak·xk
∶
f2k(x)=a0+a1·x+d2·x2+a3·x3+…+dk·xk
…(17)
M>2的情况下,同样追加适当的参数,使密钥生成多项式的种类(子群数)增加即可。
此外,设定为在使k值增加的同时,也追加参数,同样能使密钥生成多项式的种类(子群数)增加。
在前面的介绍之中,已举过下述例子:在记述构成与各子群对应的分配值计算基础的信息时,当使1个或多个特定子群失效的情况下,为了不使该1个或多个特定子群获取正确的分配值,在与该1个或多个特定子群分别对应的,构成分配值计算基础的各自的信息之中记述错误的值(乱数等);
为了使其它子群能获取正确的分配值,在与该子群分别对应的,构成分配值计算基础的各自的信息中记述正确的值。但也可以用下述方法取代:例如对于1个或多个失效的特定子群,禁止在报头信息之中记述与该1个或多个特定子群相对应的,构成分配值计算基础的各自的信息;而对于其它子群,则允许在报头信息中记述与该子群对应的,构成分配值计算基础的各自的信息(正确值)。这是因为这样做,对于失效的1个或多个特定子群而言,在报头信息中也并不包含构成分配值计算基础的信息,所以不能求得正确的分配值,而对于其它子群而言,则可以求得正确的分配值。
本实施方式的加密装置,解密装置、跟踪装置,无论采用半导体集成电路装置等的硬件还是软件(使电脑实施规定的手段的,或使电脑具有规定手段功能的,或使电脑实现规定功能的程序)均能够实现硬件与软件并用,自然也能够实现。
与装置有关的本发明作为与方法有关的发明也同样成立,与方法有关的本发明作为与装置有关的发明也同样成立。
此外,与内容提供系统,提供方法有关的本发明,作为与加密装置,加密方法有关的发明也同样成立,与用户提供系统,提供方法有关的本发明,作为与解密装置,解密方法有关的发明也同样成立。
在本发明的实施方式举例的构成只是一种例子,并不排除其它构成,也可以将例示的构成的某一部分用其它代替,或者省略其中一部分,或者对例示的构成付加别的功能或别的要素,或者还可通过组合使用上述各种方法获得新的构成。此外还可以是与例示构成逻辑等效的其它构成,或含有与例示构成逻辑等效部分的构成。还可以是达到与例示的构成相同或类似目的的其它构成,或是与例示的构成具有相同或类似效果的构成。
此外,关于该发明实施方式中例示的各种构成部分的变种,可适当组合实施。
此外,该发明的实施方式中含有作为个别装置的发明,关于有关连的两个以上的装置的发明,作为系统整体的发明,关于个别装置内部的构成部分的发明,以及与之相对应的方法的发明等等,种种观点、阶段、概念或涉及种类的发明。
依据本发明,可以实现更有效的密钥生成方法及密钥配送方法。此外还有可能更灵活地使解密密钥失效,以及可更有效地实施暗箱跟踪。