一种提高嵌入式加密芯片通讯传输安全性的方法
【专利摘要】本发明公开了一种提高嵌入式加密芯片通讯传输安全性的方法。所述方法包括:加密芯片和主控制器进行会话密钥协商;加密芯片使用会话密钥加密内部生成的随机数通讯密钥列表并将其上传给主控制器;主控制器使用会话密钥解密随机数通讯密钥列表密文得到列表副本;主控制器和加密芯片使用从列表中随机选取的通讯密钥加密下发的操作命令数据和应答数据,并通过通讯密钥标识符在随机数通讯密钥列表中提取密钥解密数据。本发明实现了一种提高嵌入式加密芯片通讯传输安全性的方法,既提高了嵌入式加密芯片和主控制器之间通讯密钥的随机性和通讯传输的安全性,又避免了每次通讯都需要进行通讯密钥协商从而影响通讯传输效率的问题。
【专利说明】一种提高嵌入式加密芯片通讯传输安全性的方法
【技术领域】
[0001]本发明涉及通讯数据传输领域,特别涉及一种提高嵌入式加密芯片通讯传输安全性的方法。
【背景技术】
[0002]通讯数据传输的安全性历来是加密应用首先需要考虑的问题,在安全性要求较高的加密应用中,为防止监听通讯线路数据,甚至需要频繁的密钥协商以更新通讯密钥。
[0003]目前通用的密钥协商算法,如EO)H(Elliptic Curves Diffie-Hellman)等(EO)H是基于 ECC(Elliptic Curve Cryptosystems,捕圆曲线密码体制的 DH( Diffie-Hellman)密钥交换算法,交换双方可以在不共享任何秘密的情况下协商出一个密钥)计算复杂,尤其在嵌入式加密芯片应用中,因主控制器CPU运算能力和RAM等资源有限,密钥协商耗时较长,如果频繁的进行密钥协商,消耗了较多的主控制器资源,不能满足一些实时性较高的应用场合。
【发明内容】
[0004]为提高嵌入式加密芯片和主控制器之间通讯密钥的随机性和通讯传输的安全性,同时避免每次通讯都需要进行通讯密钥协商从而影响通讯传输效率的问题,本发明提供了一种提高嵌入式加密芯片通讯传输安全性的方法。所述方法具体步骤包括:
加密芯片和主控制器建立连接;
所述主控制器向所述加密芯片下发会话密钥协商命令;
所述加密芯片接收所述主控制器下发的所述会话密钥协商命令,执行所述会话密钥协商命令;
所述加密芯片向所述主控制器返回会话密钥协商响应数据;
所述主控制器根据所述会话密钥协商命令及所述会话密钥协商响应数据,计算得到会话密钥;
所述加密芯片根据所述会话密钥协商命令及所述会话密钥协商响应数据,计算得到所述会话密钥;
所述加密芯片内部通过随机数发生器生成随机数通讯密钥列表;
其中,所述随机数通讯密钥列表是多个通讯密钥标识符和标识符所对应通讯密钥的组
口 ο
[0005]所述加密芯片使用所述会话密钥,加密所述随机数通讯密钥列表,得到随机数通讯密钥列表密文;
所述主控制器向所述加密芯片下发获取通讯密钥列表命令;
所述加密芯片接收所述主控制器下发的获取通讯密钥列表命令,向所述主控制器返回所述随机数通讯密钥列表密文;
所述主控制器使用所述会话密钥,解密所述随机数通讯密钥列表密文,得到随机数通讯密钥列表明文;
所述主控制器从所述随机数通讯密钥列表中随机选择第一通讯密钥,使用第一通讯密钥加密下发的操作命令和数据;
所述主控制器将第一通讯密钥标识符及所述第一通讯密钥加密的操作命令和数据下发给所述加密芯片;
所述加密芯片接收下发的所述第一通讯密钥标识符及所述第一通讯密钥加密的操作命令和数据;所述加密芯片根据所述第一通讯密钥标识符,在所述随机数通讯密钥列表中提取所述第一通讯密钥,并使用所述第一通讯密钥,解密所述第一通讯密钥加密的操作命令和数据,得到操作命令和数据明文;
所述加密芯片执行所述操作命令,得到操作命令响应数据;
所述加密芯片从所述随机数通讯密钥列表中随机选择第二通讯密钥,使用第二通讯密钥加密所述操作命令响应数据;
所述加密芯片向所述主控制器返回所述第二通讯密钥标识符和所述操作命令响应数
据;
所述主控制器接收第二通讯密钥标识符及所述操作命令响应数据;所述主控制器根据所述第二通讯密钥标识符,在所述随机数通讯密钥列表中提取所述第二通讯密钥,并使用所述第二通讯密钥解密所述第二通讯密钥加密的所述操作命令响应数据,得到响应数据明文;
其中,上述加密算法采用对称或非对称加密算法,根据一个【具体实施方式】,对称加密算法包括AES、DES、TDES;非对称加密算法包括RSA、ECC0
[0006]本发明提供的技术方法的有益效果是:
有效的提高了嵌入式加密芯片和主控制器之间通讯密钥的随机性和通讯传输的安全性,又避免了每次通讯都需要进行通讯密钥协商从而影响通讯传输效率的问题。
【专利附图】
【附图说明】
[0007]图1是本发明实施例1提供的提高嵌入式加密芯片通讯传输安全性的方法流程示意图;
图2是本发明实施例2提供的提高嵌入式加密芯片通讯传输安全性的方法加密芯片侧流程示意图;
图3是本发明实施例2提供的提高嵌入式加密芯片通讯传输安全性的方法主控制器侧流程示意图。
【具体实施方式】
[0008]为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
[0009]实施例1
为了提高了嵌入式加密芯片和主控制器之间通讯密钥的随机性和通讯传输的安全性,避免每次通讯都需要进行通讯密钥协商从而影响通讯传输效率的问题,本发明提供了一种提高嵌入式加密芯片通讯传输安全性的方法,参见图1,所述方法包括:Si:加密芯片和主控制器建立连接;
S2:主控制器向加密芯片下发会话密钥协商命令;
S3:加密芯片接收主控制器下发的会话密钥协商命令,执行会话密钥协商命令;其中,加密芯片按同主控制器约定的密钥协商算法(如ECDH),计算得到会话密钥,并返回会话密钥协商响应数据给主控制器;
根据本发明的一个实施方式,会话密钥协商命令数据包具体数据传输格式为: usPLen + ucFlag + ucCls + uclns + usPl + usP2 + usDLen + Data + usCrc; usPLen:两字节数据包长度,数据包长度(usLen)指usLen域之后所有数据的长度; ucFlag: —字节通讯密钥标识符;
其中,ucFlag最高位(bit7)为I表示Data域数据已加密,为O表示Data域数据未加密。ucFlag次高位至最低位(bit6~bitO)为通讯密钥标识符。
[0010]ucCls: —字节命令类别;
uclns:属于ucCls命令类别之下的具体操作命令,长度为一字节; usPl:两字节参数I ; usP2:两字节参数2 ;
usDLen:两字节Data域有效数据长度,因Data域数据长度为适应某些加密算法需补O对齐,usDLen为未补O前的有效数据长度;
Data:进行交互的数 据;
usCrc:两字节数据包CRC16校验和,指从usPLen域之后到usCrc域之前所有数据的校验和;
S4:加密芯片向主控制器返回会话密钥协商响应数据;根据本发明的一个实施方式,所述响应数据具体传输格式为:
usPLen + ucFlag + usDLen + Data + usCrc;
S5:主控制器根据下发的会话密钥协商命令及加密芯片返回的会话密钥协商响应数据,计算得到会话密钥;根据本发明的一个实施方式,加密芯片按同主控制器约定的密钥协商算法(如ECDH),计算得到会话密钥;
加密芯片根据会话密钥协商命令及会话密钥协商响应数据,计算得到会话密钥;根据本发明的一个实施方式,通过ECDH算法计算;
S6:加密芯片内部通过随机数发生器生成随机数通讯密钥列表;根据本发明的一个实施方式,
其中,随机数通讯密钥列表由若干个(取值I~127)子通讯密钥元素组成。根据本发明的一个【具体实施方式】,子通讯密钥元素结构体变量描述如下:typedef struct
{
unsigned char ucFlag ;//当前子通讯密钥标识符
unsigned char ucKeys [KEY—LENGTH] ; // 当前子通讯密钥 } CommKeyStructure;
S7:加密芯片使用会话密钥,加密随机数通讯密钥列表,得到随机数通讯密钥列表密
文;S8:主控制器向加密芯片下发获取通讯密钥列表命令;
S9:加密芯片接收主控制器下发的获取通讯密钥列表命令,向主控制器返回随机数通讯密钥列表密文;
SlO:主控制器使用会话密钥,解密随机数通讯密钥列表密文,得到随机数通讯密钥列表明文;
Sll:所述主控制器从所述随机数通讯密钥列表中随机选择第一通讯密钥(其中,所述密钥列表中含有多个通讯密钥),使用第一通讯密钥加密下发的操作命令和数据(包括芯片执行过程中用到的数据);
S12:主控制器将第一通讯密钥标识符及第一通讯密钥加密的操作命令和数据下发给所述加?芯片;
S13:加密芯片接收下发的第一通讯密钥标识符及第一通讯密钥加密的操作命令和数据;加密芯片根据第一通讯密钥标识符,在随机数通讯密钥列表中提取第一通讯密钥,并使用第一通讯密钥解密第一通讯密钥加密的操作命令和数据,得到操作命令和数据明文;S14:加密芯片执行操作命令,得到操作命令响应数据;
S15:加密芯片从随机数通讯密钥列表中随机选择第二通讯密钥,使用第二通讯密钥加密操作命令响应数据;
S16:主控制器向 加密芯片下发获取响应数据命令;
S17:加密芯片向主控制器返回第二通讯密钥标识符和操作命令响应数据;
S18:主控制器接收第二通讯密钥标识符及操作命令响应数据;主控制器根据第二通讯密钥标识符,在随机数通讯密钥列表中提取第二通讯密钥,并使用第二通讯密钥解密第二通讯密钥加密的操作命令响应数据,得到响应数据明文;
S19:若主控制器命令尚未全部下发,则返回步骤Sll继续执行;如果已全部下发,则主控制器继续其他操作。
[0011]通过本发明实施例提供的方法,提高了嵌入式加密芯片和主控制器之间通讯密钥的随机性和通讯传输的安全性,又避免了每次通讯都需要进行通讯密钥协商从而影响通讯传输效率的问题。
[0012]为了对上述本发明实施例提供的方法进行详细说明,请参见如下实施例:
实施例2
为了提高了嵌入式加密芯片和主控制器之间通讯密钥的随机性和通讯传输的安全性,避免每次通讯都需要进行通讯密钥协商从而影响通讯传输效率的问题,本发明提供了一种提高嵌入式加密芯片通讯传输安全性的方法,参见图2。
[0013]本发明实施例提供的方法以加密芯片侧和主控制器侧在交互过程中所执行的主要动作进行说明,内容如下,
一、加密芯片侧:
步骤101:加密芯片与主控制器进行连接;
步骤102:加密芯片接收主控制器下发的会话密钥协商命令数据包;
其中,下发数据包具体数据传输格式为:
usPLen + ucFlag + ucCls + uclns + usPl + usP2 + usDLen + Data + usCrc;
相应地,应答数据包传输格式为:usPLen + ucFlag + usDLen + Data + usCrc;
usPLen:两字节数据包长度,数据包长度(usLen)指usLen域之后所有数据的长度; ucFlag: 一字节通讯密钥标识符;
其中,ucFlag最高位(bit7)为I表示Data域数据已加密,为O表示Data域数据未加密。ucFlag次高位至最低位(bit6~bitO)为通讯密钥标识符。
[0014]ucCls: 一字节命令类别;
uclns:属于ucCls命令类别之下的具体操作命令,长度为一字节; usPl:两字节参数I ; usP2:两字节参数2 ;
usDLen:两字节Data域有效数据长度,因Data域数据长度为适应某些加密算法需补O对齐,usDLen为未补O前的有效数据长度;
Data:进行交互的数据;
usCrc:两字节数据包CRC16校验和,指从usPLen域之后到usCrc域之前所有数据的校验和;
步骤103:当加密芯片接收数据包完毕后,按照协议对下发的数据包进行解析得到会话密钥协商命令;加密芯片按同主控制器约定的密钥协商算法(如ECDH),计算得到会话密钥,并返回会话密钥协商响应数据给主控制器;
步骤104:加密芯片生成随机数通讯密钥列表;
其中,随机数通讯密钥列表由若干个(取值I~127)子通讯密钥元素组成。根据本发明的一个【具体实施方式】,子通讯密钥元素结构体变量描述如下:typedef struct
{
unsigned char ucFlag ;//当前子通讯密钥标识符
unsigned char ucKeys [KEY_LENGTH] ; // 当前子通讯密钥 } CommKeyStructure;
步骤105:当加密芯片接收到获取随机数通讯密钥列表命令数据包后,返回主控制器使用会话密钥加密后的随机数通讯密钥列表;
步骤106:当加密芯片接收完主控制器下发的操作命令数据包后,解析ucFlag域,从随机数通讯密钥列表中提取对应的通讯密钥,解密操作命令数据包,执行操作命令,得到应答数据。
[0015]步骤107:加密芯片在随机数通讯密钥列表中随机选取一通讯密钥,加密应答数据,按照应答数据包传输格式,将本次通讯密钥的标识符和加密数据组包,返回主控制器,转至执行步骤106;
本实施例对加密芯片和主控制器之间通讯的具体形式不做限制。
[0016]二、主控制器侧,详见图3:
步骤201:主控制器检测到加密芯片接入,执行步骤202。 [0017]步骤202:主控制器下发会话密钥协商命令数据包;
步骤203:主控制器接收到会话密钥协商响应数据包,通过密钥协商算法(如ECDH),计算得到会话密钥; 步骤204:主控制器下发获取随机数通讯密钥列表命令数据包;
步骤205:主控制器接收到随机数通讯密钥列表命令响应数据包,使用会话密钥解密随机数通讯密钥列表密文;
步骤206:主控制器在随机数通讯密钥列表中随机选取一通讯密钥,加密操作命令和数据,按照数据包传输格式将本次通讯密钥的标识符和加密数据组包,下发给加密芯片;步骤207:主控制器接收完操作命令应答数据包后,解析ucFlag域,从随机数通讯密钥列表中提取对应的通讯密钥,解密应答数据包,得到应答数据明文;
步骤208:判断主控制器命令是否全部下发,若主控制器未下发完命令,继续重复执行步骤206至步骤207的操作;
步骤209:主控制器继续执行其他操作。
[0018]综上所述,本发明实施例提供的方法,提高了嵌入式加密芯片和主控制器之间通讯密钥的随机性和通讯传输的安全性,又避免了每次通讯都需要进行通讯密钥协商从而影响通讯传输效率的问题。
[0019]本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
[0020]以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种提高嵌入式加密芯片通讯传输安全性的方法,其用于在加密芯片和主控制器间通讯,其特征在于,所述方法包括步骤: 加密芯片和主控制器建立连接; 所述主控制器向所述加密芯片下发会话密钥协商命令; 所述加密芯片接收所述主控制器下发的所述会话密钥协商命令,执行所述会话密钥协商命令; 所述加密芯片向所述主控制器返回会话密钥协商响应数据; 所述主控制器根据所述会话密钥协商命令及所述会话密钥协商响应数据,计算得到会话密钥; 所述加密芯片根据所述会话密钥协商命令及所述会话密钥协商响应数据,计算得到所述会话密钥; 所述加密芯片内部通过随机数发生器生成随机数通讯密钥列表; 所述加密芯片使用所述会话密钥,加密所述随机数通讯密钥列表,得到随机数通讯密钥列表密文; 所述主控制器向所述加密芯片下发获取通讯密钥列表命令; 所述加密芯片接收所述主控制器下发的获取通讯密钥列表命令,向所述主控制器返回所述随机数通讯密钥列表密文; 所述主控制器使用所述会话密钥,解密所述随机数通讯密钥列表密文,得到随机数通讯密钥列表明文; 所述主控制器从所述随机数通讯密钥列表明文中随机选择第一通讯密钥,使用第一通讯密钥加密下发的操作命令和数据; 所述主控制器将第一通讯密钥标识符及所述第一通讯密钥加密的操作命令和数据下发给所述加密芯片; 所述加密芯片接收下发的所述第一通讯密钥标识符及所述第一通讯密钥加密的操作命令和数据;所述加密芯片根据所述第一通讯密钥标识符,在所述随机数通讯密钥列表中提取所述第一通讯密钥,并使用所述第一通讯密钥,解密所述第一通讯密钥加密的操作命令和数据,得到操作命令和数据明文; 所述加密芯片执行所述操作命令,得到操作命令响应数据; 所述加密芯片从所述随机数通讯密钥列表中随机选择第二通讯密钥,使用第二通讯密钥加密所述操作命令响应数据; 所述加密芯片向所述主控制器返回所述第二通讯密钥标识符和所述操作命令响应数据; 所述主控制器接收第二通讯密钥标识符及所述操作命令响应数据;所述主控制器根据所述第二通讯密钥标识符,在所述随机数通讯密钥列表中提取所述第二通讯密钥,并使用所述第二通讯密钥解密所述第二通讯密钥加密的所述操作命令响应数据,得到响应数据明文。
2.根据权利要求1所述的方法,其特征在于,上述加密算法采用对称或非对称加密算法。
3.根据权利要求2所述的方法,其特征在于,所述对称加密算法包括AESjP/或DES、和/或TDES;非对称加密算法包括RSA和/或ECC。
4.根据权利要求1-3所述的方法,其特征在于,所述随机数通讯密钥列表是多个通讯密钥标识符和标识符所对应通讯密钥的组合。
【文档编号】H04L9/06GK103905183SQ201410078224
【公开日】2014年7月2日 申请日期:2014年3月5日 优先权日:2014年3月5日
【发明者】孙吉平, 韩勇 申请人:北京深思数盾科技有限公司