密钥交换方法、密钥交换系统、密钥装置、终端装置和程序与流程

文档序号:11455421阅读:1029来源:国知局
密钥交换方法、密钥交换系统、密钥装置、终端装置和程序与流程

本发明涉及信息安全领域的应用技术,特别涉及云密钥管理型的密钥交换技术。



背景技术:

在专利文献1中,记载有代理计算技术。代理计算是,对另一装置委托一些计算。作为熟知的代理计算是,对具备解密功能的装置委托密文的解密,得到明文的代理计算。例如,假设客户保持将明文m用公共密钥y进行了加密的密文c,密钥装置保持对公共密钥y的专用密钥s。客户将密文c发送到密钥装置,密钥装置用与公共密钥y对应的专用密钥s将密文c解密后得到明文m,发回给客户。通过代理计算,可以解决(1)客户应持有的计算能力和功能的不足、(2)客户为了执行功能而泄露必要的秘密信息(例如,在不使用代理计算的通常的结构中,需要客户自己管理专用密钥,有从客户泄露专用密钥的顾虑。)、(3)客户拥有的装置的丢失或被盗造成的非法使用(例如,通过密钥装置使专用密钥失效而使客户的解密功能停止,可以防止非法使用。)等课题。

在非专利文献1、2中,记载有密钥交换技术。密钥交换是用于2台客户使用公开的通信路径安全地交换(共享)密钥的方式。具体的密钥交换的例子有dhm(diffie-hellman-merkle)密钥交换方式。一般地,使用加解密可进行密钥交换,但在加解密中使用专用密钥,所以需要密钥管理。另一方面,在dhm密钥交换方式中使用随机数,所以不需要密钥管理,安全性提高。此外,作为一边认证密钥的共享伙伴一边进行密钥交换的方式,可列举使用了数字签名的认证密钥交换、mqv(menezes-qu-vanstone)认证密钥交换、hmqv(hashedmqv)认证密钥交换(以上,参照非专利文献1)、以及fsu认证密钥交换(参照非专利文献2)等。

在专利文献2中,记载有自我修正技术。自我修正是,使用必定输出正确的计算结果的计算机或系统,始终进行正确的计算的技术。更详细地说,是在使用了输出正确的计算结果的计算机的情况下输出正确的计算结果,在使用了必定输出正确的结果的计算机的情况下输出正确的计算结果、或输出不能计算的意旨的结果的技术。

现有技术文献

专利文献

专利文献1:日本专利第5161177号公报

专利文献2:日本专利第5506704号公报

非专利文献

非专利文献1:岡本龍明、「鍵交换:現代暗号の誕生とその発展」、電気信息通信学会、fundamentalsreview、vol.1、no.4、pp.70-76、2007年

非专利文献2:atsushifujioka,koutarousuzuki,berkantustaoglu,“ephemeralkeyleakageresilientandefficientid-akesthatcanshareidentities,privateandmasterkeys”,pairing2010,lecturenotesincomputerscience,vol.6487,pp.187-205,2010.



技术实现要素:

发明要解决的问题

在使用代理计算进行密钥交换的情况下,有以下课题。

(1)有共享密钥泄漏的问题。例如,在客户u1和客户u2利用密钥装置(代理计算装置)进行基于代理计算的密钥交换的情况下,密钥装置可以获取仅客户应该知道的共享密钥,可以解读客户间的加密通信。具体而言,由于客户u1向密钥装置直接发送客户u2的公共密钥,所以密钥装置可以知道客户u1和客户u2进行密钥交换的情况。于是,密钥装置使用客户u1的专用密钥和公开或发送的客户u2的公共密钥,可以计算共享密钥。

(2)有密钥装置的处理正当性的问题。在持有专用密钥的密钥装置因漏洞(bug)或故障等而不进行正确的处理的情况下,客户无法验证密钥装置是否进行了正确的处理。

(3)有密钥装置的正当性的问题。在对错误的密钥装置委托了代理计算的情况下,客户无法检测错误的密钥装置的处理结果。

鉴于这样的情况,本发明的目的在于,提供密钥装置不能计算共享密钥,客户可以确认通过正确的密钥装置被正确地处理的密钥交换技术。

解决问题的方案

为了解决上述课题,本发明的密钥交换方法,将s1、s2设为互质的随机数,将s'1、s'2设为与随机数s1、s2满足规定的关系的随机数,在密钥装置的存储单元中,存储终端装置的专用密钥,该方法包括:随机数生成步骤,终端装置生成随机数s1、s2、s'1、s'2;公共密钥生成步骤,终端装置使用随机数s1生成将终端装置的公共密钥和其他的终端装置的公共密钥随机化的第一随机化公共密钥信息,以及使用随机数s2将终端装置的公共密钥和其他的终端装置的公共密钥随机化的第二随机化公共密钥信息;代理计算步骤,密钥装置使用专用密钥从第一随机化公共密钥信息计算第一委托结果,使用专用密钥从第二随机化公共密钥信息计算第二委托结果;验证步骤,终端装置使用随机数s2从第一委托结果计算第一验证值,使用随机数s1从第二委托结果计算第二验证值,验证第一验证值和第二验证值是否一致;以及共享密钥生成步骤,在第一验证值和第二验证值一致的情况下,终端装置使用随机数s'1、s'2从第一委托结果和第二委托结果计算共享密钥。

发明的效果

由于从终端装置向密钥装置发送的公共密钥被随机化,密钥装置无法确定能够依赖计算的终端装置与其他的终端装置是否进行密钥交换。此外,终端装置将其他的终端装置的公共密钥进行随机化来委托代理计算,所以密钥装置不能计算共享密钥。

此外,终端装置向密钥装置发送自己的公共密钥和对方的随机化的公共密钥,密钥装置发回有关两方的处理结果,所以在正确的密钥装置未被选择的情况或密钥装置没有正确地进行处理的情况下,在作为委托的结果得到的二个密钥交换上需要的值中产生误差。终端装置通过确认有无该误差,能够确认是正确的密钥装置和被正确地处理。

因此,根据本发明的密钥交换技术,密钥装置无法计算共享密钥,客户可以通过正确的密钥装置确认被正确地处理。

附图说明

图1是例示第一实施方式的密钥交换系统的功能结构的图。

图2a是例示终端装置的功能结构的图。图2b是例示密钥装置的功能结构的图。

图3是例示第一实施方式的密钥交换方法的处理流程的图。

图4是例示第二实施方式的密钥交换方法的处理流程的图。

图5是例示第三实施方式的密钥交换方法的处理流程的图。

图6是例示第四实施方式的密钥交换方法的处理流程的图。

图7是例示第五实施方式的密钥交换系统的功能结构的图。

图8是例示第五实施方式的密钥交换方法的处理流程的图。

图9是例示第六实施方式的密钥交换系统的功能结构的图。

图10是例示第六实施方式的密钥交换方法的处理流程的图。

图11是例示第七实施方式的密钥交换系统的功能结构的图。

图12是例示第七实施方式的密钥交换方法的处理流程的图。

图13是例示第七实施方式的密钥交换方法的处理流程的图。

具体实施方式

以下,详细地说明本发明的实施方式。再者,在附图中对具有相同功能的结构部分附加相同标号,省略重复说明。

[使用了自我修正的代理计算]

说明使用了自我修正的代理计算,特别地说明群同态型的代理计算。假设二个群g、h和其间的同态映射为f:g→h。此时,即使定义为g和h的二项运算都为乘法也不失一般性。以下描述客户端末u隐匿g∈g而发送到代理计算装置p,委托f(g)的计算的方法。

(1)客户端末u对于不是单位元的合适的元g0∈g计算f(g0)。

(2)客户端末u取随机的整数s1、s2∈z使得彼此互质,确定s'1和s'2以满足s1s'1+s2s'2=1。

(3)客户端末u确定不是任意的单位元的元g1、g2∈g,向代理计算装置p发送二个对(g1-1,g1gs1),(g2-1,g2gs2)。

(4)代理计算装置p计算ζ1=f(g1-1)f(g1gs1)、ζ2=f(g2-1)f(g2gs2),向客户端末u发送。

(5)客户端末u确认ζ1s2=ζ2s1。若正确,则返回到(1)。若不正确,则计算ζ1s'1ζ2s'2=f(gs1s'1+s2s'2)=f(g)。

[第一实施方式]

第一实施方式是使用了自我修正的dhm密钥交换方式。

例如,如图1所示,本方式的密钥交换系统包括进行共享密钥的交换的2台终端装置11、12和对应于各终端装置的2台的密钥装置21、22。本方式中说明2台终端装置1进行密钥交换的例子,对密钥交换系统中包含的终端装置1和密钥装置2的数没有限制。各终端装置1和各密钥装置2通过通信网9彼此被可通信地连接。例如,通信网9可以由因特网或wan(wideareanetwork;广域网)、lan(localareanetwork;局域网)、专用线路、公共交换电话网、移动电话通信网等构成。

例如,如图2a所示,终端装置1包括存储单元10、公共密钥接收单元11、随机数生成单元12、公共密钥随机化单元13、验证单元14、以及共享密钥生成单元15。

例如,如图2b所示,密钥装置2包括存储单元20和代理计算单元21。

终端装置1和密钥装置2,例如是在具有中央运算处理装置(cpu:centralprocessingunit)、主存储装置(ram:randomaccessmemory;随机存取存储器)等的公知或专用的计算机中读入特别的程序而构成的特别的装置。例如,终端装置1和密钥装置2在中央运算处理装置的控制下执行各处理。终端装置1和密钥装置2中输入的数据和由各处理得到的数据,例如被存储在主存储装置中,主存储装置中存储的数据根据需要被读出而被用于其他的处理。此外,终端装置1和密钥装置2的各处理单元的至少一部分也可以由集成电路等硬件构成。

以下,参照图3,说明本方式的密钥交换方法的处理过程。图3中,仅表示终端装置11和密钥装置21的处理,而对于终端装置12和密钥装置22也进行同样的处理。

在以下,设g为位数是质数p的g群的元素,设zp为位数p的剩余环,设x,y∈zp。

密钥装置21的存储单元20中,存储终端装置11的专用密钥x。终端装置11的存储单元10中,存储终端装置11的公共密钥gx。同样地,密钥装置22的存储单元20中,存储终端装置12的专用密钥y。终端装置12的存储单元10中,存储终端装置12的公共密钥gy

在步骤s11中,终端装置12的公共密钥接收单元11向终端装置11发送终端装置12的公共密钥gy。终端装置11的公共密钥接收单元11从终端装置12接收公共密钥gy。同样地,终端装置11的公共密钥接收单元11向终端装置12发送终端装置11的公共密钥gx。终端装置12的公共密钥接收单元11从终端装置11接收公共密钥gx

在步骤s12中,终端装置11的随机数生成单元12生成随机数s1、s2、s'1、s'2、r1、r2。这里,假设s1、s2彼此互质,满足s1s'1+s2s'2=1。r1、r2也可以是任意的数。同样地,终端装置12的随机数生成单元12生成s3、s4、s'3、s'4、r3、r4。这里,假设s3、s4彼此互质,满足s3s'3+s4s'4=1。r3、r4也可以是任意的数。

在步骤s13中,终端装置11的公共密钥随机化单元13根据式(1),计算将终端装置11的公共密钥gx和终端装置12的公共密钥gy的组用随机数s1、r1进行了随机化的值(以下,称为第一随机化公共密钥信息。)。此外,根据式(2),计算将终端装置11的公共密钥gx和终端装置12的公共密钥gy的组用随机数s2、r2进行了随机化的值(以下,称为第二随机化公共密钥信息。)。向密钥装置21发送算出的第一随机化公共密钥信息和第二随机化公共密钥信息的对。

第一随机化公共密钥信息,具体而言,可以如下计算。将gx乘以-r1计算g-r1x。将gy乘以s1计算gs1y。将g乘以r1计算gr1。将gs1y和gr1相乘,计算gs1y+r1。第二随机化公共密钥信息也可以同样地计算。

同样地,终端装置12的公共密钥随机化单元13根据式(3),计算将终端装置11的公共密钥gx和终端装置12的公共密钥gy的组用随机数s3、r3进行了随机化的值(以下,称为第一随机化公共密钥信息。)。此外,根据式(4),计算将终端装置11的公共密钥gx和终端装置12的公共密钥gy的组用随机数s4、r4进行了随机化的值(以下,称为第二随机化公共密钥信息。)。向密钥装置22发送算出的第一随机化公共密钥信息和第二随机化公共密钥信息的对。

在步骤s21中,密钥装置21的代理计算单元21根据式(5),用专用密钥x从第一随机化公共密钥信息计算在共享密钥的计算中需要的值z1(以下,称为第一委托结果。)。此外,根据式(6),用专用密钥x从第二随机化公共密钥信息计算在共享密钥的计算中需要的值z2(以下,称为第二委托结果。)。向终端装置11发送算出的第一委托结果z1和第二委托结果z2。

第一委托结果z1,具体而言,可以如下那样计算。将gs1y+r1乘以x计算g(s1y+r1)x。将g-r1x和g(s1y+r1)x相乘,计算g-r1xg(s1y+r1)x。第二委托结果z2也可以同样地计算。

同样地,密钥装置22的代理计算单元21根据式(7),用专用密钥y从第一随机化公共密钥信息计算在共享密钥的计算中需要的值z3(以下,称为第一委托结果。)。此外,根据式(8),用专用密钥y从第二随机化公共密钥信息计算在共享密钥的计算中需要的值z4(以下,称为第二委托结果。)。向终端装置12发送算出的第一委托结果z3和第二委托结果z4。

在步骤s14中,终端装置11的验证单元14根据式(9),验证将第一委托结果z1乘以s2的值(以下,称为第一验证值。)和将第二委托结果z2乘以s1的值(以下,称为第二验证值。)是否一致。同样地,终端装置12的验证单元14根据式(10),验证将第一委托结果z3乘以s4的值(以下,称为第一验证值。)和将第二委托结果z4乘以s3的值(以下,称为第二验证值。)是否一致。在第一验证值和第二验证值一致的情况下,处理推进到步骤s15。第一验证值和第二验证值不一致的情况下,处理返回到步骤s12。

在步骤s15中,终端装置11的共享密钥计算单元15根据式(11),用随机数s'1、s'2从第一委托结果z1和第二委托结果z2计算共享密钥k。同样地,终端装置12的共享密钥计算单元15根据式(12),用随机数s'3、s'4从第一委托结果z3和第二委托结果z4计算共享密钥k。

本方式也可以如下那样变形。在步骤s13中,终端装置11的公共密钥随机化单元13将第一随机化公共密钥信息仅设为gs1y+r1,将第二随机化公共密钥信息仅设为gs2y+r2而向密钥装置21发送。此时,保持g-r1x和g-r2x。在步骤s21中,密钥装置21的代理计算单元21根据式(13),计算第一委托结果z'1和第二委托结果z'2。

然后,在步骤s14中,终端装置11的验证单元14根据式(14),计算第一委托结果z1和第二委托结果z2。

[第二实施方式]

第二实施方式是使用了自我修正和数字签名的认证密钥交换方式。

以下,参照图4,说明本方式的密钥交换方法的处理过程。在以下,以与上述第一实施方式的不同点为中心来说明。

在本方式中,在终端装置11的存储单元10中,存储终端装置11的公共密钥gx、终端装置11的签名密钥sigu1、终端装置12的验证密钥veru2、以及终端装置11的用户识别符u1。在密钥装置21的存储单元20中,与第一实施方式同样地,存储终端装置11的专用密钥x。同样地,在终端装置12的存储单元10中,存储终端装置12的公共密钥gy、终端装置12的签名密钥sigu2、终端装置11的验证密钥veru1、以及终端装置12的用户识别符u2。在密钥装置22的存储单元20中,与第一实施方式同样地,存储终端装置12的专用密钥y。

在步骤s111中,终端装置12的公共密钥接收单元11向终端装置11发送用户识别符u2和公共密钥gy的组(u2,gy)。终端装置11的公共密钥接收单元11从终端装置12接收(u2,gy)。同样地,终端装置11的公共密钥接收单元11向终端装置12发送用户识别符u1和公共密钥gx的组(u1,gx)。终端装置12的公共密钥接收单元11从终端装置11接收(u1,gx)。

在步骤s112中,终端装置11的公共密钥接收单元11用签名密钥sigu1,生成对公共密钥gx、公共密钥gy和用户识别符u1的组的签名sigu1(gx,gy,u1),向终端装置12发送(u1,gx,sigu1(gx,gy,u1))。终端装置12的公共密钥接收单元11从终端装置11接收(u1,gx,sigu1(gx,gy,u1))。同样地,终端装置12的公共密钥接收单元11用签名密钥sigu2,生成对公共密钥gx、公共密钥gy和用户识别符u2的组的签名sigu2(gx,gy,u2),向终端装置11发送(u2,gy,sigu2(gx,gy,u2))。终端装置11的公共密钥接收单元11从终端装置12接收(u2,gy,sigu2(gx,gy,u2))。

在步骤s113中,终端装置11的公共密钥接收单元11用验证密钥veru2,验证签名sigu2(gx,gy,u2)。同样地,终端装置12的公共密钥接收单元11用验证密钥veru1,验证签名sigu1(gx,gy,u1)。如果签名sigu2(gx,gy,u2)和签名sigu1(gx,gy,u1)正确,则处理推进到步骤s12。如果签名sigu2(gx,gy,u2)或签名sigu1(gx,gy,u1)不正确,则结束处理。

以后的步骤s12~s15、s21的处理与第一实施方式是同样的。

[第三实施方式]

第三实施方式是使用了自我修正的mqv密钥交换方式。

以下,参照图5,说明本方式的密钥交换方法的处理过程。在以下,以与上述第一实施方式的不同点为中心来说明。

在本方式中,在密钥装置21的存储单元20中,存储终端装置11的固定专用密钥a∈zp。在终端装置11的存储单元10中,存储终端装置11的固定公共密钥a=ga、终端装置11的临时专用密钥x∈zp、以及终端装置11的临时公共密钥x=gx。同样地,在密钥装置22的存储单元20中,存储终端装置12的固定专用密钥b∈zp。在终端装置12的存储单元10中,存储终端装置12的固定公共密钥b=gb、终端装置12的临时专用密钥y∈zp、以及终端装置12的临时公共密钥y=gy

在步骤s111中,终端装置12的公共密钥接收单元11向终端装置11发送固定公共密钥b和临时公共密钥y的组(b,y)。终端装置11的公共密钥接收单元11从终端装置12接收(b,y)。同样地,终端装置11的公共密钥接收单元11向终端装置12发送固定公共密钥a和临时公共密钥x的组(a,x)。终端装置12的公共密钥接收单元11从终端装置11接收(a,x)。

在步骤s112中,终端装置11的公共密钥接收单元11计算e={y}|p|的值和d={x}|p|的值。这里,{·}|p|意味着将·进行比特表现时的高位p比特。同样地,终端装置12的公共密钥接收单元11计算e={y}|p|的值和d={x}|p|的值。

在步骤s13中,终端装置11的公共密钥随机化单元13根据式(15),计算第一随机化公共密钥信息。此外,根据式(16),计算第二随机化公共密钥信息。向密钥装置21发送算出的第一随机化公共密钥信息和第二随机化公共密钥信息的对。

具体而言,第一随机化公共密钥信息,可以如下那样计算。将ga乘以-r1计算g-r1a。将gb乘以e计算gbe,与gy相乘计算gy+be。将gy+be乘以s1乘计算g(y+be)s1。将g乘以r1计算gr1,与g(y+be)s1和gr1相乘,计算g(y+be)s1+r1。第二随机化公共密钥信息也可以同样地计算。

同样地,终端装置12的公共密钥随机化单元13根据式(17),计算第一随机化公共密钥信息。此外,根据式(18),计算第二随机化公共密钥信息。向密钥装置22发送算出的第一随机化公共密钥信息和第二随机化公共密钥信息的对。

在步骤s21中,密钥装置21的代理计算单元21根据式(19),计算第一委托结果z1。此外,根据式(20),计算第二委托结果z2。向终端装置11发送算出的第一委托结果z1和第二委托结果z2。

同样地,密钥装置22的代理计算单元21根据式(21),计算第一委托结果z3。此外,根据式(22),计算第二委托结果z4。向终端装置12发送算出的第一委托结果z3和第二委托结果z4。

在步骤s151中,终端装置11的共享密钥计算单元15根据式(23),用随机数s'1、s'2,从第一委托结果z1和第二委托结果z2计算ybea的值。同样地,终端装置12的共享密钥计算单元15根据式(24),用随机数s'3、s'4,从第一委托结果z3和第二委托结果z4计算xadb的值。

在步骤s151中,终端装置11的共享密钥计算单元15根据式(25),计算共享密钥k。再者,kdf是密钥导出函数(keyderivationfunction),是将输入值转换为随机数的函数。同样地,终端装置12的共享密钥计算单元15根据式(26),计算共享密钥k。

k=kdf((ybe)x+ad)…(25)

k=kdf((xad)y+be)…(26)

具体而言,(ybe)x+ad可以如下那样计算。将ybe乘以x计算ybex。将ybea乘以d计算ybead。ybex和ybead相乘,计算(ybe)x+ad。(xad)y+be也可以同样地计算。

本方式也可以如以下那样变形。在步骤s13中,终端装置11的公共密钥随机化单元13将第一随机化公共密钥信息仅设为g(y+be)s1+r1,将第二随机化公共密钥信息仅设为g(y+be)s2+r2而向密钥装置21发送。此时,保持g-r1a和g-r2a。在步骤s21中,密钥装置21的代理计算单元21根据式(27),计算第一委托结果z1’和第二委托结果z2’。

然后,在步骤s14中,终端装置11的验证单元14根据式(28),计算第一委托结果z1和第二委托结果z2。

[第四实施方式]

第四实施方式是使用了自我修正的hmqv密钥交换方式。

以下,参照图6,说明本方式的密钥交换方法的处理过程。在以下,以与上述第三实施方式的不同点为中心来说明。

在步骤s112中,终端装置11的公共密钥接收单元11计算e=h(y,x)的值和d=h(x,b)的值。这里,h(·)是加密学的散列(hash)函数。加密学的散列函数的例子可列举sha-1、sha-2等。同样地,终端装置12的公共密钥接收单元11计算e=h(y,x)的值和d=h(x,b)的值。

本方式仅根据散列函数求e、d的值的方面与第三实施方式不同,其他的处理与第三实施方式是同样的。

[第五实施方式]

第五实施方式是使用了自我修正的id-idake法。特别地,本方式是密钥装置持有专用密钥,终端装置生成短期专用密钥的结构。

例如,如图7所示,本方式的密钥交换系统除了包括终端装置11,12和密钥装置21,22,还包括密钥生成装置3。

在以下,将к设为安全参数,将g1、g2、gt设为位数为k比特长度的质数q的循环群,将g1、g2、gt分别设为g1、g2、gt的群的生成元。将e:g1×g2→gt设为配对。这里,假设满足gt=e(g1,g2)。将h:{0,1}*→{0,1}к,h1:{0,1}*→g1,h2:{0,1}*→g2分别设为加密学的散列函数。

对于2以上的自然数m,如式(29)那样给出m个多项式pi∈zq[u0,u1,v0,v1](i=1,…,m)。再者,ci,0,0、ci,0,1、ci,1,0、ci,1,1可以是常数,也可以依赖于短期公共密钥、公共密钥、用户id等确定的数。

以下,参照图8,说明本方式的密钥交换方法的处理过程。

在本方式中,以下那样进行密钥生成。密钥生成装置3随机地选择主专用密钥z∈zq,计算并公开主公共密钥的对(z1=g1z∈g1,z2=g2z∈g2)。终端装置11用识别符ida,计算并公开公共密钥的对(qa,1=h1(ida)∈g1,qa,2=h2(ida)∈g2)。同样地,终端装置12用识别符idb,计算并公开公共密钥的对(qb,1=h1(idb)∈g1,qb,2=h2(idb)∈g2)。密钥生成装置3用公共密钥的二个对(qa,1,qa,2),(qb,1,qb,2),计算专用密钥的二个对(da,1=qa,1z,da,2=qa,2z),(db,1=qb,1z,db,2=qb,2z),向密钥装置21分发专用密钥的对(da,1,da,2),向密钥装置22分发专用密钥的对(db,1,db,2)。终端装置11随机地选择短期专用密钥za∈zq,生成短期公共密钥的对(xa,1=g1xa,xa,2=g2xa)。同样地,终端装置12随机地选择短期专用密钥zb∈zq,生成短期公共密钥的对(xb,1=g1xb,xb,2=g2xb)。

在步骤s111中,终端装置11的公共密钥接收单元11向终端装置12发送由识别符和短期公共密钥构成的信息(ida,idb,xa,1,xa,2)。终端装置12的公共密钥接收单元11从终端装置11接收信息(ida,idb,xa,1,xa,2)。同样地,终端装置12的公共密钥接收单元11向终端装置11发送由识别符和短期公共密钥构成的信息(ida,idb,xb,1,xb,2)。终端装置11的公共密钥接收单元11从终端装置12接收信息(ida,idb,xb,1,xb,2)。

在步骤s112中,终端装置11的公共密钥接收单元11确认式(30)是否成立。同样地,终端装置12的公共密钥接收单元11确认式(31)是否成立。若任一方不正确,则重新开始密钥生成。

e(xb,1,g2)=e(g1,xb,2)…(30)

e(xa,1,g2)=e(g1,xa,2)…(31)

在本方式中,将步骤s121、s122、s13、s21、s14、s151的处理反复执行m次。在以下,假设说明第i(=1,…,m)次反复中的处理过程。

在步骤s121中,终端装置11的随机数生成单元12计算式(32)。同样地,终端装置12的随机数生成单元12计算式(33)。

在步骤s122中,终端装置11的随机数生成单元12生成随机数si1、si2、s'i1、s'i2、ri1、ri2。这里,假设si1、si2彼此互质,满足si1s'i1+si2s'i2=1。假设ri1、ri2为任意的非零整数。同样地,终端装置12的随机数生成单元12生成ti1、ti2、t'i1、t'i2、li1、li2。这里,假设ti1、ti2彼此互质,满足ti1t'i1+ti2t'i2=1。假设li1、li2为任意的非零整数。

在步骤s13中,终端装置11的公共密钥随机化单元13根据式(34),计算将终端装置12的公共密钥qb,2和短期公共密钥xb,2用随机数si1、ri1进行了随机化的值(以下,称为第一随机化公共密钥信息。)。此外,根据式(35),计算将终端装置12的公共密钥qb,2和短期公共密钥xb,2用随机数si2、ri2进行了随机化的值(以下,称为第二随机化公共密钥信息。)。向密钥装置21发送算出的第一随机化公共密钥信息和第二随机化公共密钥信息的对。

其中,

同样地,终端装置12的公共密钥随机化单元13根据式(36),计算将终端装置11的公共密钥qa,1和短期公共密钥xa,1用随机数ti1、li1进行了随机化的值(以下,称为第一随机化公共密钥信息。)。此外,根据式(37),计算将终端装置11的公共密钥qa,1和短期公共密钥xa,1用随机数ti2、li2进行了随机化的值(以下,称为第二随机化公共密钥信息。)。向密钥装置22发送算出的第一随机化公共密钥信息和第二随机化公共密钥信息的对。

其中,

在步骤s21中,密钥装置21的代理计算单元21根据式(38),用专用密钥da,1从第一随机化公共密钥信息计算共享密钥的计算中需要的值ζa,i1(以下,称为第一委托结果。)。此外,根据式(39),用专用密钥da,2从第二随机化公共密钥信息计算共享密钥的计算中需要的值ζa,i2(以下,称为第二委托结果。)。向终端装置11发送算出的第一委托结果ζa,i1和第二委托结果ζa,i2。

同样地,密钥装置22的代理计算单元21根据式(40),用专用密钥db,2从第一随机化公共密钥信息计算共享密钥的计算中需要的值ζb,i1(以下,称为第一委托结果。)。此外,根据式(41),用专用密钥db,2从第二随机化公共密钥信息计算共享密钥的计算中需要的值ζb,i2(以下,称为第二委托结果。)。向终端装置12发送算出的第一委托结果ζb,i1和第二委托结果ζb,i2。

在步骤s14中,终端装置11的验证单元14根据式(42),验证将第一委托结果ζa,i1乘以了si2的值(以下,称为第一验证值。)和将第二委托结果ζa,i2乘以了si1的值(以下,称为第二验证值。)是否一致。同样地,终端装置12的验证单元14根据式(43),验证将第一委托结果ζb,i1乘以了ti2的值(以下,称为第一验证值。)和将第二委托结果ζb,i2乘以了ti1的值(以下,称为第二验证值。)是否一致。在第一验证值和第二验证值一致的情况下,处理进至步骤s151。在第一验证值和第二验证值不一致的情况下,处理返回到步骤s122。

在步骤s151中,终端装置11的共享密钥计算单元15根据式(44),用随机数s'i1、s'i2从第一委托结果ζa,i1和第二委托结果ζa,i2计算委托结果ζa,i。同样地,终端装置12的共享密钥计算单元15根据式(45),用随机数t'i1、t'i2从第一委托结果ζb,i1和第二委托结果ζb,i2计算委托结果ζb,i。

在步骤s152中,终端装置11的共享密钥计算单元15对于i=1,…,m,根据式(46),计算σi的值,生成σ1、…、σm的值。同样地,终端装置12的共享密钥计算单元15对于i=1,…,m,根据式(47),计算σi的值,生成σ1、…、σm的值。

在步骤s153中,终端装置11的共享密钥计算单元15根据式(48),计算σm+1、σm+2的值。同样地,终端装置12的共享密钥计算单元15根据式(49),计算σm+1、σm+2的值。

在步骤s154中,终端装置11以及终端装置12的共享密钥计算单元15根据式(50),用σ1、…、σm+2的值,计算共享密钥k。

k=h(σ1,...,σm+2,ida,idb,xa,1,xa,2,xb,1,xb,2)

…(50)

终端装置11以及终端装置12的共享密钥计算单元15计算出的σ1、…、σm+2的值都设为i=1,…,m,可以如式(51)那样表示。因此,终端装置11的计算出的共享密钥k和终端装置12的计算出的共享密钥k一致。

[变形例5-1]

变形例5-1是使用了第五实施方式的自我修正的id-idake法的变形例。特别地,本变形例是在密钥装置持有专用密钥,密钥装置生成短期专用密钥的结构中,对密钥装置委托g群t的乘方的计算的结构。

以下,说明本变形例的密钥交换方法的处理过程。在以下,以与上述第五实施方式的不同点为中心来说明。

在本变形例中,如以下那样进行密钥生成。密钥生成装置3随机地选择主专用密钥z∈zq,计算并公开主公共密钥的对(z1=g1z∈g1,z2=g2z∈g2)。终端装置11用识别符ida,计算并公开公共密钥的对(qa,1=h1(ida)∈g1,qa,2=h2(ida)∈g2)。同样地,终端装置12用识别符idb,计算并公开公共密钥的对(qb,1=h1(idb)∈g1,qb,2=h2(idb)∈g2)。密钥生成装置3用公共密钥的二个对(qa,1,qa,2)、(qb,1,qb,2),计算专用密钥的二个对(da,1=qa,1z,da,2=qa,2z)、(db,1=qb,1z,db,2=qb,2z),向密钥装置21分发专用密钥的对(da,1,da,2),向密钥装置22分发专用密钥的对(db,1,db,2)。密钥装置21随机地选择短期专用密钥za∈zq,生成短期公共密钥的对(xa,1=g1xa,xa,2=g2xa),向终端装置11发送。同样地,密钥装置22随机地选择短期专用密钥zb∈zq,生成短期公共密钥的对(xb,1=g1xb,xb,2=g2xb),向终端装置12发送。

在本变形例中,在将步骤s121、s122、s13、s21、s14、s151的处理反复执行了m次后,将以下的步骤s121b、s122b、s13b、s21b、s14b、s151b(未图示)的处理反复执行m+2次。在以下,说明第i(=1,…,m+2)次反复中的处理过程。

在步骤s121b中,终端装置11的随机数生成单元12计算式(52)。同样地,终端装置12的随机数生成单元12计算式(53)。

在步骤s122b中,终端装置11的随机数生成单元12生成随机数si21、si22、s'i21、s'i22、ri21、ri22。这里,假设si21、si22彼此互质,满足si21s'i21+si22s'i22=1。假设ri21、ri22为任意的非零整数。同样地,终端装置12的随机数生成单元12生成随机数ti21、ti22、t'i21、t'i22、li21、li22。这里,假设ti21、ti22彼此互质,满足ti21t'i21+ti22t'i22=1。假设li21、li22为任意的非零整数。

在步骤s13b中,终端装置11的公共密钥随机化单元13根据式(54),计算将终端装置12的公共密钥qb,2和短期公共密钥xb,2用随机数si21、ri21进行了随机化的值(以下,称为第一随机化公共密钥信息。)。此外,根据式(55),计算将终端装置12的公共密钥qb,2和短期公共密钥xb,2用随机数si22、ri22进行了随机化的值(以下,称为第二随机化公共密钥信息。)。向密钥装置21发送算出的第一随机化公共密钥信息和第二随机化公共密钥信息的对。

其中,

同样地,终端装置12的公共密钥随机化单元13根据式(56),计算将终端装置11的公共密钥qa,1和短期公共密钥xa,1用随机数ti21、li21进行了随机化的值(以下,称为第一随机化公共密钥信息。)。此外,根据式(57),计算将终端装置11的公共密钥qa,1和短期公共密钥xa,1用随机数ti22、li22进行了随机化的值(以下,称为第二随机化公共密钥信息。)。向密钥装置22发送算出的第一随机化公共密钥信息和第二随机化公共密钥信息的对。

其中,

步骤s21b中,密钥装置21的代理计算单元21根据式(58),用短期专用密钥xa从第一随机化公共密钥信息计算共享密钥的计算中需要的值ξa,i1(以下,称为第一委托结果。)。此外,根据式(59),用短期专用密钥xa从第二随机化公共密钥信息计算共享密钥的计算中需要的值ξa,i2(以下,称为第二委托结果。)。向终端装置11发送算出的第一委托结果ζa,i1和第二委托结果ζa,i2。

同样地,密钥装置22的代理计算单元21根据式(60),用短期专用密钥xb从第一随机化公共密钥信息计算共享密钥的计算中需要的值ξb,i1(以下,称为第一委托结果。)。此外,根据式(61),用短期专用密钥xb从第二随机化公共密钥信息计算共享密钥的计算中需要的值ξb,i2(以下,称为第二委托结果。)。向终端装置12发送算出的第一委托结果ζb,i1和第二委托结果ζb,i2。

在步骤s14b中,终端装置11的验证单元14根据式(62),验证将第一委托结果ξa,i1乘以了si22的值(以下,称为第一验证值。)和将第二委托结果ξa,i2乘以了si21的值(以下,称为第二验证值。)是否一致。同样地,终端装置12的验证单元14根据式(63),验证将第一委托结果ξb,i1乘以了ti22的值(以下,称为第一验证值。)和将第二委托结果ξb,i2乘以了ti21的值(以下,称为第二验证值。)是否一致。在第一验证值和第二验证值一致的情况下,处理进至步骤s151b。在第一验证值和第二验证值不一致的情况下,处理返回到步骤s122b。

在步骤s151b中,终端装置11的共享密钥计算单元15根据式(64),用随机数s'i21、s'i22从第一委托结果ξa,i1和第二委托结果ξa,i2计算委托结果ξa,i。同样地,终端装置12的共享密钥计算单元15根据式(65),用随机数t'i21、t'i22从第一委托结果ξb,i1和第二委托结果ξb,i2计算委托结果ξb,i。

在步骤s152中,终端装置11的共享密钥计算单元15对于i=1,…,m,根据式(66),计算σi的值,生成σ1、…、σm的值。同样地,终端装置12的共享密钥计算单元15对于i=1,…,m,根据式(67),计算σi的值,生成σ1、…、σm的值。

在步骤s153中,终端装置11的共享密钥计算单元15根据式(68),计算σm+1、σm+2的值。同样地,终端装置12的共享密钥计算单元15根据式(69),计算σm+1、σm+2的值。

步骤s154中,终端装置11的共享密钥计算单元15以及终端装置12的共享密钥计算单元15根据式(70),用σ1、…、σm+2的值,计算共享密钥k。

k=h(σ1,...,σm+2,ida,idb,xa,1,xa,2,xb,1,xb,2)

…(70)

[变形例5-2]

变形例5-2是使用了第五实施方式的自我修正的id-idake法的变形例。特别地,本变形例是在密钥装置持有专用密钥,密钥装置生成短期专用密钥的结构中,对密钥装置委托群gt的配对的计算的结构。

以下,说明本变形例的密钥交换方法的处理过程。在以下,以与上述第五实施方式的不同点为中心来说明。

在本变形例中,与变形例5-1同样地进行密钥生成。

在本变形例中,将步骤s121、s122、s13、s21、s14、s151的处理反复执行了m次后,将以下的步骤s121c、s122c、s13c、s21c、s14c、s151c(未图示)的处理反复执行m次。在以下,说明第i(=1,…,m)次反复中的处理过程。之后,对于i=m+1、m+2执行上述步骤s121b、s122b、s13b、s21b、s14b、s151b的处理。

在步骤s121c中,终端装置11的随机数生成单元12计算式(71)。同样地,终端装置12的随机数生成单元12计算式(72)。

在步骤s122c中,终端装置11的随机数生成单元12生成随机数si31、si32、s'i31、s'i32、ri31、ri32。这里,假设si31、si32彼此互质,满足si31s'i31+si32s'i32=1。假设ri31、ri32为任意的非零整数。同样地,终端装置12的随机数生成单元12生成随机数ti31、ti32、t'i31、t'i32、li31、li32。这里,假设ti31,ti32彼此互质,满足ti31t'i31+ti32t'i32=1。假设li31、li32为任意的非零整数。

在步骤s13c中,终端装置11的公共密钥随机化单元13根据式(73),计算将终端装置12的公共密钥qb,2和短期公共密钥xb,2用随机数si31、ri31进行了随机化的值(以下,称为第一随机化公共密钥信息。)。此外,根据式(74),计算将终端装置12的公共密钥qb,2和短期公共密钥xb,2用随机数si32、ri32进行了随机化的值(以下,称为第二随机化公共密钥信息。)。向密钥装置21发送算出的第一随机化公共密钥信息和第二随机化公共密钥信息的对。

其中,

同样地,终端装置12的公共密钥随机化单元13根据式(75),计算将终端装置11的公共密钥qa,1和短期公共密钥xa,1用随机数ti31、li31进行了随机化的值(以下,称为第一随机化公共密钥信息。)。此外,根据式(76),计算将终端装置11的公共密钥qa,1和短期公共密钥xa,1用随机数ti32、li32进行了随机化的值(以下,称为第二随机化公共密钥信息。)。向密钥装置22发送算出的第一随机化公共密钥信息和第二随机化公共密钥信息的对。

其中,

在步骤s21c中,密钥装置21的代理计算单元21根据式(77),用短期专用密钥xa从第一随机化公共密钥信息计算共享密钥的计算中需要的值ξa,i1(以下,称为第一委托结果。)。此外,根据式(78),用短期专用密钥xa从第二随机化公共密钥信息计算共享密钥的计算中需要的值ξa,i2(以下,称为第二委托结果。)。向终端装置11发送算出的第一委托结果ζa,i1和第二委托结果ζa,i2。

同样地,密钥装置22的代理计算单元21根据式(79),用短期专用密钥xb从第一随机化公共密钥信息计算共享密钥的计算中需要的值ξb,i1(以下,称为第一委托结果。)。此外,根据式(80),用短期专用密钥xb从第二随机化公共密钥信息计算共享密钥的计算中需要的值ξb,i2(以下,称为第二委托结果。)。向终端装置12发送算出的第一委托结果ζb,i1和第二委托结果ζb,i2。

在步骤s14c中,终端装置11的验证单元14根据式(81),验证将第一委托结果ξa,i1乘以了si32的值(以下,称为第一验证值。)和将第二委托结果ξa,i2乘以了si31的值(以下,称为第二验证值。)是否一致。同样地,终端装置12的验证单元14根据式(82),验证将第一委托结果ξb,i1乘以了ti32的值(以下,称为第一验证值。)和将第二委托结果ξb,i2乘以了ti31的值(以下,称为第二验证值。)是否一致。在第一验证值和第二验证值一致的情况下,处理进至步骤s151c。在第一验证值和第二验证值不一致的情况下,处理返回到步骤s122c。

步骤s151c中,终端装置11的共享密钥计算单元15根据式(83),用随机数s'i31、s'i32从第一委托结果ξa,i1和第二委托结果ξa,i2计算委托结果ξa,i。同样地,终端装置12的共享密钥计算单元15根据式(84),用随机数t'i21、t'i22从第一委托结果ξb,i1和第二委托结果ξb,i2计算委托结果ξb,i。

[第六实施方式]

第六实施方式是使用了自我修正的cert-certake法。特别地,本方式是密钥装置持有专用密钥,终端装置生成短期专用密钥的结构。

本方式的密钥交换系统,例如,图9所示,除了包括终端装置11、12和密钥装置21、22,还包括认证台装置4。

以下,参照图10,说明本方式的密钥交换方法的处理过程。在以下,以与上述第五实施方式的不同点为中心来说明。

在本方式中,以下那样进行密钥生成。密钥装置11随机地选择专用密钥sa∈zq,计算公共密钥sa=gsa∈g,向终端装置11发送。同样地,密钥装置12随机地选择专用密钥sb∈zq,计算公共密钥sb=gsb∈g,向终端装置12发送。认证台装置4对终端装置11的公共密钥sa以及终端装置12的公共密钥sb进行认证。终端装置11随机地选择短期专用密钥xa∈zq,计算短期公共密钥xa=gxa∈g。同样地,终端装置12随机地选择短期专用密钥xb∈zq,计算短期公共密钥xb=gxb∈g。

在步骤s11中,终端装置11的公共密钥接收单元11向终端装置12发送由公共密钥和短期公共密钥构成信息(sa,xa)。终端装置12的公共密钥接收单元11从终端装置11接收信息(sa,xa)。同样地,终端装置12的公共密钥接收单元11向终端装置11发送由公共密钥和短期公共密钥构成的信息(sb,xb)。终端装置11的公共密钥接收单元11从终端装置12接收信息(sb,xb)。

在本方式中,将步骤s12、s13、s21、s14、s151的处理反复执行m次。在以下,假设说明进行第i(=1,…,m)次反复中的处理过程。

在步骤s12中,终端装置11的随机数生成单元12生成随机数si1、si2、s'i1、s'i2∈z和群元素g1、g2∈g。这里,假设si1、si2彼此互质,满足si1s'i1+si2s'i2=1。假设g1、g2为不是g群的单位元的元。同样地,终端装置12的随机数生成单元12生成随机数ti1、ti2、t'i1、t'i2∈z和群元素g3、g4∈g。这里,假设ti1、ti2彼此互质,满足ti1t'i1+ti2t'i2=1。假设g3、g4为不是g群的单位元的元。

在步骤s13中,终端装置11的公共密钥随机化单元13根据式(85),计算将终端装置12的公共密钥sb和短期公共密钥xb用随机数si1进行了随机化的值(以下,称为第一随机化公共密钥信息。)。此外,根据式(86),计算将终端装置12的公共密钥sb和短期公共密钥xb用随机数si2进行了随机化的值(以下,称为第二随机化公共密钥信息。)。向密钥装置21发送算出的第一随机化公共密钥信息和第二随机化公共密钥信息的对。

其中,

同样地,终端装置12的公共密钥随机化单元13根据式(87),计算将终端装置11的公共密钥sa和短期公共密钥xa用随机数ti1进行了随机化的值(以下,称为第一随机化公共密钥信息。)。此外,根据式(88),计算将终端装置11的公共密钥sa和短期公共密钥xa用随机数ti2进行了随机化的值(以下,称为第二随机化公共密钥信息。)。向密钥装置22发送算出的第一随机化公共密钥信息和第二随机化公共密钥信息的对。

其中,

在步骤s21中,密钥装置21的代理计算单元21根据式(89),对同态映射fa:g→g,h→hxa,计算共享密钥的计算中需要的值ζa,i1(以下,称为第一委托结果。)。此外,根据式(90),计算共享密钥的计算中需要的值ζa,i2(以下,称为第二委托结果。)。向终端装置11发送算出的第一委托结果ζa,i1和第二委托结果ζa,i2。

同样地,密钥装置22的代理计算单元21根据式(91),对同态映射fb:g→g,h→hxb,计算共享密钥的计算中需要的值ζb,i1(以下,称为第一委托结果。)。此外,根据式(92),计算共享密钥的计算中需要的值ζb,i2(以下,称为第二委托结果。)。向终端装置12发送算出的第一委托结果ζb,i1和第二委托结果ζb,i2。

在步骤s14中,终端装置11的验证单元14根据式(93),验证将第一委托结果ζa,i1乘以了si2的值(以下,称为第一验证值。)和将第二委托结果ζa,i2乘以了si1的值(以下,称为第二验证值。)是否一致。同样地,终端装置12的验证单元14根据式(94),验证将第一委托结果ζb,i1乘以了ti2的值(以下,称为第一验证值。)和将第二委托结果ζb,i2乘以了ti1的值(以下,称为第二验证值。)是否一致。在第一验证值和第二验证值一致的情况下,处理进至步骤s151。在第一验证值和第二验证值不一致的情况下,处理返回到步骤s12。

在步骤s151中,终端装置11的共享密钥计算单元15根据式(95),用随机数s'i1、s'i2从第一委托结果ζa,i1和第二委托结果ζa,i2计算委托结果ζa,i。同样地,终端装置12的共享密钥计算单元15根据式(96),用随机数t'i1、t'i2从第一委托结果ζb,i1和第二委托结果ζb,i2计算委托结果ζb,i。

在步骤s152中,终端装置11的共享密钥计算单元15对i=1,…,m,根据式(97),计算σi的值,生成σ1、…、σm的值。同样地,终端装置12的共享密钥计算单元15对i=1,…,m,根据式(98),计算σi的值,生成σ1、…、σm的值。

在步骤s154中,终端装置11以及终端装置12的共享密钥计算单元15根据式(99),用σ1、…、σm的值,计算共享密钥k。

k=h(σ1,...,σm,sa,sb,xa,xb)…(99)

终端装置11以及终端装置12的共享密钥计算单元15计算出的σ1,…,σm的值都设为i=1,…,m,可以如式(100)那样表示。因此,终端装置11的计算出的共享密钥k和终端装置12的计算出的共享密钥k一致。

[变形例6]

变形例6是使用了第六实施方式的自我修正的cert-certake法的变形例。特别地,本变形例是在密钥装置持有专用密钥,密钥装置生成短期专用密钥的结构中,对密钥装置委托群gt的乘方的计算的结构。

以下,说明本变形例的密钥交换方法的处理过程。在以下,以与上述第六实施方式的不同点为中心来说明。

在本变形例中,以下那样进行密钥生成。密钥装置11随机地选择专用密钥sa∈zq,计算公共密钥sa=gsa∈g,向终端装置11发送。同样地,密钥装置12随机地选择专用密钥sb∈zq,计算公共密钥sb=gsb∈g,向终端装置12发送。认证台装置4对终端装置11的公共密钥sa以及终端装置12的公共密钥sb进行认证。密钥装置21随机地选择短期专用密钥xa∈zq,计算短期公共密钥xa=gxa∈g,向终端装置11发送。同样地,密钥装置22随机地选择短期专用密钥xb∈zq,计算短期公共密钥xb=gxb∈g,向终端装置12发送。

在本变形例中,在将步骤s12、s13、s21、s14、s151的处理反复执行了m次后,将以下的步骤s12b、s13b、s21b、s14b、s151b(未图示)的处理反复执行m次。在以下,说明第i(=1,…,m)次反复中的处理过程。

在步骤s12b中,终端装置11的随机数生成单元12生成随机数si21,si22,s'i21,s'i22∈z和群元素g1,g2∈g。这里,假设si21,si22彼此互质,满足si21s'i21+si22s'i22=1。假设g1,g2为不是g群的单位元的元。同样地,终端装置12的随机数生成单元12生成随机数ti21,ti22,t'i21,t'i22∈z和群元素g3,g4∈g。这里,假设ti21,ti22彼此互质,满足ti21t'i21+ti22t'i22=1。假设g3,g4为不是g群的单位元的元。

在步骤s13b中,终端装置11的公共密钥随机化单元13根据式(101),计算将终端装置12的公共密钥sb和短期公共密钥xb用随机数si21进行了随机化的值(以下,称为第一随机化公共密钥信息。)。此外,根据式(102),计算将终端装置12的公共密钥sb和短期公共密钥xb用随机数si22进行了随机化的值(以下,称为第二随机化公共密钥信息。)。向密钥装置21发送算出的第一随机化公共密钥信息和第二随机化公共密钥信息的对。

其中,

同样地,终端装置12的公共密钥随机化单元13根据式(103),计算将终端装置11的公共密钥sa和短期公共密钥xa用随机数ti21进行了随机化的值(以下,称为第一随机化公共密钥信息。)。此外,根据式(104),计算将终端装置11的公共密钥sa和短期公共密钥xa用随机数ti22进行了随机化的值(以下,称为第二随机化公共密钥信息。)。向密钥装置22发送算出的第一随机化公共密钥信息和第二随机化公共密钥信息的对。

其中,

在步骤s21b中,密钥装置21的代理计算单元21根据式(105),对于同态映射fa,2:g→g,h→has,计算共享密钥的计算中需要的值ξa,i1(以下,称为第一委托结果。)。此外,根据式(106),计算共享密钥的计算中需要的值ξa,i2(以下,称为第二委托结果。)。向终端装置11发送算出的第一委托结果ζa,i1和第二委托结果ζa,i2。

同样地,密钥装置22的代理计算单元21根据式(107),对于同态映射fb,2:g→g,h→hsb,计算共享密钥的计算中需要的值ξb,i1(以下,称为第一委托结果。)。此外,根据式(108),计算共享密钥的计算中需要的值ξb,i2(以下,称为第二委托结果。)。

在步骤s14b中,终端装置11的验证单元14根据式(109),验证将第一委托结果ξa,i1乘以了si22的值(以下,称为第一验证值。)和将第二委托结果ξa,i2乘以了si21的值(以下,称为第二验证值。)是否一致。同样地,终端装置12的验证单元14根据式(110),验证将第一委托结果ξb,i1乘以了ti2的值(以下,称为第一验证值。)和将第二委托结果ξb,i2乘以了ti1的值(以下,称为第二验证值。)是否一致。在第一验证值和第二验证值一致的情况下,处理进至步骤s151b。在第一验证值和第二验证值不一致的情况下,处理返回到步骤s12b。

在步骤s151b中,终端装置11的共享密钥计算单元15根据式(111),用随机数s'i21、s'i22从第一委托结果ξa,i1和第二委托结果ξa,i2计算委托结果ξa,i。同样地,终端装置12的共享密钥计算单元15根据式(112),用随机数t'i1、t'i2从第一委托结果ζb,i1和第二委托结果ζb,i2计算委托结果ζb,i。

在步骤s152中,终端装置11的共享密钥计算单元15对于i=1,…,m,根据式(113),计算σi的值,生成σ1,…,σm的值。同样地,终端装置12的共享密钥计算单元15对于i=1,…,m,根据式(114),计算σi的值,生成σ1,…,σm的值。

在步骤s154中,终端装置11以及终端装置12的共享密钥计算单元15根据式(115),用σ1,…,σm的值,计算共享密钥k。

k=h(σ1,...,σm,sa,sb,xa,xb)…(115)

[第七实施方式]

第七实施方式是使用了自我修正的cert-idake法。特别地,本方式是密钥装置持有专用密钥,终端装置生成短期专用密钥的结构。

例如,图11所示,本方式的密钥交换系统除了包括终端装置11、12和密钥装置21,22,还包括密钥生成装置3和认证台装置4。

以下,参照图12、13,说明本方式的密钥交换方法的处理过程。在以下,以与上述第五实施方式的不同点为中心来说明。图12是例示了终端装置11和密钥装置21的处理流程的图,图13是例示了终端装置12和密钥装置22的处理流程的图。

在本方式中,以下那样进行密钥生成。密钥生成装置3随机地选择主专用密钥z∈zq,计算并公开主公共密钥的对(z1=g1z∈g1,z2=g2z∈g2)。终端装置11用识别符ida,计算并公开公共密钥的对(qa,1=h1(ida)∈g1,qa,2=h2(ida)∈g2)。密钥生成装置3用公共密钥的对(qa,1,qa,2),计算专用密钥的对(da,1=qa,1z,da,2=qa,2z),向密钥装置21分发。密钥装置12随机地选择专用密钥sb∈zq,计算公共密钥的对(sb,1=g1sb∈g1,sb,2=g2sb∈g2),向终端装置12发送。认证台装置4对密钥装置12的公共密钥sb进行认证。终端装置11随机地选择短期专用密钥za∈zq,生成短期公共密钥的对(xa,1=g1xa,xa,2=g2xa)。同样地,终端装置12随机地选择短期专用密钥xb∈zq,生成短期公共密钥的对(xb,1=g1xb,xb,2=g2xb)。

在步骤s111a中,终端装置11的公共密钥接收单元11向终端装置12发送由识别符和短期公共密钥构成的信息(ida,xa,1,xa,2)。在步骤s111b中,终端装置12的公共密钥接收单元11从终端装置11接收信息(ida,xa,1,xa,2)。

步骤s112b中,终端装置12的公共密钥接收单元11向终端装置11发送由公共密钥和短期公共密钥构成的信息(sb,1,sb,2,xb,1,xb,2)。在步骤s112a中,终端装置11的公共密钥接收单元11从终端装置12接收信息(sb,1,sb,2,xb,1,xb,2)。

在步骤s113a中,终端装置11的公共密钥接收单元11确认式(116)是否成立。在步骤s113b中,终端装置12的公共密钥接收单元11确认式(117)是否成立。若任一方不正确,则从密钥生成起重新开始。

e(xb,1,g2)=e(g1,xb,2),e(sb,1,g2)=e(g1,sb,2)…(116)

e(xa,1,g2)=e(g1,xa,2)…(117)

在本方式中,图12的步骤s12a、s13a、s21a、s14a、s151a的处理反复执行m次。在以下,说明第i(=1,…,m)次反复中的处理过程。

在步骤s12a中,终端装置11的随机数生成单元12生成随机数si1,si2,s'i1,s'i2∈z和群元素g1,g2∈g。这里,假设si1,si2彼此互质,满足si1s'i1+si2s'i2=1。假设g1,g2为不是g群的单位元的元。

在步骤s13a中,终端装置11的公共密钥随机化单元13根据式(118),计算将终端装置12的公共密钥sb,2和短期公共密钥xb,2用随机数si1进行了随机化的值(以下,称为第一随机化公共密钥信息。)。此外,根据式(119),计算将终端装置12的公共密钥sb,2和短期公共密钥xb,2用随机数si2进行了随机化的值(以下,称为第二随机化公共密钥信息。)。向密钥装置21发送算出的第一随机化公共密钥信息和第二随机化公共密钥信息的对。

其中,

在步骤s21a中,密钥装置21的代理计算单元21根据式(120),对于同态映射fa:g2→gt,h2→e(da,1,h2),计算共享密钥的计算中需要的值ζa,i1(以下,称为第一委托结果。)。此外,根据式(121),计算共享密钥的计算中需要的值ζa,i2(以下,称为第二委托结果。)。向终端装置11发送算出的第一委托结果ζa,i1和第二委托结果ζa,i2。

在步骤s14a中,终端装置11的验证单元14根据式(122),验证将第一委托结果ζa,i1乘以了si2的值(以下,称为第一验证值。)和将第二委托结果ζa,i2乘以了si1的值(以下,称为第二验证值。)是否一致。在第一验证值和第二验证值一致的情况下,处理进至步骤s151a。在第一验证值和第二验证值不一致的情况下,处理返回到步骤s12a。

在步骤s151a中,终端装置11的共享密钥计算单元15根据式(123),用随机数s'i1、s'i2从第一委托结果ζa,i1和第二委托结果ζa,i2计算委托结果ζa,i。

在步骤s152a中,终端装置11的共享密钥计算单元15对于i=1,…,m,根据式(124),计算σi的值,生成σ1,…,σm的值。

在步骤s153a中,终端装置11的共享密钥计算单元15根据式(125),计算σm+1、σm+2、σm+3、σm+4的值。

在步骤s154a中,终端装置11的共享密钥计算单元15根据式(126),用σ1,…,σm+4的值,计算共享密钥k。

k=h(σ1,...,σm+4,ida,idb,xa,1,xa,2,xb,1,xb,2,sb,1,sb,2)

…(126)

在本方式中,将图13的步骤s12b、s13b、s21b、s14b、s151b的处理反复执行m次。在以下,说明第i(=1,…,m)次反复中的处理过程。

在步骤s12b中,终端装置12的随机数生成单元12生成随机数ti1、ti2、t'i1、t'i2∈z和群元素g3、g4∈g。这里,假设ti1,ti2彼此互质,满足ti1t'i1+ti2t'i2=1。假设g3、g4为不是g群的单位元的元。

在步骤s13b中,终端装置11的公共密钥随机化单元13根据式(127),计算将终端装置12的公共密钥qa,1和短期公共密钥xa,1用随机数ti1进行了随机化的值(以下,称为第一随机化公共密钥信息。)。此外,根据式(128),计算将终端装置12的公共密钥qa,1和短期公共密钥xa,1用随机数ti2进行了随机化的值(以下,称为第二随机化公共密钥信息。)。向密钥装置21发送算出的第一随机化公共密钥信息和第二随机化公共密钥信息的对。

其中,

在步骤s21b中,密钥装置22的代理计算单元21根据式(129),对于同态映射fb:g1→gt,h1→e(h1,z2sb),计算共享密钥的计算中需要的值ζb,i1(以下,称为第一委托结果。)。此外,根据式(130),计算共享密钥的计算中需要的值ζb,i2(以下,称为第二委托结果。)。向终端装置12发送算出的第一委托结果ζb,i1和第二委托结果ζb,i2。

在步骤s14b中,终端装置12的验证单元14根据式(131),验证将第一委托结果ζb,i1乘以了ti2的值(以下,称为第一验证值。)和将第二委托结果ζb,i2乘以了ti1的值(以下,称为第二验证值。)是否一致。在第一验证值和第二验证值一致的情况下,处理进至步骤s151b。在第一验证值和第二验证值不一致的情况下,处理返回到步骤s12b。

在步骤s151b中,终端装置12的共享密钥计算单元15根据式(132),用随机数t'i1、t'i2从第一委托结果ζb,i1和第二委托结果ζb,i2计算委托结果ζb,i。

在步骤s152b中,终端装置12的共享密钥计算单元15对于i=1,…,m,根据式(133),计算σi的值,生成σ1,…,σm的值。

在步骤s153b中,终端装置12的共享密钥计算单元15根据式(134),计算σm+1、σm+2的值。此外,向密钥装置22委托基于式(135)的σm+3、σm+4的值的计算。

在步骤s154b中,终端装置11的共享密钥计算单元15根据式(136),用σ1,…,σm+4的值,计算共享密钥k。

k=h(σ1,...,σm+4,ida,idb,xa,1,xa,2,xb,1,xb,2,sb,1,sb,2)

…(136)

终端装置11以及终端装置12的共享密钥计算单元15计算出的σ1,…,σm+2的值都设为i=1,…,m,可以如式(137)表示。因此,终端装置11的计算出的共享密钥k和终端装置12的计算出的共享密钥k一致。

再者,在本方式中,通过步骤s13b和s21b中执行的代理计算,计算式(138)。

因此,通过在步骤s13b中,将βi,a置换为式(139)的β’i,a,在步骤s21b中,将同态映射fb:g1→gt,h1→e(h1,z2sb)置换为f'b:gt→gt,ht→htsb,也可进行同样的代理计算。

[变形例7]

变形例7是使用了第七实施方式的自我修正的cert-idake法的变形例。特别地,本变形例是密钥装置持有专用密钥,密钥装置生成短期专用密钥的结构。

以下,说明本变形例的密钥交换方法的处理过程。在以下,以与上述第七实施方式的不同点为中心来说明。

在本方式中,如以下那样进行密钥生成。密钥生成装置3随机地选择主专用密钥z∈zq,计算并公开主公共密钥的对(z1=g1z∈g1,z2=g2z∈g2)。终端装置11用识别符ida,计算并公开公共密钥的对(qa,1=h1(ida)∈g1,qa,2=h2(ida)∈g2)。密钥生成装置3用公共密钥的对(qa,1,qa,2),计算专用密钥的对(da,1=qa,1z,da,2=qa,2z),向密钥装置21分发。密钥装置12随机地选择专用密钥sb∈zq,计算公共密钥的对(sb,1=g1sb∈g1,sb,2=g2sb∈g2),向终端装置12发送。认证台装置4对密钥装置12的公共密钥sb进行认证。密钥装置21随机地选择短期专用密钥za∈zq,生成短期公共密钥的对(xa,1=g1xa,xa,2=g2xa),向终端装置11发送。同样地,密钥装置22随机地选择短期专用密钥zb∈zq,生成短期公共密钥的对(xb,1=g1xb,xb,2=g2xb),向终端装置12发送。

在本变形例中,在将步骤s12a、s13a、s21a、s14a、s151a的处理反复执行了m次后,将以下的步骤s12ab、s13ab、s21ab、s14ab、s151ab(未图示)的处理反复执行m次。在以下,说明第i(=1,…,m)次反复中的处理过程。

在步骤s12ab中,终端装置11的随机数生成单元12生成随机数si21,si22,s'i21,s'i22∈z和群元素g1,g2∈g。这里,假设si21,si22彼此互质,满足si21s'i21+si22s'i22=1。假设g1,g2为不是g群的单位元的元。

在步骤s13ab中,终端装置11的公共密钥随机化单元13根据式(140),计算将终端装置12的公共密钥sb,2和短期公共密钥xb,2用随机数si21进行了随机化的值(以下,称为第一随机化公共密钥信息。)。此外,根据式(141),计算将终端装置12的公共密钥sb,2和短期公共密钥xb,2用随机数si22进行了随机化的值(以下,称为第二随机化公共密钥信息。)。向密钥装置21发送算出的第一随机化公共密钥信息和第二随机化公共密钥信息的对。

其中,

在步骤s21ab中,密钥装置21的代理计算单元21根据式(142),对于同态映射f1,a:g2→gt,h2→e(z1xa,h2),计算共享密钥的计算中需要的值ξa,i1(以下,称为第一委托结果。)。此外,根据式(143),计算共享密钥的计算中需要的值ξa,i2(以下,称为第二委托结果。)。向终端装置11发送算出的第一委托结果ζa,i1和第二委托结果ζa,i2。

在步骤s14ab中,终端装置11的验证单元14根据式(144),验证将第一委托结果ξa,i1乘以si22的值(以下,称为第一验证值。)和将第二委托结果ξa,i2乘以si21的值(以下,称为第二验证值。)是否一致。在第一验证值和第二验证值一致的情况下,处理进至步骤s151ab。在第一验证值和第二验证值不一致的情况下,处理返回到步骤s12ab。

在步骤s151ab中,终端装置11的共享密钥计算单元15根据式(145),用随机数s'i21,s'i22从第一委托结果ξa,i1和第二委托结果ξa,i2计算委托结果ξa,i。

在步骤s152a中,终端装置11的共享密钥计算单元15对于i=1,…,m,根据式(146),计算σi的值,生成σ1,…,σm的值。

步骤s153a、s154a的处理与第七实施方式是同样的。

在本变形例中,在将步骤s12b、s13b、s21b、s14b、s151b的处理反复执行了m次后,将以下的步骤s12bb、s13bb、s21bb、s14bb、s151bb(未图示)的处理反复执行m次。在以下,说明第i(=1,…,m)次反复中的处理过程。

在步骤s12bb中,终端装置12的随机数生成单元12生成随机数ti21,ti22,t'i21,t'i22∈z和群元素g3,g4∈g。这里,假设ti21,ti22彼此互质,满足ti21t'i21+ti22t'i22=1。假设g3,g4为不是g群的单位元的元。

在步骤s13bb中,终端装置11的公共密钥随机化单元13根据式(147),计算将终端装置12的公共密钥qa,1和短期公共密钥xa,1用随机数ti21进行了随机化的值(以下,称为第一随机化公共密钥信息。)。此外,根据式(148),计算将终端装置12的公共密钥qa,1和短期公共密钥xa,1用随机数ti22进行了随机化的值(以下,称为第二随机化公共密钥信息。)。向密钥装置21发送算出的第一随机化公共密钥信息和第二随机化公共密钥信息的对。

其中,

在步骤s21bb中,密钥装置22的代理计算单元21根据式(149),对于同态映射f1,b:g1→gt,h1→e(h1,z2xb),计算共享密钥的计算中需要的值ξb,i1(以下,称为第一委托结果。)。此外,根据式(150),计算共享密钥的计算中需要的值ξb,i2(以下,称为第二委托结果。)。向终端装置12发送算出的第一委托结果ζb,i1和第二委托结果ζb,i2。

在步骤s14bb中,终端装置12的验证单元14根据式(151),验证将第一委托结果ξb,i1乘以了ti22的值(以下,称为第一验证值。)和将第二委托结果ξb,i2乘以了ti21的值(以下,称为第二验证值。)是否一致。在第一验证值和第二验证值一致的情况下,处理进至步骤s151bb。在第一验证值和第二验证值不一致的情况下,处理返回到步骤s12bb。

在步骤s151bb中,终端装置12的共享密钥计算单元15根据式(152),用随机数t'i21,t'i22从第一委托结果ξb,i1和第二委托结果ξb,i2计算委托结果ξb,i。

在步骤s152b中,终端装置12的共享密钥计算单元15对于i=1,…,m,根据式(153),计算σi的值,生成σ1,…,σm的值。

步骤s153b、s154b的处理与第七实施方式是同样的。

在本变形例中,通过在步骤s13ab和s21ab中执行的代理计算,成为计算式(154)。

因此,在步骤s13ab中,通过将βi,b置换为式(155)的β'i,b,在步骤s21ab中,将同态映射f1,a:g2→gt,h2→e(z1xa,h2)置换为f2,a:gt→gt,ht→gtxa,也可进行同样的代理计算。

此外,在本变形例中,根据步骤s13bb和s21bb中执行的代理计算,成为计算式(156)。

因此,通过在步骤s13bb中,将β1,i,a置换为式(157)的β2,i,a,在步骤s21bb中,将同态映射f1,b:g1→gt,h1→e(h1,z2xb)置换为f2,b:gt→gt,ht→gtxb,也可进行同样的代理计算。

[第八实施方式]

第八实施方式是,密钥装置存储终端装置的固有信息,仅预先注册了固有信息的终端装置可以委托代理计算的结构。在以下,将对第一实施方式适用的结构作为例子来说明,但对上述各实施方式也可同样地适用构成。

以下,说明本方式的密钥交换方法的处理过程。在以下,以与上述第一实施方式的不同点为中心来说明。

在本方式中,在终端装置11的存储单元10中,除了存储终端装置11的公共密钥gx,还存储固有信息add1。在密钥装置21的存储单元20中,除了存储终端装置11的专用密钥x,还存储列表list1。在列表list1中预先被注册终端装置11的固有信息add1。

在步骤s13中,终端装置11的公共密钥随机化单元13向密钥装置21除了发送第一随机化公共密钥信息和第二随机化公共密钥信息的对以外,还发送固有信息add1。

在步骤s21中,密钥装置21的代理计算单元21确认接收到的固有信息add1是否被注册在存储单元20的列表list1中。在被注册的情况下,计算第一委托结果z1和第二委托结果z2。在未被注册的情况下,不进行代理计算而结束处理。

本发明不限定于上述实施方式,在不脱离本发明的宗旨的范围中可进行适当变更是不言而喻的。上述实施方式中说明的各种处理,不仅根据记载的顺序时序地执行,也可以根据执行处理的装置的处理能力或需要,并行或单独地执行。

[程序、记录介质]

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

记述了该处理内容的程序,可以预先记录在计算机可读取的记录介质中。作为计算机可读取的记录介质,例如,也可以是磁记录装置、光盘、光磁记录介质、半导体存储器等这类介质。

此外,例如,将记录了该程序的dvd、cd-rom等移动式记录介质通过出售、转让、出租等来进行该程序的流通。而且,也可以是将该程序存储在服务器计算机的存储装置中,经由网络,通过从服务器计算机对其他的计算机转发该程序,使该程序流通的结构。

执行这样的程序的计算机,例如,首先将移动式记录介质中记录的程序或由服务器计算机转发的程序暂时存储自身的存储装置中。然后,在处理的执行时,该计算机读取自身的记录介质中存储的程序,执行根据读取出的程序的处理。此外,作为该程序的另一执行方式,也可以计算机从移动式记录介质中直接读取程序,执行根据读取出的程序的处理,而且,每次从服务器计算机对该计算机转发程序,逐次执行根据接受的程序的处理。此外,也可以是不从服务器计算机进行对该计算机的程序的转发,而仅通过其执行指示和结果取得来实现处理功能的、所谓asp(applicationserviceprovider;应用服务提供商)式的服务,执行上述处理的结构。再者,在本方式中的程序中,假设包含供电子计算机的处理之用的信息即以程序为基准的信息(不是对计算机的直接的指令,但具有规定计算机的处理的性质的数据等)。

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

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