JH

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

JH

Разработчик

У Хунцзюнь (англ Wu Hongjun)

Опубликован

16 января 2011 года

Размер хеша

224, 256, 384, 512

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

42

JH — семейство из четырёх криптографических хеш-функций: JH-224, JH-256, JH-384 и JH-512.

Алгоритмы этих хеш-функций отличаются только значением одного внутреннего параметра — длины (в битах) <math>l_{hash}</math> выходного значения (которая и указана после дефиса в названии). Далее в статье при описании алгоритма я буду считать этот параметр частью входных данных для удобства, говоря о JH, как об одном алгоритме или одной хеш-функции.

Хэш-функция JH входит в пятёрку финалистов второго тура SHA-3. В процессе этого конкурса она была улучшена. В статье я описываю самую последнюю на данный момент версию, которую также можно назвать JH42 (так как главное изменение состояло в том, что число раундов в функции компрессии стало равно 42). Дата выхода документации по ней — 16 января 2011 года.

При хэшировании входное сообщение дополняется и разделяется на части, которые далее последовательно обрабатываются так называемой функцией компрессии. Эта функция описана в спецификации в общем виде — то есть с переменным параметром d, меняя который можно конструировать JH-подобные хэш-функции (тем более криптостойкие, чем больше d). В JH исходно d=8.

При выборе финалиста в конкурсе SHA решающую роль играют не криптографические характеристики (они у всех функций отличные), а гибкость и оптимальность в программной и аппаратной реализации. На тему аппаратной реализации существует много исследований, например[1].





Содержание

Алгоритм[2]

Уточнения

О названии элементов битовых векторов

Будем считать, что у всех обсуждаемых тут битовых векторов есть начало и конец, причём бит, расположенный в начале (слева) является первым, имеет позицию 0 и считается наиболее значимым, соответственно, бит, расположенный в конце (справа), является последним, имеет позицию с наибольшим номером, на один меньшим, чем число разрядов вектора, и считается наименее значимым.

То же самое, за исключением номера позиции, будем подразумевать для векторов, состоящих из битовых векторов, например, для сообщения, состоящего из блоков, или блока, состоящего из полубайтов. С номером же позиции какой-либо составной части битового вектора, состоящей из нескольких бит, будет путаница, создаваемая для удобства. Так, номера позиций полубайтов в блоке будут начинаться с нуля, а номера позиций блоков в сообщении — с единицы…

Обозначение конкатенации

Пусть вектор <math>A</math> состоит из последовательно идущих векторов <math>A_1, A_2, \dots, A_N</math>, тогда этот факт будет обозначаться так: <math>A=A_1||A_2|| \dots ||A_N</math>

Используемые функции — обобщённый случай

Здесь описаны функции, с помощью которых можно строить JH-подобные алгоритмы, меняя параметр <math>d</math>

S-box — Si(x)

Это функция, преобразующая s-блок (то есть размеры её входного и выходного значений одинаковы и равны 4 битам). В алгоритме используются 2 таких функции: <math>S_1</math> и <math>S_0</math>. Их таблицы значений такие:

<math>x</math> 0 1 2 3 4 5 6 7 8 9 a b c d e f
<math>S_0(x)</math> 9 0 4 b d c 3 f 1 a 2 6 7 5 8 e
<math>S_1(x)</math> 3 c 6 d 5 7 1 9 f 2 0 4 b a e 8

Линейное преобразование пар ячеек — L(A,B)

Эта функция преобразует пару s-блоков (то есть размеры её входного и выходного значений одинаковы и равны 8 битам). Наиболее лаконичную запись она имеет в терминах конечных полей многочленов.

Рассмотрим конечное поле многочленов над <math>GF(2)</math> степени не выше 3-ей. Оно изоморфно полю <math>GF(2^4)</math>; установим стандартное для таких случаев соответствие межу полем многочленов и полем чисел: многочлен будет соответствовать числу, равному значению многочлена при <math>x=2</math>. Выберем для этого поля многочленов следующий примитивный многочлен:

<math>x^4+x+1</math>.

Тогда, если рассматривать <math>L(A,B)</math>, как функцию, преобразующую 2 многочлена, а числа и буквы — как многочлены, то

<math>L(A,B) = ((5 \bullet A + 2 \bullet B), (2 \bullet A + B))</math>,

где «<math> \bullet</math>» и «<math>+</math>» — операции умножения и сложения в данном поле многочленов.

Перемешивание — Pd

Функция <math>P_d</math> является композицией трёх более простых перемешиваний, преобразующих массив из <math>2^d</math> битовых векторов (то есть размеры их входных и выходных значений одинаковы и равны <math>2^d\times k</math> битам, где <math>k</math> — число бит в одном элементе этого массива):

<math>P_d(A)=\phi_d(P'_d(\pi_d(A)))</math>

Приведем алгоритмы этих перемешиваний, обозначив за <math>A=A_0||A_1||\dots||A_{2^d-1}</math> и <math>B=B_0||B_1||\dots||B_{2^d-1}</math> (где <math>A_i</math> и <math>B_i</math> — битовые векторы одинакового размера для всех <math>i</math>) — входной и выходной векторы соответственно:

  • <math>B=\pi_d(A)</math>:
<math>for~ i=0 ~~to~ 2^{d-2}-1 ~~begin</math>
<math>B_{4i+0}=A_{4i+0}</math>
<math>B_{4i+1}=A_{4i+1}</math>
<math>B_{4i+2}=A_{4i+3}</math>
<math>B_{4i+3}=A_{4i+2}</math>
<math>end</math>
  • <math>B=P'_d(A)</math>:
<math>for~ i=0 ~~to~ 2^{d-1}-1 ~~begin</math>
<math>B_i=A_{2i}</math>
<math>B_{i+2^{d-1}}=A_{2i+1}</math>
<math>end</math>
  • <math>B=\phi_d(A)</math>:
<math>for~ i=0 ~~to~ 2^{d-2}-1 ~~begin</math>
<math>B_{2i}=A_{2i}</math>
<math>B_{2i+1}=A_{2i+1}</math>
<math>B_{2^{d-1}+2i}=A_{2^{d-1}+2i+1}</math>
<math>B_{2^{d-1}+2i+1}=A_{2^{d-1}+2i}</math>
<math>end</math>

Преобразование-раунд — Rd(A,C)

На вход подается <math>2^{d+2}</math>- мерный вектор <math>A</math>. Выход — <math>2^{d+2}</math>- мерный вектор. Так же на вход подается <math>2^d</math>-битная константа <math>C</math>.

Вектор <math>A</math> представляется в виде массива из <math>2^d</math> полубайт: <math>A=A_0||A_1||\dots||A_{2^d-1}</math>.

Потом над каждым полубайтом <math>A_i</math> производится преобразование <math>S_0</math> или <math>S_1</math> в зависимости от значения <math>C_i</math> (если <math>C_i=0</math>, то <math>S_0</math>, иначе — <math>S_1</math>)

Далее над каждой парой вида <math>(S_{C_{2i}}(A_{2i}),S_{C_{2i+1}}(A_{2i+1}))</math> производится линейное преобразование <math>L(S_{C_{2i}}(A_{2i}),S_{C_{2i+1}}(A_{2i+1}))</math>.

И в конце концов результаты опять группируются в вектор, биты которого подвергаются перемешиванию <math>P_d</math>.

Это выражается в виде формулы:

<math>R_d(A,C)=P_d\bigg(L\Big(S_{C_0}(A_0),S_{C_1}(A_1)\Big)||L\Big(S_{C_2}(A_2),S_{C_3}(A_3)\Big)||\dots||L\Big(S_{C_{2^d-2}}(A_{2^d-2}),S_{C_{2^d-1}}(A_{2^d-1})\Big)\bigg)</math>

Преобразование Ed

На входе <math>2^{d+2}</math> — мерный вектор <math>A</math>. Сначала происходит начальная группировка:

  • <math>B=G_d(A)</math>:
<math>for~ i=0 ~~to~ 2^{d-1}-1 ~~begin</math>
<math>B_{8i+0}=A_{i+128\times 0}</math>
<math>B_{8i+1}=A_{i+128\times 2}</math>
<math>B_{8i+2}=A_{i+128\times 4}</math>
<math>B_{8i+3}=A_{i+128\times 6}</math>
<math>B_{8i+4}=A_{i+128\times 1}</math>
<math>B_{8i+5}=A_{i+128\times 3}</math>
<math>B_{8i+6}=A_{i+128\times 5}</math>
<math>B_{8i+7}=A_{i+128\times 7}</math>
<math>end</math>

Далее к результату <math>B</math> этой группировки применяется <math>6\times(d-1)</math> преобразований-раундов <math>R_d(B,C)</math> с константами, изменяющимися от раунда к раунду. Начальное значение переменной <math>C</math> задаётся, как целая часть числа <math>(\sqrt{2}-1)\times 2^{2^d}</math>, то есть

  • <math>C=\left \lfloor (\sqrt{2}-1) \times 2^{2^d} \right \rfloor</math>:
<math>for~ i=1 ~~to~ 6\times(d-1) ~~begin</math>
<math>C=R_{d-2}(C,0)</math>
<math>B=R_d(B,C)</math>
<math>end</math>

Далее происходит конечная разгруппировка, обратная начальной:

  • <math>B_{fin}=G^{-1}_d(B)</math>,

Где <math>G^{-1}_d: G_d(G^{-1}_d(B)) \equiv B</math>

Таким образом,

<math>E_d(A)=G^{-1}(R_d(R_d(R_d(\dots(R_d(G_d(A)),C_1)\dots),C_{6(d-1)-1}),C_{6(d-1)}))</math>

<math>C_i=R_{d-2}(C_{i-1},0),~ i=1\dots 6(d-1), ~C_0=\left \lfloor (\sqrt{2}-1)\times 2^{2^d} \right \rfloor</math>

Функция свёртки Fd(H,M)

На входе <math>2^{d+2}</math>-битный вектор <math>H</math> и <math>2^{d+1}</math>-битный вектор <math>M</math>. Сначала <math>H</math> преобразуется путём побитового сложения первой половины этого вектора с <math>M</math>, потом над результатом выполняется преобразование <math>E_d</math> и наконец результат преобразуется путём побитового сложения его второй половины с вектором <math>M</math>.

Запишем это в виде формул. Пусть <math>H_{left}</math> — первая (старшая) половина вектора <math>H</math>, а <math>H_{right}</math> — вторая. Пусть также функции <math>E_{d-left}(A)</math> и <math>E_{d-right}(A)</math> возвращают левую и правую половины <math>E_d(A)</math> соответственно. Тогда

<math>F_d(H,M)=E_{d-left}\Big((H_{left}\oplus M)||H_{right}\Big)||\bigg(E_{d-right}\Big((H_{left}\oplus M)||H_{right}\Big)\oplus M\bigg)</math>

Используемые функции — адаптация к аппаратной реализации при d=8

Конкретная реализация во многом зависит от таких параметров, как

  1. Желательное быстродействие
  2. Желательный размер
  3. Желательная технология
  4. Желательное энергопотребление
  5. Желательная помехоустойчивость
  6. Желательная стоимость

Поэтому без задания этих параметров адаптация невозможна. Я дам описание преобразования <math>L</math> с помощью обычных для аппаратной разработки побитовых операций, а также некоторые константы, которые могут пригодиться, если нет существенного ограничения по размерам схемы.

Выражение преобразования L через простые операции с битами

Пусть <math>L(A,B)=C_0||C_1||C_2||C_3||D_0||D_1||D_2||D_3,</math>, тогда

<math>D_0 = B_0 \oplus A_1 ; </math>

<math>D_1 = B_1 \oplus A_2 ;</math>

<math>D_2 = B_2 \oplus A_3 \oplus A_0 ; </math>

<math>D_3 = B_3 \oplus A_0 ;</math>

<math>C_0 = A_0 \oplus D_1 ; </math>

<math>C_1 = A_1 \oplus D_2 ;</math>

<math>C_2 = A_2 \oplus D_3 \oplus D_0 ; </math>

<math>C_3 = A_3 \oplus D_0 .</math>

где «<math>\oplus</math>» — операция «исключающее или».

Пусть входной и выходной векторы lin_trans_in[0:7] и lin_trans_out[0:7] соответственно, тогда

Константы H0 при разных lhash

Для <math>l_{hash}=~512, ~384, ~256, ~224</math> будем иметь соответственно:

Константы C раундов R8

<math>C_i=R_6(C_{i-1},0),~ i=1\dots 42, ~C_0=\left \lfloor (\sqrt{2}-1)\times 2^{256} \right \rfloor</math>

Представим их в виде массива, <math>C_{i+1}=</math>round_const[i][0:255]

Позиции полубайтов после перемешивания P8

Пусть на вход <math>P_8</math> поступил 1024-битный вектор — массив из 256-ти 4-битных векторов: <math>A=A_1||A_2||\dots||A_{256}</math>, а на выходе имеем <math>B=B_1||B_2||\dots||B_{256}</math>, тогда <math>B_i=A_{permut\_pose[i*8-1-:8]}</math>. Это означает, что первый полубайт выходного вектора <math>B</math> будет равен полубайту входного вектора <math>A</math> с номером позиции (от 0 до 255), содержащемся в первом байте константы permut_pose[0:2047], второй полубайт выходного вектора — полубайту входного вектора с номером позиции, содержащемся во втором байте permut_pose[0:2047], и т. д.

Используемые функции — адаптация к программной реализации при d=8

Суть этой адаптации заключается в минимизации числа операций путём использования операций с как можно более длинными операндами. Сделать это позволяют такие технологии, как, например, SIMD, SSE2, AVX.

примеры реализации на языке C

Для пояснения работы функций, а также для того, чтобы показать константы раундов, будут приводиться куски кода на C[3]. Будучи соединёнными в один файл и дополненными функцией main(), приведённой ниже, они компилируются[4]; полученная программа реализует функцию <math>E_8</math>.

Функция SBox

Преобразует четыре 128-битных вектора в зависимости от 128-битной константы. То есть

<math>(x_0,x_1,x_2,x_3)=SBox(x_{00},x_{10},x_{20},x_{30},c)</math>

Алгоритм таков. Введём ещё 128-битную переменную t и проинициализируем переменные начальными значениями

<math>(x_0,x_1,x_2,x_3)=(x_{00},x_{10},x_{20},x_{30})</math>,

тогда последовательность присваиваний следующая:

  1. <math>x_3=\neg x_3</math>
  2. <math>x_0 = x_0 \oplus (c~\&~(\neg x_2)) </math>
  3. <math>t~~ = c~ \oplus (x_0 ~\&~x_1) </math>
  4. <math>x_0 = x_0 \oplus (x_2 ~\&~x_3) </math>
  5. <math>x_3 = x_3 \oplus ((\neg x_1)~\&~x_2) </math>
  6. <math>x_1 = x_1 \oplus (x_0 ~\&~x_2) </math>
  7. <math>x_2 = x_2 \oplus (x_0 ~\&~(\neg x_3))</math>
  8. <math>x_0 = x_0 \oplus (x_1|x_3)</math>
  9. <math>x_3 = x_3 \oplus (x_1 ~\&~x_2) </math>
  10. <math>x_1 = x_1 \oplus (t~\&~x_0) </math>
  11. <math>x_2 = x_2 \oplus t</math>

Функция LinTrans

Преобразует восемь 128-битных переменных. Пусть <math>(b_0,b_1,b_2,b_3,b_4,b_5,b_6,b_7)=LinTrans(a_0,a_1,a_2,a_3,a_4,a_5,a_6,a_7)</math>, тогда

<math>b_4 = a_4 \oplus a_1 </math>

<math>b_5 = a_5 \oplus a_2 </math>

<math>b_6 = a_6 \oplus a_3 \oplus a_0 </math>

<math>b_7 = a_7 \oplus a_0 </math>

<math>b_0 = a_0 \oplus b_5 </math>

<math>b_1 = a_1 \oplus b_6 </math>

<math>b_2 = a_2 \oplus b_7 \oplus b_4 </math>

<math>b_3 = a_3 \oplus b_4 </math>

Функция Permutation

Преобразует 128-битную переменную в зависимости от целой константы <math>n:~ 6\ge n \ge 0</math>. Эта функция не оптимизируется для использования 128-битных переменных, однако для совместного использования с другими функциями из этого раздела она необходима.

Пусть <math>b=Permutation(a,n)</math>, <math>b=b_0||b_1||\dots||b_{127},a=a_0||a_1||\dots||a_{127}</math> где. Алгоритм получения числа <math>b</math> таков:

  • <math>b=a</math>:
<math>for~ i=0 ~~to~ \frac{128}{2\times 2^n}-1 ~~begin</math>
<math>Swap \Big((b_{2\times 2^n\times i+0}||b_{2\times 2^n\times i+1}||\dots||b_{2\times 2^n\times i+2^n-1}),~(b_{2\times 2^n\times i+2^n+0}||b_{2\times 2^n\times i+2^n+1}||\dots||b_{2\times 2^n\times i+2^n+2^n-1})\Big)</math>
<math>end</math>

Здесь запись <math>Swap(p,q)</math> означает такой участок алгоритма, после которого переменная <math>p</math> принимает значение, которое было у переменной <math>q</math>, а переменная <math>q</math> принимает значение, которое было у переменной <math>p</math>.

Функция E8, адаптированная к программной реализации

Преобразует 1024-битный вектор. Совпадает с функцией <math>E_8</math>, описанной в обобщённом случае (в том смысле, что при совпадении значений аргументов совпадают значения функций). Пусть на вход поступил 1024-битный вектор. Представим его в виде набора 8-ми 128-битных переменных: <math>(x_0,x_1,x_2,x_3,x_4,x_5,x_6,x_7)</math>. После следующих преобразований они будут представлять собой выходной вектор:

<math>for~ r=0 ~~to~ 41 ~~begin</math>
<math>(x_0,x_2,x_4,x_6)=SBox(x_0,x_2,x_4,x_6,C^{even}_r)</math>
<math>(x_1,x_3,x_5,x_7)=SBox(x_1,x_3,x_5,x_7,C^{odd}_r)</math>
<math>(x_0, x_2, x_4, x6_, x_1, x_3, x_5, x_7) = LinTrans(x_0, x_2, x_4, x_6, x_1, x_3, x_5, x_7)</math>
<math>x_1 = Permutation(x_1,r \bmod 7)</math>
<math>x_3 = Permutation(x_3,r \bmod 7)</math>
<math>x_5 = Permutation(x_5,r \bmod 7)</math>
<math>x_7 = Permutation(x_7,r \bmod 7)</math>
<math>end</math>

Использующиеся 128-битные константы задаются следующим образом: <math>C^{odd}_r=C^1_r||C^3_r||\dots||C^{255}_r,~C^{even}_r=C^0_r||C^2_r||\dots||C^{254}_r,~C_r=R_6(C_{r-1},0),~ r=1\dots 42, ~C_0=\left \lfloor (\sqrt{2}-1)\times 2^{256} \right \rfloor</math>

Исходные данные

Входной параметр

<math>l_{hash}</math> — длина хэша (число бит в выходном векторе хэш-функции).

Может принимать только следующие значения:

  • 224, 256, 384 и 512;
напомним, что данная статья, строго говоря, описывает семейство из 4-х хэш-функций.

Входное сообщение

Представляет собой число — длину сообщения <math>L</math> и битовый вектор <math>M_0</math> (если <math>L \neq 0</math>). Даже если <math>L=0</math> никаких трудностей для вычисления <math>JH(M_0)</math> не возникает.

Алгоритм вычисления JH(M0)

1) Дополнение входного вектора

Присоединение к сообщению <math>M_0</math> дополнительных бит в конце. Происходит в три этапа:
1.1)Дополнение единицей.
Присоединение к концу сообщения единичного бита.
1.2)Дополнение нулями.
Присоединение к концу сообщения, дополненного единицей, нулевых бит в количестве <math>383 + (-L \bmod 512)</math> штук.
1.3)Дополнение длиной сообщения.
Присоединение к концу сообщения, дополненного единицей и нулями, 128-ми бит, в которых записана длина исходного сообщения (например, если <math>L=2</math>, то добавка будет выглядеть так: <math>0\dots 010</math>).
В итоге получится дополненное сообщение <math>M</math> с длиной, кратной <math>512</math>.

2) Свёртка дополненного входного вектора функцией <math>F_8</math>

<math>M</math> разбивается на блоки по <math>512</math> бит. Обозначим за <math>N</math> число таких блоков.
Свёртка происходит за <math>N</math> итераций. На <math>i</math>-той итерации на вход <math>F_8</math> поступает <math>i</math>-тый <math>512</math>-ти битный блок <math>M_i</math> сообщения <math>M</math> и значение <math>H_{i-1}=F_8(H_{i-2},M_{i-1})</math>, вычисленное на предыдущей итерации. Имеется также нулевая итерация, на которой вычисляется <math>H_0</math> из <math>H_{-1}</math> и <math>M_0</math>. Таким образом имеем:
<math>H = H_N = F_8(H_{N-1},M_N)= F_8(F_8(H_{N-2},M_{N-1}),M_N) =\dots= F_8(\dots(H_{-1},M_0)\dots)</math>.
<math>H_{-1}</math> и <math>M_0</math> выбираются так: первые <math>16</math> бит <math>H_{-1}</math> равны входному параметру <math>l_{hash}</math> — размеру выходного хэша (для <math>l_{hash}</math>, равных <math>512, ~324, ~256</math> или <math>224</math> это соответственно 0200h, 0180h, 0100h или 00e0h), а остальные биты <math>H_{-1}</math> и все биты <math>M_0</math> задаются равными <math>0</math>.

3) Выборка хэша из выхода функции <math>F_8</math>

Из <math>1024</math>-битного вектора <math>H_{N}=H^0_{N}||H^1_{N}||\dots||H^{1023}_{N}</math>, полученного на выходе <math>F_8</math> на последней итерации свёртки дополненного входного сообщения, выбираются последние <math>l_{hash}</math> бит:
<math>JH(M_0)=H^{1023+1-l_{hash}}_{N}||H^{1023+2-l_{hash}}_{N}||\dots||H^{1023}_{N}</math>

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

См. также

MDS matrix

Advanced Encryption Standard

Substitution-permutation network

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

Ссылки

  • документация, актуальная в ноябре 2011 года

www3.ntu.edu.sg/home/wuhj/research/jh/jh_round3.pdf

  • варианты исходных кодов на VHDL моделей электронных устройств, реализующих JH:

cryptography.gmu.edu/athena/sources/2011_10_01/folded_unrolled/JH_fv2.zip

cryptography.gmu.edu/athena/sources/2011_10_01/folded_unrolled/JH_u2.zip

cryptography.gmu.edu/athena/sources/2011_10_01/basic/JH_basic.zip

  • варианты исходных кодов на C, реализующих JH:

www3.ntu.edu.sg/home/wuhj/research/jh/jh_ref.h

www3.ntu.edu.sg/home/wuhj/research/jh/jh_bitslice_ref64.h

www3.ntu.edu.sg/home/wuhj/research/jh/jh_sse2_opt64.h

  • страница автора для поддержки JH

www3.ntu.edu.sg/home/wuhj/research/jh/index.html

  • ссылки на исследования криптоаналитиков и архивы файлов, отправлявшиеся на конкурс SHA-3

ehash.iaik.tugraz.at/wiki/JH

  • ссылки на архивы с исходными кодами на VHDL (и сопутствующими файлами) моделей электронных устройств, реализующих алгоритмы хэш-функций, прошедших во второй тур SHA-3

cryptography.gmu.edu/athena/index.php?id=source_codes

  • ссылки на исследования характеристик электронных устройств(реализованных на ПЛИС), реализующих алгоритмы хэш-функций, прошедших в финал второго тура SHA-3

ehash.iaik.tugraz.at/wiki/SHA-3_Hardware_Implementations

rijndael.ece.vt.edu/sha3/publications.html

Примечания

  1. сравнение финалистов второго тура SHA по параметрам реализации на различных ПЛИС www.ecrypt.eu.org/hash2011/proceedings/hash2011_07.pdf
  2. алгоритм взят здесь: www3.ntu.edu.sg/home/wuhj/research/jh/jh_round3.pdf
  3. Эти куски взяты по адресу www3.ntu.edu.sg/home/wuhj/research/jh/jh_sse2_opt64.h и изменены для ясности и простоты.
  4. При использовании компилятора gcc для того, чтобы он подразумевал возможность использования дополнительных командных наборов, поддерживаемых процессором, типа SSE2, в командную строку при компиляции можно добавить опцию -march=native (например "gcc -o prog prog.c -Wall -march=native").

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

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

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

Когда одетое, обмытое тело лежало в гробу на столе, все подходили к нему прощаться, и все плакали.
Николушка плакал от страдальческого недоумения, разрывавшего его сердце. Графиня и Соня плакали от жалости к Наташе и о том, что его нет больше. Старый граф плакал о том, что скоро, он чувствовал, и ему предстояло сделать тот же страшный шаг.
Наташа и княжна Марья плакали тоже теперь, но они плакали не от своего личного горя; они плакали от благоговейного умиления, охватившего их души перед сознанием простого и торжественного таинства смерти, совершившегося перед ними.



Для человеческого ума недоступна совокупность причин явлений. Но потребность отыскивать причины вложена в душу человека. И человеческий ум, не вникнувши в бесчисленность и сложность условий явлений, из которых каждое отдельно может представляться причиною, хватается за первое, самое понятное сближение и говорит: вот причина. В исторических событиях (где предметом наблюдения суть действия людей) самым первобытным сближением представляется воля богов, потом воля тех людей, которые стоят на самом видном историческом месте, – исторических героев. Но стоит только вникнуть в сущность каждого исторического события, то есть в деятельность всей массы людей, участвовавших в событии, чтобы убедиться, что воля исторического героя не только не руководит действиями масс, но сама постоянно руководима. Казалось бы, все равно понимать значение исторического события так или иначе. Но между человеком, который говорит, что народы Запада пошли на Восток, потому что Наполеон захотел этого, и человеком, который говорит, что это совершилось, потому что должно было совершиться, существует то же различие, которое существовало между людьми, утверждавшими, что земля стоит твердо и планеты движутся вокруг нее, и теми, которые говорили, что они не знают, на чем держится земля, но знают, что есть законы, управляющие движением и ее, и других планет. Причин исторического события – нет и не может быть, кроме единственной причины всех причин. Но есть законы, управляющие событиями, отчасти неизвестные, отчасти нащупываемые нами. Открытие этих законов возможно только тогда, когда мы вполне отрешимся от отыскиванья причин в воле одного человека, точно так же, как открытие законов движения планет стало возможно только тогда, когда люди отрешились от представления утвержденности земли.

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


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

«Monsieur le prince Koutouzov, – писал он, – j'envoie pres de vous un de mes aides de camps generaux pour vous entretenir de plusieurs objets interessants. Je desire que Votre Altesse ajoute foi a ce qu'il lui dira, surtout lorsqu'il exprimera les sentiments d'estime et de particuliere consideration que j'ai depuis longtemps pour sa personne… Cette lettre n'etant a autre fin, je prie Dieu, Monsieur le prince Koutouzov, qu'il vous ait en sa sainte et digne garde,
Moscou, le 3 Octobre, 1812. Signe:
Napoleon».
[Князь Кутузов, посылаю к вам одного из моих генерал адъютантов для переговоров с вами о многих важных предметах. Прошу Вашу Светлость верить всему, что он вам скажет, особенно когда, станет выражать вам чувствования уважения и особенного почтения, питаемые мною к вам с давнего времени. Засим молю бога о сохранении вас под своим священным кровом.
Москва, 3 октября, 1812.
Наполеон. ]

«Je serais maudit par la posterite si l'on me regardait comme le premier moteur d'un accommodement quelconque. Tel est l'esprit actuel de ma nation», [Я бы был проклят, если бы на меня смотрели как на первого зачинщика какой бы то ни было сделки; такова воля нашего народа. ] – отвечал Кутузов и продолжал употреблять все свои силы на то, чтобы удерживать войска от наступления.
В месяц грабежа французского войска в Москве и спокойной стоянки русского войска под Тарутиным совершилось изменение в отношении силы обоих войск (духа и численности), вследствие которого преимущество силы оказалось на стороне русских. Несмотря на то, что положение французского войска и его численность были неизвестны русским, как скоро изменилось отношение, необходимость наступления тотчас же выразилась в бесчисленном количестве признаков. Признаками этими были: и присылка Лористона, и изобилие провианта в Тарутине, и сведения, приходившие со всех сторон о бездействии и беспорядке французов, и комплектование наших полков рекрутами, и хорошая погода, и продолжительный отдых русских солдат, и обыкновенно возникающее в войсках вследствие отдыха нетерпение исполнять то дело, для которого все собраны, и любопытство о том, что делалось во французской армии, так давно потерянной из виду, и смелость, с которою теперь шныряли русские аванпосты около стоявших в Тарутине французов, и известия о легких победах над французами мужиков и партизанов, и зависть, возбуждаемая этим, и чувство мести, лежавшее в душе каждого человека до тех пор, пока французы были в Москве, и (главное) неясное, но возникшее в душе каждого солдата сознание того, что отношение силы изменилось теперь и преимущество находится на нашей стороне. Существенное отношение сил изменилось, и наступление стало необходимым. И тотчас же, так же верно, как начинают бить и играть в часах куранты, когда стрелка совершила полный круг, в высших сферах, соответственно существенному изменению сил, отразилось усиленное движение, шипение и игра курантов.


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


Записка, поданная Бенигсеном о необходимости наступления, и сведения казаков о незакрытом левом фланге французов были только последние признаки необходимости отдать приказание о наступлении, и наступление было назначено на 5 е октября.
4 го октября утром Кутузов подписал диспозицию. Толь прочел ее Ермолову, предлагая ему заняться дальнейшими распоряжениями.
– Хорошо, хорошо, мне теперь некогда, – сказал Ермолов и вышел из избы. Диспозиция, составленная Толем, была очень хорошая. Так же, как и в аустерлицкой диспозиции, было написано, хотя и не по немецки:
«Die erste Colonne marschiert [Первая колонна идет (нем.) ] туда то и туда то, die zweite Colonne marschiert [вторая колонна идет (нем.) ] туда то и туда то» и т. д. И все эти колонны на бумаге приходили в назначенное время в свое место и уничтожали неприятеля. Все было, как и во всех диспозициях, прекрасно придумано, и, как и по всем диспозициям, ни одна колонна не пришла в свое время и на свое место.
Когда диспозиция была готова в должном количестве экземпляров, был призван офицер и послан к Ермолову, чтобы передать ему бумаги для исполнения. Молодой кавалергардский офицер, ординарец Кутузова, довольный важностью данного ему поручения, отправился на квартиру Ермолова.
– Уехали, – отвечал денщик Ермолова. Кавалергардский офицер пошел к генералу, у которого часто бывал Ермолов.
– Нет, и генерала нет.
Кавалергардский офицер, сев верхом, поехал к другому.
– Нет, уехали.
«Как бы мне не отвечать за промедление! Вот досада!» – думал офицер. Он объездил весь лагерь. Кто говорил, что видели, как Ермолов проехал с другими генералами куда то, кто говорил, что он, верно, опять дома. Офицер, не обедая, искал до шести часов вечера. Нигде Ермолова не было и никто не знал, где он был. Офицер наскоро перекусил у товарища и поехал опять в авангард к Милорадовичу. Милорадовича не было тоже дома, но тут ему сказали, что Милорадович на балу у генерала Кикина, что, должно быть, и Ермолов там.
– Да где же это?
– А вон, в Ечкине, – сказал казачий офицер, указывая на далекий помещичий дом.
– Да как же там, за цепью?
– Выслали два полка наших в цепь, там нынче такой кутеж идет, беда! Две музыки, три хора песенников.
Офицер поехал за цепь к Ечкину. Издалека еще, подъезжая к дому, он услыхал дружные, веселые звуки плясовой солдатской песни.
«Во олузя а ах… во олузях!..» – с присвистом и с торбаном слышалось ему, изредка заглушаемое криком голосов. Офицеру и весело стало на душе от этих звуков, но вместе с тем и страшно за то, что он виноват, так долго не передав важного, порученного ему приказания. Был уже девятый час. Он слез с лошади и вошел на крыльцо и в переднюю большого, сохранившегося в целости помещичьего дома, находившегося между русских и французов. В буфетной и в передней суетились лакеи с винами и яствами. Под окнами стояли песенники. Офицера ввели в дверь, и он увидал вдруг всех вместе важнейших генералов армии, в том числе и большую, заметную фигуру Ермолова. Все генералы были в расстегнутых сюртуках, с красными, оживленными лицами и громко смеялись, стоя полукругом. В середине залы красивый невысокий генерал с красным лицом бойко и ловко выделывал трепака.
– Ха, ха, ха! Ай да Николай Иванович! ха, ха, ха!..
Офицер чувствовал, что, входя в эту минуту с важным приказанием, он делается вдвойне виноват, и он хотел подождать; но один из генералов увидал его и, узнав, зачем он, сказал Ермолову. Ермолов с нахмуренным лицом вышел к офицеру и, выслушав, взял от него бумагу, ничего не сказав ему.
– Ты думаешь, это нечаянно он уехал? – сказал в этот вечер штабный товарищ кавалергардскому офицеру про Ермолова. – Это штуки, это все нарочно. Коновницына подкатить. Посмотри, завтра каша какая будет!


На другой день, рано утром, дряхлый Кутузов встал, помолился богу, оделся и с неприятным сознанием того, что он должен руководить сражением, которого он не одобрял, сел в коляску и выехал из Леташевки, в пяти верстах позади Тарутина, к тому месту, где должны были быть собраны наступающие колонны. Кутузов ехал, засыпая и просыпаясь и прислушиваясь, нет ли справа выстрелов, не начиналось ли дело? Но все еще было тихо. Только начинался рассвет сырого и пасмурного осеннего дня. Подъезжая к Тарутину, Кутузов заметил кавалеристов, ведших на водопой лошадей через дорогу, по которой ехала коляска. Кутузов присмотрелся к ним, остановил коляску и спросил, какого полка? Кавалеристы были из той колонны, которая должна была быть уже далеко впереди в засаде. «Ошибка, может быть», – подумал старый главнокомандующий. Но, проехав еще дальше, Кутузов увидал пехотные полки, ружья в козлах, солдат за кашей и с дровами, в подштанниках. Позвали офицера. Офицер доложил, что никакого приказания о выступлении не было.