本公开涉及加解密技术领域,特别涉及一种加解密方法、设备及存储介质。
背景技术:
随着加解密技术的发展与应用,加解密技术在数字世界中占有越来越重要的地位。基于网络业务的行政审批、电子合同、电子发票、网络交易支付等都采用了加解密技术来保障业务的安全性。
现有技术中,用户在加密的过程中使用该用户公钥,用户在解密使用该用户的私钥。用户通过公钥和私钥组成密钥对来对数据进行加密和解密。但是此方法中的数据加密的安全性比较低,因此,本公开急需一种新的方法来提高数据加密的安全性。
技术实现要素:
本公开提供一种加解密方法、设备及存储介质,用于提高数据加密的安全性。
第一方面,本公开提供一种加密方法,所述方法包括:
作为主设备的加密设备利用第一随机数生成第一加密中间值,并根据所述第一随机数和第一公钥生成第二加密中间值;
所述加密设备接收至少一个作为从设备的其他加密设备发送的第三加密中间值和第四加密中间值;其中所述第三加密中间值为所述其他加密设备利用第二随机数生成的;所述第四加密中间值为所述其他加密设备利用所述第二随机数和第二公钥生成的;
所述加密设备通过所述第一加密中间值和所述第三加密中间值确定第一部分密文,以及利用所述第二加密中间值、所述第四加密中间值和明文确定第二部分密文和第三部分密文;
所述加密设备根据所述第一部分密文和所述第二部分密文以及所述第三部分密文生成加密密文,并将所述加密密文发送给解密设备。
本实施例通过多方的随机数和公钥来生成加密密文,并且在加密的过程中并不会泄露自身的随机数,任何一方都不能独自生成加密密密文,以此提高了数据加密的安全性。
在一个实施例中,所述作为主设备的加密设备利用第一随机数生成第一加密中间值,包括:
所述加密设备将所述第一随机数与椭圆曲线点上的基点相乘得到所述第一加密中间值。
本实施例通过加密设备的第一随机数生成第一加密中间值,以此来提高加密的安全性。
在一个实施例中,所述加密设备根据所述第一随机数和第一公钥生成第二加密中间值,包括:
所述加密设备将所述第一随机数和所述第一公钥相乘得到所述第二加密中间值。
本实施例通过第一随机数和第一公钥来确定出第二加密中间值,提高加密的安全性。
在一个实施例中,所述加密设备通过所述第一加密中间值和所述第三加密中间值确定出第一部分密文,包括:
所述加密设备将所述第一加密中间值和所述第三加密中间值相加得到所述第一部分密文。
本实施例通过各加密中间值相加得到第一部分密文,以此来进一步保证数据加密的安全性。
在一个实施例中,所述加密设备利用所述第二加密中间值、所述第四加密中间值和明文确定第二部分密文和第三部分密文,包括:
所述加密设备将所述第二加密中间值和所述第四加密中间值进行加法运算,得到椭圆曲线点的位置坐标;
所述加密设备将所述椭圆曲线点的位置坐标的数据类型转换为比特串之后,利用密钥派生函数对椭圆曲线点的位置坐标进行处理,得到密钥流;
所述加密设备将所述密钥流和所述明文进行异或运算得到所述第二部分密文,以及通过散列函数对所述椭圆曲线点的位置坐标和所述明文进行处理得到所述第三部分密文。
本实施例通过第二加密中间值和第四加密中间值来得到椭圆曲线点的位置坐标后,通过密钥派生函数和散列函数来对椭圆曲线的位置坐标进行处理,以此来得到第二部分密文和第三部分密文。
在一个实施例中,所述作为主设备的加密设备利用第一随机数生成第一加密中间值之前,所述方法还包括:
所述加密设备将自身的存储空间和性能参数发送给服务器,以便于所述服务器根据各加密设备的存储空间和性能参数确定出作为主设备的加密设备;
若所述加密设备接收到所述服务器发送的作为主设备的指令,则确定自身为所述主设备。
本实施例通过各加密设备的存储空间以及性能参数从各加密设备中确定出主设备,以此来确保加密流程能够顺利的进行。
第二方面,本公开提供一种加密方法,所述方法包括:
作为从设备的其他加密设备利用第二随机数生成第三加密中间值;并根据所述第二随机数和第二公钥生成第四加密中间值;
所述其他加密设备将所述第三加密中间值和所述第四加密中间值发送给作为主设备的加密设备,以便于所述加密设备根据所述加密设备中的第一加密中间值和第二加密中间值以及所述第三加密中间值、所述第四加密中间值和明文生成加密密文并将所述加密密文发送给解密设备。
在一个实施例中,所述作为从设备的其他加密设备利用第二随机数生成第三加密中间值,包括:
所述其他加密设备将所述第二随机数与椭圆曲线点上的基点相乘得到所述第三加密中间值。
在一个实施例中,所述其他加密设备将所述第二随机数和所述第二公钥相乘得到所述第四加密中间值。
在一个实施例中,所述其他加密设备将所述第三加密中间值和所述第四加密中间值发送给作为主设备的加密设备之前,包括:
所述其他加密设备将自身的存储空间和性能参数发送给服务器,以便于所述服务器根据各加密设备的存储空间和性能参数确定出作为主设备的加密设备;
若所述其他加密设备接收到所述服务器发送的所述加密设备作为所述主设备的指令,则确定所述加密设备为所述主设备。
第三方面,本公开提供一种解密方法,所述方法包括:
作为主设备的解密设备接收作为主设备的加密设备发送的加密密文之后,利用所述加密密文中的第一部分密文以及所述解密设备的第一私钥确定出第一解密中间值;
所述解密设备接收至少一个作为从设备的其他解密设备发送的第二解密中间值;
所述解密设备通过所述第一解密中间值和所述第二解密中间值进行解密,得到明文。
本实施例通过多方解密设备的私钥来进行解密,且在解密的过程中并不会泄露自身的私钥,任何一方都不能独自进行解密,以此提高了数据解密的安全性。
在一个实施例中,所述解密设备利用所述加密密文中的第一部分密文以及所述解密设备的第一私钥确定出第一解密中间值,包括:
所述解密设备将所述第一部分密文与所述第一私钥相乘得到所述第一解密中间值。
本实施例通过第一部分密文与第一私钥相乘得到第一解密中间值,以此来避免用户私钥的泄露。
在一个实施例中,所述解密设备通过所述第一解密中间值和所述第二解密中间值进行解密,得到明文,包括:
所述解密设备根据所述第一解密中间值和所述第二解密中间值,得到椭圆曲线点的位置坐标;
所述解密设备将所述椭圆曲线点的位置坐标的数据类型转换为比特串之后,利用密钥派生函数对椭圆曲线点的位置坐标进行处理,得到密钥流;
所述解密设备将所述密钥流和所述加密密文中的第二部分密文进行异或运算,得到解密消息,以及通过散列函数对所述椭圆曲线点的位置坐标和所述解密消息进行处理得到解密摘要值;
所述解密设备将所述解密摘要值与所述加密密文中的第三部分密文进行比对;
若相等,则所述解密设备确定所述解密消息为所述明文并输出。
本实施例通过第一解密中间值和第二解密中间值得到椭圆曲线点,然后利用预设函数对椭圆曲线点进行处理以此来得到明文。
在一个实施例中,所述解密设备根据所述第一解密中间值和所述第二解密中间值,得到椭圆曲线点的位置坐标,包括:
所述解密设备将所述第一解密中间值和所述第二解密中间值相加得到所述椭圆曲线点的位置坐标。
本实施例通过各解密中间值相加得到椭圆曲线点的位置坐标,以此来进一步保证数据加密的安全性。
在一个实施例中,所述解密设备利用所述加密密文中的第一部分密文以及所述解密设备的第一私钥确定出第一解密中间值之前,所述方法还包括:
所述解密设备将自身的存储空间和性能参数发送给服务器,以便于所述服务器根据各解密设备的存储空间和性能参数确定出作为主设备的解密设备;
若所述解密设备接收到所述服务器发送的作为主设备的指令,则确定自身为所述主设备。
本实施例通过各解密设备的存储空间以及性能参数从各解密设备中确定出主设备,以此来确保作为主设备的解密设备能够进行解密来得到明文。
第四方面,本公开提供一种解密方法,所述方法包括:
作为从设备的其他解密设备接收作为主设备的加密设备发送的加密密文之后,利用所述加密密文中的第一部分密文和所述其他解密设备的第二私钥确定出第二解密中间值;
所述其他解密设备将所述第二解密中间值发送给作为主设备的解密设备,以便于所述解密设备根据所述解密设备中的第一解密中间值和所述第二解密中间值进行解密,得到明文。
在一个实施例中,所述其他解密设备利用所述加密密文中的第一部分密文和所述其他解密设备的第二私钥确定出第二解密中间值,包括:
所述其他解密设备将所述第一部分密文和所述第二私钥相乘得到所述第二解密中间值。
在一个实施例中,所述其他解密设备利用所述加密密文中的第一部分密文和所述其他解密设备的第二私钥确定出第二解密中间值之前,所述方法还包括:
所述其他解密设备将自身的存储空间和性能参数发送给服务器,以便于所述服务器根据各解密设备的存储空间和性能参数确定出作为主设备的解密设备;
若所述其他解密设备接收到所述服务器发送的所述解密设备作为所述主设备的指令,则确定所述解密设备为所述主设备。
第五方面,本公开提供一种作为主设备的加密设备,所述加密设备包括:
第一加密中间值生成模块,用于利用第一随机数生成第一加密中间值;
第二加密中间值生成模块,用于根据所述第一随机数和第一公钥生成第二加密中间值;
第一接收模块,用于接收至少一个作为从设备的其他加密设备发送的第三加密中间值和第四加密中间值;其中所述第三加密中间值为所述其他加密设备利用第二随机数生成的;所述第四加密中间值为所述其他加密设备利用所述第二随机数和第二公钥生成的;
第一部分密文确定模块,用于通过所述第一加密中间值和所述第三加密中间值确定第一部分密文;
其他部分密文确定模块,用于利用所述第二加密中间值、所述第四加密中间值和明文确定第二部分密文和第三部分密文;
密文发送模块,用于所述加密设备根据所述第一部分密文、所述第二部分密文以及所述第三部分密文生成加密密文,并将所述加密密文发送给解密设备。
在一个实施例中,所述第一加密中间值生成模块,具体用于:
将所述第一随机数与椭圆曲线点上的基点相乘得到所述第一加密中间值。
在一个实施例中,所述第二加密中间值生成模块,具体用于:
将所述第一随机数和所述第一公钥相乘得到所述第二加密中间值。
在一个实施例中,所述第一部分密文确定模块,具体用于:
将所述第一加密中间值和所述第三加密中间值相加得到所述第一部分密文。
在一个实施例中,所述其他部分密文确定模块,具体用于:
将所述第二加密中间值和所述第四加密中间值进行加法运算,得到椭圆曲线点的位置坐标;
将所述椭圆曲线点的位置坐标的数据类型转换为比特串之后,利用密钥派生函数对椭圆曲线点的位置坐标进行处理,得到密钥流;
将所述密钥流和所述明文进行异或运算得到所述第二部分密文,以及通过散列函数对所述椭圆曲线点的位置坐标和所述明文进行处理得到所述第三部分密文。
在一个实施例中,所述加密设备还包括:
第一发送模块,用于利用第一随机数生成第一加密中间值之前,将所述设备自身的存储空间和性能参数发送给服务器,以便于所述服务器根据各加密设备的存储空间和性能参数确定出作为主设备的加密设备;
第一加密主设备确定模块,用于若所述加密设备接收到所述服务器发送的作为主设备的指令,则确定自身为所述主设备。
第六方面,本公开提供一种作为从设备的加密设备,所述加密设备包括:
第三加密中间值生成模块,用于利用第二随机数生成第三加密中间值;
第四加密中间值生成模块,用于根据所述第二随机数和第二公钥生成第四加密中间值;
第二发送模块,用于将所述第三加密中间值和所述第四加密中间值发送给作为主设备的加密设备,以便于所述加密设备根据所述加密设备中的第一加密中间值和第二加密中间值以及所述第三加密中间值、所述第四加密中间值和明文生成加密密文并将所述加密密文发送给解密设备。
在一个实施例中,所述第三加密中间值生成模块,具体用于:
将所述第二随机数与椭圆曲线点上的基点相乘得到所述第三加密中间值。
在一个实施例中,所述第四加密中间值生成模块,具体用于:
将所述第二随机数和所述第二公钥相乘得到所述第四加密中间值。
在一个实施例中,所述加密设备还包括:
第三发送模块,用于将所述第三加密中间值和所述第四加密中间值发送给作为主设备的加密设备之前,将自身的存储空间和性能参数发送给服务器,以便于所述服务器根据各加密设备的存储空间和性能参数确定出作为主设备的加密设备;
第二加密主设备确定模块,用于若所述其他加密设备接收到所述服务器发送的所述加密设备作为所述主设备的指令,则确定所述加密设备为所述主设备。
第七方面,本公开提供一种作为主设备的解密设备,所述解密设备包括:
第一解密中间值确定模块,用于接收作为主设备的加密设备发送的加密密文之后,利用所述加密密文中的第一部分密文以及所述解密设备的第一私钥确定出第一解密中间值;
第二接收模块,用于接收至少一个作为从设备的其他解密设备发送的第二解密中间值;
解密模块,用于通过所述第一解密中间值和所述第二解密中间值进行解密,得到明文。
在一个实施例中,所述第一解密中间值确定模块,具体用于:
将所述第一部分密文与所述第一私钥相乘得到所述第一解密中间值。
在一个实施例中,所述解密模块,具体用于:
根据所述第一解密中间值和所述第二解密中间值,得到椭圆曲线点的位置坐标;
将所述椭圆曲线点的位置坐标的数据类型转换为比特串之后,利用密钥派生函数对椭圆曲线点的位置坐标进行处理,得到密钥流;
将所述密钥流和所述加密密文中的第二部分密文进行异或运算,得到解密消息,以及通过散列函数对所述椭圆曲线点的位置坐标和所述解密消息进行处理得到解密摘要值;
将所述解密摘要值与所述加密密文中的第三部分密文进行比对;
若相等,则确定所述解密消息为所述明文并输出。
在一个实施例中,所述解密模块,具体用于:
将所述第一解密中间值和所述第二解密中间值相加得到所述椭圆曲线点的位置坐标。
在一个实施例中,所述解密设备还包括:
第四发送模块,用于用所述加密密文中的第一部分密文以及所述解密设备的第一私钥确定出第一解密中间值之前,所述解密设备将自身的存储空间和性能参数发送给服务器,以便于所述服务器根据各解密设备的存储空间和性能参数确定出作为主设备的解密设备;
第一解密主设备确定模块,用于若所述解密设备接收到所述服务器发送的作为主设备的指令,则确定自身为所述主设备。
第八方面,本公开提供一种作为从设备的解密设备,所述解密设备包括:
第二解密中间值确定模块,用于接收作为主设备的加密设备发送的加密密文之后,利用所述加密密文中的第一部分密文和所述其他解密设备的第二私钥确定出第二解密中间值;
第五发送模块,用于将所述第二解密中间值发送给作为主设备的解密设备,以便于所述解密设备根据所述解密设备中的第一解密中间值和所述第二解密中间值进行解密,得到明文。
在一个实施例中,所述第二解密中间值确定模块,具体用于:
所述其他解密设备将所述第一部分密文和所述第二私钥相乘得到所述第二解密中间值。
在一个实施例中,所述解密设备还包括:
第六发送模块,用于利用所述加密密文中的第一部分密文和所述其他解密设备的第二私钥确定出第二解密中间值之前,将自身的存储空间和性能参数发送给服务器,以便于所述服务器根据各解密设备的存储空间和性能参数确定出作为主设备的解密设备;
第二解密主设备确定模块,用于若所述其他解密设备接收到所述服务器发送的所述解密设备作为所述主设备的指令,则确定所述解密设备为所述主设备。
根据本公开实施例的第九方面,提供一种电子设备,包括至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第一方面和/或第二方面和/或第三方面和/或第四方面所述的方法。
根据本公开实施例提供的第十方面,提供一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序用于执行如第一方面和/或第二方面和/或第三方面和/或第四方面所述的方法。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1为根据本公开一个实施例中的适用场景示意图;
图2为根据本公开一个实施例中的加密方法的流程示意图之一;
图3为根据本公开一个实施例中的加密方法的流程示意图之二;
图4为根据本公开一个实施例中的确定主设备的应用场景示意图;
图5为根据本公开一个实施例中的加密方法的流程示例图之三;
图6为根据本公开一个实施例中的加密方法的流程示例图之四;
图7为根据本公开一个实施例中的解密方法的流程示例图之一;
图8为根据本公开一个实施例中的解密方法的流程示例图之二;
图9为根据本公开一个实施例中的解密方法的流程示例图之三;
图10为根据本公开一个实施例中的解密方法的流程示例图之四;
图11为根据本公开一个实施例中的作为主设备的加密设备的结构示意图;
图12为根据本公开一个实施例中的作为从设备的加密设备的结构示意图;
图13为根据本公开一个实施例中的作为主设备的解密设备的结构示意图;
图14为根据本公开一个实施例中的作为从设备的解密设备的结构示意图;
图15为根据本公开一个实施例的电子设备的结构示意图。
具体实施方式
为进一步说明本公开实施例提供的技术方案,下面结合附图以及具体实施方式对此进行详细的说明。虽然本公开实施例提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在方法中可以包括更多或者更少的操作步骤。在逻辑上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本公开实施例提供的执行顺序。方法在实际的处理过程中或者控制设备执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行。
本公开实施例中术语“多个”是指两个或两个以上,其它量词与之类似应当理解,此处所描述的优选实施例仅用于说明和解释本公开,并不用于限定本公开,并且在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
发明人研究发现,现有技术中只是使用单一用户的公钥和私钥进行数据加密和数据解密。会导致数据加密的安全性较低。
因此,本公开提供一种加解密方法、设备及存储介质。通过多方用户的随机数和公钥来生成加密密文,以此实现对数据的加密。并且在加密的过程中并不会泄露自身的随机数,任何一方都不能独自生成加密密密文,以此提高了数据加密的安全性。下面,结合附图对本公开进行详细的说明。
如图1所示,本公开的应用场景示意图,该应用场景中包括终端设备110、终端设备120、终端设备130、终端设备140和终端设备150。图1中是以五个终端设备为例,实际上不限制终端设备的数量。终端设备可为手机、平板电脑和个人计算机等。
在一种可能的应用场景中,以终端设备为计算机为例进行说明。终端设备110为作为主设备的加密设备。终端设备120、终端设备130、终端设备140为作为从设备的加密设备。终端设备150作为解密设备。终端设备110利用第一随机数生成第一加密中间值,并根据第一随机数和第一公钥生成第二加密中间值。终端设备120、终端设备130和终端设备140均发送第三加密中间值和第四加密中间值给终端设备110。终端设备110接收到其他终端设备发送第三加密中间值和第四加密中间值之后,终端设备110通过所述第一加密中间值和所述第三加密中间值确定第一部分密文,以及利用所述第二加密中间值、所述第四加密中间值和明文确定第二部分密文和第三部分密文;然后终端设备110根据所述第一部分密文、所述第二部分密文和所述第三部分密文生成加密密文,并将所述加密密文发送给终端设备150进行解密。
其中,需要说明的是,进行解密的解密设备可以为加密设备中的任一终端设备,也可以是其他终端设备,本公开在此并不进行限定。
如图2所示,本公开加密方法的流程示意图,包括以下步骤:
步骤201:作为主设备的加密设备利用第一随机数生成第一加密中间值,并根据所述第一随机数和第一公钥生成第二加密中间值;
在一个实施例中,所述加密设备将所述第一随机数与椭圆曲线点上的基点相乘得到所述第一加密中间值。可通过公式(1)确定出所述第一加密中间值q1:
q1=k1×g(1);
其中,k1为第一随机数,g为椭圆曲线点上的基点。
由此,通过加密设备的第一随机数生成第一加密中间值,以此来提高加密的安全性。
在一个实施例中,所述加密设备将所述第一随机数和所述第一公钥相乘得到所述第二加密中间值。可通过公式(2)来确定所述第二加密中间值q2:
q2=k1×p1(2);
其中,p1为所述第一公钥。
由此,通过第一随机数和第一公钥来确定出第二加密中间值,提高加密的安全性。
步骤202:所述加密设备接收至少一个作为从设备的其他加密设备发送的第三加密中间值和第四加密中间值;其中所述第三加密中间值为所述其他加密设备利用第二随机数生成的;所述第四加密中间值为所述其他加密设备利用所述第二随机数和第二公钥生成的;
步骤203:所述加密设备通过所述第一加密中间值和所述第三加密中间值确定第一部分密文,以及利用所述第二加密中间值、所述第四加密中间值和明文确定第二部分密文和第三部分密文;
在一个实施例中,步骤203中确定出所述第一部分密文可具体实施为:所述加密设备将所述第一加密中间值和所述第三加密中间值相加得到所述第一部分密文c1。
c1=q1+q3(1)+q3(2)+…+q3(i)+…q3(n)(3);
其中,q3(i)为第i个其他设备发送的第三加密中间值,且i=1,2,…n;n等于其他加密设备的数量。
由此,通过各加密中间值相加得到第一部分密文,以此来进一步保证数据加密的安全性。
在一个实施例中,前文所述的步骤203中确定第二部分密文和第三部分密文,如图3所示,可包括以下步骤:
步骤301:所述加密设备将所述第二加密中间值和所述第四加密中间值进行加法运算,得到椭圆曲线点的位置坐标;可通过公式(4)来确定所述椭圆曲线点的位置坐标:
(x2,y2)=q2+q4(1)+q4(2)+…+q4(i)+…q4(n)(4);
其中,x2为椭圆曲线点的位置坐标的横坐标;y2为椭圆曲线点的位置坐标的纵坐标;q4(i)为第i个其他设备发送的第四加密中间值,且i=1,2,…n;n等于其他加密设备的数量。
步骤302:所述加密设备将所述椭圆曲线点的位置坐标的数据类型转换为比特串之后,利用密钥派生函数对椭圆曲线点的位置坐标进行处理,得到密钥流;其中,可通过公式(5)得到所述密钥流t:
t=kdf(x2||y2,klen)(5);
其中,kdf为密钥派生函数。
步骤303:所述加密设备将所述密钥流和所述明文进行异或运算得到所述第二部分密文;其中,可通过公式(6)来确定所述第二部分密文c2:
其中,m为明文。
步骤304:通过散列函数对所述椭圆曲线点的位置坐标和所述明文进行处理得到所述第三部分密文。其中,可通过公式(7)来确定出所述第三部分密文c3:
c3=hash(x2||m||y2)(7);
其中,hash为散列函数。
由此,通过第二加密中间值和第四加密中间值来得到椭圆曲线点的位置坐标后,通过函数来对椭圆曲线的位置坐标进行处理,以此来得到第二部分密文和第三部分密文。
步骤204:所述加密设备根据所述第一部分密文、所述第二部分密文以及所述第三部分密文生成加密密文,并将所述加密密文发送给解密设备。
由此,通过第二加密中间值和第四加密中间值来得到椭圆曲线点的位置坐标后,通过密钥派生函数和散列函数来对椭圆曲线的位置坐标进行处理,以此来得到第二部分密文和第三部分密文。
为了确保加密过程能够顺利的进行,在执行步骤201之前,在一个实施例中,所述加密设备将自身的存储空间和性能参数发送给服务器,以便于所述服务器根据各加密设备的存储空间和性能参数确定出作为主设备的加密设备;若所述加密设备接收到所述服务器发送的作为主设备的指令,则确定自身为所述主设备。
例如,如图4所示,加密设备包括设备401、设备402、设备403和设备404。四个设备均将自身的存储空间和性能参数发送给服务器405。服务器根据该四个设备的存储空间和性能参数确定出主设备,其中,选取的规则可为:首先,根据各设备的性能参数选取出性能参数符合预设条件的设备,然后从选取出的设备中挑选出存储空间最大的设备,并确定该设备为主设备。若确定出设备402为所述主设备,则服务器405向设备402发送作为主设备的控制指令,则设备402确定自身为所述主设备。
由此,通过各加密设备的存储空间以及性能参数从各加密设备中确定出主设备,以此来确保作为主设备的加密设备能够使加密流程顺利进行。
基于相同的发明构思,本公开还提供一种加密方法,如图5所示,本公开的加密方法的流程示意图,可包括以下步骤:
步骤501:作为从设备的其他加密设备利用第二随机数生成第三加密中间值;并根据所述第二随机数和第二公钥生成第四加密中间值;
在一个实施例中,所述其他加密设备将所述第二随机数与椭圆曲线点上的基点相乘得到所述第三加密中间值。通过公式(8)确定出所述第三加密中间值:
q3(i)=k2(i)×g(8);
其中,q3(i)为第i个其他加密设备的第三加密中间值,k2(i)为第i个其他加密设备产生的第二随机数,且i=1,2,…n;n等于其他加密设备的数量。
由此,通过第二随机数与椭圆曲线点上的基点相乘得到第三加密中间值,以此避免泄露用户的第二随机数。
在一个实施例中,所述其他加密设备将所述第二随机数和所述第二公钥相乘得到所述第四加密中间值。通过公式(9)来确定出所述第四加密中间值:
q4(i)=k2(i)×p2(i)(9);
其中,q4(i)为第i个其他加密设备的第4加密中间值,p2(i)为第i个其他加密设备的第二公钥,且i=1,2,…n;n为其他加密设备的数量。
步骤502:所述其他加密设备将所述第三加密中间值和所述第四加密中间值发送给作为主设备的加密设备,以便于所述加密设备根据所述加密设备中的第一加密中间值和第二加密中间值以及所述第三加密中间值、所述第四加密中间值和明文生成加密密文并将所述加密密文发送给解密设备。
由此,本公开通过将其他解密设备的第二加密中间值和第四加密中间值发送给作为主设备的加密设备,以便于主设备通过多方的随机数和公钥来生成加密密文,并且在加密的过程中并不会泄露各加密设备的随机数,任何一方都不能独自生成加密密密文,以此提高了数据加密的安全性。
为了确保加密流程能够顺利的进行,在执行步骤501之前,在一个实施例中,所述其他加密设备将自身的存储空间和性能参数发送给服务器,以便于所述服务器根据各加密设备的存储空间和性能参数确定出作为主设备的加密设备;若所述其他加密设备接收到所述服务器发送的所述加密设备作为所述主设备的指令,则确定所述加密设备为所述主设备。
例如,如图4所述,当服务器405确定出402为主设备时,则向设备402发送作为主设备的指令。向其他设备发送设备402为所述主设备的指令,以便于其他加密设备向作为主设备的加密设备发送第三加密中间值和第四加密中间值。
由此,通过各加密设备的存储空间以及性能参数从各加密设备中确定出主设备,以此来确保作为主设备的加密设备能够使加密流程顺利进行。
为了进一步的了解本公开的技术方案,下面结合图6进行详细的说明,可包括以下步骤:
步骤601:所述加密设备将自身的存储空间和性能参数发送给服务器,以便于所述服务器根据各加密设备的存储空间和性能参数确定出作为主设备的加密设备;
步骤602:若所述加密设备接收到所述服务器发送的作为主设备的指令,则确定自身为所述主设备;
步骤603:作为主设备的加密设备利用第一随机数生成第一加密中间值,并根据所述第一随机数和第一公钥生成第二加密中间值;
步骤604:所述加密设备接收至少一个作为从设备的其他加密设备发送的第三加密中间值和第四加密中间值;
步骤605:所述加密设备通过所述第一加密中间值和所述第三加密中间值确定第一部分密文,以及利用所述第二加密中间值、所述第四加密中间值和明文确定第二部分密文和第三部分密文;
步骤606:所述加密设备根据所述第一部分密文、所述第二部分密文以及所述第三部分密文生成加密密文,并将所述加密密文发送给解密设备。
在介绍完本公开的加密方面方法之后,本公开还提供一种解密方法,如图7所示,本公开解密方法的流程示意图,包括以下步骤:
步骤701:作为主设备的解密设备接收作为主设备的加密设备发送的加密密文之后,利用所述加密密文中的第一部分密文以及所述解密设备的第一私钥确定出第一解密中间值;
在一个实施例中,所述解密设备将所述第一部分密文与所述第一私钥相乘得到所述第一解密中间值。例如,可通过公式(10)确定出所述第一解密中间值d1:
d1=c1×d1(10);
其中,d1为所述第一私钥。
由此,通过第一部分密文与第一私钥相乘得到第一解密中间值,以此来避免用户私钥的泄露。
步骤702:所述解密设备接收至少一个作为从设备的其他解密设备发送的第二解密中间值;
步骤703:所述解密设备通过所述第一解密中间值和所述第二解密中间值进行解密,得到明文。
在一个实施例中,步骤703可具体实施为:如图8所示,可包括以下步骤:
步骤801:所述解密设备根据所述第一解密中间值和所述第二解密中间值,得到椭圆曲线点的位置坐标;
在一个实施例中,步骤801可具体实施为:所述解密设备将所述第一解密中间值和所述第二解密中间值相加得到所述椭圆曲线点的位置坐标;,通过公式(11)确定出所述椭圆曲线点的位置坐标:
(x2,y2)=d1+d2(1)+d2(2)+…+d2(i)+…+d2(n)(11);
其中,x2为椭圆曲线点的位置坐标的横坐标,y2为椭圆曲线点的位置坐标的纵坐标;d2(i)为第i个其他解密设备发送的第二解密中间值,且i=1,2,…n;n为其他解密设备的数量。
由此,通过各解密中间值相加得到椭圆曲线点的位置坐标,以此来进一步保证数据加密的安全性。
步骤802:所述解密设备将所述椭圆曲线点的位置坐标的数据类型转换为比特串之后,利用密钥派生函数对椭圆曲线点的位置坐标进行处理,得到密钥流;
步骤803:所述解密设备将所述密钥流和所述加密密文中的第二部分密文进行异或运算,得到解密消息,以及通过散列函数对所述椭圆曲线点的位置坐标和所述解密消息进行处理得到解密摘要值;
步骤804:所述解密设备判断所述解密摘要值与所述加密密文中的第三部分密文是否相等;
步骤805:若相等,则所述解密设备确定所述解密消息为所述明文并输出;
步骤806:若不相等,则退出。
由此,通过第一解密中间值和第二解密中间值得到椭圆曲线点,然后利用密钥派生函数和散列函数对椭圆曲线点进行处理以此来得到明文。
在执行步骤701之前,为了确保解密流程能够顺利的进行,在一个实施例中,所述解密设备将自身的存储空间和性能参数发送给服务器,以便于所述服务器根据各解密设备的存储空间和性能参数确定出作为主设备的解密设备;若所述解密设备接收到所述服务器发送的作为主设备的指令,则确定自身为所述主设备。
其中,解密过程中确定主设备的方法与加密过程中的确定主设备的方法相同,本公开在此不在进行赘述。
由此,通过各解密设备的存储空间以及性能参数从各解密设备中确定出主设备,以此来确保作为主设备的解密设备能够进行解密得到明文。
基于与上述解密方法相同的发明构思,本公开还提出一种解密方法,该解密方法与前述方法的效果相似,在此不再赘述。如图9所示,本公开解密方法的流程示意图,可包括以下步骤:
步骤901:作为从设备的其他解密设备接收作为主设备的加密设备发送的加密密文之后,利用所述加密密文中的第一部分密文和所述其他解密设备的第二私钥确定出第二解密中间值;
在一个实施例中,步骤901可具体实施为:所述其他解密设备将所述第一部分密文c1和所述第二私钥相乘得到所述第二解密中间值。可通过公式(12)确定出所述第二解密中间值d2(i):
d2(i)=c1×d2(i)(12);
其中,d2(i)为第i个其他解密设备的第二解密中间值,d2(i)为第i个其他解密设备的所述第二私钥,且i=1,2,…n;n为其他解密设备的数量。
步骤902:所述其他解密设备将所述第二解密中间值发送给作为主设备的解密设备,以便于所述解密设备根据所述解密设备中的第一解密中间值和所述第二解密中间值进行解密,得到明文。
在执行步骤901之前,为了保证解密流程能够顺利进行,在一个实施例中,所述其他解密设备将自身的存储空间和性能参数发送给服务器,以便于所述服务器根据各解密设备的存储空间和性能参数确定出作为主设备的解密设备;若所述其他解密设备接收到所述服务器发送的所述解密设备作为所述主设备的指令,则确定所述解密设备为所述主设备。
为了进一步的了解本公开的技术方案,下面结合图10进行详细的说明,可包括以下步骤:
步骤1001:所述解密设备将自身的存储空间和性能参数发送给服务器,以便于所述服务器根据各解密设备的存储空间和性能参数确定出作为主设备的解密设备;
步骤1002:若所述解密设备接收到所述服务器发送的作为主设备的指令,则确定自身为所述主设备;
步骤1003:作为主设备的解密设备接收作为主设备的加密设备发送的加密密文之后,利用所述加密密文中的第一部分密文以及所述解密设备的第一私钥确定出第一解密中间值;
步骤1004:所述解密设备接收至少一个作为从设备的其他解密设备发送的第二解密中间值;
步骤1005:所述解密设备通过所述第一解密中间值和所述第二解密中间值进行解密,得到明文。
基于相同的发明构思,本公开如上所述的进解密方法还可以由一种作为主设备的加密设备实现。该加密设备的效果与前述方法的效果相似,在此不再赘述。
图11为根据本公开一个实施例的作为主设备的加密设备的结构示意图。
如图11所示,本公开的进行作为主设备的加密设备1100可以包括第一加密中间值生成模块1110、第二加密中间值生成模块1120、第一接收模块1130、第一部分密文确定模块1140、其他部分密文确定模块1150和密文发送模块1160。
第一加密中间值生成模块1110,用于利用第一随机数生成第一加密中间值;
第二加密中间值生成模块1120,用于根据所述第一随机数和第一公钥生成第二加密中间值;
第一接收模块1130,用于接收至少一个作为从设备的其他加密设备发送的第三加密中间值和第四加密中间值;其中所述第三加密中间值为所述其他加密设备利用第二随机数生成的;所述第四加密中间值为所述其他加密设备利用所述第二随机数和第二公钥生成的;
第一部分密文确定模块1140,用于通过所述第一加密中间值和所述第三加密中间值确定第一部分密文;
其他部分密文确定模块1150,用于利用所述第二加密中间值、所述第四加密中间值和明文确定第二部分密文和第三部分密文;
密文发送模块1160,用于所述加密设备根据所述第一部分密文、所述第二部分密文和所述第三部分密文生成加密密文,并将所述加密密文发送给解密设备。
在一个实施例中,所述第一加密中间值生成模块1110,具体用于:
将所述第一随机数与椭圆曲线点上的基点相乘得到所述第一加密中间值。
在一个实施例中,所述第二加密中间值生成模块1120,具体用于:
将所述第一随机数和所述第一公钥相乘得到所述第二加密中间值。
在一个实施例中,所述第一部分密文确定模块1140,具体用于:
将所述第一加密中间值和所述第三加密中间值相加得到所述第一部分密文。
在一个实施例中,所述其他部分密文确定模块1150,具体用于:
将所述第二加密中间值和所述第四加密中间值进行加法运算,得到椭圆曲线点的位置坐标;
将所述椭圆曲线点的位置坐标的数据类型转换为比特串之后,利用密钥派生函数对椭圆曲线点的位置坐标进行处理,得到密钥流;
将所述密钥流和所述明文进行异或运算得到所述第二部分密文,以及通过散列函数对所述椭圆曲线点的位置坐标和明文进行处理得到所述三部分密文。
在一个实施例中,所述加密设备还包括:
第一发送模块1170,用于利用第一随机数生成第一加密中间值之前,将所述设备自身的存储空间和性能参数发送给服务器,以便于所述服务器根据各加密设备的存储空间和性能参数确定出作为主设备的加密设备;
第一加密主设备确定模块1180,用于若所述加密设备接收到所述服务器发送的作为主设备的指令,则确定自身为所述主设备。
图12为本公开的作为从设备的加密设备的结构示意图,本公开的作为从设备的加密设备1200可以包括第三加密中间值生成模块1210、第四加密中间值生成模块1220、第二发送模块1230。
第三加密中间值生成模块1210,用于利用第二随机数生成第三加密中间值;
第四加密中间值生成模块1220,用于根据所述第二随机数和第二公钥生成第四加密中间值;
第二发送模块1230,用于将所述第三加密中间值和所述第四加密中间值发送给作为主设备的加密设备,以便于所述加密设备根据所述加密设备中的第一加密中间值和第二加密中间值以及所述第三加密中间值、所述第四加密中间值和明文生成加密密文并将所述加密密文发送给解密设备。
在一个实施例中,所述第三加密中间值生成模块1210,具体用于:
将所述第二随机数与椭圆曲线点上的基点相乘得到所述第三加密中间值。
在一个实施例中,所述第四加密中间值生成模块1220,具体用于:
将所述第二随机数和所述第二公钥相乘得到所述第四加密中间值。
在一个实施例中,所述加密设备还包括:
第三发送模块1240,用于将所述第三加密中间值和所述第四加密中间值发送给作为主设备的加密设备之前,将自身的存储空间和性能参数发送给服务器,以便于所述服务器根据各加密设备的存储空间和性能参数确定出作为主设备的加密设备;
第二加密主设备确定模块1250,用于若所述其他加密设备接收到所述服务器发送的所述加密设备作为所述主设备的指令,则确定所述加密设备为所述主设备。
如图13所示,为本公中的作为主设备的解密设备的结构示意图。作为主设备的解密设备1300包括第一解密中间值确定模块1310、第二接收模块1320和解密模块1330。
第一解密中间值确定模块1310,用于接收作为主设备的加密设备发送的加密密文之后,利用所述加密密文中的第一部分密文以及所述解密设备的第一私钥确定出第一解密中间值;
第二接收模块1320,用于接收至少一个作为从设备的其他解密设备发送的第二解密中间值;
解密模块1330,用于通过所述第一解密中间值和所述第二解密中间值进行解密,得到明文。
在一个实施例中,所述第一解密中间值确定模块1310,具体用于:
将所述第一部分密文与所述第一私钥相乘得到所述第一解密中间值。
在一个实施例中,所述解密模块1330,具体用于:
根据所述第一解密中间值和所述第二解密中间值,得到椭圆曲线点的位置坐标;
将所述椭圆曲线点的位置坐标的数据类型转换为比特串之后,利用密钥派生函数对椭圆曲线点的位置坐标进行处理,得到密钥流;
将所述密钥流和所述加密密文中的第二部分密文进行异或运算,得到解密消息,以及通过散列函数对所述椭圆曲线点的位置坐标和所述解密消息进行处理得到解密摘要值;
将所述解密摘要值与所述加密密文中的第三部分密文进行比对;
若相等,则确定所述解密消息为明文并输出。
在一个实施例中,所述解密模块1330,具体用于:
将所述第一解密中间值和所述第二解密中间值相加得到所述椭圆曲线点的位置坐标。
在一个实施例中,所述解密设备还包括:
第四发送模块1340,用于用所述加密密文中的第一部分密文以及所述解密设备的第一私钥确定出第一解密中间值之前,所述解密设备将自身的存储空间和性能参数发送给服务器,以便于所述服务器根据各解密设备的存储空间和性能参数确定出作为主设备的解密设备;
第一解密主设备确定模块1350,用于若所述解密设备接收到所述服务器发送的作为主设备的指令,则确定自身为所述主设备。
图14为作为从设备的解密设备的结构示意图,作为从设备的解密设备1400包括第二解密中间值确定模块1410和第五发送模块1420。
第二解密中间值确定模块1410,用于接收作为主设备的加密设备发送的加密密文之后,利用所述加密密文中的第一部分密文和所述其他解密设备的第二私钥确定出第二解密中间值;
第五发送模块1420,用于将所述第二解密中间值发送给作为主设备的解密设备,以便于所述解密设备根据所述解密设备中的第一解密中间值和所述第二解密中间值进行解密,得到明文。
在一个实施例中,所述第二解密中间值确定模块1410,具体用于:
所述其他解密设备将所述第一部分密文和所述第二私钥相乘得到所述第二解密中间值。
在一个实施例中,所述解密设备还包括:
第六发送模块1430,用于利用所述加密密文中的第一部分密文和所述其他解密设备的第二私钥确定出第二解密中间值之前,将自身的存储空间和性能参数发送给服务器,以便于所述服务器根据各解密设备的存储空间和性能参数确定出作为主设备的解密设备;
第二解密主设备确定模块1440,用于若所述其他解密设备接收到所述服务器发送的所述解密设备作为所述主设备的指令,则确定所述解密设备为所述主设备。
在介绍了本申请示例性实施方式的一种进加密方法和设备之后,接下来,介绍根据本申请的另一示例性实施方式的电子设备的结构,所述电子设备可为前文所述的加密设备和/或解密设备。
所属技术领域的技术人员能够理解,本申请的各个方面可以实现为系统、方法或程序产品。因此,本申请的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
在一些可能的实施方式中,根据本申请的电子设备可以至少包括至少一个处理器、以及至少一个计算机存储介质。其中,计算机存储介质存储有程序代码,当程序代码被处理器执行时,使得处理器执行本说明书上述描述的根据本申请各种示例性实施方式的加密方法和/或解密方法中的步骤。例如,处理器可以执行如图2中所示的加密方法的步骤201-204和/或执行图7所述的解密方法中的步骤701-703。
下面参照图15来描述根据本申请的这种实施方式的电子设备1500。图15显示的电子设备1500仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图15所示,电子设备1500以通用电子设备的形式表现。电子设备1500的组件可以包括但不限于:上述至少一个处理器1501、上述至少一个计算机存储介质1502、连接不同系统组件(包括计算机存储介质1502和处理器1501)的总线1503。
总线1503表示几类总线结构中的一种或多种,包括计算机存储介质总线或者计算机存储介质控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
计算机存储介质1502可以包括易失性计算机存储介质形式的可读介质,例如随机存取计算机存储介质(ram)1521和/或高速缓存存储介质1522,还可以进一步包括只读计算机存储介质(rom)1523。
计算机存储介质1502还可以包括具有一组(至少一个)程序模块1524的程序/实用工具1525,这样的程序模块1524包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
电子设备1500也可以与一个或多个外部设备1504(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与电子设备1500交互的设备通信,和/或与使得该电子设备1500能与一个或多个其它电子设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口1505进行。并且,电子设备1500还可以通过网络适配器1506与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器1506通过总线1503与用于电子设备1500的其它模块通信。应当理解,尽管图中未示出,可以结合电子设备1500使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
在一些可能的实施方式中,本申请提供的一种加密方法和/或解密方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在计算机设备上运行时,程序代码用于使计算机设备执行本说明书上述描述的根据本申请各种示例性实施方式的加密方法和/或解密方法中的步骤。例如,计算机设备可以执行如图2中所示的加密方法的步骤201-204和/或执行图7所述的解密方法中的步骤701-703。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。