密码学实验第四组实验报告.docVIP

  • 13
  • 0
  • 约1.1万字
  • 约 12页
  • 2017-05-21 发布于浙江
  • 举报
密码学实验第四组实验报告

云南大学数学与统计学实验教学中心实验报告 课程名称:密码学实验 学期:2013-2014学年第一学期 成绩: 指导教师: 陆正福 学生姓名:卢富毓 学生学号:20101910072 实验名称:McEliece 实验要求:必做 实验学时:4学时 实验编号: No.5 实验日期:2013/12/14 完成日期:2012/12/20 学院:数学与统计学院 专业 : 信息与计算科学 年级: 2010级 实验目的 实现McEliece(7,4)Hamming码为例进行测试。 三、环境Win7 Java 四 McEliece密码体制是是一种基于一个二进制线性码寻找最近码字的困难性的密码体制,McEliece建议采用一个[1024,512,101]Goppa码,但是任何具备良好译码特性的线性编码都是可以使用的。这里由于对Goppa码不熟悉,选择了Hamming码来实现McEliece密码体制。 实验过程 A、原理分析: 具体协议如下: B、具体代码较多,放在最后源代码部分 实验中关于求行列式的值,,矩阵求逆Hamming码校验矩阵和生成矩阵相关函数,都 是在以前实验课基础上加以修改后使用的。 实验结果: 分析:Hamming码纠错能力有限,只能正确纠正一个比特上的错误,这次试验只是用来模拟McEliece密码体制的相关过程,实用性并且资料以后,对McEliece有了更多了解虽然,但也存在不容忽视的弊端,比如、总结 如何利用矩阵找到最近码字Hamming码编码和纠错的原理设计资料得到解决。学习,编写公钥密码体制,实现其加密和解密过程,一步的了解其思路。还是比较大的。,只是在Hamming上测试,没有深入地进行探究,中运用的话,空间较大,没有实现,比较遗憾吧。 GMP_Document 《应用密码学》 林岱岳 《密码学概论》wade trape 八、源代码: /* McEliece的实验 * *1.熟悉McEliece码的设计原理; *2.编程实现编码和译码算法; */ package HammingCode; import java.util.Scanner; import java.util.Random; /* * @author 卢富毓 * @see 实现McElice */ public class McElice { static int k, m, n; Scanner sc; public static void main(String[] args) { McElice MC = new McElice(); MC.start(MC); } public void start(McElice MC) { System.out.print(请输入校验位数 k = ); sc = new Scanner(System.in); k = sc.nextInt();// 3 n = (int) Math.pow(2, k) - 1;// 7 m = n - k;// 4 HammingCode HMC = new HammingCode(); HMC.Create(HMC);// 得到H,G Matrix S = new Matrix(); S = S.GenerateS(); Matrix P = new Matrix(); P = P.GenerateP(); Matrix G = new Matrix(k, n); G.Mt = HMC.G; Matrix G1 = new Matrix(); G1 = G1.MultipleMatrix(S, G); G1 = G1.MultipleMatrix(G1, P); System.out.println(公钥G1:); for (int i = 0; i m; i++) { for (int j = 0; j n; j++) { System.out.print(G1.Mt[i][j] + ); } System.out.println(); } int send[] = new int[m]; // 输入字符进行编码 System.out.print(请输入需编码的字符(0、1) + m + 个:); for (int i = 0; i m; i++) { send[i] = sc.nextInt(); } sc.close(); int receive[] = this.Encrypt(send,HMC, G1); int send

文档评论(0)

1亿VIP精品文档

相关文档