本简介提供了一份关于RSA算法的实验报告及其实现代码,旨在帮助学习者理解和掌握密码学课程中涉及的关键概念和实践技能。通过详细的步骤说明和注释丰富的源码分析,读者可以轻松地跟随文档进行实验操作,并加深对加密解密过程的理解与应用。
实践要求如下:
1. 实现 RSA 的密钥生成、数据加密及数字签名功能。
2. 密钥生成步骤包括选取两个大素数 p 和 q(两者均需大于 10^10),计算 n=p×q 及 (n)=(p-1)(q-1)。接着选择一个与 (n)互质且小于 (n) 的整数 e,然后计算 d=e^-1 mod (n),得到公钥 {e, n} 和私钥 {d, n}。生成的各参数 p、q、n、e 及 d 应分别保存于文件 p.txt、q.txt、n.txt、e.txt 与 d.txt 中,所有整数均需以十六进制形式表示,并且必须先将其转换为字符串格式后再写入文件。
3. 数据加密功能要求使用公钥 {e, n} 对指定的明文进行处理。数字签名则需要利用私钥 {d, n} 来对特定明文执行相应的操作,两者都需通过一组测试数据来验证程序的有效性。在命令行中应明确指示输入文件的位置和名称(包括待加密的明文字典与密钥信息),以及输出结果所对应的密文存放位置及命名规则。进行加密时先从指定路径读取所需的信息,并完成相应的计算,最后将生成的十六进制形式表示的整数字符串格式保存至目标文件中作为最终输出。