在对csec的使用中(其他遵循hsm key update协议的芯片也适用),kdf的运算过程中遇到的数据都是128bit。不需要考虑padding的问题。
目前并没有找到对padding的一致性的处理方式。

对于Miyaguchi-Preneel compression的具体计算过程,Wikipedia中存在相应的算法解释。

https://en.wikipedia.org/wiki/One-way_compression_function

AES的CBC模式:

    mbedtls_aes_context aes;
mbedtls_aes_init( &aes );
ret = mbedtls_aes_setkey_enc( &aes, k1, 128u );
ret = mbedtls_aes_crypt_cbc( &aes, MBEDTLS_AES_ENCRYPT, ATOMIC_BUFSIZE*2, IV_zero, data_connected, pM2); /* */
mbedtls_aes_free( &aes );

AES的ECB模式:

    mbedtls_aes_context aes;
mbedtls_aes_init( &aes );
ret = mbedtls_aes_setkey_enc( &aes, tempIV, 128u );
ret = mbedtls_aes_crypt_ecb( &aes, MBEDTLS_AES_ENCRYPT, key, tempENC_Text);
mbedtls_aes_free( &aes );

CMAC算法:

    const mbedtls_cipher_info_t *cipher_info;

    cipher_info = mbedtls_cipher_info_from_type( MBEDTLS_CIPHER_AES_128_ECB );
ret = mbedtls_cipher_cmac( cipher_info, k2, 128u, data_connected, M1_SIZE + M2_SIZE, pM3);

注意,CMAC的计算模式也是CBC模式,由于CBC模式的初始化向量必然要用到,相关的NIST公开规范中规定初始化向量为全零值。

/* The Fid can be considered as always 6bits. no matter the SFE is 0x00 or 0x01.
* Align the Fid to the leftest postion.
*
* */

最新文章

  1. Spring task定时任务
  2. Libevent 的多线程操作
  3. include使用中注意的问题
  4. Java并发之工具类 ForkJoin 任务分解
  5. oracle触发器设置uuid变量
  6. 转!!java线程状态
  7. 实现Android 动态载入APK(Fragment or Activity实现)
  8. Codeforces Round #277(Div 2) A、B、C、D、E题解
  9. Redis系列整理
  10. 地精排序(Gnome Sort) 算法
  11. 经典案例之MouseJack
  12. Java中常见数据结构List之LinkedList
  13. Swift必备开发库(高级篇)
  14. linux系统下FTP服务器的安装和配置
  15. WebSocket参考
  16. nlp算法工程师养成记 目标要求
  17. jsp中的JSTL与EL表达式用法及区别
  18. JMeter监控内存及CPU ——plugin插件监控被测系统资源方法
  19. 3D游戏开发之UE4中的集合:TSet容器
  20. [ios]IOS的AppDelegate方法中的事件触发调用 以及 关闭 ios应用程序

热门文章

  1. OpenLayers地图标注及弹窗实现
  2. 【研究生学习】SNR、Eb/N0和Es/N0的关系
  3. 【1】部署环境python+pycharm+JDK+SDK+node安装+appium安装+Appium-python-client安装及配置+(模拟器)
  4. 2020icpc沈阳H
  5. 布尔类型:boolean
  6. redis底层数据结构之整数集合(intset)
  7. linux端口探测
  8. [273] High Five Update 3 OpCodez
  9. shell_Day08
  10. kumquat