密 码 学
分组密码运行模式-大数
据加密
一、计算机数据的特殊性
1、存在明显的数据模式:
• 许许多多数数据据都都具具有有某某种种固固有有的的模模式式。。这这主主要要是是
由由数据冗余数据冗余和和数据结构数据结构引起的。引起的。
• 各各种种计计算算机机语语言言的的语语句句和和指指令令都都十十分分有有限限,,
因因而而在在程程序序中中便便表表现现为为少少量量的的语语句句和和指指令令的的
大量重复大量重复。。
• 各种语言程序往往具有某种各种语言程序往往具有某种固定格式固定格式。。
• 数据库的记录也往往具有某种数据库的记录也往往具有某种固定结构固定结构。。
• 操作系统和网络也有同样的问题。操作系统和网络也有同样的问题。
一、计算机数据的特殊性
1、存在明显的数据模式:
• 根根据据明明文文相相同同、、密密钥钥相相同同,,则则密密文文相相同同的的道道
理理,,这这些些固固有有的的数数据据模模式式将将在在密密文文中中表表现现出出
来。来。
• 掩盖明文数据模式的方法:掩盖明文数据模式的方法:
预处理技术预处理技术((随机掩盖随机掩盖))
链接技术链接技术
• 如如果果不不能能掩掩盖盖数数据据模模式式,,既既使使采采用用安安全全的的密密
码算法也是徒劳的。码算法也是徒劳的。
一、计算机数据的特殊性
数据的特殊性带来的需求:
• 分组固定而待加密的数据量是不定的。分组固定而待加密的数据量是不定的。
• 即即使使有有了了安安全全的的分分组组密密码码算算法法,,也也需需要要采采用用
适适当当的的工工作作模模式式来来隐隐蔽蔽明明文文的的统统计计特特性性、、数数
据据的的格格式式等等,,以以提提高高整整体体的的安安全全性性,,降降低低删删
除、重放、插入、和伪造成功的机会。除、重放、插入、和伪造成功的机会。
• 不不仅仅要要保保持持各各分分组组的的完完整整性性,,还还有有保保持持各各分分
组的次序不变。组的次序不变。
二、分组密码的工作模式
1977年DES颁布。1981年美国针对
DES的应用制定了四种基本工作模式:
b电码本模式(ECB)
每个明文组独立地以同一密钥加密,单
个数据加密。
b密文反馈链接模式(CBC)
将前一组密文与当前明文组逐步异或后再进行将前一组密文与当前明文组逐步异或后再进行
分组、加密,用途:加密、认证。分组、加密,用途:加密、认证。
二、分组密码的工作模式
b 密码反馈模式(密码反馈模式(CFBCFB))
每次只处理每次只处理kk位数据,将上一次的密文反馈到输位数据,将上一次的密文反馈到输
入端,从加密器的输出取入端,从加密器的输出取kk位,与当前的位,与当前的kk位明位明
文逐位异或,产生相应密文;用途:一般传送文逐位异或,产生相应密文;用途:一般传送
数据的流加密,认证数据的流加密,认证
b 输出反馈模式(输出反馈模式(OFBOFB))
类似于类似于CFBCFB,以加密器输出的,以加密器输出的kk位随机数字直接反馈到位随机数字直接反馈到
加密器的输入,用途:对有扰信道传送的数据流进行加加密器的输入,用途:对有扰信道传送的数据流进行加
密(如卫星数传)密(如卫星数传)
二、分组密码的工作模式
2000年美国在征集AES的同时又公开
征集AES的工作模式。共征集到 15个候
选工作模式。
b新的工作模式标准还在评审中。
b这些新的工作模式将为AES的应用作出贡
献。
二、分组密码的工作模式
1、电码本模式(ECB)
b 直接利用分组密码对明文的各分组进行加密。直接利用分组密码对明文的各分组进行加密。
b 设设 明文明文MM==((MM1 1 ,,MM2 2 ,,……,,MMn n )),,
密钥为密钥为KK,,
密文密文CC== ( ( CC1 1 ,,CC2 2 ,,……,,CCnn ), ),
其中其中 CCi i ==EE((MMii,,KK)), i=1,2,…,n, i=1,2,…,n
bb 电码本方式是分组密码的基本工作模式。电码本方式是分组密码的基本工作模式。
bb 缺点:可能出现短块,这时需要特殊处理。缺点:可能出现短块,这时需要特殊处理。
bb 缺点:缺点:暴露明文的数据模式。暴露明文的数据模式。
bb 应用:应用:适合加密密钥等短数据适合加密密钥等短数据
二、分组密码的工作模式
2、密文反馈链接模式(CBC)
①①明明密密文文链链接接方方式式((Plaintext Plaintext and and CiphertextCiphertext BlockBlock
ChainingChaining))
b 设设 明文明文 M=M=((MM1 1 ,,MM2 2 ,,……,,MMn n )),,
密钥为密钥为KK,,
密文密文 C = ( C C = ( C1 1 ,,CC2 2 ,,……,,CCnn ), ),
其中其中 EE((MMii ⊕⊕ZZ ,,KK),), i=1i=1
EE((MMii ⊕⊕MMi-1i-1 ⊕⊕CCi-1i-1,,KK)), , i=2,…,ni=2,…,n
ZZ为初始化向量。为初始化向量。
CCii==
二、分组密码的工作模式
2、密文反馈链接模式(CBC)
①①明密文链接方式明密文链接方式
b 即即使使MMi i ==MMj j ,,但但因因一一般般都都有有MMi-1i-1 ⊕⊕CCi-1i-1 ≠≠MMj-1j-1
⊕⊕CCj-1 j-1 ,,从从而而使使CCi i ≠C≠Cj j ,,从从而而掩掩盖盖了了明明文文中中的的数数
据模式。据模式。
b 加加密密时时,,当当MMii 或或CCi i 中中发发生生一一位位错错误误时时,,自自此此以以
后后的的密密文文全全都都发发生生错错误误。。这这种种现现象象称称为为错错误误传传
播无界。播无界。
b 解密时也是错误传播无界。解密时也是错误传播无界。
二、分组密码的工作模式
2、密文反馈链接模式(CBC)
①①明密文链接方式明密文链接方式
b 错错误误传传播播无无界界的的缺缺点点::当当磁磁盘盘发发生生一一点点损损坏坏时时
将导致整个文件无法解密。将导致整个文件无法解密。
b 错错误误传传播播无无界界的的优优点点::可可用用于于数数据据完完整整性性、、真真
实性认证。实性认证。
二、分组密码的工作模式
M1
E
C1
M1
D
M2
E
C2
D
Mn
E
Cn
D
MnM2
加密加密
解密解密
KK
KK
KK
KK
KK
KK
ZZ
ZZ
二、分组密码的工作模式
2、密文反馈链接模式(CBC)
b 明明密密文文链链接接方方式式具具有有加加解解密密错错误误传传播播无无界界的的特特
性性,,而而磁磁盘盘文文件件加加密密和和通通信信加加密密通通常常希希望望解解密密
错误传播有界,这时可采用密文链接方式。错误传播有界,这时可采用密文链接方式。
②②密文链接方式(密文链接方式( Ciphertext Ciphertext BlockBlock ChainingChaining))
b 设设 明文明文 M=M=((MM1 1 ,,MM2 2 ,,……,,MMn n )),,
密钥为密钥为KK,,
密文密文 C = ( C C = ( C1 1 ,,CC2 2 ,,……,,CCnn ), ),
其中其中 EE(( MMii ⊕⊕ ZZ ,,KK),), i=1i=1
EE((MMii ⊕⊕CCi-1i-1,,KK)), , i=2,…,ni=2,…,n
CCii==
二、分组密码的工作模式
M1
E
C1
M1
D
M2
E
C2
D
Mn
E
Cn
D
MnM2
加密加密
解密解密
KK
KK
KK
KK
KK
KK
ZZ
ZZ
二、分组密码的工作模式
2 2、、密文反馈链接模式(密文反馈链接模式(CBCCBC))
②②密文链接方式密文链接方式
bb 加密:错误传播无界加密:错误传播无界
bb 解密时:错误传播有界解密时:错误传播有界
D D((CCii ,,KK))⊕⊕ZZ ,, i=1i=1
D D((CCii ,,KK))⊕⊕CCi-1 i-1 , , i=2,…,ni=2,…,n
CCi-1 i-1 发发生生了了错错误误,,则则只只影影响响MMi-1 i-1 和和MMi i 发发生生错错误误,,
其余不错,因此错误传播有界。其余不错,因此错误传播有界。
b 缺缺点点也也是是要要求求数数据据的的长长度度是是密密码码分分组组长长度度的的整整
数倍,否则最后一个数据块将是短块。数倍,否则最后一个数据块将是短块。
MMii==
二、分组密码的工作模式
3、输出反馈模式 (OFB)
b 将一个分组密码转换为一个密钥序列产生器。将一个分组密码转换为一个密钥序列产生器。
从而可以实现用分组密码按流密码的方式进行从而可以实现用分组密码按流密码的方式进行
加解密。加解密。
b
64移位寄存器 K位
E K位
明文明文
KK位位
密文密文
KK位位
种子种子RR00
KK
二、分组密码的工作模式
3、输出反馈模式 (OFB)
b 如果分组密码是安全的,则产生的密钥序列也如果分组密码是安全的,则产生的密钥序列也
是安全的。是安全的。
b 加解密都没有错误传播。加解密都没有错误传播。
b 适于加密冗余度较大的数据,如语音和图象数适于加密冗余度较大的数据,如语音和图象数
据。据。
b 为了提高速度可输出最右边的为了提高速度可输出最右边的 8 8位。位。
b 但因无错误传播而对密文的篡改难以检测。但因无错误传播而对密文的篡改难以检测。
二、分组密码的工作模式
4、密码反馈模式 CFB(Cipher FeedbackCipher Feedback)
b CFBCFB模式也是用分组密码产生密钥序列。模式也是用分组密码产生密钥序列。
64移位寄存器 K位
E K位
明文明文
KK位位
密文密文
kk位位
种子种子RR00
KK
二、分组密码的工作模式
4、密码反馈模式 (CFB)
b 与与OFBOFB的不同是,把密文反馈到移位寄存器。的不同是,把密文反馈到移位寄存器。
b 加密时若明文错了一位,则影响相应的密文错,加密时若明文错了一位,则影响相应的密文错,
这一错误反馈到移位寄存器后将影响到后续的这一错误反馈到移位寄存器后将影响到后续的
密钥序列错,导致后续的密文都错。密钥序列错,导致后续的密文都错。
b 解密时若密文错了一位,则影响相应的明文错,解密时若密文错了一位,则影响相应的明文错,
但密文的这一错误反馈到移位寄存器后将影响但密文的这一错误反馈到移位寄存器后将影响
到后续的密钥序列错,导致后续的明文都错。到后续的密钥序列错,导致后续的明文都错。
b 因错误传播无界,可用于检查发现对明密文的因错误传播无界,可用于检查发现对明密文的
篡改。篡改。
二、分组密码的工作模式
5、X CBC (Extended Cipher Block
Chaining Encryption)模式
b 20002000年美国学者年美国学者J0hn BlackJ0hn Black和和Phllip RogawayPhllip Rogaway提提
出出X CBCX CBC模式,作为模式,作为CBCCBC模式的扩展,被美国模式的扩展,被美国
政府采纳作为标准。政府采纳作为标准。
b X CBCX CBC主要是解决了主要是解决了CBCCBC要求明文数据的长度要求明文数据的长度
是密码分组长度的整数倍的限制,可以处理任是密码分组长度的整数倍的限制,可以处理任
意长的数据。如果用分组密码是安全的,则密意长的数据。如果用分组密码是安全的,则密
钥序列就是安全的。钥序列就是安全的。
二、分组密码的工作模式
5、X CBC (Extended Cipher Block
Chaining Encryption)模式
b 设设明明文文M=M=((MM1 1 ,,MM2 2 ,,……,,MMn-1n-1,,MMn n )),,相相
应应的的密密文文C=( C=( CC1 1 ,,CC2 2 ,,……,,CCnn--11,,CCnn )),,而而MMn n
可能是短块。可能是短块。
b 使用使用33个密钥个密钥 K K11,,KK22,,KK33进行加密。进行加密。
b 使用填充函数使用填充函数 PadPad((XX))对短块数据进行填充。对短块数据进行填充。
二、分组密码的工作模式
5、X CBC (Extended Cipher Block
Chaining Encryption)模式
• 填充函数填充函数PadPad((XX)定义如下:)定义如下:
XX,, 当当XX不是短块不是短块;;
X X10…010…0,, 当当XX是短块是短块。。
• 经经填填充充函函数数 PadPad((XX))填填充充后后的的数数据据块块一一定定
是标准块。是标准块。
PadPad((XX)=)=
二、分组密码的工作模式
5、X CBC (Extended Cipher Block
Chaining Encryption)模式
bb 令令ZZ==00,以,以ZZ作为初始化向量。加密过程如下:作为初始化向量。加密过程如下:
EE((MMii ⊕⊕ZZ ,,KK11),),i=1i=1
E E((MMii ⊕⊕CCi-1i-1,,KK11)), i=2,…,n, i=2,…,n--11
E E((MMnn ⊕⊕CCn -1n -1 ⊕⊕KK22,,KK11),), 当当MMn n 不是短块;不是短块;
EE((PADPAD((MMnn))⊕⊕CCn -1 n -1 ⊕⊕KK33,,KK11),当),当MMnn是短块是短块。。
CCii ==
CCn n ==
二、分组密码的工作模式
5、X CBC (Extended Cipher Block
Chaining Encryption)模式
b X CBCX CBC与与CBCCBC区别:区别:
♣♣CBCCBC要求最后一个数据块是标准块,不是短要求最后一个数据块是标准块,不是短
块块。。
♣♣ X CBCX CBC既允许最后一个数据块是标准块,也既允许最后一个数据块是标准块,也
允许是短块。允许是短块。
♣♣最后一个数据块的加密方法与最后一个数据块的加密方法与 CBCCBC不同不同。。
♣♣ 因为有填充,需要传输填充长度信息。因为有填充,需要传输填充长度信息。
二、分组密码的工作模式
5、X CBC (Extended Cipher Block
Chaining Encryption)模式
b X CBC模式的主要优点:
• 可以处理任意长度的数据。可以处理任意长度的数据。
• 适适于于计计算算产产生生检检测测数数据据完完整整性性的的消消息息认认证证码码
MACMAC。。
· X CBC模式的主要缺点:
· 有填充,不适合文件和数据库加密。有填充,不适合文件和数据库加密。
· 使用使用33个密钥,需要传填充长度,复杂。个密钥,需要传填充长度,复杂。
二、分组密码的工作模式
6、CTR(Counter Mode Encryption)模式
b CTRCTR模式是模式是DiffieDiffie和和HellmanHellman于于19791979年提出的,年提出的,
在征集在征集AESAES工作模式的活动中由工作模式的活动中由CaliforniaCalifornia大学大学
的的Phillip RogawayPhillip Rogaway等人的推荐。等人的推荐。
b 设设TT11,,TT2 2 ,,……,,TTn-1n-1,,TTn n 是是一一给给定定的的计计数数序序列列,,
MM11,,MM22,,……,,MMn-1n-1,,MMn n 是是明明文文,,其其中中MM11,,MM22
,,……,,MMn-1n-1是是标标准准块块,,MMn n 的的可可能能是是标标准准块块,,也也
可可能能是是短短块块。。设设其其长长度度等等于于uu,,uu小小于于等等于于分分组组
长度。长度。
二、分组密码的工作模式
6、CTR(Counter Mode Encryption)模式
b CTR的工作模式的加密过程如下:
• O Oii==EE((TTii,,KK),),i=1,2,…,=1,2,…,n.
• Ci Ci==MMii⊕⊕OOi i ,,i=1,2,…,=1,2,…,n-1.
• C Cnn==MMnn⊕⊕MSBMSBuu((OOnn))..
• 其中其中MSBMSBuu((OOnn)表示)表示OOn n 中的高中的高uu位。位。
计数器
加密算法 E
MM ii CC ii
TT ii
OO ii
KK
TT 11
时钟脉冲时钟脉冲
二、分组密码的工作模式
6、CTR(Counter Mode Encryption)模式
b CTR的工作模式的解密过程如下:
• O Oii==EE((TTii,,KK),),i=1,2,…,=1,2,…,n.
• M Mii==CCii⊕⊕OOi i ,,i=1,2,…,=1,2,…,n-1.
• M Mnn==CCnn⊕⊕MSBMSBuu((OOnn))..
二、分组密码的工作模式
6 6、、CTRCTR((Counter Mode EncryptionCounter Mode Encryption)模式)模式
b CTRCTR的工作模式的优点:的工作模式的优点:
•• CTRCTR模模式式的的优优点点是是安安全全、、高高效效、、可可并并行行、、适适合合任任意意
长度的数据;长度的数据;
•• OOii的计算可预处理高速进行;的计算可预处理高速进行;
•• 加加解解密密过过程程仅仅涉涉及及加加密密运运算算,,不不涉涉及及解解密密运运算算,,因因
此不用实现解密算法。此不用实现解密算法。
•• 适合随机存储数据的解密。适合随机存储数据的解密。
b CTRCTR模模式式的的缺缺点点是是没没有有错错误误传传播播,,因因此此不不易易确确
保数据完整性。保数据完整性。
三、短块加密
b分组密码一次只能对一个固定长度的明文
(密文)块进行加(解)密。
b称长度小于分组长度的数据块为短块。
b必须采用合适的技术解决短块加密问题。
b短块处理技术:
1 1、填充技术、填充技术
2 2、密文挪用技术、密文挪用技术
33、序列加密、序列加密
三、短块加密
1、填充技术
• 用无用的数据填充短块,使之成为标准块。用无用的数据填充短块,使之成为标准块。
• 为了确保加密强度,填充数据应是随机的。为了确保加密强度,填充数据应是随机的。
• 但是但是收信者如何知道哪些数字是填充的呢收信者如何知道哪些数字是填充的呢??
• 这这就就需需要要增增加加指指示示信信息息,,通通常常用用最最后后88位位作作
为填充指示符。为填充指示符。
• 填填充充法法适适于于通通信信加加密密而而不不适适于于文文件件和和数数据据库库
加密。加密。
三、短块加密
Mn-1
a
a b
Mn
E
Cn
D
MnMn-1
加密加密
解密解密
KK
KK
KK
KK
E
D
b Mn
a b
b Mn
CCn-1n-1
22、密文挪用技术、密文挪用技术
三、短块加密
• 密密文文挪挪用用法法也也需需要要指指示示挪挪用用位位数数的的指指示示符符,,
否否则则收收信信者者不不知知道道挪挪用用了了多多少少位位,,从从而而不不能能
正确解密。正确解密。
• 密文挪用加密短块的优点是不引起数据扩展。密文挪用加密短块的优点是不引起数据扩展。
• 缺缺点点是是解解密密时时要要先先解解密密CCnn 、、还还原原挪挪用用后后再再解解
密密CCn-1 n-1 ,从而使控制复杂。,从而使控制复杂。
三、短块加密
3、序列加密
• 对于最后一块短块数据,直接使用密钥
K与短块数据模2相加。
• 序列加密方法的优点是简单。
• 但是如果短块太短,则加密强度不高。
大作业
以DES、AES或SMS4作为加密算法开发出文
件加密软件系统:
• 具有文件加密和解密功能;具有文件加密和解密功能;
• 具有加解密速度统计功能;具有加解密速度统计功能;
• 采用密文反馈链接和密文挪用短块处理技术;采用密文反馈链接和密文挪用短块处理技术;
• 具有较好的人机界面。具有较好的人机界面。
复习题
①① 计算机数据加密有些什么特殊问题?计算机数据加密有些什么特殊问题?
②② 分析分析CBCCBC和和X CBCX CBC工作模式的加解密错误传播情工作模式的加解密错误传播情
况。况。
③ ③ 为什么说填充法不适合计算机文件和数据库加为什么说填充法不适合计算机文件和数据库加
密应用?密应用?
④ ④ 密文挪用方法有什么优缺点?密文挪用方法有什么优缺点?