数字货币、数字签名?

论坛 期权论坛 期权     
链客区块链社区   2019-10-27 13:01   2348   0
数字签名
有许多不同的技术可用于生成和验证数字签名,支持您工作的数学原理超出了本文的范围。对于那些不熟悉密码学的人来说,这里描述的过程最初可能看起来令人难以置信。我清楚地记得四年前我开始研究比特币时的感觉。
现在我将简要地提及这些技术用于许多常见的Internet协议,并且是信息科学不可或缺的一部分。
想象一下两个人,Alice和Bob,私下交换了公钥。 Alice希望向Bob发送消息,但Bob是一个非常可疑的人,除非他能用数学方式进行确定性测试,否则他不相信消息真的来自Alice。为了测试,他们同意使用数字签名。
为了生成签名,Alice在她的计算机上使用签名生成算法,该算法将她的私钥和完整的消息作为输入并生成数字签名。然后将此消息/签名组合发送给Bob——,但重要的是您不要发送私钥。
当Bob收到消息和签名时,他可以调用补充签名验证算法。该算法将消息和签名作为输入,以确定Alice用于生成签名的公钥 - 私钥对中的公钥。当Bob看到他的算法,输出爱丽丝的公钥,它在数学证明,该公司使用对爱丽丝的公私密钥的实际产生,即使你知道,你无法计算对公私密钥爱丽丝。关键
更简洁,这一数字签名的过程允许Bob验证该消息不是由某个第三方创建或修改,而是必须使用Alice的私钥才能生成的,而不必(或不能)知道她的私钥。他需要的只有消息/签名组合和她的公钥。
直觉上,这似乎令人难以置信,你可以感觉好像有一个误解。如果Alice的私钥与公钥密切相关,并且Alice使用她的私钥生成Bob收到的签名,为什么她只能获取她的公钥而不能获得她的私钥?理解这个问题的答案需要比大多数人更深入地理解数学,这超出了本书的范围。
尽管如此,这项技术每天都在使用,在密码学界被认为是可靠的。当您访问地址以https开头的网站时,“s”表示该网站使用数字签名进行身份验证。您的计算机使用签名验证算法(例如前面示例中的Bob)来验证该站点是否是正确的公钥 - 私钥对。数字签名可确保您与网站之间的任何其他交互都经过加密和身份验证。如果验证失败,浏览器将警告您并将该站点标记为危险。


足够大的整数
在此之前,我只是提到公钥和私钥的行为类似于用户名和密码,但实际上它们只是具有特殊数学关系的大整数。鉴于此,我经常被问到以下问题:
“你能用一台计算机来猜测或计算一堆数字并尝试将它们用作私钥吗?你能找到公钥 - 私钥对的私钥来控制这个身份吗?”就比特币而言,这将允许攻击者窃取公钥 - 私钥对所具有的部分比特币。
这是一个很好的问题,但它不会发生。如上所述,有几个比特币地址在BTC有数百万美元,但它们多年没有被转移。——虽然窃取它们只需要正确的私钥,但——是正确的大整数!如果您能猜出这些地址的私钥,您可以将钱汇给任何人。与密码不同,您可以在自己的计算机上本地验证私钥,并且任何服务器都不会限制您的尝试或频率。
那么,为什么人们没有偷钱呢?答案是用作私钥的数字几乎是荒谬的。它们足够大了。
让我们从一个简单的思想实验开始。想象一下,您的私钥足够大,可以与世界上所有的计算机一起工作,并且您需要24小时猜测。如果只向私钥添加一个数字,则计算机需要十倍的计算量,这需要十天而不是一天。增加六位数将使这个时间延长到27,000年。
在任何情况下,创建随机数以生成私钥所需的计算能力可忽略不计。使用私钥生成签名并使用公钥验证这些签名在计算上也很简单。但是,每增加一个附加数字,猜测私钥所需的工作量就会呈指数级增长。私钥被蛮力“免疫”,我们只需要添加足够数量的——,我们只是需要让他们足够大。



分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7
帖子:9
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP