当前位置: 首页>>代码示例>>C++>>正文


C++ ECn2::norm方法代码示例

本文整理汇总了C++中ECn2::norm方法的典型用法代码示例。如果您正苦于以下问题:C++ ECn2::norm方法的具体用法?C++ ECn2::norm怎么用?C++ ECn2::norm使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ECn2的用法示例。


在下文中一共展示了ECn2::norm方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1:

ECn2 HashG2(ECn2 &Qx0, Big &x, ZZn2 &X){
//vector=[ 1, 2, 4 ]
  ECn2 r;
  ECn2 xA;
  ECn2 xB;
  ECn2 xC;
  ECn2 t0;
  ECn2 Qx0_;
  ECn2 Qx1;
  ECn2 Qx1_;
  ECn2 Qx2;
  ECn2 Qx2_;
  ECn2 Qx3;
  ECn2 Qx3_;

  Qx0_=-(Qx0);
  Qx1=x*Qx0;
  Qx1_=-(Qx1);
  Qx2=x*Qx1;
  Qx2_=-(Qx2);
  Qx3=x*Qx2;
  Qx3_=-(Qx3);

  xA=Qx0;
  xB=Qx0;
  t0=xA+xB;
  xB=psi(Qx1,X,2);

  t0=t0+xB;
  t0+=t0;
  xB=Qx1_;
  xC=Qx2_;

  xB+=xC;
  xC=Qx3;
  xB+=xC;
  xC=psi(Qx0,X,1);
  xB+=xC;
  xC=psi(Qx1_,X,1);
  xB+=xC;
  xC=psi(Qx2_,X,1);
  xB+=xC;
  xC=psi(Qx3,X,1);
  xB+=xC;
  xC=psi(Qx0_,X,2);
  xB+=xC;
  xC=psi(Qx2_,X,2);
  xB+=xC;
  xB.norm();
  t0=t0+xB;

r=t0;
r.norm();
return r;

}
开发者ID:J0s3f,项目名称:FiSH-irssi,代码行数:56,代码来源:ake12blsa.cpp

示例2: mul

ECn2 mul(Big& a,ECn2& P,Big& b,ECn2& Q)
{
    ECn2 R;
    ecn2_mul2_jsf(a.getbig(),&(P.fn),b.getbig(),&(Q.fn),&(R.fn));
	R.norm();
    return R;
}
开发者ID:ferozsalam,项目名称:FYP,代码行数:7,代码来源:ecn2.cpp

示例3: ecap

BOOL ecap(ECn2& P,ECn& Q,Big& x,ZZn2 &X,ZZn12& r)
{
    BOOL Ok;
    Big xx,yy;
    ZZn Qx,Qy;

    P.norm();
    Q.get(xx,yy); Qx=xx; Qy=yy;

    Ok=fast_pairing(P,Qx,Qy,x,X,r);

    if (Ok) return TRUE;
    return FALSE;
}
开发者ID:stoneskill,项目名称:mix-O_AllWin,代码行数:14,代码来源:ake12bnx.cpp

示例4: cofactor

void cofactor(ECn2& S,ZZn2 &F,Big& x)
{
	ECn2 T,K;
	T=S;
	T*=x;
	T.norm();
	K=(T+T)+T;
	K.norm();
	q_power_frobenius(K,F);
	q_power_frobenius(S,F); q_power_frobenius(S,F); q_power_frobenius(S,F); 
	S+=T; S+=K;
	q_power_frobenius(T,F); q_power_frobenius(T,F);
	S+=T;
	S.norm();
}
开发者ID:stoneskill,项目名称:mix-O_AllWin,代码行数:15,代码来源:ake12bnx.cpp

示例5: map

void map(ECn2& S,Big &x,ZZn2 &F)
{
	ECn2 T,K;
	T=S;
	T*=x; // one multiplication by x only
	T.norm();
	K=(T+T);
	K+=T;
	K.norm();
	q_power_frobenius(K,F);
	q_power_frobenius(S,F); q_power_frobenius(S,F); q_power_frobenius(S,F); 
	S+=T; S+=K;
	q_power_frobenius(T,F); q_power_frobenius(T,F);
	S+=T;
	S.norm();
}
开发者ID:BingyZhang,项目名称:CommutEnc,代码行数:16,代码来源:bn_pair.cpp

示例6:

ECn2 mul4(ECn2* P,const Big* b)
{
    int i,n=4;
	ECn2 R;
	big x[4];
	ecn2 p[4];
    
    for (i=0;i<n;i++)
	{
		x[i]=b[i].getbig();
		p[i]=P[i].fn;
	}

	ecn2_mult4(x,p,&(R.fn));

	R.norm();
	return R;
}
开发者ID:BingyZhang,项目名称:CommutEnc,代码行数:18,代码来源:ecn2.cpp

示例7: precomp_for_mult

int PFC::precomp_for_mult(G2& w,BOOL small)
{
	ECn2 v;
	ZZn2 x,y;
	int i,j,k,bp,is,t;
	if (small) t=MR_ROUNDUP(2*S,WINDOW_SIZE);
	else       t=MR_ROUNDUP(bits(*ord),WINDOW_SIZE);
	w.g.norm();
	v=w.g;
	w.mtable=new ECn2[1<<WINDOW_SIZE];
	w.mtable[1]=v;
	w.mtbits=t;
	for (j=0;j<t;j++)
        v+=v;
    k=1;
    for (i=2;i<(1<<WINDOW_SIZE);i++)
    {
        if (i==(1<<k))
        {
            k++;
			v.norm();
			w.mtable[i]=v;     
            for (j=0;j<t;j++)
				v+=v;
            continue;
        }
        bp=1;
        for (j=0;j<k;j++)
        {
            if (i&bp)
			{
				is=1<<j;
				w.mtable[i]+=w.mtable[is];
			}
            bp<<=1;
        }
        w.mtable[i].norm();
    }
	return (1<<WINDOW_SIZE);
}
开发者ID:BingyZhang,项目名称:CommutEnc,代码行数:40,代码来源:bn_pair.cpp

示例8: cofactor

void cofactor(ECn2& S,ZZn2 &F,Big& t)
{
    ZZn2 x,y,w,z;
    ECn2 K,T;

    K=S;
	z=F;
	w=F*F;
    S.get(x,y);
    x=w*conj(x);
    y=z*w*conj(y);
    S.set(x,y);
    x=w*conj(x);
    y=z*w*conj(y);
    T.set(x,y);

    S+=K;
    S*=t;

    S-=T;
    S-=K;
	S.norm();
}
开发者ID:asgene,项目名称:sm2,代码行数:23,代码来源:ake12bnx.cpp

示例9: cofactor

void cofactor(ECn2& S,ZZn2 &F,Big& t)
{
    ZZn2 x,y,w,z;
    ZZn6 h,l,W;
    ECn2 K,T;

    K=S;
	z=F;
	w=F*F;
    S.get(x,y);
    x=w*conj(x);
    y=z*w*conj(y);
    S.set(x,y);
    x=w*conj(x);
    y=z*w*conj(y);
    T.set(x,y);

    S+=K;
    S*=t;

    S-=T;
    S-=K;
	S.norm();


// First "untwist" the point A to (X,Y) where X,Y in F_p^{12}

/*
    K=S;
    ZZn12 X,Y,X2,Y2;
    S.get(x,y);

    h.clear();
    l.set1(x);
    X.set(l,h);

    l.clear();
    h.set1(y);
    Y.set(l,h);


// Apply the Frobenius..
    X.powq(F);
    Y.powq(F);

    X2=X; X2.powq(F);
    Y2=Y; Y2.powq(F);

// Now "twist" it back to S

    X.get(l,h);
    l.get1(x);

    Y.get(l,h);
    h.get1(y);
    S.set(x,y);

// untwist unto T

    X2.get(l,h);
    l.get1(x);

    Y2.get(l,h);
    h.get1(y);

    T.set(x,y);

    S+=K;
    S*=t;
    S-=T;
    S-=K;
*/
}
开发者ID:BingyZhang,项目名称:CommutEnc,代码行数:73,代码来源:ake12bnr.cpp


注:本文中的ECn2::norm方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。