亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? rsacryptosystem.cpp

?? C++ implementaion for RSA together with the Wiener attack. It uses NTL library for big numbers
?? CPP
字號:
#include "RSACryptoSystem.h"
#include <time.h>
using namespace std;
//***************************************************************
// Constructors
//***************************************************************
// if bitsNr is little then 512 the bitNr is automaticly set on 512
// if privateKeyFile or publickKeyFile is Empty String the key are automaticaly Generated;
RSACryptoSystem::RSACryptoSystem(string privateKeyFile, string publicKeyFile, long bitsNr)
{

	if (privateKeyFile == "" || publicKeyFile == "")
	{
		if (bitsNr > 512)
			m_lBitsNr = bitsNr;
		else
			m_lBitsNr = 512;
		GenerateKeys();
	}
	else
		LoadKeys(publicKeyFile, privateKeyFile);

	ofstream ofs("Voter4PrvKey.txt");
	ofs << m_privateKey.P << '\n';
	ofs << m_privateKey.Q << '\n'; 
	ofs << m_privateKey.D << '\n';

	ofstream ofs1("Voter4PubKey.txt");
	ofs1 << m_publicKey.N << '\n';
	ofs1 << m_publicKey.E << '\n';

	ofs.close();
	ofs1.close();

	//cout << "Weak D: " << m_privateKey.D <<"\n\n";
	
}

RSACryptoSystem::~RSACryptoSystem(void)
{
}

//***************************************************************
// Utils
//***************************************************************
// Generate
//	P,Q  - large prime number ( >= 512 bits)
//	N = p*Q
//  E,D from FI(N), E*D congr 1 mod FI(N) / E small but D > (1/3)*N^(1/4)
//					eqv with D represented on at least ((nrB + 1)/4) + 1 bits
void RSACryptoSystem::GenerateKeys()
{
	time_t t;
	time( &t );
	NTL::SetSeed(NTL::to_ZZ((unsigned long)(t + 15))); 

	// P, Q
	NTL::GenPrime(m_privateKey.P, m_lBitsNr, 100);
	do
	{
		NTL::GenPrime(m_privateKey.Q, m_lBitsNr, 100);
	}
	while (m_privateKey.Q < m_privateKey.P && m_privateKey.P < 2* m_privateKey.Q);

	// N
	NTL::ZZ phiN;
	NTL::mul(m_publicKey.N, m_privateKey.P, m_privateKey.Q);

	NTL::mul(phiN, m_privateKey.P -1, m_privateKey.Q - 1);
	//D
	
	do 
	{
		NTL::RandomPrime(m_privateKey.D, m_lBitsNr - 32, 100);
	}
	while (NTL::divide(phiN, m_privateKey.D) == 1);

	if ( NTL::InvModStatus(m_publicKey.E, m_privateKey.D, phiN) != 0) //error InvMod doesn't exists
		throw "InvMod of D doesn't exists";
}

void RSACryptoSystem::LoadKeys(std::string publicKeyFile,std::string privateKeyFile)
{
	ifstream ifsPublic(publicKeyFile.c_str());
	ifstream ifsPrivate(privateKeyFile.c_str());
	if (!ifsPublic.is_open())
	{
		cout << "The Public Key File couldn't be open. The Keys were automaticaly generated";
		return;
	}
	if (!ifsPrivate.is_open())
	{
		cout << "The Private Key File couldn't be open. The Keys were automaticaly generated";
		return;
	}

	ifsPrivate >> m_privateKey.P;
	ifsPrivate >> m_privateKey.Q;
	ifsPrivate >> m_privateKey.D;

	ifsPublic >> m_publicKey.N;
	ifsPublic >> m_publicKey.E;

	ifsPrivate.close();
	ifsPublic.close();
}
//***************************************************************
// Get Methods
//***************************************************************
RSACryptoSystem::PublicKey RSACryptoSystem::GetPublicKey() const
{
	return m_publicKey;
}

//***************************************************************
// Crypto Function
//***************************************************************

void RSACryptoSystem::Encode(const NTL::ZZ &x, NTL::ZZ &y, const RSACryptoSystem::PublicKey &key)
{
	if (x > key.N)
		throw "Plain Text must be from Z_N";
	NTL::PowerMod(y, x, key.E, key.N);
}

void RSACryptoSystem::Decode(const NTL::ZZ &y, NTL::ZZ &x)
{
	// Clasic Decoding
	//NTL::PowerMod(x, y, m_privateKey.D, m_publicKey.N);

	// Decode using Chiness Remainder Theorem
	//	x = solution  for
	//		x congr xp mod p;
	//		x congr xq mod q;

	//		x1 = (q % p)^(-1) * xp mod p
	//		x1 = (p % q)^(-1) * xq mod q
	//		x = (q*x1 + p*x2) mod n;
	
	
	NTL::ZZ xp;
	NTL::ZZ xq;

	NTL::PowerMod(xp, y % m_privateKey.P, m_privateKey.D % (m_privateKey.P - 1) , m_privateKey.P);
	NTL::PowerMod(xq, y % m_privateKey.Q, m_privateKey.D % (m_privateKey.P - 1), m_privateKey.Q);

	NTL::ZZ x1;
	NTL::InvMod(x1, m_privateKey.Q % m_privateKey.P, m_privateKey.P);
	NTL::MulMod(x1, x1, xp, m_privateKey.P);

	NTL::ZZ x2;
	NTL::InvMod(x2, m_privateKey.P % m_privateKey.Q, m_privateKey.Q);
	NTL::MulMod(x2, x2, xq, m_privateKey.Q);

	NTL::MulMod(x1, x1, m_privateKey.Q, m_publicKey.N);
	NTL::MulMod(x2, x2, m_privateKey.P, m_publicKey.N);
	NTL::AddMod(x, x1, x2, m_publicKey.N);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 91国偷自产一区二区三区成为亚洲经典| 中文字幕 久热精品 视频在线| 精品伦理精品一区| 麻豆精品一二三| 欧美成人一区二区三区在线观看| 美女一区二区三区| 日本成人在线电影网| 欧美电影免费观看高清完整版在 | 免费观看成人av| 日韩精品中文字幕在线一区| 在线不卡中文字幕播放| 三级久久三级久久久| 久久嫩草精品久久久久| av爱爱亚洲一区| 亚洲一二三区在线观看| 日韩欧美中文字幕制服| 91影院在线观看| 蜜桃av一区二区三区电影| 久久99国产精品久久99果冻传媒| 欧美天天综合网| 久久99国产精品久久| 韩日欧美一区二区三区| 亚洲精选视频在线| 精品美女一区二区| 国产精品无人区| 日韩欧美一区二区在线视频| 精品福利一二区| 欧美日韩国产在线播放网站| 成人免费观看av| 美女视频第一区二区三区免费观看网站 | 欧美xxxx老人做受| 国产精品污网站| 亚洲一区中文日韩| 中文字幕制服丝袜成人av| 精品入口麻豆88视频| 中文字幕视频一区| 中文字幕欧美三区| 午夜电影网一区| 五月激情综合网| 成人午夜电影小说| 日韩一区二区免费电影| 专区另类欧美日韩| 国产美女视频91| 国产福利一区二区三区| 激情国产一区二区| 欧美专区日韩专区| 欧美日韩激情一区二区| 国产精品久久毛片a| 久久国产视频网| 国内精品视频一区二区三区八戒| 日韩电影免费一区| av网站免费线看精品| 精品少妇一区二区三区在线视频| 欧美va亚洲va在线观看蝴蝶网| 制服.丝袜.亚洲.中文.综合| 91精品国产aⅴ一区二区| 欧美一区二区精品在线| 亚洲三级久久久| 丁香激情综合国产| 久久婷婷国产综合精品青草| 中文字幕精品一区| 国产精品一区二区久久不卡| 成人免费不卡视频| 国产日本亚洲高清| 夜夜亚洲天天久久| 亚洲成人7777| 日韩av不卡在线观看| 欧美艳星brazzers| 亚洲精品乱码久久久久久黑人 | 日韩中文字幕区一区有砖一区| 亚洲午夜影视影院在线观看| 99精品热视频| 在线观看不卡一区| 亚洲视频小说图片| 99精品黄色片免费大全| 国产精品传媒在线| 成人av集中营| 日韩一级黄色大片| 免费精品视频在线| 日韩欧美电影在线| 久久精品国产99国产精品| 日韩一级二级三级精品视频| 五月天中文字幕一区二区| 67194成人在线观看| 日本美女一区二区| 欧美大白屁股肥臀xxxxxx| 久久超碰97中文字幕| 日韩一区二区免费在线观看| 精品无人码麻豆乱码1区2区| 欧美v日韩v国产v| 国产mv日韩mv欧美| 欧美不卡123| 久久成人18免费观看| 欧美激情一区二区三区在线| 99久久99久久久精品齐齐| 一区二区三区免费网站| 6080国产精品一区二区| 国产乱妇无码大片在线观看| 国产精品久久久久久久久晋中| 日韩综合小视频| 久久众筹精品私拍模特| 91一区二区在线观看| 日韩和欧美一区二区| 久久女同精品一区二区| 99re成人在线| 免费精品99久久国产综合精品| 一本大道久久a久久精二百| 欧美精品18+| 国产精品99久久不卡二区| 一区二区三区精品在线| 欧美一区二区性放荡片| 成人午夜大片免费观看| 亚洲香肠在线观看| 国产欧美一区二区精品性色 | 日韩精品一区二区三区在线| 国产精品1024久久| 亚瑟在线精品视频| 国产网站一区二区| 国产一区二区精品久久| 中文字幕免费在线观看视频一区| 麻豆中文一区二区| 国产精品白丝在线| 精品国产精品一区二区夜夜嗨| 亚洲成人资源网| 国产精品素人视频| 欧美一区二区三区四区久久| 91免费版在线看| 国产精品一二一区| 免费高清在线一区| 亚洲超碰精品一区二区| 欧美国产精品一区二区三区| 91精品免费观看| 欧美影院午夜播放| 99久久777色| 成人亚洲精品久久久久软件| 蜜桃视频在线观看一区| 亚洲不卡av一区二区三区| 最新国产成人在线观看| 国产日产欧美精品一区二区三区| 粉嫩高潮美女一区二区三区| 麻豆91在线播放免费| 亚洲成人av一区二区| 夜色激情一区二区| 中文字幕制服丝袜成人av| 欧美激情自拍偷拍| 久久精品男人的天堂| 久久亚洲二区三区| 日韩你懂的在线播放| 欧美另类高清zo欧美| 欧美高清视频在线高清观看mv色露露十八| 婷婷激情综合网| 五月激情综合色| 五月综合激情网| 日本在线观看不卡视频| 日韩精品色哟哟| 日本人妖一区二区| 午夜精品久久久久| 日本中文字幕一区二区有限公司| 国产午夜精品理论片a级大结局 | 91麻豆精品国产综合久久久久久 | 国产午夜精品一区二区| 国产欧美日韩综合精品一区二区| 99久久久精品| 99在线热播精品免费| 91浏览器打开| 欧美日韩三级一区二区| 激情五月婷婷综合网| 国内精品第一页| 岛国一区二区三区| 日本精品免费观看高清观看| 欧洲国产伦久久久久久久| 欧美日本一区二区在线观看| 欧美一区中文字幕| 国产喷白浆一区二区三区| 中文字幕人成不卡一区| 亚洲国产欧美在线| 免费高清成人在线| 成人深夜视频在线观看| 在线一区二区三区四区五区| 91精品国产aⅴ一区二区| 欧美激情在线观看视频免费| 国产精品一区在线| 成人av影视在线观看| 一本色道久久综合亚洲精品按摩| 韩国女主播成人在线| 国产高清亚洲一区| 欧洲生活片亚洲生活在线观看| 高清国产一区二区| 欧美在线你懂的| 久久久精品黄色| 午夜亚洲国产au精品一区二区| 中文一区在线播放| 一区二区欧美精品| 国产美女在线观看一区| 欧美午夜一区二区三区| 精品久久久久一区| 亚洲一区二区三区激情| 成人午夜视频网站| 欧美大片拔萝卜|