Beispiel #1
0
void PFC::random(G1& w)
{
	Big x0;
	if (RNG==NULL) x0=rand(*mod);
	else x0=strong_rand(RNG, *mod);

	while (!w.g.set(x0,x0)) x0+=1;
}
Beispiel #2
0
void PFC::random(G1& w)
{
	Big x0;
	if (RNG==NULL) x0=rand(get_modulus());
	else x0=strong_rand(RNG,get_modulus());

	while (!w.g.set(x0,x0)) x0+=1;
	w.g*=(*cof);
}
Beispiel #3
0
void PFC::random(G2& w)
{
	Big x0;
	if (RNG==NULL) x0=rand(*mod);
	else x0=strong_rand(RNG,*mod);

	*B=-(*B);
	ecurve((Big)-3,*B,*mod,MR_PROJECTIVE);  // move to twist
    while (!w.g.set(x0,x0)) x0+=1;
	w.g*=(*mod+1+*trace)/(*ord);
	*B=-(*B);
	ecurve((Big)-3,*B,*mod,MR_PROJECTIVE);  // move back
}
Beispiel #4
0
void PFC::random(G2& w)
{
    int i;
    ZZn2 X;
	Big x0;
 
	if (RNG==NULL) x0=rand(*mod);
    else x0=strong_rand(RNG, *mod);

    forever
    {
        x0+=1;
        X.set((ZZn)1,(ZZn)x0);
        if (!w.g.set(X)) continue;
        break;
    }

	map(w.g,*x,*frob);
}
Beispiel #5
0
void PFC::random(G2 &w)
{
    int i;
    ZZn3 XX;
	Big X=*x;
 
    Big x0;
	if (RNG==NULL) x0=rand(*mod);
	else x0=strong_rand(RNG,*mod);

    forever
    {
        x0+=1;
        XX.set((ZZn)0,(ZZn)x0,(ZZn)0);
        if (!w.g.set(X)) continue;
        break;
    }

	w.g=HashG2(w.g,X,*frob);
}
Beispiel #6
0
void PFC::rankey(Big& k)
{
	if (RNG==NULL) k=rand(S,2);
	else k=strong_rand(RNG,S,2);
}
Beispiel #7
0
void PFC::random(Big& w)
{
	if (RNG==NULL) w=rand(*ord);
	else w=strong_rand(RNG,*ord);
}
Beispiel #8
0
void PFC::random(Big& w)
{
	if (RNG==NULL) w=rand(2*S,2);
	else w=strong_rand(RNG,2*S,2);
}