Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from sage.all import *
- class Encrypter(object):
- publicKey = []
- """docstring for ClassName"""
- def __init__(self, baseNumber):
- super(Encrypter, self).__init__()
- self.baseNumber = baseNumber
- self.privateKey = 0
- self.sum = 0
- self.generatePrivateKey()
- self.generatePublicKey()
- def generatePrivateKey(self):
- flag = False
- while flag == False:
- privateKey = randrange(10000, 2147483648)
- if gcd(privateKey, self.baseNumber) == 1:
- flag = True
- self.privateKey = privateKey
- def generatePublicKey(self):
- count = 100
- sum = 0
- for i in xrange(0, count):
- e = randrange(2147483648) % self.baseNumber
- mult = randrange(2,5)
- aKey = self.privateKey * mult + e * self.baseNumber
- sum += aKey
- self.publicKey.append(aKey)
- self.sum = sum
- def encrypt(self, openText):
- b = 0
- randomValue = 0
- for i in xrange(0,100):
- randomValue = randrange(0,2)
- if randomValue == 1:
- b = b + self.publicKey[i]
- cipherText = b + openText
- return cipherText
- def decrypt(self, cipherText):
- while cipherText < 0:
- cipherText += self.privateKey
- openText = cipherText % self.privateKey
- return openText % self.baseNumber
- #main
- encrypter = Encrypter(3000)
- number1 = 30
- number2 = 50
- code1 = encrypter.encrypt(number1)
- print(code1)
- code2 = encrypter.encrypt(number2)
- print(code2)
- resultCode = code1 + code2
- print(resultCode)
- resultNumber = encrypter.decrypt(resultCode)
- print(resultNumber)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement