经过之前的学习,对签名部分已经有了一定的了解
为了加深理解,继续搜索了一些文章学习了一下公钥私钥
虽然众说纷纭,但基本上表达的内容大同小异。
- 公钥是公开的密钥
- 私钥是私密的密钥
1:加密传输
加密解决的是保密性(Confidentiality)
问题
如果A想发给B一段数据,不希望其它任何人看到,需要加密传输。
这时候,A用B的公钥加密数据,因为只有B的私钥才能解密数据,所以其它人即便获取密文也无法解出明文。
(总结:公钥加密,私钥解密)
2:数字签名
数字签名解决的是完整性(Integrity)
以及真实性(Authenticity)
问题
当我发布一段消息(数据),我生成数据HASH,并使用私钥和HASH生成签名,如果通过我的公钥能解密签名,并且数据的HASH值与签名解密出来的HASH相同,则证明这段数据是由我发出(真实性), 并且未经篡改(完整性)
(总结:私钥签名,公钥验证)
关于公钥和私钥
网上很多说法是公私钥是完全对称的,也就是说任何一个都可以用作公钥或者私钥。
但在steemit中是有所区别的,通过私钥可以计算出公钥(或者说公钥是由私钥生成的?),反之则不可以(或者说极为困难?)
以上为个人理解,因为尚处于学习过程中,不代表文中理解正确,仅供参考。
另外数学原理我就不去学了,反正我也学不明白,哭...
另外如有谬误,烦请诸位大神不吝赐教:)