欢迎来到天天文库
浏览记录
ID:12642796
大小:587.50 KB
页数:16页
时间:2018-07-18
《现代密码学实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、中南大学现代密码学实验报告学生姓名文子龙学号0909081517专业班级信息安全0801班指导教师段桂华学院信息科学与工程学院完成时间2011年6月实验一密码算法实现[实验目de]1.掌握公钥密码算法de基本原理,算法实现过程以及大数运算de方法。2.掌握和理解DES算法、AES算法de原理。[实验内容]1.分析RSA算法、DES算法和AES算法de原理与测试过程。2.写出算法流程,用程序设计语言将算法过程编程实现。3.对输入de数据,验证加密和解密运算。[实验步骤]一、RSA算法1.RSA算法及原理RSA公钥密码系统以其发明者R.Rivest,A.Shamir和L
2、.Adlemande三个姓de首个字母命名de。它是应用最广泛de公钥密码系统。不仅可以用于信息de机密性,还可用于数字签名。其所依赖de是大整数因数分解问题。假设公钥密码系统使用N字符集。明文信息空间为-字符组组成de集合,密文信息空间为-字符组组成de集合。 RSA公钥密码系统de描述: 每个使用者产生各自de公钥和私钥 使用者A将作如下事情: (1)随机产生两个不同de大素数p和q,具有相同de阶 (2)计算n=pq和 (3)随机选取整数 (4)运用广义欧几里得算法计算唯一de整数,使得 (5)Ade公钥是,私钥是。2.RSA算
3、法加密解密过程 发送者B将明文信息加密后变成密文信息发送给接受者A,A解密。 (1)加密过程。发送者B将作如下事情: a.得到确认de接受者Ade加密公钥(从认证中心或电话本或信息公告栏等处得到) b.将明文信息表示为整数。(要求以最有效de方式来表达信息) c.计算整数 d.将整数c转换成密文信息. f.将密文信息发送给A.(可以在公开通道中传递,在不知道解密私钥de情况下第三者无法破解密文信息) (2)解密过程。为了将密文信息恢复为明文信息,接受者A将作如下事情: a.将密文信息转换成整数c. b.运用解密私钥恢复整数.
4、 c.将整数c转换成明文信息.3.RSA算法Java实现(1)RSA算法流程图开始得到公钥为n和e,私钥为d得到公钥为n和e,私钥为d输入大素数p,q是否为素数NY输入公钥e是否15、<=k;i++){if((t%i)==0){flag=false;breakouter;}}returnflag;}b.求两个数de最大公约数publiclonggcd(longa,longb){longgcd;if(b==0)gcd=a;elsegcd=gcd(b,a%b);returngcd;}c.求乘法逆publicintgetValue(intx,inty){intyValue=y;int[][]c=newint[2][2];//cisthemultiplyofmatrix//xislessthanyif(x>y)x=x%y;inti=0;while(tru6、e){intk=y%x;a[i]=(k-y)/x;i++;length++;if(k==0)break;else{inttemp;temp=x;x=y%x;y=temp;}}setValue();c=arrayList.get(0);for(intj=1;j0)returnc[0][1];elsereturnyValue-Math.abs(c[0][1])%yValue;}publicint[][]matrixMul(int[][]a,int[][]b)7、{int[][]c=newint[2][2];for(inti=0;i<2;i++){for(intj=0;j<2;j++){for(intk=0;k<2;k++)c[i][j]+=(a[i][k]*b[k][j]);}}returnc;}二、DES算法1.DES算法及原理DES(TheDataEncryptionStandard)使用一个56位de密钥以及附加de8位奇偶校验位,产生最大64位de分组大小。这是一个迭代de分组密码,其中将加密de文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续
5、<=k;i++){if((t%i)==0){flag=false;breakouter;}}returnflag;}b.求两个数de最大公约数publiclonggcd(longa,longb){longgcd;if(b==0)gcd=a;elsegcd=gcd(b,a%b);returngcd;}c.求乘法逆publicintgetValue(intx,inty){intyValue=y;int[][]c=newint[2][2];//cisthemultiplyofmatrix//xislessthanyif(x>y)x=x%y;inti=0;while(tru
6、e){intk=y%x;a[i]=(k-y)/x;i++;length++;if(k==0)break;else{inttemp;temp=x;x=y%x;y=temp;}}setValue();c=arrayList.get(0);for(intj=1;j0)returnc[0][1];elsereturnyValue-Math.abs(c[0][1])%yValue;}publicint[][]matrixMul(int[][]a,int[][]b)
7、{int[][]c=newint[2][2];for(inti=0;i<2;i++){for(intj=0;j<2;j++){for(intk=0;k<2;k++)c[i][j]+=(a[i][k]*b[k][j]);}}returnc;}二、DES算法1.DES算法及原理DES(TheDataEncryptionStandard)使用一个56位de密钥以及附加de8位奇偶校验位,产生最大64位de分组大小。这是一个迭代de分组密码,其中将加密de文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续
此文档下载收益归作者所有