计算机应用 | 古代文学 | 市场营销 | 生命科学 | 交通物流 | 财务管理 | 历史学 | 毕业 | 哲学 | 政治 | 财税 | 经济 | 金融 | 审计 | 法学 | 护理学 | 国际经济与贸易
计算机软件 | 新闻传播 | 电子商务 | 土木工程 | 临床医学 | 旅游管理 | 建筑学 | 文学 | 化学 | 数学 | 物理 | 地理 | 理工 | 生命 | 文化 | 企业管理 | 电子信息工程
计算机网络 | 语言文学 | 信息安全 | 工程力学 | 工商管理 | 经济管理 | 计算机 | 机电 | 材料 | 医学 | 药学 | 会计 | 硕士 | 法律 | MBA
现当代文学 | 英美文学 | 通讯工程 | 网络工程 | 行政管理 | 公共管理 | 自动化 | 艺术 | 音乐 | 舞蹈 | 美术 | 本科 | 教育 | 英语 |

免费房产证信息数字签名的实现(一)毕业(3)

2013-06-29 01:28
导读:,C,D) = (B AND C) or (B AND D) or (C AND D) (40 = t = 59) ft(B,C,D) = B XOR C XOR D (60 = t = 79). 1.5) 计算消息摘要 必须使用进行了补位和补长度后的消息来计算消息摘要。计
,C,D) = (B AND C) or (B AND D) or (C AND D) (40 <= t <= 59)
 ft(B,C,D) = B XOR C XOR D                     (60 <= t <= 79).
 1.5) 计算消息摘要
 必须使用进行了补位和补长度后的消息来计算消息摘要。计算需要两个缓冲区,每个都由5个32位的字组成,还需要一个80个32位字的缓冲区。第一个5个字的缓冲区被标识为A,B,C,D,E。第一个5个字的缓冲区被标识为H0, H1, H2, H3, H4。
 80个字的缓冲区被标识为W0, W1,..., W79
 另外还需要一个一个字的TEMP缓冲区。
 为了产生消息摘要,在第4部分中定义的16个字的数据块M1, M2,..., Mn
 会依次进行处理,处理每个数据块Mi 包含80个步骤。
 在处理每个数据块之前,缓冲区{Hi} 被初始化为下面的值(16进制)
 H0 = 0x67452301
 H1 = 0xEFCDAB89
 H2 = 0x98BADCFE
 H3 = 0x10325476
 H4 = 0xC3D2E1F0.
 现在开始处理M1, M2, ... , Mn。为了处理 Mi,需要进行下面的步骤
 (1). 将 Mi 分成 16 个字 W0, W1, ... , W15,  W0 是最左边的字
 (2). 对于 t = 16 到 79 令 Wt = S1(Wt-3 X& Wt-8 X& Wt- 14 X& Wt-16).
 (3). 令 A = H0, B = H1, C = H2, D = H3, E = H4.
 (4) 对于 t = 0 到 79,执行下面的循环
 TEMP = S5(A) + ft(B,C,D) + E + Wt + Kt;
 E = D; D = C; C = S30(B); B = A; A = TEMP;
 (5). 令 H0 = H0 + A, H1 = H1 + B, H2 = H2 + C, H3 = H3 + D, H4 = H4 + E.
 在处理完所有的 Mn, 后,消息摘要是一个160位的字符串,以下面的顺序标识
 H0 H1 H2 H3 H4.
2.2.2 RSA算法原理
 RSA加密算法1978年Ron  Rivest,  AdiShamir 和Leonard  Adleman提出的,它是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。算法的名字以发明者的名字命名。RSA的安全性依赖于大数分解。公钥和私钥都是两个大素数( 大于 100个十进制位)的函数。据猜测,从一个密钥和密文推断出明文的难度等同于分解两个大素数的积。 RSA算法的实现分为:生成密钥,加密,解密)。 (科教范文网http://fw.nseac.com)
 1. 密钥的生成,生成密钥步骤
 生成RSA密钥需完成下列步骤:
   (1) 选择e的值为3或者25537;
   (2) 随机生成大素数p,直到gcd (e,p-1)=1;其中gcd(a,b)表示a,b取最大公约数
   (3) 随机生成不同于p的大素数q,直到 gcd (e,q-1)=1;
   (4) 计算n=pq , (n)=(p-1)(q-1);
   (5) 计算d,满足de1 (mod (n));
   (6) 计算d mod (p-1), d mod (q-1);
   (7) 计算q-1 mod p;
   (8) 将n,e放入RSA公钥;将n,e,d mod (p-1),d mod (q-1) q-1 mod p放入RSA私钥。
 2.素数的产生
 采用Miller-Rabin素性检测算法,首先选择一个代测的随机数p,计算b,
 b是2整除p-1的次数。然后计算m,使得n=1+(2^b)m。(1) 选择一个小于p的随机数a。(2) 设j=0且   (3) 如果z=1或z=p-1,那麽p通过测试,可能使素数(4) 如果j>0且z=1, 那麽p不是素数(5) 设j=j+1。如果j<b且z<>p-1,设  ,然后回到(4)。如果z=p-1,那麽  p通过测试,可能为素数。(6) 如果j=b 且z<>p-1,不是素数
 这个测试较前一个速度快。数a被当成证据的概率为75%。这意味着当迭代次数为t时,它产生一个假的素数所花费的时间不超过。实际上,对大多数随机数,几乎99.99%肯定a是证据。 通过验证得知,当T为素数,并且A是平均分布的随机数,那么测试有效率为。如果T > 8那么测试失误的机率就会小于,这对于一般的应用是足够了。如果需要求的素数极大,或着要求更高的保障度,可以适当调高T的值。
 3.加密过程
 加密规则为:,xZn
 4.解密过程
   解密规则为     ,yZn,Zn为整数集合,x为密文。
 解密过程的输入为:密文ED;模数n;加密指数e(公钥解密)或解密指数d(私钥解密),结果为明文。

(科教范文网 lw.AsEac.com编辑整理)


2.3 RSA数字签名算法的实现具体过程
 RSA数字签名算法,包括签名算法和验证签名算法。首先用SHA-1算法对需要签名的信息作散列计算。签名的过程中需用户的私钥,验证过程需管理机构的公钥。A用签名算法将字符串形式的消息处理成签名;B用验证签名算法验证签名是否是A对数字证书的签名,确认是A发送的消息;消息没有被攥改过;A一定发送过消息。
 1 签名算法
 签名算法包括二步:消息摘要计算,RSA加密。
 消息摘要计算。 房产证数字文件在签名前首先通过SHA-1计   算,生成128位的消息摘要digest。
 对摘要作RSA计算,采用加密算法,结合房产证持有人拥有的私钥来加密经过哈希后的消息摘要,得到加密后的字符串。加密算法中使用的加密块为二进制类型。
 2 验证签名算法
 验证签名算法包括两步:RSA解密得到签名者的消息摘要,验证者通过对原消息进行相同的哈希计算的到一个新的消息摘要,比较两个消息摘要。验证签名的过程输入原房产的数字文件,房管中心的签名公钥,证书持有者的签名;输出为验证的结果,即可判断否是正确的签名。
 (1)RSA解密
  签名实际是将加密后的字符串。用RSA解密算法,采用签名者的公钥对这个加密的字符串进行解密。解密的结果应为128位的消息摘要。在解密过程中,若出现得到的加密块的类型不是01,则解密失败。签名不正确。
 (2)消息摘要计算和比较
&
上一篇:免费H考试题库管理系统的设计与实现(一) 下一篇:免费vc++网上寻呼QICQ源代码(附带论文)(一)