作者回复: √
作者回复: 拿ECB来举例子,假设使用aes128,密钥长度是16字节,那么就把明文按16字节分组,然后每个分组用密钥加密。
其他的cbc、ofb等的方法类似,但细节不同,例如cbc增加了初始向量。
作者回复: √
作者回复: √
作者回复: 补充的非常好。
作者回复: 公钥的传输必须使用证书,把公钥和持有者身份绑在一起,否则就会有信任问题,容易被别人冒充。
私钥加密的作用是签名,实现身份认证而不是数据保密,签名是公开的,所以不存在安全问题。
作者回复: 关键是“如何各保存一份”,两边加密通信必须要使用相同的密钥才行,不交换如何才能保持一致呢?
而且简单的一对一还好说,现实情况是网站要面对成千上万的用户,如何与这么多的客户端保持一致?
还有,如果总使用一个密钥,就很容易被破解,风险高,需要定期更换,最好是一次一密。
所以,为了安全起见,每次通信前双方都要交换密钥,这样就实现了“各保存一份”,用完就扔掉,下次重新交换。
作者回复: 是的,公钥的分发通常都使用证书的形式,防止伪造。
作者回复: 回答的很认真。
第二个问题,问的是私钥加密公钥解密有什么作用,能够干什么。
因为私钥只能由一个人秘密持有,所以它加密的数据谁都可以解密,没有私密性,但这就是它的价值所在,可以证明这个数据就是私钥持有人发布的,可以用来做身份认证。
作者回复: 这个其实很简单,就是产生一个随机数,比如16字节,然后用公钥加密后安全传递给对方。
作者回复: 继续学习,完成作业才是更好的证明。
作者回复: 看得出来很努力、认真,加油。
作者回复: 非对称加密基于大数运算,比如大素数或者椭圆曲线,是复杂的数学难题,所以消耗计算量,运算速度慢。
除了慢,可能还有一个缺点就是需要更多的位数,相同强度的对称密钥要比非对称密钥短。
对称密钥一般都128位、256位,而rsa一般要2048位,不过椭圆曲线的会短一点。
作者回复: 这是为了安全起见,如果长时间都使用一个对称密钥加解密就容易被破解,所以每次通信都要选择新的密钥,保证安全。
当然这有效率的问题,所以tls就出现了会话复用,在一定的有效期内可以直接重用上次的对称密钥,提高效率。
作者回复: √
作者回复: great。
作者回复: great。
作者回复: 2不太正确,感觉是弄反了。
其实两者在密码学上都可以叫加密,互相加密解密。只是一般习惯上的说法是公钥加密私钥解密,私钥签名公钥验签。
作者回复: 128位,就是16字节,再用hex编码显示为16进制字符串,就是32个字符了。
作者回复: good。