コード例 #1
0
def generateKey(keySize):
    # Creates a public/private key pair with keys that are keySize bits in
    # size. This function may take a while to run.

    # Step 1: Create two prime numbers, p and q. Calculate n = p * q.
    print('Generating p prime...')
    p = rabinMiller.generateLargePrime(keySize)
    print('Generating q prime...')
    q = rabinMiller.generateLargePrime(keySize)
    n = p * q

    # Step 2: Create a number e that is relatively prime to (p-1)*(q-1).
    print('Generating e that is relatively prime to (p-1)*(q-1)...')
    while True:
        # Keep trying random numbers for e until one is valid.
        e = random.randrange(2 ** (keySize - 1), 2 ** (keySize))
        if cryptomath.gcd(e, (p - 1) * (q - 1)) == 1:
            break

    # Step 3: Calculate d, the mod inverse of e.
    print('Calculating d that is mod inverse of e...')
    d = cryptomath.findModInverse(e, (p - 1) * (q - 1))

    publicKey = (n, e)
    privateKey = (n, d)

    print('Public key:', publicKey)
    print('Private key:', privateKey)

    return (publicKey, privateKey)
コード例 #2
0
def generateKey(keySize):
    # Creates a public/private key pair with keys that are keySize bits in
    # size. This function may take a while to run.

    # Step 1: Create two prime numbers, p and q. Calculate n = p * q.
    print('Generating p prime...')
    p = rabinMiller.generateLargePrime(keySize)
    print('Generating q prime...')
    q = rabinMiller.generateLargePrime(keySize)
    n = p * q

    # Step 2: Create a number e that is relatively prime to (p-1)*(q-1).
    print('Generating e that is relatively prime to (p-1)*(q-1)...')
    while True:
        # Keep trying random numbers for e until one is valid.
        e = random.randrange(2 ** (keySize - 1), 2 ** (keySize))
        if cryptomath.gcd(e, (p - 1) * (q - 1)) == 1:
            break

    # Step 3: Calculate d, the mod inverse of e.
    print('Calculating d that is mod inverse of e...')
    d = cryptomath.findModInverse(e, (p - 1) * (q - 1))

    publicKey = (n, e)
    privateKey = (n, d)

    print('Public key:', publicKey)
    print('Private key:', privateKey)

    return (publicKey, privateKey)
コード例 #3
0
def generateKey(keySize):
    # Step 1: Create two prime numbers, p and q. Calculate n = p * q.
    print('Generating p prime...')
    p = rabinMiller.generateLargePrime(keySize)
    print('Generating q prime...')
    q = rabinMiller.generateLargePrime(keySize)
    n = p * q

    # Step 2: Create a number e that is relatively prime to (p-1)*(q-1).
    print('Generating e that is relatively prime to (p-1)*(q-1)...')
    while True:
        e = random.randrange(2 ** (keySize - 1), 2 ** (keySize))
        if cryptomath.gcd(e, (p - 1) * (q - 1)) == 1:
            break

    # Step 3: Calculate d, the mod inverse of e.
    print('Calculating d that is mod inverse of e...')
    d = cryptomath.findModInverse(e, (p - 1) * (q - 1))

    publicKey = (n, e)
    privateKey = (n, d)

    print('Public key:', publicKey)
    print('Private key:', privateKey)

    return (publicKey, privateKey)
コード例 #4
0
ファイル: inventRsa.py プロジェクト: anggaeka333/rsaCipher
def generateKey(keySize):
    #create pasangan public key dan private key
    #Step 1,generate bilangan prima , n = p * q
    print('Create bilangan prima p...')
    p = rabinMiller.generateLargePrime(keySize)
    print('Create bilangan prima q...')
    q =  rabinMiller.generateLargePrime(keySize)
    n = p * q
    
    #Step 2,generate bilangan e (relatif prima) dengan (p-1)*(q-1)
    print('Create e(relatif prima) ...')
    while True:
        #looping terus hingga di dapat bilangan e yang valid
        e = random.randrange(2 **(keySize-1), 2 ** (keySize))
        if cryptomath.gcd(e , (p-1)*(q-1)) == 1:
            break
        
    #Step 3,hitung d,mod inverse dari e
    print('Generate d,mod inverse e...')
    d = cryptomath.findModInverse(e, (p-1)&(q-1))
    
    publicKey = (n,e)
    privateKey = (n,d)
    
    print('Public key : ',publicKey)
    print('Private key : ',privateKey)
    
    return (publicKey,privateKey)
コード例 #5
0
ファイル: RSA.py プロジェクト: Edrasen/Cryptography
def generateKey(keySize):
    # Step 1: Create two prime numbers, p and q. Calculate n = p * q.
    print('Generating p prime...')
    p = rabinMiller.generateLargePrime(keySize)
    print('Generating q prime...')
    q = rabinMiller.generateLargePrime(keySize)
    n = p * q
    print("\nN is: " + str(n) + "\n")
    # Step 2: Create a number e that is relatively prime to (p-1)*(q-1).
    print('Generating e that is relatively prime to (p-1)*(q-1)...')
    while True:
        e = random.randrange(2**(keySize - 1), 2**(keySize))
        if cryptomath.gcd(e, (p - 1) * (q - 1)) == 1:
            break

    # Step 3: Calculate d, the mod inverse of e.
    print('Calculating d that is mod inverse of e...')
    d = cryptomath.findModInverse(e, (p - 1) * (q - 1))
    print("\nD is: ", d)  #Esta es la que se queda el propietario
    print("\nE is: ", e)  #Esta es la que se publica junto a n
    publicKey = (n, e)
    privateKey = (n, d)
    print('\nPublic key:', publicKey)
    print('\nPrivate key:', privateKey)
    return (publicKey, privateKey)
コード例 #6
0
ファイル: paillier.py プロジェクト: SuviSree/paillier
 def generateKey(self, keysize=1024):
     p = rabinMiller.generateLargePrime(keysize)
     q = rabinMiller.generateLargePrime(keysize)
     n = p * q
     g = n + 1
     lam = (p - 1) * (q - 1)
     mu = crypton.mod_inv(lam, n)
     return n, g, lam, mu
コード例 #7
0
ファイル: SkPk.py プロジェクト: Itachi666/BTC2ETC
def generate_pq():
    while True:
        i = rabinMiller.generateLargePrime()
        j = rabinMiller.generateLargePrime()
        inverse3 = getInverse(i, j)
        if (inverse3 != 0):
            break

    return i, j, inverse3
コード例 #8
0
ファイル: makeRsaKeys.py プロジェクト: HadXu/Cryptography
def generateRSAkey(keySize=1024):
    p = rabinMiller.generateLargePrime(keySize)
    q = rabinMiller.generateLargePrime(keySize)
    n = p * q

    while True:
        e = random.randrange(2**(keySize - 1), 2**(keySize))
        if cryptomath.gcd(e, (p - 1) * (q - 1)) == 1:
            break
    d = cryptomath.findModInverse(e, (p - 1) * (q - 1))

    publicKey = (n, e)
    privateKey = (n, d)

    return (publicKey, privateKey)
コード例 #9
0
def generateKey(keysize=1024):
    #############################
    p = rabinMiller.generateLargePrime(keysize)
    q = rabinMiller.generateLargePrime(keysize)
    n = p * q
    ################################
    while True:
        e = random.randrange(2**(keysize - 1), 2**keysize)
        if gcd(e, (p - 1) * (q - 1)) == 1:
            break
    ################################
    d = findModInverse(e, (p - 1) * (q - 1))
    ################################
    public_key = (n, e)
    private_key = (n, d)
    return (public_key, private_key)
コード例 #10
0
def generateKey(keySize):
    print('Generating p prime...')
    p = rabinMiller.generateLargePrime(keySize)
    print('Generating q prime...')
    q = rabinMiller.generateLargePrime(keySize)
    n = p * q
    print('Generating e that is relatively prime to (p-1)*(q-1)...')
    while True:
        e = random.randrange(2**(keySize - 1), 2**(keySize))
        if cryptomath.gcd(e, (p - 1) * (q - 1)) == 1:
            break
    print('Calculating d that is mod inverse of e...')
    d = cryptomath.findModInverse(e, (p - 1) * (q - 1))
    publicKey = (n, e)
    privateKey = (n, d)
    return (publicKey, privateKey)
コード例 #11
0
ファイル: keygen.py プロジェクト: toeybaa/CS531
def generateKey(size):
    p = rabinMiller.generateLargePrime(size)
    q = rabinMiller.generateLargePrime(size)
    n = p*q

    while True:
        e = random.randrange(2**(size-1), 2** (size))
        if Cryptomath.gcd(e, (p-1)*(q-1)) == 1:
            break

    d = Cryptomath.findModInverse(e, (p-1) * (q-1))
    publickey = (n,e)
    privatekey = (n,d)

    print('Public Key:',publickey)
    print('Private Key', privatekey)

    return (publickey,privatekey)
コード例 #12
0
def generateKey(keySize):
    p = rabinMiller.generateLargePrime(keySize)
    while True:
        q = rabinMiller.generateLargePrime(keySize)
        if p == q:
            continue
        break
    n = p * q

    while True:
        # Keep trying random numbers for e until one is valid.
        e = random.randrange(2**(keySize - 1), 2**(keySize))
        if cryptomath.gcd(e, (p - 1) * (q - 1)) == 1:
            break

    d = cryptomath.findModInverse(e, (p - 1) * (q - 1))

    publicKey = (n, e)
    privateKey = (n, d)

    return (publicKey, privateKey)
コード例 #13
0
def generateKey(keySize):
    # creates public and private key pair with keys that are keySize bits in size
    #

    # print('selecting prime number for p')

    # select prime number from list for p

    p = rabinMiller.generateLargePrime(keySize)
    # print('p is : ', p)

    # print('selecting prime number for q')

    q = rabinMiller.generateLargePrime(keySize)
    # print('q is : ', q)

    n = p * q

    # print('Generating e that is relatively prime to (p-1)*(q-1)')

    while True:
        e = random.randrange(2**(keySize - 1), 2**keySize)
        if rsahelp.gcd(e, (p - 1) * (q - 1)) == 1:
            break

    # Calcuates the d, the mod inverse of e

    # print('Calcuating d that is mod inverse of e...')
    d = rsahelp.findModInverse(e, (p - 1) * (q - 1))

    # print('d is : ', d)
    publicKey = (n, e)
    privateKey = (n, d)

    # print('Public key:', publicKey)
    # print('Private key:', privateKey)

    return (publicKey, privateKey)
コード例 #14
0
def r_num_generator(rSize):
    f = open("rsa_privkey.txt", "r")
    val = f.read()
    f.close()
    res = val.split(",")
    keysize = int(res[0])

    f = open("random_file.txt", "w")
    # rsize=8
    rsize = int(rSize)
    # split=(keysize-rsize)/8
    split = (keysize - rsize)

    n = rabinMiller.generateLargePrime(rsize)
    x = bin(n)[2:]
    res = (x * (split / rsize)) + x[:(split % rsize)]
    G = int(res, 2)
    f.write(str(rsize) + "," + str(n) + "," + str(G))
    f.close()
コード例 #15
0
ファイル: rsa_cipher.py プロジェクト: bsrinivasguptha/Ciphers
def twoPrimes():
    p = rabinMiller.generateLargePrime()
    q = rabinMiller.generateLargePrime()
    return p, q