AES算法

来源:互联网 发布:淘宝店铺后花园 编辑:程序博客网 时间:2024/05/17 22:56

1,什么是AES算法呢?

简单的进行一下介绍,AES算法是典型的对称加密算法,它和其他我们常见的MD5,SHA的哈希摘要算法有很大的区别,主要体现在AES是可逆的,它主要的作用是来保证私密的信息不被泄漏,而摘要算法是不可逆的,是对信息一致性和完整性进行校验,下面举个栗子看它是如何工作的:


      我是发送方       -------------------> IJSJAYEshaj+jdiuaks==  --------------------------->     接收方

 (明文:帅哥你好啊)(加密过程)          (密文)                             ( 解密过程)       (明文:帅哥你好啊) 

 

                                                                     秘钥:123456

   金牌解说上场了:1,发送方通过秘钥123456加密了明文(帅哥你好啊)变成了这么复杂的IJSJAYEAGSJDHJHSHshaj+jdiuaks==  (密文)。2,接收方接收到了之后,又通过秘钥123456还原成为看的懂的明文(帅哥你好啊),这就是大体上的流程,关键的就是这个秘钥了,因为加密和解密都是通过秘钥来完成的,那什么是秘钥呢?


2,神秘的秘钥?

       正是因为加密和解密用的是同一种的秘钥,所以才了AES算法的对称性,AES支持的3种长度类型:128,192,256。也就是大家常说的AES128,AES192,AES256,那几个有啥不同呢,为毛要搞不同长度的呢。解释一下,其实不同长度的类型表示了它所加密的轮数不同,分别是10,12,14轮,所以从安全性来讲的话AES256是最高的,从性能上来说是AES128最快,根据不同的需求来嘛。

3,加密的具体过程是啥?它是怎么利用密文加密的呢?

      看官们,先说明啊,这个加密它不是一股脑就能干的成的,它先是将明文进行分块,每块占128bit,通过AES加密器分开加密,然后拼接成新的密文。

       

这个时候就有问题了,如果我的明文块为196bit,区分后剩下的68bit满足一个区块128bit要求怎么办?这边涉及到了一个重要的知识点,填充

4

4,填充?拿头填啊?

      填坑呢,也是有技巧的,默认的填充方法是在明文块末补足相应数量的字符,而且你补的每个字节的值,是你缺少的字符数。举个栗子?

 明文{1,2,3,a,b,c}缺少了5个字节,那么填补之后就是{1,2,3,a,b,c,5,5,5,5,5},来,少年,换一个填坑的姿势:

  在明文块末尾补足相应数量的字节,最后一个字符值等于缺少的字符数,其他字符填充随机数。举个栗子?

       明文{1,2,3,a,b,c}缺少了5个字节,那么填补之后就是{1,2,3,a,b,c,L,K,P,9,5},这是两种比较典型的填充方式。


      

       

原创粉丝点击