[译] 椭圆曲线密码学: 安全强度及对比RSA

本文翻译自爱尔兰AWS工程师 ANDREA CORBELLINI 关于椭圆曲线密码学四篇博客中的最后一篇, 原文采用 CC-BY 4.0 协议 进行授权 原文链接 : https://andrea.corbellini.name/2015/06/08/elliptic-curve-cryptography-breaking-security-and-a-comparison-with-rsa/ 原作者: ANDREA CORBELLINI 译者: chxj1992 本文是 ECC:入门 系列文章的第四篇也是最后一篇. 在上一篇文章中我们学习了两种算法: ECDH 和 ECDSA, 并且了解到了椭圆曲线上的离散对数难题在保证算法安全性上扮演的重要角色. 但是如果你还没忘的话, 我们并没有对离散对数难题的复杂性在数学上的证明: 我们相信它是"困难的", 但是我们还不能肯定. 在本文的第一个部分中, 我们将试着去了解在今天的技术条件下要解决它到底有多"难". 然后在第二个部分里, 我们将尝试解答以下问题: 既然已经有了 RSA 为什么我们需要椭圆曲线加密.…

[译] 椭圆曲线密码学: ECDH 和 ECDSA

本文翻译自爱尔兰AWS工程师 ANDREA CORBELLINI 关于椭圆曲线密码学四篇博客中的第三篇, 原文采用 CC-BY 4.0 协议 进行授权 原文链接 : https://andrea.corbellini.name/2015/05/30/elliptic-curve-cryptography-ecdh-and-ecdsa/ 原作者: ANDREA CORBELLINI 译者: chxj1992 这篇文章是 ECC:入门 系列文章的第三篇. 在之前的文章中, 我们了解了什么是椭圆曲线以及定义了群律以便对椭圆曲线上的点进行一些数学计算.然后我们将椭圆曲线限定在了以一个质数为模的整数有限域上. 在此限制下, 我们看到了椭圆曲线上的点可以生成出循环子群并且我们还介绍了 基点, 阶 和 余子式 的概念. 最后我们知道, 有限域上的标量乘法计算是一个"容易"的问题, 而离散对数问题却是非常"困难"的. 现在我们将会看到以上这些东西将如何融入密码学中.…

[译] 椭圆曲线密码学: 有限域和离散对数

本文翻译自爱尔兰AWS工程师 ANDREA CORBELLINI 关于椭圆曲线密码学四篇博客中的第二篇, 原文采用 CC-BY 4.0 协议 进行授权 原文链接 : https://andrea.corbellini.name/2015/05/23/elliptic-curve-cryptography-finite-fields-and-discrete-logarithms/ 原作者: ANDREA CORBELLINI 译者: chxj1992 这篇文章是椭圆曲线密码学:入门系列文章的第二篇. 在前一篇文章中, 我们知道了如何在实数域上的椭圆曲线上定义一个群. 具体来说, 我们定义了点加的规则: 找到位于一条直线上的三个点, 三点之和为零($P + Q + R = 0$). 我们推导了求解点加的几何方法与代数方法. 我们还介绍了标量乘法($nP = P + P + \cdots + P$) 并且我们找到了一种用于计算标量乘法的"简单"算法: 倍加法. 现在我们将要把椭圆曲线限制在有限域而非所有实数的集合上,…

[译] 椭圆曲线密码学: 入门

本文翻译自爱尔兰AWS工程师 ANDREA CORBELLINI 关于椭圆曲线密码学四篇博客中的第一篇, 原文采用 CC-BY 4.0 协议 进行授权 原文链接 : https://andrea.corbellini.name/2015/05/17/elliptic-curve-cryptography-a-gentle-introduction/ 原作者: ANDREA CORBELLINI 译者: chxj1992 如果你们知道什么是椭圆曲线密码学, 那你们应该也听说过 ECC, ECD或者ECDSA. ECC是椭圆曲线密码学(Elliptic Curve Cryptography)的首字母缩写, 而另外两个都是基于ECC实现的算法. 如今, 我们在 TLS, PGP 和 SSH 里都能找到椭圆曲线密码学的身影, 这三种技术可以说是现代互联网和数字世界的基础, 更别提ECC在比特币和其他各种加密货币中发挥的巨大作用了. 在ECC开始流行以前, 绝大多数公钥加密算法都基于 RSA, DSA 和 DH 实现.…

读<跨越千年的RSA算法>

原文链接 跨越千年的RSA算法 在当今这个由互联网构筑的世界里, RSA算法几乎无处不在. 例如: 访问任何一个https证书加密的网站 通过SSH登录一台服务器 从GitHub上clone一个项目 说来惭愧, 作为一个每天和RSA算法打交道的程序员, 直到最近学习了Matrix67大神讲解RSA算法的博客我才终于理解RSA算法到底是怎么一回事. 在真正介绍RSA算法之前作者用了大量的篇幅为读者填补了必要的数学基础, 文章共分为六个小节, 真正提到RSA算法的只有最后一个小节, 我之前也看过一两篇其他介绍RSA算法的文章, 但唯有这一次让我有种豁然开朗的感觉. (一)可公度线段 文章介绍了在<几何原本>中一种求取最大公约数的方法(Euclid 算法): 假设刚开始的两个数是 a 和 b ,其中 a > b ,那么把 a 除以 b 的余数记作 c ,把 b 除以 c 的余数记作 d ,c 除以 d 余 e…

Codewars:一个鸡蛋引发的思考

在codewars上遇到这样一道题: Eulampy 有一筐鸡蛋, 有一天在一幢摩天大楼下, 他的朋友对他说, 如果你给我n个鸡蛋, 我保证可以告诉你, 在h层楼的范围内, 鸡蛋最多从第几次楼扔下来而不会被摔破. Eulampy说, "没问题, 但是我最多同意你扔m次, 看你扔的次数太多我会难过的.", 请设计一个函数, height(n, m), 求扔鸡蛋实验的总量程, 即 h. 需要说明的是, 我们假设每个鸡蛋的都是完全一样的, 当一个鸡蛋被扔下了而没破, 就可以再次使用. 原题地址:https://www.codewars.com/kata/faberge-easter-eggs-crush-test/train/python 重点来了, 这道题有三组测试, 分别是: 基础的(basic), 进阶的(advanced), 真格的(serious). test.it('basic tests') test.assert_…