在网络通信和电子商务中很容易发生如下问题:
①否认 ②伪造 ③冒充 ④篡改
数字签名
定义:
数字签名就是针对数字信息进行的签名,以防止信息被伪造或篡改等,数字签名也可以用于通信双方的身份鉴别。
特性:
(1)签名是可信的。
(2)签名是无法伪造的。
(3)签名是不可复制的。
(4)签名的信息是不可篡改的。
(5)签名是不可抵赖的。
原理:
公开密钥体制可以用来设计数字签名方案。
设用户Alice要发送一个经过数字签名的明文M给用户Bob,数字签名的一般过程如下:
(1) Alice用信息摘要函数hash从M抽取信息摘要M' ;
(2) Alice用自己的私人密钥对M'加密,得到签名文本S,即Alice在M上签了名;
(3) Alice用Bob的公开密钥对S加密得到S' ;
(4)Alice将S'和M发送给Bob;
(5)Bob收到S'和M后,用自己的私人密钥对S'解密,还原出S;
(6) Bob用Alice的公开密钥对S解密, 还原出信息摘要M' ;
(7) Bob用相同信息摘要函数从M抽取信息摘要M”;
(8)Bob比较M'与M”,当M'与M"相同时,可以断定Alice在M上签名。
由于Bob使用Alice的公开密钥才能解密M',可以肯定Alice使用了自己的私人密钥对M进行了加密,所以Bob确信收到的M是Alice发送的,并且M是发送给Bob的。
数字签名标准DSS
是利用安全散列函数(SHA)提出的一种数字签名技术。
单向散列函数
单向散列函数,也称Hash函数﹐它可以提供判断电子信息完整性的依据﹐是防止信息被篡改的一种有效方法。
特点:
Hash 函数的作用是当输入一任意长度的信息M时,将输出一个固定长度为m的散列值h。即:h=h(M)
安全的Hash函数的特点如下:
(1)Hash函数能从任意长度的M中产生固定长度的散列值h;
(2)已知M时,利用h(M)很容易计算出h;
(3)已知M时,要想通过同一个h(M),计算出不同的h是很困难的;
(4)已知h时,要想从h(M)中计算出M是很困难的。
应用:
(1)校验数据完整性
(2)消息认证
(3)数字签名
(4)保护用户口令
MD5算法
又称信息-摘要算法,把一个任意长度的字节串换成固定长度的字节串。
在对输入的明文初始化之后,MD5是按每组512位来处理输入的信息,每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由4个32位分组组成,这4个32分组串联(级联)后将生成一个128位散列值。
SHA算法
2002年宣布的SHA标准方案中,包括了SHA-1和SHA-256,SHA-384,SHA-512,后缀“256,384,512”表示输出的信息摘要长度。
数字证书
由权威机构CA发行的一种权威性的电子文档,原理基于公开密钥体制。
分类:
从最终使用者来看,分为系统证书和用户证书;
从证书的用途来看,分为签名证书和加密证书。