- 1、本文档共82页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 分组密码 一、分组密码的一般模型 二、DES与IDEA 三、AES 算法——Rijndael 四、分组密码分析方法* 五、分组密码工作模式 一、分组密码的一般模型 分组密码概述 分组密码: 将消息编码表示后的数字(通常是0和1)序列 x1, x2,…, xi,…划分为长为n的组 ,各组(长为n的矢量)分别在密钥 的控制下变换成等长的输出数字序列 (长为m的矢量)。 分组密码是一种满足下列条件的映射E: 对每个 , 是从 到 的置换 :密钥为 时的加密函数 :密钥为 时的解密函数 密钥规模: bit 密钥长度等于密钥规模当且仅当: Eg:DES真正的密钥规模 =56bit,且 也就是密钥长度 分组密码设计问题 分组密码的设计问题在于找到一种算法,能在密钥控制下从一个足够大且足够好的置换子集中,简单而迅速地选出一个置换,用来对当前输入的明文的数字组进行加密变换。 分组密码算法应满足的要求 分组长度n要足够大: 防止明文穷举攻击法奏效。 密钥量要足够大: 尽可能消除弱密钥并使所有密钥同等地好,以防止密钥穷 举攻击奏效。 由密钥确定置换的算法要足够复杂: 充分实现明文与密钥的扩散和混淆,没有简单的关系可循,要能抗击各种已知的攻击 分组密码算法应满足的要求 加密和解密运算简单: 易于软件和硬件高速实现。 数据扩展: 一般无数据扩展,在采用同态置换和随机化加密技术时可引入数据扩展。 差错传播尽可能地小 二、 DES与IDEA 数据加密标准(DES) DES的历史 1971年IBM,由Horst Feistel领导的密码研究项目组研究出LUCIFER算法,并应用于商业领域; 1973年,美国标准局征求标准,IBM提交结果; 1977年,被选为数据加密标准; 虽然DES已有替代的数据加密标准算法,但它仍是迄今为止得到最广泛应用的一种算法,也是一种最有代表性的分组加密体制。 DES加密过程 DES利用56bit长度的密钥K来加密长度为64bit的明文,得到长度为64bit的密文 该算法分三个阶段实现 IP和IP-1在密码意义上作用不大,它们的作用在于打乱原来输入x的ASCII码字划分的关系,并将原来明文的校验位x8, x16,?, x64变成为IP输出的一个字节。 一轮加密的简图 对F函数的说明:F(Ri-1, Ki)函数F以长度为32的比特串A=R(32bits)作第一个输入,以长度为48的比特串变元J=K(48bits)作为第二个输入。产生的输出为长度为32的位串。 对第一个变元A,由给定的扩展函数E,将其扩展成48位串E(A); 计算E(A)+J,并把结果写成连续的8个6位串, B=b1b2b3b4b5b6b7b8 使用8个S盒,每个Sj是一个固定的4?16矩阵,它的元素取0到15的整数。给定长度为6个比特串如Bj=b1b2b3b4b5b6,计算Sj(Bj)如下:b1b6两个比特确定了Sj的行r(0=r=3); 而b2b3b4b5四个比特确定了Sj的列数c(0=c=15)。最后Sj(Bj)的值为S-盒矩阵Sj中r行c列的元素(r,c), 得Cj=Sj(Bj)。 最后,P为一个固定置换。 选择压缩运算S 子密钥的生成 从密钥K计算子密钥:实际上,K是长度为64的位串,其中56位是密钥,8位是奇偶校验位(为了检错),在密钥编排的计算中,这些校验位可略去。 给定64位的密钥K,放弃奇偶校验位(8,16,…,64)并根据固定置换PC-1来排列K中剩下的位。PC-1(K)=C0D0 。其中C0由PC-1(K)的前28位组成;D0由后28位组成。 对1=i=16,计算 Ci=LSi(Ci-1) Di=LSi(Di-1) LSi表示循环左移2或1个位置,取决于i的的值。 子密钥的生成 i=1,2,9和16 时移1个位置,否则移2位置。Ki=PC-2(CiDi), PC-2为固定
文档评论(0)