资源简介
真正由标准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位专用
相关资源
- 基于STM32F4x9的LCD显示
- VS1053B编解码器的VDR分布式声音采集卡
- stm32的DAC播放音乐文件
- STM32+TMC5160代码电路图.rar
- 基于STM32的深海钻机甲板控制系统
- stm32f103.SchDoc
- STM32F103 USART+DMA
- DMA+stm32 407.zip
- 4_USART串口通信(空闲中断+DMA.zip
- stm32f105-usart-DMA收发demo
- STM32F042F6P6 Uart12DMA;发送中断接收
- 基于STM32的嵌入式双目图像采集系统设
- 基于STM32F103C8单片机的晶联讯电子JL
- 基于STM32的温湿度检测系统实现
- stm32F4+w5300
- 14284969_《STM32单片机应用与全案例实践
-
ST-li
nk-V2的SWD仿真使用方法.docx - 安富莱STM32开发板资料
- DDR4 SODIM条参考设计文件NO-ECC
- STM32F103实现OV7670摄像头显示
- STM32F207学习板例程
- STM32F103VCT6TR - High-density performance lin
- STM32 SRAM启动的 KeiL 配置
- STM32的IAP-Bootloader程序
- STM32例程之Bootloader
- stm32f103 虚拟U盘,调试成功的
- 基于stm32F103vct6的SD卡FATFS文件系统移植
- STM32F030从机中断接收的iic代码,附带
- FreeModbus_Slave+STM32F407+USART2代码亲测可
- STM32+1602液晶proteus仿真.zip
评论
共有 条评论