Aufgabe 12:
- Verwenden Sie die Klasse Matrix aus Aufgabe 11, um die LWE-Verschlüsselung mit dem dort angegebenen Zahlenbeispiel auszuprobieren.
- Schreiben Sie in der Klasse Matrix noch eine Methode transpose, um eine Matrix zu transponieren.
- Schreiben Sie Funktionen encode und decode, um ein Klartextbit als Zahl aus ℤq zu codieren und um eine Zahl aus ℤq wieder zu decodieren.
- Stellen Sie beim LWE-Verfahren auftretenden Spaltenvektoren als m×1-Matrizen dar, ferner die Zahlenwerte e' und m' als 1×1-Matrizen, sodass Sie durchgängig mit Matrix-Operationen rechnen.
if __name__=="__main__":
from ModInt import *
ModInt.n=17
print("Schluessel erzeugen")
a=makeModIntMatrix([[5,10,8], [2,1,8], [12,12,3], [11,4,16], [12,7,6]])
print("a=")
a.out()
s=makeModIntMatrix([[-2],[1],[1]])
print("s=")
s.out()