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

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

?? luc.h

?? 加密函數(shù)庫:包括多種加密解密算法,數(shù)字簽名,散列算法
?? 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;

	unsigned int 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一区二区三区免费野_久草精品视频
亚洲精品在线三区| 麻豆国产精品777777在线| 日本人妖一区二区| 99这里只有精品| 欧美电影免费观看高清完整版| 亚洲欧洲精品一区二区三区| 免费成人美女在线观看| 91亚洲国产成人精品一区二区三| 日韩一区二区在线观看视频| 一个色在线综合| 成人毛片在线观看| 久久久久久久久久久久久久久99 | 久久先锋影音av| 亚洲午夜久久久| 91女人视频在线观看| 久久久久免费观看| 久久成人久久爱| 6080午夜不卡| 一区二区三区成人| 91麻豆国产福利在线观看| 国产精品系列在线| 国产成人在线免费观看| 欧美大片在线观看一区| 日本v片在线高清不卡在线观看| 在线免费不卡电影| 亚洲欧美激情插 | 日本aⅴ亚洲精品中文乱码| 97se亚洲国产综合在线| 国产精品理伦片| 成人丝袜视频网| 久久精品网站免费观看| 国产精品99久久久久久似苏梦涵| 精品久久久网站| 国内精品国产成人国产三级粉色| 91精品国产综合久久婷婷香蕉| 亚洲一区二区黄色| 欧美日韩一区二区三区在线| 亚洲午夜私人影院| 欧美久久久久免费| 日日夜夜免费精品| 日韩午夜av一区| 麻豆精品视频在线观看视频| 日韩午夜精品电影| 国产一区二区不卡在线| 欧美国产激情二区三区 | 欧美国产综合色视频| 国产69精品久久777的优势| 欧美国产精品一区二区三区| 99久久99久久精品免费观看| 最好看的中文字幕久久| 91丨porny丨最新| 亚洲午夜免费电影| 日韩一区二区免费电影| 国产精品一区二区视频| 国产精品久久久久久久久图文区| 99久久婷婷国产精品综合| 一区二区日韩av| 欧美一区二区三区啪啪| 国产成人在线免费| 亚洲精品久久嫩草网站秘色| 在线播放91灌醉迷j高跟美女| 午夜不卡av免费| 久久久噜噜噜久久人人看 | 欧美性大战久久久| 秋霞成人午夜伦在线观看| 久久久久久久久久久电影| 99精品一区二区三区| 日本在线观看不卡视频| 国产区在线观看成人精品| 欧美在线一区二区三区| 久久狠狠亚洲综合| 亚洲伦理在线精品| 精品蜜桃在线看| 欧美主播一区二区三区美女| 国产在线播放一区三区四| 亚洲图片一区二区| 国产亚洲短视频| 欧美猛男gaygay网站| 国产成人在线视频免费播放| 五月婷婷激情综合| 国产精品高潮呻吟久久| 日韩欧美国产麻豆| 色成年激情久久综合| 国产在线视频精品一区| 亚洲成人免费在线| 亚洲色图视频网站| 国产视频视频一区| 日韩午夜激情av| 欧美日韩免费观看一区三区| 懂色av一区二区三区蜜臀| 免费人成精品欧美精品| 亚洲国产视频a| 中文字幕一区二区三区四区| 2021国产精品久久精品| 欧美乱妇20p| 91极品视觉盛宴| av日韩在线网站| 国产电影一区二区三区| 久久国产剧场电影| 日韩在线一二三区| 亚洲小说春色综合另类电影| 国产精品久久久久永久免费观看 | 国产精品一二三| 日本不卡一区二区三区| 亚洲成av人综合在线观看| 亚洲黄色免费电影| 亚洲日穴在线视频| 国产精品免费av| 国产精品欧美极品| 国产精品无人区| 中文成人综合网| 国产精品久久久久久久久免费樱桃 | av电影在线观看一区| 高清在线不卡av| 丁香桃色午夜亚洲一区二区三区| 国产综合久久久久久鬼色| 人妖欧美一区二区| 美国欧美日韩国产在线播放| 奇米色一区二区三区四区| 美腿丝袜亚洲色图| 狠狠色丁香久久婷婷综合丁香| 国精产品一区一区三区mba视频| 激情久久久久久久久久久久久久久久| 秋霞av亚洲一区二区三| 极品销魂美女一区二区三区| 国产剧情在线观看一区二区| 成人自拍视频在线观看| 99re这里都是精品| 欧美视频完全免费看| 欧美一级在线观看| 久久久青草青青国产亚洲免观| 国产女人水真多18毛片18精品视频| 国产人妖乱国产精品人妖| 国产精品二三区| 亚洲一线二线三线视频| 日韩电影一区二区三区| 久久99国产精品免费网站| 丰满少妇在线播放bd日韩电影| eeuss影院一区二区三区| 91福利在线观看| 欧美日韩www| 久久精品免视看| 亚洲一区在线观看免费观看电影高清| 五月婷婷综合激情| 国产精品18久久久久久久久久久久| 成人自拍视频在线观看| 欧美日韩精品电影| 国产午夜精品一区二区三区嫩草| 综合久久综合久久| 乱一区二区av| av亚洲精华国产精华精华| 欧美乱熟臀69xxxxxx| 中文字幕av一区二区三区高| 亚洲国产成人高清精品| 国产一区 二区| 91福利视频在线| 久久久久久久国产精品影院| 亚洲激情图片一区| 国产真实乱子伦精品视频| 在线观看亚洲一区| 久久综合成人精品亚洲另类欧美| 亚洲美女精品一区| 国产成人免费在线观看不卡| 欧美性视频一区二区三区| 久久久久88色偷偷免费 | 国产精品久久久爽爽爽麻豆色哟哟| 亚洲妇女屁股眼交7| 不卡在线观看av| 欧美成人bangbros| 亚洲午夜激情av| www.欧美.com| 久久综合久久鬼色中文字| 午夜精品一区在线观看| 97se亚洲国产综合自在线| 精品99999| 日韩黄色片在线观看| 色噜噜狠狠色综合中国| 中文字幕成人av| 韩国v欧美v亚洲v日本v| 91精品国产全国免费观看| 亚洲精品成人精品456| 成av人片一区二区| 国产日韩精品一区二区浪潮av| 免费在线观看精品| 777久久久精品| 亚洲国产美女搞黄色| 99国产精品国产精品久久| 久久久国产综合精品女国产盗摄| 日韩国产成人精品| 欧美日韩国产小视频在线观看| 亚洲欧美另类久久久精品2019| 福利电影一区二区三区| 国产女主播视频一区二区| 国内成人免费视频| 久久蜜臀中文字幕| 国内外精品视频| 久久众筹精品私拍模特| 国产一区啦啦啦在线观看| 久久日韩精品一区二区五区| 国精品**一区二区三区在线蜜桃|