请分别用对称密码体制和公钥密码体制实现消息认证,其中,采用公钥加密体制实现消息认证时,要同时满足机密性要求。
发送方A和接收方B事先共享一个密钥k,A用密钥k对消息M加密后通过公开信道传送给B,B接收到密文消息后,通过是否能用密钥k将其恢复成合法明文来判断消息是否来自A,信息是否完整。
采用公钥密码体制进行消息认证,发送方A用自己的私钥进行加密运算(数字签名)之后,再用接收方B的公钥进行加密,从而实现机密性,这种方法能提供机密性、数字签名和鉴别。
小强想出了一种数字签名的新方案,他用一个随机的对称密钥加密要签名的明文得到密文,再用自己的私钥加密该对称密钥(签名),然后把密文和加密后的对称密钥一起发送给接收方,接收方如果能解密得到明文,就表明验证签名成功。请问用该方案签名存在哪种缺陷? 如何实现带有保密性要求的数字签名?
该方案存在的缺陷为签名无法和消息绑定在一起,对方可以用对称密钥加密另一个明文,声称是小强签名的。
发送方首先对消息用Hash函数求消息摘要(散列值),然后发送方用其私钥加密该散列值,这个被发送方私钥加密的散列值就是数字签名,将其附在文件后,然后将明文和数字签名的组合体用一个对称密钥k加密,再用接收方的公钥对k加密,最后将加密后的组合体一起发送给接收方就可以让其验证签名了 。
公钥密码体制的加密变换和解密变换应满足哪些条件?小明想出了一种公钥加密的新方案,他用自己的公钥加密信息,然后将自己的私钥传给接收方,供接收方解密用,请问这种方案存在什么缺陷吗?应该怎么调整?
公钥密码体制的加密变换和解密变换应满足的条件:(1)对任意明文进行加密变换是很容易的,并且若知道解密密钥,那么对密文的解密也是很容易的;(2)信息的发送方对任意明文进行加密变换后,接收方进行解密变换就可以得到明文;(3)若不知道解密密钥,那么即使知道加密密钥,具体的加密与解密算法以及密文,确定明文在计算上也是不可行的。
私钥在传输途中可能被攻击者窃取。这相当于把公钥密码体制当做对称密码体制在用,因此无法解决密钥分配过程中被窃取的问题。 正确的应该是小明用自己的私钥加密信息,他的公钥是公开的,接收方接收到信息后,直接用他的公钥去解密信息。
由于数字证书可以用来分发公钥,因此可以利用证书中的公钥及其对应的私钥进行加密和签名,请描述使用数字证书同时进行签名和加密的步骤。
①发送方准备好要传送给接收方的信息(明文);
② 发送方对该信息进行Hash运算,得到一个消息摘要;
③ 发送方用自己证书对应的私钥对消息摘要进行加密得到自身的数字签名,并将其附在信息后;
④ 发送方获取接收方的数字证书,并验证该证书有效后,用接收方证书中的公钥加密信息和签名的混合体;
⑤ 接收方收到加密的数据后,用自己证书对应的私钥解密密文,得到信息和数字签名的混合体;
⑥ 接收方获取发送方的数字证书,并验证该证书有效后,就用发送方证书中的公钥解密数字签名,得到一个消息摘要,再对明文信息求消息摘要 。