随着网络与计算机技术的发展,数据存储与数据交换的安全性、完整性和一致性已经变得越来越重要,网络信息安全中核心的加密技术也被应用于数据存储和数据交换。同时,为了确保网络数据交换时双方身份的正确性以及不可抵赖性,签证体系也已经日趋成熟。如何保证在不安全的网络上安全地传输数据是一个难题,而基于PGP(Pretty Good Privacy)机制的加密及签名机制就可以极大地保证网络用户传输及使用数据的安全性。
PGP成为最流行的公钥加密软件包
PGP采用了审慎的密钥管理——一种RSA和传统加密的杂合算法,包括用于数字签名的邮件文摘算法、加密前压缩等,它功能强大,速度很快。PGP的创始人PhilZimmermann创造性地把RSA公钥体系的方便和传统加密体系的高速度结合起来,并且在数字签名和密钥认证管理机制上有非常巧妙的设计,从而使得PGP成为几乎最流行的公钥加密软件包。
其中,RSA(Rivest-Shamir-Adleman)算法是一种基于“大数不可能质因数分解假设”的公钥体系。简单地说就是找两个很大的质数,一个公开给世界,一个不告诉任何人。分别称为“公钥”和“私钥”。这两个密钥是互补的,就是说用公钥加密的密文可以用私钥解密,反过来也一样。
PGP采用了IDEA专利算法 安全程度较高
由于PGP使用了IDEA专利算法,所以使用PGP会有许可证的麻烦。人们想出了一些变通方法,比如在Linux环境下人们使用GnuPG,由于GnuPG并没有用到IDEA专利算法,所以对用户来说使用GnuPG没有任何限制,而在功能上它和PGP是一样的。GnuPG使用非对称加密算法,安全程度比较高。所谓非对称加密算法,就是每一个用户都拥有一对密钥: 公钥和私钥。其中,密钥由用户保存,公钥则由用户尽可能地散发给其他人,以便用户与其他人通信。
使用GnuPG其实非常简单,Linux系统中已经提供了很多命令来辅助用户用该软件来进行加解密以及数字签名,包括生成公钥/私钥对、公钥的导出、公钥的导入、加密和解密、对文件进行签名等命令。
在使用PGP的过程中,需要注意如下几个问题:
1. 需要根据实际的应用来确定生成密钥的算法、密钥的长度以及密钥的有效期限。
2.需要用户通过交互移动鼠标、键盘来保证生成的密钥对的随机性,否则,极有可能被黑客破解。
3. 公钥的安全是PGP安全的核心,一个成熟的加密体系必然要有一个成熟的密钥管理机制配套。公钥体制的提出就是为了解决传统加密体系的密钥分配难保密的缺点。但公钥的发布中仍然存在安全性问题,例如公钥被篡改,这可能是公钥密码体系中最大的漏洞,因为大多数新手不能很快发现这一点。使用者必须确信你拿到的公钥属于它看上去属于的那个人。
4. 私钥的保密也是决定性的。相对公匙而言,私钥不存在被篡改的问题,但存在泄露的问题。PGP的办法是让用户为随机生成的RSA私钥指定一个口令。只有给出口令才能将私钥释放出来使用,用口令加密私钥的方法保密程度和PGP本身是一样的,所以私钥的安全性问题实际上首先是对用户口令的保密。当然私钥文件本身失密也很危险,因为破译者所需要的只是用穷举法试探出你的口令了,虽说很困难但毕竟损失了一层安全性。最需要注意的是,要像任何隐私一样保藏你的私钥,不要让任何人有机会接触到它。
5. 在实际的使用过程中,用户可以将PGP软件灵活地运用到网络数据传输,包括电子邮件发送、FTP文件传送等各个应用领域。
小知识之PGP加密技术:
PGP是一个基于RSA公钥加密体系的邮件加密软件。它不但可以对用户的数据保密以防止非授权者阅读,还能对邮件加上数字签名从而使收信人确信邮件是所期望的人发出,让我们可以安全地和从未见过面的人通信,而事先不需要任何保密的渠道用来传递密钥。