- 1、本文档共43页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数论中的程序设计-培训
中国剩余定理—程序实现 long ChinaRemainder(int m0[], int b[]){ long d,x,y,n,m=1,a=0; int i; for (i=1; i= n ; i++) m=m*m0[i]; for (i=1; i= n ; i++) { MM=m / m0[i]; extend_gcd(MM, m0[i], x, y); //或x=mod_reverse(M, m0[i]); a=(a+m0[i]*x*b[i]) % m; } return a; } 6. 模幂运算与素数测试 模幂运算就是在一个模下计算一个幂的值,即计算 (a,r和m是正整数) 素数测试就是指,在尽可能短的时间内,尽可能精确地判断一个整数是否是素数。通过费马小定理来判定一个整数的素性,因此求模幂是重要任务。 6.1 模幂运算 (1)模幂运算1—累次计算法: d= ar mod m =(…((((a mod m)*a) mod m)*a)mod m…*a)mod m 算法 long modular_power1(long a, long r, long m){ long d=1, k; a=a % m; for(k=0;kr; k++)d =(a*d) % m; return d; } 6.1 模幂运算 (2)模幂运算2—快速计算法 将r化为二进制数的形式( bkbk-1…b2b1b0),然后反复平方取余数。然后从最低位开始,自右至左逐位扫描。每次迭代时.用到下面两个恒等式中的; 模取幂运算—快速计算实现 long modular_power1(long a, long r,long m){ long d,t; d=1;t=a; while (r0){ if ((r%2)==1) d=(d*t) % m; r=r/2; t=t*t % m; } return d; } 练习 计算 6.2 素数测试 费马小定理:设a,p为正整数,且p为素数,(p, a)=1, 那么 有例外,如2340 ? 1(mod 341),但341是合数。 素数测试:设a、n为正整数 (1)若 ,则n一定为合数 (2)若 ,则几乎可以肯定地确认n为素数,因出错概率很小 Miller-Rabin素数测试算法框架 输入:n与a(a在2,…,n-1这些数中随机取值) 输出:true或false S1. 设(bk,bk-1,…,b1,b0)为n-1的二进制表示 S2. d =1 S3. For i=k downto 0 do x=d d= (d*d) mod n if ((d=1) and (x?1) and (x?n-1)) then return true if (bi=1) then d= (d*a)(mod n) End For S4. if (d ? 1) then return true S5. return false 7. 欧拉定理与费马小定理 设a和m 是整数,(m0)。记?(m)是1到m的整数中与m互素的整数的个数,则a?(m) ≡1 (mod m)。 费马小定理: 设a是整数,p为素数,则ap-1 ≡1 (mod p)。 是欧拉定理的特例 8. 公钥密码与RSA 公开密钥算法是在1976年由美国斯坦福大学的迪菲(Diffie)和赫尔曼(Hellman)提出 目前最流行的RSA是1977年由MIT教授Rivest, Shamir和Adleman三人共同开发。 密钥的产生 选择两个大素数,p 和q ,计算出n=qp,n称为RSA算法的模数。 n公开,p、q 必须保密。n的长度大于1024位 计算n的欧拉数 ?(n)=(p-1)(q-1) 。 随机选择加密密钥e,从[0, ?(n)-1]中选择一个与?(n)互质的数e,e公开 计算解密密钥d, 满足de≡1(mod ?(n))。其中n和d也要互质。数e和n做公钥,d做私钥。 两个素数p和q不再需要,应该丢弃,不让任何人知道。 加密与解密 加密信息 m(二进制表示):首先把m分成等长数据块 m1,m2,...,mi,块长s,其中 2s = n, s 尽可能的大。 对每块加密,对应的密文是: ( a ) 解密计算: ( b ) RSA 可用于数字
您可能关注的文档
- 数学:变成一样多.ppt
- 数据处理 - 副本.doc
- 数据库oracle知识点(自己整理的,可能部分有点小问题)11.doc
- 数据库作业实验报告.doc
- 数学的魅力无所不在.pptx
- 数据库原理及应用开发技术_事务管理6.ppt
- 数据库重点要求总结.ppt
- 数学系计算机科学系三下乡重点团队申报.ppt
- 数据结构——算术表达式求值算法.doc
- 数据指标-3章 统计数据的描述度量.ppt
- 含有两个未知数的解方程应用题(专项练习)-2024-2025学年五年级上册数学人教版.docx
- 《线的认识》(教案)-2024-2025学年四年级上册数学北师大版.docx
- 广东省汕头市龙湖区2022-2023学年四年级上学期期末数学试题.docx
- 阶段素养监测卷(月考)-2024-2025学年四年级上册数学人教版.docx
- 数学好玩——优化(课件)-2023-2024学年四年级下册数学北师大版.pptx
- 22 读不完的大书 课件-2024-2025学年统编版语文三年级上册.pptx
- 1.3表面积(课件)-2024-2025学年六年级上册数学苏教版.pptx
- 第一单元自主检测卷-2024-2025学年统编版语文六年级上册.docx
- 1.4长方体正方体表面积练习(课件)-2024-2025学年六年级上册数学苏教版.pptx
- 21 古诗词三首 枫桥夜泊(课件)-2024-2025学年统编版语文五年级上册.pptx
最近下载
- 上海市外籍人口空间分布历史变迁研究.pdf
- 至为芯科技IP5356规格书资料.pdf
- 学习党的二十届三中全会精神应知应会知识测试题AB卷(附答案).docx VIP
- 进位制-(公开课).ppt VIP
- 船舶电气作业安全操作规程.docx
- DB37T5267-2023钢丝网架(片)板现浇混凝土复合保温体系应用技术标准 .docx VIP
- 2024安全生产标准化管理体系新旧版本对比汇总版.docx
- 国家电网计算机类笔试学习资料-计算机网络.pdf VIP
- 人教版初中数学第十四章《整式的乘法与因式分解》解答题提高训练 (39)(含答案解析).docx VIP
- 公务员考试常识习题(带答案).doc VIP
文档评论(0)