发明名称 一种智能电表嵌入式工程文件的加密和解密方法
摘要 本发明属于电气和自动化技术领域,尤其涉及到软件工程文件的加密方法,具体涉及一种智能电表嵌入式工程文件的加密和解密方法,包括对智能电表嵌入式工程文件的预处理,通过转化嵌入式工程文件为数字符号,再利用椭圆曲线加密预处理的基础上对智能电表软件工程文件进行加密和解密的操作,从而保证了送检单位智能电表嵌入式工程文件的保密性,提高智能电表送检公司的知识产权安全性,降低了互联网带来的智能电表嵌入式软件传输及存储风险,本发明减小了密钥的数据长度,从而降低了加密的时间消耗和资源消耗,减小了加密计算量,提高了智能电表软件工程文件的加密速度。
申请公布号 CN105391551A 申请公布日期 2016.03.09
申请号 CN201510833048.5 申请日期 2015.11.25
申请人 广西电网有限责任公司电力科学研究院 发明人 蒋雯倩;李刚;唐利涛;龙东;李伟坚;杨舟;曾博;潘俊涛;梁捷
分类号 H04L9/30(2006.01)I;H04L29/06(2006.01)I 主分类号 H04L9/30(2006.01)I
代理机构 成都九鼎天元知识产权代理有限公司 51214 代理人 陈科恒
主权项 一种智能电表嵌入式工程文件的加密方法,其特征在于:所述加密方法包括以下步骤:步骤1:将嵌入式工程文件分解为每个子文件;步骤2:将嵌入式工程文件的每个子文件中的文本字符按照次序,逐个转换为ASCII码值,得到嵌入式工程文件每个子文件的ASCII形式T<sub>i</sub>,i是子文件T<sub>i</sub>的顺序编号,其中,1≤i≤s,s是嵌入式工程文件的子文件数目,T<sub>i</sub>为一个ASCII值的序列,T<sub>i</sub>={a<sub>1</sub>,a<sub>2</sub>,a<sub>3</sub>,...,a<sub>j</sub>,...,a<sub>n</sub>},其中a<sub>j</sub>为子文件中字符的ASCII值,n为文件T<sub>i</sub>中ASCII值的总数;步骤3:对子文件ASCII形式T<sub>i</sub>中的一系列ASCII值按顺序进行分组,根据计算的分组长度L,T<sub>i</sub>分组后变为:T′<sub>i</sub>={{a<sub>1</sub>,a<sub>2</sub>,a<sub>3</sub>,...,a<sub>L</sub>},{a<sub>L+1</sub>,a<sub>L+2</sub>,a<sub>L+3</sub>,...,a<sub>2L</sub>},...,{a<sub>mL+1</sub>,a<sub>2</sub>,a<sub>3</sub>,...a<sub>n</sub>}},其中<img file="FDA0000857838880000011.GIF" wi="206" he="143" />步骤4:对步骤3中得到的T′<sub>i</sub>={t<sub>1</sub>,t<sub>2</sub>,...,t<sub>m</sub>}中的每个子序列在65536进制中重构,其中t<sub>q</sub>为T′<sub>i</sub>中第q个子序列,t<sub>q</sub>={a<sub>(q‑1)L+1</sub>,a<sub>(q‑1)L+2</sub>,...,a<sub>qL</sub>},1≤q≤m+1,即:N<sub>q</sub>=65536<sup>L‑1</sup>a<sub>(q‑1)L+1</sub>+65536<sup>L‑2</sup>a<sub>(q‑1)L+2</sub>+...+65536a<sub>qL‑1</sub>+a<sub>qL</sub>    (1);若T′<sub>i</sub>中最后一个子序列中的元素个数小于分组长度L,则在序列末尾补0,若子序列长度为L,代入公式(1)中计算,得到T<sub>i</sub>的重构的数字序列R<sub>i</sub>,R<sub>i</sub>={N<sub>1</sub>,N<sub>2</sub>,...,N<sub>m</sub>},如果m是奇数,则在序列R<sub>i</sub>末尾补上一个32,即:<img file="FDA0000857838880000012.GIF" wi="1486" he="166" />步骤5:对ASCII子文件利用椭圆曲线加密算法进行加密,加密过程如下:步骤5.1:从1到n‑1之间随机选取整数k;步骤5.2:计算<img file="FDA0000857838880000013.GIF" wi="166" he="61" />其中G是选取椭圆曲线的生成元点,其中G={60204628237568865675821348058752611191669876636884684818,174050332293622031404857552280219410364023488927386650641} 其中<img file="FDA0000857838880000021.GIF" wi="51" he="55" />表示椭圆曲线上的乘法;步骤5.3:计算<img file="FDA0000857838880000022.GIF" wi="295" he="70" />其中<img file="FDA0000857838880000023.GIF" wi="54" he="55" />表示椭圆曲线上的加法,pb表示解密加密文件的公钥,其中:pb={2803000786541617331377384897435095499124748881890727495642,426971802110594428720192929816825304095838 3009157463900739} <img file="FDA0000857838880000024.GIF" wi="302" he="71" />其中nB是解密文件的私钥,nB=28186466892849679686038856807396267537577176687436853369;pm由序列R<sub>i</sub>中的元素成对组成,作为椭圆曲线加密方法的输入明文,即:pm={{N<sub>1</sub>,N<sub>2</sub>},{N<sub>3</sub>,N<sub>4</sub>},…}         (3);计算:<img file="FDA0000857838880000025.GIF" wi="1853" he="87" />步骤5.4:计算最终的加密文件pT<sub>i</sub>,pT<sub>i</sub>表示嵌入式工程文件T<sub>i</sub>的最后的密文,则满足:<img file="FDA0000857838880000026.GIF" wi="1317" he="87" />步骤6:将嵌入式工程文件子文件的文件名命名为“送检单位英文名称+智能电表型号+软件版本号+检验员代码+文件名”的形式,重复步骤2至步骤5的加密算法将文件名加密为数字密文。步骤7:对所有加密之后的嵌入式工程文件子文件按照初始文件的存储次序存储。
地址 530023 广西壮族自治区南宁市民主路6-2号