电表加密方法

文档序号:7807154阅读:1731来源:国知局
电表加密方法
【专利摘要】本发明涉及一种电表加密方法,采用64位密钥对64位明文进行加密,以得到64位密文,其特征在于,步骤为:定义至少两张加密替换表及一张加密置换表,生成64位密钥;利用64位密钥结合加密替换表对64位明文进行数据替换得到替换后的64位数据;利用加密置换表对替换后的64位数据中每一位位序号所对应的数据分别进行数据置换得到置换后的64位数据;得到64位密文。本发明提出了一电表数据加密方案,在不增加电表成本且只略微扩展DL/T645规约的情况下,电表的软件只需稍作修改,即能大幅提高电表的安全性。该加密方法将加密数据分成8字节的数据块分别加密,每个数据块加密后输出8字节密文,该加密方法与DES的强度相当。
【专利说明】电表加密方法

【技术领域】
[0001] 本发明涉及一种对多功能电能表传输的明文进行加密的方法。

【背景技术】
[0002] 目前国内多功能电能表采用的通信规约是DL/T645-2007,该规约简洁高效,缺点 是数据传送时密码以明码传送,很容易被监测到,多功能电能表的安全性较低。为此,国网 用加 ESAM芯片的方法,扩充了 DL/T645-2007规约,多功能电能表的安全性虽然得到了提 高,但是增加了多功能电能表的成本,而且对规约的修改幅度太大,使得多功能电能表开 发、使用的难度大增。


【发明内容】

[0003] 本发明要解决的技术问题是在不增加成本的基础上提高多功能电能表的安全性。
[0004] 为了解决上述技术问题,本发明的技术方案是提供了一种电表加密方法,采用64 位密钥对64位明文进行加密,以得到64位密文,其特征在于,步骤为:
[0005] 步骤1、定义至少两张加密替换表及一张加密置换表,生成64位密钥,其中;加密 替换表的位序号由0排列至15,为加密替换表中的每一位位序号分配0?15中的任意一个 整数,同一加密替换表中不同位序号分配的值不相同,不同加密替换表中相同位序号分配 的值不相同;
[0006] 加密置换表的位序号由0排列至63,为加密置换表中的每一位位序号分配0?63 中的任意一个整数,不同位序号分配的值不相同;
[0007] 步骤2、利用64位密钥结合加密替换表对64位明文进行数据替换得到替换后的 64位数据,其步骤为:
[0008] 步骤2. 1、将64位密钥及64位明文分成16个半字节,64位密钥及64位明文的半 字节序号均由〇排列至15;
[0009] 步骤2. 2、自64位密钥半字节序号为0的半字节及64位明文半字节序号为0的半 字节始,利用加密替换表依次替换64位明文每个半字节的数据,其中,64位明文中半字节 序号为i的半字节数据替换方法为:
[0010] 判断64位密钥中半字节序号为i的半字节数据中至少一位数据的值,不同的值对 应不同的加密替换表,找到当前数据的值所对应的加密替换表,将64位明文中半字节序号 为i的半字节数据的值作为当前加密替换表的位序号,用当前加密替换表中与该位序号对 应的数据替换64位明文中半字节序号为i的半字节数据;
[0011] 步骤3、利用加密置换表对替换后的64位数据中每一位位序号所对应的数据分别 进行数据置换得到置换后的64位数据,对替换后的64位数据的位序号j所对应的数据进 行置换的步骤为:
[0012] 将替换后的64位数据的位序号j作为加密置换表的位序号,在加密置换表中找到 位序号j所对应的数据的值,设该数据的值为k,则将替换后的64位数据中位序号j所对应 的数据分配至置换后的64位数据的位序号k ;
[0013] 步骤4、得到64位密文。
[0014] 优选地,在所述步骤2. 1前并在所述步骤1后,或者将所述64位密钥取补码,或者 将所述64位密钥循环左移或循环右移至少一位,或者先将所述64位密钥取补码后,再将所 述64位密钥循环左移或循环右移至少一位。
[0015] 优选地,在所述步骤3后并在所述步骤4前还有:步骤A、将步骤1得到的64位密 钥循环左移或循环右移至少一位后,返回步骤2,迭代执行步骤2至步骤A至少2次。
[0016] 本发明提出了一电表数据加密方案,在不增加电表成本且只略微扩展DL/T645规 约的情况下,电表的软件只需稍作修改,即能大幅提高电表的安全性。该加密方法将加密数 据分成8字节的数据块分别加密,每个数据块加密后输出8字节密文,该加密方法与DES的 强度相当。

【专利附图】

【附图说明】
[0017] 图1为本发明提供的一种电表加密方法的流程图;
[0018] 图2为电表加密方法中数据替换的流程图;
[0019] 图3为电表加密方法中数据置换示意图;
[0020] 图4为密钥循环左移一位示意图;
[0021] 图5为解密流程示意图;
[0022] 图6为解密流程中数据置换示意图;
[0023] 图7为解密流程中数据替换示意图。

【具体实施方式】
[0024] 为使本发明更明显易懂,兹以优选实施例,并配合附图作详细说明如下。
[0025] 在实施本发明的电表加密方法前,观察原645-2007规约,发现写操作都是密码加 操作者代码,共8个字节,正好是一个加密的数据块(加密后的密文也是8个字节)。将这 8个字节的数据重新定义如下 :
[0026] 第1?4字节:数据标识DI ;
[0027] 第5?6字节:设置数据的CRC校验码;
[0028] 第7字节:首字节通信地址;
[0029] 第8字节:
[0030] bit7_6 :00-数据不加密,01-只加密第一个数据分组;
[0031] 10-只加密前2个数据分组,11-所有数据加密;
[0032] bit5_3 :加密时数据的补零个数(补零后数据长度为8的倍数);
[0033] bit2_0:随机数。
[0034] 电表接收到正确的报文后,如果是写数据报文,则用密钥解密。明文的前4字节与 报文的数据标识DI比较,明文的第5?6字节与电表计算的设置数据的CRC校验码比较, 明文的第7字节与首字节通信地址比较,若有不同,则视为密码错。
[0035] 第1?4字节定义为数据标识DI是为了保证对不同数据的设置密码是不一样的 (类似密钥的分散因子)。第5?6字节定义为设置数据的CRC校验码是为了防止篡改数 据内容。第7字节定义为首字节通信地址是为了尽量使该报文只对本电表有效。第8字节 包含随机数是为了增加密码破译的难度。
[0036] 若第8字节的bit7_6不全为零时,则数据也要用密钥加解密,每8字节为一个数 据分组,可根据需要选择对第一个数据分组,前2个数据分组或所有数据加密。加密时若数 据分组不满8个字节,则须先补零再加密,解密后的数据长度要减去补零的字节数(第8字 节的bit5-3指定,0?7)。
[0037] 对需量清零,电量清零,事件清零和跳合闸控制命令,第1?4字节用世纪秒替换 数据标识DI,电表解密后,将世纪秒与电表的时间进行比对,如时间差值大于300秒,则视 为密码错。
[0038] 结合图1,本发明提供了一种电表加密方法,采用64位密钥对64位明文进行加密, 以得到64位密文,其步骤为:
[0039] 步骤1、定义两张加密替换表及一张加密置换表,生成64位密钥,其中;加密替换 表的位序号由〇排列至15,为加密替换表中的每一位位序号分配0?15中的任意一个整 数,同一加密替换表中不同位序号分配的值不相同,不同加密替换表中相同位序号分配的 值不相同,在本实施例中,生成的两张加密替换表的较佳例子如表1所不。

【权利要求】
1. 一种电表加密方法,采用64位密钥对64位明文进行加密,以得到64位密文,其特征 在于,步骤为: 步骤1、定义至少两张加密替换表及一张加密置换表,生成64位密钥,其中;加密替换 表的位序号由0排列至15,为加密替换表中的每一位位序号分配0?15中的任意一个整 数,同一加密替换表中不同位序号分配的值不相同,不同加密替换表中相同位序号分配的 值不相同; 加密置换表的位序号由〇排列至63,为加密置换表中的每一位位序号分配0?63中的 任意一个整数,不同位序号分配的值不相同; 步骤2、利用64位密钥结合加密替换表对64位明文进行数据替换得到替换后的64位 数据,其步骤为: 步骤2. 1、将64位密钥及64位明文分成16个半字节,64位密钥及64位明文的半字节 序号均由〇排列至15; 步骤2. 2、自64位密钥半字节序号为0的半字节及64位明文半字节序号为0的半字节 始,利用加密替换表依次替换64位明文每个半字节的数据,其中,64位明文中半字节序号 为i的半字节数据替换方法为: 判断64位密钥中半字节序号为i的半字节数据中至少一位数据的值,不同的值对应不 同的加密替换表,找到当前数据的值所对应的加密替换表,将64位明文中半字节序号为i 的半字节数据的值作为当前加密替换表的位序号,用当前加密替换表中与该位序号对应的 数据替换64位明文中半字节序号为i的半字节数据; 步骤3、利用加密置换表对替换后的64位数据中每一位位序号所对应的数据分别进行 数据置换得到置换后的64位数据,对替换后的64位数据的位序号j所对应的数据进行置 换的步骤为: 将替换后的64位数据的位序号j作为加密置换表的位序号,在加密置换表中找到位序 号j所对应的数据的值,设该数据的值为k,则将替换后的64位数据中位序号j所对应的数 据分配至置换后的64位数据的位序号k ; 步骤4、得到64位密文。
2. 如权利要求1所述的一种电表加密方法,其特征在于:在所述步骤2. 1前并在所述 步骤1后,或者将所述64位密钥取补码,或者将所述64位密钥循环左移或循环右移至少一 位,或者先将所述64位密钥取补码后,再将所述64位密钥循环左移或循环右移至少一位。
3. 如权利要求1所述的一种电表加密方法,其特征在于:在所述步骤3后并在所述步 骤4前还有:步骤A、将步骤1得到的64位密钥循环左移或循环右移至少一位后,返回步骤 2,迭代执行步骤2至步骤A至少2次。
【文档编号】H04L9/06GK104065472SQ201410290537
【公开日】2014年9月24日 申请日期:2014年6月25日 优先权日:2014年6月25日
【发明者】周峋 申请人:上海协霖电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1