1.算法与密钥。(规则就是算法,可公开验证)
2.对称加密(两端密钥是一样的,share key )规则算法就只有置换,转置(矩阵的行列转换),乘积来产生share key。
公认的DES,AES。
3.非对称加密(密钥不一样,加密端用的是public key,解密端用的是private key)。
公开密钥算法两大数学基础基础:分解大质数(素数)的困难度(两个很大的质数相乘得到一个更大的质数,反过来只知道大质数是很难分解出两个质数),大素数为摸来计算离散对数的困难度。
公认的RSA算法。
4.密钥交换(对称加密效率高,实时用得多):
1)密钥周期性产生,再通过非对称加密来传输交换。
2)Diffie-Hellman密钥交换协议:
双方各自选定key,然后以一定算法变换(使得key不以明文传输)后传输给对方
双方利用对方交换来的数据和自己选定的key做变换,获得一个一致的结果,作为会话密钥share key
5.Hash翻译成散列或者哈希
定义:变长的输入变换成定长的输出。常见的MD5(128bit),SHA1(160bit)。
特点:
易变性:即便原始信息发生1bit的变化,HASH的输出将会有不可预知的巨大变化。(有唯一性的效果,也成为消息指纹,信息摘要,用于校验唯一,完整性的场景如下载等)
不可逆:通过HASH结果构造出满足的输入信息是不可能的或者及其困难的。(用于登陆密码隐藏传输)
HMAC就是使用Key对原始消息变换后再进行HASH
6.电子签名保证数据完整性跟不可否定性。
原理:非对称加密的使用,A端用private key加密,其他端用公开的public key解密后文件一样,说明一定是A端确认后的,既有签名的效果,所以是电子签名。
场景:RSA可以用于电子签名,但是因为效率太低,一般是Hash+公钥密码技术来作做电子签名。例如
A端:
利用Hash先完成消息摘要和完整性鉴别的作用
而后对简单的消息摘要进行基于公钥密码术的签名private key
签名一般附着于原始消息尾部或者头部一起发送
另一端:
原始消息利用Hash生成消息摘要
消息摘要通过public key解密
比较自己生成的消息摘要跟解密后的消息摘要
7,电子证书就是存放public key的一份特定格式文件。通过电子签名来保证不被串改。是现代信任的基石。有官方机构发布证书,这些证书被称为根证书,根证书采用自签名,根证书信任其他证书形成证书链,非根证书父签名。证书很多使用规范,使用期限等等。