密码学课程报告-Read.docVIP

  • 6
  • 0
  • 约4.49千字
  • 约 5页
  • 2018-12-13 发布于天津
  • 举报
密码学课程报告-Read.doc

密码学课程报告 卢学东(学号:010182025,导师:张治国) 概述 本程序是一个对RSA加密和解密方法的演示程序,它的界面如下: 公钥和密钥可以自己键入,也可以按“自动产生”由程序随机产生两个100个十进制位的素数。下面最左方的文本框里的是要加密的文本,它也可以由文本文件输入。按“加密”按钮将对输入的文本进行加密,而且结果用十六进制的32位整数串给出。按“解密”将对加密结果进行解密,结果放在最右边的文本框里。 RSA加解密的关键算法是大整数运算、模幂算法、素数产生和判断、模m逆元的求法、以及RSA本身的加解密算法。下面将一一详述。 大整数的基本算法 由于想使用现有的CPU的32乘法指令,所以用原码表示一个大整数,且存放在一个32位整数为单位的数组里,用一个类成员lliLength(lliLength≥1)表示数组的长度。另外在类中加了一个成员sign,表示大整数的符号。为了提高运算速度,关键算法例如加减乘除和从一个十进制字符串转换成大整数的算法全部用了汇编语言实现。加法很简单,只用了带进位的加法指令adc,因为最低一个双字相加时用clc指令把进位清零。减法只用了带借位的减法指令sbb,因为最低一个双字相减时用clc指令把借位清零。乘法的算法如下:假设两个大整数M1和M2相乘,M1的长度为n1个32位整数,表示为m1n1-1m1n1-2…m10,M2的长度为n2个32位整数,表示

文档评论(0)

1亿VIP精品文档

相关文档