Криптономикон, часть 2 (Стивенсон) - страница 377

ПРИМЕРЫ

Вот несколько примеров, чтобы потренироваться с «Пасьянсом»:

Пример 1: Начните с неразложенной колоды: Т¦ — К¦, Т¦ — K¦, Т¦ — К¦, Т¦ — К¦, джокер А, джокер Б (можете считать это последовательностью 1—52, А. Б). Тогда первые десять результатов:

4 49 10 (53) 24 8 51 44 6 33

53, естественно, пропускается. Я оставил это число только для ясности. Если открытый текст:

ААААА ААААА

то шифртекст:

EXKYI ZSGEH

Пример 2: Используя метод настройки 3 ключ «FOO», получаем первые 15 результатов:

8 19 7 25 20 (53) 9 8 22 32 43 5 26 17 (53) 38 48

Если открытый текст состоит из одних «А», то шифртекст будет:

ITHZU JIWGR FARMW

Пример 3: Используя метод настройки 3 и ключ «CRYPTONOMICON», сообщение «SOLITAIRE» зашифровывается как:

KIRAK SFJAN

Разумеется, надо использовать более длинный ключ. Эти примеры приведены только для тренировки. На моем веб-сайте есть еще примеры, и вы можете создать свои, используя программу на языке PERL, приведенную в этой книге.

СОБЛЮДЕНИЕ ТАЙНЫ КАК УСЛОВИЕ БЕЗОПАСНОСТИ

«Пасьянс» рассчитан на то, что враг не сможет взломать его, даже зная алгоритм. Я исходил из допущения, что «Криптономикон» станет бестселлером и купить его можно будет повсюду. Полагаю, АНБ и все остальные изучат алгоритм. Я исхожу из того, что тайным будет только ключ.

Вот почему так важно сохранять ключ в тайне. Если у вас в безопасном месте хранится колода карт, нельзя исключать, что враг заподозрит вас в использовании «Пасьянса». Если у вас в тайнике лежит бриджевая колонка из газеты, это несомненно вызовет интерес. Если известно, что некая группа использует этот алгоритм, тайная полиция постарается следить за бриджевыми колонками. «Пасьянс» надежен, даже если враг знает, что вы им пользуетесь, и простая колода карт — все же не такая улика, как шифровальная программа в вашем ноутбуке, однако этот алгоритм не заменяет житейской смекалки.

СОВЕТЫ ПО ИСПОЛЬЗОВАНИЮ

Первое правило любого поточного шифра с обратной связью по выходу: нельзя использовать один ключ для зашифровки двух разных сообщений. Повторяйте за мной: НИКОГДА НЕ ИСПОЛЬЗУЙ ОДИН КЛЮЧ ДЛЯ ЗАШИФРОВКИ ДВУХ РАЗНЫХ СООБЩЕНИЙ. В противном случае вы разрушаете всю безопасность системы. Вот почему: если у вас есть два потока шифртекста А + К и В + К и вы вычтете один из другого, то получите (А + К) — (В + К)= А + К — В — К = А — В. Это комбинация двух открытых текстов, которую очень легко взломать. Поверьте на слово: вы, может быть, и не восстановите А и В из А — В, но профессиональный криптоаналитик с этим справится. Так что это жизненно важно: никогда не пользоваться одним ключом для зашифровки двух разных сообщений.