week8:Security: Encrypting and Signing
(一)Hiding Data from Others(隐藏来自他人的数据)
1.Security Introduction(介绍)
- 术语
保密性:防止未经授权者查看私人信息
完整性:信息来自所信任的发送方,并且自发送以来没有被修改
明文:一种以秘密形式发送的消息
密文:是明文的一种转换版本,如果没有解密的方法,就无法被理解
2. Encryption and Confidentiality(加密和保密性)
- 术语
加密和解密:明文到密文的转换称为加密;密文返回到明文称为解密
密码系统的强度:由加密和解密技术以及密钥的长度决定
两种密码系统:秘钥系统和公钥系统
对称密钥系统:在密钥方案中,用于加密的密钥必须与用于解密的密钥相同
密钥系统问题:存在密钥安全分配给使用该密码系统的各方的问题
- 凯撒密码
凯撒密码是最简单和最广为人知的加密技术之一。它是一种替换密码,在这种密码中,明文中的每个字母都被替换为字母表中某些固定位置的字母
(二)Insuring Data Integrity(确保数据完整性)
- 密码散列
加密哈希函数是一个函数,它接受任意数据块并返回一个固定长度的(加密的)哈希值,对数据的任何改变都会更改哈希值。要编码的数据通常称为“消息”,散列值有时称为消息摘要或简单摘要。
- 用于密码的哈希
一般来说,系统不会将密码以纯文本形式存储在数据库中,这是为了防止数据丢失。当用户设置密码时,系统会计算散列并存储散列值。当用户每次登录时,系统会计算输入的密码的哈希值,并与存储在系统中的哈希值相比较,如果匹配,就允许登陆。这也是为什么系统只允许用户重置密码,而不直接将密码发送给用户。
- 数字签名
发送报文时,发送方用一个哈希函数从报文文本中生成报文摘要,然后用自己的私人密钥对这个摘要进行加密,这个加密后的摘要将作为报文的数字签名和报文一起发送给接收方,接收方首先用与发送方一样的哈希函数从接收到的原始报文中计算出报文摘要,接着再用发送方的公用密钥来对报文附加的数字签名进行解密,如果这两个摘要相同、那么接收方就能确认该数字签名是发送方的。
- 数字签名有两种功效
一是能确定消息确实是由发送方签名并发出来的,因为别人假冒不了发送方的签名。二是数字签名能确定消息的完整性。因为数字签名的特点是它代表了文件的特征,文件如果发生改变,数字摘要的值也将发生变化。不同的文件将得到不同的数字摘要。 一次数字签名涉及到一个哈希函数、发送者的公钥、发送者的私钥。
- 密钥的缺点
①通信双方都需要一个密钥
②在互联网中,密钥分发不能通过互联网进行,因为在获取密钥之前的通信是不安全的