- 1、本文档共33页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第13章 公钥密码实现程序-1
网络编程技术 概述 公钥密码体制在网络与信息安全应用中具有重要的地位。通过本章学习,读者可以了解非对称密码体系——RSA算法的实现细节,并可以对DES、椭圆曲线等其他密码学算法有简单的了解。 提纲 编程训练目的 编程训练要求 相关知识介绍 程序设计分析 扩展与提高 编程训练目的 实现自己的加密解密程序 对密码学的相关知识,尤其是数据加密解密的过程有一个初步的了解 提纲 编程训练目的 编程训练要求 相关知识介绍 程序设计分析 扩展与提高 编程训练要求 程序界面示例 提纲 编程训练目的 编程训练要求 相关知识介绍 程序设计分析 扩展与提高 密码学发展历史 传统对称密码体系组成 体系结构 传统非对称密码体系组成 体系结构 提纲 编程训练目的 编程训练要求 相关知识介绍 程序设计分析 扩展与提高 模乘运算和模幂运算模块 模乘运算即计算两个数的乘积然后取模,其中为了避免大数相乘造成的溢出,根据求模运算的性质,优化了算法,其中“(a%n)*(b%n)%n”等价于“(a*b) %n”。 模幂运算就是计算一个数的n次幂,然后进行取模运算,同样是出于避免大数相乘造成溢出的情况,这里编程使用了一些数学技巧,基于快速模幂算法进行优化。 1、模乘运算和模幂运算模块 1、模乘运算和模幂运算模块 生成最大随机数 本模块主要由三个函数构成: 第一个函数用来完成Rabin-Miller素数测试,这个函数利用了Femat定理:如果n是素数,an-1≡ 1 mod n,使用此定理可以大概率确定一个数可能为素数; 重复调用Rabin-Miller检验函数确定一个数字是否为素数的函数; 生成一个随机的大素数,程序首先生成一个确保最高位是1(确保足够大)的随机奇数,然后,检验该奇数是否是素数,重复该过程直到找到所需的素数为止; 2、生成最大随机数 2、生成最大随机数 2、生成最大随机数 2、生成最大随机数 求最大公约数 运用了欧几里德辗转相除法 求最大公约数 运用普通除法求最大公约数 3、求最大公约数 计算私钥 计算私钥主要就是计算d的值,根据第三节介绍的基础知识,d必须满足(d*e - 1) mod ф(n) = 0,所以,求d(已知e和ф(n))的过程等价于寻找二元方程 ed - ф(n)i = 1的最大整数解(i为另一未知量) 4、计算私钥 加密解密过程 首先程序初始化相关变量,定义字符串“abcdefghijklmnopqrstuvwxyz”作为加密的源字符串,其中RSA_PARAM是一个预先定义的结构体,用来存储和RSA加密算法相关的参数。 通过调用函数RsaGetParam()初始化与RSA加密相关的各项参数,并在终端输出; 循环调用模幂运算函数针对每个字节计算C = Me mod n,并输出加密后的运算结果; 同样循环调用模幂运算函数计算M=Cd mod n;并输出解密后的字符串; 5、加密解密过程 5、加密解密过程 提纲 编程训练目的 编程训练要求 相关知识介绍 程序设计分析 扩展与提高 扩展与提高 扩展与提高 扩展与提高 RSA安全性: 穷举攻击 数学攻击 计时攻击 *网络编程技术 计算机硬件基础教学中心 Copyright ? by NUPT All rights reserved. Technology of Network Programming 第13章 公钥密码实现程序 编写程序,实现RSA加解密过程,要求: 程序工作在Windows环境下 能够使用RSA加密算法加密指定字符串并对加密后的密文进行解密,并与源字符串进行比对,证明解密无误 必须输出加密相关的各项参数,如公钥,私钥,通过乘积构成大整数的两个素数等 最早的密码学应用 近代密码学发展 密码学在战争中的应用 明文:作为算法的输入,原始可理解的消息或者数据; 加密算法:加密算法对明文进行各种代换和变换; 密文:作为算法的输出,看起来完全随机而杂乱的数据,依赖明文和密钥。对于给定的消息,不同的密钥将产生不同的密文,密文是随机的数据流,并且其意义是无法理解的; 密钥:密钥也是加密算法的输入,密钥独立于明文,算法将根据所用的特定密钥而产生不同的输出。算法所用的代换和变换也依靠密钥; 解密算法:加密算法的逆。输入密文和密钥可以用解密算法恢复出明文; 明文:作为算法的输入,原始可理解的消息或者数据; 加密算法:加密算法对明文进行各种代换和变换; 密文:作为算法的输出,看起来完全随机而杂乱的数据,依赖明文和密钥。对于给定的消息,不同的密钥将产生不同的密文,密文是随机的数据流,并且其意义是无法理解的; 公钥和私钥:算法输入的一部分,公钥和私钥成对出现,一个用来加密,另一个用来解密,加密算
您可能关注的文档
- 第10章 生物碱R.ppt
- 第10章 使用ADO进行数据库访问.ppt
- 第10章 酶的作用机制和酶的调节3.ppt
- 第10章-抽象类和接口.ppt
- 第10章_复合材料的高频介电性能能与雷达罩.ppt
- 第10章_适配器模式.ppt
- 第10讲 MySQL用户管理.ppt
- 第10章控制单元设计2014.ppt
- 第10节 图的连通性.ppt
- 第10讲友元模板.ppt
- 2025年湖南省汨罗市职业能力倾向测验事业单位考试(自然科学专技类C类)试题及答案1套.docx
- 2025年黑龙江省肇东市事业单位考试(自然科学专技类C类)职业能力倾向测验试卷必考题.docx
- 吉林省图们市事业单位考试(中小学教师类D类)职业能力倾向测验重点难点精练试题最新.docx
- 2025年湖南省洪江市事业单位考试(综合管理类A类)职业能力倾向测验知识点试题最新.docx
- 四川省邛崃市事业单位考试(自然科学专技类C类)职业能力倾向测验重点难点精练试题推荐.docx
- 2025年甘肃省敦煌市职业能力倾向测验事业单位考试(中小学教师类D类)试题最新.docx
- 2025年福建省福安市职业能力倾向测验事业单位考试(中小学教师类D类)试题必考题.docx
- 2025年黑龙江省宁安市事业单位考试(自然科学专技类C类)职业能力倾向测验重点难点精练试题及答案1套.docx
- 2025年湖南省湘乡市事业单位考试职业能力倾向测验(自然科学专技类C类)强化训练题库最新.docx
- 在线网课学习课堂《计算机网络与通信实验(北京航空航天)》单元测试考核答案.docx
最近下载
- 《开国大典》ppt课件.pptx VIP
- Unit 4 Stage and screen 课件(共30张ppt) 外研版(2019)高中英语必修第二册.pptx VIP
- 2025年青岛职业技术学院单招职业适应性测试题库及答案一套.docx VIP
- 2024年《知识产权法》形考任务1答案.pdf VIP
- 高一数学备课组长工作总结.pptx VIP
- Moldflow模流分析入门与实战 课件 1.5 创建浇注系统.pptx
- BEVERLY 比佛利 QZBW20S-16净水机 说明书.pdf
- 困难退役军人帮扶计划书.pptx VIP
- 【优质课】《马克思主义的诞生与传播》说课课件.pptx VIP
- 畜产品质量安全知识课件.pptx
文档评论(0)