《演算法图鉴》
安全性算法内容整理
传输数据会产生的四个主要问题
窃听(Eavesdrop):数据在传输时被第三方偷取。因此需要加密。
欺骗(Spoofing):第三方伪装成接收方接受数据,或伪装成发送方发送数据。用消息认证码和数字签名防范此问题。
篡改(Falsification):第三方在传输过程中改动数据。用消息认证码和数字签名防范此问题。
抵赖(Repudiation):发送方否认已发出的消息。用数字签名防范此问题。
哈希函数(Hash Function)
根据输入数据生成固定长度的不规则值(哈希码)的函数。
输入完全不同的数据时,有很低的概率得到相同的哈希码,发生哈希碰撞(Hash Collision)。
例如:MD5(Messege-Digest Algorithm 5),SHA-1(Secure Hash Algorithm 1),SHA-2(Secure Hash Algorithm 2,最普遍和安全)。
对称加密算法(共享密钥加密算法,Shared-Key Cryptosystem)
发送和接收方使用同一个密钥解密和加密。
例如:凯撒密码(Caesar cipher),AES(Advanced Encryption Standard),DES(Data Encryption Standard),一次性密码本(One-Time Pad)。
案例:英格玛(Enigma)。
意义和特点:易于设计,加密和解密的速度快。但有密钥被偷窥的风险,或者说密钥传输比较困难。
非对称加密算法(公开密钥加密算法,Public-Key Cryptosystem)
接收方设计一对加密公钥和解密私钥,将公钥公开,发送方使用公钥加密,接收方使用私钥解密。
例如:RSA,圆锥曲线密码(ECC,Elliptic-Curve Cryptosystem)。
案例:紫操学姐寻人帖(笑)。
意义和特点:设计困难,加密和解密更费时。
混合加密系统(Hybrid Cryptosystem)
接收方设计一对加密公钥A和解密私钥B,将A公开。发送方设计另一个密钥C,使用A公钥加密C后发送给接收方。接收方使用B解密得到C。
此后发送和接收方使用同一个密钥C解密和加密。
案例:SSL(Secure Sockets Layer),TLS(Transport Layer Security)。
意义和特点:解决非对称加密算法费时的问题。因此兼具安全性和处理速度。
迪菲-赫尔曼密钥交换(Diffie–Hellman Key Exchange)
A、B两方共享原始公钥P,分别设计私钥SA,SB。
根据公钥P,分别合成新的公钥P-SA,P-SB并直接发送给对方。
根据手上的私钥和新获得的公钥,A、B进一步合成密钥P-SB-SA,P-SA-SB。
密钥合成的方法要求合成结果与顺序无关,因此密钥P-SB-SA和P-SA-SB是等价的,都称为P-SA-SB。
现在双方可以用P-SA-SB为密钥实现非对称加密传输。而第三方根据公钥P,P-SA,P-SB无法合成密钥P-SA-SB。
例如:基于离散对数问题(Discrete Logarithm Problem)设计的密钥合成方法:
P为底数G和被除数Q(一个非常大的素数)。
SA为指数A。SB为指数B。
P-SA为G^A mod Q。P-SB为G^B mod Q。
P-SA-SB为(G^A mod Q)^B mod Q。
P-SB-SA为(G^B mod Q)^A mod Q。
P-SB-SA和P-SA-SB是等价的,而第三方根据P,P-SA,P-SB无法合成P-SA-SB。
意义和特点:解决对称加密算法密钥传输困难的问题。
消息认证码(Message Authentication Code,MAC)
MAC是对信息(在安全性算法中,信息是传输的密文)进行处理得到的认证码。MAC不包含原始内容,只是作为识别用。
在传输信息时也传输MAC进行核对以防篡改,
例如:HMAC(Hash-based MAC),OMAC(One-key MAC),CMAC(Cipher-based MAC)
数字签名(Digital Signature)
发送方设计一对加密私钥和解密公钥,将公钥公开,发送方使用私钥加密信息制作数字签名,接收方使用公钥解密验证数字签名。因此只有发送方能制作与信息相对应的合法的数字签名。
意义:防范欺骗、篡改和抵赖。
数字证书(Digital Certificate)
证书授权中心(Certificate Authority,CA)是独立于发送方和接收方的机构。它用于解决无法确认公钥是否为发送方发送的问题。
发送方A欲将原始信息P0(发送方设计的公钥)传送给接受方B前,首先在CA申请取得数字证书。CA设计与A的身份信息对应的一组加密私钥S1和解密公钥P1。CA用S1加密P0得到P0-S1,发送给A。A将P0-S1告知B。B再根据A的身份信息(电子邮件)从CA处获得公钥P1,用P1解密P0-S1得到A的原始信息P0。因第三方无法以A的身份信息向CA获得数字证书,因此它可以防止第三方伪装成A发送信息。
当发送方为网站时,证书即是服务器证书(Server Certificate)。
CA的真实性由上一层CA认证,因此CA呈现一种套娃的树状担保结构。最上层的根认证机构(Root CA)多为大企业或政府机关。这形成了公开密钥基础建设(Public Key Infrastructure,PKI)。
Ref
https://blog.csdn.net/baidu_22254181/article/details/82594072