请说说des算法中子密钥是怎么得到的

 我来答
huanglenzhi
推荐于2017-10-03 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
采纳数:117538 获赞数:517183
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。

向TA提问 私信TA
展开全部
  转载整个DES算法太繁琐了,我只是挑选其中子密钥的生成这个知识点来写

  了解相关专业名词:
  1. 移位和循环移位:
  移位就是将一段数码按照规定的位数整体性地左移或右移。循环右移就是当右移时,把数码的最后的位移到数码的最前头,循环左移正相反。例如,对十进制数码12345678循环右移1位(十进制位)的结果为81234567,而循环左移1位的结果则为23456781。
  当时自己在这里栽过很大的跟头,这里的循环移位,指的是前后28位密码的位置循环左移,比如
  49 42 35 28 21 14 7 42 35 28 21 14 7 0
  0 50 43 36 29 22 15 循环左移一位 50 43 36 29 22 15 8
  8 1 51 44 37 30 23 ————————> 1 51 44 37 30 23 16
  16 9 2 52 45 38 31 9 2 52 45 38 31 49
  2. 置换:
  就是将数码中的某一位的值根据置换表的规定,用另一位代替。它不像移位操作那样整齐有序,看上去杂乱无章。这正是加密所需,被经常应用。

  DES密钥扩展算法:
  for each round i = 1,2,3....n
  LK = cyclically left shift LK by ri bits
  RK = cyclically left shift RK by ri bits
  The left half of subkey Ki consists of bits of LP of LK
  The right half of subkey Ki consits of bits of RP of RK
  next i

  具体的操作:
  特别注意:这里讲的数字都是指密钥的具体位置,而不是密钥的内容
  1. 我们将DES的56位密钥从左到右从0开始编号。首先扩展DES密钥的前28位,并进行置换,结果称为LK,DES密钥的LK是原始密钥的下列各位:
  49 42 35 28 21 14 7
  0 50 43 36 29 22 15
  8 1 51 44 37 30 23
  16 9 2 52 45 38 31
  通俗讲,就是说第一位前面的28位密钥中,第一位放的元素就是原先56中的第49位,第二位就是原先的42位

  2. 类似的,DES密钥的剩余28位称为RK,由原始密钥的下列各位构成
  55 48 41 34 27 20 13
  6 54 47 40 33 26 19
  12 5 53 46 39 32 25
  18 11 4 24 17 10 3

  3. 在进行密钥扩张算法之前,还需要定义LP置换:
  13 16 10 23 0 4 2 27 14 5 20 9
  22 18 11 3 25 7 15 6 26 19 12 1
  这也是我刚开始百思不得其解的地方,其实也很简单,就是将经过移位之后的左边的28位密钥重现编号,再按下标放好
  缺少8,17,21,24

  4.RP置换
  12 23 2 8 18 26 1 11 22 16 4 19
  15 20 10 27 5 24 17 13 21 7 0 3
  缺少了6,9,14,25
AiPPT
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图... 点击进入详情页
本回答由AiPPT提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式