Back to 密码学

See Also 对称密钥加密PKI 公钥基础设施

Public Key Cryptography

Public-Key Cryptography(公开钥匙密码学,又译为公开密钥加密),也称为非对称加密(Asymmetric Cryptography)是一种密码学算法类型,最大的特点在于加密和解密使用不同的钥匙。在这种密码学方法中,需要一对密钥,一个是私人密钥,另一个则是公开密钥。这两个密钥是数学相关,用户用密钥加密后所得的信息,只能用该用户的解密公开密钥才能解密。如果知道了其中一个,并不能计算出另外一个。因此如果公开了一对密钥中的一个,并不会危害到另外一个的秘密性质。称公开的密钥为公钥;不公开的密钥为私钥。

该思想最早由瑞夫·墨克(Ralph C. Merkle)在1974年提出,之后在1976年。惠特菲尔德·迪菲(Whitfield Diffie)与马丁·赫尔曼(Martin Hellman)两位学者以单向函数与单向暗门函数为基础,为发讯与收讯的两方创建密钥。

1. 用途

公钥密码学主要有两大用途:

2. 基本概念

2.1. Public Key Certificate

在密码学中,Public Key Certificate,公开密钥证书、公钥证书,又被称为数字证书(digital certificate)、数字认证、身份证书(identity certificate)或安全证书,是一种电子文件,用来证明公开密钥所有者的身份。认证中,包含了密钥信息,拥有者身份信息,以及这份文件的数字签章,以保证这个文件的整体内容正确无误。如果签章是正确的,而用户可以相信签署者,之后用户就知道他们可以使用这个密钥,来与密钥的拥有者进行通信。在X.509中规范了这个认证的过程与标准。

用来管理公开密钥认证的基础设施,称为公开密钥基础建设。

Usage-of-Digital-Certificate.svg

2.1.1. Contents of a typical digital certificate

See also: X.509 § Structure of a certificate

2.1.2. Signing & Validation

Digital_Signature_diagram.svg.png

2.2. Digital Signature

数字签名(又称公钥数字签名)是一种类似写在纸上的普通的物理签名,但是使用了公钥密码学的技术实现,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。

每个人都有一对“钥匙”(数字身份),其中一个只有她/他本人知道(私钥),另一个公开的(公钥)。签名的时候用私钥,验证签名的时候用公钥。又因为任何人都可以落款申称她/他就是使用者本人,因此公钥必须向接受者信任的人(身份认证机构)来注册。

2.3. Certification Authority

Certification Authority是数字证书认证机构,是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。

3. 实现方法

3.1. Enveloped Public Key Encryption

Enveloped Public Key Encryption (EPKE)是一种应用公匙密码学的方法,确保电子通信传输的安全,保护交流内容的通信完整性(communication integrity)和不可抵赖性(non-repudiation)。 这经常用在开放网络环境下确保通讯安全,一般利用传输层安全(Transport Layer Security)或安全套接字层(Secure Sockets Layer)协议。

EPKE 包含两个阶段,都是EPKE的基础:

3.1.1. Public Key Encryption

公钥加密(PKE)的目标是确保发送的内容在运输中是保密的。

3.1.2. Digital Signatures

数字签名方案的目标是,确保通信的发送方是已知的接收者,并且消息的发送方无法否认是他们发送的消息。因此,数字签名的目的是确保发送消息的不可抵赖性。 在实际应用中,发送方使用电子方式购买股票,接收方希望能够证明是谁要求购买。数字签名不提供保密信息被发送。

使用发送方的私有密钥对消息进行签名。数字签名后的消息发送给接收者,他可以使用发送方的公钥来验证签名。

公钥的形式就是数字证书。例如,从网上下载的安装程序,一般都带有程序制作者的数字签名,可以证明该程序的确是该作者(公司)发布的而不是第三方伪造的且未被篡改过(身份认证/验证)。

公开钥匙密码学最显著的成就是实现了数字签名。数字签名是普通签章的数字化,他们的特性都是某人可以轻易制造签章,但他人却难以仿冒。数字签名可以永久地与被签署信息结合,无法自信息上移除。

数字签名大致包含两个算法:

RSA和DSA是两种最流行的数字签名机制。

数字签名是PKI 公钥基础设施(public key infranstructures, PKI)以及许多网络安全机制(SSL/TLS, VPNs等)的基础。

3.2. Certification Authority

为了使EPKE尽可能安全,公钥和私钥需要一个“看门人”,否则任何人都可以在通讯中冒充发送方发布公钥。 这个数字钥匙的“看门人”是一个证书颁发机构。CA(认证中心)是一个受信任的第三方,可以发布公钥和私钥、认证公钥。它也作为保管人储存钥匙链和加强信任因素。

4. Algorithms

常见的非对称加密算法如下:

4.1. RSA

https://en.wikipedia.org/wiki/RSA_(cryptosystem)

在 1976 年,由于对称加密算法已经不能满足需要,Diffie 和 Hellman 发表了一篇叫《密码学新动向》的文章,介绍了公匙加密的概念,由 Rivet、Shamir、Adelman 提出了 RSA 算法。RSA 就是他们三人姓氏开头字母拼在一起组成的。

4.2. ECC

https://en.wikipedia.org/wiki/Elliptic-curve_cryptography

RSA 与 ECC 系统对比

椭圆曲线密码学(英语:Elliptic curve cryptography,缩写为 ECC),一种建立公开密钥加密的算法,基于椭圆曲线数学。椭圆曲线在密码学中的使用是在1985年由Neal Koblitz和Victor Miller分别独立提出的。

ECC的主要优势是在某些情况下它比其他的方法使用更小的密钥——比如RSA加密算法——提供相当的或更高等级的安全。ECC的另一个优势是可以定义群之间的双线性映射,基于Weil对或是Tate对;双线性映射已经在密码学中发现了大量的应用,例如基于身份的加密。

由于 RSA 算法存在的缺点,使用 ECC 作为其公钥算法的数字证书近几年的发展也不容小觑:2008 年左右 CA 开始储备 ECC 根证书,2012 年左右 CA 开始对外公开销售 ECC 证书,2014 年 ECC 证书在国外被普遍开始使用,2015 年国内开始接受 ECC 证书。

ECC 和 RSA 相比,在许多方面都有对绝对的优势,主要体现在以下方面:

5. Reference


CategoryAlgorithm CategoryCryptography

MainWiki: Public_Key_Cryptography (last edited 2018-05-02 16:24:21 by twotwo)