Subversion Repositories Code-Repo

Compare Revisions

Ignore whitespace Rev 139 → Rev 140

/Classwork/MATH4175 - Cryptography 1/LFSR.py
0,0 → 1,25
if __name__ == '__main__':
arrays = [
[0,0,0,0,0],[0,0,0,0,1],[0,0,0,1,0],[0,0,0,1,1],
[0,0,1,0,0],[0,0,1,0,1],[0,0,1,1,0],[0,0,1,1,1],
[0,1,0,0,0],[0,1,0,0,1],[0,1,0,1,0],[0,1,0,1,1],
[0,1,1,0,0],[0,1,1,0,1],[0,1,1,1,0],[0,1,1,1,1],
[1,0,0,0,0],[1,0,0,0,1],[1,0,0,1,0],[1,0,0,1,1],
[1,0,1,0,0],[1,0,1,0,1],[1,0,1,1,0],[1,0,1,1,1],
[1,1,0,0,0],[1,1,0,0,1],[1,1,0,1,0],[1,1,0,1,1],
[1,1,1,0,0],[1,1,1,0,1],[1,1,1,1,0],[1,1,1,1,1]]
 
# Iterate through each possible initialization vector
for array in arrays:
# Calculate the resulting array up to 64 places
for i in range(200):
array.append((array[i] + array[i+1]) % 2)
 
# Find equal consecutive arrays
for period in range(5,100):
array1 = array[0:period]
array2 = array[period:2*period]
# If match, print out array and period
if array1 == array2:
print array[0:5], '=', array1, "; Period =", period
break