《信息安全技术实验报告.doc》由会员分享,可在线阅读,更多相关《信息安全技术实验报告.doc(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、信息安全技术实验报告实验名称:公钥加密算法的实现-一、 实验目的分析指数加密、背包加密算法和RSA加密算法流程并写出源程序代码,理解指数加密、背包加密算法和RSA加密算法算法原理。二、 实验环境(软件、硬件及条件) 硬件:运行Windows 操作系统的计算机软件:操作系统:Windows XP环境:JCreator三、 实验步骤1) 分析-源程序-编译-调试。四、 实验分析1、RSA加密算法的实现:public class RSATest public static void main(String args) int m =13;/明文 RSA rsa = new RSA(); System
2、.out.println(明文:+m); System.out.println(密文:+rsa.rsaJia(m); System.out.println(加密后解密的明文:+rsa.rsaJie(rsa.rsaJia(m); class RSA int p =3; int q = 5; int r = 0; int d = 1; int e =11; int pq=0;/(p-1)(q-1) int C = 0;/密文 int P = 0;/明文 RSA() r = p*q; pq =(p-1)*(q-1); while(true) if(e*d)%pq = (1 % pq) ) break
3、; d+; System.out.println(r=+r); System.out.println(d=+d); System.out.println(p-1)(q-1)=+pq); public int rsaJia(int P) C = (int)Math.pow(P, e)%r; return C; public int rsaJie(int C) P = (int)Math.pow(C, d)%r; return P; 2、背包加密算法的实现:public class BeibaoTest public static void main(String args) throws Exc
4、eptionBeibao beibao = new Beibao();int m = new int0,0,1,1,1;System.out.print(明文:);for(int b : m)System.out.print(b);System.out.println();System.out.println(密文:+beibao.jiami(m);System.out.print(加密后再解密的明文:);for(int a : beibao.jiemi(beibao.jiami(m)System.out.print(a);class Beibaoint a = new int3,6,10,2
5、2,44;int b ;int bww ;/b乘以ww,再求模int m = 89;int w = 67;int ww = 4;Beibao()b = new inta.length;bww = new inta.length;for(int i = 0 ;ia.length;i+)int j =1;while(true)if(j%m) = (w*ai)%m)bi =j;bwwi =(j*ww)%m;break;j+;System.out.print(d的数值:);for(int bb : b)System.out.print(bb+ );System.out.println();public
6、 int jiami(int m) throws Exceptionint sum=0;if(m.length != a.length)throw new Exception(m和a的长度不一致!);for(int i =0;i=1;i-)int sum=0;/for(int j =0;ji;j+)sum = sum+bwwj;if(sum 0)x0=1;elsex0=0;return x;3、指数加密算法的实现:import java.math.BigInteger;public class ZhishuTest public static void main(String args)int
7、 M = new int1520,111,802,1004,2417,1800;/字母数字化成数字串的数组zhishu zhishu = new zhishu();String mmm =;/明文字符串String c =;/密文字符串String mm =;/密文转换的明文字符串for(int m : M) mmm = mmm + buling(m); c = c + buling(zhishu.jiami(m); mm = mm+buling(zhishu.jiemi(zhishu.jiami(m);System.out.println(明文:+mmm);System.out.printl
8、n(密文:+c);System.out.println(加密后解密的明文:+mm);/* * 不够长度四,就补零 * param a * return */public static String buling(int a)String b =a+;if(b.length() 4)b = 0+b;return b;class zhishuint p = 2633;int e = 29;int c ;int d =1;BigInteger bi;/大数变量zhishu()while(true)if(d*e)%(p-1) =(1%(p-1)break;d+;System.out.println(d
9、=+d);/* * 指数加密 * param m 明文 * return */public int jiami(int m) bi = new BigInteger(+m);c=bi.pow(e).mod(new BigInteger(p+).intValue();return c;/* * 指数解密 * param c 密文 * return */public int jiemi(int c)int m=1;/明文变量bi = new BigInteger(+c);int a = bi.pow(d).mod(new BigInteger(+p).intValue();while(true)if(a = m%p)break;m+;return m;五、 附件1、RSA加密算法的实现2、背包加密算法的实现3、指数加密算法的实现六、实验结论通过这次上机作业,加深了我对指数加密、背包加密算法和RSA加密算法的理解,理解了指数加密、背包加密算法和RSA加密算法的实现原理,在调试程序时,获得了许多经验。
限制150内