非对称密码算法RSA参照.pdfVIP

  • 1
  • 0
  • 约1.12万字
  • 约 6页
  • 2021-11-07 发布于福建
  • 举报
广东工业大学实验报告 自动化 学院 网络工程 专业 0704 班 学号 3107001 姓名 成绩评定 _______ 教师签名 曾启杰 实验 2 题目 非对称密码算法 RSA 课程名称 网络安全基础 实验二 非对称密码算法 RSA 一、实验目的 通过实际编程了解非对称密码算法 RSA 的加密和解密过程,加深对非对称密码算法的认识。 二、实验环境 运行 Windows 或 Linux 操作系统的 PC 机,具有 gcc(Linux) 、VC(Windows) 等 C 语言编译环境。 三、实验内容和步骤 1)编写一个程序,随机选择 3 个较大的数 x 、e、n,然后计算 xe mod n ,记录程序运行时间。实际中应用的 素数为 512 位, n 也就为 1024 位。这样的大数在计算机上如何表示、如何进行运算,查阅资料给出简单说明。 四、实验报告要求 (1) 编写一个程序,随机选择 3 个较大的数 x 、e、n ,然后计算 xe mod n ,记录程序运行时间。实际中应用 的素数为 512 位, n 也就为 1024 位。这样的大数在计算机上如何表示、如何进行运算,查阅资料给出简单说明。 (2)计算机在生成一个随机数时,并不一定就是素数,因此要进行素性检测。是否有确定的方法判定一个大 数是素数,要查阅资料,找出目前实际可行的素数判定法则,并且比较各自的优缺点。 (3) 附件中给出了一个密码算法库,其中包括各种对称加密算法、非对称加密算法、 Hash 算法和数字签名算 法。找出其中关于 RSA 算法的部分,并且基于标准输入输出写一段用 RSA 加密文件的程序。 程序如下: #include iostream #include ctime #include cstdlib #include stdio.h #include time.h #include stdlib.h using namespace std; int main (){ clock_t start,finish; double time; long x,e,n; cout 随机产生 3 个大数 (在999999999 之间 )进行 xe mod n 的时间为 endl; start = clock(); srand(time(0)); x = 100000000*(rand ()%11)(rand ()%11)+1000000*(rand ()%11)+100000*(rand ()%11)+10000*(rand ()%11)+1000*(rand ()%11)+100*(rand ()%11)+10*(rand()%11)+rand ()%11; e = 100000000*(rand ()%11)(rand ()%11)+1000000*(rand ()%11)+100000*(rand ()%11)+10000*(rand ()%11)+1000*(rand ()%11)+100*(rand ()%11)+10*(rand()%11)+rand ()%11; n = 100000000*(rand ()%11)(rand ()%11)+1000000*(rand ()%11)+100000*(rand ()%11)+10000*(rand ()%11)+1000*(rand ()%11)+100*(rand ()%11)+10*(rand

文档评论(0)

1亿VIP精品文档

相关文档