Exemple #1
0
    def __init__(self,PPATCpp,g1,g2,h1):
        self.PPATCpp = PPATCpp
        self.g1 = g1 # in G1
        self.g2 = g2 # in G1
        self.h1 = h1 # in G2'
        #psi = self.PPATCpp.psi
        #self.hashf = None # Hash function to be implemented

        #assert g1.ECG == self.PPATCpp.Pair.ECG
        #assert g2.ECG == self.PPATCpp.Pair.ECG
        Jcoord = self.PPATCpp.Jcoord
        if Jcoord :
            self.g1.toJcoord()
            self.g2.toJcoord()
            self.h1.toJcoord()
        #assert psi(h1).ECG == self.PPATCpp.Pairing.EFqp

        w = 10
        m = len(utils.binn(self.PPATCpp.order))
        #m = 160
        d = int(math.ceil(float(m)/w))
        e = int(math.ceil(float(d)/2))

        # Precomputed tables to fasten the scalr multiplication with the generators
        self.precomp_g = oEC.prec_comb2_EFp2(w,m,self.PPATCpp.g,Jcoord),w,m,d,e
        self.precomp_h = oEC.prec_comb2_EFp(w,m,self.PPATCpp.h,Jcoord),w,m,d,e
        self.precomp_g1 = oEC.prec_comb2_EFp2(w,m,self.g1,Jcoord),w,m,d,e
        self.precomp_g2 = oEC.prec_comb2_EFp2(w,m,self.g2,Jcoord),w,m,d,e
        self.precomp_h1 = oEC.prec_comb2_EFp(w,m,self.h1,Jcoord),w,m,d,e


        self.to_fingerprint = ["PPATCpp","g1","g2","h1"]
        self.to_export = {"fingerprint": [],"value": ["PPATCpp","g1","g2","h1"]}
Exemple #2
0
    def __init__(self,PPATSpp,g1,h1,maxexp=16):
        self.PPATSpp = PPATSpp
        self.g1 = g1 # in G2'
        self.h1 = h1 # in G1
        self.maxexp = maxexp
        Jcoord = self.PPATSpp.Jcoord
        if Jcoord :
            self.g1.toJcoord()
            self.h1.toJcoord()

        self.ehg = self.PPATSpp.e(self.PPATSpp.h,self.PPATSpp.psi(self.PPATSpp.g),self.PPATSpp.Pair,Jcoord)
        self.ehgt = oEC.toTupleFp12(self.ehg) # tuple version of egh1

        #self.tripletsList = []

        #lkq = len(bin(self.h1.EFq.F.q))
        w = 10
        m = len(utils.binn(self.PPATSpp.order))
        #m = 160
        d = int(math.ceil(float(m)/w))
        e = int(math.ceil(float(d)/2))

        # Precomputed tables to fasten the scalr multiplication with the generators
        self.precomp_g = oEC.prec_comb2_EFp2(w,m,self.PPATSpp.g,Jcoord),w,m,d,e
        self.precomp_h = oEC.prec_comb2_EFp(w,m,self.PPATSpp.h,Jcoord),w,m,d,e
        self.precomp_g1 = oEC.prec_comb2_EFp2(w,m,self.g1,Jcoord),w,m,d,e
        self.precomp_h1 = oEC.prec_comb2_EFp(w,m,self.h1,Jcoord),w,m,d,e

        self.to_fingerprint = ["PPATSpp","g1","h1"]
        self.to_export = {"fingerprint": [],"value": ["PPATSpp","g1","h1"]}
Exemple #3
0
    def __init__(self,pairing,deg_pol,gVec=[],hVec=[],gprimeVec=[]):
        self.pairing = pairing
        self.Fr = field.Field(self.pairing.r)
        assert isinstance(self.pairing,pair.Pairing)
        self.deg_pol = deg_pol
        assert deg_pol > 0
        self.gVec = gVec
        self.hVec = hVec
        self.gprimeVec = gprimeVec
        self.gVecTab = []
        self.hVecTab = []
        self.gprimeVecTab = []
        
        self.w = 10
        self.m = len(utils.binn(self.pairing.r))
        self.d = int(math.ceil(float(self.m)/self.w))
        self.e = int(math.ceil(float(self.d)/2))
        self.Jcoord = True

        
        self.to_fingerprint = ["pairing","deg_pol","gVec","hVec","gprimeVec"]
        self.to_export = {"fingerprint": [],"value": ["pairing","deg_pol","gVec","hVec","gprimeVec"]}
Exemple #4
0
    def __init__(self, PPATCpp, g1, g2, h1):
        self.PPATCpp = PPATCpp
        self.g1 = g1  # in G1
        self.g2 = g2  # in G1
        self.h1 = h1  # in G2'
        #psi = self.PPATCpp.psi
        #self.hashf = None # Hash function to be implemented

        #assert g1.ECG == self.PPATCpp.Pair.ECG
        #assert g2.ECG == self.PPATCpp.Pair.ECG
        Jcoord = self.PPATCpp.Jcoord
        if Jcoord:
            self.g1.toJcoord()
            self.g2.toJcoord()
            self.h1.toJcoord()
        #assert psi(h1).ECG == self.PPATCpp.Pairing.EFqp

        w = 10
        m = len(utils.binn(self.PPATCpp.order))
        #m = 160
        d = int(math.ceil(float(m) / w))
        e = int(math.ceil(float(d) / 2))

        # Precomputed tables to fasten the scalr multiplication with the generators
        self.precomp_g = oEC.prec_comb2_EFp2(w, m, self.PPATCpp.g,
                                             Jcoord), w, m, d, e
        self.precomp_h = oEC.prec_comb2_EFp(w, m, self.PPATCpp.h,
                                            Jcoord), w, m, d, e
        self.precomp_g1 = oEC.prec_comb2_EFp2(w, m, self.g1,
                                              Jcoord), w, m, d, e
        self.precomp_g2 = oEC.prec_comb2_EFp2(w, m, self.g2,
                                              Jcoord), w, m, d, e
        self.precomp_h1 = oEC.prec_comb2_EFp(w, m, self.h1, Jcoord), w, m, d, e

        self.to_fingerprint = ["PPATCpp", "g1", "g2", "h1"]
        self.to_export = {
            "fingerprint": [],
            "value": ["PPATCpp", "g1", "g2", "h1"]
        }