20lO年第5期T业仪表与自动化装置・83・网络数据DES加密算法研究与实现万正道(邯邢矿山管理局安徽开发矿业有限公司,安徽六安237462)摘要:介绍了几种常见的网络数据加密方法,分析了对称加密与不对称加密的优缺点,结合实际详细阐述了DES对称加密算法运算与密钥计算,并在VC++6.0中实现了该算法,论证了该算法加密的快速性与可行性。关键词:网络数据;DES算法;加密中图分类号:TP393.08文献标志码:A文章编号:1000—0682(2010)05—0083一04Reasearchingandimplementati帅ofDESencryptionalgorithmfornetworkdata(月缸谢增胍肌觇姊睁讲肌知月捌枞幻帆A砘越砌打w珧地脚吼e叫c0.M,A施““眦nwANZhengd帅237462,c^iw)Abstract:Thisanicledescribessomecommonnetworkdataencryptionmethod,analyzetheadvanta—gesanddisadvantagesofsymmetricencryptionandasymme啊cencryption,combinedwiththeactualde—tajloftheDESsymmetricencryptiona190rithmandkeycomputingoperations,andinVC++6.0toa-chieveachangeintIlea190rithm,demons№testherapidchangeandfeasibilityofenc呻tiona190rithm.Keywords:networkdata;DESalgorithm;enc呻tionO引言lDES算法运算分析网络数据加密方式有对称加密、不对称加密或DEs算法是用56位密钥对64位的明文操作,者通过网络传递数据加密。常用的加密算法有该算法运算分为7个步骤:输入64个二进制明RSA、DES、SSF33、3DES等。RSA为非对称加密算文数据Ⅸ组:丁=t,,t:,…,‰,按照初始换位表IP进法,该算法在数较小时易于实现,而基于网络安全需行换位,得到数据组B=6,,6:,…,664,换位表IP设要有大整数的运算,RSA就需要执行大量的加减乘置为8行8列,oii表示行列巾第i行第,列位置,置除、模幂、模逆和密钥对生成运算,软件实现起来慢,换规则为口l,H口豇,%H口弭,%++口击,%++口谬,05,++特别在硬件实现时效率低;对称加密也称为私钥加口n'%++o凸,口7f+÷口6,口8,++口订,IP表见表l。密。采用私钥算法,加解密数据使用同一个密钥,它表lDEs算法IP表以块为单位加密数据,一次加密一个数据块,其优点585042342618102是加解密速度快,适合加密大量数据。DEs算法常605244362820124用于身份识别领域,对于电力系统这样安全高要求6254638302214系统也常用此算法加密,比如,办理电站调度操作票645648加322416时,电脑钥匙需通过接口与Pc机联系下载操作票,57494l3325179这种双向识别为保安全可用该算法。下面对该算法595l4335271911加以解析并在程序上加以仿真验证。6l534537292l13635547393l2315设B‘i’=6l‘‘’62‘订…664‘‘’是第i+1次迭代的收稿日期:20lO一03—20作者简介:万正道(1982),男,湖北黄冈人。T学硕士.助理T程64个二进制位输入区组,将曰分为£和尺两个部师,供职于五矿矿业安徽开发有限公司,研究方向为检测技术与自动分,每一部分为一个32位二进制的数据块。化装置,感兴趣方向为工业网络监控技术,移动网络自动检测。£‘i’=Zl‘i’乞‘订…Z32‘‘’=6I‘‘’62‘i’…632‘i’万方数据・84・工业仪表与自动化装置2010年第5期R(‘)2^(订r2(‘)…732(i)=633(‘)634(‘)…6矾(‘)把R看成是由8个4位二进制的块组成7l(i)r2(i)r3(i)r4(i)r5(‘)r6(‘)r7(‘)78(‘)b‘。‰‘‘’r3l‘or32(‘’通过循环抄录相邻块的相邻块,将上述8个4位二进制扩充为8个6位二进制的块,32(‘)-(i)r2(i),3(‘)r4(i)如(‘)r4(‘)r5(‘)r6(‘)r7(‘)r8(‘)r9(j)r28(‘)b(‘)r30(‘)r3I(‘)r32(‘)7l(i)用E(R)表示这个变换,称为扩充函数,见表2。表2扩充函数表在第i+1次迭代中,用48位二进制密钥K‘“1)=七l‘“1’j}2‘许1’…k‘“1’与E(R)按位相加(逻辑异或),得:r32‘1’峨‘川∥’+∥+1)..・r5‘‘’+∥+1’r4‘‘’+.|}7‘㈤r5(i’+I|}8‘㈨…r9‘‘’也2‘川仫‘‘’+k‘M’畅‘‘’+k‘“¨…rl‘‘’+k‘“1’将以上第,个(1吲≤6)6位二进制块记为z=(和钮和铂和知)输入第_『个替代函数Isf中,S,的功能是把6位数变换成4位数,方法是以名。%为行号,和和红215为列号,查找s,,行列交叉处即是要输出的4位数。替代函数如下:S1:14,4,13,l,2,15,11,8,3,10,6,12,5,9,O,7;O,15,7,4,14,2,13,1,10,6,12,11,9,5,3,8;4,l,14,8,13,6,2,ll,15,12,9,7,3,10,5,0;15,12,8,2,4,9,l,7,5,11,3,14,10,0,6,13;岛:15,1,8,14,6,11,3,4,9,7,2,13,12,0,5,10;3,13,4,7,14,2,8,15,12,0,l,10,6,9,11,5;O,14,7,1l,10,4,13,l,5,8,12,6,9,3,2,15;13,8,10,l,3,15,4,2,1l,6,7,12,0,5,14,9;依次类推:Sg:13,2,8,4,6,15,11,l,10,9,3,14,5,O,12,7;万方数据l,15,13,8,10,3,7,4,12,5,6,1l,O,14,9,2;7,1l,4,1,9,12,14,2,0,6,10,13,15,3,5,8;2,l,14,7,4,10,8,13,15,12,9,0,3,5,6,1l;8个替代函数si(1吲≤8)的输出拼接为32位二进制数据区组,,l‘‘’扎‘‘’…儿2‘订,把它作为换位函数尸(见表3)的输入,得到输出为:x‘‘’=茹l‘i’菇2‘‘’…菇32‘‘’2,,∥’y17‘‘’…勉(‘)表3换位函数尸表把∥与F按位相加,得出R“1,令硝=L“1,即得出经过第i+1次迭代加密后的输出矿1,月”1,其中己‘“1’=硝,R‘“1’=∥刚膏,彪‘“1’),在这16次迭代中,前15次£表示左32位,R表示右32位,最后一次迭代后,L表示右32位,R表示左32位,最后一次不再左右变换,以保证加密的对称性。最后对R和£做逆初始变换即可得到密码文。逆初始变换表IP见表4。表4口逆变换表所以最后有:月i=己‘“¨,£‘=R‘州’G抓L‘,K‘州’)2DES算法密钥计算方法在每次迭代中要用到的48位密钥是根据64位原始密钥计算出来的。设64位原始密钥为:K=J|},孟2…k,48位密钥为:影"=||}I¨’.|}2“’…k“’(i=15,14,…,O),将原始密钥中所有8的倍数位故j},。…k用作奇偶校验位,48位密钥计算过程为:先要舍弃原始密钥K中的所有奇偶校验位,经过换位20lO年第5期工业仪表与自动化装置・85・选择处理,变成C‘∞,口(们两个各为28位的数据区组。其中C‘o’换位表见表5。D‘o’换位表见表6。C(o)=cl(o)c2(∞…c2s(o)=后卯知49…后36,D‘o’=dl‘o’畋‘o’…d28‘o’=后63矗晒…以。表5C‘。’)换位表再将C‘们,D‘o’各做尼(n=l,2)位左循环移位,得到C‘1’=AnC‘∞,D‘1’=A,国‘们,对应不同i的左循环移位位数为:i12345678儿1l222222i910111213141516凡l2222222将C‘¨,D‘1’拼接为||}l‘1’后2‘¨…k‘1’=e14‘1’e17‘1’…e32‘1’dl‘1’如‘1’…咄‘n,用换位选择2(见表7),从中选出48位,形成第1次迭代使用的加密密钥:K‘”=后l‘1’后2‘1’…k‘”=e14‘1’e17‘”…e32(1)用同样的方法递推产生第i次(i=2,…,16)迭代的密钥。表7置换选择2表3DES算法的程序设计上面对DEs算法运算分析和密钥的计算的分析,将DEs算法运算过程分为下面9个步骤:万方数据1)从外部输入“位原始密钥J|}.Ji}:…k,其中56位是密钥位,8位是奇偶校验位;2)由J|}。后2…k依次计算出16个48位密钥后‘1’五‘2’…尼‘16’,分别用于第1.16次迭代,从外部输入64位明码文£l乞…‰;3)对f。t:…‰做初始换位,然后分成32位的L‘们,R‘m,迭代计数器置l,把扩充函数作用于R‘i一¨,得E(R‘“’);4)若执行加密操作,则选用七“’,若执行解密操作,则选用后‘”一’;5)计算E(R‘扛1’)oK‘订,得48位的数据区组:Z(i)=zl(i)乞(虬・‰(i);6)将z“’分组分别通过相应的.si,得到32位的数据区组:p‘’=yl‘j’儿‘‘’…‰‘‘’;7)将换位函数P作用于F订,得到X“’=P(∥i’),计算尺‘i’=X‘i’oL‘扣¨;8)令L‘i’=尺‘扣¨,迭代计数器加l。9)如果迭代计数器≤16,则再次做第6)~8)步,否则将(R“的£¨”)经逆初始换位作用之后输出。根据以上步骤,用C++语言实现,下面给出关键函数说明:staticvoidDES(char0ut[8],ch盯In[8],constSuBKEY—Ppskey,boolType);//标准DES加解密staticvoidSETKEY(coIlstchar术Key,iIltlen);//设置密钥staticvoidSet—SubKey(SUBKEY—Ppskey,constchfurKey[8]);//设置子密钥staticvoidF_FuNclrION(b00lIn[32],constbool硒[48]);//f函数完成扩展置换、s盒代替和P盒置换staticvoids—BOxF(boolOut[32],constb00lIn[48]);//S一盒代替函数sta【tic、roidTRANSFORM(bool爿:Out,bool术In,constchar宰Table,intlen);//变换函数staticvoidXOR(bool木InA,con8tbool木InB,intlen);//异或函数staticvoidCYCLELEFr(b001唪In,intlen,intloop);//循环左移函数staticvoidByteToBit(bool书Out,constchar幸In。intbits);//字节组转换成位组函数s诅ticvoidBitToB”e(ch盯书Out,constbool簟In,intbits);//位组转换成字节组函数staticboolSubKey;//子密钥。・86・工业仪表与自动化装置2010年第5期4实验结果分析在Vc++6.0下实现测试结果见图l。心数据进行DES加密,然后以密码形式在公共通信网中传输到通信网络的终点,数据到达目的地后,用同样的Key对密码数据进行解密。网络数据使用该法加密能防止数据在传输过程中被窃听或者篡改,尤其适用长数据。但是,由于DEs算法采用的是单密钥,在密钥管理方面,算法要求通信前对密钥进行秘密分配,密钥的更换困难,所以对不同的通信对象,需产生和保管不同的密钥。利用该算法做成的硬件产品层出不穷,如引青中提到的电站用到的“电脑钥匙”,一些uKey产品现在也随处可见。参考文献:[1]卢开澄.计算机密码学:计算机网络中的数据保密与图lVC++6.0下DES测试结果安全[M].(3版).北京:清华大学出版社,2003.[2]陈琳.DEs算法的安全性及其应用[J].福建信息技术DEs加密算法的加密流程概括为初始置换运算、16轮循环迭代运算和逆初始置换运算3个过程,程序运行结果很好地说明了该算法加解密的快速性,这种快速加解密方法常用于通信网络两端,当双方约定了一致的Key,在通信的源点用Key对核(上接第82页)机组远利实时数捌接入lI细分机组类慢及监测t点对机组进ij侧重型分类监测教育,2008,[3]靳冰,赖宏慧,贾玉珍.DEs加密算法安全分析[J].网络与安全技术,2007(2):74—75.[4]李少芳.DEs加密过程探讨[J].计算机与现代化,2006(8):102一104。109.在国内仍属于普及阶段,如何利用现有的硬件条件对机组真实状态进行评估及趋势预测,仍属于不断进步不断完善的过程。陕鼓远程在线监测及故障诊断中心在多年状态监测及实用性故障诊断技术研究应用过程中,探索出一套完整的分类型多种特征量择类趋l频谱ll轴心轨lI灵敏监1lFj停机l势数据分析幽幽幽幽利f}j趋辨’P均澎;‘IF£线趋势预测相结介,做Ⅲ机约l蝗体发行暖^部什劣化趋势曲线,楸捌仂I殳榆修情况调{;!l曲线斜率,形成泼机斜i特nf:趟辨琐测曲线。结介【1前机组存存的潜存故障’if61测分析结粜,撰1;机钉I远行月冷断评估撤,Ii,提供给J|J,“,通过川,’,现场反馈,综合“.总后形成JJ机自i运行也爿之。IL其他诊断图监测与多种趋势分析相结合的精细化监测体系。通过近4年的在线监测及故障诊断服务效果,证明了该体系的准确性与实用性。参考文献:[1]张金玉,张优云,谢友柏.大型回转机械智能综合诊断处理支持中心的研究[J].中国机械工程,1999,lO(4):4ll一414.[2]张金玉,张优云,谢友柏.基于证据理论的综合诊断理论与应用[c].武汉:1998年全国设备诊断工程会议论文集,1998:95—101.[3]0ka如rAc.Multi—sensorworksforPartI:谱分析对疑难或币点:溉测机缎I,利JH#家m作M络、rfr进行远程分析诊断艾持,提供决策意见。根槲季度或’|,,十址爿毛,凋螫机组:‰测分类发监测t^。Inte刚ionusingNeuralNet-图4精细化监测管理体系构架f捌ictingQIlaIityCharacteristicsofEnd—milledEf!Fbc协ofTraining诊断报告l297份,故障预警400余次,据不完全统计,带来直接经济效益5000余万元。为安全高效生产提供了有力的保障与准确的技术支持。IndiVidualP锄埘Ieters[c].SPIE2243。1994:119一131.4结束语对于第4代检修维修方式,基于设备状态维修万方数据