コード例 #1
0
ファイル: primeTest.py プロジェクト: WuHarry/Netrsa
def primeTest(n):
    q = n - 1
    k = 0
    # Find k, q, satisfied 2^k * q = n - 1
    while q % 2 == 0:
        k += 1
        q /= 2
    a = random.randint(2, n - 2);
    # If a^q mod n= 1, n maybe is a prime number
    if fastExpMod(a, q, n) == 1:
        return "inconclusive"
    # If there exists j satisfy a ^ ((2 ^ j) * q) mod n == n-1, n maybe is a prime number
    for j in range(0, k):
        if fastExpMod(a, (2 ** j) * q, n) == n - 1:
            return "inconclusive"
    # a is not a prime number
    return "composite"
コード例 #2
0
ファイル: mainRsa.py プロジェクト: WuHarry/Netrsa
def decryption(C, d, n):
    # RSA M = C^d mod n
    return fastExpMod(C, d, n)
コード例 #3
0
ファイル: mainRsa.py プロジェクト: WuHarry/Netrsa
def encryption(M, e, n):
    # RSA C = M^e mod n
    return fastExpMod(M, e, n)