欢迎来到天天文库
浏览记录
ID:15285356
大小:224.00 KB
页数:11页
时间:2018-08-02
《高级加密标准aes的实际应用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、高级加密标准AES的实际应用 作者:不赖猴 1. 什么是对称密钥加密?对称密钥加密又称单密钥加密,它是在非对称密钥加密(又称公钥加密)前使用的唯一的加密类型。它的加密和解密过程都使用同一个密钥。 2. 对称密钥加密算法及适用场合。对称密钥算法分为分组密码和流密码两种。l 分组密码对数据分组进行操作。当用分组密码对大量数据进行加密和解密时,它通常将数据分解为多个分组,然后独立地对每个分组进行操作。l 流密码对数据不分组,而是一次一位(或一个字节)地连续进行操作。流密码
2、比分组密码快,而且使用的代码也比分组的少很多。但是分组密码可以重复使用密钥,流密码则更像一次一密,它的密钥只能使用一次。下表是分组密码和流密码的一些典型应用。 应用领域对称密码算法说明数据包交换分组密码重复使用密钥电子邮件分组密码标准化需要SSL流密码速度要求文件加密分组密码重复使用密钥 常用的分组密码算法有:DES、AES、Lucifer、Madryga、NewDES、FEAL、REDOC、LOKI、Khufu和Khafre、RC2、IDEA、GOST、CAST、Blowfish、SAFER、RC5、3-WAY
3、、Crab、SXAL8/MBAL等。常用的流密码算法有:A5/1、A5/2、Chameleon、FISH、Helix、ISAAC、MUGI、Panama、Phelix、Pike、SEAL、SOBER、SOBER-128、WAKE等。 3. 高级加密标准(AdvancedEncryptionStandard,AES)。NIST于1997年发布公告寻找一个用来替代当时已不安全的数据加密标准(DataEncryptionStandard,DES)。经过多轮筛选,最终选定了由两个比利时密码学家Joandaeme
4、n和VincentRijmen所设计的Rijndael算法。 3.1 AES的设计。AES分组密码接受一个128位的明文,并且在一个128、192或者256位密钥的控制下产生一个128位的密文。它是一个替代-置换网络的设计,并且带有一个称为轮的步骤的集合,其中轮数可以为9、11或者13(对应于128、192或者256位的密钥)。AES的设计文档的下载地址是:http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf。 3.2 AES的工作模式。如果分
5、组密码把明文分组后,对每个分组各自加密后合成密文。这样就会产生一个问题,就是如果两个地方出现相同的明文分组,它们将被加密为相同的密文。而如果相同的明文分组被多次加密成相同的密文的话它就会泄露信息。理论上制作一个包含明文和其他相对应的密文的密码本是可能的。同时,加密算法应用的复杂性,有的强调效率,有的强调安全,有的强调容错性。基于这些事实,我们需要一些分组密码的工作模式来适应不同的状况。常用的分组密码工作模式有电码本模式(ElectronicCodebook,ECB)、密码分组链接(CipherBlockChain
6、ing,CBC)、输出反馈(OutputFeedback,OFB)、密文反馈(CiphertextFeedback,CFB)和计数器模式(CounterMode,CTR)。 3.2.1电码本模式(ElectronicCodebook,ECB)直接用分组密码对明文的分组进行加密。也就是上面所说的会出现相同的明文多次被直接加密而无法实现保密性。它只适用于发送少数量的分组数据,而且明文是密码分组大小的某个倍数。 3.2.2密码分组链接(CipherBlockChaining,CBC)为了解决ECB的问题,我们希望设计一
7、个技术可以使得当同一个明文分组重复出现时产生不同的密文分组。一种做到这一点的简单方法是密码分组链接CBC方式:前一个分组的加密结果被反馈到当前分组的加密中,换句话说,每一个分组被用来修改下一个分组的加密。每个加密分组不仅依赖于产生它的明文分组,而且依赖于所有前面的明文分组。 <1>.对IV的要求。l IV(InitializationValue)是一个初始值,对于CBC模式来说,它必须是随机选取并且需要保密的;而且它的长度和密码分组相同(比如:对于AES为128位)。l 存储IV
8、的方法有两种:n 将IV和消息一起存储。这会使消息的大小增加了一个分组。n 在密钥协商处理过程中生成IV。使用一个称为PKCS#5的算法,从一个随机生成的共享秘密中,即能够得到加密密钥,也能够获得链接IV。<2>.明文长度从上图可以看到,所有的明文是密码分组大小的某个倍数。但是实际上并不是这样。解决的方法有两种:l 密文窃取(Ci
此文档下载收益归作者所有