实验二 RSA 算法
一、实验目的
1、熟悉 RSA 算法概念
2、掌握 RSA 算法
二、实验内容
1.选取两个素数 p,q(不可相差悬殊)
2.计算 n=pq,f(n)=(p-1)(q-1)
3.选取 e,满足 1<e<f(n),则 gcd(e,f(n))=1
4.计算 d,满足 de=1 mod f(n)。一般 d>=[n 的四分之一方],(e,n)为公钥,(p,q,d)为私钥,将明文 0,1 序
列分组,使每组十进制小于 n。c=[m 的 e 次方] mod n,m=[c 的 d 次方] mod n。
三、设计与编码
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MM 7081
#define KK 1789
#define PHIM 6912
#define PP 85
typedef char strtype[10000];
int len;
long nume[10000];
int change[126];
char antichange[37];
void initialize()
{
int i;
char c;
for (i = 11, c = 'A'; c <= 'Z'; c ++, i ++)
{ change[c] = i;
antichange[i] = c;
}
}
void changetonum(strtype str)
{
int l = strlen(str), i;
len = 0;
memset(nume, 0, sizeof(nume));
for (i = 0; i < l; i ++)
{
nume[len] = nume[len] * 100 + change[str[i]];
if (i % 2 == 1) len ++;
评论0