使用开源PGP技术实现Solaris 10下的加密解密(图)
程序员文章站
2022-06-19 11:48:27
一、PGP(Pretty Good Privacy)技术简介
1、PGP简介
PGP技术是一个基于非对称加密算法RSA公钥体系的邮件加密技术,也是一种操作简单、使用方便、普及程度较高的加密软... 08-10-08...
一、pgp(pretty good privacy)技术简介
1、pgp简介
pgp技术是一个基于非对称加密算法rsa公钥体系的邮件加密技术,也是一种操作简单、使用方便、普及程度较高的加密软件。pgp技术不但可以对电子邮件加密,防止非授权者阅读信件;还能对电子邮件附加数字签名,使收信人能明确了解发信人的真实身份;也可以在不需要通过任何保密渠道传递密钥的情况下,使人们安全地进行保密通信。
pgp技术创造性地把rsa非对称加密算法的方便性和传统加密体系结合起来,在数字签名和密钥认证管理机制方面采用了无缝结合的巧妙设计,使其几乎成为最为流行的公钥加密软件包。
pgp使用两个密钥来管理数据:一个用以加密,称为公钥(public key);另一个用以解密,称为私钥(private key)。公钥和私钥是紧密联系在一起的,公钥只能用来加密需要安全传输的数据,却不能解密加密后的数据;相反,私钥只能用来解密,却不能加密数据。
现在广泛使用的公共密钥系统是基于pgp方式。它是一个基于rsa公钥加密体系的开源软件,但它与rsa加密算法又有所不同。确切地说,pgp使用的是rsa和传统算法des结合的新算法——idea(受专利保护)。
rsa算法是利用素数(即质数)的因式不可分解性。rsa算法的要点与难点有二个:算法主要为求模取余运算;判断一个数是否为素数。由于进行的都是大数计算,使得rsa最快的情况也比des慢上百倍,所以为了避开速度这一缺陷,pgp采用了改进后的idea算法。
2、为什么采用pgp加密?
目前国内多使用56位的加密系统,实际上是不安全的,而pgp是最少128位加密的强大的加密软件, 可以用于任何格式的文档,包括文本、电子表、图形等。具备数字签名功能,用于检查消息和文件的原作者和完整性。支持以下密钥算法:
1)公用密钥算法:diffie-hellman/dss,rsa
2)散列功能:md5, ripemd-160, sha-1
3)对称算法:cast, idea, triple-des
包括密钥生成和管理的整套工具,使系统管理员能够灵活控制整个网络系统的安全策略。
3、如何部署大规模pgp系统
1)建立网络系统的pgp证书管理中心
在大型网络系统中,利用pgp certificate server建立一个证书的管理中心。可以轻松地创建并管理统一的公用密钥基础结构。从而在网络系统内部或internet之间进行保密通讯。 通过将lightweight directory access protocol (ldap)目录和pgp证书的优点相结合, pgp certificate server大大简化了投递和管理证书的过程。同时具备灵活的配置和制度管理。pgp certificate server支持ldap和http协议,从而保证与pgp客户软件的无缝集成。 其web接口允许管理员执行各种功能,包括配置、报告和状态检查,以实现对其远程管理。 我们可以在sun solaris或microsoft windows server (intel)平台上实现。
2)对文档和电子邮件进行pgp加密
在操作系统可以安装pgp,对文件系统和电子邮件系统进行加密传输。
3)在应用系统中集成pgp加密
利用pgp software development kit(pgp 软件开发包)系统开发人员可以将密码功能结合到现有的应用系统中, 如电子商务、法律、金融及其他应用中。
4、pgp的 运行方式
pgp有5种业务:认证性?保密性?压缩?电子邮件的兼容性?分段?表1是这5种业务的总结?其中cast-128是一种分组密码,算法具有传统feistel网络结构,采用16轮迭代,明文分组长度为64比特,密钥长以8比特为增量,从40比特到128比特可变?
功能
使用的算法
功能描述
数字签字
dss/sha或rsa/sha
发送方使用sha产生消息摘要,再用自己的秘密钥按dss算法或rsa算法对消息摘要签字。
消息加密
cast或idea或三个密钥的三重des/elgamal或rsaidea或三重des加密
消息由用户产生的一次性会话密钥按cast-128或消息加密,会话密钥用接收方的公开钥按elgamal或rsa加密。
压缩格式
zip, zlib, bzip2
消息经zip, zlib, bzip2算法压缩后存储或传送
电子邮件的兼容性
使用基数64变换
将加密的消息转换为ascii字符的兼容性基数64变换串,以提供电子邮件应用系统的透明性。
分段
对消息进行分段和重组以适应pgp对消息最大长度的限制。
表1 pgp的业务
图1:pgp工作流程
5、开源pgp工具
后来gnu和*软件运动的出现可以使用免费的gpg,它的安全性与pgp一样强,可以充分地保护每个用户的隐私。 gnupg 是用于安全通信的工具;它是对 pgp加密技术的完全和免费的开源代替产品。使用 gnupg,你可以给你的数据和通信加密,并可以使用 数码签名(digitally signing)来验证你的通信。gnupg还能够解密及校验 pgp 5.x。
因为gnupg 和其它加密标准兼容,你的安全通信可能会与其它操作系统(如 windows 和 macintosh)上的电子邮件程序兼容。gnupg 使用公钥加密术(public key cryptography)来为用户提供安全的数据交换。在公钥加密术方案中,你生成两把钥匙:公钥和密钥。你和通信对方或钥匙服务器互换你的公钥,你决不应该出示你的密钥。
二、在solaris的gnupg安装
首先先必须安装软件软件包:
bzip2-1.0.5
libidn
libiconv
libintl
readline
openssl-0.9.8g
curl
openldap
sasl
zlib
限于篇幅笔者不详细介绍了。
#gunzip gnupg-1.4.8-sol10-x86-local.gz
#pkgadd –d gnupg-1.4.8-sol10-x86-local
图2:是gunpg安装成功界面
另外判断是否安装有gnupg的方法也很简单。直接在命令行下输入“gpg -h”命令,如果系统已经安装有gnupg,就会显示关于gpg版本和用法的信息。
1、pgp简介
pgp技术是一个基于非对称加密算法rsa公钥体系的邮件加密技术,也是一种操作简单、使用方便、普及程度较高的加密软件。pgp技术不但可以对电子邮件加密,防止非授权者阅读信件;还能对电子邮件附加数字签名,使收信人能明确了解发信人的真实身份;也可以在不需要通过任何保密渠道传递密钥的情况下,使人们安全地进行保密通信。
pgp技术创造性地把rsa非对称加密算法的方便性和传统加密体系结合起来,在数字签名和密钥认证管理机制方面采用了无缝结合的巧妙设计,使其几乎成为最为流行的公钥加密软件包。
pgp使用两个密钥来管理数据:一个用以加密,称为公钥(public key);另一个用以解密,称为私钥(private key)。公钥和私钥是紧密联系在一起的,公钥只能用来加密需要安全传输的数据,却不能解密加密后的数据;相反,私钥只能用来解密,却不能加密数据。
现在广泛使用的公共密钥系统是基于pgp方式。它是一个基于rsa公钥加密体系的开源软件,但它与rsa加密算法又有所不同。确切地说,pgp使用的是rsa和传统算法des结合的新算法——idea(受专利保护)。
rsa算法是利用素数(即质数)的因式不可分解性。rsa算法的要点与难点有二个:算法主要为求模取余运算;判断一个数是否为素数。由于进行的都是大数计算,使得rsa最快的情况也比des慢上百倍,所以为了避开速度这一缺陷,pgp采用了改进后的idea算法。
2、为什么采用pgp加密?
目前国内多使用56位的加密系统,实际上是不安全的,而pgp是最少128位加密的强大的加密软件, 可以用于任何格式的文档,包括文本、电子表、图形等。具备数字签名功能,用于检查消息和文件的原作者和完整性。支持以下密钥算法:
1)公用密钥算法:diffie-hellman/dss,rsa
2)散列功能:md5, ripemd-160, sha-1
3)对称算法:cast, idea, triple-des
包括密钥生成和管理的整套工具,使系统管理员能够灵活控制整个网络系统的安全策略。
3、如何部署大规模pgp系统
1)建立网络系统的pgp证书管理中心
在大型网络系统中,利用pgp certificate server建立一个证书的管理中心。可以轻松地创建并管理统一的公用密钥基础结构。从而在网络系统内部或internet之间进行保密通讯。 通过将lightweight directory access protocol (ldap)目录和pgp证书的优点相结合, pgp certificate server大大简化了投递和管理证书的过程。同时具备灵活的配置和制度管理。pgp certificate server支持ldap和http协议,从而保证与pgp客户软件的无缝集成。 其web接口允许管理员执行各种功能,包括配置、报告和状态检查,以实现对其远程管理。 我们可以在sun solaris或microsoft windows server (intel)平台上实现。
2)对文档和电子邮件进行pgp加密
在操作系统可以安装pgp,对文件系统和电子邮件系统进行加密传输。
3)在应用系统中集成pgp加密
利用pgp software development kit(pgp 软件开发包)系统开发人员可以将密码功能结合到现有的应用系统中, 如电子商务、法律、金融及其他应用中。
4、pgp的 运行方式
pgp有5种业务:认证性?保密性?压缩?电子邮件的兼容性?分段?表1是这5种业务的总结?其中cast-128是一种分组密码,算法具有传统feistel网络结构,采用16轮迭代,明文分组长度为64比特,密钥长以8比特为增量,从40比特到128比特可变?
功能
使用的算法
功能描述
数字签字
dss/sha或rsa/sha
发送方使用sha产生消息摘要,再用自己的秘密钥按dss算法或rsa算法对消息摘要签字。
消息加密
cast或idea或三个密钥的三重des/elgamal或rsaidea或三重des加密
消息由用户产生的一次性会话密钥按cast-128或消息加密,会话密钥用接收方的公开钥按elgamal或rsa加密。
压缩格式
zip, zlib, bzip2
消息经zip, zlib, bzip2算法压缩后存储或传送
电子邮件的兼容性
使用基数64变换
将加密的消息转换为ascii字符的兼容性基数64变换串,以提供电子邮件应用系统的透明性。
分段
对消息进行分段和重组以适应pgp对消息最大长度的限制。
表1 pgp的业务
图1:pgp工作流程
5、开源pgp工具
后来gnu和*软件运动的出现可以使用免费的gpg,它的安全性与pgp一样强,可以充分地保护每个用户的隐私。 gnupg 是用于安全通信的工具;它是对 pgp加密技术的完全和免费的开源代替产品。使用 gnupg,你可以给你的数据和通信加密,并可以使用 数码签名(digitally signing)来验证你的通信。gnupg还能够解密及校验 pgp 5.x。
因为gnupg 和其它加密标准兼容,你的安全通信可能会与其它操作系统(如 windows 和 macintosh)上的电子邮件程序兼容。gnupg 使用公钥加密术(public key cryptography)来为用户提供安全的数据交换。在公钥加密术方案中,你生成两把钥匙:公钥和密钥。你和通信对方或钥匙服务器互换你的公钥,你决不应该出示你的密钥。
二、在solaris的gnupg安装
首先先必须安装软件软件包:
bzip2-1.0.5
libidn
libiconv
libintl
readline
openssl-0.9.8g
curl
openldap
sasl
zlib
限于篇幅笔者不详细介绍了。
#gunzip gnupg-1.4.8-sol10-x86-local.gz
#pkgadd –d gnupg-1.4.8-sol10-x86-local
图2:是gunpg安装成功界面
另外判断是否安装有gnupg的方法也很简单。直接在命令行下输入“gpg -h”命令,如果系统已经安装有gnupg,就会显示关于gpg版本和用法的信息。