密码技术现今应用
Posted 想富贵的张大发
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了密码技术现今应用相关的知识,希望对你有一定的参考价值。
目录
对称密钥体制(共享密钥密码体制)-用相同的密钥进行加密和解密
密码技术的最基本的操作是伪装信息。
在现实世界出现了很多种类的密码技术,但是经过时间的冲刷,其中以下六种发挥着尤其重要的作用。
1,对称密码。2,公钥密码。3,单向散列函数。4,消息认证码。5,数字签名。6,伪随机数生成器。
密码系统通常由五部分组成:1,消息空间。2,密文空间。3,密钥空间。4,加密算法。5,解密算法。
对称密钥体制(共享密钥密码体制)-用相同的密钥进行加密和解密
基本思想:就是将加密的数据转化为比特数列,也就能对其进行加密。使用相同的密钥进行加密与解密。(注:密码学中应遵循公开设计的原则,即密钥体制的安全应依赖于对密钥的保存,而不应依赖于对算法的保存,只有在算法公开的条件下依然可以保证密钥的安全,才是可取的,这就是密码学著名的柯克霍夫原则。因为我这里只做简介,所以不介绍加密算法和基本流程。)
优点:加解密处理速度快。
缺点:1.密钥管理与分发复杂,代价高。2,不能提供抗抵赖服务。
公钥密码体制(非对称密码)-用公钥加密,用私钥解密
基本思想:将对称密码的密钥分为加密密钥和解密密钥,用加密密钥控制加密,用解密密钥控制解密,而且有计算复杂性确保由加密密钥在计算上不能推出解密密钥。即使加密秘钥公开也不会暴露解密密钥。所以加密密钥是公开的,叫做公钥。只有解密密钥是保密的,叫做私钥。
缺点:密钥管理困难。
单项散列函数-获取消息的指纹
基本思想;它是一种单向密码体制,即一个从明文到密文不可逆映射,只有加密过程,没有解密过程。有一个输入和一个输出,其中输入的为消息,输出的为散列值。
目的:单向散列函数可以根据消息的内容计算出散列值,而散列值可以用来确认文件完整性。
性质:
- 压缩:输出的散列值是固定长度的。
- 易计算:根据给定的消息可以快速计算其散列值。
- 单向性:根据散列值求消息,在计算上是不可行的。
- 弱抗碰撞性:要找出和该条消息具有相同散列值的另外一条消息是非常困难的。
- 高灵敏性:当消息一个输入位发生变化时,输出位将有一半以上会发生变化,这一特性被称为雪崩效应。
应用:
- 检测软件是否被篡改。
- 基于口令的加密。
- 消息认证码。
- 数字签名。
- 伪随机数生成器。
- 一次性口令。
消息认证-消息被正确传输了吗
消息认证是指验证所收到的消息确实来自真正的发送方,并且未被篡改的过程。
基本思想:把消息认证的功能看做两层。上层协议中将该函数作为原语使接收方可以验证消息的真实性。下层中有某种产生消息认证码的函数,消息认证码是用来一个用来认证消息的值。
如果很粗浅的认识那么消息认证码就是一种与密钥相关联的单向散列函数。
实际上产生认证码的函数类型通常有3类:
- 消息加密:整个消息的密文作为认证码。
- 消息认证码(MAC):它利用密钥对消息产生定长的值,并以该值作为认证码。
- 单向散列函数;它将任意长的消息映射为定长的散列值。并以该散列值作为认证码。
对付下列攻击:
- 伪装:欺诈源向网络中插入一条伪造的消息。
- 内容修改:对消息内容的修改,包括插入,删除,转换和修改。
- 顺序修改:对通信双方消息顺序的修改,包括插入,删除和重新排序。
- 计时修改:对消息的延时与发送。
数字签名-消息到底是谁写的
基本思想:数字签名是一种相当于现实世界中的盖章,签字的功能在计算机世界进行实现的技术。
为什么有了认证码还要有数字签名?
答:认证码可以识别消息是否被篡改或者发送者身份是否被伪装,也就是可以验证消息的完整性,还可以对消息进行认证。但是认证码具有局限性。在认证码中发送与接收二者共享一个密钥。对于第三方来讲,无法证明消息是否是发送者发送的,也有可能是接收者生成的。
于是,在数字签名中便有两种行为,
- 生成消息签名的行为
- 验证消息签名的行为
但是,签名密钥只能由 签名的人持有,而验证密钥则是任何需要验证签名的人都可以持有。
随机数-不可预测性的源泉
随机数生成器的基本思想:随机数可以通过硬件生成,也可以通过软件生成。
- 通过硬件生成的随机数列,是根据传感器收集的热量,声音的变化等事实上无法预测和重现的自然现象信息来生成的。像这样的设备就是随机数生成器。
- 可以生成随机数的软件则是伪随机数生成器,因为紧靠软件无法生成真随机数。
随机数具有的性质:
- 随机性:简单说是杂乱无章的性质。但是杂乱无章并不意味不会被看穿(线性同余法)。
- 不可预测性:指攻击者在知道过去生成的随机数列的前提下,依然无法预测出下一个生成出来的随机数。
- 不可重现性:除了保存,没有办法重现该数列。
这就是六种技术在应用中仍发挥着尤其重要的作用。
1,对称密码。2,公钥密码。3,单向散列函数。4,消息认证码。5,数字签名。6,伪随机数生成器。
后面会逐渐拿出一些例子仔细讲解一些加密算法。
以上是关于密码技术现今应用的主要内容,如果未能解决你的问题,请参考以下文章