研究如何对明文进行编码加密
研究如何破译密码
不要使用保密的密码算法。
信息被加密 != 安全强度高,人们容易通过密码这个词获得一种错误的安全感,意识深处会放弃警惕性
一次性密码本除外
加密和解密时采用同一密钥
非对称加密算法需要两个密钥:公开密钥和私有密钥。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密
由已知公钥推导出私钥在计算上不可行
保证的不是数据的机密性,而是数据的不可篡改性
算法 | 散列长度,bit | 输入长度 | |
---|---|---|---|
MD4 (Message Digest 4) | 128 | 已破解 | |
MD5 | 128 | 已破解 | |
SHA-1 | 160 | $2^{64} = 2048 \text{ PB}$ | 谨慎使用,不推荐 |
SHA2 (SHA-224) | 224 (32*8 - 32) | $2^{64}$ | - 32 表示截去 32 bit,下同 |
SHA2 (SHA-256) | 256 (32*8) | 同上 | |
SHA2 (SHA-512/224) | 224 (64*8 - 288) | 同上 | |
SHA2 (SHA-512/256) | 256 (64*8 - 256) | 同上 | |
SHA2 (SHA-384) | 384 (64*8 - 128) | $2^{128}$ | |
SHA2 (SHA-512) | 512 | 同上 | |
SHA-3 | 无限制 | ||
RIPEMD-128 | 已破解 | ||
RIPEMD-160 | 谨慎使用,是比特币采用的 | ||
RIPEMD-256 | |||
RIPEMD-320 |
消息认证码(Message Authentication Code),简写为 MAC。发送方与接收方共享密钥,通过该共享密钥对计算 MAC 值。
单向散列可以解决篡改的问题,但消息是来自可信一方,还是来自伪装者,却无法解决。伪装者完全可以发送有害的信息和该信息的散列,而接受者却无法分辨。 消息认证码技术可以解决此类问题
MAC 实现的关键,是获得一串需要与共享密钥相关而且足够有区分度的串。因此,可以通过多种方式获得 MAC 值,如单向散列、分组密码截取最后一组作为 MAC 值、流密码、非对称加密等。
非对称加密
接收方无法确认收到的公钥是签名方私钥所对应的公钥
接收方可能会使用攻击者的公钥,接收攻击者私钥签名的信息
证书是对数字签名所发布的公钥进行权威的认证。证书可以有效地避免中间人攻击的问题。
Public-Key Certificate,公钥证书,简称证书。
Certification Authority,认证机构。对证书进行管理,负责:
生成密钥对
Registration Authority 注册机构 ,负责注册公钥和身份认证的
Public-Key Infrastructure,公钥基础设施,是为了更高效地运用公钥而制定的一系列规范和规 格的总称。比较著名的有PKCS(Public-Key Cryptography Standards,公钥密码标准,由 RSA 公司制定)、X.509 等。PKI 是由使用者、认证机构 CA、仓库(保存证书的数据库)组成。
Certificate Revocation List 证书作废清单,是 CA 宣布作废的证书一览表,会带有 CA 的数字签名。一般由处理证书的软件更新 CRL 表,并查询证书是否有效。
本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议(CC BY-NC-ND 4.0)进行许可。
This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License (CC BY-NC-ND 4.0).