数字签名力学

【勇芳软件工作室】汉化HomePreviousNext

应用程序使用CryptSignHashCryptVerifySignature函数对哈希值进行签名/验证。应用程序通常指定一个描述字符串,它必须在签名/验证之前添加到哈希对象。

签名过程通常是这样的:

应用程序使用CryptCreateHash创建一个哈希对象。

2.应用程序使用CryptHashData和/或CryptHashSessionKey将数据添加到散列对象。

3.应用程序调用{??989796024}函数对哈希值进行签名,指定描述字符串。

4.操作系统层接受CryptSignHash调用,将描述字符串转换为Unicode(如果不是Unicode),然后通过CPSignHash功能将任务转交给CSP。

5.CSP通过CPHashData功能将Unicode描述字符串添加到散列对象。终止空字符是【不】散列。

6.CSP完成散列,并使用CPGetHashParam函数获取要签名的哈希值。

7.CSP采用哈希值,将其填充到公钥模数的大小,并使用签名私钥对其进行加密。

哈希值周围的填充必须采用由RSA Data Security提供的公开密钥加密标准(PKCS)指定的格式。所使用的散列算法必须按照PKCS#1,第6.3节中的描述进行编码。

8.然后,签名块通过操作系统层返回到应用程序。