CN102227106A - 智能密钥设备与计算机进行通信的方法和系统 - Google Patents

智能密钥设备与计算机进行通信的方法和系统 Download PDF

Info

Publication number
CN102227106A
CN102227106A CN201110147059XA CN201110147059A CN102227106A CN 102227106 A CN102227106 A CN 102227106A CN 201110147059X A CN201110147059X A CN 201110147059XA CN 201110147059 A CN201110147059 A CN 201110147059A CN 102227106 A CN102227106 A CN 102227106A
Authority
CN
China
Prior art keywords
key
computer
intelligent cipher
message
communication
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201110147059XA
Other languages
English (en)
Other versions
CN102227106B (zh
Inventor
陆舟
于华章
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Feitian Technologies Co Ltd
Original Assignee
Feitian Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Feitian Technologies Co Ltd filed Critical Feitian Technologies Co Ltd
Priority to CN201110147059.XA priority Critical patent/CN102227106B/zh
Publication of CN102227106A publication Critical patent/CN102227106A/zh
Application granted granted Critical
Publication of CN102227106B publication Critical patent/CN102227106B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Mobile Radio Communication Systems (AREA)

Abstract

本发明提供了一种智能密钥设备与计算机进行通信的方法和系统。其中,该方法包括:智能密钥设备接收计算机发送的通信请求指令,其中,通信请求指令携带有用户的个人识别码标识、循环迭代次数和意定字节长度;智能密钥设备根据个人识别码标识搜索用户的个人识别码;智能密钥设备根据个人识别码、循环迭代次数和意定字节长度生成第一消息密钥,计算机根据个人识别码、循环迭代次数和意定字节长度生成第二消息密钥;并智能密钥设备和计算机分别使用第一消息密钥和第二消息密钥进行通信。通过本发明,解决了智能密钥设备与计算机交易存在安全隐患的问题,增强了系统的安全性,保障了用户的切身利益。

Description

智能密钥设备与计算机进行通信的方法和系统
技术领域
本发明涉及通信领域,具体而言,涉及一种智能密钥设备与计算机进行通信的方法和系统。
背景技术
随着互联网、电子商务和电子政务的发展,网络安全方面存在的问题也越来越引起重视,USB Key(智能密钥设备)正逐渐成为网络银行等高端电子商务的主流解决方案,在用户身份识别和数据保护方面起到的作用日益凸显。同时,计算机通信系统的安全问题是一个关系到人类生活与生存的大事,成为世界各国关注的重要问题。它已成为网络安全领域和信息安全领域里的一个重要的研究课题。众所周知,现有的通信方式中,USB技术的通信方式是基于共享总线的通信方式,如果在USB Key与主机之间没有建立安全的通信方式,那么,第三方很容易截取或者窃听到在USB Key与主机之间传输的数据,对数据安全造成很大的安全隐患。而现有的安全机制通常采用的是用户名和密码的组合方式,该方式中需要智能密钥设备将用户的密码输入到网络银行,以使网络银行确认用户是否合法,进而完成后续交易。这种方式存在一定的安全隐患,有可能被黑客通过窃听技术获取到用户的用户名和密码。而窃听技术一方面是各国政府常用来防范恐怖袭击、监视非法资金交易的手段,另一方面黑客和一些情报机构也用来非法获取机密信息。比如,现实生活中,用户在使用锁(即USB Key)与主机通信,进行网络银行或是其他交易的过程中,黑客利用窃听技术获取用户锁内的重要交易数据,造成非法交易,给用户造成不可挽回的损失,这是目前威胁计算机通信安全的主要问题之一。
针对相关技术中智能密钥设备与互联网交易存在安全隐患的问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种智能密钥设备与计算机进行通信的方法和系统,以至少解决上述智能密钥设备与计算机交易存在安全隐患的问题。
根据本发明的一个方面,提供了一种智能密钥设备与计算机进行通信的方法,包括:智能密钥设备接收计算机发送的通信请求指令,其中,通信请求指令携带有用户的个人识别码标识、循环迭代次数和意定字节长度;智能密钥设备根据个人识别码标识搜索用户的个人识别码;智能密钥设备根据个人识别码、循环迭代次数和意定字节长度生成第一消息密钥;计算机根据个人识别码、循环迭代次数和意定字节长度生成第二消息密钥;智能密钥设备和计算机分别使用第一消息密钥和第二消息密钥进行通信。
其中,智能密钥设备根据个人识别码、循环迭代次数和意定字节长度生成第一消息密钥包括:智能密钥设备生成第一随机数;智能密钥设备确定密钥生成函数;智能密钥设备将第一随机数、个人识别码、循环迭代次数和意定字节长度输入密钥生成函数,生成第一消息密钥。
上述方法还包括:智能密钥设备将第一随机数和密钥生成函数的标识符进行组合,得到组值;将组值反馈给计算机;
计算机根据个人识别码、循环迭代次数和意定字节长度生成第二消息密钥包括:计算机接收到组值后,根据密钥生成函数的标识符确定密钥生成函数;计算机将个人识别码、循环迭代次数、意定字节长度、第一随机数输入密钥生成函数,生成第二消息密钥。
其中,通信请求指令还携带有第二随机数;智能密钥设备根据个人识别码、循环迭代次数和意定字节长度生成第一消息密钥包括:智能密钥设备选择系统默认的密钥生成函数,将第二随机数、个人识别码、循环迭代次数和意定字节长度输入密钥生成函数,生成第一消息密钥;
计算机根据个人识别码、循环迭代次数和意定字节长度生成第二消息密钥包括:计算机选择系统默认的密钥生成函数,将第二随机数、个人识别码、循环迭代次数和意定字节长度输入密钥生成函数,生成第二消息密钥。其中,智能密钥设备根据个人识别码标识搜索用户的个人识别码失败时,方法还包括:智能密钥设备向计算机反馈搜索失败消息。
其中,智能密钥设备和计算机分别使用第一消息密钥和第二消息密钥进行通信包括:智能密钥设备生成第一通信参数;智能密钥设备根据第一通信参数生成第一验证码;智能密钥设备使用第一消息密钥加密第一通信参数,并将参数加密结果和第一验证码发送给计算机;计算机使用第二消息密钥对参数加密结果进行解密,得到第二通信参数;根据第二通信参数生成第二验证码;计算机比较第一验证码与第二验证码是否一致;如果一致,第一通信参数与第二通信参数相同,计算机将第二通信参数作为密钥种子生成第二通信密钥,并通知智能密钥设备验证成功;智能密钥设备收到通知后,将第一通信参数作为密钥种子生成第一通信密钥;智能密钥设备和计算机分别使用第一通信密钥和第二通信密钥进行通信;如果不一致,智能密钥设备和计算机停止通信。
其中,智能密钥设备和计算机分别使用第一消息密钥和第二消息密钥计算机进行通信包括:智能密钥设备生成第一通信参数;智能密钥设备根据第一通信参数生成第一验证码;智能密钥设备使用第一消息密钥加密第一通信参数,并将加密后的第一通信参数和第一验证码发送给计算机;计算机使用第二消息密钥对加密后的第一通信参数进行解密,得到第二通信参数;计算机根据第二通信参数生成第二验证码;计算机生成第三随机数和第三通信参数,并根据第三随机数生成第三消息密钥,使用第三消息密钥对由第二通信参数和第三通信参数组成的字符串进行加密,得到加密后的通信参数;计算机根据第三随机数和第三通信参数生成第三验证码;计算机通过反馈指令将第三随机数、第二验证码、第三验证码、第三通信参数和加密后的通信参数反馈给智能密钥设备;智能密钥设备收到反馈指令后,根据反馈指令携带的第三随机数、第三验证码、第三通信参数和加密后的通信参数生成第四消息密钥和第四验证码;智能密钥设备比较第一验证码与第二验证码是否一致,以及比较第三验证码与第四验证码是否一致;如果两组比较均一致,则第一通信参数与第二通信参数相同,智能密钥设备通知计算机验证成功;智能密钥设备将第一通信参数和第三通信参数组成的字符串作为密钥种子生成第一通信密钥;计算机将第二通信参数和第三通信参数组成的字符串作为密钥种子,生成第二通信密钥;智能密钥设备和计算机分别使用第一通信密钥和第二通信密钥进行通信;如果两组比较有一组不一致,智能密钥设备和计算机停止通信。
根据本发明的另一方面,提供了一种智能密钥设备与计算机进行通信的系统,包括:智能密钥设备和计算机;
其中,计算机包括:指令发送模块,用于发送通信请求指令,其中,通信请求指令携带有用户的个人识别码标识、循环迭代次数和意定字节长度;个人识别码获取模块,用于根据个人识别码标识获取个人识别码;第二密钥生成模块,用于根据个人识别码、循环迭代次数和意定字节长度生成第二消息密钥;第二通信模块,用于使用第二密钥生成模块生成的第二消息密钥与智能密钥设备进行通信;
上述智能密钥设备包括:指令接收模块,用于接收计算机发送的通信请求指令;搜索模块,用于根据个人识别码标识搜索用户的个人识别码;第一密钥生成模块,用于根据个人识别码、循环迭代次数和意定字节长度生成第一消息密钥;第一通信模块,用于使用第二密钥生成模块生成的第一消息密钥与计算机进行通信。
其中,第一密钥生成模块包括:第一随机数生成单元,用于生成第一随机数;函数确定单元,用于确定密钥生成函数;第一消息密钥生成单元,用于将第一随机数、个人识别码、循环迭代次数和意定字节长度输入密钥生成函数,生成第一消息密钥。
智能密钥设备还包括:组值获取模块,用于将第一随机数和密钥生成函数的标识符进行组合,得到组值;组值反馈模块,用于将组值反馈给计算机;
第二密钥生成模块包括:密钥函数确定单元,用于根据密钥生成函数的标识符确定密钥生成函数;消息密钥生成单元,用于将个人识别码、循环迭代次数、意定字节长度、第一随机数输入密钥生成函数,生成第二消息密钥。
计算机还包括:第二随机数生成单元,用于生成第二随机数;相应地,指令发送模块发送的通信请求指令还携带有第二随机数;
第二密钥生成模块包括:第二函数选择单元,用于选择系统默认的密钥生成函数;第二消息密钥生成单元,用于将第二随机数、个人识别码、循环迭代次数和意定字节长度输入密钥生成函数,生成第二消息密钥;
第一密钥生成模块包括:第一函数选择单元,用于选择系统默认的密钥生成函数;第一消息密钥生成单元,用于将第二随机数、个人识别码、循环迭代次数和意定字节长度输入密钥生成函数,生成第一消息密钥。
第一通信模块包括:第一通信参数生成单元,用于生成第一通信参数;第一验证码生成单元,用于根据第一通信参数生成第一验证码;验证信息发送单元,用于使用第一消息密钥加密第一通信参数,并将参数加密结果和第一验证码发送给计算机;第一通信密钥生成单元,用于收到计算机发送的验证成功的通知后,将第一通信参数作为密钥种子生成第一通信密钥;第一通信单元,用于使用第一通信密钥与计算机进行通信;
第二通信模块包括:解密单元,用于使用第二消息密钥解密参数加密结果,得到第二通信参数;第二验证码生成单元,用于根据第二通信参数生成第二验证码;比较与通知单元,用于比较第一验证码与第二验证码是否一致,如果一致,将第二通信参数作为密钥种子生成第二通信密钥,并通知智能密钥设备验证成功;第二通信单元,用于使用第二通信密钥与智能密钥设备进行通信。
通过本发明,智能密钥设备通过个人识别码标识即可获取到个人识别码,进而根据个人识别码可以生成消息密钥,使用该消息密钥与计算机进行通信,可以防止恶意用户的窃听,解决了智能密钥设备与计算机交易存在安全隐患的问题,增强了系统的安全性,保障了用户的切身利益。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例1的一种智能密钥设备与计算机进行通信的方法流程图;
图2是根据本发明实施例2的第一种智能密钥设备与计算机进行通信的方法流程图;
图3是根据本发明实施例2的第二种智能密钥设备与计算机进行通信的方法流程图;
图4是根据本发明实施例3的一种智能密钥设备与计算机进行通信的方法流程图;
图5是根据本发明实施例3的在图4基础上增强安全性的方法流程图;
图6是根据本发明实施例4的一种智能密钥设备与计算机进行通信的系统的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本实施例提供了一种智能密钥设备与计算机进行通信的方法和系统,主要用于智能密钥设备和计算机之间通信,通过该方法,可以在智能密钥设备和计算机之间建立一个安全的信道,保护了智能密钥设备和计算机之间的通信,计算机为通信过程的发起方,并可随时发起通信,建立通信后的后序指令通信,可以被所建立连接过程生成的密钥保护;
上述计算机为用户PC机、手机、移动设备等可以连接智能密钥设备的终端。
实施例1
本实施例提供了一种智能密钥设备与计算机进行通信的方法,参见图1,该方法包括以下步骤:
步骤S102,智能密钥设备接收计算机发送的通信请求指令,其中,该通信请求指令携带有用户的个人识别码标识、循环迭代次数和意定字节长度(即,生成的消息密钥的预定长度);
步骤S104,该智能密钥设备根据上述个人识别码标识搜索用户的个人识别码;在智能密钥设备上预先已存储了个人识别码标识与个人识别码的对应关系,这样就不需要智能密钥设备与计算机间传输个人识别码,增强了系统的安全性。
步骤S106,该智能密钥设备根据个人识别码、循环迭代次数和意定字节长度生成第一消息密钥;
步骤S108,计算机根据个人识别码、循环迭代次数和意定字节长度生成第二消息密钥;
步骤S110,智能密钥设备和计算机分别使用第一消息密钥和第二消息密钥进行通信。
为了增强安全性,在生成第一消息密钥时,还可以引入一个随机数,确保了每次通信时生成的消息密钥都不相同,该随机数可以在智能密钥设备侧生成,也可以在计算机侧生成,当在智能密钥设备侧生成是,上述步骤S106中的智能密钥设备根据个人识别码、循环迭代次数和意定字节长度生成第一消息密钥包括:智能密钥设备生成第一随机数,该智能密钥设备确定密钥生成函数;智能密钥设备将第一随机数、个人识别码、循环迭代次数和意定字节长度输入密钥生成函数,生成第一消息密钥。为了使计算机也生成与智能密钥设备侧相同的消息密钥,该智能密钥设备生成第一消息密钥之后或之前,上述方法还可以包括:智能密钥设备将第一随机数和密钥生成函数的标识符进行组合,得到组值;将该组值反馈给计算机;
该计算机收到上述组值后,根据密钥生成函数的标识符确定密钥生成函数,并将个人识别码、循环迭代次数、意定字节长度、第一随机数输入该密钥生成函数,生成第二消息密钥。
当然,上述用于生成消息密钥的随机数也可以由计算机生成后,随同通信请求指令一起发送给智能密钥设备,这时,智能密钥设备将不需要再生成该第一随机数,直接根据指令中的参数就可以生成第一消息密钥,若密钥生成函数采用的是系统默认的函数,这种方式下也不需要智能密钥设备再向计算机反馈上述密钥生成函数的标识,进一步降低了二者交互的参数信息被窃听的可能性。基于此,上述步骤S102中的通信请求指令携带一个第二随机数;上述步骤S106中的智能密钥设备根据个人识别码、循环迭代次数和意定字节长度生成第一消息密钥包括:智能密钥设备选择系统默认的密钥生成函数,将第二随机数、个人识别码、循环迭代次数和意定字节长度输入密钥生成函数,生成第一消息密钥;相应地,计算机发送通信请求指令之后,上述方法还包括:计算机选择系统默认的密钥生成函数,将第二随机数、个人识别码、循环迭代次数和意定字节长度输入密钥生成函数,生成第二消息密钥。
当智能密钥设备根据个人识别码标识搜索用户的个人识别码失败时,智能密钥设备向计算机反馈搜索失败消息,等待计算机重新发送通信请求指令。
当智能密钥设备和计算机根据上述方法生成了第一消息密钥和第二消息密钥后,将可以用该第一消息密钥和第二消息密钥加/解密二者间的消息和/或消息中携带的数据,这样窃听者即使截获了双方发送的消息,因为无法获取到用户的个人识别码,也就无法生成消息密钥。因此,即使窃听者截取到双方的交易数据,也是很难破解的。为了进一步增强安全性,本实施例的智能密钥设备和计算机分别使用第一消息密钥和第二消息密钥进行通信可以包括以下方式:
1)智能密钥设备生成第一通信参数;
2)智能密钥设备根据第一通信参数生成第一验证码;
3)智能密钥设备使用第一消息密钥加密第一通信参数,并将参数加密结果和第一验证码发送给计算机;
4)计算机使用第二消息密钥解密上述参数加密结果,得到第二通信参数;根据第二通信参数生成第二验证码;
5)计算机比较第一验证码与第二验证码是否一致;
如果一致,将第二通信参数作为密钥种子生成第二通信密钥,并通知智能密钥设备验证成功;
如果不一致,所述智能密钥设备和所述网络客户端停止通信。
6)智能密钥设备收到该通知后,将第一通信参数作为密钥种子生成上述第一通信密钥;
7)智能密钥设备和计算机分别使用第一通信密钥和第二通信密钥进行通信。
其中,第一通信密钥和第二通信密钥的生成过程中,智能密钥设备和计算机采用的函数均是系统默认的函数;智能密钥设备和计算机也可分别将第一通信参数和第二通信参数直接作为第一通信密钥和第二通信密钥进行通信。
为了保证智能密钥设备和计算机生成的通信密钥一致,智能密钥设备和计算机分别使用第一消息密钥与第二消息密钥进行通信还可以包括下述方式:
1)智能密钥设备生成第一通信参数;
2)智能密钥设备根据第一通信参数生成第一验证码;
3)智能密钥设备使用第一消息密钥加密第一通信参数,并将参数加密结果和第一验证码发送给计算机;
4)计算机使用第二消息密钥对参数加密结果进行解密,得到第二通信参数,并根据第二通信参数生成第二验证码;
5)计算机生成第三随机数和第三通信参数,并根据第三随机数生成第三消息密钥,使用第三消息密钥对由第二通信参数和第三通信参数组成的字符串进行加密,得到加密后的通信参数;
6)计算机根据第三随机数和第三通信参数生成第三验证码;
7)计算机通过反馈指令将第三随机数、第二验证码、第三验证码、第三通信参数和加密后的通信参数反馈给智能密钥设备;
8)智能密钥设备收到反馈指令后,根据反馈指令携带的参数生成第四消息密钥和第四验证码,比较第一验证码与第二验证码是否一致,还比较第三验证码与第四验证码是否一致,如果两组比较均一致,通知计算机验证成功;
如果两组比较有一组不一致(或两组均不一致),智能密钥设备和计算机停止通信;
其中,第四验证码的生成方式与上述验证码的生成方式相同,这里不再详述;
9)智能密钥设备将第一通信参数和第三通信参数组成的字符串作为密钥种子生成第一通信密钥;
10)计算机将第二通信参数和第三通信参数组成的字符串作为密钥种子,生成第二通信密钥;
11)智能密钥设备和计算机分别使用第一通信密钥和第二通信密钥进行通信。
其中,智能密钥设备和计算机分别使用第一通信密钥和第二通信密钥进行通信还可以为:智能密钥设备将第一通信参数和第三通信参数组成的字符串作为第一通信密钥,计算机将第二通信参数和第三通信参数组成的字符串作为第二通信密钥;智能密钥设备和计算机分别使用第一通信密钥和第二通信密钥进行通信。
本实施例1的智能密钥设备中存储了多个不同用途的个人识别码,通过个人识别码标识即可在智能密钥设备中获取到个人识别码,进而根据个人识别码可以生成消息密钥,使用该消息密钥与计算机进行通信,可以防止恶意用户的窃听,解决了智能密钥设备与计算机交易存在安全隐患的问题,增强了系统的安全性,保障了用户的切身利益。
在上述实施例1中,计算机向智能密钥设备发送建立通信的请求指令中可以不携带循环迭代次数和消息密钥的意定字节长度,循环迭代次数和消息密钥的意定字节长度预先在计算机和智能密钥设备中分别进行设置;计算机和智能密钥设备再按照上述方法生成消息密钥,进行通信。
在上述实施例1中智能密钥设备只存储一个用户个人识别码时,计算机向智能密钥设备发送建立通信的请求指令中可以不携带用户个人识别码标识、循环迭代次数和消息密钥的意定字节长度,循环迭代次数和消息密钥的意定字节长度预先在计算机和智能密钥设备中分别进行设置;计算机和智能密钥设备再按照上述方法生成消息密钥,进行通信。
实施例2
参见图2,为本是实施例提供的一种智能密钥设备与计算机进行通信的方法流程图,本实施例以USB Key为举例的智能密钥设备来进行具体说明,该方法包括以下步骤,
步骤S201:计算机向USB Key发送建立通信的请求指令;
优选的,请求指令的数据域中包括:个人识别码标识,该个人识别码标识指明需要引用的个人识别码,等待用户进行输入,还包括一循环迭代次数M和消息密钥的意定字节长度L1。
其中,循环迭代次数用于增加从一次性个人识别码生成密钥的代价,从而增加攻击的难度;本实施例中,循环迭代次数M可选择为不小于1000,来增加对个人识别码穷举的代价。
步骤S202:USB Key接收到计算机发送的请求指令,并根据用户个人识别码标识搜索用户个人识别码,判断是否搜索到;如果否,执行步骤S208;如果是,则USB Key缓存这个个人识别码,继续执行步骤S203;
步骤S203:USB Key产生一个随机数A1,USB Key还获取循环迭代次数M,缓存这个循环迭代次数;该随机数A1的字节长度可以为16字节;
步骤S204:USB Key根据密钥生成函数生成消息密钥1并输出;
该密钥生成函数可以是多种,例如:伪随机函数,该密钥生成函数为预先设置的;
在本实施例中,USB Key将用户个人识别码、请求指令中的随机数A1、循环迭代次数M和消息密钥的意定字节长度L1作为密钥生成函数的输入,密钥生成函数(消息加密算法)根据输入的参数生成长度为L的消息密钥1,并输出消息密钥1;
消息密钥的字节长度L1是没有限制的,但是消息密钥的最大搜索空间可以受上述密钥生成函数的基本结构限制,如果输入的消息密钥的意定字节长度L1超出所规定的长度,则密钥生成函数输出提示错误的字符串并停止运算;如果输入的消息密钥的意定字节长度L1未超出所规定的长度,则密钥生成函数生成消息密钥1并输出。
步骤S205:USB Key向计算机发送返回值;例如,USB Key将随机数A1、循环迭代次数M、消息密钥的意定字节长度L1、密钥生成函数标识符和消息加密算法1以一个组值1传递给计算机;或,USB Key将随机数A1、密钥生成函数标识符和消息加密算法1以一个组值1传递给计算机;
步骤S206:计算机根据密钥生成函数生成消息密钥2并输出;
本实施例中,计算机基于与上述步骤S204中相同的密钥生成函数来生成消息密钥2,计算机将用户个人识别码、组值1中的随机数A1、循环迭代次数M和消息密钥的意定字节长度L1作为密钥生成函数的输入,密钥生成函数根据输入的参数基于消息加密算法1生成消息密钥2并输出;或,计算机将用户个人识别码、循环迭代次数M、消息密钥的意定字节长度L1和组值1中的随机数A1、作为密钥生成函数的输入,密钥生成函数根据输入的参数基于特定的加密算法1生成消息密钥2并输出;
步骤S207:USB Key使用消息密钥1作为通信密钥,计算机使用消息密钥2作为通信密钥,对后序指令进行保护;
步骤S208:USB Key向计算机报错,继续等待计算机重新发送请求指令。
如果USB Key和计算机按照上述方法生成消息密钥的话,二者生成的消息密钥1将一致,因此可以直接执行后序操作。当然,如果消息密钥不一致,后续将会出现解密失败的问题,此时,消息交互及交易将终止。
上述方法中,随机数是由USB Key内部产生的,随机数还可以由计算机产生,在向USBKey发送请求指令时将随机数发送给USB Key。
参见图3,为本是实施例2提供的另一种智能密钥设备与计算机进行通信的方法流程图,包括以下步骤:
步骤S201’:计算机向USB Key发送建立通信的请求指令;
本实施例中,请求指令的数据域中包括:用户个人识别码标识,该个人识别码标识指明需要引用的个人识别码还包括一循环迭代次数M’和消息密钥1’的意定字节长度L1’,以及计算机发送指令时产生的随机数A1’。
步骤S202’:计算机根据密钥生成函数生成消息密钥1’并输出;
计算机将用户个人识别码、随机数A1’、循环迭代次数M’和消息密钥的意定字节长度L1’作为密钥生成函数的输入,密钥生成函数根据输入的参数生成长度为L1’的消息密钥1’,并输出消息密钥1’;
步骤S203’:USB Key接收到计算机发送的请求指令,并根据用户个人识别码标识搜索用户个人识别码,判断是否搜索到;如果否,执行步骤S206’;如果是,则USB Key缓存这个个人识别码,继续执行步骤S204’;
步骤S204’:USB Key根据密钥生成函数生成消息密钥2’并输出;
具体的,USB Key获取循环迭代次数M’,并基于与上述步骤S202’中相同的密钥生成函数来生成消息密钥2’,计算机将用户个人识别码、通信请求指令中的随机数A1’、循环迭代次数M’和消息密钥的意定字节长度L1’作为密钥生成函数的输入,密钥生成函数根据输入的参数基于消息加密算法1’生成消息密钥2’并输出;
步骤S205’:USB Key使用消息密钥2’作为通信密钥,计算机使用消息密钥1’作为通信密钥,对后序指令进行保护;
步骤S206’:USB Key向计算机报错,继续等待计算机重新发送请求指令;如果USB Key和计算机按照上述方法生成消息密钥的话,二者生成的消息密钥1将一致,因此可以直接执行后序操作;当然,如果消息密钥不一致,后续将会出现解密失败的问题,此时,消息交互及交易将终止。
在本实施例2的第二方法中,步骤S202’和步骤S203’的进行并无先后顺序。施例3
参见图4,为本是实施例提供的一种智能密钥设备与计算机进行通信的方法流程图,该方法包括以下步骤:
步骤S401:计算机向USB Key发送建立通信的请求指令;
本实施例中的请求指令的数据域中包括用户个人识别码标识,该个人识别码标识指明需要引用的个人识别码,还包括一循环迭代次数N和消息密钥的意定字节长度L2。
步骤S402:USB Key接收到计算机发送的请求指令,根据用户个人识别码标识搜索引用的个人识别码,判断是否搜索到;如果否,执行步骤S415;如果是,则USB Key缓存这个个人识别码,并执行步骤S403;
步骤S403:USB Key产生一个随机数A2,还产生一个USB Key端通信参数B1(相当于上述实施例1中的通信参数),还获取循环迭代次数N,缓存这个循环迭代次数N;
其中,随机数A2的字节长度可以为16字节,通信参数B1的字节长度可以为16字节;
步骤S404:USB Key根据密钥生成函数生成消息密钥3并输出;
在本实施例中,USB Key将用户个人识别码、随机数A2、循环迭代次数N和消息密钥的意定字节长度L2作为密钥生成函数的输入,密钥生成函数根据输入的参数生成长度为L2的消息密钥3并将消息密钥3输出。
步骤S405:USB Key向计算机发送返回值;例如,USB Key将随机数A2、循环迭代次数N、消息密钥的意定字节长度L2、密钥生成函数标识符和消息加密算法2以一个组值2传递给计算机;或,USB Key将随机数A2、密钥生成函数标识符和消息加密算法2以一个组值2传递给计算机;
步骤S406:计算机根据密钥生成函数生成消息密钥4并输出;
其中,计算机基于与上述步骤S404中相同的密钥生成函数将用户个人识别码、组值2中的随机数A2、循环迭代次数N和消息密钥的意定字节长度L作为密钥生成函数的输入,生成消息密钥4并将消息密钥4输出;或计算机基于与上述步骤S404中相同的密钥生成函数将用户个人识别码、循环迭代次数N、消息密钥的意定字节长度L和组值2中的随机数A2、作为密钥生成函数的输入,生成消息密钥4并将消息密钥4输出;
步骤S407:USB Key用密钥生成函数生成的消息密钥3对USB Key端的通信参数B1进行加密运算,生成第一参数加密结果;
步骤S408:USB Key内部产生验证码T1;
本实施例中,验证码的生成操作是在消息密钥3的作用下,用一验证码加密算法来处理明文消息,来产生验证码T1;例如,将随机数A2和通信参数B1一起作为明文消息,在消息密钥3和特定初始向量的作用下,用验证码加密算法对明文消息进行加密运算,并将运算结果的某一个(例如,最后一个)密钥分组作为验证码T1;
其中,上述明文消息的形成方式有两种:一是随机数A2和通信参数B1的字节数进行串联;二是通信参数B1和随机数A2的字节数进行串联,本实施例中的明文消息长度为32字节;
上述初始向量是初始化的时候设置完成的,初始向量为USB Key和计算机都已知的一常量。
步骤S409:USB Key将加密通信参数B1和验证码T1返回给计算机;
步骤S410:计算机用消息密钥4对USB Key返回的第一参数加密结果进行解密,得到通信参数B1’;
步骤S411:计算机内部产生验证码T2;
在本实施例中,随机数A2和解密得到的通信参数B1’一起作为明文消息,在消息密钥4和特定初始向量的作用下,用验证码加密算法对明文进行加密运算,并将运算结果的最后一个密钥分组作为验证码T2;上述明文消息的形成方式和上述步骤S408中的明文消息形成方式相同;初始向量IV与步骤S408中的初始向量是相同的。
步骤S412:计算机将生成的验证码T2和USB Key返回的验证码T1进行比较,并判断比较结果是否一致;如果否,执行步骤S416;如果是,则执行步骤S413;
步骤S413:计算机通知USB Key验证成功,将解密得到的通信参数B1’作为密钥的种子,用于生成通信密钥;
步骤S414:USB Key收到验证成功的通知后,将通信参数B1作为密钥的种子生成通信密钥;
步骤S415:USB Key向计算机报错,继续等待计算机重新发送请求指令;
步骤S416:计算机重新发送请求指令。
需要说明的是,USB Key和计算机生成的通信密钥一致,则用该通信密钥对后序指令信息进行安全保护,如果不一致,则后序指令无法进行。
其中,在上述步骤S412中计算机将生成的验证码T2和USB Key返回的验证码T1进行比较一致之后,USB Key和计算机可以分别使用通信参数B1和通信参数B1’直接作为通信密钥,对后序指令进行保护。
USB Key为了确保计算机已经正确的接收到了通信参数B1,可以在图4的步骤411之后的基础上继续执行图5所示步骤:
步骤S501:计算机产生一个随机数A3,还产生一个计算机通信参数B2;
随机数A3的字节长度可以为16字节,通信参数B2的字节长度可以为16字节;
步骤S502:计算机根据密钥生成函数生成消息密钥5并输出;
具体的,计算机将用户个人识别码、随机数A3、循环迭代次数N和消息密钥的意定字节长度L2作为密钥生成函数的输入,密钥生成函数根据输入的参数基于消息加密算法2生成消息密钥5并将消息密钥5输出;
步骤S503:计算机生成第二参数加密结果;
计算机将解密得到的通信参数B1’和计算机的通信参数B2进行合并,并用消息密钥5对合并的结果进行加密,生成第二参数加密结果;
需要说明的是,上述合并方式有两种:一是通信参数B1’和通信参数B2进行字节数串联,二是通信参数B2和通信参数B1’进行字节数串联;本实施例中合并结果为32字节数;
步骤S504:计算机内部产生验证码T3;
在本实施例中,将随机数A3和通信参数B2一起作为明文消息,在消息密钥5和特定初始向量IV的作用下,用验证码加密算法对明文进行加密运算,并将运算结果的最后一个密钥分组作为验证码T3;
上述明文消息的形成方式有两种:一是随机数A3和通信参数B2的字节数进行串联;二是通信参数B2和随机数A3的字节数进行串联,本实施例中的明文消息长度为32字节;
还需要说明的是,初始向量与上述步骤S408中的初始向量是相同的。
步骤S505:计算机向USB Key发送应答返回值和另一个请求指令;
具体为,计算机向USB Key发送应答返回值,将应答返回值包括循环迭代次数N、消息密钥的意定字节长度L2、密钥生成函数标识符和消息加密算法2,并将应答返回值以一个组值3传递给计算机执行验证,组值3还包括验证码T2、第二参数加密结果和验证码T3;
计算机还向USB Key发送另一个请求指令,指令的数据域中包含个人识别码标识,还包括循环迭代次数N,还包括计算机产生的随机数A3;
步骤S506:USB Key根据密钥生成函数生成消息密钥6并输出;
具体的,USB Key将用户个人识别码、计算机返回的循环迭代次数N和消息密钥的意定字节长度L2作为密钥生成函数的输入,密钥生成函数根据输入的参数基于消息加密算法2生成消息密钥6并将消息密钥6输出;
步骤S507:USB Key用生成的消息密钥6对计算机返回的第二参数加密结果进行解密,得到一随机数结果;
上述随机数结果为一随机数和一通信参数的字节数串联;
步骤S508:USB Key内部产生验证码T4;
在本实施例中,USB Key将随机数A3和解密出的随机结果中的通信参数一起作为明文消息,在消息密钥6和特定初始向量的作用下,用验证码加密算法对明文进行加密运算,并将运算结果的最后一个密钥分组作为验证码T4;
上述明文消息的形成方式和上述步骤S504中的明文消息形成方式相同;初始向量与步骤S406中的初始向量是相同的;
步骤S509:USB Key对验证码1和生成的验证码2进行比较,还将生成的验证码T4和计算机的返回的验证码T3进行比较,判断两组比较结果是否一致;
如果有一组比较结果不一致,执行步骤S511;
如果两组比较结果均一致,则证明解密后得到的随机数结果为通信参数B2和通信参数B1’的合并结果,也可以证明计算机根据加密通信参数B1解密出来的通信参数B1’与USBKey最初产生的通信参数B1是一致的,并执行步骤S510;
步骤S510:计算机和USB Key分别将通信参数B1和通信参数B2一起作为通信密钥的种子,生成通信密钥,对后序指令信息进行安全保护。
步骤S511:USB Key向计算机报错,继续等待计算机重新发送请求指令;
上述步骤S507和步骤S508可以互换顺序。
本实施例3中步骤S401-步骤S406还可以由步骤S401’-步骤S404’来代替;具体为:
步骤S401’:计算机向USB Key发送建立通信的通信请求指令;
优选的,请求指令的数据域中包个人识别码标识,该个人识别码标识指明需要引用的个人识别码还包括一循环迭代次数N’和消息密钥2’的意定字节长度L2’,还包括计算机发送指令时产生的随机数A2’。
步骤S402’:计算机根据密钥生成函数生成消息密钥3’并输出;
计算机将用户个人识别码、随机数A2’、循环迭代次数N’和消息密钥的意定字节长度L2’作为密钥生成函数的输入,密钥生成函数根据输入的参数基于消息加密算法生2’成长度为L2’的消息密钥3’并输出消息密钥3’;
步骤S403’:USB Key接收到计算机发送的请求指令,并根据用户个人识别码标识搜索用户个人识别码,判断是否搜索到;如果否,USB Key向计算机报错,继续等待计算机重新发送请求指令;如果是,则USB Key缓存这个个人识别码,继续执行步骤S404’;
步骤S404’:USB Key根据密钥生成函数生成消息密钥4’并输出;
具体的,USB Key获取循环迭代次数N’,并基于与上述步骤S402’中相同的密钥生成函数来生成消息密钥4,计算机将用户个人识别码、请求指令中的随机数A2’、循环迭代次数N’和消息密钥的意定字节长度L2’作为密钥生成函数的输入,密钥生成函数根据输入的参数基于消息加密算法2’生成消息密钥4’,并输出。
本实施例3的USB Key在生成消息密钥的基础上交互参数,进而生成可信赖的通信密钥,使用通信密钥进行后续的通信,解决了利用USB Key进行通信存在安全隐患的问题,增强了系统的可靠性,保护了用户的信息和财产安全。
其中,上述步骤S510可以替换为步骤S510’,步骤S510’:USB Key和计算机分别使用通信参数B1和通信参数B2的组合直接作为通信密钥进行后序通信过程的保护。
在上述实施例2和实施例3中,计算机向USB Key发送建立通信的请求指令中可以不携带循环迭代次数和消息密钥的意定字节长度,循环迭代次数和消息密钥的意定字节长度预先在计算机和USB Key中分别进行设置;在生成消息密钥的过程中,在USB Key端,USB Key将搜索到的用户个人识别码、随机数(可以由USB Key产生也可以由计算机产生)、循环迭代次数和消息密钥的意定字节长度作为密钥生成函数的输入,生成消息密钥,并输出消息密钥;在计算机端,计算机将用户输入的个人识别码、随机数、循环迭代次数和消息密钥的意定字节长度作为密钥生成函数的输入,生成消息密钥并输出;USB Key和计算机利用各自生成的消息密钥进行通信。
在上述实施例2和实施例3中智能密钥设备只存储一个用户个人识别码时,计算机向USBKey发送建立通信的请求指令中可以不携带用户个人识别码标识、循环迭代次数和消息密钥的意定字节长度,循环迭代次数和消息密钥的意定字节长度预先在计算机和USB Key中分别进行设置;在生成消息密钥的过程中,在USB Key端,USB Key将存储的唯一用户个人识别码、随机数(可以由USB Key产生也可以由计算机产生)、循环迭代次数和消息密钥的意定字节长度作为密钥生成函数的输入,生成消息密钥,并输出消息密钥;在计算机端,计算机将用户输入的个人识别码、随机数、循环迭代次数和消息密钥的意定字节长度作为密钥生成函数的输入,生成消息密钥并输出;USB Key和计算机利用各自生成的消息密钥进行通信。
实施例4
本实施例4提供了一种智能密钥设备与计算机进行通信的系统,参见图6,该系统包括:智能密钥设备62和计算机64;
其中,计算机64包括:
指令发送模块642,用于发送通信请求指令,其中,通信请求指令携带有用户的个人识别码标识、循环迭代次数和意定字节长度;
个人识别码获取模块644,与指令发送模块642相连,用于根据个人识别码标识获取个人识别码;
第二密钥生成模块646,与个人识别码获取模块644相连,用于根据个人识别码、循环迭代次数和意定字节长度生成第二消息密钥;
第二通信模块648,与第二密钥生成模块646相连,用于使用第二密钥生成模块生成的第二消息密钥与智能密钥设备进行通信;
智能密钥设备62包括:
指令接收模块622,用于接收计算机发送的通信请求指令;
搜索模块624,与指令接收模块622相连,用于根据个人识别码标识搜索用户的个人识别码;
第一密钥生成模块626,与搜索模块624相连,用于根据个人识别码、循环迭代次数和意定字节长度生成第一消息密钥;
第一通信模块628,与第一密钥生成模块626相连,用于使用第一密钥生成模块生成的第一消息密钥与计算机进行通信;
本实施例提供的系统可以应用于上述实施例1-3,按照实施例2中的第一种方法,本实施例的第一密钥生成模块626包括:第一随机数生成单元,用于生成第一随机数;函数确定单元,用于确定密钥生成函数;第一消息密钥生成单元,用于将第一随机数、个人识别码、循环迭代次数和意定字节长度输入密钥生成函数,生成第一消息密钥。
智能密钥设备62还包括:组值获取模块,用于将第一随机数和密钥生成函数的标识符进行组合,得到组值;组值反馈模块,用于将组值反馈给计算机;
第二密钥生成模块646包括:密钥函数确定单元,用于根据密钥生成函数的标识符确定密钥生成函数;消息密钥生成单元,用于根据个人识别码、循环迭代次数、意定字节长度、第一随机数和密钥生成函数生成第二消息密钥。
按照实施例2中的第二种方法,计算机64还包括下述模块:
第二随机数生成单元,用于生成第二随机数;相应地,指令发送模块发送的通信请求指令还携带有第二随机数;
第二密钥生成模块包括:第二函数选择单元,用于选择系统默认的密钥生成函数;第二消息密钥生成单元,用于将第二随机数、个人识别码、循环迭代次数和意定字节长度输入密钥生成函数,生成第二消息密钥;
第一密钥生成模块626包括:第一函数选择单元,用于选择系统默认的密钥生成函数;第一消息密钥生成单元,用于将第二随机数、个人识别码、循环迭代次数和意定字节长度输入该密钥生成函数,生成第一消息密钥。
为了实现上述实施例3中的方法,第一通信模块628包括以下单元:
第一通信参数生成单元,用于生成第一通信参数;
第一验证码生成单元,用于根据第一通信参数生成第一验证码;
验证信息发送单元,用于使用第一消息密钥加密第一通信参数,并将参数加密结果和第一验证码发送给计算机;
第一通信密钥生成单元,用于收到计算机验证成功的通知后,将第一通信参数作为密钥种子生成第一通信密钥;
第一通信单元,用于使用第一通信密钥与计算机进行通信;
第一通信模块648包括:
解密单元,用于使用第一消息密钥解密对上述参数加密结果进行解密,得到第二通信参数;
第二验证码生成单元,用于根据第二通信参数生成第二验证码;
比较与通知单元,用于比较第一验证码与第二验证码是否一致,如果一致,将第二通信参数作为密钥种子生成第二通信密钥,并通知智能密钥设备验证成功;
第二通信单元,用于使用第二通信密钥与智能密钥设备进行通信。
本实施例的智能密钥设备通过个人识别码标识即可获取到个人识别码,进而根据个人识别码可以生成消息密钥,使用该消息密钥与计算机进行通信,可以防止恶意用户的窃听,解决了智能密钥设备与计算机交易存在安全隐患的问题,增强了系统的安全性,保障了用户的切身利益。
从以上的描述中可以看出,上述实施例采用智能密钥设备与计算机各自生成消息密钥的方式,生成消息密钥的过程中不再传递个人识别码口令,在智能密钥设备端,用户个人识别码是预置在智能密钥设备中的,当个人识别码不唯一时,可根据个人识别码标识来获取,当个人识别码唯一时,该个人识别码为默认使用的个人识别码;在计算机端,用户个人识别码是由用户在终端设备上进行输入;增强了系统的安全性,基于消息密钥对后续的指令进行保护,可以防止非法用户的窃听,维护了用户的利益。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种智能密钥设备与计算机进行通信的方法,其特征在于,包括:
智能密钥设备接收计算机发送的通信请求指令,其中,所述通信请求指令携带有用户的个人识别码标识、循环迭代次数和意定字节长度;
所述智能密钥设备根据所述个人识别码标识搜索用户的个人识别码;
所述智能密钥设备根据所述个人识别码、所述循环迭代次数和所述意定字节长度生成第一消息密钥;
所述计算机根据所述个人识别码、所述循环迭代次数和所述意定字节长度生成第二消息密钥;
所述智能密钥设备和所述计算机分别使用所述第一消息密钥和所述第二消息密钥进行通信。
2.根据权利要求1所述的方法,其特征在于,所述智能密钥设备根据所述个人识别码、所述循环迭代次数和所述意定字节长度生成第一消息密钥包括:
所述智能密钥设备生成第一随机数;
所述智能密钥设备确定密钥生成函数;
所述智能密钥设备将所述第一随机数、所述个人识别码、所述循环迭代次数和所述意定字节长度输入所述密钥生成函数,生成所述第一消息密钥。
3.根据权利要求2所述的方法,其特征在于,
所述方法还包括:所述智能密钥设备将所述第一随机数和所述密钥生成函数的标识符进行组合,得到组值;将所述组值反馈给所述计算机;
所述计算机根据所述个人识别码、所述循环迭代次数和所述意定字节长度生成第二消息密钥包括:
所述计算机接收到所述组值后,根据所述密钥生成函数的标识符确定所述密钥生成函数;
所述计算机将所述个人识别码、所述循环迭代次数、所述意定字节长度、所述第一随机数输入所述密钥生成函数,生成第二消息密钥。
4.根据权利要求1所述的方法,其特征在于,所述通信请求指令还携带有第二随机数;
所述智能密钥设备根据所述个人识别码、所述循环迭代次数和所述意定字节长度生成第一消息密钥包括:所述智能密钥设备选择系统默认的密钥生成函数,将所述第二随机数、所述个人识别码、所述循环迭代次数和所述意定字节长度输入所述密钥生成函数,生成第一消息密钥;
所述计算机根据所述个人识别码、所述循环迭代次数和所述意定字节长度生成第二消息密钥包括:所述计算机选择系统默认的密钥生成函数,将所述第二随机数、所述个人识别码、所述循环迭代次数和所述意定字节长度输入所述密钥生成函数,生成所述第二消息密钥。
5.根据权利要求1所述的方法,其特征在于,所述智能密钥设备根据所述个人识别码标识搜索所述用户的个人识别码失败时,所述方法还包括:
所述智能密钥设备向所述计算机反馈搜索失败消息。
6.根据权利要求2-4任一项所述的方法,其特征在于,所述智能密钥设备和所述计算机分别使用所述第一消息密钥和所述第二消息密钥进行通信包括:
所述智能密钥设备生成第一通信参数;
所述智能密钥设备根据所述第一通信参数生成第一验证码;
所述智能密钥设备使用所述第一消息密钥加密所述第一通信参数,并将参数加密结果和所述第一验证码发送给所述计算机;
所述计算机使用所述第二消息密钥对所述参数加密结果进行解密,得到第二通信参数;根据所述第二通信参数生成第二验证码;
所述计算机比较所述第一验证码与所述第二验证码是否一致;
如果一致,所述第一通信参数与第二通信参数相同,所述计算机将所述第二通信参数作为密钥种子生成第二通信密钥,并通知所述智能密钥设备验证成功;
所述智能密钥设备收到所述通知后,将所述第一通信参数作为密钥种子生成所述第一通信密钥;
所述智能密钥设备和所述计算机分别使用所述第一通信密钥和所述第二通信密钥进行通信;
如果不一致,所述智能密钥设备和所述计算机停止通信。
7.根据权利要求2-4任一项所述的方法,其特征在于,所述智能密钥设备和所述计算机分别使用所述第一消息密钥和第二消息密钥计算机进行通信包括:
所述智能密钥设备生成第一通信参数;
所述智能密钥设备根据所述第一通信参数生成第一验证码;
所述智能密钥设备使用所述第一消息密钥加密所述第一通信参数,并将加密后的所述第一通信参数和所述第一验证码发送给所述计算机;
所述计算机使用所述第二消息密钥对所述加密后的所述第一通信参数进行解密,得到第二通信参数;
所述计算机根据所述第二通信参数生成第二验证码;
所述计算机生成第三随机数和第三通信参数,并根据所述第三随机数生成第三消息密钥,使用所述第三消息密钥对由所述第二通信参数和所述第三通信参数组成的字符串进行加密,得到加密后的通信参数;
所述计算机根据所述第三随机数和第三通信参数生成第三验证码;
所述计算机通过反馈指令将所述第三随机数、所述第二验证码、所述第三验证码、所述第三通信参数和所述加密后的通信参数反馈给所述智能密钥设备;
所述智能密钥设备收到所述反馈指令后,根据所述反馈指令携带的所述第三随机数、所述第三验证码、所述第三通信参数和所述加密后的通信参数生成第四消息密钥和第四验证码;
所述智能密钥设备比较所述第一验证码与所述第二验证码是否一致,以及比较所述第三验证码与所述第四验证码是否一致;如果两组比较均一致,则所述第一通信参数与第二通信参数相同,所述智能密钥设备通知所述计算机验证成功;
所述智能密钥设备将所述第一通信参数和所述第三通信参数组成的字符串作为密钥种子生成所述第一通信密钥;
所述计算机将所述第二通信参数和所述第三通信参数组成的字符串作为密钥种子,生成第二通信密钥;
所述智能密钥设备和所述计算机分别使用所述第一通信密钥和所述第二通信密钥进行通信;
如果两组比较有一组不一致,所述智能密钥设备和所述计算机停止通信。
8.一种智能密钥设备与计算机进行通信的系统,其特征在于,包括:智能密钥设备和计算机;
其中,所述计算机包括:
指令发送模块,用于发送通信请求指令,其中,所述通信请求指令携带有用户的个人识别码标识、循环迭代次数和意定字节长度;
个人识别码获取模块,用于根据所述个人识别码标识获取个人识别码;
第二密钥生成模块,用于根据所述个人识别码、所述循环迭代次数和意定字节长度生成第二消息密钥;
第二通信模块,用于使用所述第二密钥生成模块生成的所述第二消息密钥与所述智能密钥设备进行通信;
所述智能密钥设备包括:
指令接收模块,用于接收所述计算机发送的所述通信请求指令;
搜索模块,用于根据所述个人识别码标识搜索所述用户的个人识别码;
第一密钥生成模块,用于根据所述个人识别码、循环迭代次数和意定字节长度生成所述第一消息密钥;
第一通信模块,用于使用所述第二密钥生成模块生成的所述第一消息密钥与所述计算机进行通信。
9.根据权利要求8所述的系统,其特征在于,所述第一密钥生成模块包括:
第一随机数生成单元,用于生成第一随机数;
函数确定单元,用于确定密钥生成函数;
第一消息密钥生成单元,用于将所述第一随机数、所述个人识别码、所述循环迭代次数和所述意定字节长度输入所述密钥生成函数,生成第一消息密钥。
10.根据权利要求9所述的系统,其特征在于,所述智能密钥设备还包括:
组值获取模块,用于将所述第一随机数和所述密钥生成函数的标识符进行组合,得到组值;
组值反馈模块,用于将所述组值反馈给所述计算机;
所述第二密钥生成模块包括:
密钥函数确定单元,用于根据所述密钥生成函数的标识符确定所述密钥生成函数;
消息密钥生成单元,用于将所述个人识别码、所述循环迭代次数、所述意定字节长度、所述第一随机数输入所述密钥生成函数,生成第二消息密钥。
11.根据权利要求8所述的系统,其特征在于,所述计算机还包括:
第二随机数生成单元,用于生成第二随机数;相应地,所述指令发送模块发送的通信请求指令还携带有第二随机数;
所述第二密钥生成模块包括:第二函数选择单元,用于选择系统默认的密钥生成函数;第二消息密钥生成单元,用于将所述第二随机数、所述个人识别码、所述循环迭代次数和所述意定字节长度输入所述密钥生成函数,生成第二消息密钥;
所述第一密钥生成模块包括:第一函数选择单元,用于选择系统默认的密钥生成函数;第一消息密钥生成单元,用于将所述第二随机数、所述个人识别码、所述循环迭代次数和所述意定字节长度输入所述密钥生成函数,生成第一消息密钥。
12.根据权利要求10或11所述的系统,其特征在于,
所述第一通信模块包括:
第一通信参数生成单元,用于生成第一通信参数;
第一验证码生成单元,用于根据所述第一通信参数生成第一验证码;
验证信息发送单元,用于使用所述第一消息密钥加密所述第一通信参数,并将参数加密结果和所述第一验证码发送给所述计算机;
第一通信密钥生成单元,用于收到所述计算机发送的验证成功的通知后,将所述第一通信参数作为密钥种子生成所述第一通信密钥;
第一通信单元,用于使用所述第一通信密钥与所述计算机进行通信;
所述第二通信模块包括:
解密单元,用于使用所述第二消息密钥解密所述参数加密结果,得到第二通信参数;
第二验证码生成单元,用于根据所述第二通信参数生成第二验证码;
比较与通知单元,用于比较所述第一验证码与所述第二验证码是否一致,如果一致,将所述第二通信参数作为密钥种子生成第二通信密钥,并通知所述智能密钥设备验证成功;
第二通信单元,用于使用所述第二通信密钥与所述智能密钥设备进行通信。
CN201110147059.XA 2011-06-01 2011-06-01 智能密钥设备与计算机进行通信的方法和系统 Expired - Fee Related CN102227106B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110147059.XA CN102227106B (zh) 2011-06-01 2011-06-01 智能密钥设备与计算机进行通信的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110147059.XA CN102227106B (zh) 2011-06-01 2011-06-01 智能密钥设备与计算机进行通信的方法和系统

Publications (2)

Publication Number Publication Date
CN102227106A true CN102227106A (zh) 2011-10-26
CN102227106B CN102227106B (zh) 2014-04-30

Family

ID=44808065

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110147059.XA Expired - Fee Related CN102227106B (zh) 2011-06-01 2011-06-01 智能密钥设备与计算机进行通信的方法和系统

Country Status (1)

Country Link
CN (1) CN102227106B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102831362A (zh) * 2012-07-25 2012-12-19 飞天诚信科技股份有限公司 一种安全生产智能密钥设备的方法及装置
CN103235907A (zh) * 2013-03-26 2013-08-07 北京深思数盾科技有限公司 一种采用智能卡设备保护软件的方法及系统
WO2015161691A1 (zh) * 2014-04-25 2015-10-29 天地融科技股份有限公司 数据安全交互方法和系统
CN106790165A (zh) * 2016-12-29 2017-05-31 北京信安世纪科技有限公司 一种防止重放攻击的方法
CN112487408A (zh) * 2020-12-24 2021-03-12 潍柴动力股份有限公司 用于车内ecu的安全访问方法、系统及存储介质
CN114650151A (zh) * 2020-12-15 2022-06-21 宝能汽车集团有限公司 基于车辆can总线的数据传输方法、装置、系统和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006018889A1 (ja) * 2004-08-20 2006-02-23 Mitsubishi Denki Kabushiki Kaisha 端末装置
CN101034986A (zh) * 2007-01-15 2007-09-12 北京飞天诚信科技有限公司 一种安全使用智能密钥装置的方法及系统
CN101277182A (zh) * 2008-03-14 2008-10-01 北京信联恒业通讯技术有限公司 基于公开密钥体系-用户身份识别卡获取动态口令的方法
CN101340436A (zh) * 2008-08-14 2009-01-07 普天信息技术研究院有限公司 基于便携式存储设备实现远程访问控制的方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006018889A1 (ja) * 2004-08-20 2006-02-23 Mitsubishi Denki Kabushiki Kaisha 端末装置
CN101034986A (zh) * 2007-01-15 2007-09-12 北京飞天诚信科技有限公司 一种安全使用智能密钥装置的方法及系统
CN101277182A (zh) * 2008-03-14 2008-10-01 北京信联恒业通讯技术有限公司 基于公开密钥体系-用户身份识别卡获取动态口令的方法
CN101340436A (zh) * 2008-08-14 2009-01-07 普天信息技术研究院有限公司 基于便携式存储设备实现远程访问控制的方法及装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102831362A (zh) * 2012-07-25 2012-12-19 飞天诚信科技股份有限公司 一种安全生产智能密钥设备的方法及装置
CN102831362B (zh) * 2012-07-25 2014-12-10 飞天诚信科技股份有限公司 一种安全生产智能密钥设备的方法及装置
CN103235907A (zh) * 2013-03-26 2013-08-07 北京深思数盾科技有限公司 一种采用智能卡设备保护软件的方法及系统
CN103235907B (zh) * 2013-03-26 2018-04-27 北京深思数盾科技股份有限公司 一种采用智能卡设备保护软件的方法及系统
WO2015161691A1 (zh) * 2014-04-25 2015-10-29 天地融科技股份有限公司 数据安全交互方法和系统
CN106790165A (zh) * 2016-12-29 2017-05-31 北京信安世纪科技有限公司 一种防止重放攻击的方法
CN114650151A (zh) * 2020-12-15 2022-06-21 宝能汽车集团有限公司 基于车辆can总线的数据传输方法、装置、系统和存储介质
CN112487408A (zh) * 2020-12-24 2021-03-12 潍柴动力股份有限公司 用于车内ecu的安全访问方法、系统及存储介质
CN112487408B (zh) * 2020-12-24 2022-08-23 潍柴动力股份有限公司 用于车内ecu的安全访问方法、系统及存储介质

Also Published As

Publication number Publication date
CN102227106B (zh) 2014-04-30

Similar Documents

Publication Publication Date Title
EP3289723B1 (en) Encryption system, encryption key wallet and method
CN101064595B (zh) 一种计算机网络安全输入认证系统和方法
US9166793B2 (en) Efficient authentication for mobile and pervasive computing
EP2361462B1 (en) Method for generating an encryption/decryption key
CN101102194B (zh) 一种otp设备及利用该设备进行身份认证的方法
CN103338215A (zh) 基于国密算法建立tls通道的方法
CN102227106B (zh) 智能密钥设备与计算机进行通信的方法和系统
CN101815091A (zh) 密码提供设备、密码认证系统和密码认证方法
CN102780698A (zh) 物联网平台中用户终端安全通信的方法
CN110505055B (zh) 基于非对称密钥池对和密钥卡的外网接入身份认证方法和系统
CN107135070A (zh) Rsa密钥对和证书的注入方法、架构及系统
CN102945526A (zh) 一种提高移动设备在线支付安全的装置及方法
CN106357679B (zh) 密码认证的方法、系统及客户端、服务器和智能设备
CN109544747A (zh) 智能门锁的加密密钥更新方法、系统和计算机存储介质
CN108401494B (zh) 一种传输数据的方法及系统
KR101284155B1 (ko) 일회용 패스워드(otp)를 이용한 rfid 인증 처리방법
CN115276978A (zh) 一种数据处理方法以及相关装置
CN113591109B (zh) 可信执行环境与云端通信的方法及系统
CN110519222A (zh) 基于一次性非对称密钥对和密钥卡的外网接入身份认证方法和系统
CN109792380B (zh) 一种传递密钥的方法、终端及系统
CN201717885U (zh) 密码提供设备和密码认证系统
US11463251B2 (en) Method for secure management of secrets in a hierarchical multi-tenant environment
Tapiador et al. Cryptanalysis of Song's advanced smart card based password authentication protocol
CN104579692A (zh) 一种基于智能卡的信息处理方法
CN108352990B (zh) 一种传输数据的方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140430