`
jian0487
  • 浏览: 97467 次
  • 性别: Icon_minigender_1
  • 来自: 宁德
社区版块
存档分类
最新评论

Vigenere密码与Playfair密码 收

阅读更多

维吉尼亚(vigenere)密码,美国南北战争期间联军广泛使用;是一个基于多表替换的移位密码! 
现代的维吉尼亚(vigenere)密码的替换表一般为这样:
    	    A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

	A   A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
	B   B C D E F G H I J K L M N O P Q R S T U V W X Y Z A 
	C   C D E F G H I J K L M N O P Q R S T U V W X Y Z A B
	D   D E F G H I J K L M N O P Q R S T U V W X Y Z A B C 
	E   E F G H I J K L M N O P Q R S T U V W X Y Z A B C D 
	F   F G H I J K L M N O P Q R S T U V W X Y Z A B C D E 
	G   G H I J K L M N O P Q R S T U V W X Y Z A B C D E F 
	H   H I J K L M N O P Q R S T U V W X Y Z A B C D E F G 
	I   I J K L M N O P Q R S T U V W X Y Z A B C D E F G H 
	J   J K L M N O P Q R S T U V W X Y Z A B C D E F G H I 
	K   K L M N O P Q R S T U V W X Y Z A B C D E F G H I J 
	L   L M N O P Q R S T U V W X Y Z A B C D E F G H I J K 
	M   M N O P Q R S T U V W X Y Z A B C D E F G H I J K L 
	N   N O P Q R S T U V W X Y Z A B C D E F G H I J K L M 
	O   O P Q R S T U V W X Y Z A B C D E F G H I J K L M N 
	P   P Q R S T U V W X Y Z A B C D E F G H I J K L M N O 
	Q   Q R S T U V W X Y Z A B C D E F G H I J K L M N O P 
	R   R S T U V W X Y Z A B C D E F G H I J K L M N O P Q 
	S   S T U V W X Y Z A B C D E F G H I J K L M N O P Q R  
	T   T U V W X Y Z A B C D E F G H I J K L M N O P Q R S 
	U   U V W X Y Z A B C D E F G H I J K L M N O P Q R S T 
	V   V W X Y Z A B C D E F G H I J K L M N O P Q R S T U
	W   W X Y Z A B C D E F G H I J K L M N O P Q R S T U V 
	X   X Y Z A B C D E F G H I J K L M N O P Q R S T U V W 
	Y   Y Z A B C D E F G H I J K L M N O P Q R S T U V W X 
	Z   Z A B C D E F G H I J K L M N O P Q R S T U V W X Y 

    行和列分别用待加密的字符和加密当前字符的密钥来决定,然后横竖的交集,就是当前字符加密后的结果!

    比起传统的凯撒(caesar)密码,维吉尼亚(vigenere)在移位密码带来的字符出现频率上,具有更多迷惑性!多表替换,意味着不同字母移位替换时,遇到不同的密钥(偏移量),可能得到相同的密文;当然,相同的明文经过加密可能获得不同的密文,
    下面是一个用 dorainm 当作密钥来加密 blood has not been cold yet的例子

明文: bloodhasbotbeencoldyet
密钥: dorainmdorainmdorainmd
密文: EZFOLUMVBFTJRQQQFLLLQW


 

Vigenere密码是一个基于单表置换的分块对称加密算法。将明文T分为长度为n的若干块(若最后一块不足则用随机数补满),密钥K长度为n。在加密时对每个明文分块Ti做Ci=(Ti+Ki)%m,解密时对每个密文分块Ci做Ti=(Ci-Ki)%m,其中m为字符空间大小。
    显然,该加密算法是一个不安全的加密算法。Vigenere算法有着致命的缺陷Ki=(Ci-Ti)%m,使得他可以被已知明文攻击完全破解。同时,利用Friedman攻击也能够完全破解该算法,只是破解难度稍大。但是,我们也可以看到,这两种破解都有着一个共同的假设:密钥长度n小于明文的长度,即相同的明文字符可能多次被相同的密钥字符加密,生成相同的密文字符。
    通过分析该算法,不难得出:如果密钥长度n足够大(至少与明文长度相当),则该算法实际上就演变成了一个OTP加密算法。也就是说,如果我们使用足够长的密钥K,并且保证其是随机的,我们就可以利用Vigenere加密算法得到一个安全的加密。但是,OTP的最大缺陷在于密钥长度太长,且密钥不能重复使用。下面,我们针对OTP的这个缺陷对Vigenere加密算法做一些改进,使之能够成为一个安全的密码算法。
    进一步的分析Vigenere算法,可以得出:使用长度分别为m和n的两个密钥来进行两轮加密,等效于使用密钥长度为m和n的最小公倍数的一个密钥进行一轮的加密(证明略)。这样,如果m、n互质,我们实际上就做到了使用长度为m+n的密钥来代替长度为m*n的密钥,从而大大的降低了密钥的长度,使得利用Vigenere算法创建OTP成为可能。
    现在,剩下的问题就是密钥的重复使用了。这里先提出一个在以太网中实现的简单解决方案,对于每个以太帧,其数据段的最大长度不得超过1500字节,也就是说,只需使用长度分别为38和39的密钥进行两轮加密,即可保证所有数据段的安全。同时,将这两个密码用公钥加密,附在数据段起始部分即可。这样,整个数据段就实现了OTP加密,其安全性完全依赖于公钥加密的强度,并且,这样做产生的不必要损耗仅为5%,且速度大大高于AES等高强度对称加密算法。


 

Playfair密码将明文中的双字母组合作为一个单元对待,并将这些单元转换为双字母组合。加密后的字符出现的频率在一定程度上被均匀化。第一次世界大战期间英国采用;

  5*5变换矩阵(I或J视为同一字符):

  C I P H E
  R A B D F
  G K L M N
  O Q S T U
  V W X Y Z

  加密规则:按成对字母加密

  相同对中的字母加分隔符(如x)
  ballon -> ba lx lo on
  同行取右边:he->ec
  同列取下边:dm->mt
  其他取交叉:kt->mq od->tr

  例如:ballon -> ba lx lo on -> db sp gs ug

 

 

分享到:
评论

相关推荐

    vg.rar_Vigenere_playfair_vg_vigenere加密

    Vigenère密码与Playfair密码是两种古典的密码学加密方法,它们在19世纪被广泛使用,为信息的安全传输提供了基础。这两种方法都属于替换密码类型,通过将明文中的字母按照一定的规则替换成其他字母,从而实现信息的...

    playfair、hill、Vigenere和仿射密码加解密

    用于各种古典加密,是用C语言写的,playfair hill Vigenere和仿射密码的加解密

    古典多表密码加密解密算法

    这是本人密码学的课程设计,其内容是Beaufort古典多表密码的加密解密。 源程序需要plainText.txt文件,请自行将要加密的数据贴到该文件中,作为明文,然后将该文件与源程序文件放在同一目录下。明文尽量长一些(1000...

    全部古典密码加密与解密的C语言程序

    8. **Beaufort密码**:Vigenere密码的逆运算版本,解密过程与加密过程相同,因此它是一种自逆密码。 9. **Vernam密码**:也称为一次性密码本,是一种理想的安全密码体制,每个明文字符与一个独立随机密钥字符进行...

    VigenereVSPlayfair

    然而,尽管Vigenere比单一的Caesar密码更安全,但随着密码分析技术的发展,如 Kasiski 检验和频率分析,Vigenere密码也逐渐暴露出可破解性。 Playfair密码则是在Vigenere之后出现的一种双字母替换加密法,由英国人...

    密码学vigenere算法的实现

    然而,Vigenère密码仍然存在弱点,比如 Kasiski 分析和 Playfair 分析方法可以有效地破解它,尤其是当关键词长度已知或可预测时。尽管如此,Vigenère算法仍然是密码学发展史上一个重要的里程碑,为现代更复杂的...

    Kaisa.rar_kaisa密码_kaisa密码网站

    通过对凯撒密码的理解,我们可以进一步探讨更复杂的加密机制,如Vigenere密码、Playfair密码等,以及现代的公钥加密系统,如RSA和AES。虽然凯撒密码在安全性上已经无法满足现代社会的需求,但它在密码学历史上的地位...

    mimaxue.rar_ playfair hill_affine encryption _hill_hill C_playf

    1. **Playfair算法**:Playfair密码是一种多表替换密码,由Charles Wheatstone在1854年发明,但以Lord Playfair的名字命名。它改进了简单的单字母替换密码,通过二维5x5矩阵对字母进行配对替换,增加了安全性。在...

Global site tag (gtag.js) - Google Analytics