예제 #1
0
def KeyGenerator(password):  #generiert das Keypaar aus einem Passwort mit sha3
    P = [
        Decimal(1763), Decimal(YCalc(1763))
    ]  #Jan: P0 -> kurze Zahl; P1 -> lange Zahl mit Komma nach ca. 7 Stellen
    Privat = int(KeyGen.KeyGen(password), 16)
    Public = (multiplikation(P, Privat))
    return Privat, Public
예제 #2
0
def ElGamalDecrypt(cipher, password):
    C = [0, 0]
    C[0] = Decimal(cipher.split('v')[0])
    zwischenwert = cipher.split('v')[1]
    C[1] = Decimal(zwischenwert.split('u')[0])
    d = Decimal(zwischenwert.split('u')[1])
    x = int(KeyGen.KeyGen(password), 16)
    c1 = multiplikation(C, x)[0]
    m1 = str(d / c1 % prim + 1)
    m1 = m1.split('.')
    m1 = int(m1[0])
    output = UTF8.UTFdeConvert(m1)
    return output
예제 #3
0
def KeyGenerator(password):
    P = [Decimal(3), Decimal(YCalc(3))]
    Privat = int(KeyGen.KeyGen(password), 16)
    Public = multiplikation(P, Privat)
    return Privat, Public
예제 #4
0
    if n == 0:
        r = []
        r.append(0)
        r.append(0)
        return r
    if n % 2 == 1 and n != 1:
        zwischenwert = multiplikation(p, n - 1)
        r = additionMG(p, zwischenwert)
        return r
    if n == 1:
        return p


x = int(
    KeyGen.KeyGen(
        'das ist das passwort, welches zu kurz ist, du lappen, anscheinen sei er immernoch zu kurz. ich meine jetzt ernsthaft?'
    ), 16)


def ElGamal(text, Key):
    m = int(UTF8.UTFConvert(text))
    print(type(m))
    k = random.randint(0, 100)
    P = [Decimal(3), Decimal(YCalc(3))]

    Y = multiplikation(P, x)

    c = multiplikation(Y, k)[0]
    Px = 3
    C = multiplikation(P, k)
    d = c * m % prim