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

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

?? luc.h

?? 應(yīng)用非對(duì)稱密鑰系統(tǒng)RSA密碼系統(tǒng)進(jìn)行數(shù)據(jù)簽名的代碼
?? H
字號(hào):
#ifndef CRYPTOPP_LUC_H
#define CRYPTOPP_LUC_H

/** \file
*/

#include "pkcspad.h"
#include "oaep.h"
#include "integer.h"
#include "dh.h"

#include <limits.h>

NAMESPACE_BEGIN(CryptoPP)

//! The LUC function.
/*! This class is here for historical and pedagogical interest. It has no
	practical advantages over other trapdoor functions and probably shouldn't
	be used in production software. The discrete log based LUC schemes
	defined later in this .h file may be of more practical interest.
*/
class LUCFunction : public TrapdoorFunction, public PublicKey
{
	typedef LUCFunction ThisClass;

public:
	void Initialize(const Integer &n, const Integer &e)
		{m_n = n; m_e = e;}

	void BERDecode(BufferedTransformation &bt);
	void DEREncode(BufferedTransformation &bt) const;

	Integer ApplyFunction(const Integer &x) const;
	Integer PreimageBound() const {return m_n;}
	Integer ImageBound() const {return m_n;}

	bool Validate(RandomNumberGenerator &rng, unsigned int level) const;
	bool GetVoidValue(const char *name, const std::type_info &valueType, void *pValue) const;
	void AssignFrom(const NameValuePairs &source);

	// non-derived interface
	const Integer & GetModulus() const {return m_n;}
	const Integer & GetPublicExponent() const {return m_e;}

	void SetModulus(const Integer &n) {m_n = n;}
	void SetPublicExponent(const Integer &e) {m_e = e;}

protected:
	Integer m_n, m_e;
};

//! _
class InvertibleLUCFunction : public LUCFunction, public TrapdoorFunctionInverse, public PrivateKey
{
	typedef InvertibleLUCFunction ThisClass;

public:
	void Initialize(RandomNumberGenerator &rng, unsigned int modulusBits, const Integer &eStart=17);
	void Initialize(const Integer &n, const Integer &e, const Integer &p, const Integer &q, const Integer &u)
		{m_n = n; m_e = e; m_p = p; m_q = q; m_u = u;}

	void BERDecode(BufferedTransformation &bt);
	void DEREncode(BufferedTransformation &bt) const;

	Integer CalculateInverse(RandomNumberGenerator &rng, const Integer &x) const;

	bool Validate(RandomNumberGenerator &rng, unsigned int level) const;
	bool GetVoidValue(const char *name, const std::type_info &valueType, void *pValue) const;
	void AssignFrom(const NameValuePairs &source);
	/*! parameters: (ModulusSize, PublicExponent (default 17)) */
	void GenerateRandom(RandomNumberGenerator &rng, const NameValuePairs &alg);

	// non-derived interface
	const Integer& GetPrime1() const {return m_p;}
	const Integer& GetPrime2() const {return m_q;}
	const Integer& GetMultiplicativeInverseOfPrime2ModPrime1() const {return m_u;}

	void SetPrime1(const Integer &p) {m_p = p;}
	void SetPrime2(const Integer &q) {m_q = q;}
	void SetMultiplicativeInverseOfPrime2ModPrime1(const Integer &u) {m_u = u;}

protected:
	Integer m_p, m_q, m_u;
};

struct LUC
{
	static std::string StaticAlgorithmName() {return "LUC";}
	typedef LUCFunction PublicKey;
	typedef InvertibleLUCFunction PrivateKey;
};

//! LUC cryptosystem
template <class STANDARD>
struct LUCES : public TF_ES<STANDARD, LUC>
{
};

//! LUC signature scheme with appendix
template <class STANDARD, class H>
struct LUCSS : public TF_SS<STANDARD, H, LUC>
{
};

// analagous to the RSA schemes defined in PKCS #1 v2.0
typedef LUCES<OAEP<SHA> >::Decryptor LUCES_OAEP_SHA_Decryptor;
typedef LUCES<OAEP<SHA> >::Encryptor LUCES_OAEP_SHA_Encryptor;

typedef LUCSS<PKCS1v15, SHA>::Signer LUCSSA_PKCS1v15_SHA_Signer;
typedef LUCSS<PKCS1v15, SHA>::Verifier LUCSSA_PKCS1v15_SHA_Verifier;

// ********************************************************

// no actual precomputation
class DL_GroupPrecomputation_LUC : public DL_GroupPrecomputation<Integer>
{
public:
	const AbstractGroup<Element> & GetGroup() const {assert(false); throw 0;}
	Element BERDecodeElement(BufferedTransformation &bt) const {return Integer(bt);}
	void DEREncodeElement(BufferedTransformation &bt, const Element &v) const {v.DEREncode(bt);}

	// non-inherited
	void SetModulus(const Integer &v) {m_p = v;}
	const Integer & GetModulus() const {return m_p;}

private:
	Integer m_p;
};

//! _
class DL_BasePrecomputation_LUC : public DL_FixedBasePrecomputation<Integer>
{
public:
	// DL_FixedBasePrecomputation
	bool IsInitialized() const {return m_g.NotZero();}
	void SetBase(const DL_GroupPrecomputation<Element> &group, const Integer &base) {m_g = base;}
	const Integer & GetBase(const DL_GroupPrecomputation<Element> &group) const {return m_g;}
	void Precompute(const DL_GroupPrecomputation<Element> &group, unsigned int maxExpBits, unsigned int storage) {}
	void Load(const DL_GroupPrecomputation<Element> &group, BufferedTransformation &storedPrecomputation) {}
	void Save(const DL_GroupPrecomputation<Element> &group, BufferedTransformation &storedPrecomputation) const {}
	Integer Exponentiate(const DL_GroupPrecomputation<Element> &group, const Integer &exponent) const;
	Integer CascadeExponentiate(const DL_GroupPrecomputation<Element> &group, const Integer &exponent, const DL_FixedBasePrecomputation<Integer> &pc2, const Integer &exponent2) const
		{throw NotImplemented("DL_BasePrecomputation_LUC: CascadeExponentiate not implemented");}	// shouldn't be called

private:
	Integer m_g;
};

//! _
class DL_GroupParameters_LUC : public DL_GroupParameters_IntegerBasedImpl<DL_GroupPrecomputation_LUC, DL_BasePrecomputation_LUC>
{
public:
	// DL_GroupParameters
	bool IsIdentity(const Integer &element) const {return element == Integer::Two();}
	void SimultaneousExponentiate(Element *results, const Element &base, const Integer *exponents, unsigned int exponentsCount) const;
	Element MultiplyElements(const Element &a, const Element &b) const
		{throw NotImplemented("LUC_GroupParameters: MultiplyElements can not be implemented");}
	Element CascadeExponentiate(const Element &element1, const Integer &exponent1, const Element &element2, const Integer &exponent2) const
		{throw NotImplemented("LUC_GroupParameters: MultiplyElements can not be implemented");}

	// NameValuePairs interface
	bool GetVoidValue(const char *name, const std::type_info &valueType, void *pValue) const
	{
		return GetValueHelper<DL_GroupParameters_IntegerBased>(this, name, valueType, pValue).Assignable();
	}

private:
	int GetFieldType() const {return 2;}
};

//! _
class DL_GroupParameters_LUC_DefaultSafePrime : public DL_GroupParameters_LUC
{
public:
	typedef NoCofactorMultiplication DefaultCofactorOption;

protected:
	unsigned int GetDefaultSubgroupOrderSize(unsigned int modulusSize) const {return modulusSize-1;}
};

//! _
class DL_Algorithm_LUC_HMP : public DL_ElgamalLikeSignatureAlgorithm<Integer>
{
public:
	static const char * StaticAlgorithmName() {return "LUC-HMP";}

	void Sign(const DL_GroupParameters<Integer> &params, const Integer &x, const Integer &k, const Integer &e, Integer &r, Integer &s) const;
	bool Verify(const DL_GroupParameters<Integer> &params, const DL_PublicKey<Integer> &publicKey, const Integer &e, const Integer &r, const Integer &s) const;

	size_t RLen(const DL_GroupParameters<Integer> &params) const
		{return params.GetGroupOrder().ByteCount();}
};

//! _
struct DL_SignatureKeys_LUC
{
	typedef DL_GroupParameters_LUC GroupParameters;
	typedef DL_PublicKey_GFP<GroupParameters> PublicKey;
	typedef DL_PrivateKey_GFP<GroupParameters> PrivateKey;
};

//! LUC-HMP, based on "Digital signature schemes based on Lucas functions" by Patrick Horster, Markus Michels, Holger Petersen
template <class H>
struct LUC_HMP : public DL_SS<DL_SignatureKeys_LUC, DL_Algorithm_LUC_HMP, DL_SignatureMessageEncodingMethod_DSA, H>
{
};

//! _
struct DL_CryptoKeys_LUC
{
	typedef DL_GroupParameters_LUC_DefaultSafePrime GroupParameters;
	typedef DL_PublicKey_GFP<GroupParameters> PublicKey;
	typedef DL_PrivateKey_GFP<GroupParameters> PrivateKey;
};

//! LUC-IES
template <class COFACTOR_OPTION = NoCofactorMultiplication, bool DHAES_MODE = true>
struct LUC_IES
	: public DL_ES<
		DL_CryptoKeys_LUC,
		DL_KeyAgreementAlgorithm_DH<Integer, COFACTOR_OPTION>,
		DL_KeyDerivationAlgorithm_P1363<Integer, DHAES_MODE, P1363_KDF2<SHA1> >,
		DL_EncryptionAlgorithm_Xor<HMAC<SHA1>, DHAES_MODE>,
		LUC_IES<> >
{
	static std::string StaticAlgorithmName() {return "LUC-IES";}	// non-standard name
};

// ********************************************************

//! LUC-DH
typedef DH_Domain<DL_GroupParameters_LUC_DefaultSafePrime> LUC_DH;

NAMESPACE_END

#endif

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩视频在线观看一区二区| 99re这里只有精品首页| 91精品在线免费观看| 亚洲成a人片在线不卡一二三区| 99re在线精品| 樱花影视一区二区| 欧美高清视频一二三区 | 日韩二区三区四区| 3d动漫精品啪啪| 久久99精品久久久久婷婷| 久久你懂得1024| 成人午夜精品在线| 一二三四区精品视频| 欧美日韩日日骚| 蜜桃一区二区三区在线观看| 2023国产精品| 成人av小说网| 亚洲va国产天堂va久久en| 日韩欧美国产电影| 国产+成+人+亚洲欧洲自线| 亚洲另类一区二区| 91精品久久久久久蜜臀| 国产主播一区二区三区| 中文字幕五月欧美| 欧美人伦禁忌dvd放荡欲情| 黄色日韩网站视频| 亚洲精品久久嫩草网站秘色| 69av一区二区三区| 成人一道本在线| 亚洲国产综合色| 久久女同精品一区二区| 色婷婷精品久久二区二区蜜臀av | 一区二区三区欧美在线观看| 51精品秘密在线观看| 国产成人综合亚洲91猫咪| 一区二区在线免费观看| 精品国产成人在线影院| 91麻豆123| 国内精品国产成人国产三级粉色| 亚洲视频网在线直播| 日韩欧美在线不卡| 色综合亚洲欧洲| 激情伊人五月天久久综合| 亚洲伦在线观看| 久久亚洲精精品中文字幕早川悠里 | 亚洲成人免费视| 久久先锋资源网| 欧美性猛交xxxx黑人交| 成人白浆超碰人人人人| 看电视剧不卡顿的网站| 亚洲午夜久久久久久久久电影院| 欧美精品一区二区三区很污很色的 | 99这里只有精品| 国产一区二区三区四区五区美女| 亚洲一区二区偷拍精品| 国产精品久久久久久久久久久免费看 | 亚洲免费资源在线播放| 久久久久久久久久久电影| 91精品视频网| 欧美又粗又大又爽| 成人aa视频在线观看| 国产麻豆精品theporn| 日韩av二区在线播放| 一区二区在线看| 中文字幕在线观看不卡视频| 久久伊人中文字幕| 欧美tickle裸体挠脚心vk| 这里只有精品免费| 欧美色视频在线| 日本精品一区二区三区高清| 成人久久18免费网站麻豆| 国产在线一区二区| 九九九精品视频| 免费高清在线视频一区·| 亚洲国产cao| 亚洲一二三四在线| 一级做a爱片久久| 亚洲免费伊人电影| 亚洲麻豆国产自偷在线| 亚洲免费大片在线观看| 亚洲精品久久嫩草网站秘色| 亚洲丝袜另类动漫二区| 亚洲人妖av一区二区| 亚洲人成7777| 亚洲精品国产无天堂网2021| 一区二区三区在线不卡| 一区二区在线观看免费| 亚洲r级在线视频| 婷婷开心激情综合| 麻豆免费看一区二区三区| 久久草av在线| 国产精品一区二区久久不卡 | 国产自产高清不卡| 国产成人啪午夜精品网站男同| 国产suv精品一区二区883| 国产成人av影院| 不卡电影一区二区三区| 色综合天天综合| 欧美日韩在线观看一区二区| 911精品国产一区二区在线| 欧美一区二区三区四区高清| 精品国产成人系列| 国产精品久久99| 有码一区二区三区| 免费黄网站欧美| 国产jizzjizz一区二区| 91视频观看免费| 欧美日本在线视频| 久久久三级国产网站| 亚洲欧洲成人精品av97| 亚洲电影你懂得| 韩国精品一区二区| 99国产欧美另类久久久精品 | 污片在线观看一区二区| 精品亚洲国内自在自线福利| 国产91色综合久久免费分享| 在线区一区二视频| 精品欧美一区二区久久| 国产精品无码永久免费888| 亚洲一卡二卡三卡四卡 | 一区二区三区四区不卡在线| 日韩高清在线一区| 成人黄色电影在线| 51久久夜色精品国产麻豆| 国产精品美女久久久久久久久久久 | 国产在线视频一区二区| 欧美伊人久久大香线蕉综合69| 精品美女在线播放| 亚洲精选视频在线| 国产尤物一区二区| 欧美日韩国产一级| 国产精品亲子伦对白| 麻豆精品视频在线观看视频| 97久久精品人人爽人人爽蜜臀| 欧美一级日韩一级| 亚洲精品精品亚洲| 国产成人午夜精品影院观看视频| 欧美日韩视频在线一区二区| 国产精品伦理在线| 精品在线一区二区三区| 欧美午夜精品久久久久久超碰 | 图片区日韩欧美亚洲| 91一区二区在线| 久久伊99综合婷婷久久伊| 日韩高清在线一区| 欧美在线小视频| 中文字幕不卡三区| 激情文学综合插| 在线播放中文一区| 亚洲综合视频网| 成人午夜视频福利| 久久亚洲精华国产精华液| 免费成人在线播放| 欧美美女bb生活片| 亚洲一区自拍偷拍| 色综合中文综合网| 免费av成人在线| 欧美在线不卡视频| 亚洲精品国产a| 91视频www| 亚洲日穴在线视频| 99久久精品国产一区| 国产午夜精品一区二区| 韩国女主播一区二区三区| 日韩一区二区三区视频| 丝袜美腿一区二区三区| 欧美三级视频在线| 亚洲成人高清在线| 欧美性淫爽ww久久久久无| 亚洲最快最全在线视频| 色激情天天射综合网| 一区二区三区在线视频免费观看| av激情综合网| 亚洲日本一区二区| 在线视频综合导航| 亚洲国产精品欧美一二99| 欧美亚洲综合网| 亚洲国产精品久久一线不卡| 欧美性猛片aaaaaaa做受| 天涯成人国产亚洲精品一区av| 欧美日韩一区二区三区四区五区 | 国产拍欧美日韩视频二区| 国产精品2024| 中文字幕不卡在线| 色天使色偷偷av一区二区| 一级中文字幕一区二区| 欧美精品乱码久久久久久按摩| 日本美女视频一区二区| 精品免费99久久| 盗摄精品av一区二区三区| 中文字幕视频一区| 欧美视频一二三区| 久久精品国产一区二区三| 久久久99久久精品欧美| www.66久久| 五月天丁香久久| 久久久久青草大香线综合精品| 成人免费高清在线| 一区二区三区色| 精品国产三级电影在线观看|