一、计算机安全性质(CIA)
Confidentiality:典型攻击,窃听
Integrity:典型攻击,篡改与伪造
Availability:典型攻击,ddos
二、密码攻击类型
1、唯密文[Ciphertext Only]:知道加密算法和要解密的密文。
2、已知明文[Known Plaintext]:知道加密算法和要解密的密文,以及一个或多个明密文对。这通常出现在一类报文的标准报头。
3、选择明文 [Chosen plaintext]:知道加密算法和要解密的密文,以及破译者选定的明文,以及相对应的密文。这通常出现在一个公共加密系统。
4、选择密文 [Chosen ciphertext]:知道加密算法和要解密的密文,以及破译者选定的密文,以及相对应的明文。这通常出现在可以截获密文,并可以将密文传送给解密系统并获得明文。
5、选择文本 [Chosen text]:就是选择明文+选择密文。
三、安全的密码体制
1、无条件安全:不论截取者获得了多少密文,但在密文中都没有足够的信息来唯一地确定出对应的明文。
2、计算上安全的:破解密文的代价超出加密信息的价值 || 破解密文需要的时间超出信息的有用寿命。
四、古典密码例子
1、凯撒密码:
移位密码,移位位数k就是密钥。是一种单表代换(Substitution)密码。
2、Vigenère Cipher:
是个多表代换密码,实际上就是26张凯撒密码的代换表叠在一起。
加密:对照表,分别找到明文列和密钥行,对应的就是密文。
解密:对照密钥,找到相应的密文,对应的列就是明文。
可以不用表,加密直接明文加密钥取模,解密直接密文减密钥取模。
如何破解:寻找密文中重复出现的部分,找出这些重复之间的间隔,密钥的长度很可能是他们的公约数,因为重复的密文一定是重复的明文加上重复的密钥。有了密钥的长度,就可以把密文分开,如果密钥的长度是3,那就分成(1,4,7...), (2,5,8...), (3,6,9...)分别对每组做频率分析来破解。
3、转子加密
也是多表代换,但是每次代换完,加密一个字母之后,所有的转子都会转,转的速度不一样,每次加密就相当于用的不同的表代换。
4、Playfair加密
1)首先画一个5*5的表,自己编个密码,一串字符串,将这个字符串里的字符去重,去除空格,就是密码,然后把这个密码按照行优先填到这个表里,然后再按照字母表顺序把密码里没出现过的字母按顺序填进表里,因为是25个格子,所以通常忽略Q或者把I和J放在一起。
2)将明文分为2个一组,如果一组的字母是一样的,那么就在他们中间插入‘Q’ 或者 ‘X’。
3)开始加密,对着原来画好的表,字母所在行为密文所在行,另一个字母所在列为密文所在列
如果两个字母在同一行,密文就是明文右边紧挨的字母,循环利用;
如果两个字母在同一列,密文就是明文下边紧挨的字母,循环利用;
五、频率分析攻击
古典密码对英文字母加密,英文字母有出现的频率一说,例如e出现的频率就比较高,所以可以找出密文中出现频率最高的字母,再找e、t等字母挨个试,就可以破解凯撒密码等单表代换密码。
为了抵抗这种攻击,可以采用多字母代换密码,例如playfair,或者多表代换密码,例如Vigenere密码。