一种电表数据的安全处理装置及系统的制作方法

文档序号:5876286阅读:99来源:国知局
专利名称:一种电表数据的安全处理装置及系统的制作方法
技术领域
本发明是关于智能电表系统,特别是关于具有ESAM芯片的智能电表系统,具体的讲是一种一种电表数据的安全处理装置及系统。
背景技术
ESAM(嵌入式安全芯片)在智能电表中实现数据存储和安全认证等功能,为智能电表提供用户使用电力资源的数据信息,并为用户卡提供回写的数据信息,同时也为MIS 系统提供收费和统计数据。由于ESAM嵌入式安全芯片在智能表具中担负着智能表安全控管的作用,控制智能表具的预付费充值安全、参数更新安全,因此,ESAM嵌入式安全芯片的安全是整体CPU卡表系统安全体系中重要的环节。目前在智能表具种采用ESAM嵌入式安全芯片,具有较高的安全性。但是,目前在ESAM中采用国际通用算法DES和3DES算法,存在一定的安全隐患。DES算法采用8字节密钥,由于密钥含有8个奇偶校验位,它减少了可用的密钥空间,因此密钥空间只有56位。随着现代计算机处理能力的稳定增长,这样大小的密钥空间被认为是处于安全加密算法的下限。如果有明文和密文对可用,而密钥空间这样大小,就很容易对所有可能的密钥进行试验,目前对DES的破译,最有效的是穷举功击。3DES是DES向 AES过渡的加密算法。1999年,美国标准与技术研究院(NIST)将3DES指定为过渡的加密标准,3DES是DES的一个更安全的变形。它以DES为基本模块,通过组合分组方法设计出分组加密算法,3DES采用192位密钥,该密钥被分成三个64位子密钥并用于加密过程。加密过程与DES完全相同,只是重复三次。由于DES和3DES属于国际通用算法,因此算法是公开的,攻击者可以在任何地方都可以得到DES和3DES算法的源代码,可以针对DES和3DES 进行算法攻击,而且DES和3DES算法推出的时间比较长,因此,在ESAM嵌入式安全芯片继续使用DES或3DES算法显然具有安全隐患。如果由于算法攻击导致预付费充值流程、参数更新流程被篡改将给整个CPU卡表系统特别是给资源方造成巨大的经济损失。SMl算法是国家密码管理局监制的一种商用密码分组标准对称算法,算法分组长度为128比特,密钥长度为128比特,具有较大的密码空间,但SMl算法是使用密钥将16字节明文数据块加密成密文数据块,而目前采用ESAM模块的智能电表中的认证数据等均为8 字节,因此,采用SMl算法不能对具有ESAM模块的智能电表系统中的认证数据及传送的业务数据进行加密。

发明内容
本发明实施例提供了一种电表数据的安全处理装置,该装置包括身份认证装置、 数据加密装置、数据解密装置及MAC检验装置;其中,身份认证装置包括离散因子转换单元,用于将从外部获取的8字节离散因子转换成16字节离散因子输入数据;子密钥生成单元,用于根据预存的主密钥对16字节离散因子输入数据进行SMl算法加密,生成16字节子密钥;认证因子转换单元,用于将从外部智能卡获取的8字节认证因子转换成16字节认证因子输入数据;表端认证数据生成单元,用于使用子密钥对认证因子输入数据进行SMl算法加密,生成8字节表端认证数据;加密指令发送单元,用于发送包含认证因子的加密指令给外部智能卡;卡端认证数据接收单元,用于接收外部智能卡发来的根据认证因子和SMl 算法加密生成的卡端认证数据;认证结果生成单元,用于将表端认证数据和卡端认证数据进行一致性比较,生成认证结果;数据加密装置包括待加密数据生成单元,用于将表示命令数据域的明文数据长度的长度字节添加到明文数据前生成待加密数据;待加密数据转换单元,用于将待加密数据按顺序划分为多个16字节子数据块Dl、D2…Dn ;加密结果生成单元,用于根据预存的SMl密钥采用SMl算法分别对16字节子数据块Dl、D2…Dn进行加密,生成加密结果;数据解密装置包括数据转换单元,用于将接收到的加密的命令数据中的命令数据域数据转换为16字节数据块;明文数据生成单元,用于根据预存的SMl密钥采用SMl算法将所述16字节数据块进行解密,生成明文数据;MAC值计算装置包括初始值生成单元,用于将获取的8字节随机数转换为16字节初始值;数据块生成单元,用于将报文中的5字节命令头CLA、INS、PI、P2、LC和报文命令数据域的数据连接形成报文数据块;报文数据块转换单元,用于将报文数据块转换为多个16字节报文子数据块Bi,B2…&ι ;MAC值计算单元,用于根据预存的SMl密钥、所述的初始值、16字节报文子数据块采用SMl算法进行计算,进而生成MAC值。本发明公开了一种电表数据的安全处理系统,该系统包括电表数据安全处理装置,该电表数据安全处理装置包括身份认证装置、数据加密装置、数据解密装置及MAC检验装置;其中,身份认证装置包括离散因子转换单元,用于将从外部获取的8字节离散因子转换成16字节离散因子输入数据;子密钥生成单元,用于根据预存的主密钥对16字节离散因子输入数据进行SMl算法加密,生成16字节子密钥;认证因子转换单元,用于将从外部智能卡获取的8字节认证因子转换成16字节认证因子输入数据;表端认证数据生成单元, 用于使用子密钥对认证因子输入数据进行SMl算法加密,生成8字节表端认证数据;加密指令发送单元,用于发送包含认证因子的加密指令给外部智能卡;卡端认证数据接收单元,用于接收外部智能卡发来的根据认证因子和SMl算法加密生成的卡端认证数据;认证结果生成单元,用于将表端认证数据和卡端认证数据进行一致性比较,生成认证结果;数据加密装置包括待加密数据生成单元,用于将表示命令数据域的明文数据长度的长度字节添加到明文数据前生成待加密数据;待加密数据转换单元,用于将待加密数据按顺序划分为多个 16字节子数据块Dl、D2…Dn ;加密结果生成单元,用于根据预存的SMl密钥采用SMl算法分别对16字节子数据块Dl、D2…Dn进行加密,生成加密结果;数据解密装置包括数据转换单元,用于将接收到的加密的命令数据中的命令数据域数据转换为16字节数据块;明文数据生成单元,用于根据预存的SMl密钥采用SMl算法将所述16字节数据块进行解密,生成明文数据;MAC值计算装置包括初始值生成单元,用于将获取的8字节随机数转换为16 字节初始值;数据块生成单元,用于将报文中的5字节命令头CLA、INS、P1、P2、LC和报文命令数据域的数据连接形成报文数据块;报文数据块转换单元,用于将报文数据块转换为多个16字节报文子数据块Β1,Β2···&ι ;MAC值计算单元,用于根据预存的SMl密钥、所述的初始值、16字节报文子数据块采用SMl算法进行计算,进而生成MAC值。为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例, 并配合所附图式,作详细说明如下。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本发明一种电表数据的安全处理装置的结构框图2为身份认证装置的结构示意图3为数据加密装置的结构示意图4为数据解密装置的结构示意图5为MAC计算装置的结构示意图6为本发明实施例密钥分散方法流程图7为本发明实施例认证数据计算方法流程图8为本发明实施例智能电表对CPU卡进行身份认证的信令图
图9为本发明实施例数据加密计算方法流程图10为本发明实施例中进行加密计算的方法示意图11为本发明实施例数据解密计算的方法示意图12为本发明实施例MAC计算的方法示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,为本发明电表数据的安全处理装置结构框图,把包括身份认证装置101、 数据加密装置102、数据解密装置103及MAC检验装置104。通过本发明的电表数据的安全处理装置将电网系统中的8字节认证数据转换为符合SMl算法要求的16字节的输入数据, 然后对该输入数据进行加密,生成加密结果,并根据认证数据的指令对生成的加密结果进行处理,生成数据处理结果,同时还用于将电网系统中传输的命令数据进行SMl算法的加密、解密。如图2所示,身份认证装置101包括离散因子转换单元1011,用于将从外部获取的8字节离散因子转换成16字节离散因子输入数据;子密钥生成单元1012,用于根据预存的主密钥对16字节离散因子输入数据进行 SMl算法加密,生成16字节子密钥;认证因子转换单元1013,用于将从外部智能卡获取的8字节认证因子转换成16字节认证因子输入数据;表端认证数据生成单元1014,用于使用子密钥对认证因子输入数据进行SMl算法加密,生成8字节表端认证数据;加密指令发送单元1015,用于发送包含认证因子的加密指令给外部智能卡;
卡端认证数据接收单元1016,用于接收外部智能卡发来的根据认证因子和SMl算法加密生成的卡端认证数据;认证结果生成单元1017,用于将表端认证数据和卡端认证数据进行一致性比较, 生成认证结果;如图3所示,数据加密装置102包括待加密数据生成单元1021,用于将表示命令数据域的明文数据长度的长度字节添加到明文数据前生成待加密数据;待加密数据转换单元1022,用于将待加密数据按顺序划分为多个16字节子数据块 Dl、D2."Dn ;加密结果生成单元1023,用于根据预存的SMl密钥采用SMl算法分别对所述的16 字节子数据块Dl、D2…Dn进行加密,生成加密结果;如图4所示,数据解密装置103包括数据转换单元1031,用于将接收到的加密的命令数据中的命令数据域数据转换为 16字节数据块;明文数据生成单元1032,用于根据预存的SMl密钥采用SMl算法将16字节数据块进行解密,生成明文数据;如图5所示,MAC值计算装置104包括初始值生成单元1041,用于将获取的8字节随机数转换为16字节初始值,将8字节随机数加8字节随机数求反值作为初始变量;数据块生成单元1042,用于将报文中的5字节命令头CLA、INS、PI、P2、LC和报文命令数据域的数据连接形成报文数据块,报文数据域的数据包括明文或密文;报文数据块转换单元1043,用于将报文数据块转换为多个16字节报文子数据块 Bi, Β2..·Βη ;MAC值计算单元1044,用于根据预存的SMl密钥、初始值、16字节报文子数据块采用SMl算法进行计算,进而生成4字节MAC值。智能表具的安全需求主要包括,数据可靠性、完整性校验,数据访问权控制等方面,在智能表具的安全管理中,涉及密钥分散、身份认证、权限认证、加密、解密及安全报文 MAC计算,在本发明中均采用SMl算法保证数据安全。如图6所示为密钥分散的具体步骤,步骤S201,接收8字节分散因子;步骤S202, 对接收到的分散因子求反;步骤S203,将接收的分散因子加上分散因子求反值作为输入数据;步骤S204,用主密钥KEY对输入数据进行SMl算法加密生成子密钥,加密结果为16字节作为子密钥。电网系统中,通过认证数据对卡进行内部验证或外部认证,认证数据通过认证因子产生。图7所示为认证数据的计算步骤。认证因子为8字节随机数。对于外部认证,认证因子由卡发送给接口设备;对于内部认证,认证因子由接口设备发送给卡。步骤S301,对认证因子求反;步骤S302,将认证因子加上认证因子求反值作为输入数据;步骤S303,采用认证密钥对输入数据进行SMl算法加密生成加密结果,加密结果为 16字节;步骤S304,将获得的加密结果左右8字节进行‘异或’获得8字节认证数据。本发明的身份认证装置对接入电表设备进行身份认证时,根据密钥分散步骤生成子密钥,采用生成的子密钥对接入设备进行身份认证。如图8所示,为本发明实施例对插入智能电表的CPU卡进行身份认证的信令图。安全报文传送的目的是保证数据的可靠性、完整性和对发送方的认证。数据完整性和对发送方的认证通过使用MAC来实现,MAC是命令数据域中最后一个数据元,长度规定为4个字节。数据的可靠性通过对数据域的加密来得到保证,数据域的数据是否加密,应被命令发送方和当前卡中被选择的应用所了解。安全报文传送的命令格式符合ISO 7816-4的规定。当CLA字节的第二个半字节等于十六进制数字‘4’时,表明对发送方命令数据要采用安全报文传送。情况一这种情况时,没有数据送到卡中,也没有数据从卡中返回。没有安全报文传送要求的命令格式如下
权利要求
1.一种电表数据的安全处理装置,其特征在于,所述的装置包括身份认证装置、数据加密装置、数据解密装置及MAC检验装置;其中,所述的身份认证装置包括离散因子转换单元,用于将从外部获取的8字节离散因子转换成16字节离散因子输入数据;子密钥生成单元,用于根据预存的主密钥对所述的16字节离散因子输入数据进行SMl 算法加密,生成16字节子密钥;认证因子转换单元,用于将从外部智能卡获取的8字节认证因子转换成16字节认证因子输入数据;表端认证数据生成单元,用于使用所述的子密钥对所述的认证因子输入数据进行SMl 算法加密,生成8字节表端认证数据;加密指令发送单元,用于发送包含认证因子的加密指令给外部智能卡; 卡端认证数据接收单元,用于接收外部智能卡发来的根据所述的认证因子和SMl算法加密生成的卡端认证数据;认证结果生成单元,用于将所述的表端认证数据和卡端认证数据进行一致性比较,生成认证结果;所述的数据加密装置包括待加密数据生成单元,用于将表示命令数据域的明文数据长度的长度字节添加到所述的明文数据前生成待加密数据;待加密数据转换单元,用于将所述的待加密数据按顺序划分为多个16字节子数据块 Dl、D2."Dn ;加密结果生成单元,用于根据预存的SMl密钥采用SMl算法分别对所述的16字节子数据块D1、D2…Dn进行加密,生成加密结果; 所述的数据解密装置包括数据转换单元,用于将接收到的加密的命令数据中的命令数据域数据转换为16字节数据块;明文数据生成单元,用于根据预存的SMl密钥采用SMl算法将所述16字节数据块进行解密,生成明文数据;所述的MAC值计算装置包括初始值生成单元,用于将获取的8字节随机数转换为16字节初始值; 数据块生成单元,用于将报文中的5字节命令头CLA、INS、PI、P2、LC和报文命令数据域的数据连接形成报文数据块;报文数据块转换单元,用于将所述的报文数据块转换为多个16字节报文子数据块Bi, Β2..·Βη ;MAC值计算单元,用于根据预存的SMl密钥、所述的初始值、16字节报文子数据块采用 SMl算法进行计算,进而生成4字节MAC值。
2.如权利要求1所述的安全处理装置,其特征在于,所述的离散因子转换单元包括 离散因子求反模块,用于对所述的从外部获取的8字节离散因子求反生成8字节离散因子求反值;离散因子输入数据生成模块,用将所述的8字节离散因子加上所述的离散因子求反值生成16字节离散因子输入数据。
3.如权利要求1所述的安全处理装置,其特征在于,所述的认证因子转换单元包括 认证因子求反模块,用于对所述的从外部获取的8字节认证因子求反生成8字节认证因子求反值;认证因子输入数据生成模块,用将所述的8字节认证因子加上所述的认证因子求反值生成16字节认证因子输入数据。
4.如权利要求1所述的安全处理装置,其特征在于,所述的表端认证数据生成单元包括SMl算法加密模块,用于使用所述的子密钥对所述认证因子进行SMl算法加密,生成16 位字节的认证数据;认证数据转换模块,用于将所述的16字节认证数据的左右8字节进行异或运算,生成 8字节表端认证数据。
5.如权利要求1所述的安全处理装置,其特征在于,所述的加密结果生成单元包括 判断模块,用于判断子数据块Dn是否为16字节,判断是,采用SMl算法按顺序对所述的子数据块D1、D2…Dn进行加密,根据预存的SMl密钥采用SMl算法按顺序生成加密后的 16字节数据块01、02、On ;判断否,则在所述的子数据块Dn后添加16进制数80,若子数据块Dn仍不足16字节, 则在其后加入16进制数00,直至子数据块Dn长度为16字节,根据预存的SMl密钥采用SMl 算法按顺序对16字节子数据块D1、D2…Dn进行加密,生成加密后的16字节数据块01、02、 On ;生成模块,用于将所述的16字节数据块链接在一起生成加密结果。
6.如权利要求1所述的安全处理装置,其特征在于,所述的报文数据块转换单元包括 报文划分模块,用于将所述的报文数据块以16字节为单位按顺序划分为多个16字节报文子数据块Bi,B2···Bn ;字节判断模块,用于判断所述的报文子数据块是否满足16字节,判断是,在16字节报文数据块 Bn 后添加 16 进制数 80 00 00 00 00 00 00 00 00 0000 00 00 00 00 ;判断否,则在数据块后加上16进制数80,若子数据块仍不足16字节,则在其后加入16进制数00,直至子数据块长度为16字节。
7.如权利要求1所述的安全处理装置,其特征在于,所述的MAC值计算单元包括 加密模块,用于根据预存的SMl密钥、所述的初始值、16字节报文子数据块采用SMl算法进行计算,生成16字节计算结果;MAC值生成模块,用于将所述的16字节计算结果按顺序进行4字节分块异或运算生成 4字节MAC值。
8.一种电表数据的安全处理系统,其特征在于,所述的系统包括电表数据安全处理装置,所述的电表数据处理装置包括身份认证装置、数据加密装置、数据解密装置及MAC检验装置;其中,所述的身份认证装置包括离散因子转换单元,用于将从外部获取的8字节离散因子转换成16字节离散因子输入数据;子密钥生成单元,用于根据预存的主密钥对所述的16字节离散因子输入数据进行SMl 算法加密,生成16字节子密钥;认证因子转换单元,用于将从外部智能卡获取的8字节认证因子转换成16字节认证因子输入数据;表端认证数据生成单元,用于使用所述的子密钥对所述的认证因子输入数据进行SMl 算法加密,生成8字节表端认证数据;加密指令发送单元,用于发送包含认证因子的加密指令给外部智能卡; 卡端认证数据接收单元,用于接收外部智能卡发来的根据所述的认证因子和SMl算法加密生成的卡端认证数据;认证结果生成单元,用于将所述的表端认证数据和卡端认证数据进行一致性比较,生成认证结果;所述的数据加密装置包括待加密数据生成单元,用于将表示命令数据域的明文数据长度的长度字节添加到所述的明文数据前生成待加密数据;待加密数据转换单元,用于将所述的待加密数据按顺序划分为多个16字节子数据块 Dl、D2."Dn ;加密结果生成单元,用于根据预存的SMl密钥采用SMl算法分别对所述的16字节子数据块Dl、D2…Dn进行加密,生成加密结果; 所述的数据解密装置包括数据转换单元,用于将接收到的加密的命令数据中的命令数据域数据转换为16字节数据块;明文数据生成单元,用于根据预存的SMl密钥采用SMl算法将所述16字节数据块进行解密,生成明文数据;所述的MAC值计算装置包括初始值生成单元,用于将获取的8字节随机数转换为16字节初始值; 数据块生成单元,用于将报文中的5字节命令头CLA、INS、PI、P2、LC和报文命令数据域的数据连接形成报文数据块;报文数据块转换单元,用于将所述的报文数据块转换为多个16字节报文子数据块Bi, Β2..·Βη ;MAC值计算单元,用于根据预存的SMl密钥、所述的初始值、16字节报文子数据块采用 SMl算法进行计算,进而生成MAC值。
全文摘要
本发明公开了一种电表数据的安全处理装置及系统,该装置包括身份认证装置、数据加密装置、数据解密装置及MAC检验装置;对接入电表的电卡或电网设备进行安全认证及传输的命令数据进行处理,对安全认证数据求反,将安全认证数据加求反值生成16字节安全认证输入数据块;将指令数据划分为以16字节为单位的子数据块;采用SM1算法对安全认证输入数据块和各子数据块进行加密,生成4字节数据处理结果。
文档编号G01R22/10GK102377566SQ201010250219
公开日2012年3月14日 申请日期2010年8月11日 优先权日2010年8月11日
发明者何中林, 常波 申请人:北京融通高科科技发展有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1