http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html

http://ihenu.iteye.com/blog/2221604

数字摘要和数字签名等概念

数字摘要技术

数字摘要技术(Digital Digest)也称作为安全HASH编码法(SHA: Secure Hash Algorithm)。数字摘要技术用于对所要传输的数据进行运算生成信息摘要,它并不是一种加密机制,但却能产生信息的数字"指纹",它的目的是为了确保数据没有被修改或变化,保证信息的完整性不被破坏。

数字摘要技术有如下主要特点:

·它能处理任意大小的信息,并对其生成固定大小的数据摘要,数据摘要的内容不可预见 

·对于相同的数据信息进行HASH后,总是能得到同样的摘要;如果数据信息被修改,进行Hash后,其摘要必定与先前不同 

·HASH函数是不可逆的,无法通过生成的数据摘要恢复出源数据

数字签名

数字签名(Digital Signature)用来保证信息传输过程中完整性、提供信息发送者的身份认证和不可抵赖性。使用公开密钥算法是实现数字签名的主要技术。 

使用公开密钥算法,当你用自己的私钥加密了一个信息,并将其发送给一个朋友时,如果你的朋友能够使用你的公钥来解密出信息,他就能确定信息必定是从你那里发来的,而不是一些冒名顶替的。这实际上就是数字签名的原理。 

由于公开密钥算法的运算速度比较慢,因此可使用HASH函数对要签名的信息进行摘要处理,减小使用公开密钥算法的运算量。因此,数字签名一般是结合了数字摘要技术和公开密钥算法共同使用

实现数学签名的过程如下:

签名信息

1. 对信息M进行HASH函数处理,生成摘要H    

2. 用你的(发送者的)私钥加密H来获取数字签名S    

3. 发送 {M, S}  

验证签名信息

1. 接受{M, S} 并区分开它们 

2. 对接收到的信息 M进行HASH函数处理,生成摘要H*    

3. 取得发送者的公钥    

4. 用公钥解密S,来获取H 

5. 比较H和H*,如果H和H*是一样的,即说明信息在发送过程中没有被篡改,反之即反 

由于对信息进行数字签名后,明文信息也通过网络进行传递,因此,在做完数字签名后,还要对整个信息(包括明文信息M和数字签名的密文信息S)进行加密,以保证信息的保密性。

数字证书:

数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息和公开密钥的文件。最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名。一般情况下证书中还包括密钥的有效时间,发证机关(证书授权中心)的名称,该证书的序列号等信息,证书的格式遵循ITUT。

CA机构 证书授证(Certificate Authority)中心

出现CA机构的目的: 防止有的一些用户的公钥被非法替换,造成数据的泄露