1、RSARSA算法原理及其编程实现算法原理及其编程实现1ppt课件RSA算法的产生Ron RivestLeonard AdlemanAdi ShamirRSA公钥加密算法uRSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被ISO推荐为公钥数据加密标准。uRSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。2ppt课件1随机选择两个秘密的质数p、q2计算公开的模数,n=p*q3计算秘密的(n)=(p-1)*(q-1)4选择一个与(n)互质的量e 5求K的乘法逆元素,用扩展欧几里得
2、算法,模为(n)6明文X的值应在0至n-1之间,计算Xe(mod n)产生密文Y,完成加密操作7计算Yd(mod n)产生明文X,完成解密操作RSA算法描述3ppt课件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语言)4ppt课件4、选择一个与(n
3、)互质的量e /*求最大公约数求最大公约数*/Elemtype gcd(Elemtype a,Elemtype b)order(a,b);int r;if(b=0)return a;else RSA编程实现(C语言)while(true)r=a%b;a=b;b=r;if(b=0)return a;break;5ppt课件5用扩展欧几里得算法求K的乘法逆元素d,模为(n)Elemtype extend_euclid(Elemtype m,Elemtype bin)order(m,bin);Elemtype a3,b3,t3;a0=1,a1=0,a2=m;b0=0,b1=1,b2=bin;if(b
4、2=0)return a2=gcd(m,bin);if(b2=1)return b2=gcd(m,bin);RSA编程实现(C语言)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;6ppt课件6明文X的值应在0至n-1之间,计算Xe(mod n)产生密文Y,完成加密操作 void encrypt()if(flag=0)coutsetkey first:endl;produce_key();coutm;c=modular_multiplication(m,pu.e,pu
5、.n);cout密文 is:cendl;cout请输入下一步操作;RSA编程实现(C语言)7ppt课件7.计算Yd(mod n)产生明文X,完成解密操作 void decrypt()if(flag=0)coutsetkey first:endl;produce_key();coutc;m=modular_multiplication(c,pr.d,pr.n);cout明文 is:mendl;cout请输入下一步操作;RSA编程实现(C语言)8ppt课件DESDES算法原理及其编程实现算法原理及其编程实现9ppt课件DES算法简介uDES=Data Encryption Standard=数据加
6、密标准u DES是一种典型的块密码,即一种将固定长度的明文通过一系列复杂的操作变成同样长度的密文的算法u 明文长度为64位。同时,DES使用密钥来自定义变换过程,因此算法认为只有持有加密所用的密钥的用户才能解密密文。u 密钥长度为64位。然而只有其中的56位被实际用于算法,其余8位可以被用于奇偶校验,并在算法中被丢弃。因此,DES的有效密钥长度为56位,因为密钥太短,现已被攻破。改为使用三重DES算法,即3DES。u 经过16轮迭代和置换,得到密文长度为64位。10ppt课件DES算法原理明文64 bits密钥64 bits密文64 bitsF函数32 bits子密钥48 bits11ppt课
7、件DES算法原理初始置换和逆置换DES算法中所有的置换表都是给定的12ppt课件DES编程实现初始置换和逆置换13ppt课件DES算法原理第一轮迭代u64bits明文进行IP置换u64bits明文分为左右两部分,分别为32bitsu右边32bits直接放入下一轮的左边32bitsu左边32bits与F函数异或之后放入下一轮的右边32bits14ppt课件DES算法原理子密钥生成56bits密钥分成左右两边,经过置换、左移、选位得到48bits的子密钥15ppt课件DES算法原理F函数生成左边32bitsE盒置换得到48bits异或得到48bits16ppt课件DES编程实现E置换表17ppt课
8、件DES算法原理F函数生成左边32bitsE盒置换得到48bits异或得到48bits18ppt课件DES算法原理S盒置换6 bits*8组 S盒 4 bits*8组 48 bits S盒 32 bits19ppt课件DES编程实现S盒置换20ppt课件DES算法原理F函数生成经过P置换表得到32bits,即F函数异或得到48bits21ppt课件DES编程实现P置换表22ppt课件DES算法原理F函数生成经过P置换表得到32bits,即F函数异或得到48bits23ppt课件DES算法原理十六轮迭代u右边32bits直接放入下一轮的左边32bitsu左边32bits与F函数异或之后放入下一轮的右边32bitsu迭代16次之后再进行逆置换FP,得到64bits密文24ppt课件DES算法原理解密过程DES的解密过程就是加密的逆过程。25ppt课件