aes-cmac实验报告-信息与通信安全

aes-cmac实验报告-信息与通信安全

ID:15626552

大小:526.93 KB

页数:40页

时间:2018-08-04

aes-cmac实验报告-信息与通信安全_第1页
aes-cmac实验报告-信息与通信安全_第2页
aes-cmac实验报告-信息与通信安全_第3页
aes-cmac实验报告-信息与通信安全_第4页
aes-cmac实验报告-信息与通信安全_第5页
资源描述:

《aes-cmac实验报告-信息与通信安全》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、本科实验报告课程名称:信息与通信安全姓名:选择课题:C/C++实现加解密算法及其应用(实验一)系:信电系专业:信息与通信工程学号:指导教师:年月日40目录1.实验内容与要求22.实验原理32.1AES原理32.1.1AES总体结构32.1.2AES详细结构31.1CMAC原理72.实验环境94.代码实现94.1字节代替变换94.2行移位变换114.3列混淆变换144.4轮密钥加174.5AES的加密与解密的实现224.6CMAC代码实现235.思考题276.心得体会27附录(完整程序)28401.实验内容

2、与要求(1).复习AES原理。(2).用C/C++编写AES算法并调试通过。(3).复习CMAC原理。(4).在实现AES基础上,用C/C++编写CMAC算法并调试通过。(5).回答下列思考题。ØAES解密算法和AES的逆算法之间有什么不同?ØCMAC与HMAC相比,有什么优点?2.实验原理2.1AES原理2.1.1AES总体结构下图展示了AES加密过程的总体结构。明文分组长度为128位即16字节密钥长度可以为16,24或32字节(在本次设计中选择16字节)。加密和解密算法是输入是一个128位的分组。在F

3、IPSPUB197中,这个分组被描述为4*4的字节方阵。这个分组被复制到state数组,饼子啊加密或解密的各个阶段被修改。同样,密钥也被描述为字节的方阵,并被扩展为44字的密钥字序列。密码由N轮组成,其中轮数依赖于密钥长度,16字节密钥是10轮,前N-1轮由4个不同的变换组成:字节代替,行位移,列混淆,轮密钥加。最后一轮包含三个变换,而在第一轮的前面有一个起始的单变换(轮密钥加),可视为第0轮。每一个变换输入一个活多个4*4的矩阵,并输出一个4*4的矩阵,最后一轮输出为密文。同样,密钥扩展函数为N+1轮密

4、钥,它们是互不相同的4*4矩阵。每一个轮密钥作为每轮的轮密钥加变换的一种输入。402.1.2AES详细结构1)AES算法未使用Feisel结构,而是在每一轮都使用代替和混淆将整个数据分组作为一个单一的矩阵处理。2)输入的密钥被扩展为44个32位字所组成的数组w[i],每轮由四个不同的字作为该轮的轮密钥。3)由四个不同的阶段组成,包括一个置换和三个代替。字节代替:用一个S盒完成分组的字节到字节的代替。行位移:一个简单的置换。列混淆:利用GF(2^8)上的算术特性的一个代替。轮密钥加:当前分组和扩展秘钥的一部

5、分进行按位异或。40(一)字节代替变换如上图,字节代替变换是一个简单的查表操作。AES定义了一个S盒,它由16*16个字节组成的矩阵,包含了8位所能表示的256个数的一个置换。State中的每个字节按照如下的方式映射为一个新的字节,把改字节的搞4位作为行值,低四位作为列值,以这些行列值作为索引从S盒的对应位置取出元素作为输出。而其逆向操作则是有对应的逆S盒可进行查表。(二)行移位变换如上图,其正向行移位变换中,state的第一行保持不变,把state的第二行循环左移一个字节,state的第三行循环左移两个

6、字节,state的第四行循环左移四个字节。例如:逆向行移位变换将state中的后三行执行相反方向的一位操作即可。40(一)列混淆变换如上图,列混淆的正向变换是对每列单独进行操作。每列中的每个字节被映射为一个新值,此值由该列中的4个字通过函数变换得到。这个变换可有下面基于state的矩阵乘法表示:乘积矩阵中的每个元素军事一行和一列中对应元素的乘积之和。这里的乘法和假发都是定义在GF(2^n)上的。状态中单列的列混淆变换可表示为:其中一个例子如下:(二)轮密钥加变换40如上图,在轮密钥加变换中,128位的st

7、ate按位与128位的轮秘钥XOR。该操作可以视为state的一列中的四个字节与轮秘钥的一个字进行列间的操作,例如:(一)AES密钥扩展AES密钥扩展算法的输入值是一个4个字,输出值是一个由44个字组成的移位线性数组。输入密钥字节被复制到扩展密钥数组的前4个字。然后每次用四个字填充扩展密钥数组余下的部分。在扩展数组中,每一个新增的字w[i]的值依赖于w[i-1]和w[i-4]。在4个情形中,三个使用了异或。对w数组中下标为4的倍数的的元素采用了更复杂的函数来计算:(1)字循环的功能时使一个字中的四个字节的

8、循环左移一个字节,即将输入字[B0,B1,B2,B3]变成为[B1,B2,B3,B0].(2)字代替利用S盒对输入字中的每个字节进行字节代替。(3)步骤1和步骤2的结果再与轮常量Rcon[j]相异或。401.1CMAC原理基于密码的消息认证码(CMAC)对于AES,3DES适用,它使用三个密钥:一个密钥长为K,用在密文分组链接的每一步,两个长度为n的密钥,其中k是密钥长度,n为密文分组长度。并且两个n位的密钥可以从加密密钥导出

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。