网络术语---数字签名的简单认识

在IPSEC VPN中的IKE V1的阶段一的第5第6个消息,涉及在对端的身份的认证,那是通过计算散列值和比较散列值是否一致来验证。除此,在VPN中有相关的验证算法来保证对端的可信度和所发信息的完整性,这里涉及到MD5算法、数字签名等认证方式。

数字签名是在数字文件为基础的事务处理上,通过电子签名来认证用户的身份。同时若被签名的数据在传输的过程中被修改,那么可以通过产生的签名不同得到不同的明文信息来提供被签名数据完整性的保护。

一、数字签名

数字签名是非对称密钥系统的典型应用。我们常会在维护网络安全、建立网络安全信道、信息源宿认证、消息验证上等见过“密钥(Key)”这个词汇,它常参与一些数值的加密或解密过程。我们应该对网络技术中密钥有个大概的认识,也可以作为网络安全方式的知识的补充。

1.1 现代密码系统

@对称密钥密码系统(加密和解密密钥都相同)
@公开密钥密码系统(也称为非对称密钥密码系统,或者说双密钥密码系统),使用其的用户会得到一个公钥(PK)和一个用户自己知道的且需要保密的私钥。公钥好比用户的电话号码或QQ号一样,其他用户可以通过其他途径获知接收方用户相应的公钥。

1.2 对称密钥密码系统和公开密钥密码系统的优缺点

对称密钥密码系统:

通信双方需要协商单密钥,且当用户呈网状形式进行通信时,要求两两用户之间需要分配和协商密钥,每一用户需要维护多个密钥,与此同时还需保证密钥的安全。因此用户的增多会造成密钥数量的膨胀,同时给密钥的管理和分配带来很大问题。
但是,对称密钥密钥系统的因其密码算法难以破译、密钥空间也足够大、密钥管理也比较安全因此整体的安全性比较高。相比公开密钥密码系统,其加密和解密的速度也要快上许多。

公开密钥密码系统:
优点:
1 ) 加密和解密算法都是公开的;

2 )每个用户维护的是一对密钥,重点维护和保管私钥。且用户所维护的密钥数量不会随所通信用户的增多而增多

缺点:加密操作和解密操作的速度比对称密钥密码系统要慢的多。

最常见的公开密钥密码算法是RSA密码系统。RSA是由三个美国麻省理工学院的教授的名字首字母组成的,不必特殊记忆其含义。

最常见的对称密钥密码算法是DES密码系统,中文名是数据加密标准,是由于1977年公布的由IBM公司研制的一种密码系统。民用广泛,安全性强。

对称密钥系统和非对称密钥系统一个加密解密操作快,一个密钥数量少,管理和维护简单,因此在实际应用中,两者可以一起使用以此充分发挥各自的优点。简单说,就是利用对称密钥密码算法完成对消息主体的加密和解密,然后关于其对称密钥的传输和维护则由公钥和私钥来对其进行加密和解密操作,目的是保证对称密钥能稳妥的传递到信息的接收方。

1.3 数字签名的抽象过程(假设在公开密钥密码系统RSA下)

假设明文消息为M,加密施加得出的Signature记为S,公钥为PK,私钥为SK,用FX表示签名过程;则
FX(M,SK)=S
再假设验证过程用VX表示则
VX(S,PK)=M或能够表示M的摘要信息
简单说:用户A作为签字方,用自己的私钥对被签名的数据M(明文)进行加密处理或是算法处理,用户B作为接收方,可借助与私钥有一对一映射关系的公钥来验证数字签名,从而得到被签名的数据。若得到的被签名的数据与发送过来的数据保持一致的话,则说明数据没有被篡改,且是用户A发送过来的。

数字签名可以是公开密钥算法RSA的颠倒过程。
因为常规情况下,假设用户A维护一对公钥对,公钥为Pk{e,n},私钥为Sk{d},M为明文,E为RSA的加密算法,且
E pk(M)=M^e mod n, D为RSA的解密过程,且
D sk (M)=M^d mod n
那么至少满足一个条件使得RSA能够正常运作:
D sk(E pk(M))=M
一句话解释:其他用户通过公钥PK对发送的消息进行加密,通过不安全的internet传输到用户A时,用户A能够用且只能用私钥Sk对加密后的报文进行解密并得到明文M。

因为私钥的特殊性和所属用户的唯一性,可以用私钥来标识发送者,并供其他用户对发送者进行认证。若能用私钥对应的公钥来解密签名,得到被签名的数据那么就能确定该报文的发送者为私钥的所有者。
在这个逻辑的帮助下,

Dpk(Esk(M))=Dpk(M^d mod n) 
=(M^e mod n)^d mod n
= Dsk(Epk(M))
=Epk(Dsk(M))
=M

那么签名过程S = Esk(M) =M^d mod n 得到签名S,签名是加密的过程
Dpk(S) = S^e mod n = M1(验证),验证时解密的过程啦
如果M1=M那么说明签名用户属实。

1.4 用RSA进行数字签名与用RSA进行数字加密

数据加密的目的是对信息进行保密,防止其他用户窃取,而签名的目的虽不能提供保密性保护但能对信源进行认证,同时确保数据的完整性(因为数据被更改了,签名会不同,签名不同,会导致公钥解密过程得不到对应的明文摘要不同。)。在方式上,RSA加密方式是用发送方利用接收方的公钥对即将发送的数据进行加密,接收方利用私钥对加密报文进行解密;而RSA签名则是发送发利用自己的私钥对消息进行签名,接收方可以借助公钥对报文进行验证,若能得到内容一致的摘要,就能确定发送发是私钥所有者。

二、如何确保数字签名的保密性

用RSA进行数字签名,得到是一个签名者的加密的签名序列,并原本的发送的数据以及数字签名提供加密服务。因此发送方利用私钥生成签名的同时,需用接收方的公钥对签名进行加密,以此完成一个先签名后加密的过程。
当报文抵达接收方,接收方收到了加密后的签名报文,若需要对签名进行身份验证,需要先用私钥对公钥加密之后的报文进行解密得到被加密的数字签名和消息,然后再利用发送方的公钥对签名进行验证,确保发送发的身份信息。因此接收方对收到的报文是先解密后验证。

你可能感兴趣的:(网络技术,网络安全,密码学)