孟文出
首先需要来了解一些与密码有关的定义。
密钥:加密密钥和解密密钥。
明文:没有进行加密,能够直接代表原文含义的信息。
密文:经过加密处理处理之后,隐藏原文含义的信息。
加密:将明文转换成密文的实施过程。
解密:将密文转换成明文的实施过程。
密码算法:密码系统采用的加密方法和解密方法,随着基于数学密码技术的发展,加密方法一般称为加密算法,解密方法一般称为解密算法。
分组密码(Block Cipher):用明文的一个区块和密钥,输出相同大小的密文区块。由于待加密数据通常比单一分组长,因此有各种方式将连续的区块拼接在一起。分组密码代表有DES,AES。
流密码(Stream Cipher):相对于分组加密,把密钥与明文依位元或字符结合,有点类似一次一密密码本(One-time Pad)。输出的串流根据加密时的内部状态而定。在一些流密码上由密钥控制状态的变化。流密码代表有RC4。
密码分析:破解密码。
经典密码分析
在假设密码分析者已知所用加密算法全部知识的情况下,根据密码分析者对明文、密文等数据资源的掌握程度,可以将针对加密系统的密码分析攻击类型分为以下4种:
①惟密文攻击(Ciphtext-onlyAttack)
在惟密文攻击中,密碼分析者知道密码算法,但仅能根据截获的密文进行分析,得出明文或密钥。由于密码分析者所能利用的数据资源仅为密文,这种情况是对密码分析者最不利的。
②已知明文攻击(Plaintext-known Attack)
已知明文攻击是指密码分析者除了有截获的密文外,还有一些已知的“明文—密文对”来破译密码。密码分析者的任务目标是推出用来加密的密钥或某种算法,这种算法可以对用该密钥加密的任何新消息进行解密。
③选择明文攻击(Chosen-plaintext Attack)
选择明文攻击是指密码分析者不仅可得到一些“明文—密文对”,还可以选择被加密的明文,并获得相应的密文。密码分析者选择特定的明文数据块加密,并比较明文和对应的密文,分析和发现更多与密钥相关的信息。
密码分析者的任务目标是推出用来加密的密钥或某种算法,该算法可以对用该密钥加密的任何新消息进行解密。
④选择密文攻击(Chosen -ciphenext Attack)
选择密文攻击是指密码分析者可以选择一些密文,并得到相应的明文。密码分析者的任务目标是推出密钥。这种密码分析多用于攻击公钥密码体制。
现代密码分析
拦截攻击、窃听、边信道攻击以及用量子计算机来代替传统计算机做密码分析。
对分组密码安全性的讨论主要包括差分密码分析、线性密码分析和强力攻击等。从理论上讲,差分密码分析和线性密码分析是目前攻击分组密码的最有效的方法,而从实际上说,强力攻击是攻击分组密码最可靠的方法。