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

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

?? modarith.h

?? 研讀AxCrypt對加解密的處理方法
?? H
字號:
#ifndef CRYPTOPP_MODARITH_H
#define CRYPTOPP_MODARITH_H

// implementations are in integer.cpp

#include "cryptlib.h"
#include "misc.h"
#include "integer.h"
#include "algebra.h"

NAMESPACE_BEGIN(CryptoPP)

CRYPTOPP_DLL_TEMPLATE_CLASS AbstractGroup<Integer>;
CRYPTOPP_DLL_TEMPLATE_CLASS AbstractRing<Integer>;
CRYPTOPP_DLL_TEMPLATE_CLASS AbstractEuclideanDomain<Integer>;

//! ring of congruence classes modulo n
/*! \note this implementation represents each congruence class as the smallest non-negative integer in that class */
class CRYPTOPP_DLL ModularArithmetic : public AbstractRing<Integer>
{
public:

	typedef int RandomizationParameter;
	typedef Integer Element;

	ModularArithmetic(const Integer &modulus = Integer::One())
		: modulus(modulus), result((word)0, modulus.reg.size()) {}

	ModularArithmetic(const ModularArithmetic &ma)
		: modulus(ma.modulus), result((word)0, modulus.reg.size()) {}

	ModularArithmetic(BufferedTransformation &bt);	// construct from BER encoded parameters

	virtual ModularArithmetic * Clone() const {return new ModularArithmetic(*this);}

	void DEREncode(BufferedTransformation &bt) const;

	void DEREncodeElement(BufferedTransformation &out, const Element &a) const;
	void BERDecodeElement(BufferedTransformation &in, Element &a) const;

	const Integer& GetModulus() const {return modulus;}
	void SetModulus(const Integer &newModulus) {modulus = newModulus; result.reg.resize(modulus.reg.size());}

	virtual bool IsMontgomeryRepresentation() const {return false;}

	virtual Integer ConvertIn(const Integer &a) const
		{return a%modulus;}

	virtual Integer ConvertOut(const Integer &a) const
		{return a;}

	const Integer& Half(const Integer &a) const;

	bool Equal(const Integer &a, const Integer &b) const
		{return a==b;}

	const Integer& Identity() const
		{return Integer::Zero();}

	const Integer& Add(const Integer &a, const Integer &b) const;

	Integer& Accumulate(Integer &a, const Integer &b) const;

	const Integer& Inverse(const Integer &a) const;

	const Integer& Subtract(const Integer &a, const Integer &b) const;

	Integer& Reduce(Integer &a, const Integer &b) const;

	const Integer& Double(const Integer &a) const
		{return Add(a, a);}

	const Integer& MultiplicativeIdentity() const
		{return Integer::One();}

	const Integer& Multiply(const Integer &a, const Integer &b) const
		{return result1 = a*b%modulus;}

	const Integer& Square(const Integer &a) const
		{return result1 = a.Squared()%modulus;}

	bool IsUnit(const Integer &a) const
		{return Integer::Gcd(a, modulus).IsUnit();}

	const Integer& MultiplicativeInverse(const Integer &a) const
		{return result1 = a.InverseMod(modulus);}

	const Integer& Divide(const Integer &a, const Integer &b) const
		{return Multiply(a, MultiplicativeInverse(b));}

	Integer CascadeExponentiate(const Integer &x, const Integer &e1, const Integer &y, const Integer &e2) const;

	void SimultaneousExponentiate(Element *results, const Element &base, const Integer *exponents, unsigned int exponentsCount) const;

	unsigned int MaxElementBitLength() const
		{return (modulus-1).BitCount();}

	unsigned int MaxElementByteLength() const
		{return (modulus-1).ByteCount();}

	Element RandomElement( RandomNumberGenerator &rng , const RandomizationParameter &ignore_for_now = 0 ) const
		// left RandomizationParameter arg as ref in case RandomizationParameter becomes a more complicated struct
	{ 
		return Element( rng , Integer( (long) 0) , modulus - Integer( (long) 1 )   ) ; 
	}   

	bool operator==(const ModularArithmetic &rhs) const
		{return modulus == rhs.modulus;}

	static const RandomizationParameter DefaultRandomizationParameter ;

protected:
	Integer modulus;
	mutable Integer result, result1;

};

// const ModularArithmetic::RandomizationParameter ModularArithmetic::DefaultRandomizationParameter = 0 ;

//! do modular arithmetics in Montgomery representation for increased speed
/*! \note the Montgomery representation represents each congruence class [a] as a*r%n, where r is a convenient power of 2 */
class CRYPTOPP_DLL MontgomeryRepresentation : public ModularArithmetic
{
public:
	MontgomeryRepresentation(const Integer &modulus);	// modulus must be odd

	virtual ModularArithmetic * Clone() const {return new MontgomeryRepresentation(*this);}

	bool IsMontgomeryRepresentation() const {return true;}

	Integer ConvertIn(const Integer &a) const
		{return (a<<(WORD_BITS*modulus.reg.size()))%modulus;}

	Integer ConvertOut(const Integer &a) const;

	const Integer& MultiplicativeIdentity() const
		{return result1 = Integer::Power2(WORD_BITS*modulus.reg.size())%modulus;}

	const Integer& Multiply(const Integer &a, const Integer &b) const;

	const Integer& Square(const Integer &a) const;

	const Integer& MultiplicativeInverse(const Integer &a) const;

	Integer CascadeExponentiate(const Integer &x, const Integer &e1, const Integer &y, const Integer &e2) const
		{return AbstractRing<Integer>::CascadeExponentiate(x, e1, y, e2);}

	void SimultaneousExponentiate(Element *results, const Element &base, const Integer *exponents, unsigned int exponentsCount) const
		{AbstractRing<Integer>::SimultaneousExponentiate(results, base, exponents, exponentsCount);}

private:
	Integer u;
	mutable SecAlignedWordBlock workspace;
};

NAMESPACE_END

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日日摸夜夜添夜夜添精品视频| 色婷婷亚洲综合| 成人av网站在线观看免费| 欧美午夜电影网| 国产免费成人在线视频| 日韩成人免费电影| 在线观看中文字幕不卡| 国产亚洲欧美日韩日本| 日韩国产成人精品| 91麻豆国产香蕉久久精品| 久久综合九色综合97_久久久| 亚洲一区视频在线| 成人性生交大片免费看视频在线| 日韩色视频在线观看| 一区二区三区在线观看欧美| 成人在线综合网| 久久久精品tv| 久久精品二区亚洲w码| 欧美日韩卡一卡二| 欧美国产日韩一二三区| 国产一二三精品| 日韩精品专区在线影院重磅| 亚洲6080在线| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 久久久91精品国产一区二区三区| 免费的国产精品| 51午夜精品国产| 亚洲18女电影在线观看| 色婷婷狠狠综合| 亚洲精品欧美专区| 色婷婷综合久久久久中文| 国产精品久久久久久久裸模| 国产精品一区二区无线| 久久久高清一区二区三区| 另类综合日韩欧美亚洲| 欧美一区二区三区视频在线| 亚洲图片欧美色图| 欧美日韩一级片网站| 亚洲18色成人| 日韩一区二区免费在线电影 | 欧美色倩网站大全免费| 亚洲欧美一区二区不卡| 91玉足脚交白嫩脚丫在线播放| 欧美激情综合在线| 成人高清视频在线| 亚洲麻豆国产自偷在线| 在线一区二区视频| 亚洲成人自拍网| 7777精品伊人久久久大香线蕉经典版下载| 性欧美疯狂xxxxbbbb| 欧美一区二区日韩| 国产一区二区主播在线| 久久精品综合网| 97久久精品人人爽人人爽蜜臀| 性久久久久久久久久久久| 欧美久久久久免费| 精久久久久久久久久久| 国产午夜亚洲精品午夜鲁丝片| 97精品久久久久中文字幕| 亚洲午夜久久久久| 日韩一级成人av| 成人激情免费网站| 亚洲一区二区美女| 久久久亚洲高清| 99精品视频一区| 美女视频黄免费的久久| 国产三级欧美三级日产三级99| 99国产精品久久| 蜜桃视频第一区免费观看| 国产欧美精品国产国产专区| 在线国产亚洲欧美| 国产精品99久久久| 性做久久久久久免费观看欧美| 久久久久久一级片| 欧美日韩色一区| 国v精品久久久网| 亚洲mv在线观看| 亚洲欧美自拍偷拍色图| 欧美精品少妇一区二区三区| 国产精品亚洲第一| 首页国产欧美日韩丝袜| 国产欧美一区二区三区沐欲| 欧美男人的天堂一二区| 成人免费看片app下载| 午夜欧美视频在线观看 | 一区二区三区高清不卡| 日韩免费观看高清完整版| av在线不卡电影| 精品在线免费观看| 婷婷国产v国产偷v亚洲高清| 国产精品久99| 国产欧美一区二区精品婷婷| 欧美另类z0zxhd电影| 26uuu国产日韩综合| 欧美日韩一区小说| 91免费观看视频在线| 国产一区二区三区四| 日韩激情中文字幕| 亚洲丰满少妇videoshd| 亚洲欧美成人一区二区三区| 久久精品人人做人人爽人人| 日韩一二三四区| 欧美久久免费观看| 欧美日本一区二区三区四区| 一本色道久久综合精品竹菊| 成人综合婷婷国产精品久久蜜臀| 国产一区欧美日韩| 久久激五月天综合精品| 日韩国产欧美视频| 日韩成人免费电影| 日本免费在线视频不卡一不卡二| 亚洲国产综合人成综合网站| 亚洲一区二区三区四区在线观看 | 成人av电影在线观看| 国产成人综合视频| 国产中文字幕精品| 国产一区二区视频在线| 国产真实乱对白精彩久久| 国产一区不卡精品| 成人午夜视频免费看| 日韩精品自拍偷拍| 精品日韩99亚洲| 精品国产乱码久久久久久1区2区 | 国产精品你懂的| 国产欧美一区二区三区在线老狼| 日本一区二区三区免费乱视频| 中文字幕第一页久久| 欧美国产禁国产网站cc| 亚洲欧美一区二区三区久本道91 | 中文字幕乱码日本亚洲一区二区| 欧美极品少妇xxxxⅹ高跟鞋 | 日韩av二区在线播放| 免费观看成人av| 国产福利电影一区二区三区| 成人涩涩免费视频| 在线免费观看成人短视频| 欧美日韩综合在线| 日韩欧美激情一区| 国产精品女同一区二区三区| 一区二区三区自拍| 肉丝袜脚交视频一区二区| 久久99精品视频| eeuss鲁一区二区三区| 91蜜桃婷婷狠狠久久综合9色| 欧洲视频一区二区| 欧美成人精品1314www| 久久久久久久久久美女| 一区二区三区日韩精品视频| 日韩精品欧美成人高清一区二区| 国产制服丝袜一区| 色悠久久久久综合欧美99| 欧美一区二区三区不卡| 日本一区二区综合亚洲| 亚洲国产一区二区三区青草影视| 韩国三级电影一区二区| 99re这里只有精品视频首页| 7878成人国产在线观看| 国产精品网友自拍| 日韩精品亚洲专区| 成人一级黄色片| 欧美精品一二三四| 欧美国产日韩一二三区| 天堂蜜桃一区二区三区| 国产91精品一区二区麻豆网站| 欧美高清视频www夜色资源网| 国产日韩视频一区二区三区| 亚洲va欧美va国产va天堂影院| 成人午夜视频在线观看| 日韩欧美精品在线视频| 亚洲欧美色综合| 国产很黄免费观看久久| 欧美一区二区三区思思人| 一区二区三区日韩| 成人午夜精品在线| 日韩精品资源二区在线| 婷婷中文字幕一区三区| 91香蕉视频mp4| 国产欧美日韩卡一| 久久www免费人成看片高清| 欧美日韩一区成人| 亚洲综合一区二区精品导航| 成人黄色软件下载| 26uuu成人网一区二区三区| 日韩成人一区二区| 欧美剧情片在线观看| 亚洲尤物视频在线| 色综合久久88色综合天天免费| 久久久久久久久久久久久女国产乱| 日韩电影在线免费观看| 欧美日韩三级一区| 亚洲小少妇裸体bbw| 一本到三区不卡视频| 国产精品天干天干在观线| 国产精品91一区二区| 久久女同精品一区二区| 国产在线不卡一区| 精品久久久久久综合日本欧美| 免费的成人av| 久久一日本道色综合| 精品一区二区影视|