- 1、本文档共26页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
--
RSA加解密算法
1 实验目的
了解R SA加解密算法
2 实验内容
编程实现R SA加解密算法
3 实验步骤
3.1 选择素数p ,q
选择 p, q,p, q都是素数, p ≠q 。由于 P 和 q 都是大素数 ,所以为了方便由程序自动生成。
/ /产生随机素数 p 和 q
void pr ime_ random(int *p ,i nt *q)
{
i nt i,k;
time_t t ;
p [0 ]=1;
q[0]=3 ;
// p[19] =1;
// q[18 ]=2;
p[ MAX-1]=1 0;
q[ MA X-1]=11;
do
{
t=ti me(NU LL);
sr and ((u nsigned long)t) ;
f or( i=1; ip[MAX-1]- 1;i++)
{
k= ran d()% 10;
p[i] =k;
}
--
--
k=r and()%10;
wh ile (k==0 )
{
k=rand()% 10;
}
p [p[MAX- 1]-1]=k;
}whil e(( is_prime_ san( p))!= 1);
pr intf( 素数 p 为 : ");
for( i=0;i <p[MA X-1] ;i ++ )
{
pr in tf( "% d,p [p[MAX-1 ]- i-1] );
}
pr intf( \n\n ");
do
{
t= time( NULL);
srand( (u nsigne d lon g)t);
f or(i=1;iq [M AX- 1];i+ +)
{
k=rand ()%10 ;
q[i]=k;
}
}wh ile( (is_ prime_s an( q ))!=1) ;
pr int f( 素数 q 为 : );
f or(i= 0;iq[M AX-1]; i++)
{
print f ( %d ",q[q [MAX-1] - i-1]);
}
print f( \n\n);
re turn;
}
3. 2选择整数e
? ( ??) = ( ??- 1)( ??- 1)
( ( ) ) ( )
整数 e 满足 gcd ? ??,?? = 1; 1 ?? ? ?? 。
//产生与( p- 1) *(q-1) 互素的随机数
void er and( int e[MAX], int m[ MA X])
{
int i,k ;
tim e_t t ;
e[MAX - 1]=5;
print f ( 随机产生一个与 (p-1)* (q-1) 互素的 e : ");
--
--
do
{
t=tim e(NULL);
sran d((un signed lo ng)t);
for(i= 0;i <e [MAX- 1] -1;i++)
{
k=r and()%10;
e[i]=k;
}
while((k =r and()
文档评论(0)