了解现代密码学原理:素未谋面的两个人,怎么样共享密钥又不让监听者知道

昕阳小编 92 0

密码学在区块链技术中起着非常重要的作用,但实际上,它在互联网中也有着广泛的应用。本文将介绍现代密码学中早期的加密方法,这将有助于我们理解区块链中的复杂算法。

稿件来源:猎豹区块链安全原标题:《现代密码学加密原理》

第二次世界大战后,由军事演变而来的互联网慢慢进入寻常百姓家。我们可以电子化处理一切事情,交易也不例外,所以电子银行也出现了,所有的交易都可以通过网络进行。随着互联网用户数量的增加,新的问题出现了。加密需要双方共享一个秘密随机数,即密钥。但是两个素未谋面的人如何在不让第三方监控的情况下就共享密钥达成一致呢?这将是现代密码学的目标。

1976年,威特菲尔德和马丁赫尔曼发现了一个巧妙的解决方案,我们用颜色作为比喻来解释这种技术是如何实现的:

首先,明确我们的目标。发送者和接收者约定了秘密颜色而不让窃听者知道,那么就需要采用一种技术,这种技术基于两点:

One

第二,得到这种混合颜色后,在此基础上很难知道原来的颜色。这就是锁的原理。

往一个方向走容易,往反方向走难。这被称为单向函数。解决方法如下:首先,他们公开约定某种颜色,假设是黄色,然后发送者和接收者随机选择私有颜色混合成公共黄色,从而隐藏自己的私有颜色,将混合颜色发送给接收者,接收者知道自己的私有颜色,将其混合颜色发送给发送者,

然后技巧的关键,发送者和接收者将自己的私有颜色添加到另一个人的混合颜色中,然后得到一个共享的秘密颜色。这个时候窃听者无法确定这个颜色,但她必须有一个私密的颜色才能确定。这就是诀窍。在密码学的世界里,我们需要一个数值运算过程,这个过程在一个方向很容易,在相反的方向很难。

离散函数问题

我们需要一个在一个方向上容易,在相反方向上困难的数值过程,于是密码学家找到了模运算,即取余数的函数,(比如46除以12的余数是10)。

假设我们考虑用质数做模型,比如17。我们找到17的一个本原根,这里是3,它具有以下重要性质。当取不同的幂时,结果将均匀地分布在时钟上。3是一个生成器,取3的x次方,结果同样可能出现在0到17之间的任何整数上。

但是反过来过程就难了。比如给定12,需要3的多少次方?这叫离散对数问题尚力财经小编2022,这样我们就有了单向函数。一个方向很容易算,反方向很难算。给定12,我们只能用试错法来寻找匹配的素数。

了解现代密码学原理:素未谋面的两个人,怎么样共享密钥又不让监听者知道-第1张图片-昕阳网

有多难?如果数字很小,那就好办了,但是模数是几百位数的质数,那么解密就不切实际了。即使在世界上最强大的计算机的帮助下,也需要数千年才能遍历所有可能的情况。单向函数的强度取决于反向过程所需的时间。

Difeihermann密钥交换

解决方案如下。首先,发送方和接收方公开素数模和生成方,在这个例子中是17和3。然后发送方选择一个私有随机数,比如15,计算313mod 17(结果是6),然后将这个结果公开发送给接收方。之后,接收尚力财经小编2022者选择它自己的私有随机数,例如

密钥是将接收者的公开结果乘上她的私人号码的幂,以获得共享密钥。这是10英镑。接收者将发送者的公开结果乘以她的私人号码,结果是相同的共享密钥。可能大家都不容易理解,但他们其实做的是同样的操作。

考虑发送方,她从接收方收到12,来自313 mod 17,所以她的计算结果实际上是31315 mod 17,而接收方,他从发送方收到6,来自315mod17,所以他的计算结果实际上是3 15 13。结果不会变。他们的结果都是3取两个私有数的幂。没有这些私人号码,15或13,第三方将无法找到结果。

第三方会被困在离散对数问题中。当数量足够大的时候,在实践中,她几乎不可能在合理的期限内破解,这就解决了交换密钥的问题。这可以和伪随机数发生器结合使用,为素未谋面的人提供通信加密。

现在区块链常用的算法,如sha256,都继承了单向函数的设计思想。一个方向很容易计算,但是依次破解几乎不可能保证安全。

标签: 2022

抱歉,评论功能暂时关闭!

微信号已复制,请打开微信添加咨询详情!