加密算法E、密文C、用同一密钥加密的一个或多个明密文对 |
加密算法E、密文C、分析者选择的明文及对应的密文 |
加密算法E、密文C、分析者选择的一些密文及对应的明文 |
无论有多少可使用的密文,都不足以唯一地确定密文所对对应的明文;在一次一密中,密钥长度大于等于明文的长度,一个密钥仅使用一次
代替技术是把明文字母替换成其他字母、数字或符号的方法
置换只是明文的序列发生了变化
1. 加密算法的使用者应挑选具有以下标准的算法:
破译密码的代价超出密文信息的价值
破译密码的时间超出密文信息的有效生命期
2. 计算安全:攻击者具有有限的计算资源、此时密钥长度可以小于明文长度,并且可以长期使用
3. 一个好的加密算法至少要抵御前三种攻击方式
流密码每次加密数据流的一位或一个字节,古典的流密码密钥有Vigenre密码
分组密码是将一个明文分组作为整体加密并且通常得到的是与明文等长的密文分组
Fesitel交替使用代替和置换技术(实际上是混淆和扩散的实际应用)
扩散:使明文的统计特性消失在密文中(明文有一个比特的变化,将会引起50%的密文比特发生变化)
混淆:使密钥的统计特性消失在密文中(密钥有一个比特的变化,将会引起50%的密文比特发生变化)
Feistel结构的具体实现依赖于以下参数和特征
- 分组长度:分组越长意味着安全性更高,但是会降低加解密速度,安全性的提高源于更好的扩散性
- 密钥长度:密钥较长意味着安全性更高,但会降低加解密速度,安全性的提高源于更好的混淆性
- 迭代轮数:Feistel密码的本质在于单轮不能提供足够的安全性而多轮加密可取得很高的安全性,轮数典型值是16
- 子密钥产生算法:子密钥产生越复杂,密码分析越困难
- 轮函数F:轮函数越复杂,抗攻击能力越强
- 经典的Feistel结构:数据分组中的一半被用于修改数据的另一半,然后交换这两部分
输入:明文和密钥,明文长64位,密钥长64位(其中有效的长度是56位,其余8位用作奇偶校验位或随意设置)
雪崩效应:明文或密钥的微小改变造成密文的巨大改变
安全性:DES的安全性依赖于:密钥长度、迭代轮数、轮函数F的强度
单轮AES变换:三个代替和一个置换:字节代替、行移位、列混淆、轮密钥加
加密轮数:10轮、12轮和14轮(对于不同的密钥长度)
GF(28)域上的逆元求解,最终效果是形成良好的雪崩效应
- 行移位构成了置换算法,加速雪崩效应
- 列混淆使一个输入与多个输出相关
- 轮密钥再异或,使得输出与下一轮输入一体化
- 三代替一置换的结构形成了良好的乘积结构,具有良好的混淆扩散效果
优点:安全性高,密钥长度足够长,经过实践的充分检验、兼容性好、国际组织和我国的银行机构都认可3-DES;
用相同的密钥分别对明文分组独立加密 | 单个数据的安全传输(如一个加密密钥) |
加密算法的输入是上一个密文组和下一个明文组的异或 | 面向分组的通用传输、认证 |
一次处理s位,上一块密文作为加密算法的输入,产生的伪随机数输出与明文异或作为下一单元的密文 | 面向数据流的通用传输、认证 |
与CFB类似,只是加密算法的输入是上一次加密的输出,且使用整个分组 | 噪声信道上的数据流传输(如卫星通信) |
每个明文分组都与一个经过加密计数器相异或,对每个后续分组计数器递增 | 面向分组的通用数据传输、用于高速需求 |
用对称密码进行密钥分配需要①通行双方已经共享一个密钥,该密钥已经通过某种方法分配给通信双方;②利用密钥分配中心
公钥算法依赖于一个加密密钥和一个与之不相关的不同的解密密钥,这些算法都满足:
①仅根据密码算法和加密密钥来确定解密密钥在计算上是不可行的
②两个密钥之间的任意一个都可以用来加密或解密
公钥密码体制的六个组成部分:明文、加密算法、公钥和私钥、密文、解密算法
一般要求:①加密和解密使用相同的密钥和相同的算法②收发双方必须共享密钥 | 一般要求:①同一算法用于加密和解密,但加解密使用不同的密钥②发送方拥有加密或解密密钥,接收方有另一密钥 |
安全性要求:①密钥必须是保密的②若没有其他信息,则解密消息是不可行的③若知道算法和若干密文不足以确定密钥 | 安全性要求:①两个密钥之一必须是保密的②若没有其他信息,解密消息是不可行的③知道算法和其中一个密钥及若干密文不足以确定另一密钥 |
中间人Darth拦截Alice向Bob发送的公钥,将自己的公钥发送给Alice,建立连接,伪造了Bob的身份,同Bob也类似,原因在于密钥交换协议没有对通信的参与方进行身份认证,可以通过使用数字签名和公钥证书来克服
消息认证是用来验证消息完整性的一种机制或服务,当hash函数用于提供消息认证功能时,hash函数的值通常称为消息摘要
消息中使用hash函数的本质:发送者根据待发送的消息使用该函数计算一组hash值,然后将其同消息一起发送。接受者收到消息后对消息执行同样的hash计算,将计算结果与收到的hash值进行对比,如果不匹配,则接受者断定消息遭受了篡改
Hash码可以通过如下各种不同的方式提供消息认证
- 使用对称密码算法E加密消息和hash码。由于只有A,B共享密钥K,所以提供了保密性
- 使用对称密码算法E但只对hash码进行加密,对于无需保密性的应用,减少了解密操作的负担
- 不适用加密算法,仅使用hash函数也能实现消息认证,该方案假设A,B共享一个秘密值S
- 通过将整个消息和hash加密,在上一个方案的基础上提供保密性
密码学Hash函数H的安全性要求
H可应用于任意大小的数据块 | |
对任意给定的x,计算H(x)比较容易,用软硬件均可实现 | |
对任意hash码h,找到满足H(y)=h的y在计算上不可行 | |
抗第二原像攻击(抗弱碰撞性) | 对任何的分块x,找到满足y≠x但H(x)=H(y)的y在计算上不可行 |
找到任何满足H(x)=H(y)的偶对(x,y)在计算上不可行 | |
H的输出满足伪随机性测试标准 |
*要求攻击者能够实现选择消息攻击
SHA参数比较(简略)
填充消息使其长度模1024与896同余,即使消息长度已经满足要求,仍然需要进行填充原因是最后填充的字节信息包含了填充位数信息在消息后附加一个128位的块,包含了填充前消息的长度hash函数的中间结果和最终结果均保存于512位的缓冲区中,缓冲区用8个64位寄存器表示
- 以1024位的分组(128字节)为单位处理信息
处理完毕后,从第n轮输出512位摘要
算法的核心是具有80轮运算的模块
对(3)~(6),要求消息认证或数字签名
对(7),要求数字签名
对(8),要求数字签名及抵抗此种攻击的协议
任何消息认证或数字签名机制在功能上都有两层,下层是认证或签名函数,上层是与之匹配的协议
将任意长的消息映射为定长的Hash值的函数,以该值作为认证符
对整个消息进行加密后的密文作为认证符
它是消息和密钥的函数,它产生定长的值,该值作为认证符附在消息后
MAC也称密码校验和,由T=MAC(K,M)产生,其中M是一个变长消息,K是收发双方共享的密钥,MAC(K,M)是一个定长的认证符
消息认证码中,消息的每个部分“均匀”地影响结果,因此很难差分攻击
对给定的消息x,攻击者可以通过攻击密钥空间和攻击MAC值来找出其MAC
对MAC的算法的密码分析攻击同样是利用算法得到某种性质而不是穷举攻击来进行的,理想的MAC算法要求密码分析攻击的代价大于或等于穷举攻击
- 一般像MD5和SHA这样的密码学hash函数,其软件执行速度比诸如DES这样的分组密码要快
- 有许多共享的密码学hash函数代码库
- 不必修改而直接使用现有的hash函数,特别的,很容易免费得到软件上执行速度较快的hash函数及其代码
- 如果找到更快或更安全的hash函数,应很容易替代原来嵌入的hash函数
- 应保持hash函数原有的性能,不过分降低其性能
- 对密钥的使用和处理应该相对简单
- 如果已知嵌入的hash函数的强度,则完全可以知道认证机制抗密码分析的强度
成功攻击HMAC概率等价于对嵌入的hash函数的以下攻击之一:
其初始向量为0,需要认证的数据分成连续的64位的分组,最后一组不足64位则补齐。
对消息M有四种同时提供认证和加密的通用方案,安全性还与消息结构有关
数字签名是共要密码体制发展过程中重要的概念之一,它提供其他方法难以实现的安全性
数字签名必须具有以下特征:
- 必须能验证签名者、签名日期和时间
- 必须能认证被签名的戏消息内容
- 签名应能有第三方仲裁,以解决争执
文献[GOLD88]给出了危害程度从高到低排列的攻击类型
文献[GOLD88]给出了攻击成功的签名方案
- 必须是与消息相关的二进制字符串
- 必须使用发送方某些独有的信息,以防伪造和否分
指只涉及通信双方的数字签名方案
用共享的密钥对整个消息和签名进行加密,以获得保密性
注意这里是先签名后加密
,这样在发生争执时,第三方可以查看消息及其签名,否则第三方必须知道密钥才能读取原始消息
此方案的弱点是有效性依赖于私钥的安全性,否则发送方可以否认
*ElGamal数字签名方案对q的长度没有严格要求,只要小于1024即可,因此可以构建安全性较高的算法
同ElGamal数字签名方案相同,SChnorr数字签名方案也是基于离散对数,其中p是1024位整数,q是160位整数
DSA使用是只提供数字签名功能的算法,与RSA不同,DSA虽然是一种公钥密码方案,但是并不能用于加密或密钥交换
*k是随机数,即瞬时私钥,使相同的明文产生不同的密文,PUG是公开参数,PRa是发送方的私钥,PUa是发送方的公钥最终比较r’与r是否相等
通信双方必须使用相同的密钥并且该密钥要对其他人保密
- A选择一个密钥后以物理的方式传递给B
- 第三方选择密钥后物理地传递给A和B
- 如果A和B先前或者最近使用过一个密钥,则一方可以用旧密钥加密新密钥后发送给另一方
- 如果A和B到第三方C有加密链接,C可以在加密链接上传送密钥给A和B
[版权声明] 本站所有资料由用户提供并上传,若内容存在侵权,请联系邮箱。资料中的图片、字体、音乐等需版权方额外授权,请谨慎使用。网站中党政主题相关内容(国旗、国徽、党徽)仅限个人学习分享使用,禁止广告使用和商用。
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。