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算法的实现分为:生成密钥,加密,解密)。
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(私钥解密),结果为明文。
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)消息摘要计算和比较
&
首页 上一页 1 2 3 4 5 6 7 下一页 尾页 3/9/9
免费房产证信息数字签名的实现(三)由毕业论文网(www.huoyuandh.com)会员上传。