1. 链一财经首页
  2. 资讯

《The Book of Satoshi》中本聪之书中文版连载(十六)

《The Book of Satoshi》

原作者:PHIL CHAMPAGNE

中文翻译:陈雪刚

《The Book of Satoshi》中本聪之书中文版连载(三)

四十九、关于丢币的可能性

如前所述,比特币使用非对称密码术与公钥和私钥对作为接收和授权比特币消费的机制。然而,中本聪决定使用比特币地址公钥的哈希而不是公钥本身。中本聪这样做有两个原因。 一种是减少每个交易的大小,因为哈希只有160位长。第二个好处是它可以方便地增加一层安全性,以防有一天在比特币使用的非对称加密算法中发现“后门”或安全漏洞。为了能够使用比特币,黑客必须首先从哈希中派生公钥,然后从公钥中派生私钥。比特币杂志写了一篇关于这个主题的优秀文章。

整个线程讨论了具有大量计算能力的攻击者可能花费存储在比特币地址中的比特币的可能性。由于比特币区块链是一个开放式分布帐本,因此可以检查它来识别具有大余额的比特币地址,因此攻击者可以专注于这些地址。

中本聪得出结论,这将是非常困难的,因为它需要暴力攻击才能找到具有匹配哈希的公钥。它还显示了安全性的开源代码(所有人都可以看到的代码)的价值,而不是封闭源代码。

线程的重要部分,包括中本聪的整个帖子,在这里转载:

盗币

“我认为目前比特币存在一个非常重要的加密缺陷。我不确定它现在是否可以被利用(我不是一个真正的加密者),但它在不久的将来会更加合理。

该漏洞将使匿名窃取任意比特币地址的比特币成为可能。并且它不涉及解决使现有加密系统安全的任何难题。它只是实现中*潜在*可纠正的逻辑缺陷。

我希望比特币能够成功,所以我宁愿不要在公共场合大肆宣传大肆宣传的瑕疵。是否有适当的地方讨论这些类型的问题?”——Red, July 25, 2010, 05:08:03 PM

回复:盗币

中本聪:July 25, 2010, 07:06:23 PM

雷德,谢谢你先私下告诉我!请继续发布(并为每个人解除悬念!)

他的观点是,支付给比特币地址的交易只能与哈希函数一样安全。为了缩短比特币地址,它们是公钥的哈希,而不是公钥本身。攻击者只需打破哈希函数,而不是ECDSA。

回复:盗币

感谢中本聪先生,

这是我发送给他的信息。

公钥加密取决于很难计算大质数的事实。每个人都知道。如果比特币转移被分配到格式良好的公钥,并且未来转移需要相关的私钥签名,我会承认比特币加密转移是完全安全的。

但是,比特币交易似乎没有那种方式(通过我的阅读)。交易将比特币金额分配给特定的“比特币地址”。其中地址是公钥的哈希值。

为了验证交易,节点从签名中获取公钥并使用它来验证实际签名。如果签名有效,则它会哈希公钥以确认它与上一个交易中分配的比特币地址相匹配。如果两者都匹配,根据定义,交易是好的。

潜在的弱点在于将签名中的公钥与比特币地址相关联。

公钥和给定哈希之间存在多对一关系。现在,如果找到一对素数来创建一个安全的公钥/私钥对,其中公钥部分哈希到特定的比特币地址似乎很难……它可能是。

然而,比特币没有这么要求。

您需要的只是代表公钥的任何东西,哈希与知道的大比特币帐户发生冲突。它不必是基于素数的安全密钥对。它只需要工作一次,并允许将被盗资金转移到另一个帐户。这可能会容易得多。

有些哈希比其他哈希更难碰撞。我不确定使用散列的强度。但是,如果您不必关心正在散列的内容,则碰撞任何散列会变得更容易。

由于公钥的性质,它们看起来像随机数据。据我了解,除非您成功分解,否则您无法知道公钥是否基于安全数学。 因此客户不要尝试。他们通常只是对签名进行验证,并假定公钥是以安全的方式生成的。——Red

注意:以下分析需要由真正的加密器进行双重检查。IANACR

因此,根据哈希值,您可以使用其中一种新兴的哈希冲突算法来生成表示公钥的冲突数据块。然后通过反转公钥/私钥数学,将生成有效签名的关联(但几乎不安全)私钥。

然后,您可以使用不安全,易于理解的密钥对,并生成与目标比特币地址匹配的已签名交易。

由于交易日志无法验证比特币的完整公钥,因此简单地假定它必须是所呈现的。

通过在阻止列表中记录传输目标的完整公钥,您可以重新获得预期的强度。但是,您失去了传递34个字符地址的能力。

如果我离开基地,我为浪费你的时间而道歉。

回复:盗币

Red, July 25, 2010, 07:22:14 PM

中本聪指出我的场景仍然需要打破哈希函数。这是事实,但我很惊讶地发现有些人已经取得了成功。MD4和MD5是明显的例子。但是在SHA-1和SHA-256这样的兄弟姐妹之间的冲突工作正在顺利进行。

比特币在这部分使用了什么哈希?

他也怀疑你能不能使用生成的密钥对以外的其他东西。

在这一点上,我非常有信心这是一个简单的数学问题。在我学会了“盲签名”文件之前,我没有对此给予足够的重视。

事实证明,您可以获取文档并将其乘以随机数。然后有人签署混乱的文件。最后,您将随机数除以其签名,结果仍然是原始文档的有效签名。谁想到那会起作用!无论如何,如果密钥对只有在基于素数对的情况下才是安全的。如果数字不是素数,那么任何数学都不会改变。它们更容易考虑因素。

我会非常高兴一些加密人能证明我是个白痴。它会影响我创建的先前项目的某些功能,这些功能依赖于相同的关联。我当时也没有想到这一点。

回复:盗币

knightmb, July 25, 2010, 07:34:42 PM

非常好。 *我喜欢开源的另一个原因*据我所知,如果我错了,请纠正我由于公钥的哈希值小于实际值公钥本身,只需找到与哈希匹配的冲突,当发现冲突时,您将知道公钥/私钥组合。然后你只需使用已知的比特币投入即可,其他客户会认为这是一个有效的转移,因为客户只关心你的哈希匹配受害者的哈希并且交易被记录了所有时间。

目前哈希长度为35个字符,字母数字26(大写)+26(小写)+10(数字)=每个字符62个可能。

因此,我们有

541,638,008,296,341,754,635,824,011,376,225,346,986,572,413,939,634,062,667,808,768种可能的组合。

所以我认为与对主私钥/公钥进行蛮力相比,我们有大约一半的工作要做。永远不要伤害未来的计划: – )

回复:盗币

knightmb, July 25, 2010, 07:44:02 PM

他们经常没有提到的是*碰撞生成*仍然需要大量的CPU时间。如果我发现公钥123456生成Hash ABCD和公钥654321也生成哈希ABCD

我仍然没有私钥。但根据你所说的,我需要的只是公钥654321,我可以花钱买假装是公钥123456。

回复:盗币

Red, July 25, 2010, 07:52:23 PM

据我所知,比特币正在使用160位哈希之一来生成比特币地址。

SHA-1系列哈希算法是最常用的一些。SHA-1是160位散列。

这是一篇声称在2 ^ 52次加密操作中发现SHA-1冲突的论文。最佳安全散列将需要2 ^ 80次操作。2 ^ 52时间仍然很大,但它正在进入集群和僵尸网络范围。

http://www.ictlex.net/wp-content/iacrhash.pdf

MD5哈希在笔记本电脑上已经可以在几秒钟内崩溃。这就是为什么它从基于证书的签名中退出的原因。

是的,我所说的是**我认为**你可以将公钥视为数学上合并在一起的两个秘密数字。而私钥作为这两个数字分开保存。使系统安全的事情要求两个秘密数字实际上是大质数。

但是如果它们真的是大的非素数,组合数学仍然有效,那么打破算法必须更快。

我会做一些谷歌搜索,看看我是否可以证实我的主张。我希望有人可以解雇他们。

回复:盗币

中本聪:July 25, 2010, 08:01:40 PM

“如果我发现公钥123456生成哈希ABCD,公钥654321也生成哈希ABCD我仍然没有私钥。

但根据你所说的,我需要的只是公钥654321,我可以花钱买假装是公钥123456。”——knightmb on July 25, 2010, 07:44:02 PM

您仍然需要使用公钥654321对其进行签名。您需要使用您知道私钥的公钥来查找冲突。

当您声明比特币地址交易时,您提供与哈希匹配的公钥,然后您必须使用该密钥对其进行签名。

雷德的观点是,很容易快速生成不安全的公钥,在发现碰撞后你可以破解并找到私钥。

他指出,如果公钥必须是一个安全的公钥,一个必须要求大量工作才能找到素数的公钥,这将增加高于哈希函数的强度。试图暴力的人必须花时间为每次尝试生成一个密钥。

回复:盗币

knightmb, July 25, 2010, 08:20:41 PM

是的,我认为私钥必须在某处混合。它增加了另一种随机性,你必须找到与另一个公钥冲突的哈希,同时,私钥必须足够弱才能破解。我不是说这是不可能的,但它在反向碰撞发现中引入了2个变量。

基本上,人们会构建一个弱私钥的彩虹表,然后必须将它们与公共哈希进行比较,然后不得不希望那里的某个人有一个恰好是该攻击的一部分的哈希。当然不是不可能的,但即使计算机在10年内速度提高了100倍难道会可行吗?

好的,重新阅读你写的内容,公钥是从私钥生成的,而不是独立生成的。因此,只需找到一个弱公钥即可。

回复:盗币

中本聪:July 25, 2010, 08:48:01 PM

2 ^ 80是你可以使用生日攻击。你不能使用生日攻击,所以难度是2 ^ 160位。虽然,如果你试图破解100万(2 ^ 20)个交易中的任何一个,你可以做部分生日攻击2 ^ 160/2 ^ 20 = 2 ^ 140

比特币地址是唯一使用160位散列的地方。 其他一切都是SHA-256。 他们计算如下:

bitcoinaddress = RIPEMD-160(SHA-256(publickey))

如果我错了,请纠正我(拜托,我很乐意吃乌鸦)但我认为在这种情况下使用RIPEMD-160很难分析攻击。分析攻击规定了一定范围或模式的输入尝试,这将大大增加您发现碰撞的机会。在这里,您没有对RIPEMD-160输入的这种控制,因为输入是SHA-256的输出。如果分析攻击可以帮助您找到产生碰撞的RIPEMD-160的输入,那么您打算用它做什么?你仍然必须得到SHA-256输出该值,所以你仍然必须打破SHA-256。

对于暴力,RIPEMD-160(SHA-256(x))并不比单独的RIPEMD-160强。但对于分析攻击,似乎你必须分析攻击RIPEMD-160和SHA-256。如果我错了,那么强度与RIPEMD-160相同,而SHA-256仅用作一轮增强键。

回复:盗币

Red, July 25, 2010, 09:04:01 PM

我认为你对分析攻击是正确的。至少据我所知(最低限度)正在分析它们的数学天才是这样认为的。

我担心这更简单:

bitcoinaddress = RIPEMD-160(publickey)

回复:盗币

Red, July 25, 2010, 09:19:11 PM

所以我的理解方式是:

给出两个数字p和q。 对于RSA而言应该是大质量的。

n = p*q

公钥是两个字段(n,e)。e被称为公共指数,似乎是从一组公共值中选择的。

私钥也是两个字段(n,d)。d被称为私有指数,它是通过知道e,p-1和q-1得出的。

诀窍是,很难将n分解为p&q。因此,同样难以找到p-1和q-1

我的假设是,如果n是任意的,并且e是常见值之一,那么有许多不同的p,q对可以工作。数字越少,越容易找到p和q,因此p-1和q-1。如果你有一大块任意数据,可以让你在尝试碰撞哈希时有很大的灵活性。

(这就是我完全偏离基础的地步。真的很感兴趣,如果一个加密怪人比我知道的更好。)

我确实读到了密钥生成算法创建了p和q,使得它们“非常可能是素数”但是要确定无疑需要做太多的工作。这让我相信非素数不会导致任何明显的失败。我可能错了。

回复:盗币

Red, July 26, 2010, 12:46:04 PM

对不起,实际上它是ECDSA(椭圆曲线数字签名算法)而不是RSA。我不应该说“素数”。ECDSA不需要太多时间来生成密钥对。

回复:盗币

我将在某一天都在学习椭圆曲线如何工作,但不是今天。我大学时应该学习更多有线性代学。谁想到它会派上用场呢!

顺便说一句,感谢比特币中本聪先生的好主意和实现!

它打开了一个全新的可能性世界。我特别喜欢分布式协议的概念,而不依赖于信任。我认为这是突破性的概念。

另外,我认为比特币挖矿的想法很棒!我怀疑你是否可以通过任何其他方式引导网络。我不同意这是分发比特币的“公平方式”,但是,当然这个世界并不公平! 实际上,我不认为任何其他方式会产生如此多的用户哈哈。

顺便说一句,我承认没有从我早先的假设中窃取比特币的线索。从我的角度来看,双哈希似乎可以保证。

顺便说一句,我仍然想知道如果你根据非质数生成RSA密钥会发生什么。我认为还有其他系统没有加倍哈希。:-)

回复:盗币

Bitcoiner, July 27, 2010, 02:01:16 AM

我很高兴有像雷德这样的人在那里保持敏锐的眼光!这个帖子也让我对开源软件表示赞赏,因为在这个论坛上有这么多聪明且感兴趣的人可以验证软件并对其进行额外的信任。如果它是闭源的话,不确定比特币是否会成功!

回复:盗币

bytemaster, July 28, 2010, 09:42:17 PM

在我看来,最小化任何潜在攻击风险的明显解决方案是使潜在的“奖励”变小。因此,永远不要在一个地址中保留太多比特币。如果“奖品”的经济价值低于打破它的成本那么没有人会费心去尝试。在说完之后,我仍然认为最好尽量让事情尽可能地破解。

回复:盗币

knightmb, July 28, 2010, 10:45:16 PM

运气和CPU /存储能力肯定很难做到这一点。

如果您发现了碰撞和私钥,那对您来说没有任何好处,因为您必须在541,638,008,296,341,754,635,824,011,376,225,3 46,986,572,413,939,634,062,667,808,768个可能使用帐户的人的组合中查找帐户。

所以从两方面看待它。我在哈希中发现了一个碰撞,我找到了私钥。现在我不得不希望我的可能性是其他人正在使用那个哈希值。由于有更多可能的哈希帐号,而不是每个人都出生在这个星球上并且每个人都使用了一百万个地址,因此它本身的攻击虽然有趣,但实际上并不是大规模可行的。

今天连载到这里,明天继续。

延伸阅读:

《The Book of Satoshi》中本聪之书中文版连载(一)

《The Book of Satoshi》中本聪之书中文版连载(二)

《The Book of Satoshi》中本聪之书中文版连载(三)

《The Book of Satoshi》中本聪之书中文版连载(四)

《The Book of Satoshi》中本聪之书中文版连载(五)

《The Book of Satoshi》中本聪之书中文版连载(六)

《The Book of Satoshi》中本聪之书中文版连载(七)

《The Book of Satoshi》中本聪之书中文版连载(八)

《The Book of Satoshi》中本聪之书中文版连载(九)

《The Book of Satoshi》中本聪之书中文版连载(十)

《The Book of Satoshi》中本聪之书中文版连载(十一)

《The Book of Satoshi》中本聪之书中文版连载(十二)

《The Book of Satoshi》中本聪之书中文版连载(十三)

《The Book of Satoshi》中本聪之书中文版连载(十四)

《The Book of Satoshi》中本聪之书中文版连载(十五)

文章声明:本文为火星号作者作品,不代表火星财经观点,版权归作者所有,如需转载,请提前联系作者!

根据国家《关于防范代币发行融资风险的公告》,大家应警惕代币发行融资与交易的风险隐患。

本文来自LIANYI转载,不代表链一财经立场,转载请联系原作者。

发表评论

登录后才能评论

联系我们

微信:kkyves

邮件:kefu@lianyi.com

时间:7x24,节假日bu休息

QR code