密码学 下载本文

密码学

一. 密码学简介据记载,公元前400年,古希腊人发明了置换密码。1881年世界上的第一个电话保密专利出现。在第二次世界大战期间,德国军方启用“恩尼格玛”密 码机,密码学在战争中起着非常重要的作用。随着信息化和数字化社会的发展,人们对信息安全和保密的重要性认识不断提高,于是在1997年,美国国家标准局公布实施了“美国数据加密标准 (DES)”,民间力量开始全面介入密码学的研究和应用中,采用的加密算法有DES、RSA、SHA等。随着对加密强度需求的不断提高,近期又出现了 AES、ECC等。我国也相应提出了自己国家的ECC、SCB2、SCH等加密算法。 使用密码学可以达到以下目的:1. 保密性:防止用户的标识或数据被读取。2. 数据完整性:防止数据被更改。3. 身份验证:确保数据发自特定的一方。 二. 加密算法介绍根据密钥类型不同将现代密码技术分为两类:对称加密算法(秘密钥匙加密)和非对称加密算法(公开密钥加密)。两者的区别在于:对称钥匙加密系统是加密和解密均采用同一把秘密钥匙,而且通信双方都必须获得这把钥匙,并保持钥匙的私密性。非对称密钥加密系统采用的加密钥匙(公钥)和解密钥匙(私钥)是不同的。 2.1 对称加密算法对称加密算法用来

对敏感数据等信息进行加密,现在,通常使用分组密码(block cipher)或序列密码(stream cipher)实现对称密码,由于序列密码算法不常用,所以本文将只讨论分组密码,常用的分组密码算法包括:1. DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合。2. 3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高。3. AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高。 分组密钥常见术语 置换(Permutation)与替代(Substitution)置换与替代是对称密钥中常用的两种手段。置换是对数据重新进行排列,而替代是将一个数据单元替换为另一个。通常替代要借助非线性查找表来进行,即 DES和AES中所称的S-Box。 轮(Round) 对称密钥中经常对输入进行多轮迭代,这些迭代通常操作相同,只是具体上有些许差异,对称密钥的这种特性使得对称密钥适于用流水结构实现,因而数据吞吐量 大,容易实现高速加解密。2.1.1 DESDES算法全称为Data Encryption Standard,即数据加密算法,它是IBM公司于1975年研究成功并公开发表的。DES算法有三个输入:Key、Data、Mode。其中 Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密 或解密。 算法原理DES算法把64

位的明文输入块变为64位的密文输出块,它所使用的密钥也是64位,其算法主要分为两步:1 初始置换其功能是把输入的64位数据块按位重新组合,并把输出分为L0、R0两部分,每部分各长3 2位,其置换规则为将输入的第58位换到第一位,第50位换到第2位……依此类推,最后一位是原来的第7位。L0、R0则是换位输出后的两部分,L0是输 出的左32位,R0是右32位,例:设置换前的输入值为D1D2D3……D64,则经过初始置换后的结果为:L0=D58D50……D8;R0=

D57D49……D7。2 逆置换经过16次迭代运算后,得到L16、R16,将此作为输入,进行逆置换,逆置换正好是初始置换的逆运算,由此即得到密文输出。 2.1.2 3DES3DES(即Triple DES)是DES向AES过渡的加密算法(1999年,NIST将3-DES指定为过渡的加密标准),是DES的一个更安全的变形。它以DES为基本模 块,通过组合分组方法设计出分组加密算法。3DES一共有两种,一种是使用两个56位长度的密钥key1和key2,这样密码强度提高到了112位;另一 种是使用三个56位长度的密钥key1、key2和key3,这样密码强度提高到了168位。使用两个密钥的3DES:加密过程:用key1加密,用key2解密再用key1加密解密过程:用key1解密,用key2加密再用key1解密使用三个密钥的3DES:加密过程:用key1加密,用key2解密