数据解密方法、装置、电子设备及存储介质与流程

文档序号:29264978发布日期:2022-03-16 13:35阅读:137来源:国知局
数据解密方法、装置、电子设备及存储介质与流程

1.本发明实施例涉及一种数据解密方法、装置、电子设备及存储介质。


背景技术:

2.有的数据传输过程采用明文传输,这种传输方案风险很大。比如,在数据采集系统中,数据采集系统根据特定的工控协议采集工业设备上的数据,一般是通过明文传输采集数据,在这种情况下,技术人员很容易截获通信报文,并加以解析,得到工业设备上的实时数据或通过命令控制工业设备。
3.由于明文传输的风险性较高,需要采用加密传输的方式提高安全性。现有的加密方式是将密钥明文写在程序中,在解密过程中直接使用明文密钥解密。即使进一步采用对数据分段加密或对密钥分段进行二次加密的方法,如果将密钥明文写在程序中,技术人员可通过反编译获取到密钥,从而可以破解数据内容。
4.因此,现有的加密方法中由于将密钥写在程序中,存在通过反编译技术破解数据的风险。


技术实现要素:

5.本发明实施例提供一种数据解密方法,包括:通过读取数据发送方的自定义证书获取第一密文;其中,所述第一密文为第一密钥和第二密文通过预设算法打乱顺序后的密文,所述第二密文为通过所述第一密钥或所述第一密钥对应的公钥对第二密钥进行加密后得到的密文,所述第二密钥为用于解密所述数据发送方的加密数据的密钥;通过所述预设算法的逆向算法从所述第一密文中解析出所述第一密钥和所述第二密文;利用所述第一密钥对所述第二密文解密,得到所述第二密钥;利用所述第二密钥对所述数据发送方的所述加密数据进行解密,得到明文数据。
6.根据本发明实施例提供的一种数据解密方法,所述方法还包括:通过读取所述数据发送方的所述自定义证书获取设置于所述第一密文的预设位置处的验证信息;在所述利用所述第一密钥对所述第二密文解密之前,所述方法还包括:利用所述验证信息验证所述第一密钥和/或所述第二密文的正确性;响应于验证通过,触发执行所述利用所述第一密钥对所述第二密文解密的动作;响应于验证未通过,则结束。
7.根据本发明实施例提供的一种数据解密方法,所述验证信息包括所述第一密钥的长度及所述第二密文的长度,或包括所述第一密钥的md5值及所述第二密文的md5值。
8.根据本发明实施例提供的一种数据解密方法,在所述通过读取数据发送方的自定义证书获取第一密文之前,所述方法还包括:生成所述第一密钥;利用所述第一密钥或所述第一密钥对应的公钥加密所述第二密钥,得到所述第二密文;将所述第一密钥和所述第二密文按照所述预设算法打乱顺序,得到所述第一密文;将所述第一密文写入文件,生成所述自定义证书。
9.根据本发明实施例提供的一种数据解密方法,在所述通过读取数据发送方的自定
义证书获取第一密文之前,所述方法还包括:生成所述第一密钥;利用所述第一密钥或所述第一密钥对应的公钥加密所述第二密钥,得到所述第二密文;将所述第一密钥和所述第二密文按照所述预设算法打乱顺序,得到所述第一密文;将所述验证信息插入到所述第一密文的所述预设位置;将插入有所述验证信息的所述第一密文写入文件,生成所述自定义证书。
10.根据本发明实施例提供的一种数据解密方法,所述预设算法包括:将所述第一密钥和所述第二密文按照第一预设字符数交叉排列,和/或,将所述第一密钥和所述第二密文按照第二预设字符数调换前后顺序。
11.根据本发明实施例提供的一种数据解密方法,所述数据发送方为插接于设备上的芯片,所述加密数据是所述数据发送方从所述设备获取并通过所述第二密钥或所述第二密钥对应的公钥加密的数据。
12.根据本发明实施例提供的一种数据解密方法,所述数据接收方为插接于设备上的芯片,在所述得到明文数据之后,所述方法还包括:将所述明文数据发送给所述设备。
13.本发明实施例还提供一种数据解密装置,包括:第一获取模块,用于:通过读取数据发送方的自定义证书获取第一密文;其中,所述第一密文为第一密钥和第二密文通过预设算法打乱顺序后的密文,所述第二密文为通过所述第一密钥或所述第一密钥对应的公钥对第二密钥进行加密后得到的密文,所述第二密钥为用于解密所述数据发送方的加密数据的密钥;解析模块,用于:通过所述预设算法的逆向算法从所述第一密文中解析出所述第一密钥和所述第二密文;第二获取模块,用于:利用所述第一密钥对所述第二密文解密,得到所述第二密钥;解密模块,用于:利用所述第二密钥对所述数据发送方的所述加密数据进行解密,得到明文数据。
14.本发明实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述数据解密方法的步骤。
15.本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述数据解密方法的步骤。
16.本发明实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述数据解密方法的步骤。
17.本发明实施例提供的数据解密方法、装置、电子设备及存储介质,通过预先利用第一密钥或第一密钥对应的公钥对第二密钥进行加密得到第二密文,将第一密钥和第二密文通过预设算法打乱顺序得到第一密文,通过读取预先根据第一密文生成的自定义证书获取第一密文,通过预设算法的逆向算法从第一密文中解析出第一密钥和第二密文,利用第一密钥对第二密文解密,得到第二密钥,利用第二密钥对数据发送方的加密数据进行解密,得到明文数据,实现了用于解密加密数据的第二密钥的加密安全存储,并且由于通过自定义证书获取第二密钥,避免了将第二密钥的密钥明文写入程序中,防止了通过反编译获取第二密钥,提高了数据安全性。
附图说明
18.为了更清楚地说明本发明的技术方案,下面将对实施例描述中所需要使用的附图
作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
19.图1是本发明实施例提供的数据解密方法的流程示意图;图2是本发明实施例提供的数据解密方法中生成自定义证书的流程图;图3是本发明实施例提供的数据解密方法中数据采集系统的处理流程图之一;图4是本发明实施例提供的数据解密方法中数据采集系统的处理流程图之二;图5是本发明实施例提供的数据解密方法中加解密芯片的处理流程图之一;图6是本发明实施例提供的数据解密方法中加解密芯片的处理流程图之二;图7是本发明实施例提供的数据解密装置的结构示意图;图8是本发明实施例提供的电子设备的结构示意图。
具体实施方式
20.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
21.图1是本发明实施例提供的数据解密方法的流程示意图。如图1所示,所述方法包括:步骤101、通过读取所述数据发送方的自定义证书,获取第一密文;其中,所述第一密文为第一密钥和第二密文通过预设算法打乱顺序后的密文,所述第二密文为通过所述第一密钥或所述第一密钥对应的公钥对第二密钥进行加密后得到的密文,所述第二密钥为用于解密所述数据发送方的加密数据的密钥。
22.本发明实施例提供的数据解密方法应用于数据接收方。根据发送和接收数据的变化,通信双方数据接收方和数据发送方的角色可以是交替的。以数据采集应用为例,数据采集系统与工业设备进行通信连接。数据采集系统发送请求报文给工业设备,此时数据采集系统是数据发送方,工业设备是数据接收方。工业设备接收到数据采集系统发送的请求报文后,将设备响应数据发送给数据采集系统,此时工业设备是数据发送方,数据采集系统是数据接收方。
23.数据接收方接收到数据发送方发送的加密数据后,可以从数据接收方的本地存储中读取预先生成的数据发送方的自定义证书解析出解密数据发送方发送的加密数据的密钥,也可以在接收到数据发送方发送的加密数据之前,预先读取自定义证书解析出解密数据发送方发送的加密数据的密钥。
24.自定义证书可以设置数据发送方的标识,各个数据发送方的自定义证书一致的情况下可以不需设置标识。通过读取自定义证书获取第一密文。第一密文为第一密钥和第二密文通过预设算法打乱顺序后的密文,第二密文为通过第一密钥或第一密钥对应的公钥对第二密钥进行加密后得到的密文,即如果采用对称加密方式,通过第一密钥对第二密钥进行加密得到第二密文,如果采用非对称加密方式,则通过第一密钥对应的公钥对第二密钥进行加密得到第二密文。第二密钥为用于解密数据发送方的加密数据的密钥。其中,加密数据不限定具体的数据内容,而是统一指代数据发送方发送给数据接收方的加密数据。
25.步骤102、通过所述预设算法的逆向算法从所述第一密文中解析出所述第一密钥和所述第二密文。
26.由于第一密文为第一密钥和第二密文通过预设算法打乱顺序后的密文,因此,通过预设算法的逆向算法可以从第一密文中解析出第一密钥和第二密文。
27.步骤103、利用所述第一密钥对所述第二密文解密,得到所述第二密钥。
28.第二密文是通过第一密钥或第一密钥对应的公钥对第二密钥进行加密后得到的密文。若通过第一密钥对第二密钥加密时采用的对称加密方式,则利用第一密钥对第二密钥加密,对第二密文解密时的解密密钥和加密密钥相同,也即利用第一密钥对第二密文解密,得到第二密钥。若通过第一密钥对第二密钥加密时采用的非对称加密方式,则利用第一密钥对应的公钥对第二密钥加密,第一密钥是一对密钥中的私钥,对第二密文解密时的解密密钥为私钥,也即利用第一密钥对第二密文解密,得到第二密钥。
29.因此,得到第一密钥后,利用第一密钥对第二密文解密,得到第二密钥。
30.步骤104、利用所述第二密钥对所述数据发送方的所述加密数据进行解密,得到明文数据。
31.由于第二密钥是用于解密数据发送方的加密数据的密钥,因此,得到第二密钥后,利用第二密钥对数据发送方的加密数据进行解密,得到明文数据。
32.本发明实施例提供的数据解密方法,通过预先利用第一密钥或第一密钥对应的公钥对第二密钥进行加密得到第二密文,将第一密钥和第二密文通过预设算法打乱顺序得到第一密文,通过读取预先根据第一密文生成的自定义证书获取第一密文,通过预设算法的逆向算法从第一密文中解析出第一密钥和第二密文,利用第一密钥对第二密文解密,得到第二密钥,利用第二密钥对数据发送方的加密数据进行解密,得到明文数据,实现了用于解密加密数据的第二密钥的加密安全存储,并且由于通过自定义证书获取第二密钥,避免了将第二密钥的密钥明文写入程序中,防止了通过反编译获取第二密钥,提高了数据安全性。
33.根据本发明实施例提供的一种数据解密方法,所述方法还包括:通过读取所述数据发送方的所述自定义证书获取设置于所述第一密文的预设位置处的验证信息;在所述利用所述第一密钥对所述第二密文解密之前,所述方法还包括:利用所述验证信息验证所述第一密钥和/或所述第二密文的正确性;响应于验证通过,触发执行所述利用所述第一密钥对所述第二密文解密的动作;响应于验证未通过,则结束。
34.自定义证书中还可以包括设置于第一密文的预设位置处的验证信息,该验证信息用于验证第一密钥和/或第二密文的正确性。因此,通过读取数据发送方的自定义证书除了获取第一密文外,还可以获取设置于第一密文的预设位置处的验证信息。
35.在利用第一密钥对第二密文解密之前,利用验证信息验证第一密钥和/或第二密文的正确性。根据对可靠性要求的不同需求,可以只对第一密钥的正确性进行验证,或只对第二密文的正确性进行验证,或同时对第一密钥和第二密文的正确性进行验证。若验证通过,则利用第一密钥对第二密文解密获得明文数据;若验证不通过,则结束。
36.本发明实施例提供的数据解密方法,通过读取数据发送方的自定义证书获取设置于第一密文的预设位置处的验证信息,在利用第一密钥对第二密文解密之前,利用验证信息验证第一密钥和/或第二密文的正确性,响应于验证通过,触发执行利用第一密钥对第二密文解密的动作,响应于验证未通过,则结束,保障了第一密钥和/或第二密文正确性的基
础上进行解密获得明文数据,提高了数据解密的可靠性。
37.根据本发明实施例提供的数据解密方法,所述验证信息包括所述第一密钥的长度及所述第二密文的长度,或包括所述第一密钥的md5值及所述第二密文的md5值。
38.对第一密钥的正确性验证可以采用多种方式,如将包括第一密钥的长度的验证信息插入到第一密文的预设位置处,在解析得到第一密钥后,验证解析得到的第一密钥的长度是否和验证信息中第一密钥的长度符合,若符合则验证通过,若不符合则验证不通过。由于验证通过只能表明解析得到的第一密钥的长度正确,只能从一定程度上证明第一密钥的正确性。
39.为进一步提高第一密钥正确性验证的可靠性,可以将包括第一密钥的md5值的验证信息插入到第一密文的预设位置处。md5信息摘要算法(md5 message-digest algorithm)是一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。可以预先生成第一密钥的md5值并插入到第一密文的预设位置处,在解析得到第一密钥后,验证解析得到的第一密钥的md5值是否和验证信息中第一密钥的md5值符合,若符合则验证通过,若不符合则验证不通过。
40.对第二密文的正确性验证可以采用多种方式,如将包括第二密文的长度的验证信息插入到第一密文的预设位置处,在解析得到第二密文后,验证解析得到的第二密文的长度是否和验证信息中第二密文的长度符合,若符合则验证通过,若不符合则验证不通过。由于验证通过只能表明解析得到的第二密文的长度正确,只能从一定程度上证明第二密文的正确性。
41.为进一步提高第二密文正确性验证的可靠性,可以将包括第二密文的md5值的验证信息插入到第一密文的预设位置处。可以预先生成第二密文的md5值并插入到第一密文的预设位置处,在解析得到第二密文后,验证解析得到的第二密文的md5值是否和验证信息中第二密文的md5值符合,若符合则验证通过,若不符合则验证不通过。
42.可以在验证信息中包括第一密钥的长度及第二密文的长度,或包括第一密钥的md5值及第二密文的md5值,实现对于第一密钥和第二密文的正确性的验证。
43.本发明实施例提供的数据解密方法,通过在验证信息中包括第一密钥的长度及第二密文的长度,或包括第一密钥的md5值及第二密文的md5值提高了第一密钥和第二密文验证的可靠性及灵活性。
44.根据本发明实施例提供的数据解密方法,在所述通过读取数据发送方的自定义证书获取第一密文之前,所述方法还包括:生成所述第一密钥;利用所述第一密钥或所述第一密钥对应的公钥加密所述第二密钥,得到所述第二密文;将所述第一密钥和所述第二密文按照所述预设算法打乱顺序,得到所述第一密文;将所述第一密文写入文件,生成所述自定义证书。
45.需要在解密处理前,预先生成用于解密的自定义证书。生成自定义证书的过程包括:生成用于加密第二密钥的第一密钥,其中第二密钥用于解密数据发送方发送的加密数据;利用第一密钥或第一密钥对应的公钥加密第二密钥,得到第二密文;将第一密钥和第二密文按照预设算法打乱顺序,得到第一密文;将第一密文写入文件,生成自定义证书。
46.生成自定义证书的过程可以作为一个辅助工程,而不用对外发布。
47.本发明实施例提供的数据解密方法,实现了包括第一密文的自定义证书的生成。
48.根据本发明实施例提供的一种数据解密方法,在所述通过读取数据发送方的自定义证书获取第一密文之前,所述方法还包括:生成所述第一密钥;利用所述第一密钥或所述第一密钥对应的公钥加密所述第二密钥,得到所述第二密文;将所述第一密钥和所述第二密文按照所述预设算法打乱顺序,得到所述第一密文;将所述验证信息插入到所述第一密文的所述预设位置;将插入有所述验证信息的所述第一密文写入文件,生成所述自定义证书。
49.对于在第一密文的预设位置设置验证信息的自定义证书,自定义证书的生成过程包括:生成第一密钥;利用第一密钥或第一密钥对应的公钥加密第二密钥,得到第二密文;将第一密钥和第二密文按照预设算法打乱顺序,得到第一密文;将验证信息插入到第一密文的预设位置;将插入有验证信息的第一密文写入文件,生成自定义证书。
50.本发明实施例提供的数据解密方法,实现了包括第一密文及设置于第一密文的预设位置处的验证信息的自定义证书的生成。
51.根据本发明实施例提供的一种数据解密方法,所述预设算法包括:将所述第一密钥和所述第二密文按照第一预设字符数交叉排列,和/或,将所述第一密钥和所述第二密文按照第二预设字符数调换前后顺序。
52.在通过预设算法打乱第一密钥和第二密文时,可以通过将第一密钥和第二密文按照第一预设字符数交叉排列进行第一密钥和第二密文的顺序打乱,也可以通过将第一密钥和第二密文按照第二预设字符数调换前后顺序进行第一密钥和第二密文的顺序打乱,也可以将二者相结合进行第一密钥和第二密文的顺序打乱。
53.将第一密钥和第二密文按照第一预设字符数交叉排列,比如第一预设字符数为5,则可以先放置第一密钥的前5个字符,然后再放置第二密文的前5个字符,再放置第一密钥的第6到第10个字符,再放置第二密文的第6到第10个字符,以此类推,直至第一密钥放置完成,接着放置第二密文的剩余部分,或第二密文放置完成,接着放置第一密钥的剩余部分。
54.可以理解的,也可以先放置第二密文的前5个字符,然后再放置第一密钥的前5个字符,再放置第二密文的第6到第10个字符,再放置第一密钥的第6到第10个字符,以此类推,直至第一密钥放置完成,接着放置第二密文的剩余部分,或第二密文放置完成,接着放置第一密钥的剩余部分。
55.将第一密钥和第二密文按照第二预设字符数调换前后顺序,比如第二预设字符数为10,则将第一密钥按照第二预设字符数调换前后顺序时,可以将前10个字符挪到方面或将后10个字符调到前面;在将第二密文按照第二预设字符数调换前后顺序时,可以将前10个字符挪到后面或将后10个字符调到前面。对第一密钥和第二密文进行调换前后顺序时也可以采用不同的预设字符数。
56.本发明实施例提供的数据解密方法,通过将第一密钥和第二密文按照第一预设字符数交叉排列,和/或,将第一密钥和第二密文按照第二预设字符数调换前后顺序,实现了高安全性的第一密钥和第二密文的顺序打乱,且便于还原。
57.根据本发明实施例提供的一种数据解密方法,所述数据发送方为插接于设备上的芯片,所述加密数据是所述数据发送方从所述设备获取并通过所述第二密钥或所述第二密钥对应的公钥加密的数据。
58.由于有的设备不支持程序扩展,因此,数据发送方不一定必须是数据产生的设备,
也可以是连接数据产生的设备、并可以运行程序的芯片。如数据发送方可以是插接于工业设备上的芯片。芯片和工业设备采用插接方式连接,不存在数据泄露的问题。加密数据是芯片从设备获取并通过第二密钥或第二密钥对应的公钥加密的数据,芯片将加密数据发送给数据接收方。
59.本发明实施例提供的数据解密方法,通过利用芯片作为数据发送方连接设备,提高了数据发送的便利性。
60.根据本发明实施例提供的一种数据解密方法,所述数据接收方为插接于设备上的芯片,在所述得到明文数据之后,所述方法还包括:将所述明文数据发送给所述设备。
61.由于有的设备不支持程序扩展,因此,数据接收方可以是连接接收数据的设备、并可以运行程序的芯片。比如,数据接收方可以为插接于工业设备上的芯片,连接工业设备的芯片接收数据发送方的加密数据,经过解密得到明文数据后,将明文数据发送给工业设备。芯片和工业设备采用插接方式连接,不存在数据泄露的问题。
62.本发明实施例提供的数据解密方法,通过利用芯片作为数据接收方连接设备,提高了数据接收的便利性。
63.下面通过在数据采集领域中的应用为例,进一步说明本发明实施例提供的数据解密方法的流程。如前介绍,数据采集时,数据采集系统与工业设备进行通信连接。数据采集系统发送请求报文给工业设备,此时数据采集系统是数据发送方,工业设备是数据接收方。工业设备接收到数据采集系统发送的请求报文后,将设备响应数据发送给数据采集系统,此时工业设备是数据发送方,数据采集系统是数据接收方。
64.当工业设备作为数据接收方时,工业设备可以通过本发明实施例提供的数据解密方法对数据采集系统发送的请求报文进行解密。当数据采集系统作为数据接收方时,数据采集系统可以通过本发明实施例提供的数据解密方法对工业设备发送的设备响应数据进行解密。
65.数据采集系统可以连接多个工业设备进行数据采集,各个工业设备可以采用同一自定义证书,也可以采用不同的自定义证书。如果各个工业设备采用不同的自定义证书,则需要建立自定义证书属于哪个工业设备的标识。可以将工业设备的自定义证书存储在数据采集系统本地,可以将数据采集系统的自定义证书存储在工业设备本地。
66.由于有的工业设备不支持程序扩展,因此,可以利用插接芯片的方式实现程序扩展。由插接的芯片从工业设备获取数据,并发送给数据采集系统。由插接的芯片接收数据采集系统的数据,解密成明文后,再发送给工业设备。
67.本实施例的描述中,以工业设备插接芯片进行数据接收和发送、数据采集系统本身进行数据接收和发送为例描述本发明实施例提供的数据解密方法。由于根据发送和接收的变化,插接于工业设备的芯片既需要对发送至数据采集系统的设备响应数据加密,又需要对数据采集系统发送的请求报文解密,因此,将工业设备上插接的芯片称为加解密芯片。
68.本发明实施例提供的数据解密方法,实施步骤可以包括:第一步:编写一个辅助工程a(生成用于解密的自定义证书),用两套密钥,分别将用于数据采集系统接收的工业设备的设备响应数据解密的密钥a和用于加解密芯片接收的数据采集系统的请求报文解密的密钥b进行加密,得到密钥a密文和密钥b密文。并分别将加密后的密文与解密数据的密钥使用一定的算法进行顺序的打乱,再分别输出到文件中,最
终形成用于解密设备响应数据的自定义证书和用于解密请求报文的自定义证书。
69.第二步:编写一个程序b(用于解密请求报文、加密设备响应数据等),具体用于读取用于解密请求报文的自定义证书,根据工程a定义好的算法,逆向解析出密钥b(用于加解密芯片接收数据采集系统请求),用密钥b将请求报文解密,再将解密的明文报文发送给工业设备。
70.第三步:将程序b烧录到加解密芯片中。
71.第四步:在数据采集系统中,读取用于解密设备响应数据的自定义证书,然后根据工程a的定义好的算法逐步逆向剥离出需要解密的密钥a,利用密钥a解密设备响应数据。
72.图2是本发明实施例提供的数据解密方法中生成自定义证书的流程图。如图2所示,工程a-生成自定义证书的流程可以包括:
①ꢀ
生成一个密钥a1和密钥b1。
73.②ꢀ
使用密钥a1给密钥a进行加密。
74.③ꢀ
加密后的密钥a密文与密钥a1按照设定的算法1进行顺序的打乱(如按照固定字符数将密钥a密文和密钥a1交叉排列或将密钥a密文和密钥a1调换固定字符的前后顺序等),形成一个新的密文a2。
75.④ꢀ
将密钥a1的长度插入到密文a2的固定位置,用于解码。
76.⑤ꢀ
将密文a2更新到文件中,形成自定义证书a3。
77.⑥ꢀ
使用密钥b1给密钥b进行加密。
78.⑦ꢀ
加密后的密钥b密文与密钥b1按照设定的算法2进行顺序的打乱(如按照固定字符数将密钥b密文和密钥b1交叉排列或将密钥b密文和密钥b1调换固定字符的前后顺序等),形成一个新的密文b2。
79.⑧ꢀ
将密钥b1的长度插入到密文b2的固定位置,用于解码。
80.⑨ꢀ
将密文b2更新到文件中,形成自定义证书b3。
81.图3是本发明实施例提供的数据解密方法中数据采集系统的处理流程图之一。如图3所示,该流程包括:
①ꢀ
在给数据解密前,先读取工程a生成的自定义证书a3,得到密文a2。
82.②ꢀ
在密文a2的固定位置上取出密钥a1的长度或密钥a1的md5值(辅助解密)。
83.③ꢀ
根据算法1,把密钥a密文和密钥a1拆分出来。
84.④ꢀ
根据密钥a1的长度或密钥a1的md5值判断解析出来的密钥a1是否正确;若不正确,则结束;若正确,转到第

步。
85.⑤ꢀ
根据密钥a1将密钥a密文解密,得出密钥a。
86.⑥ꢀ
用密钥a给加密的设备响应数据解密。
87.⑦ꢀ
用密钥b给请求报文加密。
88.可以理解的,可以根据请求报文和设备响应数据的发送时间,调整上述步骤的顺序,如调整步骤

的顺序。
89.图4是本发明实施例提供的数据解密方法中数据采集系统的处理流程图之二。如图4所示,该流程包括:读取自定义证书a3,得到密文a2;读取密钥a1长度d1;
根据工程a的算法1,解析出密钥a密文和密钥a1;判断密钥a1的长度是否和d1相等;若不相等则结束;若相等,利用密钥a1解析出密钥a;执行连接工业设备的操作,判断是否与工业设备成功建立连接;若连接失败,判断连接是否超过三次,若超过三次,则结束;若未超过三次,则进一步执行连接工业设备的操作;若连接成功;根据设备通信协议组合请求报文,利用密钥b给请求报文加密;将加密后的请求报文发送给工业设备(可以将请求报文发送给插接在工业设备上的加解密芯片);等待工业设备的响应;若工业设备没有响应,则重新组合请求报文并加密后再次发送;若工业设备响应,则接收设备响应报文;用密钥a给设备响应报文解密,解析解密后的响应数据;进一步向工业设备发送请求报文,采集剩余数据。
90.图5是本发明实施例提供的数据解密方法中加解密芯片的处理流程图之一。如图5所示,该流程包括:
①ꢀ
读取工程a生成的自定义证书b3,得到密文b2。
91.②ꢀ
在密文b2的固定位置上取出密钥b1的长度或密钥b1的md5值(辅助解密)。
92.③ꢀ
根据算法2,把密钥b密文和密钥b1拆分出来。
93.④ꢀ
根据密钥b1的长度或密钥b1的md5值判断解析出来的密钥b1是否正确;若不正确,则结束;若正确,转到第

步。
94.⑤ꢀ
根据密钥b1将密钥b密文解密,得出密钥b。
95.⑥ꢀ
用密钥b给加密的请求报文解密。
96.⑦ꢀ
用密钥a给设备响应数据加密。
97.可以理解的,可以根据请求报文和设备响应数据的发送时间,调整上述步骤的顺序,如调整步骤

的顺序。
98.图6是本发明实施例提供的数据解密方法中加解密芯片的处理流程图之二。如图6所示,该流程包括:读取自定义证书b3,得到密文b2;读取密钥b1长度d2;根据工程a的算法2,解析密钥b密文和密钥b1;判断密钥b1的长度是否和d2相等;若不相等,则结束;若相等,则利用密钥b1解析出密钥b;判断是否接收到数据采集系统请求报文;若未接收到,则结束;若接收到,则使用密钥b给请求报文解密;将解密后的明文报文交给工业设备执行;等待工业设备响应;判断工业设备是否响应;若没有响应,则结束,若有响应,将设备响应明文利用密钥a加密,得到设备响应数据;
将设备响应数据发送给数据采集系统;本轮数据采集结束。
99.下面对本发明实施例提供的数据解密装置进行描述,下文描述的数据解密装置与上文描述的数据解密方法可相互对应参照。
100.图7是本发明实施例提供的数据解密装置的结构示意图。如图7所示,所述装置包括第一获取模块10、解析模块20、第二获取模块30及解密模块40,其中:第一获取模块10用于:通过读取数据发送方的自定义证书获取第一密文;其中,所述第一密文为第一密钥和第二密文通过预设算法打乱顺序后的密文,所述第二密文为通过所述第一密钥或所述第一密钥对应的公钥对第二密钥进行加密后得到的密文,所述第二密钥为用于解密所述数据发送方的加密数据的密钥;解析模块20用于:通过所述预设算法的逆向算法从所述第一密文中解析出所述第一密钥和所述第二密文;第二获取模块30用于:利用所述第一密钥对所述第二密文解密,得到所述第二密钥;解密模块40用于:利用所述第二密钥对所述数据发送方的所述加密数据进行解密,得到明文数据。
101.本发明实施例提供的数据解密装置,通过预先利用第一密钥或第一密钥对应的公钥对第二密钥进行加密得到第二密文,将第一密钥和第二密文通过预设算法打乱顺序得到第一密文,通过读取预先根据第一密文生成的自定义证书获取第一密文,通过预设算法的逆向算法从第一密文中解析出第一密钥和第二密文,利用第一密钥对第二密文解密,得到第二密钥,利用第二密钥对数据发送方的加密数据进行解密,得到明文数据,实现了用于解密加密数据的第二密钥的加密安全存储,并且由于通过自定义证书获取第二密钥,避免了将第二密钥的密钥明文写入程序中,防止了通过反编译获取第二密钥,提高了数据安全性。
102.根据本发明实施例提供的一种数据解密装置,所述第一获取模块10还用于:通过读取所述数据发送方的所述自定义证书获取设置于所述第一密文的预设位置处的验证信息;第二获取模块30在利用所述第一密钥对所述第二密文解密之前,还用于:利用所述验证信息验证所述第一密钥和/或所述第二密文的正确性;响应于验证通过,触发执行所述利用所述第一密钥对所述第二密文解密的动作;响应于验证未通过,则结束。
103.本发明实施例提供的数据解密装置,通过读取数据发送方的自定义证书获取设置于第一密文的预设位置处的验证信息,在利用第一密钥对第二密文解密之前,利用验证信息验证第一密钥和/或第二密文的正确性,响应于验证通过,触发执行利用第一密钥对第二密文解密的动作,响应于验证未通过,则结束,保障了第一密钥和/或第二密文正确性的基础上进行解密获得明文数据,提高了数据解密的可靠性。
104.根据本发明实施例提供的一种数据解密装置,所述验证信息包括所述第一密钥的长度及所述第二密文的长度,或包括所述第一密钥的md5值及所述第二密文的md5值。
105.本发明实施例提供的数据解密装置,通过在验证信息中包括第一密钥的长度及第二密文的长度,或包括第一密钥的md5值及第二密文的md5值,提高了第一密钥和第二密文验证的可靠性及灵活性。
106.根据本发明实施例提供的一种数据解密装置,所述装置还包括自定义证书生成模块,在第一获取模块10通过读取数据发送方的自定义证书获取第一密文之前,自定义证书生成模块用于:生成所述第一密钥;利用所述第一密钥或所述第一密钥对应的公钥加密所述第二密钥,得到所述第二密文;将所述第一密钥和所述第二密文按照所述预设算法打乱
顺序,得到所述第一密文;将所述第一密文写入文件,生成所述自定义证书。
107.本发明实施例提供的数据解密装置,实现了包括第一密文的自定义证书的生成。
108.根据本发明实施例提供的一种数据解密装置,所述装置还包括自定义证书生成模块,在第一获取模块10通过读取数据发送方的自定义证书获取第一密文之前,自定义证书生成模块用于:生成所述第一密钥;利用所述第一密钥或所述第一密钥对应的公钥加密所述第二密钥,得到所述第二密文;将所述第一密钥和所述第二密文按照所述预设算法打乱顺序,得到所述第一密文;将所述验证信息插入到所述第一密文的所述预设位置;将插入有所述验证信息的所述第一密文写入文件,生成所述自定义证书。
109.本发明实施例提供的数据解密装置,实现了包括第一密文及设置于第一密文的预设位置处的验证信息的自定义证书的生成。
110.根据本发明实施例提供的一种数据解密装置,所述预设算法包括:将所述第一密钥和所述第二密文按照第一预设字符数交叉排列,和/或,将所述第一密钥和所述第二密文按照第二预设字符数调换前后顺序。
111.本发明实施例提供的数据解密装置,通过将第一密钥和第二密文按照第一预设字符数交叉排列,和/或,将第一密钥和第二密文按照第二预设字符数调换前后顺序,实现了高安全性的第一密钥和第二密文的顺序打乱,且便于还原。
112.根据本发明实施例提供的一种数据解密装置,所述数据发送方为插接于设备上的芯片,所述加密数据是所述数据发送方从所述设备获取并通过所述第二密钥或所述第二密钥对应的公钥加密的数据。
113.本发明实施例提供的数据解密装置,通过利用芯片作为数据发送方连接设备,提高了数据发送的便利性。
114.根据本发明实施例提供的一种数据解密装置,所述数据接收方为插接于设备上的芯片,在所述得到明文数据之后,解密模块40还用于将所述明文数据发送给所述设备。
115.本发明实施例提供的数据解密装置,通过利用芯片作为数据接收方连接设备,提高了数据接收的便利性。
116.图8是本发明实施例提供的电子设备的结构示意图,如图8所示,该电子设备可以包括:处理器(processor)810、通信接口(communications interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行数据解密方法,该方法包括:通过读取数据发送方的自定义证书获取第一密文;其中,所述第一密文为第一密钥和第二密文通过预设算法打乱顺序后的密文,所述第二密文为通过所述第一密钥或所述第一密钥对应的公钥对第二密钥进行加密后得到的密文,所述第二密钥为用于解密所述数据发送方的加密数据的密钥;通过所述预设算法的逆向算法从所述第一密文中解析出所述第一密钥和所述第二密文;利用所述第一密钥对所述第二密文解密,得到所述第二密钥;利用所述第二密钥对所述数据发送方的所述加密数据进行解密,得到明文数据。
117.此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以
使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
118.另一方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的数据解密方法,该方法包括:通过读取数据发送方的自定义证书获取第一密文;其中,所述第一密文为第一密钥和第二密文通过预设算法打乱顺序后的密文,所述第二密文为通过所述第一密钥或所述第一密钥对应的公钥对第二密钥进行加密后得到的密文,所述第二密钥为用于解密所述数据发送方的加密数据的密钥;通过所述预设算法的逆向算法从所述第一密文中解析出所述第一密钥和所述第二密文;利用所述第一密钥对所述第二密文解密,得到所述第二密钥;利用所述第二密钥对所述数据发送方的所述加密数据进行解密,得到明文数据。
119.又一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的数据解密方法,该方法包括:通过读取数据发送方的自定义证书获取第一密文;其中,所述第一密文为第一密钥和第二密文通过预设算法打乱顺序后的密文,所述第二密文为通过所述第一密钥或所述第一密钥对应的公钥对第二密钥进行加密后得到的密文,所述第二密钥为用于解密所述数据发送方的加密数据的密钥;通过所述预设算法的逆向算法从所述第一密文中解析出所述第一密钥和所述第二密文;利用所述第一密钥对所述第二密文解密,得到所述第二密钥;利用所述第二密钥对所述数据发送方的所述加密数据进行解密,得到明文数据。
120.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
121.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
122.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1