一种数据加密方法和装置的制造方法

文档序号:8285001阅读:329来源:国知局
一种数据加密方法和装置的制造方法
【技术领域】
[0001]本发明涉及数据安全的技术领域,特别涉及一种数据加密方法和装置。
【背景技术】
[0002]在现有的加密电路中,不同信号到达运算电路的时序存在差异,这可能导致数据泄露的风险。
[0003]因此,需要提出一种新的数据加密方法和装置,以提高数据的安全性。

【发明内容】

[0004]本发明解决的问题是提出一种新的数据加密方法和装置,以提高数据的安全性。
[0005]本发明的实施例提供了一种数据加密方法,所述方法包括:将原始数据的η个第一分组分别和η个掩码进行异或,获得第一数据的η个第二分组,所述η个掩码为η个不同的随机数分别进行预设线性变换后的值,其中,第k个所述第二分组对应第k个掩码,所述第k个掩码对应第k个随机数,I;将所述第一数据的第2个第二分组至第η个第二分组和第一轮密钥进行异或后的第一值,第一数据的第I个第二分组对应的所述随机数和新增第一随机数进行异或后的第二值作为预设非线性变换的输入进行所述预设非线性变换,并将所述非线性变换后的值进行所述预设线性变换;将所述预设线性变换后的值和所述第一数据的第I个第二分组异或后的值作为第二数据的第η个第二分组,并将所述新增第一随机数经过所述预设线性变换后的值作为所述第二数据的第η个第二分组对应的掩码;将所述第一数据的第j个第二分组的值作为所述第二数据的第j-ι个第二分组的值,并将所述第一数据的第j个第二分组对应的掩码作为所述第二数据的第j-ι个第二分组对应的掩码,I < j彡η。
[0006]可选地,所述方法还包括:将所述第二数据的第2个第二分组至第η个第二分组和第二轮密钥进行异或后的第三值,第二数据的第I个第二分组对应的随机数和新增第二随机数进行异或后的第四值作为预设非线性变换的输入进行所述预设非线性变换,并将所述非线性变换后的值进行所述预设线性变换;将所述预设线性变换后的值和所述第二数据的第I个第二分组异或后的值作为第三数据的第η个第二分组,并将所述新增第二随机数经过所述预设线性变换后的值作为所述第三数据的第η个第二分组对应的掩码;将所述第二数据的第j个第二分组的值作为所述第三数据的第j-ι个第二分组的值,并将所述第二数据的第j个第二分组对应的掩码作为所述第三数据的第j-ι个第二分组对应的掩码,I< j < η。
[0007]本发明的实施例还提供了一种数据加密装置,所述装置包括:第一处理单元,用于将原始数据的η个第一分组分别和η个掩码进行异或,获得第一数据的η个第二分组,所述η个掩码为η个不同的随机数分别进行预设线性变换后的值,其中,第k个所述第二分组对应第k个掩码,所述第k个掩码对应第k个随机数,l^k^n ;第二处理单元,用于将所述第一数据的第2个第二分组至第η个第二分组和第一轮密钥进行异或后的第一值,第一数据的第I个第二分组对应的所述随机数和新增第一随机数进行异或后的第二值作为预设非线性变换的输入进行所述预设非线性变换,并将所述非线性变换后的值进行所述预设线性变换;第三处理单元,用于将所述预设线性变换后的值和所述第一数据的第I个第二分组异或后的值作为第二数据的第η个第二分组,并将所述新增第一随机数经过所述预设线性变换后的值作为所述第二数据的第η个第二分组对应的掩码;第四处理单元,用于将所述第一数据的第j个第二分组的值作为所述第二数据的第j-ι个第二分组的值,并将所述第一数据的第j个第二分组对应的掩码作为所述第二数据的第j-ι个第二分组对应的掩码,I < j < η。
[0008]可选地,所述装置还包括:第五处理单元,用于将所述第二数据的第2个第二分组至第η个第二分组和第二轮密钥进行异或后的第三值,第二数据的第I个第二分组对应的随机数和新增第二随机数进行异或后的第四值作为预设非线性变换的输入进行所述预设非线性变换,并将所述非线性变换后的值进行所述预设线性变换;第六处理单元,用于将所述预设线性变换后的值和所述第二数据的第I个第二分组异或后的值作为第三数据的第η个第二分组,并将所述新增第二随机数经过所述预设线性变换后的值作为所述第三数据的第η个第二分组对应的掩码;第七处理单元,用于将所述第二数据的第j个第二分组的值作为所述第三数据的第j-ι个第二分组的值,并将所述第二数据的第j个第二分组对应的掩码作为所述第三数据的第j_l个第二分组对应的掩码,Kj^n0
[0009]与现有技术相比,本发明的实施例具有以下优点:
[0010]在上述技术方案中,和所述原始数据的η个第一分组进行异或的η个掩码不是η个随机数,而是将η个随机数进行预设线性变换后的值,这使得在将所述第一数据的第2个第二分组至第η个第二分组和第一轮密钥进行异或后的第一值,以及第一数据的第I个第二分组对应的所述随机数和新增第一随机数进行异或后的第二值进行预设非线性变换和所述预设线性变换后,只需要将所述预设线性变换后的值和所述第一数据的第I个第二分组异或后就可以获得第二数据的第η个第二分组,显然,在获得所述第二数据的第η个第二分组的异或运算中,只有两个输入值,它们分别为所述预设线性变换后的值和所述第一数据的第I个第二分组,也就是说,在获得所述第二数据的第η个第二分组的异或运算中,不存在过多的输入值,因此也就无需担心因多个输入值到达的时序不一致而导致数据泄露的情况。
【附图说明】
[0011]图1是现有技术中SM4防护架构中数据加密方法的示意图;
[0012]图2是本发明一实施例中数据加密方法的流程图;
[0013]图3是本发明一实施例中数据加密方法的示意图;
[0014]图4是本发明另一实施例中数据加密方法的流程图;
[0015]图5是本发明另一实施例中数据加密方法的示意图;
[0016]图6是本发明一实施例中数据加密装置的结构示意图;
[0017]图7是本发明另一实施例中数据加密装置的结构示意图。
【具体实施方式】
[0018]SM4算法是一种分组算法。该算法的分组长度为128比特,密钥长度为128比特。概算的加密算法与密钥扩展算法都采用32轮非线性迭代结构。
[0019]图1是现有技术中SM4防护电路中每一轮加密运算中数据加密方法的示意图。经研究,发明人发现,在每一轮所述加密运算过程中存在泄露数据的风险。请参考图1,图1中的第二异或门的五个输入分别为XO'、Lout、M0、L(M4)和M4,所述五个输入到达所述第二异或门的时间可能不一致。例如,当XO'和MO的信号先到达所述第二异或门时,将可能导致原码XO的泄露。为了进一步提高数据的安全性,本发明的实施例提出了一种新的数据加密方法和装置。
[0020]为详细说明本发明的技术内容、构造特征、所实现目的及效果,下面结合附图对本发明的【具体实施方式】做详细的说明。在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,因此本发明不受下面公开的具体实施例的限制。
[0021]图2是本发明一实施例中数据加密方法的流程图。如图2所示,所述方法包括步骤 SlOl 至 S104。
[0022]下面将结合图2对所述步骤SlOl至S104进行详细说明。
[0023]步骤S101,将原始数据的η个第一分组分别和η个掩码进行异或,获得第一数据的η个第二分组,所述η个掩码为η个不同的随机数分别进行预设线性变换后的值,其中,第k个所述第二分组对应第k个掩码,所述第k个掩码对应第k个随机数,I < k < η。
[0024]例如,在图3中,将原始数据的4个第一分组Χ0、X1、Χ2和Χ3分别和4个掩码L (MO)、L (Ml)、L (M2)和L (M3)进行异或,获得第一数据的η个第二分组XO'、Χ1'、Χ2'和Χ3'。其中,所述4个掩码L (MO)、L (Ml)、L (M2)和L
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1