密码学的一个大作业
(迷迷糊糊听了一学期,结果老师要做大作业,wc搞了两个月,都怪自己太菜)
这是题目要求![在这里插入图片描述](https://img-blog.csdnimg.cn/20190704222134582.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzg5NjI3OQ==,size_16,color_FFFFFF,t_70)
sm3和aes的cbc模式的算法我就简单说说
sm3就是填充然后进行迭代和信息扩展,压缩。。。。就是图中
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190704222932980.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzg5NjI3OQ==,size_16,color_FFFFFF,t_70)
AES主要就是那4个过程s盒置换,行位移,列混合,轮密钥加了
其中要进行多轮,
加密每1轮包括S盒字节替换、行移位、列混合、轮 密钥加,最后1轮少一个列混合;
解密没1轮包括逆 行移位、逆字节替换、轮密钥加、逆列混合,最后1 轮少逆列混合
对,还要一个重点就是密钥扩展,这个不说了直接上图
![在这里插入图片描述](https://img-blog.csdnimg.cn/2019070422355742.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzg5NjI3OQ==,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190704223645568.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzg5NjI3OQ==,size_16,color_FFFFFF,t_70)
算法到这里就差不多l
代码直接上来(对这是c++的)
代码下载