# -*- 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))
Last modified: 2013/07/01 14:42