关于AES的学习

AES128算法
     https://blog.csdn.net/u013605322/article/details/83443612?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~aggregatepage~first_rank_v2~rank_aggregation-1-83443612.pc_agg_rank_aggregation&utm_term=aes128加密算法&spm=1000.2123.3001.4430

1、AES是一个对称密码,旨在取代DES成为广泛使用的标准。
        (DES也是一个加密的算法,原始思想可以参照二战德国的恩尼格玛机,
        只有一种方法可以破解该算法,那就是穷举法。)
    过程简述:首先是一个16字节的验证码,和一个M个字节的秘钥。
    第0步:取16字节的验证码和16字节的秘钥。做第一次初始变换。
                输出一个16字节的状态码。
    第1步:取上16字节的状态码和第一轮的16字节的秘钥,做4次变换
                输出一个16字节的状态码
        .                                                        .
        .                                                        .
        .                                                        .
        .                                                        .
        .                                                        .
        .                                                        .

    第n-1步:取上16字节的状态码和第n-1轮的16字节的秘钥,做4次变换
                输出一个16字节的状态码

    第n步:取上16字节的状态码和第n轮的16字节的秘钥,做4次变换
                输出一个16字节的密文。


    16字节密钥对应10轮,24字节密钥对应12轮,32字节对应14轮。
2、小插曲:Feistel 密码结构(分组密码中的一种对称结构,对信息的
            加密和解密的过程就极为相似,甚至完全一样。这就使得在实
            施的过程中,对编码量和线路传输的要求就减少了几乎一半。)
3、其前N-1轮由4个不同的变换组成:字节代替、行移位、列混淆和轮密钥加。
    最后一轮仅包含三个变换(逆向行移位、逆向字节代替、轮秘钥加)。而在第一轮前面有一个起始的单变换(轮密钥加),
    可以视为0轮。
    字节代替(SubBytes):用一个S盒完成分组的字节到字节的代替。
  行移位(ShiftRows):一个简单的置换。
  列混淆(MixColumns):利用域GF(28)上的算术特性的一个代替。
  轮密钥加(AddRoundKey):当前分组和扩展密钥的一部分进行按位异或XOR。
4、数据结构
            加密解密算法的输入是一个128位分组。
    这些分组被描述成4×4的字节方阵,这个分组被复制到state数组中,
    并在加密和解密的每一阶段都被修改。在字节方阵中,每一格都是一个字,
    包含了4字节。在矩阵中字是按列排序的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值