历史
1976年。当时在美国史丹福大学的迪菲(Diffie)和赫尔曼(Hellman)两人提出了公开密钥密码的新思想(论文New Direction in Cryptography),不仅加密算法本身可以公开,甚至加密用的密钥也可以公开。但这并不意味着保密程度的降低。因为加密密钥和解密密钥不一样。这就是着名的公钥密码体制。也称作非对称密码体制。不同于对称性的密码学, 在于其加密钥匙只适用于单一用户。两部分
一把私有的钥匙,仅有用户才拥有。
一把公开的钥匙,可公开发行配送,只要有要求即取得。
每支钥匙产生一个被使用来改变属性的功能。私有的钥匙产生一个私有改变属性的功能,而公开的钥匙 产生一个 公开改变属性的功能。这些功能是反向相关的,例如,如果一个功能是用来加密讯息,另外一个功能则被用来解密讯息。不论此改变属性功能的次序为何皆不重要。公开的钥匙系统的优势是两个用户能够安全的沟通而不需交换秘密钥匙。例如,假设一个送信者需要传送一个信息给一个收信者,而信息的秘密性是必要的, 送信者以收信者的公开的钥匙来加密,而仅有收信者的私有的钥匙能够对此信息解密。公开的钥匙密码学是非常适合于提供认证,完整和不能否认的服务, 所有的这些服务即是我们所知的数字签名。
公钥私钥的原则
一个公钥对应一个私钥。
密钥对中,让大家都知道的是公钥,不告诉大家,只有自己知道的,是私钥。
如果用其中一个密钥加密数据,则只有对应的那个密钥才可以解密。
如果用其中一个密钥可以进行解密数据,则该数据必然是对应的那个密钥进行的加密。
RSA
RSA公钥系统发明于新思想提出后一年在麻省理工学院,里维斯特(Ronald Rivest)、沙米尔(Adi Shamir)和阿德勒曼(Len Adleman)提出第一个较完善的公钥密码体制——RSA体制,由三位发明人的姓氏首字母命名。这是一种建立在大数因子分解基础上的算法。它是第一个成熟的、迄今为止理论上最成功的公钥密码体制。它的安全性是基于数论中的大整数因子分解。该问题是数论中的一个困难问题,没有有效的算法,(即大整数因子分解不能在多项式时间内完成)这使得该体制具有较高的保密性。并且得到了广泛套用。不为人知的是,早在1970年的秘密研究中,英国情治单位GCHQ的数学家James H. Ellis便已发明非对称钥匙密码学,而且Diffie-Hellman与RSA都曾被Malcolm J. Williamson与Clifford Cocks分别发明于前。这两个最早的公钥系统提供优良的加密法基础,因而被大量使用。其他公钥系统还有Cramer-Shoup、Elgamal、以及椭圆曲线密码学等等。这些事件直到1997年历史档案解密的时候才为大众所知。
贡献
除了加密外,公开钥匙密码学最显着的成就是实现了数字签名。数字签名,顾名思义,就是使普通签章的数位化,他们的特性都是某人可以轻易製造签章,但他人却难以仿冒。数字签名可以永久地与被签署信息结合,无法自信息上移除。数字签名大致包含两个算法:一个是签署,使用私密钥匙处理信息或信息的哈希值而产生签章;另一个是验证,使用公开钥匙验证签章的真实性。RSA和DSA是两种最流行的数字签名机制。数字签名是公开钥匙基础建设(public key infranstructures, PKI)以及许多网路安全机制(SSL/TLS, VPNs等)的基础。公开钥匙算法大多基于计算複杂度上的难题,通常来自于数论。例如,RSA源于整数因子分解问题;DSA源于离散对数问题。发展快速的椭圆曲线密码学则基于和椭圆曲线相关的数学难题,与离散对数相当。由于这些底层的问题多涉及模数乘法或指数运算,相对于分组密码需要更多计算资源。因此,公开钥匙系统通常是複合式的,内含一个高效率的对称钥匙算法,用以加密信息,再以公开钥匙加密对称钥匙系统所使用的钥匙,以增进效率。













