22 15 表1—1棋盘密码字母排列表 l 2 3 4 5 a b C d e , ● f g h 1J k l m n O p q r S t U V W X y Z 公元前50年,罗马皇帝凯撒发明了一种用于战时秘密通信的方法,后来被称为“凯撒”密码,他将字母按字母表的顺序排列,最后一个字母与第一个字母相连,将明文中的每个字母用其后面的第三个字母代替,就变成了密文。
以英文为例,凯撒密码的替换表如下: a b e d e f g h i j k l m n o P q r s t u v w x Y Z d e f g h i j k 1 m n o P q r s t u v w x y Z a b C 用上面的替换表就可以将明文encryption转换成密文hqfubswlrq。
以上的两种方法都是使用替换方法,即将明文字母替换成其它字母、数字或符号。
还有一种置换密码,按照某一规则重新排列消息中的比特或字符顺序。
最简单的例子就是‘双轨式”密码,加密时将明文写成双轨的形式,如将eneryption写成: e C y t 0 n r P i n 5 按行的形式书写即可得出密文ecytonrpin。
解密时先计算密文中字母的总数,然后将密文分成两行来写,按列的顺序读出即可恢复明文。
随着电子技术、计算技术的发展,以上的传统加密方法显然已经不实用了。
1949年,信息论创始人香农发表文章论证了一般经典的加密方法得到的密文几乎都是可破的f81。
20世纪70年代,美国的数据加密标准DES和公开密钥密码体制的出现,成为近代密码学发展史上的两个重要里程碑,标志着现代密码学的诞生〔9】。
从此,密码体制的研究基本上沿着两个方向进行,印以RSA为代表的公开密钥密码体制和以DES为代表的秘密密钥分组密码体制。
由于DES的密钥太短,穷举攻击对DES造成了严重的威胁‘10】〔Ill。
DES最终会被美国国家标准局发布的高级加密标准AES〔121取代。
1.3.3.2密码体制的模型和分类 一个密码系统包括三部分:发送方、接收方与攻击者。
典型的密码系统如图1-1所剥131。
kl 厂—』L〕解密后明文。
, 发送方 I:竺兰卜————+接收方B 攻击者 图I-I典型的密码系统 发送方首先用加密密钥k1将明文in加密成密文c,e=E kl五.然后将c利用公开信道传送给接收方。
攻击者用各种方法从公开信道中获得c,但他不知道解密密钥K2,因此无法得知明文m的内容。
接收者收到密文C后,用K2将C解密成明文ITI’,m’=D K2(c)=D l(2(E k1六)。
如果密文c没有被攻击者篡改过,则m’=m。
一般来说,密码学包含密码编码学和密码分析学两个分支‘14】,密码编码学是研究各种加密方案的学科,以达到信息隐藏的目的。
密码分析学是在未知密钥的情况下从密文推演出明文或密钥的技术。
密码体制按密钥可以分为秘密密钥密码体制和公开密钥密码体制f15】。
61.3.3.3秘密密钥密码系统 在秘密密钥密码系统中,加解密双方使用相同的密钥加密和解密四【17I,如图l一1所示的密码系统中,如果加密密钥K。
等于解密密钥K2,或由Kl能推导出K2,反之从K2也能推导出Kl,这样的密码系统就是秘密密钥密码系统,也称为对称密钥密码系统或单密钥密码系统。
在秘密密钥密码系统中,由于数据加密和解密采用的都是同一个密钥,因而其安全性依赖于所持有密钥的安全性。
对称加密算法的优点是加解密高效快速、破译困难。
但它的密钥必须通过安全可靠的途径传递,密钥管理成为影响系统安全的关键因素,使它不便应用在网络开放的环境中。
1.3.3.4公开密钥密码系统 公开密钥密码体制〔18】就是加密和解密采用不同的密钥,用加密密钥加密的数据只有用相应的解密密钥才能解密。
使用时将加密密钥(也称为公开密钥)公开,解秘密钥(也称为秘密密钥)则需要保密,由已知的加密密钥推导出解密密钥在计算上是不可行的。
如图l—l所示,当A需要向B发送数据时,用B的公开密钥K,对数据加密,因为只有B知道秘密密钥K2,只有B才能解密。
公开密钥密码体制适应网络的开放性要求,密钥管理简单,并且可方便的实现数字签名和身份认证等功能。
缺陷是加密数据的速度和效率较低。
1.3.3.5数字签名 在日常的社会生活和经济往来中,签名盖章和识别签名是~个重要的环节,如银行业务、挂号信、合同等,都离不开签名,在当今的计算机网络通信时代,用密码学的方法实现数字签名显然有重要的实际意义(191。
数字签名的实质是发送方A用自己的私钥对将要发送的消息加密形成签名,接收方B用发送方的公钥对签过名的消息进行逆运算验证签名。
签名:D sKAO〔n)=s 验证:EpKA(S)=m’ 如果m’=m则验证正确,否则验证失败。
因为只有A拥有SKA,只有A能产生D sK^(m),所以签名具有不可否认性【201。
1.3.3.6信息完整性检验 信息的完整性检验是指消息的接收者能够验证所收到的消息在传送过程中没有被修改、收到的消息不是攻击者伪造的假消息。
信息完整性检验一般用单向散列函数来实现口¨。
单向散列函数就是单向的把可变长度的输入串转换成固定长度的输出串的一种函数,hash函数必须具有以下的性质: 1.函数H可应用于任意长的数据块,产生固定长度的输出。
2.对任意给定的输入x,计算H(x)比较容易。
3.对任何给定的hash值h,找到满足H()母-h的x在计算上是不可行的。
4.对任何给定的x,找到满足y≠x且H(y)-H(x)的y在计算上是不可行的。
5.找到满足H(x)=H(y)的数对(x,y)在计算上是不可行的。
hash函数可以容易的由明文产生一块密文块,反之却是不可能的。
因此,这种技术可用于将产生的密文当作对应明文的一个信息完整性证明。
因为如果明文改变了,相应的密文也会发生变化。
有三种方法使用hash函数。
1.双方共享一个密钥K。
发送方先对要发送的信息.
上一篇:
完整毕业论文 基于PHP技术的大众供求信息网的开发
下一篇:
心情不好的时候看看这篇日志然后擦干眼泪……