以 Verilog 描述 DES 加密算法 (电子书)

本文详细介绍了DES加密算法的原理及其Verilog实现,包括非线性S-box、加密函数Cipher function、Sub-Key的产生以及整个加密流程。通过Verilog模块展示了S-box、加密函数和Sub-Key生成的细节,揭示了DES算法如何将64bits的输入转换为64bits的输出,并能逆向还原。
摘要由CSDN通过智能技术生成

目录:

1. 简介

2. 非线性 S-box

3. 加密函数 Cipher function

4. Sub-Key 的产生

5. 整个加密流程

这里,我们是将整个算法拆解, bottom-up 的方式, 逐一介绍它的原理与其 Verilog 的写法

 

简介

DES, Data Encryption Standard, 是一个相当普遍, 流传相当久远的算法,现在网络上常用的 SET, SSL, SSH 都是以 DES 为基础来执行加解密的动作

 

DES 加密函数可以用函数表示:

cipher[1:64] = des(plaintext[1:64], key[1:56])

它将 64bits 的输入用一个类似洗牌的交错动作产生 64bits 的输出, 与洗牌不同的是, 它还可以洗的回来

plaintext[1:64] = des_inverse(cipher[1:64], key[1:56])

也就是将 64bit 的输出再还原回原先的那 64bit,而这个洗牌动作的控制就在于那个 56bits key

 

非线性 S-box

S-box 是整个算法唯一非线性的部分, 也被怀疑是美国政府留下后门的地方

 

在整个加密过程中, 会用到 8 个类似的 S-box, (如下图)

其函数可表示为

Out[4] = S(In[6])

S1 为例子, 输出的 4bit, 由下表决定 {In[1],In[6]}决定列数, {In[2:5]}决定行数

 

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

0

14

4

13

1

2

15

11

8

3

10

6

12

5

9

0

7

1

0

15

7

4

14

2

13

1

10

6

12

11

9

5

3

8

2

4

1

14

8

13

6

2

11

15

12

9

7

3

10

5

0

3

15

12

8

2

4

9

1

7

5

11

3

14

10

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值