博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
与加密解密相关的一些内容
阅读量:6696 次
发布时间:2019-06-25

本文共 1648 字,大约阅读时间需要 5 分钟。

加密方案:

因素:
加密算法和协议:
加密密钥:

加密算法和协议:

对称加密算法:
主流的加密算法:
DES:Data Encryption Standard,数据加密标准;
64bits块,加密密钥的长度56bits;
NSA:
3DES,DES3
AES:Advanced Encryption Standard,高级加密标准;
加密密钥的长度,128bits,192bits,256bits
Blowfish:
Twofish:
IDEA
RC4,RC6
CASTS

特性:

1.每对通信主机都需要保有一个唯一的通信密钥,用于加密和解密数据;
2.将原始的数据分割成固定大小的块,逐个加密;
3.加密和解密的速度非常快;
缺陷:
1.在一台主机上需要保有的密钥数量会比较多;
2.密钥的分发非常困难;
3.公钥加密算法(非对称加密算法):
密钥是由私钥和由私钥抽取生成的公钥组成;
私钥:512bits,1024bits,2048bits,4096bits,8192bits,16384bits;

主流的公钥加密算法:

RSA:加密,数字签名;
DSA:Digital Signature Algorithm,数字签名算法;只能做数字签名;有时此算法也被称为DSS,Digital Signature Standard
Elgamal:

特性:

1.使用密钥进行加密和解密的时候,私钥加密的数据只能由与之对应的公钥才能解密;同样,使用公钥加密的数据只能由与之对应的私钥才能解密;
私钥:通过特定的工具随机创建生成,由使用者自己留存,务必保证其私密性;被称为"secret key" 或 "private key";
公钥:通过特定的工具从私钥中抽取生成,仅仅是私钥的一部分;公钥可以公开给所有人使用;被称为"public key"
2.私钥的长度都比较长,加密之后的数据安全等级较高;

缺陷:

加密数据的时候,消耗系统资源和时间都较多,速度很慢,因此,极少用来加密大量数据;

公钥加密算法的用途:

1.密钥交换:发送方使用接收方的公钥加密对称加密算法的密钥,将加密后的密钥发送给接收方;
2.数字签名:可以确保数据传输过程中发送法的身份的正确性;

单向加密算法(Hash加密算法,数据指纹算法):

只能加密不能解密,又称为"数据指纹提取";数据指纹即数据特征码;

主流的单向加密算法:

md5:Message Digest Version 5,信息摘要算法第五版;
128bits定长输出;
sha系列: Security Hash Algerithm,安全的哈希算法;
sha-1:160bits定长输出;
sha224:224bits定长输出;
sha256:
sha384:
sha512:

特性:

1.定长输出;
2.雪崩效应;

认证协议:

密钥交换算法:
1.公钥加密:
2.DH算法:Diffie-Hellman
用于在通信双方生成一对用于公钥加密算法的密钥对;
A:p, g
B:p, g
A:x
B: y
A:p^x%g --> B: (p^x%g)^y == p^xy%g
A:p^y%g --> B: (p^y%g)^x == p^xy%g

加密算法的应用:

1.通信双方互换各自的证书,并到信任的CA进行证书有效性认证;
2.如果证书认证有效,发送方就使用某种协商好的对称加密算法进行数据加密;对加密后的数据进行特征值抽取,然后再用自己的私钥加密码抽取出来的特征值,以证明数据来源可靠性;发送方利用接收方的公钥加密对称加密算法的密钥;
3.接收方在收到数据报文之后,先用自己的私钥解密对称加密算法的密钥,然后用发送方的公钥解密被加密的特征值,以证明数据来源可靠,再利用相同的加密单向加密算法计算数据的特征值,比较两个特征值,以证明数据完整性;再用对称密钥解密加密的数据即可;

转载于:https://blog.51cto.com/wangzhihang/2123196

你可能感兴趣的文章
java集合框架01
查看>>
mysql之 mysql 5.6不停机主从搭建(一主一从基于日志点复制)
查看>>
jar包和war包的区别
查看>>
启动和停止数据库——显示例程信息
查看>>
fatal: Could not read from remote repository
查看>>
消息模板 临时参考
查看>>
手动实现Netty
查看>>
Springmvc中的拦截器interceptor及与过滤器filter的区别
查看>>
week1 - Python基础1 介绍、基本语法、流程控制
查看>>
vue作用域插槽示例
查看>>
Apache Ignite 学习笔记(四): Ignite缓存冗余备份策略
查看>>
uwsgi service 设置
查看>>
matlab x~=0
查看>>
使用线性渐变写一个歌词播放效果
查看>>
PowerDesigner最基础的使用方法入门学习
查看>>
golang -- 字符串就地取反
查看>>
Leetcode题目:Count and Say
查看>>
Linux 进程管理子系统
查看>>
MyEclipse快捷键大全
查看>>
ethereum/EIPs-1078 Universal login / signup using ENS subdomains
查看>>