信息安全的目标之中有一个完整性.
完整性:是指信息不被非法篡改,
针对完整性,有一种函数:哈希函数,
哈希函数的特点是:
1.单向密码体制,只有从明文到密文的映射,而不会有对应
的逆映射,也就是说只有加密的过程,不存在解密.
2.输出是固定长度的密文.无论明文的长度是多少,输出的
密文都是固定长度的.
哈希函数数学表达式: h=H(M)
h: 密文, H():哈希函数 M:明文
归纳总结下哈希函数的特点:
1.单向性:只有加密的过程
2.压缩性:无论明文长度如何,产生的都是固定长度的密文
3.容易计算:哈希函数的计算是比较容易的
4.弱抗碰撞性:存在一个明文Q,不可能找出另外一个明文
W,使得两者的哈希值一样.
5.强抗碰撞性:要想找出任意一对QW明文,使得它们的哈希
值一样,在计算上是不可能的.
哈希函数实际的算法:
①MD5 ② SHA
MD5是 128位的 SHA是160位的
哈希函数的实际应用有哪些:
1.保证信息的完整性,正如上文所说的.举个例子,一个网
站,网站管理员每日的工作中怎么知道自己这个网站的每
一个文件有没有被别人修改,哪怕是一个名字的修改.
具体做法是:我们可以先对本来的网站做一个哈希函数计
算,产生一个密文,也就是摘要,然后,以后的每一日的工作
时候,只需要再对当时的网站做一个哈希函数计算,产生摘
要,然后对比两份不同时候产生的摘要,看看是否有区别,
便可以知道网站有没有被修改.这个有实际的产品:例如网
站卫士.
2.用来做数字签名.后面再详细讲解.
3.用于口令的保存和传输:例如我们在网站登录的账号和
密码.我们可以先计算哈希值,再把哈希值传输过去服务端
,服务端比较哈希值,若相同,则可以成功登录,不同,则返
回.这样做的好处是:在网络传输的时候不传输明文,而是
消息摘要,就算被截取了,也无法知晓明文是什么咚咚,而
且在服务器存储的也不是明文,而是明文的摘要,这样子就
算网站管理人也不知晓明文是什么,降低了风险.但是这个
模型不可抵抗重放攻击,为抵抗重放攻击,可以有进一步的
优化,就是在原基础之上,增加一个质询,也就是我们平时
登录的验证码.
接下来,是认证.
认证分为 实体认证 和 消息认证.
消息认证 分为: 消息源认证 和 消息的完整性认证
消息源认证是指认证消息的来源是真实的,不是伪造的.
消息的完整性认证是指消息的传输过程中没有遭到破坏.
关于消息认证 有个东西 叫作 消息认证码(MAC)
消息认证码 就是在 哈希函数的基础上加多一个密钥.
这样做的好处是:一来利用哈希函数实现消息的完整性验
证. 二来利用密钥实现消息源的认证.
消息认证的模型:
发送方: 将消息在密钥K的基础下计算哈希值,生成认证
码,将消息和认证码一同发送.
接收方: 收到消息和认证码之后,将消息在密钥K的基础下
同样计算一遍哈希值,再将哈希值跟收到的认证码比较,若
是相同,则消息无误.
那么问题来了:消息认证既包括消息的完整性认证,也认证了消息的来源,那么 消息认证 和 实体认证有什么不同呢?
完整性:是指信息不被非法篡改,
针对完整性,有一种函数:哈希函数,
哈希函数的特点是:
1.单向密码体制,只有从明文到密文的映射,而不会有对应
的逆映射,也就是说只有加密的过程,不存在解密.
2.输出是固定长度的密文.无论明文的长度是多少,输出的
密文都是固定长度的.
哈希函数数学表达式: h=H(M)
h: 密文, H():哈希函数 M:明文
归纳总结下哈希函数的特点:
1.单向性:只有加密的过程
2.压缩性:无论明文长度如何,产生的都是固定长度的密文
3.容易计算:哈希函数的计算是比较容易的
4.弱抗碰撞性:存在一个明文Q,不可能找出另外一个明文
W,使得两者的哈希值一样.
5.强抗碰撞性:要想找出任意一对QW明文,使得它们的哈希
值一样,在计算上是不可能的.
哈希函数实际的算法:
①MD5 ② SHA
MD5是 128位的 SHA是160位的
哈希函数的实际应用有哪些:
1.保证信息的完整性,正如上文所说的.举个例子,一个网
站,网站管理员每日的工作中怎么知道自己这个网站的每
一个文件有没有被别人修改,哪怕是一个名字的修改.
具体做法是:我们可以先对本来的网站做一个哈希函数计
算,产生一个密文,也就是摘要,然后,以后的每一日的工作
时候,只需要再对当时的网站做一个哈希函数计算,产生摘
要,然后对比两份不同时候产生的摘要,看看是否有区别,
便可以知道网站有没有被修改.这个有实际的产品:例如网
站卫士.
2.用来做数字签名.后面再详细讲解.
3.用于口令的保存和传输:例如我们在网站登录的账号和
密码.我们可以先计算哈希值,再把哈希值传输过去服务端
,服务端比较哈希值,若相同,则可以成功登录,不同,则返
回.这样做的好处是:在网络传输的时候不传输明文,而是
消息摘要,就算被截取了,也无法知晓明文是什么咚咚,而
且在服务器存储的也不是明文,而是明文的摘要,这样子就
算网站管理人也不知晓明文是什么,降低了风险.但是这个
模型不可抵抗重放攻击,为抵抗重放攻击,可以有进一步的
优化,就是在原基础之上,增加一个质询,也就是我们平时
登录的验证码.
接下来,是认证.
认证分为 实体认证 和 消息认证.
消息认证 分为: 消息源认证 和 消息的完整性认证
消息源认证是指认证消息的来源是真实的,不是伪造的.
消息的完整性认证是指消息的传输过程中没有遭到破坏.
关于消息认证 有个东西 叫作 消息认证码(MAC)
消息认证码 就是在 哈希函数的基础上加多一个密钥.
这样做的好处是:一来利用哈希函数实现消息的完整性验
证. 二来利用密钥实现消息源的认证.
消息认证的模型:
发送方: 将消息在密钥K的基础下计算哈希值,生成认证
码,将消息和认证码一同发送.
接收方: 收到消息和认证码之后,将消息在密钥K的基础下
同样计算一遍哈希值,再将哈希值跟收到的认证码比较,若
是相同,则消息无误.
那么问题来了:消息认证既包括消息的完整性认证,也认证了消息的来源,那么 消息认证 和 实体认证有什么不同呢?