DES加密过程祥解.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
DES加密过程祥解

DES加密过程祥解! 本文详细解释了DES加密的过程,对密钥的处理和对64位数据块的处理多做了详细的介绍。 一、处理密钥: 从用户处获得64位密钥(每第8位为校验位,为使密钥有正确的奇偶校验,每个密钥要有奇数个1位(本文如未特指,均指二进制位)。 具体过程:: 对密钥实施变换,使得变换以后的密钥的各个位与原密钥位对应关系如下表所示(表一为忽略校验位以后情况): 57 49 41 33 25 17 9 1 58 50 42 34 26 18 10 2 59 51 43 35 27 19 11 3 60 52 44 36 63 55 47 39 31 23 15 7 62 54 49 38 30 22 14 6 61 53 45 37 29 21 13 5 28 20 12 4 把变换后的密钥等分成两部分,前28位记为C[0],后28位记为D[0]。 计算子密钥(共16个), 从i=1开始。 分别对C[i-1],D[i-1]作循环左移来生成C[i],D[i](共16次)。 每次循环左移位数如下表所示: 轮 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 位数 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1 串联C[i],D[i],得到一个56位数,然后对此数作如下变换以产生48位子密钥K[i]。 变换过程如下: 14 17 11 24 1 5 3 28 15 6 21 10 23 19 12 4 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 1.2.3.3 按以上方法计算出16个子密钥。 二、对64位数据块的处理: 把数据分成64位的数据块,不够64位的以适当的方式填补。 对数据块作变换: 58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4 62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7 将变换后的数据块等分成前后两部分,前32位记为L[0],后32位记为R[0]。 用16个子密钥对数据加密。 根据下面的扩冲函数E,扩展32位的成48位 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1 用E{R[i-1]}与K[i]作异或运算。 把所得的48位数分成8个6位数。1-6位为B[1],7-12位为B[2],... 43-48位为B[8]。 用S密箱里的值替换B[j]。从j=1开始。S密箱里的值为4位数,共8个S密箱: 取出B[j]的第1和第6位串联起来成一个2位数,记为m,m即是S密箱里用来替换B[j]的数所在的列数。 取出B[j]的第2至第5位串联起来成一个4位数,记为n。n即是S密箱里用来替换B[j]的数所在的行数。 用S密箱里的值S[j][ m][ n]替换B[j]。8个S密箱如下所示: S-BOXE:S1 Binary d1d6 = 00 01 10 11 \/ d2..d5 \/ Dec 0 1 2 3 0000 0 14 0 4 15 0001 1 4 15 1 12 0010 2 13 7 14 8 0011 3 1 4 8 2 0100 4 2 14 13 4 0101 5 15 2 6 9 0110 6 11 13 2 1 0111 7 8 1 11 7 1000 8 3 10 15 5 1001 9 10 6 12 11 1010 10 6 12 9 3 1011 11 12 11 7 14 1100 12 5 9 3 10 1101 13 9 5 10 0 1110 14 0 3 5 6 1111 15 7 8 0 13 S-BOXE:S2 Binary d1d6 = 00 01 10 11 \/ d2..d5 \/ Dec 0 1 2 3 0000 0 15 3 0 13 0001 1 1 13 14 8 0010 2 8 4 7 10 0011 3 14 7 11 1 01

文档评论(0)

haihang2017 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档