非对称加密算法的相关问题

该页面主要是声明以及简述下非对称加密算法的问题,主要要说明的是以下两句话:

公钥用来加密,私钥用来解谜;私钥用来签名,公钥用来验证;不可逆。

1、公钥用来加密,私钥用来解谜:

1.1 RSA带来的误解

假如,学RSA的非对称加密算法的话,会带来一个疑问,公钥和私钥其实是可以互换的,私钥也可以用来加密,然后用公钥用来解谜;

对于非对称加密来说,这是不对的,虽然,严格的按照RSA的数学公式的话,这两个确实可以互换;

但是,按照非对称加密的思想的话,必须是严格按照 “公钥用来加密,私钥用来解谜”,

相关问题,可以看这篇文章:RSA的公钥和私钥到底哪个才是用来加密和哪个用来解密?

1.2 例如ECC

RSA后来的一些非对称加密算法,其实大部分都符合上面的规则的,最好的例子就是ECC;

(1)首先,ECC用私钥生成公钥,所以,假如把“私钥”公布,把“公钥”作为解谜的保存,这就是没意义的;

(2)ECC算法中,私钥是一个超大的整数k,而公钥是椭圆曲线上的一个点K,还有一个公开的基点G,以及选取的椭圆曲线Ep(a,b),

加密过程,用公钥点K、G和Ep,能够加密密文,得到一个椭圆曲线上的点M,然后通过公式计算出两个点C1、C2;

而通过C1、C2,以及私钥k,能过计算获得M。但是假如用私钥k,用来加密,公钥K是无法解谜的。

所以,ECC才是标准符合非对称加密算法的思想的。

2、私钥用来签名,公钥用来验证:

这个,其实是非常简单的,不用讲解,因为签名就是为了证明该消息是我发送的,大家可以用公钥来验证,是不是我发送的。

ECC算法的NodeJS库:https://www.npmjs.com/package/eccrypto

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容