当前位置:首页 >资讯 >openssl加密算法


OpenSSL所提供的功能相当强大和全面,包括主密码算法.常用的密钥及证书包装管理功能及SSL协议,并为测试或其他目的提供了丰富的应用程序。

深度解析openssl加密算法

1.对称加密算法

OpenSSL共提供8种对称加密算法,其中7种是分组加密算法,唯一的流加密算法是RC4.这7种分组加密算法分别是分组加密算法AES.DES.Blowfish.CAST.IDEA.RC2.RC5.支持电子密码本模式(ECB).加密分组链接模式(CBC).加密反馈模式(CFB)和输出反馈模式(OFB)四种常用的分组密码加密模式。AES加密反馈模式(CFB)和输出反馈模式(OFB)分组长度为128位,其他算法使用64位。事实上,DES算法不仅常用DES算法还支持三个密钥和三个密钥DES算法。

2.非对称加密算法

OpenSSL实现了四种不对称加密算法,包括DH算法.RSA算法.DSA算法和椭圆曲线算法(EC)。

DH算法一般用户密钥交换。

RSA算法可用于密钥交换或数字签名。

DSA算法则一般只用于数字签名。

3.信息摘要算法

OpenSSL实现了五种信息摘要算法MD2.MD5.MDC2.SHA(SHA1)和RIPEMD。SHA算法实际上包括在内SHA和SHA此外,1两种信息摘要算法,OpenSSL还实现了DSS标准中规定的两种信息摘要算法DSS和DSS1。

4.密钥及证书管理

密钥和证书管理是PKI重要组成部分,OpenSSL它提供了丰富的功能,支持各种标准。

首先,OpenSSL实现了ASN.1的证书和密钥相关标准提供了证书.公钥.私钥.证书要求及CRL等数据对象DER.PEM和BASE64的编解码功能。OpenSSL提供了生成各种公开密钥对称密钥的方法.函数和应用程序提供公钥和私钥DER编解码功能。并实现了私钥的实现。PKCS#12和PKCS#8的编解码功能。OpenSSL该标准提供了私钥的加密保护功能,使密钥能够安全地存储和分发。

在此基础上,OpenSSL实现证书X.509标准编解码.PKCS#12格式编解码及PKCS#7的编解码功能。并提供了一个支持证书管理功能的文本数据库,包括产生证书密钥的证书密钥.请求产生.证书签发.吊销、验证等功能。

OpenSSL提供的CA应用程序是一个小型的证书管理中心(CA),实现了证书签发的全过程和证书管理的大部分机制。

5.SSL和TLS协议

OpenSSL实现了SSL协议的SSLv2和SSLv3、支持绝大多数算法协议。OpenSSL也实现了TLSv1.0,TLS是SSLv3标准化版,虽然差别不大,但毕竟有很多不同的细节。

虽然已经有很多软件实现了OpenSSL但是。的功能OpenSSL里面实现的SSL协议能够对SSL协议有一个更清晰的理解,因为至少有两点:一是,OpenSSL实现的SSL协议是开放源代码,可以追究SSL协议实现的每一个细节;二是协议实现的每一个细节;OpenSSL实现的SSL协议是纯粹的SSL没有其他协议(如协议)HTTP)协议结合在一起,澄清SSL协议的本来面目。

6.应用程序

OpenSSL应用程序已经成为OpenSSL恐怕一个重要的组成部分的重要性是OpenSSL开发者开始没有想到。OpenSSL许多应用程序都是基于OpenSSL应用程序而不是它API的,如OpenCA,完全使用OpenSSL实现了应用程序。OpenSSL应用程序是基于的OpenSSL密码算法库和SSL协议库是写的,所以也是很好的OpenSSL的API使用范例。

OpenSSL应用程序提供了相对全面的功能,在相当多的人看来,OpenSSL已经为自己做了一切,不需要做更多的开发工作,所以,他们也把这些应用变成了OpenSSL的指令。OpenSSL应用程序主要包括密钥生成.证书管理.格式转换.数据加密和签名.SSL测试及其它辅助配置功能。

7.Engine机制

Engine机制的出现就在那里OpenSSL的0.9.6版的开头是普通版和支持。Engine版本是分开的,到了OpenSSL的0.9.7版,Engine机制集成OpenSSL核心,成了OpenSSL不可缺少的一部分。Engine机制的目的是使用OpenSSL第三方提供的软件加密库或硬件加密设备可以透明加密。OpenSSL的Engine机制成功地实现了这一目标,使机制成功地实现了这一目标OpenSSL它不仅使一个加密库,而且提供了一个通用的加密接口,可以与大多数加密库或加密设备协调。当然,要使特定的加密库或加密设备更加强大OpenSSL协调工作,需要写少量的接口代码,但这样的工作量不大,虽然还是需要一点密码知识。Engine机制的功能跟进Windows提供的CSP功能目标基本相同。目前,OpenSSL的0.9.7版支持8种嵌入式第三方加密设备,包括:CryptoSwift.nCipher.Atalla.Nuron.UBSEC.Aep.SureWare以及IBM4758CCA硬件加密设备。现在还有支持PKCS#11接口的Engine接口,支持微软CryptoAPI还开发了接口。当然,所有这些Engine接口支持不一定很全面,例如,可以支持一两种公共密钥算法。

8.辅助功能

BIO机制是OpenSSL一种高层建筑IO接口,接口包装了几乎所有类型的接口IO接口,如内存访问.文件访问及Socket等等。这大大提高了代码的重用性,OpenSSL提供API复杂性也降低了很多。

OpenSSL为随机数的生成和管理提供了一套完整的解决方案和支持API函数。随机数的质量是决定否安全的重要前提。

OpenSSL它还提供了其他辅助功能,如从密码生成密钥API,证书签发和管理中的文件配置机制等。