复工复产检测用电力数据加密传输方法、系统及可读介质转让专利

申请号 : CN202010814091.8

文献号 : CN111740831B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 潘巍巍唐文升王锦志

申请人 : 国网浙江省电力有限公司国网浙江省电力有限公司营销服务中心

摘要 :

本发明的目的在于解决复工复产检测系统的数据传输安全性低的问题,提供一种复工复产检测用电力数据加密传输方法、系统及可读介质,方法包括:电表基于第一电量值生成的第一随机数和生成第一表端秘钥;根据基于时间参数、第二随机数和电表当前时间生成第二表端秘钥;根据第一表端秘钥和第二表端秘钥对当前电量值加密;根据当前电量值更新第一电量值;主机基于时间参数、第二随机数和主机当前时间生成第二主机秘钥;根据第二电量值和第二主机秘钥解密第二加密数据后得到的第一随机数生成第一主机秘钥;根据第一主机秘钥解密第一加密数据得到的当前电量值更新第二电量值;生成第二随机数并发送到电表。本公开的技术方案可以提高数据传输的安全性。

权利要求 :

1.复工复产检测用电力数据加密传输方法,其特征在于,包括:为电表的第一电量值和主机的第二电量值预设同一初始值,为电表的第二随机数和主机的第二随机数预设同一初始值;并周期性地执行如下步骤:步骤101,电表生成第一随机数,根据第一随机数和第一电量值生成第一表端秘钥;步骤102,电表根据如下公式计算时间参数:

其中,E为时间参数,F为电表当前时间的分值,

U为预设的时间阈值; 若时间参数为1,则根据第二随机数和电表当前时间的时值生成第二表端秘钥; 若时间参数为0,则根据第二随机数和预设的第一固定值生成第二表端秘钥; 步骤103:电表根据第一表端秘钥加密待发送的当前电量值,以生成第一加密数据;根据第二表端秘钥加密第一加密数据和第一随机数,以生成第二加密数据;根据当前电量值更新第一电量值; 步骤104:电表将第二加密数据发送至主机,其中,第二加密数据内包含未加密的时间参数; 步骤105:主机接收第二加密数据,获取第二加密数据内的时间参数, 若时间参数为1,则根据第二随机数和主机当前时间的时值以生成第二主机秘钥; 若时间参数为0,则根据第二随机数和预设的第二固定值以生成第二主机秘钥;其中,第二固定值与第一固定值相同; 步骤106:主机根据第二主机秘钥解密第二加密数据,以获取第一加密数据和第一随机数,根据第一随机数和第二电量值生成第一主机秘钥; 步骤107:主机根据第一主机秘钥解密第一加密数据,以获得当前电量值,并根据当前电量值更新第二电量值; 步骤108,主机生成第二随机数,并将第二随机数发送到电表。

2.如权利要求1所述的复工复产检测用电力数据加密传输方法,其特征在于,所述根据第一随机数和第一电量值生成第一表端秘钥,包括:按顺序组合第一随机数和第一电量值以形成第一组合字符,并根据预设的表端秘钥字符长度值为所述第一组合字符补位,以生成第一表端秘钥。

3.如权利要求1所述的复工复产检测用电力数据加密传输方法,其特征在于,所述根据第二随机数和电表当前时间的时值生成第二表端秘钥,包括: 根据第二随机数和电表当前时间的时值,从预设的第一秘钥库中选择秘钥作为第二表端秘钥;其中,第一秘钥库包括第一秘钥编号、第二秘钥编号和秘钥,第一秘钥编号、第二秘钥编号和秘钥一一关联,第一秘钥编号包含第二随机数的可能值,第二秘钥编号包含电表当前时间的时值的可能值和第一固定值; 根据第二随机数和主机当前时间的时值以生成第二主机秘钥,包括:根据第二随机数和主机当前时间的时值,从预设的第二秘钥库中选择秘钥作为第二主机秘钥;其中,第二秘钥库与第一秘钥库相同。

4.如权利要求1所述的复工复产检测用电力数据加密传输方法,其特征在于,所述步骤

101还包括:电表根据所述第一随机数从本地存储的第一加解密算法集中获取加解密算法作为第一电表加解密算法;其中,第一电表加解密算法用于在电表根据第一表端秘钥加密待发送的当前电量值时使用; 所述步骤106还包括:主机根据所述第一随机数从本地存储的第二加解密算法集中获取加解密算法作为第一主机加解密算法;其中,所述第一主机加解密算法用于在主机根据第一主机秘钥解密第一加密数据时使用,第二加解密算法集与第一加解密算法集相同。

5.如权利要求4所述的复工复产检测用电力数据加密传输方法,其特征在于,所述电表根据所述第一随机数从本地存储的第一加解密算法集中获取加解密算法作为第一电表加解密算法,包括: 计算第一余数,所述第一余数为第一随机数除以第一预设阈值的余数,所述第一预设阈值是第一加解密算法集中加解密算法的总数; 根据所述第一余数从第一加解密算法集中获取加解密算法作为第一电表加解密算法; 所述主机根据所述第一随机数从本地存储的第二加解密算法集中获取加解密算法作为第二电表加解密算法,包括: 计算第二余数,所述第二余数为第一随机数除以第二预设阈值的余数,所述第二预设阈值是第二加解密算法集中加解密算法的总数; 根据所述第二余数从第二加解密算法集中获取加解密算法作为第二电表加解密算法。

6.如权利要求1所述的复工复产检测用电力数据加密传输方法,其特征在于, U=2.4。

7.如权利要求6所述的复工复产检测用电力数据加密传输方法,其特征在于,所述第一固定值为25,所述第二固定值为25。

8.复工复产检测用电力数据加密传输系统,其特征在于,包括: 初始化模块,用于设置主机的第二电量值的初始值,以使主机的第二电量值与电表的第一电量值相同,设置主机的第二随机数的初始值,以使主机的第二随机数与电表的第二随机数相同; 第一接收模块,用于接收第二加密数据; 第一解密模块,用于获取第二加密数据内的时间参数,若时间参数为1,则根据第二随机数和主机当前时间的时值以生成第二主机秘钥;若时间参数为0,则根据第二随机数和预设的第二固定值以生成第二主机秘钥;其中,第一固定值与第二固定值相同; 根据第二主机秘钥解密第二加密数据,以获取第一加密数据和第一随机数; 根据第一随机数和第二电量值生成第一主机秘钥; 根据第一主机秘钥解密第一加密数据,以获得当前电量值,并根据当前电量值更新第二电量值; 第二随机数生成与发送模块,用于在第一解密模块获得当前电量值时,生成第二随机数,以及将第二随机数发送到电表;

其中,所述第二加密数由电表通过如下步骤生成:

步骤101,电表生成第一随机数,根据第一随机数和第一电量值生成第一表端秘钥;

步骤102,电表根据如下公式计算时间参数:

E为时间参数,F为电表当前时间的分值,U为预设的时间阈值;

若时间参数为1,则根据第二随机数和电表当前时间的时值生成第二表端秘钥; 若时间参数为0,则根据第二随机数和预设的第一固定值生成第二表端秘钥;

步骤103:电表根据第一表端秘钥加密待发送的当前电量值,以生成第一加密数据;根据第二表端秘钥加密第一加密数据和第一随机数,以生成第二加密数据。

9.复工复产检测用电力数据加密传输方法,其特征在于,包括: 预设第二电量值和第二随机数的初始值,以使主机的第二电量值与电表的第一电量值相同,使主机的第二随机数与电表的第二随机数相同; 接收电表发送的第二加密数据,响应所述第二加密数据,执行如下步骤: 步骤201,获取第二加密数据内的时间参数;在时间参数为1时,根据第二随机数和主机当前时间的时值以生成第二主机秘钥;在时间参数为0时,根据第二随机数和预设的第二固定值以生成第二主机秘钥; 步骤202,根据第二主机秘钥解密第二加密数据,以获取第一加密数据和第一随机数; 步骤203,根据第一随机数和第二电量值生成第一主机秘钥; 步骤204,根据第一主机秘钥解密第一加密数据,以获得当前电量值,并根据当前电量值更新第二电量值; 步骤205,生成第二随机数; 步骤206,向电表发送第二随机数;

其中,所述第二加密数由电表通过如下步骤生成:

步骤101,电表生成第一随机数,根据第一随机数和第一电量值生成第一表端秘钥;

步骤102,电表根据如下公式计算时间参数:

E为时间参数,F为电表当前时间的分值,U为预设的时间阈值;

若时间参数为1,则根据第二随机数和电表当前时间的时值生成第二表端秘钥; 若时间参数为0,则根据第二随机数和预设的第一固定值生成第二表端秘钥;

步骤103:电表根据第一表端秘钥加密待发送的当前电量值,以生成第一加密数据;根据第二表端秘钥加密第一加密数据和第一随机数,以生成第二加密数据。

10.一种计算机可读介质,其特征在于,其存储了指令,当所述指令在计算机上运行时,使得计算机执行如权利要求9所述的方法。

说明书 :

复工复产检测用电力数据加密传输方法、系统及可读介质

技术领域

[0001] 本发明属于加密领域,具体涉及复工复产检测用电力数据加密传输方法、系统及可读介质。

背景技术

[0002] 复工复产检测系统根据主机采集企业用电量数据,根据企业历史用电量情况、当日用电量情况等数据,综合考虑复工电量比例和复工企业数量比例两个因素,得出复工指数。由于涉及企业数量最多,数据量大,故为了确保数据传输效率,电量数据传输一般采用对称加密算法加密,虽然相对于非对称加密算法来说,对称加密算法的加解密效率高,但其秘钥容易泄露,进而造成信息泄露,引起安全隐患。

发明内容

[0003] 本发明的目的在于解决现有所存在的其中一个问题,提供一种复工复产检测用电力数据加密传输方法、系统及可读介质,提高复工复产检测用电力数据传输的安全性。
[0004] 为了实现目的,本公开的第一方面,复工复产检测用电力数据加密传输方法,包括:为电表的第一电量值和主机的第二电量值预设同一初始值,为电表的第二随机数和主机的第二随机数预设同一初始值;并周期性地执行如下步骤:
[0005] 步骤101,电表生成第一随机数,根据第一随机数和第一电量值生成第一表端秘钥;
[0006] 步骤102,电表计算时间参数; 若时间参数为1,则根据第二随机数和电表当前时间的时值生成第二表端秘钥; 若时间参数为0,则根据第二随机数和预设的第一固定值生成第二表端秘钥; 具体的,根据如下公式计算:
[0007] ,
[0008] 其中,E为时间参数,F为电表当前时间的分值,U为预设的时间阈值;
[0009] 步骤103:电表根据第一表端秘钥加密待发送的当前电量值,以生成第一加密数据;根据第二表端秘钥加密第一加密数据和第一随机数,以生成第二加密数据;根据当前电量值更新第一电量值;
[0010] 步骤104:电表将第二加密数据发送至主机,其中,第二加密数据内包含未加密的时间参数;
[0011] 步骤105:主机接收第二加密数据,获取第二加密数据内的时间参数;
[0012] 若时间参数为1,则根据第二随机数和主机当前时间的时值以生成第二主机秘钥;
[0013] 若时间参数为0,则根据第二随机数和预设的第二固定值以生成第二主机秘钥;其中,第一固定值与第二固定值相同;
[0014] 步骤106:主机根据第二主机秘钥解密第二加密数据,以获取第一加密数据和第一随机数,根据第一随机数和第二电量值生成第一主机秘钥;
[0015] 步骤107:主机根据第一主机秘钥解密第一加密数据,以获得当前电量值,并根据当前电量值更新第二电量值;
[0016] 步骤108,主机生成第二随机数,并将第二随机数发送到电表。
[0017] 可选的,根据第一随机数和第一电量值生成第一表端秘钥,包括:
[0018] 按顺序组合第一随机数和第一电量值以形成第一组合字符,并根据预设的表端秘钥字符长度值为第一组合字符补位,以生成第一表端秘钥。
[0019] 可选的,根据第二随机数和电表当前时间的时值生成第二表端秘钥,包括:
[0020] 根据第二随机数和电表当前时间的时值,从预设的第一秘钥库中选择秘钥作为第二表端秘钥;其中,第一秘钥库包括第一秘钥编号、第二秘钥编号和秘钥,第一秘钥编号、第二秘钥编号和秘钥一一关联,第一秘钥编号包含第二随机数的可能值,第二秘钥编号包含电表当前时间的时值的可能值和第一固定值;
[0021] 根据第二随机数和主机当前时间的时值以生成第二主机秘钥,包括:
[0022] 根据第二随机数和主机当前时间的时值,从预设的第二秘钥库中选择秘钥作为第二主机秘钥;其中,第二秘钥库与第一秘钥库相同。
[0023] 可选的,步骤101还包括:电表根据第一随机数从本地存储的第一加解密算法集中获取加解密算法作为第一电表加解密算法;其中,第一电表加解密算法用于在电表根据第一表端秘钥加密待发送的当前电量值时使用;
[0024] 步骤106还包括:主机根据第一随机数从本地存储的第二加解密算法集中获取加解密算法作为第一主机加解密算法;其中,第一主机加解密算法用于在主机根据第一主机秘钥解密第一加密数据时使用,第二加解密算法集与第一加解密算法集相同。
[0025] 可选的,电表根据第一随机数从本地存储的第一加解密算法集中获取加解密算法作为第一电表加解密算法,包括:
[0026] 计算第一余数,第一余数为第一随机数除以第一预设阈值的余数,第一预设阈值是第一加解密算法集中加解密算法的总数;
[0027] 根据第一余数从第一加解密算法集中获取加解密算法作为第一电表加解密算法;
[0028] 主机根据第一随机数从本地存储的第二加解密算法集中获取加解密算法作为第二电表加解密算法,包括:
[0029] 计算第二余数,第二余数为第一随机数除以第二预设阈值的余数,第二预设阈值是第二加解密算法集中加解密算法的总数;
[0030] 根据第二余数从第二加解密算法集中获取加解密算法作为第二电表加解密算法。
[0031] 可选的,U=2.4。
[0032] 可选的,第一固定值为25,第二固定值为25。
[0033] 本公开的第二方面,复工复产检测用电力数据加密传输系统,包括:
[0034] 初始化模块,用于设置主机的第二电量值的初始值,以使主机的第二电量值与电表的第一电量值相同,设置主机的第二随机数的初始值,以使主机的第二随机数与电表的第二随机数相同;
[0035] 第一接收模块,用于接收第二加密数据;
[0036] 第一解密模块,用于获取第二加密数据内的时间参数,若时间参数为1,则根据第二随机数和主机当前时间的时值以生成第二主机秘钥;若时间参数为0,则根据第二随机数和预设的第二固定值以生成第二主机秘钥;其中,第一固定值与第二固定值相同;
[0037] 根据第二主机秘钥解密第二加密数据,以获取第一加密数据和第一随机数;
[0038] 根据第一随机数和第二电量值生成第一主机秘钥;
[0039] 根据第一主机秘钥解密第一加密数据,以获得当前电量值,并根据当前电量值更新第二电量值;
[0040] 第二随机数生成与发送模块,用于在第一解密模块获得当前电量值时,生成第二随机数,以及将第二随机数发送到电表。
[0041] 本公开的第三方面,包括:
[0042] 预设第二电量值和第二随机数的初始值;
[0043] 接收电表发送的第二加密数据,响应第二加密数据,执行如下步骤:
[0044] 步骤201,获取第二加密数据内的时间参数;在时间参数为1时,根据第二随机数和主机当前时间的时值以生成第二主机秘钥;在时间参数为0时,根据第二随机数和预设的第二固定值以生成第二主机秘钥;
[0045] 步骤202,根据第二主机秘钥解密第二加密数据,以获取第一加密数据和第一随机数;
[0046] 步骤203,根据第一随机数和第二电量值生成第一主机秘钥;
[0047] 步骤204,根据第一主机秘钥解密第一加密数据,以获得当前电量值,并根据当前电量值更新第二电量值;
[0048] 步骤205,生成第二随机数;
[0049] 步骤206,向电表发送第二随机数。
[0050] 本公开的第四方面,一种计算机可读介质,其特征在于,包括指令,当其在计算机上运行时,使得计算机执行本公开第四方面的方法。
[0051] 通过实施本公开的技术方案可以取得以下有益技术效果:
[0052] 本公开的技术方案,基于第一随机数、第二随机数、第一电量值、第二电量值、主机当前时间的分值、主机当前时间的值、电表当前时间的分值和电表当前时间的时值,通过上述步骤对传输的当前电量值进行加解密,提高数据的安全性。
[0053] 其中,根据第一表端秘钥和第二表端秘钥进行双重加密,双重加密的第二加密数据中包括第一随机数和被第一表端加密的第一加密(第一加密数据被第二表端加密数据加密),使得主机可以根据自身生成或初始设置的第二随机数生成第二主机秘钥,并根据第二主机秘钥解密第二加密数据后才能得到第一随机数,得到第一随机数后,方能生成第一主机秘钥;如此,主机在未接收到第二加密数据前,用于解密的第一主机秘钥是无法生成的,使得破译者无法在第二加密数据到达前,直接从主机数据中获取该用于解密第二加密数据中的第一加密数据的第一主机秘钥,提高数据安全性。
[0054] 其中,基于电表传输给主机的当前电量值的具有变化的特性,基于该当前电量值更新第一电量值和第二电量值,电表基于第一电量值生成第二表端秘钥,主机根据第二电量值生成第一主机秘钥。由于更新的第一电量值和第二电量值,是基于传输数据中的当前电量值,当前电量值被双重加密,本身被破译的几率交底;同时除第一次循环步骤外,在本次循环步骤中获取的第二电量值和第一电量值均是基于上一次循环步骤中的当前电量值,破译者必须破译上一次循环步骤中的当前电量值,方能得到用以生成第二表端秘钥的第一电量值,进一步提高破译难度。
[0055] 其中,虽然额外传输了第一随机数和第二随机数,但由于在生成第一主机秘钥、第二主机秘钥、第一表端秘钥和第二表端秘钥时,利用了第一电量值、第二电量值、电表当前时间和主机当前时,所以在第一随机数和第二随机数设置随机范围小时(随时范围小,可以是随机数数占用空间小),生成第一主机秘钥、第二主机秘钥、第一表端秘钥和第二表端秘钥的随机范围变大,提高数据安全性的同时,保证基本不影响数据传输的效率;同时,还确保电表和主机在存在较小的时间差时,不会导致第二表端秘钥与第二秘钥不同。

附图说明

[0056] 图1为本公开一个实施方式中的复工复产检测用电力数据加密传输方法的一种流程图。
[0057] 图2为本公开一个实施方式中的复工复产检测用电力数据加密传输方法的另一种流程图。
[0058] 图3为本公开一个实施方式中的复工复产检测用电力数据加密传输系统的框图。

具体实施方式

[0059] 为了便于本领域技术人员的理解,下面结合具体实施例对本发明作进一步的说明:
[0060] 参见图1,复工复产检测用电力数据加密传输方法,包括:为电表的第一电量值和主机的第二电量值预设同一初始值,为电表的第二随机数和主机的第二随机数预设同一初始值;并周期性地执行如下步骤:
[0061] 步骤101,电表生成第一随机数,根据第一随机数和第一电量值生成第一表端秘钥;
[0062] 本步骤中,第一随机数可以是正整数;可以知道的,在第一次执行该步骤时,第一电量值是预设的初始值,在非第一次执行该步骤时,是上一循环步骤的步骤103中更新的第一电量值。第一电量值的设置可以在第一随机数可能值相同的情况下,使第一表端秘钥的可能值更多。
[0063] 步骤102,电表计算时间参数; 若时间参数为1,则根据第二随机数和电表当前时间的时值生成第二表端秘钥; 若时间参数为0,则根据第二随机数和预设的第一固定值生成第二表端秘钥; 具体的,电表根据如下公式计算时间参数;
[0064] ,
[0065] 其中,E为时间参数,F为电表当前时间的分值,U为预设的时间阈值;
[0066] 本步骤中,公式中的min(F,60-F)用于计算分值与整点的时间差的最小值;最小值小于U时,认为电表时间与整点时间接近;例如,若U为5,当电表当前时间是2020年3月1日13点40分时,电表当前时间的分值是40,电表当前时间的时值是13;则此时min(F,60-F)>U,根据第二随机数和电表当前时间的时值生成第二表端秘钥;当电表当前时间是2020年3月1日13点1分时,电表当前时间的分值是1,电表当前时间的时值是13;则此时min(F,60-F)<U,根据第二随机数和预设的第一固定值生成第二表端秘钥;本步骤与步骤105主机计算第二主机秘钥配合,使得在第二随机数的随机范围相同的情况下,由于纳入了随时可能变化的时间值作为第二表端秘钥和第二主机秘钥的生成因素,第二表端秘钥和第二表端秘钥的可能性值更多,即在相同第二表端秘钥和第二表端秘钥的可能性下,第二随机数的随机范围可以减少,传输第二随机数时的占用字节,针对大数据和物联网领域尤其用于,本申请中较少,同时因为纳入了时间参数,克服了因为表端时间与主机时间存在时间差的问题,导致的加入时间因素可能会引起表端生成的第二表端秘钥和主机生成的第二主机秘钥不一致的问题。
[0067] 其中,可以知道的,在第一次执行该步骤时,第二随机数是预设的初始值,在非第一次执行该步骤时,是上一循环步骤的步骤108发送的第二随机数;如此可以确保每次循环步骤中,第二随机数是变化的,进而第二表端秘钥也是变化的,进而提高秘钥及数据的安全性。
[0068] 步骤103:电表根据第一表端秘钥加密待发送的当前电量值,以生成第一加密数据;根据第二表端秘钥加密第一加密数据和第一随机数,以生成第二加密数据;根据当前电量值更新第一电量值;
[0069] 本步骤中,根据第二表端秘钥加密第一加密数据和第一随机数时,可将第一加密数据和第一随机数组合后,由第二表端秘钥生产第三加密数据,并将第三加密数据与时间参数组合形成第二加密数据,以使第二加密数据包含未加密的时间参数。
[0070] 本步骤中,根据当前电量值更新第一电量值,即将当前电量值替换到第一电量值,例如当前电量值为123456KWH时,直接将第一电量值更新为123456KWH。
[0071] 步骤104:电表将第二加密数据发送至主机,其中,第二加密数据内包含未加密的时间参数;
[0072] 步骤105:主机接收第二加密数据,获取第二加密数据内的时间参数,[0073] 若时间参数为1,则根据第二随机数和主机当前时间的时值以生成第二主机秘钥;
[0074] 若时间参数为0,则根据第二随机数和预设的第二固定值以生成第二主机秘钥;其中,第一固定值与第二固定值相同;
[0075] 本步骤中,生成第二主机秘钥与步骤102中每个生成表端秘钥的方法相对应,其中,区别在于主机采用的是主机当前时间的时值;本步骤中无需获取电表当前时间,即可使生成的第二主机秘钥与第二表端秘钥相同。
[0076] 其中,可以知道的,在第一次执行该步骤时,第二随机数是预设的初始值,在非第一次执行该步骤时,是上一循环步骤的步骤108生成的第二随机数;如此可以确保每次循环步骤中,确保主机的第二随机数与电表的第二随机数是动态而相同。
[0077] 步骤106:主机根据第二主机秘钥解密第二加密数据,以获取第一加密数据和第一随机数,根据第一随机数和第二电量值生成第一主机秘钥;
[0078] 本步骤中,第二主机秘钥解密第二加密数据后,获得第一随机数,使得第一随机数可以用于生成第一主机秘钥;由于此时第二电量值与第一电量值相同,第一随机数数是电表生成并发送的第一随机数,故此时生成的第一主机秘钥与电表的第一表端秘钥相同;其中,可以知道的,生成第一主机秘钥和生成第一表端秘钥的方法相同。
[0079] 步骤107:主机根据第一主机秘钥解密第一加密数据,以获得当前电量值,并根据当前电量值更新第二电量值;
[0080] 本步骤中,更新第二电量值,使第二电量值与电表的第二电量值继续保持一致,使下一循环步骤中,生成第一主机秘钥和第一表端秘钥相同。还有,当前电量值在复工复产检测过程中本来就要获取的数据,而且每次传输的该数据基本是不相同的,使得在后续循环中,主机只有在前一次准确获取当前电量值的情况下获取才能准确地基于第二电量值生成第一主机秘钥,重复利用本就需要传输的变量数据,生成秘钥,即可提高破译难度,又不增加额外的传输,同时还可以在解密第一加密数据失败时,判断出上一循环步骤中电表传输当前电量值时出现了异常。
[0081] 步骤108,主机生成第二随机数,并将第二随机数发送到电表。
[0082] 本步骤中,主机生成的第二随机数,用于主机在下一循环步骤中生成第一主机秘钥,以及电表在下一循环步骤中生成第一表端秘钥。
[0083] 综上,本公开的技术方案,基于第一随机数、第二随机数、第一电量值、第二电量值、主机当前时间的分值、主机当前时间的值、电表当前时间的分值和电表当前时间的时值,通过上述步骤对传输的当前电量值进行加解密,提高数据的安全性。
[0084] 其中,根据第一表端秘钥(第一主机秘钥)和第二表端秘钥(第二主机秘钥)进行双重加密,双重加密的第二加密数据中包括第一随机数和被第一表端加密的第一加密(第一加密数据被第二表端加密数据加密),使得主机可以根据自身生成或初始设置的第二随机数生成第二主机秘钥,并根据第二主机秘钥解密第二加密数据后才能得到第一随机数,得到第一随机数后,方能生成第一主机秘钥;如此,主机在未接收到第二加密数据前,用于解密的第一主机秘钥是无法生成的,使得破译者无法在第二加密数据到达前,直接从主机数据中获取该用于解密第二加密数据中的第一加密数据的第一主机秘钥,提高数据安全性。
[0085] 其中,基于电表传输给主机的当前电量值的具有变化的特性,基于该当前电量值更新第一电量值和第二电量值,电表基于第一电量值生成第二表端秘钥,主机根据第二电量值生成第一主机秘钥。由于更新的第一电量值和第二电量值,是基于传输数据中的当前电量值,当前电量值被双重加密,本身被破译的几率交底;同时除第一次循环步骤外,在本次循环步骤中获取的第二电量值和第一电量值均是基于上一次循环步骤中的当前电量值,破译者必须破译上一次循环步骤中的当前电量值,方能得到用以生成第二表端秘钥的第一电量值,进一步提高破译难度。
[0086] 其中,虽然额外传输了第一随机数和第二随机数,但由于在生成第一主机秘钥、第二主机秘钥、第一表端秘钥和第二表端秘钥时,利用了第一电量值、第二电量值、电表当前时间和主机当前时,所以在第一随机数和第二随机数设置随机范围小时(随时范围小,可以是随机数数占用空间小),生成第一主机秘钥、第二主机秘钥、第一表端秘钥和第二表端秘钥的随机范围变大,提高数据安全性的同时,保证基本不影响数据传输的效率;同时,还确保电表和主机在存在较小的时间差时,不会导致第二表端秘钥与第二秘钥不同。
[0087] 其中,电表可以在需要传输电力数据时,触发一次循环步骤,针对电表为物联网设备时,由电表触发电力数据传输,可以使电表在非传输阶段待机,以节省能耗。
[0088] 其中,步骤108中主机传输第二随机数,可以在握手时执行,即主机在接收第二加密数据后,生成第二随机数,并在反馈确定收到第二机密数据的同时反馈第二随机数,如此,可以无需增加独立的传输第二随机数的步骤,同时,本申请中第一随机数随第二加密数据传输,也无需增加独立的传输第一随机数的步骤,减少为了增加数据安全而对数据传输本身造成的影响。
[0089] 其中,可以知道的,上述加密时可以根据对称加密算法。
[0090] 在一个可选的实施方式中,根据第一随机数和第一电量值生成第一表端秘钥,可以是按顺序组合第一随机数和第一电量值以形成第一组合字符,并根据预设的表端秘钥字符长度值为第一组合字符补位,以生成第一表端秘钥。比如一级秘钥字符长度为64位,组合字符是50位,那么需进行补位,具体的,可以在组合字符后补14个0。
[0091] 同样的,根据第一随机数和第二电量值生成第一主机秘钥,包括:
[0092] 按顺序组合第一随机数和第二电量值以形成第二组合字符,并根据预设的表端秘钥字符长度值为第二组合字符补位,以生成第一主机秘钥。
[0093] 在一个可选的实施方式中,根据第二随机数和电表当前时间的时值生成第二表端秘钥,包括:
[0094] 根据第二随机数和电表当前时间的时值,从预设的第一秘钥库中选择秘钥作为第二表端秘钥;其中,第一秘钥库包括第一秘钥编号、第二秘钥编号和秘钥,第一秘钥编号、第二秘钥编号和秘钥一一关联,第一秘钥编号包含第二随机数的可能值,第二秘钥编号包含电表当前时间的时值的可能值和第一固定值;
[0095] 根据第二随机数和主机当前时间的时值以生成第二主机秘钥,包括:
[0096] 根据第二随机数和主机当前时间的时值,从预设的第二秘钥库中选择秘钥作为第二主机秘钥;其中,第二秘钥库与第一秘钥库相同。
[0097] 为了便于理解,可以参考表1,表1为第一秘钥库的第一秘钥编号、第二秘钥编号和秘钥的关系表;由表中可知,秘钥的数量是第一秘钥编号数量乘以第二秘钥编号数量,而第一秘钥编号可以与第二随机数数量一致,第二秘钥编号可以与电表当前时间的时值一致;
[0098] 在一个可选的实施方式中,步骤101还包括:电表根据第一随机数从本地存储的第一加解密算法集中获取加解密算法作为第一电表加解密算法;其中,第一电表加解密算法用于在电表根据第一表端秘钥加密待发送的当前电量值时使用;
[0099] 步骤106还包括:主机根据第一随机数从本地存储的第二加解密算法集中获取加解密算法作为第一主机加解密算法;其中,第一主机加解密算法用于在主机根据第一主机秘钥解密第一加密数据时使用,第二加解密算法集与第一加解密算法集相同。
[0100] 每次传输数据时,都基于第一随机数确定新的第一电表加解密算法和第一主机加解密算法,使得在不同周期的传输,第一主机加解密算法、第一主机加解密算法也会变化,使破解秘钥者无法根据加解密算法破解秘钥;注:一般的秘钥的技术破解是在明确加解密算法的情况下进行破解。
[0101] 同理,电表可以根据第二随机数从本地存储的第三加解密算法集中获取加解密算法作为第二电表加解密算法;其中,第二电表加解密算法用于在电表根据第二表端秘钥加密待第二加密秘钥时使用;
[0102] 主机可以根据第二随机数从本地存储的第四加解密算法集中获取加解密算法作为第二主机加解密算法。第四加解密算法集与第三加解密算法集相同。
[0103] 具体的,电表根据第一随机数从本地存储的第一加解密算法集中获取加解密算法作为第一电表加解密算法,包括:
[0104] 计算第一余数,第一余数为第一随机数除以第一预设阈值的余数,第一预设阈值是第一加解密算法集中加解密算法的总数;
[0105] 根据第一余数从第一加解密算法集中获取加解密算法作为第一电表加解密算法;
[0106] 主机根据第一随机数从本地存储的第二加解密算法集中获取加解密算法作为第二电表加解密算法,包括:
[0107] 计算第二余数,第二余数为第一随机数除以第二预设阈值的余数,第二预设阈值是第二加解密算法集中加解密算法的总数;
[0108] 根据第二余数从第二加解密算法集中获取加解密算法作为第二电表加解密算法。
[0109] 可以知道的,正常情况,第一随机数的可能值要远比第二加解密算法集中的加解密算法种类值多,不应当用第一随机数从本地存储的第一加解密算法集中获取加解密算法作为第一电表加解密算法;但由于传输额外的随机数会增加传输负担,所以本申请中基于上述步骤,利用第一随机数实现对第一电表加解密算法和第二电表加解密算法的确定。在提高数据破译难度的前提下,不增加额外的数据传输。
[0110] 上述实施例中,U可以设置为2.4,第一固定值和第二固定值可以设置为25,设置为该值时,可以使电表生成第二表端秘钥的可能值的概率相同,可以使电表生成第二主机秘钥的可能值的概率相同。
[0111] 实施例2:
[0112] 复工复产检测用电力数据加密传输方法,包括:
[0113] 预设第二电量值和第二随机数的初始值;
[0114] 接收电表发送的第二加密数据;
[0115] 响应第二加密数据,执行如图2的步骤:
[0116] 步骤201,获取第二加密数据内的时间参数;在时间参数为1时,根据第二随机数和主机当前时间的时值以生成第二主机秘钥;在时间参数为0时,根据第二随机数和预设的第二固定值以生成第二主机秘钥;
[0117] 步骤202,根据第二主机秘钥解密第二加密数据,以获取第一加密数据和第一随机数;
[0118] 步骤203,根据第一随机数和第二电量值生成第一主机秘钥;
[0119] 步骤204,根据第一主机秘钥解密第一加密数据,以获得当前电量值,并根据当前电量值更新第二电量值;
[0120] 步骤205,生成第二随机数;
[0121] 步骤206,向电表发送第二随机数。
[0122] 本实施例中的方法是实施例1方法中主机的步骤;具体的可选方案、原理和效果均可以参考实施例1。
[0123] 具体的,在一个可选的实施方式中,根据第一随机数和第二电量值生成第一主机秘钥,包括:
[0124] 按顺序组合第一随机数和第二电量值以形成第二组合字符,并根据预设的表端秘钥字符长度值为第二组合字符补位,以生成第一主机秘钥。
[0125] 在一个可选的实施方式中,根据第二随机数和主机当前时间的时值以生成第二主机秘钥,包括:
[0126] 根据第二随机数和主机当前时间的时值,从预设的第二秘钥库中选择秘钥作为第二主机秘钥;其中,第二秘钥库与第一秘钥库相同。
[0127] 具体的,还包括根据第一随机数从本地存储的第二加解密算法集中获取加解密算法作为第一主机加解密算法;其中,第一主机加解密算法用于在主机根据第一主机秘钥解密第一加密数据时使用,第二加解密算法集与第一加解密算法集相同。
[0128] 根据第一随机数从本地存储的第二加解密算法集中获取加解密算法作为第二电表加解密算法,包括:
[0129] 计算第二余数,第二余数为第一随机数除以第二预设阈值的余数,第二预设阈值是第二加解密算法集中加解密算法的总数;
[0130] 根据第二余数从第二加解密算法集中获取加解密算法作为第二电表加解密算法。
[0131] 具体的,U可以设置为2.4,第一固定值和第二固定值可以设置为25。
[0132] 实施例3:
[0133] 复工复产检测用电力数据加密传输方法,一种计算机可读介质,包括指令,当其在计算机上运行时,使得计算机执行实施例2中任一所述的方法。
[0134] 实施例4,参见图3,复工复产检测用电力数据加密传输系统,包括:
[0135] 初始化模块301,用于设置主机的第二电量值的初始值,以使主机的第二电量值与电表的第一电量值相同,设置主机的第二随机数的初始值,以使主机的第二随机数与电表的第二随机数相同;
[0136] 第一接收模块302,用于接收第二加密数据;
[0137] 第一解密模块303,用于获取第二加密数据内的时间参数,若时间参数为1,则根据第二随机数和主机当前时间的时值以生成第二主机秘钥;若时间参数为0,则根据第二随机数和预设的第二固定值以生成第二主机秘钥;其中,第一固定值与第二固定值相同;
[0138] 根据第二主机秘钥解密第二加密数据,以获取第一加密数据和第一随机数[0139] 根据第一随机数和第二电量值生成第一主机秘钥;
[0140] 根据第一主机秘钥解密第一加密数据,以获得当前电量值,并根据当前电量值更新第二电量值;
[0141] 第二随机数生成与发送模块304,用于在第一解密模块获得当前电量值时,生成第二随机数,以及将第二随机数发送到电表。
[0142] 具体的,根据第一随机数和第二电量值生成第一主机秘钥,包括:
[0143] 按顺序组合第一随机数和第二电量值以形成第二组合字符,并根据预设的表端秘钥字符长度值为第二组合字符补位,以生成第一主机秘钥。
[0144] 具体的,根据第二随机数和主机当前时间的时值以生成第二主机秘钥,包括:
[0145] 根据第二随机数和主机当前时间的时值,从预设的第二秘钥库中选择秘钥作为第二主机秘钥;其中,第二秘钥库与第一秘钥库相同。
[0146] 具体的,还包括根据第一随机数从本地存储的第二加解密算法集中获取加解密算法作为第一主机加解密算法;其中,第一主机加解密算法用于在主机根据第一主机秘钥解密第一加密数据时使用,第二加解密算法集与第一加解密算法集相同。
[0147] 根据第一随机数从本地存储的第二加解密算法集中获取加解密算法作为第二电表加解密算法,包括:
[0148] 计算第二余数,第二余数为第一随机数除以第二预设阈值的余数,第二预设阈值是第二加解密算法集中加解密算法的总数;
[0149] 根据第二余数从第二加解密算法集中获取加解密算法作为第二电表加解密算法。
[0150] 具体的,U可以设置为2.4,第一固定值和第二固定值可以设置为25。
[0151] 还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0152] 以上仅为本发明的具体实施例,但本发明的技术特征并不局限于此,任何本领域的技术人员在本发明的领域内,所作的变化或修饰皆涵盖在本发明的专利范围之中。