代换密码 )代换是传统密码中用到的最基本的处理技巧,在现代密码学 中得到广泛使用。 。所谓代换,就是将明文中的一个字母由其它字母、数字或符 号替代的一种方法。 。代换密码是指建立一个代换表,加密时将需要加密的明文依 次通过查表,替换为相应的字符,明文字符被逐个替换后, 生成无任何意义的字符串,即密文。这样的代换表,称为密 钥。 CNR@HEU http://machunguang.hrbeu.edu.cn
代换密码 代换是传统密码中用到的最基本的处理技巧,在现代密码学 中得到广泛使用。 所谓代换,就是将明文中的一个字母由其它字母、数字或符 号替代的一种方法。 代换密码是指建立 代换密码是指建立 个代换表 一 ,加密时将需要加密的明文依 次通过查表,替换为相应的字符,明文字符被逐个替换后, 生成无任何意义的字符串 生成无任何意义的字符串,即密文。这样的代换表,称为密 钥。 12
代换密码的分类 按照一个明文字母是否总是被一个固定的字符代换进 行划分: 凯撒密码caesar 。单表代换密码移位、仿射、替换) 对明文消息中出现的同一个字母,在加密时都使用同 一固定的字母来代换,不管它出现在什么地方。 。多表代换密码(维吉利亚、Playfair、转轮) 明文消息中出现的同一个字母,在加密时不是完全被 同一固定的字母代换,而是根据其出现的位置次序,用不 同的字母代换。 13 CNR@HEU http://machunguang.hrbeu.edu.cn
代换密码的分类 按照 个明文字母是否 是被 个固定的字符代换进 一个明文字母是否 个明文字母是否总是被一个固定的字符代换进 个固定的字符代换进 行划分: 凯撒密码caesar 单表代换密码(移位、仿射、替换) 对明文消息中出现的同一个字母,在加密时都使用同 一固定的字母来代换,不管它出现在什么地方。 多表代换密码(维吉利亚、Pl f i Playfair、转轮) 明文消息中出现的同一个字母,在加密时不是完全被 同一固定的字母代换,而是根据其出现的位置次序,用不 同的字母代换。 13
仿射加密 假定的字符集为charset=-'a',b',z} 编码为coding[]={0,1,,25} 明文P=密文C=Z26 。加密 Er(m)=am+b mod n=c 。解密 Dr(c)=a-1(c-b)mod n=m 密钥K=(a,b):a,beZs,且gcda,26)=1避免不同的明文字母加密成同 。举 样的密文字母 假定k=(7,3),71mod26=15,加密函数为Ek(m=7m+3,则相应的解 密函数为Dk(c)=15(c-3)=15y-19,其中所有的运算都是在Z26中。容易验 证Dk(Ek(m)尸Dk(7m+3)=15(7m+3)-19=105m+45-19=104m+m=m。 加密明文hot。首先转化这三个字母分别为数字7,14和19。然后加密 得密文串为AGX。 1,3,5,7,9,11,15,17,19,21,23,25 因为满足a∈Z26,且gcd(a,26)=1的只有12整数,对参数b没有要求。所以 仿射密码有12X26=312种可能的密钥。 4 CNR@HEU http://machunguang.hrbeu.edu.cn
仿射加密 明文P=密文C=Z26; 加密 Ek(m)=am+b mod n=c 解密 Dk(c)=a-1(c-b) mod n=m b) mod n=m 密钥K ={(a,b) : a,b∈Z26, 且gcd(a, 26)=1} 举例 假定k=(7,3),7-1mod26=15mod26=15,加密函数为Ek(m)=7m+3(m)=7m+3,则相应的解 密函数为Dk(c)=15(c(c)=15(c-3) =15y 3) =15y-19,其中所有的运算都是在Z26中。容易验 证Dk(Ek(m))= Dk(7m+3)=15(7m+3) (7m+3)=15(7m+3)-19=105m+45 19=105m+45-19=104m+m=m 19=104m+m=m 。 加密明文hot。首先转化这三个字母分别为数字7,14和19。然后加密 得密文串为AGX 。 因为满足a∈Z26,且gcd(a,26)=1的只有12整数,对参数b没有要求。所以 仿射密码有12X26=312种可能的密钥 14 仿射密码有12X26=312种可能的密钥。 1,3,5,7,9,11,15,17,19,21,23,25 避免不同的明文字母加密成同 样的密文字母 假定的字符集为charset={'a','b',...,'z'} 编码为coding[]={0,1,...,25}
移位密码(恺撒密码) 。明文26字母 。密文26字母 。密钥空间K={0,1,2,…,25} 。在实际进行加解密运算时,把26个英文字母依次与0,1,2,…,25对应。 。加密E.(m)=m+k=c mod n 。解密 D (c)=c-k=m mod n 。举例 移位密码的一个典型代表就是恺撒密码,k=3,n=26。 明文meet me after class 密文PHHW PH DIWHU FODVV 。由于结构过于简单,密钥空间太小(26),很容易被穷举攻击方法分析。 15 CNR@HEU http://machunguang.hrbeu.edu.cn
移位密码(恺撒密码) 明文 26字母 密文 26字母 密钥空间K={0,1,2,…,25} K={0,1,2,…,25} 在实际进行加解密运算时,把 在实际进行加解密运算时,把26个英文字母依次与 个英文字母依次与0,1,2,…,25 0,1,2,…,25对应。 加密 E k(m)=m+k=c mod n =c mod n 解密 D k(c)=c-k=m mod n k=m mod n 举例 移位密码的一个典型代表就是恺撒密码, 移位密码的一个典型代表就是恺撒密码,k=3,n=26。 明文 meet me after class meet me after class 密文 PHHW PH DIWHU FODVV PHHW PH DIWHU FODVV 由于结构过于简单,密钥空间太小(26),很容易被穷举攻击方法分析。 15
单表代换密码 加密函数: 1 tu v D KVQ FI B J WP ES C X HT M Y AUOL R GZ N 解密函数: s g m al of h b v q z uj dy pt c i n r y 明文:ifwe wish to replace letters 密文:WIRF RWAJ UH YFTSDVF SFUUFYA key space 密钥空间:26!>1025(106次/秒100台并行约109年,接近字宙年龄1010年) 16 CNR@HEU http://machunguang.hrbeu.edu.cn
单表代换密码 加密函数: n o p q r s t u v w x y z X H T M Y A U O L R G Z N a b c d e f g h i j k l m D K V Q F I B J W P E S C X H T M Y A U O L R G Z N 解密函数: N O P Q R S T U V W X Y Z z u j d w l p t c i n r y A B C D E F G H I J K L M s g m a k e x o f h b v q 明文: if we wish to replace letters s g m a k e x o f h b v q z u j d w l p t c i n r y 密文: WI RF RWAJ UH YFTSDVF SFUUFYA 16 密钥空间:26!> 1025(106次/秒100台并行约109年,接近宇宙年龄1010年) key space