今天就要开始写博文啦。我将不定期的把近来自己的学习心得发布到博客上,希望用这种方式能够激励起自己学习的欲望。不求别的,但求完善自我,超越自我。
下面开始:
密码学概论:
由于信息安全面临着各种威胁,因此需要采用保密通信来保护信息安全。信息安全面临的人为威胁分为:
1.被动攻击(窃听)
被动攻击的特点是不对消息作任何修改,因此难以检测,因此抗击这种攻击以预防为主。
2.主动攻击(篡改,伪造,中断)
绝对防止主动攻击是非常困难的,对抗主动攻击的主要途径是检测并恢复。
在密码学中,将要发送的消息叫做明文,明文被变换成看似无意义的随机消息,成为密文,这种变换过程叫做加密,其逆过程叫做解密。对明文加密是所采用的一组规则叫做加密算法,相应的,对密文进行解密时所采用的一组规则叫做解密算法。加密算法和解密算法的操作需要在一组密钥(加密密钥和解密密钥)的控制下进行,简单的说,密钥就是解读密文的钥匙。如果加密密钥和解密密钥相同或实质上相同,则称为单钥密码体制,否则称为双钥密码体制。
由于密码分析的存在,一个加密系统应当满足几点要求,才能做到安全可靠:
1.从一部分截获的密文或明文密文对,要决定密钥在计算上不可行。
2.满足Kerckhoff原则:系统的保密性不依赖与对加密体制或算法的保密,而依赖于密钥。
3.加密和解密算法适用于密钥空间中的所有元素。
4.系统便于实现和使用。
密码体制分类:
分两大类:单钥密码体制和双钥密码体制。
单钥体制:加解密密钥相同,因此,采用单钥体制的系统保密性依赖于密钥的安全性,换言之,算法无需保密,需保密的是密钥。
双钥体制:加解密密钥不同,采用双钥体制的每个用户都有一对选定的密钥:一个是公开的,大家都可以知道;另一个是秘密的。因此双钥体制又称公钥体制。
密码攻击的分类:
攻击者对密码系统有4种攻击类型,由攻击者已经截获的信息量决定。
1.唯密文攻击:攻击者只知道加密算法(加密算法是无需保密的)以及部分截获的密文。这是最困难的一种攻击类型。
2.已知明文攻击:攻击者不但知道算法及部分密文,还知道一个或多个明文密文对。
3.选择明文攻击:攻击者不但知道加密算法及部分密文。还可自己选择明文消息,得知由密钥产生的相应密文。
4.选择密文攻击:与3类似,这次攻击者可以自己选定密文,得知相应的被解密明文。
加密算法的安全性:
香农指出:仅当密钥至少和明文一样长时,才能达到无条件安全,敌手无论截获多少密文,花费多少时间,都不能解密密文。即只有一次一密的方案,才能达到无条件安全。比无条件安全弱一等的,是计算上的安全。由于一次一密很不现实,加密算法只需满足计算上的安全即可,即满足:
1.破译密文的代价超过被加密信息的价值。
或者
2.破译密文所花费的时间超过信息的有用期。
这就是设计一个安全的密码系统时应遵循的总原则。
古典密码举例:
古典密码的加密是将明文字母代换为字母表中的另一字母以实现加密。
1.凯撒密码
凯撒密码的算法:加密时,将明文中的每个字母按照字母表顺序向后移动3位(循环移位),解密时,将密文每个字母向前移动3位。
因此,凯撒密码的加密算法是将每个字母按照字母表顺序移动n位,而他的密钥是3,加密和解密的密钥相同,因此是单钥密码。可以看出,凯撒密码的密钥非常容易通过密码分析得到,而且面对已知明文攻击时根本不堪一击,极不安全。
2.多表代换密码
凯撒密码是单表代换密码,,即代换是对每个字母逐个进行的。如果代换对多个字母同时进行,则称为多表代换。
多表代换密码首先将明文将明文分成j个分组M1到Mj,每个分组由n个字母构成,则对每个分组Mi的加密为:
其中(A,
B)为密钥,A为n*n可逆矩阵,B、C、M均为长度为n的列向量。对密文分组Ci的解密为:
显然,多表代换密码也是单钥密码。虽然比起单表代换安全性有所提高,但仍然不够安全,不能抵抗统计分析,且多表代换依然禁不起已知明文攻击。