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

一种基于白盒的车机端软件加解密方法及装置与流程

2021-11-15 17:21:00 来源:中国专利 TAG:


1.本说明书涉及计算机技术领域,尤其涉及一种基于白盒的车机端软件加解密方法及装置。


背景技术:

2.当前,智能驾驶领域中数据安全问题也需要得到重视,在实际应用中,服务平台与智能驾驶设备之间的数据传输,以及智能驾驶设备在驾驶过程中自身所产生的数据可以进行加密,从而保证智能驾驶设备的安全行驶,以及服务平台的数据安全。
3.在现有技术中,可以通过明文秘钥对数据进行加密、解密,并将明文秘钥存储进行存储以便于对数据进行解密,例如,服务平台可以在数据发送给智能驾驶设备之前进行加密,智能驾驶设备通过自身持有的秘钥进行解密,但是,一旦存在外部人员获取到智能驾驶设备存储的秘钥以及加密算法,则能够轻易将加密后的数据进行解密,这样一来,给智能驾驶设备以及服务平台的数据造成了威胁。
4.所以,如何保证智能驾驶设备以及服务平台的数据安全,则是一个亟待解决的问题。


技术实现要素:

5.本说明书提供一种基于白盒的车机端软件加解密的方法及装置,以部分的解决现有技术存在的上述问题。
6.本说明书采用下述技术方案:
7.本说明书提供了一种基于白盒的车机端软件加解密方法,所述方法应用在智能驾驶领域中,包括:
8.获取待加密数据,所述待加密数据用于在智能驾驶中的数据传输;
9.通过预设的加密算法对所述待加密数据进行加密,得到密文数据;
10.将所述密文数据发送给设定设备,以使所述设定设备根据各子秘钥,对所述密文数据进行解密,得到解密后数据,并基于所述解密后数据,对智能驾驶设备进行控制,其中,所述各子秘钥是通过预设的分解运算方式,对预先生成的解密秘钥进行运算得到,在生成所述各子秘钥后,所述解密秘钥被删除。
11.可选地,通过预设的加密算法对所述待加密数据进行加密,得到密文数据,具体包括:
12.当所述待加密数据对应的数据量小于第一设定数据量,根据预先生成的公钥,通过非对称加密算法对所述待加密数据进行加密,得到密文数据;
13.将所述密文数据发送给设定设备,以使所述设定设备根据各子秘钥,对所述密文数据进行解密,得到解密后数据,具体包括:
14.将所述密文数据发送给设定设备,以使所述设定设备根据所述公钥对应的各子秘钥,对所述密文数据进行解密,得到解密后数据,所述各子秘钥通过所述运算分解方式对所
述公钥对应的私钥进行运算得到。
15.可选地,通过预设的加密算法对所述待加密数据进行加密,得到密文数据,具体包括:
16.通过预先生成的对称秘钥,按照预设的对称加密算法对所述待加密数据进行加密,得到密文数据,以及通过预先生成的公钥,按照预设的非对称加密算法对所述对称秘钥进行加密,得到密文秘钥;
17.将所述密文数据发送给设定设备,以使所述设定设备根据各子秘钥,对所述密文数据进行解密,得到解密后数据,具体包括:
18.将所述密文数据以及所述密文秘钥发送给设定设备,以使所述设定设备根据所述公钥对应的各子秘钥,对所述密文秘钥进行解密,得到明文秘钥,并根据所述明文秘钥对所述密文数据进行解密,得到解密后数据,所述各子秘钥通过所述运算分解方式对所述公钥对应的私钥进行运算得到。
19.可选地,通过预先生成的对称秘钥,按照预设的对称加密算法对所述待加密数据进行加密,得到密文数据,以及通过预先生成的公钥,按照预设的非对称加密算法对所述对称秘钥进行加密,得到密文秘钥之前,所述方法还包括:
20.确定所述待加密数据对应的数据量大于第二设定数据量。
21.可选地,生成各子秘钥,具体包括:
22.获取所述设定设备对应的设备参数;
23.以所述设备参数是所述解密秘钥对应的一个子秘钥为条件,按照所述分解运算方式对所述解密秘钥进行运算,得到所述解密秘钥对应的其他子秘钥,并将所述其他子秘钥存储在所述设定设备中。
24.可选地,将所述密文数据发送给设定设备,以使所述设定设备根据各子秘钥,对所述密文数据进行解密,得到解密后数据,具体包括:
25.将所述密文数据发送给设定设备,以使所述设定设备确定所述设定设备对应的设备参数,以及读取预先存储的除所述设备参数外的其他子秘钥;
26.根据所述设备参数,以及除所述设备参数外的其他子秘钥,对所述密文数据进行解密,得到解密后数据。
27.可选地,将所述密文数据发送给设定设备,以使所述设定设备根据各子秘钥,对所述密文数据进行解密,具体包括:
28.将所述密文数据发送给设定设备,以使所述设定设备确定各子秘钥对应的解密顺序,并基于所述解密顺序,通过第n个子秘钥,对第n

1个解密中间数据进行解密,得到第n个解密中间数据,并通过第n 1个子秘钥,对所述第n个解密中间数据进行解密,直到通过所述解密顺序中最后一个子秘钥完成解密为止,得到所述解密后数据,所述密文数据通过所述解密顺序中的第一个子秘钥进行解密,以得到第一个解密中间数据,n为正整数。
29.可选地,通过预设的加密算法对所述待加密数据进行加密,得到密文数据,具体包括:
30.判断所述待加密数据对应的安全等级是否位于预设的安全等级范围内;
31.若是,通过预设的加密算法对所述待加密数据进行加密,得到密文数据。
32.本说明书提供了一种基于白盒的车机端软件加解密装置,包括:
33.获取模块,获取待加密数据,所述待加密数据用于在智能驾驶中的数据传输;
34.加密模块,通过预设的加密算法对所述待加密数据进行加密,得到密文数据;
35.发送模块,将所述密文数据发送给设定设备,以使所述设定设备根据各子秘钥,对所述密文数据进行解密,得到解密后数据,并基于所述解密后数据,对智能驾驶设备进行控制,其中,所述各子秘钥是通过预设的分解运算方式,对预先生成的解密秘钥进行运算得到,在生成所述各子秘钥后,所述解密秘钥被删除。
36.本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述基于白盒的车机端软件加解密方法。
37.本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述基于白盒的车机端软件加解密方法。
38.本说明书采用的上述至少一个技术方案能够达到以下有益效果:
39.在本说明书提供的基于白盒的车机端软件加解密方法及装置中,可以先获取待加密数据,并通过预设的加密算法对待加密数据进行加密,得到密文数据,加密算法包括非对称加密算法以及对称加密算法中的至少一种。而后。可以将该密文数据发送给设定设备,以使该设定设备根据各子秘钥,对该密文数据进行解密,得到解密后数据,其中,各子秘钥通过预设的分解运算方式对预先生成的解密秘钥进行运算,在生成各子秘钥后,该解密秘钥被删除。
40.从上述方法中可以看出,在进行数据的解密时,可以不通过常规的解密秘钥进行解密,而是通过对该解密秘钥进行分解运算,得到的各子秘钥,来对该密文数据进行解密,并且在生成了各子秘钥后可以直接将常规的解密秘钥删除,仅保留各子秘钥来进行解密,这样一来,外部人员无法获取到常规的解密秘钥,保证了数据的安全性。
附图说明
41.此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
42.图1为本说明书中一种基于白盒的车机端软件加解密方法的流程示意图;
43.图2为本说明书中提供的一种仅通过非对称加密算法对待加密数据进行加密的流程示意图;
44.图3为本说明书中提供的一种非对称加密算法结合对称加密算法对待加密数据进行加密的流程示意图;
45.图4为本说明书提供的一种基于白盒的车机端软件加解密装置的示意图;
46.图5为本说明书提供的一种对应于图1的电子设备的示意图。
具体实施方式
47.为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人
员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
48.以下结合附图,详细说明本说明书各实施例提供的技术方案。
49.图1为本说明书中一种基于白盒的车机端软件加解密方法的流程示意图,包括以下步骤:
50.s101:获取待加密数据,所述待加密数据用于在智能驾驶中的数据传输。
51.s102:通过预设的加密算法对所述待加密数据进行加密,得到密文数据。
52.s103:将所述密文数据发送给设定设备或存储在所述设定设备中,以使所述设定设备根据各子秘钥,对所述密文数据进行解密,得到解密后数据,并基于所述解密后数据,对智能驾驶设备进行控制,其中,所述各子秘钥是通过预设的分解运算方式,对预先生成的解密秘钥进行运算得到,在生成所述各子秘钥后,所述解密秘钥被删除。
53.在实际应用中,运营智能驾驶设备(如,无人驾驶设备、具有辅助驾驶功能的车辆等)的服务平台在与智能驾驶设备之间进行双向的数据传输时,需要进行数据加密,并且,智能驾驶设备本地生成的某些数据也需要进行加密,例如,服务平台向智能驾驶设备发送的远程控制指令,以及智能驾驶设备向服务平台发送的图像、视频数据等,可以进行加密后再传输,再例如,智能驾驶设备本地生成的行车日志,也可以进行加密后存储。这样一来,需要保证加密后的数据不被外部人员轻易解密。
54.因此,在本说明书中,对数据进行加密的执行主体既可以是指服务平台,也可以是指智能驾驶设备等,相应的,对数据进行解密的可以是对数据进行加密的执行主体本身,也可以是对数据进行加密的执行主体所发送到的设备,因此,对数据进行解密的执行主体也可以是服务平台,以及智能驾驶设备等。所以,本说明书中的设定设备既可以是指服务平台中的服务器等设备,也可以是指智能驾驶设备。
55.基于此,服务平台(或智能驾驶设备)可以获取待加密数据,并通过预设的加密算法对该待加密数据进行加密,得到密文数据,这里提到的加密算法可以包括非对称加密算法以及对称加密算法中的至少一种。也就是说,服务平台可以仅通过非对称加密算法对该解密后数据进行加密,可以仅通过对称加密算法对该解密后数据进行加密,也可以通过非对称加密算法以及对称加密算法两者结合的方式对该待加密数据进行加密。该待加密数据用于在智能驾驶中的数据传输,而这里提到的数据传输可以包含智能驾驶设备与服务平台之间的传输,也包含智能驾驶设备内部软件层面的数据传输,例如,智能驾驶设备自身生成的日志存储到内存中也可以理解为这里指出的数据传输。
56.而为了能够使外部人员难以获取到能够直接对密文数据进行解密的解密秘钥,服务平台可以预先确定出该解密秘钥(可以是指对称秘钥,也可以是指非对称秘钥中的私钥)对应的各子秘钥,服务平台若将密文数据发送给设定设备(如智能驾驶设备,当然,也可以是智能驾驶设备将该密文数据发送给服务平台,这种情况下设定设备可以是指服务平台中的服务器),设定设备可以通过各子秘钥,对密文数据进行解密,得到解密后数据,从而基于该解密后数据,对智能驾驶设备进行控制。由于,该解密后数据可以是智能驾驶设备所采集的图像、视频数据,智能驾驶设备的行车日志记录,服务平台发送给智能驾驶设备的控制指令,因此,这些数据均可以在智能驾驶设备的控制上体现或多或少的作用。
57.当然,若服务平台或是智能驾驶设备等只是需要对自身存储的数据进行加密,则加密后直接存储在本地即可,即,设定设备(智能驾驶设备、服务平台中的设备等)自身对待
加密数据进行加密后,又将密文数据存储在设定设备本地中,在后续需要使用到该待加密数据后,则可以对密文数据进行解密。
58.由于已将解密秘钥拆分为各子秘钥,那么与直接通过解密秘钥对密文数据解密的方式有所不同,在通过各子秘钥进行解密时,设定设备需要确定各子秘钥对应的解密顺序,并基于该解密顺序,通过第n个秘钥,对第n

1个解密中间数据进行解密,得到第n个解密中间数据,并通过第n 1个子秘钥,对第n个解密中间数据进行解密,直到通过解密顺序中最后一个子秘钥完成解密为止,得到解密后数据,该密文数据通过解密顺序中的第一个子秘钥进行解密,以得到第一个解密中间数据,n为正整数。
59.例如,da为解密秘钥,d1、d2、d3以及d4分别为各子秘钥,假设m为密文数据,则可以通过d1与该密文数据进行运算得到第一个解密中间数据,并通过该第一个解密中间数据与d2进行运算得到第二个解密中间数据,再通过d3与第二个解密中间数据进行运算得到第三个解密中间数据,第三个解密中间数与d4进行运算后,得到解密后数据,也就是说,各子秘钥是分别在解密时进行运算,因此不会产生原始的解密秘钥。
60.在预先确定各子秘钥时,可以通过预设的分解运算方式对该解密秘钥进行运算,以生成各子秘钥,并将各子秘钥存储在设定设备中以备后续的解密,在生成了各子秘钥后,需要将上述解密秘钥删除,这样一来,外部人员就无法得到原始的解密秘钥,而后续在通过各子秘钥对该密文数据进行解密时,也可以通过每个子秘钥分步对该密文数据进行解密,在解密过程中不会出现原始的解密秘钥,从而使得外部人员无法轻易破解该密文数据。
61.这里提到的分解运算方式可以有多种,例如,可以预设出包含有各子秘钥的数学表达式,即,各子秘钥作为该数学表达式中的未知数,以该数学表达式的结果为上述解密秘钥为目标,得到各子秘钥,这里提到的数据表达式可以进行预先设定,例如,可以将(d1 d2)d3 d42=da设为该数学表达式,其中,d1~d4为各子秘钥,da为秘钥。再例如,可以预设出多个数值,通过该解密秘钥针对每个数值进行取余操作,得到各子秘钥,由于解密秘钥用于对密文数据进行解密,因此,对应于非对称加密算法中,该解密秘钥为私钥。
62.其中,若仅通过非对称加密算法对该待加密数据进行加密,则需要预先生成私钥,以及生成该私钥对应的公钥,并通过该公钥,按照该非对称加密算法对待加密数据进行加密,得到密文数据,而由于此时用到的是非对称加密算法,因此,在对该密文数据进行解密的时候,需要用到的是私钥,从而各子秘钥也是通过上述分解运算方式对私钥进行运算得到的,使得可以通过各子秘钥对该密文数据进行解密。所以,将密文数据发送给设定设备后,该设定设备可以根据上述公钥对应的各子秘钥,对该密文数据进行解密,得到解密后数据,各子秘钥通过运算分解方式对该公钥对应的私钥进行运算得到。
63.需要说明的是,上述方式是通过非对称加密的方式对待加密数据进行加密,相比于对称加密的方式,非对称加密的方式较为耗费资源以及时间,因此,在通过上述方式进行加密解密时,可以在该待加密数据对应的数据量小于第一设定数据量的条件下,采取上述方式来进行数据的加密和解密。该第一设定数据量可以进行预先设定,可以将该第一设定数据量设定为较小的数据量。
64.上述提到的方式是通过非对称加密算法来对待加密数据进行加密、解密的过程,当然,也可以非对称加密算法结合对称加密算法的方式,来对待加密数据进行加密。具体的,可以通过预先生成的对称秘钥,按照预设的对称加密算法对待加密数据进行加密,得到
密文数据,以及通过预先生成的公钥,按照预设的非对称加密算法对该对称秘钥进行加密,得到密文秘钥,而后,将该密文秘钥以及密文数据发送给设定设备,该设定设备在对该密文数据进行解密时,可以根据公钥对应的各子秘钥,对该密文秘钥进行解密,得到明文秘钥,并根据该明文秘钥对该密文数据进行解密,得到解密后数据。也就是说,上述解密秘钥指的是这一方式中的私钥,各子秘钥通过分解运算方式对公钥对应的私钥进行运算得到。
65.由于这一方式是通过非对称加密算法将对称秘钥进行加密,相比于通过非对称加密算法直接对待加密数据进行加密的方式较为节省计算资源以及时间,因此,可以在待加密数据对应的数据量大于第二设定数据量的前提下,采用非对称加密算法与对称加密算法结合的方式来对待加密数据进行加密,即,若待加密数据对应的数据量大于第二设定数据量,可以通过对称秘钥以及对称加密算法对待加密数据进行加密,得到密文数据,以及通过公钥,按照非对称加密算法对该对称秘钥进行加密,得到密文秘钥,也就是说,在通过对称秘钥对待加密数据进行加密前,可以判断待加密数据对应的数据量是否大于第二设定数据量,并在待加密数据对应的数据量大于第二设定数据量的情况下,用过对称秘钥对待加密数据进行加密,以及通过公钥将对称秘钥进行加密,这里提到的第二设定数据量可以根据实际需求进行预设,该第二设定数据量可以大于第一设定数据量。
66.需要说明的是,上述设定设备可以是指智能驾驶设备,智能驾驶设备可以自行对数据进行加密、解密等,其中,智能驾驶设备进行解密所需的各子秘钥可以包含有智能驾驶设备的设备参数,这样一来,对于一个智能驾驶设备来说,该智能驾驶设备对应的各子秘钥是与其他智能驾驶设备不同的,使得外部人员更加难以破解加密后的数据,当然,设定设备也可以是除了智能驾驶设备之外的其他电子设备,可以是服务平台中的服务器、电脑等,这些电子设备也可以通过各子秘钥中包含设备参数的方式对数据进行加密、解密。
67.具体的,服务平台或设定设备自身可以获取设定设备对应的设备参数,并以该设备参数是该解密秘钥中的一个子秘钥为条件,按照上述分解运算方式对秘钥进行运算后,得到解密秘钥对应的其他子秘钥,以使各子秘钥中包含该设备参数,并将除该设备参数外的其他子秘钥存储在该设定设备中(各子秘钥可以是由设定设备自身确定,也可以是由服务平台确定出发送给设定设备)。其中,设定设备对应的设备参数可以是指该设定设备(如智能驾驶设备、服务器)对应的设备标识、mac地址等,之所以仅存储除了该设备参数外的其他子秘钥,是因为该设定设备可以直接获取到自身的设备参数,在进行解密时,可以直接获取到设备参数,并获取到预先存储的其他子秘钥,这样就可以进行解密了。
68.通过上述方式确定各子秘钥时,可以先将一个子秘钥设为该设备参数,然后在上述分解运算方式中,将其他子秘钥作为未知数,与该设备参数共同参与分解运算,从而得到其他子秘钥。当设定设备(智能驾驶设备)需要对密文数据进行解密时,可以获取到该设定设备对应的设备参数,以及读取预先存储的除该设备参数外的其他子秘钥,并根据设备参数,以及除该设备参数外的其他子秘钥,对该密文数据进行解密,得到解密后数据。
69.从上述内容中可以看出,通过子秘钥包含设备参数的这一方式,在需要对密文数据进行解密时,设定设备(如智能驾驶设备)可以直接读取自身的设备参数,再结合其他的子秘钥,从而可以对密文数据进行解密,这样一来,若存在外部人员仅获取到内存中存储的子秘钥,没有得到设备参数,也是无法对密文数据进行解密的,并且不同的设定设备对应有不同的设备参数,对于不同设定设备来说,即使对一台设备进行了破解,但其余设定设备依
然是安全的。
70.上述提到的无人驾驶设备可以是指无人车、无人机、自动配送设备等能够实现自动驾驶的设备。基于此,通过本说明书提供的基于白盒的车机端软件加解密可以用于对涉及无人驾驶设备的数据进行加密以及解密,保证相关数据的安全,该无人驾驶设备具体可应用于通过智能驾驶设备进行配送的领域,如,使用无人驾驶设备进行快递、物流、外卖等配送的业务场景。
71.需要说明的是,本说明书中的基于白盒的车机端软件加解密可以适用于需要一定的安全防护的数据,但该数据可以不是安全等级最高的数据,因此,在通过本方法对待加密数据进行加密之前,可以先确定该待加密数据对应的安全等级,以及确定该待加密数据对应的安全等级位于预设的安全等级范围内,也就是说,可以预先判断待加密数据对应的安全等级是否位于预设的安全等级范围内,若是,则通过预设的加密算法对待加密数据进行加密,得到密文数据,该安全等级范围可以根据实际需求进行预先设定。
72.上述内容均是对本方法中的每个步骤分别进行说明,下面以完整的例子来对本说明书中提供的基于白盒的车机端软件加解密方法进行说明,如图2、图3所示。
73.图2为本说明书中提供的一种仅通过非对称加密算法对待加密数据进行加密的流程示意图。
74.从图2中可以看出,在对待加密数据进行加密的过程中,可以直接通过公钥进行加密,得到密文数据,而在解密时,则可以通过设备参数以及除该设备参数外的其他子秘钥,来对密文数据进行解密,从而得到解密后数据,与通过原始的私钥进行解密的方式不同,原始的私钥进行直接通过私钥以及与非对称加密算法所对应的解密算法进行解密即可,而在通过各子秘钥(包含设备参数)对密文数据进行解密时,需要一步一步地分别通过各子秘钥进行运算,从而得到解密数据,也就是说,假设有3个子秘钥,在解密时,可以根据第1个子秘钥以及该密文数据确定出第1个解密中间数据,再通过第2个子秘钥以及第1个中间数据,确定出第2个解密中间数据,最后通过第3个子秘钥以及第2个解密中间数据,确定出解密后数据,可以看出,在这一过程中并不会出现原始的私钥,从而使人无法轻易破解密文。
75.图3为本说明书中提供的一种非对称加密算法结合对称加密算法对待加密数据进行加密的流程示意图。
76.从图3中可以看出,在加密过程中,是通过对称秘钥对待加密数据进行加密后,得到密文数据,以及通过公钥给对称秘钥进行加密,得到密文秘钥,由于非对称加密算法是对对称秘钥进行加密,相比于直接通过非对称加密算法对待加密数据进行加密的方式效率较高。而在解密过程中,则是先通过各子秘钥(包含设备参数)对密文秘钥进行解密,得到明文秘钥,再通过明文秘钥对密文数据进行解密,得到解密后数据,在通过各子秘钥对密文秘钥进行解密时,与上述通过各子秘钥对密文数据进行解密的方式相同,也是先通过第一个子秘钥对密文秘钥进行解密,得到第一个解密中间数据,然后再通过第二个子秘钥与第一个解密中间数据进行运算,得到第二个解密中间数据,以此类推,通过最后一个子秘钥与最后一个解密中间数据进行运算,得到明文秘钥。
77.在本说明书中,非对称加密算法以及对称加密算法均可采用常用的加密算法,例如,非对称加密算法可以采用sm4算法,对称加密算法可以采用sm2算法。
78.从上述方法中可以看出,在进行数据的解密时,可以不通过常规的解密秘钥进行
解密,而是通过对该解密秘钥进行分解运算,得到的各子秘钥,来对该密文数据进行解密,并且在生成了各子秘钥后可以直接将常规的解密秘钥删除,仅保留各子秘钥来进行解密,这样一来,外部人员无法获取到常规的解密秘钥,并且,由于用于解密的秘钥已发生了变化,因此通过各子秘钥对密文数据进行解密的方式与常规的解密秘钥不同,即,通过常规的解密秘钥进行解密需要使用到与加密算法所对应的解密算法,这些算法是较为常规的,而通过各子秘钥相比于常规的解密算法需要进行更多的运算,因此,外部人员即使得到各子秘钥,也无法通过常规的解密算法对该密文数据进行解密。
79.以上为本说明书的一个或多个实施例提供的基于白盒的车机端软件加解密方法,基于同样的思路,本说明书还提供了相应的基于白盒的车机端软件加解密装置,如图4所示。
80.图4为本说明书提供的一种基于白盒的车机端软件加解密装置示意图,包括:
81.获取模块401,获取待加密数据,所述待加密数据用于在智能驾驶中的数据传输;
82.加密模块402,通过预设的加密算法对所述待加密数据进行加密,得到密文数据;
83.发送模块403,将所述密文数据发送给设定设备,以使所述设定设备根据各子秘钥,对所述密文数据进行解密,得到解密后数据,并基于所述解密后数据,对智能驾驶设备进行控制,其中,所述各子秘钥是通过预设的分解运算方式,对预先生成的解密秘钥进行运算得到,在生成所述各子秘钥后,所述解密秘钥被删除。
84.可选地,所述加密模块402具体用于,当所述待加密数据对应的数据量小于第一设定数据量,根据预先生成的公钥,通过非对称加密算法对所述待加密数据进行加密,得到密文数据;所述发送模块403具体用于,将所述密文数据发送给设定设备,以使所述设定设备根据所述公钥对应的各子秘钥,对所述密文数据进行解密,得到解密后数据,所述各子秘钥通过所述运算分解方式对所述公钥对应的私钥进行运算得到。
85.可选地,所述加密模块402具体用于,通过预先生成的对称秘钥,按照预设的对称加密算法对所述待加密数据进行加密,得到密文数据,以及通过预先生成的公钥,按照预设的非对称加密算法对所述对称秘钥进行加密,得到密文秘钥;所述发送模块403具体用于,将所述密文数据以及所述密文秘钥发送给设定设备,以使所述设定设备根据所述公钥对应的各子秘钥,对所述密文秘钥进行解密,得到明文秘钥,并根据所述明文秘钥对所述密文数据进行解密,得到解密后数据,所述各子秘钥通过所述运算分解方式对所述公钥对应的私钥进行运算得到。
86.可选地,通过预先生成的对称秘钥,按照预设的对称加密算法对所述待加密数据进行加密,得到密文数据,以及通过预先生成的公钥,按照预设的非对称加密算法对所述对称秘钥进行加密,得到密文秘钥之前,所述加密模块402还用于,确定所述待加密数据对应的数据量大于第二设定数据量。
87.可选地,所述装置还包括:
88.生成模块404,用于获取所述设定设备对应的设备参数;以所述设备参数是所述解密秘钥对应的一个子秘钥为条件,按照所述分解运算方式对所述解密秘钥进行运算,得到所述解密秘钥对应的其他子秘钥,并将所述其他子秘钥存储在所述设定设备中。
89.可选地,所述发送模块403具体用于,将所述密文数据发送给设定设备,以使所述设定设备确定所述设定设备对应的设备参数,以及读取预先存储的除所述设备参数外的其
他子秘钥;根据所述设备参数,以及除所述设备参数外的其他子秘钥,对所述密文数据进行解密,得到解密后数据。
90.可选地,所述发送模块403具体用于,将所述密文数据发送给设定设备,以使所述设定设备确定各子秘钥对应的解密顺序,并基于所述解密顺序,通过第n个子秘钥,对第n

1个解密中间数据进行解密,得到第n个解密中间数据,并通过第n 1个子秘钥,对所述第n个解密中间数据进行解密,直到通过所述解密顺序中最后一个子秘钥完成解密为止,得到所述解密后数据,所述密文数据通过所述解密顺序中的第一个子秘钥进行解密,以得到第一个解密中间数据,n为正整数。
91.可选地,所述加密模块402具体用于,判断所述待加密数据对应的安全等级是否位于预设的安全等级范围内;若是,通过预设的加密算法对所述待加密数据进行加密,得到密文数据。
92.本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1提供的一种基于白盒的车机端软件加解密方法。
93.本说明书还提供了图5所示的一种对应于图1的电子设备的示意结构图。如图5所述,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1所述的基于白盒的车机端软件加解密方法。当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
94.在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmable logic device,pld)(例如现场可编程门阵列(field programmable gate array,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardware description language,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advanced boolean expression language)、ahdl(altera hardware description language)、confluence、cupl(cornell university programming language)、hdcal、jhdl(java hardware description language)、lava、lola、myhdl、palasm、rhdl(ruby hardware description language)等,目前最普遍使用的是vhdl(very

high

speed integrated circuit hardware description language)与verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
95.控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(application specific integrated circuit,asic)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc 625d、atmel at91sam、microchip pic18f26k20以及silicone labs c8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
96.上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
97.为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
98.本领域内的技术人员应明白,本说明书的实施例可提供为方法、系统、或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
99.本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
100.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
101.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
102.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网
络接口和内存。
103.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
104.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd

rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
105.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
106.本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
107.本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
108.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
109.以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献