Exemple #1
0
 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)
Exemple #2
0
 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)
Exemple #3
0
    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
Exemple #4
0
    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