SAFER

Поделись знанием:
Перейти к: навигация, поиск
SAFER
Создатель:

Джеймс Мэсси

Создан:

1993 г.

Опубликован:

1993 г.

Размер ключа:

64 (128, 192, 256) бит

Размер блока:

64 (40, 128) бит

Число раундов:

6-16

Тип:

Подстановочно-перестановочная сеть

SÁFER (англ. Secure And Fast Encryption Routine — безопасная и быстрая процедура шифрования) — в криптографии семейство симметричных блочных криптоалгоритмов на основе подстановочно-перестановочной сети. Основной вклад в разработку алгоритмов внёс Джеймс Мэсси. Первый вариант шифра был создан и опубликован в 1993 году.





История

Существует несколько вариантов шифра, отличающихся друг от друга длиной ключа шифрования и размерами блоков исходного текста.

Первая разновидность алгоритма — SAFER K-64 была разработана Джэймсом Мэсси для калифорнийской корпорации «Cylinc» в 1993 году[1]. Опубликованный в том же году, алгоритм имел блок и ключ шифрования длиной в 64 бита. Для него рекомендовалось использовать 6 раундов шифрования. Однако, из-за необходимости увеличить длину ключа до 128 бит (так как была обнаружена слабость в первоначальном варианте алгоритма), Мэсси разработал новый вариант шифра SAFER K-128, который был опубликован на следующий год после SAFER K-64. Новый алгоритм включал в себя расписание ключей, разработанное министерством внутренних дел Сингапура, и в дальнейшем использовался им для различных целей. Также для этого алгоритма рекомендовалось использовать 10 (максимум 12) раундов шифрования.

Спустя некоторое время в первых вариантах алгоритма выявились некоторые слабости, обнаруженные Ларсом Кнудсеном и Шоном Мёрфи[1]. Это повлекло за собой создание новых версий алгоритма, названных SAFER SK-64 и SAFER SK-128, в которых расписание ключей было изменено в соответствии со схемой, предложенной Кнудсеном. Также был разработан вариант с длиной ключа, уменьшенной до 40 бит — SAFER SK-40. Сокращение «SK» в названии алгоритмов расшифровывается как «Strengthened Key schedule» (Усиленное расписание ключей). Для новых вариантов шифра предлагалось использовать не 6, а по крайней мере 8 (максимум 10) раундов шифрования.

Алгоритм SAFER+ был разработан в 1998 году калифорнийской корпорацией Cylinc совместно с Армянской академией наук для участия в конкурсе AES, на котором прошёл лишь первый отборочный тур. Данный шифр имеет входной блок длиной 128 бит и размер ключа 128, 192 или 256 бит.

Последней из созданных разновидностей алгоритма SAFER является SAFER++, разработанный Мэсси в 2000 году и ставший дальнейшим развитием алгоритма SAFER+. Алгоритм принял участие в европейском конкурсе алгоритмов NESSIE, где был представлен в двух вариантах: шифр с 64-битным блоком и 128-битным блоком. Он прошёл во вторую фазу конкурса, но не был выбран в набор рекомендуемых NESSIE криптографических примитивов. Эксперты сочли, что шифр слишком медленный на всех машинах, кроме 8-битных (таких как смарт-карты), а запас безопасности шифра слишком мал[2][3].

Алгоритмы SAFER не являются частной собственностью и не защищены авторскими правами, то есть могут быть использованы без каких либо ограничений. Поскольку они целиком состоят из простых байтовых операций (за исключением поворота байтов при генерации ключей), эти алгоритмы могут быть реализованы процессорами с малой разрядностью[4].

Ниже приведена сводная таблица всех существующих вариантов шифра SAFER

название англ. дата создания длина блока длина ключа число раундов
SAFER K-64 key 64 bit 1993 64 64 6
SAFER K-128 key 128 bit 1995 64 128 10 (максимум 12)
SAFER SK-64 Strengthened Key schedule, 64 bit 1995 64 64 8 (минимум 6, максимум 10)
SAFER SK-128 Strengthened Key schedule, 128 bit 1995 64 128 10 (максимум 12)
SAFER SK-40 Strengthened Key schedule, 40 bit 1995 64 40
SAFER+ SAFER Plus 1998 128 128, 192, 256 8, 12, 16
SAFER++ SAFER Plus Plus 2000 64, 128 128, 256 7, 10

SAFER K-64

Алгоритм шифрования

Длина шифруемого блока и длина ключа равны 64 битам. Алгоритм является итеративным блочным шифром, то есть одна и та же функция шифрования последовательно применяется к входному блоку r раз, при этом на каждом этапе используются различные ключи. На каждой итерации (этапе, раунде) в рассматриваемом алгоритме берутся два 64-битных подключа.

Структура одного раунда алгоритма представлена на схеме. Опишем алгоритм поэтапно (ниже i пробегает значения от 1 до r, где r — число раундов шифрования):

  1. Входной блок B и оба ключа <math>K_{2i-1}</math> и <math>K_{2i}</math> разбиваются на 8 частей длиной по одному байту (8 бит). Соответствующие подблоки входного текста и ключа <math>K_{2i-1}</math> либо складываются по модулю два (операция XOR) — для подблоков № 1, 4, 5 и 8, либо складываются по обычным правилам (операция сложения байтов по модулю 256) — для подблоков № 2, 3, 6 и 7.
  2. Результаты сложения проходят через так называемые S-блоки (S-boxes). Их содержимое представляет собой одну из нелинейных операций: <math>y = 45^x\mbox{ mod }257</math> (где y = 0 когда x = 128) либо <math>y = log_{45}x</math> (y = 128 когда x = 0). Здесь x — входной байт, y — выходной байт. Данные операции являются операциями в конечном поле GF(257), где 45 — примитивный элемент поля. Поскольку каждый раз рассчитывать результаты этих операций в практических реализациях алгоритма весьма неудобно, как правило используются специально составляемые таблицы для получения результатов их действия.
  3. Над результатами предыдущего действия производится операция, аналогичная п.1, с той лишь разницей, что используется второй подключ <math>K_{2i}</math>, а операции XOR и сложения по модулю 256 меняются местами.
  4. Полученные байты проходят через многоуровневую систему преобразований, взаимно складываясь в различном порядке. Это делается для достижения лучшего лавинного эффекта, то есть увеличения зависимости выходных битов от всех битов входного блока. На схеме преобразования представлены в виде сети операций сложения по модулю 256. Эта сеть эквивалентна трём уровням псевдопреобразований Адамара (Pseudo-Hadamard Transform, PHT)[5]. Каждое преобразование действует таким образом, что при входных байтах <math>a_1</math> и <math>a_2</math> на выходе получим:
    <math>b_1 = (2a_1 + a_2) \mbox{ mod } 256</math>
    <math>b_2 = (a_1 + a_2) \mbox{ mod } 256</math>

По завершении <math>r</math> последовательных раундов, над полученным результатом применяется операция, аналогичная п.1, где в качестве ключа используется последний подключ.

Автор алгоритма рекомендует использовать <math>r=6</math> раундов, но можно увеличить их количество для увеличения надёжности[5].

Алгоритм расшифрования

Расшифрование производятся в обратном порядке, но при этом операции заменяются обратными. Так, операции сложения по модулю 256 заменяются операциями вычитания, а сложение по модулю 2 выполняется точно так же, как и при зашифровании. Операции <math>45^x\mbox{ mod }257</math> и <math>log_{45}x</math> меняются местами. Псевдопреобразования Адамара заменяются обратными (Inverse PHT, IPHT), действующими следующим образом:

<math>a_1 = (b_1-b_2) \mbox{ mod } 256</math>

<math>a_2 = (-b_1+2b_2) \mbox{ mod } 256</math>

Генерация ключей

Первый ключ шифрования <math>K_1</math> является секретным ключом, задаваемым пользователем. Каждый последующий ключ шифрования <math>K_{i+1}</math> получается из предыдущего <math>K_i</math> по формуле <math>K_{i + 1} = \left( {K_1 <<< 3i} \right) + B_{i+1}</math> (сложение производится по модулю 256, при этом байты складываются отдельно). Здесь операция «<math><<<3</math>» — побайтовый циклический сдвиг влево на 3 бита, то есть сдвиг происходит внутри каждого отдельного байта ключа. Величина <math>B_{i}</math> называется константой этапа шифрования. Получить её можно следующим образом: если <math>B_{ij}</math> — j-й байт константы i-го этапа, то все константы этапов выражаются следующей формулой: <math>B_{ij} = 45^{45^{((9i+j) \mbox{ mod } 256) }\mbox{ mod } 257} \mbox{ mod } 257</math>[5]. Получаемые таким образом константы этапов с хорошей точностью ведут себя как случайные числа. Как правило, значения для всех этих констант хранят в специальных таблицах, чтобы уменьшить время на вычисления.

Формальное описание алгоритма генерации ключей:[6]

ВХОД: 64-битовый ключ <math>K=k_1,\dots,k_{64}</math>; количество раундов <math>r</math>.

ВЫХОД: 64-битовые подключи <math>K_1,\dots,K_{2r+1}</math>. Байт <math>K_i[j]</math> — <math>j</math>-байт ключа <math>K_i</math> (нумерация слева направо).

  1. Пусть <math>R[i]</math> — 8-битовые величины. Пусть <math>C_i[j]</math> — j-й байт константы i-го этапа шифрования.
  2. <math>(R[1],R[2],\dots,R[8])\leftarrow(k_1 \dots k_8, k_9 \dots k_{16}, k_{57} \dots k_{64})</math>.
  3. <math>(K_1[1],K_1[2],\dots,K_1[8]) \leftarrow (R[1],R[2],\dots,R[8])</math>.
  4. Для <math>i</math> от <math>2</math> до <math>2r+1</math>:
    • для <math>j</math> от 1 до 8: <math>R[j] \leftarrow R[j]<<<3</math>.
    • для <math>j</math> от 1 до 8: <math>K_i[j] \leftarrow R[j]+B_i[j]\mbox{ mod }256</math>.

Криптоанализ алгоритма

Джэймс Мэсси доказал, что после шести раундов шифрования алгоритмом SAFER K-64 обеспечивается абсолютная устойчивость к дифференциальному криптоанализу[5]. При этом, уже после трёх раундов шифрования линейный криптоанализ также становится неэффективным для взлома[5].

Несмотря на это, в 1995 году Ларсом Кнудсеном была обнаружена слабость в алгоритме генерации ключей для SAFER K-64. Он показал[5], что для любого ключа шифрования <math>K_{1}</math> можно найти один или несколько (вплоть до девяти) ключей <math>K_{2}</math> (отличающихся от него значением лишь одного байта), таких, что при зашифровании двух различных исходных текстов <math>M_{1}</math> и <math>M_{2}</math> получается один и тот же шифротекст, что можно записать в виде <math>E(M_1,K_1) = E(M_2,K_2)</math>. Число различных открытых текстов M, из которых получается один и тот же шифротекст, лежит в промежутке между <math>2^{22}</math> и <math>2^{28}</math> из возможных <math>2^{64}</math> текстов. Таким образом, путём анализа от <math>2^{44}</math> до <math>2^{47}</math> открытых текстов можно вычислить 8 бит секретного ключа длиной 64-бита. Эта атака в дальнейшем была значительно усилена Джоном Келси, Брюсом Шнайером и Дэвидом Вагнером (англ.) (англ. David A. Wagner). Авторы атаки утверждали, что алгоритм легко поддаётся атакам на связанных ключах за счёт очень простой и однообразной процедуры генерации подключей[7].

Это свойство значительно уменьшает надёжность алгоритма SAFER K-64 при использовании его в качестве однонаправленной хэш-функции. Его надёжность как алгоритма шифрования при этом не уменьшается. Тем не менее, эта слабость алгоритма, вместе с атакой, в дальнейшем опубликованной Мёрфи, побудили Мэсси улучшить алгоритм генерации ключей. В результате в сентябре 1995 года им был опубликован алгоритм SAFER SK-64.

Ещё одна сертифицированная атака на алгоритм SAFER K-64 была осуществлена Ларсом Кнудсеном и Томасом Бёрсоном (англ.) (англ. Thomas A. Berson)[6]. Она была рассчитана на исходный текст длиной <math>2^{45}</math>, зашифрованный 5 раундами алгоритма SAFER K-64. Хотя эта атака и не была способна взломать шифротекст уже при 6 раундах шифрования, она показала, что криптостойкость алгоритма меньше, чем изначально заявлял Мэсси (он утверждал, что алгоритм является абсолютно стойким к методам линейного криптоанализа).

Французский криптограф Серж Водено (англ.) (фр. Serge Vaudenay) показал, что при замене содержимого S-блоков случайными перестановками, алгоритм SAFER K-64 становится менее криптостойким[6].

SAFER K-128

Алгоритм отличается от SAFER K-64 только длиной пользовательского ключа и, соответственно, самим способом генерации ключей. Этот способ был разработан Министерством внутренних дел Сингапура[5] и впоследствии использован Джеймсом Мэсси в его алгоритме.

Генерация ключей

В этом алгоритме вместо одного ключа длиной 64 бита используется ключ длиной 128 бит, что эквивалентно заданию двух ключей длиной по 64 бита. Из этих двух ключей по методу, крайне схожему с использованным в шифре SAFER K-64, генерируются две независимые последовательности подключей. Ключи из этих последовательностей попеременно используются на всех раундах шифрования.

Как видно из схемы, на каждом этапе происходит побитовый сдвиг байтов ключа не на 3, а на 6 бит. Это приводит к тому, что, задавшись одинаковыми начальными ключами <math>K_a = K_b</math>, получим, что 128-битовый ключ совместим с 64-битовым ключом <math>K_a</math>. То есть, используя ключ вида <math>K_aK_a</math> в алгоритме SAFER K-128 и ключ <math>K_a</math> в SAFER K-64, получим одинаковые последовательности подключей, а значит и само шифрование в SAFER K-128 ничем не будет отличаться от такового в SAFER K-64.

Криптоанализ

При всей схожести алгоритма SAFER K-128 с его предшественником, существует и ряд отличий. Так, в новой версии алгоритма Джеймс Мэсси рекомендует использовать уже не 6, а 10 (максимум 12) раундов шифрования[7]. Это связано с тем, что при меньшем количестве итераций алгоритм, так же как и SAFER K-64, подвержен атаке, осуществлённой Ларсом Кнудсеном. Напомним, что она касается использования алгоритма в качестве основы для хэш-функции. Увеличение же количества раундов шифрования, по мнению автора, значительно повышает криптостойкость алгоритма в этом смысле[7].

SAFER SK-64

Данный алгоритм отличается от SAFER K-64 лишь способом генерации подключей. Этот способ был предложен Ларсом Кнудсеном, после того как им же была найдена атака на алгоритм SAFER K-64. Рекомендуемое количество раундов шифрования увеличено по сравнению с изначальным вариантом с 6 до 8[7]. Различия в способах расширения ключа хорошо видны при формальном описании алгоритма:

Формальное описание алгоритма генерации ключей:[6]

ВХОД: 64-битовый ключ <math>K=k_1,\dots,k_{64}</math>; количество раундов <math>r</math>.

ВЫХОД: 64-битовые подключи <math>K_1,\dots,K_{2r+1}</math>. Байт <math>K_i[j]</math> — <math>j</math>-байт ключа <math>K_i</math> (нумерация слева направо).

  1. Пусть <math>R[i]</math> — 8-битовые величины. Пусть <math>B_i[j]</math> — <math>j</math>-байт константы <math>i</math>-го этапа шифрования.
  2. <math>(R[1],R[2],\dots,R[8]) \leftarrow (k_1 \dots k_8, k_9 \dots k_{16}, k_{57} \dots k_{64})</math>; <math>R[9] \leftarrow R[1]+R[2]+\dots+R[8]</math> (сложение производится по модулю 2).
  3. <math>(K_1[1],K_1[2],\dots,K_1[8]) \leftarrow (R[1],R[2],\dots,R[8])</math>
  4. Для <math>i</math> от <math>2</math> до <math>2r+1</math>:
    • для <math>j</math> от 1 до 9: <math>R[j] \leftarrow R[j]<<<3</math>.
    • для <math>j</math> от 1 до 8: <math>K_i[j] \leftarrow R[((i+j-2)\mbox{ mod }9)+1]+B_i[j]\mbox{ mod } 256</math>.

Главной отличительной чертой этого алгоритма является использование дополнительного байта <math>R[9]</math>, который получается из побитового сложения восьми байт ключа. Далее, на каждом этапе алгоритма происходит циклический сдвиг этих байт, в результате получается, что подключ <math>K_1</math> зависит от байт <math>R[1],R[2],\dots,R[8]</math>, подключ <math>K_2</math> — от байт <math>R[2],R[3],\dots,R[9]</math>, подключ <math>K_3</math> — от байт <math>R[3],\dots,R[9],R[1]</math> и т. д. Побитовый сдвиг на 3 бита и структура констант шифрования остаются без изменений.

Криптоанализ

Такие, казалось бы, незначительные изменения в алгоритме генерации ключей, значительно повышают криптостойкость алгоритма. В настоящее время не известны атаки на алгоритмы SAFER SK-64 и SAFER SK-128 более эффективные, чем полный перебор ключей[7].

При этом существуют атаки, направленные на урезанные версии этих алгоритмов. Приведём некоторые из них:[7]

  • Атака на SAFER SK-64 с 3,75 раундами. Имеется в виду, что при шифровании таким алгоритмом сначала осуществляются 3 раунда, а в четвёртом раунде опускаются линейные преобразования PHT. В ней используется метод т. н. невозможных дифференциалов[8], относящийся к методам дифференциального криптоанализа. Для его применения нужно задействовать <math>2^{32}</math> пробных открытых текстов и <math>2^{62}</math> тестовых операций шифрования[9].
  • Square-атака (англ.) на SAFER SK-64 и SK-128 с 3,25 раундами. Здесь имеется в виду, что на четвёртом раунде происходит лишь подмешивание первого из двух ключей. Она использует <math>2^{10,3}</math> пробных открытых текстов и <math>2^{38}</math> тестовых операций шифрования.[9]
  • Атака на SAFER SK-128 с 4,75 раундами, применяющая методы линейного криптоанализа. Атака требует <math>2^{64}</math> открытых текстов и <math>2^{90}</math> тестовых операций шифрования[10].

Как видно, все эти атаки не очень практичны, поскольку требуют достаточно больших ресурсов и времени.

SAFER SK-128

Данный алгоритм шифрования отличается от SAFER SK-64 точно таким же образом, каким SAFER K-128 отличается от SAFER K-64. А именно, сами алгоритмы шифрования и генерации подключей остаются прежними, но вместо одного исходного ключа длиной в 64 бита используется два таких ключа, для каждого из которых независимо формируются последовательности подключей, которые затем применяются поочерёдно. При этом каждая последовательность для чётных и для нечётных ключей аналогична по структуре алгоритму расширения ключа в SAFER SK-64. В ней точно так же на первом этапе вводится дополнительный байт, являющийся суммой по модулю 2 остальных восьми байт, и затем на каждом этапе происходит побайтовый циклический сдвиг.

Стоит отметить, что, как и для алгоритмов SAFER K-64 и SAFER K-128, при использовании пользовательского ключа вида <math>K_aK_a</math> в SAFER SK-128 и ключа <math>K_a</math> в SAFER SK-64, действие алгоритмов оказывается совершенно одинаковым. При этом количество раундов шифрования, рекомендуемое для SAFER SK-128, остаётся таким же, как и в SAFER K-128, и равно 10[7].

SAFER SK-40

Данный вариант шифра использует уменьшенный ключ длиной всего 40 бит (5 байт). Это позволяло алгоритму обойти экспортные ограничения, существовавшие на тот момент в США. Алгоритм работает практически таким же образом, как и SAFER SK-64, с одним небольшим отличием на начальном этапе генерации подключей.

В алгоритме SAFER SK-64 к 8 байтам исходного ключа приписывался девятый байт, равный их побитовой сумме по модулю 2. В SAFER SK-40 эти 9 байт получаются совершенно иначе. Обозначим их <math>KI_1</math>, <math>KI_2</math>, … <math>KI_9</math>. Первые 5 из них — это байты исходного ключа. Остальные 4 байта получаются из первых следующим образом[11]:

<math>KI_6 = KI_1 \oplus KI_3 \oplus 129</math>,

<math>KI_7 = KI_1 \oplus KI_4 \oplus KI_5 \oplus 66</math>,

<math>KI_8 = KI_2 \oplus KI_3 \oplus KI_5 \oplus 36</math>,

<math>KI_9 = KI_2 \oplus KI_4 \oplus 24</math>;

Первый подключ <math>K_1</math> получается из первых восьми полученных байт. Последующие подключи генерируются с их использованием точно таким же образом, как и в алгоритме SAFER SK-64.

SAFER+

SAFER+ представляет собой улучшенный вариант алгоритмов семейства SAFER. Алгоритм разработан в 1998 году для участия в конкурсе на стандарт AES. Над его созданием совместно трудились специалисты из калифорнийской корпорации Cylinc (Джеймс Мэсси) и Академии наук республики Армении (Гурген Хачатрян и Мельсик Курегян)[2].

В конкурсе AES алгоритм прошёл первый отборочный тур наряду с 14 другими алгоритмами. В финал конкурса, к которому допускались лишь 5 алгоритмов, SAFER+ не прошёл, поскольку по результатам тщательного анализа оказалось, что он подвержен ряду атак и имеет низкую скорость выполнения[12]. Алгоритм создавался для работы на 8-битных процессорах, и как следствие, достаточно медленно работает на 32-битных процессорах[3].

SAFER+ обрабатывает данные 128-битным блоком. Алгоритм поддерживает 128, 192 и 256-битные ключи в соответствии с требованиями, предъявленными Национальным институтом стандартов и технологий США (NIST)[13]. Количество раундов шифрования зависит от размера ключа:

  • 8 раудов для 128-битного ключа;
  • 12 раундов для 192-битного ключа;
  • 16 раундов для 256-битного ключа.

Алгоритм шифрования

По структуре алгоритм SAFER+ напоминает SAFER K-64. Он состоит из тех же основных этапов, несколько отличающихся по своей структуре. На каждом раунде работы алгоритма сначала происходит подмешивание одного подключа, после этого байты проходят через блоки нелинейной замены, затем подмешивается второй подключ и происходит линейное перемешивание байт. Подключи последовательно генерируются с использованием входного ключа. Ниже приведено более подробное описание работы одной итерации (i — номер итерации):

  1. Наложение ключа <math>K_{2i-1}</math>: байты входного блока складываются с байтами ключа <math>K_{2i-1}</math>, причём используется сложение по модулю 2 для байт с номерами 1, 4, 5, 8, 9, 12, 13 и 16, и сложение по модулю 256 для байт с номерами 2, 3, 6, 7, 10, 11, 14 и 15.
  2. Нелинейное преобразование: к байтам с номерами 1, 4, 5, 8, 9, 12, 13 и 16 применяется операция <math>45^x(mod 257)</math> (причём <math>45^{128}(mod 257)=256</math> заменяется нулём). К байтам с номерами 2, 3, 6, 7, 10, 11, 14 и 15 применяется операция <math>log_{45}(x)</math> (причём <math>log_{45}(0)=128</math>). результаты действия этих операций как и для других разновидностей алгоритма SAFER на практике часто хранят в специальных таблицах. В данном случае для этого требуется 512 байт.
  3. Наложение ключа <math>K_{2i}</math>: байты входного блока складываются с байтами ключа <math>K_{2i}</math>, но в отличие от п.1 операции сложения по модулю 2 и по модулю 256 меняются местами.
  4. Линейное преобразование: умножение 16-байтного блока данных справа на специальную невырожденную матрицу M (все операции при этом байтовые и производятся по модулю 256). Умножение на эту матрицу эквивалентно четырём уровням преобразования PHT, между которыми выполняются некоторые байтовые перестановки[2]. Стоит отметить, что эта часть алгоритма является наиболее громоздкой с вычислительной точки зрения.

После проведения r раундов шифрования производится подмешивание ключа <math>K_{2r+1}</math>, аналогичное подмешиванию ключей <math>K_{2i-1}</math>.

Алгоритм расшифрования

Операции в алгоритме расшифрования подобны операциям шифрования и производятся в обратном порядке. Разница состоит в следующем:

  1. Вместо матрицы <math>M</math> умножение происходит с обратной ей матрицей <math>M^{-1}</math>;
  2. Все операции сложения по модулю 256 заменяются операциями вычитания;
  3. Операции <math>45^x\mbox{ (mod } 257)</math> и <math>log_{45} x</math> (являющиеся обратными друг другу) меняются местами.


При шифровании используется следующая матрица M:[13]
2 2 1 1 16 8 2 1 4 2 4 2 1 1 4 4
1 1 1 1 8 4 2 1 2 1 4 2 1 1 2 2
1 1 4 4 2 1 4 2 4 2 16 8 2 2 1 1
1 1 2 2 2 1 2 1 4 2 8 4 1 1 1 1
4 4 2 1 4 2 4 2 16 8 1 1 1 1 2 2
2 2 2 1 2 1 4 2 8 4 1 1 1 1 1 1
1 1 4 2 4 2 16 8 2 1 2 2 4 4 1 1
1 1 2 1 4 2 8 4 2 1 1 1 2 2 1 1
2 1 16 8 1 1 2 2 1 1 4 4 4 2 4 2
2 1 8 4 1 1 1 1 1 1 2 2 4 2 2 1
4 2 4 2 4 4 1 1 2 2 1 1 16 8 2 1
2 1 4 2 2 2 1 1 1 1 1 1 8 4 2 1
4 2 2 2 1 1 4 4 1 1 4 2 2 1 16 8
4 2 1 1 1 1 2 2 1 1 2 1 2 1 8 4
16 8 1 1 2 2 1 1 4 4 2 1 4 2 4 2
8 4 1 1 1 1 1 1 2 2 2 1 2 1 4 2
При расшифровании используется обратная матрица <math>M^{-1}</math>:[13]
2 −2 1 −2 1 −1 4 −8 2 −4 1 −1 1 −2 1 −1
−4 4 −2 4 −2 2 −8 16 −2 4 −1 1 −1 2 −1 1
1 −2 1 −1 2 −4 1 −1 1 −1 1 −2 2 −2 4 −8
−2 4 −2 2 −2 4 −1 1 −1 1 −1 2 −4 4 −8 16
1 −1 2 −4 1 −1 1 −2 1 −2 1 −1 4 −8 2 −2
−1 1 −2 4 −1 1 −1 2 −2 4 −2 2 −8 16 −4 4
2 −4 1 −1 1 −2 1 −1 2 −2 4 −8 1 −1 1 −2
−2 4 −1 1 −1 2 −1 1 −4 4 −8 16 −2 2 −2 4
1 −1 1 −2 1 −1 2 −4 4 −8 2 −2 1 −2 1 −1
−1 1 −1 2 −1 1 −2 4 −8 16 −4 4 −2 4 −2 2
1 −2 1 −1 4 −8 2 −2 1 −1 1 −2 1 −1 2 −4
−1 2 −1 1 −8 16 −4 4 −2 2 −2 4 −1 1 −2 4
4 −8 2 −2 1 −2 1 −1 1 −2 1 −1 2 −4 1 −1
−8 16 −4 4 −2 4 −2 2 −1 2 −1 1 −2 4 −1 1
1 −1 4 −8 2 −2 1 −2 1 −1 2 −4 1 −1 1 −2
−2 2 −8 16 −4 4 −2 4 −1 1 −2 4 −1 1 −1 2


Генерация ключей

Излагаемый алгоритм применим для входных ключей длиной в 128, 192 и 256 бит (16, 24 и 32 байт соответственно). Первый подключ <math>K_1</math> представляет собой первые 16 байт входного ключа. Генерация остальных ключей производится следующим образом: сначала исходный ключ целиком записывается в ключевой регистр длиной на 1 байт длиннее самого ключа (то есть длина регистра равна для разных входных ключей 17, 25 или 33 байтам). Все байты ключа суммируются по модулю 2 поразрядно, результат записывается в последний байт регистра. Для получения каждого следующего ключа над содержимым регистра выполняются следующие операции (для i от 2 до 2r+1):

  1. Содержимое байт ключевого регистра циклически сдвигается влево на 3 позиции (сдвиг происходит внутри байт в отдельности, а не регистра как целого);
  2. Из регистра выбираются 16 байт. При этом для ключа <math>K_i</math> выбираются байты регистра начиная с i-го и далее по циклу.
  3. Отобранные 16 байт складываются по модулю 256 с байтами слова смещения <math>B_i</math> (смотри ниже). Результат сложения и будет являться подключом <math>K_i</math>.

Слова смещения <math>B_i</math> — это 16-байтные константы, вычисляемые по следующей формуле: <math>B_{i,j} = \begin{cases}

 45^{45^{17i+j}\mbox{ mod }257}\mbox{ mod }257,  & i\mbox{ = 2,3,... 17; }j \mbox{ = 1,3,... 16} \\
 45^{17i+j}\mbox{ mod }257, & i\mbox{ = 18,19,... 33; }j \mbox{ = 1,3,... 16} 

\end{cases}</math>

<math>B_{i,j}</math> — j-й байт i-го слова смещения. Если <math>B_{i,j}=256</math> то этот байт заменяется на 0.

Понятно, что поскольку для различных длин ключей количество итераций шифрования различно (и равно 8, 12 и 16 для ключей длиной 128, 192 и 256 бит соответственно), то и использованы будут не все блоки смещения. Так, при длине ключа в 128 бит будут использованы только <math>B_2</math>, … <math>B_{17}</math>, для ключа в 192 бита — <math>B_2</math>, … <math>B_{25}</math>, а для ключа в 256 бит — все слова смещения.

Криптоанализ

В связи с участием алгоритма SAFER+ в конкурсе AES, к его криптоанализу было обращено весьма пристальное внимание криптологов. В результате было найдено несколько атак на алгоритм. Перечислим некоторые из них:

  • Атака на SAFER+ с длиной входного ключа равной 256. Для её осуществления необходимо знать всего 3 открытых текста и соответствующих им шифротекста, но при этом требуется провести <math>2^{240}</math> тестовых операций шифрования. Понятно, что такое колоссальное количество операций делает атаку абсолютно непрактичной. Тем не менее, она показывает, что алгоритм SAFER+ обладает недостаточным запасом прочности[14].
  • Атака на связанных ключах, требующая около <math>2^{200}</math> тестовых операций шифрования. Также является неосуществимой с практической точки зрения. Сами авторы этих двух атак предложили способ усиления алгоритма SAFER+, полностью защищающий от этих атак.[14] Способ заключается в усилении процедуры генерации подключей.
  • Атака методами дифференциального криптоанализа по потребляемой мощности[15][16].
  • Атаки на усечённые версии SAFER+[9][10].

В ходе конкурса AES алгоритм SAFER+ был охарактеризован следующим образом:[2]

  • Плюсы алгоритма:
    1. большой запас криптостойкости (особенно с применением усиленной процедуры расширения ключей);
    2. низкие требования к вычислительным ресурсам, что позволяет применять алгоритм в маломощных устройствах, таких как смарт-карты;
  • Недостатки алгоритма:
    1. низкая скорость шифрования, достаточно медленная процедура генерации подключей;
    2. уязвимость к атакам по потребляемой мощности (англ.).

SAFER++

Алгоритм является дальнейшим развитием SAFER+, и практически полностью наследует его структуру. Различия заключаются в основном в оптимизации (с точки зрения облегчения вычислений) некоторых участков алгоритма. Он использует меньшее число раундов: семь для 128-битного ключа и десять для 256-битного ключа. Длина блока в этом шифре равна 128 битам, но помимо этого предусматривается режим «обратной совместимости» при использовании блоков длиной 64 бита.

Алгоритм прошёл во вторую фазу конкурса NESSIE, но не был выбран в набор рекомендуемых NESSIE криптографических примитивов. Эксперты сочли, что шифр слишком медленный на всех машинах, кроме смарт-карт, а запас безопасности шифра слишком мал[17].

Алгоритм

Значительная часть процедуры шифрования ничем не отличается от таковой в алгоритме SAFER+. Главное различие заключается в процедуре линейного преобразования, которая была значительно оптимизирована с вычислительной точки зрения (в SAFER+ необходимо производить перемножение с матрицей размеров 16x16, что требует большого количества операций побайтового сложения).

Линейное преобразование, как видно из схемы, состоит из следующих этапов:

  1. 16 входных байтов перемешиваются в следующем порядке: [9, 6, 3, 16, 1, 14, 11, 8, 5, 2, 15, 12, 13, 10, 7, 4];
  2. Байты в новом порядке разбиваются на группы по 4. Каждая группа подвергается 4-точечному псевдопреобразованию Адамара;
  3. После преобразования байты вновь перемешиваются в том же порядке, что и в п.1;
  4. Аналогично п.2 байты снова проходят через псевдопреобразования Адамара. Результат подаётся на выход.

Псевдопреобразование Адамара заключается в умножении 4-байтовой строки на невырожденную матрицу 4x4, которая имеет следующую структуру:

<math>H_4=

\begin{bmatrix}

  2 & 1 &1 &1\\
  1 & 2 &1 &1\\
  1 & 1 &2 &1\\
  1 & 1 &1 &1
\end{bmatrix}

</math>.

Обратная матрица, используемая при расшифровании, имеет вид

<math>H^{-1}_4=

\begin{bmatrix}

  1 & 0 &0 &-1\\
  0 & 1 &0 &-1\\
  0 & 0 &1 &-1\\
  -1 & -1 &-1 &4
\end{bmatrix}

</math>

Преимущество такого подхода по сравнению с умножением на матрицу 16x16, используемую в SAFER+, состоит в том, что для линейного преобразования, в силу структуры матриц преобразования Адамара, требуется значительно меньшее количество элементарных операций. А именно, при умножении 16-байтовой строки на матрицу 16x16 в общем случае требуется 15*16 операций сложения и 16*16 операций умножения. Умножение же на матрицу Адамарова преобразования требует всего лишь 6 операций сложения:[13]

Если a, b, c, d — входные байты, A, B, C, D — выходные байты, то вычисления представимы формулами (сложение производится по модулю 256):

<math>D=a+b+c+d</math> (3 операции сложения),
<math>A=D+a</math> (1 операция сложения),
<math>B=D+b</math> (1 операция сложения),
<math>C=D+c</math> (1 операция сложения).

Таким образом, даже принимая во внимание, что умножение на матрицу <math>H_4</math> производится 8 раз, получаем всего 6*8=48 операций, что значительно меньше, чем в SAFER+ (даже с учётом всех производимых байтовых перестановок в алгоритме SAFER++).

Всю структуру линейного преобразования можно, так же, как и в SAFER+, представить в виде невырожденной матрицы 16x16. Однако, большинство элементов в этой матрице будет равно единице. В обратной матрице, необходимой для совершения процедуры расшифрования, большинство элементов будет равно нулю.

Генерация ключей

Существуют также некоторые отличия от SAFER+ в алгоритме генерации подключей, используемых на различных раундах шифрования. В этом плане различия между SAFER+ и SAFER++ подобны различиям между SAFER K-64 и SAFER K-128, в том смысле, что в SAFER++ чётные и нечётные подключи генерируются независимо друг от друга. Рассмотрим алгоритм более детально.

Используются 2 ключевых регистра длиной 16+1=17 байт. В случае, если длина пользовательского ключа равна 128 битам (16 байт), в оба регистра изначально записывается этот ключ. Если же длина ключа равна 256 битам (32 байта), в первый регистр вписываются байты ключа с 1-го по 16-й, а во второй — с 17-го по 32-й. На место 17-го байта в каждый регистр вписывается байтовая контрольная сумма от первых 16-и байт. После этого для i от 1 до <math>2r+1</math> (r — количество раундов шифрования) производятся следующие действия (для i = 1,3, … 2r+1 рассматривается первый регистр, для i = 2,4, … 2r — второй регистр):

  1. Выбираются 16 байт из регистра, начиная с номера i и далее по циклу. Так, для ключа с номером i=5 байты будут выбраны следующим образом: [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 1, 2, 3],
  2. Полученные байты складываются с соответствующим словом смещения <math>B_i</math> (смотри ниже)
  3. Содержимое всех байт регистра циклически сдвигается на 6 бит в случае нечётного i, и на 3 бита в случае чётного i.

Слова смещения вычисляются практически так же, как и в SAFER+, с той лишь разницей, что изменяются диапазоны изменения параметра i: <math>B_{i,j} = \begin{cases}

 45^{45^{17i+j}\mbox{ mod }257}\mbox{ mod }257, & i\mbox{ = 2,3,... 15; } j\mbox{ = 1,2,... 16} \\
 45^{17i+j}\mbox{ mod }257, & i\mbox{ = 16,17,... 21; } j\mbox{ = 1,2,... 16}

\end{cases}</math>

Криптоанализ

В рамках конкурса NESSIE алгоритм SAFER++ был тщательно исследован на криптостойкость. По заключению экспертов уязвимости предшествующего ему алгоритма SAFER+ не были унаследованы. Для полнораундового алгоритма SAFER++ не было найдено никаких новых атак. При этом был осуществлён ряд атак на варианты шифра с уменьшенным числом раундов шифрования[9][18][19] Одна из них, будучи неосуществимой вследствие огромного числа необходимых вычислений, теоретически способна взломать SAFER++ с 5,5 раундами вместо семи.[20]. Эта атака послужила одной из основных причин, по которым алгоритм не победил в конкурсе. Также, по мнению некоторых экспертов, алгоритм вполне может содержать невыявленные на настоящий момент слабости. Основной же причиной явилось недостаточное быстродействие алгоритма при реализации на многоразрядных устройствах.

Практическое использование

Хотя алгоритмы SAFER не получили статуса стандартов в США или ЕС, они нашли весьма широкое применение. В частности, SAFER+ используется в качестве основы протокола аутентификации в Bluetooth. Однако, в самом алгоритме шифрования в Bluetooth этот алгоритм не используется[1].

Несмотря на то, что в названии алгоритма фигурирует слово «fast» (быстрый), по современным меркам алгоритмы семейства SAFER являются достаточно медленными.

С точки зрения криптостойкости даже самая первая версия алгоритма SAFER K-64 является абсолютно устойчивой к дифференциальному криптоанализу. Последний алгоритм семейства — SAFER++, будучи значительно модифицированным с учетом множества атак, осуществленных на более ранние версии алгоритма, стал ещё более устойчивым. В настоящее время никаких реально осуществимых атак на алгоритм не найдено[1].

Учитывая, насколько далеко продвинулись алгоритмы SAFER за время своего существования — от SAFER K-64 до SAFER++, можно предположить, что на этом развитие этих алгоритмов не закончено[2].

Напишите отзыв о статье "SAFER"

Примечания

  1. 1 2 3 4 Mukherjee, Ganguly, Naskar, 2009.
  2. 1 2 3 4 5 Панасенко С.П. [www.cio-world.ru/it-director/323862/ Эволюция алгоритмов шифрования, шифры SAFER+ и SAFER++(рус.) (12 июля 2007). — Статья с подробным рассмотрением алгоритмов SAFER+ и SAFER++. Проверено 12 ноября 2009.
  3. 1 2 Б. Киви. [kiwibyrd.chat.ru/aes/aes1.htm#b16 Конкурс на новый криптостандарт AES] (рус.) (апрель 1999). — Краткое описание алгоритма SAFER+. Проверено 12 ноября 2009. [www.webcitation.org/658LBlzwb Архивировано из первоисточника 1 февраля 2012].
  4. James L. Massey [www.springerlink.com/content/p14342r72761876h/fulltext.pdf SAFER K-64: A Byte.Oriented Block-Ciphering Algorithm] // Fast Software Encryption. — 1993. — С. 1-17.
  5. 1 2 3 4 5 6 7 Шнайер Б. Глава 14. И ещё блочные шифры // Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си = Applied Cryptography. Protocols, Algorithms and Source Code in C. — М.: Триумф, 2002. — С. 382—384. — 816 с. — 3000 экз. — ISBN 5-89392-055-4.
  6. 1 2 3 4 Menezes, Oorschot, Vanstone, 1996.
  7. 1 2 3 4 5 6 7 Панасенко С.П. [www.cio-world.ru/it-director/321325/ Эволюция алгоритмов шифрования, алгоритмы SAFER K и SAFER SK(рус.) (15 июня 2007). — Статья с подробным рассмотрением алгоритмов SAFER K-64/128 и SAFER SK-64/128. Проверено 12 ноября 2009.
  8. Панасенко С.П. [www.cio-world.ru/weekly/300850/page2.html Современные методы вскрытия алгоритмов шифрования, часть 5] (рус.) (25 декабря 2006). — Описание метода невозможных дифференциалов. Проверено 12 ноября 2009.
  9. 1 2 3 4 Nakahara J.Jr., Preneel B., Vandewalle J. Impossible Differential Attacks on Reduced-Round SAFER Ciphers // Katholieke Universiteit Leuven, Belgium. — 12 марта, 2003.
  10. 1 2 Nakahara J.Jr. Cryptanalysis and Design of Block Ciphers // Katholieke Universiteit Leuven. — Июнь, 2003.
  11. Savard, John [www.quadibloc.com/crypto/co040301.htm SAFER (Secure And Fast Encryption Routine)] (англ.). — описание алгоритмов SAFER K и SAFER SK. Проверено 22 декабря 2009. [www.webcitation.org/655TgISJi Архивировано из первоисточника 31 января 2012].
  12. Панасенко С.П. [www.ixbt.com/soft/alg-encryption-aes.shtml Алгоритмы шифрования — финалисты конкурса AES] (рус.) (24 августа 2006 г.). — содержатся выводы о характеристиках алгоритма SAFER+. Проверено 12 ноября 2009. [www.webcitation.org/655TkOLXP Архивировано из первоисточника 31 января 2012].
  13. 1 2 3 4 Баричев, Гончаров, Серов, 2011.
  14. 1 2 J. Kelsey, B. Schneier, and D. Wagner [www.schneier.com/paper-safer.html Key Schedule Weakness in SAFER+] (англ.) // Second AES Candidate Conference. — 1999.
  15. Eli Biham, Adi Shamir [www.cs.technion.ac.il/~biham/publications.html Power Analysis of the Key Scheduling of the AES Candidates] (англ.) // Second AES Candidate Conference. — 1999.
  16. Chari, Jutla, Rao et al., 1999.
  17. [www.cosic.esat.kuleuven.be/nessie/Bookv015.pdf New European Schemes for Signatures, Integrity, and Encryption] // v. 0.15. — Final report of European project IST-1999-12324, 19 апреля, 2004 г.. — С. 476.
  18. Nakahara J.Jr. An Update to Linear Cryptanalysis of SAFER++ (англ.) // Katholieke Universiteit Leuven, Belgium. — 12 марта, 2003.
  19. Piret G., Quisquater J.-J. Integral Cryptanalysis on reduced-round SAFER++ (англ.) // Universite catolique de Louvain, Louvain-la-Neuve, Belgium.
  20. Biryukov A., De Canniere C., Dellkrantz G. [homes.esat.kuleuven.be/~abiryuko/safer.pdf Cryptanalysis of SAFER++] (англ.) // K.U.Leuven, Belgium. — 2003. [web.archive.org/web/20060515080543/homes.esat.kuleuven.be/~abiryuko/safer.pdf Архивировано] из первоисточника 15 мая 2006.

Литература

  • Шнайер Б. Глава 14. И ещё блочные шифры // Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си = Applied Cryptography. Protocols, Algorithms and Source Code in C. — М.: Триумф, 2002. — С. 382—384. — 816 с. — 3000 экз. — ISBN 5-89392-055-4.
  • Ошибка Lua : attempt to index local 'entity' (a nil value).
  • Ошибка Lua : attempt to index local 'entity' (a nil value).
  • Ошибка Lua : attempt to index local 'entity' (a nil value).
  • Ошибка Lua : attempt to index local 'entity' (a nil value).

Ссылки

На русском языке

  • Панасенко С.П. [www.cio-world.ru/it-director/321325/ Эволюция алгоритмов шифрования] (рус.) (15 июня 2007). — Статья с подробным рассмотрением алгоритмов SAFER K-64/128 и SAFER SK-64/128. Проверено 12 ноября 2009.
  • Горбенко И.Д., Головашич С.А., Лепеха А.Н. [kiev-security.org.ua/box/1/95.shtml Сравнительный анализ симметричных шифров] (рус.) (2004). — сравнительный анализ блочных симметричных шифров, представленных в проекте NESSIE (включая SAFER++). Проверено 12 ноября 2009. [www.webcitation.org/655TmUY9n Архивировано из первоисточника 31 января 2012].

На других языках

  • [www.cosic.esat.kuleuven.be/nessie/ NESSIE New European Schemes for Signatures, Integrity, and Encryption] (англ.). — Официальный сайт «NESSIE». Проверено 12 ноября 2009.
  • [csrc.nist.gov/ NIST official site] (англ.). — Официальный сайт NIST. Проверено 12 ноября 2009. [www.webcitation.org/611HTp2z5 Архивировано из первоисточника 18 августа 2011].
  • Edward Roback, Morris Dworkin. [www.ieee-security.org/Cipher/ConfReports/conf-rep-aes.html first advanced encryption standsrd (AES) candidate conference] (англ.) (August 20-22, 1998). — перечень участников конкурса AES, включая SAFER+. Проверено 12 ноября 2009. [www.webcitation.org/655ToHFpx Архивировано из первоисточника 31 января 2012].
  • John Savard. [www.quadibloc.com/crypto/co040407.htm Towards the 128-bit Era: AES Candidates, SAFER+] (англ.). — описание алгоритма SAFER+. Проверено 12 ноября 2009. [www.webcitation.org/655TohxB3 Архивировано из первоисточника 31 января 2012].
  • John Savard. [www.quadibloc.com/crypto/co040301.htm SAFER (Secure And Fast Encryption Routine)] (англ.). — описание алгоритмов SAFER K и SAFER SK. Проверено 12 ноября 2009. [www.webcitation.org/655TgISJi Архивировано из первоисточника 31 января 2012].
  • [www.users.zetnet.co.uk/hopwood/crypto/scan/cs.html#SAFER-K SCAN’s entry for SAFER K] (англ.). Проверено 12 ноября 2009. [www.webcitation.org/652BeKiUl Архивировано из первоисточника 28 января 2012].
  • [www.users.zetnet.co.uk/hopwood/crypto/scan/cs.html#SAFER-SK SCAN’s entry for SAFER SK] (англ.). Проверено 12 ноября 2009. [www.webcitation.org/652BeKiUl Архивировано из первоисточника 28 января 2012].
  • [www.users.zetnet.co.uk/hopwood/crypto/scan/cs.html#SAFER+ SCAN’s entry for SAFER+] (англ.). Проверено 12 ноября 2009. [www.webcitation.org/652BeKiUl Архивировано из первоисточника 28 января 2012].
  • [www.users.zetnet.co.uk/hopwood/crypto/scan/cs.html#SAFER++ SCAN’s entry for SAFER++] (англ.). Проверено 12 ноября 2009. [www.webcitation.org/652BeKiUl Архивировано из первоисточника 28 января 2012].
  • Lars Knudsen. [groups.google.com/groups?selm=4336pm%24e9t%40net.auckland.ac.nz Announcement by James L. Massey of a strengthened key schedule for the cipher SAFER] (англ.) (12 сен 1995). — описание усиленного алгоритма расширения ключа для SAFER SK, примеры реализации, исходные коды. Проверено 12 ноября 2009.
  • Gilles Piret and Jean-Jacques Quisquater. [eprint.iacr.org/2003/033.pdf Integral Cryptoanalysis on reduced-round SAFER++] (англ.). — Интегральный криптоанализ SAFER++. Проверено 12 ноября 2009. [www.webcitation.org/655Tpd0ZU Архивировано из первоисточника 31 января 2012].
  • James L. Massey. [csrc.nist.gov/archive/aes/round1/conf2/papers/massey.pdf On the Optimality of SAFER+ Diffusion.] (англ.). Cylink Corporation, Sunnyvale, CA, USA. — Анализ оптимальности диффузионной части алгоритма SAFER+. Проверено 12 ноября 2009. [www.webcitation.org/611HUKaLs Архивировано из первоисточника 18 августа 2011].
  • Gustaf Dellkrantz. [www.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2003/rapporter03/dellkrantz_gustaf_03110.pdf Cryptanalysis of Symmetric Block Ciphers — Breaking Reduced KHAZAD and SAFER++] (англ.). — криптоанализ урезанной версии SAFER++. Проверено 12 ноября 2009. [www.webcitation.org/655Tq83WK Архивировано из первоисточника 31 января 2012].
  • Gurgen Khachatrian, Melsik Kuregian, Karen Ispiryan, James Massey Differential analysis of SAFER++ algorithm // Second NESSIE workshop, Egham, UK. — Сентябрь 12-13, (2001).
  • Richard De Moliner. Block-cipher algorithm SAFER (англ.). — Реализация на языке C алгоритмов SAFER-K64, SAFER-K128, SAFER-SK64, SAFER-SK128.
  • James L. Massey, Gurgen H. Khachatrian, Melsik K. Kuregian. [www.cryptosoft.de/docs/Saferpls.pdf Nomination of SAFER+ as Candidate Algorithm for the Advanced Encryption Standatd (AES)] (англ.) (pdf) (12 June 1998). — Описание алгоритма SAFER+. Проверено 24 декабря 2009. [www.webcitation.org/655TqggbI Архивировано из первоисточника 31 января 2012].
  • Gurgen Khachatrian, Melsik Kuregian, Karen Ispiryan, James Massey, «Differential analysis of SAFER++ algorithm» — Second NESSIE workshop, Egham, UK, September 12-13, (2001)
  • Karen Ispiryan «Some family of coordinate permutation for SAFER++» CSIT September 17-20, 2001 Yerevan, Armenia

Отрывок, характеризующий SAFER

Перемена, происшедшая в Пьере, была замечена по своему и его слугами – Терентием и Васькой. Они находили, что он много попростел. Терентий часто, раздев барина, с сапогами и платьем в руке, пожелав покойной ночи, медлил уходить, ожидая, не вступит ли барин в разговор. И большею частью Пьер останавливал Терентия, замечая, что ему хочется поговорить.
– Ну, так скажи мне… да как же вы доставали себе еду? – спрашивал он. И Терентий начинал рассказ о московском разорении, о покойном графе и долго стоял с платьем, рассказывая, а иногда слушая рассказы Пьера, и, с приятным сознанием близости к себе барина и дружелюбия к нему, уходил в переднюю.
Доктор, лечивший Пьера и навещавший его каждый день, несмотря на то, что, по обязанности докторов, считал своим долгом иметь вид человека, каждая минута которого драгоценна для страждущего человечества, засиживался часами у Пьера, рассказывая свои любимые истории и наблюдения над нравами больных вообще и в особенности дам.
– Да, вот с таким человеком поговорить приятно, не то, что у нас, в провинции, – говорил он.
В Орле жило несколько пленных французских офицеров, и доктор привел одного из них, молодого итальянского офицера.
Офицер этот стал ходить к Пьеру, и княжна смеялась над теми нежными чувствами, которые выражал итальянец к Пьеру.
Итальянец, видимо, был счастлив только тогда, когда он мог приходить к Пьеру и разговаривать и рассказывать ему про свое прошедшее, про свою домашнюю жизнь, про свою любовь и изливать ему свое негодование на французов, и в особенности на Наполеона.
– Ежели все русские хотя немного похожи на вас, – говорил он Пьеру, – c'est un sacrilege que de faire la guerre a un peuple comme le votre. [Это кощунство – воевать с таким народом, как вы.] Вы, пострадавшие столько от французов, вы даже злобы не имеете против них.
И страстную любовь итальянца Пьер теперь заслужил только тем, что он вызывал в нем лучшие стороны его души и любовался ими.
Последнее время пребывания Пьера в Орле к нему приехал его старый знакомый масон – граф Вилларский, – тот самый, который вводил его в ложу в 1807 году. Вилларский был женат на богатой русской, имевшей большие имения в Орловской губернии, и занимал в городе временное место по продовольственной части.
Узнав, что Безухов в Орле, Вилларский, хотя и никогда не был коротко знаком с ним, приехал к нему с теми заявлениями дружбы и близости, которые выражают обыкновенно друг другу люди, встречаясь в пустыне. Вилларский скучал в Орле и был счастлив, встретив человека одного с собой круга и с одинаковыми, как он полагал, интересами.
Но, к удивлению своему, Вилларский заметил скоро, что Пьер очень отстал от настоящей жизни и впал, как он сам с собою определял Пьера, в апатию и эгоизм.
– Vous vous encroutez, mon cher, [Вы запускаетесь, мой милый.] – говорил он ему. Несмотря на то, Вилларскому было теперь приятнее с Пьером, чем прежде, и он каждый день бывал у него. Пьеру же, глядя на Вилларского и слушая его теперь, странно и невероятно было думать, что он сам очень недавно был такой же.
Вилларский был женат, семейный человек, занятый и делами имения жены, и службой, и семьей. Он считал, что все эти занятия суть помеха в жизни и что все они презренны, потому что имеют целью личное благо его и семьи. Военные, административные, политические, масонские соображения постоянно поглощали его внимание. И Пьер, не стараясь изменить его взгляд, не осуждая его, с своей теперь постоянно тихой, радостной насмешкой, любовался на это странное, столь знакомое ему явление.
В отношениях своих с Вилларским, с княжною, с доктором, со всеми людьми, с которыми он встречался теперь, в Пьере была новая черта, заслуживавшая ему расположение всех людей: это признание возможности каждого человека думать, чувствовать и смотреть на вещи по своему; признание невозможности словами разубедить человека. Эта законная особенность каждого человека, которая прежде волновала и раздражала Пьера, теперь составляла основу участия и интереса, которые он принимал в людях. Различие, иногда совершенное противоречие взглядов людей с своею жизнью и между собою, радовало Пьера и вызывало в нем насмешливую и кроткую улыбку.
В практических делах Пьер неожиданно теперь почувствовал, что у него был центр тяжести, которого не было прежде. Прежде каждый денежный вопрос, в особенности просьбы о деньгах, которым он, как очень богатый человек, подвергался очень часто, приводили его в безвыходные волнения и недоуменья. «Дать или не дать?» – спрашивал он себя. «У меня есть, а ему нужно. Но другому еще нужнее. Кому нужнее? А может быть, оба обманщики?» И из всех этих предположений он прежде не находил никакого выхода и давал всем, пока было что давать. Точно в таком же недоуменье он находился прежде при каждом вопросе, касающемся его состояния, когда один говорил, что надо поступить так, а другой – иначе.
Теперь, к удивлению своему, он нашел, что во всех этих вопросах не было более сомнений и недоумений. В нем теперь явился судья, по каким то неизвестным ему самому законам решавший, что было нужно и чего не нужно делать.
Он был так же, как прежде, равнодушен к денежным делам; но теперь он несомненно знал, что должно сделать и чего не должно. Первым приложением этого нового судьи была для него просьба пленного французского полковника, пришедшего к нему, много рассказывавшего о своих подвигах и под конец заявившего почти требование о том, чтобы Пьер дал ему четыре тысячи франков для отсылки жене и детям. Пьер без малейшего труда и напряжения отказал ему, удивляясь впоследствии, как было просто и легко то, что прежде казалось неразрешимо трудным. Вместе с тем тут же, отказывая полковнику, он решил, что необходимо употребить хитрость для того, чтобы, уезжая из Орла, заставить итальянского офицера взять денег, в которых он, видимо, нуждался. Новым доказательством для Пьера его утвердившегося взгляда на практические дела было его решение вопроса о долгах жены и о возобновлении или невозобновлении московских домов и дач.
В Орел приезжал к нему его главный управляющий, и с ним Пьер сделал общий счет своих изменявшихся доходов. Пожар Москвы стоил Пьеру, по учету главно управляющего, около двух миллионов.
Главноуправляющий, в утешение этих потерь, представил Пьеру расчет о том, что, несмотря на эти потери, доходы его не только не уменьшатся, но увеличатся, если он откажется от уплаты долгов, оставшихся после графини, к чему он не может быть обязан, и если он не будет возобновлять московских домов и подмосковной, которые стоили ежегодно восемьдесят тысяч и ничего не приносили.
– Да, да, это правда, – сказал Пьер, весело улыбаясь. – Да, да, мне ничего этого не нужно. Я от разоренья стал гораздо богаче.
Но в январе приехал Савельич из Москвы, рассказал про положение Москвы, про смету, которую ему сделал архитектор для возобновления дома и подмосковной, говоря про это, как про дело решенное. В это же время Пьер получил письмо от князя Василия и других знакомых из Петербурга. В письмах говорилось о долгах жены. И Пьер решил, что столь понравившийся ему план управляющего был неверен и что ему надо ехать в Петербург покончить дела жены и строиться в Москве. Зачем было это надо, он не знал; но он знал несомненно, что это надо. Доходы его вследствие этого решения уменьшались на три четверти. Но это было надо; он это чувствовал.
Вилларский ехал в Москву, и они условились ехать вместе.
Пьер испытывал во все время своего выздоровления в Орле чувство радости, свободы, жизни; но когда он, во время своего путешествия, очутился на вольном свете, увидал сотни новых лиц, чувство это еще более усилилось. Он все время путешествия испытывал радость школьника на вакации. Все лица: ямщик, смотритель, мужики на дороге или в деревне – все имели для него новый смысл. Присутствие и замечания Вилларского, постоянно жаловавшегося на бедность, отсталость от Европы, невежество России, только возвышали радость Пьера. Там, где Вилларский видел мертвенность, Пьер видел необычайную могучую силу жизненности, ту силу, которая в снегу, на этом пространстве, поддерживала жизнь этого целого, особенного и единого народа. Он не противоречил Вилларскому и, как будто соглашаясь с ним (так как притворное согласие было кратчайшее средство обойти рассуждения, из которых ничего не могло выйти), радостно улыбался, слушая его.


Так же, как трудно объяснить, для чего, куда спешат муравьи из раскиданной кочки, одни прочь из кочки, таща соринки, яйца и мертвые тела, другие назад в кочку – для чего они сталкиваются, догоняют друг друга, дерутся, – так же трудно было бы объяснить причины, заставлявшие русских людей после выхода французов толпиться в том месте, которое прежде называлось Москвою. Но так же, как, глядя на рассыпанных вокруг разоренной кочки муравьев, несмотря на полное уничтожение кочки, видно по цепкости, энергии, по бесчисленности копышущихся насекомых, что разорено все, кроме чего то неразрушимого, невещественного, составляющего всю силу кочки, – так же и Москва, в октябре месяце, несмотря на то, что не было ни начальства, ни церквей, ни святынь, ни богатств, ни домов, была та же Москва, какою она была в августе. Все было разрушено, кроме чего то невещественного, но могущественного и неразрушимого.
Побуждения людей, стремящихся со всех сторон в Москву после ее очищения от врага, были самые разнообразные, личные, и в первое время большей частью – дикие, животные. Одно только побуждение было общее всем – это стремление туда, в то место, которое прежде называлось Москвой, для приложения там своей деятельности.
Через неделю в Москве уже было пятнадцать тысяч жителей, через две было двадцать пять тысяч и т. д. Все возвышаясь и возвышаясь, число это к осени 1813 года дошло до цифры, превосходящей население 12 го года.
Первые русские люди, которые вступили в Москву, были казаки отряда Винцингероде, мужики из соседних деревень и бежавшие из Москвы и скрывавшиеся в ее окрестностях жители. Вступившие в разоренную Москву русские, застав ее разграбленною, стали тоже грабить. Они продолжали то, что делали французы. Обозы мужиков приезжали в Москву с тем, чтобы увозить по деревням все, что было брошено по разоренным московским домам и улицам. Казаки увозили, что могли, в свои ставки; хозяева домов забирали все то, что они находили и других домах, и переносили к себе под предлогом, что это была их собственность.
Но за первыми грабителями приезжали другие, третьи, и грабеж с каждым днем, по мере увеличения грабителей, становился труднее и труднее и принимал более определенные формы.
Французы застали Москву хотя и пустою, но со всеми формами органически правильно жившего города, с его различными отправлениями торговли, ремесел, роскоши, государственного управления, религии. Формы эти были безжизненны, но они еще существовали. Были ряды, лавки, магазины, лабазы, базары – большинство с товарами; были фабрики, ремесленные заведения; были дворцы, богатые дома, наполненные предметами роскоши; были больницы, остроги, присутственные места, церкви, соборы. Чем долее оставались французы, тем более уничтожались эти формы городской жизни, и под конец все слилось в одно нераздельное, безжизненное поле грабежа.
Грабеж французов, чем больше он продолжался, тем больше разрушал богатства Москвы и силы грабителей. Грабеж русских, с которого началось занятие русскими столицы, чем дольше он продолжался, чем больше было в нем участников, тем быстрее восстановлял он богатство Москвы и правильную жизнь города.
Кроме грабителей, народ самый разнообразный, влекомый – кто любопытством, кто долгом службы, кто расчетом, – домовладельцы, духовенство, высшие и низшие чиновники, торговцы, ремесленники, мужики – с разных сторон, как кровь к сердцу, – приливали к Москве.
Через неделю уже мужики, приезжавшие с пустыми подводами, для того чтоб увозить вещи, были останавливаемы начальством и принуждаемы к тому, чтобы вывозить мертвые тела из города. Другие мужики, прослышав про неудачу товарищей, приезжали в город с хлебом, овсом, сеном, сбивая цену друг другу до цены ниже прежней. Артели плотников, надеясь на дорогие заработки, каждый день входили в Москву, и со всех сторон рубились новые, чинились погорелые дома. Купцы в балаганах открывали торговлю. Харчевни, постоялые дворы устраивались в обгорелых домах. Духовенство возобновило службу во многих не погоревших церквах. Жертвователи приносили разграбленные церковные вещи. Чиновники прилаживали свои столы с сукном и шкафы с бумагами в маленьких комнатах. Высшее начальство и полиция распоряжались раздачею оставшегося после французов добра. Хозяева тех домов, в которых было много оставлено свезенных из других домов вещей, жаловались на несправедливость своза всех вещей в Грановитую палату; другие настаивали на том, что французы из разных домов свезли вещи в одно место, и оттого несправедливо отдавать хозяину дома те вещи, которые у него найдены. Бранили полицию; подкупали ее; писали вдесятеро сметы на погоревшие казенные вещи; требовали вспомоществований. Граф Растопчин писал свои прокламации.


В конце января Пьер приехал в Москву и поселился в уцелевшем флигеле. Он съездил к графу Растопчину, к некоторым знакомым, вернувшимся в Москву, и собирался на третий день ехать в Петербург. Все торжествовали победу; все кипело жизнью в разоренной и оживающей столице. Пьеру все были рады; все желали видеть его, и все расспрашивали его про то, что он видел. Пьер чувствовал себя особенно дружелюбно расположенным ко всем людям, которых он встречал; но невольно теперь он держал себя со всеми людьми настороже, так, чтобы не связать себя чем нибудь. Он на все вопросы, которые ему делали, – важные или самые ничтожные, – отвечал одинаково неопределенно; спрашивали ли у него: где он будет жить? будет ли он строиться? когда он едет в Петербург и возьмется ли свезти ящичек? – он отвечал: да, может быть, я думаю, и т. д.
О Ростовых он слышал, что они в Костроме, и мысль о Наташе редко приходила ему. Ежели она и приходила, то только как приятное воспоминание давно прошедшего. Он чувствовал себя не только свободным от житейских условий, но и от этого чувства, которое он, как ему казалось, умышленно напустил на себя.
На третий день своего приезда в Москву он узнал от Друбецких, что княжна Марья в Москве. Смерть, страдания, последние дни князя Андрея часто занимали Пьера и теперь с новой живостью пришли ему в голову. Узнав за обедом, что княжна Марья в Москве и живет в своем не сгоревшем доме на Вздвиженке, он в тот же вечер поехал к ней.
Дорогой к княжне Марье Пьер не переставая думал о князе Андрее, о своей дружбе с ним, о различных с ним встречах и в особенности о последней в Бородине.
«Неужели он умер в том злобном настроении, в котором он был тогда? Неужели не открылось ему перед смертью объяснение жизни?» – думал Пьер. Он вспомнил о Каратаеве, о его смерти и невольно стал сравнивать этих двух людей, столь различных и вместе с тем столь похожих по любви, которую он имел к обоим, и потому, что оба жили и оба умерли.
В самом серьезном расположении духа Пьер подъехал к дому старого князя. Дом этот уцелел. В нем видны были следы разрушения, но характер дома был тот же. Встретивший Пьера старый официант с строгим лицом, как будто желая дать почувствовать гостю, что отсутствие князя не нарушает порядка дома, сказал, что княжна изволили пройти в свои комнаты и принимают по воскресеньям.
– Доложи; может быть, примут, – сказал Пьер.
– Слушаю с, – отвечал официант, – пожалуйте в портретную.
Через несколько минут к Пьеру вышли официант и Десаль. Десаль от имени княжны передал Пьеру, что она очень рада видеть его и просит, если он извинит ее за бесцеремонность, войти наверх, в ее комнаты.
В невысокой комнатке, освещенной одной свечой, сидела княжна и еще кто то с нею, в черном платье. Пьер помнил, что при княжне всегда были компаньонки. Кто такие и какие они, эти компаньонки, Пьер не знал и не помнил. «Это одна из компаньонок», – подумал он, взглянув на даму в черном платье.
Княжна быстро встала ему навстречу и протянула руку.
– Да, – сказала она, всматриваясь в его изменившееся лицо, после того как он поцеловал ее руку, – вот как мы с вами встречаемся. Он и последнее время часто говорил про вас, – сказала она, переводя свои глаза с Пьера на компаньонку с застенчивостью, которая на мгновение поразила Пьера.
– Я так была рада, узнав о вашем спасенье. Это было единственное радостное известие, которое мы получили с давнего времени. – Опять еще беспокойнее княжна оглянулась на компаньонку и хотела что то сказать; но Пьер перебил ее.
– Вы можете себе представить, что я ничего не знал про него, – сказал он. – Я считал его убитым. Все, что я узнал, я узнал от других, через третьи руки. Я знаю только, что он попал к Ростовым… Какая судьба!
Пьер говорил быстро, оживленно. Он взглянул раз на лицо компаньонки, увидал внимательно ласково любопытный взгляд, устремленный на него, и, как это часто бывает во время разговора, он почему то почувствовал, что эта компаньонка в черном платье – милое, доброе, славное существо, которое не помешает его задушевному разговору с княжной Марьей.
Но когда он сказал последние слова о Ростовых, замешательство в лице княжны Марьи выразилось еще сильнее. Она опять перебежала глазами с лица Пьера на лицо дамы в черном платье и сказала:
– Вы не узнаете разве?
Пьер взглянул еще раз на бледное, тонкое, с черными глазами и странным ртом, лицо компаньонки. Что то родное, давно забытое и больше чем милое смотрело на него из этих внимательных глаз.
«Но нет, это не может быть, – подумал он. – Это строгое, худое и бледное, постаревшее лицо? Это не может быть она. Это только воспоминание того». Но в это время княжна Марья сказала: «Наташа». И лицо, с внимательными глазами, с трудом, с усилием, как отворяется заржавелая дверь, – улыбнулось, и из этой растворенной двери вдруг пахнуло и обдало Пьера тем давно забытым счастием, о котором, в особенности теперь, он не думал. Пахнуло, охватило и поглотило его всего. Когда она улыбнулась, уже не могло быть сомнений: это была Наташа, и он любил ее.
В первую же минуту Пьер невольно и ей, и княжне Марье, и, главное, самому себе сказал неизвестную ему самому тайну. Он покраснел радостно и страдальчески болезненно. Он хотел скрыть свое волнение. Но чем больше он хотел скрыть его, тем яснее – яснее, чем самыми определенными словами, – он себе, и ей, и княжне Марье говорил, что он любит ее.
«Нет, это так, от неожиданности», – подумал Пьер. Но только что он хотел продолжать начатый разговор с княжной Марьей, он опять взглянул на Наташу, и еще сильнейшая краска покрыла его лицо, и еще сильнейшее волнение радости и страха охватило его душу. Он запутался в словах и остановился на середине речи.
Пьер не заметил Наташи, потому что он никак не ожидал видеть ее тут, но он не узнал ее потому, что происшедшая в ней, с тех пор как он не видал ее, перемена была огромна. Она похудела и побледнела. Но не это делало ее неузнаваемой: ее нельзя было узнать в первую минуту, как он вошел, потому что на этом лице, в глазах которого прежде всегда светилась затаенная улыбка радости жизни, теперь, когда он вошел и в первый раз взглянул на нее, не было и тени улыбки; были одни глаза, внимательные, добрые и печально вопросительные.
Смущение Пьера не отразилось на Наташе смущением, но только удовольствием, чуть заметно осветившим все ее лицо.


– Она приехала гостить ко мне, – сказала княжна Марья. – Граф и графиня будут на днях. Графиня в ужасном положении. Но Наташе самой нужно было видеть доктора. Ее насильно отослали со мной.
– Да, есть ли семья без своего горя? – сказал Пьер, обращаясь к Наташе. – Вы знаете, что это было в тот самый день, как нас освободили. Я видел его. Какой был прелестный мальчик.
Наташа смотрела на него, и в ответ на его слова только больше открылись и засветились ее глаза.
– Что можно сказать или подумать в утешенье? – сказал Пьер. – Ничего. Зачем было умирать такому славному, полному жизни мальчику?
– Да, в наше время трудно жить бы было без веры… – сказала княжна Марья.
– Да, да. Вот это истинная правда, – поспешно перебил Пьер.
– Отчего? – спросила Наташа, внимательно глядя в глаза Пьеру.
– Как отчего? – сказала княжна Марья. – Одна мысль о том, что ждет там…
Наташа, не дослушав княжны Марьи, опять вопросительно поглядела на Пьера.
– И оттого, – продолжал Пьер, – что только тот человек, который верит в то, что есть бог, управляющий нами, может перенести такую потерю, как ее и… ваша, – сказал Пьер.
Наташа раскрыла уже рот, желая сказать что то, но вдруг остановилась. Пьер поспешил отвернуться от нее и обратился опять к княжне Марье с вопросом о последних днях жизни своего друга. Смущение Пьера теперь почти исчезло; но вместе с тем он чувствовал, что исчезла вся его прежняя свобода. Он чувствовал, что над каждым его словом, действием теперь есть судья, суд, который дороже ему суда всех людей в мире. Он говорил теперь и вместе с своими словами соображал то впечатление, которое производили его слова на Наташу. Он не говорил нарочно того, что бы могло понравиться ей; но, что бы он ни говорил, он с ее точки зрения судил себя.
Княжна Марья неохотно, как это всегда бывает, начала рассказывать про то положение, в котором она застала князя Андрея. Но вопросы Пьера, его оживленно беспокойный взгляд, его дрожащее от волнения лицо понемногу заставили ее вдаться в подробности, которые она боялась для самой себя возобновлять в воображенье.
– Да, да, так, так… – говорил Пьер, нагнувшись вперед всем телом над княжной Марьей и жадно вслушиваясь в ее рассказ. – Да, да; так он успокоился? смягчился? Он так всеми силами души всегда искал одного; быть вполне хорошим, что он не мог бояться смерти. Недостатки, которые были в нем, – если они были, – происходили не от него. Так он смягчился? – говорил Пьер. – Какое счастье, что он свиделся с вами, – сказал он Наташе, вдруг обращаясь к ней и глядя на нее полными слез глазами.
Лицо Наташи вздрогнуло. Она нахмурилась и на мгновенье опустила глаза. С минуту она колебалась: говорить или не говорить?
– Да, это было счастье, – сказала она тихим грудным голосом, – для меня наверное это было счастье. – Она помолчала. – И он… он… он говорил, что он желал этого, в ту минуту, как я пришла к нему… – Голос Наташи оборвался. Она покраснела, сжала руки на коленах и вдруг, видимо сделав усилие над собой, подняла голову и быстро начала говорить:
– Мы ничего не знали, когда ехали из Москвы. Я не смела спросить про него. И вдруг Соня сказала мне, что он с нами. Я ничего не думала, не могла представить себе, в каком он положении; мне только надо было видеть его, быть с ним, – говорила она, дрожа и задыхаясь. И, не давая перебивать себя, она рассказала то, чего она еще никогда, никому не рассказывала: все то, что она пережила в те три недели их путешествия и жизни в Ярославль.
Пьер слушал ее с раскрытым ртом и не спуская с нее своих глаз, полных слезами. Слушая ее, он не думал ни о князе Андрее, ни о смерти, ни о том, что она рассказывала. Он слушал ее и только жалел ее за то страдание, которое она испытывала теперь, рассказывая.
Княжна, сморщившись от желания удержать слезы, сидела подле Наташи и слушала в первый раз историю этих последних дней любви своего брата с Наташей.
Этот мучительный и радостный рассказ, видимо, был необходим для Наташи.
Она говорила, перемешивая ничтожнейшие подробности с задушевнейшими тайнами, и, казалось, никогда не могла кончить. Несколько раз она повторяла то же самое.
За дверью послышался голос Десаля, спрашивавшего, можно ли Николушке войти проститься.
– Да вот и все, все… – сказала Наташа. Она быстро встала, в то время как входил Николушка, и почти побежала к двери, стукнулась головой о дверь, прикрытую портьерой, и с стоном не то боли, не то печали вырвалась из комнаты.
Пьер смотрел на дверь, в которую она вышла, и не понимал, отчего он вдруг один остался во всем мире.
Княжна Марья вызвала его из рассеянности, обратив его внимание на племянника, который вошел в комнату.
Лицо Николушки, похожее на отца, в минуту душевного размягчения, в котором Пьер теперь находился, так на него подействовало, что он, поцеловав Николушку, поспешно встал и, достав платок, отошел к окну. Он хотел проститься с княжной Марьей, но она удержала его.
– Нет, мы с Наташей не спим иногда до третьего часа; пожалуйста, посидите. Я велю дать ужинать. Подите вниз; мы сейчас придем.
Прежде чем Пьер вышел, княжна сказала ему:
– Это в первый раз она так говорила о нем.


Пьера провели в освещенную большую столовую; через несколько минут послышались шаги, и княжна с Наташей вошли в комнату. Наташа была спокойна, хотя строгое, без улыбки, выражение теперь опять установилось на ее лице. Княжна Марья, Наташа и Пьер одинаково испытывали то чувство неловкости, которое следует обыкновенно за оконченным серьезным и задушевным разговором. Продолжать прежний разговор невозможно; говорить о пустяках – совестно, а молчать неприятно, потому что хочется говорить, а этим молчанием как будто притворяешься. Они молча подошли к столу. Официанты отодвинули и пододвинули стулья. Пьер развернул холодную салфетку и, решившись прервать молчание, взглянул на Наташу и княжну Марью. Обе, очевидно, в то же время решились на то же: у обеих в глазах светилось довольство жизнью и признание того, что, кроме горя, есть и радости.
– Вы пьете водку, граф? – сказала княжна Марья, и эти слова вдруг разогнали тени прошедшего.
– Расскажите же про себя, – сказала княжна Марья. – Про вас рассказывают такие невероятные чудеса.
– Да, – с своей, теперь привычной, улыбкой кроткой насмешки отвечал Пьер. – Мне самому даже рассказывают про такие чудеса, каких я и во сне не видел. Марья Абрамовна приглашала меня к себе и все рассказывала мне, что со мной случилось, или должно было случиться. Степан Степаныч тоже научил меня, как мне надо рассказывать. Вообще я заметил, что быть интересным человеком очень покойно (я теперь интересный человек); меня зовут и мне рассказывают.
Наташа улыбнулась и хотела что то сказать.
– Нам рассказывали, – перебила ее княжна Марья, – что вы в Москве потеряли два миллиона. Правда это?
– А я стал втрое богаче, – сказал Пьер. Пьер, несмотря на то, что долги жены и необходимость построек изменили его дела, продолжал рассказывать, что он стал втрое богаче.
– Что я выиграл несомненно, – сказал он, – так это свободу… – начал он было серьезно; но раздумал продолжать, заметив, что это был слишком эгоистический предмет разговора.
– А вы строитесь?
– Да, Савельич велит.
– Скажите, вы не знали еще о кончине графини, когда остались в Москве? – сказала княжна Марья и тотчас же покраснела, заметив, что, делая этот вопрос вслед за его словами о том, что он свободен, она приписывает его словам такое значение, которого они, может быть, не имели.
– Нет, – отвечал Пьер, не найдя, очевидно, неловким то толкование, которое дала княжна Марья его упоминанию о своей свободе. – Я узнал это в Орле, и вы не можете себе представить, как меня это поразило. Мы не были примерные супруги, – сказал он быстро, взглянув на Наташу и заметив в лице ее любопытство о том, как он отзовется о своей жене. – Но смерть эта меня страшно поразила. Когда два человека ссорятся – всегда оба виноваты. И своя вина делается вдруг страшно тяжела перед человеком, которого уже нет больше. И потом такая смерть… без друзей, без утешения. Мне очень, очень жаль еe, – кончил он и с удовольствием заметил радостное одобрение на лице Наташи.
– Да, вот вы опять холостяк и жених, – сказала княжна Марья.
Пьер вдруг багрово покраснел и долго старался не смотреть на Наташу. Когда он решился взглянуть на нее, лицо ее было холодно, строго и даже презрительно, как ему показалось.
– Но вы точно видели и говорили с Наполеоном, как нам рассказывали? – сказала княжна Марья.
Пьер засмеялся.
– Ни разу, никогда. Всегда всем кажется, что быть в плену – значит быть в гостях у Наполеона. Я не только не видал его, но и не слыхал о нем. Я был гораздо в худшем обществе.
Ужин кончался, и Пьер, сначала отказывавшийся от рассказа о своем плене, понемногу вовлекся в этот рассказ.
– Но ведь правда, что вы остались, чтоб убить Наполеона? – спросила его Наташа, слегка улыбаясь. – Я тогда догадалась, когда мы вас встретили у Сухаревой башни; помните?
Пьер признался, что это была правда, и с этого вопроса, понемногу руководимый вопросами княжны Марьи и в особенности Наташи, вовлекся в подробный рассказ о своих похождениях.
Сначала он рассказывал с тем насмешливым, кротким взглядом, который он имел теперь на людей и в особенности на самого себя; но потом, когда он дошел до рассказа об ужасах и страданиях, которые он видел, он, сам того не замечая, увлекся и стал говорить с сдержанным волнением человека, в воспоминании переживающего сильные впечатления.
Княжна Марья с кроткой улыбкой смотрела то на Пьера, то на Наташу. Она во всем этом рассказе видела только Пьера и его доброту. Наташа, облокотившись на руку, с постоянно изменяющимся, вместе с рассказом, выражением лица, следила, ни на минуту не отрываясь, за Пьером, видимо, переживая с ним вместе то, что он рассказывал. Не только ее взгляд, но восклицания и короткие вопросы, которые она делала, показывали Пьеру, что из того, что он рассказывал, она понимала именно то, что он хотел передать. Видно было, что она понимала не только то, что он рассказывал, но и то, что он хотел бы и не мог выразить словами. Про эпизод свой с ребенком и женщиной, за защиту которых он был взят, Пьер рассказал таким образом:
– Это было ужасное зрелище, дети брошены, некоторые в огне… При мне вытащили ребенка… женщины, с которых стаскивали вещи, вырывали серьги…
Пьер покраснел и замялся.
– Тут приехал разъезд, и всех тех, которые не грабили, всех мужчин забрали. И меня.
– Вы, верно, не все рассказываете; вы, верно, сделали что нибудь… – сказала Наташа и помолчала, – хорошее.
Пьер продолжал рассказывать дальше. Когда он рассказывал про казнь, он хотел обойти страшные подробности; но Наташа требовала, чтобы он ничего не пропускал.
Пьер начал было рассказывать про Каратаева (он уже встал из за стола и ходил, Наташа следила за ним глазами) и остановился.
– Нет, вы не можете понять, чему я научился у этого безграмотного человека – дурачка.
– Нет, нет, говорите, – сказала Наташа. – Он где же?
– Его убили почти при мне. – И Пьер стал рассказывать последнее время их отступления, болезнь Каратаева (голос его дрожал беспрестанно) и его смерть.
Пьер рассказывал свои похождения так, как он никогда их еще не рассказывал никому, как он сам с собою никогда еще не вспоминал их. Он видел теперь как будто новое значение во всем том, что он пережил. Теперь, когда он рассказывал все это Наташе, он испытывал то редкое наслаждение, которое дают женщины, слушая мужчину, – не умные женщины, которые, слушая, стараются или запомнить, что им говорят, для того чтобы обогатить свой ум и при случае пересказать то же или приладить рассказываемое к своему и сообщить поскорее свои умные речи, выработанные в своем маленьком умственном хозяйстве; а то наслажденье, которое дают настоящие женщины, одаренные способностью выбирания и всасыванья в себя всего лучшего, что только есть в проявлениях мужчины. Наташа, сама не зная этого, была вся внимание: она не упускала ни слова, ни колебания голоса, ни взгляда, ни вздрагиванья мускула лица, ни жеста Пьера. Она на лету ловила еще не высказанное слово и прямо вносила в свое раскрытое сердце, угадывая тайный смысл всей душевной работы Пьера.
Княжна Марья понимала рассказ, сочувствовала ему, но она теперь видела другое, что поглощало все ее внимание; она видела возможность любви и счастия между Наташей и Пьером. И в первый раз пришедшая ей эта мысль наполняла ее душу радостию.
Было три часа ночи. Официанты с грустными и строгими лицами приходили переменять свечи, но никто не замечал их.
Пьер кончил свой рассказ. Наташа блестящими, оживленными глазами продолжала упорно и внимательно глядеть на Пьера, как будто желая понять еще то остальное, что он не высказал, может быть. Пьер в стыдливом и счастливом смущении изредка взглядывал на нее и придумывал, что бы сказать теперь, чтобы перевести разговор на другой предмет. Княжна Марья молчала. Никому в голову не приходило, что три часа ночи и что пора спать.
– Говорят: несчастия, страдания, – сказал Пьер. – Да ежели бы сейчас, сию минуту мне сказали: хочешь оставаться, чем ты был до плена, или сначала пережить все это? Ради бога, еще раз плен и лошадиное мясо. Мы думаем, как нас выкинет из привычной дорожки, что все пропало; а тут только начинается новое, хорошее. Пока есть жизнь, есть и счастье. Впереди много, много. Это я вам говорю, – сказал он, обращаясь к Наташе.
– Да, да, – сказала она, отвечая на совсем другое, – и я ничего бы не желала, как только пережить все сначала.
Пьер внимательно посмотрел на нее.
– Да, и больше ничего, – подтвердила Наташа.
– Неправда, неправда, – закричал Пьер. – Я не виноват, что я жив и хочу жить; и вы тоже.
Вдруг Наташа опустила голову на руки и заплакала.
– Что ты, Наташа? – сказала княжна Марья.
– Ничего, ничего. – Она улыбнулась сквозь слезы Пьеру. – Прощайте, пора спать.
Пьер встал и простился.

Княжна Марья и Наташа, как и всегда, сошлись в спальне. Они поговорили о том, что рассказывал Пьер. Княжна Марья не говорила своего мнения о Пьере. Наташа тоже не говорила о нем.
– Ну, прощай, Мари, – сказала Наташа. – Знаешь, я часто боюсь, что мы не говорим о нем (князе Андрее), как будто мы боимся унизить наше чувство, и забываем.
Княжна Марья тяжело вздохнула и этим вздохом признала справедливость слов Наташи; но словами она не согласилась с ней.
– Разве можно забыть? – сказала она.
– Мне так хорошо было нынче рассказать все; и тяжело, и больно, и хорошо. Очень хорошо, – сказала Наташа, – я уверена, что он точно любил его. От этого я рассказала ему… ничего, что я рассказала ему? – вдруг покраснев, спросила она.
– Пьеру? О нет! Какой он прекрасный, – сказала княжна Марья.
– Знаешь, Мари, – вдруг сказала Наташа с шаловливой улыбкой, которой давно не видала княжна Марья на ее лице. – Он сделался какой то чистый, гладкий, свежий; точно из бани, ты понимаешь? – морально из бани. Правда?
– Да, – сказала княжна Марья, – он много выиграл.
– И сюртучок коротенький, и стриженые волосы; точно, ну точно из бани… папа, бывало…
– Я понимаю, что он (князь Андрей) никого так не любил, как его, – сказала княжна Марья.
– Да, и он особенный от него. Говорят, что дружны мужчины, когда совсем особенные. Должно быть, это правда. Правда, он совсем на него не похож ничем?
– Да, и чудесный.
– Ну, прощай, – отвечала Наташа. И та же шаловливая улыбка, как бы забывшись, долго оставалась на ее лице.


Пьер долго не мог заснуть в этот день; он взад и вперед ходил по комнате, то нахмурившись, вдумываясь во что то трудное, вдруг пожимая плечами и вздрагивая, то счастливо улыбаясь.
Он думал о князе Андрее, о Наташе, об их любви, и то ревновал ее к прошедшему, то упрекал, то прощал себя за это. Было уже шесть часов утра, а он все ходил по комнате.
«Ну что ж делать. Уж если нельзя без этого! Что ж делать! Значит, так надо», – сказал он себе и, поспешно раздевшись, лег в постель, счастливый и взволнованный, но без сомнений и нерешительностей.
«Надо, как ни странно, как ни невозможно это счастье, – надо сделать все для того, чтобы быть с ней мужем и женой», – сказал он себе.
Пьер еще за несколько дней перед этим назначил в пятницу день своего отъезда в Петербург. Когда он проснулся, в четверг, Савельич пришел к нему за приказаниями об укладке вещей в дорогу.
«Как в Петербург? Что такое Петербург? Кто в Петербурге? – невольно, хотя и про себя, спросил он. – Да, что то такое давно, давно, еще прежде, чем это случилось, я зачем то собирался ехать в Петербург, – вспомнил он. – Отчего же? я и поеду, может быть. Какой он добрый, внимательный, как все помнит! – подумал он, глядя на старое лицо Савельича. – И какая улыбка приятная!» – подумал он.
– Что ж, все не хочешь на волю, Савельич? – спросил Пьер.
– Зачем мне, ваше сиятельство, воля? При покойном графе, царство небесное, жили и при вас обиды не видим.
– Ну, а дети?
– И дети проживут, ваше сиятельство: за такими господами жить можно.
– Ну, а наследники мои? – сказал Пьер. – Вдруг я женюсь… Ведь может случиться, – прибавил он с невольной улыбкой.
– И осмеливаюсь доложить: хорошее дело, ваше сиятельство.
«Как он думает это легко, – подумал Пьер. – Он не знает, как это страшно, как опасно. Слишком рано или слишком поздно… Страшно!»
– Как же изволите приказать? Завтра изволите ехать? – спросил Савельич.
– Нет; я немножко отложу. Я тогда скажу. Ты меня извини за хлопоты, – сказал Пьер и, глядя на улыбку Савельича, подумал: «Как странно, однако, что он не знает, что теперь нет никакого Петербурга и что прежде всего надо, чтоб решилось то. Впрочем, он, верно, знает, но только притворяется. Поговорить с ним? Как он думает? – подумал Пьер. – Нет, после когда нибудь».
За завтраком Пьер сообщил княжне, что он был вчера у княжны Марьи и застал там, – можете себе представить кого? – Натали Ростову.
Княжна сделала вид, что она в этом известии не видит ничего более необыкновенного, как в том, что Пьер видел Анну Семеновну.
– Вы ее знаете? – спросил Пьер.
– Я видела княжну, – отвечала она. – Я слышала, что ее сватали за молодого Ростова. Это было бы очень хорошо для Ростовых; говорят, они совсем разорились.
– Нет, Ростову вы знаете?
– Слышала тогда только про эту историю. Очень жалко.
«Нет, она не понимает или притворяется, – подумал Пьер. – Лучше тоже не говорить ей».
Княжна также приготавливала провизию на дорогу Пьеру.
«Как они добры все, – думал Пьер, – что они теперь, когда уж наверное им это не может быть более интересно, занимаются всем этим. И все для меня; вот что удивительно».
В этот же день к Пьеру приехал полицеймейстер с предложением прислать доверенного в Грановитую палату для приема вещей, раздаваемых нынче владельцам.
«Вот и этот тоже, – думал Пьер, глядя в лицо полицеймейстера, – какой славный, красивый офицер и как добр! Теперь занимается такими пустяками. А еще говорят, что он не честен и пользуется. Какой вздор! А впрочем, отчего же ему и не пользоваться? Он так и воспитан. И все так делают. А такое приятное, доброе лицо, и улыбается, глядя на меня».
Пьер поехал обедать к княжне Марье.
Проезжая по улицам между пожарищами домов, он удивлялся красоте этих развалин. Печные трубы домов, отвалившиеся стены, живописно напоминая Рейн и Колизей, тянулись, скрывая друг друга, по обгорелым кварталам. Встречавшиеся извозчики и ездоки, плотники, рубившие срубы, торговки и лавочники, все с веселыми, сияющими лицами, взглядывали на Пьера и говорили как будто: «А, вот он! Посмотрим, что выйдет из этого».
При входе в дом княжны Марьи на Пьера нашло сомнение в справедливости того, что он был здесь вчера, виделся с Наташей и говорил с ней. «Может быть, это я выдумал. Может быть, я войду и никого не увижу». Но не успел он вступить в комнату, как уже во всем существе своем, по мгновенному лишению своей свободы, он почувствовал ее присутствие. Она была в том же черном платье с мягкими складками и так же причесана, как и вчера, но она была совсем другая. Если б она была такою вчера, когда он вошел в комнату, он бы не мог ни на мгновение не узнать ее.
Она была такою же, какою он знал ее почти ребенком и потом невестой князя Андрея. Веселый вопросительный блеск светился в ее глазах; на лице было ласковое и странно шаловливое выражение.
Пьер обедал и просидел бы весь вечер; но княжна Марья ехала ко всенощной, и Пьер уехал с ними вместе.
На другой день Пьер приехал рано, обедал и просидел весь вечер. Несмотря на то, что княжна Марья и Наташа были очевидно рады гостю; несмотря на то, что весь интерес жизни Пьера сосредоточивался теперь в этом доме, к вечеру они всё переговорили, и разговор переходил беспрестанно с одного ничтожного предмета на другой и часто прерывался. Пьер засиделся в этот вечер так поздно, что княжна Марья и Наташа переглядывались между собою, очевидно ожидая, скоро ли он уйдет. Пьер видел это и не мог уйти. Ему становилось тяжело, неловко, но он все сидел, потому что не мог подняться и уйти.
Княжна Марья, не предвидя этому конца, первая встала и, жалуясь на мигрень, стала прощаться.
– Так вы завтра едете в Петербург? – сказала ока.