一种数据处理方法及装置与流程

文档序号:15844958发布日期:2018-11-07 08:53阅读:137来源:国知局
一种数据处理方法及装置与流程

本发明涉及数据处理方法及装置,尤其是涉及一种对密钥使用地址变换的数据处理方法及装置。

背景技术

现有的处理器通常不对使用的内存数据进行加密,但是部分处理器使用对称加密算法对内存数据进行加密。但在使用相同密钥产生大量被加密数据的前提下,攻击者也可以通过检测密文数据的碰撞,从而找到明文数据之间的相关性。

某些处理器使用的加密机制,将地址与明文数据变换,再进行对称加密,一定程度上增加了破解难度。但是攻击者仍然可以通过对相同密文数据在不同地址做解密,找到变换规律,从而使变换加密强度退化成和普通对称加密算法相同的强度,从而进行攻击。



技术实现要素:

本发明将物理地址信息值做变换后与对称加密算法中使用的密钥做变换,从而使得加密后数据与参与变换的地址信息无明显的相关性,有效的增加了数据的安全性。

为实现上述目的,本发明第一方面提供了一种数据处理方法,包括以下步骤:获取明文数据和用于存储密文数据的物理内存地址;将用于存储密文数据的物理内存地址值与第一密钥进行运算,获得第二密钥;通过第二密钥对明文数据进行加密运算,得到密文数据;将密文数据存储在用于存储密文数据的物理内存地址。

优选地,将用于存储密文数据的物理内存地址值与第一密钥进行运算,获得第二密钥步骤,具体包括:将用于存储密文数据的物理内存地址值和第一密钥进行线性变换,获得第二密钥。

优选地,线性变换为,将用于存储密文数据的物理内存地址值和第一密钥进行异或运算。

优选地,将用于存储密文数据的物理内存地址值与第一密钥进行运算,获得第二密钥步骤,具体包括:将用于存储密文数据的物理内存地址值和第一密钥进行非线性变换,获得第二密钥。

优选地,非线性变换为,将用于存储密文数据的物理内存地址值和第一密钥的值顺序排列,得到多位序列;利用杂凑算法对多位序列进行运算,获得多位序列的杂凑值;取部分杂凑值作为第二密钥。

优选地,第一密钥为对称加密算法的密钥。

优选地,对称加密算法为国密sm4算法。

本发明第二方面提供了一种数据处理方法,包括以下步骤:获取密文数据和用于存储密文数据的物理内存地址;将用于存储密文数据的物理内存地址值与第一密钥进行运算,获得第二密钥;通过第二密钥对密文数据进行解密运算,得到明文数据。

优选地,将用于存储密文数据的物理内存地址值与第一密钥进行运算,获得第二密钥步骤,具体包括:将用于存储密文数据的物理内存地址值和第一密钥进行线性变换,获得第二密钥。

优选地,线性变换为,将用于存储密文数据的物理内存地址值和第一密钥进行异或运算。

优选地,将用于存储密文数据的物理内存地址值与第一密钥进行运算,获得第二密钥步骤,具体包括:将用于存储密文数据的物理内存地址值和第一密钥进行非线性变换,获得第二密钥。

优选地,非线性变换为,将用于存储密文数据的物理内存地址值和第一密钥的值顺序排列,得到多位序列;利用杂凑算法对多位序列进行运算,获得多位序列的杂凑值;取部分杂凑值作为第二密钥。

优选地,第一密钥为对称加密算法的密钥。

优选地,对称加密算法为国密sm4算法。

本发明第三方面提供了一种数据处理装置,包括:采集模块,当对数据进行加密时,用于获取明文数据和用于存储密文数据的物理内存地址;以及,当对数据进行解密时,用于获取密文数据和用于存储密文数据的物理内存地址。计算模块,用于将用于存储密文数据的物理内存地址值与第一密钥进行运算,获得第二密钥。处理模块,当对数据进行加密时,用于通过第二密钥对明文数据进行加密运算,得到密文数据;以及,当对数据进行解密时,用于通过第二密钥对密文数据进行解密运算,得到明文数据;密文数据存储在用于存储密文数据的物理内存地址。

优选地,计算模块具体用于:将用于存储密文数据的物理内存地址值和第一密钥进行线性变换,获得第二密钥。

优选地,线性变换为,将用于存储密文数据的物理内存地址值和第一密钥进行异或运算。

优选地,计算模块具体用于:将用于存储密文数据的物理内存地址值和第一密钥进行非线性变换,获得第二密钥。

优选地,非线性变换为,将用于存储密文数据的物理内存地址值和第一密钥的值顺序排列,得到多位序列;利用杂凑算法对多位序列进行运算,获得多位序列的杂凑值;取部分杂凑值作为第二密钥。

优选地,计算模块,具体用于通过对称加密算法应用的第一密钥进行运算。

优选地,对称加密算法为国密sm4算法。

相同明文时,不同地址下密文数据完全不同,即使攻击者把密文数据搬运到自己的物理地址,仍然推不出变换关系,从而使得被加密数据只能在加密的地址得到正确的解密,体现了本发明的加密方式优于现有的内存数据保护机制。

附图说明

图1为现有技术提供的一种数据加密解密方法示意图;

图2为现有技术提供的另一种数据加密解密方法示意图;

图3为本发明实施例提供的一种数据处理方法涉及的加密方法流程示意图;

图4为本发明实施例提供的一种数据处理方法涉及的解密方法流程示意图;

图5为本发明实施例提供的一种数据处理装置示意图;

图6为根据本发明实施例实现的一种数据处理方法示意图。

具体实施方式

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

密钥(key)是一种参数,加密时通过密码算法将明文数据转换为密文数据,解密时通过密码算法将密文数据转换为明文数据都要用到密钥。在使用对称加密算法时,加密和解密用到的密钥是相同的。

本专利申请文件中,明文数据转换为密文数据,密码算法被称为“加密算法”,与之对应地,为密文数据转换明文数据,密码算法被称为“解密算法”,这是本领域技术人员可以理解的术语,一个完整的密码算法包括了加密算法和解密算法,但在本领域,通常也将“加密算法”作为“密码算法”的简称,如“对称加密算法”并不只有加密算法,而是同时包括了加密算法和解密算法。

图1为现有技术提供的一种数据加密解密方法示意图。

如图1所示,假设物理内存地址0x8ea1a0处存放的为攻击者需要获取的用户数据,并假设明文数据为16进制的01,23,45,67,89,ab,cd,ef,fe,dc,ba,98,76,54,32,10,假设攻击者可以读取用户物理内存地址存储的密文数据,并且可以读写物理内存地址0xdcfae0。现有的一种方案如图1所示,在相同明文时,通过相同的国密sm4算法加密后,不同地址下密文数据完全相同。换句话说,如果攻击者把密文数据搬运到另一个物理地址,运用相应的国密sm4算法解密,那么直接就可以获取用户数据,得到明文。

图2为现有技术提供的另一种数据加密解密方法示意图。

现有的另一种方案如图2所示。同样假设物理内存地址0x8ea1a0处存放的为攻击者需要获取的用户数据,并假设明文数据为16进制的01,23,45,67,89,ab,cd,ef,fe,dc,ba,98,76,54,32,10,假设攻击者可以读取用户物理内存地址存储的密文数据,并且可以读写物理内存地址0xdcfae0。相同明文时,不同地址下通过明文与地址进行变换后再加密,得到的密文数据完全不同。但攻击者把密文数据搬运到自己的物理地址,能够根据不同明文的差异反推出变换关系,从而修正地址不同造成的差异,使得加密效果退化为如图1所示的方法。

图3为本发明实施例提供的一种数据处理方法涉及的加密方法流程示意图。如图3所示,该方法包括步骤s101-s103:

s101,获取明文数据和用于存储密文数据的物理内存地址;

s102,将用于存储密文数据的物理内存地址与第一密钥进行运算,获得第二密钥;

具体地,将用于存储密文数据的物理内存地址值和第一密钥进行线性变换,获得第二密钥。线性变换为,将用于存储密文数据的物理内存地址值和第一密钥进行异或运算。或将用于存储密文数据的物理内存地址值和第一密钥进行非线性变换,获得第二密钥。非线性变换为,将用于存储密文数据的物理内存地址值和第一密钥的值顺序排列,得到多位序列;利用杂凑算法对多位序列进行运算,获得多位序列的杂凑值;取部分杂凑值作为第二密钥。

s103,通过第二密钥对明文数据进行加密运算,得到密文数据;将密文数据存储在用于存储密文数据的物理内存地址。第一密钥为对称加密算法应用的第一密钥。在一个实施例中,对称加密算法为国密sm4算法。本发明是对密钥进行变换,本领域技术人员应当注意,国密sm4算法也可替换为其他的对称加密算法,譬如aes算法(advancedencryptionstandard,高级加密标准算法)。

本发明实施例通过将存储密文数据的物理内存地址信息做变换后与对称加密算法中使用的密钥做变换,从而使得加密后数据与参与变换的地址信息无明显的相关性,有效的增加了数据的安全性。

图4为本发明实施例提供的一种数据处理方法涉及的解密方法流程示意图。如图4所示,该方法包括步骤s201-s203:

s201,获取密文数据和存储密文数据的物理内存地址;

s202,将用于存储密文数据的物理内存地址值与第一密钥进行运算,获得第二密钥;

具体地,将用于存储密文数据的物理内存地址值和第一密钥进行线性变换,获得第二密钥。线性变换为,将用于存储密文数据的物理内存地址值和第一密钥进行异或运算。或将用于存储密文数据的物理内存地址值和第一密钥进行非线性变换,获得第二密钥。非线性变换为,将用于存储密文数据的物理内存地址值和第一密钥的值顺序排列,得到多位序列;利用杂凑算法对多位序列进行运算,获得多位序列的杂凑值;取部分杂凑值作为第二密钥。

s203,通过所述第二密钥对密文数据进行解密运算,得到明文数据。第一密钥为对称加密算法应用的第一密钥。在一个实施例中,对称加密算法为国密sm4算法。本领域技术人员应当注意,国密sm4算法也可替换为其他的对称加密算法,譬如aes算法(advancedencryptionstandard,高级加密标准算法)。

需要说明的是,第一密钥为对称加密算法应用的第一密钥,其中,本实施例中的对称加密算法与图3所示的加密方法中的对称加密算法为同一对称加密算法。解密方法中涉及到的第一密钥与图3所示的加密方法中的第一密钥为同一密钥。

本发明将存储密文数据的物理内存地址信息做变换后与对称加密算法中使用的密钥做变换,从而使得加密后数据与参与变换的地址信息无明显的相关性,有效的增加了数据的安全性。

图5为本发明实施例提供的一种数据处理装置示意图。如图5所示,该装置包括:

采集模块,当对数据进行加密时,用于获取明文数据和用于存储密文数据的物理内存地址;以及,当对数据进行解密时,用于获取密文数据和用于存储密文数据的物理内存地址;

计算模块,用于将用于存储密文数据的物理内存地址值与第一密钥进行运算,获得第二密钥;

具体地,计算模块将用于存储密文数据的物理内存地址值和第一密钥进行线性变换,获得第二密钥。线性变换为,将所述用于存储密文数据的物理内存地址值和所述第一密钥进行异或运算。或计算模块将用于存储密文数据的物理内存地址值和第一密钥进行非线性变换,获得第二密钥。非线性变换为,将用于存储密文数据的物理内存地址值和第一密钥的值顺序排列,得到多位序列;利用杂凑算法对所述多位序列进行运算,获得多位序列的杂凑值;取部分杂凑值作为第二密钥。第一计算模块具体用于通过对称加密算法应用的第一密钥进行运算。

处理模块,当对数据进行加密时,用于通过第二密钥对明文数据进行加密运算,得到密文数据;以及,当对数据进行解密时,用于通过第二密钥对密文数据进行解密运算,得到明文数据;密文数据存储在用于存储密文数据的物理内存地址。

上述数据加密装置将数据加密后写入到内存中,本领域技术人员应当注意,加密模块可以是内存控制器mmu,也可以集成在cpu中。本发明实施例通过将存储密文数据的物理内存地址信息做变换后与对称加密算法中使用的密钥做变换,从而使得加密后数据与参与变换的地址信息无明显的相关性,有效的增加了数据的安全性。

图6为根据本发明实施例实现的一种数据处理方法示意图。

如图6所示,本实施例提供一种具体的数据处理方法。其中加密算法采用国密sm4加密,解密算法采用国密sm4解密。但本领域的技术人员应当注意,还可以采用不同的对称加密算法。并采用一种简单的地址线性变换。本实施例中假设物理内存地址0x8ea1a0处存放的为攻击者需要获取的用户数据,并假设明文数据为16进制的01,23,45,67,89,ab,cd,ef,fe,dc,ba,98,76,54,32,10,假设攻击者可以读取用户物理内存地址存储的密文数据,并且可以读写物理内存地址0xdcfae0。

首先,相同的明文下,在不同的物理地址中,得到的密文数据完全不同。如图6上部分,相同的密钥16进制的01,23,45,67,89,ab,cd,ef,fe,dc,ba,98,76,54,32,10与不同的地址进行变换,得到的新的密钥完全不同。再将明文与新密钥通过sm4加密算法进行加密,得到的密文数据也是完全不同的。当用户在正确的物理地址中进行解密。可以通过相同的方法,将密钥与正确的物理地址进行变换,得到正确的新密钥。通过sm4解密算法将密文数据与正确的新密钥进行解密,得到正确的明文数据。而当攻击者将密文数据搬运到自己的物理地址时,将密码通过相同方式与错误的物理地址进行变换后,得到的密钥也是错误的,再将密文数据与错误的密钥通过sm4解密算法进行解密,将得到错误的明文数据,并且攻击者也无法通过差异进行修正,无法推出变换关系。

在一个实施例中,将密钥与地址进行变换,具体采用一种简单的地址线性变化。设存储密文数据64位地址ad=[a0,a1,…,a63];设128位密钥key=[k0,k1,…,k127]。计算新的128位密钥newkey=[k0⊕a0,k1⊕a1,…,k62⊕a62,k63⊕a63,k64⊕a0,k65⊕a1,…,k127⊕a63];最后,利用新的密钥newkey对数据进行后续加解密运算。

在另一个实施例中,将密钥与物理地址值进行变换,具体采用一种简单的地址非线性变换。设存储密文数据64位物理地址值ad=[a0,a1,…,a63];设128位密钥key=[k0,k1,…,k127]。将key和ad组成一个192位序列ka=[k0,k1,…,k127,a0,a1,…,a63]。之后利用杂凑算法计算出序列ka的杂凑值z=sm3(ka),其中z=[z0,z1,…,z255]。然后选取z的前128位作为新密钥newkey=[z0,z1,…,z127]。在另一个实施例中还可以取选取z中任意128位作为新的密钥。最后,利用新的密钥newkey对数据进行加解密运算。值得注意的是,加密密钥与解密密钥之间变换的过程要相同,这样生成的密钥才能够正确的进行加解密运算。同时根据不同的数据,选取密钥的位数也不局限于本实施例中的128位,还可以根据需要任意选取。本实施例中的杂凑算法可以使国密sm3算法。本领域技术人员需要注意的是,sm3是一种非对称算法,在本实施例中,sm3算法用于对密钥和物理地址值进行运算得到新密钥,新密钥用于对数据进行加密和解密的算法仍为对称算法。

同时,本领域的技术人员应当注意,除此之外,实际应用中还可以采用更复杂的地址变换方案。

采用如图6所示方法,在相同明文时,不同地址下密文数据完全不同,即使攻击者把密文数据搬运到自己的物理地址,他仍然推不出变换关系,从而使得被加密数据只能在加密的地址得到正确的解密,证明了本方法的加密方式优于现有的内存数据保护机制。

本发明将存储密文数据的物理内存地址信息做变换后与对称加密算法中使用的密钥做变换,从而使得加密后数据与参与变换的地址信息无明显的相关性,有效的增加了数据的安全性。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1