密码学及其应用
密码学及其应用
本次分享主要讲两个部分一个是加密,另外一个是认证
1.密码
1.1 加密算法及其分类
根据秘钥的使用可以分为对称加密算法和非对称加密算法(也称公钥加密算法,以下都称非对称加密)
加密解密过程
当加***和解***一致时,被称为加密加密算法,常见的算法有AES、DES、3DES,其中AES加密算法是美国联邦*采用的加密标准。
当加***和解***不一致时,称为公钥加密算法。常见的算法有RSA、DSA、ECC,其中RSA是目前最有影响力的公钥加密算法,现已被ISO推荐为公钥加密标准。
1.2 对称加密加密原理
编码
将现实世界中的东西映射为比特序列,执行加密就是将明文的比特序列转换为密文的比特序列
异或
对同一个值异或两次还是原来的结果
对称算法特点
**管理:比较难,不适合互联网,一般用于内部系统
安全性:中
加密速度:快,适合大数据量的加解密处理
1.3 非对称加密算法过程
非对称算法特点
**管理:**容易管理
安全性:高
加密速度:比较慢,适合小数据量加解密或数据签名
2.认证
密码技术不仅能够提供机密性,还可以验证消息的完整性、认证功能。
2.1 单向散列函数-获得消息的指纹
单项散列函数有一个输出和一个输入,其中输入称为消息,输出称为散列值,把任意长的输入消息串变化成固定长的输出串且由输出串难以得到输入串的一种函数,常见函数有MD5(128b),SHA1(160b)。
单向散列函数
为了防止软件被篡改,有安全意识的软件发布者会在发布软件同时发布该软件的散列值,散列值就是通过单向散列函数计算出来的数值。单向散列函数说保证的并不是机密性而是完整性,完整性指的是数据是正牌的而不是伪造的,使用单向散列函数就可以检测出数据是否被篡改过。
单项散列函数
单项散列函数的性质
- 根据任意长度计算出固定长度的散列值
- 能够快速计算出散列值
- 消息不同,散列值也不同
- 具备单向性
2.2 消息认证码-消息被正确传送了吗
消息认证码(message authentication code)是一种确认完整性并进行认证的技术,其包括任意长度的消息和一个发送者与接收者之间共享的**,他可以输出固定长度的数据。
为了确认消息是否来自所期望的通信对象,可以使用消息认证码,消息认证码不仅能保证完整性,还能提供认证机制。
缺点无法防止否认,因为共享一个**的,消息双方都可以
2.3 数字签名-消息到底是谁写的
数字签名能够防止伪装、篡改和否认,是一种将现实世界中的签名和盖章移植到数字世界中。主要使用非对加密算法,使用私钥对数据进行签名,然后发送信息,然后接受方,那公布的公钥来验证,从而确认消息是不是由真正的发送方发送。
2.4 伪随机数-不可预测性的源泉
伪随机数生成器具有“内部状态“,并根据外部输入的”种子“来生成伪随机序列。