pyecsca.ec.mod.raw module

class RawMod(x, n)[source]

Bases: Mod

An element x of ℤₙ (implemented using Python integers).

x: int[source]
n: int[source]
bit_length()[source]

Compute the bit length of this element (in its positive integer representation).

Returns:

The bit-length.

inverse()[source]

Invert the element.

Return type:

RawMod

Returns:

The inverse.

Raises:

NonInvertibleError if the element is not invertible.

is_residue()[source]

Whether this element is a quadratic residue (only implemented for prime modulus).

sqrt()[source]

Compute the modular square root of this element (only implemented for prime modulus).

Uses the Tonelli-Shanks algorithm.

Return type:

RawMod

classmethod random(n)[source]

Generate a random Mod in ℤₙ.

Parameters:

n (int) – The order.

Return type:

Mod

Returns:

The random Mod.