jihyun1024/Crypto
GitHub: jihyun1024/Crypto
一个纯 C/C++ 编写的密码学算法教育实现合集,零依赖地覆盖了 AES、DES 及完整的椭圆曲线加密体系。
Stars: 0 | Forks: 0
# Crypto 仓库
本仓库包含经典加密算法和现代加密算法的实现。已实现 AES、DES 以及椭圆曲线加密(ECC)相关算法。各项实现均出于教育目的编写,无任何外部依赖,采用纯 C/C++ 编写。
## 项目结构
### AES (Advanced Encryption Standard)
AES 加密算法的实现。支持使用 128 位密钥的 AES-128。
- **AES32.cpp / AES32.h**: 基本的 AES 加密/解密函数
- **Operation Mode/**: 各种操作模式的实现
- **ECB & CBC/**: ECB (Electronic Codebook) 与 CBC (Cipher Block Chaining) 模式
- `Run_AES_ECB_CBC.cpp`: ECB 与 CBC 模式的测试程序
- 多个 .bin 文件: 测试数据与输出文件
- **GCM/**: GCM (Galois/Counter Mode) 模式的实现
- `AES_GCM.cpp`: GCM 模式加密
- `GHASH.cpp / GHASH.h`: GHASH 函数的实现
- `HexByte.cpp / HexByte.h`: 十六进制字节工具
### DES (Data Encryption Standard)
DES 加密算法的实现。
- **Data_Encryption_Standard.cpp**: DES 加密/解密的完整实现(包含初始置换、扩展、S 盒、P 盒等)
### Elliptic_Curve_Crypto (椭圆曲线加密)
在高级密码学与实践(韩国国民大学)课程中学习并实现的 ECC (Elliptic Curve Crypto)
- **Addition Table.cpp / Addition Table.h**: 椭圆曲线加法表生成(示例)
- **Inverse_Table.cpp**: GF(2^4) 域的逆元表生成
- **EncDec.cpp**: 椭圆曲线 ElGamal 加密/解密示例
#### ECDH (Elliptic Curve Diffie-Hellman)
ECDH 密钥交换协议的实现。
- **big_int.c / big_int.h**: 256 位整数运算库
- **csprng.c / csprng.h**: 密码学安全的伪随机数生成器
- **ecc_point.c / ecc_point.h**: 椭圆曲线点运算(加法、标量乘法)
- **secp256k1_params.c**: secp256k1 曲线参数定义
#### ECDSA (Elliptic Curve Digital Signature Algorithm)
使用 secp256k1 曲线的 ECDSA 数字签名算法的完整 C 语言实现。
- **big_int.c / big_int.h**: 256 位整数运算
- **ecc_point.c / ecc_point.h**: 椭圆曲线点运算
- **ecdsa.c / ecdsa.h**: ECDSA 密钥生成、签名、验证函数
- **sha256.c / sha256.h**: SHA-256 哈希函数的实现
- **main.c**: 演示程序
- **test_basic.c**: 基本功能测试
- **Makefile**: 构建配置
- **run.sh**: 构建并运行脚本
- **IMPLEMENTATION_REPORT.md**: 实现完成报告
构建并运行方法:
```
cd Elliptic_Curve_Crypto/ECDSA
make
./ecdsa_demo # 데모 실행
./test_basic # 테스트 실행
```
## 使用的语言及环境
- **C/C++**: 所有实现均使用标准 C/C++ 编写
- **外部库**: 无(未使用 OpenSSL、GMP 等)
- **标准曲线**: secp256k1(用于 Bitcoin、Ethereum 等)
## 注意事项
- 本代码出于教育与学习目的编写,在实际商业环境中,建议使用经过验证的加密库。
- 各项实现可作为理解对应算法基本概念的参考资料。
## 许可证
本仓库中的代码已公开,可自由用于教育目的。
标签:AES, AES-128, C, C++, CBC, CSPRNG, DES, Diffie-Hellman, ECB, ECC, ECDH, ElGamal, GCM, GHASH, meg, 云配置检测, 信息安全, 加密算法, 国密, 大整数运算, 安全随机数生成器, 密码学, 密码算法实现, 密钥交换, 对称加密, 手动系统调用, 教育项目, 数据擦除, 数论, 无外部依赖, 椭圆曲线密码学, 纯原生实现, 网络安全, 自动化审计, 隐私保护, 非对称加密, 高级密码学