一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于SM9的在线离线加解密方法、系统、设备及介质与流程

2023-02-01 20:57:26 来源:中国专利 TAG:

基于sm9的在线离线加解密方法、系统、设备及介质
技术领域
1.本技术涉及信息安全技术领域,更具体地说,涉及基于sm9的在线离线加解密方法、系统、设备及介质。


背景技术:

2.数据加密能够有效的将明文数据转换为一种无法识别其有效内容的密文,有效的保证了数据在传输过程中不会泄露数据内容,保护了数据的机密性,为用户的数据安全传输提供了强大的支撑。
3.在数据加密系统中,为有效保护数据的机密性,加密过程通常需要执行一系列的运算,比如包括双线性对、点乘等复杂运算,也包括模、加等轻量级运算等。其中,双线性对和点乘运算等复杂运算需要花费较多的计算资源,无法在资源有限的设备中应用,如物联网传感器,用户终端设备等。
4.为了解决这一问题,在线/离线加密技术应运而生。在线/离线加密技术将数据加密过程中密文生成算分解成即在线加密和离线加密两个子算法。在不需要知道加密数据和接收者标识的情况下,发送者可以通过离线加密算法提前计算部分加密操作,完成大部分大开销的运算并生成离线密文。当知道加密数据和接收者标识后,发送者通过在线加密算法,利用线下密文对从而有效的提高执行效率。目前,已有多种不同形式的在线/离线加密方案被提出,并在数字签名、属性基加密等多个密码学领域得到广泛研究和应用。然而,大多都是针对国外算法的量身定制,缺少对具体算法的自主控制,比如如何实现sm9加密算法的在线/离线加解密等。
5.综上所述,如何实现sm9加密算法的在线/离线加解密是目前本领域技术人员亟待解决的问题。


技术实现要素:

6.本技术的目的是提供一种基于sm9的在线离线加解密方法,其能在一定程度上解决如何实现sm9加密算法的在线/离线加解密的技术问题。本技术还提供了一种基于sm9的在线离线加解密系统、设备及计算机可读存储介质。
7.为了实现上述目的,本技术提供如下技术方案:
8.一种基于sm9的在线离线加解密方法,应用于数据发送端,包括:
9.获取数据接收端确认的待加密的目标数据;
10.获取基于sm9算法确定的素数、私钥生成函数识别符、第一密码函数、第二密码函数;
11.获取预先生成的第一随机数及第二随机数;
12.获取预先生成的第一中间密文、密文参数、中间参数;所述第一中间密文基于所述第一随机数、所述第二随机数、所述sm9算法确定的加密主公钥、所述sm9算法中第一加法循环群的生成元生成;所述密文参数基于所述第一中间密文、所述中间参数、所述数据接收端
的可辨别标识、所述sm9算法确定的第三密码函数生成;所述中间参数基于所述第二随机数、所述加密主公钥、所述sm9算法中第二加法循环群的生成元、所述sm9算法中的双线性对映射生成;
13.基于所述第一随机数、所述第二随机数、所述素数、所述数据发送端的可辨别标识、所述私钥生成函数识别符、所述第一密码函数生成第二中间密文;
14.基于所述目标数据、所述密文参数生成第三中间密文;
15.基于所述第二随机数、所述第二密码函数、所述目标数据、所述中间参数、所述第一中间密文、所述第二中间密文、所述素数生成第四中间密文;
16.将所述第一中间密文、所述第二中间密文、所述第三中间密文及所述第四中间密文作为所述目标数据的目标密文。
17.优选的,所述获取数据接收端确认的待加密的目标数据之前,还包括:
18.在离线阶段,生成所述第一随机数及所述第二随机数;
19.在所述离线阶段,基于所述第一随机数、所述第二随机数、所述sm9算法确定的所述加密主公钥、所述sm9算法中所述第一加法循环群的生成元生成所述第一中间密文;
20.在所述离线阶段,基于所述第一中间密文、所述中间参数、所述数据接收端的可辨别标识、所述sm9算法确定的所述第三密码函数生成所述密文参数;
21.在所述离线阶段,基于所述第二随机数、所述加密主公钥、所述sm9算法中所述第二加法循环群的生成元、所述sm9算法中的所述双线性对映射生成所述中间参数。
22.优选的,所述基于所述第一随机数、所述第二随机数、所述sm9算法确定的所述加密主公钥、所述sm9算法中所述第一加法循环群的生成元生成所述第一中间密文,包括:
23.通过第一运算公式,基于所述第一随机数、所述第二随机数、所述sm9算法确定的所述加密主公钥、所述sm9算法中所述第一加法循环群的生成元生成所述第一中间密文;
24.所述第一运算公式包括:
25.c1=[r](p
pub
[s]p1);
[0026]
其中,c1表示所述第一中间密文;r表示所述第二随机数;p
pub
表示所述加密主公钥,p
pub
=[ke]p1,ke表示所述sm9算法确定的加密主私钥;s表示所述第一随机数;p1表示所述第一加法循环群g1的生成元;
[0027]
所述基于所述第一中间密文、所述中间参数、所述数据接收端的可辨别标识生成所述密文参数,包括:
[0028]
通过第二运算公式,基于所述第一中间密文、所述中间参数、所述数据接收端的可辨别标识、所述sm9算法确定的所述第三密码函数生成所述密文参数;
[0029]
所述第二运算公式包括:
[0030]
t=h3(c1||w||idb);
[0031]
其中,t表示所述密文参数;h3表示所述第三密码函数;w表示所述中间参数;idb表示所述数据接收端的可辨别标识;||表示拼接;
[0032]
所述基于所述第二随机数、所述加密主公钥、所述sm9算法中所述第二加法循环群的生成元、所述sm9算法中的所述双线性对映射生成所述中间参数,包括:
[0033]
通过第三运算公式,基于所述第二随机数、所述加密主公钥、所述sm9算法中所述第二加法循环群的生成元、所述sm9算法中的所述双线性对映射生成所述中间参数;
[0034]
所述第三运算公式包括:
[0035]
w=gr;g=e(p
pub
,p2);
[0036]
其中,e表示所述双线性对映射;p2表示所述第二加法循环群g2的生成元。
[0037]
优选的,所述基于所述第一随机数、所述第二随机数、所述素数、所述数据发送端的可辨别标识、所述私钥生成函数识别符、所述第一密码函数生成第二中间密文,包括:
[0038]
通过第四运算公式,基于所述第一随机数、所述第二随机数、所述素数、所述数据发送端的可辨别标识、所述私钥生成函数识别符、所述第一密码函数生成第二中间密文;
[0039]
所述第四运算公式包括:
[0040]
c2=r
·
(h1(ida||hid,q)-s)mod q;
[0041]
其中,c2表示所述第二中间密文;h1表示所述第一密码函数;ida表示所述数据发送端的可辨别标识;hid表示所述私钥生成函数识别符;q表示所述素数;
[0042]
所述基于所述目标数据、所述密文参数生成第三中间密文,包括:
[0043]
通过第五运算公式,基于所述目标数据、所述密文参数生成所述第三中间密文;
[0044]
所述第五运算公式包括:
[0045][0046]
其中,c3表示所述第三中间密文;m表示所述目标数据;

表示异或运算;
[0047]
所述基于所述第二随机数、所述第二密码函数、所述目标数据、所述中间参数、所述第一中间密文、所述第二中间密文、所述素数生成第四中间密文,包括:
[0048]
通过第六运算公式,基于所述第二随机数、所述第二密码函数、所述目标数据、所述中间参数、所述第一中间密文、所述第二中间密文、所述素数生成所述第四中间密文;
[0049]
所述第六运算公式包括:
[0050]
c4=(r h2(m||w||c1||c2))mod q;
[0051]
其中,c4表示所述第四中间密文;h2表示所述第二密码函数。
[0052]
优选的,所述将所述第一中间密文、所述第二中间密文、所述第三中间密文及所述第四中间密文作为所述目标数据的目标密文之后,还包括:
[0053]
发送所述目标密文至所述数据接收端。
[0054]
一种基于sm9的在线离线加解密方法,应用于数据接收端,包括:
[0055]
获取基于sm9算法确定的双线性对映射、第一加法循环群的生成元、第一密码函数、第二密码函数、素数、私钥生成函数识别符、第二加法循环群的生成元、加密主公钥;
[0056]
接收数据发送端传输的目标密文,所述目标密文包括第一中间密文、第二中间密文、第三中间密文及第四中间密文;
[0057]
基于所述双线性对映射、所述第一中间密文、所述第二中间密文、所述第一加法循环群的生成元、所述数据接收端的私钥生成校验中间参数;
[0058]
基于所述校验中间参数及所述第三中间参数生成校验数据;
[0059]
基于所述第四中间密文、所述第二密码函数、所述校验数据、所述校验中间参数、所述第一中间密文、所述第二中间密文、所述素数生成校验第二随机数;
[0060]
基于所述第一密码函数、所述数据发送端的可辨别标识、所述私钥生成函数识别符、所述素数、所述校验第二随机数、所述第二中间密文生成校验第一随机数;
[0061]
基于所述校验第一随机数、所述加密主公钥、所述校验第二随机数、所述第二加法
循环群的生成元验证所述第一中间密文是否正确,若正确,则将所述校验数据作为所述数据发送端传输的目标数据;
[0062]
其中,所述第一中间密文基于第一随机数、第二随机数、所述加密主公钥、所述第一加法循环群的生成元生成;所述第二中间密文基于所述第一随机数、所述第二随机数、所述素数、所述数据发送端的可辨别标识、所述私钥生成函数识别符、所述第一密码函数生成;所述第三中间密文基于所述目标数据、所述密文参数生成;所述第四中间密文基于所述第二随机数、所述第二密码函数、所述目标数据、中间参数、所述第一中间密文、所述第二中间密文、所述素数生成;所述密文参数基于所述第一中间密文、所述中间参数、所述数据接收端的可辨别标识、所述sm9算法确定的第三密码函数生成;所述中间参数基于所述第二随机数、所述加密主公钥、所述第二加法循环群的生成元、所述双线性对映射生成。
[0063]
优选的,所述基于所述双线性对映射、所述第一中间密文、所述第二中间密文、所述第一加法循环群的生成元、所述数据接收端的私钥生成校验中间参数,包括:
[0064]
通过第一生成公式,基于所述双线性对映射、所述第一中间密文、所述第二中间密文、所述第一加法循环群的生成元、所述数据接收端的私钥生成所述校验中间参数;
[0065]
所述第一生成公式包括:
[0066]
w'=e((c1 [c2]p1),deb);
[0067]
其中,w'表示所述校验中间参数;e表示所述双线性对映射;c1表示所述第一中间密文;c2表示所述第二中间密文;p1表示所述第一加法循环群g1的生成元;deb表示所述数据接收端的私钥,deb=[ke
·
(h1(idb) ke)-1
mod q]p2,ke表示所述sm9算法确定的加密主私钥,h1表示所述第一密码函数,idb表示所述数据接收端的可辨别标识,p2表示所述第二加法循环群g2的生成元;
[0068]
所述基于所述校验中间参数及所述第三中间参数生成校验数据,包括:
[0069]
通过第二生成公式,基于所述校验中间参数及所述第三中间参数生成所述校验数据;
[0070]
所述第二生成公式包括:
[0071][0072]
其中,m'表示所述校验数据;c3表示所述第三中间密文;

表示异或运算;
[0073]
所述,基于所述第四中间密文、所述第二密码函数、所述校验数据、所述校验中间参数、所述第一中间密文、所述第二中间密文、所述素数生成校验第二随机数,包括:
[0074]
通过第三生成公式,基于所述第四中间密文、所述第二密码函数、所述校验数据、所述校验中间参数、所述第一中间密文、所述第二中间密文、所述素数生成所述校验第二随机数;
[0075]
所述第三生成公式包括;
[0076]
r'=(c
4-h2(m'||w'||c1||c2))mod q;
[0077]
其中,r'表示所述校验第二随机数;c4表示所述第四中间密文;
[0078]
所述基于所述第一密码函数、所述数据发送端的可辨别标识、所述私钥生成函数识别符、所述素数、所述校验第二随机数、所述第二中间密文生成校验第一随机数,包括:
[0079]
通过第四生成公式,基于所述第一密码函数、所述数据发送端的可辨别标识、所述私钥生成函数识别符、所述素数、所述校验第二随机数、所述第二中间密文生成所述校验第
一随机数;
[0080]
所述第四生成公式包括:
[0081]s′
=(h1(ida||hid,q)-r'-1
·
c2);
[0082]
其中,s

表示所述校验第一随机数;ida表示所述数据发送端的可辨别标识;
[0083]
所述基于所述校验第一随机数、所述加密主公钥、所述校验第二随机数、所述第二加法循环群的生成元验证所述第一中间密文是否正确,包括:
[0084]
验证第一等式是否成立,若第一等式成立,则确定基于所述校验第一随机数、所述加密主公钥、所述校验第二随机数、所述第二加法循环群的生成元判定所述第一中间密文正确;若第一等式不成立,则确定基于所述校验第一随机数、所述加密主公钥、所述校验第二随机数、所述第二加法循环群的生成元判定所述第一中间密文不正确;
[0085]
所述第一等式包括:
[0086]
c1=[r'](p
pub
[s']p2);
[0087]
其中,p
pub
表示所述加密主公钥,p
pub
=[ke]p1。
[0088]
一种基于sm9的在线离线加解密系统,应用于数据发送端,包括:
[0089]
第一获取模块,用于获取数据接收端确认的待加密的目标数据;
[0090]
第二获取模块,用于获取基于sm9算法确定的素数、私钥生成函数识别符、第一密码函数、第二密码函数;
[0091]
第三获取模块,用于获取预先生成的第一随机数及第二随机数;
[0092]
第四获取模块,用于获取预先生成的第一中间密文、密文参数、中间参数;所述第一中间密文基于所述第一随机数、所述第二随机数、所述sm9算法确定的加密主公钥、所述sm9算法中第一加法循环群的生成元生成;所述密文参数基于所述第一中间密文、所述中间参数、所述数据接收端的可辨别标识、所述sm9算法确定的第三密码函数生成;所述中间参数基于所述第二随机数、所述加密主公钥、所述sm9算法中第二加法循环群的生成元、所述sm9算法中的双线性对映射生成;
[0093]
第一生成模块,用于基于所述第一随机数、所述第二随机数、所述素数、所述数据发送端的可辨别标识、所述私钥生成函数识别符、所述第一密码函数生成第二中间密文;
[0094]
第二生成模块,用于基于所述目标数据、所述密文参数生成第三中间密文;
[0095]
第三生成模块,用于基于所述第二随机数、所述第二密码函数、所述目标数据、所述中间参数、所述第一中间密文、所述第二中间密文、所述素数生成第四中间密文;
[0096]
第一处理模块,用于将所述第一中间密文、所述第二中间密文、所述第三中间密文及所述第四中间密文作为所述目标数据的目标密文。
[0097]
一种基于sm9的在线离线加解密系统,包括:
[0098]
存储器,用于存储计算机程序;
[0099]
处理器,用于执行所述计算机程序时实现如上任一所述基于sm9的在线离线加解密方法的步骤。
[0100]
一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如上任一所述基于sm9的在线离线加解密方法的步骤。
[0101]
本技术提供的一种基于sm9的在线离线加解密方法,应用于数据发送端,获取数据接收端确认的待加密的目标数据;获取基于sm9算法确定的素数、私钥生成函数识别符、第
一密码函数、第二密码函数;获取预先生成的第一随机数及第二随机数;获取预先生成的第一中间密文、密文参数、中间参数;第一中间密文基于第一随机数、第二随机数、sm9算法确定的加密主公钥、sm9算法中第一加法循环群的生成元生成;密文参数基于第一中间密文、中间参数、数据接收端的可辨别标识、sm9算法确定的第三密码函数生成;中间参数基于第二随机数、加密主公钥、sm9算法中第二加法循环群的生成元、sm9算法中的双线性对映射生成;基于第一随机数、第二随机数、素数、数据发送端的可辨别标识、私钥生成函数识别符、第一密码函数生成第二中间密文;基于目标数据、密文参数生成第三中间密文;基于第二随机数、第二密码函数、目标数据、中间参数、第一中间密文、第二中间密文、素数生成第四中间密文;将第一中间密文、第二中间密文、第三中间密文及第四中间密文作为目标数据的目标密文。本技术基于sm9算法的相应参数实现了在线加密,由于第一中间密文、密文参数、中间参数可以由数据发送端预先离线生成,所以本技术实现了sm9算法在线/离线加密,扩充了现有在线/离线加密的方式,适用性好。本技术提供的一种基于sm9的在线离线加解密系统、设备及计算机可读存储介质也解决了相应技术问题。
附图说明
[0102]
为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0103]
图1为本技术实施例提供的一种基于sm9的在线离线加解密方法的第一流程图;
[0104]
图2为本技术实施例提供的一种基于sm9的在线离线加解密方法的第二流程图;
[0105]
图3为本技术实施例提供的一种基于sm9的在线离线加解密系统的结构示意图;
[0106]
图4为本技术实施例提供的一种基于sm9的在线离线加解密设备的结构示意图;
[0107]
图5为本技术实施例提供的一种基于sm9的在线离线加解密设备的另一结构示意图。
具体实施方式
[0108]
下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
[0109]
为便于理解本技术提供的数据加解密方法,现对本技术所涉及的sm9算法中的参数进行描述:
[0110]
q:一个大素数。
[0111]
由1,2,....,q-1组成的整数集合。
[0112]
g1,g2:阶为n的加法循环群。
[0113]gt
:阶为n的乘法循环群。
[0114]
p1,p2:分别为群g1和g2的生成元。
[0115]gu
:乘法群g
t
中元素g的u次幂。
[0116]
[k]p:椭圆曲线上点p的k倍点,k是正整数。
[0117]
hid:私钥生成函数识别符。
[0118]
e:从g1×
g2到g
t
的双线性对映射。
[0119]
h1(
·
),h2(
·
):由密码杂凑函数派生的密码函数,均为
[0120]
h3(
·
):由密码杂凑函数派生的密码函数,为{0,1}*

{0,1}n,其中n为消息数据的长度。
[0121]
ke:由kgc秘密持有的加密主私钥。
[0122]
p
pub
:由kgc公开的加密主公钥,计算公式为p
pub
=[ke]p1。
[0123]
id:用户公开的可辨别标识。
[0124]
dea:用户a的私钥。
[0125]
m:待加密的消息。
[0126]
mod q:模q运算。例如,23mod 7≡2。
[0127]
x||y:x与y的拼接,其中x,y以是比特串或字节串。
[0128]
x与y的异或运算,即x与y两个比特串按比特的模2加运算。
[0129]
c1:密码计算中间辅助参数1,无实际意义。
[0130]
c2:密码计算中间辅助参数2,无实际意义。
[0131]
c3:密码计算中间辅助参数3,无实际意义。
[0132]
c4:密码计算中间辅助参数4,无实际意义。
[0133]
请参阅图1,图1为本技术实施例提供的一种基于sm9的在线离线加解密方法的第一流程图。
[0134]
本技术实施例提供的一种基于sm9的在线离线加解密方法,应用于数据发送端,可以包括以下步骤:
[0135]
步骤s101:获取数据接收端确认的待加密的目标数据。
[0136]
实际应用中,可以先获取数据接收端确认的待加密的目标数据,目标数据的类型可以根据实际需要确定,比如目标数据可以为图像数据、音频数据、短信、数字等,本技术在此不做具体限定。
[0137]
具体应用场景中,在数据发送端获取数据接收端确认的待加密的目标数据之前,还可以有密钥生成中心来生成本技术方案所需的数据,比如有密钥生成中心产生随机数作为主私钥并保存,计算主公钥p
pub
=[ke]p1并公开;密钥生成中心选择并公开用一个字节表示的加密私钥生成函数识别符hid;密钥生成中心使用数据接收端的可辨别标识idb生成对应的私钥deb=[ke
·
(h1(idb) ke)-1
mod q]p2等,本技术在此不做具体限定。
[0138]
步骤s102:获取基于sm9算法确定的素数、私钥生成函数识别符、第一密码函数、第二密码函数。
[0139]
实际应用中,在获取数据接收端确认的待加密的目标数据之后,便可以获取基于sm9算法确定的素数、私钥生成函数识别符、第一密码函数、第二密码函数。
[0140]
步骤s103:获取预先生成的第一随机数及第二随机数。
[0141]
实际应用中,在获取基于sm9算法确定的素数、私钥生成函数识别符、第一密码函数、第二密码函数之后,便可以获取预先生成的第一随机数及第二随机数。
[0142]
步骤s104:获取预先生成的第一中间密文、密文参数、中间参数;所述第一中间密文基于所述第一随机数、所述第二随机数、所述sm9算法确定的加密主公钥、所述sm9算法中第一加法循环群的生成元生成;所述密文参数基于所述第一中间密文、所述中间参数、所述数据接收端的可辨别标识、所述sm9算法确定的第三密码函数生成;所述中间参数基于所述第二随机数、所述加密主公钥、所述sm9算法中第二加法循环群的生成元、所述sm9算法中的双线性对映射生成。
[0143]
实际应用中,在获取预先生成的第一随机数及第二随机数之后,便可以获取预先生成的第一中间密文、密文参数、中间参数;且所述第一中间密文基于所述第一随机数、所述第二随机数、所述sm9算法确定的加密主公钥、所述sm9算法中第一加法循环群的生成元生成;所述密文参数基于所述第一中间密文、所述中间参数、所述数据接收端的可辨别标识、所述sm9算法确定的第三密码函数生成;所述中间参数基于所述第二随机数、所述加密主公钥、所述sm9算法中第二加法循环群的生成元、所述sm9算法中的双线性对映射生成。
[0144]
具体应用场景中,在所述获取数据接收端确认的待加密的目标数据之前,还可以在离线阶段,生成所述第一随机数及所述第二随机数;在所述离线阶段,基于所述第一随机数、所述第二随机数、所述sm9算法确定的所述加密主公钥、所述sm9算法中所述第一加法循环群的生成元生成所述第一中间密文;在所述离线阶段,基于所述第一中间密文、所述中间参数、所述数据接收端的可辨别标识、所述sm9算法确定的所述第三密码函数生成所述密文参数;在所述离线阶段,基于所述第二随机数、所述加密主公钥、所述sm9算法中所述第二加法循环群的生成元、所述sm9算法中的所述双线性对映射生成所述中间参数。
[0145]
具体应用场景中,在所述基于所述第一随机数、所述第二随机数、所述sm9算法确定的所述加密主公钥、所述sm9算法中所述第一加法循环群的生成元生成所述第一中间密文的过程中,可以通过第一运算公式,基于所述第一随机数、所述第二随机数、所述sm9算法确定的所述加密主公钥、所述sm9算法中所述第一加法循环群的生成元生成所述第一中间密文;
[0146]
所述第一运算公式包括:
[0147]
c1=[r](p
pub
[s]p1);
[0148]
其中,c1表示所述第一中间密文;r表示所述第二随机数;p
pub
表示所述加密主公钥,p
pub
=[ke]p1,ke表示所述sm9算法确定的加密主私钥;s表示所述第一随机数;p1表示所述第一加法循环群g1的生成元;
[0149]
在所述基于所述第一中间密文、所述中间参数、所述数据接收端的可辨别标识生成所述密文参数的过程中,可以通过第二运算公式,基于所述第一中间密文、所述中间参数、所述数据接收端的可辨别标识、所述sm9算法确定的所述第三密码函数生成所述密文参数;
[0150]
所述第二运算公式包括:
[0151]
t=h3(c1||w||idb);
[0152]
其中,t表示所述密文参数;h3表示所述第三密码函数;w表示所述中间参数;idb表示所述数据接收端的可辨别标识;||表示拼接;
[0153]
在所述基于所述第二随机数、所述加密主公钥、所述sm9算法中所述第二加法循环群的生成元、所述sm9算法中的所述双线性对映射生成所述中间参数的过程中,可以通过第
三运算公式,基于所述第二随机数、所述加密主公钥、所述sm9算法中所述第二加法循环群的生成元、所述sm9算法中的所述双线性对映射生成所述中间参数;
[0154]
所述第三运算公式包括:
[0155]
w=gr;g=e(p
pub
,p2);
[0156]
其中,e表示所述双线性对映射;p2表示所述第二加法循环群g2的生成元。
[0157]
步骤s105:基于所述第一随机数、所述第二随机数、所述素数、所述数据发送端的可辨别标识、所述私钥生成函数识别符、所述第一密码函数生成第二中间密文。
[0158]
实际应用中,在获取预先生成的第一中间密文、密文参数、中间参数之后,便可以基于所述第一随机数、所述第二随机数、所述素数、所述数据发送端的可辨别标识、所述私钥生成函数识别符、所述第一密码函数生成第二中间密文。
[0159]
具体应用场景中,在所述基于所述第一随机数、所述第二随机数、所述素数、所述数据发送端的可辨别标识、所述私钥生成函数识别符、所述第一密码函数生成第二中间密文的过程中,可以通过第四运算公式,基于所述第一随机数、所述第二随机数、所述素数、所述数据发送端的可辨别标识、所述私钥生成函数识别符、所述第一密码函数生成第二中间密文;
[0160]
所述第四运算公式包括:
[0161]
c2=r
·
(h1(ida||hid,q)-s)mod q;
[0162]
其中,c2表示所述第二中间密文;h1表示所述第一密码函数;ida表示所述数据发送端的可辨别标识;hid表示所述私钥生成函数识别符;q表示所述素数;
[0163]
步骤s106:基于所述目标数据、所述密文参数生成第三中间密文。
[0164]
实际应用中,在基于所述第一随机数、所述第二随机数、所述素数、所述数据发送端的可辨别标识、所述私钥生成函数识别符、所述第一密码函数生成第二中间密文之后,便可以基于所述目标数据、所述密文参数生成第三中间密文。
[0165]
具体应用场景中,在所述基于所述目标数据、所述密文参数生成第三中间密文的过程中,可以通过第五运算公式,基于所述目标数据、所述密文参数生成所述第三中间密文;
[0166]
所述第五运算公式包括:
[0167][0168]
其中,c3表示所述第三中间密文;m表示所述目标数据;

表示异或运算;
[0169]
步骤s107:基于所述第二随机数、所述第二密码函数、所述目标数据、所述中间参数、所述第一中间密文、所述第二中间密文、所述素数生成第四中间密文。
[0170]
实际应用中,在基于所述目标数据、所述密文参数生成第三中间密文之后,便可以基于所述第二随机数、所述第二密码函数、所述目标数据、所述中间参数、所述第一中间密文、所述第二中间密文、所述素数生成第四中间密文。
[0171]
具体应用场景中,在所述基于所述第二随机数、所述第二密码函数、所述目标数据、所述中间参数、所述第一中间密文、所述第二中间密文、所述素数生成第四中间密文的过程中,可以通过第六运算公式,基于所述第二随机数、所述第二密码函数、所述目标数据、所述中间参数、所述第一中间密文、所述第二中间密文、所述素数生成所述第四中间密文;
[0172]
所述第六运算公式包括:
[0173]
c4=(r h2(m||w||c1||c2))mod q;
[0174]
其中,c4表示所述第四中间密文;h2表示所述第二密码函数。
[0175]
步骤s108:将所述第一中间密文、所述第二中间密文、所述第三中间密文及所述第四中间密文作为所述目标数据的目标密文。
[0176]
实际应用中,在基于所述第二随机数、所述第二密码函数、所述目标数据、所述中间参数、所述第一中间密文、所述第二中间密文、所述素数生成第四中间密文之后,便可以将所述第一中间密文、所述第二中间密文、所述第三中间密文及所述第四中间密文作为所述目标数据的目标密文。
[0177]
具体应用场景中,在所述将所述第一中间密文、所述第二中间密文、所述第三中间密文及所述第四中间密文作为所述目标数据的目标密文之后,还可以发送所述目标密文至所述数据接收端等,本技术在此不做具体限定。
[0178]
本技术提供的一种基于sm9的在线离线加解密方法,应用于数据发送端,获取数据接收端确认的待加密的目标数据;获取基于sm9算法确定的素数、私钥生成函数识别符、第一密码函数、第二密码函数;获取预先生成的第一随机数及第二随机数;获取预先生成的第一中间密文、密文参数、中间参数;第一中间密文基于第一随机数、第二随机数、sm9算法确定的加密主公钥、sm9算法中第一加法循环群的生成元生成;密文参数基于第一中间密文、中间参数、数据接收端的可辨别标识、sm9算法确定的第三密码函数生成;中间参数基于第二随机数、加密主公钥、sm9算法中第二加法循环群的生成元、sm9算法中的双线性对映射生成;基于第一随机数、第二随机数、素数、数据发送端的可辨别标识、私钥生成函数识别符、第一密码函数生成第二中间密文;基于目标数据、密文参数生成第三中间密文;基于第二随机数、第二密码函数、目标数据、中间参数、第一中间密文、第二中间密文、素数生成第四中间密文;将第一中间密文、第二中间密文、第三中间密文及第四中间密文作为目标数据的目标密文。本技术基于sm9算法的相应参数实现了在线加密,由于第一中间密文、密文参数、中间参数可以由数据发送端预先离线生成,所以本技术实现了sm9算法在线/离线加密,扩充了现有在线/离线加密的方式,适用性好。
[0179]
此外,本技术实现了基于sm9算法的在线/离线加密方法,数据发送端将数据加密过程分解成在线加密和离线加密两个子过程,在不需要知道加密数据和数据接收端标识的情况下,数据发送端可以通过离线加密算法提前计算部分加密操作,完成大部分大开销的运算并生成离线密文,当知道加密数据和数据接收端标识后,数据发送端可以利用线下密文对执行在线加密算法来完成加密过程,从而有效的提高执行效率。
[0180]
请参阅图2,图2为本技术实施例提供的一种基于sm9的在线离线加解密方法的第二流程图。
[0181]
本技术实施例提供的一种基于sm9的在线离线加解密方法,应用于数据接收端,数据接收端解密得到目标数据的过程可以包括以下步骤:
[0182]
步骤s201:获取基于sm9算法确定的双线性对映射、第一加法循环群的生成元、第一密码函数、第二密码函数、素数、私钥生成函数识别符、第二加法循环群的生成元、加密主公钥。
[0183]
步骤s202:接收数据发送端传输的目标密文,所述目标密文包括第一中间密文、第二中间密文、第三中间密文及第四中间密文。
[0184]
步骤s203:基于所述双线性对映射、所述第一中间密文、所述第二中间密文、所述第一加法循环群的生成元、所述数据接收端的私钥生成校验中间参数。
[0185]
具体应用场景中,在所述基于所述双线性对映射、所述第一中间密文、所述第二中间密文、所述第一加法循环群的生成元、所述数据接收端的私钥生成校验中间参数的过程中,可以通过第一生成公式,基于所述双线性对映射、所述第一中间密文、所述第二中间密文、所述第一加法循环群的生成元、所述数据接收端的私钥生成所述校验中间参数;
[0186]
所述第一生成公式包括:
[0187]
w'=e((c1 [c2]p1),deb);
[0188]
其中,w'表示所述校验中间参数;e表示所述双线性对映射;c1表示所述第一中间密文;c2表示所述第二中间密文;p1表示所述第一加法循环群g1的生成元;deb表示所述数据接收端的私钥,deb=[ke
·
(h1(idb) ke)-1
mod q]p2,ke表示所述sm9算法确定的加密主私钥,h1表示所述第一密码函数,idb表示所述数据接收端的可辨别标识,p2表示所述第二加法循环群g2的生成元;
[0189]
步骤s204:基于所述校验中间参数及所述第三中间参数生成校验数据。
[0190]
实际应用中,在所述基于所述校验中间参数及所述第三中间参数生成校验数据的过程中,可以通过第二生成公式,基于所述校验中间参数及所述第三中间参数生成所述校验数据;
[0191]
所述第二生成公式包括:
[0192][0193]
其中,m'表示所述校验数据;c3表示所述第三中间密文;表示异或运算;。
[0194]
步骤s205:基于所述第四中间密文、所述第二密码函数、所述校验数据、所述校验中间参数、所述第一中间密文、所述第二中间密文、所述素数生成校验第二随机数。
[0195]
实际应用中,在基于所述第四中间密文、所述第二密码函数、所述校验数据、所述校验中间参数、所述第一中间密文、所述第二中间密文、所述素数生成校验第二随机数的过程中,可以通过第三生成公式,基于所述第四中间密文、所述第二密码函数、所述校验数据、所述校验中间参数、所述第一中间密文、所述第二中间密文、所述素数生成所述校验第二随机数;
[0196]
所述第三生成公式包括;
[0197]
r'=(c
4-h2(m'||w'||c1||c2))mod q;
[0198]
其中,r'表示所述校验第二随机数;c4表示所述第四中间密文。
[0199]
步骤s206:基于所述第一密码函数、所述数据发送端的可辨别标识、所述私钥生成函数识别符、所述素数、所述校验第二随机数、所述第二中间密文生成校验第一随机数。
[0200]
实际应用中,在所述基于所述第一密码函数、所述数据发送端的可辨别标识、所述私钥生成函数识别符、所述素数、所述校验第二随机数、所述第二中间密文生成校验第一随机数的过程中,可以通过第四生成公式,基于所述第一密码函数、所述数据发送端的可辨别标识、所述私钥生成函数识别符、所述素数、所述校验第二随机数、所述第二中间密文生成所述校验第一随机数;
[0201]
所述第四生成公式包括:
[0202]s′
=(h1(ida||hid,q)-r'-1
·
c2);
[0203]
其中,s

表示所述校验第一随机数;ida表示所述数据发送端的可辨别标识。
[0204]
步骤s207:基于所述校验第一随机数、所述加密主公钥、所述校验第二随机数、所述第二加法循环群的生成元验证所述第一中间密文是否正确,若正确,则将所述校验数据作为所述数据发送端传输的目标数据。
[0205]
实际应用中,在所述基于所述校验第一随机数、所述加密主公钥、所述校验第二随机数、所述第二加法循环群的生成元验证所述第一中间密文是否正确的过程中,可以验证第一等式是否成立,若第一等式成立,则确定基于所述校验第一随机数、所述加密主公钥、所述校验第二随机数、所述第二加法循环群的生成元判定所述第一中间密文正确;若第一等式不成立,则确定基于所述校验第一随机数、所述加密主公钥、所述校验第二随机数、所述第二加法循环群的生成元判定所述第一中间密文不正确;
[0206]
所述第一等式包括:
[0207]
c1=[r'](p
pub
[s']p2);
[0208]
其中,p
pub
表示所述加密主公钥,p
pub
=[ke]p1。
[0209]
请参阅图3,图3为本技术实施例提供的一种基于sm9的在线离线加解密系统的结构示意图。
[0210]
本技术实施例提供的一种基于sm9的在线离线加解密系统,应用于数据发送端,可以包括:
[0211]
第一获取模块101,用于获取数据接收端确认的待加密的目标数据;
[0212]
第二获取模块102,用于获取基于sm9算法确定的素数、私钥生成函数识别符、第一密码函数、第二密码函数;
[0213]
第三获取模块103,用于获取预先生成的第一随机数及第二随机数;
[0214]
第四获取模块104,用于获取预先生成的第一中间密文、密文参数、中间参数;所述第一中间密文基于所述第一随机数、所述第二随机数、所述sm9算法确定的加密主公钥、所述sm9算法中第一加法循环群的生成元生成;所述密文参数基于所述第一中间密文、所述中间参数、所述数据接收端的可辨别标识、所述sm9算法确定的第三密码函数生成;所述中间参数基于所述第二随机数、所述加密主公钥、所述sm9算法中第二加法循环群的生成元、所述sm9算法中的双线性对映射生成;
[0215]
第一生成模块105,用于基于所述第一随机数、所述第二随机数、所述素数、所述数据发送端的可辨别标识、所述私钥生成函数识别符、所述第一密码函数生成第二中间密文;
[0216]
第二生成模块106,用于基于所述目标数据、所述密文参数生成第三中间密文;
[0217]
第三生成模块107,用于基于所述第二随机数、所述第二密码函数、所述目标数据、所述中间参数、所述第一中间密文、所述第二中间密文、所述素数生成第四中间密文;
[0218]
第一处理模块108,用于将所述第一中间密文、所述第二中间密文、所述第三中间密文及所述第四中间密文作为所述目标数据的目标密文。
[0219]
本技术实施例提供的一种基于sm9的在线离线加解密系统,应用于数据接收端,可以包括:
[0220]
第五获取模块,用于获取基于sm9算法确定的双线性对映射、第一加法循环群的生成元、第一密码函数、第二密码函数、素数、私钥生成函数识别符、第二加法循环群的生成元、加密主公钥;
[0221]
第一接收模块,用于接收数据发送端传输的目标密文,所述目标密文包括第一中间密文、第二中间密文、第三中间密文及第四中间密文;
[0222]
第四生成模块,用于基于所述双线性对映射、所述第一中间密文、所述第二中间密文、所述第一加法循环群的生成元、所述数据接收端的私钥生成校验中间参数;
[0223]
第五生成模块,用于基于所述校验中间参数及所述第三中间参数生成校验数据;
[0224]
第六生成模块,用于基于所述第四中间密文、所述第二密码函数、所述校验数据、所述校验中间参数、所述第一中间密文、所述第二中间密文、所述素数生成校验第二随机数;
[0225]
第七生成模块,用于基于所述第一密码函数、所述数据发送端的可辨别标识、所述私钥生成函数识别符、所述素数、所述校验第二随机数、所述第二中间密文生成校验第一随机数;
[0226]
第一校验模块,用于基于所述校验第一随机数、所述加密主公钥、所述校验第二随机数、所述第二加法循环群的生成元验证所述第一中间密文是否正确,若正确,则将所述校验数据作为所述数据发送端传输的目标数据。
[0227]
本技术实施例提供的基于sm9的在线离线加解密系统中相应模块的描述可以参阅上述实施例,在此不再赘述。
[0228]
本技术还提供了一种基于sm9的在线离线加解密设备及计算机可读存储介质,其均具有本技术实施例提供的一种基于sm9的在线离线加解密方法具有的对应效果。请参阅图4,图4为本技术实施例提供的一种基于sm9的在线离线加解密设备的结构示意图。
[0229]
本技术实施例提供的一种基于sm9的在线离线加解密设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如上任一实施例所描述基于sm9的在线离线加解密方法的步骤。
[0230]
请参阅图5,本技术实施例提供的另一种基于sm9的在线离线加解密设备中还可以包括:与处理器202连接的输入端口203,用于传输外界输入的命令至处理器202;与处理器202连接的显示单元204,用于显示处理器202的处理结果至外界;与处理器202连接的通信模块205,用于实现基于sm9的在线离线加解密设备与外界的通信。显示单元204可以为显示面板、激光扫描使显示器等;通信模块205所采用的通信方式包括但不局限于移动高清链接技术(hml)、通用串行总线(usb)、高清多媒体接口(hdmi)、无线连接:无线保真技术(wifi)、蓝牙通信技术、低功耗蓝牙通信技术、基于ieee802.11s的通信技术。
[0231]
本技术实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如上任一实施例所描述基于sm9的在线离线加解密方法的步骤。
[0232]
本技术所涉及的计算机可读存储介质包括随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质。
[0233]
本技术实施例提供的基于sm9的在线离线加解密系统、设备及计算机可读存储介质中相关部分的说明请参见本技术实施例提供的基于sm9的在线离线加解密方法中对应部分的详细说明,在此不再赘述。另外,本技术实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
[0234]
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0235]
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献