Kryptografie 2 Laboraufgaben

Computerlabor   14.05.2025

Aufgabe 9:  (Python-Klasse Poly zum Rechnen im Erweiterungskoerper 𝔽2m)

Nehmen Sie sich die Python-Klasse ModInt zur Vorlage und schreiben Sie eine Klasse Poly in folgender Weise:

# repraesentiert ein Polynom als Element von F_2^m,
# dem Erweiterungskoerper mit 2^m Elementen,
# und stellt die Grundrechenoperationen zur Verfuegung
class Poly(object):

    # irreduzibles Polynom z ist Klassenattribut (statisches Attribut),
    # muss vor Beginn der Berechnungen gesetzt werden
    # z.B. Poly.z=Poly("0011"),
    # dabei die fuehrende 1 des irreduziblen Polynoms 10011 weglassen

    def __init__(self, a):
        self.a=a   # a enthaelt den Bitstring, der das Polynom repraesentiert

     # gibt das Nullpolynom zurueck
    @staticmethod
    def zero():
        return Poly.z+Poly.z

    # addiert die Polynome self und other und gibt ein Objekt vom Typ Poly zurueck
    def __add__(self, other):
    
    # multipliziert das Polynom self mit x modulo z und gibt ein Objekt vom Typ Poly zurueck
    def mulx(self):

    # multipliziert die Polynome self und other und gibt ein Objekt vom Typ Poly zurueck
    def __mul__(self, other):

    def __str__(self):
        return self.a

if __name__ == "__main__":
    Poly.z=Poly("0011")
    p=Poly("0101")
    q=Poly("1101")
    r=p*q
    print(r)


 

 

 

 

[up]

 


H.W. Lang   mail@hwlang.de   Impressum   Datenschutz
Diese Webseiten sind größtenteils während meiner Lehrtätigkeit an der Hochschule Flensburg entstanden