下面是一个简单的C语言实现RSA加密算法的示例代码: #include<stdio.h> #include
下面是一个简单的C语言实现RSA加密算法的示例代码:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
intgcd(inta,intb){
if(b==0)
returna;
else
returngcd(b,a%b);
}
intis_prime(intn){
if(n<=1)
return0;
for(inti=2;i<=sqrt(n);i++){
if(n%i==0)
return0;
}
return1;
}
intgenerate_prime(){
intp;
do{
p=rand()%100+1;
}while(!is_prime(p));
returnp;
}
intmod_exp(intbase,intexp,intmod){
intresult=1;
while(exp>0){
if(exp%2==1)
result=(result*base)%mod;
base=(base*base)%mod;
exp/=2;
}
returnresult;
}
intmain(){
intp=generate_prime();
intq=generate_prime();
intn=p*q;
intphi=(p-1)*(q-1);
inte=2;
while(gcd(e,phi)!=1){
e++;
}
intd=1;
while((d*e)%phi!=1){
d++;
}
printf("Publickey:(%d,%d)\n",e,n);
printf("Privatekey:(%d,%d)\n",d,n);
intplaintext=123;
intciphertext=mod_exp(plaintext,e,n);
printf("Encryptedmessage:%d\n",ciphertext);
intdecrypted_text=mod_exp(ciphertext,d,n);
printf("Decryptedmessage:%d\n",decrypted_text);
return0;
}
此代码生成两个随机素数p和q,计算n和phi的值,选择一个公钥e和私钥d,然后使用公钥对明文进行加密,使用私钥对密文进行解密。请注意,此处的加密和解密仅用于示例目的,实际应用中应该使用更大的素数和更复杂的操作。
版权声明
本文仅代表作者观点,不代表博信信息网立场。