def decrypt(self, ciphertext, key): plaintext = [] ciphertext = ciphertext.lower() ciphertext = cv.textToNum(ciphertext) for letter in ciphertext: plaintext.append((letter - key) % 26) return cv.numToText(plaintext)
def encrypt(self, plaintext, key): ciphertext = [] plaintext = plaintext.lower() plaintext = cv.textToNum(plaintext) for letter in plaintext: ciphertext.append((letter + key) % 26) return cv.numToText(ciphertext)
def encrypt(self, plaintext): ciphertext = [] result = [] key = [] #pretvori tekst u polje brojeva u rasponu 0-25 plaintext = cv.textToNum(plaintext) #za svaku vrijednost otvorenog teksta dodaj pseudonasumican broj u rasponu 0-25 for value in range(len(plaintext)): key.append(rand.randrange(0, 26)) #modularno zborji otvoreni tekst i kljuc ciphertext = self.modularAddition(plaintext, key) ciphertext = cv.numToText(ciphertext) result.append(ciphertext) result.append(cv.numToText(key)) return result
def calculateCipher(self, letter_vector, m): ciphertext = '' vector = [] buffer = 0 for value in range(len(letter_vector)): for col in range(m): for row in range(m): #pomnoži blok od m slova s matricom ključa buffer += int( (letter_vector[value][row] * self.key[col][row])) buffer %= 26 vector.append(buffer) buffer = 0 #pretvori izračunate vrijednosti bloka u tekst print(vector) ciphertext += cv.numToText(vector) print(ciphertext) vector = [] return ciphertext