CN117834138A - 一种适用于即时通信的密钥协商方法、系统、设备及介质 - Google Patents
一种适用于即时通信的密钥协商方法、系统、设备及介质 Download PDFInfo
- Publication number
- CN117834138A CN117834138A CN202410242349.XA CN202410242349A CN117834138A CN 117834138 A CN117834138 A CN 117834138A CN 202410242349 A CN202410242349 A CN 202410242349A CN 117834138 A CN117834138 A CN 117834138A
- Authority
- CN
- China
- Prior art keywords
- server
- client
- key
- user
- server side
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 230000006870 function Effects 0.000 claims description 78
- 238000004590 computer program Methods 0.000 claims description 25
- 230000015654 memory Effects 0.000 claims description 23
- 125000004122 cyclic group Chemical group 0.000 claims description 17
- 238000004364 calculation method Methods 0.000 claims description 16
- 238000004422 calculation algorithm Methods 0.000 claims description 5
- 238000009795 derivation Methods 0.000 claims description 4
- 230000000977 initiatory effect Effects 0.000 claims description 2
- 238000004891 communication Methods 0.000 abstract description 7
- 230000005540 biological transmission Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000004075 alteration Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开一种适用于即时通信的密钥协商方法、系统、设备及介质,密钥协商方法包括,服务器端生成并发布系统参数;客户端基于所述系统参数以及用户的注册信息生成相应的参数集合,并提交至服务器端进行注册;服务器端生成对应第一客户端的第一会话密钥和对应第二客户端的第二会话密钥;其中,第一用户自第一客户端发起向第二客户端的第二用户的密钥协商;第一客户端基于第一会话密钥生成第一加密密钥,第二客户端基于第二会话密钥生成第二加密密钥。此种技术方案能够解决即时通信系统传输内容加密面临着的密钥安全协商问题和更换设备登录时的离线消息同步问题。
Description
技术领域
本发明属于通信安全技术领域,特别涉及一种适用于即时通信的密钥协商方法、系统、设备及介质。
背景技术
随着互联网的发展和智能终端的普及,人们日常通信与工作通联越来越依赖基于公网的即时通信系统,但由于互联网的开放性,通信内容存在被监听、篡改等风险。为保证通信安全需对传输内容进行加密,密钥由通信双方自行协商产生是目前公认较安全的技术方案,但现有方法一般只在用户登录系统时验证用户身份,协商过程未对用户身份进行确认易受攻击,用户私钥仅能在本地存储,一旦更换设备登录离线消息难以同步,不满足实际使用需求。有鉴于此,本发明由此产生。
发明内容
本发明的目的,在于提供一种适用于即时通信的密钥协商方法、系统、设备及介质,能够解决即时通信系统传输内容加密面临着的密钥安全协商问题和更换设备登录时的离线消息同步问题。
为了达成上述目的,本发明的解决方案是:
一种适用于即时通信的密钥协商方法,包括,
服务器端生成并发布系统参数;
客户端基于所述系统参数以及用户的注册信息生成相应的参数集合,并提交至服务器端进行注册;
服务器端生成对应第一客户端的第一会话密钥和对应第二客户端的第二会话密钥;其中,第一用户自第一客户端发起向第二客户端的第二用户的密钥协商;
第一客户端基于第一会话密钥生成第一加密密钥,第二客户端基于第二会话密钥生成第二加密密钥。
其中,服务器端生成并发布系统参数,包括,
选择特征数为大素数的有限域,并在有限域上选取一条满足安全级别的
阶为的椭圆曲线,为大素数;于该椭圆曲线上选取基点,并根据基点产生一
个循环加法群;
选取3个安全的单向函数、、,并选取密钥派生函数;
向各客户端公开服务器标识和系统参数。
其中,客户端基于所述系统参数以及用户的注册信息生成相应的参数集合,包括,
获取用户的输入信息,包括用户身份标识、口令;
计算,其中为服务器端选取的哈
希函数,表示将用户身份标识、服务器标识、用户登录口
令拼接在一起后用哈希函数计算得到的哈希值,表示服务器端公开的椭圆曲
线上基点的倍点;
生成个随机数,用表示第个随机数,并基于所生成的随机数计算个一
次性预密钥,,,,其中为设定值,为服务器端公开的椭圆曲线上基点的倍点;
生成随机数、,并计算、,,其中为服务器端生成的循环加法群,和为服务器端公
开的椭圆曲线上基点的倍点和倍点;
计算加密密钥,其中为服务器端选择并公开的密钥派
生函数;将作为密钥加密随机数,得到对应的密文,其中为包含个随机数的
集合,即;
构建参数集合。
其中,和为服务器端公开的椭圆曲线上基点的倍点和倍点,其
中,、的值按需更新后,重新计算加密密钥,并同步更新密文。
其中,客户端基于所述系统参数以及用户的注册信息生成相应的参数集合,并提交至服务器端进行注册,包括,
服务器端接收参数集合并存储于服务器,生成一次性预密钥。
其中,服务器端生成对应第一客户端的第一会话密钥和对应第二客户端的第二会话密钥,包括,
第一用户通过第一客户端向服务器端发送第一消息;
服务器端基于第一消息以及第一客户端、第二客户端的参数集合分别生成对应第一客户端的第一会话密钥、对应第二客户端的第二会话密钥。
其中,第一客户端向服务器端发送第一消息,包括,
第一客户端生成随机数,其中为服务器端生成的循环加法群;
第一客户端计算第一消息,其中表示服务器端公开的椭圆曲线上基点的倍点;
第一客户端将第一消息发送至服务器端。
其中,服务器端基于第一消息以及第一客户端、第二客户端的参数集合分别生成对应第一客户端的第一会话密钥、对应第二客户端的第二会话密钥,包括,
服务器端生成随机数,其中为服务器端生成的循环加法群;
计算,,,,其中,和分别为第一用户的注册信息和第二用户的注册信息,为服务器端存储的对应第二
用户的一次性预密钥,为第一消息;
计算,其中,和分别为第一用户和第二用户的身份标识,为服务器的标识信息,为
标识拼接操作,为服务器端选取的哈希函数;
服务器端构建第一会话密钥发至第一客户端,构建第二会话密钥/>发至第二客户端。
其中,第一客户端基于第一会话密钥生成第一加密密钥,包括,
第一客户端计算、,其中为服务器端选取的哈希函数,表示将用户身份标识、服务
器标识、用户登录口令拼接在一起后用哈希函数计算得到的哈希值,为
第一客户端发起密钥协商时产生的随机数,为服务器端发来的信息;
判断是否等于,若两者不相等,则停止密钥协
商;若两者相等,则继续;其中为第一用户的用户身份标识信息,为服务器端存
储的第二用户身份标识,为服务器的标识信息,、为从服务器端接收到的参
数,为标识拼接操作,为服务器端选取的哈希函数;
计算共享秘密信息;
计算产生会话密钥,其中为服务器端选择并公开
的密钥派生函数;
根据会话密钥计算当前待加密消息的加密密钥,,当加
密的消息为产生后的第1条消息时,从产生后的第2条消息开始为加密前一条消息时所用的加密密钥,为服务器端选取的哈希函数;
第二客户端基于第二会话密钥生成第二加密密钥,包括,
第二客户端计算、,其中,为服务器端选取的哈希函数,表示将用户身份标识、服务
器标识、用户登录口令拼接在一起后用哈希函数计算得到的哈希值,为
第二用户在本地生成的用于上传到服务器端存储的一次性预密钥的随机数;
判断是否等于,若两者不相等,则停止密钥
协商;若两者相等,则继续;其中为第二用户的用户身份标识信息,为服务器端
存储的第一用户身份标识,为服务器的标识信息,、和为从服务器端接收到
的参数,为标识拼接操作,为服务器端选取的哈希函数;
计算共享秘密信息;
计算产生会话密钥,其中为服务器端选择并公开
的密钥派生函数;
根据会话密钥计算当前待加密消息的加密密钥,,当加密的消
息为产生后的第1条消息时,从产生后的第2条消息开始为加
密前一条消息时所用的加密密钥,为服务器端选取的哈希函数。
其中,还包括,第二用户自第三客户端登录,包括,
服务器端将发送至第三客户端,其中、、为第二用户发
到服务器端的参数和密文;
第三客户端计算,其中为服务器端选取的哈希
函数,表示将用户身份标识、服务器标识、用户登录口令拼接在一起后用哈希函数计算得到的哈希值;
第三客户端计算,其中和为服务器端发来的参
数;
第三客户端计算加密密钥,其中为服务器端选择并公
开的密钥派生函数;
将作为密钥用对称加密算法解密服务器端发来的密文,得到对应的明文,
其中为包含个随机数的集合,即,为一次性预密钥个数;
使用明文计算出离线消息的解密密钥。
一种云服务器,其特征在于:所述云服务器包括存储器、处理器,以及存储在所述存储器中并可在所述处理器上运行的计算机程序;所述处理器执行所述计算机程序时实现如前所述的适用于即时通信的密钥协商方法的步骤。
一种计算机设备,包括存储器、处理器,以及存储在所述存储器中并可在所述处理器上运行的计算机程序;所述处理器执行所述计算机程序时实现如前所述的适用于即时通信的密钥协商方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序;所述计算机程序被处理器执行时实现如前所述的适用于即时通信的密钥协商方法的步骤。
一种适用于即时通信的密钥协商系统,所述密钥协商系统包括如前所述的云服务器,以及如前所述的计算机设备。
采用上述方案后,本发明具有以下有益效果:
(1)本发明设计了一种基于口令的密钥认证协商方案,只有知晓用户口令才能正确计算出密钥,与普通密钥协商方法相比,可防止中间人攻击,此外,本发明支持用户离线,且在协商过程中引入服务端生成的随机数,确保即使用户使用相同参数进行密钥协商,每次生成的会话密钥都不相同,提升密钥的安全性;
(2)本发明设计了一种基于口令的用户私钥同步机制,用户通过口令与自身协商生成密钥协商生成密钥加密关键参数,将关键参数密文上传至服务器端,仅知晓正确口令的人在新设备登录后,可正确获取到密钥协商的关键参数,能确保合法用户在新设备登录后可正确解密离线消息,同时任何第三方无法获取到用户的密钥。
附图说明
图1是本发明的原理图;
图2是本发明的流程图。
具体实施方式
本发明提供一种适用于即时通信的密钥协商方法,包括,
服务器端生成并发布系统参数;
其中,服务器端生成并发布系统参数,包括,
选择特征数为大素数的有限域,并在有限域上选取一条满足安全级别的
阶为的椭圆曲线,为大素数;于该椭圆曲线上选取基点,并根据基点产生一
个循环加法群;
选取3个安全的单向函数、、,并选取密钥派生函数;
向各客户端公开服务器标识和系统参数。
客户端基于所述系统参数以及用户的注册信息生成相应的参数集合,并提交至服务器端进行注册;
其中,客户端基于所述系统参数以及用户的注册信息生成相应的参数集合,包括,
获取用户的输入信息,包括用户身份标识、口令;
计算,其中为服务器端选取的哈
希函数,表示将用户身份标识、服务器标识、用户登录口
令拼接在一起后用哈希函数计算得到的哈希值,表示服务器端公开的椭圆曲
线上基点的倍点;
生成个随机数,用表示第个随机数,并基于所生成的随机数计算个一
次性预密钥,,,,其中为设定值,为服务器端公开的椭圆曲线上基点的倍点;
生成随机数、,并计算、,,其中为服务器端生成的循环加法群,和为服务器端公
开的椭圆曲线上基点的倍点和倍点,其中,、的值按需更新后,重新计算加密密
钥,并同步更新密文;
计算加密密钥,其中为服务器端选择并公开的密钥派
生函数;将作为密钥加密随机数,得到对应的密文,其中为包含个随机数的
集合,即;
构建参数集合。
服务器端接收参数集合并存储于服务器,生成一次性预密钥;
服务器端生成对应第一客户端的第一会话密钥和对应第二客户端的第二会话密钥;其中,第一用户自第一客户端发起向第二客户端的第二用户的密钥协商;
其中,服务器端生成对应第一客户端的第一会话密钥和对应第二客户端的第二会话密钥,包括,
第一用户通过第一客户端向服务器端发送第一消息;
服务器端基于第一消息以及第一客户端、第二客户端的参数集合分别生成对应第一客户端的第一会话密钥、对应第二客户端的第二会话密钥;
其中,第一客户端向服务器端发送第一消息,包括,
第一客户端生成随机数,其中为服务器端生成的循环加法群;
第一客户端计算第一消息,其中表示服务器端公开的椭圆曲线上基点的倍点;
第一客户端将第一消息发送至服务器端。
其中,服务器端基于第一消息以及第一客户端、第二客户端的参数集合分别生成对应第一客户端的第一会话密钥、对应第二客户端的第二会话密钥,包括,
服务器端生成随机数,其中为服务器端生成的循环加法群;
计算,,,,其中,和分别为第一用户的注册信息和第二用户的注册信息,为服务器端存储的对应第二
用户的一次性预密钥,为第一消息;
计算,其中,和分别为第一用户和第二用户的身份标识,为服务器的标识信息,为
标识拼接操作,为服务器端选取的哈希函数;
服务器端构建第一会话密钥发至第一客户端,构建第二会话密钥/>发至第二客户端。
第一客户端基于第一会话密钥生成第一加密密钥,第二客户端基于第二会话密钥生成第二加密密钥;
其中,第一客户端基于第一会话密钥生成第一加密密钥,包括,
第一客户端计算、,其中为服务器端选取的哈希函数,表示将用户身份标识、服务
器标识、用户登录口令拼接在一起后用哈希函数计算得到的哈希值,为
第一客户端发起密钥协商时产生的随机数,为服务器端发来的信息;
判断是否等于,若两者不相等,则停止密钥协
商;若两者相等,则继续;其中为第一用户的用户身份标识信息,为服务器端存
储的第二用户身份标识,为服务器的标识信息,、为从服务器端接收到的参
数,为标识拼接操作,为服务器端选取的哈希函数;
计算共享秘密信息;
计算产生会话密钥,其中为服务器端选择并公开
的密钥派生函数;
根据会话密钥计算当前待加密消息的加密密钥,,当加
密的消息为产生后的第1条消息时,从产生后的第2条消息开始为加密前一条消息时所用的加密密钥,为服务器端选取的哈希函数;
其中,第二客户端基于第二会话密钥生成第二加密密钥,包括,
第二客户端计算、,其中,为服务器端选取的哈希函数,表示将用户身份标识、服务
器标识、用户登录口令拼接在一起后用哈希函数计算得到的哈希值,为
第二用户在本地生成的用于上传到服务器端存储的一次性预密钥的随机数;
判断是否等于,若两者不相等,则停止密钥
协商;若两者相等,则继续;其中为第二用户的用户身份标识信息,为服务器端
存储的第一用户身份标识,为服务器的标识信息,、和为从服务器端接收到
的参数,为标识拼接操作,为服务器端选取的哈希函数;
计算共享秘密信息;
计算产生会话密钥,其中为服务器端选择并公开
的密钥派生函数;
根据会话密钥计算当前待加密消息的加密密钥,,当加密的消
息为产生后的第1条消息时,从产生后的第2条消息开始为加
密前一条消息时所用的加密密钥,为服务器端选取的哈希函数。
其中,还包括,第二用户自第三客户端登录,包括,
服务器端将发送至第三客户端,其中、、为第二用户发
到服务器端的参数和密文;
第三客户端计算,其中为服务器端选取的哈希
函数,表示将用户身份标识、服务器标识、用户登录口
令拼接在一起后用哈希函数计算得到的哈希值;
第三客户端计算,其中和为服务器端发来的参
数;
第三客户端计算加密密钥,其中为服务器端选择并公
开的密钥派生函数;
将作为密钥用对称加密算法解密服务器端发来的密文,得到对应的明文,
其中为包含个随机数的集合,即,为一次性预密钥个数;
使用明文计算出离线消息的解密密钥。
本发明还提供一种云服务器,所述云服务器包括存储器、处理器,以及存储在所述存储器中并可在所述处理器上运行的计算机程序;其特征在于:所述处理器执行所述计算机程序时实现如权利要求1至10任一项所述的适用于即时通信的密钥协商方法的步骤。
本发明还提供一种计算机设备,包括存储器、处理器,以及存储在所述存储器中并可在所述处理器上运行的计算机程序;其中,处理器配置为运行计算机程序时,执行前述实施例中的方法步骤。
在实际应用中,上述处理器包括现场可编程门阵列(Field-Programmable GateArray,FPGA)、处理器可以为中央处理器CPU(Central Processing Unit)或数字信号处理器(DSP,Digital Signal Processing)。可以理解地,对于不同的设备,用于实现上述处理器功能的电子器件还可以为其它,本发明实施例不作具体限定。
上述存储器可以是易失性存储器(volatile memory),例如随机存取存储器(RAM,Random-Access Memory);或者非易失性存储器(non-volatile memory),例如只读存储器(ROM,Read-Only Memory),快闪存储器(flash memory),硬盘(HDD,Hard Disk Drive)或固态硬盘(SSD,Solid-State Drive);或者上述种类的存储器的组合,并向处理器提供指令和数据。
本发明还提供一种计算机可读存储介质,用于存储计算机程序。
可选的,该计算机可读存储介质可应用于本发明实施例中的任意一种方法,并且该计算机程序使得计算机执行本发明实施例的各个方法中由处理器实现的相应流程,为了简洁,在此不再赘述。
本发明还提供一种适用于即时通信的密钥协商系统,所述密钥协商系统包括上述云服务器,以及上述计算机设备。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
以下将结合图1和图2,对本发明的具体实现进行说明。
(一)系统初始化
在系统初始化阶段,服务器端生成并发布系统参数,具体步骤如下:
1、服务器端选择特征数为大素数的有限域,并在有限域上选取一条
满足安全级别的阶为(是一个大素数)的椭圆曲线,椭圆曲线上选取一个基点,
并根据基点产生一个循环加法群;
2、服务器端选取3个安全的单向函数、、,并选取一个安全的
密钥派生函数;
3、生成上述系统参数后,服务器端向系统内的客户端公开其身份标识和
系统参数。
(二)客户端注册
在系统初始化完成,协议参数发布后,客户端可向服务器端提交注册信息,注册
的具体流程如下:
1、用户在客户端输入其身份标识,其中是可在系统中唯一标识当前
注册用户身份的信息,如用户账号等;
2、用户在客户端输入符合系统要求的口令,其中口令的具体要求由系统
开发人员根据实际需要自行设定;
3、客户端计算,其中为服务
器端选取的哈希函数,表示将用户身份标识、服务器标识
、用户登录口令拼接在一起后用哈希函数计算得到的哈希值,表示服务器端公
开的椭圆曲线上基点的倍点,其中,服务器标识为系统初始化时服务器向系
统内客户端公开的参数;
4、客户端生成个随机数,用表示第个随机数,并基于所生成的随机数计算个一次性预密钥,,,,其中的
取值由系统开发人员根据实际需要自行设定,为服务器端公开的椭圆曲线上基点
的倍点;
5、客户端生成随机数、,并计算、,,其中为服务器端生成的循环加法群,和为服务器端公
开的椭圆曲线上基点的倍点和倍点,、的值可在用户在线时按需进行更新,更
新、的值需重新计算后续步骤中的,并同步更新密文;
6、客户端计算加密密钥,其中为服务器端选择并公开
的密钥派生函数;
7、将作为密钥用对称加密算法加密本流程中步骤(4)生成的随机数,得到对
应的密文,其中为包含个随机数的集合,即;
8、客户端将发送给服务器端,服务器端将接收到的存储于服务器中,一次性预密钥用户注册时生成,不足时依照
其生成流程进行补充与更新,更新操作为生成新的一次性预密钥,并用其替换旧的一次性
预密钥。
(三)密钥交换
用户向用户发送消息时,进行密钥交换生成会话密钥的流程如下:
1、用户所在的客户端执行以下操作:
(1)客户端为用户产生随机数,其中为服务器端生成的循环加法群;
(2)客户端为用户计算,其中为服务器端公开的椭圆曲线
上基点的倍点;
(3)客户端将消息发送给服务器端。
2、服务器端接收到后执行以下操作:
(1)服务器端产生随机数,其中为服务器端生成的循环加法群;
(2)计算,,,,其中,和为用户和用户注册时上传到服务器端的参数,,为服务器端从用户存储在服务器中但还未被使用的一次性预密钥中随机选取的用于作为用户
本轮密钥交换的一次性预密钥,表示是用户存储在服务器端的第个一次性预密
钥;
(3)计算,其中,和为用户和用户注册时上传到服务器端的身份标识,为服务器的标
识信息,为标识拼接操作,为服务器端选取的哈希函数;
(4)服务器端将发给客户端,将发
给客户端。
3、当接收到消息,用户所在的客户端执行以下操作:
(1)计算、,其中为服务
器端选取的哈希函数,表示将用户身份标识、服务器标识、用户登录口令拼接在一起后用哈希函数计算得到的哈希值,发起协商
操作时本地产生的随机数,为服务器端发来的信息;
(2)判断是否等于,若两者不相等,则停止协
议,若两者相等,则继续协议流程,其中为用户登录时输入的用户身份标识信息,为从服务器端获取到的用户注册时上传到服务器端的身份标识,为服务器的
标识信息,、为从服务器端接收到的参数,为标识拼接操作,为服务器端选
取的哈希函数;
(3)计算共享秘密信息;
(4)计算产生会话密钥,其中为服务器端选择并公
开的密钥派生函数;
(5)根据会话密钥计算当前待加密消息的加密密钥,,当加密
的消息为产生后的第1条消息时,从产生后的第2条消息开始
为加密前一条消息时所用的加密密钥,为服务器端选取的哈希函数。
4、当接收到消息,用户所在的客户端执行以下操作:
(1)计算、,其中,为服
务器端选取的哈希函数,表示将用户身份标识、服务器标识、用户登录口令拼接在一起后用哈希函数计算得到的哈希值,,
为用户在本地生成的用于生成第个上传到服务器端存储的一次性预密钥的随机数,
为服务器端发给用户的参数;
(2)判断是否等于,若两者不相等,则停止
协议,若两者相等,则继续协议流程,其中为用户登录时输入的用户身份标识信
息,为从服务器端获取到的用户注册时上传到服务器端的身份标识,为服务
器的标识信息,、和为从服务器端接收到的参数,为标识拼接操作,为服务
器端选取的哈希函数;
(3)计算共享秘密信息,其中;
(4)计算产生会话密钥,其中为服务器端选择并公
开的密钥派生函数;
(5)根据会话密钥计算当前待加密消息的加密密钥,,当加密
的消息为产生后的第1条消息时,从产生后的第2条消息开始
为加密前一条消息时所用的加密密钥,为服务器端选取的哈希函数。
5、、依照系统开发人员根据实际需要自行设定的密钥使用时限及可加
密的消息数量进行更新,当使用时限或消息加密数量达到要求时,则重新执行密钥交换,生
成新的会话密钥,即生成新的和。
(四)更换设备登录
当用户在新设备登录时,获取生成离线消息加密密钥关键参数的流程如下:
1、用户输入正确的信息登录系统;
2、服务器端将发送给用户,其中、、为用户发到
服务器端的参数和密文;
3、客户端计算,其中为服务器端选取的哈希函
数,表示将用户身份标识、服务器标识、用户登录口令拼接在一起后用哈希函数计算得到的哈希值;
4、客户端计算,,其中和为服务器端发来的参
数;
5、客户端计算加密密钥,其中为服务器端选择并公开
的密钥派生函数;
6、将作为密钥用对称加密算法解密服务器端发来的密文,得到对应的明文,其中为包含个随机数的集合,即,为系统开发人员根
据实际需要设定的一次性预密钥个数;
7、根据本发明所提的密钥交换操作,使用明文计算出离线消息的解密密钥。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本发明实施例中的方案可以采用各种计算机语言实现,例如,面向对象的程序设计语言Java和直译式脚本语言JavaScript等。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (13)
1.一种适用于即时通信的密钥协商方法,其特征在于:包括,
服务器端生成并发布系统参数;
客户端基于所述系统参数以及用户的注册信息生成相应的参数集合,并提交至服务器端进行注册;
服务器端生成对应第一客户端的第一会话密钥和对应第二客户端的第二会话密钥;其中,第一用户自第一客户端发起向第二客户端的第二用户的密钥协商;
第一客户端基于第一会话密钥生成第一加密密钥,第二客户端基于第二会话密钥生成第二加密密钥。
2.如权利要求1所述的方法,其特征在于:服务器端生成并发布系统参数,包括,
选择特征数为大素数的有限域/>,并在有限域/>上选取一条满足安全级别的阶为的椭圆曲线/>,/>为大素数;于该椭圆曲线/>上选取基点/>,并根据基点/>产生一个循环加法群/>;
选取3个安全的单向函数/>、/>、/>,并选取密钥派生函数/>;
向各客户端公开服务器标识和系统参数/>。
3.如权利要求1所述的方法,其特征在于:客户端基于所述系统参数以及用户的注册信息生成相应的参数集合,包括,
获取用户的输入信息,包括用户身份标识、口令/>;
计算,其中/>为服务器端选取的哈希函数,/>表示将用户身份标识/>、服务器标识/>、用户登录口令拼接在一起后用哈希函数/>计算得到的哈希值,/>表示服务器端公开的椭圆曲线上基点/>的/>倍点;
生成个随机数,用/>表示第/>个随机数,并基于所生成的随机数计算/>个一次性预密钥/>,/>,/>,/>,其中/>为设定值,/>为服务器端公开的椭圆曲线/>上基点/>的/>倍点;
生成随机数、/>,并计算/>、/>,/>,其中/>为服务器端生成的循环加法群,/>和/>为服务器端公开的椭圆曲线/>上基点/>的/>倍点和/>倍点;
计算加密密钥,其中/>为服务器端选择并公开的密钥派生函数;将/>作为密钥加密随机数/>,得到对应的密文/>,其中/>为包含/>个随机数的集合,即/>;
构建参数集合。
4.如权利要求1所述的方法,其特征在于:客户端基于所述系统参数以及用户的注册信息生成相应的参数集合,并提交至服务器端进行注册,包括,
服务器端接收参数集合并存储于服务器,生成一次性预密钥。
5.如权利要求1所述的方法,其特征在于:服务器端生成对应第一客户端的第一会话密钥和对应第二客户端的第二会话密钥,包括,
第一用户通过第一客户端向服务器端发送第一消息;
服务器端基于第一消息以及第一客户端、第二客户端的参数集合分别生成对应第一客户端的第一会话密钥、对应第二客户端的第二会话密钥。
6.如权利要求5所述的方法,其特征在于:第一客户端向服务器端发送第一消息,包括,
第一客户端生成随机数,其中/>为服务器端生成的循环加法群;
第一客户端计算第一消息,其中/>表示服务器端公开的椭圆曲线/>上基点/>的/>倍点;
第一客户端将第一消息发送至服务器端。
7.如权利要求5所述的方法,其特征在于:服务器端基于第一消息以及第一客户端、第二客户端的参数集合分别生成对应第一客户端的第一会话密钥、对应第二客户端的第二会话密钥,包括,
服务器端生成随机数,其中/>为服务器端生成的循环加法群;
计算,/>,/>,/>,其中,/>和/>分别为第一用户的注册信息和第二用户的注册信息,/>为服务器端存储的对应第二用户的一次性预密钥,/>为第一消息;
计算,其中,/>和/>分别为第一用户和第二用户的身份标识,/>为服务器的标识信息,为标识拼接操作,/>为服务器端选取的哈希函数;
服务器端构建第一会话密钥发至第一客户端,构建第二会话密钥发至第二客户端。
8.如权利要求7所述的方法,其特征在于:第一客户端基于第一会话密钥生成第一加密密钥,包括,
第一客户端计算、/>,其中/>为服务器端选取的哈希函数,/>表示将用户身份标识/>、服务器标识、用户登录口令/>拼接在一起后用哈希函数/>计算得到的哈希值,/>为第一客户端发起密钥协商时产生的随机数,/>为服务器端发来的信息;
判断是否等于/>,若两者不相等,则停止密钥协商;若两者相等,则继续;其中/>为第一用户的用户身份标识信息,/>为服务器端存储的第二用户身份标识,/>为服务器的标识信息,/>、/>为从服务器端接收到的参数,/>为标识拼接操作,/>为服务器端选取的哈希函数;
计算共享秘密信息;
计算产生会话密钥,其中/>为服务器端选择并公开的密钥派生函数;
根据会话密钥计算当前待加密消息的加密密钥/>,/>,当加密的消息为/>产生后的第1条消息时/>,从/>产生后的第2条消息开始/>为加密前一条消息时所用的加密密钥,/>为服务器端选取的哈希函数;
第二客户端基于第二会话密钥生成第二加密密钥,包括,
第二客户端计算、/>,其中,/>为服务器端选取的哈希函数,/>表示将用户身份标识/>、服务器标识/>、用户登录口令/>拼接在一起后用哈希函数/>计算得到的哈希值,/>为第二用户在本地生成的用于上传到服务器端存储的一次性预密钥的随机数;
判断是否等于/>,若两者不相等,则停止密钥协商;若两者相等,则继续;其中/>为第二用户的用户身份标识信息,/>为服务器端存储的第一用户身份标识,/>为服务器的标识信息,/>、/>和/>为从服务器端接收到的参数,/>为标识拼接操作,/>为服务器端选取的哈希函数;
计算共享秘密信息;
计算产生会话密钥,其中/>为服务器端选择并公开的密钥派生函数;
根据会话密钥计算当前待加密消息的加密密钥,/>,当加密的消息为产生后的第1条消息时/>,从/>产生后的第2条消息开始/>为加密前一条消息时所用的加密密钥,/>为服务器端选取的哈希函数。
9.如权利要求1所述的方法,其特征在于:还包括,第二用户自第三客户端登录,包括,
服务器端将发送至第三客户端,其中/>、/>、/>为第二用户发到服务器端的参数和密文;
第三客户端计算,其中/>为服务器端选取的哈希函数,表示将用户身份标识/>、服务器标识/>、用户登录口令/>拼接在一起后用哈希函数/>计算得到的哈希值;
第三客户端计算,其中/>和/>为服务器端发来的参数;
第三客户端计算加密密钥,其中/>为服务器端选择并公开的密钥派生函数;
将作为密钥用对称加密算法解密服务器端发来的密文/>,得到对应的明文/>,其中为包含/>个随机数的集合,即/>,/>为一次性预密钥个数;
使用明文计算出离线消息的解密密钥。
10.一种云服务器,其特征在于:所述云服务器包括存储器、处理器,以及存储在所述存储器中并可在所述处理器上运行的计算机程序;其特征在于:所述处理器执行所述计算机程序时实现如权利要求1至9任一项所述的适用于即时通信的密钥协商方法的步骤。
11.一种计算机设备,包括存储器、处理器,以及存储在所述存储器中并可在所述处理器上运行的计算机程序;其特征在于:所述处理器执行所述计算机程序时实现如权利要求1至9任一项所述的适用于即时通信的密钥协商方法的步骤。
12.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序;其特征在于:所述计算机程序被处理器执行时实现如权利要求1至9任一项所述的适用于即时通信的密钥协商方法的步骤。
13.一种适用于即时通信的密钥协商系统,其特征在于:所述密钥协商系统包括如权利要求10所述的云服务器,以及如权利要求11所述的计算机设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410242349.XA CN117834138B (zh) | 2024-03-04 | 2024-03-04 | 一种适用于即时通信的密钥协商方法、系统、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410242349.XA CN117834138B (zh) | 2024-03-04 | 2024-03-04 | 一种适用于即时通信的密钥协商方法、系统、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117834138A true CN117834138A (zh) | 2024-04-05 |
CN117834138B CN117834138B (zh) | 2024-05-24 |
Family
ID=90515545
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410242349.XA Active CN117834138B (zh) | 2024-03-04 | 2024-03-04 | 一种适用于即时通信的密钥协商方法、系统、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117834138B (zh) |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007073659A1 (fr) * | 2005-12-27 | 2007-07-05 | Zte Corporation | Methode d'acces des terminaux a base de protocole h.323 applique a un reseau de paquets |
CN103905437A (zh) * | 2014-03-22 | 2014-07-02 | 哈尔滨工程大学 | 一种基于口令的远程认证协议方法 |
CN106657124A (zh) * | 2017-01-03 | 2017-05-10 | 宜春学院 | 用于物联网的基于假名的匿名认证与密钥协商优化认证方法以及优化认证分析方法 |
CN109714167A (zh) * | 2019-03-15 | 2019-05-03 | 北京邮电大学 | 适用于移动应用签名的身份认证与密钥协商方法及设备 |
CN110149214A (zh) * | 2019-06-06 | 2019-08-20 | 西南交通大学 | 无证书聚合签名的lte-r网络群组认证密钥协商方法 |
US20200014534A1 (en) * | 2017-02-28 | 2020-01-09 | Koninklijke Phlips N.V. | Elliptic curve isogeny based key agreement protocol |
CN112953727A (zh) * | 2021-03-02 | 2021-06-11 | 西安电子科技大学 | 一种面向物联网的设备匿名身份认证方法及系统 |
US20210184842A1 (en) * | 2018-06-20 | 2021-06-17 | Iot And M2M Technologies, Llc | An ECDHE Key Exchange for Server Authentication and a Key Server |
CN113626794A (zh) * | 2021-07-22 | 2021-11-09 | 西安电子科技大学 | 客户/服务器模式下的认证及密钥协商方法、系统及应用 |
CN113852459A (zh) * | 2021-08-13 | 2021-12-28 | 中央财经大学 | 密钥协商方法、设备及计算机可读存储介质 |
WO2022022009A1 (zh) * | 2020-07-28 | 2022-02-03 | 百果园技术(新加坡)有限公司 | 消息处理方法、装置、设备及存储介质 |
CN114050897A (zh) * | 2021-08-20 | 2022-02-15 | 北卡科技有限公司 | 一种基于sm9的异步密钥协商方法及装置 |
CN115643007A (zh) * | 2022-09-20 | 2023-01-24 | 北卡科技有限公司 | 一种密钥协商更新方法 |
CN116074019A (zh) * | 2023-01-12 | 2023-05-05 | 肇庆学院 | 移动客户端和服务器之间的身份认证方法、系统及介质 |
CN116707788A (zh) * | 2023-06-14 | 2023-09-05 | 淮阴工学院 | 一种适用于车联网环境的基于物理安全的认证密钥协商方法 |
-
2024
- 2024-03-04 CN CN202410242349.XA patent/CN117834138B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007073659A1 (fr) * | 2005-12-27 | 2007-07-05 | Zte Corporation | Methode d'acces des terminaux a base de protocole h.323 applique a un reseau de paquets |
CN103905437A (zh) * | 2014-03-22 | 2014-07-02 | 哈尔滨工程大学 | 一种基于口令的远程认证协议方法 |
CN106657124A (zh) * | 2017-01-03 | 2017-05-10 | 宜春学院 | 用于物联网的基于假名的匿名认证与密钥协商优化认证方法以及优化认证分析方法 |
US20200014534A1 (en) * | 2017-02-28 | 2020-01-09 | Koninklijke Phlips N.V. | Elliptic curve isogeny based key agreement protocol |
US20210184842A1 (en) * | 2018-06-20 | 2021-06-17 | Iot And M2M Technologies, Llc | An ECDHE Key Exchange for Server Authentication and a Key Server |
CN109714167A (zh) * | 2019-03-15 | 2019-05-03 | 北京邮电大学 | 适用于移动应用签名的身份认证与密钥协商方法及设备 |
CN110149214A (zh) * | 2019-06-06 | 2019-08-20 | 西南交通大学 | 无证书聚合签名的lte-r网络群组认证密钥协商方法 |
WO2022022009A1 (zh) * | 2020-07-28 | 2022-02-03 | 百果园技术(新加坡)有限公司 | 消息处理方法、装置、设备及存储介质 |
CN112953727A (zh) * | 2021-03-02 | 2021-06-11 | 西安电子科技大学 | 一种面向物联网的设备匿名身份认证方法及系统 |
CN113626794A (zh) * | 2021-07-22 | 2021-11-09 | 西安电子科技大学 | 客户/服务器模式下的认证及密钥协商方法、系统及应用 |
CN113852459A (zh) * | 2021-08-13 | 2021-12-28 | 中央财经大学 | 密钥协商方法、设备及计算机可读存储介质 |
CN114050897A (zh) * | 2021-08-20 | 2022-02-15 | 北卡科技有限公司 | 一种基于sm9的异步密钥协商方法及装置 |
CN115643007A (zh) * | 2022-09-20 | 2023-01-24 | 北卡科技有限公司 | 一种密钥协商更新方法 |
CN116074019A (zh) * | 2023-01-12 | 2023-05-05 | 肇庆学院 | 移动客户端和服务器之间的身份认证方法、系统及介质 |
CN116707788A (zh) * | 2023-06-14 | 2023-09-05 | 淮阴工学院 | 一种适用于车联网环境的基于物理安全的认证密钥协商方法 |
Non-Patent Citations (3)
Title |
---|
BARRY DOYLE等: "Security Considerations and Key Negotiation Techniques for Power Constrained Sensor Networks", 《THE COMPUTER JOURNAL》, vol. 49, no. 4, 31 July 2006 (2006-07-31), pages 443 - 453 * |
宁国强: "一种安全即时通信系统的研究与设计", 《湖南大学硕士论文》, 16 March 2011 (2011-03-16) * |
许盛伟;任雄鹏;袁峰;郭春锐;杨森;: "一种关于SM9的安全密钥分发方案", 计算机应用与软件, no. 01, 12 January 2020 (2020-01-12), pages 314 - 319 * |
Also Published As
Publication number | Publication date |
---|---|
CN117834138B (zh) | 2024-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108064440B (zh) | 基于区块链的fido认证方法、装置及系统 | |
CN114730420A (zh) | 用于生成签名的系统和方法 | |
CN110401615B (zh) | 一种身份认证方法、装置、设备、系统及可读存储介质 | |
WO2022021992A1 (zh) | 一种基于NB-IoT通信的数据传输方法、系统及介质 | |
CN115549887A (zh) | 用于信息的安全交换的公共秘密的确定和层级确定性密钥 | |
CN110113155B (zh) | 一种高效无证书公钥加密方法 | |
US11044082B2 (en) | Authenticating secure channel establishment messages based on shared-secret | |
CN106464493B (zh) | 包含一次性通行码的持久性认证系统 | |
CN110213195B (zh) | 一种登录认证方法、服务器及用户终端 | |
CN105391734A (zh) | 一种安全登录系统及方法、登录服务器和认证服务器 | |
CN107920052B (zh) | 一种加密方法及智能装置 | |
US12010216B2 (en) | Computer-implemented system and method for highly secure, high speed encryption and transmission of data | |
CN107517194B (zh) | 一种内容分发网络的回源认证方法和装置 | |
CN111130798B (zh) | 一种请求鉴权方法及相关设备 | |
CN111914291A (zh) | 消息处理方法、装置、设备及存储介质 | |
US11528127B2 (en) | Computer-implemented system and method for highly secure, high speed encryption and transmission of data | |
US20140237239A1 (en) | Techniques for validating cryptographic applications | |
WO2020042023A1 (zh) | 一种即时通信的数据加密方法及装置 | |
CN113507509A (zh) | 基于区块链的物联网数据保密存储方法和系统 | |
CN110519225B (zh) | 基于非对称密钥池和证书密码学的抗量子计算https通信方法和系统 | |
CN117834138B (zh) | 一种适用于即时通信的密钥协商方法、系统、设备及介质 | |
CN109102294B (zh) | 信息传输方法和装置 | |
Dang | Recommendation for existing application-specific key derivation functions | |
CN114050897B (zh) | 一种基于sm9的异步密钥协商方法及装置 | |
CN102014136B (zh) | 基于随机握手的p2p网络安全通信方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |