加密算法和协议
对称加密:加密和解密使用同一个密钥;
对称加密方法
DES,3DES,AES,Blowfish,Twofish,IDEA,RC6,CAST5
特性:
1、加密、解密使用同一个密钥;
2、将原始数据分割成固定大小的块,逐个进行加密;
缺陷:
1、密钥过多;
2、秘钥分发;
公钥加密:密钥成对存在
公钥:公开给所有人;
私钥:自己留存,必须保证私密性;
特点:用公钥加密的数据,只能使用与之配对的私钥解密;
主要功能:
数字签名:主要用于让接收方确认发送方身份;
密钥交换:发送方用对方的公钥加密一个对称密钥,并发送给对方;
数据加密:
算法:RSA,DSA,ELGamal
单向加密:只能加密,不能解密,提取数据指纹;
特性:定长输出、雪崩效应
算法:md5、sha1、sha224、sha256、sha384、sha512
功能:用于保证数据完整性校验;
PKI:密钥和证书管理是PKI的重要组成部分
签证机构:CA
注册机构:RA
证书吊销列表:CRL
证书存取库
openssl是一个强大的安全套接字层密码库,包括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,
并提供丰富的应用程序供测试或其他目的使用。
openssl由三个组件构成
openssl:多用途的命令行工具
libcrypto:公共加密库
libssl:实现ssl和tls的库
openssl命令
对称加密
工具:openssl enc,gpg
算法:des3,aes,blowfish,twofish
enc命令加密:openssl enc -e -des3 -a -salt -in FILE -out FILE.OUT
解密:openssl enc -d -des3 -a -salt -in FILE.OUT -out FILE
-e:加密
-d:解密
-des3:des3算法
-a:基于文本
-salt:加入一些杂质
-in:需要加密或解密的文件
-out:输出至文件
openssl ?:可查看可用算法
单向加密
dgst命令
openssl dgst -md5 FILE -out FILE.OUT
-md5:md5算法
-out:输出至文件
生成密码
openssl passwd -1 -salt SALT
生成随机数
openssl rand -base64|-hex NUM
NUM:表示字节数;-hex时,每个字符4位,出现的字符数为NUM*2
公钥加密
加密
算法:RSA,ELHamal
工具:gpg、openssl rsautl
数字签名
算法:RSA,DSA,ELGamal
密钥交换
算法:dh
生成密钥对儿
openssl genrsa -out FILE NUM_BITS
-out:输出至文件
NUM_BITS:加密位数
提取公钥
openssl rsa -in FILE -pubout
-in:私钥文件