版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2022-3-72复习与回顾复习与回顾密码技术的基本概念、分类、实现和应用原理。内密码技术的基本概念、分类、实现和应用原理。内容包括:容包括:q数据保密通信模型及基本术语数据保密通信模型及基本术语q对称密码体制及其分类与工作原理对称密码体制及其分类与工作原理q公钥密码体制及其工作原理公钥密码体制及其工作原理q数字签名技术及其特性数字签名技术及其特性q消息完整性保护及认证消息完整性保护及认证如何定义和衡量密码体制的安全性如何定义和衡量密码体制的安全性2022-3-74学习目标学习目标本章以几个典型对称密码算法为例,介绍对称密码算本章以几个典型对称密码算法为例,介绍对称密码算法实现过程、机理及特点
2、,理解密码算法的应用背景。法实现过程、机理及特点,理解密码算法的应用背景。q 几个经典的古典密码方案几个经典的古典密码方案q 数据加密标准数据加密标准DESDESq 高级加密标准高级加密标准AESAESq 其它典型分组密码算法其它典型分组密码算法q 流密码算法流密码算法分组密码算法工作模式分组密码算法工作模式2022-3-75目目 录录4.0 古典密码古典密码4.1 数据加密标准数据加密标准DES4.2 高级加密标准高级加密标准AES4.3 其他分组密码算法介绍其他分组密码算法介绍4.4 流密码算法流密码算法RC44.5 分组密码工作模式分组密码工作模式4 0n古典代换密码古典代换密码q将明文
3、字母替换成其他字母、数字或符号的方法;将明文字母替换成其他字母、数字或符号的方法;q如果把明文看成是如果把明文看成是0 0或或1 1的序列,那么密文就是的序列,那么密文就是0 0或或1 1比比特序列的另一种表达。特序列的另一种表达。n古典置换密码古典置换密码q通过改变明文字符的位置来实现加解密;通过改变明文字符的位置来实现加解密;q例如:栅栏密码、行移位密码等例如:栅栏密码、行移位密码等2022-3-774n所知道的最早的代替密码;所知道的最早的代替密码;nJulius Caesar;n首先用在军事通信中;首先用在军事通信中;n用字母后的第三个字母代替。用字母后的第三个字母代替。明 文ab c
4、defghijklmnopqrstuvwxyz密 文D E F G HIJKL M N OP Q R S T U V W X YZ A BCn加密加密q方式一:公式计算方式一:公式计算m明文编码:如明文编码:如a=0,b=1,z=25,则明文,则明文Pp1p2pnm加密运算:加密运算:cipi +k (mod 26), i 1,2,nm加密得密文:加密得密文:Cc1c2cnq方式二:查表(例方式二:查表(例k3)明文明文abcdefghijklmnopqrstuvwxyz密文密文DEFGHIJKLM N OPQRSTUV W XYZABCn 解密解密q 方式一:公式计算方式一:公式计算m 密文
5、密文Cc1c2cn 解密运算:解密运算:Pici k(mod 26), i1,2,nm 解码得明文:解码得明文:Pp1p2pnq 方式二:查表(例方式二:查表(例k=3)密文密文ABCDEFGHIJKLMNOPQRSTUVWXY Z明文明文xyzabcdefghijklmnopqrstuv wn恺撒密码加解密算法恺撒密码加解密算法q加密算法:加密算法:c = E(p) = (p+k) mod (26)q解密算法:解密算法:p = D(c) = (ck) mod (26)q 共有密钥共有密钥25个个 q 可简单地依次去测试可简单地依次去测试 ,强力搜索,穷举攻击,强力搜索,穷举攻击 q 基于字母
6、频率的破译方法基于字母频率的破译方法q 所破译的明文需要识别所破译的明文需要识别m如:破译密文如:破译密文 GCUA VQ DTGCM“ dzrx sn aqdzj (k=3) easy to break (k=2)4换换n 不是简单有序地字母移位不是简单有序地字母移位 n 任意地打乱字母的顺序任意地打乱字母的顺序 n 每个明文字母映射到一个不同的随机密文字母每个明文字母映射到一个不同的随机密文字母 n 密钥数目:密钥数目:26! 4换换q密钥空间:密钥空间: 26! 4 1026 q貌似安全,实则不然貌似安全,实则不然 q语言特性语言特性4换换q 人类的语言是有冗余的人类的语言是有冗余的 q
7、 字母的使用频率是不同的字母的使用频率是不同的q 在英语中在英语中E使用的频率最高使用的频率最高 q 有些字母使用较少有些字母使用较少q 单字母、双字母、三字母组合统计单字母、双字母、三字母组合统计4换换4n 特点:在明文消息中采用不同的代换表特点:在明文消息中采用不同的代换表n 安全性提高安全性提高 n 使得字母的频率分布更加平坦使得字母的频率分布更加平坦n 用一个密钥指示明文消息中每个字母加解密时所用的用一个密钥指示明文消息中每个字母加解密时所用的代换表代换表n 密钥依次重复使用,代换表依次重复使用密钥依次重复使用,代换表依次重复使用 n 例子:例子:q Vigenre(维吉利亚)密码(维
8、吉利亚)密码(1858)q Vernam(唯尔南)密码(唯尔南)密码(1918)4加密方式一:数学公式计算加密方式一:数学公式计算q设明文设明文 P = p1p2pn,密钥,密钥 k = k1k2kn,密文,密文C = c1c2cn 明文编码;明文编码;计算计算 ci= pi+ki(mod 26),i=1,2,n。q说明:若明文长度大于说明:若明文长度大于n,则,则K重复使用。重复使用。方式二:查表法方式二:查表法44nVigenre密码解密方法一:数学公式计算密码解密方法一:数学公式计算qpi = ciki (mod 26),=1,2,n;n方法二:查表方法二:查表2022-3-720n加密
9、过程:加密过程:qP“encode and decode”,k“mykey”字母序号字母序号123456789101112131415明文编码明文编码P =4132143401333421434密钥编码密钥编码k =122410424122410424122410424加密加密C =1637121827162423727162624728模运算模运算111102密文编码密文编码C =QLMSBQYXHBQAYHB2022-3-721n解密过程:解密过程:qC“QLMSBQYXHBQAYHB”,k“mykey”字母序号字母序号123456789101112131415密文编码密文编码C=1611
10、12181162423711602472密钥编码密钥编码k=122410424122410424122410424加密加密C=4-13214-2340133-234-24143-22模运算模运算133324明文编码明文编码P=encodeanddecoden密钥空间:密钥空间:|K|26nn字母的统计规律进一步降低字母的统计规律进一步降低n明、密文字母不是一一对应关系明、密文字母不是一一对应关系nVigenre本人建议:密钥与明文一样长本人建议:密钥与明文一样长n特例:特例:当当k1 k2 kn k时,是时,是Caesar密码密码4 0n 1929年由数学家年由数学家Lester Hill发明
11、发明n 是一种多表代换密码是一种多表代换密码n 利用模运算意义下的矩阵乘法、求逆矩阵、线性利用模运算意义下的矩阵乘法、求逆矩阵、线性无关、线性空间与线性变换等概念和运算无关、线性空间与线性变换等概念和运算 4 0q加密加密m 明文分组并编码明文分组并编码m CKP mod26,其中,其中K为密钥矩阵,为密钥矩阵,P、C分别为明文分别为明文分组和密文分组。分组和密文分组。q解密解密m 密文分组并编码密文分组并编码m PK-1C mod 26 注:对密钥矩阵注:对密钥矩阵K的要求:在的要求:在mod 26下可逆。下可逆。密钥矩阵密钥矩阵K92221182151717明文分组明文分组P“mor” r
12、om171412明文编码明文编码 P 192221182151717 171412 375651527 1137加密加密 C mod 26密文密文 C LDH,即,即C“HDL”Hill密码的例子密码的例子 17024617151594K1加密加密:2022-3-726密钥矩阵密钥矩阵K92221182151717明文明文P“mor” rom171412明文明文 P 1137解密解密 P mod 26C LDHC“HDL”解密解密: 17024617151594K1 355222220 17024617151594 11371714124 0q密钥空间:密钥空间:|K|25!1.61025q字
13、母的统计规律进一步降低字母的统计规律进一步降低q明、密文字母不是一一对应关系明、密文字母不是一一对应关系4n 随机密钥随机密钥n 理论上不可破理论上不可破n 实际上不可行实际上不可行q 产生大量的随机密钥难产生大量的随机密钥难q 密钥分配与保护更难密钥分配与保护更难4.0n在现代密码之前,转轮密码是最广泛使用的复杂密码在现代密码之前,转轮密码是最广泛使用的复杂密码n广泛用在第二次世界大战中:广泛用在第二次世界大战中:German Enigma, Allied Hagelin, Japanese Purplen实现了复杂多变的多表代换密码,多层加密实现了复杂多变的多表代换密码,多层加密n采用一系
14、列转轮,每一个都是一个代换表,转轮可以采用一系列转轮,每一个都是一个代换表,转轮可以依次旋转加密每个字母依次旋转加密每个字母q用用3个转轮就有个转轮就有 263=17576 代替表代替表2022-3-7302022-3-7342022-3-7352022-3-736目目 录录4.0 古典密码古典密码4.1 数据加密标准数据加密标准DES4.2高级加密标准高级加密标准AES4.3 其他分组密码算法介绍其他分组密码算法介绍4.4 流密码算法流密码算法RC44.5 分组密码工作模式分组密码工作模式2022-3-737如何实现加解密过程相同、密钥相同的对称如何实现加解密过程相同、密钥相同的对称密码算法
15、密码算法?4.1 数据加密标准数据加密标准DES2022-3-7384.1 数据加密标准数据加密标准DESn 数据加密标准数据加密标准DES(Data Encryption Standard)是一个著名是一个著名分组加密算法。分组加密算法。n 美国国家标准局美国国家标准局1973年年5月公开征集用于计算机数据在传输和月公开征集用于计算机数据在传输和存储期间实现加密保护的密码算法。存储期间实现加密保护的密码算法。n 1975年美国国家标准局接受了年美国国家标准局接受了IBM公司提交的一种密码算法并公司提交的一种密码算法并向社会公开征求意见。向社会公开征求意见。n 1977年正式采用该算法作为美国
16、数据加密标准。年正式采用该算法作为美国数据加密标准。n 1980年年12月美国国家标准协会正式采用该算法作为美国商用加月美国国家标准协会正式采用该算法作为美国商用加密算法。密算法。2022-3-7394.1.1 概述概述n 美国国家标准局征求加密算法的要求:美国国家标准局征求加密算法的要求:q提供高质量的数据保护,防止数据未经授权的泄露和提供高质量的数据保护,防止数据未经授权的泄露和未被察觉的修改。未被察觉的修改。q具有相当高的复杂性,使得破译的开销超过可能获得具有相当高的复杂性,使得破译的开销超过可能获得的利益,同时又便于理解和掌握。的利益,同时又便于理解和掌握。q密码体制的安全性应该不依赖
17、于算法的保密,其安全密码体制的安全性应该不依赖于算法的保密,其安全性仅以加密密钥的保密为基础。性仅以加密密钥的保密为基础。 q实现经济,运行有效,并且适用于多种完全不同的应实现经济,运行有效,并且适用于多种完全不同的应用。用。2022-3-7404.1.1 概述概述nDES是一种分组密码算法,加密和解密使用相同的密是一种分组密码算法,加密和解密使用相同的密钥。钥。nDES的分组长度为的分组长度为64比特位比特位。n使用使用64比特密钥(其中包括比特密钥(其中包括8比特奇偶校验位),密比特奇偶校验位),密钥通过扩展后钥通过扩展后n经过经过16轮对明文分组的代换和置换轮对明文分组的代换和置换202
18、2-3-7414.1.2 DES工作过程工作过程2022-3-7421. 初始置换初始置换和和其逆置换其逆置换 IP置换置换逆逆IP置换置换2022-3-7432. f函数函数2022-3-7442. f函数函数2022-3-7452. f函数函数置换置换P2022-3-7464.1.3 密钥调度密钥调度n56比特密钥作为初始输入,经过置换选择操作比特密钥作为初始输入,经过置换选择操作PC1,输出输出56比特分作左右两个部分(各比特分作左右两个部分(各28比特),分别做左循环比特),分别做左循环移位,之后左右两部分合并再进行置换选择操作移位,之后左右两部分合并再进行置换选择操作PC2,产,产生
19、生48比特轮密钥。比特轮密钥。置换选择置换选择PC1置换选择置换选择PC22022-3-7474.1.4 DES安全性分析安全性分析n S盒是盒是DES的核心,也是的核心,也是DES算法最敏感的部分,所有替换都是算法最敏感的部分,所有替换都是固定的,甚显神秘。许多密码学家曾担心固定的,甚显神秘。许多密码学家曾担心NSA设计设计S盒时隐藏了盒时隐藏了某些陷门某些陷门。n DES算法具有很好的雪崩效应算法具有很好的雪崩效应。n 1997年年通过通过互联网利用上万台微机互联网利用上万台微机4个月成功破译个月成功破译DES。n 1998年年EFF花费大约花费大约25万美元定制构造了一个万美元定制构造了
20、一个DES解密器,该解密器,该机器包含机器包含1856个定制芯片,可在个定制芯片,可在2天内强力搜索一个天内强力搜索一个DES密钥。密钥。n 2006年德国年德国Bochum和和Kiel大学花费大学花费1万美元,构建了一个名为万美元,构建了一个名为COPACOBANA机器,它包含机器,它包含120个低成本个低成本FPGA,平均在,平均在9天内天内能够完成一个能够完成一个DES密钥穷举。密钥穷举。2022-3-7484.1.5 3DESnP= EK3(DK2(EK1(M)nFIPS PUB46-3标准中定义标准中定义3种密钥使用方式:种密钥使用方式:q 3个密钥相互独立,互不相同。这种方式提供最
21、强安全性,个密钥相互独立,互不相同。这种方式提供最强安全性,相当于提供相当于提供356=168比特长度密钥。比特长度密钥。q K1和和K2相互独立,互不相同,而相互独立,互不相同,而K3=K1。提供。提供256=112比特长度密钥,密钥空间为比特长度密钥,密钥空间为2112=51033。实际应用多采用。实际应用多采用此方法。此方法。q 3个密钥完全相等,即个密钥完全相等,即K1=K2=K3。算法退化为标准。算法退化为标准DES,保证向后兼容。保证向后兼容。2022-3-749目目 录录4.0 古典密码古典密码4.1 数据加密标准数据加密标准DES4.2高级加密标准高级加密标准AES4.3 其他
22、分组密码算法介绍其他分组密码算法介绍4.4 流密码算法流密码算法RC44.5 分组密码工作模式分组密码工作模式2022-3-750如何设计数学上可证明安全性的对称密码算如何设计数学上可证明安全性的对称密码算法法?4.2 高级加密标准高级加密标准AES4.2 高级加密标准高级加密标准AESn1997.4.15,NIST发起征集高级加密标准的活动,目的发起征集高级加密标准的活动,目的是确定一个可以公开技术细节的、全球免费使用的分组密是确定一个可以公开技术细节的、全球免费使用的分组密码算法,作为新的数据加密标准。码算法,作为新的数据加密标准。n1997.9.12,美国联邦登记处公布了正式征集,美国联
23、邦登记处公布了正式征集AES候选算候选算法的通告。作为进入法的通告。作为进入AES候选过程的一个条件,开发者承候选过程的一个条件,开发者承诺放弃被选中算法的知识产权。诺放弃被选中算法的知识产权。nNIST对对AES算法的要求算法的要求q 算法应比三重算法应比三重DES快而且至少还要一样的安全快而且至少还要一样的安全q 应当具有应当具有128比特分组长度和比特分组长度和128/192/256比特密钥长度比特密钥长度n1998.8.12首届首届AES会议会议NIST收到收到15个候选算法。个候选算法。1999.3.22第二次第二次AES会议将候选名单减少为会议将候选名单减少为5个:个:qMARS(
24、IBM)、)、RC6(MIT)、)、Rijndael(比)、(比)、Serpent( 英、以、美)、英、以、美)、Twofish(美)(美)n2000.4.13第三次第三次AES会议上,对这会议上,对这5个候选算法的各种分个候选算法的各种分析结果进行了讨论。析结果进行了讨论。n2000.10.2,NIST宣布了获胜者:比利时密码专家宣布了获胜者:比利时密码专家Vincent Rijmen和和Joan Daemen设计的设计的Rijndael算法。算法。2001年年11月出版了最终标准月出版了最终标准FIPS PUB197,该算法称为,该算法称为AES: Advanced Encryption
25、Standard。4.2 高级加密标准高级加密标准AES4.2 高级加密标准高级加密标准AESnRijndael算法算法q分组长度为分组长度为128比特,密钥长度为比特,密钥长度为128/192/256比特比特q使用替换置换网络设计,而没有采用使用替换置换网络设计,而没有采用Feistel结构,软硬结构,软硬件实现都很快。件实现都很快。q基本特性基本特性m 能够抵抗已知的所有攻击能够抵抗已知的所有攻击m 在各种平台上执行速度快,代码紧凑在各种平台上执行速度快,代码紧凑m 设计简单设计简单2022-3-7544.2.1 AES基本操作流程基本操作流程nAES由多轮操作组成,轮数由分组和密钥长度决
26、定由多轮操作组成,轮数由分组和密钥长度决定。nAES在在4n字节数组字节数组/矩阵上操作,称为状态矩阵上操作,称为状态(State),其中,其中n是密钥字节数除是密钥字节数除4。n数据结构数据结构q 以字节为单位的方阵描述:输入分组以字节为单位的方阵描述:输入分组in、中间数组、中间数组State、输出、密钥、输出、密钥q 排列顺序:方阵中从上到下,从左到右排列顺序:方阵中从上到下,从左到右2022-3-7554.2.1 AES基本操作流程基本操作流程n AES状态矩阵的构造与变化状态矩阵的构造与变化2022-3-7564.2.1 AES基本操作流程基本操作流程n AES允许分组和密钥以允许分
27、组和密钥以128比特为基础,以比特为基础,以8字节倍数扩展长度字节倍数扩展长度,因此,因此192、256比特分组或密钥被组织成比特分组或密钥被组织成46、48矩阵。矩阵。n AES标准中使用标准中使用Nb、Nk分别表示分组矩阵、密钥矩阵列数,如分别表示分组矩阵、密钥矩阵列数,如当分组为当分组为46矩阵,即矩阵,即Nb=6,密钥为,密钥为48矩阵,则矩阵,则Nk=8。n AES算法流程中轮数依赖于密钥长度,标准中使用算法流程中轮数依赖于密钥长度,标准中使用Nr表示轮数。表示轮数。AES包括包括3个分组密码套件:个分组密码套件: AES-128、AES-192、AES-256对应对应Nk分别为分别
28、为4、6、8,即密钥长度对应,即密钥长度对应128、192和和256比特,对应轮数比特,对应轮数Nr等于等于10、12、14,分组长度都为,分组长度都为128比特。比特。2022-3-7574.2.1 AES基本操作流程基本操作流程 n AES的参数的参数AES-128AES-192AES-256密钥长度密钥长度(字(字/字节字节/位)位)4/16/1286/24/1928/32/256明文分组长度明文分组长度(字(字/字节字节/位)位)4/16/1284/16/1284/16/128轮数轮数101214轮密钥长度轮密钥长度(字(字/字节字节/位)位)4/16/1284/16/1284/16/
29、128扩展密钥长度扩展密钥长度(字(字/字节)字节)44/17652/20860/2404.2.1 AES基本操作流程基本操作流程nAES加解密基本流程加解密基本流程q首选执行一次初始密钥混合:明文字节矩阵与初始主密首选执行一次初始密钥混合:明文字节矩阵与初始主密钥矩阵直接相加。钥矩阵直接相加。q然后按规定次数执行轮变换。然后按规定次数执行轮变换。2022-3-7592022-3-7604.2.1 AES基本操作流程基本操作流程nAES的轮变换:每一轮包含的轮变换:每一轮包含4个步骤个步骤(最后一轮稍有不最后一轮稍有不同同)q字节替换字节替换(Byte):执行一个非线性替换操作,通过):执行一
30、个非线性替换操作,通过查表替换每个字节。查表替换每个字节。q行移位行移位:状态(矩阵)的每一行按字节为单位循环移:状态(矩阵)的每一行按字节为单位循环移动若干字节。动若干字节。q列混合列混合:基于状态列的混合操作。:基于状态列的混合操作。q轮密钥叠加轮密钥叠加:状态的每一个字节混合轮密钥:状态的每一个字节混合轮密钥,轮密钥轮密钥由密钥调度算法产生。由密钥调度算法产生。4.2.1 AES基本操作流程基本操作流程 n AES算法结构算法结构4.2.1 AES基本操作流程基本操作流程nAES算法结构算法结构qAES算法的轮变换中没有算法的轮变换中没有Feistel结构,轮变换是由三结构,轮变换是由三
31、个不同的可逆一致变换组成,称之为层。个不同的可逆一致变换组成,称之为层。m线性混合层:确保多轮之上的高度扩散。线性混合层:确保多轮之上的高度扩散。m非线性层:具有最优最差情形非线性性的非线性层:具有最优最差情形非线性性的S-盒的并盒的并行应用。行应用。m密钥加层:轮密钥简单地异或到中间状态上密钥加层:轮密钥简单地异或到中间状态上。2022-3-7644.2.1 AES基本操作流程基本操作流程nSP网络结构网络结构q在这种密码的每一轮中,轮输在这种密码的每一轮中,轮输入首先被一个由子密钥控制的入首先被一个由子密钥控制的可逆函数可逆函数S作用,然后再对所作用,然后再对所得结果用置换(或可逆线性变得
32、结果用置换(或可逆线性变换)换)P作用。作用。S和和P分别被称为分别被称为混乱层和扩散层,主要起混乱混乱层和扩散层,主要起混乱和扩散作用。和扩散作用。4.2.2 轮操作轮操作1.字节替换字节替换q状态矩阵中每个字节通过查状态矩阵中每个字节通过查S盒进行替换,实现密码算盒进行替换,实现密码算法的非线性运算。法的非线性运算。qS盒是一个盒是一个1616可逆矩阵,用作替换表。可逆矩阵,用作替换表。q查查S盒方法:以一个状态字节的高盒方法:以一个状态字节的高4位作为行号,低位作为行号,低4位位作为列号,确定作为列号,确定S盒中的一个字节位置,以该字节替换盒中的一个字节位置,以该字节替换原状态字节。原状
33、态字节。2022-3-7664.2.2 轮操作轮操作1. 字节替换字节替换4.2.2 轮操作轮操作1.字节替换字节替换nS盒盒n逆逆S盒盒4.2.2 轮操作轮操作1.字节替换字节替换n 字节替换的例子字节替换的例子1.字节替换:字节替换:S盒的构造盒的构造q 初始化:逐行按上升排列的字节值初始化初始化:逐行按上升排列的字节值初始化S盒。盒。q 元素求逆:在元素求逆:在GF(28)中求逆中求逆q 元素置换元素置换:(b7,b6.b0)-(b7,b6.b0)。其中。其中iiiiiiicbbbbbb8mod78mod68mod58mod4 0110001111111000111100017070bb
34、bb ,067ccc=(01100011)2 4.2.2 轮操作轮操作4.2.2 轮操作轮操作2. 行移位行移位n1、2、3行以字节为单位分别按行以字节为单位分别按1、2、3字节的偏移量做字节的偏移量做循环左移位。循环左移位。q状态矩阵为状态矩阵为4 46 6和和4 48 8时移位偏移量分别为时移位偏移量分别为(1(1、2 2、3)3)和和(1(1、3 3、4)4)4.2.2 轮操作轮操作2. 行移位行移位n 例子例子4.2.2 轮操作轮操作3. 列混合列混合n将状态矩阵每一列看作将状态矩阵每一列看作GF(28)上的多项式与一个固定上的多项式与一个固定多项式多项式a(x)模模x4+1相乘。相乘
35、。a(x)(03)x3+(01)x2+(01)x+(02)n上述多项式乘法可表示成如下矩阵形式上述多项式乘法可表示成如下矩阵形式2022-3-7734.2.2 轮操作轮操作3. 列混合列混合n 例子例子4.2.2 轮操作轮操作4.轮密钥加轮密钥加n一个简单地按位异或操作一个简单地按位异或操作 4.2.2 轮操作轮操作n轮操作小结轮操作小结qSubBytes的目的是为了得到一个非线性的代换密码。对的目的是为了得到一个非线性的代换密码。对于密码抗差分分析来说,非线性是一个重要的性质。于密码抗差分分析来说,非线性是一个重要的性质。q ShiftRows 和和MixColumns 的目的是获得明文消息
36、分的目的是获得明文消息分组在不同位置上的字节混合。组在不同位置上的字节混合。q AddRoundKey 给出了消息分布所需的秘密随机性。给出了消息分布所需的秘密随机性。4.2.3 密钥扩展密钥扩展n轮密钥是通过密钥调度算法产生,包括两个组成部分:密轮密钥是通过密钥调度算法产生,包括两个组成部分:密钥扩展和轮密钥选取。基本原理如下:钥扩展和轮密钥选取。基本原理如下:q所有轮密钥比特的总数等于分组长度乘轮数加所有轮密钥比特的总数等于分组长度乘轮数加1。例如。例如128比特分组长度和比特分组长度和10轮迭代,共需轮迭代,共需1408比特的密钥。比特的密钥。q将密钥扩展成一个扩展密钥。将密钥扩展成一个
37、扩展密钥。q轮密钥按下述方式从扩展密钥中选取:第一个轮密钥由轮密钥按下述方式从扩展密钥中选取:第一个轮密钥由开始开始Nb个字组成,第二个轮密钥由接下来的个字组成,第二个轮密钥由接下来的Nb个字组个字组成,如此继续下去。成,如此继续下去。4.2.3 密钥扩展密钥扩展n 扩展过程扩展过程2022-3-7794.2.3 密钥扩展密钥扩展12022-3-7804.2.3 密钥扩展密钥扩展 n函数函数gqRotWord执行一字节循环左移执行一字节循环左移b0,b1,b2,b3 b1,b2,b3,b0qSubWord使用使用S-盒实行字节替换盒实行字节替换q前两步的结果与轮常数前两步的结果与轮常数Rcon
38、 j 异或异或n轮常数轮常数Rcon j j12345678910RCj01020408102040801B364.2.3 密钥扩展密钥扩展n伪代码伪代码4.2.3 密钥扩展密钥扩展n密钥扩展伪代码密钥扩展伪代码4.2.3 密钥扩展密钥扩展n 例子例子4.2.4 AES解密操作解密操作nAES解密是加密的逆过程解密是加密的逆过程q逆字节替换:翻转逆字节替换:翻转S盒盒q逆行移位:右循环字节行移位逆行移位:右循环字节行移位q逆列混合:逆列混合:a-1(x)(0b)x3+(0d)x2+(09)x+(0e)q轮密钥加:异或运算轮密钥加:异或运算2022-3-786目目 录录4.0 古典密码古典密码4
39、.1 数据加密标准数据加密标准DES4.2 高级加密标准高级加密标准AES4.3 其他分组密码算法介绍其他分组密码算法介绍4.4 流密码算法流密码算法RC44.5 分组密码工作模式分组密码工作模式2022-3-787对称密码中混乱与替换的不同实现方法对称密码中混乱与替换的不同实现方法?4.3 其它分组密码算法介绍其它分组密码算法介绍2022-3-7884.3.1 IDEA算法算法n国际数据加密算法国际数据加密算法IDEA由由James Massey和我国学者来和我国学者来学嘉学嘉1991年共同设计年共同设计,在协在协议议PGP中广泛应用。中广泛应用。n来学嘉来学嘉2022-3-7894.3.1
40、 IDEA算法算法nIDEA算法采用算法采用64比特分组和比特分组和128比特密钥,包括相同的比特密钥,包括相同的8轮转换和轮转换和1个输出转换(半轮)。个输出转换(半轮)。nIDEA通过交叉使用不同群通过交叉使用不同群-模加和乘运算,以及比特位异模加和乘运算,以及比特位异或,或,实现其安全性(实现其安全性(“不协调不协调”运算)运算)。n轮变换输入将轮变换输入将64比特分为比特分为4个个16比特子分组,经过变换输比特子分组,经过变换输出出4个个16比特子分组,作为下一轮输入。比特子分组,作为下一轮输入。n每轮变换,在模乘或模加运算中混合每轮变换,在模乘或模加运算中混合6个个16比特密钥,最比
41、特密钥,最后一轮后一轮4个运算,混合个运算,混合K1到到K4密钥,密钥,4个个16比特输出合并比特输出合并后作为后作为IDEA产生的产生的64比特密文。比特密文。2022-3-7902022-3-7914.3.2 Blowfish算法算法nBruce Schneier在在1993设计设计的分组加密算法,速度的分组加密算法,速度快。快。n依赖密钥的依赖密钥的S盒和复杂盒和复杂的的密钥密钥调度。调度。n使用使用64比特分组,从比特分组,从32比特比特到到448比特可变长度密钥,比特可变长度密钥,采用采用16轮轮Feistel结构结构。P P1818P P17172022-3-7924.3.2 Bl
42、owfish算法算法nBlowfish的的轮函数轮函数2022-3-7934.3.2 Blowfish算法算法nBlowfish算法算法包括包括2个子密钥阵列个子密钥阵列q18行的行的P阵列:每轮使用阵列:每轮使用1行(行(32比特),最后比特),最后2行在行在16轮输出的左右分别异或。轮输出的左右分别异或。q4个个256元素的元素的S盒:输入盒:输入8比特,输出比特,输出32比特。比特。m4个个S盒的输出再经过模盒的输出再经过模232加运算和异或运算后产生加运算和异或运算后产生32比特输出。比特输出。n解密与加密过程完全一样,但解密与加密过程完全一样,但P1,.,P18按逆序使用。按逆序使用
43、。nP阵列和阵列和S阵列均由密钥调试算法生成阵列均由密钥调试算法生成2022-3-7944.3.2 Blowfish算法算法nBlowfish的密钥调度算法复杂的密钥调度算法复杂q使用从使用从的确的确16进制导出值初始化进制导出值初始化P阵列和阵列和S盒;盒;q密钥与密钥与P阵列逐行异或;阵列逐行异或;q加密全加密全0分组,用密文替换分组,用密文替换P1和和P2;q再加密上一轮密文,用输出替换再加密上一轮密文,用输出替换P3和和P4;依此类推,替;依此类推,替换整个换整个P阵列和阵列和S盒;盒;q加密算法运行加密算法运行521次产生所有子密钥,大约次产生所有子密钥,大约4KB数据。数据。nRC
44、5算法算法q可变分组长度(可变分组长度(32、64或或128比特)、密钥长度(比特)、密钥长度(0到到2040比特)以及轮数(比特)以及轮数(0到到255),原始),原始参数参数和和q用于研究和评估作为密码原语相关操作。用于研究和评估作为密码原语相关操作。qRC5包括一系列模加和异或,采用类包括一系列模加和异或,采用类Feistel网络结构。网络结构。q密钥调度密钥调度复杂,复杂,本质上本质上使用使用单向函数扩展密钥。单向函数扩展密钥。q每一轮变换有相同的每一轮变换有相同的2个半轮构成。个半轮构成。nRC5算法的轮结构算法的轮结构2022-3-797目目 录录4.0 古典密码古典密码4.1 数
45、据加密标准数据加密标准DES4.2 高级加密标准高级加密标准AES4.3 其他分组密码算法介绍其他分组密码算法介绍4.4 流密码算法流密码算法RC44.5 分组密码工作模式分组密码工作模式2022-3-798如何实现如何实现“无限无限”长度密钥的对称密码算法长度密钥的对称密码算法?4.4 流密码算法流密码算法RC42022-3-7994.4 流密码算法流密码算法RC4nRC4算法由主密钥(通信双方共享的一定长度密钥)算法由主密钥(通信双方共享的一定长度密钥)按一定密钥调度算法产生任意长度伪随机密钥字节流按一定密钥调度算法产生任意长度伪随机密钥字节流(以字节为单位),与明文流按字节异或生成密文流
46、(以字节为单位),与明文流按字节异或生成密文流,解密时密文流与相同的密钥流按字节异或恢复出明,解密时密文流与相同的密钥流按字节异或恢复出明文字节流。文字节流。2022-3-71004.4 流密码算法流密码算法RC4nRC4算法先使用算法先使用1到到256字节(字节(8到到2048比特)的可变长度比特)的可变长度密钥初始化一个密钥初始化一个256个字节状态矢量,记为个字节状态矢量,记为S。S的元素记的元素记为为S0、S1、S2 S255,类似于数组表示。,类似于数组表示。自自始至终始至终S向量始终包含向量始终包含0255(十进制)所有的(十进制)所有的8比特数。比特数。n加密和解密过程中,密钥流每个字节由加密和解密过程中,密钥流每个字节由S中的中的256个元素个元素按一定方式依次选出一个元素生成按一定方式依次选出一个元素生成;每生成一个密钥字节每生成一个密钥字节,S中的元素就被重新置换一次。中的元素就被重新置换一次。2022-3-71014.4 流密码算
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 沈阳理工大学《车辆人机工程学》2021-2022学年第一学期期末试卷
- 国家著作权软件著作权转让合同
- 2024-2025学年新教材高中历史第5课古代非洲与美洲课时素养评价含解析新人教版必修中外历史纲要下
- 高中历史第六单元资本主义运行机制的调节第19课当代资本主义的新变化史料解读素材北师大版必修2
- 大班音乐《粗心的小画家》课件
- 2024房屋维修工程施工合同
- 2024装修合同签署小常识分享
- 2024办公设备采购合同范本
- 2024【服务协议模板】代驾服务协议合同范本
- 2024装修合同制定的注意事项
- 篮球社团教案
- 2024 美国中概股上市公司发展现状白皮书
- 丧葬费家庭协议书范文范本
- 公司对公司走账协议书范文模板
- 留置导尿并发症的预防及处理
- 消防安全宣传教育-开展“消防安全大家谈”、“消防公益说”专题讲座
- 中小学119消防宣传月活动方案3篇
- 部编版五年级语文上册快乐读书吧测试题及答案
- 中汇富能排矸场设计
- 江苏省2024-2025学年八年级上学期期中专题复习最值问题专题训练
- 人教版2024新版八年级全一册信息技术第1课 开启物联网之门 教学设计
评论
0/150
提交评论