DES是一个分组加密算法 , 典型的DES以64位为分组对数据加密 , 加密和解密用的是同一个算法 。它的密钥长度是56位(因为每个第8 位都用作奇偶校验) , 密钥可以是任意的56位的数 , 而且可以任意时候改变 。
DES加密过程大致如下:
- 首先需要从用户处获取一个64位长的密码口令 , 然后通过等分、移位、选取和迭代形成一套16个加密密钥 , 分别供每一轮运算中使用;
- 然后将64位的明文分组M进行操作 , M经过一个初始置换IP , 置换成m0 。将m0明文分成左半部分和右半部分m0 = (L0 , R0) , 各32位长 。然后进行16轮完全相同的运算(迭代) , 这些运算被称为函数f , 在每一轮运算过程中数据与相应的密钥结合;
- 在每一轮迭代中密钥位移位 , 然后再从密钥的56位中选出48位 。通过一个扩展置换将数据的右半部分扩展成48位 , 并通过一个异或操作替代成新的48位数据 , 再将其压缩置换成32位 。这四步运算构成了函数f 。然后 , 通过另一个异或运算 , 函数f的输出与左半部分结合 , 其结果成为新的右半部分 , 原来的右半部分成为新的左半部分 。将该操作重复16次;
- 经过16轮迭代后 , 左 , 右半部分合在一起经过一个末置换(数据整理) , 这样就完成了加密过程 。
2.3 AES高级加密标准(AES,Advanced Encryption Standard) , 与DES一样 , 使用AES加密函数和密匙来对明文进行加密 , 区别就是使用的加密函数不同 。
上面说过DES的密钥长度是56比特 , 因此算法的理论安全强度是2^56 。但以目前计算机硬件的制作水准和升级情况 , 破解DES可能只是山脉问题 , 最终NIST(美国国家标准技术研究所(National Institute of Standards and Technology))选择了分组长度为128位的Rijndael算法作为AES算法 。
AES为分组密码 , 分组密码也就是把明文分成一组一组的 , 每组长度相等 , 每次加密一组数据 , 直到加密完整个明文 。在AES标准规范中 , 分组长度只能是128位 , 也就是说 , 每个分组为16个字节(每个字节8位) 。密钥的长度可以使用128位、192位或256位 。密钥的长度不同 , 推荐加密轮数也不同 , 如下表所示:
AES密钥长度(32位比特字)分组长度(32位比特字)加密轮数
AES-1284410AES-1926412AES-2568414
3. 非对称加密#【加解密算法分析】非对称加密算法的特点是 , 秘钥一次会生成一对 , 其中一份秘钥由自己保存 , 不能公开出去 , 称为“私钥” , 另外一份是可以公开出去的 , 称为“公钥” 。
将原文用公钥进行加密 , 得到的密文只有用对应私钥才可以解密得到原文;
将原文用私钥加密得到的密文 , 也只有用对应的公钥才能解密得到原文;
因为加密和解密使用的是两个不同的密钥 , 所以这种算法叫作非对称加密算法 。
文章插图
与对称加密算法的对比
- 优点:其安全性更好 , 对称加密的通信双方使用相同的秘钥 , 如果一方的秘钥遭泄露 , 那么整个通信就会被破解 。而非对称加密使用一对秘钥 , 一个用来加密 , 一个用来解密 , 而且公钥是公开的 , 秘钥是自己保存的 , 不需要像对称加密那样在通信之前要先同步秘钥 。
- 缺点:非对称加密的缺点是加密和解密花费时间长、速度慢 , 只适合对少量数据进行加密 。
推荐阅读
- 字节跳动面试必会:快速选择算法,TopK问题最优解
- 大麦茶加山楂干的功效,大麦茶的功效与作用
- 插入排序算法解析
- PC微信逆向:自动保存加密的聊天图片
- 茶叶的功能介绍,茶叶深加工现代先进工艺的特点
- 茶品人品及公民品,热烈庆祝彩农茶再签贵州加盟商
- 让你的太极舞动得更加的流畅
- 淘宝客怎么做推广怎么加入 新开的淘宝店铺,自己怎样推广呢
- 淘宝店如何加入淘宝联盟 淘宝卖家怎么开通淘宝联盟
- iPhone4s怎么样iPhone4s怎么增加内存