Exemple #1
0
def main():
    print("=============== RSA DEMO =================")
    print("Bob chooses his public and secret keys")
    print("He starts by picking 2 n-bit prime numbers 'p' & 'q'")
    p = get_primenum()
    q = get_primenum()
    print("p: %d" % p)
    print("q: %d" % q)
    N = p * q
    x = (p - 1) * (q - 1)
    e = relative_prime(x)
    print("His public key is (N, e) where N = pq and e is relative prime"
          " to (p-1)(q-1)")
    print("(p-1)*(q-1): ", x)
    print("N: ", N)
    print("e: ", e)
    print("His secret key is 'd', inverse of e modulo (p-1)(q-1)")
    d = inverse_modulo(e, x)
    print("Secret key d: ", d)

    y = send_message(e, N)
    print("Encoded mesage Y: ", y)
    print("Finally Bob decodes the message by computing y^d mod N")
    msg = modular_exp(y, d, N)
    print("Decoded message M: ", msg)
Exemple #2
0
def main():
    print ("=============== RSA DEMO =================")
    print ("Bob chooses his public and secret keys")
    print ("He starts by picking 2 n-bit prime numbers 'p' & 'q'")
    p = get_primenum()
    q = get_primenum()
    print ("p: %d" % p)
    print ("q: %d" % q)
    N = p * q
    x = (p-1) * (q-1)
    e = relative_prime(x)
    print("His public key is (N, e) where N = pq and e is relative prime"
          " to (p-1)(q-1)")
    print ("(p-1)*(q-1): ", x)
    print ("N: ", N)
    print ("e: ", e)
    print ("His secret key is 'd', inverse of e modulo (p-1)(q-1)")
    d = inverse_modulo(e, x)
    print ("Secret key d: ", d)

    y = send_message(e, N)
    print ("Encoded mesage Y: ", y)
    print ("Finally Bob decodes the message by computing y^d mod N")
    msg = modular_exp(y, d, N)
    print ("Decoded message M: ", msg)
Exemple #3
0
def checkinverses(n):
    count = 0
    for i in range(1, n + 1):
        inv = inverse_modulo(i, n)
        if inv is not None:
            count += 1
    return count
Exemple #4
0
def checkinverses(n):
    count = 0
    for i in range(1, n + 1):
        inv = inverse_modulo(i, n)
        if inv is not None:
            count += 1
    return count