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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? mqv.cpp

?? #include "pch.h" #include "base64.h" NAMESPACE_BEGIN(CryptoPP) static const int MAX_LINE_LENG
?? CPP
字號:
// mqv.cpp - written and placed in the public domain by Wei Dai

#include "pch.h"
#include "mqv.h"
#include "asn.h"
#include "nbtheory.h"
#include "modarith.h"

#include "algebra.cpp"

NAMESPACE_BEGIN(CryptoPP)

MQV::MQV(const Integer &p, const Integer &q, const Integer &g)
	: p(p), q(q), g(g), gpc(p, g, ExponentBitLength(), 1)
{
}

MQV::MQV(RandomNumberGenerator &rng, unsigned int pbits)
{
	PrimeAndGenerator pg(1, rng, pbits, 2*DiscreteLogWorkFactor(pbits));
	p = pg.Prime();
	q = pg.SubPrime();
	g = pg.Generator();
	gpc.Precompute(p, g, ExponentBitLength(), 1);
}

MQV::MQV(BufferedTransformation &bt)
{
	BERSequenceDecoder seq(bt);
	p.BERDecode(seq);
	q.BERDecode(seq);
	g.BERDecode(seq);
	gpc.Precompute(p, g, ExponentBitLength(), 1);
}

void MQV::DEREncode(BufferedTransformation &bt) const
{
	DERSequenceEncoder seq(bt);
	p.DEREncode(seq);
	q.DEREncode(seq);
	g.DEREncode(seq);
}

void MQV::Precompute(unsigned int precomputationStorage)
{
	gpc.Precompute(p, g, ExponentBitLength(), precomputationStorage);
}

void MQV::LoadPrecomputation(BufferedTransformation &bt)
{
	gpc.Load(p, bt);
}

void MQV::SavePrecomputation(BufferedTransformation &bt) const
{
	gpc.Save(bt);
}

bool MQV::ValidateDomainParameters(RandomNumberGenerator &rng) const
{
	return VerifyPrime(rng, p) && VerifyPrime(rng, q) && p%q==1 && g > 1 && g < p && a_exp_b_mod_c(g, q, p)==1;
}

void MQV::GenerateStaticKeyPair(RandomNumberGenerator &rng, byte *privateKey, byte *publicKey) const
{
	Integer x(rng, ExponentBitLength());
	Integer y = gpc.Exponentiate(x);
	x.Encode(privateKey, StaticPrivateKeyLength());
	y.Encode(publicKey, StaticPublicKeyLength());
}

void MQV::GenerateEphemeralKeyPair(RandomNumberGenerator &rng, byte *privateKey, byte *publicKey) const
{
	Integer x(rng, ExponentBitLength());
	Integer y = gpc.Exponentiate(x);
	x.Encode(privateKey, q.ByteCount());
	y.Encode(privateKey+q.ByteCount(), p.ByteCount());
	y.Encode(publicKey, EphemeralPublicKeyLength());
}

bool MQV::Agree(byte *agreedValue, const byte *staticPrivateKey, const byte *ephemeralPrivateKey, const byte *staticOtherPublicKey, const byte *ephemeralOtherPublicKey, bool validateStaticOtherPublicKey) const
{
	Integer ww(staticOtherPublicKey, StaticPublicKeyLength());
	Integer vv(ephemeralOtherPublicKey, EphemeralPublicKeyLength());
	if (!(vv > 1 && vv < p) || (validateStaticOtherPublicKey && !(ww > 1 && ww < p)))
		return false;

	Integer s(staticPrivateKey, StaticPrivateKeyLength());
	Integer u(ephemeralPrivateKey, q.ByteCount());
	Integer v(ephemeralPrivateKey+q.ByteCount(), p.ByteCount());

	Integer h2 = Integer::Power2((q.BitCount()+1)/2);
	MontgomeryRepresentation mr(p);
	Integer b = mr.Exponentiate(mr.ConvertIn(ww), h2+vv%h2);
	b = mr.Multiply(b, mr.ConvertIn(vv));

	const Integer e[2] = {q, ((h2+v%h2)*s+u) % q};
	Integer r[2];
	SimultaneousExponentiation(r, mr, b, e, e+2);

	if (r[0] != mr.One() || r[1] == mr.One())
		return false;

	mr.ConvertOut(r[1]).Encode(agreedValue, AgreedValueLength());
	return true;
}

unsigned int MQV::ExponentBitLength() const
{
	return q.BitCount();
}

NAMESPACE_END

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩一级大片网址| 国产在线观看一区二区| 色综合久久天天| 亚洲精品乱码久久久久久黑人| 成人开心网精品视频| 国产精品久久久久久久浪潮网站| 93久久精品日日躁夜夜躁欧美| 国产精品久久久久影院| 色狠狠av一区二区三区| 午夜精品久久久久久久99水蜜桃 | 麻豆一区二区三区| 久久一区二区三区四区| 成人精品视频网站| 一区二区三区日韩精品视频| 91精品国产综合久久婷婷香蕉 | 欧美成人bangbros| 成人做爰69片免费看网站| 亚洲欧美日韩一区二区| 欧美一级黄色片| 成人伦理片在线| 首页国产欧美久久| 欧美经典三级视频一区二区三区| 一本色道久久加勒比精品| 视频一区二区中文字幕| 欧美国产视频在线| 91精品欧美综合在线观看最新 | 首页综合国产亚洲丝袜| 国产片一区二区| 欧美日韩大陆在线| 成人一区二区三区视频| 亚洲成人av中文| 久久久亚洲高清| 欧美三电影在线| 成人一区二区三区| 日本aⅴ精品一区二区三区| 日本一区二区电影| 日韩西西人体444www| av电影天堂一区二区在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产精品国产自产拍高清av| 日韩欧美另类在线| 在线精品视频一区二区| 国产91精品一区二区麻豆亚洲| 亚洲成a人v欧美综合天堂| 中文字幕一区在线观看视频| 精品99一区二区| 欧美日韩国产在线观看| av在线一区二区三区| 精品综合免费视频观看| 亚洲自拍偷拍av| 综合久久久久久久| 久久精品视频在线免费观看| 欧美一区二区三区免费在线看| 在线看国产一区| 91免费看视频| jizzjizzjizz欧美| 国产91精品一区二区| 国产精品一线二线三线| 日本成人在线视频网站| 午夜精品在线看| 亚洲国产成人tv| 一区二区成人在线观看| 亚洲靠逼com| 中文字幕精品一区二区三区精品| 精品理论电影在线观看| 日韩视频免费观看高清完整版| 欧美日韩国产成人在线91| 欧洲精品一区二区| 欧美在线播放高清精品| 在线日韩国产精品| 欧亚一区二区三区| 欧美日韩一区二区三区四区 | 国产精品网站在线播放| 久久精品一区八戒影视| 久久精品人人做人人综合| 久久天天做天天爱综合色| 精品成人一区二区三区四区| 亚洲精品一区二区三区在线观看| 日韩免费观看高清完整版 | 久久久久久久久99精品| 久久亚洲精华国产精华液| 久久久久97国产精华液好用吗| 国产亚洲美州欧州综合国| 国产日韩欧美精品在线| 亚洲欧洲成人自拍| 亚洲777理论| 奇米影视一区二区三区| 激情综合色播五月| 国产激情一区二区三区| 99久久99久久精品国产片果冻| 一本一道久久a久久精品| 91成人国产精品| 91精品视频网| 久久久综合网站| 亚洲日本在线天堂| 亚洲国产一区二区三区青草影视| 日韩激情一二三区| 精品在线你懂的| www.久久久久久久久| 欧洲一区在线观看| 欧美大肚乱孕交hd孕妇| 国产精品美女久久久久久久| 亚洲影院在线观看| 久久成人免费网站| av激情亚洲男人天堂| 7777精品久久久大香线蕉| 2021中文字幕一区亚洲| 亚洲黄色av一区| 男女男精品网站| 99久久免费国产| 777a∨成人精品桃花网| 欧美极品美女视频| 日日夜夜精品视频免费| 成人免费视频免费观看| 欧美日韩精品欧美日韩精品一| 精品久久久久久久久久久久包黑料 | 亚洲免费三区一区二区| 男人的天堂久久精品| 成人sese在线| 日韩一区二区三区在线视频| 亚洲欧美视频在线观看视频| 久久超碰97中文字幕| 色琪琪一区二区三区亚洲区| 精品国产污网站| 亚洲一区二区高清| 国产91精品一区二区麻豆网站| 欧美日韩成人一区| 国产精品久久久久aaaa| 麻豆成人久久精品二区三区小说| 94-欧美-setu| 国产欧美日韩视频一区二区| 五月综合激情网| 99久久综合精品| 日韩精品一区二区在线观看| 亚洲一区二区不卡免费| 不卡电影免费在线播放一区| 精品国产一区二区亚洲人成毛片| 亚洲午夜一二三区视频| 波多野结衣精品在线| 精品国产三级a在线观看| 日本在线不卡一区| 91高清视频免费看| 亚洲色图清纯唯美| 粉嫩aⅴ一区二区三区四区 | 亚洲欧洲av另类| 国产自产高清不卡| 欧美伦理影视网| 亚洲国产精品一区二区久久 | 久久人人97超碰com| 奇米一区二区三区| 555夜色666亚洲国产免| 亚洲成人资源在线| 欧美日韩激情一区二区三区| 亚洲午夜在线观看视频在线| 色综合久久中文综合久久97| 国产精品久久久久一区二区三区共| 国产精品一区二区视频| 精品国产亚洲在线| 国产米奇在线777精品观看| 精品少妇一区二区三区免费观看| 日韩av成人高清| 日韩欧美一区二区视频| 麻豆免费看一区二区三区| 7777精品伊人久久久大香线蕉经典版下载 | 国产成人av福利| 国产欧美日韩在线| 成人激情免费电影网址| 国产精品网站导航| 99国产精品久久久久久久久久 | 91丝袜美腿高跟国产极品老师| 国产精品乱人伦| 99久久综合精品| 亚洲自拍偷拍欧美| 91麻豆精品国产91久久久资源速度 | 91搞黄在线观看| 午夜伊人狠狠久久| 91精品国产91综合久久蜜臀| 免费高清成人在线| 久久久久久亚洲综合| va亚洲va日韩不卡在线观看| 亚洲免费资源在线播放| 欧美日韩高清一区二区三区| 蜜臀久久久99精品久久久久久| 精品国产一区二区在线观看| 成人一区二区三区在线观看| 一区二区中文字幕在线| 欧美影院午夜播放| 看片的网站亚洲| 国产精品免费久久久久| 在线观看国产一区二区| 日本伊人午夜精品| 国产欧美日韩亚州综合| 91福利视频网站| 久久国产精品色婷婷| 亚洲欧洲国产日韩| 日韩欧美国产系列| 成人午夜av电影| 天堂精品中文字幕在线| 久久久国产午夜精品| 在线观看日韩精品|