Тести до теми шифрування даних.
Тести розраховані на знання мови Паскаль, її основних функцій, синтаксису та знань ширфів Цезаря, Віженера, Полібіанського квадрата.
Клас_________
Прізвище ______________________
1. Заповніть значення функції delete яка використовується у контексті алгоритму Віженера: While i<=length(s) do If s[i]=’ ’ then delete() else i:=i+1;
а) (s,1,i);
б) (s,i,1);
в) (1,s,i);
г) (i,s,1).
2. Встановіть правильну послідовність для алгоритму Віженера:
а) до коду символу який необхідно зашифрувати, додаємо відповідний код ключа, та «замикаємо» алфавіт у кільце;
б) розмножуємо ключ до довжини тексту;
в) переводимо код у зашифрований символ;
г) видаляємо пропуски;
Відповідь:
3. Оберіть функцію, яка визначає «символ з порядковим номером х»:
а) pred(x);
б) succ(x);
в) chr(x);
г) ord(x).
4. Оберіть функцію, яка є оберненою до функції ord(x):
а) pred(x);
б) succ(x);
в) chr(x);
г) inc(x).
5. Якщо застосувати функцію inc(i), то змінна i набуде значення:
а) i:=i+1;
б) i:=i-1;
в) i:=i*(i+1);
г) i:=i/(i+1);
6. Оберіть функцію, яка визначає «порядковий номер символу х»:
а) pred(x);
б) succ(x);
в) chr(x);
г) ord(x).
7. Шифр Цезаря може бути виражений формулою y= (x+k) mod n. Оберіть відповідні позначення:
а) кількість символів у алфавіті; 1) y;
б) ключ; 2) x;
в) код даного символу; 3) k;
г) код зашифрованого символу; 4) n;
Відповідь:
8. Користуючись позначеннями попереднього завдання оберіть формулу для розшифровки шифру Цезаря:
а) x= (y-k-n) mod n;
б) x= (y+k+n) mod n;
в) x= (y-k+n) mod n;
г) x= (y+k-n) mod n.
9. Установіть правильну послідовність для алгоритму Цезаря:
а) до коду даного символу додаємо ключ;
б) видаляємо пропуски;
в) переводимо код символу в символ;
г) замикаємо алфавіт у «кільце».
Відповідь:
10. Установіть відповідність:
а) до коду даного символу додаємо ключ; 1) s[i]:=chr(n);
б) видаляємо пропуски; 2)If n>ord(’z’) then n:=ord(’a’)+n-ord(’z’)-1;
в) переводимо код символу в символ; 3) n:=ord(s[i]+3;
г) замикаємо алфавіт у «кільце». 4) If s[i]= ’ ’ then delete …
Відповідь:
11. Що потрібно поставити на пропущеному місці?
For i:=1 to length(s) do begin
n:=ord(s[i])-(ord(s2[i])-ord(’a’))-1;
if ____then___________;
s[i]:=chr(n);
end;
а) n>ord(’a’) then n:=ord(’z’)+(ord(’a’)-n) mod 26-1;
б) n<ord(’a’) then n:=ord(’z’)-(ord(’a’)-n) mod 26-1;
в) n>ord(’a’) then n:=ord(’z’)-(ord(’a’)-n) mod 26+1;
г) n<ord(’a’) then n:=ord(’z’)-(ord(’a’)-n) mod 26+1;
12. Яку назву має алгоритм описаний в попередньому завданні, та яку дію описує програмний код?
а) алгоритм Віженера для шифрування;
б) алгоритм Цезаря для розшифрування;
в) алгоритм Віженера для розшифрування;
г) алгоритм Полібіанського квадрату для розшифрування.
13. Яким чином зашифровується символ в алгоритмі Полібіанський квадрат?
а) символ замінюється на символ, який знаходиться на строку вище;
б) символ замінюється на символ, який знаходиться на строку нижче;
в) символ замінюється на символ, який знаходиться на одиницю праворуч;
г) символ замінюється на символ, який знаходиться на одиницю ліворуч.
14. Що потрібно поставити на пропущеному місці?
For k:=1 to length(s1) do
For i:=1 to n do
For j:=1 to m do
If s1[k]=A[i,j] then B[1,k]:=A[ ___ ,j];
а) (i mod n)+1;
б) (j mod n) +1;
в) (i mod n) -1;
г) (k mod n) +1;
15. Розшифруйте повідомлення, зашифроване шифром Цезаря із зсувом 5: «ХШЖНПУТ ФКХКОЙКТ». (В алфавіті Е=Ë)
а) РУБИКОН ПЕРЕЙДЕН;
б) РУБИКОН ПРОЙДЕНО;
в) РУВИКОН ПЕРЕЙДЕН;
г) РУВИКОН ПРОЙДЕНО.
16. Установіть правильну послідовність алгоритму Шенона-Фано:
а) розбити стовбець ймовірності на дві частини, так щоб сумарні ймовірності кожної частини були найбільш близькими один до одного;
б) до кодів першої частини приписати 0, а кодам другої 1;
в) записати літери і ймовірності їх появлення в повідомлені, так щоб ймовірності були у спадному порядку;
г) продовжувати до тих пір поки в кожній групі залишиться по одному символу.
Відповідь:
17. Знайдіть помилку:
а) for i:=1 to length(s) div length(s) +1 do …;
б) s[i]:=A[i,j];
в) if s[i]=’ ’ then begin …;
г) n:=ord(’z’)+2;
18. Розшифруйте повідомлення «ongcfgjpm», якщо це повідомлення було зашифровано Полібіанським квадратом, який заповнений англійським алфавітом і при шифруванні символ мав одне зміщення на строку вниз і одне зміщення на стовбець праворуч.
а) Ihaveagod;
б) Ihaveapen;
в) Ihaveadog;
г) Ihaveason.