Напишите программу реализаций генераций случайного сигнала методом Фиббоначи для маскировки информационного сигнала.



Зашифруйте данный текст «государство и власть», используя метод Цезаря при g=6. Приведите листинг программы на языке Матлаб. Шифр: clear clc   slovo = ' государство и власть'; alpha = ' абвгдежзийклмнопрстуфхцчышщьъэюя';   key = 'турист'; keys = ''; for i = 1:length(key) state = 1; for j = 1:length(keys)    if keys(j) == key(i)        state = 0;    end end if state == 1    keys(end+1) = key(i); end end keys % key1 = unique(key)   m=length(key); q = 6; k=1; keyword=keys;   for i =1:33 if (keyword~=alpha(i))         keyword(end+1) = alpha(i);     end end    keyword a=32-(q-1); kluch = ''; for i = a:33 kluch(end+1) = keyword(a); a=a+1; end kluch x=1; for i = (q+1):33; kluch(end+1) = keyword(x); x=x+1; end kluch answer = ''; for i = 1:length(slovo) for j = 1:length(alpha)    if alpha(j) == slovo(i)        answer(end+1) = kluch(j);                end end end answer  

Возьмите в качестве ключа слово «регистр» и зашифруйте текст «защита информаций» методом простой перестановки с ключом. Напишите листинг программы на языке Матлаб.

Шифр:

slovo='защитаинформации ';

key='регистр';

y=sort(key);

 

L1=length(key);

L2=3;

L=length(slovo);

k=1;

for i=1:L1

   a=find(y==key(1,i));

   for j=1:L2

       A(j,a)=slovo(k);

       k=k+1;

   end

end

A

B=A';

shifr=B(:)'

shifr=B(:)'

 

Дешифр:

slova='ииозаинтрац фамщи ';

key='регистр';

y=sort(key);

 

L1=length(key);

L2=3;

k=0;

for i=1:L2

   for j=1:L1

       a=find(key==y(1,j));

       k=k+1;

       A(i,a)=slova(k);

   end

end

A

shifr=A(:)'

В ключ-слове «рекурсия имеются повторяющиеся буквы. На языке Матлаб приведите листинг программы удаляющий повторяющуюся букву.

key = 'рекурсия';

keys = '';

for i = 1:length(key)

state =  1;

for j = 1:length(keys)

   if keys(j) == key(i)

       state = 0;

   end

end

if state == 1

   keys(end+1) = key(i);

end

end

keys

Как много сделано ошибок» приведите все возможные ключи для данного текста при простой перестановке. Напишите листинг программы на языке Матлаб использующий один вариант ключа и зашифруйте текст. (не точная программа)

Шифр:

slovo='гарри поттер и кубок огня';

key='хогвартс';

y=sort(key);

 

L1=length(key);

L2=3;

L=length(slovo);

k=1;

for i=1:L1

   a=find(y==key(1,i));

   for j=1:L2

       A(j,a)=slovo(k);

       k=k+1;

   end

end

A

B=A';

shifr=B(:)'

shifr=B(:)'


33. Используя магический квадрат размером 5х5 зашифруйте любой текст. Приведите листинг программы на языке Матлаб.

 

Шифр:

slovo = 'этозеленоеяблокомейрамгул';

m = magic(5)

 

for i = 1:5

for j=1:5

A(i,j) = slovo(m(i,j));

end

end

A

D=A(:)'

 

 

Дешифр:

 

slovo = 'незеянелбаэелзаноерткокоо';

m=magic(5);

y=sort(m(:));

 

for i = 1:25

A(i) = slovo(m==y(i));

end

34. Заданы ключи для двойной перестановки {2134,3214} зашифруйте любой текст. Приведите листинг программы на языке Матлаб.

clear

clc

a='прилетаювосьмого';

key1='2134';

key2='3214';

k=1;

for i=1:4

for j=1:4

A(i,j)=a(k);

k=k+1;

end

end

k1=sort(key1);

k2=sort(key2);

for w=1:4

for t=1:4

   if k1(w)==key1(t)

       AA(:,w)=A(:,t);

   end

end

end

for w=1:4

for t=1:4

   if k2(w)==key2(t)

       AA2(w,:)=AA(t,:);

   end

end

end

P=AA2(:)'

 

P =

Тороюольагисемпв

35. Заданы коэффициенты аффинной подстановки Цезаря а=5, b=3. Зашифруйте текст «персональный компьютер!». Приведите листинг программы на языке Матлаб. (не точная программа)

slovo = ‘персональный компьютер’;

alpha = 'абвгдежзийклмнопрстуфхцчышщьъэюя';

n = length(alpha);

a=5;

b=3;

k = [];

keyword = '';

for i = 0:31

k = a*i+b;

if (32<=k)&&(k<=63)

k = k-n;

end

if (64<=k)&&(k<=95)

   k=k-2*n;

end

if k>=96

   k=k-3*n;

end

k=k+1;

keyword(end+1) = alpha(k);

end

keyword

answer = '';

for i = 1:length(slovo)

for j = 1:length(alpha)

   if alpha(j) == slovo(i)

       answer(end+1) = keyword(j);

           

   end

end

end

answer

На Матлабе напишите программу реализаций таблицы Вижинера.

alpha = '';

for i = 32:127

alpha(end+1) = char(i);

end

alpha

 

A = '';

for i = 1:length(alpha)

k=i;

for j = 1:length(alpha)

if k==97

   k=1;

end

 A(i,j) = alpha(k);

 k=k+1;

 

end

end

37. Используя систему Цезаря с ключевым словом зашифруйте текст «все хорошо, что хорошо кончается», ключи «диплом» и q=4. Приведите листинг программы на языке Матлаб.

clear

fraza='VSE HOROSHO CHTO HOROSHO KONCHAETSYA';

q=4;

m=26;

key='DIPLOM';

if m==26

kod='ABCDEFGHIJKLMNOPQRSTUVWXYZ';

end

kod1=kod;

for i=1:length(key)

   as = find(kod==key(i));

   kod(as) = [];

end

a = kod1(end-q+1:end);

ss = [a key kod];

ss(end-q+1:end) = [];

for h=1:length(fraza)

for e=1:length(kod1)

   if kod1(e)==fraza(h)

       A(h)=ss(e);

   end

end

end

A

kod1=kod1;

for p=1:length(fraza)

for r=1:length(ss)

   if ss(r)==A(p)

       B(p)=kod1(r);

   end

end

end

 

38. Рассчитайте таблицу индексов шифруемого текста при аффинной системе подстановок Цезаря для коэффициентов а=7, b= 3. Приведите листинг программы на языке Матлаб. (программа не точная)

slovo = 'удачный день’;

alpha = 'абвгдежзийклмнопрстуфхцчышщьъэюя';

n = length(alpha);

a=7;

b=3;

k = [];

keyword = '';

for i = 0:31

k = a*i+b;

if (32<=k)&&(k<=63)

k = k-n;

end

if (64<=k)&&(k<=95)

   k=k-2*n;

end

if k>=96

   k=k-3*n;

end

k=k+1;

keyword(end+1) = alpha(k);

end

keyword

answer = '';

for i = 1:length(slovo)

for j = 1:length(alpha)

   if alpha(j) == slovo(i)

       answer(end+1) = keyword(j);

           

   end

end

end

answer

39.  Заданы ключи для двойной перестановки {3421,3214} зашифруйте любой текст. Приведите листинг программы на языке Матлаб.(смотреть ответ 34, подставить свои значения)

Возьмите любой текст длина которого будет нечетным числом. Разбейте данный текст на биаграммы. Напишите листинг программы обрабатывающий данный случай.

slovo = 'курьезныйслучай';

alpha = 'абвгдежзийклмнопрстуфхцчшщъыьэюя';

 

key = 'брак';

a=4;

b=8;

A = '';

k=1;

m=1;

 

for i = 1:length(alpha)

if key~=alpha(i)

   key(end+1) = alpha(i);

end

end

key

 for i = 1:a

for j = 1:b

   A(i,j) = key(k);

   k=k+1;

end

 end

 A

 ans = '';

 for k = 1:2:length(soz)

for i = 1:4

   for j = 1:8

       if slovo(k) == A(i,j)

           n1 = i;

           m1 = j;

       end

   end   

end

for i = 1:4

   for j = 1:8

       if slovo(k+1) == A(i,j)

           n2 = i;

           m2 = j;

       end

   end   

end

   

if n1 == n2

   if m1==8

       ans(end + 1) = A(n1,1);

   else

      ans(end + 1) = A(n1,m1+1);

   end

       

   if m2==8

       ans(end + 1) = A(n2,1);

   else

       ans(end + 1) = A(n2,m2+1);

   end

else if m1 == m2

   if n1==4

       ans(end +1) = A(1,m1);

   else

       ans(end + 1) = A(n1+1,m1);

   end

       

   if n2==4

       ans(end +1) = A(1,m2);

   else

       ans(end + 1) = A(n2+1,m2);

   end

else

       

   ans(end+1) = A(n1,m2);

   ans(end+1) = A(n2,m1);

       

end

end

 end

ans

Используя магический квадрат размером 4х4 зашифруйте любой текст. Приведите листинг программы дешифратора на языке Матлаб.

Шифр:

slovo = 'прилетаюдевятого';

m = magic(4)

 

for i = 1:4

for j=1:4

A(i,j) = slovo(m(i,j));

end

end

A

D=A(:)'

 

 

Дешифр:

 

slovo = 'теяотрпиювеалгодт';

m=magic(4);

y=sort(m(:));

 

for i = 1:16

A(i) = slovo(m==y(i));

end

A

Возьмите в качестве ключа слово «ноутбук» и зашифруйте текст «купил ноутбук» методом простой перестановки с ключом. Напишите листинг программы дешифратора на языке Матлаб.

clear

clc

a='оукбитуклнп;

a1=length(a);

b='ноутбук';

c=sort(b);

c1=length(c);

k=1;

for i=1:c1

for j=1:a1/c1

   W(j,i)=a(k)

   k=k+1;

end

end

g=[b;W];

J=g(:,:)'

p=sortrows(J)

shifr1=p(:,:)'

shifr1(1,:)=[]

43. Рассчитайте таблицу индексов шифруемого текста при аффинной системе подстановок Цезаря для коэффициентов а=7, b= 9. Приведите листинг программы на языке Матлаб. (программа не точная)

slovo = 'хорошее настроение’;

alpha = 'абвгдежзийклмнопрстуфхцчышщьъэюя';

n = length(alpha);

a=7;

b=9;

k = [];

keyword = '';

for i = 0:31

k = a*i+b;

if (32<=k)&&(k<=63)

k = k-n;

end

if (64<=k)&&(k<=95)

   k=k-2*n;

end

if k>=96

   k=k-3*n;

end

k=k+1;

keyword(end+1) = alpha(k);

end

keyword

answer = '';

for i = 1:length(slovo)

for j = 1:length(alpha)

   if alpha(j) == slovo(i)

       answer(end+1) = keyword(j);

           

   end

end

end

answer

44. Заданы коэффициенты аффинной подстановки Цезаря а=1, b=5. Зашифруйте текст «миллиарды и миллиарды». Приведите листинг программы на языке Матлаб. (программа не точная)

slovo = ‘миллиарды и миллиарды;

alpha = 'абвгдежзийклмнопрстуфхцчышщьъэюя';

n = length(alpha);

a=1;

b=5;

k = [];

keyword = '';

for i = 0:31

k = a*i+b;

if (32<=k)&&(k<=63)

k = k-n;

end

if (64<=k)&&(k<=95)

   k=k-2*n;

end

if k>=96

   k=k-3*n;

end

k=k+1;

keyword(end+1) = alpha(k);

end

keyword

answer = '';

for i = 1:length(slovo)

for j = 1:length(alpha)

   if alpha(j) == slovo(i)

       answer(end+1) = keyword(j);

           

   end

end

end

answer

45. «Коренные жители города Москва!» приведите все возможные ключи для данного текста при простой перестановке. Напишите листинг программы дешифратора на языке матлаб использующий один вариант ключа и зашифруйте текст.

Шифр:

slovo = 'коренные жители города Москва!';

L=length(slovo);

 

k=1;

for i=1:5

   for j=1:6

       A(j,i)=slovo(k);

       k=k+1;

   end

end

shifr=A';

shifr=shifr(:)'

 

Дешифр:

slovo = 'кыерооелоср идкеж авниг антоМ!';

 

k=0;

for i=1:6

for j=1:5

   k=k+1;

   A(i,j)=slovo (k);

end

end

A(:)'

46. Заданы ключи для двойной перестановки {21345,32154} зашифруйте любой текст. Приведите листинг программы дешифратора на языке Матлаб.

clear

clc

a='прилетаювосьмого';

key1='21345';

key2='32154';

k=1;

for i=1:5

for j=1:5

A(i,j)=a(k);

k=k+1;

end

end

k1=sort(key1);

k2=sort(key2);

for w=1:5

for t=1:5

   if k1(w)==key1(t)

       AA(:,w)=A(:,t);

   end

end

end

for w=1:5

for t=1:5

   if k2(w)==key2(t)

       AA2(w,:)=AA(t,:);

   end

end

end

P=AA2(:)'

 

P =

 

Тороюольагисемпв

Используя магический квадрат размером 5х5 зашифруйте любой текст. Приведите листинг программы дешифратора на языке Матлаб.

 

Шифр:

slovo = 'этозеленоеяблокомейрамгул';

m = magic(5)

 

for i = 1:5

for j=1:5

A(i,j) = slovo(m(i,j));

end

end

A

D=A(:)'

 

 

Дешифр:

 

slovo = 'незеянелбаэелзаноерткокоо';

m=magic(5);

y=sort(m(:));

 

for i = 1:25

A(i) = slovo(m==y(i));

end

48. Используя систему Цезаря с ключевым словом зашифруйте текст «как мало пройдено дорог», ключи «турист» и q=6. Приведите листинг дешифратора программы на языке Матлаб.

Шифр:

 

slovo = 'Как мало пройдено дорог';

alpha = ' абвгдежзийклмнопрстуфхцчышщьъэюя';

 

key = 'турист';

keys = '';

for i = 1:length(key)

state = 1;

for j = 1:length(keys)

   if keys(j) == key(i)

       state = 0;

   end

end

if state == 1

   keys(end+1) = key(i);

end

end

keys

% key1 = unique(key)

 

m=length(key);

q = 6;

k=1;

keyword=keys;

 

for i =1:33

if (keyword~=alpha(i))

        keyword(end+1) = alpha(i);    

end

end   

keyword

a=32-(q-1);

kluch = '';

for i = a:33

kluch(end+1) = keyword(a);

a=a+1;

end

kluch

x=1;

for i = (q+1):33;

kluch(end+1) = keyword(x);

x=x+1;

end

kluch

answer = '';

for i = 1:length(slovo)

for j = 1:length(alpha)

   if alpha(j) == slovo(i)

       answer(end+1) = kluch(j);

           

   end

end

end

answer

 

Дешифр:

slovo = 'сщсшащ вшгдвиюябвшювдвэ';

alpha = 'абвгдежзийклмнопрстуфхцчышщьъэюя';

 

key = 'турист';

keys = '';

for i = 1:length(key)

state =  1;

for j = 1:length(keys)

   if keys(j) == key(i)

       state = 0;

   end

end

if state == 1

   keys(end+1) = key(i);

end

end

keys

% key1 = unique(key)

 

m=length(key);

q = 6;

k=1;

keyword=keys;

 

for i =1:33

if (keyword~=alpha(i))

        keyword(end+1) = alpha(i);    

end

end   

keyword

a=32-(q-1);

kluch = '';

for i = a:33

kluch(end+1) = keyword(a);

a=a+1;

end

 

x=1;

for i = (q+1):33;

kluch(end+1) = keyword(x);

x=x+1;

end

kluch

answer = '';

for i = 1:length(slovo)

for j = 1:length(alpha)

   if kluch(j) == slovo(i)

       answer(end+1) = alpha(j);

           

   end

end

end

answer

 

 

49. Зашифруйте текст «Морская свинка», используя метод Цезаря при g=7. Приведите листинг программы дешифратора на языке Матлаб.

Шифр:

 

slovo = 'морская свинка';

alpha =' абвгдежзийклмнопрстуфхцчшщыьъэюя';

length(alpha)

 

n = 7;

k = n+1;

keyword ='';

for i = 1:(33-n)

keyword(end+1) = alpha(k);

k = k+1;

end

keyword

k = 1;

for i = (34-n):33

keyword(end+1) = alpha(k);

k = k+1;

end

keyword

answer = '';

for i = 1:length(slovo)

for j = 1:length(alpha)

   if alpha(j) == slovo(i)

       answer(end+1) = keyword(j);

           

   end

end

end

answer

 

 

Дешифр:

 

slovo = 'ухчысзежыйпфсз';

alphabet = ' абвгдежзийклмнопрстуфхцчышщьъэюя';

n = 7;

k = n+1;

keyword ='';

for i = 1:(33-n)

keyword(end+1) = alphabet(k);

k = k+1;

end

keyword

k = 1;

for i = (34-n):33

keyword(end+1) = alphabet(k);

k = k+1;

end

keyword

answer = '';

for i = 1:length(slovo)

for j = 1:length(alphabet)

   if keyword(j) == slovo(i)

       answer(end+1) = alphabet(j);

           

   end

end

end

answer

 

 

Зашифруйте текст «курьезный случай» с ключом «брак»  используя биаграммный шифр Плейфейра. Напишите  листинг программы шифратора на языке Матлаб.

Шифр:

 

slovo = 'курьезный случай';

alpha = 'абвгдежзийклмнопрстуфхцчшщъыьэюя';

 

key = 'брак';

a=4;

b=8;

A = '';

k=1;

m=1;

 

for i = 1:length(alpha)

if key~=alpha(i)

   key(end+1) = alpha(i);

end

end

key

 for i = 1:a

for j = 1:b

   A(i,j) = key(k);

   k=k+1;

end

 end

 A

 ans = '';

 for k = 1:2:length(soz)

for i = 1:4

   for j = 1:8

       if slovo(k) == A(i,j)

           n1 = i;

           m1 = j;

       end

   end   

end

for i = 1:4

   for j = 1:8

       if slovo(k+1) == A(i,j)

           n2 = i;

           m2 = j;

       end

   end   

end

   

if n1 == n2

   if m1==8

       ans(end + 1) = A(n1,1);

  else

      ans(end + 1) = A(n1,m1+1);

   end

       

   if m2==8

       ans(end + 1) = A(n2,1);

   else

       ans(end + 1) = A(n2,m2+1);

   end

else if m1 == m2

   if n1==4

       ans(end +1) = A(1,m1);

   else

       ans(end + 1) = A(n1+1,m1);

   end

       

   if n2==4

       ans(end +1) = A(1,m2);

   else

       ans(end + 1) = A(n2+1,m2);

   end

else

       

   ans(end+1) = A(n1,m2);

   ans(end+1) = A(n2,m1);

       

end

end

 end

ans

Зашифруйте текст «экспекто патронум» с ключом «палочка»  используя шифрующие таблицы Трисемуса. Напишите листинг программы шифратора на языке Матлаб.

slovo = 'экспекто патронум';

alpha = 'абвгдежзийклмнопрстуфхцчшщъыьэюя';

 

key = 'палочка';

a=4;

b=8;

A = '';

k=1;

 

 

for i = 1:length(alpha)

if key~=alpha(i)

   key(end+1) = alpha(i);

end

end

key

 for i = 1:a

for j = 1:b

   A(i,j) = key(k);

   k=k+1;

end

 end

 A

 ans1 = '';

 for k = 1:length(slovo)

for i = 1:a

   for j = 1:b

       if slovo(k) == A(i,j)

           if i==a

               ans1(end+1) = A(1,j);

           else

               ans1(end+1) = A(i+1,j);

           end

       end

   end   

end

 end

ans1

52.Напишите программу считывания шифруемого текста из текстового документа и зашифруйте любой текст методом Цезаря при q=3; Напишите программу сохранения шифра в текстовый документ.

clear

clc

slovo=fileread('qwer.txt');

alpha = ' абвгдежзийклмнопрстуфхцчышщьъэюя';

key = 'студент';

keys = '';

for i = 1:length(key)

state = 1;

for j = 1:length(keys)

   if keys(j) == key(i)

       state = 0;

   end

end

if state == 1

   keys(end+1) = key(i);

end

end

keys

% key1 = unique(key)

 

m=length(key);

q = 3;

k=1;

keyword=keys;

 

for i =1:33

if (keyword~=alpha(i))

        keyword(end+1) = alpha(i);    

end

end   

keyword

a=32-(q-1);

kluch = '';

for i = a:33

kluch(end+1) = keyword(a);

a=a+1;

end

kluch

x=1;

for i = (q+1):33;

kluch(end+1) = keyword(x);

x=x+1;

end

kluch

answer = '';

for i = 1:length(slovo)

for j = 1:length(alpha)

   if alpha(j) == slovo(i)

       answer(end+1) = kluch(j);

           

   end

end

end

answer

dlmwrite('qwerty.txt', shifr,'')

Зашифруйте текст «графическое программирование» методом двойного квадрата Уинстона. Приведите листинг программы дешифратора на языке Матлаб.

54. Зашифруйте текст «жить хорошо, а хорошо жить еще лучше!» методом двойного квадрата Уинстона. Приведите листинг программы шифратора на языке Матлаб.

55. Заданы коэффициенты для аффинной подстановки Цезаря а=9, b=3. Зашифруйте текст «мобильное приложение». Приведите листинг программы дешифратора  на языке Матлаб.

slovo = 'мобильное приложение';

alpha = 'абвгдежзийклмнопрстуфхцчышщьъэюя';

n = length(alpha);

a=9;

b=3;

k = [];

keyword = '';

for i = 0:31

k = a*i+b;

if (32<=k)&&(k<=63)

k = k-n;

end

if (64<=k)&&(k<=95)

   k=k-2*n;

end

if k>=96

   k=k-3*n;

end

k=k+1;

keyword(end+1) = alpha(k);

end

keyword

answer = '';

for i = 1:length(slovo)

for j = 1:length(alpha)

   if alpha(j) == slovo(i)

       answer(end+1) = keyword(j);

           

   end

end

end

answer

56. Заданы ключи для двойной перестановки {34215,53214} зашифруйте любой текст. Приведите листинг программы дешифратора на языке Матлаб.

clear

clc

a='прилетаювосьмого';

key1='34215';

key2='53214';

k=1;

for i=1:5

for j=1:5

A(i,j)=a(k);

k=k+1;

end

end

k1=sort(key1);

k2=sort(key2);

for w=1:5

for t=1:5

   if k1(w)==key1(t)

       AA(:,w)=A(:,t);

   end

end

end

for w=1:5

for t=1:5

   if k2(w)==key2(t)

       AA2(w,:)=AA(t,:);

   end

end

end

P=AA2(:)'

 

P = Тороюольагисемпв

57. Рассчитайте таблицу индексов шифруемого текста при аффинной системе подстановок Цезаря для коэффициентов а=2, b= 9. Приведите листинг программы на языке Матлаб. (программа неточная)

slovo = 'мощный компьютер’;

alpha = 'абвгдежзийклмнопрстуфхцчышщьъэюя';

n = length(alpha);

a=2;

b=9;

k = [];

keyword = '';

for i = 0:31

k = a*i+b;

if (32<=k)&&(k<=63)

k = k-n;

end

if (64<=k)&&(k<=95)

   k=k-2*n;

end

if k>=96

   k=k-3*n;

end

k=k+1;

keyword(end+1) = alpha(k);

end

keyword

answer = '';

for i = 1:length(slovo)

for j = 1:length(alpha)

   if alpha(j) == slovo(i)

       answer(end+1) = keyword(j);

           

   end

end

end

answer

Напишите программу реализаций генераций случайного сигнала методом Фиббоначи для маскировки информационного сигнала.

вещественные числа из диапазона [0,1)

a и b — целые положительные числа, называемые лагами.

Следует отметить, что данный метод используется в широко известной системе Matlab.

 

for i = 18:500

   

a = 17;

b = 5;

k(1:13) = round(10*(rand(1,13)))/10

  

   

if k(i-a)>=k(i-b)

k(i) = k(i-a)-k(i-b);

   

elseif k(i-a)<k(i-b)

k(i) = 1+k(i-a)-k(i-b);

end

end 

 

figure(1)

plot(k)

 

A = abs(fft(k,256));

f = 100*(0:127)/256;

figure(2)

plot(f, A(1:128))

 


Дата добавления: 2018-06-27; просмотров: 241; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!