密码学 · 安全性

快手 数据安全
熟悉常见对称、非对称加密、哈希算法原理和实现;
具有SQL、看板以及Python编程实现能力及经验优先;

基本密码学

【1】 常见三种加密(MD5、非对称加密,对称加密)

(一) 对称加密:DES, 3DES, AES

简介: 又称传统加密算法。 加解密使用同一个密钥。
优点: 算法公开,计算量小,加密速度快,效率高。
缺点:双方使用相同的钥匙,安全性得不到保证。
注意事项:密钥的保密工作非常重要,密钥要求定期更换。

经典加密算法有三种:

  1. DES(Data Encryption Standard):数据加密标准(现在用的比较少,因为它的加密强度不够,能够暴力破解)
  2. 3DES:原理和DES几乎是一样的,只是使用3个密钥,对相同的数据执行三次加密,增强加密强度。(缺点:要维护3个密钥,大大增加了维护成本)
  3. AES(Advanced Encryption Standard):高级加密标准,目前美国国家安全局使用的,苹果的钥匙串访问采用的就AES加密。是现在公认的最安全的加密方式,是对称密钥加密中最流行的算法。

加密模式

【1】AES五种加密模式(ECB、CBC、CTR、OCF、CFB)

只要是对称加密都有 ECB和 CBC模式,加密模式是加密过程对独立数据块的处理。对于较长的明文进行加密需要进行分块加密,在实际开发中,推荐使用CBC的,ECB的要少用。
.
ECB :电子密码本,就是每个块都是独立加密
CBC:密码块链,使用一个密钥和一个初始化向量(IV)对数据执行加密转换
.
ECB CBC

(二)非对称加密

RSA基于分解两个大素数的乘积,大数分解问题;
数字签名算法DSA和椭圆曲线签名算法ECDSA是基于离散对数难题。

(三)哈希算法

1. MD5加密

MD5加密的特点:

不可逆运算
对不同的数据加密的结果是定长的32位字符(不管文件多大都一样)
对相同的数据加密,得到的结果是一样的(也就是复制)。
抗修改性 : 信息“指纹”,对原数据进行任何改动,哪怕只修改一个字节,所得到的 MD5 值都有很大区别.
弱抗碰撞 : 已知原数据和其 MD5 值,想找到一个具有相同 MD5 值的数据(即伪造数据)是非常困难的.
强抗碰撞: 想找到两个不同数据,使他们具有相同的 MD5 值,是非常困难的
MD5 应用:

一致性验证:MD5将整个文件当做一个大文本信息,通过不可逆的字符串变换算法,产生一个唯一的MD5信息摘要,就像每个人都有自己独一无二的指纹,MD5对任何文件产生一个独一无二的数字指纹。

2. 加“盐”

3. SHA加密

安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准(Digital Signature Standard DSS)里面定义的数字签名算法(Digital Signature Algorithm DSA)。对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要。当接收到消息的时候,这个消息摘要可以用来验证数据的完整性。在传输的过程中,数据很可能会发生变化,那么这时候就会产生不同的消息摘要。除了SHA1还有SHA256以及SHA512等。

SHA1有如下特性:不可以从消息摘要中复原信息;两个不同的消息不会产生同样的消息摘要。

4. HMAC加密

HMAC:给定一个密钥,对明文加密,做两次“散列”,得到的结果还是32为字符串。在实际开发中,密钥是服务器生成,客户端发送请求会拿到KEY。一个账号对应一个KEY。

安全性证明

可证明安全
存在性不可伪造(EU-CMA)与强不可伪造(SU-CMA)
密码学安全性证明中的挑战者和攻击者
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Sopykl/article/details/122358800