CN1518268A - 公用密钥交换方法及通信设备 - Google Patents
公用密钥交换方法及通信设备 Download PDFInfo
- Publication number
- CN1518268A CN1518268A CNA2004100033340A CN200410003334A CN1518268A CN 1518268 A CN1518268 A CN 1518268A CN A2004100033340 A CNA2004100033340 A CN A2004100033340A CN 200410003334 A CN200410003334 A CN 200410003334A CN 1518268 A CN1518268 A CN 1518268A
- Authority
- CN
- China
- Prior art keywords
- communication equipment
- public key
- time
- computing
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 240
- 238000004891 communication Methods 0.000 title claims description 319
- 230000005540 biological transmission Effects 0.000 claims abstract description 37
- 238000012545 processing Methods 0.000 claims description 174
- 238000005259 measurement Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 abstract description 28
- 238000004364 calculation method Methods 0.000 abstract description 24
- 230000004044 response Effects 0.000 abstract description 9
- 230000008859 change Effects 0.000 description 45
- 206010011906 Death Diseases 0.000 description 19
- 239000003999 initiator Substances 0.000 description 13
- 230000006870 function Effects 0.000 description 9
- 230000015572 biosynthetic process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 239000012467 final product Substances 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- NAWXUBYGYWOOIX-SFHVURJKSA-N (2s)-2-[[4-[2-(2,4-diaminoquinazolin-6-yl)ethyl]benzoyl]amino]-4-methylidenepentanedioic acid Chemical compound C1=CC2=NC(N)=NC(N)=C2C=C1CCC1=CC=C(C(=O)N[C@@H](CC(=C)C(O)=O)C(O)=O)C=C1 NAWXUBYGYWOOIX-SFHVURJKSA-N 0.000 description 1
- 206010013654 Drug abuse Diseases 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000012508 change request Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 208000011117 substance-related disease Diseases 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000004148 unit process Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/061—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
- H04L9/0841—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mobile Radio Communication Systems (AREA)
- Computer And Data Communications (AREA)
- Prepayment Telephone Systems (AREA)
Abstract
本发明揭示一种公用密钥交换方法及通信设备。若从设备A接收公开值X,则设备B推定公开值Y的计算所花的时间及公用密钥K的计算所花的时间,求出为了进行密钥交换处理在设备B一侧所必需的运算需要时间Tb,并发送给设备A,预告应答延迟时间(S306、S307)。然后,设备B实际计算公开值Y及公用密钥K(S309、S310)。设备A接收运算需要时间Tb,将等待来自设备B的应答的应答等待期限(超时时间)延长设定为该接收的运算需要时间Tb经过的时刻(S311)。
Description
技术领域
本发明涉及公用密钥交换方法及通信设备,更特别的是涉及在通过网络收发隐秘性高的数据的设备之间交换及公用加密/认证用的密钥用的公用密钥交换方法。
背景技术
由于近年来因特网的普及,电子邮件及电子商务交易等的通过网络的服务也正在增多,家庭内的能够与网络连接的电气产品、即所谓的“网络家电”也在不断增加。该网络家电也涉及到空调器及微波炉等白色家电,提出了能够进行从室外控制空调器、或者能够从服务器下载微波炉的烹调程序的服务等方案。但是,随着该网络的普及及扩大,带有恶意的第三者篡改或盗用(擅自收视)网络上的电子数据,或者冒充他人接受服务等,这一类的问题也浮出水面。为此,网络上的安全措施变得越发重要。
作为实现网络上的安全功能的成果,已经有各种标准化或实用化的使用加密技术及认证技术的协议。例如,作为规定IP包级的安全功能的协议,有Ipsec(IP Security Protocol,IP安全协议)。所谓Ipsec是利用因特网工程任务组(IETF,Internet Engineering Task Force)的标准化的协议,其内容是根据IETF的说明书“RFC2401”(非专利文献1)规定的。根据该Ipsec,通过将IP信息包本身进行加密,能够防备盗用者,保护通信内容,防止洩漏秘密。另外,通过对IP信息包追加认证(完全性校验)用数值,能够保证在通信路径中数据不被篡改。
但是,在使用Ipsec等协议、在设备之间收发经过加密/认证处理的数据时,必须在数据收发之前双方设备中公用加密/认证处理用的密钥(以下称为会话公用密钥)。这里,用户通过手动,来设定会话公用密钥是很烦琐的,不适合于在多台设备之间进行通信的系统。另外,若连续长时间持续使用1个会话公用密钥,则由于被第三者解读会话公用密钥的可能性增加,因此必须根据需要更新会话公用密钥。由于这样的情况,为了设备之间将会话公用密钥公用而所必需的生成、发布、交换及更新的处理,最好是安全、简单而且自动进行,关于这方面提出了各种方法。
例如,作为在2个设备之间交换1个秘密对称密钥(会话公用密钥)的方法,在广泛使用的基本技术中有狄菲-赫尔曼的密钥交换方法(以下记作DH法)在作为上述的Ipsec的密钥交换及管理协议规定为标准使用的IKE(Internet KeyExchange,因特网密钥交换)中也使用。该IKE的简要内容在IETF的说明书“RFC2407”~“RFC2409”(非专利文献2~4)中揭示。
下面作为以往的公用密钥交换(公用及发送)方法的具体例子,来说明DH法。
图18为说明用IETF的说明书“RFC2631”(非专利文献5)规定的DH法用的说明图。另外,图18的设备A及设备B是进行密码通信及密钥交换的设备组。另外,设备A及设备B在进行密钥交换之前,假设预先知道变量g及变量n的值(步骤S1801、S1802)。该变量g及变量n是密钥交换处理中的运算所使用的变量,但该值第三值(盗用者)也可以知道。
首先,设备A生成自己设备固有的秘密值a(步骤S1803)。然后,设备A用该秘密值a及变量g及变量n,利用下式(1),计算公开值X(步骤S1804)。该式(1)意味着,将变量g按照秘密值a的次数进行乘法计算(取幂运算),将该值用变量n去除的余数(模运算)作为公开值X。然后,设备A将计算出的公开值X发送给设备B(步骤S1805)。
X=g^a mod n ……(1)
另外,设备B若从设备A接收了公开值X,则生成自己设备固有的秘密值b(步骤S1806)。然后,设备B用该秘密值b及变量g及变量n,利用下式(2),计算公开值Y(步骤S1807)。再进一步,在设备B中用从设备A接收的公开值X及秘密值b及变量n,利用下式(3),计算会话公用密钥K(步骤S1808)。然后,设备B将计算出的公开值Y发送给设备A(步骤S1809)。
Y=g^b mod n ……(2)
K=X^b mod n ……(3)
最后,设备A若从设备B接收了公开值Y,则用该公开值Y及秘密值a,利用下式(4),计算会话公用密钥K(步骤S1810)。
K=Y^a mod n ……(4)
这里,上述式(3)及式(4)满足下式(5)的关系。
Y^a mod n=X^b mod n=g^(a×b)mod n ……(5)
因此,设备A及设备B作为会话公用密钥K能够计算出相同的数值。所以,在各设备中计算出会话公用密钥K之后,能够用该会话公用密钥K,将加密/认证处理的数据进行收发(步骤S1811)。
盗用者根据已知的变量g、变量n、公开值X及公开值Y,要寻找出会话公用密钥K,这称之为所谓的离散对数问题,是非常困难的,这是众所周知的事实。特别是在设定变量n为极大的数值(数百比特至数千比特)时,要解离散对数,这事实上是不可能的。如上所述,通过使用DH法,在设备A与设备B之间能够安全地将会话公用密钥K公用。
另外,在上述的IKE的情况下,不仅规定DH法的顺序,也规定在其前后在设备之间交换的顺序。下面用图19简单说明用IKE的密钥交换方法。另外,在IKE中,将最初向对方发送密钥交换请求的一方的设备称为始发器,将接收该请求的一方的设备称为应答器。另外,在IKE中,规定所谓Phase1及Phase2的2阶段密钥交换。
首先,在Phase1的阶段中,始发器与应答器开始协商密钥交换及加密/认证处理所用的各种参数(步骤S1901)。例如DH法中所用的变量g及变量n的值、以及在步骤S1903中所用的加密/认证的算法,也在该步骤S1901中决定。关于变量g及变量n的值,只要用这些值本身或能够确定变量g及变量n的规定的组号等决定即可。然后,进行上述DH法的密钥交换,将会话公用密钥K_Phase1公用(步骤S1902)。在Phase1的最后,进行认证始发器与应答器相互是否是真正正确的对方(本人性确认)用的步骤(步骤S1903)。在该步骤S1903的认证中使用的消息,在利用基于会话公用密钥K_Phase1的密钥进行加密/认证处理后进行收发。作为认证相互设备用的信息,可以使用ID或散列值等。例如,将会话公用密钥K_Phase1与步骤S1902中交换的数据等连接,能够使用将它作为带密钥的散列函数的输入值进行计算的散列值,作为在步骤S1903中进行消息的加密/认证的密钥。
然后,在Phase2的阶段中,决定对始发器与应答器之间实际想要收发的数据进行加密/认证处理。对于该Phase2的消息与步骤S1903相同,利用基于会话公用密钥K_Phase1的密钥进行加密/认证处理。在Phase2中的最初的2个消息,进行变量g及变量n的数值提出或通知、加密/认证算法等的协商、以及DH法的公开值X及公开值Y的交换(步骤S1904)。在Phase2中,能够将参数(变量g、变量n、秘密值a及秘密值b)的值取为与Phase1的参数不同的值。始发器与响应器根据用步骤S1904的DH法计算的会话公用密钥K_Phase2,生成适用于实际数据的加密/认证处理的密钥,将已经完成加密/认证处理的数据进行收发(步骤S1905)。
另外,在IKE中除了上述顺序以外,还规定了一方的消息未到达另一方设备时进行消息重发、以及会话公用密钥的更新顺序等。
[非专利文献1]标准说明书“RFC2401”、IETF、[平成15年(2003年)12月9日检索]、因特网<URL:
http:∥www.ietf.org/rfc/rfc2401.txt>
[非专利文献2]标准说明书“RFC2407”、IETF、[平成15年(2003年)12月9日检索]、因特网<URL:
http:∥www.ietf.org/rfc/rfc2407.txt>
[非专利文献3]标准说明书“RFC2408”、IETF、[平成15年(2003年)12月9日检索]、因特网<URL:
http:∥www.ietf.org/rfc/rfc2408.txt>
[非专利文献4]标准说明书“RFC2409”、IETF、[平成15年(2003年)12月9日检索]、因特网<URL:
http:∥www.ietf.org/rfc/rfc2409.txt>
[非专利文献5]标准说明书“RFC2631”、IETF、[平成15年(2003年)12月9日检索]、因特网<URL:
http:∥www.ietf.org/rfc/rfc2631.txt>
如上所述已知,DH法包含取幂运算及模运算,在使用位数大的数值时,处理负荷非常重。例如,在IKE中规定的DH组2的情况下,使用g=2、n=1024(比特)的值来计算公开值X、公开值Y及会话公用密钥K。但是,在像网络家电那样装有低成本的CPU的设备中,不指望有高的计算能力,可以认为会产生以下那样的3个问题。
首先,作为第1个问题可以列举的是,利用相对的(对方一侧的)设备中的超时检测,存在密钥交换处理失败的危险。图20为说明该问题用的流程图。图20的步骤S2001~S2006是与图18的S1801~S1806相同的处理,从设备A向设备B发送DH法的公开值X。然后,设备B与图18的步骤S1807及S1808相同,进行公开值Y及会话公用密钥K的计算,但由于CPU的计算能力低,因此需要非常长的处理时间(步骤S2007、S2008)。
设备A在发送了自己的公开值X之后(步骤S2005),应该是等待来自设备B的应答,即等待接收公开值Y,但通常为了防备通信路径中的信息包丢失或对方设备的故障等,包括重发及超时处理。在图20的设备A的情况下,若没有来自设备B的应答,则每隔重发间隔T[秒]时间,重发公开值X的消息(步骤S2010~S2012)。尽管如此,在仍然没有来自设备B的应答时,在经过了规定的时间(在图20的例子中为T×4[秒])后,检测出超时,则判断为密钥交换失败(步骤S2013)。
然后,即使假设在设备B结束公开值Y及会话公用密钥K的计算,并向设备A发送公开值Y(步骤S2009),但这时在设备A已经将与设备B的密钥交换处理执行状态进行复位。因此,将包含公开值Y的消息判断为无效的消息而抛弃(步骤S2014)。
其次,作为第2个问题可以列举的是,在设定了密钥的寿命时,在寿命结束之前有密钥的更新尚未结束的危险。若在连续长时间内使用同一密钥,则在该期间内能解读密钥的情况不能说完全没有。因此,在IKE中对密钥预先设定寿命,若经过适当的时间,则使其能够结束在这之前使用的密钥,而使用其它新的密钥。具体来说,若因密钥交换成功而生成密钥,则对该密钥设定寿命。或者,在开始密钥交换顺序时,在设备A与设备B之间决定赋与该密钥的寿命结束时刻,在该密钥的寿命结束之前,生成下1个新密钥,在使用中的密钥的寿命结束之前,切换为该新密钥。将这样的密钥更新粗活力称为更新密钥(rekey)处理。若因DH法的运算需要花费时间,则更新密钥处理迟缓,在旧密钥的寿命结束之前,不能进行密钥更新,而若在持续使用旧密钥的过程中,其寿命结束,则不能进行信息包的加密。
再有,作为第3个问题可以列举的是,有妨碍设备上其它应用程序执行的危险。在像网络家电那样装有低性能的CPU的设备中,若连续执行DH法等高负荷的运算处理,则连续长时间内仅仅该运算占有了网络家电的CPU,导致CPU资源枯竭。因此,有可能妨碍在网络家电上工作的其它应用程序的执行,不能正常地工作。
所以,本发明的第一目的在于,提供即使在使用装有低性能CPU的设备时,也能够不使设备进行超时检测而使密钥交换成功的公用密钥交换方法及其通信设备。另外,本发明的第二目的在于,提供即使在使用装有低性能CPU的设备时、也能够正常进行更新密钥处理的公用密钥交换方法及其通信设备。再有,本发明的第三目的在于,提供在装有低性能CPU的设备中能够不妨碍其它的应用程序的执行而同时还使密钥交换成功的公用密钥交换及其通信装置。
发明内容
本发明是面向为了收发进行了加密/篡改认证处理的数据而在2个通信设备之间进行的交换公用密钥的公用密钥交换方法及执行该方法的通信设备。而且,为了达到上述第一目的,在本发明的公用密钥交换方法中,各通信设备执行以下的步骤,在本发明的通信设备中,包括能够执行这些步骤的构成。
至少一方的通信设备执行(包括)将相对的另一方通信设备为了取得公用密钥所必需的信息发送给该另一方通信设备的信息发送步骤(信息发送单元)、以及根据另一方通信设备在下一次应答时刻之前进行的规定运算所花费的时间,来设定等待来自另一方通信设备的应答的期限的设定步骤(设定单元)。而且,另一方通信设备执行(包括)进行规定的运算后从信息中取得公用密钥的取得步骤(取得单元)、以及在应答时刻向一方的通信设备发送规定应答的应答发送步骤(应答发送单元)。
这里,在各通信设备计算出自己的公开值后发送给对方的通信设备,另外从对方的通信设备接收对方的公开值,并根据该对方的公开值计算出公用密钥,通过这样实现公用密钥的交换时,一方的通信设备的设定步骤根据另一方通信设备在计算出公开值之前所花的时间或在计算出公用密钥之前所花的时间的至少某1个时间,来设定应答设定的期限。
另外,在一方的通信设备对自己设备生成的公用密钥或生成公用密钥用的信息进行规定的加密后向另一方通信设备发送,另一方通信设备将从一方的通信设备接收的加密的公用密钥进行解密或将生成公用密钥用的信息进行解密后生成公用密钥,并将公用密钥取得的应答向一方的通信设备发送,通过这样实现公用密钥交换时,一方的通信设备的设定步骤根据另一方通信设备中对加密的公用密钥进行解密所花的时间或生成公用密钥用的信息进行解密并生成公用密钥所花的时间,来设定应答等待的期限。
另外,在另一方通信设备从一方的通信设备接收请求消息后,将公用密钥或生成公用密钥用的信息用从一方的通信设备接收的公开密钥进行加密后,向一方的通信设备发送,通过这样实现用功密钥交换时,一方的通信设备的设定步骤根据在另一方通信设备中将公用密钥或生成公用密钥用的信息进行加密所花的时间,来设定应答等待的期限。
另外,规定的运算可以是取得公用密钥的同时进行认证处理用的运算,或者也可以是取得公用密钥的同时进行认证处理用的运算而且取得公用密钥用的运算。典型的是在一方的通信设备将认证用的带数字签名的数据或利用公开密钥密码的数据向另一方通信设备发送,而另一方通信设备根据从一方的通信设备接收的带数字签名的数据或利用公开密钥密码的数据进行本人性认证处理,通过这样实现认证处理时,一方的通信设备的设定步骤只要根据在另一方通信设备中本人性认证处理所花的时间,来设定应答等待的期限即可。
一方的通信设备的设定单元只要根据推定从对方的通信设备接收的规定运算所花的时间的运算需要时间,取得规定运算所花的时间即可。作为最好的取得方法是,另一方通信设备再执行(包括)推定规定运算所花的运算需要时间的推定步骤(推定单元)、以及将推定的运算需要时间向一方的通信设备发送的时间发送步骤(时间发送单元)。然后,一方的通信设备执行从另一方通信设备接收运算需要时间的接收步骤。
这时,也可以是一方的通信设备中心向另一方通信设备询问运算需要时间的步骤(询问单元),另一方通信设备根据来自一方的通信设备的询问,执行推定步骤及时间发送步骤。
另一方通信设备推定的运算需要时间也可以以事前保存。另外,该事前保存的运算需要时间最好是过去的规定运算所花的最大时间。
另外,作为上述以外的方法,另一方通信设备也可以在下一次应答时刻之前将应答迟缓的内容的通知至少发送一次给一方的通信设备的步骤。在这种情况下,一方的通信设备只要再执行从另一方通信设备接收通知的步骤,并在设定步骤根据通知,来设定应答等待的期限即可。另外,一方的通信设备也可以测量在发送消息后到接收另一方通信设备中进行规定运算后的应答为止的时间,以取得规定运算所花的时间。
另外,在通信设备根据对方的公开值来计算公用密钥的公用密钥交换处理中,在另一方通信设备在下1个应答时刻之前进行公开值及/或公用密钥的计算时(公开值计算单元、公用密钥计算单元),一方的通信设备的设定步骤最好根据另一方通信设备在计算出公开值及/或公用密钥之前所花的合计时间,来设定与公开值的发送或公用密钥计算结束有关的应答等待的期限。
这里,通信设备也可以执行在公用密钥的计算结束后将结束通知发送对方的通信设备的步骤、以及在从对方的通信设备接收结束通知之前不进行密钥交换处理失败的判断的步骤。另外,也可以在IKE的消息顺序中执行信息发送步骤、设定步骤、取得步骤及应答发送步骤。
另外,为了达到上述第二及第三目的,在本发明的公用密钥交换方法中,各通信设备执行以下的步骤,在本发明的通信设备中,包括能够执行这些步骤的构成。
各通信设备执行(包括)推定为了计算出公用密钥而进行的规定运算所花的运算需要时间的推定步骤(推定单元)、以及根据运算需要时间计算出与对方通信设备之间应该结束公用密钥交换的时刻之前使公用密钥交换处理结束用的处理开始时刻的计算步骤(计算单元)。然后,任何一方的通信设备还执行(包括)在处理开始时刻开始进行密钥交换处理的开始步骤(开始单元)。
在这种情况下,也可以另一方通信设备还执行(包括)将在推定步骤中推定的运算需要时间向一方的通信设备发送的时间发送步骤(时间发送单元)。然后,一方的通信设备还执行(包括)从另一方通信设备接收运算需要时间的步骤(时间接收单元),并在计算步骤中根据自己的运算需要时间及另一方通信设备的运算需要时间,计算出处理开始时刻。
另外,也可以一方通信设备还执行(包括)对另一方通信设备进行询问运算需要时间的步骤(询问单元),另一方通信设备根据来自一方的通信设备的询问,执行推定步骤及时间发送步骤。
另外,最好在计算步骤中计算出的处理开始时刻早的通信设备在该处理开始时刻执行开始步骤。
另外,最好通信设备还执行(包括)判断公有密钥的计算是新的还是更新的判断步骤(判断单元),在是更新的情况下,将为了计算公用密钥而进行的规定运算分割为规定的小单位,在时间上进行负荷分散。该负荷分散只要为了计算公用密钥而进行的规定运算所花的时间长的通信设备执行即可。
再有,最好推定步骤推定为了计算公用密钥而自己设备进行的规定运算所花的实际时间的2倍时间作为运算需要时间。
最好该公用密钥交换方法以使通信设备执行一连串的处理顺序用的程序形式来提供。该程序也可以记录在计算机能够读取的记录介质中。
如上所述,根据本发明的公用密钥交换方法,即使是任何一方的通信设备在计算公开值及公用密钥需要规定以上的时间(是低性能)时,预先推定因运算的延迟而影响的时间或延迟情况的通知,然后通知对方的通信设备。通过这样,由于不产生低性能的设备还在进行密钥交换处理的运算之中而对方的设备却判断为不应答的这样的以往问题,因此能够顺利地完成密钥交换。另外,在公用密钥更新时的密钥交换处理也能够在公用密钥的寿命接收前进行。再有,在该公用密钥更新时,能够在时间上将高负荷的运算进行负荷分散,即使是低性能的设备,密钥交换处理在连续长时间内不会占用CPU。
关于本发明的这些及其它的目的、特征、方面及效果,参照附图并根据以下详细说明将进一步明白。
附图说明
图1-A所示为采用本发明的公用密钥交换方法的网络构成的1个例子。
图1-B所示为采用本发明的公用密钥交换方法的网络构成的1个例子。
图2-A所示为安装有本发明的公用密钥交换方法的设备功能方框图的1个例子。
图2-B所示为图2-A的公用密钥交换单元的详细构成方框图的1个例子。
图3为说明本发明第一实施形态有关的公用密钥交换方法的处理顺序图。
图4为说明本发明第二实施形态有关的公用密钥交换方法的处理顺序图。
图5为说明本发明第三实施形态有关的公用密钥交换方法的处理顺序图。
图6为说明本发明第四实施形态有关的公用密钥交换方法的处理顺序图。
图7为说明本发明第五实施形态有关的公用密钥交换方法的处理顺序图。
图8-A及图8-B为说明本发明第六实施形态有关的公用密钥交换方法的处理顺序图。
图9-A及图9-B为说明本发明第七实施形态有关的公用密钥交换方法的处理顺序图。
图10-A及图10-B为说明本发明第八实施形态有关的公用密钥交换方法的处理顺序图。
图11为说明本发明第九实施形态有关的公用密钥交换方法的处理顺序图。
图12所示为本发明第十及第十一实施形态的密钥更新处理(更新密钥处理)的时序图。
图13为说明本发明第十实施形态有关的公用密钥交换方法的处理顺序图。
图14为说明本发明第十一实施形态有关的公用密钥交换方法的处理顺序图。
图15为说明本发明第十二实施形态有关的公用密钥交换方法的处理顺序图。
图16为将本发明的公用密钥交换方法适用于密钥交换以外的通信形态时的处理顺序图。
图17为将本发明的公用密钥交换方法适用于密钥交换以外的通信形态时的处理顺序图。
图18为说明以往的基本公用密钥交换方法(DH法)的处理顺序图。
图19所示为用RFC2407~2409揭示的IKE处理步骤概要的顺序图。
图20为说明以往的公用密钥交换方法的问题用的说明图。
具体实施方式
在说明本发明提供的公用密钥交换方法之前,首先说明由使用公用密钥交换方法的设备而形成的网络构成。
图1-A及图1-B所示为采用本发明的公用密钥交换方法的网络构成的1个例子。适合本发明的公用密钥交换方法的安装形态可以分成两类,一类是安装于将网络家电与因特网等公共网(WAN)的连接进行中继的GW型设备(路由器及网关(GW)等)的情况(图1-A),另一类是安装于相当于网络家电的主机型设备的情况(图1-B)。
首先,在图1-A中,本发明的公用密钥交换方法安装于GW型设备101及102。GW型设备101与GW型设备102通过公共网107连接。另外,GW型设备101还与自己的LAN108内的终端103及104连接。同样,GW型设备102还与自己的LAN109内的终端105及106连接。
LAN108内的终端与LAN109内的终端能够通过GW型设备101及102的中继进行通信。加密/认证处理是对于来往GW型设备101与GW型设备102之间的数据进行。即,加密/认证处理是在该2个GW型设备之间终止。GW型设备101将从LAN108内的终端接收的数据进行加密/认证处理后,发送给GW型设备102,另外将从GW型设备102接收的加密/认证处理后的数据进行解密/认证处理后,送出给LAN108内的终端。GW型设备102将从LAN109内的终端接收的数据进行加密/认证处理后,送出给相对的GW型设备101,另外将从GW型设备101接收的加密/认证后的数据进行解密/认证处理后,送出给LAN109内的终端。另外,公用密钥的交换处理也在GW型设备101与GW型设备102之间进行。
另外,在图1-B中,本发明的公用密钥交换方法安装于主机型设备110及111。主机型设备111通过公共网107与GW型设备101或主机型设备110连接。另外,GW型设备101与上述相同,还与自己的LAN108内的终端103及104连接。
主机型设备111与LAN108内的终端能够通过GW型设备101的中继进行通信。加密/认证处理是对于来往主机型设备111与GW型设备101之间的数据进行。主机型设备111与GW型设备101不同,是自己将自己内部的收发数据进行加密/认证处理。再有,主机型设备111能够在与包括同样功能的主机型设备110之间将已经进行了加密/认证处理的数据进行通信。另外,关于公用密钥的交换处理,是分别在主机型设备111与GW型设备101之间、以及主机型设备111与主机型设备110之间独立进行。
下面参照图2-A及图2-B说明安装本发明的公用密钥交换方法的设备的功能方框。图2-A所示为图1-A中说明的GW型设备102的功能方框图的1个例子。在图2-A中,GW型设备102包括公用密钥交换单元201、数据库(DB)管理单元202、数据库(DB)单元203、加密/认证处理单元204、通信协议处理单元205及206、LAN接口(I/F)207、以及WAN接口(I/F)208。图2-B所示为图2-A的公用密钥交换单元201的详细构成方框图的1个例子。另外,图2-B是表示本实施形态中说明的全部处理的功能方框。因而,在各实施形态中说明的设备A及设备B的构成中所包含的功能方框及数据流,将因其处理内容而各有不同。设定单元主要进行运算需要时间的设定及小处理单位的设定等各种设定处理。推定单元主要进行运算需要时间的推定处理。取得单元主要进行通过运算或解密而取得公开值、公用密钥或公开密钥的取得处理。判断单元对于公用密钥交换处理进行判断是新/更新的判断处理。这些处理将在后面详细说明。
GW型设备102通过WAN接口208与公共网(WAN)连接,能够与其它的GW型设备等进行通信。另外,GW型设备102通过LAN接口207与LAN连接,能够与LAN内的终端等进行通信。通信协议处理单元205及206是处理IP层及TCP层等的通信协议的部分,还对LAN内的终端与通过公用网的设备之间收发的包进行路由处理等。
公用密钥交换单元201是进行基于本发明的公用密钥交换方法的处理的构成部分。在公用密钥交换单元201中,与对方设备即GW型设备101进行密钥交换用的通信,与GW型设备101公用会话公用密钥。会话公用密钥通过数据库管理单元202记录在数据库单元203中。
数据库单元203是保存加密/认证处理用的会话公用密钥的记录单元,不仅是密钥,还保存密码算法等信息。对数据库单元203的信息登录及删除等处理是由数据库管理单元202来进行。加密/认证处理单元204参照数据库单元203的密钥信息等,进行包的加密及解密/认证(完全性校验)的处理。具体来说,加密/认证处理单元204通过LAN接口207及通信协议处理单元205,从LAN内的终端接受明文(未加密)的发送包。若接受该发送包,则加密/认证处理单元204进行数据加密/认证处理用的数据追加等处理,通过通信协议处理单元206及WAN接口208,送出给公共网。因而,通过加密/认证处理单元204以后的通信协议处理单元206及WAN接口208发送的包成为已加密的包。另外,对于从公共网一侧到达的已加密的包,采用与上述相反的顺序,在加密/认证处理单元204进行解密处理,对LAN内的终端送出明文的数据。
下面举出适用于利用DH法进行密钥交换处理的情况作为1个例子,说明本发明提供的公用密钥交换方法的实施形态。另外,各实施形态中的设备A及设备B作为进行加密/认证处理及公用密钥交换处理的设备组。具体来说,与图1-A中的GW型设备101与GW型设备102的一组、图1-B中的GW型设备101与主机型设备111的一组、或者主机型设备110与主机型设备111的一组的任何一组相对应。另外,各实施形态的处理顺序所示的设备的处理是在图2-A中的公用密钥交换单元201进行。
(第一实施形态)
以下说明的第一~第九实施形态是解决发明想要解决的问题中说明的以往公用密钥交换方法尚存在的第一问题用的方法。在本发明中,为了解决第一问题,在包括花时间的运算处理时,进行控制以延长与该处理有关的应答等待期限(超时时间)。本发明能够根据密钥交换处理的顺序来实现最佳的控制形态,在第一~第九实施形态中依次说明其中代表性的9种控制形态。
图3为说明本发明第一实施形态有关的公用密钥交换方法用的处理顺序图。在图3中,设备B假设是比设备A的处理能力要差(例如安装于低性能的CPU)的低性能设备。另外,假设从设备A(始发器)开始密钥交换处理,在与设备B(应答器)之间实现密钥公用。再有,假设设备A与设备B在进行密钥交换处理前,预先知道密钥交换处理的运算所用的变量g及变量n的值(步骤S301、S302)。
若开始密钥交换开始,则设备A首先生成自己设备固有的秘密值a(步骤S303)。然后,设备A用该秘密值a及变量g及变量n,利用上述式(1)的运算,计算公开值X(步骤S304)。然后,设备A将计算出的公开值X发送给设备B(步骤S305)。到这里之前的处理与上述以往的处理(图18的步骤S1803~S1805)相同。这些处理是利用设备A一侧的取得单元及发送单元进行(参照图2-B)。
若从设备A接收了公开值X,则设备B推定利用上述式(2)的运算进行公开值Y的计算所花的时间Tb1(还包含秘密值b的生成所花的时间)、以及利用上述式(3)的运算来计算出公用密钥所花的时间Tb2,求出为了进行密钥交换处理而在设备B一侧所必需的运算需要时间Tb(=Tb+1Tb2)(步骤S306)。这些处理是利用设备B一侧的接收单元及推定单元进行(参照图2-B)。该运算需要时间Tb是与公开值的发送延迟有关的信息,是低性能的设备B对设备A通知公开值及公用密钥的计算需要规定以上的时间用的信息。运算需要时间Tb例如如下所述那样求出。事前在设备B上利用已知的变量g及变量n试验性地进行公开值Y及公用密钥K的计算,预先保存其值Time[g,n]。然后,如下式(6)所示,求出对该值加上预先决定的固定值α的值,作为运算需要时间Tb。固定值α是考虑到在设备A与设备B之间进行的消息收发而产生的延迟时间及波动的值(在以下的各实施形态中也相同)。
Tb=Time[g,n]+α ……(6)
设备B将求得的运算需要时间Tb发送给设备A,向设备A预告在该运算需要时间Tb经过之前将公开值Y进行应答(步骤S307)。在该发送之后,设备B生成自己设备固有的秘密值b(步骤S308),然后,设备B用该秘密值b及变量g及变量n,利用上述式(2)的运算,计算公开值Y(步骤S309)。再进一步,设备B用公开值X,利用上述式(3)的运算,计算公用密钥K(步骤S310)。然后,设备B将计算出的公开值Y发送给设备A(步骤S312)。这些处理是利用设备B一侧的取得单元及发送单元进行(参照图2-B)。
设备A若从设备B接收了运算需要时间Tb(步骤S307),则将等待来自设备B的应答的应答等待期限(超时时间)延长设定为从该接收起到运算需要时间Tb经过的时刻(步骤S311)。即,使得设备A将从设备B不能接收公开值Y的这样的判断要等到最大运算需要时间Tb经过之后才进行。然后,设备A若在超时时间之前从设备B接收了公开值Y(步骤S312),则判断为利用DH法产生的公开值的应答。因而,在设备A一侧,也能够用秘密值a及变量n及公开值Y,利用上述式(4)的运算,正确计算公用密钥K(步骤S313),在设备A与设备B的双方成功进行密钥交换。这些处理是利用设备A一侧的设定单元取得单元进行(参照图2-B)。
如上所述,根据本发明第一实施形态有关的公用密钥交换方法,低性能的设备事前推定密钥交换处理所必需的运算需要时间,将应答消息的最大延迟时间预告给对方的设备。然后,接受预告的设备根据接收的运算需要时间,延长设定判断应答消息有关的超时时间。通过这样,由于无论是什么样的低性能的设备,也不产生低性能的设备还正在进行密钥交换处理的运算期间就判断为对方的设备不应答这样的以往的问题,因此能够顺利地使密钥交换成功。
(第二实施形态)
图4为说明本发明第二实施形态有关的公用密钥交换方法用的处理顺序图。在图4中,设备A与设备B的关系,与上述第一实施形态相同。另外,图4的步骤S401~S404及S407的处理与上述图3的步骤S301~S305的处理相同。
在本第二实施形态中,设备B在从设备A接收公开值X之前生成秘密值b(步骤S405),利用上述式(2)的运算,计算公开值Y(步骤S406)。然后,若从设备A接收了公开值X(步骤S407),则设备B推定利用上述式(3)的运算进行的公用密钥K的计算所花的时间Tb,求出为了进行密钥交换处理而在设备B一侧所必需的运算需要时间Tb(=Tb2)(步骤S408)。运算需要时间Tb2能够利用例如上述式(6)的运算求出。然后,设备B将求出的运算需要时间Tb2发送给设备A,向设备A预先在该运算需要时间Tb2经过之前将公开值Y进行应答(步骤S409)。在该发送之后,设备B利用上述式(3)的运算,计算公用密钥K(步骤S410),将计算出的公开值Y发送给设备A(步骤S412)。
设备A若从设备B接收了运算需要时间Tb2(步骤S409),则将等待来自设备B的应答的应答等待期限(超时时间)延长设定为从该接收起运算需要时间Tb2经过的时刻(步骤S411)。然后,设备A若在超时时间之前从设备B接收了公开值的应答。因而,在设备A一侧也能够正确计算公用密钥K(步骤S413),在设备A与设备B的双方成功进行密钥交换。
如上所述,根据本发明第二实施形态有关的公用密钥交换方法,低性能的设备在接收对方的设备的公开值之前结束自己的公开值的计算时,若事前推定仅考虑公用密钥的计算所必需的时间的运算需要时间,则与上述第一实施形态相同,能够使密钥交换成功。
(第三实施形态)
图5为说明本发明第三实施形态有关的公用密钥交换方法用的处理顺序图。在图5中,设备A与设备B的关系,与上述第一实施形态相同。另外,图5的步骤S501~S505的处理与上述图3的步骤S301~S305的处理相同。
若从设备A接收了公开值X(步骤S505),则设备B推定利用上述式(2)的运算进行的公开值Y的计算所花的时间Tb1,求出为了进行密钥交换处理在设备B一侧所必需的运算需要时间Tb(=Tb1)(步骤S506)。运算需要时间Tb1能够利用例如上述式(6)的运算求出。然后,设备B将求出的运算需要时间Tb1发送给设备A,向设备A预告在该运算需要时间Tb1经过之前将公开值Y进行应答(步骤S507)。在该发送之后,设备B生成秘密值b(步骤S508),利用上述式的运算,计算公开值Y(步骤S509),将计算出的公开值Y发送给设备A(步骤S511)。然后,在公开值Y发送后,设备B利用上述式(3)的运算,计算公用密钥K(步骤S512)。
设备A若从设备B接收了运算需要时间Tb1(步骤S507),则将等待来自设备B的应答的应答等待期限(超时时间)延长设定为从该接收起到运算需要时间Tb1经过的时刻(步骤S510)。然后,设备A若在超时时间之前从设备B接收了公开值Y(步骤S511),则判断为利用DH法产生的公开值的应答。因而,在设备A一侧也能够正确计算公用密钥K(步骤S513),在设备A与设备B的双方成功进行密钥交换。
如上所述,根据本发明第三实施形态有关的公用密钥交换方法,低性能的设备在计算后立刻将公开值向对方的设备发送时,若事前推定仅考虑公开值的计算所必需的时间的运算需要时间,则与上述第一实施形态相同,能够使密钥交换成功。
(第四实施形态)
在上述第一~第三的实施形态中,说明了在从设备A将公开值向设备B发送之后、从设备B向设备A发送运算需要时间Tb的基本顺序。但是,即使是在发送运算需要时间Tb之后再发送公开值X的应用顺序,也能够得到同样的效果。下面说明将上述第一实施形态所示的基本顺序换成该应用顺序的实施形态。
图6为说明本发明第四实施形态有关的公用密钥交换方法用的处理顺序图。在图6中,设备A与设备B的关系,与上述第一实施形态相同。
若开始密钥交换处理,则设备A首先对设备B进行运算需要时间的询问(步骤S601)。若从设备A接受了询问,则设备B推定公开值Y的计算所花的时间Tb1及公用密钥K的计算所花的时间Tb2,求出为了进行密钥交换处理而在设备B一侧所必需的运算需要时间Tb(=Tb1+Tb2)(步骤S602)。设备B将求出的运算需要时间Tb发送给设备A,向设备A预告从接收公开值X之后到该运算需要时间Tb经过之前将公开值Y进行应答(步骤S603)。
设备A若从设备B接收了运算需要时间Tb,则生成秘密值a,并利用上述式(1)的运算,计算公开值X,将计算出的公开值X发送给设备B(步骤S606~S608)。另外,设备B若从设备A接收了公开值X,则生成秘密值b,并利用上述式(2)或式(3)的运算,分别计算公开值Y及公用密钥K,将计算出的公开值Y发送给设备A(步骤S609~S611、S613)。设备A若从设备B接收了运算需要时间Tb(步骤S603),则将等待来自设备B的应答的应答等待期限(超时时间)延长设定为从公开值X发送时起到运算需要时间Tb经过的时刻(步骤S612)。然后,设备A若在超时时间之前从设备B接收了公开值Y(步骤S613),则判断为利用DH法产生的公开值的应答。
另外,在该第四实施形态中,说明的是将上述第一实施形态所示的基本顺序换成应用顺序的情况,但对于上述第二及第三实施形态,也同样能够将基本顺序换为应用顺序。即,可以将步骤S609及S610在步骤S608之前进行,也可以将步骤S611在步骤S613之后进行。另外,在第四实施形态中,说明的是仅将设备B的运算需要时间通知设备A的顺序,但也可以是设备A也推定运算需要时间、而且设备A与设备B互相通知相互的运算需要时间的顺序。
(第五实施形态)
在上述第一~第四实施形态中,说明的是在设备A及设备B的双方已知变量g及变量n的值的情况。但是,也可以考虑变量g及变量n的值在密钥交换处理前进行协商那样的情况。在这种情况下,若是如上述第四实施形态那样,最初产生询问运算需要时间的顺序,则运算需要时间的推定方法将改变。因此,在本第五实施形态中,说明利用变量g及变量n的值是未知的、而且最初产生询问运算需要时间的顺序进行公用密钥交换方法。
图7为说明本发明第五实施形态有关的公用密钥交换方法用的处理顺序图。在图7中,设备A与设备B的关系,除了变量g及变量n为未知以外,与上述第四实施形态相同。
若开始密钥交换处理,则设备A首先对设备B进行运算需要时间的询问(步骤701)。若从设备A接受了询问,则设备B推定公开值Y的计算所花的时间Tb1及公用密钥K的计算所花的时间Tb2,求出为了进行密钥交换处理而在设备B一侧所必需的运算需要时间Tb(=Tb1+Tb2)(步骤S702)。该运算需要时间Tb例如如下所述那样求出。事前在设备B上,试验性地进行多次将变量g及变量n取得的值通过各种组合完成的运算,预先保存其最大值Time_max_all。然后,如下式(7)那样,求出对该最大值加上预先规定的固定值α的值,作为运算需要时间Tb。
Tb=Time_max_all+α ……(7)
设备B将求出的运算需要时间Tb发送给设备A,向设备A预告从接收公开值X之后到该运算需要时间Tb经过之前将公开值Y进行应答(步骤S703)。设备A若从设备B接收了运算需要时间Tb,则生成变量g及变量n后通知设备B(步骤S704、S705)。与此相对应,设备B从设备A取得变量g及变量n之后,返回表示了解的应答(步骤S706、S707)。设备A从设备B接收了对于变量g及变量n表示了解的应答以后的处理(步骤S709~S716)与上述图6的步骤S607~S614相同。
如上所述,根据本发明第五实施形态有关的公用密钥交换方法,即使在运算需要时间的询问处理以后对变量g及变量n的值进行协商那样的情况,通过推定最大运算需要时间,也能够顺利地使密钥交换成功。
另外,在该第五实施形态中,说明的是在上述第四实施形态(图6)所示的应用顺序中对变量g及变量n的值进行协商的情况,但对于第四实施形态的所述的应用顺序,也同样能够适用。另外,也可以将运算需要时间的取得(步骤S701~S703)在变量g及变量n的取得处理(步骤S704~S707)之后进行。另外,从设备A向设备B的变量g及变量n的通知也可以在公开值X生成后,在步骤S710中与公开值X同时通知。
(第六实施形态)
在上述第二实施形态(图4)中,说明的是利用设备A进行的公开值X的计算与利用设备B进行的公开值Y的计算为并行进行的顺序。在该并行顺序的情况下,也要考虑到低性能的设备B在接收公开值X之前、公开值Y的计算尚未结束的情况。例如,如上述第五实施形态中说明的那样,是在密钥交换处理之前对变量g及变量n的值进行协商的情况。因此,在本第六实施形态中,说明利用在变量g及变量n的值是未知的情况下公开值X与公开值Y的计算为并行进行、而且最初产生运算需要时间的询问的顺序完成的公用密钥交换方法。
图8-A及图8-B为说明本发明第六实施形态有关的公用密钥交换方法用的处理顺序图。在图8-A及图8-B中,设备A与设备B的关系,除了变量g及变量n为未知以外,与上述第二实施形态相同。
在图8-A中,若开始密钥交换处理,则设备A首先对设备B进行运算需要时间的询问(步骤S801)。若从设备A接受了询问,则设备B推定公开值Y的计算所花的时间Tb1及公用密钥K的计算所花时间Tb2,求出为了进行密钥交换处理而在设备B一侧所必需的运算需要时间Tb(=Tb1+Tb2)(步骤S802)。该运算需要时间Tb例如如下所述那样求出。事前在设备B上,试验性地进行多次将变量n及变量g取得的值通过各种组合完成的运算,分别预先保存公开值Y的计算有关的最大值Time_maxY_all及公用密钥K的计算有关的最大值Time_maxK_all。然后,如下式(8-1)及(9-1)那样,求出对这些最大值加上预先规定的固定值α的值,分别作为运算需要时间Tb1及Tb2,将它们相加求出运算需要时间Tb。
Tb1=Time_maxY_all+α ……(8-1)
Tb2=Time_maxK_all+α ……(9-1)
设备B将求出的运算需要时间Tb发送给设备A,向设备A预告在运算需要时间经过之前将公开值Y进行应答(步骤S803)。设备A若从设备B接收了运算需要时间Tb,则生成变量g及变量n后通知设备B(步骤S804、S805)。对应于此,设备B从设备A取得变量g及变量n之后,返回表示了解的应答(步骤S806、S807)。然后,设备B生成秘密值b,利用上述式(2)的运算,计算公开值Y(步骤S811、S812)。
设备A若从设备B接收了对于变量g及变量n表示了解的应答,则生成秘密值a,利用上述式(1)的运算,计算公开值X(步骤S808、S809)。然后,设备A将计算出的公开值发送给设备B(步骤S813)。在公开值X接收后,设备B计算出公用密钥K,然后将公开值Y发送给设备A(步骤S814、S816)。
设备A若将公开值X向设备B发送(步骤S813),则将等待来自设备B的应答的应答等待期限(超时时间)延长设定为从公开值X的发送时起运算需要时间Tb经过的时刻(步骤S815)。然后,设备A若在超过时间之前从设备B接收了公开值Y(步骤S816),则判断为利用DH法产生的公开值的应答。因而,在设备A一侧也能够正确计算公用密钥K(步骤S817),在设备A与设备B的双方成功进行密钥交换。
如上所述,根据本发明第六实施形态有关的公用密钥交换方法,即使在利用设备A进行的公开值X的计算与利用设备B进行的公开值Y的计算为并行进行的情况,也能够确实使密钥交换处理成功。
另外,根据该第六实施形态的应用顺序,只要是利用设备A进行的公开值X的计算与利用设备B进行的公开值Y的计算为并行进行的顺序,则都能够适用。因而,也可以将图8的步骤S814在步骤S816之后进行。另外,也可以将运算需要时间的取得处理(步骤S801~S803)在变量g及变量n的取得处理(步骤S804~S807)之后进行。
另外,也可以如图8-B所示,在设备B中的公用密钥K的计算处理(步骤S838)之前进行公开值Y的发送处理(步骤S836),在这种情况下,设备B仅推定公开值Y的计算所花的运算需要时间Tb1,发送给设备A(步骤S822、S823)。然后,设备A在公开值X发送后,将等待来自设备B的应答的应答等待期限(超时时间)延长设定为从该发送起到运算需要时间Tb1经过的时刻(步骤的S835)。根据该处理,设备A能够不产生超时而从设备B接收公开值Y(步骤S836)。
(第七实施形态)
在目前的IKE中,在设备B将公开值Y通知设备A时,连公用密钥K的计算是否应该结束的规定也没有,在设备A一侧设备超时时间来等待设备B的公用密钥K计算结束这样的规定也没有。但是,在如上述第三实施形态(图5)那样在低性能的设备B进行公开值Y的发送后花时间生成公用密钥K那样的情况下,有时会产生下述的问题。例如,在设备A一侧计算出公用密钥K之后,在用公用密钥K将数据加密后发送时,若在设备B还没有结束公用密钥K的计算,则会产生设备B有的情况下将接收的加密数据抛弃那样的问题。另外,在设备A计算出公用密钥K之后将某消息发送给设备B,而等待从设备B来的使用公用密钥K的应答时,若在设备B的公用密钥K的计算迟缓,则会产生在设备A出现应答等待超时那样的问题。因此,在本第七实施形态中,将说明在公开值Y的发送之后直到设备B生成公用密钥K为止设备超时时间的公用密钥交换方法。
图9-A及图9-B为说明本发明第七实施形态有关的公用密钥交换方法用的处理顺序图。在图9-A及图9-B中,设备A与设备B的关系,与上述第一实施形态相同。另外,图9-A及图9-B的步骤S901~S905的处理与上述图3的步骤S301~S305的处理相同。
若从设备A接收了公开值X(步骤S905),则设备B推定公开值Y的计算所花的时间Tb1及公用密钥K的计算所花的时间Tb2,求出为了进行密钥交换处理在设备B一侧所必需的运算需要时间Tb1及Tb2(步骤S906)。该运算需要时间Tb1及Tb2根据下述式(8-2)及式(9-2),通过用已知的变量g及变量n的事前试验性的公开值Y及公用密钥K的计算求出。
Tb1=Time_maxY[g,n]+α ……(8-2)
Tb2=Time_maxK[g,n]+α ……(9-2)
然后,设备B将求出的运算需要时间Tb1及Tb2发送给设备A,向设备A预告在运算需要时间Tb1经过之前将公开值Y进行应答,以及从该应答起运算需要时间Tb2再经过之前公用密钥K的计算结束(步骤S907)。然后,设备B生成秘密值b,利用上述式(2)的运算,计算公开值Y,将计算出的公开值Y发送给设备A(步骤S908、S909、S911)。另外,设备B在公开值Y发送后,计算公用密钥K(步骤S912)。
设备A若从设备B接收了运算需要时间Tb1及Tb2(步骤S907),则将等到来自设备B的应答的应答等待期限(超时时间)延长设定为从该接收起到运算需要时间Tb1经过的时刻(步骤S910)。然后,设备A若在超时时间之前从设备B接收了公开值Y(步骤S91),则判断为利用DH法产生的公开值的应答,并生成自己的公用密钥K(步骤S913)。
图9-A的例子是解决加密数据被抛弃问题的方法。在该方法中,设备A在生成公用密钥K之后,从接收公开值Y的时刻起等待经过运算需要时间Tb2,然后将加密的数据发送给设备B(步骤S914、S915)。利用该处理,能够避免在设备B一侧加密数据被抛弃的情况。
图9-B的例子是解决在设备A一侧应答等待超时问题的方法。在该方法中,设备A在生成公用密钥后将某消息发送之后,将等待来自设备B的应答等待期限(超时时间)延长设定为从该发送起到运算需要时间Tb2经过的时刻(步骤S924、S925)。利用该处理,设备A能够从设备B接收应答消息(步骤S926)。
如上所述,根据本发明第七实施形态有关的公用密钥交换方法,即使在利用设备B进行的公用密钥K的计算是在公开值Y发送后进行的情况下,也能够确实使密钥交换处理成功。
另外,根据该第七实施形态的应用程序,只要是利用低性能的设备B进行的公用密钥K的计算在公开值Y发送后进行的顺序,则都能够使用。因而,也可以将图9-A及图0-B的步骤S906及S907在步骤S901之前进行,除此之外,还可以将步骤S908及S909在步骤S905之前进行。
(第八实施形态)
在上述第一~第七实施形态中,说明的是设备B(应答器)一侧为低性能的情况,而在第八实施形态中,将说明开始密钥交换处理的设备A(始发器)为低性能时的公用密钥交换方法。
图10-A及图10-B为说明本发明第八实施形态有关的公用密钥交换方法用的处理顺序图。在图10-A及图10-B中,设备A假设是比设备B的处理能力要差的低性能的设备。另外,假设从设备A(始发器)开始密钥交换处理,在与设备B(应答器)之间实现密钥公用。
首先,在图10-A中,若开始密钥交换处理,则设备A推定利用上述(1)的运算进行公开值X的计算所花的时间Ta1(还包含秘密值a的生成所花的时间),求出为了进行密钥交换处理而在设备A一侧所必需的运算需要时间Ta(=Ta1)(步骤S1001)。该运算需要时间Ta1例如如下所述那样求出。事前在设备A上试验性地进行多次将变量g及变量n取得的值通过各种组合完成的运算,预先保存其最大值Time-max-all。然后,如下式(10)那样,求出对该最大值加上预先规定的固定值α的值,作为运算需要时间Ta1。
Ta1=Time_max_all+α ……(10)
设备A将求出的运算需要时间Ta1发送给设备B,向设备B预告在该运算需要时间Ta1经过之前将发送公开值X(步骤S1002)。然后,设备S生成变量g及变量n,并通知设备B(步骤S1003、S1004)。与此相对应,设备B从设备A取得变量g及变量n之后,返回表示了解的应答(步骤S1005、S1006)。若从设备B接收了对于变量g及变量n表示了解的应答,则设备A生成秘密值a,并利用上述式(1)的运算,计算公开值X,将计算出的公开值X发送给设备B(步骤S1007、S1008、S1010)。
设备B若将对于变量g及变量n表示了解的应答发送给设备A(步骤S1006),则将等待来自设备A的应答的应答等待期限(超时时间)延长设定为从该发送起到运算需要时间Ta1经过的时刻(步骤S1009)。即,要使设备B等待不能从设备A接收公开值X这样的判断,一直到最大运算需要时间Ta1经过为止。然后,设备B若在超时时间之前从设备A接收了公开值X(步骤S1010),则生成秘密值b,并利用上述式(2)及式(3)的运算,分别计算公开值Y及公用密钥K(步骤S1011~S1013)。然后,设备B将计算出的公开值Y发送给设备A(步骤S1014)。
图10-A的例子是表示对公用密钥K的计算不发生消息发送的情况。在该例子中,设备A若从设备B接收了公开值Y(步骤S1014),叫判断为利用DH法产生的公开值的应答。因而,在设备A一侧也能够正确计算公用密钥K(步骤S1015)。在设备A及设备B的双方成功进行密钥交换。
其次,图10-B的例子是表示对公用密钥K的计算发生消息发送的情况,是解决设备A在公开值Y接收后花时间生成公用密钥K那样的情况下产生的文图的方法。即,是设备B在公开值Y发送后等待来自设备A的公用密钥K计算结束的通知的情况。
在这种情况下,设备A与推定运算需要时间Ta1相同,利用上述式(4)的运算,再推定公用密钥K的计算所花的运算需要时间Ta2(步骤S1021),运算需要时间Ta2也发送给设备B(步骤1022)。设备B在公开值Y发送后,将等待来自设备A的应答等待期限(超时时间)延长设定为从该发送起到运算需要时间Ta2经过的时刻(步骤S1034、S1036)。利用该处理,设备B能够不产生超时,接收来自设备A的公用密钥K计算结束的应答消息(步骤1037)。
如上所述,根据本发明第八实施形态有关的公用密钥交换方法,即使开始密钥交换处理的设备一侧是低性能,由于不产生该设备还正在进行密钥交换处理的运算期间就判断为对方的设备不应答这样的以往的问题,因此能够顺利的使密钥交换成功。
另外,在该第八实施形态中,说明的是与上述第五实施形态(图7)所示的应用顺序相对应而开始密钥交换处理的设备一侧为低性能的情况的顺序。但是,该顺序若是低性能的设备一侧在公开值及公用密钥K计算之前对方的设备能够取得运算需要时间的顺序(第六实施形态等)则也能够同样适用。
另外,在第八实施形态中,说明的是开始密钥交换处理的设备A(始发器)为低性能时的公用密钥交换方法,但也可以认为设备A(始发器)及对方的设备B的双方都为低性能,在这种情况下,可以将上述的各实施形态适当组合来实现。
(第九实施形态)
在上述第一~第八实施形态中,说明的是低性能的设备向双方的设备通知所谓运算需要时间的时间信息、而对方的设备根据通知使超时时间延长的公用密钥交换方法。下面,在本第九实施形态中,将说明不进行运算需要时间的通知的公用密钥交换方法。
图11为说明本发明第九实施形态有关的公用密钥交换方法的处理顺序图。在图11中,设备A与设备B的关系与上述第一实施形态相同。另外,图11的步骤S1101~S1105的处理与上述图3的步骤S301~S305处理相同。
若从设备A接收了公开值X(步骤S1105),则设备B将后面要发送公开值Y的通知发送给设备A进行应答(步骤S1106)。在该通知之后,设备B开始生成秘密值,并利用上述式(2)及式(3)的运算,依次进行公开值Y的计算及公用密钥K的计算(步骤S1107~S1109)。另外,与该计算并行,设备B每次从设备A接受后述的状况确认/重发请求,就进行上述通知发送,直到公开值Y的计算及公用密钥K的计算结束为止(步骤S1111、S1113、S1115)。
设备A每次从设备B接收后面要发送公开值Y的通知(步骤S1106、S1111、S1113、S1115),就在规定的重发间隔T[秒]进行状况确认/重发请求(步骤S1110、S1112、S1114),直到从设备B接收了公开值Y为止(步骤S1116)。具体来说,设备A设定重发间隔T[秒],为小于规定的超时时间,若从设备B接收了后面要发送公开值Y的通知,则将到现在为止的时间测量复位,重新开始进行时间测量。若这样设定,则不会发生超时。另外,也可以若从设备B接收一次后面将发送公开值Y的通知,则设备A不设定重发间隔T,而切换为无线持续等待接收公开值Y的处理。
然后,设备A若从设备B接收了公开值Y(步骤S1116),则判断为利用DH法产生的公开值的应答。因而,在设备A一侧也能够正确计算公用密钥K(步骤S1117,在设备A及设备B的双方都成功进行密钥交换。
如上所述,根据本发明第九实施形态有关的公用密钥交换方法,能够不在低性能的设备中事前推定密钥交换处理所必需的运算需要时间,而使密钥交换成功。
另外,在该第九实施形态中,说明的是对于上述第一实施形态的顺序采用状况确认/重发请求及后面将发送公开值Y的通知的情况,但即使用于第二~第八实施形态的顺序,也能够包括同样的效果。这里,在像第三实施形态(图5)等那样在公开值Y计算后(步骤S509)立即发送公开值Y(步骤S511)的情况下,接收了公开值Y的设备A,在这之后对设备B进行公用密钥K的计算是否结束的状况确认,与此相对应,设备B只要向设备A回答公用密钥K是在运算中即可。
另外,在图11的步骤S1105及S1106中,有时也会产生收发失败(包丢失)。因此,也可以使设备A以不等待后面将发送公开值Y的通知,而在公开值X发送之后(步骤S1105)立即开始重复间隔T的时间测量。
另外,在上述第一~第九实施形态中,说明的是DH法的密钥交换使用的运算是利用离散对数问题的取幂运算/模运算的情况,但本发明的使用范围不限定于该运算。例如,作为DH法的变形,也可以采用基于椭圆曲线的数学集合的运算方法。另外,作为与DH法有关的运算需要时间的推定方法,说明的是预先保存事前计算结果的方法,但不限定于该方法。例如,也可以测量该时刻的CPU使用率,在CPU使用率因执行其它的应用程序而较高时,则推定运算需要时间较长。再有,在多个设备之间的密钥交换有可能在同一时期集中进行,则有可能多个DH法的处理排队积压起来。为此,也可以设置DH法的处理等待排队等,根据处理顺序,推定较长的运算需要时间。
另外,对于上述第一~第九实施形态中说明的处理顺序,限定于DH法的运算及公开值的交换的部分说明了本发明的采用情况,但也可以适用于利用其它DH法的密钥交换协议部分。例如,如图19中说明的那样,在IKE的顺序中有2处(Phase1及2)利用了DH法的密钥交换,但也可以使各实施形态中说明的消息与IKE的其它消息联系起来进行。具体来说,图6的步骤S601及S603中进行的运算需要时间Tb的询问及通知,也可以在IKE的Phaes1的各种参数协商(图19的步骤S1901)中进行。
另外,在上述第一~第九实施形态中,说明的是高性能的设备从低性能的设备一侧接收运算需要时间的通知或后面将发送应答的通知的情况。但是,也可以高性能的设备不从低性能的设备一侧接收这样的通知,而进行等待来自低性能设备的应答的应答等待期限(超时时间)的控制。下面说明该方法。
在该方法中,高性能的设备在向低性能的设备发送规定的消息(公开值发送等)之后,测量到从低性能的设备接收应答为止的时间。作为具体例子,是在高性能的设备向低性能的设备发送规定的消息时,将消息法啊送时刻T1、确定低性能设备的信息(IP地址等)。以及确定处理中的密钥交换种类的信息(识别ID等)作为密钥交换信息进行记录、然后,高性能的设备取得从低性能的设备接收应答消息时的消息接收时刻T2。高性能的设备抽取应答消息中包含的密钥交换信息,用预先记录的对应的密钥交换信息的时刻T1,计算时间(T1-T2)并进行记录。该时间(T1-T2)的计算也可以在应答消息的接收期限满了之后(超时后密钥交换失败的情况下)进行。然后,高性能的设备在以后进行同类的密钥交换处理时,根据该计算出的时间(T1-T2),来设定超时时间。
另外,在该方法中,也有的情况下,在到计算出时间(T1-T2)为止的期间,因预先规定的超时时间的缺省值而交换处理失败,但能够调整超时时间,使得从下一次起不失败。另外,在想避免失败时,只要将超时时间的缺省值设定得足够即可。另外,也可以继续使用最初计算出的时间(T1-T2),也可以每进行一次密钥交换处理,就进行上述测量后加以更新。另外,也可以不一定必须使用计算出的时间(T1-T2),但在比缺省值哟长的情况下调整超时时间。再有,在计算出的时间(T1-T2)比缺省值要短的情况下,也可以缩短超时时间。
若是该方法由于与现有的密钥交换协议有互换性,因此仅仅使用1方向通信设备安装有本发明(即使另一方的通信设备使用现有的设备),就能够防止因超时而产生密钥交换失败的问题。
(第十实施形态)
下面说明第十及第十一实施形态时解决上述第一问题同时也解决第二问题用的方法。在本发明中,为了解决第二问题,对更新密钥处理(后述)的开始时刻进行控制,能够适用于密钥交换处理开始以前进行运算需要时间交换的顺序(第四实施形态等)。将其中代表性的2个控制形态利用第十及第十一实施形态进行说明。
在实施形态说明之前,参照图十二说明更新密钥的简要情况。
如背景技术中所述,若连续长时间使用相同的公用密钥,则其间公用密钥被第三者戒毒的事情不能说完全没有。因此,为了解决这问题,对生成的公用密钥设定寿命。然后,在现在使用中的公用密钥的寿命结束之前,通过规定的更新密钥处理,生成下1个新的公用密钥,在使用中的公用密钥的寿命结束之前,进行切换为该新的公用密钥。在本第十实施形态中,是计算更新密钥处理的开始时刻(t-start),使得该更新密钥处理的结束时刻(t-end)处于现在使用中的公用密钥的寿命结束时刻(end)之前,这样开始更新密钥处理的方法。另外,为了实现本发明,密钥寿命必须设定为大于从更新密钥处理开始到结束为止所必需的时间(根据处理程序,是根据上述运算需要时间Ta1、Ta2、Tb1及Tb2的某1个量或其它组合来决定)。该密钥寿命的设定,一般在图19的各种参数的协商处理(步骤S1901)中进行。
图13为说明本发明第十实施形态有关的公用密钥交换方法用的处理顺序图。在图13中,设备B假设是比设备A的处理能力要差的低性能设备。另外,假设从设备A(始发器)开始更新密钥处理,在与设备B(应答器)之间实现新密钥的公用。再有,假设设备A及设备B在进行功能信密钥处理之前,预先直到更新密钥处理的运算所用的变量g及变量n的值(步骤S1306、S1307)。
在开始更新密钥处理时,设备A首先对设备B进行运算需要时间的询问(步骤S1301)。与此同时,设备A推定公开值X的计算所花的时间Ta1及公用密钥K的计算所花的时间Ta2,求出为了进行更新密钥处理而在设备A一侧所必需的运算需要时间Ta(Ta1及Ta2)(步骤S1302)。该运算需要时间Ta1及Ta2例如如下所述那样求出。事前在设备A上,试验性地进行多次将变领g及变量n取得的值通过各种组合完成的运算,分别预先保存公开值X的计算有关的最大值Time-max-all及公用密钥K的计算有关的最大值Time-max-all。然后,如下式(11)及(12)那样,求出对这些最大值加上预先规定的固定值α的值,分别作为运算需要时间Ta1及Ta2。
Ta1=Time_max X_all+α ……(11)
Ta2=Time_max K_all+α ……(12)
另外,从设备A接收了询问的设备B,推定公开值Y的计算所花的时间Tb1及公用密钥K的计算所花的时间Tb2,求出为了进行更新密钥处理而在设备B一侧所必需的运算需要时间Tb(Tb1及Tb2)(步骤S1303)。该运算需要时间Tb1及Tb2例如利用上述式(8-1)及式(9-1)求出。然后,设备B将求出的运算需要时间Tb1及Tb2发送给设备A(步骤S1304)。
设备A若从设备B接收了运算需要时间Tb1及Tb2(步骤S1304),则根据运算需要时间Tb1及Tb2和自己的运算需要时间Ta1及Ta2,计算满足下式(13)的任意更新密钥处理开始时刻t_start(步骤S1305)。
t_start_(Ta1+Ta2+Tb1+Tb2)-α ……(13)
式中,end为现在使用中的公用密钥的寿命结束时刻,一般设备A与设备B设定为相同时刻。但是,极少的情况下该时刻不相同,在这种情况下,只要对计算值加上因设备A的密钥寿命结束时刻t-end A与设备B的密钥寿命结束时刻t_end B之差的绝对值(1t_end B-t_endA1)而产生的余量即可。一般情况下,由于将秘密值、公开值及公用密钥的运算所需要的时间的数倍至10倍以上的时间设定为密钥寿命的情况很多,因此基本上不产生问题。
因此,设备A必须估计步骤S1301~S1305的处理所必需的时间(t-AB),然后尽早开始运算需要时间的询问。为了实现该要求,只要在刚生成现在的公用密钥之后,立即执行步骤S1301~S1305,预先计算下一次更新密钥处理的开始时刻t_start即可。然后,若时刻(t_start-t-AB)到来,则也可以再次执行步骤S1301~S1305,询问这时的最新运算需要时间,重新计算开始时刻t_start。
设备A若计算的开始时刻t-start到来,则开始更新密钥处理。首先,设备A生成秘密之a,利用上述式(1)的运算,计算公开值,并将将计算出的公开值X发送给设备B(步骤S1308、S1310)。另外,设备B若从设备A接收了公开值X,则生成秘密值b,利用上述式(2)及式(3)的运算,计算公开值Y及计算新的公用密钥K(步骤S1311~S1313)。然后设备B将计算出的公开值Y发送给设备A(步骤S1315)。
设备A根据从设备B接收的运算需要时间Tb,将等待来自设备B的应答的应答等待期限(超时时间)延长设定为从公开值X的发送起到运算需要时间Tb(Tb1+Tb2)经过的时刻(步骤S1314)。然后,设备A若在超时时间之前从设备B接收了公开值Y(步骤S1315),则判断为利用DH法产生的公开值的应答。因而,即使在设备A一侧,也能够正确计算新的公用密钥K(步骤S1316),在现在使用中的公用密钥的寿命结束之前(t_end),在设备A及设备B的双方,成功进行新的密钥交换即更新密钥处理。在这之后,则使用该新的公用密钥K。
如上述所述,根据本发明第十一的实施形态有关的公用密钥交换方法,事先推定各设备中进行密钥交换处理所必需的运算时间,而一方的设备根据该推定值,计算更新密钥处理的开始时刻。通过这样,在现在使用中的公用密钥的寿命结束之前,能够使更新密钥处理成功。
另外,在根据运算需要时间Ta1进行的公开值X的运算(步骤S1308、S1309)与根据运算需要时间Tb1进行的公开值Y的运算(步骤S1311、S1312)并行进行时,可以用下式(14)代替上述式(13)。另外,MAX(Ta1、Tb1)表示Ta1与Tb1中较大的值。
t_start<end-MAX(Ta1、Tb1)-(Ta2+Tb2)-α ……(14)
另外,在根据运算需要时间Ta2进行的公用密钥K的运算(步骤S1316)与根据运算需要时间Tb2进行的公用密钥K的运算(步骤S1313)并进行时,可以用下式(15)代替上述式(13)。另外,MAX(Ta2、Tb2)表示Ta2与Tb2中较大的值。
t_start<end-(Ta1+Tb1)-MAX(Ta2、Tb2)-α ……(15)
另外,在上述公开值的运算与公用密钥的运算的双方并行进行时,可以用下式(16)。
t_start<end-(Ta1+Tb1)-MAX(Ta2、Tb2)-α ……(16)
(第十一实施形态)
图14为说明本发明第十一实施形态有关的公用密钥交换方法用的处理顺序图。在图14中,设备B假设是比设备A的处理能力要差的低性能设备。在该第十一实施形态中,各设备仅根据自己的运算需要时间,推定更新密钥处理的开始时刻t_start。因而,低性能的设备结果成为更新密钥处理的始发器。
设备A推定公开值X的计算所花的时间Ta1及公用密钥K的计算所花的时间Ta2,求出为了进行更新密钥处理而在设备A一侧所必需的运算需要时间Ta(Ta1及Ta2)(步骤S1401)。该运算需要时间T1及Ta2例如利用上述式(11)及式(12)求出。另外,设备B推定公开值Y的计算所花的时间Tb1及公用密钥K的计算所花的时间Tb2,求出为了进行更新密钥处理而在设备B一侧所必需的运算需要时间Tb(Tb1及Tb2)(步骤S1402)。该运算需要时间Tb1及Tb2例如利用上述式(8-1)及式(9-1)求出。
设备A根据推定的运算需要时间Ta1及Ta2,计算满足下式(17)的任意的更新密钥处理开始时刻t_start A(步骤S1403)。另外,设备B根据推定的运算需要时间Tb1及Tb2,计算满足下式(18)的任意的更新密钥处理开始时刻t_startB(步骤S1404)。在该式(17)及式(18)中,假定对应的设备是同一性能的情况,在各式的右边分别将运算需要时间乘以2倍。另外,在如上所述的密钥寿命结束时刻对于设备A及设备B是不相同时,只要将式(17)及式(18)的“end”分别作为“end_A”及“end_B”进行运算即可。
t_start A<end-(Ta1+Ta2)×2-α ……(17)
t_start B<end-(Tb1+Tb2)×2-α ……(18)
在该例子中,由于设备B比设备A的性能低,因此通常与上述式(17)的右边相比,式(18)的右边成为更早的时间。因而,在该情况下,若开始时刻t_startB到来,则利用设备B开始更新密钥处理。设备B生成变量g及变量n后通知设备A,宣布开始更新密钥处理(步骤S1405、S1406)。在该宣布之后,设备A就不受计算的自己的更新密钥处理开始时刻t_start A的约束,进行各处理步骤。设备A从设备B取得了变量g及变量n之后,返回表示了解的应答(步骤S1407、S1408)。若从设备A接收了对于变量g及变量n表示了解的应答,则设备B生成秘密值b,并利用上述式(2)的运算,计算公开值Y,将计算出的公开值Y发送给设备A(步骤S1407、S1408、S1410)。另外,在不使用新的变量g及变量n(是也能够前面的数值)时,也可以仅进行更新密钥处理开始的通知及表示其了解的应答。
设备A若将对于变量g及变量n表示了解的应答发送给设备B(步骤S1408),则将等待来自设备B的应答的应答等待期限(超时时间)延长设定为从该发送起到运算需要时间Tb1经过的时刻(步骤S1411)。然后,设备A若在超时时间之前从设备B接收了公开值Y(步骤S1412),则生成秘密值α,并利用上述式(1)及式(4)的运算,计算公开值X及公用密钥K,将计算出的公开值X发送给设备B(步骤S1411~S1414)。
设备B若从设备A接收了公开值X,则判断为利用DH法产生的公开值的应答。因而,在设备B一侧也能够正确计算公用密钥K(步骤S1415),在现在使用中的公用密钥的寿命结束之前,在设备A及设备B的双方,成功进行新的密钥交换即更新密钥处理。在这之后,则使用该新的公用密钥K。
如上所述,根据本发明第十一实施形态有关的公用密钥交换方法,事先推定各设备中进行密钥交换处理所必需的运算需要时间,各设备根据该推定值,计算更新密钥处理的开始时刻,开始时刻早的设备开始进行处理。通过这样,能够不知道互相对方的设备的运算需要时间,在现在使用中的公用密钥的寿命结束之前,使更新密钥处理成功。
另外,运算需要时间的推定也可以将设备A及设备B中现在使用中的或过去使用的在密钥交换处理时进行的处理时间、或CPU负荷值,分别存入规定的存储单元(图2的数据库单元203),再根据该数据进行。另外,运算需要时间也可以根据图14的步骤S1401及S1402的推定处理时设备A及设备B的各CPU负荷值及上述处理时间或CPU负荷值来进行推定。
此外,到此为止虽然对以时间单位规定密钥的寿命为前提进行了说明,但也可以以时间以外的单位规定密钥的寿命。例如,使用密钥设置加密后的包的位数(累积数)的上限,用位数单位规定密钥的寿命的系统。这种场合,由位数推定寿命结束时刻,能利用前述处理决定更新密钥的开始时刻。具体地说,由过去的履历求出每单位时间的加密通信包的发送接收位数,求出仅与密钥的寿命的位数的发送接收所花的时间,推定为寿命结束时刻。
(第十二实施形态)
下面说明的第十二实施形态是解决上述第一及第二问题同时也解决第三问题用的方法。在本发明中,为了解决第三问题,仅限于更新密钥处理的情况,使花时间的运算处理进行负荷分散。本发明与上述第十及第十一实施形态相同,能够适用于在密钥交换处理开始以前进行运算需要时间的交换的顺序。在本第十二实施形态中,将说明代表性的控制形态。
首先,说明第十二实施形态中进行的控制的概念。如前所述,在上述想要解决的问题中,若在网络家电那样低性能的设备进行DH法等高负荷的运算处理,则要对其它应用程序的执行的产生影响。但是。这说的是使DH法的运算处理连续进行的情况,而实际的密钥交换处理没有必要始终连续进行而以最短时间完成。具体来说,根据进行包通信的终端的请求等新交换密钥时,由于密钥交换的延迟时间作为终端的应用程序的延迟,用户是感觉到的,因此必须尽可能快地使密钥交换结束。另外,在一旦将密钥交换后定期更新密钥的更新密钥处理时,由于是一面使用现在的密钥进行通信,一面进行新密钥的交换,因此若在寿命结束之前结束交换,则从密钥交换处理开始到结束的时间也可以较长。据此,在第十二实施形态中,判断是否应该使密钥交换处理在最短时间内结束,在不需要以最短时间进行处理的更新密钥处理的情况下,将高负荷的处理分成小单位进行,在时间上进行负荷分散。
图15为说明本发明第十二实施形态有关的公用密钥交换方法用的处理顺序图。在图15中,设备B假设是比设备A的处理能力要差的低性能设备。另外,假设从设备A(始发器)开始密钥交换处理,在与设备B(应答器)之间实现密钥公用。再有,假设设备A及设备B在进行密钥交换处理之前,预先知道密钥交换处理的运算所用的变量g及变量n的值(步骤S1506、S1507)。
首先,在低性能的设备B中,事前将与DH法的公开值Y及公用密钥K的运算有关的全部处理预先分为多个均等的处理单位(下面称为小处理单位)。再假设记录有对规定单位时间内执行1个小处理单位时间的CPU使用率(Ucpu)进行实测的结果。另外,假设设备B应该进行的全部小处理单位的数为Total。再假设已知在设备A与设备B之间现在公用的密钥寿命在时刻end结束。
在图15中,设备A将密钥更新时的运算需要时间询问设备B(步骤S1501)。该询问的时刻最好是距离时刻end包括足够余量的时刻进行,也可以是新开始密钥交换处理的时刻,也可以是密钥交换结束的稳定状态中,设备B若从设备A接受了运算需要时间的询问,则测量该时刻的其它应用程序的平均CPU使用率(Acpu)。然后,设备B在维持其它应用程序的处理状态不变的情况下,推定对于DH法的运算能够使用的剩余的CPU使用率(Dcpu)、以及单位时间内能够执行的小处理单位的数num,利用下式(19)~式(21)的运算,求出运算需要时间Tbb(步骤S1503)。
Dcpu=100-Acpu ……(19)
Num=Dcpu/Ucpu ……(20)
Tbb=Tota1×Ucpu/Dcpu+α ……(21)
设备B将求出的运算需要时间Tbb发送给设备A(步骤S1504)。
另外,在设备A一侧,也根据上述式(19)~式(21)的运算,预先求出自己的与DH法有关的运算需要时间Taa(步骤S1502)。然后,设备A若从设备B接收了运算需要时间Tbb,则根据运算需要时间Tbb及运算需要时间Taa,计算满足下式(22)的密钥交换处理的开始时刻t_start(步骤S1505)。
t_start<end-(Taa+Tbb) ……(22)
该计算一结束,则设备A处于待机状态,直到开始时刻t_start到来为止,在到来的时刻,生成秘密值a,并利用上述式(1)的运算,计算公开值X,将计算出的公开值X发送给设备B(步骤S1508~S1510)。
设备B若从设备A接收了公开值X,则判断根据该公开值X已经存在的密钥是否要更新,或者是否要求新生成密钥(步骤S1511)。具体来说,设备B存储密钥信息,并检索数据库(与图2中的数据库部分203相对应),在对应的密钥存在时,判断为“更新”,在不存在时,判断为“新生成”。该处理是利用设备B一侧的判断单元进行(参照图2-B)。设备B根据判断结果,改变以后的DH法的运算进行方法。即,在判断为密钥的“新生成”时,作为设备B以最短的时间进行,而在判断为“密钥各个新”时,则花费通知设备A的运算需要时间Tbb的时间慢慢处理。在图15的处理顺序中,所示的是判断为请求“密钥更新”的情况,设备B在每个单位时间内,执行Dcpu/Ucpu个小处理单位,花费运算需要时间Tbb的时间,计算公开值Y,发送给设备A(步骤S1512~1514)。
另外,设备A将等待来自设备B的应答的应答等待期间(超时时间)延长设定为从公开值X的发送起到运算需要时间Tbb经过的时刻(步骤S1515)。然后,设备A若在超时时间之前从设备B接收了公开值Y(步骤S1516),则利用上述式(4)的运算,计算新的公用密钥K(步骤S1517)。
如上所述,根据本发明第十二实施形态,判断是否应该使密钥交换处理在最短时间内结束,限定于不需要以最短时间结束的密钥更新那样的处理,将与密钥交换处理有关的高负荷运算在时间上进行负荷分散。通过这样,即使是低性能的设备,密钥交换处理也不连续长时间占用CPU,在同一CPU上工作的其它应用程序也能够正常工作。再有,在将高负荷的运算在时间上进行负荷分散时,由于考虑到密钥寿命,即使密钥交换的处理延迟时间比通常要长,利用现在正在进行的加密/认证处理等进行的通信也能够顺利地继续下去。另外,到作为向对方的设备的应答而发送公开值为止的延迟时间虽然延长,但由于像密钥更新那样,密钥交换的处理延迟的长短对于用户的包收发不产生影响,因此没有什么特别的问题。
另外,作为一例,是在设备B中,DH法的运算所必需的CPU的处理量为Im=200MI(MI=兆指令),在作为多个均等的处理单位即小处理单位划分为2MI时,Total值为100(处理单位)。在设备B的CPU的处理单位为100MIPS(MIPS=MI/秒)时,在单位时间内执行小处理单位的2MI时的CPU使用率Ucpu为2%。在仅将50MIPS的设备B的CPU处理能力用于其它应用程序时,剩余的CPU使用率Dcpu为50%。因而,单位时间内能够执行的DH法的处理单位数Dcpu/Ucpu为25(处理单位/秒)。因此,Total×Ucpu/Dcpu为100/25=4秒。若估计有20%的波动等余量,则延迟时间只要为4.8秒即可。
另外,下面说明高效进行处理的负荷分散的方法。
在该方法中,若密钥交换结束,则设备A及设备B尽可能快地进入下一次的密钥更新处理。首先,设备B进行CPU使用量Im的推定(步骤S1503)。CPU使用量Im例如可以用设备B实施的密钥生成处理的执行指令数(单位:MI)来表示。也可以存储前一次的CPU使用量Im,而使用该值。设备A从现在时刻到密钥寿命结束时刻(end)为止的剩余时间减去运算需要时间Taa,求得相减的时间TWb(步骤S1505)。将它作为对设备B的分配时间TWb,与公开值X一起通知设备B(步骤S1510)。设备B将每单位时间的CPU使用率(Im/TWb+β)分配给CPU(步骤S1511),进行秘密值b的生成、公开值Y的运算及公用密钥K的运算(步骤S1512~S1514)。β为处理的变动及前后进行必需的处理用的余量部分。一般,若增大时间TWb,则能够使每单位时间的CPU使用率(Im/TWb+β)为大大小于100%的值。如果那样的话,则产生将剩余的CPU使用率的部分分配给密钥交换处理以外的应用程序的余量。将设备B用的分配时间TWb+α设定作为超时等待时间,以代替运算需要时间Tbb。在这种情况下,就不需要步骤S1501。
若这样,则在设备B中,由于始终能够降低密钥交换处理中划分的每单位时间的CPU处理量,因此更多地确保围绕其它应用程序的CPU处理量。另外,也可以将上述每单位时间的CPU使用率(Im/TWb+β)作为分配的最小量,在其它应用程序较少产生、CPU处理能力有余量的时间段,分配更大的CPU使用率,使得更快地进行密钥交换处理。
另外,图15的顺序即使成为在设备A及设备B中并行进行公开值的运算及公用密钥的运算的顺序,也与上述相同,能够高效进行处理的负荷分散。在这种情况下,设备B进行CPU使用量Im的推定,计算从现在时刻到密钥的寿命结束时刻为止的剩余时间Tyb,将每单位时间的CPU使用率(Im/TYb+β)分配给CPU。然后,设备B进行秘密值b的生成、公开值Y的运算及公用密钥K的运算。一般,若增大剩余时间TYb,则能够使每单位时间的CPU使用率(Im/TYb+β)为大大小于100%的值。如果那样的话,则产生将剩余的CPU使用率的部分分配给密钥交换处理以外的应用程序的余量。另外,设备A进行自己的CPU使用量的推定。前一次的CPU使用量在设备A中也是Im。设备A计算从现在时刻到密钥的寿命结束时刻为止的剩余时间Tya,将每单位时间的CPU使用率(Im/Tya+β)分配给CPU。然后,设备A进行秘密值a的生成、公开值X的运算及公用密钥K的运算。另外,在设备A中的CPU使用量与设备B不相同时,只要使用设备A中的CPU使用量即可。
另外,由于设备A与设备B的运算进行速度基本上相同,因此公开值X的通知与公开值Y的通知基本上在相同时刻进行。因此,即使设备B的CPU处理能力低,但设备B的公用密钥K的运算结束也赶得上密钥寿命结束时刻。
(其它的应用实施形态)
上述第一~第十二实施形态,说明的是在收发进行加密/认证处理的数据的2个通信设备之间交换公用密钥时的公用密钥交换方法。特别是说明DH法的方法及IKE的方法,但若是能够根据从对方的设备接收的公开值及自己生成的秘密值来计算公用密钥,则对于DH法及IKE以外的公用密钥交换方法也能够适用。
例如,是图16所示那样的公用密钥将会话公用密钥(或交换会话公用密钥用的信息)进行加密并发布的情况。在这种情况下,若设备B(用户一侧)是低性能,则在步骤S1607(阴影部分)进行的处理时间变长,在设备A(密钥发行台一侧)的应答接收有可能超时。因而,在这种情况下,例如只要设备B在进行步骤S1603之前将公开密钥加密处理所花的运算需要时间通知设备A、或者在步骤S1603之后将利用公开密钥进行加密的数据发送延迟的情况通知即可。
另外,是图17所示那样的经由密钥管理中心向设备A及设备B发布密钥的情况。在这种情况下,在图17的步骤S1702~S1705、S1713、S1715、S1716及S1718(阴影部分)的处理中,处理时间变长,在对方的设备中的应答接收有将执行相应的步骤之前将该处理所花的运算需要时间或处理延迟的情况进行通知即可。
再有,在上述各实施形态中,是将作为加上高负荷的处理的密钥交换处理作为一侧,说明本发明的超时时间的延迟控制,但也可以适用于利用与密钥交换处理同时的数字签名进行的认证或利用公开密钥的认证等。在应用于这些情况下,也可以根据预先求出的运算需要时间,延长在认证处理中运算所花的时间而响应延迟的处理超时时间。
比较典型的情况是,在上述各实施形态中说明的公用密钥交换方法,是通过利用CPU解释并执行存储在存储装置(ROM、RAM、硬盘等)中的能够执行上述处理顺序的规定的程序数据来实现的。在这种情况下,程序数据可以通过记录介质装入存储装置内,也可以直接从记录介质上执行。另外,该记录介质指的是ROM、RAM、软盘、CD-ROM、DVD、存储器卡、硬盘等记录介质。另外,记录介质是还包含电话线及传输路径等通信介质的概念。
本发明的公用密钥交换方法能够用于通过网络收发隐秘性高的数据的通信设备直接,特别适合用于交换及公用加密/认证用的秘密密钥的情况。
方法1.如本发明第2~5方面所述的公用密钥交换方法,
所述另一方通信设备还包括
推定所述规定运算所花的运算需要时间的推定步骤、
以及将所述推定的运算需要时间向所述一方的通信设备发送的时间发送步骤,
所述一方的通信设备还包括从所述另一方通信设备接收所述运算需要时间的接收步骤。
方法2.如方法1.所述的公用密钥交换方法,
所述一方的通信设备还包括向所述另一方通信设备进行所述运算需要时间的询问的步骤,
所述另一方通信设备根据来自所述一方的通信设备的询问,执行所述推定步骤及所述时间发送步骤。
方法3.如方法1.所述的公用密钥交换方法,
所述另一方通信设备事前保存推定的所述运算需要时间。
方法4.如方法3.所述的公用密钥交换方法,
所述事前保存的所述运算需要时间是过去的所述规定运算所花的最大时间。
方法5.如本发明第2~5方面所述的公用密钥交换方法,
所述另一方通信设备还包括在下一次应答时刻之前将应答迟缓的内容的通知至少发送一次给所述一方的通信设备的步骤,
所述一方的通信设备还包括从所述另一方通信设备接收所述通知的步骤,并在所述设定步骤根据所述通知,来设定所述应答等待的期限。
方法6.如本发明第2~5方面所述的公用密钥交换方法,
所述一方的通信设备测量在发送消息后到接收所述另一方通信设备中进行所述规定运算后的应答为止的时间,以取得所述规定运算所花的时间。
装置1.如本发明第19方面所述的通信设备,
所述取得单元包含
计算出自己的公开值后发送给对方的通信设备的公开值计算单元、
从对方的通信设备接收对方的公开值后根据该对方的公开值来计算公用密钥的公用密钥计算单元,
所述设定单元根据在对方的通信设备中计算出所述公开值之前所花的时间或计算出所述公用密钥之前所花的时间的至少某1个时间,来设定所述应答等待的期限。
装置2.如本发明第19方面所述的通信设备,
所述取得单元包含计算出公用密钥的公用密钥计算单元,
所述信息发送单元对所述公用密钥计算单元计算的公用密钥或生成该公用密钥用的信息进行规定的加密,向对方的通信设备发送,
所述设定单元根据在对方的通信设备中将所述加密的公用密钥进行解密所花的时间、或将生成所述加密的公用密钥用的信息记你想那个解密及公用密钥生成所花的时间,来设定所述应答等待的期限。
装置3.如本发明第19方面所述的通信设备,
在发送任意的消息后,从对方的通信设备接收加密的公用密钥或生成公用密钥用的信息时,所述设定单元根据在对方的通信设备中将公用密钥或生成公用密钥用的信息进行加密所花的时间,来设定所述应答等待的期限。
装置4.如本发明第19方面所述的通信设备,
在将认证用的带数字签名的数据向对方的通信设备发送时,所述设定单元根据在对方的通信设备中按照带数字签名的数据进行本人性认证处理所花的时间,来设定所述应答等待的期限。
装置5.如本发明第19方面所述的通信设备,
在将认证用的利用公开密钥密码的数据向对方的通信设备发送时,所述设定单元根据在对方的通信设备中按照利用公开密钥密码的数据进行本人性认证处理所花的时间,来设定所述应答等待的期限。
装置6.如本发明第19方面所述的通信设备,
所述设定单元根据推定从对方的通信设备接收的所述规定运算所花的时间的运算需要时间,取得所述规定运算所花的时间。
装置7.如本发明第19方面所述的通信设备,
向对方的通信设备进行到所述下一个应答时刻为止规定的运算需要时间的询问的询问发送单元。
装置8.如本发明第27或28方面所述的通信设备,
所述时间发送单元根据来自对方的通信设备的询问,发送所述运算需要时间。
装置9.如本发明第27或28方面所述的通信设备,
事前保存推定的所述运算需要时间。
装置10.如装置9所述的通信设备,
所述事前保存的所述运算需要时间是过去的所述规定运算所花的最大时间。
装置11.如本发明第19方面所述的通信设备,
所述设定单元测量在发送消息后到接收对方的通信设备中进行所述规定运算后的应答之前的时间,取得所述规定运算所花的时间。
装置12.如本发明第20方面所述的通信设备,
在对方的通信设备中在下1个应答时刻之前进行所述公开值及所述公用密钥的计算时,
所述设定单元根据对方的通信设备在计算出所述公开值及所述公用密钥之前所花的合计时间,来设定与所述公开值的发送或所述公用密钥计算结束有关的应答等待的期限。
装置13.如本发明第20方面所述的通信设备,
在对方的通信设备中在下1个应答时刻之前进行所述公开值的计算时,
所述设定单元根据对方的通信设备在计算出所述公开值之前所花的合计时间,来设定与所述公开值的发送或所述公用密钥计算结束有关的应答等待的期限。
装置14.如本发明第20方面所述的通信设备,
在对方的通信设备中在下1个应答时刻之前进行所述公用密钥的计算时,
所述设定单元根据对方的通信设备在计算出所述公用密钥之前所花的合计时间,来设定与所述公开值的发送或所述公用密钥计算结束有关的应答等待的期限。
装置15.如本发明第20方面所述的通信设备,
还包括在所述公用密钥计算结束后将结束通知发送给对方的通信设备的发送单元、
以及在从对方的通信设备接收所述结束通知之前不进行密钥交换处理失败的判断的结束接收单元。
方法A-1.如本发明所述的公用密钥交换方法,是为了收发进行了加密/篡改认证处理的数据而在2个通信设备之间进行的交换公用密钥的公用密钥交换方法,
各通信设备包括
推定为了计算出公用密钥而进行的规定运算所花的运算需要时间的推定步骤、以及
根据运算需要时间计算出与对方通信设备之间应该结束公用密钥交换的时刻之前使公用密钥交换处理结束用的处理开始时刻的计算步骤,
任何一方的通信设备还包括在处理开始时刻开始进行密钥交换处理的开始步骤。
方法A-2.如方法A-1.所述的公用密钥交换方法,
所述另一方通信设备还包括
将所述推定步骤推定的运算需要时间向所述一方的通信设备发送的时间发送步骤,
所述一方的通信设备还包括从所述另一方通信设备接收所述运算需要时间的接收步骤,
在所述推定步骤中根据自己的运算需要时间及另一方通信设备的运算需要时间,计算出处理开始时刻。
方法A-3.如方法A-2.所述的公用密钥交换方法,
所述一方通信设备还包括对所述另一方通信设备进行询问运算需要时间的步骤,所述另一方通信设备根据来自一方的通信设备的询问,执行所述推定步骤及所述时间发送步骤。
方法A-4.如方法A-1.所述的公用密钥交换方法,
在计算步骤中计算出的处理开始时刻早的通信设备在该处理开始时刻执行开始步骤。
方法A-5.如方法A-1.~方法A-4.任一项所述的公用密钥交换方法,
通信设备还包括判断公有密钥的计算是新的还是更新的判断步骤,在是更新的情况下,将为了计算公用密钥而进行的规定运算分割为规定的小单位,在时间上进行负荷分散。
方法A-6.如方法A-5.所述的公用密钥交换方法,
所述负荷分散为了计算公用密钥而进行的规定运算所花的时间长的通信设备执行。
方法A-7.如方法A-1.所述的公用密钥交换方法,
所述推定步骤推定为了计算公用密钥而自己设备进行的规定运算所花的实际时间的2倍时间作为运算需要时间。
装置A-1.本发明的通信设备,是为了收发进行了加密/篡改认证处理的数据而在与相对的对方的通信设备之间交换公用密钥的通信设备,包括
推定为了计算出公用密钥而进行的规定运算所花的运算需要时间的推定单元、
根据运算需要时间计算出与对方通信设备之间应该结束公用密钥交换的时刻之前使公用密钥交换处理结束用的处理开始时刻的计算单元,以及
在处理开始时刻开始进行密钥交换处理的开始单元。
装置A-2.如装置A-1.所述的通信设备,
还包括从另一方通信设备接收运算需要时间的接收单元,
所述运算单元根据自己的运算需要时间及另一方通信设备的运算需要时间,计算出处理开始时刻。
装置A-3.如装置A-1.所述的通信设备,
还包括将所述推定单元推定的运算需要时间向对方的通信设备发送的时间发送单元。
装置A-4.如装置A-2.所述的通信设备,
还包括对另一方通信设备进行询问运算需要时间的询问单元。
装置A-5.如装置A-3.所述的通信设备,
根据来自一方的通信设备的询问,将所述运算所要时间发送给另一方通信设备。
装置A-6.如装置A-1.所述的通信设备,
所述处理单元处理在计算出的处理开始时刻比另一方的通信设备的处理开始时刻早时,开始密钥交换处理。
装置A-7.如装置A-1.所述的通信设备,
还包括判断公有密钥的计算是新的还是更新的判断单元,
在是更新的情况下,将为了计算公用密钥而进行的规定运算分割为规定的小单位,在时间上进行负荷分散。
装置A-8.如装置A-7.所述的通信设备,
所述负荷分散在为了计算公用密钥而进行的规定运算所花的时间长时执行。
以上虽详细说明了本发明,但前述的说明在所有方面只不过是表示本发明的例子,并不想限定它的范围。当然,在不超出本发明范围的情况下,能够进行各种改进及变形。
Claims (34)
1.一种公用密钥交换方法,是为了收发进行了加密/篡改认证处理的数据而在2个通信设备之间进行的交换公用密钥的公用密钥交换方法,其特征在于,
至少一方的通信设备包括
将相对的另一方通信设备为了取得公用密钥所必需的信息发送给另一方通信设备的信息发送步骤,
以及根据所述另一方通信设备在下一次应答时刻之前进行的规定运算所花费的时间,来设定等待来自所述另一方通信设备的应答的期限的设定步骤,
所述另一方通信设备包括
进行所述规定的运算后从所述信息中取得公用密钥的取得步骤,
以及在所述应答时刻向所述一方的通信设备发送规定应答的应答发送步骤。
2.如权利要求1所述的公用密钥交换方法,其特征在于,
各所述通信设备计算出自己的公开值后发送给对方的通信设备,另外从对方的通信设备接收对方的公开值,并根据该对方的公开值计算出公用密钥,通过这样实现公用密钥的交换,
所述一方的通信设备的所述设定步骤根据所述另一方通信设备在计算出所述公开值之前所花的时间或在计算出所述公用密钥之前所花的时间的至少某1个时间,来设定所述应答等待的期限。
3.如权利要求1所述的公用密钥交换方法,其特征在于,
一方的通信设备对自己设备生成的公用密钥或生成公用密钥用的信息进行规定的加密后向另一方通信设备发送,另一方通信设备将从一方的通信设备接收的加密的公用密钥进行解密或将生成公用密钥用的信息进行解密后生成公用密钥,并将公用密钥取得的应答向一方的通信设备发送,通过这样实现公用密钥交换,
所述一方的通信设备的所述设定步骤根据所述另一方通信设备中对所述加密的公用密钥进行解密所花的时间或生成公用密钥也能够的信息进行解密并生成公用密钥所花的时间,来设定所述应答等待的期限。
4.如权利要求1所述的公用密钥交换方法,其特征在于,
另一方通信设备从所述一方的通信设备接收请求消息后,将公用密钥或生成公用密钥用的信息用从一方的通信设备接收的公开密钥进行加密后,向一方的通信设备发送,通过这样实现公用密钥交换,
所述一方的通信设备的所述设定步骤根据在所述另一方通信设备中将所述公用密钥或生成公用密钥用的信息进行加密所花的时间,来设定所述应答等待的期限。
5.如权利要求1所述的公用密钥的交换方法,其特征在于,
所述规定的运算是取得公用密钥的同时进行认证处理用的运算,或者是取得公用密钥的同时进行认证处理用的运算而且取得公用密钥用的运算。
6.如权利要求5所述的公用密钥交换方法,其特征在于,
一方的通信设备将认证用的带数字签名的数据向另一方通信设备发送,而另一方通信设备根据从一方的通信设备接收的带数字签名的数据进行本人性认证处理,通过这样实现认证处理,
所述一方的通信设备的所述设定步骤根据在所述另一方通信设备中所述本人性认证处理所花的时间,来设定所述应答等待的期限。
7.如权利要求5所述的公用密钥交换方法,其特征在于,
一方的通信设备将认证用的利用公开密钥密码的数据向另一方通信设备发送,而另一方通信设备根据从一方的通信设备接收的利用公开密钥密码的数据进行本人性认证处理,通过这样实现认证处理,
所述一方的通信设备的所述设定步骤根据在所述另一方通信设备中所述本人性认证处理所花的时间,来设定所述应答等待的期限。
8.如权利要求1所述的公用密钥交换方法,其特征在于,
所述另一方通信设备还包括
推定所述规定运算所花的运算需要时间的推定步骤、
以及将所述推定的运算需要时间向所述一方的通信设备发送的时间发送步骤,
所述一方的通信设备还包括从所述另一方通信设备接收所述运算需要时间的接收步骤。
9.如权利要求8所述的公用密钥交换方法,其特征在于,
所述一方的通信设备还包括向所述另一方通信设备进行所述运算需要时间的询问的步骤,
所述另一方通信设备根据来自所述一方的通信设备的询问,执行所述推定步骤及所述时间发送步骤。
10.如权利要求8所述的公用密钥交换方法,其特征在于,
所述另一方通信设备事前保存推定的所述运算需要时间。
11.如权利要求1所述的公用密钥交换方法,其特征在于,
所述另一方通信设备还包括在下一次应答时刻之前将应答迟缓的内容的通知至少发送一次给所述一方的通信设备的步骤,
所述一方的通信设备还包括从所述另一方通信设备接收所述通知的步骤,并在所述设定步骤根据所述通知,来设定所述应答等待的期限。
12.如权利要求1所述的公用密钥交换方法,其特征在于,
所述一方的通信设备测量在发送消息后到接收所述另一方通信设备中进行所述规定运算后的应答为止的时间,以取得所述规定运算所花的时间。
13.如权利要求2所述的公用密钥交换方法,其特征在于,
在所述另一方通信设备中在下1个应答时刻之前进行所述公开值及所述公用密钥的计算时,
所述一方的通信设备的设定步骤根据所述另一方通信设备在计算出所述公开值及所述公用密钥之前所花的合计时间,来设定与所述公开值的发送或所述公用密钥计算结束有关的应答等待的期限。
14.如权利要求2所述的公用密钥交换方法,其特征在于,
在所述另一方通信设备中在下1个应答时刻之前进行所述公开值的计算时,
所述一方的通信设备的设定步骤根据所述另一方通信设备在计算出所述公开值之前所花的合计时间,来设定与所述公开值的发送或所述公用密钥计算结束有关的应答等待的期限。
15.如权利要求2所述的公用密钥交换方法,其特征在于,
在所述另一方通信设备中在下1个应答时刻之前进行所述公用密钥的计算时,
所述一方的通信设备的设定步骤根据所述另一方通信设备在计算出所述公用密钥之前所花的合计时间,来设定与所述公开值的发送或所述公用密钥计算结束有关的应答等待的期限。
16.如权利要求2所述的公用密钥交换方法,其特征在于,
所述通信设备还包括
在所述公用密钥的计算结束后将结束通知发送给对方的通信设备的步骤,
以及在从对方的通信设备接收所述结束通知之前不进行密钥交换处理失败的判断的步骤。
17.如权利要求2所述的公用密钥交换方法,其特征在于,
在IKE的消息顺序中执行所述信息发送步骤、设定步骤,取得步骤及应答发送步骤。
18.一种通信设备,是为了收发进行了加密/篡改认证处理的数据而在与相对的对方的通信设备之间交换公用密钥的通信设备,其特征在于,包括
将对方的通信设备为了取得公用密钥所必需的信息发送给该对方的通信设备的信息发送单元、
从对方的通信设备接收应答的接收单元、
以及根据对方的通信设备在下1个应答时刻之前进行的规定运算所花的时间,来设定等待在所述接收单元接收的来自对方的通信设备的应答的应答等待期限的设定单元。
19.如权利要求18所述的通信设备,其特征在于,还包括
进行规定的运算后根据从对方的通信设备接收的为了取得公用密钥而必需的信息取得公用密钥的取得单元、
以及在规定的应答时刻向对方的通信设备发送规定应答的应答发送单元。
20.如权利要求18所述的通信设备,其特征在于,
所述取得单元包含
计算出自己的公开值后发送给对方的通信设备的公开值计算单元、
从对方的通信设备接收对方的公开值后根据该对方的公开值来计算公用密钥的公用密钥计算单元,
所述设定单元根据在对方的通信设备中计算出所述公开值之前所花的时间或计算出所述公用密钥之前所花的时间的至少某1个时间,来设定所述应答等待的期限。
21.如权利要求18所述的通信设备,其特征在于,
所述取得单元包含计算出公用密钥的公用密钥计算单元,
所述信息发送单元对所述公用密钥计算单元计算的公用密钥或生成该公用密钥用的信息进行规定的加密,向对方的通信设备发送,
所述设定单元根据在对方的通信设备中将所述加密的公用密钥进行解密所花的时间、或将生成所述加密的公用密钥用的信息记你想那个解密及公用密钥生成所花的时间,来设定所述应答等待的期限。
22.如权利要求18所述的通信设备,其特征在于,
在发送任意的消息后,从对方的通信设备接收加密的公用密钥或生成公用密钥用的信息时,所述设定单元根据在对方的通信设备中将公用密钥或生成公用密钥用的信息进行加密所花的时间,来设定所述应答等待的期限。
23.如权利要求18所述的通信设备,其特征在于,
在将认证用的带数字签名的数据向对方的通信设备发送时,所述设定单元根据在对方的通信设备中按照带数字签名的数据进行本人性认证处理所花的时间,来设定所述应答等待的期限。
24.如权利要求18所述的通信设备,其特征在于,
在将认证用的利用公开密钥密码的数据向对方的通信设备发送时,所述设定单元根据在对方的通信设备中按照利用公开密钥密码的数据进行本人性认证处理所花的时间,来设定所述应答等待的期限。
25.如权利要求18所述的通信设备,其特征在于,
所述设定单元根据推定从对方的通信设备接收的所述规定运算所花的时间的运算需要时间,取得所述规定运算所花的时间。
26.一种通信设备,是为了收发进行了加密/篡改认证处理的数据而在与相对的对方的通信设备之间交换公用密钥的通信设备,其特征在于,包括
从对方的通信设备接收为了取得公有密钥而必需的信息的接收单元、
将与从所述接收单元接收的信息取得公用密钥之前所需要的时间有关的信息向对方的通信设备发送的时间发送单元、
进行规定的运算后从所述接收单元接收的信息取得公用密钥的取得单元、
以及在规定的应答时刻向对方的通信设备发送规定的应答的应答发送单元。
27.如权利要求26所述的通信设备,其特征在于,
还包括推定在下1个应答时刻之前进行的规定运算所花的运算需要时间的推定单元,
所述时间发送单元将所述推定单元推定的运算需要时间向对方的通信设备发送。
28.如权利要求18所述的通信设备,其特征在于,
还包括推定在下1个应答时刻之前进行的规定运算所花的运算需要时间的推定单元、
以及将所述推定单元推定的运算需要时间向对方的通信设备发送的时间发送单元。
29.如权利要求18所述的通信设备,其特征在于,还包括
向对方的通信设备进行所述运算需要时间的询问的询问发送单元。
30.如权利要求19所述的通信设备,其特征在于,还包括
在下一次应答时刻之前将应答迟缓的内容的通知至少发送一次给对方的通信设备的延迟通知发送单元。
31.如权利要求26所述的通信设备,其特征在于,
所述时间发送单元在下1个应答时刻之前将应答迟缓的内容的通知至少发送一次给对方的通信设备。
32.如权利要求18所述的通信设备,其特征在于,
所述设定单元测量在发送消息后到接收对方的通信设备中进行所述规定运算后的应答为止的时间,取得所述规定运算所花的时间。
33.一种程序,是在2个通信设备之间实现为了收发进行了加密/篡改认证处理的数据而进行的交换公用密钥的方法用的程序,其特征在于,
使至少一方的通信设备执行
将相对的另一方通信设备为了取得公用密钥所必需的信息发送给另一方通信设备的信息发送步骤、
以及根据所述另一方通信设备在下一次应答时刻之前进行的规定运算所花费的时间,来设定等待来自所述另一方通信设备的应答的期限的设定步骤,
使所述另一方通信设备执行
进行所述规定的运算后从所述信息中取得公用密钥的取得步骤、
以及在所述应答时刻向所述一方的通信设备发送规定应答的应答发送步骤。
34.一种记录介质,是记录在2个通信设备之间实现为了收发进行了加密/篡改认证处理的数据而进行的交换公用密钥的方法用的程序、而且计算机能够读取的记录介质,其特征在于,
记录的程序是为了使至少一方的通信设备执行
将相对的另一方通信设备为了取得公用密钥所必需的信息发送给另一方通信设备的信息发送步骤、
以及根据所述另一方通信设备在下一次应答时刻之前进行的规定运算所花费的时间,来设定等待来自所述另一方通信设备的应答的期限的设定步骤,
使所述另一方通信设备执行
进行所述规定的运算后从所述信息中取得公用密钥的取得步骤、
以及在所述应答时刻向所述一方的通信设备发送规定应答的应答发送步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003015866 | 2003-01-24 | ||
JP2003015866 | 2003-01-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1518268A true CN1518268A (zh) | 2004-08-04 |
Family
ID=32588682
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2004100033340A Pending CN1518268A (zh) | 2003-01-24 | 2004-01-21 | 公用密钥交换方法及通信设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20040162983A1 (zh) |
EP (1) | EP1441485A3 (zh) |
KR (1) | KR20040068499A (zh) |
CN (1) | CN1518268A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101164274B (zh) * | 2005-04-25 | 2011-01-26 | 诺基亚公司 | 用于组密钥生成的方法和装置 |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8077861B2 (en) | 2004-08-12 | 2011-12-13 | Cmla, Llc | Permutation data transform to enhance security |
US7577250B2 (en) * | 2004-08-12 | 2009-08-18 | Cmla, Llc | Key derivation functions to enhance security |
US7564970B2 (en) * | 2004-08-12 | 2009-07-21 | Cmla, Llc | Exponential data transform to enhance security |
US7266201B1 (en) * | 2002-09-17 | 2007-09-04 | Foundry Networks, Inc. | Non-disruptive authentication administration |
US7409550B2 (en) * | 2004-08-16 | 2008-08-05 | Mitsubishi Electric Research Laboratories, Inc. | Method for binding networked devices |
JP4664644B2 (ja) | 2004-10-08 | 2011-04-06 | 富士通株式会社 | 生体認証装置及び端末 |
KR100704678B1 (ko) * | 2005-06-10 | 2007-04-06 | 한국전자통신연구원 | 무선 휴대 인터넷 시스템에서의 그룹 트래픽 암호화 키갱신 방법 |
JP4665617B2 (ja) * | 2005-06-10 | 2011-04-06 | 沖電気工業株式会社 | メッセージ認証システム,メッセージ送信装置,メッセージ受信装置,メッセージ送信方法,メッセージ受信方法およびプログラム |
US7930507B2 (en) * | 2006-09-18 | 2011-04-19 | Sandisk Il Ltd. | Method of providing to a processor an estimated completion time of a storage operation |
US8170212B2 (en) * | 2008-03-17 | 2012-05-01 | Intel Corporation | Device, system, and method of establishing secure wireless communication |
US8719572B2 (en) * | 2008-07-16 | 2014-05-06 | Disney Enterprises, Inc. | System and method for managing authentication cookie encryption keys |
US8848904B2 (en) * | 2008-10-24 | 2014-09-30 | University Of Maryland, College Park | Method and implementation for information exchange using Markov models |
US8837716B2 (en) | 2009-02-02 | 2014-09-16 | Apple Inc. | Sensor derived authentication for establishing peer-to-peer networks |
ES2606221T3 (es) * | 2010-07-06 | 2017-03-23 | Deutsche Telekom Ag | Procedimiento, sistema de distribución y producto de programa informático para un sistema determinista de distribución automática de llamadas |
JP2012222410A (ja) * | 2011-04-04 | 2012-11-12 | Fujitsu Ltd | 通信装置、通信システムおよび通信方法 |
KR20150091188A (ko) * | 2011-07-15 | 2015-08-07 | 알까뗄 루슨트 | 안전한 그룹 메시징 |
JP5981761B2 (ja) * | 2012-05-01 | 2016-08-31 | キヤノン株式会社 | 通信装置、制御方法、プログラム |
TWI517655B (zh) * | 2013-05-23 | 2016-01-11 | 晨星半導體股份有限公司 | 密碼裝置以及密鑰保護方法 |
CN106739528B (zh) | 2013-08-30 | 2019-07-26 | 惠普发展公司,有限责任合伙企业 | 经由定时质询响应的供应认证 |
US20150245202A1 (en) * | 2014-02-26 | 2015-08-27 | Qualcomm Incorporated | Secure distribution of a common network key in a wireless network |
DK3275149T3 (da) * | 2015-03-25 | 2020-06-29 | Ericsson Telefon Ab L M | Konfiguration af timeout af liveness-kontrol med anvendelse af IKE-beskeder |
GB201506045D0 (en) * | 2015-04-09 | 2015-05-27 | Vodafone Ip Licensing Ltd | SIM security |
US10798093B2 (en) * | 2016-09-19 | 2020-10-06 | Verisign, Inc. | GTLD domain name registries RDAP architecture |
US10523632B2 (en) | 2016-09-19 | 2019-12-31 | Verisign, Inc. | GTLD domain name registries RDAP architecture |
JP6834771B2 (ja) * | 2017-05-19 | 2021-02-24 | 富士通株式会社 | 通信装置および通信方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5313521A (en) * | 1992-04-15 | 1994-05-17 | Fujitsu Limited | Key distribution protocol for file transfer in the local area network |
US5862326A (en) * | 1995-09-21 | 1999-01-19 | Pacific Communication Sciences, Inc. | Efficient request-reply protocol for a client-server model |
AU743258B2 (en) * | 1997-01-03 | 2002-01-24 | Fortress Technologies, Inc. | Improved network security device |
US5946465A (en) * | 1998-03-30 | 1999-08-31 | International Business Machines Corporation | Method and system for recovering system resources used by an inactive Telnet client |
JP3430509B2 (ja) * | 1999-12-03 | 2003-07-28 | 日本電気株式会社 | データ通信システム及び方法 |
-
2004
- 2004-01-20 KR KR1020040004476A patent/KR20040068499A/ko not_active Application Discontinuation
- 2004-01-21 CN CNA2004100033340A patent/CN1518268A/zh active Pending
- 2004-01-22 EP EP04001361A patent/EP1441485A3/en not_active Withdrawn
- 2004-01-23 US US10/762,544 patent/US20040162983A1/en not_active Abandoned
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101164274B (zh) * | 2005-04-25 | 2011-01-26 | 诺基亚公司 | 用于组密钥生成的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
EP1441485A3 (en) | 2004-08-04 |
KR20040068499A (ko) | 2004-07-31 |
EP1441485A2 (en) | 2004-07-28 |
US20040162983A1 (en) | 2004-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1518268A (zh) | 公用密钥交换方法及通信设备 | |
CN1112000C (zh) | 图像传输装置、图像传输系统以及通信装置 | |
CN1503504A (zh) | 通信装置、通信系统和算法选择方法 | |
CN1496063A (zh) | 互联网协议安全性协议设置服务器设备和处理设备 | |
CN1242587C (zh) | 高速、灵活的加密系统的方法及设备 | |
CN1855805A (zh) | Sip消息的加密方法和加密通信系统 | |
CN1266876C (zh) | 数据通信系统、加密装置及解密装置 | |
CN1396568A (zh) | 数字作品保护系统、记录媒体装置、发送装置和重放装置 | |
CN100338907C (zh) | 信息处理系统和方法、信息处理设备和方法 | |
CN1433608A (zh) | 存储卡及采用该插卡的数据传送系统 | |
CN1879138A (zh) | 密码处理装置、密码处理方法及其计算机程序 | |
CN1682499A (zh) | 内容分发系统 | |
CN1841997A (zh) | 信息处理分布系统、信息处理装置和信息处理分布方法 | |
CN1507719A (zh) | 电子设备控制装置 | |
CN101056263A (zh) | 数据通信方法和系统 | |
CN1266572A (zh) | 数据发送/接收方法、数据发送设备、数据接收设备、数据发送/接收系统、av内容发送方法、av内容接收方法、av内容发送设备、av内容接收设备和程序记录媒体 | |
CN1300402A (zh) | 信息处理设备、信息处理方法和提供介质 | |
CN1460225A (zh) | 数据处理系统、存储设备、数据处理装置、及数据处理方法、以及程序 | |
CN1711740A (zh) | 轻度可扩展验证协议的密码预处理 | |
CN1714542A (zh) | 无线局域网互连中的识别信息保护方法 | |
CN1701559A (zh) | 会话控制服务器、通信装置、通信系统与通信方法及其程序与记录介质 | |
CN1692319A (zh) | 用于移动通信系统内安全数据传输的方法和装置 | |
CN1674498A (zh) | 用户验证信息与验证等级的管理 | |
CN1465006A (zh) | 用于管理存储在移动终端存储块中的程序的系统 | |
CN1505312A (zh) | 公共密钥加密通信系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |