linkcoresafe

加密芯片——AES算法特点与应用注意事项

0
阅读(897) 评论(8)

        AES是一种区块加密标准算法,它的提出是为了升级替换原有的DES加密算法。因此它的安全强度高于DES算法。但不应片面理解,系统和数据的安全不仅与应用的加密算法有关,更与加密应用方案有关。和DES算法一样,AES也属于对称加密算法,对密钥的存储与保护,直接决定了整个系统的安全。

       AES最常见的有3种方案,分别是AES-128、AES-192和AES-256,它们的区别在于密钥长度不同,AES-128的密钥长度为16bytes(128bit / 8),后两者分别为24bytes和32bytes。密钥越长,安全强度越高,但伴随运算轮数的增加,带来的运算开销就会更大,所以用户应根据不同应用场合进行合理选择。用户在应用过程中,除了关注密钥长度外,还应注意确认算法模式。AES算法有五种加密模式,即CBC、ECB、CTR、OCF、CFB,后三种模式因其较为复杂且应用较少,不做详细说明,仅对ECB和CBC模式进行介绍。

       ECB模式的全称是Electronic Codebook Book,即电码本模式。这种模式是将整个明文分成若干个长度相同的分组,然后对每一小组进行加密,并将加密结果拼接为最终结果,C = C1C2C3......Cn。它与ECB模式的DES算法加密流程基本一致。

       CBC模式的全称是Cipher Block Chaining,这种模式是先将明文切分成若干个长度相同的分组(与ECB模式一样),此时先利用初始向量IV与第一组数据进行异或后再进行加密运算生成C1。将C1作为初始向量与第二组数据进行异或后再进行加密运算生成C2。以此类推,当最后一组数据加密完毕后,将加密结果拼接为最终结果,C = C1C2C3......Cn。

       综上,AES192算法与DES算法很相似,均为块加密算法,密文数据以16字节为单位独立存在。若明文长度为16字节,当改变明文的前16字节时,只会影响密文的前16字节,密文后16字节不变。因此,在应用AES算法对线路传输数据加密过程中,若想保证密文的整体变化,要保证每块明文数据都是变化的。

       希望本文能让大家对AES的算法特点有个更直观的认识,更安全有效的利用AES算法设计数据加解密的方案,将LKT中自带的AES算法接口高效利用起来。

  1. 以前用过AES,学习一下


  2. CBC模式相对复杂点儿,有初始向量的参与,每块儿的计算结果跟前面的计算结果都有联系。


  3. 我知道了,可以好好研究下LKT中自带的有AES算法接口,AES算法加密模式还分这么多。

  4. 是的,一共有五种CBC、ECB、CTR、OCF、CFB。后三种用的很少,CBC 和ECB模式是常见模式。

  5. 看文章长知识了,AES算法加密模式还分这么多呢?

  6. 其实有的时候,不一定是密钥长度越长就越好,长度越长,负面影响也会有所增加,速度变慢等。


  7. 密钥的长度,DES密钥可以为8字节和16字节,而AES密钥常见的长度是16、24、32字节。

  8. DES算法和AES都是国际通用算法,安全性都是没问题的,密钥的长度有些不同。