密码学 (第二讲) 古典密码 张焕国 武汉大学计算机学院
密 码 学 (第二讲) 古典密码 张焕国 武汉大学计算机学院
、古典密码 虽然用近代密码学的观点来看,许多 古典密码是很不安全的,或者说是极易 破译的。但是我们不能忘记古典密码在 历史上发挥的巨大作团。 另外,编制古密码的基本方法对于 编制近代密码仍然有效
一、古典密码 虽然用近代密码学的观点来看,许多 古典密码是很不安全的,或者说是极易 破译的。但是我们不能忘记古典密码在 历史上发挥的巨大作用。 另外,编制古典密码的基本方法对于 编制近代密码仍然有效
、古典密码 C. D. Shannon ●采用混淆、扩散和乘积的方法来设计密码 ●混淆:使密文和明文、密钥之间的关系复杂化 扩散:将每一位明文和密钥的影响扩大到尽可 能多的密文位中。 乘积和迭代:多种加密方法混合使用 对一个加密函数多次迭代 古典密码编码方法: ●置换,代替,加法
一、古典密码 C. D. Shannon: z 采用混淆、扩散和乘积的方法来设计密码 z 混淆:使密文和明文、密钥之间的关系复杂化 z 扩散:将每一位明文和密钥的影响扩大到尽可 能多的密文位中。 z 乘积和迭代:多种加密方法混合使用 对一个加密函数多次迭代 古典密码编码方法: z 置换,代替,加法
、古典密码 1、置换密码 把明丈中的字母重新排列,字母本身不变, 但其位置改变了,这样编成的密码称为置 换密码。 最简单的置换密码是把明文中的字母顺序倒过来, 然后截成固定长度的字母组作为密文。 明文:明晨5点发动反攻。 MING CHEN WU DIAN FA DONG FAN GONG 密文: GNOGN AFGNO DAFNA IDUWN EHCGN IM
1、置换密码 • 把明文中的字母重新排列,字母本身不变, 但其位置改变了,这样编成的密码称为置 换密码。 • 最简单的置换密码是把明文中的字母顺序倒过来 最简单的置换密码是把明文中的字母顺序倒过来, 然后截成固定长度的字母组作为密文 然后截成固定长度的字母组作为密文。 明文:明晨5点发动反攻。 MING CHEN WU DIAN FA DONG FAN GONG 密文:GNOGN AFGNO DAFNA IDUWN EHCGN IM 一、古典密码
、古典密码 把明文按某一顺序排成一个矩阵,然后按另一顺 序选出矩阵中的字母以形成密文,最后截成固定长 度的字母组作为密文。 例如 明文: MING CHEN WU DIAN FA DONG FAN GONG 矩阵: MINGCH选出顺序:按列 ENWUDI ANFADO改变矩阵大小和取出序列 NGFANG可得到不同的密码 ONG 密文: MEANO INNGN NWFFG GUAA CDDN HOG
例如: 明文:MING CHEN WU DIAN FA DONG FAN GONG 矩阵:MINGCH 选出顺序:按列 ENWUDI ANFADO 改变矩阵大小和取出序列 NGFANG 可得到不同的密码 ONG 密文:MEANO INNGN NWFFG GUAA CDDN HIOG •把明文按某一顺序排成一个矩阵, 某一顺序排成一个矩阵, 然后按另一顺 序选出矩阵中的字母以形成密文,最后截成固定长 度的字母组作为密文。 一、古典密码
、古典密码 。理论上: ①、置换密码的加密钥是置换矩陴p, 解密钥是置换矩陈p1。 ②、置换密码经不起已知明文政击
• 理论上: ①、置换密码的加密钥是置换矩阵p, 解密钥是置换矩阵p-1 。 ②、置换密码经不起已知明文攻击。 1 2 3 … n a1 a2 a3 … an P = 一、古典密码
、古典密码 2、代替密码 首先构造一个或多个密文字母表,然后用 密文字母表中的字母或字母组来代替明文字母 或字母组,各字母或字母组的相对位置不变, 但其本身改变了。这样编成的密码称为代替密 码。 ①单表代替密码 ②多表代替密码 ③多名代替密码
2、代替密码 首先构造一个或多个密文字母表 首先构造一个或多个密文字母表,然后用 密文字母表中的字母或字母组来代替明文字母 或字母组,各字母或字母组的相对位置不变 各字母或字母组的相对位置不变, 但其本身改变了 但其本身改变了。这样编成的密码称为代替密 这样编成的密码称为代替密 码。 ①单表代替密码 ②多表代替密码 ③多名代替密码 一、古典密码
、古典密码 (1).单表代替密码 只使用一个密文字母表,并且用密文字母表中的 个字母来代替明文字母表中的一个字母。 明文字母表:A={a0,a1,…,an-1 密文字母表:B=b,b1,…,bn1 定义一个由A到B的映射:f:A→B f(a,)=b 设明文:M=(m,m1, 则密文:C=((mn),f(m1),…,f(mn1) 筒单代替密码的密钥就是映射函数或密文字母表B
⑴.单表代替密码 只使用一个密文字母表 只使用一个密文字母表,并且用密文字母表中的一 并且用密文字母表中的一 个字母来代替明文字母表中的一个字母 代替明文字母表中的一个字母。 明文字母表:A={ a0 , a1 ,..., an-1 } 密文字母表:B ={ b0 , b1 ,..., bn-1 } 定义一个由A到 B的映射:f:A→B f(ai )= bi 设明文:M =(m0 , m1 ,..., mn-1 ), 则密文:C =(f(m0 ),f(m1 ),...,f(mn-1 ))。 简单代替密码的密钥就是 密码的密钥就是映射函数f或密文字母表B。 一、古典密码
、古典密码 (1)单表代替密码 ①、加法密码 A和B是有n个字母的字母表。 定义一个A到B的映射:f:A→B f(a;)=b;=a j=i+k mod n 加法密码是用明文字母在字母表中后面第k个字母 来代替。 K=3时是著名的凯撒密码
⑴单表代替密码 ①、加法密码 • A和B是有 n个字母的字母表。 • 定义一个由A到B的映射:f:A→B f(ai )= bi=aj j=i+k mod n • 加法密码是用明文字母在字母表中后面第 是用明文字母在字母表中后面第 k个字母 来代替。 • K=3 时是著名的凯撒密码。 一、古典密码
、古典密码 (1)单表代替密码 ②、乘法密码 A和B是有个字母的字母表。 定义一个由A到的映射:f:A→B f(a,)=b,a j=ik mod n 中,(m,k)=1 注意:只有(,k)=1,才能正确解密
⑴单表代替密码 ②、乘法密码 • A和B是有n个字母的字母表。 • 定义一个由A到B的映射:f:A→B f(ai )= bi= aj j=ik mod n 其中,(n,k)=1。 • 注意:只有(n,k)=1,才能正确解密。 才能正确解密。 一、古典密码