基础概念
对称密码与公钥密码
- 对称密码:对称密码是指加密和解密时使用同一密钥的加密方式,对称密码又称公共密钥密码、传统密码、私钥密码、共享密钥密码等等。
- 公钥密码:公钥密码是指加密和解密使用不同的密钥的加密方式,因此也被称为非对称密码
对面密码和公钥密码结合起来的方式称为混合密码系统
其他密码技术
- 单向散列函数:为了防止软件被篡改,软件开发者会在发布软件时同时公布该软件的散列值,该值就是使用单向散列函数求出来的。下载者可以根据单向散列函数重新计算软件的散列值,若相同则表示软件没有被篡改。常用的单向散列函数有MD5、SHA等。单向散列函数保证了数据的完整性,即数据不被篡改。
- 消息认证码:消息认证码可以确认消息是否来在所期待的通信对象。可以简单理解为消息认证码是一种与密钥相关的单向散列函数,并且输出固定长度的数据,称为MAC值。
- 数字签名:数字签名类似于现实世界中的签字/公章,发送方可以给发送的信息加上数字签名,然后接收方对数字签名进行验证,来确定发送者的身份。
- 伪随机数生成器:伪随机数的生成算法好坏与密钥强度有着极大的关系。有时密钥是通过伪随机数生成器生成的,对于好的伪随机数算法,要推测出密钥是不容易的。
信息安全面临的威胁与密码技术
- 机密性受到威胁:典型情况是信息被窃听。可以通过信息加密来解决该问题,即对称密码和公钥密码技术。
- 完整性受到威胁:典型情况是程序/信息被篡改。可以通过单向散列函数、消息验证码、数字前面来解决。
- 认证收到威胁:典型情况是攻击者伪装成发送者。可以通过消息验证码和数字签名来解决。
- 不可否认性受到威胁:典型情况是发送者否认自己曾经发送过某些信息。可以通过数字签名解决。
隐写术
隐写术的目的是为了隐藏消息本身,例如藏头诗。密码技术的目的是为了隐藏消息的内容,但消息依旧暴露在攻击者面前。而隐写术的目的是为了让攻击者看不到消息本身。
现实中的数字水印技术就是运用了隐写术方法。常常会将隐写术与密码学技术相结合使用。