aes128 cmac java_AES-与基于AES-的CMAC.doc

本科实验报告

课程名称:信息与通信安全姓 名:邓敏 实 验:实验一系:信电系专 业:信息与通信工程学 号:3110100978指导教师:谢磊

年 月 日

AES 与基于AES 的CMAC

实验目的

1、熟悉AES加解密过程,掌握其算法实现;

2、熟悉CMAC生成过程,掌握其算法实现。

实验任务

1、复习AES 原理;

2、用C/C++ 编写AES 算法并调试通过;

3、复习CMAC 原理;

4、在实现 AES 基础上,用C/C++ 编写CMAC 算法并调试通过。

实验原理

1.AES原理

AES加解密过程如下图所示,明文分组的长度为128位即16字节,秘钥长度可以为16,24或32字节(128,182或256位)。根据秘钥的长度,算法被称为AES-128、AES-192、或AES-256,本次实验采用AES-128。

1.1AES加密过程

k0k4k8k12k1k5k9k13k2k6k10k14k3k7k11k15AES明文输入为一个128位分组,在代码实现中被描述为4x4的字节方阵,一般称其为state数组,并且按照如下方式填入到数组当中,原始密钥也为128为分组,并按同样的方式填入数组。

in0in4in8in12in1in5in9in13in2in6in10in14in3in7in11in15AES加密过程共进行十轮,前九轮由四个步骤组成,四个步骤依次为字节代替(SubBytes),行移位(ShiftRows)&#x

你可能感兴趣的:(aes128,cmac,java)