ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

AES-CMAC加密算法使用

2021-02-12 10:04:41  阅读:1506  来源: 互联网

标签:CMAC 文件 AES 加密 算法 加密算法


AES-CMAC加密算法使用

AES-CMAC加密算法对于大文件的分开加密算法的介绍

由于公司项目的需求,需要使用AES-CMAC算法对文件进行加密,将加密后的密文附带到文件的后边,都发送出去,接收方收到文件后,也按照AES-CMAC算法进行加密,将加密得到的密文与发送过来的进行比较,如果一致,说明接收的文件没有被破坏,这样就实现了对文件完整性的检查。

CMAC算法示意图
由图可知,我们需要两个秘钥,K1 K2,然后将文件按照一定的长度进行加密,将前一次的加密结果作为中间值,与后一次的文件进行CMAC,最后一段文件,按照是否为CMAC分组的整数倍进行加密,如果是,则将K1添加,如果不是,则添加K2

  1. CMAC的算法实现
    CMAC算法是基于AES算法的,具体可以参考AES算法,在这里我就不做过多的介绍了,先看结果,然后再详细介绍。

实现方式

由于发送的文件较大,可能程序不能一次加载完成,所以对于CMAC的加密,也需要分开来进行,我这里主要分成了3个部分,start(开始部分),mid(中间部分,处理的代码较多,执行循环操作,多次调用mid函数),end(处理最后的部分,用于将K1 K2添加进去),

  1. 首先是接收方执行CMAC后的结果图
  2. 可以看到 62个字节的数组,分成4次加密,前三次都是16个字节进行加密,然后将加密结果输出,最后对剩余12个字节加密,因为不够16个,所以先补全,然后加密,将结果输出
  3. 分开进行加密,并将每次加密后的结果输出,与上图进行对比,发现数据一致,说明分开加密没问题
    这里start mid的结果就是一次完成的中间值,最后的计算都一致
    算法部分,我将整理成一个TXT文档,后续将作为资源的形式,发出来

标签:CMAC,文件,AES,加密,算法,加密算法
来源: https://blog.csdn.net/weixin_46018097/article/details/113793423

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有