算法和密钥 ·现代密码学要求密码算法公开,密钥保蜜。 密钥用K表示。K可以是很多数值里的任意值,密钥K的可能值的范围叫做 密钥空间。对称密码算法加密和解密运算都使用这个密钥,即运算都依赖于 密钥,并用K作为下标表示,加/解密函数表达为: EK(M)=C Dk(C)=M DK(EK(M))-M 密 密 钥 钥 明文 加密 密文 解密 原明文 3.密码学基础 11
3.密码学基础 11 算法和密钥 • 现代密码学要求密码算法公开,密钥保密。 • 密钥用K表示。K可以是很多数值里的任意值,密钥K的可能值的范围叫做 密钥空间。对称密码算法加密和解密运算都使用这个密钥,即运算都依赖于 密钥,并用K作为下标表示,加/解密函数表达为: EK(M)=C DK(C)=M DK( EK(M) )=M 加密 解密 明文 密文 原明文 密 钥 密 钥
不同的加密密钥和解密密钥 加密 K2 解密 密钥 密钥 明文 加密 密文 解密 原始明文 ·有些算法使用不同的加密密钥和解密密钥,也就是说加密密钥K1与相应的 解密密钥K2不同,在这种情况下,加密和解密的函数表达式为: EK(M)=C DK2(C)=M ·函数必须具有的特性是:DK2(EK())尸M 12 3.密码学基础
不同的加密密钥和解密密钥 3.密码学基础 12 加密 解密 明文 密文 原始明文 加密 密钥 解密 密钥 K1 K2 • 有些算法使用不同的加密密钥和解密密钥,也就是说加密密钥K1与相应的 解密密钥K2不同,在这种情况下,加密和解密的函数表达式为: EK1 (M)=C DK2 (C)=M • 函数必须具有的特性是:DK2 ( EK1 (M) )=M
对称算法的基本原理 基于密钥的算法通常有两类:对称算法和公开密钥算法(非对称 章法)。 ·对称密码算法有时又叫传统密码算法,加密密钥能够从解密密钥 中推算出来,反过来也成立。 在大多数对称算法中,加/解密的密钥是相同的。对称算法要求发 送者和接收者在安全通信之前,协商二个密销。对称算法的安全 性依赖宇密钥的保密,泄漏密钥就意味着任何人都能对消息进行 加/解密。对称算法的加密和解密表示为: Ek(M)=C Dk(C)=M 3.密码学基础 13
3.密码学基础 13 对称算法的基本原理 • 基于密钥的算法通常有两类:对称算法和公开密钥算法(非对称 算法)。 • 对称密码算法有时又叫传统密码算法,加密密钥能够从解密密钥 中推算出来,反过来也成立。 • 在大多数对称算法中,加/解密的密钥是相同的。对称算法要求发 送者和接收者在安全通信之前,协商一个密钥。对称算法的安全 性依赖于密钥的保密,泄漏密钥就意味着任何人都能对消息进行 加/解密。对称算法的加密和解密表示为: EK (M) = C DK (C) = M
对称密码算法的两个分支 ·分组密码算法:对明文的一组位进行加密和解密运算,这些位组 称为分组,相应的算法称为分组算法。常见的分组算法有DES、 DES3、IDEA、AES等。 ·DS分组长度为64位、密钥长度为64位;AES加密数据块分组长度 必须为128比特,密钥长度可以是128比特、192比特、256比特中 的任意一个(如果数据块及密钥长度不足时,会补齐) ·序列密码(流密码)算法:一次只对明文的单个位(有时对字节) 运算的算法称为序列密码算法或流密码。常见的流密码有RC4、 A5、SEAL、PIKE等。 3.密码学基础 14
对称密码算法的两个分支 • 分组密码算法:对明文的一组位进行加密和解密运算,这些位组 称为分组,相应的算法称为分组算法。常见的分组算法有DES、 DES3、IDEA、AES等。 • DES分组长度为64位、密钥长度为64位;AES加密数据块分组长度 必须为128比特,密钥长度可以是128比特、192比特、256比特中 的任意一个(如果数据块及密钥长度不足时,会补齐) • 序列密码(流密码)算法:一次只对明文的单个位(有时对字节) 运算的算法称为序列密码算法或流密码。常见的流密码有RC4、 A5、SEAL、PIKE等。 3.密码学基础 14
公开密钥算法的基本原理 ·公开密钥算法(非对称算法的加密密钥和解密密钥不同,而且解 密密钥不能根据加密密钥计算出来,或者至少在可以计算的时间 内不能计算出来。 ·之所以叫做公开密钥算法,是因为加密密钥能够公开,即陌生者 能用加密密钥加密信息,但只有用相应的解密密钥才能解密信息。 加密密钥叫做公开密钥(简称公钥),解密密钥叫做私人密钥 (简称私钥)。 ·用公开密钥KI加密表示为:Ek(M)=C ·用相应的私人密钥K2解密可表示为:Dk2(C)=M 3.密码学基础 15
公开密钥算法的基本原理 • 公开密钥算法(非对称算法)的加密密钥和解密密钥不同,而且解 密密钥不能根据加密密钥计算出来,或者至少在可以计算的时间 内不能计算出来。 • 之所以叫做公开密钥算法,是因为加密密钥能够公开,即陌生者 能用加密密钥加密信息,但只有用相应的解密密钥才能解密信息。 加密密钥叫做公开密钥(简称公钥),解密密钥叫做私人密钥 (简称私钥)。 • 用公开密钥K1加密表示为:EK1 (M)=C • 用相应的私人密钥K2解密可表示为:DK2 (C)=M 3.密码学基础 15