第26卷第7期 2010年7月 赤峰学院学报(自然科学版) Journal of Chifeng University(Natural Science Edition) V01.26No.7 JuL201O 数据加密基本方法 王晓英 (赤峰学院摘数学学院,内蒙古赤峰024000) 要:本文对数据加密的概念和方法进行了介绍,首先概述了数据加密的起源和发展,其次介绍了密码系统的概念、分 类以及密码分析方法,最后对分组密码进行了全面的概述,包括工作模式、设计原则以及现有结构等. 关键词:数据加密;密码系统;算法;模式 中图分类号:TlX393.08 1 引言 文献标识码:A 文章编号:1673-260X(2010)07-0024-04 数据加密技术起源于古代的密码学.密码到底产生于何时, 很难给出确切时间,但是在人类社会产生之初,就有了暗号 数据加密在网络安全中起着重要作用.在缺乏保护的情 况下,用户在网络上存储和传输的任何信息,都存在被篡改 的使用,它是密码学的雏形.密码的使用和人类拥有文字的 时间几乎一样长. 和泄露的可能性.这就要求我们不仅需要保护商业通信中的 经济信息,而且还需要个人信息.因此,世界上许多大公司和 研究机构,都在致力于解决国际互联网上的安全问题的研 究. 在我国可以考证的文献里面 ,战国时代己经有了密码 的使用,特使在送信的时候,会将特殊约定的文书(已经不是 明文),拆分成三段,由三个不同的信使分三路送往目的地, 这样即便其中一部分文书被截获,也不会被识破其玄机.国 外关于密码的应用也可追溯到40O0年前的古巴比伦. 2.2密码的发展 安全问题解决不好,小到个人利益受损,大到国家巨额 财富流失.鉴于数据信息安全越来越重要,以近代密码学为 基础的数据加密技术应运而生,并快速发展.从DES、MD5 到RSA,再到椭圆曲线加密、混沌加密,以及最先进的量子 加密,无不说明数据加密在信息传输中的重要地位. 2数据加密的起源和发展 从古至今,密码学的发展己经有几千年的历史,随着密 码学的发展其应用范围也越来越广,包括军事、外交、商业、 网络以及人们的日常生活的各个领域.同时随着集成电路、 计算机和通信技术的飞速发展以及网络技术的广泛应用, 基于公共通信设施和计算机网络的个人通信、多媒体通信、 电子邮件、电子自动转账系统和自动零售业务网得以蓬勃 在计算机中,我们经常需要一种措施来保护我们的数 据,防止被一些怀有不良用心的人所看到或者破坏.于是,我 们需要对数据进行加密处理,使得非法途径获得数据的人 无法破译田. 发展,信息的安全和保护问题显得愈发重要.虽然密码学的 研究已有数千年的历史,但是直到1949年,Shannon发表的 数据加密过程可以简单概括成:“把数据A表达成B”; 而反加密过程(破译或解密)是:“把数据B恢复成 . 数据加密的术语包括:“明文”指原始的或未加密的数 “保密系统的信息理论”为私钥密码体制建立了理论基础, 密码学从此成为一门科学【5J. 据;“密文”指明文加密后的形式,是加密算法的输出信息, 无密钥的用户无法理解,用于数据的存储以及传输. 密码学作为保护信息的手段,经历了三个发展时期.它 最早应用在军事和外交领域,随着科技的发展而逐渐进人 加密算法通常是公开的,如果算法的保密性是基于算 法的保密,这种算法称为受限制的算法.受限制的算法具有 历史意义,但按现代密码学的标准,其保密性远远不够.而 且,受限制的密码算法不可能进行质量控制或标准化.每个 人们的生活中.在手工阶段,人们只需通过纸和笔对字符进 行加密.随着工业革命的兴起,密码学也进入了机器时代、电 子时代.与人手操作相比,电子密码机使用了更优秀复杂的 加密手段,同时也拥有更高的加密解密效率.其中最具有代 表性的就是ENIGMA.ENIGMA是德国在1919年发明的一 种加密电子器,它被证明是有史以来最可靠的加密系统之 一.用户组织必须有他们自己的唯一算法.这样的组织不可能采 用流行的硬件或软件产品.但窃听者却可以买到这些流行产 品并学习算法,于是用户不得不自己编写算法并予以实现, 如果这个组织中没有好的密码学家,那么他们就无法知道 他们是否拥有安全的算法.所以受限制加密算法不能广泛应 用. 二战期间它开始被德军大量用于铁路、企业当中,使德军 保密通讯技术处于领先地位.在这个时期虽然加密设备有了 很大的进步,但是密码学的理论却没有多大的改变,加密的 主要手段仍是替代和换位. 2.1数据加密的起源 一计算机的出现使密码进行高度复杂的运算成为可能[o3. 24一 直到1976年,为了适应计算机网络通信和商业保密要求产 生的公开密钥密码理论,密码学才在真正意义上取得了重 大突破,进入近代密码学阶段.近代密码学改变了古典密码 学单一的加密手法,融人了大量的数论、几何、代数等丰富 知识,使密码学得到更蓬勃的发展. 到了现在,世界各国仍然对密码的研究高度重视,已经 发展到了现代密码学时期.密码学己经成为结合物理、量子 力学、电子学、语言学等多个专业的综合科学,出现了如“量 子密码”、“混沌密码”等先进理论,在信息安全中起着十分 重要的角色. 3密码系统 一个密码系统通常由以下几个部分组成: ●一一一一●_一一一一-_一一一一_一_一一。●一J 图1一般密码系统的构成 (1)明文空间M,它是全体明文的集合. (2)密文空间C,它是全体密文的集合. (3)密钥空间K,它是全体密钥的集合.其中每一个密钥 K均由加密密钥K和解密密钥 组成,既K=<K,K’>. (4)加密算法E,它是一族由M到C的加密变换. (5)解密算法D.它是一族由C到M的解密变换. 对于明文空间M中的每一个明文M,加密算法E在密 钥K的控制下将明文M加密成密文C=E(M,K1,而解密算 法D在密钥I(t的控制下将密文C解密出同一明文M:M=D (C,K’)=D (M,K),K’).对于每一个确定的密钥,加密算法将 确定一个具体的加密变换,解密算法将确定一个具体的解 密变换,且解密变换是加密变换的逆变换. 4密码系统的分类 4.1根据密钥分 通常,基于密钥的算法,密码系统分为两类:对称算法 和公开密钥算法. 对称算法表现为:K=K’,就是加密密钥能够从解密密 钥中推算出来,反过来也成立.在大多数对称算法中,加、解 密的密钥是相同的.这些算法也叫做私钥算法或单密钥算 法,它要求发送者和接收者在安全通信之前,商定一个密钥. 对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人 都能对消息进行加懈密.只要通信需要保密,密钥就必须保 密.对称算法的原理比较直观,计算处理的速度快,有广泛的 应用.典型的算法主要有RC2,RC4,DES,TEA等. 公开密钥算法(非对称算法)用做加密的密钥不同于用 做解密的密钥,而且解密密钥不能根据加密密钥t/- ̄t出来 (至少在合理假定的长时间内).之所以叫做公开密钥算法,是 因为加密密钥能够公开,即陌生者能够用加密密钥加密信 息,但只有用相应的解密密钥才能解密信息.加密密钥叫做 公开密钥,解密密钥叫做私人密钥.公开密钥算法比较复杂, 需要大量的计算工作,不太适合对大信息量内容进行处理. 因此,通常仅使用此方法对重要信息进行加密.目前主要使 用RSA等公开密钥方法. 对称加密算法实现简单,处理速度快,但对密钥管理的 保密性要求很高;公开密钥算法不需要经过安全渠道传递 密钥,简化了对密钥的管理,但运算量大、处理速度慢. 4.2根据明文的处理方式分 根据对明文的处理方式和密钥的使用不同,可将密码 体制分为分组密码和序列密码. 分组密码是将明文按一定的位长分组,明文组和密钥 全部经过加密运算得到密文组,解密时密文组和密钥经过 解密运算还原成明文组.这个固定长度被叫做块大小,块越 大,保密性能越好,但加解密的算法和设备就越复杂,块的 大小一般为64或128字节.典型的分组密码标准有DES、 IDEA、AES和TEA等. 序列密码是一次只对明文中的单个位 时对字节)运 算的算法.加密时,将一段类似于噪声的伪随机序列与明文 序列模2加后作为密文序列,这样即使对于一段全“0”或全 “1”的明文序列,经过序列密码加密后也会变成类似于随机 噪声的混乱序列.在接收端,用相同的随机序列与密文序列 模2加便可恢复明文序列.序列密码的优点是运算速度快, 缺点是密钥变换过于频繁,密钥分配较难.应用最广泛的序 列密码为RCA. 序列密码的加密、解密算法简单,适合于硬件实现,但 加密时对每一位数据都进行耗时的位操作,不适合软件实 现.分组密码由于具有易于标准化和便于软硬件实现等固有 的特点,在网络安全中更加通用,但加密算法的保密性及复 杂度受到块大小的约束. 5密码分析 密码分析是在不知道密钥的情况下,恢复出明文.成功 的密码分析能恢复出消息的明文或密钥.密码分析也可以发 现密码体制的弱点. 常用的密码分析攻击有6类H,每一类都假设密码分析 者知道所用的加密算法的全部知识: 5.1密文攻击.分析者有一些消息的密文,这些消息都用同 一加密算法加密.密码分析者的任务是恢复尽可能多的明 文,或者最好是能推算出加密消息的密钥,以便可采用相同 的密钥解除其他被加密的消息. 5.2已知明文攻击.分析者不仅可得到一些消息的密文,而 且也知道这些消息的明文.分析者的任务就是用加密信息推 出用来加密的密钥或导出一个算法,此算法可以对用同一 密钥加密的任何新的消息进行解密. 5.3选择明文攻击.分析者不仅可得到一些消息的密文和 相应的明文,而且他们也可选择被加密的明文.这比已知明 文攻击更有效.因为密码分析者能选择特定的明文块去加 密,那些块可能产生更多关于密钥的信息,分析者的任务是 一25— 推出用来加密消息的密钥或导出一个算法,此算法可以对 用同一密钥加密的任何新的消息进行解密. 5.4 自适应选择明文攻击.这是选择明文攻击的特殊情况. 分析者不仅能选择被加密的明文,而且也能基于以前加密 的结果修正这个选择.在选择明文攻击中,密码分析者还可 以选择一大块被加密的明文.而在自适应选择密文攻击中, 可选取较小的明文块,然后再基于第一块的结果选择另一 明文块,以此类推. 5.5选择密文攻击.密码分析者能选择不同的被加密的密 文,并可得到对应的解密的明文,例如密码分析者存取一个 防窜改的自动解密盒,密码分析者的任务是推出密钥.这种 攻击主要用于公开密钥算法,有时也可有效地用于对称算 法. 5.6选择密钥攻击.这种攻击并不表示密码分析者能够选 择密钥,它只表示密码分析者具有不同密钥之间的关系的 有关知识. 衡量一个密码系统的安全性有两种基本方法,一是实 际安全性,二是理论安全性.一个密码,如果无论密码分析者 截获多少密文,用什么技术都无法破译,则称该密码系统理 论上是安全的.这是香农著名的“一次一密”密码.如果一个 密码,破译该系统所需要的努力超过了敌手的破译能力f如 时间、空间和资金等资源),或破译该系统的难度等价于解数 学上的某个已知难题,则称该密码系统在实际中是安全的. 对于我们更有意义的是实际不可破译的密码系统. 6分组密码 从目前的情况来看,使用传统的方法进行加密容易被 破解.如广泛使用的m序列,只需知道2n个比特fn为寄存 器的级数)的码元就能破译该系统.再比如,美国的加密标准 DES(56比特1已经于1997年6月17日被攻破.另据报道 1024比特的RSA也可能在2010年被攻破_由此可见,网络 信息安全领域急切希望拥有更安全、方便、有效的信息保护 手段月前国际上正在探讨使用一些非传统的方法进行信息 加密与隐藏,其中混沌理论就是被采纳和得到广泛研究的 方法之一. 密码技术是信息安全技术的核心,它主要由密码编码 技术和密码分析技术两个分支构成.密码编码技术的主要任 务是寻求产生安全性高的有效密码算法和协议,以满足对 消息进行加密认证的要求.密码分析技术的主要任务是破译 密码或伪造论证信息,实现窃取机密信息或进行诈骗破坏 活动.根据被加密明文的处理方式不同,密码体制可分为分 组密码(Block Cipher)和序列密码(Stream Cipher).在应用密 码学中分组密码显得更加重要t31,这主要是因为:(1)分组密 码容易被标准化,因为在今天的数据网络通信中,信息通常 是被成块地处理和传输的;(2)使用分组密码容易实现同步, 因为一个密文组的传输错误不会影响其它组,丢失一个密 文组不会对随后组的正确解密产生影响.这就是说,传输错 误不会扩散.而这恰恰是序列密码的缺陷;f3)由于两个数据 一26一 加密标准DES和AES的广泛使用,促进了分组密码的发展. 分组密码是一个密钥控制下的变换,该变换把一个明 文 文)分组转换成一个密文(明文)分组.分组密码将明文消 息P划分成相继的数据块P。、P’、…,并将每个 用同一密 钥加密,每组的比特长度称为分组长度,通常为8的倍数, 譬如DES和IDEA密码的分组长度均为64比特. 6.1分组密码的工作模式 在实际应用中,分组密码体制的安全性往往还取决于 加密算法的工作模式,它通常由基本密码、一些反馈和一些 简单运算组合而成.目前已提出了多种分组密码的工作模 式,比如电子密码本(ECB)模式、密码分组链接(CBC)模式、密 码反馈(CFB)模式、输出反馈模式(ORB)、级联模式(cM1、计数 器模式、分组链接模式 C)、扩散密码分组链接模式( (PCBC)、明文差分的密文分组链接模式(CBCPD)和非线性函 数输出反馈模式(OFBNLF)等,但其中最主要和最基本的模 式有4种,即ECB、CBC、CFB、OFB模式. 6.2分组密码的设计原则 一个好的分组密码应该是既难破译又容易实现,加密 函数E( ,k)和解密函数D( ,k)都必须是很容易计算的,但是 要从方程c=E(p,k)和p=D(c,k)中解出密钥k是一个很困难 的问题.一般而言,在设计分组密码时应遵循以下几条原则【7】: 6.2.1安全性 安全性是分组密码的最重要的设计准则,它要求即使 攻击者知道分组密码的内部结构,仍不能破译该密码.这也 意味着,不存在针对该密码的某种攻击方法,其工作量小于 穷检索密钥.概括的说就是从任何角度都难以攻破.其中两 个最重要的角度是:(1)对于一个正在使用的加密算法,即使 攻击者获得许多精心选择的“明文、密文”对,他仍无法“接 近”密钥:(2)即使攻击者获得许精心选择的“明文、密文”对, 他仍无法“接近”一个新密文所对应的明文. 6.2.2有效性 效率准则与安全准则互补,它是指在执行加、解密时所 需要占用的资源量,是另一个值得考虑的问题.分组密码算 法不是各种计算部件的任意堆积,而是一种精巧的组合,使 其在满足安全性的同时尽可能简单快速. 6.2.3透明性和灵活性 透明性是要求算法是可证明安全的,其安全强度与迭 代次数的关系尽可能地容易分析.这就要求算法尽可能使用 通用部件,避免黑盒.灵活性是要求算法的实现可以适应多 种计算环境;明文分组长度可以伸缩;算法可以移植和变形. 6.2.4加、解密相似性 加、解密相似即加密算法和解密算法相同,仅仅密钥编 排不同.这就是说,如果记E( ,K)和D( ,K沩使用密钥K的 加密算法和解密算法,则对任意密钥K,存在密钥K木,使得 D( ,K):E( ,K).加解密相似性的好处是大大节省存储空问 和其它计算资源,并大幅降低成本.这也是分组密码设计所 追寻的方向. 6.3分组密码的结构 有交换外,其余各轮都做相同的运算.Feistel密码的一个非 常好的特征是具有相同的加密和解密结构,只需使用与加 密相反顺序的子密钥就可以轻松解密.当然也可以设计不含 Feistel结构的迭代密码,其加密和解密 !用适当几次重复 次序或计算)是相同的,如IDEA. 许多分组密码采用了Feistel结构,例如FEAL、GOST、 分组密码算法不应是各种计算部件的随意堆积,而应 是一种精巧的组合.对于不同的设计思路,有不同的组合方 式.设计的关键在于如何实现混乱与扩散.分组密码的结构 类型通常可分为fsI: 6.3.1代替置换结构(SPN网络) 由Feistel等人首先提出代替置换结构(SPN)( ̄/I图2所 示),由多个子代替非线性变换((S盒)迭代轮和简单的比特置 换组成,能有效的实现Shannon所描述的混乱与扩散.通过 LOKI、Blowfish和RC5等,对一个分组长度为2n比特的r轮 Feistel型密码,它的加密过程如下: 1)给定明文P,记P- 是P的右边n比特; ,这里 是P的左边n比特, 设计不同的代替与置换部件,就能很容易的得到不同的密 码系统.在这种算法的每一轮中,首先轮输入被作用于一个 山子密钥控制的可逆函数s,然后再被作用于一个置换(或 一个可逆的线性变换).SPN的结构非常清晰,S一般被称为 混淆层,主要起混淆的作用.P一般被称为扩散层,胜要起扩 散作用.在明确S和P的某些密码指标后,设计者能估计 SPN型密码抵抗差分密码分析和线性密码分析的能力.许多 密码分析方法对迭代密码的第一轮和最后一轮的处理方法 与中间轮不一样,一般都是首先猜测几比特密钥,然后剥去 密码的第一轮和最后一轮,再将攻击施加于剩下的轮上.有 鉴于此,为提高密码的安全性,我们认为可以对第一轮和最 后一轮特殊对待,给第一轮加一个密钥控制的前期变换,给 最后一轮加一个密钥控制的后期变换.例如,MARS和E2等 算法都采用了这样的措施. 图2三轮SPN结构(分组长度16比特,4"4S盒) 在传统的分组密码算法中,采用SPN结构的比较多,如 SAFER、SHARK和SQUARE都是基于SPN结构的分组密 码. 6.3.2 Feistel结构 Feistel密码是一类特殊的迭代分组密码,是由Hoist Feistel在没计Lucifer分组密码时发明的.由于DES中也采 用了Feistel结构(图3所示),Feistel i, R 密码有时也叫DES型密码.在一个一 Feistel密码中,一个明文分组被分 割成两部分(在DES中为两个相等 的部分).在子密钥的作用下,轮函数 f应用于其中的一部分,轮函数的输 出与另一部分做XOR运算,再将这 图3 Feistel结构 两部分交换.除第一轮和最后一轮没 2)进行r轮完全相同的运算后,在这里数据和密钥相结 合.则第i轮的消息分组kR由下式计算: k= —R一 0F(R -,I(i) 其中,0表示两个比特串的异或,F:GF(2) ×cF(2)’L-+ GF(2)n是轮函数,K 一,K是由种子密钥K生成的子密钥. 3瀚出密文c=R 在加密的最后一轮.为了使算法同时 用于加密、解密,略去“左右交换”. “加解密相似”是Feistel密码的实现优点,但Feistel密 码的扩散比较慢.例如,DES算法需要两轮才能改变输人的 每个比特. 6.3.3其它结构 还有很多运用其它结构的分组密码,其中许多是基于 一些有趣的理论基础,如IDEA就是在不同的代数群上的混 合运算,BEAR和LION采用的是3轮非平衡Feistel结构.最 新的高级数据加密标准AES采用的就是一种被称为密钥交 替的结构. 参考文献: [1]杨义先,等.网络信息安全与保密.北京:北京邮电大学出 版社.1999. [2]冯登国.国内外信息安全研究现状及其发展趋势.网络安 全技术与应用,2001(1):8-13. 【3]胡向东,魏琴芳.应用密码学教程.北京:电子工业出版 社,2005:1—100. (4]章照止.现代密码学基础.北京:北京邮电大学出版社, 2004:20-120. [5 3c.E.Shannon.Communication theory of secrecy sys— terns.Bell System Technical Journal,1949,28(4):656— 715. [6]卢开澄.计算机密码学——计算机网络中的数据保密与 安全(第3版).北京:机械工业出版社,2003:50—150. [7]杨波.现代密码学.北京:清华大学出版社,2003. [8)M.Y.Rhce.Cryptography and Secure Communica- tion,McGraw—Hill Book Co.,1994. 一27—