How secure is 256 bit security? - YouTube

Channel: 3Blue1Brown

[4]
在之前加密货币的视频里
[6]
我两次提到了这样的情况
[8]
为了攻破一个安全系统
[10]
你必须得猜对一个256位的比特串
[15]
第一次是在电子签名的部分提到的
[17]
第二次是在密码哈希函数的部分提到的
[21]
比如说 假如你想找到一条信息
[23]
让它的SHA256哈希值等于某个256位比特串的话
[28]
那就没有别的好办法 你只能随机猜测并检验结果
[33]
而平均下来 这需要尝试2^256次
[38]
这个数字比我们通常遇到的数都大得多
[42]
因此很难去体会它的规模
[45]
不过我们不妨试一试
[46]
2^256也就是2^32和自己相乘8次
[52]
这样想的好处在于 2^32大约是40亿
[56]
我们起码可以想像这个数字吧
[58]
就是新闻标题里会出现的那种数
[61]
所以我们要做的
[62]
就是去体会 40亿连续相乘8次是怎样的概念
[69]
大部分人都知道
[70]
电脑里的GPU可以飞快地进行大量并行计算
[76]
因此 要是你专门让GPU反复计算密码哈希函数
[82]
一个性能很好的GPU每秒也许能算出接近10亿个哈希值
[87]
假如你拿上一堆这样的GPU
[88]
全部塞进电脑里
[91]
让你的电脑每秒能算40亿个哈希值
[95]
那么最开始的40亿就代表了
[97]
每台电脑每秒算出的哈希值的数目
[101]
想象一下40亿台这样满载GPU的电脑
[106]
对比一下 虽然谷歌没有对外公布它们服务器的数量
[110]
但是有估计说 大概有几百万个
[114]
现实中 它们大部分服务器的算力
[116]
都不如我们满载GPU的电脑强
[120]
不过 我们假设谷歌把上百万个服务器全换成这样的电脑
[125]
那么40亿台电脑大概是1000个这种打了鸡血的谷歌
[130]
我们就把这个算力叫做“千谷歌”吧
[135]
全世界的人口大约有73亿
[138]
接下来 我们假设一多半的人都有自己的千谷歌
[145]
然后 想象40亿个这样的地球
[150]
作为对比 银河系大约有1000到4000亿颗恒星
[155]
虽然我们并不确定 但估算大致就在这个范围
[158]
所以这相当于银河系1%的恒星会有一个地球
[164]
并且这个地球上一半的人口都有自己的千谷歌
[169]
接着 想象40亿个这样的银河系
[174]
我们把它叫做 “亿万星系超级计算机”
[177]
每秒能猜2^160次
[183]
40亿秒 大概是126.8年
[187]
它的40亿倍 就是5070亿年
[191]
差不多是宇宙年龄的37倍
[194]
所以就算你有
[196]
GPU满满·人手千谷歌·行星云集·亿万星系计算机
[201]
不断地猜上37倍宇宙年龄的时间
[204]
也只有40亿分之一的可能性拿到正确的猜测
[212]
顺便一提 目前比特币的哈希算力
[215]
把所有矿工都加起来
[217]
每秒能猜测并检验500亿亿个哈希值
[222]
这相当于是三分之一个我之前提到的千谷歌
[226]
这并不是因为真的有几十亿台满载GPU的电脑
[231]
而是因为矿工们用的是比GPU好上大约1000倍的机器
[235]
叫做“专用集成电路”(ASIC)
[238]
这些硬件是为比特币挖矿量身定做的
[243]
别的不会 就专门会计算SHA256哈希值
[247]
原来 想要大幅提高效率
[250]
我们可以放弃一般的计算需求
[252]
而为了单单一个任务来设计集成电路
[258]
还有个我觉得有点难转过弯的话题:说到2的幂
[263]
这个Youtube频道的订阅数最近突破了2^18
[266]
为了更好地和这2^18个人中的一部分互动
[271]
我将要开展一个问答活动
[273]
我会把Reddit链接发到视频简介里
[275]
你可以去提问 也可以把你想知道答案的问题顶上去
[278]
也许在下一期视频 或者推特之类的地方
[281]
我会公布回答问题的形式
[284]
到时见!