Напишите программу реализаций генераций случайного сигнала методом Фиббоначи для маскировки информационного сигнала.
Зашифруйте данный текст «государство и власть», используя метод Цезаря при 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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!