全文预览

实现数字签名的RSA算法的设计与实现

上传者:hnxzy51 |  格式:docx  |  页数:21 |  大小:148KB

文档介绍
/(1) 公钥 KU={e,n} str.Format("{%d, %d}",m_e,m_n); m_public_key.SetWindowText(str); //(2) 私钥 KU={d,n} str.Format("{%d, %d}",m_d,m_n); m_private_key.SetWindowText(str); //选择一个'e' 使'e' 与m_Undef 互素//选择 e的函数的实现 SelectE() {CString str; for(float i=2;i<100000;i++) {if(IsRelativePrime((float)m_Undef,(float)i)) {m_e=(long)i; return; }}}//互为素数的函数的实现 IsRelativePrime(float X,float Y) {float R; //输入:X,Y if(X<Y)// 如果 X较小则交换两个值{X=X+Y; Y=X-Y; X=X-Y; }//在这时 X总是比 Y大 for(;;) 第 9页{if(Y==0) break; R=fmod(X,Y); X=Y; Y=R; }if(X !=1) return false; else return true;// 互素}//计算 D的函数的实现 CalculateD() {float d; long d_dash; CString str; for(float k=1;k<100000;k++) {d=(m_Undef*k+1)/m_e; d_dash =(long)((m_Undef*k+1)/m_e); if(d ==d_dash) {m_d=d; return; }}}//产生素数的函数的实现 GeneratePrimeNumbers() {CString str; UpdateData(TRUE);

收藏

分享

举报
下载此文档