rsa模拟.cpp

来自「计算机网络安全中的DES加密解密算法」· C++ 代码 · 共 35 行

CPP
35
字号
//p=223,q=311,n=p*q=223*311=69353
//z=(p-1)*(q-1)=222*310=68820
//e=211,e模68820的乘法逆元为10111(d)
//公钥KU=(10111,69353),私钥KR=(211,69353)
//允许明文16位,设明文为“AB”
//AB=4142H=16706
//16706^211 mod 69353=23560=5c08H(密文)
//23560^10111 mod 69353=16706=4142H="AB"(明文)

#include <iostream.h>
#include <iomanip.h>

void main()
{
	unsigned long n=69353,e=211,d=10111,m0=16706,c=1,i,m1;
	for (i=1;i<=e;i++)	//模拟加密
	{
		c=c*m0;
		c=c%n;
	}
	for (m1=i=1;i<=d;i++)	//模拟解密
	{
		m1=m1*c;
		m1=m1%n;
	}
	cout<<"明文m:"<<hex<<m0<<"H(AB)"<<endl;
	cout<<"密文c:"<<setfill('0')<<setw(4)<<c<<"H"<<endl;
	cout<<"解密得到的明文:"<<m1<<"H"<<endl;
}
/*
明文m:4142H(AB)
密文c:5c08
       5c08H
解密得到的明文:4142H
*/

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?