- 浏览: 97467 次
- 性别:
- 来自: 宁德
最新评论
-
oudoud:
非常不错,没见收藏按钮
240多个jQuery插件 -
idning:
ding
生日悖论 -
java之渴望:
<%@ page contentType="& ...
将网页数据导出到Excel(以最简单的方式呈现) -
zhoujiabin810812:
简介明了!
黑莓(BlackBerry)是什么 -
WiseNeuron:
谢谢。标记一下
240多个jQuery插件
现代的维吉尼亚(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算法有着致命的缺陷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等高强度对称加密算法。
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
发表评论
-
你想知道您的那个端口号被那个程序占用了吗?
2009-09-14 18:24 2568以下文章主要以80端口号为例,如果想知道其他的端口号也可以使用 ... -
在电话接入时处理音频播放
2009-08-11 00:56 989通话是手机最重要的功能,手机来电会抑制正在运行的MIDlet运 ... -
单向陷门函数
2009-08-11 00:55 2732单向陷门函数(One-way Trapdoor Functio ... -
RSA加密算法
2009-08-11 00:54 28001. 密钥的产生① 选两个 ... -
数据加密标准DES
2009-08-11 00:54 1510数据加密标准DES 数据加密算法(Data Encryp ... -
Java做一个最简单的Socket通话程序
2009-08-11 00:53 1122Java中的网络编程是一个很重要的部分,也是其编程优越性的地方 ... -
C/S模式中的远程方法调用
2009-08-11 00:52 2080摘要 基于C/S设计模式, ... -
Java加密和数字签名编程快速入门
2009-08-11 00:51 684文/jwsh1984 本文主要谈一下密码学中的加密和 ... -
java实现DES加密算法
2009-08-11 00:49 2413一、java实现DES加密算法 为了实现一对密钥对整个项目所有 ... -
DES算法理论
2009-08-11 00:48 1420DES算法理论 本世纪五 ... -
欧拉函数
2009-08-11 00:47 1614当n为1至1000的整数时的值 ... -
悖论概念
2009-08-11 00:47 803其定义可以这样表述:由一个被承认是真的命题为前提,设为B,进行 ... -
生日悖论
2009-08-11 00:45 1839生日悖论是指,如果一个房间裡有23个或23个以上的人,那么至少 ... -
TCP/IP端口基础常识大全
2009-08-11 00:44 784端口可分为3大类: 1) 公认端口(Well Known Po ... -
嵌入式处理器的基本概念
2009-08-11 00:42 1075嵌入式系统的核心部件是各种类型的嵌入式处理器,目前全世界嵌入式 ... -
嵌入式实时操作系统的现状和未来
2009-08-11 00:42 1242内容摘要:从RTOS(嵌入式实时操作系统)发展的历史、RTOS ... -
网络编程--WININET
2009-08-11 00:40 1599一个Internet客户端程序的目的是通过Interne ... -
Mod运算
2009-08-11 00:37 1716模p运算 给定一个正整数p,任意一个整数n,一定存在等式 ... -
欧拉定理 (数论)
2009-08-11 00:36 1652在数论中欧拉定理(也称费马-欧拉定理或欧拉函数定理: 若m,a ... -
数字签名和加密
2009-08-11 00:36 3866具体步骤如下。Alice与Bob互换公钥。Alice用自己的私 ...
相关推荐
Vigenère密码与Playfair密码是两种古典的密码学加密方法,它们在19世纪被广泛使用,为信息的安全传输提供了基础。这两种方法都属于替换密码类型,通过将明文中的字母按照一定的规则替换成其他字母,从而实现信息的...
用于各种古典加密,是用C语言写的,playfair hill Vigenere和仿射密码的加解密
这是本人密码学的课程设计,其内容是Beaufort古典多表密码的加密解密。 源程序需要plainText.txt文件,请自行将要加密的数据贴到该文件中,作为明文,然后将该文件与源程序文件放在同一目录下。明文尽量长一些(1000...
8. **Beaufort密码**:Vigenere密码的逆运算版本,解密过程与加密过程相同,因此它是一种自逆密码。 9. **Vernam密码**:也称为一次性密码本,是一种理想的安全密码体制,每个明文字符与一个独立随机密钥字符进行...
然而,尽管Vigenere比单一的Caesar密码更安全,但随着密码分析技术的发展,如 Kasiski 检验和频率分析,Vigenere密码也逐渐暴露出可破解性。 Playfair密码则是在Vigenere之后出现的一种双字母替换加密法,由英国人...
然而,Vigenère密码仍然存在弱点,比如 Kasiski 分析和 Playfair 分析方法可以有效地破解它,尤其是当关键词长度已知或可预测时。尽管如此,Vigenère算法仍然是密码学发展史上一个重要的里程碑,为现代更复杂的...
通过对凯撒密码的理解,我们可以进一步探讨更复杂的加密机制,如Vigenere密码、Playfair密码等,以及现代的公钥加密系统,如RSA和AES。虽然凯撒密码在安全性上已经无法满足现代社会的需求,但它在密码学历史上的地位...
1. **Playfair算法**:Playfair密码是一种多表替换密码,由Charles Wheatstone在1854年发明,但以Lord Playfair的名字命名。它改进了简单的单字母替换密码,通过二维5x5矩阵对字母进行配对替换,增加了安全性。在...