跳转至

实验概述

实验目的

RSA 是一个非对称密码算法,由 Ronald Rivest、 Adi Shamir、 Leonard Adleman 三人共同在 1977年公开发表。 RSA 算法的安全性基于数论中大整数分解的困难性,即求两个大素数的乘积容易实现,但是要将一个大整数分解成两个大素数的乘积却非常困难。 RSA 既能用于加密也能用于数字签名,本次实验我们只做加密部分。

非对称密码体制与对称密码体制不同,不是使用一个密钥同时用于加密和解密消息,而是一对密钥(公钥和私钥)。加密时公钥用于加密,私钥用于解密。

图 1-1 公钥密码体制加密过程

通过本次实验一系列的任务期望能够到达如下几个目的。

  1. 掌握 RSA 算法的密钥生成方法;

  2. 掌握 RSA 算法的加解密过程;

  3. 了解 RSA 算法的具体应用。

实验内容

本次实验需要大家完成 RSA 密码算法,推荐大家用Java实现,如果选取64位或者以上的也可以使用python实现。

  1. 随机选取满足条件的 𝑝、𝑞,要求𝑝和𝑞的二进制长度不小于14bit,也就是 p 和 q 不小于1000.
  2. 以附件的明文lab2-Plaintext.txt作为待加密的明文。
  3. 用公钥加密,私钥解密。 将 𝑝, 𝑞, 𝑛,𝑒, 𝑑,𝜙(𝑛) 的值以及加密后的密文、解密后的明文输出到文件或屏幕。