对称密码 之 分组密码与数据加密标准

时间:2024-03-18 21:47:29

传统加密技术

分组密码和数据加密标准

数据加密标准(Data Encryption Standard,DES):是使用最广泛的对称密码,尽管注定要被高级加密标准(Advanced Encryption Standard,AES)取代,但仍为极其重要的算法。
我们先讨论对称分组密码原理,然后介绍DES。

  1. 分组密码原理

    事实上,现在使用的大多数对称分组加密算法基于Feistel 分组密码结构。
    1.1 流密码与分组密码

    • 流密码:每次加密数据流的以为或一个字节。
    • 分组密码:将明文分组作为整体加密并且通常得到的是与明文登场的密文分组,分组长度通常为64/128位。
      两种密码均为用户共享一个对称加***。

    1.2 分组密码
    加密是可逆的,一个明文对应唯一一个密文,称为为可逆变换或非奇异变换。在这种情况下,对于有n组的密文,共有2^n种情况(n=2时,00,01,10,11),不同变换数为(2^n)!。
    对称密码 之 分组密码与数据加密标准
    这个密文本身就是**,且规模问题,Feistel提出对理想分组密码*的一种近似*。
    对称密码 之 分组密码与数据加密标准
    xi是明文分组中的4位二进制数,yi是密文分组中的4位二进制数。kij是“**“。

    1.3 Feistel密码
    使用乘积密码的概念来逼近理想分组密码。
    -乘积密码:依次使用两个或两个以上的基本密码,所得结果的密码强度强于所有单个密码的强度。
    Feistel建议使用交替使用代替和置换的密码。
    -代替:每个明文元素(组)被唯一的替换为相应的密文元素(组) 。
    -置换:明文元素的序列被替换为该序列的一个置换(改变顺序)。
    两个概念:混淆和扩散。
    扩散是使明文与密文之间的统计关系变得复杂,使攻击者难以通过统计知识来得到**。
    混淆是使密文和**之间的统计关系变得复杂,使攻击者难以通过统计知识来得到**。
    Feistel密码结构
    对称密码 之 分组密码与数据加密标准

  2. 数据加密标准(Data Encryption Standard,DES)
    采用64位分组长度,56位**长度(其余8位用于奇偶校验或其它)。
    对称密码 之 分组密码与数据加密标准
    除去首位置换,其它与Feistel密码结构相同。

剩余部分建议看书,我还没太理解。。。
1)首先利用初始置换表进行初始置换;
2)然后将64位组分为L,R两部分;
3)因为轮**Ki长为48位而R长为32位,所以要利用扩展置换表对R进行扩展;
4)与Ki异或;
5)所得48位结果通过替代函数转换为32位输出;
6)利用置换函数表进行最后置换,输出。
对称密码 之 分组密码与数据加密标准
这里说一下替换函数。
对称密码 之 分组密码与数据加密标准
DES中S盒有自己的定义,如Sk的i行j列是什么。
S盒的作用是实现非线性
-**产生
64位**,前56位分为两个28位C,D,C,D分别左移,移位后的值通过置换选择产生48位输出。