密码前置概念
发送者、接受者、窃听者
sender、receiver、eavesdropper
为了防止被窃听,所以引出了加密与解密
加密与解密
加密(encrypt)、明文(plaintext)、密文(ciphertext)
如果再被窃听,窃听者只能得到密文
密码保证了消息的机密性
密码(cryptography)、机密性(confidentiality)
上述场景中,A将邮件加密,B进行解密,这样做的目的是不让E读取邮件内容。
A与B用密码技术保证了邮件的机密性。
破译
对称密码与公钥密码
密码算法
算法:用于解决复杂问题的步骤,通常称为算法(algorithm)
从明文生成密文的步骤,称为加密算法,而解密的步骤称之为解密算法,加密和解密算法结合在一起称为密码算法
密钥
对称密码与公钥密码
对称密码(symnetruc cryptography)
是指的在加密和解密的时候使用同一密钥的方式
公钥密码(public-key crypto)
是指在加密和解密的时候时候不同的密钥的方式,因此公钥密码又称为非对称密码
混合密码体系
将对称密码与非对称密码结合起来的密码方式称为混合密码系统 hybrid crypto。这种密码结合了两者的优势。
其他密码技术
密码技术所提供的并不仅仅是基于密码的机密性,还有用于检验消息是否被篡改的完整性、以及用于确认对方是否是本人的认证。
单项散列函数
散列值(hash)又称hash、密码校验和(cryprographic checksum)、指纹(fingerprint)、消息摘要(message digest)
互联网提供许多免费的软件下载,有安全意识的软件发布者会在发布软件的同时发布该软件的散列值。散列值就是用单项散列函数(one-way hash function)计算出来的数值。
下载该软件的人可以自行计算该软件的hash,然后与软件发布者发布的hash进行对比。如果一致,则说明下载的文件是与发布者相同的。
单项散列函数是一种保证完整性的密码技术。完整性就是指的数据是正牌而不是伪造的。使用单项散列函数,就可以检测数据是否被篡改过。
消息认证码
为了确认消息是否来自所期望的通信对象,可以使用消息认证码技术(message authentication code)
使用消息认证码,不仅能确认消息是否被篡改,还能确认消息是否来自所期望的通信对象。也就是说消息认证码不仅能保证完整性,还能提供认证(authentication)机制。
数字签名
数字签名是一种能够确保完整性、提供认证并防止否认的密码技术。