Example #1
0
 def cmul_xor_ddt(self, F=None):
     if F is None:
         F = GF(self.insize, name='a')
     cxddt = matrix(ZZ, self.insize, self.outsize)
     for x in range(1, self.insize):
         for dx in range(2, self.insize):
             x2 = (F.fetch_int(x) *
                   F.fetch_int(dx)).integer_representation()
             y = self[x]
             y2 = self[x2]
             dy = y2 ^ y
             cxddt[dx, dy] += 1
     return cxddt
Example #2
0
 def xor_cmul_ddt(self, F=None):
     if F is None:
         F = GF(self.insize, name='a')
     xcddt = matrix(ZZ, self.insize, self.outsize)
     for x in range(self.insize):
         for dx in range(1, self.insize):
             x2 = x ^ dx
             y = self[x]
             y2 = self[x2]
             dy = (F.fetch_int(y2) * F.fetch_int(y)
                   **(self.outsize - 2)).integer_representation()
             xcddt[dx, dy] += 1
     return xcddt