本申请涉及安全通信技术领域,特别是涉及基于非对称密钥池和代理签名的应用系统近距离节能通信方法和系统。
背景技术:
随着信息化技术和社会经济的不断发展,人们的生活水平得到了不断的提高,生活节奏也逐渐加快,人们在日常生活中逐渐出现了各种需要近距离身份认证的场景,如门禁刷卡、交通刷卡、上班考勤等。随着智能化设备的逐渐增加,人们对智能化的操作以及数据传输的安全提出了更高的要求。一般使用非对称密钥加密来保证数据的安全性,非对称密钥加密需要使用不同的密钥来分别完成加密和解密操作,一个公开发布,即公钥,另一个由用户自己秘密保存,即私钥。信息发送者用公钥去加密,而信息接收者用私钥去解密;或者信息发送者用私钥去加密,而信息接收者用公钥去解密。一般身份认证方法中需要使用数字签名技术,由于应用客户端常为低性能设备,计算能力和存储空间是有限的,而且电池的容量也不能使设备持续使用,因此不能进行复杂的运算,必须选择合适的数字签名算法。
代理签名方案是一种不错的选择。代理签名(proxysignature)就是:原始签名人(originalsigner)授权他的签名权给代理签名人(proxysigner),然后让代理签名人代表原始签名人生成有效的签名。代理签名方案包括如下几个部分:初始化过程(签名体制的参数、用户的密钥等)、权力委托过程、代理签名的生成过程和代理签名的验证过程。
正如大多数人所了解的,量子计算机在密码破解上有着巨大潜力。当今主流的非对称(公钥)加密算法,如rsa加密算法,大多数都是基于大整数的因式分解或者有限域上的离散对数的计算这两个数学难题。他们的破解难度也就依赖于解决这些问题的效率。传统计算机上,要求解这两个数学难题,花费时间为指数时间(即破解时间随着公钥长度的增长以指数级增长),这在实际应用中是无法接受的。而为量子计算机量身定做的秀尔算法可以在多项式时间内(即破解时间随着公钥长度的增长以k次方的速度增长,其中k为与公钥长度无关的常数)进行整数因式分解或者离散对数计算,从而为rsa、离散对数加密算法的破解提供可能。
现有技术存在的问题:
(1)现有技术中,应用服务器没有可靠的防护措施。应用服务器是应用系统的中心网元,而且有internet上网能力,很有可能被感染病毒木马,从而被窃取信息;或者被攻击导致瘫痪,从而导致整个应用系统方案的瘫痪。
(2)现有技术中,应用客户端密钥存储于应用客户端存储器中,暴露于应用客户端的病毒木马的威胁之下,可以被恶意软件或恶意操作窃取。
(3)由于量子计算机能快速通过公钥得到对应的私钥,因此现有的建立在公私钥基础之上的应用系统通信方法容易被量子计算机破解。
(4)如果对低功耗的应用客户端进行公钥、私钥算法计算,则低功耗的应用客户端难以承受其计算量,不仅计算缓慢,而且如果其为电池供电则容易导致电量迅速消耗完毕。
(5)如果密钥卡内存储对称密钥池,则作为通信中心的应用服务器需要存储多个大容量对称密钥池,将极大消耗应用服务器的存储空间。
技术实现要素:
基于此,有必要针对上述技术问题,提供一种通信安全,应用客户端计算要求低、续航长,应用服务器存储要求低的基于非对称密钥池和代理签名的应用系统近距离节能通信方法和系统。
本申请公开了基于非对称密钥池和代理签名的应用系统近距离节能通信方法,实施在第一终端,所述通信方法包括:
获取来自第二终端的第一加密参数nm并生成第二加密参数nc,将第一加密参数nm和第二加密参数nc发送给服务器;所述第一加密参数nm用于供服务器生成第一密钥km,以及第一签名signsc,所述第二加密参数nc用于供服务器生成第二密钥kc;
获取来自服务器的第三加密参数ns,利用第二密钥kc加密的第一签名signsc,会话密钥kmc;解密并验证第一签名signsc后利用会话密钥kmc对第一加密参数nm,第二加密参数nc生成第一认证码maccm;将第三加密参数ns和maccm发送给第二终端;所述第三加密参数ns供所述第二终端查表得到第一密钥km并验证第一认证码maccm后生成第二认证码macmc;
获取来自第二终端的第二认证码macmc和第四加密参数σm并验证后利用第一加密参数nm,第三加密参数ns以及第四加密参数σm生成第二签名signm,利用第二加密参数nc和第三加密参数ns形成第三签名signc;向所述服务器发送利用第二密钥kc加密的第二签名signm和第三签名signc;所述第二签名signm和第三签名signc供所述服务器验证。
本申请还公开了基于非对称密钥池和代理签名的应用系统近距离节能通信方法,实施在服务器,所述通信方法包括:
获取来自第一终端第一加密参数nm和第二加密参数nc并生成第三加密参数ns和会话密钥kmc;利用第一加密参数nm和第三加密参数ns生成第一密钥km,利用第二加密参数和第三加密参数ns生成nc第二密钥kc;利用第一加密参数nm,第三加密参数ns,会话密钥kmc以及第一密钥km生成第一签名signsc;向所述第一终端发送第三加密参数ns,利用第二密钥kc加密的第一签名signsc,会话密钥kmc;所述第一签名signsc,会话密钥kmc用于供所述第一终端生成第二签名signm和第三签名signc;
获取来自所述第一终端的第二签名signm和第三签名signc;利用第一终端公钥和第二终端公钥对所述第三签名signc验证后验证代理签名有效性,并在日志中记录。
本申请还公开了基于非对称密钥池和代理签名的应用系统近距离节能通信方法,实施在第二终端,所述通信方法包括:
向第一终端发送第一加密参数nm,所述第一加密参数nm用于供所述第一终端转发至服务器生成会话密钥kmc并接受所述会话密钥kmc后生成第一认证码maccm;
获取来自所述第一终端的第二加密参数nc,第一认证码maccm以及服务器生成的第三加密参数ns,利用第一密钥km加密的会话密钥kmc和第一加密参数nm;利用第一加密参数nm和第三加密参数ns查表得到第一密钥km;解密并验证所述第一加密参数nm后利用会话密钥kmc验证第一认证码maccm;
生成并利用第六加密参数nm1和第五加密参数nm2生成第四加密参数σm,利用会话密钥kmc对第一加密参数nm,第二加密参数nc以及第四加密参数σm制作第二认证码macmc,向所述第一终端发送利用会话密钥kmc加密的四加密参数σm和第二认证码macmc;所述第二认证码macmc和第四加密参数σm用于供所述第一终端生成第二签名signm和第三签名signc被所述服务器验证。
本申请还公开了基于非对称密钥池和代理签名的应用系统近距离节能通信方法,所述通信方法包括:
第二终端向第一终端发送第一加密参数nm;
所述第一终端生成第二加密参数nc,将第一加密参数nm和第二加密参数nc发送给服务器;
所述服务器生成第三加密参数ns和会话密钥kmc;利用第一加密参数nm和第三加密参数ns生成第一密钥km,利用第二加密参数和第三加密参数ns生成nc第二密钥kc;利用第一加密参数nm,第三加密参数ns,会话密钥kmc以及第一密钥km生成第一签名signsc;向所述第一终端发送第三加密参数ns,利用第二密钥kc加密的第一签名signsc,会话密钥kmc;
所述第一终端解密并验证第一签名signsc后利用会话密钥kmc对第一加密参数nm,第二加密参数nc以及第一终端参数cid生成第一认证码maccm;将第三加密参数ns和maccm发送给第二终端;
所述第二终端利用第一加密参数nm和第三加密参数ns查表得到第一密钥km;解密并验证所述第一加密参数nm后利用会话密钥kmc验证第一认证码maccm;生成并利用第六加密参数nm1和第五加密参数nm2生成第四加密参数σm,利用会话密钥kmc对第一加密参数nm,第二加密参数nc以及第四加密参数σm制作第二认证码macmc,向所述第一终端发送利用会话密钥kmc加密的第四加密参数σm和第二认证码macmc;
所述第一终端验证第二认证码macmc后利用第一加密参数nm,第三加密参数ns以及第四加密参数σm生成第二签名signm,利用第二加密参数nc和第三加密参数ns形成第三签名signc;向所述服务器发送利用第二密钥kc加密的第二签名signm和第三签名signc;
所述服务器利用第一终端公钥和第二终端公钥对所述第三签名signc验证后验证代理签名有效性,并在日志中记录。
进一步的,在上述技术方案中,所述服务器验证所述第三签名signc和代理签名有效性后生成事件参数mntf,并利用所述第三加密参数ns和事件参数mntf生成第四签名signntf,向所述第一终端发送利用kc加密的事件参数mntf和第四签名signntf;
所述第一终端验证所述第四签名signntf后按照所述事件参数mntf执行相应操作。
进一步的,在上述技术方案中,所述服务器配置有服务器密钥卡,所述服务器密钥卡内存储有第一终端公钥池,第二终端公钥池,服务站公钥池以及服务站私钥池;所述第二终端配置有第二终端密钥卡,所述第二终端密钥卡内存储有对称密钥池,第二终端公钥池以及第二终端私钥池;所述第一终端内存储有第一终端密钥卡,所述第一终端密钥卡中存储有第一终端私钥池,第二终端公钥池,服务站公钥池。
本申请还公开了第一终端设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述技术方案中的所述通信方法步骤。
本申请还公开了服务器设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述技术方案中的所述通信方法步骤。
本申请还公开了第二终端设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述技术方案中的所述通信方法步骤。
本申请还公开了基于非对称密钥池和代理签名的应用系统近距离节能通信系统,包括设有第一终端,第二终端,服务器以及通信网络;所述服务器配置有服务器密钥卡,所述服务器密钥卡内存储有第一终端公钥池,第二终端公钥池,服务站公钥池以及服务站私钥池;所述第二终端配置有第二终端密钥卡,所述第二终端密钥卡内存储有对称密钥池,第二终端公钥池以及第二终端私钥池;所述第一终端内存储有第一终端密钥卡,所述第一终端密钥卡中存储有第一终端私钥池,第二终端公钥池,服务站公钥池;
所述第一终端,第二终端,服务器以及通信网络通过所述通信网络实现上述技术方案中的所述通信方法步骤。
本申请的技术方案的技术优点将在下文中予以阐述。
附图说明
图1为本发明实施例提供的应用系统组网图;
图2为应用服务器密钥卡密钥区的结构示意图;
图3为应用服务器密钥卡密钥区中公钥池的结构示意图;
图4为应用ic卡密钥卡密钥区的结构示意图;
图5为应用客户端密钥卡密钥区中对称密钥池的结构示意图;
图6为本发明实施例提供的获取公私钥的流程图;
图7为密钥协商过程的通信时序图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。本申请中的各名称以字母和数字组合为准,例如第二密钥kc,真随机数kc,kc,随机数kc在下文表示同一含义,即第二密钥kc;再例如第一加密参数nm,nm,真随机数nm在下文中表示同一含义,即第一加密参数nm,其余名称同理。
本申请公开了基于非对称密钥池和代理签名的应用系统近距离节能通信方法,实施在第一终端,通信方法包括:
获取来自第二终端的第一加密参数nm并生成第二加密参数nc,将第一加密参数nm和第二加密参数nc发送给服务器;第一加密参数nm用于供服务器生成第一密钥km,以及第一签名signsc,第二加密参数nc用于供服务器生成第二密钥kc;
获取来自服务器的第三加密参数ns,利用第二密钥kc加密的第一签名signsc,会话密钥kmc;解密并验证第一签名signsc后利用会话密钥kmc对第一加密参数nm,第二加密参数nc生成第一认证码maccm;将第三加密参数ns和maccm发送给第二终端;第三加密参数ns供第二终端查表得到第一密钥km并验证第一认证码maccm后生成第二认证码macmc;
获取来自第二终端的第二认证码macmc和第四加密参数σm并验证后利用第一加密参数nm,第三加密参数ns以及第四加密参数σm生成第二签名signm,利用第二加密参数nc和第三加密参数ns形成第三签名signc;向服务器发送利用第二密钥kc加密的第二签名signm和第三签名signc;第二签名signm和第三签名signc供服务器验证。
本申请还公开了基于非对称密钥池和代理签名的应用系统近距离节能通信方法,实施在服务器,通信方法包括:
获取来自第一终端第一加密参数nm和第二加密参数nc并生成第三加密参数ns和会话密钥kmc;利用第一加密参数nm和第三加密参数ns生成第一密钥km,利用第二加密参数和第三加密参数ns生成nc第二密钥kc;利用第一加密参数nm,第三加密参数ns,会话密钥kmc以及第一密钥km生成第一签名signsc;向第一终端发送第三加密参数ns,利用第二密钥kc加密的第一签名signsc,会话密钥kmc;第一签名signsc,会话密钥kmc用于供第一终端生成第二签名signm和第三签名signc;
获取来自第一终端的第二签名signm和第三签名signc;利用第一终端公钥和第二终端公钥对第三签名signc验证后验证代理签名有效性,并在日志中记录。
本申请还公开了基于非对称密钥池和代理签名的应用系统近距离节能通信方法,实施在第二终端,通信方法包括:
向第一终端发送第一加密参数nm,第一加密参数nm用于供第一终端转发至服务器生成会话密钥kmc并接受会话密钥kmc后生成第一认证码maccm;
获取来自第一终端的第二加密参数nc,第一认证码maccm以及服务器生成的第三加密参数ns,利用第一密钥km加密的会话密钥kmc和第一加密参数nm;利用第一加密参数nm和第三加密参数ns查表得到第一密钥km;解密并验证第一加密参数nm后利用会话密钥kmc验证第一认证码maccm;
生成并利用第六加密参数nm1和第五加密参数nm2生成第四加密参数σm,利用会话密钥kmc对第一加密参数nm,第二加密参数nc以及第四加密参数σm制作第二认证码macmc,向第一终端发送利用会话密钥kmc加密的四加密参数σm和第二认证码macmc;第二认证码macmc和第四加密参数σm用于供第一终端生成第二签名signm和第三签名signc被服务器验证。
本申请还公开了基于非对称密钥池和代理签名的应用系统近距离节能通信方法,通信方法包括:
第二终端向第一终端发送第一加密参数nm;
第一终端生成第二加密参数nc,将第一加密参数nm和第二加密参数nc发送给服务器;
服务器生成第三加密参数ns和会话密钥kmc;利用第一加密参数nm和第三加密参数ns生成第一密钥km,利用第二加密参数和第三加密参数ns生成nc第二密钥kc;利用第一加密参数nm,第三加密参数ns,会话密钥kmc以及第一密钥km生成第一签名signsc;向第一终端发送第三加密参数ns,利用第二密钥kc加密的第一签名signsc,会话密钥kmc;
第一终端解密并验证第一签名signsc后利用会话密钥kmc对第一加密参数nm,第二加密参数nc以及第一终端参数cid生成第一认证码maccm;将第三加密参数ns和maccm发送给第二终端;
第二终端利用第一加密参数nm和第三加密参数ns查表得到第一密钥km;解密并验证第一加密参数nm后利用会话密钥kmc验证第一认证码maccm;生成并利用第六加密参数nm1和第五加密参数nm2生成第四加密参数σm,利用会话密钥kmc对第一加密参数nm,第二加密参数nc以及第四加密参数σm制作第二认证码macmc,向第一终端发送利用会话密钥kmc加密的第四加密参数σm和第二认证码macmc;
第一终端验证第二认证码macmc后利用第一加密参数nm,第三加密参数ns以及第四加密参数σm生成第二签名signm,利用第二加密参数nc和第三加密参数ns形成第三签名signc;向服务器发送利用第二密钥kc加密的第二签名signm和第三签名signc;
服务器利用第一终端公钥和第二终端公钥对第三签名signc验证后验证代理签名有效性,并在日志中记录。
进一步的,在上述技术方案中,服务器验证第三签名signc和代理签名有效性后生成事件参数mntf,并利用第三加密参数ns和事件参数mntf生成第四签名signntf,向第一终端发送利用kc加密的事件参数mntf和第四签名signntf;
第一终端验证第四签名signntf后按照事件参数mntf执行相应操作。
进一步的,在上述技术方案中,服务器配置有服务器密钥卡,服务器密钥卡内存储有第一终端公钥池,第二终端公钥池,服务站公钥池以及服务站私钥池;第二终端配置有第二终端密钥卡,第二终端密钥卡内存储有对称密钥池,第二终端公钥池以及第二终端私钥池;第一终端内存储有第一终端密钥卡,第一终端密钥卡中存储有第一终端私钥池,第二终端公钥池,服务站公钥池。
本申请还公开了第一终端设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述技术方案中的通信方法步骤。
本申请还公开了服务器设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述技术方案中的通信方法步骤。
本申请还公开了第二终端设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述技术方案中的通信方法步骤。
本申请还公开了基于非对称密钥池和代理签名的应用系统近距离节能通信系统,包括设有第一终端,第二终端,服务器以及通信网络;服务器配置有服务器密钥卡,服务器密钥卡内存储有第一终端公钥池,第二终端公钥池,服务站公钥池以及服务站私钥池;第二终端配置有第二终端密钥卡,第二终端密钥卡内存储有对称密钥池,第二终端公钥池以及第二终端私钥池;第一终端内存储有第一终端密钥卡,第一终端密钥卡中存储有第一终端私钥池,第二终端公钥池,服务站公钥池;
第一终端,第二终端,服务器以及通信网络通过通信网络实现上述技术方案中的通信方法步骤。
在下文中为了方便描述,应用服务器,应用服务器s服务器均指代权利要求中所述的服务器,应用终端,应用终端c均指代权利要求中所述的第一终端,应用ic卡指代权利要求中所述的第二终端。
本申请中的基于非对称密钥池和代理签名的应用系统近距离节能通信方法再具体的实施过程中,应用系统可以是各类需要近距离身份认证的系统,包括应用服务器和若干应用客户端,包括应用终端、应用ic卡,其中应用ic卡为低性能设备。应用服务器运行业务服务程序,应用客户端运行业务客户端程序。本申请的应用系统可以但不限于是:门禁系统;交通刷卡系统;考勤系统;等等。前述三种应用系统的情况下,其应用服务器分别为:门禁系统服务器、交通刷卡系统服务器、考勤系统服务器;其应用终端分别为:门禁刷卡机、交通刷卡机、考勤刷卡机;其应用ic卡分别为:门禁卡、交通卡、考勤卡。应用ic卡的物理形式可以是智能卡形式密钥卡或者手机sdkey形式密钥卡。
应用系统结构如图1所示,应用服务器s用于颁发密钥卡(给应用终端)和应用ic卡,还用于颁发会话密钥。应用服务器和应用终端使用有线网络或无线网络连接。应用ic卡和应用终端使用近距离通信方式(ble/nfc/红外)连接。
本申请中的应用服务器id为sid,使用s密钥卡。应用服务器s密钥卡密钥区具体结构如图2所示,包括公钥池和私钥池。公钥池具体结构如图3所示,包括服务器公钥池和n个客户端的n个客户端公钥池。服务器公钥池起始位置为kp0,大小为ks0。服务器私钥池的大小也为ks0。n个客户端公钥池的起始位置分别为kp1,kp2,……,kpn,n个客户端私钥池的大小分别为ks1,ks2,……,ksn。密钥池的大小从1g~4096g不等。设服务器密钥编号分别为1~m,服务器私钥池为{s1,s2,……,sm},服务器公钥池为{s1,s2,……,sm}。根据diffie-hellman协议,定义一个大素数p和一个生成元为g的乘法群g,g为模p的原根,g和p均为diffie-hellman协议的参数。服务器根据匹配的密钥卡产生真随机大整数si(i∈{1,2,……,m})作为自己的私钥,通过计算得到公钥si=gsimodp(i∈{1,2,……,m})。
乘法群g同时符合普通签名的参数要求,q为p-1的素因子,也为群g的阶。(本申请所用代理签名方法由m-u-o代理签名方案演变而来)。所述乘法群g及其相关算法参数会存储在各类密钥卡或ic卡内。
应用客户端包括应用终端c和应用ic卡m,应用终端c为高性能设备,应用ic卡m为低性能设备。本文假设应用终端id为cid,使用c密钥卡,应用ic卡id为mid,使用m密钥卡。c密钥卡结构与s密钥卡结构一致。m密钥卡密钥区具体结构如图4所示,包括应用ic卡的公钥池、私钥池和对称密钥池。其中,对称密钥池的具体结构如图5所示。设某ic卡客户端密钥编号分别为1~n,ic卡客户端私钥池为{c1,c2,……,cn},ic卡客户端公钥池为{c1,c2,……,cn},其中,cj=gcjmodp,j∈{1,2,……,n}。密钥卡颁发者即应用服务器为应用ic卡计算出所有的kij,计算方式为kij=(si)cjmodp,将密钥区(即图5中灰色区域)复制入密钥卡内。
本实施例为应用终端c和应用ic卡m通过应用服务器s进行密钥协商,并在通信过程中进行消息认证的过程。
应用服务器与应用终端协商密钥的过程如下:
应用服务器s得到应用服务器非对称密钥指针随机数rs和应用终端非对称密钥指针随机数rc。根据rs和rc,得到kc。过程如图6所示,文字描述如下:
使用rs结合特定的应用服务器非对称密钥指针函数fs得到应用服务器私钥指针ps,通过ps从应用服务器私钥池中提取应用服务器私钥sks。还可以通过ps加上应用服务器公钥池起始位置ks0得到应用服务器公钥指针kss,通过kss从公钥池中提取应用服务器公钥pks。
使用rc结合特定的应用终端非对称密钥指针函数fc得到应用终端私钥指针pc,通过pc加上应用终端公钥池起始位置ksn得到应用终端公钥指针ksc,通过ksc从公钥池中提取应用终端公钥pkc。
计算kc=(pkc)sksmodp。
应用服务器s使用kc作为密钥与应用终端c进行通信。应用终端c收到后,根据ps和pc,对应前文方法取得应用服务端公钥pks和应用终端私钥skc,令i=ps和j=pc,计算得到kij=(pks)skcmodp,即kc。如与s的通信方为低性能终端,如本申请所述应用ic卡,则可以查表得到kij。
应用ic卡m与应用终端c通过应用服务器s协商密钥的过程如图7所示,文字描述如下:
1.应用ic卡和应用终端向应用服务器发送密钥协商基本信息。
1.1应用ic卡m根据匹配的m密钥卡中的随机数发生器生成随机数nm(此处所述nm相当于上文中的rc。),与mid一起发送至应用终端c。
1.2应用终端c收到后,根据匹配的c密钥卡中的随机数发生器生成随机数nc(此处所述nc相当于上文中的rc。),将{cid||nc||mid||nm}发送至应用服务器s。该消息也作为该次密钥协商的会话id,可表示为sessid=cid||nc||mid||nm。同时,应用终端c保留sessid和nc。
2.应用服务器分发票据。
2.1应用服务器s收到应用终端c的消息后,根据匹配的s密钥卡中的随机数发生器生成随机数ns(此处所述ns相当于上文中的rs。),还生成应用ic卡m与应用终端c之间的会话密钥kmc并制作票据tm。tm由km加密,km由nm和ns计算确定,计算过程与上文相同,tm可表示为{kmc||cid||nm}km。应用服务器s将tm、kmc、mid以及nc作为msc。应用服务器s根据随机数ns从私钥池中取出私钥sksns。应用服务器s利用私钥sksns对msc签名得到signsc=sign(sksns,msc)。其中sign(k,m)表示以k为密钥、以m为消息的签名。
使用kc对msc以及signsc进行加密,kc由nc和ns计算确定,计算过程与上文相同。应用服务器s向应用终端c发送的内容可表示为sessid||ns||{msc||signsc}kc。
2.2应用终端c收到消息后,根据sessid找到nc以及收到的ns计算得到kc,使用kc解密得到msc和msc的签名signsc。应用终端c根据ns从密钥区公钥池中的服务器公钥池取出公钥pksns,应用终端c利用公钥pksns对签名signsc进行数字签名验证。验证通过后对msc进行解析,得到kmc,对msc中的nc与本地存储的nc进行验证相等后,信任kmc。然后使用kmc对nm、nc以及cid制作消息认证码,可表示为maccm=mac(kmc,nm||nc||cid)。其中mac(k,m)表示以k为密钥、以m为消息的消息认证码。将sessid||ns||tm||maccm发送至应用ic卡m。
3.进行消息认证。
3.1应用ic卡m收到后,根据sessid找到nm以及收到的ns查表得到km,解密tm得到kmc,对tm中的nm与本地存储的nm进行验证后,信任kmc。然后使用kmc对nm||nc||cid计算出maccm’,与maccm对比,若相等则完成消息认证。对maccm验证通过后,应用ic卡m计算nm得到两个在[1,m]范围内的数nm1和nm2。应用ic卡m根据nm2从ic卡公钥池取出公钥pkmnm2。应用ic卡m根据nm1和nm2从ic卡私钥池中分别取出私钥skmnm1和skmnm2。计算得到σm=skmnm1+pkmnm2*skmnm2modq。使用kmc对nm||nc||σm制作消息认证码,可表示为macmc=mac(kmc,nm||nc||σm),将sessid||{σm||macmc}kmc发送至应用终端c。
3.2应用终端c收到后,使用kmc解密得到σm||macmc,并使用kmc对nm||nc||σm计算出macmc’,与macmc对比,若相等则完成消息认证。对macmc验证通过后,应用终端c根据nm计算得到nm1和nm2,并根据nm1和nm2从密钥卡公钥池中分别取出应用ic卡的公钥pkmnm1和pkmnm2。应用终端c验证等式g^σm=pkmnm1*(pkmnm2)^pkmnm2modp是否成立。验证通过后,应用终端c将(σm,k)作为有效的代理密钥,并对nm和ns进行签名计算得到signm=sign(σm,nm||ns)。应用终端c根据nc从私钥池中取出自身私钥skcnc。使用skcnc对nc和ns进行数字签名算法得到签名signc=sign(skcnc,nc||ns)。将sessid||{signc||signm}kc发送至应用服务器s。
3.3应用服务器s收到后,使用应用终端c和应用ic卡m的公钥对signc进行数字签名验证。应用服务器s计算得到v=pkmnm1*(pkmnm2)^pkmnm2modp,并使用v与验证普通签名相同的验证运算以验证代理签名的有效性。验证通过后,完成应用ic卡m与应用终端c之间的密钥协商,并在日志中记录该事件以备事后审计。
4.1作为可选的,mntf是应用服务器s根据对应用ic卡m的认证结果对应用终端c的通知或各类操作指令。应用服务器s根据ns取出自身私钥sksns,并利用私钥sksns对mntf进行签名得到signntf=sign(sksns,mntf),应用服务器s将sessid||{mntf||signntf}kc发送至应用终端c。
4.2作为可选的,应用终端c收到后,根据sessid找到nc以及收到的ns计算得到kc,使用kc解密得到mntf和signntf。应用终端c使用应用服务器的公钥对签名signntf进行数字签名验证。验证通过后,应用终端c则接受mntf的内容,并收取通知或者执行各类操作指令。
其中根据上述步骤的归纳可以得到权利要求中实施在第一终端的基于非对称密钥池和代理签名的应用系统近距离节能通信方法,实施在第二终端的基于非对称密钥池和代理签名的应用系统近距离节能通信方法以及实施在服务器的基于非对称密钥池和代理签名的应用系统近距离节能通信方法,因此不再赘述。
密钥卡是结合了密码学技术、硬件安全隔离技术、量子物理学技术(搭载量子随机数发生器的情况下)的身份认证和加解密产品。密钥卡的内嵌芯片和操作系统可以提供密钥的安全存储和密码算法等功能。由于其具有独立的数据处理能力和良好的安全性,密钥卡成为私钥和密钥池的安全载体。每一个密钥卡可以有硬件pin码保护,pin码和硬件构成了用户使用密钥卡的两个必要因素,即所谓“双因子认证”,用户只有同时取得保存了相关认证信息的密钥卡和用户pin码,才可以登录系统。即使用户的pin码被泄露,只要用户持有的密钥卡不被盗取,合法用户的身份就不会被仿冒;如果用户的密钥卡遗失,拾到者由于不知道用户pin码,也无法仿冒合法用户的身份。总之,密钥卡使得密钥等绝密信息不以明文形式出现在主机的磁盘及内存中,从而能有效保证绝密信息的安全。
应用系统成员均配备有密钥卡,使用密钥卡存储密钥,密钥卡是独立的硬件设备,被恶意软件或恶意操作窃取密钥的可能性大大降低。同时,各所述成员利用随机数结合所述非对称密钥池提取所需应用系统成员的公钥,且应用系统成员的公钥存储在密钥卡内,保证量子计算机无法得到用户公钥,进而无法得到对应的私钥,因此降低被量子计算机破解风险。
低功耗的应用ic卡不使用公钥、私钥进行公私钥算法计算,仅需查表即可获得与应用服务器加密通信的共享密钥,另外其签名采用代理签名方法,ic卡仅需查找和少量计算即可得到代理密钥,并由应用终端来协助完成较为耗时耗能的数字签名的计算,最终利用该代理数字签名得到应用服务器的认证。因此本方案计算量小,速度快;并能为其节能,延长使用电池的应用ic卡的电池使用时间。
作为通信中心的应用服务器无需存储多个大容量对称密钥池,仅需存储多组公钥池,极大节省应用服务器的存储空间。根据上述实施例,应用服务器新增第n个应用终端时,根据对称密钥池方法,原先需要新增存储与第n个应用终端相同的密钥量,即m*n;现在仅需新增存储第n个应用终端对应的公钥池的密钥量,即n,新增密钥量大大降低。因此上述实施例极大节省应用服务器的存储空间。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明申请范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明申请的保护范围应以所附权利要求为准。
关于第一终端设备,第二终端设备,服务器设备以及系统的具体限定可以参见上文中对于通信方法的限定,在此不再赘述。上述设备中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种xxx方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。