一种简单加解密算法的C语言实现
2024-02-06 17:04
在通信领域有很多加密策略,往往这些加密方式对芯片的算力和硬件配置有着苛刻的要求,对于轻量级场景下,我们分享一种基于公钥和私钥加解密的C语言实现方法。即使是同一组数据,每次经过加密后得出的加密数据都是动态变化的,非常适用于简单通信数据的交互加密。如果需要加强加密效果,可以将pp参数取到足够大。
以下是使用C-free运行的结果:
这里我们不讨论过多的原理,希望小伙伴们可以上手就用。
使用方法:
1、选择椭圆曲线参数a1、b1、pp;
2、设定私钥nB;
3、调用函数get_generetor_class()生成曲线上的点集以及阶;
4、调用encrypt_ecc(uint8_t *uid)函数进行加密,该方法应根据实际使用情况进行修改编写,本例程只是对一个固定数组进行加密;
5、调用 decrypt_ecc(uint16_t *indata,unsigned char *outdecode,uint8_t datalen,uint8_t p1x,uint8_t p1y,uint8_t pmx,uint8_t pmy)函数对已加密数据进行解密。
注意头文件应包含math.h。
原代码链接:https://gitee.com/fankeyai/module_c_code/blob/encode_decode/ecc_c.c
上一篇:
下一篇: