密码库LibTomCrypt学习记录——(2.3)分组密码算法的工作模式——ECB代码示例

密码库LibTomCrypt学习记录——(2.3)分组密码算法的工作模式——ECB代码示例以下代码实现了 AES ECB 的正确性测试 标准测试数据 以及性能测试说明 1 代码里面使用了一个 Str2Num 函数 它将测试向量中的字符串转为十六进制字节数据 可自行实现 2 测试向量出处为 NISTSP800 38A Recommendati MethodsandTe

以下代码实现了AES-ECB的正确性测试(标准测试数据),以及性能测试

说明:

1. 代码里面使用了一个Str2Num函数,它将测试向量中的字符串转为十六进制字节数据,可自行实现。

2. 测试向量出处为NIST SP 800-38A (Recommendation for Block Cipher  Modes of Operation:Methods and Techniques)

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

                                                          Test_ECB_AES.h

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

#include


#include “tomcrypt.h”
#include “TestMode.h”
 
typedef struct NistECBTestVector_st{

    char *    name;//test vetor name
    int        keylen;
    int        msglen;
    BYTE *    key[1];    // 密钥
    BYTE *    IV[1];    // 初始化向量
    BYTE *    pt[4];    //    明文,暂时最多支持四段明文
    BYTE *    ct[4];    //    密文,暂时最多支持四段明文
    
    BYTE *    nonce[1];
    BYTE *    associated_data[1];
    BYTE *    mac[1];
} NistECBTestVector; 
















@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

                                                          Test_ECB_AES.cpp

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

#include


#include “tomcrypt.h”
#include “TestMode.h”
#include “Test_ECB_AES.h”
  
 
int Test_ECB_AES_Alg(void)
{

    int idx, err, i, res;
    BYTE buf[64];
    symmetric_ECB ctr;
    int keylen, msglen;
    BYTE key[32], IV[16], pt[64], ct[64];
    char *p_operate;
    IV[0] = 0;














    

    printf(“Test ECB Speed Begin ! Use Alg %s\n”, p_cipher_name );    

   

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/201802.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 上午8:34
下一篇 2026年3月20日 上午8:35


相关推荐

  • 软件详细设计模板

    产品名称Productname密级Confidentialitylevel  产品版本ProductversionTotal8pages共8页V1.01 XXX软件详细设计说明书   Preparedby拟制

    2022年4月7日
    54
  • python爬虫到底是干什么的,python爬虫是干什么的

    python爬虫到底是干什么的,python爬虫是干什么的importosimpo 获取随机请求头 defget headers file open user agent txt r user agent list file readlin

    2026年3月17日
    2
  • MyEclipse SVN插件的两种安装方法

    MyEclipse SVN插件的两种安装方法MyEclipse的功能十分强大,MyEclipse这款软件是在Eclipse的基础上加上自己的插件开发而成的企业级集成开发环境,在日常的工作中,主要用于Java、JavaEE以及一些移动应用的开发,同时MyEclipse还支持很多插件,接下来就教大家如何安装SVN插件。  在线安装  1、打开myeclipse,help—》MyEclipseConfiguration

    2022年7月21日
    16
  • Access数据库引擎

    Access数据库引擎有 Microsoft ACE OLEDB 12 0 和 Microsoft Jet OLEDB 4 0 两种 相同点 都是作为连接 Excel 对象的接口引擎区别 对于不同的 Excel 版本 有两种接口可供选择 Microsoft Jet OLEDB 4 0 以下简称 Jet 引擎 和 Microsoft ACE OLEDB 12 0 以下简称 ACE 引擎 Jet 引擎 可以访问 Off

    2025年12月2日
    8
  • vue生成二维码并保存图片_vue扫码登录

    vue生成二维码并保存图片_vue扫码登录传送门

    2022年10月4日
    4
  • ucosii操作系统详解_curdate函数

    ucosii操作系统详解_curdate函数UCOSII的用法OSTaskCreate()函数原型:INT8UOSTaskCreate(void(*task)(void*pd),void*pdata,OS_STK*ptos,INT8Uprio)调用者:任务或者是初始化代码。作用:建立一个新任务,任务的建立可以在多个任务环境启动之前,也可以在正在运行的任务中建立,中断处理程序中不能建立任务,一个任务必须为无限循环结构,且不能有…

    2025年9月8日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号