简化DES加密的个人笔记

发布于 2020-10-26  46 次阅读


简化DES算法,是作为教学用途而产生的一种加密算法,主要用途就是用来教学。

建议直接跳到文末,下载PDF而不是看我个人瞎写的笔记0v0

主要分为两部分,密钥生成和密文加密。

输入十位的密钥,进行根据预先给定的置换表置换之后,进行左移,再通过8位置换表生成key1,再进行左移2次,生成key2,这便是密钥的生成。

密文经过预先给定的置换表的置换之后,第一次进入Sbox与key1加密,之后进行前后4位替换,再次进入Sbox与key2加密,最终结果与逆置换表进行置换,得到加密后的八位密文。

解密部分与加密过程相似,过程就是反向的加密,先对密文置换,然后进入Sbox与Key2合成,前后四位替换后再和Key1进行Sbox,然后进行逆置换,这样就能解密了。

SDES的Sbox部分也是一个预先给定的密码表,同时将待加密的8位文本进行拆分,拆分出左四位与右四位,然后经过fK (L,R) = (L xor F(R,SK),R)加密,关于这个过程,可以参考这张图。

明文经过IP置换之后拆成左右各四位部分,拆出的右半部分塞入E/R扩充成8位,与Key1进行异或,再次拆成左右四位,分别塞入S0和S1。

S0/1在SDES中,是一个4*4的矩阵,左右各四位分别塞入,14两位确定S0/1的行号,23两位确定S0/1的列,取得SBOX矩阵中的一个数字,S0/1里有0123,可以对应出2位二进制数,左右S0/1得出的结果再填充进入一个4位置换,再将置换结果与最初的左半部分进行异或得到第一次SBOX的左半部分,与右半部分互换位置,进入第二次SBOX,类似的结果导入逆置换。

这样就得到了密文

推导过程可以参考这份文档,这份文档非常详细的模拟了整个SDES的加密过程。

想完整了解SDES的话,可以查看下面这份PDF,要比我写的这种垃圾笔记解释的完整的多

SDES看懂了之后,再去看DES就轻松的多了。


今天你摸鱼了吗?