0


网络与协议安全期末复习——密码学部分

第一部分 密码学

网络与协议安全基础

1). CIA三元组:

保密性(Confidentiality), 完整性(Integrity), 可用性(Availability), 真实性(Authenticity), 可追溯性(Accountability)。

2). 安全的三个概念:

绝对安全: 无条件安全,香农指出仅当密钥长度和明文一样长时,才能达到无条件安全;

计算安全: 破解该密码系统所需要的努力超过了破译者的破译能力;满足 价值有效性,时间有效性的加密算法称为计算上安全的;

可证明安全: 通过理论证明,破译算法的计算量不低于求解该算法所基于的数学难题的计算量。(RSA 基于大整数分解问题)

3). 不同层次安全模型

攻击类型和密码破译者掌握的信息:

唯密文: 加密算法,截获的部分密文;

已知明文: 加密算法,截获的部分密文,一个或多个明密文对;

选择明文: 加密算法,截获的部分密文,自己选择的明文消息及相应的密文;

选择密文: 加密算法,截获的部分密文,自己选择的密文消息及相应的明文;

4). 科尔霍夫原则: 系统的保密性不依赖于对加密体制或算法的保密,仅依赖于密钥。

5). 重放攻击: 重放攻击(Replay Attack)是一种网络攻击形式,攻击者通过拦截并重放合法用户之前发送的有效数据包,来冒充合法用户进行未授权操作。

DES

DES是一种用56位密钥来加密64位数据的对称加密算法,其核心部件包含两次置换(初始置换和逆初始置换),密钥控制下的16轮迭代加密以及轮密钥的生成。

  1. 轮迭代表示为: L*I=R(I-1)** ; RI**=L(I-1)⊕f(RI-1,K(I-1)**)*

          图1   DES的算法框图                                                             图2   DES轮结构的第i轮
  1. F函数表示为:fRI-1*,KI**=P(SE(RI-1)⊕KI**)*

                      ![](https://img-blog.csdnimg.cn/direct/c7e7743d34ab4d13bcf39e764d8bf355.png)
    

图3 F函数

  1. 密钥生成步骤包含:

1). 初始置换PC-1: 从64位主密钥中提取56位有效密钥(重排主密钥同时去掉奇偶校验位;

2). 分割以及循环移位: 56位密钥等分为两部分,每一部分进行循环左移(1,2,9,16轮左移一位,其余轮左移两位);

3). 子密钥生成 PC-2: 每一轮循环移位后的两部分合并为56位,经过置换选择2将密钥压缩为48位子密钥Ki。

  1. DES的强度

    完全依赖于所使用的密钥,算法是公开的;DES使用S-盒实现小块的非线性变换,达到混乱目的,使用P置换实现大块的非线性变换,达到扩散的目的。

  2. DES的安全性

1). 雪崩效应: 当输入发生最微小的变化时,导致输出的剧变

2). 弱密钥: 若给定初始密钥K,各轮的子密钥Ki都相同,则称给定密钥为弱密钥;弱密钥使得DES在选择明文攻击下的搜索量减半,在这种情况下,攻击者只需将密文再经过一次加密即可还原明文。

AES

AES总体结构: 明文分组128位,密钥长度182,192或256位。

1). 字节代换: 一个S盒完成分组中的按字节代换(非线性);

2). 行移位: 简单的置换,对四行的矩阵进行,第一行不变,第二行左移一个字节,第三行左移两个字节,第四行左移三个字节;

3). 列混淆: 利用在域GF(2^8)上的算术特性的代换,即通过有限域上的多项式乘法实现每个字节都依赖列中的所有字节;

4). 轮密钥加: 利用当前状态矩阵和本轮子密钥进行按位异或.

图4 单轮AES的结构

目前AES算法本身是安全的

3DES

双重DES存在中途相遇攻击的问题,即由于EK1P*=DK2**(C)*,因此只需用所有可能的密钥加密明文P并将结果存储,然后用所有可能的密钥解密密文C,寻找两种情况下相同的结果,复杂度为o(2^56)。

3-DES使用两个密钥进行三次加密:E-D-E,即C=EK1**(DK2**(EK1**(P))), 若K1=K2,则相当于单次加密。

分组密码的工作模式

1). 电码本模式(ECB): 每个明文组独立地以同一密钥加密。用于传送短数据;

2). 密码分组链接(CBC): 加密算法的输入是当前明文组与前一密文组的异或。用于传送数据分组,认证;

3). 密码反馈(CFB): 每次只处理输入的j比特,将上一次的密文作为加密算法的输入以产生伪随机输出,该输出再与当前明文异或以产生当前密文。用于传送数据流,认证;

4). 输出反馈(OFB): 与CFB类似,不同之处是上一次加密算法的输出作为本次加密算法的输入。用于噪声信道上传送数据流;

5). 计数器(CTR): 对计数器依次用K加密后与明文异或。适合并行,可随机访问,高速。

流密码和RC4

按位处理明文消息,即用一个伪随机的流密钥与明文按位异或,流密钥的随机性完全摧毁了明文消息的统计特性;不能重复使用流密钥,否则系统会被破解。RC4算法由Ron Rivest于1987年提出,是密钥长度可变,面向字节的流密码算法。

1). RC4算法关键变量:

密钥流:密钥流的长度和明文的长度是对应的;

状态向量S:长度为256个单元,每个单元是一个字节,每个单元都是0-255之间的8比特数,但是排列顺序发生了改变;

临时向量T:和S长度一样,若密钥长度为256字节,则将密钥的值赋给T,否则轮转地将密钥的每个字节赋值给T;

密钥K:长度为1-256字节,通常取16字节;密钥长度与明文和密钥流长度无必然关系。

2). RC4算法的组成:主要包含四部分:

密钥编排,使用KSA算法根据用户密钥生成S盒;

产生密钥流:使用PRGA算法生成密钥流用于加密数据;

加密:密钥流与明文进行异或运算得到密文;

解密:密钥流与密文进行异或运算得到明文。

3). RC4的安全性:

可以抵御已知的各种攻击,加密的结果是“非线性”的,RC4是流密码,绝不重复使用密钥。

随机数发生器

1). 随机数的应用:随机数产生器是流密码的关键;用于相互鉴别,以防止重放攻击;会话密钥的产生;公开密钥的产生如RSA算法中产生密钥;一次一密中的密钥流。

2). 伪随机数产生器:

图5 随机数发生器

图6 循环加密生成随机数

公钥加密技术

  1. 公钥密码体制:

1). 对称密码体制的问题:加解密能力是捆绑在一起的,基于比特模式;密钥更换,传递和交换需要可靠的信道,密钥分发困难;密钥管理困难,N个用户加密通信的实现需要C=N(N-1)/2个密钥;无法满足不相识的人之间通信的保密要求;不能实现数字签名。

2). 非对称密码体制的基本特点:加解密能力是分开的,基于数学函数;密钥分发简单;需要保存的密钥量大大减小,N个用户需要N对密钥;可满足不相识人之间的保密通信;可以实现数字签名。

  1. 公钥算法的特点和组成:

1). 公钥算法特点:仅根据密码算法和加密密钥来确定解密密钥在计算上不可行;两个密钥的任何一个都可用来加密,另一个解密;

2).公钥密码体制的组成:明文,加密算法,公钥和私钥,密文,解密算法。

3). 公钥算法的步骤:

密钥分配:用户产生一对密钥,将公钥公开,私钥自己保留;

加密消息:若Bob要给Alice发送消息,则用Alice的公钥对消息加密,实现保密性;

认证:需要认证时示证方用自己的私钥加密消息(签名),验证方用示证方的公钥解密消息(验证),成功解密则认证成功。

  1. RSA算法:

1). 算法流程:

随机选择两个秘密大素数p,q;

计算公开模数n;

计算秘密的欧拉函数φ*n=(p-1)(q-1)*;

选择一个与φ**n

互素的公开数e;

用欧几里得算法求e的模φ**n逆元,即e**d mod φn=1,*求私有数d;

得公钥(e,n),私钥(d,n);

加密:*C=Me*mod n

解密:*M=Cdmod n=(Memod n)d=M* (M<n)

2). 安全性:

RSA算法的安全性依赖于大整数分解问题

  1. DH密钥交换

DH密钥交换算法是一种公钥分发机制,算法的安全性依赖于求解离散对数问题(DLP)。

1). 基本流程:

通信双方约定一个大素数q和模q的本原根α(公开);

各方分别选择一个秘密钥,XA,XB <q,计算公钥y*A=αXA mod q,yB**=αXB mod q *并交换;

双方共享的密钥KAB计算为:K*AB=yAXB** mod q=yBXA** mod q* ;KAB是双方用对称密码通信时共享的密钥;

攻击者要想获取X,必须解决DLP问题。

图7 DH密钥交换算法

  1. 中间人攻击

图8 对DH算法的中间人攻击

消息认证技术

消息认证是一种允许通信者验证接收消息是否可信的措施,主要指消息的完整性。

  1. 安全散列函数:为文件、消息或其他数据块产生“指纹”,浓缩任意长的消息到一个固定长度的值h= H(M).

1). 对安全散列函数的要求:

抗原像攻击(单向性):对于预先给定的Hash值找不到对应的原数据;

输入长度可变,输出长度固定;

效率高;

抗弱碰撞性:对于任何给定的分组x,找到满足yx且H(x)=H(y)的y在计算上不可行;

抗强碰撞性:找到任何满足H(x)=H(y)的偶对(x,y)在计算上不可行;

伪随机性:H的输出满足伪随机性的测试标准。

2). SHA-512逻辑:

步骤一:附加填充位:填充消息使其长度模1024与896同余,即使消息长度满足要求,仍然需要填充,因此填充位数在1-1024之间。填充由一个1和后续的0组成;

步骤二:追加长度:在消息后再附加128位的块,是128位无符号整数,表示填充前消息的长度;

步骤三:初始化Hash缓冲区:Hash函数的中间结果和最终结果保存在512位的缓冲区中,用8个64位的寄存器表示,8个寄存器初始化为以下整数:

图9 SHA-512寄存器的初始化

步骤四:以1024位的分组为单位处理消息。算法的核心是具有80轮运算的模块F;

步骤五:输出512位的Hash值。

图10 SHA-512的基本结构

SHA-512算法的特性:Hash码的每一个位都是全部输入位的函数。基本函数F多次复杂重复的运算使得结果充分混淆;根据生日攻击原理,找到两个具有相同摘要的消息的复杂度为2256,而给定摘要寻找消息的复杂度为2512。

  1. 消息认证码:

Hash函数存在中间人攻击的缺陷,即攻击者可以同时篡改消息和哈希值而不被察觉。

消息认证码(MAC)的优点:可以验证消息的完整性,还可以验证数据确实是从原始方发送的未经篡改的消息。

1). 基于Hash函数的MAC:HMAC

算法流程:

1.在密钥K左边填充0,得到b位的K+;

2.K+与ipad执行异或,产生b位分组Si;

3.M附加在Si后;

4.将H作用于步骤3所得的结果;

  1. K+与opad执行异或,产生b位分组S0;

6.将步骤4中的散列码附加在S0后;

7.将H作用于步骤6所得的结果并输出该函数值。

图11 HMAC算法

HMAC的安全性:任何建立在嵌入散列函数上的MAC,其安全性在某种程度上依赖于该散列函数的强度

2). 基于分组密码的MAC

2.1). 基于密文的MAC:CMAC 算法基本流程如下:

图12 CBC-MAC算法

2.2). 具有密码块链式信息认证码的计数器(CCM)

加密并MAC(E&M)方案的改进,可提供认证与加密;组成CCM的关键算法是AES加密算法,CTR工作模式和CMAC认证算法,在加密和MAC算法中共用一个密钥K。

CCM加密过程的输入包括三个部分:

将要被认证和加密的数据,即明文P;

将要被认证但不需要加密的数据A;

临时量N作为负载和相关数据的补充,对于消息在生命周期内,N取值唯一,防止重放攻击。

图13 CCM的认证部分

图14 CCM的加密部分

标签: 网络 安全 密码学

本文转载自: https://blog.csdn.net/m0_61698948/article/details/139608887
版权归原作者 zzzxllll 所有, 如有侵权,请联系我们删除。

“网络与协议安全期末复习——密码学部分”的评论:

还没有评论