• 大小: 3KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-05-12
  • 语言: C/C++
  • 标签: Rabin  加密  

资源简介

一个系统实现Rabin加密和签名,已验证通过

资源截图

代码片段和文件信息

#include
#include
#include

int RabinE()  //Rabin加密
{
   int pqnmc;
   cout<<“开始Rabin加密“<   cout<<“请输入加密公钥n“<   cin>>n;
   cout<<“请输入待加密明文“<   cin>>m;
   c=(m*m)%n;
   cout<<“密文为c=“<   return 0;
}

int shengyu(int a1int a2int m1int m2int n)
{
int m;
    for(m=a1;m {
if(a2==m%m2)
break;
else
m=m+m1;
}
return m;
}

int RabinD()  //Rabin解密
{
   int pqca1a2a3a4mb1in;
   cout<<“开始Rabin解密“<   cout<<“请输入加密私钥pq“<   cin>>p;
   cin>>q;
   cout<<“请输入待解密密文“<   cin>>c;
   b1=(p+1)/4;
   a1=1;
   for(i=1;i<=b1;i++)
   {
   a1=a1*c;
   }
   b1=(q+1)/4;
   a2=1;
   for(i=1;i<=b1;i++)
   {
   a2=a2*c;
   }
   a1=a1%p;
   a2=a2%q;
   a3=p-a1;
   a4=q-a2;
   n=p*q;
   m=shengyu(a1a2pqn);
   cout<<“第一个可能明文为“<   m=shengyu(a2a3qpn);
   cout<<“第二个可能明文为“<   m=shengyu(a1a4pqn);
   cout<<“第三个可能明文为“<   for(m=a3;m   {
   if(a4==m%q&&a3==m%p)
   break;
   else
   m=m+1;
   }
   cout<<“第四个可能明文为“<   return 0;
}

int Rabinqm()   //Rabin签名
{
   int pqn

评论

共有 条评论