- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1.1模指数运算
实验一 初等数论实验
1.1模指数运算
模指数运算(Modular xponentiation)在密码学中占有重要地位。公钥密码体制,即进行e-1次a模m的乘法运算。这种方法虽然简单,但是运算效率很低。减少模乘法的次数 = (en-1 en-2… e0)2,且en-1 0,是指数e的二进制表示。求ae mod m的二进制算法描述如下:
(1) 置,且i ← n – 2;
(2) 置t ← t ? t mod m;
(3) 若ei = 1,置t ← t? a mod m;
(4) 置i ← i - 1;若i ≥ 0转到步骤(2);
(5) 输出。
二进制算法的模乘法次数为,其中是指数的二进制表示中1的个数。
三、实验环境
操作系统:Windows 2000/XP/2003或以上版本。
应用软件:VC++ 6.0。
实验软件包:MOD工程。
四、实验内容和任务
本实验要求学生在掌握常用的模指数运算算法的基础上,运用高级程序设计语言编程实现模指数运算函数,并通过具体运算测试函数的功能。表1-1给出模指数运算函数的接口定义,作为编程实现的参考。以二进制算法为例,模指数运算函数modExpFun(a,e,m)的程序流程图如图- 1所示。
图- 1二进制算法流程图
1 模指数运算函数接口
函数 long modExpFun (long a, int e, long m) 功能 计算ae mod m的值 输入 a (底数),e (指数),m (模数) 输出 幂剩余;
-1,表示输入参数不全为正整数;
-2,表示输入模数为0。 出错处理 输入参数a,m或e为负整数,r = -1 输入参数m为0,r = -2
模指数运算的界面实例如图- 2所示。在空白框中输入模指数运算ae mod m的三个参数:底数、指数和模数。点击“计算”按钮,执行模指数运算操作。点击“清空”按钮,清空所有参数的输入,以便重新输入参数值。
图- 2模指数MODDlg.cpp和modExpFun.cpp的提示,完成模指数运算的“计算”和“清空”两个按钮的程序,实现各自的功能。
利用第六部分的测试用例,测试程序。如果不能得到正确结果,调试程序直至获得正确结果。
六、测试用例
以下提供两个测试用例,用于学生检测实现的模指数运算器正确与否。
【用例1】输入a = 2, e = 1234, m = 789, 模指数运算结果为 r = 481,如图1-3所示。
图- 3用例1的模指数图- 4用例2的模指数
1
您可能关注的文档
最近下载
- 标准图集-西南18J812_室外附属工程.pdf VIP
- 居住建筑全屋智能工程技术标准.docx VIP
- 临床研究方法(山东大) 学堂在线章节测试客观题答案.docx VIP
- 磁动力发电机项目申请报告可行性研究报告.doc VIP
- 导学案005(函数的定义域和值域).doc VIP
- 2023年小升初模拟分班测数学试卷3.docx VIP
- GB T 23615.1-2017 铝合金建筑型材用隔热材料 第1部分:聚酰胺型材.docx VIP
- 建筑工地基孔肯雅热防控和应急方案.docx VIP
- [发电机]-磁动力发电机项目介绍.docx VIP
- JTT 1507-2024公路工程施工安全标志设置规范.pptx VIP
文档评论(0)