码迷,mamicode.com
首页 > 其他好文 > 详细

加密和解密以及openssl应用

时间:2014-12-10 18:17:19      阅读:302      评论:0      收藏:0      [点我收藏+]

标签:对称加密 非对称加密 openssl

本篇文章主要讲解

一、加密、解密的三种方式

二、Openssl的基础应用以及创建CA证书颁发

=========================================================================

一、数据加密的三种方式:


1、对称加密:是将加密或解密使用同一秘钥;并将数据明文分隔成固定大小的块,逐个进行加密。缺陷是秘钥过多,不利于记忆。

对称加密算法:DES(Data Encryption Standard, 56bits)、3DES、AES: Advanced (128, 192, 256, 384, 512)、Blowfish、Twofish、IDEA、RC6

、CAST5


2、公钥加密(也称非对称加密):与对称加密算法的主要差别在于,加密和解密的密钥不相同,一个公开(公钥),一个保密(私钥)。解决了对称加密算法密钥分配管理的问题,提高了算法安全性。

密钥对儿:public key: pk公钥, secret key: sk私钥

特性:

    身份认证:发送方使用自己的私钥加密数据,接收方使用与之公钥解密;

    密钥交换:发送方使用接收方的公钥加密数据,接收方使用自己的私钥解密;

非对称加密算法:RSA、DSA、ELGamal


3、单向加密:对数据按照一定算法生成特征码,具有不可逆性。

特性:

    消息认证:只用于验证消息本身,需要加密特征码。

    雪崩效应:输入数据的微小改变,会导致结果巨大变化。

    定长输出:无论输入数据多长,只要使用同一种单向加密算法,输出结果的长度都相同。

单项加密算法:MD5(128bits)、SHA1(160bits)、SHA256、SHA384、SHA512


PKI:Public Key Infrastructure

签证机构: CA

注册机构:RA

证书吊销列表:CRL

证书存取库


x.509:数字证书的证书格式;

版本号

序列号

签名算法ID

发行者的名称

有效期

主体名称

主体公钥

发行者唯一标识符

主体的唯一标识

扩展

发行者的签名

=========================================================================

下图完善的为大家讲解了如何进行一次加密通信~

bubuko.com,布布扣

二、Openssl的基础应用以及创建CA证书与分发;

1)openssl程序包是一套用于SSL(安全套接字层)/TLS(传输层安全)协议的加密工具,有如下三个组件组成;

1、openssl:多用途的命令行工具,各功能分别使用子命令实现;

2、libcrypto:公共加密库

3、libssl:用于实现SSL/TLS的功能


2)openssl命令行;


对称加密:

工具:openssl enc, gpg

算法:des, 3des, aes, blowfish, twofhish, rc6, idea, cast5


enc工具:

加密# openssl enc -e -CIPHERNAME -a -salt -in /path/from/somefile -out /path/to/somecipher.file

-e:默认是加密 

-CIPHERNAME:使用的加密算法

-a :使用base64转码

-salt:加杂质

-in /path/from/somefile :要加密的原文件

-out /path/to/shmecipher.file: 指定加密后文件的存储位置

bubuko.com,布布扣

解密# openssl enc -d -CIPHERNAME -a -salt -in /path/from/somecipher.file -out /path/to/someclear.file

-d : 解密 

-ciphername:使用解密算法时要与加密算法保持一致

-a :使用base64转码

-salt:加杂质

-out /path/to/someclear.file :需要解密的文件

 -in /path/from/somecipher.file :解密后存放的文件位置

bubuko.com,布布扣


单向加密:

特性:One-Way, Collision-free

工具:md5sum, sha1sum, sha256sum, sha512sum, openssl dgst, chsum

算法:md5, sha1, sha256, sha384, sha512

用法:

# openssl dgst [-md5|-sha1] [-out /path/to/somedgst.file] /path/from/someclear.file


MAC:消息认证码,单向加密的一种延伸应用,用于实现在网络通信中保证所传输的数据的完整性;


机制:CBC-MAC

HMAC: 使用md5或sha1算法


生成用户密码:

openssl passwd -1 -salt SALT


生成随机数:

openssl rand -base64|-hex NUM

NUM: 表字节;-hex时,每个字符为4位,因此,两个字符为一个字节;


公钥加密:

工具:gpg, openssl rsautl

算法:RSA, ELGamal


数字签名:

算法:RSA, DSA, ELGamal


密钥交换:

算法:公钥加密、DH


生成密钥对儿:

# (umask 077; openssl genrsa -out /path/to/PRIVATEKEY.FILE NUM_BITS)


从私钥中提取公钥:

# openssl rsa -in /patn/from/PRIVATEKEY.FILE -pubout



3)X.509证书

公钥和有效期;

    持有者的个人身份信息;

    证书的使用方式;

    证书发放机构的信息;

    验证CA的数字签名是否合法;


4)实验环境 server :172.16.249.134

           client:172.16.249.221

1、server端生成密钥对

使用# (umask 077; openssl genrsa -out /path/to/PRIVATEKEY.FILE NUM_BITS)

bubuko.com,布布扣2、server生成自签证书

# openssl req -new -x509 -key private/cakey.pem -days 3655 -out cacert.pem

bubuko.com,布布扣3、当第一次生成证书时,需要手动创建一个序列号文件serial

bubuko.com,布布扣


4、Client实现证书申请

在client上生成私钥文件,并保存至应用此证书的服务的配置文件目录下:

假设:用httpd服务,因此其位置为/etc/httpd/conf/certs/

bubuko.com,布布扣

5、在client生成证书签署请求

bubuko.com,布布扣(Client端所填的信息要与服务器一致)注:私有CA 一般都构建于一个公司内部,是使公司内部间传送数据实现加密,所以在服务器端申请证书签署文件时 里面填写的subject信息要与CA保持一致 这样在CA签署时 才可以通过~

6、Clientc端将请求文件发往Server端;

bubuko.com,布布扣

7、CA签署Client发来的证书申请;

bubuko.com,布布扣

8、签署完全后将证书发回申请者;

bubuko.com,布布扣

注意:每一个需要接收服务器发来的证书,并验正证书合法性的客户端主机,都必须拥有CA的证书才能进行;


9、吊销证书

在client获取证书的serial串号

bubuko.com,布布扣

在server端根据证书持有者提交的serial和subject信息和inodex。txt数据库中的文件一致

,则吊销证书;


10、生成吊销证书的编号(如果是第一次吊销)

bubuko.com,布布扣

11、而后在server端吊销

bubuko.com,布布扣

12、更新吊销列表

# cd /etc/pki/CA/crl/

# openssl ca -gencrl -out thisca.crl


注意:查看crl文件的方法

# openssl crl -in /path/from/somefile.crl -noout -text




本文出自 “囊萤映雪” 博客,请务必保留此出处http://664778789.blog.51cto.com/7534952/1588371

加密和解密以及openssl应用

标签:对称加密 非对称加密 openssl

原文地址:http://664778789.blog.51cto.com/7534952/1588371

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!