forked from durashi/FPGA-based-CBC-encryptor-and-decryptor
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathencoder.py
37 lines (30 loc) · 922 Bytes
/
encoder.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import binascii
message = input("enter message: ")
asciiMessage = bin(int(binascii.hexlify(message.encode("ascii")), 16))
print("input byte stream: ", asciiMessage)
def registerize(bitStream,regName,seqNumber):
cleanStream = bitStream[2:]
regName = cleanStream[seqNumber*8:(seqNumber+1)*8]
return(regName)
def xor(x, y):
ans = ""
for i in range(len(x)):
if x[i] == "0" and y[i] == "1" or x[i] == "1" and y[i] == "0":
ans += "1"
else:
ans += "0"
return ans
def encode(bitStream):
buffer = []
seqNumber = 0
regA = '00000000'
regC = '00000000'
while (regA!=''):
regA = registerize(bitStream,regA,seqNumber)
regB = xor(regA,regC)
regC = regB[3:]+regB[:3]
buffer.append(regC)
seqNumber +=1
return (buffer)
encodedMessage = encode(asciiMessage)
print("encoded byte stream: ",encodedMessage)