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

通过本次实验一系列的任务期望能够到达如下几个目的。
-
掌握 RSA 算法的密钥生成方法;
-
掌握 RSA 算法的加解密过程;
-
了解 RSA 算法的具体应用。
实验内容
本次实验需要大家完成 RSA 密码算法,推荐大家用Java实现,如果选取64位或者以上的也可以使用python实现。
- 随机选取满足条件的 𝑝、𝑞,要求𝑝和𝑞的二进制长度不小于14bit,也就是 p 和 q 不小于1000.
- 以附件的明文lab2-Plaintext.txt作为待加密的明文。
- 用公钥加密,私钥解密。 将 𝑝, 𝑞, 𝑛,𝑒, 𝑑,𝜙(𝑛) 的值以及加密后的密文、解密后的明文输出到文件或屏幕。