香农知道,要信息,一个好的加密方法应该制造随机性,这样一来原始信息就无法溯源出来。譬如,我们对 COLOR 和 COLOUR 两个英文单词进行加密,我们知道这两个词很相似。不过,如果我们用一种加密机制来加密,结果却完全不同,那就堪称完美的加密。
这意味着,即便要被加密的原初消息只有极小的变化,也应翻译成迥然不同的加密消息,和原始消息的加密消息之间没有丝毫相像。有趣的是,目前还没有任何一种加密技术可以做到一丁点的变化就能影响到加密信息的全部。密码学还在追求完美的保密性。
接着,伴随计算机的诞生,1970 年代迎来了现代密码学,即利用复杂性理论来发展加密方法,用户可以轻松地加密、解密或验证消息,而在不知道私密密钥的情况下 ,「暴力破解」这一方法所需的算力被证明相当之高,要达到量子计算的难度。
因此,与经典密码学中加密方法必须保密这一条件不同,现代密码学的方法和算法都可以被共享。即便提前知道相应的理论和算法,也几乎不会给你「破解它们」提供什么优势。
以下两个里程碑式的突破把世界带入现代密码学时代:
数字加密标准(DES)
公开密钥密码学(譬如:RSA 算法和 Diffie-Helman 算法)
DES (Data Encryption Standard)规范了电子数据的加密方法,这推动了对密码学更广泛的研究。(题外话,美国政府干预 DES 的开发,助长了人们对政府通过后门干预加密技术的不信任,等等。关于启用后门技术的优缺点的争论一直持续到今天。)言归正传,DES 在 2002 年已被高级加密标准 (AES) 所取代。
至于公开密钥密码学,其工作原理如下:
1. 用户 A 生成一个 私密密钥(私钥)和一个 公开密钥(公钥)。
一个「密钥」的定义是什么呢?密钥是一段信息,可以决定一个算法的输出。举个非常简化的例子,假设用户 A 有一个算法 F(x,k),其中她想用密钥 k 「掩饰」一个数字 x,然后发送给另一个用户 B,公式如下:
F(x, k) = x * k * 7
x 的值根据用户 A 想要共享的数据或数字而变化。然后用户 A 会用密钥 k 乘以 x,以「」它。
假设用户 A 的密钥是 10,她想把数字 3 发给用户 B。她会用 3 * 10 * 7 = 210 来「加密」数字 3。用户 A 会把 210 发送给用户 B。如果用户 B 知道密钥 k 和算法 F,他只需要把 210 除以 10 和 7 来「解密」这个秘密数字,结果即为 3。不过,在本例中,加密密钥和解密密钥是相同的,或者称为对称加密,即用于加密和解密的是同一个密钥 3。
而在非对称加密中,公钥「加密」和私钥「解密」是两个不同的数字,其算法也要比上面提到的复杂得多。
一般来说,公钥是从私钥派生出来的;不过,要从公钥出发找到私钥,「在计算上是不可行的」。在正规术语中,这被称为陷门函数(trapdoor /span>――在一个方向上很容易处理、但在反方向上执行起来极具挑战性。
因此,从私钥生成公钥很容易,但是从公钥计算出私钥非常有挑战性。这种差异性越大,这种方法就被认为越安全。从根本上说,它依赖于计算中的一个事实:乘法计算起来非常快,而除法要慢得多。
继续……
2. 用户 A 把她的公钥发送给用户 B。
3. 用户 B 用用户 A 的公钥加密一条要发给 A 的信息 。
4. 用户 B 给用户 A 发送一条加密的信息。
5. 用户 A 利用她的私钥解密这条信息,然后读到用户 B 发给她的信息。
在 RSA 算法中,简单说来,私钥和公钥是基于两个大素数相乘形成的半素数而生成的。前面讲过,因式分解(除法)在计算上比乘法困难得多。不过,RSA 作为一种密码学完整性的方法正在衰落。
Global Security 指数是一种量化加密系统的安全性的标准,它将破解一个加密系统所需的算力翻译成「烧开水」所需的能量。基于这个指数, 288 位的 RSA 加密,可用烧开不到一茶匙水所用的算力破解。目前,大多数 RSA 密码术使用 2048 位的密钥。
我们可以对比来看一种新型的私 / 公钥密码术――椭圆曲线密码术(Elliptic Curve Cryptography,ECC)。破解一个 288 位的 ECC 系统,所需的能量可以煮沸地球上所有的水。因此,后者正在快速取代 RSA,成为区块链和零知识证明中使用的密码学系统的基础。这是关于 ECC 与 RSA 对比的一个相当综合的概括。
此文由 比特币官网 编辑,未经允许不得转载!:首页 > 比特币行情 » 一文说透密码学历史、工作原理、零知识证明及潜在影响