Esempio n. 1
0
    def __init__(
        self,
        curvemodel,
        prime,
        formula,
        style,
        exponent,
        tuned,
        multievaluation,
        uninitialized,
        verbose,
    ):
        self.curvemodel = curvemodel
        self.prime = prime
        self.style = style
        self._exponent = exponent
        self.tuned = tuned
        self.uninitialized = uninitialized
        self.multievaluation = multievaluation
        self.params = attrdict(parameters['csidh'][prime])
        self.params.update(self.params[style])
        self.p_bytes = (self.params.p_bits + 8 - (self.params.p_bits % 8)) // 8

        if self.curvemodel == 'montgomery':
            self.isogeny = MontgomeryIsogeny(formula,
                                             uninitialized=self.uninitialized)
            self.curve = MontgomeryCurve(prime)
            self.field = self.curve.field
        else:
            self.curve = None
            raise NotImplemented

        self.formula = self.isogeny(self.curve, self.tuned,
                                    self.multievaluation)

        if self.style == 'df':
            self.gae = Gae_df(prime, self.tuned, self.curve, self.formula)
        elif self.style == 'wd1':
            self.gae = Gae_wd1(prime, self.tuned, self.curve, self.formula)
        elif self.style == 'wd2':
            self.gae = Gae_wd2(prime, self.tuned, self.curve, self.formula)
        else:
            self.gae = NotImplemented
Esempio n. 2
0
    def __init__(
        self,
        curvemodel,
        prime,
        formula,
        tuned,
        multievaluation,
        uninitialized,
        verbose
    ):

        self.params = attrdict(parameters['bsidh'][prime])
        self.p_bytes = (self.params.p_bits + (self.params.p_bits % 8)) // 8
        self.prime = prime
        self.tuned = tuned
        self.uninitialized = uninitialized
        self.multievaluation = multievaluation
        self.verbose = verbose

        random = SystemRandom()

        if curvemodel == 'montgomery':
            self.isogeny = MontgomeryIsogeny(formula, uninitialized = self.uninitialized)
            self.curve = MontgomeryCurve(prime)
            self.field = self.curve.field
            self.basefield = self.curve.field.basefield
        else:
            self.curve = None
            raise NotImplemented

        self.formula = self.isogeny(self.curve, self.tuned, self.multievaluation)

        if self.formula is not None and self.curve is not None:
            self.strategy = Strategy(prime, self.tuned, self.curve, self.formula)
        else:
            self.strategy = None
            raise NotImplemented