1-Lectures / Tpro-Lk-02-03(10-03-2010)
.pps1
Шифры подстановки
Упрощенная программная реализации шифров подстановки
степени m = 16 и критериев отбора ключей
10-03-2010 |
Реализация подстановок. |
|
Критерии отбора ключей |
2
Пример 1. Составить функцию, выполняющую формирование псевдослучайного ключа
подстановки степени m =16.
Возможный вариант заголовка функции: void GenPermutation(unsigned char *Key);
Решение примера выполняется на доске (в диалоговом режиме).
Рассматриваются предложения 3-4-х вариантов реализации, обсуждаются слабые места и выбираются варианты для последующей реализации на лабораторной работе.
10-03-2010 |
Реализация подстановок. |
|
Критерии отбора ключей |
3
Пример 2. Для заданной подстановки показать все близкие и тождественные
переходы.
Вх. i 0 1 2 3 4 5 6 7 8 9 A B C D E F
Вых.K[i] A 1 3 E 0 F 5 2 D 9 6 7 8 B C 4
Тождественный переход: i == K[ i ];
Близкие переходы: i == K[ i ] 1.
Для заданной подстановки: |
|
||
тождественные: 1 1; |
9 |
9; |
|
близкие: |
2 3; |
6 |
5. |
10-03-2010 |
Реализация подстановок. |
|
Критерии отбора ключей |
4
Пример 3. Составить функцию, выполняющую проверку сформированной подстановки на
наличие близких и тождественных переходов.
Возможный вариант заголовка функции: int CheckPermutation(unsigned char *Key); (Как и ранее, по умолчанию m = 16.)
Решение примера выполняется на доске (в диалоговом режиме), составленная функция должна быть отлажена на последующей лабораторной работе.
10-03-2010 |
Реализация подстановок. |
|
Критерии отбора ключей |
5
Пример 4. Вспомнить (см.лк.1) формирование “обратного” ключа для заданного ключа
моноподстановки.
i |
0 |
1 2 |
3 |
4 |
5 6 |
7 8 |
9 |
A |
B |
C |
D |
E F |
||||
K[i] 6 |
C 0 |
B |
A |
D 1 |
E 4 |
7 |
F |
2 |
8 |
5 |
3 9 |
|||||
i |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 A |
B |
C |
D |
E |
F |
|
invK[i] |
2 |
6 |
B |
E |
8 |
D |
0 |
9 |
C |
F |
4 |
3 |
1 |
5 |
7 |
A |
invK[6]=0; invK[12]=1; invK[0]=2; …
Для иллюстрации зашифрования/расшифрования:
M = 2, F0, 2B;
C = 60, 96, 2.
10-03-2010 |
Реализация подстановок. |
|
Критерии отбора ключей |
6
Пример 5. Составить функцию, выполняющую формирование “обратного”
ключа моноподстановки степени m =16.
Возможный вариант заголовка функции: void InvKey(unsigned char *Src,
unsigned char *Dst);
Решение примера выполняется на доске (в диалоговом режиме), составленная функция должна быть отлажена на последующей лабораторной работе.
10-03-2010 |
Реализация подстановок. |
|
Критерии отбора ключей |
7
Критерии возрастаний, инверсий, циклов
i 0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
K[i] 6 |
C 0 |
B |
A |
D 1 |
E 4 |
7 |
F |
2 |
8 |
5 |
3 9 |
|
m |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
m |
|
|
|
|
|
m |
|
; |
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
||||||||||||
2 |
|
12 |
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
m |
m |
m |
|
1 |
|
|
|
|
m3 |
|
|
; |
|||||||
|
|
||||||||||||||||||
4 |
|
|
|
|
|
|
|
6 |
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
m ln m |
|
|
|
. |
|
||||||||||||||
|
ln m |
|
|||||||||||||||||
|
|
10-03-2010 |
Реализация подстановок. |
|
Критерии отбора ключей |
8
Численные значения в критериях (m = 16)
возрастаний: m/2 = 8; 12m 1.15 ;
инверсий: m m 1 |
|
|
|
m3 |
|
|
|
60 ; |
|
|
6 10.67 ; |
||||
4 |
|
|
|||||
|
|
|
|
|
|
1.67 . |
|
циклов: ln(m) 2.77 ; |
ln m |
10-03-2010 |
Реализация подстановок. |
|
Критерии отбора ключей |
9
Пример 6. Заданную подстановку проверить по критериям возрастаний, инверсий, циклов. Сделать соответствующие выводы.
i 0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
K[i] 6 |
C 0 |
B |
A |
D 1 |
E 4 |
7 |
F |
2 |
8 |
5 |
3 9 |
(пример верный)
10-03-2010 |
Реализация подстановок. |
|
Критерии отбора ключей |
|
|
|
Просчет числа возрастаний |
|
10 |
||||||||||||||
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
i |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
|
F |
||
K[i] |
6 |
C |
0 |
B |
A |
D |
1 |
E |
4 |
7 |
F |
2 |
8 |
5 |
3 |
9 |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Возрастания между элементами: 6 12,0 11,10 13,1 14,4 7,7 15,2 8,3 9. Число возрастаний: 8 .
|
|
|
|
|
|
|
|
|
|
m |
|
|
|
m |
; |
|
m |
|
1.15 ; |
|
|
||||||||
m m/2 |
|
= 8; |
|
|
|
|
|
||
|
12 |
12 |
|||||||
2 |
|
|
|
|
|
16 8 1.15 ;
критерий выполнен (| 8 - 8 |<=1.15).
10-03-2010 |
Реализация подстановок. |
|
Критерии отбора ключей |