技术的极限(6): 密码朋克精神(Cypherpunk Spirit)
上一篇:技术的极限(5): 识别计算与技术背后的心智
下一篇:技术的极限(7): 处理复杂与分层
目录:
** 0x01 数据和App分离
** 0x02 蒸汽朋克/赛博朋克/密码朋克
** 0x03 20年的数学与5年的Excel
** 0x04 随机数生成器(RNG)
** 0x05 争论中谁更可能是对的?| Mellow Heuristic
** 0x06 眼泪的作用
** 0x07 更宽的马路带来更多的车流
** 0x08 RSA私钥位数的安全公式
** 0x09 密码学上的化学:Deffie-Hellman密钥交换协议
0x01 数据和App分离
原文:数据和App的分离
万维网之父伯纳斯-李 试图重新让互联网用户控制自己的数据,App归商业公司,数据归用户,用户开放数据给App,App才能工作,很有意思的去中心化设计。 有许多技术开发者认为把数据归还给用户是一个有价值的基础设施。
无独有偶,微软也有一个正在做的研究项目,该项目叫做“Bali”,Bali项目允许用户可视化地存储、管理、分享自己的隐私数据,同时采用“Inverse Privacy”技术保护用户数据,用户拥有对自己数据的完全可控。
Bali项目对当前用户的隐私现状描述如下:
Your interactions with various institutions -- employers, municipalities, financial institutions, health providers, police, toll roads operators, grocery chains, etc -- create numerous items of personal information, e.g., shopping receipts and refilled prescriptions
Due to progress in technology, institutions have become much better than you in recording
data. As a result, shared data decays into inversely private.
根据这篇文章的说法,Bali项目遵循的核心原则是:
It can be associated with a physical user through a verified identity
It is secure and trustworthy
It provides complete transparency into a user’s data
It ensures that a user’s data is not used without permission
It ensures that a user’s data is not misused
然而,保护用户的隐私看上去并不是一件容易的事,事实上技术进步导致数据获取能力方面的增强速度远大于数据保护能力的增强速度。关于这方面在《火的礼物:人类与计算技术的终极博弈(第4版)》这本书里作者有比较全面充分的讨论。(感谢@余晟的推荐)
0x02 蒸汽朋克/赛博朋克/密码朋克
科幻电影常常假设了一些超出现实世界的技术,以及架设在这种超现实技术之上的社会,进而在这个世界观中铺开一系列的故事。这类题材大致可以被分成两类,蒸汽朋克(Steampunk)和赛博朋克(Cyberpunk)。其中蒸汽朋克是对蒸汽科技发展到巅峰的架空设定,这方面的经典电影是《回到未来》系列。而赛博朋克则一般是对科技高度发达后社会秩序高度控制的架设,融合黑客、基因技术、人工智能、控制论等因素、并且常常带有反乌托邦色彩,典型电影有《银翼杀手》系列。
而另一个带有朋克色彩的是,密码朋克(Cypherpunk),主要以密码技术来获得个人数据的保护和自由。比较著名的是朱利安·阿桑奇的《加密朋克·互联网的自由和未来》一书。加密技术在这方面的的流行产品包括了比特币及其衍生的区块链技术。密码朋克衍生出一个密码朋克精神(Cypherpunk Spirit): 通过密码学技术让攻击的成本远大于防御的成本,从而更好地保护人们独立和自治的权利。
- wiki:赛博朋克
- wiki:Cyberpunk
- wiki:蒸汽朋克
- wiki:Steampunk
- wiki:加密朋克
- 从“密码朋克”到“维基解密”
- The cypherpunk revolution
0x03 20年的数学与5年的Excel
原图:Math skill and stage of life
这张表反应了大部分大学毕业的人在学校里学习了大量的数学知识,但是实际工作后大部分时候能用上Excel就很好了的现象。我把它起名为“20年的数学与5年的Excel”。这张图说明了什么?因人而异,每个人都可以从中解读出一些不同的东西。如果不是肤浅地得出数学无用论的结果,我们至少可以想象学习知识应该有一种比简单累积知识更为不同的方式,那么是什么呢?或者你可以思考下你的下一代是否应该重复你的学习知识的方式呢?或者你可以思考下下一次你要进入一个知识密集型的领域时应该采取怎样的策略?例如,现今流行了一些Problem Based Learning,Project Based Learning,etc.
0x04 随机数生成器(RNG)
原文1: why randomness matters
原文2: ensuring randomness with linuxs random number generator
随机数有什么用?为什么随机数很重要?怎样的随机数生成器是靠谱的?如果你有这三个疑问,就应该读一下上面这两篇文章。
0x05 争论中谁更可能是对的?| Mellow Heuristic
- Step 1: Look at how emotional each side is.
- Step 2: Assume the less emotional side is right and the more emotional side is wrong.
Why should we believe the Mellow Heuristic tracks truth? Most obviously, because emotionality drowns out clear thinking, and clear thinking tends to lead to truth. The more emotional people are, the less clear thinking they do, so the less likely they are to be right.
如果两个人争辩,谁的观点更可信?Mello Herustic 的方法是一种相对来说靠谱的初步判断:首先看下谁的情绪更大?其次假设情绪比较小的那一边更可能是对的,而另一方是错的。为什么这有效呢,Mello Herustic基于情绪波动更大的时候大脑更不容易保持清醒以作出理性思考,情绪越大,可能错的越离谱。
0x06 眼泪的作用
原文:tears
我们常常跟小孩说“哭是没用的,你得学会表达”,这篇文章详细分析了眼泪对于人类的各种作用,“眼泪是人在进化中的一种信号”,这个信号满足:
- 对双方有意,发送者和接受者都能感知
- 真实性
而眼泪的含义,取决于发送者(流泪者)的角色位置,以及接受者(观察者)对对方眼泪情景的理解和解释。例如:发送者的示弱或引起发送者的同情。
眼泪的作用包括:
- 进化中的一种“政治”行为。
- 情绪上的一种本能无意识的社会行为。
- 生存中的一种资源博弈行为。
0x07 更宽的马路带来更多的车流
原文:traffic roads induced demand
当我们提供更好的基础资源时,可以预测它将带来更多的消耗资源的消费者。在IT领域对应的著名例子是安德比尔定律(Andy and Bill's Law): Andy gives, Bill takes away. 我们可以思考生活中的很多事情都会有这种规律,那么其中就会有我们解决问题和创造产品的空间,也许你应该提前预测人们会蜂拥而至新技术创造的市场,像闪电侠一样比别人快半步走到前沿。
0x08 RSA私钥位数的安全公式
原文:how big an rsa key is considered secure today
RSA加密算法提供了两种核心的应用:
- 非对称加密,任何人可以通过公钥加密数据并发送给私有拥有者,只有私钥拥有者才能解密数据
- 签名,只有私钥拥有者才能对数据签名,从而其他人只需要拥有公钥即可验证数据的签名是否来自私钥拥有者,并且该签名不可否认。
整个计算机世界的安全依赖于非对称加密的上述两大核心功能。而根据年份和被破解的位数数据,拟合出来的RSA私钥位数的安全公式:(year−2000)⋅32+512。随着保证RSA安全性的需要,需要的质数越来越大,于是另一种基于椭圆曲线的加密技术(Elliptic Curve Cryptography)开始逐渐在计算机的加密算法的应用中逐渐凸显出来。而椭圆曲线加密技术并不如RSA那么“简单”,需要有抽象代数基础以及一些必要的素论知识才能基本理解ECC的原理,以及理解基于ECC的Deffie-Hellman非对称加密(ECDH)和基于ECC的签名算法(ECDSA)。
此外,虽然单个RSA公钥的大质数难以被暴力质数分解,但是如果Alice和Bob两个人用的是同一套质数随机数生成器,那么他们的公钥可能含有相同的质数,如果你找到它们的公共质因子,那么你成功破解。有一个团队搜集了6.2百万的公钥,破解了12934个公钥,也就是说在这个集合中RSA加密的安全系数减少到99.8%。如何从公钥的“大数据”里快速计算公共质因子呢?假设有k1, k2, k3, 你只需分别计算k1和k2xk3; k2和k1xk3;k3和k1xk2的公共质因子即可,因为如果k2或者k3与k1有公因子,那么k2xk3也和k1有公因子。显然可以假设碰撞率不高,只需计算一遍后,就可以找出可能与其他key有公因子的少数key序列,再做2次筛选,就能最后找到那些有公因子的公钥对。这篇文章描述了这个算法:The (Almost) Secret Algorithm Researchers Used to Break Thousands of RSA Keys
0x09 密码学上的化学:Deffie-Hellman密钥交换协议
Deffie-Hellman密钥交换协议,可以通过下图的颜色混合游戏直观的“一眼看懂”。
- Alice和Bob共享一个公共的颜色,ColorC
- Alice和Bob各自产生一个私有的颜色,例如ColorA和ColorB
- Alice把ColorA和ColorC混合,得到ColorAC
- Bob把ColorB和ColorC混合,得到ColorBC
- Alice把ColorAC传给Bob
- Bob把ColorBC传给Alice
- Alice把ColorBC和ColorA混合,得到ColorABC
- Bob把ColorAC和ColorB混合,得到ColorABC
最后,Alice和Bob都知道了只有他们两个才知道的ColorABC,整个过程就像化学药水一样起效果。当然实际的过程是数学过程,并且数学过程保证了只知道中间数据是没办法破解出ColorA和ColorB,从而无法知道ColorABC是什么。这个过程如图所示:
--end--