目录:
- 1.典型的加密模型
- 2.对称秘钥算法 (加密解密密钥相同)
- 3.非对称密钥算法(公钥密码)(加密与解密密钥不同.)
- 4.密钥交换
- 5.消息摘要
- 6.电子签名
- 7.证书与PKI
1.典型的加密模型
密钥:分为加密密钥和解密密钥
明文:没有进行加密,能够直接代表原文含义的信息.
密文:经这加密处理之后,隐藏原温含义的信息
解密:将密文转换成明文的实施过程.
明文P-->加密方法E --> 密文 --> 解密方法D --> 明文P
加密密钥K 密文P=Ek(p) 解密密钥K'
Dk'(Ek(P))=P k=k'则为对称加密
2.对称秘钥算法 (加密解密密钥相同)
优缺点:
优点: 高效
缺点: 密钥交换的问题
不如RSA的加密安全程度高,但是当选择256bit的AES,扔然能胜任大多数的安全领域.
置换加密如:
abcdefghijklmnopqrstuvwxyz
istjkqrzlyefuvmnopgwxhabcd
hello --> zkffm
the key is the mapping list: istjkqrzlyefuvmnopgwxhabcd
转置加密如:
i am a boy you are a girl
143526
iamabo
yyouar
eagirl
---->
iye
bar
mog
aya
aui
orl
the key is the column order: 143526
乘积密码如:(重复迭代,置换加密与转置加密.)
iamabo
yyouar
eagirl
---->
liuism
ccmxip
kirlpf
---->
lck
sip
umr
ici
ixl
mpf
the key is istjkqrzlyefuvmnopgwxhabcd 143526
DES 数据加密标准(data encryption standard)
AES 高级加密标准(Advanced Encryption Standard)
3.非对称密钥算法(公钥密码)(加密与解密密钥不同.)
明文P-->加密方法E --> 密文 --> 解密方法D --> 明文P
加密密钥K 密文P=Ek(p) 解密密钥K'
Dk'(Ek(P))=P k!=k'则为非对称加密 (K公钥,K'私钥)(publicKey 公钥,privateKey 私钥)
公钥算法的理论基石
数学的科学之基
基础学科研究之物, 虚虚实实,先虚后实
公开密钥算法的最重要两大数学基础
/建立在分解大数的困难度{如: RSA算法(公钥/私钥长度,至少1024bit)}
/建立在以大素数为模来计算离散对数的困难度.
优缺点:
优点:安全性足够高(相比对称加密)
没有密钥交换的问题
缺点:效率低,对于大数据加密很慢
4.密钥交换
实际的保密会话应用场景
1.基于高效的对称加密算法对会话进行加密
2.会话密钥实时产生且周期性变化
3.基于其它足够安全的方式进行会话密钥的传输与交换.
利用公钥密码来交换会话密钥.
1.实时随机的会话密钥产生
2.使用对端的公钥对产生的会话密钥加密并传递给对端
3.对端使用私钥解密获取会话密钥
4.双方开始基于共享的会话密钥进行对称加密的保密会话通信.
Diffie-Hellman密钥交换协议
1.基于对大素数为模计算离散对数的困难度
2.双方各自选定key,然后以一定算法变换(使得key不以明文传输)后传输给对方
3.双方利用对方交换来的数据和自己选定的key做变换,获得一个一致的结果,作为会话密钥.
5.消息摘要
HASH与散列函数的定义与特点
HASH翻译成散列或者哈希
HASH(散列)函数(算法)的定义是:变长的输入变换成定长的输出
常见的HASH算法:MD5(128bit),SHA1(160bit)
HASH的特点:
1.易变性:即便原始信息发生1bit的变化,HASH的输出将会有不可预知的巨大变化.
2.不可逆:通过HASH的结果构造出满足的输入信息是不可能的或者及其困难的.
与人的指纹相对应
1.双胞胎的指纹不同
2.通过指纹猜不出它的主人
数字指纹由此而来
消息摘要: 摘要窥/定全体
HASH , 哈希 , 散列 , MD , 消息摘要 , 数字指纹 都是一个意思.
HASH的应用场景:防篡改. 防损坏 . 认证
HMAC : Hash-based Mesage Authentication Code (消息认证码)
我们遇到了什么问题
1.直接尾部附带消息摘要的问题(篡改内容的同时篡改摘要)
2.直接对密码做HASH传输的认证的问题(重放攻击)
HMAC怎么解决的
HMAC就是使用key对原始消息变换后再进行HASH.
6.电子签名
公钥密码术的两面性(非对称密钥算法的两面性)
1.应用于保密通信场景
DprivateKey(EpublicKey(P)) = P (说明:使用公钥加密P,使用私钥解密出P)
2.应用于电子签名场景
DpublicKey(EprivateKey(P)) = P (说明:使用私钥加密P,使用公钥解密出P ---- 电子签名)
并非所有公钥密码术都支持,RSA支持
HASH+公钥密码术:成就电子签名
1.RSA的低效率特性,导致即便是签名也不适合直接对原始信息进行签名
2.利用HASH先完成消息摘要和完整性鉴别的作用.
3.而后对简单的消息摘要进行基于公钥密码术的签名
4.签名一般附着于原始消息尾部或者头部一起发送
原始消息P
MD = HASH(P)
原始消息P + Signature = EprivateKey(MD) ---> Target
假如原数据P有1G,加密效率低,把原数据1G的数据P获取HASH值,
用私钥加密1G数据P的HASH值得到签名signature,发送数据的时候把1G数据P+签名signature
7.证书与PKI
证书的作用: 公钥的存储和交换
公钥作为一个字段存储于数字证书中
证书的交换和传输即可传输/交换公钥
利用签名来保护数字证书本身
数字时代的信任关系: 一个受信任者的证书列表
证书链和PKI
数字时代的信任链: 证书链
证书签名的不同点: 根证书自签名, 非根证书父签名
证书的限制:
约束
用途
有效期
PKI 公钥基础设施(Public Key Infrastructure)
基于证书的认证
基于可信任证书的认证方式被广泛的应用在现代安娜依斯领域,比如WIFI,HTTPS
在HTTPS中,典型的Client对Server的认证和鉴别基于可信任列表