# -*- coding: utf-8 -*- import sys sys.path.append( "BitVector-3.0/" ) import BitVector #Salaus def salaa(data, key): xorred = data^key # data XOR key matrix = [[0 for col in range(8)] for row in range(8)]#8*8 matriisi alustettu nollilla #Kopioidaan XOR-lopputulos matriisiin index=0 for i in range (8): for j in range (8): matrix[i][j]=xorred[index] index=index+1 shuffled = BitVector.BitVector(size = 64)#BitVector salatulle tiedolle #Kopioidaan matriisin sisältö bitvectoriin alkaen oikeasta yläkulmasta index=0 for i in range (8): for j in range (8): shuffled[index]=matrix[j][7-i] index=index+1 return shuffled #Palautetaan salattu data #Avaus def avaa(data, key): matrix2 = [[0 for col in range(8)] for row in range(8)]#8*8 matriisi alustettu nollilla #Kopioidaan salattu tieto matriisiin index=0 for i in range (8): for j in range (8): matrix2[i][j]=data[index] index=index+1 deshuffled = BitVector.BitVector(size = 64) #Kopioidaan tiedot matriisista bitvectoriin palauttaen alkuperäisen bittijärjestyksen index=0 for i in range (8): for j in range (8): deshuffled[index]=matrix2[7-j][i] index=index+1 return deshuffled^key #Tehdään bitvectorille ja avaimelle XOR ja palautetaan tulos #Pääohjelma x = input("Anna salattava luku: ") data = BitVector.BitVector( intVal = int(x), size = 64) x = input("Anna avain: ") key = BitVector.BitVector( intVal = int(x), size = 64) salattu=salaa(data, key) print "Salattu " + str(salattu) print "int-arvo " + str(int(salattu)) avattu=avaa(salattu, key) print "Avattu= " + str(avattu) print "int-arvo " + str(int(avattu))