《应用密码学-Python版》课件 第5章 对称加密_第1页
《应用密码学-Python版》课件 第5章 对称加密_第2页
《应用密码学-Python版》课件 第5章 对称加密_第3页
《应用密码学-Python版》课件 第5章 对称加密_第4页
《应用密码学-Python版》课件 第5章 对称加密_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《应用密码学—Python版》第五章对称加密课程背景

对称加密算法的发展,从古典密码学中的凯撒密码、维吉尼亚密码等,到现代密码学中的数据加密标准(DES)、高级加密标准(AES)等,其算法设计基于数论、代数结构等数学理论,利用有限域上的运算、置换群的变换等方式,演进过程遵循着严格的数学逻辑和密码学原理,确保加密的安全性和效率。目录contents01对称加密算法基本原理02常见对称算法03对称加密应用场景04对称加密的安全性分析05对称加密应用案例对称加密算法基本原理5.11.对称加密算法基本原理对称加密概念对称加密又称单密钥加密或密钥加密,是一种采用单钥密码系统的加密方法。在这种加密方式中,同一个密钥被用于加密和解密过程。其中用到的密钥叫做私钥。在对称加密的情形中,双方共享一些密码信息,成为密钥,当把他们希望安全地通信时,会使用这个密钥。发送方使用密钥加密(混合)信息,接收方收到后使用相同的密钥解密(去混合)来恢复信息。消息本身称为明文,从发送方传输到接收方的经加密的消息称为密文。共享的密钥用来从所有窃听者中区分通信方(假定通过公共信道传输)。1.对称加密算法基本原理

对称加密的基本情形

1.对称加密算法基本原理对称加密优缺点优点:加密、解密处理速度快,具有很高的数据吞吐率,密钥相对较短。缺点:密钥分发过程复杂,代价高。多人通信时密钥组合数量爆炸式膨胀,使密钥分发更复杂。通信双方必须统一密钥才能发送保密信息,若双方不相识,无法发送秘密信息。对称密码算法还存在数字签名困难问题。1.对称加密算法基本原理加密和解密过程密钥可由发送方产生,然后经过一个安全可靠的途径(如信使递送)送至接收方,或由第三方产生后安全、可靠地分配给通信双方。对称密码体制对明文消息的加密有两种方式:明文消息按字符(如二元数字)逐位地加密,称为序列密码或流密码;将明文消息分组(含有多个字符),逐组地对其进行加密,称为分组算法或分组密码。1.对称加密算法基本原理数学基础和运算原理群论群由一个非空集合G组成,在集合G中定义了一个二元运算符“·”,满足以下性质的代数系统称为群,记为{G,·}。封闭性:对任意的a,b∈G,有a·b∈G。结合律:对任何的a,b,c∈G,有a·b·c=(a·b)·c=a·(b·c)。单位元:存在一个元素i∈G,对任意元素,有a·i=i·a=a。逆元:对任意a∈G,存在一个元素a-1∈G,使得a·a-1=a-1·a=i。1.对称加密算法基本原理

1.对称加密算法基本原理

1.对称加密算法基本原理

1.对称加密算法基本原理

1.对称加密算法基本原理模运算amodn的运算称为模运算。性质:①如果m|(a−b)→a≡b(modm)②相对于某个固定模数m的同余关系,是整数间的一种等价关系。具有等价关系的三点基本性质:自反性:对任意整数a,有a≡a(modm)。对称性:如果a≡b(modm),则b≡a(modm)。传递性:如果a≡b(modm),b≡c(modm),则a≡c(modm)。1.对称加密算法基本原理③模m运算将所有整数映射到整数集合{0,1,···,(m−1)},即模运算可实现对所有整数进行分类,得到的整数集合称为剩余类集合;常用Zm表示所有整数模m后得到的剩余类集合,即Zm={0,1,···,(m−1)}。例5.4Z10={0,1,2,3,4,5,6,7,8,9},即所有整数模10后得到的集合。模运算可逆:[a(modm)±b(modm)]modm=(a±b)(modm)[a(modm)×b(modm)]modm=(a×b)(modm)1.对称加密算法基本原理[(a×b)(modm)+(a×c)(modm)](modm)=[a×(b+c)]modm例5.511mod8=3;15mod8=7[(11mod8)+(15mod8)]mod8=(3+7)mod8=2(11+15)mod8=26mod8=2​[(11mod8)−(15mod8)]mod8=(3−7)mod8=−4mod8=4(11−15)mod8=−4mod8=4​[(11mod8)×(15mod8)]mod8=(3×7)mod8=21mod8=5(11×15)mod8=165mod8=5​1.对称加密算法基本原理

1.对称加密算法基本原理

1.对称加密算法基本原理

1.对称加密算法基本原理费马原理的另一种等价形式如果p是素数,a是任意正整数,则对gcd(a,p)=1,有ap≡amodp例5.8p=5,a=3,35=243≡3mod5。常见对称算法5.22.常见对称算法数据加密标准(DES)DES算法的加密过程经过了三个阶段2.常见对称算法DES全部16轮的加/解密结构图,其最上方的64比特输入分组数据可能是明文,也可能是密文,视使用者要做加密或解密而定。而加密与解密的不同之处,仅在于最右边的16个子密钥的使用顺序不同,加密的子密钥顺序为K₁,K₂,…,K₁₆,而解密的子密钥顺序正好相反,为K₁₆,K₁₅,…,K₁。2.常见对称算法初始置换(IP)与逆初始置换(IP-1)整个64位按8行、8列排列;最右边一列按2、4、6、8和1、3、5、7的次序排列;往左边各列的位序号依次为紧邻其右边一列各位序号加8。整个64位依然按8行、8列排列;左边第二列按8、7、6、5、4、3、2、1的次序排列;往右边隔一列的位序号依次为当前列各位序号加8;认为最右边一列的隔列为最左边一列。2.常见对称算法每个循环的详细过程DES算法的一轮迭代处理过程每个64位的中间结果的左、右两个部分被当成两个独立的32位数据处理。每轮变换的逻辑关系为:

2.常见对称算法扩展变换E与P变换扩展变换E将32位输入扩展为48位输出,将48位输出按8行6列的次序排列。排列时,将输入位序号按32,1,2,…,31,32的次序依次排列,但上一行的后两位依次在下一行的前两位得到重用,如第一行的最后两位”4”、”5”同时出现在第二行的头两位,认为最后一行的下一行是第一行。扩展后所得到的48位结果与各Ki进行异或,再经过S变换产生32位的输出,最后进行P变换。2.常见对称算法S变换S盒在函数F中的作用代替S变换由一组共8个S盒完成,其中每一个S盒都接受6位的输入,并产生4位的输出,对应的变换由8个表定义。S盒的6位输入的第一和最后一个比特构成一个2位二进制数,用来选择S盒中的四行所定义的四种替代的一种,中间的四个比特则选出一列。被上述行和列交叉所选择的单元的十进制数转换为一个4位的二进制表示作为输出。2.常见对称算法0123456789101114131415

01441312151183106125907S1101574142131106121195382411481362111512973105031512824917511314100613输入:101100中间4位(0110)输出:0010在S1中,对于输入101100,行是10(对应第2行),而列是0110(对应第6列),第2行与第6列交叉位置所对应的数是2,因此输出应是0010。2.常见对称算法密钥的产生子密钥产生过程中的输入为使用者所持有的64比特初始密钥。在加密或解密时,首先经过密钥置换PC-1,将初始密钥的8个奇偶校验位剔除掉,而留下的56比特初始密钥,接着分为两个28比特的分组C0及D0,再分别经过一个循环左移函数LSi,得到C1与D1,连成56比特数据,再依密钥置换PC-2做重排动作,便可输出子密钥K1,而K2至K16的产生方法依此类推。2.常见对称算法密钥的产生PC-157494133251791585042342618102595143352719113605244366355473931231576254463830221466153453729211352820124PC-21417112415328156211023191242681672720132415231374755304051453348444939563453464250362932密钥置换PC-1密钥置换PC-22.常见对称算法DES算法的安全强度DES的分析主要有三种方法:蛮力攻击:2⁵⁶次尝试(平均只需搜索密钥空间的一半)。差分密码分析法:2⁴⁷次尝试(选择明文攻击)、2⁵⁵次尝试(已知明文攻击)。线性密码分析法:243次尝试(已知明文攻击)。对DES脆弱性的争论主要集中在以下三个方面:DES的半公开性密钥太短同等对待实现太慢2.常见对称算法

2.常见对称算法

2.常见对称算法其中:c₀=a₀*b₀c₁=a₁*b₀⊕a₀*b₁c₂=a₂*b₀⊕a₁*b₁⊕a₀*b₂c₃=a₃*b₀⊕a₂*b₁⊕a₁*b₂⊕a₀*b₃c₄=a₃*b₁⊕a₂*b₂⊕a₁*b₃c₅=a₃*b₂⊕a₂*b₃c₆=a₃*b₃2.常见对称算法AES的算法描述AES算法是一个数据块长度和密钥长度都可变的迭代分组加密算法,数据块长和密钥长可分别为128,192,256位。在加密之前,对数据块做预处理。首先,把数据块写成字的形式,每个字包含4个字节,每个字节包含8比特信息;其次,把字记为列的形式。2.常见对称算法a0,0a0,1a0,2a0,3a0,4a0,5...a1,0a1,1a1,2a1,3a1,4a1,5...a2,0a2,1a2,2a2,3a2,4a2,5...a3,0a3,1a3,2a3,3a3,4a3,5...AES算法形式表中,每列表示一个字aj=(a0,j,a1,j,a2,j,a3,j),每个ai,j表示一个8比特的字节,即aj∈GF(28)[x]/(x4+1),ai,j∈GF(28)2.常见对称算法用Nb表示一个数据块中字的个数,那么Nb=4,6或8。用Nk表示密钥中字的个数,那么Nk=4,6或8。Nk=6的密钥形式k0,0k0,1k0,2k0,3k0,4k0,5k1,0k1,1k1,2k1,3k1,4k1,5k2,0k2,1k2,2k2,3k2,4k2,5k3,0k3,1k3,2k3,3k3,4k3,5Nr468410121461212148141414算法轮数Nr由Nb和Nk共同决定2.常见对称算法AES算法的加密过程明文块首先经过白化技术处理后,进入轮函数,而轮函数又由字节代换、行移变换、列变换与密钥加4个变换组成,这样经过Nr轮之后,把明文块变换成密文块。2.常见对称算法字节代换作用在字节上的一种非线性字节变换,这个变换(或称S-盒)是可逆的,定义为:

2.常见对称算法行移变换在此变换的作用下,数据块的第0行保持不变,第1行循环左移位C1,第2行循环左移位C2,第3行循环左移位C3,其中移位值C1,C2和C3与加密块长Nb有关。NbC1C2C3412361238134不同块长的移位值2.常见对称算法

2.常见对称算法子密钥的生成AES算法密钥扩展根据密钥的长度不同而不同,有两种不同的扩展方案:密钥长度为128位、192位,及密钥长度为256位。右表所示为密钥长度为128位、192位密钥的扩展方案。For

Nk⩽6,

wehave:KeyExpansion(byteKey[4*Nk]wordW[Nb*(Nr+1)])

{for(i=0;i<Nk;i++)W[i]=(Key[4*i],Key[4*i+1],Key[4*i+2],Key[4*i+3]);for(i=Nk;i<Nb*(Nr+1);i++){temp=

W[i−1];if(i%Nk==0)Temp=SubByte(RotByte(temp))^Rcon[i/Nk];W[i]=W[i−Nk]^temp;}}2.常见对称算法子密钥的生成而对密钥长度为256位的密钥扩展方案,可如下描述:ForNk>6,wehave:KeyExpansion(byteKey[4*Nk]wordW[Nb*(Nr+1)]){for(i=0;i<Nk;i++)W[i]=(key[4*i],key[4*i+1],key[4*i+2],key[4*i+3]);for(i=Nk;i<Nb*(Nr+1);i++){temp=W[i−1];if(i%Nk==0)temp=SubByte(RotByte(temp))^Rcon[i/Nk];elseif(i%Nk==4)temp=SubByte(temp);W[i]=W[i=Nk]^temp;}}2.常见对称算法

对称加密应用场景5.33.对称加密应用场景文件的加密解密文件加密本质上就是对文件的内容使用相同的密钥进行加密和解密操作,加密前需要对数据进行填充,解密后要去除填充,同时为了方便存储和传输,对加密后的二进制数据进行了Base64编码和解码。进而保护敏感文件,如财务报表、个人证件扫描件等。3.对称加密应用场景货币加密加密货币系统利用对称加密技术对交易信息进行加密处理,确保交易的保密性和完整性。同时,通过密钥管理系统来管理用户的密钥,只有拥有正确密钥的用户才能进行交易和访问相关信息。3.对称加密应用场景网络设备通信加密物联网设备之间通过对称加密算法对通信数据进行加密,在设备端内置或通过安全通道分配相同的密钥,用于加密和解密数据。在智能家居系统中,当用户通过手机应用程序控制智能门锁、摄像头、灯光等设备时,手机与这些设备之间的通信数据会通过对称加密进行保护。对称加密的安全性分析5.44.对称加密的安全性分析密钥管理问题密钥作为密码变换的参数,起到“钥匙”的作用,通过加密变换操作,可以将明文变换为密文,或者通过解密变换操作,将密文恢复为明文。在密码学中引入密钥的好处还表现为:①在一个加密方案中不用担心算法的安全性,即可以认为算法是公开的,只要保护好密钥就可以;②可以使用不同的密钥保护不同的秘密,这意味着当有人攻破了一个密钥时,受威胁的只是这个被攻破密钥所保护的信息,其他的秘密依然是安全的。由此可见,密钥在整个密码算法中处于十分重要的中心地位。4.对称加密的安全性分析密钥的种类基本密钥(初始密钥或用户密钥):由用户选定或由系统分配给用户的,可以在较长时间内(相对于会话密钥)由一对用户所专用的密钥。会话密钥(数据加密密钥):在一次通信或数据交换中,直接用于向用户数据提供密码操作(如加密、数字签名)的密钥。它一般是动态的,仅在需要进行会话数据加密时产生,并在使用完毕后立即清除(或由用户双方进行预先约定)。4.对称加密的安全性分析密钥的种类一般密钥加密密钥(二级密钥):其保护的对象是通信或文件数据的会话密钥或文件加密密钥,它在整个密钥层次体系中位于火花密钥合主密钥之间,用于会话密钥或其下层密钥的加密,从而实现这些密钥的在线分发,其本身又受到和上层密钥或主密钥的保护。主密钥:位于整个密钥层次体系的最高层,它是对密钥加密密钥进行加密的密钥,是由用户选定或又系统分配给用户的、可在较长时间内又一堆用户所专用的秘密密钥。4.对称加密的安全性分析密钥的层次结构密钥管理的层次结构在整个密钥层次体系中,各层密钥的使用由相应层次的密钥协议控制。一般情况下,可以这样来理解层次化的密钥结构:某一层密钥对于更高层的密钥而言是工作密码,而对于低一层的密钥来说是密钥加密密钥。4.对称加密的安全性分析层次化密钥结构的优点安全性强:位于层次化密钥结构中的底层密钥更换得很快,最底层密钥可以做到每加密一份报文就更换一次;在少量最初处于最高层的主密钥注入系统后,下层各密钥的内容可以按照某种协议不断地变化。另外,下层密钥的泄露不会影响上层密钥的安全。可实现密钥管理的自动化:层次化密钥结构中,除了主密钥需要由人工装入以外,其他各层的密钥均可以设计由密钥管理系统按照某种协议进行自动地分配、更换、销毁等。4.对称加密的安全性分析密钥管理密钥的生成密钥的使用密钥的存储密钥的备份与恢复密钥的更新密钥的取消登记与销毁密钥的撤销4.对称加密的安全性分析暴力破解与防范暴力破解:攻击者利用计算机的计算能力,从所有可能的密钥值中逐个尝试,直到用某个密钥将密文成功还原成有意义的明文。影响暴力破解难度的因素:密钥长度计算能力密钥空间的随机性4.对称加密的安全性分析暴力破解防范措施依据安全需求确定密钥长度:对于普通商业应用和个人数据保护,一般使用128位密钥;而对于高度敏感信息,像军事机密、核心金融数据,建议使用192位或256位密钥。密钥管理:定期更换密钥,安全存储密钥,且使用独立的加密密钥来保护存储密钥的密文,进一步提升安全性。增加破解难度:使用密钥派生函数,例如scrypt,适用于对密码等敏感信息的保护。结合其他安全机制:例如访问控制、多因素认证等。4.对称加密的安全性分析AES算法实现导入必要的库。encrypt函数:该函数接收明文和密钥作为参数,使用CBC(密码块链接)模式进行加密。decrypt函数:该函数接收密文和密钥作为参

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论