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

第一部分   密码学

网络与协议安全基础

1).  CIA三元组:

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

2).  安全的三个概念:

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

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

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

3).  不同层次安全模型

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

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

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

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

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

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

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

DES

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

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

              图1   DES的算法框图                                                             图2   DES轮结构的第i轮

2.    F函数表示为:fRI-1,KI=P(SE(RI-1)⊕KI)

      

                            

图3  F函数

3.    密钥生成步骤包含:

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

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

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

4.    DES的强度

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

5.    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对密钥;可满足不相识人之间的保密通信;可以实现数字签名。

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

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

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

3). 公钥算法的步骤:

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

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

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

3.    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=Memod n

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

2). 安全性:

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

4.    DH密钥交换

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

1). 基本流程:

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

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

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

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

图7  DH密钥交换算法

5.    中间人攻击

图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。

2.    消息认证码:

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

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

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

算法流程:

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

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

3.M附加在Si后;

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

5. 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的加密部分

  • 26
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值