椭圆曲线密码学:简介

你们中知道公钥密码学的人可能已经听说过ECC, ECDH或ECDSA。第一个是椭圆曲线密码学的首字母缩写,其他是基于它的算法的名称。

今天,我们可以在TLS、PGP和SSH中找到椭圆曲线密码系统,这只是现代网络和IT世界所基于的三种主要技术之一。更不用说比特币和其他加密货币了。

在ECC流行之前,几乎所有的公钥算法都是基于RSA、DSA和DH等基于模块化算法的可替代的密码系统。RSA和它的朋友在今天仍然非常重要,并且经常和ECC一起使用。然而,虽然RSA及其朋友背后的魔力可以很容易地解释,被广泛理解,粗略的实现也可以很容易地编写,但是ECC的基础对大多数人来说仍然是一个谜。

本文通过一系列的博客文章介绍椭圆曲线密码学的世界。本文的目标不是提供一个完整详细的ECC指南(网上有很多关于这个主题的信息),而是提供一个简单的“ECC是什么”和“为什么它被认为是安全”的概述,而不是浪费时间在冗长的数学证明或枯燥的实现细节。我还将提供一些有用的示例,以及可视化交互工具和脚本。

具体来说,以下是我将涉及的主题:

  1. 实数上的椭圆曲线和群定律(包括在这篇博客中)
  2. 有限域上的椭圆曲线与离散对数问题
  3. 密钥对生成和两种ECC算法:ECDH和ECDSA
  4. 破解ECC安全的算法,并与RSA进行比较

为了理解这里所写的内容,您需要了解集合论、几何和模运算的一些基本知识,并熟悉对称和非对称密码学。最后,您需要清楚地知道什么是“简单”问题,什么是“困难”问题,以及它们在密码学中的作用。

 

椭圆曲线

首先,什么是椭圆曲线?Wolfram数学世界给出了一个优秀而完整的定义。但对于我们的目标,椭圆曲线是简单的由方程描述的点集:椭圆曲线密码学:简介

其中椭圆曲线密码学:简介(排除奇异曲线)。上面的方程就是所谓的椭圆曲线的维尔斯特拉斯范式。

上一篇:基于Flash的ECC纠错算法基本原理及软件C语言算法和硬件Verilog实现


下一篇:U-BOOT移植