![](/user_photo/2706_HbeT2.jpg)
- •Введение
- •Кодирование Шеннона-Фано
- •Кодирование Хаффмана
- •Задания
- •Трансформационные шифры Моноалфавитный шифр
- •Полиалфавитный шифр
- •Одноразовое заполнение
- •Задания
- •Обмен ключами по схеме Диффи-Хеллмана
- •Алгоритм Клейтмана
- •Алгоритм Ивена
- •Р ис. 14 Пример алгоритма Ивена – третий шаг
- •Задания
- •Алгоритм Дейкстры
- •Маршрутизация по вектору расстояния
- •Задания
- •Контрольные вопросы
Трансформационные шифры Моноалфавитный шифр
Самый простой тип трансформационного шифра должен брать каждый символ в сообщении и заменять его в зашифрованном тексте другим символом. Символы для зашифрованного текста обычно берутся из того же алфавита, что и сообщения, но это не обязательно. Система называется моноалфавитной из-за того, что каждый символ сообщения всегда преобразуется в один и тот же символ зашифрованного текста. Еще Юлий Цезарь использовал систему преобразования. Он заменял каждую букву сообщения на третью букву из того же алфавита. Термин “подстановка Цезаря” теперь применяется к любому шифру с подобным сдвигом между символами сообщения и алфавитом шифра, даже если этот сдвиг не равен трем. Более безопасной является произвольная подстановка, которая изменяет порядок подстановочных символов. Проблема со всеми моноалфавитными шифрами состоит в том, что их очень просто атаковать с использованием частотного анализа.
Другая проблема с произвольной подстановкой – длина ключа, т.к. должно быть определено преобразование каждого символа. Это непросто запомнить. В простой системе подобного рода, иногда называемой подстановкой Виженера используется специальное кодовое слово, чтобы определить несколько первых подстановок, и затем выставляются остальные буквы. Ключ в форме кодового слова легко запомнить, но шифр очень беден, т.к. последние символы алфавита (такие как w и y) вряд ли будут вообще зашифрованы.
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
C |
O |
D |
E |
A |
B |
F |
G |
H |
I |
J |
K |
L |
M |
N |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
Рис. 3 Шифр с подстановками Виженера
Полиалфавитный шифр
Одним из способов преодоления атаки частного анализа является использование разных алфавитов преобразования, зависящих от позиции символа в сообщении. Данная система называется полиалфавитным шифром Веженера. В этом случае для определения числа подстановок Цезаря, которые будут использоваться для кодирования, применяется специальное кодовое слово. Например, пусть этим кодовым словом будет “code”. Оно определяет четыре алфавита, первый – со сдвигом 2, второй – со сдвигом 14, третий – со сдвигом 3 и четвертый со сдвигом 4.
|
a |
b |
c |
d |
e |
f |
g |
h |
i |
j |
k |
l |
m |
n |
o |
p |
q |
r |
s |
t |
u |
v |
w |
x |
y |
z |
1 |
c |
d |
e |
f |
g |
h |
i |
j |
k |
l |
m |
n |
o |
p |
q |
r |
s |
t |
u |
v |
w |
x |
y |
z |
a |
b |
2 |
o |
p |
q |
r |
s |
t |
u |
v |
w |
x |
y |
z |
a |
b |
c |
d |
e |
f |
g |
h |
i |
j |
k |
l |
m |
n |
3 |
d |
e |
f |
g |
h |
i |
j |
k |
l |
m |
n |
o |
p |
q |
r |
s |
t |
u |
v |
w |
x |
y |
z |
a |
b |
c |
4 |
e |
f |
g |
h |
i |
j |
k |
l |
m |
n |
o |
p |
q |
r |
s |
t |
u |
v |
w |
x |
y |
z |
a |
b |
c |
d |
а
1 |
2 |
3 |
4 |
1 |
2 |
3 |
4 |
1 |
2 |
3 |
4 |
1 |
2 |
3 |
4 |
1 |
2 |
3 |
4 |
1 |
2 |
3 |
T |
H |
I |
S |
I |
S |
A |
M |
E |
S |
S |
A |
G |
E |
T |
O |
B |
E |
C |
O |
D |
E |
D |
V |
V |
L |
W |
K |
G |
D |
Q |
G |
G |
V |
E |
I |
S |
W |
S |
D |
S |
F |
S |
F |
S |
G |
б
Рис. 4 Полиалфавитный шифр Веженера:
а – таблица шифрования
б – пример кодирования