一种安全报文过程密钥的生成方法

文档序号:7752895阅读:214来源:国知局
专利名称:一种安全报文过程密钥的生成方法
技术领域
本发明属于信息安全领域,特别涉及一种安全报文过程密钥的生成方法。
背景技术
随着信息安全技术的发展,智能密钥设备应用到了工作和生活中的各个方面,为 了防止信息被截取、篡改或失密,可以利用智能密钥设备的安全报文功能。智能密钥设备的 安全报文功能,是指若智能密钥设备中的某些操作在生产时已被设定为安全报文形式,那 么在对智能密钥设备进行这些预定的操作时,上位机发送的命令和智能密钥设备的应答都 必须采用带有MAC^MessageAuthentication Code,消息鉴别码)或加密数据域的安全报文 形式。安全报文传送的目的是保证上位机和智能密钥设备之间所交换数据的可靠性、完整 性和对发送方的认证。数据的完整性和对发送方的认证通过使用MAC来实现,数据的可靠 性通过对数据域的加密来保证。

发明内容
为了提高安全报文的安全性,本发明提供一种安全报文过程密钥的生成方法。所 述技术方法如下一种安全报文过程密钥的生成方法,所述方法包括上位机生成第一随机数;所述上位机向智能密钥设备下发第一报文,所述第一报文中包括所述第一随机 数;所述智能密钥设备生成第二随机数;所述智能密钥设备根据所述第一随机数和所述第二随机数生成第一加密过程密 钥和第一认证过程密钥;所述智能密钥设备向所述上位机返回第一应答信息,所述第一应答信息中包括所 述第二随机数;所述上位机根据所述第一随机数和所述第二随机数,生成第二加密过程密钥和第 二认证过程密钥;所述上位机验证所述第二加密过程密钥与所述第一加密过程密钥是否相同,若相 同,则所述上位机向所述智能密钥设备下发第二报文;否则所述上位机向所述智能密钥设 备下发过程密钥生成错误的信息;其中,所述第二报文包括由所述第二认证过程密钥计算生成的第一认证数据;所述智能密钥设备接收到所述第二报文后,根据所述第一认证过程密钥计算生成 第二认证数据;所述智能密钥设备验证所述第二认证数据与所述第一认证数据是否相同,若相 同,则所述智能密钥设备向所述上位机返回过程密钥生成成功的应答信息,否则所述智能 密钥设备向所述上位机返回过程密钥生成失败的应答信息。
所述智能密钥设备根据所述第一随机数和所述第二随机数生成第一加密过程密 钥和第一认证过程密钥的方法具体包括将所述第一随机数和所述第二随机数按预定的规则拆分后组合成生派生数据;分别使用所述智能密钥设备中预置的静态加密密钥和静态认证密钥对所述派生 数据进行加密运算,得到所述第一加密过程密钥和所述第一认证过程密钥。所述分别使用所述智能密钥中设备预置的静态加密密钥和静态认证密钥对所述 派生数据进行加密运算,得到所述第一加密过程密钥和所述第一认证过程密钥的方法具体 包括使用所述静态加密密钥对所述派生数据进行AES算法的ECB模式加密运算,所述 加密运算后得到的密文数据为所述第一加密过程密钥;使用所述静态认证密钥对所述派生数据进行AES算法的ECB模式加密运算,所述 加密运算后得到的密文数据为所述第一认证过程密钥。所述第一应答信息中还包括第一密文数据;所述第一密文数据,所述智能密钥设备使用所述第一加密过程密钥对所述第一随 机数、第二随机数和第一填充数据进行AES算法的CBC模式加密运算,将所述加密运算后得 到的密文数据中的前8个字节作为所述第一密文数据。所述第一填充数据具体包括0x80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00。所述上位机根据所述第一随机数和所述第二随机数生成第二加密过程密钥和第 二认证过程密钥的方法具体包括根据所述第一随机数和所述第二随机数生成派生数据;分别使用所述智能密钥设备中预置的静态加密密钥和静态认证密钥对所述派生 数据进行加密运算,得到所述第二加密过程密钥和所述第二认证过程密钥。所述分别使用所述智能密钥设备中预置的静态加密密钥和静态认证密钥对派生 数据进行加密运算,得到所述第一加密过程密钥和所述第一认证过程密钥的方法具体包 括使用所述静态加密密钥对所述派生数据进行AES算法的ECB模式加密运算,所述 加密运算后得到的密文数据为所述第二加密过程密钥;使用所述静态认证密钥对所述派生数据进行AES算法的ECB模式加密运算,所述 加密运算后得到的密文数据为所述第二认证过程密钥。所述上位机验证所述第二加密过程密钥与所述第一加密过程密钥是否相同的方 法具体包括所述上位机使用所述第二加密过程密钥对所述第一随机数、所述第二随机数和所 述第一填充数据进行AES算法的CBC模式加密运算,将所述加密运算后得到的密文数据中 的前8个字节作为所述第二密文数据;所述上位机比对所述第二密文数据与所述第一密文数据是否相同,若相同,则所 述第二加密过程密钥与所述第一加密过程密钥相同。所述第二报文中还包括第三密文数据;所述第三密文数据,所述上位机使用所述第二加密过程密钥对所述第二随机数、第一随机数和第二填充数据进行AES算法的CBC模式加密运算,将所述加密运算后得到的 密文数据中的前8个字节数据作为第三密文数据;所述第二填充数据具体包括0x80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00。所述根据所述第二认证过程密钥计算生成第一认证数据的方法具体包括所述上位机使用所述第二认证过程密钥对第二报文的报文头、所述第三密文数 据、第三填充数据进行AES算法的CBC模式加密运算,将所述加密运算后得到的密文数据中 的前8个字节数据为第一认证数据。所述智能密钥设备接收到所述第二报文后,根据所述第一认证过程密钥计算生成 第二认证数据方法具体包括所述智能密钥设备使用所述第一加密过程密钥对所述第二随机数、第一随机数和 所述第二填充数据进行AES算法的CBC模式加密运算,将所述加密运算后得到的密文数据 中的前8个字节数据为第四密文数据;所述智能密钥设备使用所述第一认证过程密钥对第二报文的报文头、所述第四密 文数据、所述第三填充数据进行AES算法的CBC模式加密运算,将所述加密运算后得到的密 文数据中的前8个字节数据为第二认证数据;所述第三填充数据具体包括0x80 00 00。有益效果通过本发明提供的安全报文过程密钥的生成方法,可以获得基于AES 加密算法的安全报文的加密过程密钥和认证过程密钥,从而提高了安全报文的安全等级。


图1为本发明实施例1中提供的一种安全报文过程密钥的生成方法流程图;图2为本发明实施例1中生成派生数据的方法示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方 式作进一步地详细描述。实施例1参见图1,本发明实施例提供了一种安全报文过程密钥的生成方法,该方法包括步骤101.智能密钥设备与上位机建立连接;步骤102.上位机中生成一组随机数;在本发明实施例中,上位机所生成的随机数的长度为8个字节,称之为上位机随 机数。步骤103.上位机向智能密钥设备下发初始化更新命令;上位机生成随机数后,向智能密钥设备下发初始化更新命令,在该命令中还包括 上位机随机数。上位机所下发的命令的格式如下命令头、数据字段长度、数据字段,以及可选的 应答命令数据字段长度。
具体地,命令头长度是固定的,在命令头中包含有该命令所要进行的具体操作类 型以及命令的参数等信息,在本发明实施例中命令头的长度为4字节;数据字段长度,用于 表示命令中的数据字段的字节数,在本发明实施例中这一表示数据字段长度的部分为一个 字节,其取值范围为0x00至OxFF ;数据字段,数据字段为该命令所要操作的对象或执行该 命令所必须的其它数据;在数据字段之后还包含一个可选的部分,用于表示该命令对应答 命令中的数据字段希望的字节数,若命令中不包含该部分,则在应答命令中不需要数据字 段,在本发明实施中该部分若存在,则使用一个字节表示,其取值范围为0x00至OxFF,当值 为0x00时,表示对应答命令中数据字段长度不进行具体限定,此时应答命令中数据字段长 度最大为256字节。在本发明实施例中,8字节的上位机随机数包含在更新初始化命令的数据字段中。步骤104.智能密钥设备执行初始化更新命令,并向上位机返回该命令的执行结 果;智能密钥设备接收到上述的初始化更新命令后,生成一组长度为8字节的与上位 机随机数不同的随机数,称之为token随机数;当智能密钥设备生成token随机数后,智能密钥设备根据上述命令中传入的上位 机随机数和自身生成的token随机数、以及智能密钥设备中预先存储的静态加密密钥和静 态认证密钥,计算生成加密过程密钥和认证过程密钥;其中,加密过程密钥用于对上位机与智能密钥设备之间通信过程中发送的报文数 据字段进行加密;认证过程密钥用于对上位机与智能密钥设备之间通信过程中发送的报文 进行计算生成认证数据或MAC (Message AuthenticationCode,消息鉴别码)。智能密钥设备执行完初始化更新命令后,向上位机返回一条应答命令,其中包括 初始化更新命令的执行结果,在该应答命令中包括数据字段和状态码两个部分;其中,应答命令中的数据字段包括密钥派生数据、密钥信息、token随机数、 token密文;密钥派生数据为生产智能密钥设备时写入的,固定不变,在本发明实施例中密钥 派生数据长度为10个字节;密钥信息包括密钥版本和安全通道协议,在本发明实施例中密钥版本为固定的 OxFF,安全通道协议为固定的0x01 ;token密文为智能密钥设备对以下数据进行CBC模式(密码分组链接模式)的AES 加密运算上位机随机数+token随机数+16字节填充数据,填充数据具体为0x80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00具体地,在该运算中使用的密钥为智能密钥设备生成的加密过程密钥,初始向量 为16个字节的0x00,AES (Advanced Encryption Mandard,高级加密标准)加密运算完成 后取运算结果的前8个字节作为token密文;应答命令的最后2个字节为状态码,例如当状态码为0x9000时表示命令执行成功。在本发明实施例中,应答命令格式具体为密钥派生数据(10字节)+密钥信息O字节)+token随机数(8字节)+token密 文(8字节)+状态码O字节);
在本发明实施例中,智能密钥设备计算生成加密过程密钥和认证过程密钥的方法 具体为1)智能密钥设备根据上位机随机数和token随机数生成一组长度为16字节的派 生数据;智能密钥设备中生成派生数据的方法为智能密钥设备根据预先约定的规则,对 上位机随机数和token随机数进行变化得到派生数据。变化的方法包括按照一定的规则对 上位机随机数和token随机数进行拆分、数学运算、重新排列组合等。参见图2,在本发明实施例中,智能密钥设备中生成派生数据的方法具体为将上位机随机数和token随机数分别分割成为长度相同的两个部分上位机随机 数前4个字节、上位机随机数后4个字节和token随机数前4个字节、token随机数后4个 字节,共4个部分16字节;然后智能密钥设备将上述4个部分按token随机数后4个字节、 上位机随机数前4个字节、token随机数前4个字节、上位机随机数后4个字节的顺序进行 拼接,拼接后得到的16个字节数据即派生数据。2)智能密钥设备使用静态加密密钥对派生数据进行AES算法的ECB模式(电码本 模式)加密运算,将该加密运算后得到的密文数据作为加密过程密钥;在本发明实施例中,静态加密密钥为上位机与智能密钥设备预先约定的,上位机 中也保存有该静态加密密钥,静态加密密钥的长度为16字节。3)智能密钥设备使用静态认证密钥对派生数据进行AES算法的ECB模式加密运 算,得到认证过程密钥;在本发明实施例中,静态认证密钥为上位机与智能密钥设备预先约定的,上位机 中也保存有该静态认证密钥,静态认证密钥的长度为16字节。步骤105.上位机生成加密过程密钥和认证过程密钥;在上位机中也包含有和智能密钥设备中相同的静态加密密钥、静态认证密钥;上位机根据自身生成的上位机随机数和接收到的token随机数,使用智能密钥设 备中相同的静态加密密钥、静态认证密钥,以及与智能密钥设备中相同的计算方法生成加 密过程密钥和认证过程密钥。步骤106、上位机验证生成的加密过程密钥是否正确,若正确,执行步骤107 ;否 则,上位机向智能密钥设备下发中止生成过程密钥的命令,智能密钥设备将之前的计算结 果清空,结束;上位机验证生成的加密过程密钥是否正确的方法具体为上位机利用生成的加密过程密钥,进行与智能密钥设备中生成token密文相同的 运算,若运算的结果与token密文相同,则上位机生成的加密过程密钥与智能密钥设备中 生成的加密过程密钥相同,即上位机生成的加密过程密钥正确,执行步骤107 ;否则,上位 机向智能密钥设备下发中止生成过程密钥的命令,智能密钥设备将之前的计算结果清空, 结束。步骤107.上位机向智能密钥设备下发外部认证命令;在上位机所下发的外部认证命令中,数据字段中包括8字节长度的上位机密文、8 字节的命令MAC;上位机密文为上位机对以下数据进行CBC模式的AES加密运算,token随机数+上位机随机数+16字节填充数据(填充数据具体为0x80 00 00 00 00 00 0000 00 00 00 00 00 00 00 00),具体地,在该运算中使用的密钥为加密过程密钥,初始向量为16个字节 的0x00,然后取运算结果的前8个字节作为上位机密文。在该外部认证命令中,命令MAC (Message Authentication Code,消息鉴别码)为 上位机对上位机密文前的5字节命令头、8字节上位机密文、3字节填充数据(填充数据具 体为0x80 00 00)进行CBC模式的AES加密运算,在该运算中使用的密钥为认证过程密钥, 初始向量为16个字节的0x00,然后取运算结果的前8个字节作为命令MAC。步骤108.智能密钥设备验证外部认证命令中的数据正确后向上位机返回过程密 钥生成成功信息。智能密钥设备使用加密过程密钥对token随机数+上位机随机数+16字节填充数 据(填充数据具体为 0x80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00)进行 CBC 模式的AES加密运算,初始向量为16个字节的0x00,然后取运算结果的前8个字节作为验 证数据,然后使用认证过程密钥对该外部认证命令中的5字节命令头、验证数据、3字节填 充数据(填充数据具体为0x800000)进行CBC模式的AES加密运算,初始向量为16个字节 的0x00,然后取运算结果的前8个字节作为验证MAC数据,若智能密钥设备计算得到的验 证MAC数据与上位机下发的命令中的命令MAC相同,则智能密钥设备可以确认加密过程密 钥和认证过程密钥生成成功,然后向上位机返回密钥生成成功的信息0x9000 ;若智能密钥设备验证外部认证命令错误,则智能密钥设备向上位机返回生成过程 密钥错误的信息,将之前的计算结果清空,结束。当上位机与智能密钥设备中都成功的生成了加密过程密钥和认证过程密钥后,上 位机与智能密钥设备就可以使用安全报文进行数据通信了 使用AES算法利用加密过程密 钥加密命令的数据字段、使用AES算法利用认证过程密钥计算命令的命令MAC。通过本发明实施例所提供的安全报文过程密钥的生成方法,可以获得基于AES加 密算法的安全报文的加密过程密钥和认证过程密钥,从而提高了安全报文的安全等级。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和 原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种安全报文过程密钥的生成方法,所述方法包括上位机生成第一随机数;所述上位机向智能密钥设备下发第一报文,所述第一报文中包括所述第一随机数;所述智能密钥设备生成第二随机数;所述智能密钥设备根据所述第一随机数和所述第二随机数生成第一加密过程密钥和 第一认证过程密钥;所述智能密钥设备向所述上位机返回第一应答信息,所述第一应答信息中包括所述第 二随机数;所述上位机根据所述第一随机数和所述第二随机数,生成第二加密过程密钥和第二认 证过程密钥;所述上位机验证所述第二加密过程密钥与所述第一加密过程密钥是否相同,若相同, 则所述上位机向所述智能密钥设备下发第二报文;否则所述上位机向所述智能密钥设备下 发过程密钥生成错误的信息;其中,所述第二报文包括由所述第二认证过程密钥计算生成的第一认证数据;所述智能密钥设备接收到所述第二报文后,根据所述第一认证过程密钥计算生成第二 认证数据;所述智能密钥设备验证所述第二认证数据与所述第一认证数据是否相同,若相同,则 所述智能密钥设备向所述上位机返回过程密钥生成成功的应答信息,否则所述智能密钥设 备向所述上位机返回过程密钥生成失败的应答信息。
2.如权利要求1所述的方法,其特征在于,所述智能密钥设备根据所述第一随机数和 所述第二随机数生成第一加密过程密钥和第一认证过程密钥的方法具体包括将所述第一随机数和所述第二随机数按预定的规则拆分后组合成生派生数据;分别使用所述智能密钥设备中预置的静态加密密钥和静态认证密钥对所述派生数据 进行加密运算,得到所述第一加密过程密钥和所述第一认证过程密钥。
3.如权利要求2所述的方法,其特征在于,所述分别使用所述智能密钥中设备预置的 静态加密密钥和静态认证密钥对所述派生数据进行加密运算,得到所述第一加密过程密钥 和所述第一认证过程密钥的方法具体包括使用所述静态加密密钥对所述派生数据进行AES算法的ECB模式加密运算,所述加密 运算后得到的密文数据为所述第一加密过程密钥;使用所述静态认证密钥对所述派生数据进行AES算法的ECB模式加密运算,所述加密 运算后得到的密文数据为所述第一认证过程密钥。
4.如权利要求1所述的方法,其特征在于,所述第一应答信息中还包括第一密文数据;所述第一密文数据,所述智能密钥设备使用所述第一加密过程密钥对所述第一随机 数、第二随机数和第一填充数据进行AES算法的CBC模式加密运算,将所述加密运算后得到 的密文数据中的前8个字节作为所述第一密文数据。
5.如权利要求4所述的方法,其特征在于,所述第一填充数据具体包括0x8000 00 00 00 00 00 00 00 00 00 00 00 00 00 00。
6.如权利要求1所述的方法,其特征在于,所述上位机根据所述第一随机数和所述第二随机数生成第二加密过程密钥和第二认证过程密钥的方法具体包括 根据所述第一随机数和所述第二随机数生成派生数据;分别使用所述智能密钥设备中预置的静态加密密钥和静态认证密钥对所述派生数据 进行加密运算,得到所述第二加密过程密钥和所述第二认证过程密钥。
7.如权利要求6所述的方法,其特征在于,所述分别使用所述智能密钥设备中预置的 静态加密密钥和静态认证密钥对派生数据进行加密运算,得到所述第一加密过程密钥和所 述第一认证过程密钥的方法具体包括使用所述静态加密密钥对所述派生数据进行AES算法的ECB模式加密运算,所述加密 运算后得到的密文数据为所述第二加密过程密钥;使用所述静态认证密钥对所述派生数据进行AES算法的ECB模式加密运算,所述加密 运算后得到的密文数据为所述第二认证过程密钥。
8.如权利要求4所述的方法,其特征在于,所述上位机验证所述第二加密过程密钥与 所述第一加密过程密钥是否相同的方法具体包括所述上位机使用所述第二加密过程密钥对所述第一随机数、所述第二随机数和所述第 一填充数据进行AES算法的CBC模式加密运算,将所述加密运算后得到的密文数据中的前 8个字节作为所述第二密文数据;所述上位机比对所述第二密文数据与所述第一密文数据是否相同,若相同,则所述第 二加密过程密钥与所述第一加密过程密钥相同。
9.如权利要求1所述的方法,其特征在于,所述第二报文中还包括第三密文数据; 所述第三密文数据,所述上位机使用所述第二加密过程密钥对所述第二随机数、第一随机数和第二填充数据进行AES算法的CBC模式加密运算,将所述加密运算后得到的密文 数据中的前8个字节数据作为第三密文数据;
10.如权利要求9所述的方法,其特征在于,所述第二填充数据具体包括0x8000 00 00 00 00 00 00 00 00 00 00 00 00 00 00。
11.如权利要求9所述的方法,其特征在于,所述根据所述第二认证过程密钥计算生成 第一认证数据的方法具体包括所述上位机使用所述第二认证过程密钥对第二报文的报文头、所述第三密文数据、第 三填充数据进行AES算法的CBC模式加密运算,将所述加密运算后得到的密文数据中的前 8个字节数据为第一认证数据。
12.如权利要求10所述的方法,其特征在于,所述智能密钥设备接收到所述第二报文 后,根据所述第一认证过程密钥计算生成第二认证数据方法具体包括所述智能密钥设备使用所述第一加密过程密钥对所述第二随机数、第一随机数和所述 第二填充数据进行AES算法的CBC模式加密运算,将所述加密运算后得到的密文数据中的 前8个字节数据为第四密文数据;所述智能密钥设备使用所述第一认证过程密钥对第二报文的报文头、所述第四密文数 据、所述第三填充数据进行AES算法的CBC模式加密运算,将所述加密运算后得到的密文数 据中的前8个字节数据为第二认证数据;
13.如权利要求11所述的方法,其特征在于,所述第三填充数据具体包括0x800000。
全文摘要
本发明公开了一种安全报文过程密钥的生成方法,属于信息安全领域。该方法包括上位机生成第一随机数并下发给智能密钥设备;智能密钥设备生成第二随机数,然后生成第一加密过程密钥和第一认证过程密钥;智能密钥设备向上位机返回第一应答信息,第一应答信息中包括第二随机数;上位机生成第二加密过程密钥和第二认证过程密钥;上位机验证第二加密过程密钥与第一加密过程密钥是否相同,若相同,则上位机向智能密钥设备下发第二报文;第二报文包括第一认证数据;智能密钥设备生成第二认证数据,并判断第二认证数据与第一认证数据是否相同,若相同,则向上位机返回过程密钥生成成功的应答信息,否则,向上位机返回过程密钥生成失败的应答信息。
文档编号H04L29/06GK102045333SQ201010213918
公开日2011年5月4日 申请日期2010年6月29日 优先权日2010年6月29日
发明者于华章, 陆舟 申请人:北京飞天诚信科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1