# whitebox-sm4 **Repository Path**: fuyu12/whitebox-sm4 ## Basic Information - **Project Name**: whitebox-sm4 - **Description**: 实现白盒SM4加密,支持ECB和文本白盒加密 - **Primary Language**: C - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-12-11 - **Last Updated**: 2024-12-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 白盒SM4加密 #### 介绍 该项目实现了 **白盒SM4加密算法**,白盒加密是一种保护加密算法免受密钥泄露攻击的技术。传统的加密算法在密钥被暴露时会失去保护数据的能力,而白盒加密通过将密钥嵌入到算法的实现中,采用查找表、仿射变换等方式使得即使攻击者获得了加密实现的详细信息,仍然无法轻易恢复出密钥。 **SM4**(商用密码算法4)是中国国家密码算法之一,广泛应用于金融、通信等领域。在本项目中,我们基于SM4算法的标准实现,开发了一种白盒版本的SM4,旨在提供更加安全的加密解决方案。 #### 软件架构 ├── include/ │ ├── sbox.h # SM4 S-Box 数据定义 │ ├── sm4.h # SM4算法接口和上下文定义 │ ├── wbsm4.h # 白盒SM4相关函数声明和全局变量 │ ├── random.h # 伪随机数生成函数声明 │ ├── structure.h # 定义矩阵和向量的结构体和相关操作 │ └── WBMatrix.h # 与矩阵和向量运算相关的函数声明 ├── src/ │ ├── sm4.c # 标准SM4算法实现 │ ├── wbsm4.c # 白盒SM4加密算法的实现,包括生成查找表和加密操作 │ ├── random.c # 伪随机数生成的实现 │ ├── WBMatrix/ # 处理矩阵运算的源文件 │ │ ├── random.c # 矩阵相关的随机数生成函数 │ │ ├── WBMatrix.c # 矩阵和向量运算的实现 ├── test/ │ ├── main.c # 主程序,提供命令行接口进行算法的测试和验证 │ └── README.md # 项目的说明文件 #### 项目特点 - **白盒SM4-ECB模式加密**:实现了白盒SM4加密算法在ECB(电子密码本)模式下的加密功能,能够对数据进行加密处理。 - **标准SM4解密**:支持通过输入十六进制密文,利用白盒SM4算法进行解密操作。 - **标准SM4加密**:提供了一个标准的SM4加密功能,可以对输入的字符串进行加密,适用于在测试环境下验证SM4加密算法的功能。 - **白盒SM4文件加密**:支持对文本文件进行白盒SM4加密。 - **白盒SM4文件解密**:除了加密文件,还提供了对应的解密功能,可以对已经加密的文件进行解密操作,恢复文件的原始内容。 - **白盒SM4加密性能测试**:提供了对白盒SM4加密算法测试功能。 #### 使用说明 **编码:gb2312** ##### 依赖项 - GCC 或 Clang 编译器 - CMake 构建工具 ##### 编译步骤 1. 克隆此项目到本地: ```bash git clone https://gitee.com/fuyu12/whitebox-sm4.git ``` 2. 进入项目目录: ```bash cd whitebox-sm4 ``` 3. 编译并运行示例: - 使用CMake进行构建: ```bash bash复制代码mkdir build cd build cmake .. make ``` 4. 运行程序: ```bash ./WBSM4 ``` #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)