好久没有怎么看文档了。
一沉下去,就被"数字签名"这一概念搞得了点乱:
1. 首先是android手机上的不同程序要想为同一个user ID, 一定需要程序的数字签名相同
2. 然后是ubuntu upgrade时出现PGP error。
都是与“签名”这一概念扯上关系的。
沉就沉下去吧。 花点时间搞明白。
自己所知道
初见PGP时, 大约还是学生時期,那时只知道有PGP这个“东西“, 大概了解PGP的用途: 保护个人隐私, 数据安全。但是中国的一般计算机用户基本就不会理会这种事。
再说, 那时还算是个小小白. 戴着windows的链锁在跳舞。
工作后碰到ssh的, 会碰到“公钥“与”私钥“这两个概念。关于这方面的理论就不说了, 搜一下就一堆信息出来。
PGP与RSA,DSA的关系
可以看到, PGP就是一种软件。它利用了“公钥”体系理论。Pretty Good Privacy (PGP) is a computer program that provides cryptographic privacy and authentication. PGP is often used for signing, encrypting and decrypting e-mails to increase the security of e-mail communications. It was created by Philip Zimmermann in 1991.
RSA, DSA为“公钥”体系的一种具体方式。
PGP和GPG
从名字看上去很纠结, 它们都是类似的东西
PGP: http://en.wikipedia.org/wiki/Pretty_Good_Privacy“公钥”体系的加密与解密
RSA(Rivest-Shamir-Adleman)算法是一种基于大数不可能质因数分解假设的公匙体系。简单地说就是找两个很大的质数,一个公开即公钥,另一个不告诉任何人,即私钥。这两个密匙是互补的,就是说用公匙加密的密文可以用私匙解密,反过来也一样证书与公钥的关系
In cryptography, X.509 is an ITU-T standard for a public key infrastructure (PKI) for single sign-on (SSO) and Privilege Management Infrastructure (PMI). X.509 specifies, amongst other things, standard formats for public key certificates, certificate revocation lists, attribute certificates, and a certification path validation algorithm.
X.509是证书统一的格式标准
从http://en.wikipedia.org/wiki/Public_key_certificate 看到:
In cryptography, a public key certificate (also known as a digital certificate or identity certificate) is an electronic document which uses a digital signature to bind together a public key with an identity — information such as the name of a person or an organization, their address, and so forth. The certificate can be used to verify that a public key belongs to an individual.
我们平时说的"数字证书"就是这样的一种东西: public key再加上一堆信息按照X.509的格式组成的文件。
申请证书的过程
用户首先产生自己的密钥对,并将公共密钥及部分个人身份信息传送给认证中心。认证中心在核实身份后,将执行一些必要的步骤,以确信请求确实由用户发送而来,然后,认证中心将发给用户一个数字证书,该证书内包含用户的个人信息和他的公钥信息,同时还附有认证中心的签名信息。数字证书由独立的证书发行机构发布。数字证书各不相同,每种证书可提供不同级别的可信度。可以从证书发行机构获得您自己的数字证书。
所谓的签名
从wikipedia里找到一幅很好的图片:图中说明了签名和认证的过程. 但是有一点没有说明的: 认证签名时怎么确认使用certificate(也就是public key)就是发出者的呢?, 需要实现这种认证, 要有第三方认证机构的存在
自签名与第三方认证机构
为了做到证明某一个certificate就是发出者的证书, 出现了第三方认证机构.
说到这里, 已经不是技术问题了. 认证机构比的就是信用. 使用者使用前需要认同的一点: 认证机构上的证书都是可信的.
认证机构有两种性质的:
1. 商业
2. 非商业
注: 不同的认证机构不一定形网络. 有些认证机构是独立的.
PGP类型软件则结合了“公钥”体系和对称加密方法。它除了签名功能外, 还提供了一种功能:对数据进行加密, 实现数据在传输过程中安全性。
利用“公钥”体系对数据进行加密
上面一节: “公钥”体系的加密与解密 已经说到了“公钥”体系是可以把数据进行加密的。 但是存在一个问题: “公钥“体系的加密与解密速度是很慢的。在这点上, “公钥”体系远远比不上对称加密方法快。
PGP类型软件则结合了“公钥”体系和对称加密方法。它除了签名功能外, 还提供了一种功能:对数据进行加密, 实现数据在传输过程中安全性。
实现方法: 每次使用PGP软件时,PGP都随机产生一个128位的IDEA会话密钥,用IDEA密钥来加密需要传输的数据(对称加密)。然后使用公钥对IDEA密钥加密,这两次加密的数据被一并传输。 通过这种方法间接地保护需要传输的数据内容
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.