linux算法简单使用说明

来源:互联网 发布:涉税软件下载 编辑:程序博客网 时间:2024/05/29 11:53

加密算法和协议:
对称加密:加密和解密都使用同一个秘钥;
DES:
3DES:
AES(128bits,192,258,384,512bits):
Blowfish:
Twofish:
特性:
加密解密都使用同一个秘钥;
将原始数据分割成固定大小的块,逐个加密。
缺点:
秘钥过多;
秘钥分发;
公钥加密:秘钥是成对出现;
公钥:分发给所有人;
私钥:自己存留,必须保证其私有性。
特性:用公钥加密的数据,只有使用与之配对的私钥解密,反之亦然。
数字签名:
主要在于让接收方确认发送方身份;
秘钥交换:
发送方用对方的公钥加密一个对称秘钥,并发送给对方。
数据加密:
单向加密:
只能加密,不能解密,提取数据指纹;
特性:定长输出,雪崩效应。
算法:
md5:128bits
sha1:160bits
sha224:
sha256:
sha384:
sha512:
秘钥交换: IKE
公钥加密:
DH:
A:p,g p,g可公开
B:p,g
A:x (x由A自我保存)
–> p^x%g p的x次方取模发送给B,此值可公开
p^y%g^x =p^xy%g
B:y (y由B自我保存)
–>p^y%g p的y次方取模发给A,此值也可公开
p^x%g^y=p^xy%g
PKI:Public key infrastructure
签证机构:CA
注册机构:RA
证书吊销列表:CRL
证书存取库
X.509:定义了证书的机构以及认证协议标准
版本号
序列号
签名算法ID
发行者名称
有效期限
主体名称
主体公钥
发行者惟一标识
主体的惟一标识
扩展
发行者签名
SSL: Secure Socket Layer
TLS: Transport Layer Security
1995:SSL 2.0, Netscape
1996: SSL 3.0
1999: TLS 1.0
2006: TLS 1.1 RFC 4346
2008:TLS 1.2
2015: TLS 1.3

分层设计:
1、最低层:基础算法原语的实现,aes, rsa, md5
2、向上一层:各种算法的实现
3、再向上一层:组合算法实现的半成品
4、用各种组件拼装而成的种种成品密码学协议/软件:
tls, ssh,
openssl:开源项目
三个组件:
openssl:多用途的命令行工具;
libcrypto:公共加密库;
libssl:库,实现了ssl及tls;
openssl命令:
标准命令: enc ,ca ,req
对称加密:
工具:openssl enc ,gpg
算法:3des,aes,blowfish,twofish
enc命令:
加密:openssl enc -e -des3 -a -salt -in inittab -out inittab.des
解密:openssl enc -d -des3 -a -salt -in inittab.des -out inittab
单向加密:
工具:md5sum,sha1sum,sha224sun,sha256sum,sha384sum,sha512sum,oepnssl dgst
dgst命令:
openssl dgst -md5 /etc/inittab #提取文件特征码
生成用户随机密码:
openssl passwd -1 -salt SALT #-1是使用md5加密,salt是杂质
生成随机数:
openssl rand -base64|-hex num #num表示字节数,-hex时每个字符4位,出现的字符数位num*2。
公钥加密:
加密:
算法:RSA,ELGamal
工具:gpg,openssl rsautl
数字签名:
算法:RSA,DSA,ELGamal
密钥交换:
算法:dh
DSA: Digital Signature Algorithm
DSS:Digital Signature Standard
RSA:
公钥加密过程:
生成密钥对:

  生成私钥文件:openssl genrsa -out /path/to/privatekey.file num_bits 例:(umask 077,openssl genrsa -out /etc/pki/key.pki 2048) 提取出公钥: openssl rsa  -in /path/to/priviatekey.file -pubout

随机数生成器:
/dev/random:仅从熵池返回随机数;随机数用尽,阻塞;
/dev/urandom:从熵池返回随机数;随机数用尽,会利用软件生成伪随机数;非阻塞;

0 0
原创粉丝点击