资讯专栏INFORMATION COLUMN

区块链之非对称加密算法

mcterry / 2883人阅读

摘要:二如何理解公钥和私钥非对称加密算法需要两个密钥公开密钥和私有密钥。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。三非对称加密解密原理非对称加密算法中,常用的就是算法了,以下就以算法为例来讲解非对称加密算法的实现原理。

非对称加密,在现在网络应用中,有这非常广泛的场景,更是加密货币的基础。本文主要介绍非对称加密、解密的原理和过程,以及在区块链中的使用。

一、非对称加密解密过程

A要向B发送信息,A和B都要产生一对用于加密、解密的公钥和私钥

A保管自己的私钥,把公钥告诉B;B保管自己的私钥,把公钥告诉A

A要给B发送信息时,A用B的公钥加密信息,因为A知道B的公钥。

A将这个消息发给B(已经用B的公钥加密消息)。

B收到这个消息后,B用自己的私钥解密A的消息。其他所有收到这个报文的人都无法解密,因为只有B才有B的私钥。

二、如何理解公钥和私钥

  非对称加密算法需要两个密钥:公开密钥(public key)和私有密钥(private key)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
  非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。
  非对称密码的特点:算法强度复杂、安全性依赖于算法与密钥,但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快。对称密码体制中只有一种密钥,并且是非公开的,如果要解密就得让对方知道密钥。所以保证其安全性就是保证密钥的安全,而非对称密钥体制有两种密钥,其中一个是公开的,这样就可以不需要像对称密码那样传输对方的密钥了。这样安全性就大了很多。

三、非对称加密解密原理

非对称加密算法中,常用的就是RSA算法了,以下就以RSA算法为例来讲解非对称加密算法的实现原理。

RSA算法的基于这样的数学事实:两个大质数相乘得到的大数难以被因式分解。

RSA加密过程
$$ 密文=明文^E mod N $$

解释:也就是说RSA加密是对明文的E次方后除以N后求余数的过程。也就是说只要知道E(Encryption)和N(Number),任何人都可以进行RSA加密了。其中E、N是RSA加密的密钥,E和N的组合就是公钥,我们用(E,N)来表示公钥

$$ 公钥=(E,N) $$

不过E和N不并不是随便什么数都可以的,它们都是经过严格的数学计算得出的

RSA解密过程

$$ 明文=密文^D mod N $$

也就是说对密文进行D次方后除以N的余数就是明文,这就是RSA解密过程。知道D和N就能进行解密密文了,所以D和N的组合就是私钥

$$ 私钥=(D,N) $$
从上述可以看出RSA的加密方式和解密方式是相同的,加密是求"E次方的mod N",解密是求"D次方的mod N"

知道上述的几个简单公式后,剩下就是计算各个参数对应的值了

求N。准备两个质数p,q,这两个数不能太小,太小则会容易破解,将p乘以q就是N。

$$ N=p∗q $$

求L。L为中间数,是 (p-1) 和 (q-1) 的最小公倍数,可用如下表达式表示

$$ L=lcm(p-1,q-1) $$

求E。E必须满足两个条件:E是一个比1大比L小的数,E和L的最大公约数为1,用gcd(X,Y)来表示X,Y的最大公约数则E条件如下:

$$ 1 < E < L $$
$$ gcd(E,L)=1 $$
之所以需要E和L的最大公约数为1是为了保证一定存在解密时需要使用的数D。现在我们已经求出了E和N也就是说我们已经生成了密钥对中的公钥了。

求D。D是由数E计算出来的。D、E和L之间必须满足以下关系:

$$ 1 < D < L $$
$$ E * D mod L = 1 $$

至此,公钥和私钥都都计算出来了,大家可以自己试着计算下

四、为何非对称加密难以破解

  破解RSA算法的关键就是计算N、p、q的值,给出两个很大的质数p、q,可以计算N,但知道N,去很难算出p、q,只能不停的尝试,这就是为什么当前RSA很难破解。
  RSA算法的破解与密钥的长度有关,如果密钥的长度小于等于256位,一台较快的电脑可以在几个小时内成功分解其因子。位数越高因式分解所需时间也越长。例如破解RSA-2048(2048-bit)的密钥需要耗费传统电脑10亿年的时间,而量子计算机只需要100秒就可以完成。所以随着科技的发展,算法也会更新换代。



欢迎订阅「K叔区块链」 - 专注于区块链技术学习

博客地址:http://www.jouypub.com
简书主页:https://www.jianshu.com/u/756c9c8ae984
segmentfault主页:https://segmentfault.com/blog/jouypub
腾讯云主页:https://cloud.tencent.com/developer/column/72548

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/24267.html

相关文章

  • 区块链之公钥、私钥、地址之间的关系

    摘要:公钥哈希和钱包地址可以通过互逆运算进行转换,所以它们是等价的。使用私钥对交易进行签名比特币钱包间的转账是通过交易实现的。使用公钥对签名进行验证交易数据被广播到比特币网络后,节点会对这个交易数据进行检验,其中就包括对签名的校验。 一句话解释公钥、私钥、地址私钥:实际上是一组随机数,关于区块链中的随机数我们已经介绍过了公钥:对私钥进行椭圆曲线加密算法生成,但是无法通过公钥倒推得到私钥。公...

    104828720 评论0 收藏0
  • 加密算法之非对称加密

    摘要:算法公钥加密算法是年由罗纳德李维斯特阿迪萨莫尔和伦纳德阿德曼一起提出的。是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被推荐为公钥数据加密标准。 上篇文章介绍了对称加密的原理,但是它的最大问题就是加密和解密的密钥是相同的,并且不能保证密钥能安全的送到双方手里,即使安全的送到双方手里,免不了内部会有卧底的存在 非对称加密 既然有对称加密,那么自然会联想到非...

    dongxiawu 评论0 收藏0
  • 区块链之密码学随机数

    摘要:请勿在密码学强度系统中使用编程语言提供的通用伪随机数生成器实现。该伪随机数发生器是密码学意义上最强的伪随机数发生器之一,应用在金融安全和上。 一、随机数分类 1、真随机数其定义为随机样本不可重现。实际上只要给定边界条件,真随机数实际上并不存在,可是如果产生一个真随机数样本的边界条件十分复杂且难以捕捉,可以认为用这个方法演算出来了真随机数。例如骰子、转轮、噪音等。 2、伪随机数,通过一定...

    MockingBird 评论0 收藏0
  • 漫谈 | “黎曼猜想”和区块加密算法到底有什么关系?

    摘要:假如黎曼猜想被证实,区块链将毁灭近日,黎曼猜想四个字疯狂刷屏。黎曼猜想由数学家波恩哈德黎曼于年提出。因此,黎曼猜想一旦被证明,则意味着素数之密被解开,算法也就将被攻破了。而大多数区块链所用的加密算法不是,而是椭圆曲线加密算法。 玛丽女王的密码之生死命悬一线 showImg(https://segmentfault.com/img/bVbhD7s?w=740&h=876); 16世纪伊丽...

    tracymac7 评论0 收藏0
  • 对称加密技术- RSA算法数学原理分析

    摘要:本文首发于深入浅出区块链社区原文链接非对称加密技术算法数学原理分析原文已更新,请读者前往原文阅读非对称加密技术,在现在网络中,有非常广泛应用。加密技术更是数字货币的基础。 本文首发于深入浅出区块链社区原文链接:非对称加密技术 - RSA算法数学原理分析原文已更新,请读者前往原文阅读非对称加密技术,在现在网络中,有非常广泛应用。加密技术更是数字货币的基础。 所谓非对称,就是指该算法需要一...

    maxmin 评论0 收藏0

发表评论

0条评论

mcterry

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<