-
PBE加密算法
查看全部 -
常用对称加密算法:
DES
AES
PBE
IDEA
查看全部 -
对称加密的特点:
加密秘钥=解密秘钥
查看全部 -
PBE算法流程
查看全部 -
AES算法流程
查看全部 -
DES算法流程
查看全部 -
PBE>AES>3DES>DES
查看全部 -
PBE = MD5 + DES
查看全部 -
AES是DES的高级替代
查看全部 -
fdasfdsfdfa
查看全部 -
aaaaa
查看全部 -
对称加密算法
查看全部 -
。。。。。
查看全部 -
之前的笔记讲解了key 接下来是input的64bit. 为了方便 我还是把原理图放出来吧
64bit input会经过IP表格的操作 拆分成L和R两个32位的串 其实就是对号入座而已 并不难理解例如:Plaintext=123456ABCD132536
IP之后就是L0=14A7D678 R0=18CA18AD(运算都是以16进制的原文对应的二进制为基础进行运算)
之后L的操作比较少 主要集中在R上面 然后R的所有操作有个名词 Feistel function(名字好像是这个) 就是指的蓝色区域
接下来是Expansion function 这个函数的主要操作就是把32位的R扩展成48位
例如AABBCCDD 32bit的16进制序列
1010(A) 1010(A)...... 1101(D)
我们要做的就是首尾相连 例如第一个A就会扩展成110101(第一位是D的最后一位 最后一位是第二个A的第一位) 第二个A:010101(第一位是A的最后一位 最后一位是B的第一位)
以上操作后我们就会得到48bit的R 然后和key进行XOR运算 这个大家都懂 就不说了轮到S-box的48变32
我们继续用上面的例子110101 加粗的1010为column 11为row 在box中找到对应的10进制数字再换成16进制即可 这时结果是3:0011 或者参考图中例子也可以这样就从6*8 变成4*8的32bit
然后经过feistel最后的P表格操作 得出的新序列R再次和之前的L进行XOR运算 从而得出R1,即第一次变换后的R1(按照上面的例子来算的话 R1=5A78E394)
从原理图可以知道L的下一个序列就是原来的R 意思就是L1=R0 L2=R1 如此类推 完成16次循环.
最后的最后 IP-1表格操作,对号入座 得到最终的64bit(L+R)
到此DES的大概流程和原理就完了 DES的流程也不算难理解,多加思考还是能明白的....只是网上好像还比较少完整的解析,所以就无聊地写了一下.....笔记纯手打 可能会有错误或者理解不到位的地方 欢迎指正讨论 还有不懂的地方可以私信我 谢谢 希望大家学习愉快~~查看全部 -
课程中没有讲到DES的原理 我相信点进来的同学们应该也不仅仅满足于API的使用吧 而且知道了原理后我相信对理解代码肯定也会有更多的帮助 我就写成笔记分享一下,顺便当作复习 希望能帮到大家.
对称加密算法也分成两类:Stream和Block (大家熟知的DES AES都属于Block)
这个就是DES原理图 我从某个课件中截取下来的 首先从Key开始吧
Key:为什么是64bit呢?据说好像是发明的那些大佬们定下的标准- -
64bit能够表示16个16进制的数(4个二进制表示一个16进制),所以这个key input的例子就可以是这样:AABB09182736CCDD
然后我们要做的就是将他变成二进制 例如
1 0 1 0(A) 1 0 1 0(A)
1 0 1 1(B) 1 0 1 1(B)............
如此类推写成一个8*8的表格 并且从1-64 第一行开始左往右这样编号
接下来会经过一个PC-1的表,这个PC-1的操作就是将8,16,24,32,40,48,56,64这8个位上的数字去除
从而key序列就只有56位了然后将原来64位的序列分成C D两个串 按照上面的号码对号入座重新组成C D
例如原57 变成C的1 49变成C的2 如此类推接下来的操作就是分布左移两个字符串C D
理论上key round要完成16次 所以是1-16 每个round就要左移对应的次数.
例如6th round:1+1+2+2+2+2=10 所以C 和 D就要左移10次 每个round都要 所以每个round的key都是不一样的..
移动完之后只需要重新C+D合起来 这时仍然是56位 再经过PC-2表的操作 相应对号入座就会得出一个48位的key.
Key generation的步骤就是这样 每个round都会重新生成key 循环16次结束
以上笔记纯手打 可能会有错误的地方 欢迎指正或者补充... 谢谢查看全部
举报