基于地址异或的数据总线加密方法与流程

文档序号:13675146阅读:554来源:国知局
技术领域本发明涉及信息加密领域,特别是涉及一种基于地址异或的数据总线加密方法。

背景技术:
近年来,针对智能卡存储器的物理攻击越来越受到关注和研究。智能卡的存储器中往往存有敏感数据,例如密钥、用户隐私相关的信息。针对存储器的物理攻击通过各种手段来获取这些敏感信息。物理攻击首先需要去除芯片封装,然后通过物理或者化学的方式对芯片进行逐层剥离。对于非易失性存储器(ROM),可以直接通过逆向工程、图像识别、染色等方法来获取存储器中的数据。另外,对于所有类型的存储器,包括非易失性存储器(ROM)和易失性存储器(RAM),攻击者都可以通过用探针探测总线的方式,来获取总线上传输的数据。当在智能卡中实现了数据总线加密,在存储器中或者总线上出现的数据即为密文数据,攻击者需要通过分析密文数据来恢复出明文数据。由于需要在读写存储器时,实时进行数据总线加密运算,因此数据总线加密方法相对于对称加密算法(例如DES,AES)来说都比较简单,运算速度较快。但是也由于数据总线加密方法比较简单的原因,其方法一般来说需要严格保密,从而提升攻击者的攻击难度。传统的数据总线加密方法有两种,一种为简单异或总线加密方法,一种为置换总线加密方法。简单异或总线加密方法即将明文数据直接和密钥进行异或,如果明文数据恰巧为“全0”或者“全1”,那么密钥很容易就被暴露。并且由于所有明文数据都和同一个密钥进行异或,攻击者通过观测密文数据,就能够推测明文数据之间的相关性。因此简单异或总线加密方法的安全性较低。而置换总线加密方法根据密钥的不同将明文数据的比特位进行不同的置换操作。通过层层的置换操作,使得明文的每一位都能够随机的置换到密文的某一位。但这种方法由于置换层数较多,因此运算速度较慢。另一个问题就是置换无法改变明文数据的数值,因此如果明文数据恰巧为“全0”或者“全1”,那么密文数据将会和明文数据相等。并且如果明文数据为较为特殊的值,例如所有比特位中只有1个比特位为“1”,那么攻击者能够通过观测密文来猜测密钥。另外,与简单异或总线加密方法类似,由于所有明文数据都基于同一个密钥进行置换操作,攻击者通过观测密文数据,就能够推测明文数据之间的相关性。

技术实现要素:
本发明要解决的技术问题是提供一种基于地址异或的数据总线加密方法,既能有效提高系统的安全性,又能大幅提高运算速度。为解决上述技术问题,本发明的基于地址异或的数据总线加密方法,包括如下步骤:步骤1,产生与存储器数据总线比特位数相等的总线加密密钥k;步骤2,对于总线加密密钥k的每一个比特位,都与存储器地址总线的某一比特位或者多位比特位进行异或操作,得到异或后的总线加密密钥k’;步骤3,对存储器进行写入操作时,将存储器明文数据总线和总线加密密钥k’进行异或得到存储器密文数据总线;对存储器进行读出操作时,将存储器密文数据总线和总线加密密钥k’进行异或得到存储器明文数据总线。步骤1所述产生与存储器数据总线比特位数相等的总线加密密钥k,包括直接选取原始总线加密密钥中的某一位来得到总线加密密钥k中的每一个比特位。步骤1所述产生与存储器数据总线比特位数相等的总线加密密钥k,包括将原始总线加密密钥中的某些比特位进行异或来得到总线加密密钥k中的每一个比特位。步骤1所述存储器数据总线的位宽,可以是任意位数,包括8位、16位、32位。本发明的有益效果在于:数据总线加密运算由于需要在存储器读写过程中实施运算,因此要求其加密效果较好的同时也要求其运算时间较快。与以往的数据总线加密实现方法相比,本发明中所采用的基于地址异或的数据总线加密方法能够通过简单的密钥异或地址的操作,将存储器地址与密钥进行异或,使得每一个地址中的明文数据所对应的异或密钥的值都不同,从而使不同地址中密文数据的相关性被大幅减弱,大大增加了攻击者通过分析密文数据来推算密钥从而恢复明文的难度,安全性得到大幅提高。另外,由于基于地址异或的数据总线加密方法只需要进行异或操作,因此其运算时间也较快。因此该方法能够有效抵御物理攻击。本发明的其他优点,目的和特征将部分地在随后的描述中阐明,并且对本领域普通技术人员来说,部分内容将在审查下列内容时变得清楚,或者可以由本发明的实践而得知。利用在书面描述及其权利要求以及附图中具体指出的结构,可以实现和达到本发明的目的和其他优点。附图说明下面结合附图和具体实施方式对本发明作进一步详细的说明:图1是基于地址异或的数据总线加密方法示意图;图2是基于地址异或的数据总线加密效果示意图。具体实施方式所述基于地址异或的数据总线加密方法,就是使得攻击者难以通过分析存储器密文数据来推算密钥从而恢复明文。存储器数据所对应的异或密钥的每一位都由总线加密密钥的相应位与存储器地址总线的某一比特位或者多位比特位进行异或操作得来的。因此不同存储器地址中的数据所对应的异或总线加密密钥都是不同的。即使不同地址中的明文数据一致,总线加密运算后得到的密文地址也不同。这就大大增加了攻击者通过观测密文数据的相关性来推测明文数据的相关性的难度。另外,即使明文数据恰巧为“全0”或者“全1”,那么暴露给攻击者的也只是与地址异或后的总线加密密钥。当攻击者不知道数据总线加密的具体实施方式时,他将无法由与地址异或后的总线加密密钥推算异或前的总线加密密钥,从而无法恢复其他地址中的明文数据。因此使用所述基于地址异或的数据总线加密方法可以有效的抵御针对存储器的物理攻击。图1是所述基于地址异或的数据总线加密方法示意图。图1中,密钥和数据的比特位为n,地址的比特位为m,虚线框中的操作为可选操作。x(i,j)(0≤i≤n-1,0≤j≤m-1)为与密钥比特位k[i]进行异或的第j个地址比特位,满足其值大于等于0,小于等于(m-1),且满足x(i,j0)≠x(i,j1)(0≤j0,j1≤m-1)。对密钥k的每一位k[i](0≤i≤n-1),都至少与地址中的某一位(a[x(i,0)])进行异或,至多与地址中的所有位(a[0]到a[m-1])进行异或;图2是所述基于地址异或的数据总线加密效果示意图。图2中,所采用的具体数据总线加密方法在下面进行详细描述。参见图1和图2,本发明提供了一个基于地址异或的数据总线加密方法的实施例。该实施例中的地址总线a的位宽为12位,数据总线d的位宽为8位。通过将8位总线加密密钥k的每一位和地址总线中的某两位进行异或,来产生异或后的8位总线加密密钥k’。在对数据总线进行加解密时,将明文或者密文数据总线与8位总线加密密钥k’进行异或操作。由于掺入的地址的因素,异或操作的安全性得到提升,且不同地址中的密文数据的相关性很弱,因此攻击者通过观测密文数据很难推算密钥或者明文数据。具体的基于地址异或的数据总线加密方法流程如下描述:步骤1,产生32位原始总线加密密钥k0。步骤2,通过将原始总线加密密钥k0中的某些位异或的方法产生8位总线加密密钥k。k[0]=k0[0]^k0[1]^k0[2]^k0[3]k[1]=k0[4]^k0[5]^k0[6]^k0[7]k[2]=k0[8]^k0[9]^k0[10]^k0[11]k[3]=k0[12]^k0[13]^k0[14]^k0[15]k[4]=k0[16]^k0[17]^k0[18]^k0[19]k[5]=k0[20]^k0[21]^k0[22]^k0[23]k[6]=k0[24]^k0[25]^k0[26]^k0[27]k[7]=k0[28]^k0[29]^k0[30]^k0[31]步骤3,通过将总线加密密钥k与12位地址a异或的方法产生8位总线加密密钥k’;k’[0]=k[0]^a[1]^a[7]k’[1]=k[1]^a[4]^a[0]k’[2]=k[2]^a[2]^a[6]k’[3]=k[3]^a[9]^a[3]k’[4]=k[4]^a[5]^a[3]k’[5]=k[5]^a[10]^a[0]k’[6]=k[6]^a[1]^a[11]k’[7]=k[7]^a[8]^a[2]。步骤4,对存储器进行写入操作时,将明文存储器数据总线和总线加密密钥k’进行异或得到密文存储器数据总线;对存储器进行读出操作时,将密文存储器数据总线和总线加密密钥k’进行异或得到明文存储器数据总线。现有普通的数据总线加密方法需要大量的置换操作和替换操作,因此实现代价高且运算速度慢。而本发明的方法只需要异或逻辑操作即可实现,因此其实现代价较小且运算速度较快。并且由于本发明不是简单的异或密钥,而是将地址的因素掺入一起进行异或,因此能在保证安全性的前提下,将运算速度大幅提高。以上所述仅为本发明的具体实施方式和实施例,本发明保护范围并不局限于此。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1