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

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

?? luc.h

?? 此壓縮包內(nèi)有cast、blowfish、simple、des、cryptlib、rsa、mqueue、xtrcrypt、gf256、base32,base64、modexppc、network等一些的
?? H
字號:
#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

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色香色香欲天天天影视综合网| 亚洲人成小说网站色在线| 日韩一级欧美一级| 国产精品123| 国产suv精品一区二区三区| 韩国一区二区三区| 国产麻豆精品视频| 国产v综合v亚洲欧| av不卡一区二区三区| caoporn国产精品| 在线视频一区二区三| 欧美日韩一区二区三区高清| 6080亚洲精品一区二区| 精品剧情v国产在线观看在线| 欧美videofree性高清杂交| 久久久久久99精品| 国产精品嫩草99a| 亚洲综合在线视频| 裸体歌舞表演一区二区| 国产自产2019最新不卡| aaa亚洲精品| 欧美日韩第一区日日骚| 久久这里只有精品6| 国产精品嫩草99a| 亚洲chinese男男1069| 麻豆成人久久精品二区三区红| 国产剧情一区二区| 在线视频一区二区免费| 欧美sm极限捆绑bd| 亚洲激情欧美激情| 国产专区欧美精品| 欧美专区日韩专区| 久久美女高清视频| 亚洲国产日日夜夜| 东方aⅴ免费观看久久av| 91九色最新地址| 久久精品这里都是精品| 亚洲成人7777| 成人黄色电影在线| 日韩亚洲欧美综合| 一区二区三区在线视频观看| 美女脱光内衣内裤视频久久影院| 国产99久久久久| 欧美一级一区二区| 亚洲三级久久久| 国产美女久久久久| 欧美日本一区二区| 亚洲美女免费在线| 韩国成人福利片在线播放| 91精品1区2区| 亚洲第一电影网| 国产精品白丝jk黑袜喷水| 欧美午夜精品一区二区三区| 欧美精品一区二区三区蜜桃视频| 一区二区三区四区不卡在线| 黄色精品一二区| 欧美精品亚洲一区二区在线播放| 国产精品全国免费观看高清 | 91精品午夜视频| 最新久久zyz资源站| 国产精品一区二区在线看| 4438x成人网最大色成网站| 亚洲三级在线看| 懂色av一区二区三区免费观看| 欧美性受xxxx黑人xyx| 久久久久久久国产精品影院| 亚洲妇熟xx妇色黄| 91高清在线观看| 亚洲摸摸操操av| 91九色最新地址| 一区二区高清在线| 欧美色网站导航| 亚洲国产综合在线| 欧美美女黄视频| 日韩激情一区二区| 6080亚洲精品一区二区| 日本亚洲天堂网| 日韩欧美国产综合一区| 久久精品国产秦先生| 日韩欧美中文一区二区| 麻豆精品国产91久久久久久| 日韩欧美第一区| 国产乱码精品一区二区三| 国产婷婷色一区二区三区在线| 国产成人综合在线播放| 国产精品福利一区二区| 成人免费看的视频| 欧美色中文字幕| 91日韩在线专区| 欧美一级国产精品| 久久久久久久久伊人| 一本久久a久久免费精品不卡| 欧美日韩你懂的| 轻轻草成人在线| 精品久久久久一区二区国产| 国产高清精品久久久久| 国产精品国产三级国产普通话99| 91麻豆6部合集magnet| 亚洲成人激情综合网| 日韩你懂的在线观看| 国产a级毛片一区| 亚洲激情校园春色| 日韩精品一区二| 97国产一区二区| 偷拍一区二区三区| 日本一区二区三区高清不卡| 色综合久久中文字幕综合网| 日韩高清国产一区在线| 亚洲国产美女搞黄色| 亚洲国产成人91porn| 91免费观看在线| 蜜桃视频在线一区| 国产精品国产成人国产三级 | 国产三级一区二区| 在线免费观看日本欧美| 激情综合网天天干| 亚洲精品欧美激情| 精品国产99国产精品| 91一区二区在线观看| 美女网站色91| 亚洲激情自拍视频| 国产片一区二区三区| 欧美日韩国产a| 97精品国产97久久久久久久久久久久| 三级久久三级久久| 亚洲精品欧美激情| 国产欧美日韩在线看| 欧美一区二区三区性视频| 91久久精品国产91性色tv| 国产高清亚洲一区| 老司机精品视频线观看86 | 在线91免费看| 一本色道久久综合亚洲aⅴ蜜桃 | 91国模大尺度私拍在线视频| 国产a视频精品免费观看| 蜜臀久久久99精品久久久久久| 亚洲精品乱码久久久久久日本蜜臀| 久久色中文字幕| 欧美一区二区三区免费视频| 欧美日韩在线播放| 91国在线观看| 色婷婷综合久久久中文一区二区 | 日本高清无吗v一区| www.av亚洲| 国产99久久久精品| 粉嫩av一区二区三区| 国产在线视频一区二区| 九九九精品视频| 麻豆极品一区二区三区| 麻豆国产精品777777在线| 奇米色一区二区三区四区| 秋霞电影一区二区| 青青青爽久久午夜综合久久午夜| 亚洲成av人**亚洲成av**| 亚洲高清不卡在线观看| 亚洲午夜久久久久久久久电影院| 尤物av一区二区| 一区二区高清免费观看影视大全| 伊人开心综合网| 亚洲五码中文字幕| 肉丝袜脚交视频一区二区| 日韩精品一卡二卡三卡四卡无卡| 日韩精品三区四区| 麻豆国产精品一区二区三区| 国模少妇一区二区三区| 国产91在线观看| 99久久精品国产网站| 在线观看亚洲a| 91精品欧美综合在线观看最新| 56国语精品自产拍在线观看| 日韩一二在线观看| 国产日韩亚洲欧美综合| 亚洲免费观看在线视频| 天堂久久久久va久久久久| 久久99精品久久久久久久久久久久| 国产乱码精品一区二区三区忘忧草| 成人性生交大片免费看视频在线 | 日韩欧美亚洲一区二区| 国产欧美日韩激情| 亚洲一区二区偷拍精品| 毛片av一区二区| 99精品欧美一区二区三区小说 | 欧美日韩国产a| 久久日韩精品一区二区五区| 国产精品久久精品日日| 五月婷婷激情综合| 国产成人av电影免费在线观看| 色拍拍在线精品视频8848| 欧美一卡二卡在线观看| 国产精品人成在线观看免费| 图片区小说区区亚洲影院| 国产成人av在线影院| 欧美日韩国产一区| 国产午夜精品一区二区| 亚洲成人动漫在线免费观看| 国产成人亚洲综合a∨猫咪| 欧美日韩激情在线| 国产精品福利电影一区二区三区四区 | 在线观看国产日韩| 国产日韩欧美在线一区|