对称密匙算法
对称密匙算法属于一种加密法对于加密方和解密方使用普通相关的,经常可能是完全相同的密匙.
加密钥匙和解密钥匙密切相关-他们可以完全相同或者通过简单的变形进行转换. 这种密匙, 实际上,可以在两者或者多者中表达一种共享秘密,即保持一种私密的隐藏信息链接.
symmetric-key加密法还有一些其它的叫法,比如secret-key,single-key,shared-key,one-key,还有最终的private-key加密。不过private-key在public-key这种加密法中也有使用,所以容易产生误解。
内容
1.Types of symmetric-key algorithms
2.Symmetric vs asymmetric algorithms
3.Cryptographic primitives based on symmetric ciphers
4.Construction of symmetric ciphers
5.Security of symmetric ciphers
6.Key generation
7.Notes
1.Types of symmetric-key algorithms
对称加密算法可以分为stream ciphers流加密和block ciphers块加密. 流加密为信息的每一bit都加密,而块加密会将数据划分成一定数量的bits单元,然后为每一个数据单元进行加密。一般来说64位的块加密过去比较普及,而比NIST与2001年12月批准的比较先进的加密标准使用128位的加密块。
一些比较普及及受大家所推崇的对称加密包括Twofish,Serpent,AES,Blowfish,CAST5,RC4,TDES,and IDEA.
2.Symmetric vs asymmetric algorithms
2.1 speed速度上
一般来说对称加密没有非对称加密算法上那么敏感,所以实际上,一般来说对称加密的速度比非对称的要快几百或者几千倍。
2.2 key management对key的管理上
由于对称加密法要求加密解密双方同样持有一个密匙,那就导致如果有n方介入的情况下所有的每个人和其他人都需要一个单独的密匙,而密匙的总量将达到n(n-1)/2把。而针对这么多把钥匙的升级和修改或者保密将会非常困难。选择发布及保存密匙的过程统称为密匙管理,将会很难达到可靠性和安全性。
2.3 Hybrid cryptosystem
混合加密法。
这种方法用两种方法同时进行加密和解密。而非对成加密的部分正是对称加密的密匙。这样当企业获得非对称加密的密匙并解密出来后,运用对称加密的密匙去提取数据本体而是速度大幅度提升。但非对称加密部分的发布必须要保证绝密和有效。
3。Cryptographic primitives based on symmetric ciphers 基于对称加密法用密码写的原始数据
对称密码比起加密来说更经常用于获得其他加密法加密的原始数据
加密消息是不能保证消息本利不变的。这样的话一般来说消息验证码会被加入一个加密文本来保证核对加密过的文本没有变化。消息验证码可以通过对称加密法来构建。然而,这些消息验证码不能用来证明不可否认性。
还有一种程序在块加密中用来建立打乱功能。查看单项压缩功能来寻找这种方法的描述。
4.Construction of symmetric ciphers
很多现代的块加密方法是基于Horst Feistel所提出的结构。 Feistel 的结构允许通过一些其它本身不可逆转的方法建立可逆转的功能。
5.Security of symmetric ciphers
历史上对称加密法受到 已知明文攻击,选择性明文攻击, 特定密码翻译法和线性密码翻译法。小心的对每一层加密方法的构建可以大幅度减少这些攻击的成功率。
6。Key generation
当使用对称加密法的时候,伪随机密匙生成器一般来说会被用来生成密匙。然而,在过去这种缺乏随机性的生成器或初始向量生成器很糟糕,而且会导致密码被破解。因此,形成密匙的时候使用高熵源是很重要的。