当前位置:   article > 正文

AES-CMAC加密算法使用_aes cmac

aes cmac

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文档,后续将作为资源的形式,发出来
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/51899
推荐阅读
  

闽ICP备14008679号