一种智能卡及密钥传输的方法
技术领域
本发明涉及密钥技术,特别涉及一种智能卡及密钥传输的方法。
背景技术
功耗分析是旁道攻击中较为新颖的一种攻击手段。它的原理是能量消耗依赖于密码设备正在处理的数据。功耗分析使用多元正态分布对功耗曲线的特征进行刻画——功耗曲线中的每一个点的电子噪声服从高斯分布,多个点的联合分布服从多元正态分布。功耗分析大致分为两部分:一是对算法内部流程进行攻击;二是对密钥明文传输阶段进行攻击。
针对第一种攻击的防御措施主要为改进算法的流程。包括:添加随机噪声掩盖真实处理数据时的功耗;对整个算法流程添加掩码,使得中间处理的数据和真实的密钥没有相关性;插入伪操作隐藏真实的运算等。
针对第二种攻击,大多数的研究集中于总线传输功耗的平坦化和随机化。如ARM公司的总线极性翻转技术,总线上传输的数据有可能是真实的数据,也有可能是将真实数据取反后的伪数据。另一个方向是功耗平坦化,即不管想要传输的数据是什么,经过功耗补偿之后在功耗曲线上显得没有差别。
但是,目前针对第二种攻击的防御措施采用的都是隐藏或者掩盖技术。攻击者检测到的总线上传输数据的功耗和传输真实数据的功耗有一定的相关性,并且在总线的发送端需要一定的逻辑来将初始的明文信息转化为密文形式的信息,在接收端也需要一定的逻辑还原真实的明文信息。
发明内容
本发明所要解决的技术问题是,提供一种智能卡及密钥传输的方法,以提高密钥在总线上传输的安全可靠性。
为了解决上述技术问题,本发明公开了一种密钥传输的方法,该方法包括:
对真实的密钥和随机数按照预设的加密逻辑进行加密,得到密文形式的密钥,将明文、所述密文形式的密钥以及随机数写入到非易失性存储器(NVM)中;
中央处理器从所述NVM中读取所述明文、密文形式的密钥和随机数,并装载到加解密协处理器中;
所述加解密协处理器对密文形式的密钥和随机数采用与预设的加密逻辑对应的解密逻辑得到真实的密钥,采用真实的密钥对所述明文进行加密或者解密操作。
可选地,上述方法中,所述中央处理器将所述NVM中的明文、密文形式的密钥和随机数,装载到所述加解密协处理器中时,采用乱序的方式进行装载。
可选地,上述方法中,所述随机数为一个或一组随机数。
可选地,上述方法中,对真实的密钥和随机数按照预设的加密逻辑进行加密指:采用预设的对称密码算法对真实的密钥和一组随机数进行加密。
可选地,上述方法中,所述对称密码算法至少包括DES算法。
可选地,上述方法还包括:
将所述明文、密文形式的密钥以及随机数写入到非易失性存储器(NVM)时,还写入用于指示密钥安全传输的标识信息;
所述加解密协处理器从所述CPU装载的数据中读取到所述用于指示密钥安全传输的标识信息时,才对密文形式的密钥和随机数采用与预设的加密逻辑对应的解密逻辑进行解密得到真实的密钥。
本发明还公开了一种智能卡,至少包括非易失性存储器、中央处理器和加解密协处理器,其中:
所述非易失性存储器(NVM),存储有明文、密文形式的密钥以及随机数,其中,密文形式的密钥是由真实的密钥和所述随机数按照预设的加密逻辑进行加密得到的;
所述中央处理器,从所述NVM中读取所述明文、密文形式的密钥和随机数,并装载到所述加解密协处理器中;
所述加解密协处理器,对密文形式的密钥和随机数采用与预设的加密逻辑对应的解密逻辑得到真实的密钥,采用真实的密钥对所述明文进行加密或者解密操作。
可选地,上述智能卡中,所述中央处理器,采用乱序的方式将所述NVM中的明文、密文形式的密钥和随机数,装载到所述加解密协处理器中。
可选地,上述智能卡中,所述随机数为一个或一组随机数。
可选地,上述智能卡中,预设的加密逻辑包括对称密码算法。
可选地,上述智能卡中,所述对称密码算法至少包括DES算法。
可选地,上述智能卡中,所述非易失性存储器,还存储有用于指示密钥安全传输的标识信息;
所述加解密协处理器,从所述CPU装载的数据中读取到所述用于指示密钥安全传输的标识信息时,才对密文形式的密钥和随机数采用与预设的加密逻辑对应的解密逻辑进行解密得到真实的密钥。
本申请技术方案不需要重新设计总线,也不需要额外增加总线两端的硬件逻辑,在增加很少硬件逻辑的条件下,完成密文形式密钥在总线上的传输。而密文形式的密钥与真实密钥有着复杂的算术关系,攻击者不能通过功耗分析攻击推导出密钥,从而提高密钥传输的安全可靠性。另外,优选方案中,采用DES算法加密得到密文形式的密钥,且CPU搬运的过程采用乱序方式,这样,即便是能够很准确地测量出总线上传输数据时的功耗,也不能由此推导出真实的密钥。
附图说明
图1为本实施例中密钥安全传输的流程图;
图2为本实施例中智能卡的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文将结合附图对本发明技术方案作进一步详细说明。需要说明的是,在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
实施例1
本实施例提供一种密钥传输的方法,该方法的实现过程如图1所示,包括如下操作:
步骤100,对真实的密钥和随机数按照预设的加密逻辑进行加密,得到密文形式的密钥,将明文、密文形式的密钥以及随机数写入到NVM中;
该步骤中,准备好明文、真实的密钥以及随机数后,经过预设的加密逻辑用随机数加密密钥。
其中,预设的加密逻辑包括对称密码算法、各种逻辑组合等。而对称密码算法中优选DES算法。
还要说明的是,用于密钥加密的随机数可以是一个随机数,也可以是一组随机数。具体的随机数的个数由预设的加密逻辑来确定。
步骤200,中央处理器(CPU)从NVM中读取明文、密文形式的密钥和随机数,并装载到加解密协处理器中;
为了进一步提高密钥传输的安全性,优选方案提出,中央处理器将明文、密文形式的密钥和随机数装载到加解密协处理器时,可采用乱序方式进行加载,这样即便是能够很准确地测量出总线上传输数据时的功耗,也不能由此推导出真实的密钥。
步骤300,加解密协处理器对密文形式的密钥和随机数采用与预设的加密逻辑对应的解密逻辑得到真实的密钥,采用真实的密钥对明文进行加密或者解密操作。
另外,将明文、密文形式的密钥以及随机数写入NVM时,还可以增加用于指示密钥安全传输的标识信息。这样,CPU将NVM中的数据装载到加解密协处理器后,加解密协处理器根据该用于指示密钥安全传输的标识信息即可确定NVM中的数据启用了密钥安全传输机制,需要先解密出真实的密钥,故加解密协处理器对密文形式的密钥和随机数采用与预设的加密逻辑对应的解密逻辑进行解密操作,得到真实的密钥。
实施例2
本实施例提供一种智能卡,其结构如图2所示,至少包括NVM、CPU以及加解密协处理器。
NVM,存储有明文、密文形式的密钥以及随机数,其中,密文形式的密钥是由真实的密钥和所述随机数按照预设的加密逻辑进行加密得到的。
预设的加密逻辑可以包括对称密码算法以及各种逻辑组合等。本实施例中优选DES算法。
另外,由于具体的加密逻辑不同,对密钥进行加密过程中,涉及到的随机数的个数也可能不同,因此NVM中存储的随机数可能是一个或一组。
CPU,从NVM中读取明文、密文形式的密钥和随机数,并装载到加解密协处理器中。
优化地,上述CPU,可采用乱序的方式将NVM中的明文、密文形式的密钥和随机数,装载到加解密协处理器中,以进一步提高密钥传输的安全性。
加解密协处理器,对密文形式的密钥和随机数采用与预设的加密逻辑对应的解密逻辑得到真实的密钥,采用真实的密钥对明文进行加密或者解密操作。
在上述装置的基础上,非易失性存储器中,还可以存储有用于指示密钥安全传输的标识信息,这样,加解密协处理器,从CPU装载的数据中读取到用于指示密钥安全传输的标识信息时,才会先进行解密操作以得到真实的密钥。具体实施时,非易失性存储器中,可以通过一标志位的有效取值表示用于指示密钥安全传输的标识信息,假设这一标志位的有效取值为1,无效取值为0。此种情况下,CPU装载的数据到加解密协处理器后,加解密协处理器判断该标志位的值是否为有效取值(即判断是否为1),如果该标志位的的值为有效取值,则确定NVM中的数据启用了密钥安全传输机制,才会先解密出真实的密钥,再对明文进行加密或者解密操作。相反,如果该标志位的值为无效取值(即取值为0),则可以按照现有的或其他方式进行后续操作。如此操作实现了本申请与现有技术的兼容。另外,加解密协处理器先对该标志位判断,以确定启用了密钥安全传输机制时,才会多进行一次解密操作,提高了操作效率。
从上述实施例可以看出,与现有技术所采用的隐藏或者同一化总线上信息传输功耗的方式相比,本申请技术方案不需要对总线进行任何的修改,在原有的基础上只需要多写入一个或一组随机数用来加密真实的密钥,在传输的时候多传输这一个或一组随机数,而在加解密协处理器的设计上多了一次对密钥的解密运算,实现起来十分方便。优选地总线上传输的密文形式的密钥优可使用DES算法加密,其与真实密钥之间有着十分复杂的数学关系,安全性更好。另外,在上述方案的基础上,CPU向加解密协处理器搬运数据时,还可以采用乱序方式搬运,以进一步提高密钥传输的安全性。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本申请不限制于任何特定形式的硬件和软件的结合。
以上所述,仅为本发明的较佳实例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。