地址总线中地址数据转换方法及装置的制造方法

文档序号:10624716阅读:431来源:国知局
地址总线中地址数据转换方法及装置的制造方法
【专利摘要】一种地址总线中地址数据转换方法及装置,所述方法包括:获取所有地址总线对应的地址数据,将所述地址数据从高位至低位划分为N份,得到N个地址数据序列;将当前地址数据序列Bi与对应的密钥Ki进行第一运算,得到第一运算结果;在当前地址数据序列Bi为最高位地址数据序列时,将所述第一运算结果输入至对应的地址转换函数Fi,获取当前地址数据序列Bi对应的输出地址数据;在当前地址数据序列Bi为非最高位地址数据序列时,将第一运算结果与相邻高位地址数据序列Bi+1对应的输出数据进行第二运算,将第二运算结果输入至地址转换函数Fi,获取当前地址数据序列Bi对应的输出地址数据。采用所述方法及装置,可以降低地址扰乱过程中的功耗。
【专利说明】
地址总线中地址数据转换方法及装置
技术领域
[0001]本发明涉及数据安全领域,尤其涉及一种地址总线中地址数据转换方法及装置。
【背景技术】
[0002]随着数字技术的发展,数据安全越来越得到人们的重视。在实际的应用中,在处理器访问存储器时若直接将访问地址映射到存储器,则攻击者可能较容易的获取该地址中的数据,从而获取存储器内的敏感数据,导致信息泄露的情况发生。
[0003]因此,在现有技术中,在处理器将地址映射到内存中时,通常采用地址乱序或者加密算法对地址进行处理,即:将映射到内存的地址变成无序的地址。即使其中一个地址的数据被获取,用户也无法获取与该地址相关联的地址,不会造成信息泄露的发生,从而提高了数据安全性。
[0004]地址乱序是指按照一定的P置换规律将地址打乱,然而,地址乱序没有密钥参与,在进行映射时仍存在确切的规律,仍比较容易受到攻击。在对安全性能需求较高的场合,地址乱序并不适用。
[0005]采用加密算法对地址进行处理,可以提高数据安全性。然而,加密算法Ibit的输入地址变化会导致输出扰乱地址的很多bit都发生变化,在总线上表现为总线翻转较多,功耗较大。

【发明内容】

[0006]本发明实施例解决的问题是在确保数据安全性的基础上,降低地址扰乱过程中的功耗。
[0007]为解决上述问题,本发明实施例提供一种地址总线中地址数据转换方法,包括:
[0008]获取所有地址总线对应的地址数据,将所述地址数据从高位至低位划分为N份,得到N个地址数据序列,所述N个地址数据序列存在一一对应的地址转换函数;
[0009]将当前地址数据序列B1与对应的密钥K i进行第一运算,得到第一运算结果;
[0010]在当前地址数据序列B1为最高位地址数据序列时,将所述第一运算结果输入至对应的地址转换函数F1,获取当前地址数据序列B1对应的输出地址数据;
[0011]在当前地址数据序列B1为非最高位地址数据序列时,将第一运算结果与相邻高位地址数据序列B1+1对应的输出数据进行第二运算,将第二运算结果输入至地址转换函数F y获取当前地址数据序列应的输出地址数据。
[0012]可选的,所述N个地址数据序列的长度相等。
[0013]可选的,所述将第一运算结果与相邻高位地址数据序列对应的输出数据进行第二运算,包括:将所述第一运算结果与相邻高位地址数据序列对应的地址转换函数的输入数据或输出数据进行第二运算。
[0014]可选的,所述地址转换函数包括以下至少一种:线性映射函数,非线性映射函数。
[0015]可选的,所述线性映射函数为P置换函数,所述非线性映射函数为Sbox函数。
[0016]可选的,所述地址转换函数包括非线性Sbox函数以及线性P置换函数,所述线性P置换函数适于对所述非线性SbOX函数的输出进行线性变换。
[0017]可选的,所述相邻高位地址数据序列对应的地址转换函数F1+1包括非线性Sbox函数S1+1以及线性P置换函数P 1+1,所述线性P置换函数P1+1适于对所述非线性Sbox函数S 1+1的输出进行线性变换,所述将第一运算结果与相邻高位地址数据序列对应的输出数据进行第二运算,包括:将所述第一运算结果与所述地址转换函数F1+1中的非线性Sbox函数S1+1的输出数据进行第二运算。
[0018]可选的,所述第二运算包括:异或运算,或模加运算。
[0019]可选的,所述第一运算包括:异或运算,或模加运算。
[0020]可选的,所述地址总线中地址数据转换方法还包括:在&的长度与B 1+1的长度不等时,将长度较短的地址数据序列扩展至与长度较长的地址数据序列的长度相等。
[0021]为解决上述问题,本发明实施例还提供了一种地址总线中地址数据转换装置,包括:
[0022]第一获取单元,用于获取所有地址总线对应的地址数据,将所述地址数据从高位至低位划分成N份,得到N个地址数据序列,所述N个地址数据序列存在一一对应的地址转换函数;
[0023]第一计算单元,用于将当前地址数据序列B1与对应的密钥K 1进行第一运算,得到第一运算结果;
[0024]第二计算单元,用于将第一运算结果与相邻高位地址数据序列B1+1对应的输出数据进行第二运算;
[0025]地址转换单元,用于在当前地址数据序列B1为最高位地址数据序列时,将所述第一运算结果输入至对应的地址转换函数F1,获取当前地址数据序列B1对应的输出地址数据;在当前地址数据序列B1为非最高位地址数据序列时,将第二运算结果输入至地址转换函数F1,获取当前地址数据序列&对应的输出地址数据。
[0026]可选的,所述第二计算单元用于:将所述第一运算结果与相邻高位地址数据序列对应的地址转换函数的输入数据或输出数据进行第二运算。
[0027]可选的,所述第二计算单元用于:在所述相邻高位数据序列对应的地址转换函数F1+1包括非线性Sbox函数S 1+1以及线性P置换函数P 1+1时,将所述第一运算结果与所述地址转换函数F1+1中的非线性Sbox函数S 1+1的输出数据进行第二运算。
[0028]可选的,所述地址总线中地址数据转换装置还包括:扩展单元,用于在当前地址数据序列B1的长度与相邻高位地址数据序列B 1+1的长度不等时,将长度较短的地址数据序列扩展至与长度较长的地址数据序列的长度相等。
[0029]与现有技术相比,本发明实施例的技术方案具有以下优点:
[0030]在当前地址数据为非最高位地址数据序列时,将第一运算结果与相邻高位地址数据序列B1+1对应的输出数据进行第二运算后,将第二运算结果输入至地址转换函数,获取对应的输出地址数据。也就是说,应的输出地址数据与B 1+1对应的输出数据相关,在B 1+1对应的输出数据发生改变时,应的输出地址数据相应发生改变。而在B i对应的输出数据发生改变时,不会对B1+1的输出数据产生影响,即:高位地址数据的变化会逐级向低位传输,低位地址数据对应的输出地址数据受高位地址数据的影响。由于高位地址数据不受低位地址数据的影响,因此在进行地址转换时,总线翻转较少,从而可以降低地址转换过程中的功耗。
【附图说明】
[0031]图1是本发明实施例中的一种地址总线中地址数据转换方法的流程图;
[0032]图2是本发明实施例中的一种地址总线中地址数据转换示意图;
[0033]图3是本发明实施例中的另一种地址总线中地址数据转换示意图;
[0034]图4是本发明实施例中的又一种地址总线中地址数据转换示意图;
[0035]图5是本发明实施例中的一种地址总线中地址数据转换装置的结构示意图。
【具体实施方式】
[0036]在现有技术中,在处理器将信息的所有数据对应的地址映射到内存中时,通常采用地址乱序或者加密算法对地址进行处理。然而,地址乱序没有密钥参与,在进行映射时仍存在确切的规律,仍比较容易受到攻击。在对安全性能需求较高的场合,地址乱序并不适用。采用加密算法对地址进行处理,可以提高数据安全性。然而,加密算法Ibit的输入地址变化会导致输出扰乱地址的很多bit都发生变化,在总线上表现为总线翻转较多,功耗较大。
[0037]在本发明实施例中,在当前地址数据为非最高位地址数据序列时,将第一运算结果与相邻高位地址数据序列B1+1对应的输出数据进行第二运算后,将第二运算结果输入至地址转换函数,获取对应的输出地址数据。也就是说,B1对应的输出地址数据与B 1+1对应的输出数据相关,在B1+1对应的输出数据发生改变时,B 3寸应的输出地址数据相应发生改变。而在应的输出数据发生改变时,不会对B 1+1的输出数据产生影响,即:高位地址数据的变化会逐级的向低位传输,低位地址数据对应的输出地址数据受高位地址数据的影响。由于高位地址数据不受低位地址数据的影响,因此在进行地址转换时,总线翻转较少,从而可以降低地址转换过程中的功耗。
[0038]为使本发明实施例的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
[0039]步骤S101,获取所有地址总线对应的地址数据,将所述地址数据从高位至低位划分成N份,得到N个地址数据序列。
[0040]在实际应用中,可以预先获取地址总线中所有地址总线对应的地址数据。例如,对应于内存地址为64K的地址总线,其位宽为16位,即地址总线的数目为16根。针对于每一根地址总线,均存在与其对应的地址数据,地址数据的值为“O”或“I”。即内存地址为64K的地址总线对应的地址数据为16位,16位地址数据可以以A15?A。表示,A 15表示为最高位地址总线对应的地址数据,A。表示为最低位地址总线对应的地址数据。
[0041 ] 在本发明实施例中,可以将16位的地址数据等分成N份,得到N个地址数据序列,N个地址数据序列的长度相同,即N个数据序列中包括的地址数据的数量相同。
[0042]例如,将16位的地址数据从高位至低位划分成4份,得到4个地址数据序列。4个地址数据序列依次为BpBpBpB1,其中,地址数据序列B4中包括的地址数据为:A 15、A14、A13、A12;地址数据序列B 3中包括的地址数据为:A MAll^AyA8;地址数据序列B 2中包括的地址数据为:A7、A6、A5、A4;地址数据序列B i中包括的地址数据为:A 3、A2、An A。。
[0043]在本发明其他实施例中,也可以将16位的地址数据等分成8份,也可以将16为的地址数据等分成2份,还可以将16位的地址数据等分成16份等。
[0044]在本发明实施例中,对应于每一个地址数据序列,均可以预设有与其--对应的地址转换函数。例如,对应于地址数据序列B4,存在对应的地址转换函数F4。又如,对应于地址数据序列B3,存在对应的地址转换函数F3。在实际应用中,不同地址数据序列对应的地址转换函数可以相同,也可以不同。可以根据实际的应用场景,针对不同的地址数据序列选择对应的地址转换函数,此处不做赘述。
[0045]在本发明实施例中,地址转换函数可以有多种实现方式选择。例如,地址转换函数可以为线性映射函数,也可以为非线性映射函数(例如Sbox),地址转换函数还可以为包括非线性映射以及线性映射的函数。例如,地址转换函数可以包括:非线性的Sbox函数以及线性的P置换函数。在本发明其他实施例中,地址转换函数还可以为其他类型的函数。
[0046]步骤S102,将当前地址数据序列B1与对应的密钥K i进行第一运算,得到第一运算结果。
[0047]在具体实施中,可以预先设置当前数据序列B1对应的密钥K 10第一运算可以是模加运算,也可以是异或运算,还可以是其他类型的运算。例如,在本发明一实施例中,将当前数据序列B3中的地址数据与对应的密钥K 3进行模加运算。
[0048]在本发明实施例中,每一个数据序列对应的密钥可以相同,也可以不同,即当前数据序列B3对应的密钥K3可以与数据序列B2对应的密钥K2相同,也可以不同。可以根据实际的应用场景选择与数据序列对应的密钥,此处不做赘述。
[0049]在本发明实施例中,在步骤S102执行完成后,可以先判断当前地址数据序列81是否为最高位地址数据序列。在当前地址数据序列B1S最高位地址数据序列B #寸,执行步骤S103 ;在当前地址数据序列B1为非最高位地址数据序列时,执行步骤S104。
[0050]例如,地址总线对应的地址数据序列为B4、B3, B2, B10则在当前地址数据序列为B4时,判定当前数据序列为最高位地址数据序列,执行步骤S103。在当前数据序列为&时,判定当前数据序列为非最高位地址数据序列,执行步骤S104。
[0051]步骤S103,在当前地址数据序列B1为最高位地址数据序列时,将所述第一运算结果输入至对应的地址转换函数Fi,获取当前地址数据序列应的输出地址数据。
[0052]在具体实施中,当前地址数据序列B1S最高位地址数据序列B #寸,可以将第一运算的结果作为Bn对应的地址转换函数F ,的输入。
[0053]在本发明一实施例中,地址转换函数FnS Sbox函数。通过将第一运算的结果作为Sbox函数的输入量,即可获取对应的映射值,即为当前地址数据序列应的输出地址数据Bn’。
[0054]例如,当前地址数据序列为最高位地址数据序列B4,将地址数据序列B4*的地址数据与对应的密钥K4进行异或运算,将得到的运算结果输入至B 4对应的Sbox函数中,将得到的结果作为地址数据序列B4对应的输出地址数据B 4’。
[0055]步骤S104,在当前地址数据序列B1为非最高位地址数据序列时,将第一运算结果与相邻高位地址数据序列B1+1对应的输出数据进行第二运算。
[0056]在具体实施中,第二运算可以是模加运算,也可以是异或运算,还可以是其他类型的运算,此处不做赘述。
[0057]在具体实施中,例如,地址数据序列从高位至低位依次为B4、B3, B2, B10在当前地址数据序列为B2时,即当前地址数据序列为非最高位地址数据序列时,将第一运算结果与相邻高位地址数据序列B3对应的输出数据进行第二运算。
[0058]在本发明实施例中,相邻高位地址数据序列B1+1对应的输出数据可以是:地址数据序列B1+1对应的地址转换函数F1+1的输入数据,也即地址数据序列B 1+1中的数据与对应的密钥K1+1进行运算之后的结果R1+1。地址数据序列B1+1对应的输出数据也可以是:地址数据序列B1+1对应的地址转换函数Fi+Ι的输出数据。
[0059]分别参照图2和图3,第一运算和第二运算均为异或运算。图2中,B3对应的输出数据为地址数据序列B3中的数据与对应的密钥1(3进行运算之后的结果R3。图3中,83对应的输出数据为地址转换函数F3的输出数据。
[0060]在本发明实施例中,在地址数据序列B1+1对应的地址转换函数F 1+1包括非线性的Sbox函数S1+1以及线性的P置换函数P 1+1时,P置换函数P 1+1适于对非线性的Sbox函数S 1+1的输出进行线性变换。地址数据序列B1+1对应的输出数据还可以是:非线性的Sbox函数P1+1的输出。
[0061]参照图4,给出了本发明实施例中的一种地址数据转换示意图,第二运算为异或运算,地址转换函数F3包括非线性的Sbox函数S 3以及P置换函数P 3o B3对应的输出数据为:F3中非线性的Sbox函数S 3对应的输出数据S 3’。
[0062]步骤S105,将第二运算结果输入至地址转换函数F1,获取当前地址数据序列应的输出地址数据。
[0063]在本发明实施例中,在获取到第二运算结果后,可以将第二运算结果输入到与当前地址数据序列B1对应的地址转换函数F ,通过地址转换函数F i可以获取到与第二运算结果对应的映射值,即为当前地址数据序列中的地址数据对应的输出地址数据。
[0064]在本发明一实施例中,分别参照图2、图3及图4。图2中,B3对应的B3’ =F3 (B3 ? K3), B2对应的 B 2,= F2 (B2 十 K 2 十 B 3 十 K 3) 0 图 3 中,B3对应的 B 3,= F3 (B3 ? K 3),B2 对应的 V = F2(B2? K2? B3’)。图 4 中,B3对应的 B 3’ = F3(B3? K3), B2对应的 B2’=F2(B2? K2? S3’),其中,S3’表示为S3函数的输出数据,FJX)表示为输入变量为X时地址转换函数Fi的值。
[0065]在本发明实施例中,还可以将所有地址总线对应的地址数据划分成N个长度不等的地址数据序列。例如,地址数据序列包括地址数据:A 15、A14、A13;地址数据序列B 4中包括地址数据:A12、Ain A10^ A9;地址数据序列B 3中包括地址数据:A 8、A7、A6、A5;地址数据序列B2中包括:A 4、A3、A2;地址数据序列B:中包括的地址数据为:A n A。。
[0066]在上述情况中,由于相邻高位或低位地址数据序列的长度与当前地址数据序列的长度不等,因此,相邻高位地址数据序列的运算输出无法直接作为当前地址数据序列运算的输入。为解决上述问题,可以将长度较短的地址数据序列扩展至与长度较长的地址数据序列的长度相等。
[0067]例如,地址数据序列B5*包括地址数据:A 15、A14、A13;地址数据序列B 4中包括地址数据:A12、An、A1(]、A9,即地址数据序列B5的数据序列长度为3,地址数据序列B 4的数据序列长度为4,则将地址数据序列B5*的数据扩展至4位。例如,可以在地址数据序列B 5的最高位补O或补1,也可以在地址数据序列B5的最低位补O或补1,或采用其他的扩展方式,此处不再累述。
[0068]由此可见,在当前地址数据为非最高位地址数据序列时,将第一运算结果与相邻高位地址数据序列B1+1对应的输出数据进行第二运算后,将第二运算结果输入至地址转换函数,获取对应的输出地址数据。也就是说,B1对应的输出地址数据与B 1+1对应的输出数据相关,在B1+1对应的输出数据发生改变时,B 3寸应的输出地址数据相应发生改变。而在B 3寸应的输出数据发生改变时,不会对B1+1的输出数据产生影响,即:高位地址数据的变化会逐级的向低位传输,低位地址数据对应的输出地址数据受高位地址数据的影响。由于高位地址数据不受低位地址数据的影响,因此在进行地址转换时,总线翻转较少,从而可以降低地址转换过程中的功耗。
[0069]参照图5,本发明实施例还提供了一种地址总线中地址数据转换装置50,包括:第一获取单元501、第一计算单元502、第二计算单元503以及地址转换单元504,其中:
[0070]第一获取单元501,用于获取所有地址总线对应的地址数据,将所述地址数据从高位至低位划分成N份,得到N个地址数据序列,所述N个地址数据序列存在一一对应的地址转换函数;
[0071]第一计算单元502,用于将当前地址数据序列B1与对应的密钥K 1进行第一运算,得到第一运算结果;
[0072]第二计算单元503,用于将第一运算结果与相邻高位地址数据序列B1+1对应的输出数据进行第二运算;
[0073]第二获取单元504,用于在当前地址数据序列B1为最高位地址数据序列时,将所述第一运算结果输入至对应的地址转换函数F1,获取当前地址数据序列B1对应的输出地址数据;在当前地址数据序列B1为非最高位地址数据序列时,将第二运算结果输入至地址转换函数F1,获取当前地址数据序列&对应的输出地址数据。
[0074]在具体实施中,所述第二计算单元503可以用于:将所述第一运算结果与相邻高位地址数据序列对应的地址转换函数的输入数据或输出数据进行第二运算。
[0075]在具体实施中,所述第二计算单元503可以用于:在所述相邻高位数据序列对应的地址转换函数Fi+1包括非线性Sbox函数S i+1以及线性P置换函数P i+1时,将所述第一运算结果与所述地址转换函数F1+1中的非线性Sbox函数S 1+1的输出数据进行第二运算。
[0076]在具体实施中,所述地址总线中地址数据转换装置50还可以包括:扩展单元,可以用于在当前地址数据序列B1的长度与相邻高位地址数据序列B 1+1的长度不等时,将长度较短的地址数据序列扩展至与长度较长的地址数据序列的长度相等。
[0077]本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过硬件来完成。
[0078]虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
【主权项】
1.一种地址总线中地址数据转换方法,其特征在于,包括: 获取所有地址总线对应的地址数据,将所述地址数据从高位至低位划分为N份,得到N个地址数据序列,所述N个地址数据序列存在一一对应的地址转换函数; 将当前地址数据序列B1与对应的密钥K i进行第一运算,得到第一运算结果;在当前地址数据序列B1为最高位地址数据序列时,将所述第一运算结果输入至对应的地址转换函数F1,获取当前地址数据序列B1对应的输出地址数据;在当前地址数据序列B i为非最高位地址数据序列时,将第一运算结果与相邻高位地址数据序列B1+1对应的输出数据进行第二运算,将第二运算结果输入至地址转换函数F1,获取当前地址数据序列B1对应的输出地址数据。2.如权利要求1所述的地址总线中地址数据转换方法,其特征在于,所述N个地址数据序列的长度相等。3.如权利要求2所述的地址总线中地址数据转换方法,其特征在于,所述将第一运算结果与相邻高位地址数据序列对应的输出数据进行第二运算,包括:将所述第一运算结果与相邻高位地址数据序列对应的地址转换函数的输入数据或输出数据进行第二运算。4.如权利要求2所述的地址总线中地址数据转换方法,其特征在于,所述地址转换函数包括以下至少一种:线性映射函数,非线性映射函数。5.如权利要求4所述的地址总线中地址数据转换方法,其特征在于,所述线性映射函数为P置换函数,所述非线性映射函数为Sbox函数。6.如权利要求5所述的地址总线中地址数据转换方法,其特征在于,所述相邻高位地址数据序列对应的地址转换函数Fi+1包括非线性Sbox函数S i+1以及线性P置换函数P i+1,所述线性P置换函数P1+1适于对所述非线性Sbox函数S 1+1的输出进行线性变换,所述将第一运算结果与相邻高位地址数据序列对应的输出数据进行第二运算,包括:将所述第一运算结果与所述地址转换函数F1+1中的非线性Sbox函数S 1+1的输出数据进行第二运算。7.如权利要求3或6所述的地址总线中地址数据转换方法,其特征在于,所述第二运算包括:异或运算,或模加运算。8.如权利要求2所述的地址总线中地址数据转换方法,其特征在于,所述第一运算包括:异或运算,或模加运算。9.如权利要求1所述的地址总线中地址数据转换方法,其特征在于,还包括:在&的长度与B1+1的长度不等时,将长度较短的地址数据序列扩展至与长度较长的地址数据序列的长度相等。10.一种地址总线中地址数据转换装置,其特征在于,包括: 第一获取单元,用于获取所有地址总线对应的地址数据,将所述地址数据从高位至低位划分成N份,得到N个地址数据序列,所述N个地址数据序列存在一一对应的地址转换函数; 第一计算单元,用于将当前地址数据序列B1与对应的密钥K i进行第一运算,得到第一运算结果; 第二计算单元,用于将第一运算结果与相邻高位地址数据序列B1+1对应的输出数据进行第二运算; 地址转换单元,用于在当前地址数据序列B1为最高位地址数据序列时,将所述第一运算结果输入至对应的地址转换函数F1,获取当前地址数据序列B1对应的输出地址数据;在当前地址数据序列B1为非最高位地址数据序列时,将第二运算结果输入至地址转换函数F1,获取当前地址数据序列应的输出地址数据。11.如权利要求10所述的地址总线中地址数据转换装置,其特征在于,所述第二计算单元用于:将所述第一运算结果与相邻高位地址数据序列对应的地址转换函数的输入数据或输出数据进行第二运算。12.如权利要求10所述的地址总线中地址数据转换装置,其特征在于,所述第二计算单元用于:在所述相邻高位数据序列对应的地址转换函数F1+1包括非线性Sbox函数S 1+1以及线性P置换函数P1+1时,将所述第一运算结果与所述地址转换函数F 1+1中的非线性Sbox函数S1+1的输出数据进行第二运算。13.如权利要求10所述的地址总线中地址数据转换装置,其特征在于,还包括:扩展单元,用于在当前地址数据序列B1的长度与相邻高位地址数据序列B1+1的长度不等时,将长度较短的地址数据序列扩展至与长度较长的地址数据序列的长度相等。
【文档编号】G06F12/14GK105988942SQ201510078896
【公开日】2016年10月5日
【申请日】2015年2月13日
【发明人】张志敏, 李清, 郭丽敏, 王立辉, 刘丹
【申请人】上海复旦微电子集团股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1