コード例 #1
0
ファイル: rsa.py プロジェクト: hellman/cry
 def polyring(self, n=None, names=None):
     if isinstance(names, str):
         assert n is None
         names = names.replace(",", " ").split()
     elif isinstance(names, (tuple, list)):
         assert n is None
     else:
         if n is None:
             n = 1
         assert names is None
         names = list("xyzwuv")[:n]
     PR = PolynomialRing(Zmod(self.n), names=",".join(names))
     return (PR, ) + tuple(PR.gens())
コード例 #2
0
def power(e, n=None, field=None):
    assert (n is not None) ^ (field is not None)
    field = field or GF(2**n, name='a')
    x = PolynomialRing(field, names='x').gen()
    return SBox2(x**e)
コード例 #3
0
ファイル: sbox2.py プロジェクト: adelapie/cry
 def get_x(cls, n=None, field=None):
     assert (n is not None) ^ (field is not None)
     field = field or GF(2**n, name='a')
     return PolynomialRing(field, names='x').gen()
コード例 #4
0
ファイル: __init__.py プロジェクト: hellman/cry
def all_irreducible_polynomials(N, p=2):
    FR = PolynomialRing(GF(p), names=("X", ))
    for poly in FR.polynomials(of_degree=N):
        if poly.is_irreducible():
            yield poly