龙腾国际|Home

    Blog

    新闻资讯

    一种简单加解密算法的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