1 / 25
文档名称:

RSA和DES加密算法详解.pptx

格式:pptx   大小:1,481KB   页数:25页
下载后只包含 1 个 PPTX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

RSA和DES加密算法详解.pptx

上传人:用户头像没有 2017/7/13 文件大小:1.45 MB

下载得到文件列表

RSA和DES加密算法详解.pptx

文档介绍

文档介绍:RSA算法原理及其编程实现
RSA算法的产生
Part 1
Ron Rivest
Leonard Adleman
Adi Shamir
RSA公钥加密算法
RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被ISO推荐为公钥数据加密标准。
RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。
、q ,n=p*q (n)=(p-1)*(q-1) (n)互质的量e ,用扩展欧几里得算法,模为φ(n) -1之间,计算Xe (mod n)产生密文Y,完成加密操作 (mod n)产生明文X,完成解密操作
RSA算法描述
Part 2
1、随机选择两个秘密的质数p,q (89 ,97) =p*q (8633) φ(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、选择一个与φ(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;
}
}
,模为φ(n)
Elemtype extend_euclid(Elemtype m, Elemtype bin)
{
order(m,bin);
Elemtype a[3],b[3],t[3];
a[0] = 1, a[1] = 0, a[2] = m;
b[0] = 0, b[1] = 1, b[2] = bin;
if (b[2] == 0)
{
return a[2] = gcd(m, bin);
}
if (b[2] ==1)
{
return b[2] = gcd(m, bin);
}
RSA编程实现(C语言)
Part 3
while(true)
{
if (b[2] ==1)
{
return b[1];
break;
}
int q = a[2] / b[2];
for(int i=0; i<3; i++)
{
t[i] = a[i] - q * b[i];
a[i] = b[i];
b[i] = t[i];
-1之间,计算Xe (mod n)产生密文Y,完成加密操作
void encrypt()
{
if(flag == 0)
{
cout<<"setkey first:"<<endl;
produce_key();
}
cout<<"请输入明文:";
cin>>m;
c = modular_multiplication(m,,);
cout<<"密文 is:"<<c<<endl;
cout<<"请输入下一步操作";
}
RSA编程实现(C语言)
Part 3
(mod n)产生明文X,完成解密操作
void decrypt()
{
if(flag == 0)
{
cout<<"setkey first:"<<endl;
produce_key();
}
cout<<"请输入密文:";
cin>>c;
m = modular_multiplication(c,,);
cout<<"明文 is:"<<m<<endl;
cout<<"请输入下一步操作";
}
RSA编程实现(C语言)
Part 3
DES算法原理及其编程实现
DES算法简介
Part 1
DES = Data Encryption Standard = 数据加密标准
DES是一种典型的块密码,即一种将固定长