密码学基础课件:第九讲 对称密码学-4_第1页
密码学基础课件:第九讲 对称密码学-4_第2页
密码学基础课件:第九讲 对称密码学-4_第3页
密码学基础课件:第九讲 对称密码学-4_第4页
密码学基础课件:第九讲 对称密码学-4_第5页
已阅读5页,还剩26页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、第九讲 对称密码学-4分组密码工作模式ECBCBCCFBOFBCTRCBC的填充预言机攻击当我们平凡的使用DES或者AES时,密文的统计特性依旧体现了明文的统计特性可以把DES看成一种264字母的代换表所以明文64比特的统计特性是能够反映出来的AES类似处理分组密码运行模式 另外,分组密码每次加密的明文数据量是固定的分组长度n,而实用中待加密消息的数据量是不定的。 还有,希望降低攻击者删除、重放、插入和伪造成功的机会。 最后,希望所采用的工作模式应当力求简单、有效和易于实现。 分组密码运行模式美国FIPS PUB 74和81中规定了DES的四种基本工作模式:1.电子码本(ECB) 2.密码分组

2、链接(CBC) 3.密码反馈(CFB) 4.输出反馈(OFB) 。 800-38A中NIST将推荐模式扩展为5个, 5.记数器模式(CTR)ECBECB也就是基本运行模式缺点:前面已经陈述密文的统计特性依旧体现了明文的统计特性攻击者能够删除、重放、插入单个分组(剪切-复制攻击)明文需要填充到分组长度的倍数CBCCBC是一种常见的运行模式(SSL,IPSec等)特点:需要初始向量(IV)传输过程中如果c_i密文块出现问题,对明文m_i及m_i+1有影响(存在错误扩展)掩盖了单个明文的统计特性,例如所有分组都相同,密文分组也各不相同攻击者剪切-复制会对相邻分组有影响需要填充加密过程中改变一个明文分

3、组,会造成后续所有密文的改变(有时叫做错误传播,用于做MAC认证)CFBCFB特点:需要初始向量(IV)传输过程中如果c_i密文块出现问题,对明文m_i及m_i+1有影响(存在错误扩展)掩盖了单个明文的统计特性,例如所有分组都相同,密文分组也各不相同攻击者剪切-复制会对相邻分组有影响明文不需要填充加密过程中改变一个明文分组,会造成后续所有密文的改变(有时叫错误传播,用于做MAC认证)OFBOFB特点:需要初始向量(IV)掩盖了单个明文的统计特性,例如所有分组都相同,密文分组也各不相同攻击者删除一个分组会造成以后分组全部解密错误。明文不需要填充OFB是同步流密码另外一个角度CTRCTR特点:需要

4、初始向量(NONCE)掩盖了单个明文的统计特性,例如所有分组都相同,密文分组也各不相同攻击者删除一个分组会造成以后分组全部解密错误。明文不需要填充可并行执行可以以任意分组顺序加密类似同步流密码方式OpenSSL中的运行模式(1) DES ECB 模式 DES_ecb_encrypt() ,该函数把一个 8 字节明文分组 input 加密成为一个 8 字节密文分组 output 。参数中密钥结构 ks 是用函数 DES_set_key() 准备好的,而密钥 key 是用随机数算法产生的 64 个随机比特。参数 enc 指示是加密还是解密。该函数每次只加密一个分组,因此用来加密很多数据时不方便使用

5、。 void DES_ecb_encrypt(const_DES_cblock *input,DES_cblock *output, DES_key_schedule *ks,int enc); int DES_set_key(const_DES_cblock *key,DES_key_schedule *schedule); (2) DES CBC 模式 DES 算法 CBC 操作模式加解密函数是 DES_ncbc_encrypt() 。参数 length 指示输入字节长度。如果长度不是 8 字节的倍数,则会被用 0 填充到 8 字节倍数。因此,输出可能比 length 长,而且必然是 8

6、字节的倍数void DES_ncbc_encrypt(const unsigned char *input,unsigned char *output, long length, DES_key_schedule *schedule, DES_cblock *ivec, int enc)(3) DES CFB 模式 DES 算法 CFB 操作模式加解密函数是 DES_cfb_encrypt() 。参数 length 指示输入字节长度。参数 numbits 则指示了 CFB 每次循环加密多少明文比特,也即密文反馈的比特数目。 ivec 是初始向量,被看做第 0 个密文分组,是不用保密但应随机取值

7、的 8 个字节。如果在一次会话中数次调用 DES_cfb_encrypt() ,则应该记忆 ivec 。由于 CFB 模式中每次 DES 基本操作只加密 numbits 比特明文,因此如果 numbits 太小则效率太低。 void DES_cfb_encrypt(const unsigned char *in, unsigned char *out, int numbits, long length, DES_key_schedule *schedule, DES_cblock *ivec, int enc); 另有一个 numbit 是 64 比特的版本。 num 中的返回值指示了 ive

8、c 中的状态,是和下次调用衔接的。 void DES_cfb64_encrypt(const unsigned char *in, unsigned char *out, long length, DES_key_schedule *schedule, DES_cblock *ivec, int *num, int enc) ; (4) DES OFB 模式 OFB 和 CFB 类似,也有两个函数,用法一样。 void DES_ofb_encrypt(const unsigned char *in,unsigned char *out,int numbits,long length,DES_k

9、ey_schedule *schedule,DES_cblock *ivec); void DES_ofb64_encrypt(const unsigned char *in,unsigned char *out,long length,DES_key_schedule *schedule,DES_cblock *ivec,int *num); OpenSSL 中关于 AES 的函数名和参数接口和 DES 的雷同。相关函数名如下 ( 参数略 ) 。 int AES_set_encrypt_key(); int AES_set_decrypt_key(); void AES_ecb_encryp

10、t(); void AES_cbc_encrypt(); void AES_cfb128_encrypt(); void AES_ofb128_encrypt(); CBC的填充预言机攻击padding oracle attackThe attack relies on having a padding oracle who freely responds to queries about whether a message is correctly padded or notCBC的填充预言机攻击CBC修改示例CBC修改示例a:2:s:4:”name”;s:6:”sdsdsd”;s:8:”g

11、reeting”;s:20:”echo Hello sdsdsd!”;Block 1: a:2:s:4:”name”;Block 2 s:6:”sdsdsd”;Block 3: :”greeting”;s:20:Block 4: “echo Hello sdBlock 5: sdsd!”;0 = s1 = :2 = 6CBC修改示例1. $v = “a:2:s:4:”name”;s:6:”sdsdsd”;s:8:”greeting”;s:20:”echo Hello sdsdsd!”;”;2. $enc = encrypt($v);3. $enc2 = chr(ord($enc2) ord(“6”) ord (“7”);(第一个密文的第3个字节)4. $b = decrypt($enc);CBC的填充预言机攻击pkcs7的填充如果是1个字节填充?the last block is padded with n bytes, each equal to n (for example: six bytes, each byte = 0 x06). CBC的填充预言机攻击考虑C_1,C_2,C_3三个密文,C_3是最后一个分组。攻击者猜测P_3的最后一个字节是x,修改C_2最后一个字节为c_2 XOR x XOR 01猜测如果正确,是合法填充猜测错误,填充不正确,p

温馨提示

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

评论

0/150

提交评论