ECC 非对称加密
RSA 是第一个非对称加密算法,也是迄今为止,最优秀、应用最广泛的非对称加密算法。它有一个非常重要的优点:原理简单,易于理解,而且操作方便。
但 RSA 的弱点也很明显,那就是运算的速度很慢。与同一安全级别的对称加密算法比较,RSA 要慢几百倍。所以在实际应用中,通常会结合 RSA 与对称加密算法,用 RSA 加密对称加密算法的密钥,然后用密钥对消息进行对称加密。
1985 年一种新的非对称加密算法出现。华盛顿大学的 Neal Koblitz 与普林斯顿大学的 Victor Saul Miller 分别独自提出了 ECC 椭圆曲线算法。 这种算法比 RSA 的单位安全强度更高,ECC 使用 256 位密钥可以达到 RSA 使用 3072 位密钥的效果。 但 ECC 的缺点是原理非常复杂,其背后的数学理论极其深奥,并非 RSA 那样具备高中数学即可理解的简单。
ECC 需要的密钥较小,且签名速度快,但验正签名速度慢,这一点正与 RSA 相反。 今天 ECC 已经得到了广泛的应用,我国的国密 SM2 就是基于 ECC 算法。
ECC 的效率与 RSA 的效率有一个形象的比较:破解一个 228 字节的 RSA 密钥,需要的能量少于煮沸一勺水的能量;而破解一个 228 字节的椭圆曲线密钥,需要的能量则足够煮沸地球上所有的水。
比特币系统中的非对称加密,应用的就是 ECC 加密算法系列。
Neal Koblitz 也是一位真正的数学家,对于数学有着很深的感情。 1984 年他收到来自荷兰数学家 Hendrik Willem Lenstra 的一封信,在信中,Hendrik 提出了一种应用椭圆曲线进行大数分解的方法。Neal 对此方法大加赞赏,评价说此方法既聪明,又优雅,还很容易理解,可以说将数学在密码学领域的应用,提升到了一个新的水平。
Neal Koblitz 也随之受到启发,他开始思考,是否可以基于椭圆曲线设计一整套加密算法呢?他很快写出来论文,而同期另外一位数学家,Victor Miller,他当时为 IBM 工作,也独自提出了同样的理论。所以,椭圆曲线加密算法,是这两位数学家分别独立创造出来的。
由此可以看到,数学家们之间的交流是多么重要,RSA,、ECC 都是两拨人在同一时期分头发现的。 Neal Koblitz 也曾经建议,密码学家和计算机学家,要经常读别人的文章,不要兴高采烈提出一个理论,却发现早就有人写出过论文了。 Neal Koblitz 作为数学家,对密码学家颇有点瞧不上。他说,数学家如同大象,看时间的流逝很慢。而密码学家和计算机学家,则像蜂鸟一样,看时间的流逝很快。他用的语言很文艺,实则批评很尖锐,意思是说密码学家和计算机学家非常急功近利。急急忙忙写文章,就像蜂鸟振翅一样,写出的只能是些没有价值的垃圾。
如果可以对 Neal Koblitz 的文章妄加解释的话,那么可以认为在 Koblitz 眼中存在一条歧视链。 数学家歧视密码学家,密码学家歧视计算机学家。
Neal Koblitz 的研究横跨数学及密码学,所以他有充分的资格对这些学科发表评论。 在他眼中,80 年代的密码学是一个朝气蓬勃的学科,极其刺激,因为那时候美国国家安全局要垄断密码学的研究,这密码学就成了一个禁地。 不禁还好,一听说是禁地,数学家和密码学家们原本没兴趣的,也都露出了 “邪恶的” 笑容。所以,80 年代,密码学研究真是轰轰烈烈,自由的精神、特立独行的个性,在密码学者身上比比皆是。 Neal Koblitz 对 DH 发明者迪菲就非常认可,认为他是杰出的、不落俗套的自由主义者。
然而密码学家们 “坏孩子” 式的兴奋并未持续很久。美国国家安全局 NSA 并非笨蛋,他们发现大棒不好使,很快就改变了策略。80 年代后期,NSA 设立了基金,用于资助密码学研究的项目,用胡萝卜政策替代了大棒子政策。 有钱自然是好事,数学家和密码学家们踊跃地申请基金。
Neal Koblitz 曾经写过一篇文章,讲述了数学与密码学之间的紧张关系。Neal Koblitz 是数学家,而数学大师哈代曾经这样评论过数论,说数论因远离现实生活而保持了它的优雅与纯净。数学家们常常因为数学本身的审美而感到自豪。 但另一方面,密码学又给 Neal Koblitz 这样的数学家一个在现实世界中驰骋的机会。 Neal Koblitz 引述过 NSA 一位官员的话 “数学家的密码学算法如果有漏洞,那么再写一篇论文就是,但在现实世界中密码失效,则可能丢失百万美金或者造成特工丧命”。 也许 在 Neal Koblitz 的心中也有紧张的关系,一面为了数学的审美而骄傲,另一面为 ECC 在现实世界中的功用而自豪。
网友评论