第二章 密码技术和认证技术

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
通信保密:此时将公钥作为加密密钥,私钥作 为解密密钥,通信双方不需要交换密钥实现保 密通信。这时,通过公钥或密文分析出明文或 私钥是不可行的。 数字签名:将私钥作为加密密钥,公钥作为解 密密钥,可实现有一个用户对数据加密而是多 个用户解读。 密钥交换:通信双方交换会话密钥,以加密通 信双方后续连接所传输的信息。每次逻辑连接 使用一把新的会话密钥,用完就丢弃。
基于以上两点,提出了分组密码运行模式: DES有四种基本的工作模式: (1)电码本(ECB) (2)密码反馈链接(CBC) (3)密码反馈(CFB) (4)输出反馈(OFB)
(1)电码本模式(ECB)
ECB直接利用DES算法分别对各64bit数 据组加密。 在给定密钥k时,各明文组Pj分别对应不同 的密文组Cj=DESk(Pj)。在给定密钥下, P有264种可能取值,C也有264种可能取值, 各(P,C)对彼此独立,构成了一个巨大的 单表代换密码,因而称其为电码本 (Electronic Code Book)模式。 ECB模式的缺点是,在给定的密钥下同一明 文组总是产生同样的密文,这会暴露明文数 据的格式和统计特征。
给定一个消息,很容易计算出散列值h; 给定散列值h,很难根据H(M)=h计算出消息M; 给定一个消息M,很难找到另一个消息面M’且满足 H(M)=H(M’)
单向散列函数可按照其是否有密钥控制可以划 分为两大类:
(4)输出反馈模式(OFB)
OFB模式也是将DES作为一个密钥流产生器,其 输出的S位密钥直接反馈至DES的输入端,同时, 这新生成的S位密钥和输入的S位明文段对应模2相 加。 OFB模式与CFB模式的最大区别在于OFB模式直 接将DES产生的S位加密函数的输出直接反馈至下 一步的DES输入端,而不像CFB模式下将S位密文 反馈至下一步的DES输入端。 OFB模式能够克服CBC模式和CFB模式中由于错 误传播带来的问题。但对于密文被篡改难以进行检 测。
数据加密方法:明文:M<n 密文:C=Me(mod n) 数据解密的方法:密文:C 明文:M=Cd(mod n)
§2.4 单向散列函数
单向散列函数是将任意长的消息M映射成一个较短 的固定长度m的散列值h的函数,以H表示,即 h=H(M),且h的长度为定长m 单向散列函数具有以下性质:
Ri-1(32位)
32位
32 4 8 12 16 20 24 28
1 5 9 13 17 21 25 29
扩展变换E的结果
48位
密钥加密运算:将子密钥产生器输出的48位子密 钥与选择扩展运算E输出的48位数据按位模2相加;
选择压缩算法S:将前面送来的48位数据自左至右 分成8组,每组为6位。然后并行送入8个S盒,每 个S盒为一非线性代换网络,有四个输出。这样, 经过S盒后,48位数据压缩成了32位;
第二章 密码技术和认证技术
§2.1. 引言
密码技术是信息交换安全的基础,通过数据加密、 消息摘要、数字签名和密钥交换等技术实现数据机 密性、数据完整性、不可否认性和用户身份真实性 等安全机制,从而保证了网络环境中信息传输和交 换的安全。 密码技术大致可以分为三类:
对称密码算法 非对称密码算法 单向散列算法
§2.3 非对称密码算法
非对称密码算法是指加密和解密数据使用两个不同 的密钥,即加密和解密的密钥是不对称的,这种系 统也称为公钥密码系统PKC(Public Key Cryptosystem) 与对称密码算法不同,非对称密码算法将随机产生 两个密钥:一个是尽人皆知的,叫做公钥;而另一 个只有拥有者才知道叫做私钥。这两种密钥合在一 起称为密钥对。公钥可以解决安全分配密钥问题, 因为它不需要与保密密钥通信,所需传输的只有公 用密钥。这种公钥不需要保密,但对保证其真实性 和完整性却非常重要。
48位输入
来自百度文库
S盒-1
32位输出
置换运算P:对选择压缩算法S输出的32位数据进 行坐标置换,如下图所示:
子密钥产生器:将64位初始密钥经过置换选择PC1、 循环移位置换、置换选择PC2给出每次迭代加密用的 子密钥。在64位初始密钥中有8位是校验位,其位置 号为8、16、32、48、56、64,其余56位为有效 位,用于子密钥计算。将这56位送入置换选择PC1, 经过坐标变换后分成两组,每组为28位,分别送入C 和D寄存器中。在每次迭代中,C和D寄存器分别将 存数送给置换选择PC2,置换选择PC2将C中的第9、 18、22、25位和D中的第7、9、15、26位删去, 并将其余数字置换位置后送出48位作为第i次迭代时 所用的子密钥k(i)。
本章主要按照上述分类展开,同时将讲述基于密码 技术的数字签名和身份认证技术
破译分析
加密变换Ek
解密变换Dk
§2.2 对称密码算法
对称密码算法是指加密和解密数据使用同一个密钥, 即加密和解密是对称的,这种密码系统也称为单密 钥密码系统。 原始数据(即明文)经过对称加密算法处理后,变 成了不可读的密文。如果想解读原文,则需要使用 同样的密码算法和密钥来解密,即信息的加密和解 密使用同样的算法和密钥。 对称密码算法的特点是计算量小、加密速度快。缺 点是加密和解密使用同一个密钥,容易产生发送者 或接收者单方面密钥泄露问题,否则容易被第三方 截获,造成信息失密。
DES正是基于分组密码理论的一种算法。 DES的扩展变换E和置换运算P完成了扩散,S盒完成了混合。扩展变换E和置换运算P是线性 的;S-盒是非线性的。
分组密码的运行模式
(1)分组密码每次加密的明文数据量是固定的 分组长度n,而实际中待加密的数据量是不定的, 数据格式多种多样。因此,需要做一些变通, 灵活地运用分组密码; (2)即使有了安全的分组密码算法,也需要采 用适当的工作模式来隐蔽明文的统计特性、数 据的格式等,以提高整体的安全性;
(3)密码反馈模式(CFB)
CFB模式实际上是将DES作为一个密钥流 产生器,在S位密文反馈下,每次输出S位 密钥,对输入的S位明文进行加密。当S=1 时,就退化为流密码了。 CFB模式和CBC模式的区别是反馈的密文 不再是64位,而是长度为S位,并且不再是 直接与明文相加,而是反馈至密钥产生器。 CFB模式的优点是它特别适合于用户数据格 式的需要。CFB和CBC一样,由于反馈的 作用而能隐蔽明文数据图样。也能检测出对 于密文的篡改。
(2)密码分组链接模式(CBC)
在CBC模式下,每一个明文组Pj加密之前,先与反馈 至输入端的前一组密文Ci-1按位模2求和后,再送至 DES加密。
在CBC模式下,Ci=DESk(Pi⊕Ci-1); 各密文组Ci不仅与当前明文Pj有关,而且通过反馈作 用还和以前的明文组Pi-1、Pi-2、…、P1有关; 第一组明文加密时尚无反馈密文,为此需要预先存入 一个64位的初始矢量IV。接收双方必须选用同一IV。 此时,有C1=DESk(P1 ⊕ IV); CBC通过反馈使输入密文不仅与当前明文与密钥相关, 还与以前的明文相关,从而实现了隐蔽明文图样的目 的。
DES解密 在经过所有的代替、置换、异或和循环移 动之后,获得了这样一个非常有用的性质:加 密和解密可使用相同的算法。 DES使得用相同的函数来加密和解密每个 分组成为可能,二者的唯一不同之处是密钥的 次序相反。也就是说,如果各轮的加密密钥分 别是K1,K2,K3…,K16那么解密密码就是 K16,K15,K14,…K1.为各轮产生密钥的 算法也是循环的。密钥向右移动,每次移动个 数为0,1,2,2,2,2,2,2,2,1,2, 2,2,2,2,2,1.
如果一信息用公钥加密,则必须用私钥解密, 这就是实现保密的方法。如果一信息用私钥 加密,那么,它必须用公钥解密。这就是实 现验证的方法。 非对称密码算法的特点是安全性高、密钥易 于管理;缺点是计算量大、加密和解密速度 慢。非对称密码算法比较适合于加密短信息。
公钥密码系统可用于以下三个方面:
乘 积 变 换 框 图
选择扩展运算E:将输入的32位R(i-1)扩展成48 位的输出。令s表示E原输入数据比特的原下标, 则E的输出是将原下标s=0或1(mod4)的各比特 重复一次得到的,即对原第32、1、4、5、8、9、 12、13、16、17、20、21、24、25、28、 29各位都重复一次,实现数据扩展,得到48位输 出;
在实际应用中,通常采用由非对称密码算法 和对称密码算法构成混合密码系统。使用对 称密码算法来加密数据,加密速度快;使用 非对称密码算法来加密对称密码算法的密钥, 形成高安全性的密钥分发信道。
RSA算法(由Rivest、Shamir和 Adleman发明)
是第一个比较完善的非对称密码算法,既可用 于加密数据,又可用于数字签名,并且比较容 易理解和实现; RSA的数学基础是初等数论中的欧拉定理,其 安全性基于大整数因子分解的难度。其公钥和 私钥是一对大素数的函数,从一个公钥和密文 中恢复出明文的难度等价于分解两个大素数之 和;
两个密钥的产生办法:选取两个大素数:p和q,并且 两数的长度相同,以获得最大程度的安全性;
计算两数的乘积:n=p×q;Φ(n)=(p-1)(q-1) 随机选取加密密钥e,使e和Φ(n)互质; 计算解密密钥d,d=e-1(mod( Φ(n))); 公钥PK={e,n},私钥Sk={d,p,q};
分组密码的设计思想
扩散(diffusion)
将明文及密钥的影响尽可能迅速地散布到较 多的密文中(将明文冗余度分散到密文中)。产 生扩散的最简单方法是重置换 (Permutation)(比如:重新排列字符)。
混淆(confusion) 其目的在于使作用于明文的密钥和密文之间的 关系复杂化,使明文和密文之间、密文和密钥 之间的统计相关特性极小化,从而使统计分析 攻击不能奏效。通常的方法是“代换 (Substitution)”
密钥
明文
密文
明文
DES(Data Encryption Standard)算法
DES是一种对二元数据进行加密的算法; 数据分组长度为64位,密文分组长度也是64位,使用 的密钥为64位,其中有效密钥长度为56位,有8位用于 奇偶校验; 解密时的过程和加密时相似,但密钥的顺序正好相反; DES的整个体制是公开的,系统的安全性完全靠密钥的 保密。 DES算法的过程:在一个初始置换IP后,明文被分成右 半部和左半部分,每部分32位,以L0和R0表示;然后 是16轮迭代的乘积变换,称为函数f,将数据和密钥结 合起来,16轮之后,左右两部分再连接起来,经过一个 初始逆置换IP(-1),算法结束。
2 4 6 8 1 3 5 7
57 58 59 60 61 62 63 64
58 60 62 64 57 59 61 63
58 60 62 64 57 59 61 63
2 4 6 8 1 3 5 7
输出(64位)
L0(32位)
R0(32位)
初始置换框图
乘积变换:将经过初始置换IP后的数据分成32 位的左右分组,在迭代过程中彼此左右交换位 置。每次迭代时只对右边的32位进行一系列的 加密交换,在此轮迭代即将结束时,把左边的 32位与右边得到的32位逐位模2相加,作为下 一轮迭代时的右边的段,并将原来右边未经变 换的段直接送到左边的寄存器中作为下一轮迭 代时左边的段。在每一轮迭代时,右边的段要 经过选择扩展运算E、密钥加密运算、选择压缩 运算S、置换运算P和左右混合运算。
64位明文数据
初始置换IP
乘积变换 (在密钥控制 下16次迭代)
逆初始置换IP(-1)
64位密文数据
初始置换IP:将原明文中各字节按列写出,各 列比特先后经过偶采样和奇采样置换后,再对 各行进行逆序。将阵中各行进行逆序。将阵中 元素按行读出构成置换输出。
输入(64位)
1 2 3 4 5 6 7 8
相关文档
最新文档