项目简介
本项目名为 micro - ecc,是基于C语言实现的小型且快速的ECDH和ECDSA库。它适用于8位、32位和64位处理器,能抵抗已知的侧信道攻击,代码量小且无需动态内存分配。
项目的主要特性和功能
- 安全可靠:可抵抗已知的侧信道攻击,保障密码运算的安全性。
- 跨平台支持:用C语言编写,支持8、32和64位架构,为AVR、ARM和Thumb平台提供可选的GCC内联汇编。
- 标准曲线支持:支持5种标准曲线,包括secp160r1、secp192r1、secp224r1、secp256r1和secp256k1。
- 低资源占用:代码体积小,且不进行动态内存分配。
- 许可证友好:采用BSD 2 - 条款许可证。
安装使用步骤
代码使用
将uECC文件复制或通过符号链接到你的项目中,然后在代码里使用 #include "inc/uECC.h"
来调用micro - ecc的函数,具体函数文档可查看uECC.h。
编译说明
- 该项目可使用任何支持stdint.h的C/C++编译器进行编译,包括Visual Studio 2013。
- 若要更改uECC编译时选项的默认值(如
uECC_OPTIMIZATION_LEVEL
),需在Makefile等文件中进行修改,确保uECC.c以所需的值进行编译,例如使用-DuECC_OPTIMIZATION_LEVEL = 3
。 - 为Thumb - 1平台编译时,必须使用
-fomit - frame - pointer
GCC选项(使用-O1
或更高优化级别编译时默认启用)。 - 为ARM/Thumb - 2平台编译且
uECC_OPTIMIZATION_LEVEL
>= 3时,必须使用-fomit - frame - pointer
GCC选项(使用-O1
或更高优化级别编译时默认启用)。 - 为AVR编译时,必须启用优化(使用
-O1
或更高优化级别编译)。 - 在Windows环境下构建时,需要链接
advapi32.lib
系统库。
点表示说明
压缩点采用http://www.secg.org/sec1 - v2.pdf中定义的标准格式表示;未压缩点采用标准格式,但无 0x04
前缀。除 uECC_compress()
外,所有函数仅接受未压缩点,可使用 uECC_compress()
和 uECC_decompress()
在压缩和未压缩点表示之间进行转换,私钥采用标准格式表示。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】