常用¶
美国四大 CS 名校 MIT 的计算机课程介绍(内附官方教程链接): https://zhuanlan.zhihu.com/p/390868049
MIT 6.875 (Cryptography), Spring 2018: https://www.bilibili.com/video/av840129523
<A Graduate Course in Applied Cryptography>
伍伦贡大学 CSCI968: 高级网络安全 (Advanced Network Security): https://www.bilibili.com/video/BV1334y1J7aR
密码协议 4 Authenticated key exchange: https://cloud.tencent.com/developer/article/1682649
密码学:
* 块加密算法 block cipher: AES, Serpent,
* 流加密算法 stream cipher: RC4,ChaCha20
* Hash 函数 hash funtion:MD5,sha1,sha256,sha512 , ripemd 160,poly1305
* 消息验证码函数 message authentication code: HMAC-sha256,AEAD
* 密钥交换 key exchange: DH,ECDH,RSA,PFS 方式的(DHE,ECDHE)
* 公钥加密 public-key encryption: RSA,rabin-williams
* 数字签名算法 signature algorithm:RSA,DSA,ECDSA (secp256r1 , ed25519)
* 密码衍生函数 key derivation function: TLS-12-PRF (SHA-256) , bcrypto,scrypto,pbkdf2
* 随机数生成器 random number generators: /dev/urandom
历史:
密码
恺撒密码(Caesar cipher)
简单替换密码
Enigma: 二战、德国
破译密码
暴力攻击
频率分析
一次性密码本:
无法破译
即便能解密出有意义的句子也无法判断是否是正确明文
1917年维纳(G.S. Vernam)
香农(C.E. Shannon)1949年用数学方法证明无法破译
无条件安全(unconditionally secure)
理论无法破译(theoretically unbreakable)
发展
只有超机密的场合才用(成本太高)
思路孕育出流密码(stream cipher)
攻击手段:
中间人攻击(man-in-the-middle attack)
选择密文攻击(Chosen Ciphertext Attack)
RSA-OAEP(Optimal Asymmetric Encryption Padding)
最优非对称加密填充
密码强度:
256bit 的 AES 与15360bit的 RSA 具有均衡的强度
NIST 密码强度比较表
密码劣化
技术进步导致之前安全的密码被破译
其他密码组:
电子投票
盲签名(blind signature)
在不知道内容的情况下签名
前/后向安全:
前向安全(Forward Secrecy, FS)
强前向安全 (Strong Backward Secrecy): 后面进来的人即时知道之前的信息,但是无法解密。
弱前向安全 (Weak Backward Secrecy): 后面进来的人完全不知道之前有过什么信息。
完美前向保密(perfect forward secrecy)
后向安全(Backward Secrecy, BS)
强后向安全 (Strong Forward Secrecy): 前面进来的人,虽然能获取信息,但是无法解密。
弱后向安全 (Weak Forward Secrecy): 前面进来的人,无法获知后面发出的信息。
TLS实现前向安全的密钥交换
理论: 一组密钥对长期保留,仅用于签名与校验;生成临时密钥对用于密钥交换,临时密钥对用后销毁
总结:
密钥是机密性的精华
散列值是完整性的精华
认证符号(MAC 值和签名)是认证的精华
种子是不可预测的精华
安全通信的几个核心:
数据保密性(message privacy)message privacy)
数据完整性(message integrity)
身份认证(mutual authentication)
Data origin authentication
抗抵赖性
同态加密:
同态加密(Homomorphic Encryption)是一种特殊的加密方法,允许对密文进行处理得到仍然是加密的结果,
即对密文直接进行处理,跟对明文进行处理再加密,得到的结果相同
从代数的角度讲,即同态性。
1. 同态性在代数上包括:加法同态、乘法同态、减法同态和除法同态。
2. 同时满足加法同态和乘法同态,则意味着是 代数同态,即 全同态。
3. 同时满足四种同态性,则被称为 算数同态。
* 仅满足加法同态的算法包括 Paillier 和 Benaloh 算法;
* 仅满足乘法同态的算法包括 RSA 和 ElGamal 算法。
参考¶
https://blog.csdn.net/mrpre/category_9270159.html