网站地图| 免费获取|
毕业论文网
  • 网站首页|
  • 论文范文|
  • 论文降重|
  • 职称论文发表|
  • 合作期刊|
  • 论文下载|
  • 计算机论文|
  • 外文翻译|
  • 免费论文|
  • 论文资料|
  • 论文开题报告
搜索

当前位置:毕业论文网 -> 免费论文 -> 计算机论文 -> 免费房产证信息数字签名的实现(六)
计算机论文资料| ASP设计| Delphi| VB设计| JSP设计| ASP.NET设计| VB.NET| java设计| VC| pb| VS| dreamweaver| c#.net| vf| VC++| 计算机论文范文| 论文下载| 自动化论文

免费房产证信息数字签名的实现(六)

最新活动:微信集50个赞就可获取任意一篇钻石会员文档。详情见微信集赞换文档
免费房产证信息数字签名的实现(六) 德算法求解同余方程
    CBigInt RsaTrans(CBigInt& A, CBigInt& B); //反复平方算法进行幂模运算
    void GetPrime(int bits); //产生指定长度的随机大素数
 CBigInt Gcd(CBigInt& A);
};
 2. RSA相关算法实现
 RSA算法实现比较重要的是素性检测,大随机数的产生,求逆运算等,分别由下面几个函数来完成,下面给出拉宾米勒算法。
 int CBigInt::Rab()
{
    unsigned i,j,pass;
    for(i=0;i<550;i++){if(Mod(PrimeTable[i])==0)return 0;}
    CBigInt S,A,I,K;
    K.Mov(*this);
 K.m_ulValue[0]--;
    for(i=0;i<5;i++)
    {
        pass=0;
        A.Mov(rand()*rand());
  S.Mov(K);
        while((S.m_ulValue[0]&1)==0)
  {
            for(j=0;j<S.m_nLength;j++)
   {
       S.m_ulValue[j]=S.m_ulValue[j]>>1;
       if(S.m_ulValue[j+1]&1)S.m_ulValue[j]=S.m_ulValue[j]|0x80000000;
   }
      if(S.m_ulValue[S.m_nLength-1]==0)S.m_nLength--;
   I.Mov(A.RsaTrans(S,*this));
   if(I.Cmp(K)==0){pass=1;break;}
  }
  if((I.m_nLength==1)&&(I.m_ulValue[0]==1))pass=1;
  if(pass==0)return 0;
 }
    return 1;
}
3.3.2 签名生成模块
 在签名产生模块中,户主通过管理中心发放给他的私钥,以及他刚刚通过数字证书生成模块得到的房产证文件,然后将这两个文件分别导入模块中,通过生成签名按钮及可以得到生成后的数字签名。这个签名由户主自己保存。密钥生成过程时间主要是生成随机素数的时间及计算公钥和私钥的模乘法的时间。如图7所示
            
  图7  签名生成模块图
 在数字签名过程中要对文件进行签名首先得用对要签名的文件进行数字摘要处理。在常见的生成数字摘要的方法有MD5和SHA-1,在本设计中对文件的消息摘要我们是通过SHA-1安全哈希算法来实现的。下面简要的介绍安全哈希算法的具体实现方法和代码:
  SHA-1安全哈希算法的实现
typedef struct {             /*SHA结构体定义*/
    unsigned long state[5];
    unsigned long count[2];
    unsigned char buffer[64];
} SHA1_CTX;
 void SHA1Transform(unsigned long state[5], unsigned char buffer[64]);/*传输函数,用于数据的转换和传、送*/
 void SHA1Init(SHA1_CTX* context);   /*初始化,对初始条件进行定义和说明*/
 void SHA1Update(SHA1_CTX* context, unsigned char* data, unsigned int len);   /*  中间转换函数 */
 void SHA1Final(unsigned char digest[20], SHA1_CTX* context);     /* 得到最后的哈希表*/
#define rol(value, bits) (((value) << (bits)) | ((value) >> (32 - (bits))))
/* blk0() and blk() perform the initial expand. */
/* I got the idea of expanding during the round function from SSLeay */
 #ifdef LITTLE_ENDIAN
 #define blk0(i) (block->l[i] = (rol(block->l[i],24)&0xFF00FF00) \
    |(rol(block->l[i],8)&0x00FF00FF))
 #else
 #define blk0(i) block->l[i]
 #endif
 #define blk(i) (block->l[i&15] = rol(block->l[(i+13)&15]^block->l[(i+8)&15] \
    ^block->l[(i+2)&

首页 上一页 3 4 5 6 7 8 9 下一页 尾页 6/9/9

免费房产证信息数字签名的实现(六)由毕业论文网(www.huoyuandh.com)会员上传。
原创论文资料流程 相关论文
上一篇:免费H考试题库管理系统的设计与实.. 下一篇:免费个人入侵检测系统的实现
推荐论文 本专业最新论文
Tags:房产证 信息 数字签名 实现 2010-04-01 13:12:13【返回顶部】
精彩推荐
发表论文

联系方式 | 论文说明 | 网站地图 | 免费获取 | 钻石会员 | 硕士论文资料


毕业论文网提供论文范文,论文代发,原创论文资料

本站部分文章来自网友投稿上传,如发现侵犯了您的版权,请联系指出,本站及时确认并删除  E-mail: 17304545@qq.com

Copyright@ 2009-2020 毕业论文网 版权所有