密钥交换方法、密钥交换系统、密钥分发装置、通信装置、及程序与流程

文档序号:13543876阅读:277来源:国知局

本发明涉及信息安全技术的应用,特别是涉及形成组的多个用户共享公共密钥的密钥交换技术。



背景技术:

目前,提出有形成组的多个用户共享公共密钥的密钥交换技术(例如,参照非专利文献1、2)。非专利文献1中记载有实现这种密钥交换技术的信息系统的构架。非专利文献2中记载有这种密钥交换技术的算法。

现有技术文献

非专利文献

非专利文献1:suvomittra,“iolus:aframeworkforscalablesecuremulticasting”,sigcomm'97,pp.277-288

非专利文献2:“scalablemulticastkeydistribution”、[online]、[平成27年6月5日检索]、因特网<url:https://tools.ietf.org/html/rfc1949>

发明所要解决的课题

非专利文献1、2所记载的现有技术中,需要预先注册共享公共密钥的用户,因此,不能在允许动态成员变更的同时,多个用户共享公共密钥。另外,因为将用户数设为n,作为整体,密钥交换所需的计算量成为o(logn),所以存在随着用户数的增大而密钥交换的计算量增加的问题。



技术实现要素:

本发明的目的是,鉴于这一点,提供能够在允许动态成员变更的同时,多个用户共享公共密钥,能够降低密钥交换所需的计算量的密钥交换技术。

用于解决课题的技术方案

为了解决所述的课题,本发明提供一种密钥交换方法,将n设为2以上的整数,将i设为1至n的各整数,将j设为2至n的各整数,将s设为密钥分发装置,将ui设为n台的通信装置,将u1设为从所述通信装置ui选择的1台代表通信装置,将uj设为从所述通信装置ui除去了所述代表通信装置u1的n-1台的普通通信装置,将||设为连结运算符,将α,β设为由下式定义的整数,

在密钥分发装置s的存储单元存储有密钥分发装置s的公开密钥密码的秘密密钥sks及秘密字符串sts,st's,在通信装置ui的存储单元存储有通信装置ui的公开密钥密码的秘密密钥ski及秘密字符串sti,st'i,密钥交换方法包含:通信装置ui通过扭曲伪随机函数,使用秘密字符串sti,st'i生成ri,ki,si,计算ri=gri及ci=gkihsi,将(ri,ci)发送到密钥分发装置s的第一密钥生成步骤;密钥分发装置s通过目标碰撞困难散列函数,使用c1,…,cn生成sid,对于各i,将(sid,rα,rβ)发送到通信装置ui的会话id生成步骤;代表通信装置u1通过伪随机函数,使用(sid,rnr1)生成k1l,通过k1l和k1||s1的“异或”计算t1,并将t1发送到密钥分发装置s的代表第二密钥生成步骤;普通通信装置uj通过伪随机函数,使用(sid,rαrj)生成kjl,通过伪随机函数,使用(sid,rβrj)生成kjr,通过kjl和kjr的“异或”计算tj,并将(kj,sj,tj)发送到密钥分发装置s的普通第二密钥生成步骤;密钥分发装置s通过扭曲伪随机函数,使用秘密字符串sts,st's生成ks,通过k2,…,kn,ks的“异或”计算k',对于各j,通过t1,…,tj-1的“异或”计算t'j,并将k'发送到代表通信装置u1,将(k',t'j,t1)发送到普通通信装置uj的第三密钥生成步骤;普通通信装置uj通过t'j和kjr的“异或”计算kjl,并通过t1和kjl的“异或”计算k1||s1的第一会话密钥生成步骤;通信装置ui通过伪随机函数,使用sid及k'和k1的“异或”生成公共密钥k2的第二会话密钥生成步骤。

发明效果

根据本发明,能够在允许动态成员变更的同时,多个用户共享公共密钥。密钥交换所需的计算量成为用户数的常数次、即o(1),与以往相比被消减。

附图说明

图1是示例密钥交换系统的功能结构的图。

图2(a)是示例密钥分发装置的功能结构的图,图2(b)是示例通信装置的功能结构的图。

图3是表示密钥交换方法的处理流程的图。

图4是示例密钥交换方法的处理流程的图。

具体实施方式

在说明实施方式之前,说明该说明书的表述方法。

关于某集合set,将从set随机选择要素m表述为m∈rset。

关于某算法alg,将alg对于输入x和随机数r输出y表述为y←alg(x;r)。此外,alg为确定的算法的情况下,随机数r为空。

|·|为值·的位长。

将к设为安全参数。

将f={fк:domк×fsк→rngк}к设为具有定义域{domк}к、密钥空间{fsк}к、值域{rngк}к的函数族。此时,如果相对于任意的多项式时间的识别者d不能分辨函数fк和真正随机函数rfк:domк→rngк,则将f={fк}к称作伪随机函数族。伪随机函数的具体例例如记载于下述参考文献1。

〔参考文献1〕o.ゴールドライヒ著、“現代暗号·確立証明·擬似乱数”、シュプリンガー·フェアラーク東京、2001年

将h={hк:domк→rngк}к设为具有定义域{domк}к、值域{rngк}к的散列函数族。此时,如果对于任意的多项式时间的攻击者a,在赋予了x∈rdomк之后未发现成为hк(x)=hк(x')那种的x'(≠x),则将h={hк}к称作目标碰撞困难散列函数族。目标碰撞困难散列函数的具体例例如记载于下述参考文献2。

〔参考文献2〕j.a.ブーフマン著、“暗号理論入門原書第3版”、丸善出版、2007年

将公开密钥密码算法设为(gen,enc,dec)。密钥生成算法gen以安全参数к为输入,以公开密钥pk和秘密密钥sk为输出。加密算法enc以公开密钥pk和明文m为输入,以密文ct为输出。解密算法dec以秘密密钥sk和密文ct为输入,以明文m为输出。公开密钥密码算法的具体例例如记载于上述参考文献2。

将消息认证码算法设为(mgen,tag,ver)。mac密钥生成算法mgen以安全参数к为输入,以mac密钥mk为输出。标志生成算法tag以mac密钥mk和明文m为输入,以认证标志σ为输出。验证算法ver以mac密钥mk、明文m、认证标志σ为输入,如果认证标志σ正确,则输出1,如果不正确,则输出0。消息认证码算法的具体例例如记载于上述参考文献2。

将函数加密算法设为(setup,der,fenc,fdec)。设置算法setup以安全参数к为输入,输出主秘密密钥msk和公开参数params。密钥导出算法der以公开参数params、主秘密密钥msk、属性a为输入,输出用户秘密密钥usk。加密算法fenc以公开参数params、访问结构p、明文m为输入,输出密文ct。解密算法fdec以用户秘密密钥usk和密文ct为输入,如果属性a满足访问结构p,则输出明文m。函数加密算法的具体例例如记载于下述参考文献3。

〔参考文献3〕d.boneh,a.sahai,andb.waters,“functionalencryption:definitionsandchallenges”,tcc,lecturenotesincomputerscience,vol.6597,pp.253-273,2011.

将函数tprf:{0,1}к×fsк×{0,1}к×fsк→rngк称作扭曲伪随机函数,使用伪随机函数fк,定义为:

其中,a,b'∈{0,1}к,a',b∈fsк。扭曲伪随机函数的具体例例如记载于下述参考文献4。

〔参考文献4〕kazukiyoneyama,“one-roundauthenticatedkeyexchangewithstrongforwardsecrecyinthestandardmodelagainstconstrainedadversary”,ieicetransactions,vol.e96-a,no.6,pp.1124-1138,2013.

以下,详细说明本发明的实施方式。此外,图中具有相同功能的结构单元标注同一编号,省略重复说明。

实施方式的密钥交换系统如图1所示例,包含密钥分发装置1及n(≧2)台通信装置21,…,2n。该实施方式中,密钥分发装置1及通信装置21,…,2n分别连接到通信网3。通信网3为以密钥分发装置1与通信装置21,…,2n可分别进行通信的方式构成的回路交换方式或分组交换方式的通信网。该实施方式中,通信装置21,…,2n彼此之间也可以不能通信。通信网3不需要是确保安全的通信线路,例如能够使用因特网等。

密钥分发装置1如图2(a)所示例,包含存储单元100、设置单元101、公开密钥生成单元102、秘密字符串生成单元103、用户密钥发送单元111、会话id生成单元113、认证标志验证单元114、第三密钥生成单元115、及认证标志生成单元116。通信装置2如图2(b)所示例的那样,包含存储单元200、公开密钥生成单元202、秘密字符串生成单元203、用户密钥接收单元211、第一密钥生成单元212、第二密钥生成单元214、认证标志生成单元215、认证标志验证单元216、及会话密钥生成单元217。该密钥分发装置1及通信装置21,…,2n通过进行图3及图4所示例的各步骤的处理,实现实施方式的密钥交换方法。

密钥分发装置1及通信装置21,…,2n例如为在具有中央运算处理装置(cpu:centralprocessingunit)、主存储装置(ram:randomaccessmemory)等的公知或专用的计算机中读入特别的程序而构成的特别的装置。各装置例如基于中央运算处理装置的控制而执行各处理。被输入各装置的数据及通过各处理得到的数据例如存储于主存储装置中,存储于主存储装置的数据根据需要被读出至中央运算处理装置,用于其它处理。各装置具备的各处理单元也可以至少一部分由集成电路等硬件构成。

密钥分发装置1具备的存储单元100及通信装置21,…,2n具备的存储单元200例如能够通过ram(randomaccessmemory)等主存储装置、由硬盘或光盘或闪存(flashmemory)那样的半导体存储器元件构成的辅助存储装置、或关系数据库或密钥值存储(keyvaluestore)等中间件构成。各存储单元为了存储秘密信息,优选为具有防篡改性的存储装置(例如sim卡等)。

参照图3,说明实施方式的密钥交换方法的系统设置的处理步骤。

在以后的说明中,如下定义记号。s表示密钥分发装置1,ui(i∈{1,…,n})表示n台通信装置21,…,2n。将g设为к位的素数位数p的乘法循环群。将g,h分别设为群g的生成元。将h:{0,1}*→{0,1}к设为目标碰撞困难散列函数。将tprf:{0,1}к×fsк×{0,1}к×fsк→zp、tprf':{0,1}к×fsк×{0,1}к×fsк→fsк设为扭曲伪随机函数。将f:{0,1}к×g→zp2、f':{0,1}к×zp→fsк、f":{0,1}к×fsк→{0,1}к设为伪随机函数。

在步骤s101,密钥分发装置s的设置单元101通过函数加密的设置算法setup生成公开参数params及主秘密密钥msk。设置单元101将公开参数params分别发送到通信装置u1,…,un。主秘密密钥msk被存储到存储单元100。

在步骤s102,密钥分发装置s的公开密钥生成单元102通过公开密钥密码的密钥生成算法gen生成密钥分发装置s的公开密钥pks及秘密密钥sks的对。密钥分发装置s的公开密钥pks使用例如公开密钥基础等来公开。密钥分发装置s的秘密密钥sks被存储到存储单元100。

在步骤s202,通信装置ui的公开密钥生成单元202通过公开密钥密码的密钥生成算法gen生成通信装置ui的公开密钥pki及秘密密钥ski的对。通信装置ui的公开密钥pki使用例如公开密钥基础等来公开。通信装置ui的秘密密钥ski被存储到存储单元200。

在步骤s103,密钥分发装置s的秘密字符串生成单元103生成扭曲伪随机函数中使用的秘密字符串(sts,st's)作为sts∈rfsк、st's∈{0,1}к。秘密字符串(sts,st's)被存储到存储单元100。

在步骤s203,通信装置ui的秘密字符串生成单元203生成扭曲伪随机函数中使用的秘密字符串(sti,st'i)作为sti∈rfsк、st'i∈{0,1}к。秘密字符串(sti,st'i)被存储到存储单元200。

在步骤s104,密钥分发装置s从例如公开密钥基础等取得各通信装置u1,…,un的公开密钥pk1,…,pkn,并将其存储到存储单元100。

在步骤s204,通信装置ui从例如公开密钥基础等取得密钥分发装置s的公开密钥pks,并将其存储到存储单元200。另外,将从密钥分发装置s接收到的公开参数params存储到存储单元200。

参照图4,说明实施方式的密钥交换方法的会话密钥分发的处理步骤。

以下,设为n台通信装置21,…,2n中的任意的n(≦n)台通信装置ui(i∈{1,…,n})进行会话密钥sk的共享。另外,在将s,ui作为各算法的输入的情况下,表示唯一地特定各装置的标识符。

在步骤s111,密钥分发装置s的用户密钥发送单元111在通信装置ui开始会话时,在该会话为通信装置ui的时帧tf的最初的会话的情况下,将当前时刻设为time,将属性设为ai=(ui,time),通过函数加密的密钥导出算法der,生成通信装置ui的用户秘密密钥uski←der(params,msk,ai)。另外,通过消息认证码的密钥生成算法mgen,生成通信装置ui的mac密钥mki←mgen。而且,通过公开密钥密码的加密算法enc,使用通信装置ui的公开密钥pki将用户秘密密钥uski及mac密钥mki加密,生成密文cti←encpki(uski,mki)。用户密钥发送单元111将密文cti分别发送到通信装置ui。

在步骤s211,通信装置ui的用户密钥接收单元211通过公开密钥密码的解密算法dec,使用通信装置ui的秘密密钥ski将从密钥分发装置s接收到的密文cti解密,得到用户秘密密钥及mac密钥(uski,mki)←decski(cti)。用户密钥接收单元211将用户秘密密钥uski及mac密钥mki存储到存储单元200。

在步骤s212,通信装置ui的第一密钥生成单元212生成ri∈r{0,1}к,r'i∈rfsк,ki∈r{0,1}к,k'i∈rfsк,si∈r{0,1}к,s'i∈rfsк,通过扭曲伪随机函数tprf计算ri=tprf(ri,r'i,sti,st'i),ki=tprf(ki,k'i,sti,st'i),si=tprf(si,s'i,sti,st'i)。另外,计算ri=gri,ci=gkihsi。而且,第一密钥生成单元212将(ri,ci)发送到密钥分发装置s。

在步骤s112,密钥分发装置s从通信装置ui接收(ri,ci)。此时,等待至从所有的通信装置u1,…,un接收到(r1,c1),…,(rn,cn)为止。

在步骤s113,密钥分发装置s的会话id生成单元113通过目标碰撞困难散列函数h,使用从通信装置u1,…,un接收到的c1,…,cn,生成sid=h(c1,…,cn)。另外,从n台通信装置u1,…,un选择1台通信装置作为代表者。代表者的选择方法是任意的,例如,可以选择预定的优先级最高的通信装置,也可以选择最近开始会话的通信装置。在此,通信装置u1作为被选择者,将u1称作代表通信装置。另外,将代表通信装置u1以外的n-1台通信装置uj(j∈{2,…,n})称作普通通信装置。会话id生成单元113如下式那样计算α、β,将(sid,rα,rβ)分别发送到通信装置ui。

在步骤s213,通信装置ui从密钥分发装置s分别接收(sid,rα,rβ)。通信装置ui随着接收(sid,rα,rβ),执行以后的处理。在i=2,…,n的情况下,即如果通信装置ui为通信装置uj(i=j),则处理进入步骤s214j。在i=1的情况下,即如果通信装置ui为代表通信装置u1,则处理进入步骤s2141。

在步骤s214j,普通通信装置uj的第二密钥生成单元214如下式那样,通过伪随机函数f,使用(sid,rαrj)生成kjl,通过伪随机函数f,使用(sid,rβrj)生成kjr,通过kjl和kjr的“异或”计算tj。

在步骤s215j中,普通通信装置uj的认证标志生成单元215通过消息认证码的标志生成算法tag,使用mac密钥mkj生成认证标志σj=tagmkj(rj,cj,rα,rβ,kj,sj,tj,uj,sid)。认证标志生成单元215将(kj,sj,tj,σj)发送到密钥分发装置s。

在步骤s2141,代表通信装置u1的第二密钥生成单元214如下式那样,通过伪随机函数f,使用(sid,rnr1)生成k1l,通过k1l和k1||s1的“异或”计算t1。其中,||为连结运算符。

在步骤s2151,代表通信装置u1的认证标志生成单元215通过消息认证码的标志生成算法tag,使用mac密钥mk1生成认证标志σ1=tagmk1(r1,c1,rn,r2,t1,u1,sid)。认证标志生成单元215将(t1,σ1)发送到密钥分发装置s。

在步骤s114j,密钥分发装置s的认证标志验证单元114对于j=2,…,n,从普通通信装置uj接收(kj,sj,tj,σj),通过消息认证码的验证算法ver,使用普通通信装置uj的mac密钥mkj验证vermkj(rj,cj,rα,rβ,kj,sj,tj,uj,sid,σj)。如果认证标志σj为不正当,则结束普通通信装置uj的会话。另外,关于j=2,…,n,验证cj=gkjhsj是否成立。如果不成立,则结束普通通信装置uj的会话。

在步骤s1141,密钥分发装置s的认证标志验证单元114从代表通信装置u1接收(t1,σ1),通过消息认证码的验证算法ver,使用代表通信装置u1的mac密钥mk1验证vermk1(r1,c1,rn,r2,t1,u1,sid,σ1)。如果认证标志σ1为不正当,则结束代表通信装置u1的会话。

在步骤s115a,密钥分发装置s的第三密钥生成单元115生成ks∈r{0,1}к,k's∈rfsк,k1∈r{0,1}к,k'1∈rfsк,通过扭曲伪随机函数tprf来计算ks=tprf(ks,k's,sts,st's),k1=tprf(k1,k'1,sts,st's)。另外,通过下式来计算k'。

在步骤s115b,密钥分发装置s的第三密钥生成单元115对于j=2,…,n,通过下式计算t'j。

在步骤s115c,密钥分发装置s的第三密钥生成单元115对于i=1,…,n,作为访问结构pi=(id=ui)∧(time∈tf),通过函数加密的加密算法fenc将公共密钥k1加密,生成密文ct'i=fenc(params,pi,k1)。在此,id是表示通信装置的谓词变量,tf为表示通信装置的时帧的谓词变量。

在步骤s116i,密钥分发装置s的认证标志生成单元116对于j=2,…,n,通过消息认证码的标志生成算法tag,使用普通通信装置uj的mac密钥mkj生成认证标志σ'j=tagmkj(rj,cj,rα,rβ,kj,sj,tj,uj,sid,c1,k',t'j,t1,ct'j)。认证标志生成单元116将(c1,k',t'j,t1,ct'j,σ'j)发送到普通通信装置uj。

在步骤s1161,密钥分发装置s的认证标志生成单元116通过消息认证码的标志生成算法tag,使用代表通信装置u1的mac密钥mk1生成认证标志σ'1=tagmk1(r1,c1,rn,r2,t1,u1,sid,k',ct'1)。认证标志生成单元116将(k',ct'1,σ'1)发送到代表通信装置u1。

在步骤s216j,普通通信装置uj的认证标志验证单元216从密钥分发装置s接收(c1,k',t'j,t1,ct'j,σ'j),通过消息认证码的验证算法ver,使用普通通信装置uj的mac密钥mkj验证vermkj(rj,cj,rα,rβ,kj,sj,tj,uj,sid,c1,k',t'j,t1,ct'j,σ'j)。如果认证标志σ'j为不正当,则结束普通通信装置uj的会话。另外,如下式,通过t'j和kjr的“异或”计算kjl,且通过t1和kjl的“异或”计算k1||s1。

然后,验证c1=gk1hs1是否成立。如果不成立,则结束普通通信装置uj的会话。

在步骤s2161,代表通信装置u1的认证标志验证单元216从密钥分发装置s接收(k',ct'1,σ'1),通过消息认证码的验证算法ver,使用代表通信装置u1的mac密钥mk1验证vermk1(r1,c1,rn,r2,t1,u1,sid,k',ct'1,σ'1)。如果认证标志σ'1为不正当,则结束代表通信装置u1的会话。

在步骤s217,通信装置ui的会话密钥生成单元217通过函数加密的解密算法fdec,使用通信装置ui的用户秘密密钥uski将公共密钥k1←fdecuski(ct'i,pi)解密。另外,如下式,通过伪随机函数f'来计算公共密钥k2。

然后,如下式,通过伪随机函数f"来计算会话密钥sk。

通过如上那样构成,根据本发明的密钥交换技术,不需要如以往那样预先注册进行密钥交换的用户的信息,能够在允许动态的成员变更的同时,多个用户共享公共密钥。另外,以往,将用户数设为n,密钥交换所需的整体的计算量成为o(logn),但根据本发明,成为用户数的常数次、即o(1),所以与以往相比,能够以少的计算量进行密钥交换。

本发明不限于上述的实施方式,不用说,在不脱离本发明的宗旨的范围内可以进行适宜变更。上述实施方式中说明的各种处理不仅按照记载的顺序以时间序列执行,而且还可以根据执行处理的装置的处理能力或根据需要并行或单独地执行。

[程序、记录介质]

在通过计算机实现上述实施方式中说明的各装置中的各种处理功能的情况下,各装置应有的功能的处理内容通过程序记述。而且,通过由计算机执行该程序,在计算机上实现上述各装置中的各种处理功能。

记述有该处理内容的程序能够记录在由计算机可读取的记录介质中。作为计算机可读取的记录介质,例如也可以为磁记录装置、光盘、光磁记录介质、半导体存储器等任何记录介质。

另外,该程序的流通例如通过销售、转让、出租记录有该程序的dvd、cd-rom等可移动型记录介质等来进行。进而,也可以为将该程序存储于服务器计算机的存储装置,经由网络从服务器计算机向其它计算机转发该程序,由此使该程序流通的结构。

执行这种程序的计算机,例如,首先将存储于可移动型记录介质的程序或从服务器计算机转发来的程序暂时存储于自己的存储装置。然后,在执行处理时,该计算机读取存储于自己的记录介质的程序,执行根据读取的程序的处理。另外,作为该程序的其它执行方式,计算机可以从可移动型记录介质直接读取程序,执行按照该程序的处理,进而,也可以每次从服务器计算机向该计算机转发程序时,依次执行按照接收到的程序的处理。另外,也可以为下述结构,即,从服务器计算机,利用不进行程序向该计算机的转发而仅通过该执行指示和结果取得来实现处理功能的、所谓的asp(applicationserviceprovider,应用服务提供商)型的服务,执行上述的处理。此外,本方式的程序中包含供电子计算机进行的处理用的信息、即基于程序的信息(虽然不是相对于计算机的直接的指令,但为具有规定计算机的处理的性质的数据等)。

另外,该方式中,通过在计算机上执行规定的程序,构成本装置,但是,也可以硬件上实现这些处理内容的至少一部分。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1