1、 摘要: RSA 算法是基于数论的公钥密码体制,是公钥密码体制中最优秀的加密算法,同时 也是第一个能同时用于加密和数字签名的算法,也易于理解和操作。 RSA 是被研究得 最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们 接受,普遍认为是目前最优秀的公钥方案之一。RSA 的安全性依赖于大数的因子分解, 但并没有从理论上证明破译 RSA 的难度与大数分解难度等价。本文主要研究的内容包 括:第一,对 RSA 算法进行了全面系统的介绍,包括 RSA 算法的应用现状和原理大素 数的产生、密钥对的产生、对明文的加密运算和密文的解密运算,为具体实现打下了 理论基础;第二,介绍了 R
2、SA 机密体制的一些基本概念及原理;第三,详述了 RSA 加密 的设计与实现,主要实现的模块包括 RSA 密钥的产生(一对公钥和私钥) ,RSA 加密算 法和解密算法的实现;第五,对该系统进行了整体的测试和分析改进; 关键词:RSA 算法;公钥密码体制;加密;解密;VC+ 目目 录录 1 课题综述 1 1.1 课题来源 1 1.2 课题意义 1 1.3 预期目标 1 2 系统分析 1 2.1 基础知识 2 2.2 总体方案 4 2.3 功能模块 4 3 系统设计 5 3.1 算法描述 5 3.2 流程图 7 4 代码编写 9 5 运行与测试. 14 5.1 产生公钥和密钥 . 14 5.2 加
3、密与解密 . 14 总 结. 16 致 谢. 17 参考文献 18 现代密码学课程设计报告 1 1 课题综述课题综述 1.1 课题来源课题来源 随着电子信息技术的迅速发展,人类已步入信息社会。但是由于整个社会形成了 一个巨大的计算机网络,任何一个计算机网络出现的安全问题,都会影响整个国家的 网络安全,所以信息安全、计算机网络安全问题已引起了人类的高度重视。无论是在 局域网还是在广域网中,都存在着自然和人为等诸多因素的脆弱性和潜在威胁。故此, 网络的安全措施应是能全方位地针对各种不同的威胁和脆弱性,这样才能确保网络信 息的保密性、完整性和可用性。现代密码学已成为信息安全技术的核心,密码学是以 研
4、究通信安全保密的学科,即研究对传输信息采用何种秘密的变换以防止第三者对信 息的窃取。公钥密码体制的特点是:接收方 B 产生一对密钥(PK 和) ;公开, 保密;从推出是很困难的;、双方通信时,通过任何途径取得 的公钥,用的公钥加密信息,加密后的信息可通过任何不安全信道发送。收到密 文信息后,用自己私钥解密恢复出明文。公钥密码体制已成为确保信息的安全性的关 键技术。RSA 公钥密码体制到目前为止还是一种被认可为安全的体制。 1.2 课题意义课题意义 RSA 公钥加密算法是第一个既能用于数据加密也能用于数字签名的算法。它易于 理解和操作,也十分流行。算法的名字以发明者的姓氏首字母命名:Ron Ri
5、vest, Adi Shamir 和 Leonard Adleman。虽然自 1978 年提出以来,RSA 的安全性一直未能得到理 论上的证明,但它经历了各种攻击,至今未被完全攻破。随着越来越多的商业应用和 标准化工作,RSA 已经成为最具代表性的公钥加密技术。VISA、MasterCard、IBM、 Microsoft 等公司协力制定的安全电子交易标准(Secure Electronic Transactions,SET) 就采用了标准 RSA 算法, 这使得 RSA 在我们的生活中几乎无处不在。 网上交易加密连 接、网上银行身份验证、各种信用卡使用的数字证书、智能移动电话和存储卡的验证 功
6、能芯片等,大多数使用 RSA 技术。应用了 RSA 加密体制保证了秘密信息的安全。 1.3 预期目标预期目标 在充分理解 RSA 加密体制概念和原理的基础上,用 Microsoft Visual C+ 6.0 实现 RSA 加密与解密,演示公钥与密钥的生成及加密与解密的过程。 2 系统分析系统分析 现代密码学课程设计报告 2 2.1 基础知识基础知识 2.1.1 素数 称整数 p(p1)是素数,如果 p 的因子只有 1, p。 称 c 是两个整数 a、b 的最大公因子,如果 c 是 a 的因子也是 b 的因子,即 c 是 a、b 的公因子。 a 和 b 的任一公因子,也是 c 的因子。 表示为 c=gcd(a, b)。 由于要 求最 大公 因子 为正, 所以 gcd(a,b)=gcd(a,-b)=gcd(-a,b)=gcd(-a,-b)。 一般 gcd(a,b)=gcd(|a|,|b|)。由任一非 0 整数能整除 0,可得 gcd(a,0)=|a|。如果将 a,b 都表示 为素数的乘积,则 gcd(a, b)极易确定。 一般由