首页 / 专利库 / 物理 / 电能 / 一种基于TLS协议的电能表通信方法

一种基于TLS协议的电能表通信方法

阅读:0发布:2021-07-01

专利汇可以提供一种基于TLS协议的电能表通信方法专利检索,专利查询,专利分析的服务。并且本 发明 所述的一种基于TLS协议的 电能 表通信方法,在 电能表 的通信物理层和数据层之间添加TLS协议安全层,其特征在于所述的TLS协议选用0xC023安全套件,在TLS握手协商中开始运行ECC 算法 后,在计算公钥M、签名r和预主秘钥Q时,每隔一定时间退出ECC算法运算并保存断点和当前运算数据,等待电能表其它任务处理完成后,从断点进入ECC算法并继续运算,直到ECC算法处理完成后,退出运算并保存运算数据。本发明将目前技术已相当成熟的传输安全协议SSL/TLS应用到智能电表,解决了将TLS库移植到智能电表上的难点。作为独立的安全层,数据传输架构清晰,简化了智能电表的复杂度,具备很强的抗攻击性,提升了电表数据通信中的安全性。,下面是一种基于TLS协议的电能表通信方法专利的具体信息内容。

1.一种基于TLS协议的电能表通信方法,在电能表的通信物理层和数据层之间添加TLS协议安全层,其特征在于所述的TLS协议选用0xC023安全套件,在TLS握手协商中开始运行ECC算法后,在计算公钥M、签名r和预主秘钥Q时,每隔一定时间退出ECC算法运算并保存断点和当前运算数据,等待电能表其它任务处理完成后,从断点进入ECC算法并继续运算,直到ECC算法处理完成后,退出运算并保存运算数据。
2.根据权利要求1所述的一种基于TLS协议的电能表通信方法,其特征在于所述的公钥M的计算包括以下步骤:
步骤101:电能表端生成私钥K,将私钥K以二进制表示,即K’=(kd-1,...k2,k1)2;
步骤102:将二进制随机数K’从高位至低位依次与ECC曲线基点G相乘,直到计算至(kd-stepNum)2时,退出运算并保存断点和运算结果,记该次计算的K’位数为步进位数stepNum;
步骤103:等待电能表其它任务处理完成后,从退出运算时的断点进入运算,按照步骤二的运算规则计算步进位数stepNum的二进制随机数K’,运算完成后,退出运算并保存断点和运算结果;
步骤104:重复步骤103,直到公钥M计算完成,记进入运算的次数为callNum,并保存运算的次数和运算结果,运算的处理方法为:
3.根据权利要求1所述的一种基于TLS协议的电能表通信方法,其特征在于所述的预主秘钥Q的计算包括以下步骤:
步骤201:电能表端生成私钥K,将私钥K以二进制表示,即K’=(kd-1,...k2,k1)2;
步骤202:将二进制随机数K’从高位至低位依次与从抄表客户端接收的公钥P相乘,直到计算至(kd-stepNum)2时,退出运算并保存断点和运算结果,记该次计算的K’位数为步进位数stepNum;
步骤203:等待电能表其它任务处理完成后,从退出运算时的断点进入运算,按照步骤二的运算规则计算步进位数stepNum的二进制随机数K’,运算完成后,退出运算并保存断点和运算结果;
步骤204:重复步骤203,直到预主秘钥Q计算完成,记进入运算的次数为callNum,并保存运算的次数和运算结果,运算的处理方法为:
4.根据权利要求1所述的一种基于TLS协议的电能表通信方法,其特征在于所述的签名r的计算包括以下步骤:
步骤301:电能表端生成私钥K,将私钥K以二进制表示,即K’=(kd-1,...k2,k1)2;
步骤302:将二进制随机数K’从高位至低位依次与签名参数R相乘,直到计算至(kd-stepNum)2时,退出运算并保存断点和运算结果,记该次计算的K’位数为步进位数stepNum;
步骤303:等待电能表其它任务处理完成后,从退出运算时的断点进入运算,按照步骤二的运算规则计算步进位数stepNum的二进制随机数K’,运算完成后,退出运算并保存断点和运算结果;
步骤304:重复步骤303,直到签名r计算完成,记进入运算的次数为callNum,并保存运算的次数和运算结果,运算的处理方法为:
5.根据权利要求1所述的一种基于TLS协议的电能表通信方法,其特征在于每次进入运算处理的时间不超过1秒。
6.根据权利要求2,3或4所述的一种基于TLS协议的电能表通信方法,其特征在于步骤一中所述的私钥K由电能表中的随机数发生器CTR-DRBG base on AES 128获取,私钥K的获取包括以下步骤:
步骤401:电能表出厂前,保存一个32字节的随机数种子至存储芯片;
步骤402:电能表上电后,从存储芯片中读取随机数种子并更新至随机数发生器熵池,然后每隔一定时间更新随机数发生器熵池;
步骤403:当TLS握手协议中随机数获取函数被调用时,获取当前随机数发生器熵池中随机数种子作为私钥K,然后更新随机数发生器熵池。
7.根据权利要求6所述的一种基于TLS协议的电能表通信方法,其特征在于所述的步骤
402具体为:电能表上电后,从存储芯片中读取随机数种子并更新至随机数发生器熵池,然后每隔10分钟,随机数发生器读取电能表当前的MCU时钟数据和当前电量以获取新的随机数种子,将新的随机数种子替换至随机数发生器熵池内。
8.根据权利要求2、3或4所述的一种基于TLS协议的电能表通信方法,其特征在于步骤二中在随机数K的每一位计算前均需要先判断电能表是否掉电,若掉电,立即退出当前运算并保存电能表的电量数据。
9.根据权利要求2、3或4所述的一种基于TLS协议的电能表通信方法,其特征在于所述的私钥K还可以用NAF(K)表示,即

说明书全文

一种基于TLS协议的电能表通信方法

技术领域

[0001] 本发明涉及电设备技术领域,尤其是一种基于TLS协议的电能表通信方法。

背景技术

[0002] 作为智能电网的一部分,智能电表的核心特征,是在一个基本的计量设备基础上引入了 信息技术,对用户的电量消费信息进行收集、加工处理和远程传输,这些功能使计量系统及 消费市场交易更迅速、更便捷。但同时,智能电能表这些基本功能的实现,是需要以其数据 存储与传输的安全为基础的,不安全的通信环境也给能源供应安全带来了许多负面隐患。因 此,对智能电表信息安全进行有效的防护具有十分重要的意义,现在很多市场就智能电表的 数据保护和数据安全提出更高的要求。

发明内容

[0003] 本发明的目的是提供一种基于TLS协议的电能表通信方法,针对电能表通信安全需求, 建立基于物理层、安全层、数据层的电能表数据通信体系。
[0004] 本发明的技术方案是:
[0005] 一种基于TLS协议的电能表通信方法,在电能表的通信物理层和数据层之间添加TLS协 议安全层,其特征在于所述的TLS协议选用0xC023安全套件,在TLS握手协商中开始运行 ECC算法后,在计算公钥M、签名r和预主秘钥Q时,每隔一定时间退出ECC算法运算并保 存断点和当前运算数据,等待电能表其它任务处理完成后,从断点进入ECC算法并继续运算, 直到ECC算法处理完成后,退出运算并保存运算数据。
[0006] 上述的公钥M的计算包括以下步骤:
[0007] 步骤101:电能表端生成私钥K,将私钥K以二进制表示,即K’=(kd-1,...k2,k1)2;
[0008] 步骤102:将二进制随机数K’从高位至低位依次与ECC曲线基点G相乘,直到计算至 (kd-stepNum)2时,退出运算并保存断点和运算结果,记该次计算的K’位数为步进位数 stepNum;
[0009] 步骤103:等待电能表其它任务处理完成后,从退出运算时的断点进入运算,按照步骤 二的运算规则计算步进位数stepNum的二进制随机数K’,运算完成后,退出运算并保存断 点和运算结果;
[0010] 步骤104:重复步骤103,直到公钥M计算完成,记进入运算的次数为callNum,并保 存运算的次数和运算结果,运算的处理方法为:
[0011]
[0012] 上述的预主秘钥Q的计算包括以下步骤:
[0013] 步骤201:电能表端生成私钥K,将私钥K以二进制表示,即K’=(kd-1,...k2,k1)2;
[0014] 步骤202:将二进制随机数K’从高位至低位依次与从抄表客户端接收的公钥P相乘, 直到计算至(kd-stepNum)2时,退出运算并保存断点和运算结果,记该次计算的K’位数为 步进位数stepNum;
[0015] 步骤203:等待电能表其它任务处理完成后,从退出运算时的断点进入运算,按照步骤 二的运算规则计算步进位数stepNum的二进制随机数K’,运算完成后,退出运算并保存断 点和运算结果;
[0016] 步骤204:重复步骤203,直到预主秘钥Q计算完成,记进入运算的次数为callNum, 并保存运算的次数和运算结果,运算的处理方法为:
[0017]
[0018] 上述的签名r的计算包括以下步骤:
[0019] 步骤301:电能表端生成私钥K,将私钥K以二进制表示,即K’=(kd-1,...k2,k1)2;
[0020] 步骤302:将二进制随机数K’从高位至低位依次与签名参数R相乘,直到计算至 (kd-stepNum)2时,退出运算并保存断点和运算结果,记该次计算的K’位数为步进位数 stepNum;
[0021] 步骤303:等待电能表其它任务处理完成后,从退出运算时的断点进入运算,按照步骤 二的运算规则计算步进位数stepNum的二进制随机数K’,运算完成后,退出运算并保存断 点和运算结果;
[0022] 步骤304:重复步骤303,直到签名r计算完成,记进入运算的次数为callNum,并保存 运算的次数和运算结果,运算的处理方法为:
[0023]
[0024] 上述计算中每次进入运算处理的时间不超过1秒。
[0025] 上述的私钥K由电能表中的随机数发生器CTR-DRBG base on AES 128获取,私钥K的获 取包括以下步骤:
[0026] 步骤401:电能表出厂前,保存一个32字节的随机数种子至存储芯片;
[0027] 步骤402:电能表上电后,从存储芯片中读取随机数种子并更新至随机数发生器熵池, 然后每隔一定时间更新随机数发生器熵池;
[0028] 步骤403:当TLS握手协议中随机数获取函数被调用时,获取当前随机数发生器熵池中 随机数种子作为私钥K,然后更新随机数发生器熵池。
[0029] 上述的步骤402具体为:电能表上电后,从存储芯片中读取随机数种子并更新至随机数 发生器熵池,然后每隔10分钟,随机数发生器读取电能表当前的MCU时钟数据和当前电量 以获取新的随机数种子,将新的随机数种子替换至随机数发生器熵池内。
[0030] 上述的步骤二中在随机数K的每一位计算前均需要先判断电能表是否掉电,若掉电,立 即退出当前运算并保存电能表的电量数据。
[0031] 上述的私钥K还可以用NAF(K)表示,即
[0032] 本发明的有益效果:
[0033] 本发明将目前技术已相当成熟的传输安全协议SSL/TLS应用到智能电表,解决了将TLS 库移植到智能电表上的难点。作为独立的安全层,数据传输架构清晰,简化了智能电表的复 杂度,具备很强的抗攻击性,提升了电表数据通信中的安全性。附图说明
[0034] 图1是本发明ECC算法处理流程图
[0035] 图2是本发明中随机数发生器工作流程图。

具体实施方式

[0036] 下面通过实施例,结合附图,对本发明的技术方案作进一步具体的说明。
[0037] 如图2所示,采用CTR-DRBG base on AES 128作为随机数发生器,为了保证随机数的随
[0038] 机性,获取不受人为控制的,基于客观情况的MCU时钟数据和有功、无功电量数据作
[0039] 为随机数种子来源。随机数发生器在智能电表中的操作包括:
[0040] (1)电能表出厂前,进行随机数种子初始化,确保随机性,并保存EEPROM,每次电能 表上电,读取保存的随机数种子,初始化随机数发生器熵池;
[0041] (2)每10分钟获取新的种子并存储,读取当前的MCU时钟以及有功以及无功电量数 据,同时进行随机数发生器熵池更新;
[0042] (3)TLS握手中随机数获取函数被调用时,再次获取新的种子,更新随机数发生器熵 池,并获取32字节的随机数。
[0043] TLS握手中密钥协商算法ECDH以及签名算法ECDSA均涉及到ECC算法,该算法在40MHZ 的电能表内运行时间为2s左右,考虑到电能表数据通信中的1s数据推送要求,必须要在运 算过程中退出运算,并保存当前运算数据,在其他任务完成后再次进入退出时的断点继续运 算。
[0044] ECC算法主要操作M=KP,其中K为32字节的大数据,计算的主要逻辑为将K按二进 制或NAF表示(式(1)),按位与P相乘,即k1P+k2P*2+…….。因此,运算的退出机制,表 现为每次处理系数K固定的的stepNum位便退出运算(式(2)),并保存本次运算数据,等 待下次再次进入函数,直到K的位处理完,共处理callNum次,这里算法库规定的域内元素 最大字长Maxword决定了处理次数,这里Maxword=9,因此stepNum和callNum满足 stepNum*callNum<=300。
[0045] 主要处理流程如下附图1所示,图中,Qi为每次退出函数时的计算的Kp 的中间值,binaryNum为退出时处理到k的位置。第一次进入算法时,Qi=0, binaryNum=0。
[0046]
[0047]
[0048] 另外,由于智能电表工作的特殊性,在掉电的情况下,数据能够及时保存。因此,在 K的每一个位操作中判断掉电标志是否置位,如果置位,立即退出当前运算,使智能电表有 足够的时间与电源能量去保存电量数据。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈