基于java点对点通信技术des密钥交换

基于java点对点通信技术des密钥交换

ID:31777080

大小:53.86 KB

页数:5页

时间:2019-01-18

基于java点对点通信技术des密钥交换_第1页
基于java点对点通信技术des密钥交换_第2页
基于java点对点通信技术des密钥交换_第3页
基于java点对点通信技术des密钥交换_第4页
基于java点对点通信技术des密钥交换_第5页
资源描述:

《基于java点对点通信技术des密钥交换》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基于Java点对点通信技术DES密钥交换摘要:介绍了使用Java的点对点通信技术,基于Diffie-Hellman规则,给出了IBMDES密钥交换的总体方案、算法和应用程序,详细说明了其中涉及的主要技术和方法,同时给出了在PC机上用二进制指数分解法实现大数模运算的算法分析和实现方案。关键词:密钥交换;Java;DES;Diffie-Hellman中图分类号:TP301.6;311.11文献标志码:A文章编号:1006-8228(2012)11-23-03InterchangeofDEScipherkey

2、basedonJavap2pcommunicationtechnologyWangZhida(NingboPolytechnic,Ningbo,Zhejiang315800,China)Abstract:Thescheme,module,andapplicationprogramofIBMDEScipherkeyinterchangebyDiffie-HellmanrulesbasedonJavaP2Pcommunicationtechnologyareintroduced.Therelatedtech

3、niquesandmethodsindetailareexplained・ThemoduleanalysisandtheimplementationschemeofcalculatinglargefiguremodulusonPCwithbinaryindexdecomposingmethodaregiven.Keywords:cipherkeyinterchange;Java;DES;Diffie-Hellman0引言在IBMDES加密传输应用中,如果是首次通信或密钥已过期,则需要进行Diffie-H

4、ellman密钥交换[6]。本文使用Java的点对点通信技术和二进制指数分解法[1]设计Diffie-Hellman密钥交换应用程序,如图1、图2所示。图1密钥交换服务端图2密钥交换客户端密钥交换双方运行各自的程序,一方以客户机方式连接另一方(服务端),设定任意的初始值(Diffie-Hellman运算指数),系统计算并交换密钥种子,生成初始密钥,经DES系数和DES模数处理后得到DES密钥。1算法1.1算法概要密钥交换过程如图3所示。[设定初始值m][密钥k=f2(N,m)][交换程序][公共通信网络

5、][密钥交换程序[密钥种子M二fl(m)][接收N][设定初始值n][密钥k,=f2(M,n)][密钥种子N二fl(n)][接收M]图3密钥交换过程程序预设两个Diffie-Hellman运算基数p和q(大于80位二进制),程序运行时,交换双方分别设定运算指数m/n(大于20位二进制),程序用Diffie-Hellman算法[5]计算密钥种子:M=pmmodqN二pnmodq程序交换M/N后,计算密钥:k=Nmmodqk"=Mnmodq根据模运算的性质:(pnmodq)mmodq=pnmmodq=pmn

6、modq=(pmmodq)nmodq所以:k=k?1.2算法设计由于pm、pn以及Nm、Mn这样的大数,已远远超出了现有计算机处理数据的范围,本文用二进制指数分解法进行计算,概括如下(设要计算PDmodQ):将D转换成二进制数B(设为bnbnT…blbO),各位从右到左依次存入bi(i=0,1,2,...,n,bi=0或1),得到D的分解式:bnX2n+bn-lX2n-1++blX21+b0X20式中各项从右到左依次存入di(i=0,1,2,...,n),得到PD的分解式:按照模运算的规律,若数列(x=

7、0,1,2,n)中大于Q的最小元素是(OWtWn),且modQ二T,贝U:modQ等价于modQ在程序中可使用循环,逐步减小PD分解式中指数较大的项,同时,利用模运算的如下性质[3]:(X*Y*Z)modQ二(((X*Y)modQ)*Z)modQ得到算式PDmodQ中PD的可计算等价数(设为A),然后计算AmodQ的结果。1.3算法实现按照上述算法,用Java实现如下:importjava・io.*;publicclassclfm{publicstaticvoidmain(Stringargs[])th

8、rowsException{longp=2000000001,d=9223372036854775807L,q二2147483647,t,result,temp;inti,j,k,n;longdata[]L]=newlong[200][2];

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。