分组密码介绍
摘要
分组密码算法是现代密码学中的重要组成部分,其主要任务是提高数据的保密性。SPN和Feistel结构是经典的两个分组密码算法的结构。当今很多算法使用这两种结构的变型,比如非平衡Feistel结构等。密码学中,分组密码的工作模式允许使用同一个分组密码密钥对多于一块的数据进行加密,并保证其安全性。分组密码算法可作为底层函数,用来构造其他密码算法,如伪随机数生成器、流密码、认证码和哈希函数。本文简要介绍公钥密码体制和对称加密算法,通过分组加密算法DES和AES,重点介绍SPN和Feistel这两种分组密码结构。
背景
图1 密码学
分组密码
图2 分组密码算法
Feistel 结构
Feistel 结构的分组密码:令F为轮函数;令K1,K2,……,Kn 分别为第1,2,……,n轮的子密钥。那么基本构造过程如下:
Feistel结构(图3)一次仅一半的数据进入F函数,它的优点在于:由于它是对称的密码结构,所以加密和解密过程就极为相似,只有密钥使用方式不同。Feistel结构的优势在于加解密方式相同、节省资源;缺点是扩散速度低,为达到一定的安全性通常需要迭代更多的轮数。Feistel结构代表算法有DES算法、ISO/IEC 国际标准算法Camellia、Blowfish、日本NTT公司的DES算法在软件应用方面的后补 FEAL算法、以及我国的商业分组密码标准 SM4 等。
图3 Feistel结构
图4 DES算法
代换-置换网络 (Substitution-Permutation Network,SPN) 结构
图5 代换-置换网络 (Substitution-Permutation Network,SPN)结构
图6 SPN结构的密码算法
注解:
(1)乘积密码指顺序地执行两个或多个基本密码系统,使得最后结果的密码强度高于每个基本密码系统产生的结果。
(2)乘积密码指顺序地执行两个或多个基本密码系统,使得最后结果的密码强度高于每个基本密码系统产生的结果。
(3) Kerckhoffs Principle states that the security of a cryptosystem must lie in the choice of its keys only; everything else (including the algorithm itself) should be considered public knowledge。
(4)Kasiski 测试法 [10] 思路是对一份用周期性多表密码加密的密文,确定其中所有的重复出现的字母串,计算他们之间的距离,并对这些距离进行因子分解,出现频率较高的因子很可能是密钥的长度。
(5)重复指数法 [10] 利用随机文本和英文文本的统计概率差别来分析密钥长度。
参考文献:
[1] Eli Biham and Adi Shamir. Differential cryptanalysis of des-like cryptosystems. In Advances in Cryptology - CRYPTO ’90, 10th Annual International Cryptology Conference,Santa Barbara, California, USA, August 11-15, 1990, Proceedings, 1991.
[2] J Daemen. Aes proposal : Rijndael, aes algorithm submission.
http://www.nist.gov/CryptoToolkit, 1999.
[3] Joan Daemen, Vincent Rijmen, and Katholieke Universiteit Leuven. Aes proposal:Rijndael. 1998.
[4] W. Diffie and M. Hellman. New directions in cryptography. IEEE Transactions on Information Theory, 22(6):644–654, 1976.
[5] Mitsuru Matsui. Linear cryptanalysis method for des cipher (iii). In Workshop on the theory and application of cryptographic techniques on Advances in cryptology, 1995.
[6] National Institute of Standards and Technology. Advanced encryption standard (aes). https://csrc.nist.gov/publications/detail/fips/197/final, 2001.
[7] Fabien A. P. Petitcolas. Kerckhoffs’ Principle, pages 675–675. Springer US, Boston,
MA, 2011.
[8] R. L. Rivest, A. Shamir, and L. Adleman. A method for obtaining digital signatures and public-key cryptosystems. Communications of the Acm, 21(2):120–126, 1978.
[9] C. E. Shannon. The mathematical theory of communication. Bell Labs Technical Journal, 3(9):31–32, 1950.
[10] M Stamp and R Low. Applied Cryptanalysis: Breaking Ciphers in the Real World. Wiley-Interscience, 2007.
[11] Sam Trenholme. The aes encryption algorithm. https://www.samiam.org/rijndael.html.
中国保密协会
科学技术分会
长按扫码关注我们
作者:赵雪锋(中国科学院信息工程研究所 信息安全国家重点实验室)
责编:眼 界
往期精彩文章TOP5回顾
起底突破物理隔离的USB设备攻击窃密技术
通过电力线“搞定”物理隔离计算机
请注意:扬声器、耳机也能窃密了!——Mosquito攻击技术
近期精彩文章回顾