Пример #1
0
void unshuffle(ZZn6 &S,ZZn3 &first,ZZn3 &second)
{ // unshuffle a ZZn6 into two ZZn3's 
	ZZn x0,x1,x2,x3,x4,x5;
	ZZn2 t0,t1,t2;
	S.get(t0,t1,t2);
	t0.get(x0,x3);
	t1.get(x1,x4);
	t2.get(x2,x5);
	first.set(x0,x2,x4);
	second.set(x1,x3,x5);
}
Пример #2
0
ZZn3 txd(const ZZn3& w)
{
    ZZn3 u;
    ZZn wa,wb,wc;
    w.get(wa,wb,wc);

    u.set(wb,wc,(wa/get_mip()->cnr));

    return u;
}
Пример #3
0
void PFC::hash_and_map(G2& w,char *ID)
{
    int i;
    ZZn3 XX;
	Big X=*x;
 
    Big x0=H1(ID);
    forever
    {
        x0+=1;
        XX.set((ZZn)0,(ZZn)x0,(ZZn)0);
        if (!w.g.set(XX)) continue;
        break;
    }
	w.g=HashG2(w.g,X,*frob);
}
Пример #4
0
ECn3 hash_and_map3(char *ID)
{
    int i;
    ECn3 S;
    ZZn3 X;
 
    Big x0=H1(ID);
    forever
    {
        x0+=1;
        X.set((ZZn)0,(ZZn)x0,(ZZn)0);
        if (!S.set(X)) continue;
        break;
    }
  
    return S;
}     
Пример #5
0
void PFC::random(G2 &w)
{
    int i;
    ZZn3 XX;
	Big X=*x;
 
    Big x0=rand(*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);
}