资源简介
真正由标准C写出来的ECC加密程序。要是谁用了有问题请发邮件到fjzhtaobao@sohu.com

代码片段和文件信息
/**
******************************************************************************
* @file ECC.c
* @author Readers Team
* @version V 1.00.00
* @date 24-September-2012
* @brief
******************************************************************************
* @attention
******************************************************************************
*/
#include
#include “ECC.h“
/*******************************************************************************
* Function Name : ECC_encrypt
* Description : The data encryption.
* Input : - tempA : to receive encrypted generates A parameter
- tempP : to receive encrypted generates P parameter
* - tempK : to receive encrypted generates K parameter
* - output : Encrypted encrypted data output
* - input :the encryption of the original data
* - NumByte :the length of the encrypted data
* Output : None
* Return : return a state
*******************************************************************************/
bool ECC_encrypt(char* tempA char* tempP char* tempK char* output char* input uint32_t NumByte)
{
uint8_t pbBuf[1];
mp_int GX;
mp_int GY;
mp_int K;
mp_int A;
mp_int B;
mp_int QX;
mp_int QY;
mp_int P;
mp_init(&GX);
mp_init(&GY);
mp_init(&K);
mp_init(&A);
mp_init(&B);
mp_init(&QX);
mp_init(&QY);
mp_init(&P);
mp_init(&(ECCA));
mp_init(&(ECCP));
mp_init(&(ECCK));
Cryp_GenRandom(pbBuf 1);
t=pbBuf[0];
srand( t );
GetPrime(&PP_LONG);
mp_copy(&P&ECCP);
mp_toradix(&PtempP10);
memcpy(tempECCPtempPBIT_LEN);
GetPrime(&A30);
mp_copy(&A&ECCA);
mp_toradix(&AtempA10);
memcpy(tempECCAtempABIT_LEN);
Get_B_X_Y(&GX&GY&B&A&P);
GetPrime(&KKEY_LONG);
mp_copy(&K&ECCK);
mp_toradix(&KtempK10);
memcpy(tempECCKtempKBIT_LEN);
//获取公钥Q坐标
Ecc_points_mul(&QX&QY&GX&GY&K&A&P);
Ecc_encipher(&QX &QY &GX &GY &A &P output input NumByte);//加密
mp_clear(&GX);
mp_clear(&GY);
mp_clear(&K);//私有密钥
mp_clear(&A);
mp_clear(&B);
mp_clear(&QX);
mp_clear(&QY);
mp_clear(&P);//Fp中的p(有限域P)
return TRUE;
}
/*******************************************************************************
* Function Name : Ecc_encipher
* Description : The data encryption.
* Input : - QX : Public key X coordinate
- QY : Public key Y coordinate
* - GX : Curve G point X coordinate
* - GY : Curve G point Y coordinate
* - A :Curve parameter A
* - P :Finite field P
* Output : None
* Return : return a state
*******************************************************************************/
static bool Ecc_encipher(mp_int *qxmp_int *qy mp_int *px mp_int *pymp_int *amp_int *p char* pchStr \
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 8329 2012-09-26 17:23 ECC.c
----------- --------- ---------- ----- ----
8329 1
- 上一篇:网络课程设计-ping程序设计与实现
- 下一篇:cad图纸合并程序 64位专用
相关资源
- STM32F103RC+ADC+DMA多通道采样LCD显示
- I2C读写AT24C02 基于STM32F103 cube116540
- 基于stm32f103ve的程序——跑马灯实验
- 基于STM32RCT6的步进电机驱动程序
- stm32f407上的两个can发送和接收例程
- STM32 led 时钟
- STM32 2.4G通信例程
- 直流无刷电机方波驱动 stm32 例程代码
- STM32中文资料
- STM32蓝牙和串口程序
- STM32f103超声波模块例程
- stm32f103c8t6 4 oled.rar
- stm32f030 IAP Demo(原创)
- STM32基于rt_thread操作系统的SDHC卡文件
- NRF24L01实现51与STM32双向通讯
- STM32F103 串口程序(完整版)
- stm32 ds18b20 温度传感器 测试通过
- stm32官方例程
- STM32F103定时器中断程序
- [免费]基于stm32f103ze 的OLED驱动代码
- STM32F103RBT6驱动UC1698控制芯片的160160黑
- STM32F103 DS18B20 V3.5.0固件库驱动程序工
- STM32定时器使用入门。看了这个程序会
- SIM908 SDIO FSMC STM32 FIFO
- STM32F103 CC2500完整驱动(模拟SPI)
- AD7606采集程序
- RSA AES DES ECC加密算法源码
- stm32 用SPI 方式读写 SDHC
- stm32通过DMA方式采集ADC数据
- 意法半导体STM全系列微控制器STM32ST
评论
共有 条评论