一种数据共享的解密方法及相关装置与流程

文档序号:21979866发布日期:2020-08-25 19:14阅读:320来源:国知局
一种数据共享的解密方法及相关装置与流程

本申请涉及计算机技术领域,特别涉及一种数据共享的解密方法、解密系统、计算机装置以及计算机可读存储介质。



背景技术:

随着信息技术的不断发展,通过互联网传输的信息越来越多,现代生活已进入到信息时代。在信息时代中,信息安全问题日益受到人们的重视,消息进行传输时候,为了防止恶意第三方发起的对消息内容的攻击,安全性和认证性变得愈加重要,而为了实现上述要求,加(解)密和数字签证是对应的数据保护技术。尤其出现物联网技术后,为了创建一个万物互联的世界,用户利用手机或者智能手环等终端设备,基于内置传感器作为群智感知设备,收集周围环境数据,并通过通信基础设施进行信息传输,以供数据收集者从海量数据中挖掘有用信息,用户上传的感知数据需要进行签密处理,以保障数据的保密性和完整性。

现有技术中,消息传输实现方案一般先对消息进行数字签名,然后再对消息内容进行加密,当接收方收到密文信息后,再进行相反的操作,以确保消息的可信传输。但是,在现有技术中将加(解)密操作和签名操作进行了分离,本质上是一种对消息内容二次加工的策略,计算效率较低。无法满足物联网时代的信息高速互联的需求。

因此,如何在保证数据安全的前提下提高消息传输的效率是本领域技术人员关注的重点问题。



技术实现要素:

本申请的目的是提供一种数据共享的解密方法、解密系统、计算机装置以及计算机可读存储介质,通过智能合约保持公钥信息的时效性,提高了安全性,新的签密算法减少了密文的长度,提高了运行和计算的效率。

为解决上述技术问题,本申请提供一种数据共享的解密方法,包括:

第一客户端将id信息和生成的第一部分密钥发送至密钥管理服务器,以便所述密钥管理服务器根据椭圆曲线对所述id信息和所述第一部分密钥进行密钥生成处理,得到第二部分密钥,将所述第二部分密钥发送至所述第一客户端,并将所有客户端的公钥信息保存至区块链的智能合约中;

第二客户端根据所述第一客户端的id信息在所述区块链的智能合约中对所述第一客户端进行查询;

当查询到所述第一客户端时,根据所述智能合约中对应的公钥信息向所述第一客户端发送加密消息;

当所述第一客户端接收到所述加密消息,所述第一客户端根据所述第一部分密钥和接收到的所述第二部分密钥对所述加密消息进行解密,得到明文信息。

可选的,还包括:

当查询不到所述第一客户端时,发送公钥失效消息。

可选的,还包括:

当所述密钥管理服务器接收到id信息和第一部分信息之前,所述密钥管理服务器根据安全参数生成所述椭圆曲线。

可选的,当所述第一客户端接收到所述加密消息,所述第一客户端根据所述第一部分密钥和接收到的所述第二部分密钥对所述加密消息进行解密,得到明文信息,包括:

当所述第一客户端接收到所述加密消息时,所述第一客户端根据第二客户端的id信息在所述区块链的智能合约中对所述第二客户端进行查询;

当查询到所述第二客户端时,根据所述第一部分密钥和接收到的所述第二部分密钥对所述加密消息进行解密,得到明文信息;

当查询不到所述第一客户端时,发送公钥失效消息。

本申请还提供一种数据共享的解密系统,包括:

密钥获取模块,用于将id信息和生成的第一部分密钥发送至密钥管理服务器,以便所述密钥管理服务器根据椭圆曲线对所述id信息和所述第一部分密钥进行密钥生成处理,得到第二部分密钥,将所述第二部分密钥发送至所述第一客户端,并将所有客户端的公钥信息保存至区块链的智能合约中;

客户端查询模块,用于根据所述第一客户端的id信息在所述区块链的智能合约中对所述第一客户端进行查询;

加密消息发送模块,用于当查询到所述第一客户端时,根据所述智能合约中对应的公钥信息向所述第一客户端发送加密消息;

加密消息解密模块,用于当所述第一客户端接收到所述加密消息,根据所述第一部分密钥和接收到的所述第二部分密钥对所述加密消息进行解密,得到明文信息。

可选的,还包括:

执行停止模块,用于当查询不到所述第一客户端时,发送公钥失效消息。

可选的,还包括:

椭圆曲线生成模块,用于当所述密钥管理服务器接收到id信息和第一部分信息之前,根据安全参数生成所述椭圆曲线。

可选的,所述加密消息解密模块,包括:

解密查询模块,用于当所述第一客户端接收到所述加密消息时,根据第二客户端的id信息在所述区块链的智能合约中对所述第二客户端进行查询;

解密执行模块,用于当查询到所述第二客户端时,根据所述第一部分密钥和接收到的所述第二部分密钥对所述加密消息进行解密,得到明文信息;

解密终止模块,用于当查询不到所述第一客户端时,发送公钥失效消息。

本申请还提供一种计算机装置,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上所述的解密方法的步骤。

本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的解密方法的步骤。

本申请所提供的一种数据共享的解密方法,包括:第一客户端将id信息和生成的第一部分密钥发送至密钥管理服务器,以便所述密钥管理服务器根据椭圆曲线对所述id信息和所述第一部分密钥进行密钥生成处理,得到第二部分密钥,将所述第二部分密钥发送至所述第一客户端,并将所有客户端的公钥信息保存至区块链的智能合约中;第二客户端根据所述第一客户端的id信息在所述区块链的智能合约中对所述第一客户端进行查询;当查询到所述第一客户端时,根据所述智能合约中对应的公钥信息向所述第一客户端发送加密消息;当所述第一客户端接收到所述加密消息,所述第一客户端根据所述第一部分密钥和接收到的所述第二部分密钥对所述加密消息进行解密,得到明文信息。

通过密钥管理服务器中的椭圆曲线生成对应的密钥和公钥,然后将公钥保存至区块链中,以便保持公钥的安全性和可靠性,并由智能合约更新公钥有效性,最后发送的加密消息均有更短的密文长度,较少的存储空间,提高了运行效率,可以应用于群智感知中用户通信应用场景中。

本申请还提供一种数据共享的解密系统、计算机装置以及计算机可读存储介质,具有以上有益效果,在此不做赘述。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例所提供的一种数据共享的解密方法的流程示意图;

图2为本申请实施例所提供的一种数据共享的解密系统的结构示意图。

具体实施方式

本申请的核心是提供一种数据共享的解密方法、解密系统、计算机装置以及计算机可读存储介质,通过智能合约保持公钥信息的时效性,提高了安全性,新的签密算法减少了密文的长度,提高了运行和计算的效率。

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

现有技术中,消息传输实现方案一般先对消息进行数字签名,然后再对消息内容进行加密,当接收方收到密文信息后,再进行相反的操作,以确保消息的可信传输。但是,在现有技术中将加(解)密操作和签名操作进行了分离,本质上是一种对消息内容二次加工的策略,计算效率较低。无法满足物联网时代的信息高速互联的需求。

因此,本申请提供一种数据共享的解密方法,通过密钥管理服务器中的椭圆曲线生成对应的密钥和公钥,然后将公钥保存至区块链中,以便保持公钥的安全性和可靠性,并由智能合约更新公钥有效性,最后发送的加密消息均有更短的密文长度,较少的存储空间,提高了运行效率,可以应用于群智感知中用户之间通信的应用场景中。

请参考图1,图1为本申请实施例所提供的一种数据共享的解密方法的流程示意图。

本实施例中,该方法可以包括:

s101,第一客户端将id信息和生成的第一部分密钥发送至密钥管理服务器,以便密钥管理服务器根据椭圆曲线对id信息和第一部分密钥进行密钥生成处理,得到第二部分密钥,将第二部分密钥发送至第一客户端,并将所有客户端的公钥信息保存至区块链的智能合约中;

本步骤旨在第一客户端向密钥管理服务器请求到第二部分密钥。也就是,向密钥管理服务器发送该第一客户端的id信息和第一部分密钥。通过本步骤,对于第一客户端来说,只会自己生成第一部分密钥,而公钥信息和第二部分密钥均由密钥管理服务器生成,这样第一客户端密钥必须由自己和密钥管理服务器协同生成,减少了任意一方作恶的风险,提升了系统安全性。同时,公钥信息存储在区块链中,并由智能合约更新公钥有效性,保障了公钥的不可篡改性以及更新过程的可信性。

其中,密钥管理服务器又可以叫做密钥管理中心,用于生成本系统所需的密钥信息。该服务器中具体执行的操作过程可以参考下一实施例,在此不做具体赘述。

s102,第二客户端根据第一客户端的id信息在区块链的智能合约中对第一客户端进行查询;

在s101的基础上,本步骤旨在向第一客户端发送加密消息的第二客户端对第一客户端进行查询。也就是判断第一客户端的公钥信息是否正常注册在区块链中,以便判断第一客户端公钥是否有效。

其中,对第一客户端进行查询的方式主要是调用区块链的智能合约进行查询,由于区块链的性质可以保证更新第一客户端公钥时效过程的可信度。

s103,当查询到第一客户端时,根据智能合约中对应的公钥信息向第一客户端发送加密消息;

在s102的基础上,本步骤旨在当查询到该第一客户端时,也就是确定第一客户端公钥没有问题后,根据该公钥信息对明文信息进行加密,得到加密消息。最后将该加密消息发送至第一客户端中。

s104,当第一客户端接收到加密消息,第一客户端根据第一部分密钥和接收到的第二部分密钥对加密消息进行解密,得到明文信息;

在s103的基础上,本步骤旨在第一客户端接收到该加密消息后,第一部分密钥和接收到的第二部分密钥合称为私钥,通过该私钥对加密消息进行解密,得到该明文信息。

可选的,本步骤可以包括:

步骤1,当第一客户端接收到加密消息时,第一客户端根据第二客户端的id信息在区块链的智能合约中对第二客户端进行查询;

步骤2,当查询到第二客户端时,根据第一部分密钥和接收到的第二部分密钥对加密消息进行解密,得到明文信息;

步骤3,当查询不到第一客户端时,发送公钥失效消息。

可见,通过本可选方案可以在第一客户单对加密消息进行解密时,检查第二客户端公钥的时效性,提高解密过程的安全性。

s105,当查询不到第一客户端时,发送公钥失效消息。

在s103的基础上,本步骤旨在当查询不到该第一客户端时,发送公钥失效消息,以便停止向第一客户端发送加密消息,提高安全性。

可选的,本实施例还可以包括:

当密钥管理服务器接收到id信息和第一部分信息之前,密钥管理服务器根据安全参数生成椭圆曲线。

综上,本实施例一种数据共享的解密方法,通过密钥管理服务器中的椭圆曲线生成对应的密钥和公钥,然后将公钥保存至区块链中,以便保持公钥的安全性和可靠性,并由智能合约更新公钥有效性,最后发送的加密消息均有更短的密文长度,较少的存储空间,提高了运行效率,可以应用于群智感知中用户通信的应用场景中。

以下通过另一具体的实施例,对本申请提供的一种数据共享的解密方法做进一步说明。

本实施例中,该解密方法可以包括:初始化、签密、解密和签名校验四个过程。

其中,初始化过程包括:

密钥生成中心kgc(keygenerationcenter密钥管理中心)根据安全参数λ生成大素数p和循环群gp,以及在循环群gp上的椭圆曲线e:y2=x3+ax+b,其中4a3+27b2≠0。选取椭圆曲线e上的一个生成元g,其对应的阶q为大素数。

定义系统所用的哈希函数如下:其中ll为用户身份id信息的长度,lm为签密消息的长度,中数据的长度。

定义操作符如下:为异或操作,主要用于消息内容的加密和解密。||为连接操作,主要用于在消息后附加参数信息。

kgc随机选择系统主密钥并得到系统公钥信息ppub=sg。kgc公开参数信息而保留系统主密钥信息s。

用户i对应的id信息标记为idi,在生成用户i对应的密钥信息时,其对应的密钥信息一部分由自己生成,另外一部分需要依赖kgc生成。用户i随机选择一秘密值并得到xi=xig,然后将<idi,xi>发送至kgc。

kgc收到<idi,xi>后,为用户i生成另一部分密钥信息,其执行步骤如下。首先kgc选择随机数作为秘密值,并计算得到yi=rig,以及yi=ri+sh1(idi,xi,yi),然后将<yi,yi>通过可信信道发送至用户i。

用户i收到<yi,yi>后,需要校验信息的正确性,其校验公式为yig=yi+ppubh1(idi,xi,yi)。如果校验失败,则意味着kgc发送过来的<yi,yi>消息有误,生成部分私钥失败,用户i重新请求kgc生成部分私钥信息。如果校验成立,用户i即可合成自己的私钥信息ski=(xi,yi)。

对于用户i,其身份信息为idi,生成的私钥对为ski=(xi,yi),其对应的公钥对为pki=(xi,yi)。

为了方便论述,设定用户a需要共享数据给用户b,其对应的私钥对和公钥对分别为ida:<ska=(xa,ya),pka=(xa,ya)>和idb:<skb=(xb,yb),pkb=(xb,yb)>。

kgc为用户生成公私钥信息后,在eos中发布智能合约ω,该智能合约ω维护一个用于数据持久化的多索引表,用于存储用户idi和用户公钥等信息,标记为θ。一个用户对应一个ω,实现对用户公钥信息的精确控制。

当智能合约发布成功后,kgc再将θ存储到智能合约中的多索引表中,并设定延迟时间为texp,即计时texp后,区块链自动执行删除θ的操作。删除θ后,代表该用户公钥失效,在本方案中,θ=<idi,pki=(xi,yi),texp>。

其中,签密过程包括:

用户a发送消息m给用户b,此时用户a需要基于用户b的公钥对消息m进行签密,用户b收到签密消息后,再利用自己的私钥对密文进行解密和校验。

用户a查询其他用户的智能合约ω和θ,如果查询不到,说明指定用户的公钥信息已经失效,退出相关执行流程,如果能够查到用户b的θ信息,则代表其对应的公钥信息有效,对消息m进行签密,其签密流程为:

用户a首先选择一个随机数并计算得到r=αg。得到上述信息后,用户a执行如下计算得到v和u:d=h3(ida,m,xa,r),f=h3(ida,m,ya,r),u=d(xa+ya)+αf。

对于消息m,用户a生成其对应的签密密文:计算得到h=h4(ida,r,c),并将密文发送至用户b。

其中,解密过程包括:

用户b收到密文后,用户b查询其他用户的智能合约ω和θ,如果查询不到,说明用户a的公钥信息已经失效,退出相关执行流程;如果能够查到指定用户的θ信息,则代表其对应的公钥信息有效,执行解密,其解密流程为:

v'=(xb+yb)r',

用户b得到m||u后,即可从中解析出明文信息m以及用于校验内容完整性的辅助参数u。

其中,签名校验过程:

用户b解密得到明文信息m后,需要对其进行校验,如果校验成功,则意味消息内容完整。首先计算:

f=h3(ida,m,ya,r'),d'=h3(ida,m,xa,r'),然后对消息内容进行校验,校验等式为

可见,本实施例通过密钥管理服务器中的椭圆曲线生成对应的密钥和公钥,然后将公钥保存至区块链中,以便保持公钥的安全性和可靠性,并由智能合约更新公钥有效性,最后发送的加密消息均有更短的密文长度,较少的存储空间,提高了运行效率,可以应用于群智感知中用户之间通信的应用场景中。

下面对本申请实施例提供的一种数据共享的解密系统进行介绍,下文描述的一种数据共享的解密系统与上文描述的一种数据共享的解密方法可相互对应参照。

请参考图2,图2为本申请实施例所提供的一种数据共享的解密系统的结构示意图。

本实施例中,该系统可以包括:

密钥获取模块100,用于将id信息和生成的第一部分密钥发送至密钥管理服务器,以便密钥管理服务器根据椭圆曲线对id信息和第一部分密钥进行密钥生成处理,得到第二部分密钥,将第二部分密钥发送至第一客户端,并将所有客户端的公钥信息保存至区块链的智能合约中;

客户端查询模块200,用于根据第一客户端的id信息在区块链的智能合约中对第一客户端进行查询;

加密消息发送模块300,用于当查询到第一客户端时,根据智能合约中对应的公钥信息向第一客户端发送加密消息;

加密消息解密模块400,用于当第一客户端接收到加密消息,根据第一部分密钥和接收到的第二部分密钥对加密消息进行解密,得到明文信息。

可选的,该系统还可以包括:

执行停止模块,用于当查询不到第一客户端时,发送公钥失效消息。

可选的,该系统还可以包括:

椭圆曲线生成模块,用于当密钥管理服务器接收到id信息和第一部分信息之前,根据安全参数生成椭圆曲线。

可选的,该加密消息解密模块400,可以包括:

解密查询模块,用于当第一客户端接收到加密消息时,根据第二客户端的id信息在区块链的智能合约中对第二客户端进行查询;

解密执行模块,用于当查询到第二客户端时,根据第一部分密钥和接收到的第二部分密钥对加密消息进行解密,得到明文信息;

解密终止模块,用于当查询不到第一客户端时,发送公钥失效消息。

本申请实施例还提供一种计算机装置,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如以上实施例所述的解密方法的步骤。

本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如以上实施例所述的解密方法的步骤。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本申请所提供的一种数据共享的解密方法、解密系统、计算机装置以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

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