713-20 guruh talabasi Fayzullayev Farhodning amaliy ishi 6- amaliy ish
Mavzu: N bitli skremblerni qurish va davrini hisoblash Ishdan maqsad: skrembler qurish va davrini hisoblash bo‘yicha nazariy va amaliy bilim ko‘nikmaga ega bo‘lish.
Skrembler: + +1
FFS = 101100011010001
Dastur kodi:
matn = 'nsb'
def firstkey(matn,bin_alp):
ochiqm = ''
key = ''
data = []
tcheck = True
t=''
for id in range(len(matn)):
ochiqm +=bin_alp[matn[id]]
n = ochiqm[:]
print('Berilgan ochiq matn : ',n)
for i in range(2**15):
key = ''
for idx in list(range(len(n))):
z = int(ochiqm[-12]) ^ int(ochiqm[-6]) ^ int(ochiqm[-4]) ^
int(ochiqm[-1])
key += ochiqm[-1]
# print(key)
if idx != len(ochiqm)-1:
ochiqm = str(z) + ochiqm[:-1]
# print(idx,' - ',ochiqm)
if key in data:
if tcheck:
print(data.index(key), '- indeksli kalit qaytariladi.')
print(len(data), '- elementdan takrorlanishni boshlaydi ya`ni
davri',len(data),' ga teng bo`ladi!')
t=len(data)
tcheck=False