标签:
密码学:包含密码编码学和密码分析学两部分内容。前者是研究如何通过编码来保证信息的机密性,后者则研究如何破译密码。
一般加密模型
密码系统的主要功能:完成信息的加密变换和解密变换。
明文:加密变换前的原始信息。
加密算法:加密变换时使用的算法。
密文:经过加密变换后的信息。
解密算法:解密变换时使用的算法,是加密算法的逆过程。加密和解密算法是相关的。
密钥(Key):在加密和解密变换过程中引入一个相同或两个不同但相关的参数,该参数称为密钥。分为加密密钥和解密密钥。
主要取决于密钥的安全性。要经常更换密钥。密码系统的安全性
密码系统的描述:(P,C,E,D,
密码系统的使用:
- 加密过程和解密过程位于同一系统中。信息的存储加密。
- 加密过程和解密过程位于不同系统中。信息的传输加密。
根据加密和解密过程中使用的密钥是否相同进行分类:对称密码体制和非对称密码体制。
对称密码体制:加密和解密算法使用相同的密钥。也称为常规密钥密码体制、单密钥密码体制、秘密密钥密码体制。
非对称密码体制:加密和解密算法使用不同但相关的一对密钥。也称为公开密钥密码体制、双密钥密码体制。
根据密文数据段是否与明文数据段在整个明文中的位置相关,可将密码系统分为分组密码体制和序列密码体制。
分组密码体制:密文仅与加密算法和密钥有关。(常用)
序列密码体制:密文除了与加密算法和密钥有关外,还与被加密明文部分在整个明文中的位置有关。
根据加密变换是否可逆,可将密码系统分为单向函数密码体制和双向变换密码体制。
单向函数密码体制:将明文加密成密文,但却不能将密文转换成明文。用于不需要解密的场合,如报文鉴别。
双向变换密码体制:如:现在常用的加密算法。
根据在加密过程中是否引入客观随机因素,可将密码系统分为确定型密码体制和随机密码体制。
确定型密码体制:一旦明文和密钥确定后,密文也就唯一地确定了。(常用)
随机密码体制:对于给定的明文和密钥,总存在一个较大的密文集合与之对应,最终的密文是根据客观随机因素在密文集中随机选取的。
常规加密:又称为对称加密或单密钥加密,是在公钥加密研制以前使用的惟一加密类型,仍广泛使用。
在使用常规加密的通信系统中,安全通信的双方共享同一个密钥K。
加密和解密算法公开,密钥保密。因此,常规加密密钥也称为秘密密钥(Secret Key)。
密码分析:由密文试图获得明文、密钥或这两者的过程称为密码分析。
常见的密码分析方法:强行攻击、统计分析、差分密码分析、线性密码分析和代数攻击等。
密码破译者所使用的策略取决于加密方案的性质以及可供密码破译者使用的信息。
如果一个加密算法满足下述两个条件之一,就称此算法在计算上是安全的。
- (1)破译该密码的成本超过被加密信息的价值。
- (2)破译该密码的时间超过该信息有用的生命周期。
替代技术:将明文中的每个元素(字母、比特、比特组合或字母组合)映射为另一种元素的技术。明文的元素被其他元素所代替而形成密文。
置换技术:置换是在不丢失信息的前提下对明文中的元素进行重新排列。
序列密码(流密码):
在该密码体制中,将明文P看成连续的比特流(或字符流)
即:
这种体制的保密性完全在于密钥的随机性。如果密钥是真正的随机数,则这种体制就是理论上不可破的。这也称为一次一密乱码本体制。
该体制所需的密钥量很大,目前常用伪随机序列的密钥序列,序列周期一般为
(2)密码分组链接模式(CBC):
将明文P分组(
每个明文分组使用同样的密钥K进行加密。
每个明文分组在加密前,先与上一次加密输出的密文分组进行按位异或,而后再进行加密处理。
对第一个明文分组进行处理时,还没有密文分组可用,需要引入一个初始向量IV与该分组异或。
DES加密原理:
加密前对整个明文进行分组,每组长64位,然后对每个64位二进制数据块分别进行加密,产生一组64位密文数据。最后将各组密文串接起来,即得出整个密文。使用的密钥为64位,实际密钥长度为56位(有8位用于其他目的)。
DES加密过程分为两条主线:明文的加密处理和子密钥的产生。
IDEA每次加密的明文分组长度为64比特,加密时将这64比特分为4个16比特的子分组。
IDEA的密钥长度为128比特,加密时将密钥生成52个16比特的子密钥。
IDEA使用了8轮循环,8轮循环后再经过一个输出变换形成密文。
每轮循环使用6个16位的子密钥,最后的输出变换使用4个16位的子密钥。
IDEA的解密算法与加密算法相同,解密算法的52个子密钥由加密子密钥导出。
RC5的参数包括字长w、循环轮数r和密钥长度b。
字长w的单位为比特,允许取值为16、32或64。
分组长度为2w,允许取值32、64或128比特。
循环轮数r允许的取值为0,1,2,…,255。循环轮数越多安全性越好。
密钥长度b的单位为字节,允许取值为0, 1, 2, …, 255,对应的二进制位是0, 8, 16, …, 2040。选择合适的密钥长度可以在速度和安全性之间进行折衷。
Rijndael算法的主要优点是:
(1)设计简单。无论采用硬件还是软件形式,无论是否采用反馈模式,算法都显示出非常好的性能。
(2)内存需求非常低,很适合用于受限环境中。
(3)操作简单,在所有平台上运行良好,支持并行处理,并可抵御时间和空间上的攻击。
(4)在分组和密钥大小方面具有一定的灵活性。
标签:
原文地址:http://blog.csdn.net/codeforcer/article/details/51726109