讲点数学和密码。
在公钥密码体制出现以前,数学在密码中的应用一直有限。二十世纪四十年代,Turing通过统计的方法进行密码破译,Shannon创立了信息论,奠定了密码学的理论基础。
在那个时候很多数学的发展动力在于军方的需求,而数论被G. H. Hardy认为是唯一纯粹自然的研究。这种想法到1977年RSA公钥加密算法提出来以后改变,三位MIT的计算机科学家提出了一种新的密码体制,从此,研究人员对密码和数论的兴趣开始高涨。
公钥密码体制往往基于某个数学难题,构造出单向陷门函数。RSA的基础就是大数分解这一最基本的数论问题。RSA的出现激发了对大数分解和生成随机大素数的研究。之后,基于有限域上的离散对数问题的ElGamal算法也被提出。
椭圆曲线最早在密码学当中是用于破解大数分解问题,最早出现在Hendrik Lenstra的文章中, Neal Koblitz受到启发后,提出了用椭圆曲线构造密码体制的想法。于此同时,IBM的Victor Miller也在做同样的事情,但两人均未有过商业化的想法,甚至专利也没有申请。
Koblitz后面遇到了Scott Vanstone,Vanstone和其他两名Waterloo的教授创立了Certicom开发和推广ECC。
90年代,针对椭圆曲线离散对数问题,Gerhard Frey提出了Weil下降攻击。到2000年左右,Antoine Joux, Dan Boneh, and Matt Franklin提出了可以用双线性对来构造出基于身份的密码体制,Pairing-based Cryptology开始受到研究者的关注。