期末复习:信息安全(三)

🎯对称密码体制
单密钥系统的加密密钥和解密密钥相同,或实质上等同,即从一个易于得出另一个。
(举例:DES,Triple DES,IDEA,AES,RC5,CAST-2018)

  • 分组密码算法
    明文被分为固定长度的块,即分组,分组一般为64比特,或者128比特。
    对每个分组用相同的算法和密钥加/解密。
    密文分组和明文分组同样长。
    (一般而言,密钥长度和明文长度一样,若不一样,如密钥56位,明文64位,此时需要对密钥进行扩展,通过加奇偶校验位的方法变为64位)
    🌸分组加密器本质上就是一个巨大的替换器,在密钥的控制下,能从一个足够大和足够好的置换子集中简单而迅速地选出一个置换,用来对当前输入的明文数字组进行加密变换。分组密码采用了乘积加密器的思想,即轮流使用替代和置换。
    💭Shannon提出的设计密码系统的两种基本方法:扩散和混淆
    扩散:要求明文的统计特征消散在密文中。即让明文的每个比特影响到密文的许多比特的取值。尽可能使明文和密文的统计关系变复杂。
    混淆:使密文与密钥之间的统计关系尽量复杂,以阻止攻击者发现密钥。
    扩散和混淆的目的都是为了挫败推测出密钥的尝试,从而抗击统计分析。迭代密码是实现混淆和扩散原则的一种有效方法。合理选择的轮函数经过若干次迭代后能够提供必要的混淆和扩散。
    🌸分组密码由加密算法、解密算法和密钥扩展算法组成。
  • 序列密码算法
    每次可加密一个比特或一个字节。
    适合比如远程中断输入加密类的应用。

🎯分组密码的一般结构

  • Feistel网络结构和SP网络结构
    Feistel网络是由Horst Feistel在设计Lucifer分组密码时基于扩散和扰乱的思想所发明的,并因被DES采用而流行。
    现在正在使用的几乎所有重要的对称分组密码都使用这种结构,如FEAL、Blowfish等。
  • Feistel密码结构的设计动机
    分组密码对n比特的明文分组进行操作,产生出一个n比特的密文分组,共有2n个不同的明文分组,每一种都必须产生一个唯一的密文分组,这种变换称为可逆的或非奇异的。
  • Feistel密码结构
    在这里插入图片描述
  • Feistel网络结构
    Feistel密码结构
    在这里插入图片描述
    其中Li和Ri的计算规则如下:
    Li = Ri-1; Ri = Li-1 ⊕ F(Ri-1,Ki)
    在第L轮迭代运算后,将LL和RL再进行交换,输出C = RLLL
    其中F是轮函数,Ki是由种子密钥K生成的子密钥
    Feistel网络的安全性和软、硬件实现速度取决于下列参数:
    分组长度:分组长度越大则安全性越高(其他条件相同时),但加、解密速度也越慢。64比特的分组目前也可用,但最好采用128比特。
    密钥长度:密钥长度越大则安全性越高(其他条件相同时),但加、解密速度也越慢。64比特密钥现在已不安全,128比特是一个折中的选择。
    循环次数:Feistel网络结构的一个特点是循环次数越多则安全性越高,通常选择16次。
    子密钥算法:子密钥算法越复杂则安全性越高。
    轮函数:轮函数越复杂则安全性越高。
    快速的软件实现:有时候客观条件不允许用硬件实现,算法被镶嵌在应用程序中。此时算法的执行速度是关键。
    算法简洁:通常希望算法越复杂越好,但采用容易分析的却很有好处。若算法能被简洁地解释清楚,就能容易通过分析算法而知道算法抗各种攻击的能力,也有助于设计高强度的算法。
  • Feistel网络解密过程
    Feistel网络解密过程与其加密过程实质是相同的。
    以密文分组作为算法的输入,但以相反的次序使用子密钥,即第一轮使用KL,第二轮使用KL-1,直至第L轮使用K1,这意味着可以用同样的算法来进行加、解密。
    先将密文分组C = RLLL,分成左边和右边长度相等的两半,分别记为L0’和R0’,根据下列规则计算 Li’ Ri’
    Li’ = Ri-1’ ,Ri’ = Li-1’  F (Ri-1’ ,Ki’) 1≤i≤L
    最后输出的分组是RL’ LL’

🎯数据加密标准DES
数据加密标准是至今为止使用最广泛的加密算法(1976年11月23日采纳为联邦标准,批准用于非军事场合的各种政府机构)。
🎯简化的DES
简化的DES是一个提供教学而非安全的加密算法,与DES的特性和结构类似,但是参数较少。S-DES的加密算法以8bit的明文分组和10位的密钥作为输入,产生8bit的明文分组作为输出。加密算法涉及5个函数:初始置换IP;复合函数fk1,它是由密钥K确定的,具有置换和替代的运算 ;转换函数SW; 复合函数fk2;初始置换IP的逆置换IP-1
在这里插入图片描述
P是转换,S是代替。
🌸S-DES的密钥生成
🌸S-DES加密
S-DES加密:
函数fx
S-DES中最复杂的组成部分是函数fx,这个函数是多个置换函数和替代函数的组合函数。
该函数表示为:令L和R分别是fx的输入的最左边4个比特和最右边4个比特,令F为一个从4bit串到4bit串的映射。令: fx (L,R) = ( L  F(R,SK),R)
其中SK是一个子密钥。例如假设经过初始置换后得到的结果是(10111101),对于某个密钥SK,有:F(1101,SK)=(1110)。
由(1011)  (1110)=( 0101) 得,fx = ( 0101 1101)。
🏃详细见本人草稿纸笔记(嘻嘻~
🎯简化的DES和DES的关系
DES对64bit的输入分组进行操作,使用一个56bit的密钥,从这个密钥计算出16个48bit的子密钥,这项计算涉及一个56个比特的初始置换和一系列的48bit的以为和置换操作,在加密过程中F不是作用于4比特的(n1,n2,n3,n4)而是作用于32比特的(n1,…n32)。S盒子有8个,每个S盒子有4行16列。
🍺总结
DES加解密的流程、DES密钥扩展、Feistel结构、对称加密过程中反复使用代换和置换、扩散(明文的统计规律消失在密文中)和混淆(让密钥和密文的关系复杂)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章