整容说文库 > 程序代码 > 教育资讯

DES加密算法问题

来源:学生作业帮助网 编辑:整容说文库 时间:2019/06/25 19:27:32 程序代码
DES加密算法问题程序代码
1.1 从用户处获得64位密钥.(每第8位为校验位,为使密钥有正确的奇偶校验,每个密钥要有奇 数个”1”位.(本文如未特指,均指二进制位)
1.2 具体过程:
1.2.1 对密钥实施变换,使得变换以后的密钥的各个位与原密钥位对应关系如下表所示:
表一为忽略校验位以后情况

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
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

29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
63 55 47 39 31 23 15 7 62 54 46 38 30 22 14 6 61 53 45 37 29 21 13 5 28 20 12 4


问题:这里省略了56, 48, 40, 32, 24, 16,  8,  0的位移情况,每第8位为校验位??无法理解,应该是每个字节的第一个bit位是校验位吧
不是很懂,我以前用的时候,也是看了半天算法,从网上找了不少代码,都不好用,
最后,直接调用 openssl 里面的 库实现的,

你如果只是用,可以直接这样调用,
如果想搞清楚算法,可以参考下openssl的对应代码
大哥我想自己实现,现在那个问题搞定,是第8是校验位

新问题:经过16次迭代运算后。得到L16、R16,计算子密钥(共16个), 从i=1开始。怎么迭代,还是按
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
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 

29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 
63 55 47 39 31 23 15 7 62 54 46 38 30 22 14 6 61 53 45 37 29 21 13 5 28 20 12 4 来置换???
程序代码