1.1模指数运算.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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

文档评论(0)

daoqqzhuan3 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档