91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 3.75MB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2023-11-27
  • 語言: C/C++
  • 標簽: 加密??

資源簡介

國密算法sm2算法c語言實現,vc++環境,

資源截圖

代碼片段和文件信息


/* 1、用戶A選定一條適合加密的橢圓曲線Ep(ab)(如:y2=x3+ax+b),并取橢圓曲線上一點,作為基點G。
  2、用戶A選擇一個私有密鑰k,并生成公開密鑰K=kG。
  3、用戶A將Ep(ab)和點K,G傳給用戶B。
  4、用戶B接到信息后?,將待傳輸的明文編碼到Ep(ab)上一點M,并產生一個隨機整數r(r  5、用戶B計算點C1=M+rK;C2=rG。
  6、用戶B將C1、C2傳給用戶A。
  7、用戶A接到信息后,計算C1-kC2,結果就是點M。因為
??????????C1-kC2=M+rK-k(rG)=M+rK-r(kG)=M
   再對點M進行解碼就可以得到明文。

??  密碼學中,描述一條Fp上的橢圓曲線,常用到六個參量:
???????T=(pabGnh)。
  (p?、a?、b?用來確定一條橢圓曲線,G為基點,n為點G的階,h?是橢圓曲線上所有點的個數m與n相除的整數部分)

  這幾個參量取值的選擇,直接影響了加密的安全性。參量值一般要求滿足以下幾個條件:

  1、p?當然越大越安全,但越大,計算速度會變慢,200位左右可以滿足一般安全要求;
  2、p≠n×h;
  3、pt≠1?(mod?n),1≤t<20;
  4、4a3+27b2≠0?(mod?p);
  5、n?為素數;
  6、h≤4。
*/
#include?
#include?
#include?
#include?
#include?“tommath.h“
#include?


#define?BIT_LEN?800?
#define?KEY_LONG?128??//私鑰比特長
#define?P_LONG?200????//有限域P比特長
#define?EN_LONG?40????//一次取明文字節數(x20)(y20)


//得到lon比特長素數
int?GetPrime(mp_int?*mint?lon);
//得到B和G點X坐標G點Y坐標
void?Get_B_X_Y(mp_int?*x1mp_int?*y1mp_int?*b??mp_int?*a??mp_int?*p);
//點乘
bool?Ecc_points_mul(mp_int?*qxmp_int?*qy?mp_int?*px?mp_int?*pymp_int?*dmp_int?*amp_int?*p);
//點加
int?Two_points_add(mp_int?*x1mp_int?*y1mp_int?*x2mp_int?*y2mp_int?*x3mp_int?*y3mp_int?*abool?zeromp_int?*p);
//二進制存儲密文
int?chmistore(mp_int?*aFILE?*fp);
//把讀取的字符存入mp_int型數
int?putin(mp_int?*achar?*chint?chlong);
//ECC加密?
void?Ecc_encipher(mp_int?*qxmp_int?*qy?mp_int?*px?mp_int?*pymp_int?*amp_int?*p);
//ECC解密
void?Ecc_decipher(mp_int?*k?mp_int?*amp_int?*p);
//實現將mp_int數a中的比特串還原為字符串并賦給字符串ch:
int?chdraw(mp_int?*achar?*ch);
//取密文
int?miwendraw(mp_int?*achar?*chint?chlong);
unsigned?int?SDBMHash16(char?*str);//對輸入的字符串計算Hash值,輸出為一個32位的整數
//CString?IntToString(int&?number);//將一個整數轉換為一個字符串
unsigned?int?SDBMHash32(char?*str);

void?NumToStr(unsigned?__int64?achar?z[100]);

void?Hashstring(char?temphash[800]unsigned?__int64?*hashint?n1);


int?myrng(unsigned?char?*dst?int?len?void?*dat)
{
???int?x;
???for?(x?=?0;?x????return?len;
}


void?main(){

cout<<“\n---------------------------------------------------“;
cout<<“\n??????????本程序實現SM2的加密解密“;
cout<<“\n---------------------------------------------------\n“<???
clock_t?t_startt_end;?????????????//統計時間
mp_int?GX;
mp_int?GY;
mp_int?K;//私有密鑰
mp_int?A;
mp_int?B;
mp_int?QX;
mp_int?QY;
mp_int?P;//Fp中的p(有限域P)
mp_int?c1xc1y;
mp_int?c2xc2y;
mp_int?r;
mp_int?tempxtempy;
//mp_int?m;//隨機待加密明文
mp_int?temp1;
//mp_int?mx;


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(&c1x);
mp_init(&c1y);
mp_init(&c2x);
mp_init(&c2y);
mp_init(&r);
mp_init(&tempx);
mp_init(&tempy);
//mp_init(&m);
mp_init(&temp1);
//mp_init(&mx);


FILE?*fp*fq;
char?fin_name[40]fout1_name[40]fout2_name[40];

unsigned?__int64?buffer[20000];
char?test[20000];
//short?buffer[2000

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件??????54784??2017-01-18?16:27??my_ecc.opt

?????文件????????756??2013-10-07?21:04??my_ecc.plg

?????文件????6443008??2019-09-21?14:42??my_ecc.sdf

?????文件????????878??2019-09-21?14:39??my_ecc.sln

????..A..H.?????10752??2019-09-21?14:42??my_ecc.suo

?????文件???????6174??2019-09-21?14:37??my_ecc.vcxproj

?????文件????????143??2019-09-21?14:37??my_ecc.vcxproj.user

?????文件??????16673??2013-10-07?18:07??tommath.h

?????文件??????19875??2013-10-07?18:07??tommath_class.h

?????文件???????2184??2013-10-07?18:07??tommath_superclass.h

?????文件????????870??2019-09-21?14:42??Debug\cl.command.1.tlog

?????文件??????10534??2019-09-21?14:42??Debug\CL.read.1.tlog

?????文件????????370??2019-09-21?14:42??Debug\CL.write.1.tlog

?????文件?????123904??2013-10-07?18:07??Debug\my_ecc.bsc

?????文件?????299111??2013-10-07?21:04??Debug\my_ecc.exe

?????文件?????367240??2013-10-07?21:04??Debug\my_ecc.ilk

?????文件????????218??2019-09-21?14:42??Debug\my_ecc.lastbuildstate

?????文件???????1431??2019-09-21?14:42??Debug\my_ecc.log

?????文件??????????0??2019-09-21?14:42??Debug\my_ecc.unsuccessfulbuild

?????文件????????713??2019-09-21?14:39??Debug\my_ecc.vcxprojResolveAssemblyReference.cache

?????文件??????????0??2019-09-21?14:39??Debug\my_ecc.write.1.tlog

?????文件??????27648??2019-09-21?14:42??Debug\vc100.idb

?????文件??????45056??2019-09-21?14:42??Debug\vc100.pdb

?????文件??????82944??2013-10-07?21:04??Debug\vc60.idb

?????文件??????61440??2013-10-07?21:04??Debug\vc60.pdb

?????文件???15794176??2019-09-21?14:40??ipch\my_ecc-aa5eaec4\my_ecc-12fc0fa6.ipch

?????文件?????155136??2013-10-07?18:07??ecc.lib

?????文件?????369776??2013-10-07?18:07??MathLib.lib

?????文件??????27987??2019-09-21?14:42??my_ecc.cpp

?????文件???????3445??2013-10-07?18:07??my_ecc.dsp

............此處省略8個文件信息

評論

共有 條評論