




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、RSA算法原理及其编程实现,1,2,RSA算法的产生,Part 1,RSA公钥加密算法,RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被ISO推荐为公钥数据加密标准。 RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。,2,2,1随机选择两个秘密的质数p、q2计算公开的模数,n=p*q3计算秘密的(n)=(p-1)*(q-1) 4选择一个与(n)互质的量e 5求K的乘法逆元素,用扩展欧几里得算法,模为(n)6明文X的值应在0至n-1之间,计算Xe (mod n)产生密文Y
2、,完成加密操作7计算Yd(mod n)产生明文X,完成解密操作,RSA算法描述,Part 2,3,2,1、随机选择两个秘密的质数p,q(89 ,97)2计算公开的模数np*q(8633)3计算秘密的欧拉函数(n)=(p-1)*(q-1) (8448),/* 判定一个数是否为素数 */ bool test_prime(Elemtype m) bool pd; int i; for(i = 2;i m;i+) if(m % i =0) break; if(m = i) pd = 1; else pd = 0; return pd;,RSA编程实现(C语言),Part 3,4,2020/8/4,4、
3、选择一个与(n)互质的量e,/* 求最大公约数 */ Elemtype gcd(Elemtype a, Elemtype b) order(a,b); int r; if(b = 0) return a; else,RSA编程实现(C语言),Part 3, while(true) r = a % b; a = b; b = r; if (b = 0) return a; break; ,5,2020/8/4,5用扩展欧几里得算法求K的乘法逆元素d,模为(n),Elemtype extend_euclid(Elemtype m, Elemtype bin) order(m,bin); Elemt
4、ype a3,b3,t3; a0 = 1, a1 = 0, a2 = m; b0 = 0, b1 = 1, b2 = bin; if (b2 = 0) return a2 = gcd(m, bin); if (b2 =1) return b2 = gcd(m, bin); ,RSA编程实现(C语言),Part 3,while(true) if (b2 =1) return b1; break; int q = a2 / b2; for(int i=0; i3; i+) ti = ai - q * bi; ai = bi; bi = ti;,6,2020/8/4,6明文X的值应在0至n-1之间,
5、计算Xe (mod n)产生密文Y,完成加密操作,void encrypt() if(flag = 0) coutm; c = modular_multiplication(m,pu.e,pu.n); cout密文 is:cendl; cout请输入下一步操作 ; ,RSA编程实现(C语言),Part 3,7,2020/8/4,7.计算Yd(mod n)产生明文X,完成解密操作,void decrypt() if(flag = 0) coutc; m = modular_multiplication(c,pr.d,pr.n); cout明文 is:mendl; cout请输入下一步操作 ; ,
6、RSA编程实现(C语言),Part 3,8,2020/8/4,DES算法原理及其编程实现,9,2,DES算法简介,Part 1,DES = Data Encryption Standard = 数据加密标准,DES是一种典型的块密码,即一种将固定长度的明文通过一系列复杂的操作变成同样长度的密文的算法 明文长度为64位。同时,DES使用密钥来自定义变换过程,因此算法认为只有持有加密所用的密钥的用户才能解密密文。 密钥长度为64位。然而只有其中的56位被实际用于算法,其余8位可以被用于奇偶校验,并在算法中被丢弃。因此,DES的有效密钥长度为56位,因为密钥太短,现已被攻破。改为使用三重DES算法,
7、即3DES。 经过16轮迭代和置换,得到密文长度为64位。,10,2020/8/4,DES算法原理,Part 2,明文64 bits,密钥64 bits,密文64 bits,F函数32 bits,子密钥48 bits,11,2020/8/4,DES算法原理初始置换和逆置换,Part 2,DES算法中所有的置换表都是给定的,12,2020/8/4,DES编程实现初始置换和逆置换,Part 3,13,2020/8/4,DES算法原理第一轮迭代,Part 2,64bits明文进行IP置换 64bits明文分为左右两部分,分别为32bits 右边32bits直接放入下一轮的左边32bits 左边32b
8、its与F函数异或之后放入下一轮的右边32bits,14,2020/8/4,DES算法原理子密钥生成,Part 2,56bits密钥分成左右两边,经过置换、左移、选位得到48bits的子密钥,15,2020/8/4,DES算法原理F函数生成,Part 2,左边32bitsE盒置换得到48bits,异或,得到48bits,16,2020/8/4,17,DES编程实现E置换表,Part 3,2020/8/4,DES算法原理F函数生成,Part 2,左边32bitsE盒置换得到48bits,异或,得到48bits,18,2020/8/4,19,DES算法原理S盒置换,Part 2,6 bits * 8组 S盒 4 bits * 8组 48 bits S盒 32 bits,2020/8/4,DES编程实现S盒置换,Part 3,20,2020/8/4,DES算法原理F函数生成,Part 2,经过P置换表得到32bits,即F函数,异或,得到48bits,21,2020/8/4,22,DES编程实现P置换表,Part 3,2020/8/4,DES算法原理F函数生成,Part 2,经过P置换表得到32bits,即F函数,异或,得到48bits,23,2020/8/4,DES算法原理十六轮迭代,Part 2,右边32
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小车喷漆活动方案
- 小朋友设计活动方案
- 工信局深化活动方案
- 工会活动咖啡馆活动方案
- 少先队植树活动方案
- 工匠云直播活动方案
- 小班荷花画展活动方案
- 小说学校活动方案
- 干部培训活动策划方案
- 岗位能力建设活动方案
- (2025.06.12)领导干部任前应知应会党内法规和法律知识考试题库(2025年度)
- 2025年高考北京卷化学高考真题+答案(参考版)
- 2025至2030中国汽车滤清器行业市场发展分析及商业模式与投融资报告
- 医用光学技术和仪器使用
- 仗鼓舞比赛活动方案
- 南昌职业大学《影视配音创作》2023-2024学年第二学期期末试卷
- 2024年湖南融通资源循环产业有限公司技能岗位招聘真题
- 销售转正笔试题目及答案
- 树木砍伐合同简单协议书
- 2025年安徽省农业职业技能大赛(水生物病害防治员)备赛试题库(含答案)
- 安全大讲堂教学课件
评论
0/150
提交评论