加入数字签名和验证的文件传输过程是怎样的?如何防止有第三方冒充发送方发送出文件?
只有加入数字签名及验证才能真正实现在公开网络上的安全传输。加入数字签名和验证的文件传输过程如下: ①首先发送方用哈希函数从原文得到数字签名,然后采用公开密钥体系用发送方的私有密钥对数字签名进行加密,并把加密后的数字签名附加在要发送的原文后面。 ②发送方选择一个秘密密钥对文件进行加密,并把加密后的文件通过网络传输到接收方。 ③发送方用接收方的公开密钥对秘密密钥进行加密,并通过网络把加密后的秘密密钥传输到接收方。 ④接收方使用自己的私有密钥对密钥信息进行解密,得到秘密密钥的明文 ⑤接收方用秘密密钥对文件进行解密,得到经过加密的数字签名。 ⑥接收方用发送方的公开密钥对数字签名进行解密,得到数字签名的明文。 ⑦接收方用得到的明文和哈希函数重新计算数字签名,并与解密后的数字签名进行对比。如果两个数字签名是相同的,则说明文件在传输过程中没有被破坏。如果第三方冒充发送方发送了一个文件,因为接收方在对数字签名进行解密时使用的是发送方的公开密钥,只要第三方不知道发送方的私有密钥,则解密出来的数字签名和经过计算的数字签名必然是不相同的。这就提供了一个安全的确认发送方身份的方法。