Luffa (хеш-функция)

Поделись знанием:
Перейти к: навигация, поиск
Криптографическая</br>хеш-функция
Название

Lúffa

Разработчики

Даи Ватанабэ, Хисайоши Сато, Кристоф Де Канньере

Создан

2008

Опубликован

2008

Размер хеша

224, 256, 384, 512

Тип

хеш-функция

Lúffa[1] (хеш-функция, произносится как «люффа») — криптографический алгоритм (семейство алгоритмов) хэширования переменной разрядности, разработанный Даи Ватанабэ (англ. Dai Watanabe), Хисайоши Сато (англ. Hisayoshi Sato) из Hitachi [www.hitachi.com/rd/yrl/index.html Yokohama Research Laboratory] и Кристофом Де Канньере (нидерл. Christophe De Cannière) из исследовательской группы COSIC (en:COSIC) Лёвенского католического университета для участия в конкурсе[2], Национального института стандартов и технологий США (NIST). Lúffa является вариантом функции губки, предложенной Гвидо Бертони (англ. Guido Bertoni) и соавторами, криптостойкость которой основана только на случайности основной перестановки. В отличие от оригинальной губки, Lúffa использует множественное число параллельных перестановок и функции инжекции сообщений.





История участия в конкурсе NIST SHA-3[2]

  • 9 декабря 2008 года Luffa в числе 51 кандидата прошла в первый раунд конкурса SHA-3.
  • 25-28 февраля 2009 года хэш-функция была представлена на конференция NIST.
  • 24 июля 2009 года был опубликован список[3] из 14 кандидатов прошедших во второй раунд, в который вошла Luffa.
  • 23-24 августа 2010 года состоялась конференция[4], на которой были рассмотрены кандидаты[3], прошедшие во второй раунд.
  • 10 декабря 2010 года произошло объявление 5 кандидатов последнего тура конкурса SHA-3, Luffa выбыла из соревнования из-за низкой криптостойкости функции сжатия[5].

Алгоритм Lúffa[6]

Обработка сообщения производится цепочкой раундовых функций смешивания с фиксированной входной и выходной длиной, которая представляет собой функцию губку. Цепочка состоит из блоков промежуточного смешивания C’ (раундовых функций) и блока завершения C’’. Раундовые функции образованы семейством нелинейных перестановок, так называемых шаговых функций. На вход функции первого раунда <math>(i = 1)</math> подается <math>(M^{(1)}, V_{0},\ V_{1},\cdots,\ V_{w-1})</math>: первый блок сообщения <math>M^{(1)}</math> и инициализирующие значения <math>V_{0},\ V_{1},\cdots,\ V_{w-1}</math>, где <math>w</math> — количество перестановок. Входными параметрами <math>i</math>-го раунда является <math>(M^{(i)}, H_{0}^{(i-1)},\ H_{1}^{(i-1)},\cdots,\ H_{w-1}^{(i-1)})</math>: выход предыдущего <math>(i-1)</math> раунда и <math>i</math>-й блок сообщения <math>M^{(i)}</math>.

Дополнение сообщения

Дополнение сообщения <math>M</math> длины <math>l</math> до кратности 256-битам производится строкой <math>1000\cdots0</math>, где число нулей <math>k</math> определяется из уравнения <math>l + 1 + k \equiv 0 \mod 256</math>

Инициализация

Кроме первого блока сообщения <math>M^{(1)}</math> на вход функции первого раунда в качестве инициализурующих значений подаются векторы <math>V_{i}</math>.

<math>V_{i,j}</math>
i j
0 1 2 3 4 5 6 7
0 0x6d251e69 0x44b051e0 0x4eaa6fb4 0xdbf78465 0x6e292011 0x90152df4 0xee058139 0xdef610bb
1 0xc3b44b95 0xd9d2f256 0x70eee9a0 0xde099fa3 0x5d9b0557 0x8fc944b3 0xcf1ccf0e 0x746cd581
2 0xf7efc89d 0x5dba5781 0x04016ce5 0xad659c05 0x0306194f 0x666d1836 0x24aa230a 0x8b264ae7
3 0x858075d5 0x36d79cce 0xe571f7d7 0x204b1f67 0x35870c6a 0x57e9e923 0x14bcb808 0x7cde72ce
4 0x6c68e9be 0x5ec41e22 0xc825b7c7 0xaffb4363 0xf5df3999 0x0fc688f1 0xb07224cc 0x03e86cea

Раундовая функция

Раундовая функция является последовательным применением функции инжекции сообщения MI и перестановочной функции P.

Функции инжекции сообщения

Функция инжекции сообщения может быть представлена в виде матрицы преобразования над кольцом <math>GF(2^{8})^{32}</math>. Порождающий полином поля <math>f(x)=x^8+x^4+x^3+x+1</math>.

Функции инжекции сообщения <math>w = 3</math>

<math> \begin{pmatrix} X_0 \\ X_1 \\ X_2 \end{pmatrix} = \begin{pmatrix} 3 & 2 & 2 & 1 \\ 2 & 3 & 2 & 2 \\ 2 & 2 & 3 & 4 \end{pmatrix} \begin{pmatrix} H_0^{(i-1)} \\ H_1^{(i-1)} \\ H_2^{(i-1)} \\ M_i \end{pmatrix} </math>

где числа <math>{1, 2, 3, 4}</math> соответственно обозначают полиномы <math>{1, x, x+1,x^2}</math>

Функции инжекции сообщения <math>w = 4</math>

<math> \begin{pmatrix} X_0 \\ X_1 \\ X_2 \\ X_3 \end{pmatrix} = \begin{pmatrix} 4 & 6 & 6 & 7 & 1 \\ 7 & 4 & 6 & 6 & 2 \\ 6 & 7 & 4 & 6 & 4 \\ 6 & 6 & 7 & 4 & 8 \end{pmatrix} \begin{pmatrix} H_0^{(i-1)} \\ H_1^{(i-1)} \\ H_2^{(i-1)} \\ H_3^{(i-1)} \\ M_i \end{pmatrix} </math>

Функции инжекции сообщения <math>w = 5</math>

<math> \begin{pmatrix} X_0 \\ X_1 \\ X_2 \\ X_3 \\ X_4 \end{pmatrix} = \begin{pmatrix} 0F & 08 & 0A & 0A & 08 & 01 \\ 08 & 0F & 08 & 0A & 0A & 02 \\ 0A & 08 & 0F & 08 & 0A & 04 \\ 0A & 0A & 08 & 0F & 08 & 08 \\ 08 & 0A & 0A & 08 & 0F & 10 \end{pmatrix} \begin{pmatrix} H_0^{(i-1)} \\ H_1^{(i-1)} \\ H_2^{(i-1)} \\ H_3^{(i-1)} \\ H_4^{(i-1)} \\ M_i \end{pmatrix} </math>

Функция перестановки

Нелинейная функция перестановки имеет <math>w \cdot n_{b}</math> битовый вход, длина суб-перестановки — <math>n_{b}</math> фиксирована в спецификации Lúffa[6], <math>n_{b} = 256</math>; количество — <math>w</math> перестановок зависит от размера хеша и приведено в таблице.

Длина хеша <math>n_{h}</math> Количество перестановок <math>w</math>
224 3
256 3
384 4
512 5

Функция перестановки является восьмикратным повторением шаговой функции над блоком <math>Q_i</math>, полученным из функции инжекции сообщения <math>MI</math>. Блок <math>Q_i</math> представляется в виде 8-ми 32-битных слов: <math>a_0, a_1 , a_2 , a_3, a_4 , a_5 , a_6 , a_7</math>. Шаговая функция состоит из 3-х функций: SubCrumb, MixWord, AddConstant.

Permute(a[8], j){ //Permutation Q_j
  for (r = 0; r < 8; r++){
    SubCrumb(a[0],a[1],a[2],a[3]);
    SubCrumb(a[5],a[6],a[7],a[4]);
    for (k = 0; k < 4; k++)
      MixWord(a[k],a[k+4]);
    AddConstant(a, j, r);
  }
}
SubCrumb

SubCrumb — функция замены l-х битов в <math>a_0, a_1 , a_2 , a_3</math> или <math>a_4 , a_5 , a_6 , a_7</math> по S-блоку <math>S[16] = {13, 14, 0, 1, 5, 10, 7, 6, 11, 3, 9, 12, 15, 8, 2, 4}</math>, результатом выполнения является замена <math>a_i \rightarrow x_i</math>, индекс <math>i</math> S-блока получается в результате конкатенации соответствующих битов <math>a_{j,l}</math>: <math>i = a_{3,l} ||a_{2,l} ||a_{1,l} ||a_{0,l}</math>, биты <math>x_{j,l}</math> заменяются на соответствующие биты из <math>S[i]</math> по следующей схеме:

  1. <math>

x_{3,l} ||x_{2,l} ||x_{1,l} ||x_{0,l} = S[i] = S[a_{3,l} ||a_{2,l} ||a_{1,l} ||a_{0,l} ], 0 \leq l < 32 </math>

  1. <math>

x_{4,l} ||x_{7,l} ||x_{6,l} ||x_{5,l} = S[i] = S[a_{4,l} ||a_{7,l} ||a_{6,l} ||a_{5,l} ], 0 \leq l < 32, </math>

MixWord

MixWord — линейная функция перестановки, на вход принимает <math>x_k</math> и <math>x_{k+4}</math>, <math>0 \leq k < 4</math>; выходом являются <math>y_k</math> и <math>y_{k+4}</math>, полученные по алгоритму:

  1. <math>

y_{k+4} = x_{k+4} \oplus x_k </math>

  1. <math>

y_k = x_k <<< 2 </math>, (<<< 2 — циклический сдвиг влево на 2 бита)

  1. <math>

y_k = y_k \oplus y_{k+4} </math>

  1. <math>

y_{k+4} = y_{k+4} <<< 14 </math>

  1. <math>

y_{k+4} = y_{k+4} \oplus y_k </math>

  1. <math>

y_k = y_k <<< 10 </math>

  1. <math>

y_k = y_k \oplus y_{k+4} </math>

  1. <math>

y_{k+4} = y_{k+4} <<< 1 </math>

AddConstant

AddConstant — функция добавления константы <math>c_{j,k}^{(r-1)}</math> к <math>a_{j,k}^{(r-1)}</math>

<math>a_{j,k}^{(r)} = a_{j,k}^{(r-1)} \oplus c_{j,k}^{(r-1)}, k = 0,4 </math>

Таблица констант приведена в дополнении B к спецификации Lúffa[6].

Блок завершения

Завершающий этап формирования дайджеста сообщения состоит из последовательных итераций функции выхода и раундовой функции с нулевым блоком сообщения 0x00<math>\cdots</math>0 на входе. Функция выхода представляет собой XOR всех промежуточных значений, а в качестве результата представляет 256-битное слово <math>Z_{i}</math>. На i-й итерации значение выходной функции определяется как

<math>Z_i = \bigoplus_{k=0}^{w-1}H_{k}^{(N+j)}</math>, где <math>j = i</math>, если <math>N=1</math>, иначе <math>j = i + 1</math>

Через <math>Z_{i,j}</math> обозначим 32-битные слова в <math>Z_{i}</math>, тогда выходом Lúffa являются составленные последовательно <math>Z_{i,j}</math>. Символ "||" обозначает конкатенацию.

Длина хэша <math>n_{h}</math> Значение хэша <math>H</math>
224 <math>Z_{0,0} \cdots Z_{0,6}</math>
256 <math>Z_{0,0} \cdots Z_{0,7}</math>
384 <math>Z_{0,0} \cdots Z_{0,6} Z_{1,0} \cdots Z_{1,3}</math>
512 <math>Z_{0,0} \cdots Z_{0,6} Z_{1,0} \cdots Z_{1,7}</math>

Хэш Lúffa-224 фактически представляет собой хэш Lúffa-256 без последнего 32-битного слова.

Тестовые векторы[6]

Дайджесты сообщения «abc» при различном размере хэша.

224 256 384 512
Z0,0 0xf29311b8 0xf29311b8 0x9a7abb79 0xf4024597
Z0,1 0x7e9e40de 0x7e9e40de 0x7a840e2d 0x3e80d79d
Z0,2 0x7699be23 0x7699be23 0x423c34c9 0x0f4b9b20
Z0,3 0xfbeb5a47 0xfbeb5a47 0x1f559f68 0x2ddd4505
Z0,4 0xcb16ea4f 0xcb16ea4f 0x09bdb291 0xb81b8830
Z0,5 0x5556d47c 0x5556d47c 0x6fb2e9ef 0x501bea31
Z0,6 0xa40c12ad 0xa40c12ad 0xfec2fa0a 0x612b5817
Z0,7 0x764a73bd 0x7a69881b 0xaae38792
Z1,0 0xe9872480 0x1dcefd80
Z1,1 0xc635d20d 0x8ca2c780
Z1,2 0x2fd6e95d 0x20aff593
Z1,3 0x046601a7 0x45d6f91f
Z1,4 0x0ee6b2ee
Z1,5 0xe113f0cb
Z1,6 0xcf22b643
Z1,7 0x81387e8a

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

В ходе второго тура конкурса SHA-3 Luffa-224 и Luffa-256 в первоначальном варианте показали низкую криптостойкость, для успешной атаки потребовалось <math>2^{216}</math> сообщений. После чего, алгоритм был модифицирован Даи Ватанабэ и получил название Luffa v.2. Изменения Luffa v.2[5]:

  • добавлен пустой раунд функции завершения для всех размеров хеша
  • изменен S-блок
  • увеличено количество повторений шаговой функции с 7 до 8

Барт Пренель (Bart Preneel) представил успешную атаку[7] по поиску коллизий для 4-х раундов шаговой функции Luffa за <math>2^{90}</math> операций хэширования и <math>2^{224}</math> для 5-тираундовой, показав тем самым границу стойкости дизайна к диференциальному поиску коллизий.

Производительность

В 2010 году Томас Оливиера и Джулио Лопез провели успешные исследования[8] возможности увеличения производительности оригинальной реализации Luffa. Оптимизированная реализация алгоритма имеет 20 % увеличение производительности вычисления хеша Luffa-512 при исполнении в 1 потоке, для Luffa-256/384 прирост производительности однопоточной реализации в различных тестах составляет не более 5 %. Результаты тестов приведены в таблице в циклах на байт:

  • На 64-битных платформах без SSE:
Реализация алгоритма Luffa-256 Luffa-384 Luffa-512
Оригинальная реализация 2009 год
Однопоточная реализация 27 42 58
Томас Оливиера 2010 год
Однопоточная реализация 24 42 46
Многопоточная реализация 20 24 36
  • С использованием SSE:
Реализация алгоритма Luffa-256 Luffa-384 Luffa-512
Оригинальная реализация 2009 год
Однопоточная реализация 17 19 30
Томас Оливиера 2010 год
Однопоточная реализация 15 16 24
Многопоточная реализация 15 18 25

Для сравнения, реализация Keccak (победитель конкурса SHA-3) в тестах[9] на аналогичном процессоре c использованием SSE показала следующие результаты: Keccak-256 — 15 c/b, Keccak-512 — 12 c/b.

Напишите отзыв о статье "Luffa (хеш-функция)"

Примечания

  1. [www.hitachi.com/rd/yrl/crypto/luffa/index.html The Hash Function Family Luffa]
  2. 1 2 [csrc.nist.gov/groups/ST/hash/sha-3/index.html NIST sha-3 competition]
  3. 1 2 [csrc.nist.gov/groups/ST/hash/sha-3/Round2/submissions_rnd2.html Second round candidates]
  4. [csrc.nist.gov/groups/ST/hash/sha-3/Round2/Aug2010/index.html The second SHA-3 candidate conference]
  5. 1 2 [csrc.nist.gov/groups/ST/hash/sha-3/Round2/documents/Round2_Report_NISTIR_7764.pdf Status Report on the Second Round of the SHA-3]
  6. 1 2 3 4 [www.hitachi.com/rd/yrl/crypto/luffa/Luffa_v2_Specification_20091002.pdf Luffa Specification V.2.01]
  7. [www.hitachi.com/rd/yrl/crypto/luffa/FindingCollisionsForReducedLuffa-256v2_20101108.pdf Finding Collisions for Reduced Luffa-256 v2]
  8. [eprint.iacr.org/2010/457.pdf Improving the perfomance of Luffa Hash Algorithm]
  9. [keccak.noekeon.org/sw_performance.html The Keccak sponge function family: Software performance]

Литература

  • Hisayoshi Sato, Dai Watanabe, Christophe De Canni`ere [www.hitachi.com/rd/yrl/crypto/luffa/Luffa_v2_Specification_20091002.pdf Luffa v.2 Specification].
  • [csrc.nist.gov/groups/ST/hash/sha-3/Round2/documents/Round2_Report_NISTIR_7764.pdf Status Report on the Second Round of the SHA-3]. — С. 19-20.
  • Bart Preneel, Hirotaka Yoshida, Dai Watanabe [www.hitachi.com/rd/yrl/crypto/luffa/FindingCollisionsForReducedLuffa-256v2_20101108.pdf Finding Collisions for Reduced Luffa-256 v2].
  • Thomaz Oliveira, Julio Lopez [eprint.iacr.org/2010/457.pdf Improving the performance of Luffa Hash Algorithm].

Ссылки

  • [www.hitachi.com/rd/yrl/crypto/luffa/index.html The Hash Function Family Luffa]
  • [csrc.nist.gov/groups/ST/hash/sha-3/index.html NIST website for competition]
  • [csrc.nist.gov/groups/ST/hash/sha-3/Round2/submissions_rnd2.html Second round candidates]
  • [csrc.nist.gov/groups/ST/hash/sha-3/Round2/Aug2010/index.html The second SHA-3 candidate conference]
  • [eprint.iacr.org/2008/511.pdf Classification of the SHA-3 Candidates]

Отрывок, характеризующий Luffa (хеш-функция)

– Нет, нет, я всё сделаю, – сказала она, вдруг остановив слезы, – я так счастлива! – Отец и мать вошли в комнату и благословили жениха и невесту.
С этого дня князь Андрей женихом стал ездить к Ростовым.


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


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