[本篇论文由上帝论文网为您收集整理,上帝论文网http://paper.5var.com将为您整理更多优秀的免费论文,谢谢您的支持]1. 处理密钥: 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
1.2.2 把变换后的密钥等分成两部分,前28位记为C[0], 后28位记为D[0]. 1.2.3 计算子密钥(共16个), 从i=1开始。 1.2.3.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
1.2.3.2 串联C[i],D[i],得到一个56位数,然后对此数作如下变换以产生48位子密钥K[i]。 变换过程如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 14 17 11 24 1 5 3 28 15 6 21 10 23 19 12 4 26 8 16 7 27 20 13 2 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 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个子密钥。
2.对64位数据块的处理: 2.1 把数据分成64位的数据块,不够64位的以适当的方式填补。 2.2对数据块作变换。
bit goes to bit bit goes to bit 58 1 57 33 50 2 49 34 42 3 41 35 34 4 33 36 26 5 25 37 18 6 17 38 10 7 9 39 2 8 1 40 60 9 59 41 52 10 51 42 44 11 43 43 36 12 35 44 28 13 27 45 20 14 19 46 12 15 11 47 4 16 3 48 62 17 61 49 54 18 53 50 46 19 45 51 38 20 37 52 30 21 29 53 22 22 21 54 14 23 13 55 6 24 5 56 64 25 63 57 56 26 55 58 48 27 47 59 40 28 39 60 32 29 31 61 24 30 23 62 16 31 15 63 8 32 7 64
2.3 将变换后的数据块等分成前后两部分,前32位记为L[0],后32位记为R[0]。 2.4 用16个子密钥对数据加密。 2.4.1 根据下面的扩冲函数E,扩展32位的成48位
bit goes to bit bit goes to bit bit goes to bit bit goes to bit 32 1 8 13 16 25 24 37 1 2 9 14 17 26 25 38 2 3 10 15 18 27 26 39 3 4 11 16 19 28 27 40 4 5 12 17 20 29 28 41 5 6 13 18 21 30 29 42 4 7 12 19 20 31 28 43 5 8 13 20 21 32 29 44 6 9 [1] [2] [3] 下一页
Tags:
|