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

文档序号:8365216阅读:182来源:国知局
一种des加密方法和装置的制造方法
【技术领域】
[0001]本发明涉及数据安全的技术领域,特别涉及一种DES加密方法和装置。
【背景技术】
[0002]随着智能卡技术的不断发展,智能卡芯片的安全性也面临越来越大的挑战。在众多加密算法中,DES算法是一种应用较广的对称加/解密算法。DES算法将64位的明文输入块变为64位的密文输出块,其功能是把输入的64位数据块按位重新组合,并把输出分为L0, RO两部分,每部分各长32位,进行初始置换,然后经过16次迭代运算后得到L16、R16,将此作为输入,进行逆置换,即得到密文输出。其中每一轮DES算法的f函数包括扩展置换、与密钥的异或、S盒代换和P盒置换操作。
[0003]为了抵御各种攻击,技术人员相应地提出了一些解决方法,目前主流的技术有:弓丨入随机数对密码算法执行过程中的中间运算结果进行随机化,使密码模块的功耗依赖于随机化后的中间运算结果,而独立于实际的中间运算结果。在众多抵御方案中,其中研究最为广泛的是在算法中通过引入随机数来消除真实密钥和功耗相关性。2001年,Akkar和Giraud 在施普林格(Springer-Verlag)科技期刊的文献《An Implementat1n of DES andAES Secure against some Attacks》中第一次将掩码技术用于DES算法的防护,算法通过引入掩码随机数X,改变S盒的结构来达到掩盖真实数据的目的。
[0004]在公开号为102983964A的中国专利中引入三个32位随机数X1、X2和X3,并在原有S盒函数的基础上定义了六种不同的新S盒函数SM-Box对算法的中间结果进行掩盖。然而,在该专利中,部分中间数据还是以明文形式存在容易受到攻击。
[0005]因此,需要提出一种新的DES加密方法和装置,以提高数据的安全性。

【发明内容】

[0006]本发明解决的问题是提出一种新的DES加密方法和装置,以提高数据的安全性。
[0007]本发明的实施例提供了一种DES加密方法,所述方法包括:n轮的S盒函数处理,其中,所述η轮S盒函数处理对应的η个S盒函数包括:第i轮的S盒函数为=Si (x)=S (X ? E (X ( (1-l)mod k))) ? P' (-1) (X (i mod k) ? X ( (i_2)mod k)),其中,I ^ i ^ η,k为自然数,i为正整数,X为S盒函数的输入值,X (0)至X (k-Ι)为k个第一随机数掩码,E为扩展置换函数,P~ (-1)为置换函数P的逆置换函数。
[0008]可选地,当k等于4时,所述η轮S盒函数处理对应的η个S盒函数包括:第4j+l轮的 S 盒函数为:S4j+1 (x) = S (x ? E (XO)) ? P—1 (XI ? X3);第 4j+2 轮的 S 盒函数为:S4j+2 (X) = S (x ? E (Xl)) ? P—1 (Χ2 ? Χ0);第 4j+3 轮的 S 盒函数为:S4j+3 (x) = S(x ? E(X2)) ? P^1 (X3 ? XI);第4」+4 轮的 S 盒函数为:S4j+4(x) = S(x θ E(X3)) θ P—1(X0 ? X2),其中j为自然数。
[0009]可选地,当k等于8时,所述η轮S盒函数处理对应的η个S盒函数包括:第8 j+1轮的 S 盒函数为:S8j+1 (x) = S (x ? E (XO)) ? P—1 (XI ? X7);第 8j+2 轮的 S 盒函数为:S8J+2 (X) = S (X ? E (Xl)) ? p-1 (X2 ? XO) ?’第 8j+3 轮的 S 盒函数为 S8J+3 (x) = S(x ? E (X2)) ? pH (X3 ? XI) ?’第 8j+4 轮的 S 盒函数为:S8J+4 (x)= S (x ? E (X3)) ? P-1(X4 ? X2) ?’第 8j+5 轮的 S 盒函数为:S8j+5 (X) = S (x ? E (X4)) ? P^1 (X5 ? X3) ?’第8j+6 轮的 S 盒函数为:S8j+6 (x) = S (x ? E (X5)) ? P^1 (X6 ? X4);第 8j+7 轮的 S 盒函数为:S8j+7 (X)= S (x ? E (X6)) ? P—1 (X7 ? X5);第 8j+8 轮的 S 盒函数为:S8j+8 (x)=S (x ? E (X7)) ? P—1 (X0 ? X6),其中 j 为自然数。
[0010]可选地,所述k个第一随机数掩码X(O)至X(k-1)中每一个第一随机数掩码分别由两个对应的第二随机数掩码进行运算获得。
[0011]本发明的实施例还提供了一种DES加密装置,所述装置包括:S盒加密单元,用于执行η轮的S盒函数处理,其中,所述S盒加密单元对应的η个S盒函数包括:第i轮的S盒函数为:Si (X) =S(X ? E(X ( (1-l)mod k) )) ? P' (-1) (X (i mod k) ? X ( (i_2)modk)),其中,I彡i彡n,k为自然数,i为正整数,X为S盒函数的输入值,X(O)至X(k-l)为k个第一随机数掩码,E为扩展置换函数,P~ (-1)为置换函数P的逆置换函数。
[0012]可选地,当k等于4时,所述S盒加密单元对应的η个S盒函数包括??第4j+l轮的S 盒函数为:S4j+1 (X) = S (X ? E (XO)) ? p-1 (XI ? X3);第 4j+2 轮的 S 盒函数为:S4J+2(X) = S (X ? E (Xl)) ? P—1 (X2 ? X0);第 4j+3 轮的 S 盒函数为:S4j+3 (x) = S (x ? E(X2)) ? P_1(X3 ? XI);第4」+4 轮的 S 盒函数为:S4J+4(x) = S(x ? E(X3)) ? P^1CXO ? X2),其中j为自然数。
[0013]可选地,当k等于8时,所述S盒加密单元对应的η个S盒函数包括??第8j+l轮的S 盒函数为:S8j+1 (x) = S (x ? E (XO)) ? P—1 (XI ? X7);第 8j+2 轮的 S 盒函数为:S8J+2(X) = S (x ? E (Xl)) ? P-1 (Χ2 ? Χ0);第 8j+3 轮的 S 盒函数为 S8j.+3 (x) = S (x ? E(X2)) ? P.1 (X3 θ XI);第 8j+4 轮的 S 盒函数为:S8j+4 (x) = S (x ? E (X3)) ? P^1(X4 ? X2) ?’第 8j+5 轮的 S 盒函数为:S8j+5 (X) = S (x ? E (X4)) ? P^1 (X5 ? X3) ?’第8j+6 轮的 S 盒函数为:S8j+6 (x) = S (x ? E (X5)) ? P^1 (X6 ? X4);第 8j+7 轮的 S 盒函数为:S8j+7 (X)= S (x ? E (X6)) ? P—1 (X7 ? X5);第 8j+8 轮的 S 盒函数为:S8j+8 (x)=S (x ? E (X7)) ? P—1 (X0 ? X6),其中 j 为自然数。
[0014]可选地,所述装置还包括:随机数计算单元,用于根据所述k个第一随机数掩码X(O)至x(k-l)中每一个第一随机数掩码对应的两个第二随机数掩码计算所述第一随机数掩码。
[0015]与现有技术相比,本发明的实施例具有以下优点:通过上述技术方案,在整个DES加密处理过程中,所有中间数据都是带有掩码的,也就是说,所述中间数据都是以密文形式存在,因此安全性相对较闻,可以抗功耗分析攻击。
[0016]进一步,在上述方案中,所述k个第一随机数掩码X(O)至X(k-l)中每一个第一随机数掩码可以分别由两个对应的第二随机数掩码进行运算获得。这样利用第二随机数进行二阶保护,可以进一步提高数据的安全性,例如,当用户要破解任意一个第一随机数,就必须同时破解所述第一随机数对应的两个第二随机数。
【附图说明】
[0017]图1是本发明实施例中DES加密方法的流程图;
[0018]图2是本发明一实施例中DES加密方法的示意图;
[0019]图3是本发明另一实施例中DES加密方法的示意图;
[0020]图4是本发明再一实施例中DES加密方法的示意图;
[0021]图5是本发明实施例中DES加密装置的结构示意图。
【具体实施方式】
[0022]为详细说明本发明的技术内容、构造特征、所实现目的及效果,下面结合附图对本发明的【具体实施方式】做详细的说明。在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,因此本发明不受下面公开的具体实施例的限制。
[0023]图1是本发明一实施例中DES加密方法的流程图。如图1所示,所述方法包括步骤 SlOO。
[0024]步骤S100,η轮的S盒函数处理,其中,所述η轮S盒函数处理对应的η个S盒函数包括:第 i 轮的 S 盒函数为=Si (X) =S(x ? E(X ( (1-l)mod k) )) ? P" (-1) (X (i modk) ? X ( (1-2)mod k)),其中,I ( i彡n,k为自然数,i为正整数,X为S盒函数的输入值,X(O)至X(k-l)为k个第一随机数掩码,E为扩展置换函数,P~ (-1)为置换函数P的逆置换函数。
[0025]需要说明的是,在本发明的实施例,由于第i轮的S盒函数为=Si (X) =S(X ? E(X((1-l)mod k) )) ? P' (-1) (X (i mod k) ? X ( (i_2)mod k)),其中 i mod k= (i+k) modk,这意味着第i轮和第i+k轮使用完全相同的S盒函数,也就是说每k轮循环使用造表。
[0026]另外,所述k个随机数的使用只需要满足上述S函数表达式中的规律,并不限制其使用顺序,在本发明的实施例中,只是为了简化说明,采用了字符X(O)至x(k-l)用以表示所述k个随机数,在本发明的其他实施例中,也可以采用不同的字母或其他标识来表示。
[0027]下面将结合图2至图4对所述步骤S100进行详细说明。
[0028]请参考图2,在图2中以k=4为例进行说明。也就是说,利用4个随机数数,每4轮循环造表,具体地,当k等于4时,所述η轮S盒函数处理对应的η个S盒函数包括??第4j+l 轮的 S 盒函数为:S4j+1 (x)= S (x ? E (XO)) ? P—1 (XI ? X3);第 4j+2 轮的 S 盒函数为:S4j+2 (X) = S (x ? E (Xl)) ? P—1 (Χ2 ? Χ0);第 4j+3 轮的 S 盒函数为:S4j+3 (x) = S(x ? E (X2)) ? P.1 (X3 ? XI);第 4j+4 轮的 S 盒函数为:S4J+4 (x) =S (x ? E (X3))
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1