数据保密(data confidentiality)
对传输或存储在系统中的数据进行加密,保护数据的机密性意味着防止未经授权的数据读取
加密与解密(encryption and decryption)
使用保密的1对1映射(函数)f将明文m映射为密文c,即c = f(m)
为了从密文c中恢复明文m,将逆映射f-1应用于c,得到
f-1(c)= f-1(f(m))=(f-1f)(m)= m, 这被称为解密。
举例:
对按顺序排列的英文字母a,b,c,d,...,w,x,y,z定义1对1映射f
f(x)= “x之后的第三个字母” (其中x,y,z之后的第三个字母分别为。 a,b,c)
明文“kill”被加密得到:f(kill)= f(k)f(i)f(l)f(l)= nloo
数据验证(integrity)
数据认证(完整性):对于传输数据或存储在存储系统中,可能会发生以下情况:
•可以由未经授权的人员修改。
•未经授权的人员可以用其他数据替换。
问题:我们如何防止未经授权的修改我们的数据? 答:访问控制机制。
问题:我们如何检测数据的修改和更换? 答案:稍后将介绍的数据完整性机制。
发件人和接收方的验证
问题:如果您收到了一封带有发件人X的邮件,那么您如何确定发件人确实是X?
问题:如果您向接收者Y发送了一条消息,您怎么能确定接收者确实收到了该消息?
备注:稍后将介绍用于认证消息发送方和接收方的详细技术。
不可否认性
备注:如果我给你写了一封信,说如果你为我完成这份工作,我会付给你10万美元,我不能否认这个提议,因为我必须在这封信上签字。
问题:如果我给你发了一封电子邮件,命令你杀死一个人,但后来否认我向你发送了这个消息,你怎么能证明我确实向你发了这个消息?
解决方案:数字签名(稍后介绍)。
秘密分享
问题:父亲把很多宝藏放在一个带电子钥匙k的安全房间里。 他有三个儿子,让三个儿子以某种方式分享电子钥匙,以满足以下条件:
(1)他的每个儿子都有一个拆分的密钥(可以是一个数字),它不会给出任何关于k的信息。
(2)任意两个密钥的组合也无法得出关于k的任何信息。
(3)只有所有的三个儿子和他们的密钥结合在一起,才能够完整的恢复k。
父亲如何设计一个共享电子钥匙的系统?
加密协议
问题:银行的电子资金转帐系统,在发生交易时执行以下操作:
“数据完整性检查,消息认证,发送方和接收方认证,以及交易的不可否认验证”
假设你有一个算法来执行上面的每个作业。 你如何组合这些算法使它们整体工作?
解决方案:通过密码协议。
总结(密码学的主题):
•数据机密性(加密和解密算法的设计和分析)
•数据,数据发送器和数据接收器的认证(数据的完整性)
•不可否认性
•秘密分享
•密码协议