大整数基本运算实现研究报告及分析.pdf
《大整数基本运算实现研究报告及分析.pdf》由会员分享,可在线阅读,更多相关《大整数基本运算实现研究报告及分析.pdf(26页珍藏版)》请在三一文库上搜索。
1、个人资料整理仅限学习使用 课 程 设 计 课程名称应用密码学 题目名称大整数基本运算的实现研究及分析 学生学院应用数学 专业班级信息安全 081 班 学号3108008921,3108008945,3108008944 学生姓名洪亿鹏,熊邦名,伍尚鹏 指导教师李峰 2018年 12 月 19 日 个人资料整理仅限学习使用 广东工业大学课程设计任务书 题目名称 大整数基本运算的实现研究及分析 学生学院 应用数学学院 专业班级 08 级信息安全 , 写出课程设计说明书。 四、课程设计进程安排 序 号 设计各阶段内容地点起止日期 个人资料整理仅限学习使用 1 领取课程设计任务课室2018.12.13
2、 2 组员讨论选取课程设计题目课室2018.12.13 3 查阅相关课题的各种资料 图书馆, 宿舍2018.12.132018.12.14 4 组员直接讨论课题,并且分配各部分 任务课室2018.12.14 5 各自编写各部分代码宿舍2018.12.152018.12.17 6 汇集已写好的各部分代码,并进去测 试宿舍2018.12.18 7 代码顺利运行,运用MFC 可视化方法 为程序提供友好的用户界面宿舍2018.12.19 8 分工合作拟写课程设计报告书宿舍2018.12.19 五、应收集的资料及主要参考文献 1宋震.密码学 M. 北京:中国水利水电出版社. 2002:87-151. 2
3、 (美Garlisle Adams Steve Lloyd 著 冯登国等译 .公开密钥基础设施概念、标准 和实施 M. 北京:人民邮电出版社 .2001:71-98. 3王永祥 . 超高精度超大数算法与程序设计M. 陕西:西安交通大学出版社 ,1990:75- 105. 4 胡向东,魏琴芳编著 .应用密码学 .北京:电子工业出版社,2006.11 5 谭浩强, C 程序设计 3 3.2 用 C+编写大整数类3 3.3 本章小结5 4 基本运算的原理和代码实现5 4.1 加法运算5 4.11 实现原理5 4.12 代码实现6 4.13数据测试结果8 4.2 减法运算8 4.21减法运算代码实现8
4、 4.22数据测试结果10 4.3 乘法运算11 4.31乘法运算原理11 个人资料整理仅限学习使用 4.32乘法运算代码实现12 4.33数据测试结果14 4.4 除法运算14 4.41除法运算代码实现14 4.42数据测试结果16 结论 17 参考文献 17 附录 A17 个人资料整理仅限学习使用 1 绪论 1.1 大整数的概念 “大整数”一般指位数达到十几或成百上千甚至更多的整数,而更准确地说,应该 是指普通程序设计语言中的整数类型值集范围以上的整数。如标准的C的Unsigned long 型整数所能处理的整数范围最大,有效数位也最多,为4294967295(占据 32 位 中的应用前景
5、广泛。 微观世界中的许多对象的活动可以进行数字化模拟,而且其活动变化也可以通过大整 数的运算来表示,其表达与处理就非常方便了。 1.3 大整数处理的研究现状 由于“大整数”超出了程序设计语言本身整数类型值集范围,所以它的表达、存 储、读取、处理 (各种运算 、输出等问题用一般编程方法难以解决。一般的程序设计 语言数值处理范围均有限。C+及其系列语言的数值处理的有效数位是整型4 个字节, 个人资料整理仅限学习使用 数值型可达到 8 个字节。新版的微软操作系统自带的“运算器”的处理能力非常强,但 精确数位也只能达到 32 个十进制位。因而大整数运算处理系统的研究与开发有极强的 实际意义。 由于大整
6、数处理系统的复杂性,以及其一般用于高尖新技术领域,所以系统 化研究及其开发工作主要集中在一些国家级的计算中心、安全中心。但随着大整 数应用领域逐渐扩大及个人计算机处理能力的快速发展,这项工作已经受到越来 越多的科技工作者的关注。 1.4 本文主要研究内容 本文基于MFC应用框架,首先采用模块化的思想建立大整数运算库,利用数组存 储不大于310 位的大整数,在实现一些辅助函数后在此运算库框架上讨论并实现多精 度大整数的基本加法、减法、乘法、除法等基本算法。本文采用C+为主要语言编写 程序代码。在保证算法有足够高的效率的同时力求代码清晰易懂,函数接口简单明 了,具有可移植性和稳定性。 2大整数概述
7、 2.1本文研究的大整数特定含义 为了系统地研究大整数的处理,本文提到的大整数处理程序中所指的大整数是指 最大位数为 310位的大整数。采用数组存储方式存储。 2.2大整数的存储 我们采用数组存储的方式存储,也可以采用字符串的方式存储,但最终还是要转化为 “数组”的方式存储,并且存储的位数不能大于310位,否则会发生溢出错误而导致大 整数处理错误。 个人资料整理仅限学习使用 2.3大整数的输入与读取 如果是从键盘输入大整数,要求连续输入正负号及全部数字,程序将实现专用处理命 令自动完成分组。 2.4 大整数的基本运算处理 本程序可以实现位数少于310位的大整数的加,减,乘,除等运算,输出 位数
8、同样不可以大于 310位,对于负数,程序将不能处理,并且不能直接 输入。 3 大整数的类的开发 3.1如何表示一个大整数 (12345678901234567890 3.2用 C+编写大整数类 class CBigInt public: / 大数在 0x100000000进制下的长度 个人资料整理仅限学习使用 unsigned m_nLength。 / 用数组记录大数在 0x100000000进制下每一位的值 unsigned long m_ulValueBI_MAXLEN。 CBigInt(。 CBigInt(。 /* 基本操作与运算 Mov ,赋值运算,可赋值为大数或普通整数,可重载为运算
9、符“=” Cmp ,比较运算,可重载为运算符“=”、“ !=”、“ =”、“ 。 void Mov(CBigInt& A。 CBigInt Add(CBigInt& A。 CBigInt Sub(CBigInt& A。 CBigInt Mul(CBigInt& A。 CBigInt Div(CBigInt& A。 CBigInt Add(unsigned long A。 CBigInt Sub(unsigned long A。 个人资料整理仅限学习使用 CBigInt Mul(unsigned long A。 CBigInt Div(unsigned long A。 int Cmp(CBigI
10、nt& A。 void Get(CString& str, unsigned int system=HEX。 /Get ,从字符串按 10进制或 16进制格式输入到大数 void Put(CString& str, unsigned int system=HEX。 /Put ,将大数按 10进制或16进制格式输出到字符串 CBigInt Euc(CBigInt& A。 CBigInt RsaTrans(CBigInt& A, CBigInt& B。 。 3.3本章小结 基于面向对象程序设计开发的基本思想,本章介绍了大整数“类”的结构,包括大 整数的构造,加,减,乘,除基本运算的函数模块和大整数
11、的获取、赋值函数模块。 4基本运算的原理和代码实现 4.1 加法运算 4.11 实现原理 如何进行大整数的加法运算 个人资料整理仅限学习使用 4.12 代码实现 CBigInt CBigInt:Add(CBigInt& A / 大数相加 ,调用形式: N.Add(A, 返回值: N+A CBigInt X 。 X.Mov(*this 。 unsigned carry=0 。/进位 unsigned _int64 sum=0 。 if(X.m_nLengthX.m_nLength=A.m_nLength 。 for(unsigned i=0。i sum=A.m_ulValuei。 sum=sum
12、+X.m_ulValuei+carry。 X.m_ulValuei=(unsigned longsum。 carry=(unsigned(sum32 。 X.m_ulValueX.m_nLength=carry。 X.m_nLength+=carry。 return X。 个人资料整理仅限学习使用 CBigInt CBigInt:Add(unsigned long A CBigInt X 。 X.Mov(*this 。 unsigned _int64 sum 。 sum=X.m_ulValue0。 sum+=A。 X.m_ulValue0=(unsigned longsum。 if(sum0x
13、ffffffff unsigned i=1。 while(X.m_ulValuei=0xffffffffX.m_ulValuei=0。i+。 X.m_ulValuei+ 。 if(m_nLength=im_nLength+。 return X。 个人资料整理仅限学习使用 4.13数据测试结果 图 4.13 4.2 减法运算 4.21减法运算代码实现 CBigInt CBigInt:Sub(CBigInt& A / 大数相减 调用形式: N.Sub(A 返回值: N-A CBigInt X 。 X.Mov(*this 。 if(X.Cmp(AX.Mov(0 。return X。 unsigned
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 整数 基本 运算 实现 研究 报告 分析
链接地址:https://www.31doc.com/p-4667135.html