BMW Hash function

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

BMW (англ. BMW — Blue Midnight Wish) — криптографическая хеш-функция (хф) с выходом в n бит, где n=224,256, 384 или 512. Хеш-функции предназначены для создания «отпечатков» или «дайджестов» сообщений произвольной битовой длины. Применяются в различных приложениях или компонентах, связанных с защитой информации.

BLUE MIDNIGHT WISH разрабатывалась как гораздо более эффективная криптографическая хеш-функция, чем SHA-2, в то же время предоставляющая такую же или лучшую безопасность.





История

7 ноября 2008 года Национальный Институт стандартов и технологий США (англ. NIST — National Institute of Standards and Technology) открыл конкурс на новую хэш функцию SHA-3. SHA-3 должен поддерживать размер выходного блока 224, 256, 384 и 512 битов. 160-битные блоки предусмотрены не были из-за возможности нахождения коллизий атаками грубой силы (перебора вариантов). Сохранились те же требования, что и к предыдущим хэш-функциям:

  1. максимальный размер входного значения,
  2. коллизионная стойкость,
  3. стойкость к нахождению прообраза и второго прообраза
  4. потоковый режим вычисления «за один проход».

К функциям были выдвинуты следующие стандартные параметры стойкости:

  • Стойкость к нахождению коллизий — не менее n/2 бит.
  • Стойкость к нахождению прообраза — n бит.
  • Стойкость к нахождению второго прообраза — n-k битов для любого сообщения, короче 2k битов.
  • Устойчивость к атакам на изменение длины сообщения.
  • Устойчивость к новым типам атак, например, на основе мультиколлизий.

В первом раунде приняли участие 51 кандидат на SHA-3. 14 из них (включая BMW) прошли во второй тур.

Алгоритм

Общие свойства

Алгоритм BMW работает с сообщениями, разбивая их на блоки. Блок, в свою очередь, делятся на слова. Размеры блоков и слов зависят от конкретной реализации алгоритма. В таблице ниже перечислены основные свойства всех 4х вариаций алгоритма BMW.

Алгоритм Размер сообщения Размер блока Размер слова Цифровая подпись
BMW224 <264 512 32 224
BMW384 <264 512 32 384
BMW224 <264 1024 64 224
BMW512 <264 1024 64 512

Параметры, переменные и константы

Переменная Описание
H Двойная труба (англ. pipe). Изменяющееся значение, которое минимум в два раза шире, чем конечная цифровая подпись в n бит.
Q Учетверённая труба.
H(i) i-е значение H. H(0) — начальное значение.
H(N) конечное значение H. Оно используется для определения цифровой подписи n бит.
Q(i) i-е значение учетверённой трубы.
H(i, j) je слово из H(i). Где Н(i) разбивается на заранее определённое количество блоков, называемых словами
H(i,0) Самое первое (левое) слово из Н(i)
Q(i, j) j-е слово iй учетверённой трубы Q(i)
Q(i, a) Первые 16 слов из Q(i), те Q(i, j) где j=0..15
Q(i, b) Последние 16 слов из Q(i), те Q(i, j) где j=16..31
l Длина сообщения М в битах
m Количество бит в блоке сообщения M(i)
M Входное сообщения битовой длины l
M(i) iй блок входного сообщения. Битовая длина m
M(i, j) jе слово M(i). M(i)=[M(i,0),M(i,1),..,M(i,15)]
XL,XH Два временных слова (длины 32 или 64 бита, в зависимости от модификации алгоритма), используемые при вычислении H(i)

Операции, используемые в алгоритме

  1. Побитовая операция XOR
  2. Операции побитового сложения + или вычитания — по модулю 32 или 64, в зависимости от модификации алгоритма
  3. Операция сдвига влево (вправо) на r бит SHLr (соответственно SHRr)
  4. Вращение (циклицеский сдвиг влево) ROTLr

Общие особенности структуры BMW

BLUE MIDNIGHT WISH следует общим принципам построения хэш функций, которые часто употребляются на сегодняшний день. А именно, это значит, что алгоритм разбивается на две части:

Preprocessing

  1. Ввод сообщения
  2. Разбор введённого сообщения на m-битовые блоки
  3. Инициализация начальных значений, которые будут использоваться при вычислении хф

Hash computition

  1. Вычисление регистра сообщения из полученного сообщения
  2. Использование этого регистра для вычисления последовательности значений H(i)
  3. n наименее значимых бит (англ. LSB — Least Significant Bits) выбираются как цифровая подпись

Этап предварительных вычислений

В зависимости от модификации алгоритма, процесс обработки введённого сообщения выполняется следующим образом:

BMW224 или BMW256

Пусть длина сообщения l. К сообщению приписывается 1, за которой следует последовательность k нулей, где k — наименьшее неотрицательное решение уравнения l+1+k=448 mod512. Далее приписывается 64-битный блок двоичного представления числа l

BMW384 или BMW512

Пусть длина сообщения l. К сообщению приписывается 1, за которой следует последовательность k нулей, где k — наименьшее неотриц. решение уравнения l+1+k=960 mod1024. Далее приписывается 64-битный блок двоичного представления числа l. Примером может служить представление пос-ти «abc» (согласно ASCII)

<math>

\underset{\text{ASCII}} {
\underbrace{01100001}_{\mathrm{a}} \,
\underbrace{01100010}_{\mathrm{b}} \,
\underbrace{01100011}_{\mathrm{c}} } \,
1 \,
\overbrace{00 \ldots 00}^{935} \,
\overbrace{00 \ldots \underbrace{011000}_{l=24}}^{64}

</math>

Инициализация начальных значений

Начальное значение H(0) в зависит от модификации алгоритма

Алгоритм Начальное значение H(0)
BMW224 0x000120308090A0B1011121318191A1B2021222328292A2B3031323338393A3B040506070C0D0E0F141516171C1D1

E1F242526272C2D2E2F243536373C3D3E3F

BMW256 0x4041424348494A4B5051525358595A5B6061626368696A6B7071727378797A7B444546474C4D4E4F545556575C5D

5E5F646566676C6D6E6F747576777C7D7E7F

BMW384 0x00010203040506071011121314151617202122232425262730313233243536374041424344454647505152535455

56576061626364656667707172737475767708090A0B0C0D0E0F18191A1B1C1D1E1F28292A2B2C2D2E2F38393A3B3C3D3E3F484 94A4B4C4D4E4F58595A5B5C5D5E5F68696A6B6C6D6E6F78797A7B7C7D7E7F

BMW512 0x80818283848586879091929394959697A0A1A2A3A4A5A6A7B0B1B2B3B4B5B6B7C0C1C2C3C4C5C6C7D0D1D2D3

D4D5D6D7E0E1E2E3E4E5E6E7F0F1F2F3F4F5F6F788898A8B8C8D8E8F98999A9B9C9D9E9FA8A9AAABACADAEAFB8B9BABBBCBD BEBFC8C9CACBCCCDCECFD8D9DADBDCDDDEDFE8E9EAEBECEDEEEFF8F9FAFBFCFDFEFF


Этап вычисления Хэш-Функции

В процессе вычислений используются три функции

  • Первая функция F0 : {0,1}2m→{0,1}m. Она принимает два аргумента M(i) и H(i−1) и производит биективное отображение M(i) XOR H(i−1). Здесь M(i) — i-й блок сообщения, H(i−1) — текущее значение двоичной трубы. Результат записывается в первую часть учетверенной трубы: Q(i, a)=F0(M(i), H(i−1))=A2(A1(M(i) XOR H(i−1))).
  • Вторая функция F1 : {0,1}2m→{0,1}m. Она принимает в качестве аргументов блок сообщения M(i) (длины m бит) и первую часть учетверенной трубы Q(i, a). Результат записывается во вторую часть учетверенной трубы Q(i, b)=F1(M(i),Q(i, a)).
  • Третья функция F3 : {0,1}3m→{0,1}m. Для неё используется термин сворачивающей (англ. {{{1}}} — folding ) с целью подчеркнуть свойства её свертки 3m-мерного пространства в m-мерное. Она принимает в качестве аргументов две величины: блок сообщения M(i) и текущее значение учетверенной трубы Q(i)=Q(i, a)||Q(i, b). Результат записывается как новое значение H(i): H(i) = F2(M(i),Q(i))
 Псевдокод вычисления хэш-функции
 for (i=1;i<N;i++)
 {
   Q(i,a)=F0(M(i),H(i-1));
   Q(i,b)=F1(M(i),Q(i,a));
   Q(i)=Q(i,a)||Q(i,b);
   H(i)=F2(M(i),Q(i));
 }
 Hash=N_LeastSignificantBits(H(i));

Описание функций f0, f1 и f2

Вспомогательные вычисления:

Для определения функций f0, f1 и f2 сначала вводядся дополнительные функции

BMW224/BMW256 BMW384/BMW512
<math>\begin{align}
 s_0(x) &= SHR^1(x) \otimes SHL^3 (x) \otimes ROTL^{4}(x)  \otimes ROTL^{19}(x)\\
 s_1(x) &= SHR^1(x) \otimes SHL^2 (x) \otimes ROTL^{8}(x)  \otimes ROTL^{23}(x)\\
 s_2(x) &= SHR^2(x) \otimes SHL^1 (x) \otimes ROTL^{12}(x) \otimes ROTL^{25}(x)\\
 s_3(x) &= SHR^2(x) \otimes SHL^2 (x) \otimes ROTL^{15}(x) \otimes ROTL^{29}(x)\\
 s_4(x) &= SHR^1(x) \otimes x\\
 s_5(x) &= SHR^2(x) \otimes x\\
 r_1(x) &= ROTL^{3}(x)\\
 r_2(x) &= ROTL^{7}(x)\\
 r_3(x) &= ROTL^{13}(x)\\
 r_4(x) &= ROTL^{16}(x)\\
 r_5(x) &= ROTL^{19}(x)\\
 r_6(x) &= ROTL^{23}(x)\\
 r_7(x) &= ROTL^{27}(x)

\end{align}</math> || <math>\begin{align}

 s_0(x) &= SHR^1(x) \otimes SHL^3 (x) \otimes ROTL^{4}(x)  \otimes ROTL^{37}(x)\\
 s_1(x) &= SHR^1(x) \otimes SHL^2 (x) \otimes ROTL^{13}(x) \otimes ROTL^{43}(x)\\
 s_2(x) &= SHR^2(x) \otimes SHL^1 (x) \otimes ROTL^{19}(x) \otimes ROTL^{53}(x)\\
 s_3(x) &= SHR^2(x) \otimes SHL^2 (x) \otimes ROTL^{28}(x) \otimes ROTL^{59}(x)\\
 s_4(x) &= SHR^1(x) \otimes x\\
 s_5(x) &= SHR^2(x) \otimes x\\
 r_1(x) &= ROTL^{5}(x)\\
 r_2(x) &= ROTL^{11}(x)\\
 r_3(x) &= ROTL^{27}(x)\\
 r_4(x) &= ROTL^{32}(x)\\
 r_5(x) &= ROTL^{37}(x)\\
 r_6(x) &= ROTL^{43}(x)\\
 r_7(x) &= ROTL^{53}(x)

\end{align}</math>

<math>\begin{align}

 \begin{array}{rccccccc}
   \text{expand}_1(j) =& s_1 (Q^{(i)}_{j-16}) &+& s_2 (Q^{(i)}_{j-15}) &+& s_3 (Q^{(i)}_{j-14}) &+& s_0 (Q^{(i)}_{j-13}) \\
   +& s_1 (Q^{(i)}_{j-12}) &+& s_2 (Q^{(i)}_{j-11}) &+& s_3 (Q^{(i)}_{j-10}) &+& s_0 (Q^{(i)}_{j-9}) \\
   +& s_1 (Q^{(i)}_{j-8}) &+& s_2 (Q^{(i)}_{j-7}) &+& s_3 (Q^{(i)}_{j-6}) &+& s_0 (Q^{(i)}_{j-5}) \\
   +& s_1 (Q^{(i)}_{j-4}) &+& s_2 (Q^{(i)}_{j-3}) &+& s_3 (Q^{(i)}_{j-2}) &+& s_0 (Q^{(i)}_{j-1}) \\
   +& M^{(i)}_{(j-16)\mathtt{mod} 16} &+& M^{(i)}_{(j-13)\mathtt{mod} 16} &-& M^{(i)}_{(j-6)\mathtt{mod} 16} &+& K_j
 \end{array}

\end{align}</math>

<math>\begin{align}

 \begin{array}{rccccccc}
   \text{expand}_2(j) =& Q^{(i)}_{j-16} &+& r_1 (Q^{(i)}_{j-15}) &+& (Q^{(i)}_{j-14}) &+& r_2 (Q^{(i)}_{j-13}) \\
   +& Q^{(i)}_{j-12} &+& r_3 (Q^{(i)}_{j-11}) &+&    Q^{(i)}_{j-10}&+& r_4 (Q^{(i)}_{j-9}) \\
   +& Q^{(i)}_{j-8}  &+& r_5 (Q^{(i)}_{j-7})  &+&    Q^{(i)}_{j-6} &+& r_6 (Q^{(i)}_{j-5}) \\
   +& Q^{(i)}_{j-4}  &+& r_7 (Q^{(i)}_{j-3})  &+&s_5(Q^{(i)}_{j-2} &+& r_4 (Q^{(i)}_{j-1}) \\
   +& M^{(i)}_{(j-16)\mathtt{mod} 16} &+& M^{(i)}_{(j-13)\mathtt{mod} 16} &-& M^{(i)}_{(j-6)\mathtt{mod} 16} &+& K_j
 \end{array}

\end{align}</math>


Здесь константа Kj=j × (0x05555555) (для 32 битовых версий) и Kj=j × (0x0555555555555555) (для 64 битовых версий). j=16,17,…,31

Функции expand1 и expand2 используются на этапе вычисления функции F1, то есть на этапе расширения учетверенной трубы. Первая функция, expand1, является вычислительно гораздо более сложной, чем вторая, но даёт значительно лучшие результаты.

Функция f0:

Функция f1:

Параметры ExpandRound1 и ExpandRound2 определяют, сколько итераций будет выполнено каждым из алгоритмов expand1 и expand2, описанных выше.

For (j=0;j<ExpandRound1;j++)

  Q(i,j)=expand1(j+16);

For (j=ExpandRound1;j<ExpandRound2+ExpandRound1;j++)

  Q(i,j)=expand2(j+16);

Функция f2:

1. Подсчёт дополнительных переменных XL и XH

<math>\begin{array}{rcccccccccc}XL&=&&&Q_{16}^{\left(i\right)}&\oplus&Q_{17}^{\left(i\right)}&\oplus&\cdots&\oplus&Q_{23}^{\left(i\right)}\\XH&=&XL&\oplus&Q_{24}^{\left(i\right)}&\oplus&Q_{25}^{\left(i\right)}&\oplus&\cdots&\oplus&Q_{31}^{\left(i\right)}\end{array}</math>


2. Вычисление нового значения H(i)

<math> \begin{array} { l c r c r c r} H^{(i)}_0 = & & \big( SHL^5 (XH)\otimes& SHR^5(Q^{(i)}_{16})& \otimes M^{(i)}_0 \big)&+& \big( XL \otimes Q^{(i)}_{24} \otimes Q^{(i)}_0\\ H^{(i)}_1 = & & \big( SHR^7 (XH)\otimes& SHL^8(Q^{(i)}_{17})& \otimes M^{(i)}_1 \big)&+& \big( XL \otimes Q^{(i)}_{25} \otimes Q^{(i)}_1\\ H^{(i)}_2 = & & \big( SHR^5 (XH)\otimes& SHL^5(Q^{(i)}_{18})& \otimes M^{(i)}_2 \big)&+& \big( XL \otimes Q^{(i)}_{26} \otimes Q^{(i)}_2\\ H^{(i)}_3 = & & \big( SHR^1 (XH)\otimes& SHL^5(Q^{(i)}_{19})& \otimes M^{(i)}_3 \big)&+& \big( XL \otimes Q^{(i)}_{27} \otimes Q^{(i)}_3\\ H^{(i)}_4 = & & \big( SHR^3 (XH)\otimes& Q^{(i)}_{20} & \otimes M^{(i)}_4 \big)&+& \big( XL \otimes Q^{(i)}_{28} \otimes Q^{(i)}_4\\ H^{(i)}_5 = & & \big( SHL^6 (XH)\otimes& SHR^6(Q^{(i)}_{21})& \otimes M^{(i)}_5 \big)&+& \big( XL \otimes Q^{(i)}_{29} \otimes Q^{(i)}_5\\ H^{(i)}_6 = & & \big( SHR^4 (XH)\otimes& SHL^6(Q^{(i)}_{22})& \otimes M^{(i)}_6 \big)&+& \big( XL \otimes Q^{(i)}_{30} \otimes Q^{(i)}_6\\ H^{(i)}_7 = & & \big( SHR^{11}(XH)\otimes& SHL^2(Q^{(i)}_{23})& \otimes M^{(i)}_7 \big)&+& \big( XL \otimes Q^{(i)}_{31} \otimes Q^{(i)}_7\\ H^{(i)}_8 =ROTL^{9} (H^{(i)}_4)&+& \big( XH \otimes& Q^{(i)}_{24} & \otimes M^{(i)}_8 \big)&+& \big( SHR^8(XL)\otimes Q^{(i)}_{23} \otimes Q^{(i)}_8\\ H^{(i)}_9 =ROTL^{10}(H^{(i)}_5)&+& \big( XH \otimes& Q^{(i)}_{25} & \otimes M^{(i)}_9 \big)&+& \big( SHR^6(XL)\otimes Q^{(i)}_{16} \otimes Q^{(i)}_9\\ H^{(i)}_{10}=ROTL^{11}(H^{(i)}_6)&+& \big( XH \otimes& Q^{(i)}_{26} & \otimes M^{(i)}_{10}\big)&+& \big( SHR^6(XL)\otimes Q^{(i)}_{17} \otimes Q^{(i)}_{10}\\ H^{(i)}_{11}=ROTL^{12}(H^{(i)}_7)&+& \big( XH \otimes& Q^{(i)}_{27} & \otimes M^{(i)}_{11}\big)&+& \big( SHR^4(XL)\otimes Q^{(i)}_{18} \otimes Q^{(i)}_{11}\\ H^{(i)}_{12}=ROTL^{13}(H^{(i)}_0)&+& \big( XH \otimes& Q^{(i)}_{28} & \otimes M^{(i)}_{12}\big)&+& \big( SHR^3(XL)\otimes Q^{(i)}_{19} \otimes Q^{(i)}_{12}\\ H^{(i)}_{13}=ROTL^{14}(H^{(i)}_1)&+& \big( XH \otimes& Q^{(i)}_{29} & \otimes M^{(i)}_{13}\big)&+& \big( SHR^4(XL)\otimes Q^{(i)}_{20} \otimes Q^{(i)}_{13}\\ H^{(i)}_{14}=ROTL^{15}(H^{(i)}_2)&+& \big( XH \otimes& Q^{(i)}_{30} & \otimes M^{(i)}_{14}\big)&+& \big( SHR^7(XL)\otimes Q^{(i)}_{21} \otimes Q^{(i)}_{14}\\ H^{(i)}_{15}=ROTL^{16}(H^{(i)}_3)&+& \big( XH \otimes& Q^{(i)}_{31} & \otimes M^{(i)}_{15}\big)&+& \big( SHR^2(XL)\otimes Q^{(i)}_{22} \otimes Q^{(i)}_{15} \end{array} </math>

Конечное значение хэш-функции

После того, как посчитано конечное значение H(N), необходимо выбрать n бит, соответствующих значению хэш функции Hash=Hash(H(N))

  • Hash=H(N,8)||H(N,9)||…||H(n,15) — для версий BMW256 и BMW512
  • Hash=H(N,10)||H(N,11)||…||H(n,15) — для версии BMW384
  • Hash=H(N,9)||H(N,10)||…||H(n,15) — для версии BMW224



Криптоанализ Blue Midnight Wish

Согласно исследованиям, проведёнными [www.item.ntnu.no/people/personalpages/fac/danilog/blue_midnight_wish/ группой разработчиков алгоритма BMW], можно сформулировать основные положения о криптографической силе, устойчивости к коллизиям, нахождению прообразов, повторных прообразов, устойчивости к удлинению длины и мультиколлизионным атакам:

  1. Устойчивость к коллизиям примерно n/2 бит
  2. Устойчивость к нахождению прообразов n бит
  3. Повторное нахождение прообразов n-k бит для всех сообщений короче 2n-k бит
  4. Устойчивость к увеличению длины
  5. Устойчивость к мультиколлизионным атакам

Решение конкурсной комиссии NIST

«BMW обладает очень хорошей производительностью и, по-видимому, подходит для большинства платформ. Имеет современные требования к памяти. Наиболее серьёзные криптоаналитические результаты против BMW — это на практике не важные псевдо-коллизионные атаки. Эти атаки ставят под вопрос безопасность функции.»

«BMW оказывается неустойчивой к псевдо-атакам — коллизиям и 2 м прообразам. Уровень безопасности является ниже ожидаемого: BMW-256 понижается до 65 бит, BMW-512 — до 128 бит. Затраты памяти, необходимые для совершения этих атак, являются несущественными»

Напишите отзыв о статье "BMW Hash function"

Литература

  • Danilo Gligoroski, Vlastimil Klima, Svein Johan Knapskog, Mohamed El-Hadedy, Jørn Amundsen, Stig Frode Mjølsnes. [www.item.ntnu.no/people/personalpages/fac/danilog/blue_midnight_wish Blue Midnight Wish]. — Trondheim, Norway: Norwegian University of Science and Technology, 2008. — С. 71.
  • Søren S. Thomsen. [www2.mat.dtu.dk/people/S.Thomsen/bmw/bmw-pseudo.pdf Pseudo-cryptanalysis of Blue Midnight Wish]. — 2009. — С. 7.

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

– Это сомнительно, – сказал князь Андрей. – Monsieur le vicomte [Господин виконт] совершенно справедливо полагает, что дела зашли уже слишком далеко. Я думаю, что трудно будет возвратиться к старому.
– Сколько я слышал, – краснея, опять вмешался в разговор Пьер, – почти всё дворянство перешло уже на сторону Бонапарта.
– Это говорят бонапартисты, – сказал виконт, не глядя на Пьера. – Теперь трудно узнать общественное мнение Франции.
– Bonaparte l'a dit, [Это сказал Бонапарт,] – сказал князь Андрей с усмешкой.
(Видно было, что виконт ему не нравился, и что он, хотя и не смотрел на него, против него обращал свои речи.)
– «Je leur ai montre le chemin de la gloire» – сказал он после недолгого молчания, опять повторяя слова Наполеона: – «ils n'en ont pas voulu; je leur ai ouvert mes antichambres, ils se sont precipites en foule»… Je ne sais pas a quel point il a eu le droit de le dire. [Я показал им путь славы: они не хотели; я открыл им мои передние: они бросились толпой… Не знаю, до какой степени имел он право так говорить.]
– Aucun, [Никакого,] – возразил виконт. – После убийства герцога даже самые пристрастные люди перестали видеть в нем героя. Si meme ca a ete un heros pour certaines gens, – сказал виконт, обращаясь к Анне Павловне, – depuis l'assassinat du duc il y a un Marietyr de plus dans le ciel, un heros de moins sur la terre. [Если он и был героем для некоторых людей, то после убиения герцога одним мучеником стало больше на небесах и одним героем меньше на земле.]
Не успели еще Анна Павловна и другие улыбкой оценить этих слов виконта, как Пьер опять ворвался в разговор, и Анна Павловна, хотя и предчувствовавшая, что он скажет что нибудь неприличное, уже не могла остановить его.
– Казнь герцога Энгиенского, – сказал мсье Пьер, – была государственная необходимость; и я именно вижу величие души в том, что Наполеон не побоялся принять на себя одного ответственность в этом поступке.
– Dieul mon Dieu! [Боже! мой Боже!] – страшным шопотом проговорила Анна Павловна.
– Comment, M. Pierre, vous trouvez que l'assassinat est grandeur d'ame, [Как, мсье Пьер, вы видите в убийстве величие души,] – сказала маленькая княгиня, улыбаясь и придвигая к себе работу.
– Ah! Oh! – сказали разные голоса.
– Capital! [Превосходно!] – по английски сказал князь Ипполит и принялся бить себя ладонью по коленке.
Виконт только пожал плечами. Пьер торжественно посмотрел поверх очков на слушателей.
– Я потому так говорю, – продолжал он с отчаянностью, – что Бурбоны бежали от революции, предоставив народ анархии; а один Наполеон умел понять революцию, победить ее, и потому для общего блага он не мог остановиться перед жизнью одного человека.
– Не хотите ли перейти к тому столу? – сказала Анна Павловна.
Но Пьер, не отвечая, продолжал свою речь.
– Нет, – говорил он, все более и более одушевляясь, – Наполеон велик, потому что он стал выше революции, подавил ее злоупотребления, удержав всё хорошее – и равенство граждан, и свободу слова и печати – и только потому приобрел власть.
– Да, ежели бы он, взяв власть, не пользуясь ею для убийства, отдал бы ее законному королю, – сказал виконт, – тогда бы я назвал его великим человеком.
– Он бы не мог этого сделать. Народ отдал ему власть только затем, чтоб он избавил его от Бурбонов, и потому, что народ видел в нем великого человека. Революция была великое дело, – продолжал мсье Пьер, выказывая этим отчаянным и вызывающим вводным предложением свою великую молодость и желание всё полнее высказать.
– Революция и цареубийство великое дело?…После этого… да не хотите ли перейти к тому столу? – повторила Анна Павловна.
– Contrat social, [Общественный договор,] – с кроткой улыбкой сказал виконт.
– Я не говорю про цареубийство. Я говорю про идеи.
– Да, идеи грабежа, убийства и цареубийства, – опять перебил иронический голос.
– Это были крайности, разумеется, но не в них всё значение, а значение в правах человека, в эманципации от предрассудков, в равенстве граждан; и все эти идеи Наполеон удержал во всей их силе.
– Свобода и равенство, – презрительно сказал виконт, как будто решившийся, наконец, серьезно доказать этому юноше всю глупость его речей, – всё громкие слова, которые уже давно компрометировались. Кто же не любит свободы и равенства? Еще Спаситель наш проповедывал свободу и равенство. Разве после революции люди стали счастливее? Напротив. Mы хотели свободы, а Бонапарте уничтожил ее.
Князь Андрей с улыбкой посматривал то на Пьера, то на виконта, то на хозяйку. В первую минуту выходки Пьера Анна Павловна ужаснулась, несмотря на свою привычку к свету; но когда она увидела, что, несмотря на произнесенные Пьером святотатственные речи, виконт не выходил из себя, и когда она убедилась, что замять этих речей уже нельзя, она собралась с силами и, присоединившись к виконту, напала на оратора.
– Mais, mon cher m r Pierre, [Но, мой милый Пьер,] – сказала Анна Павловна, – как же вы объясняете великого человека, который мог казнить герцога, наконец, просто человека, без суда и без вины?
– Я бы спросил, – сказал виконт, – как monsieur объясняет 18 брюмера. Разве это не обман? C'est un escamotage, qui ne ressemble nullement a la maniere d'agir d'un grand homme. [Это шулерство, вовсе не похожее на образ действий великого человека.]
– А пленные в Африке, которых он убил? – сказала маленькая княгиня. – Это ужасно! – И она пожала плечами.
– C'est un roturier, vous aurez beau dire, [Это проходимец, что бы вы ни говорили,] – сказал князь Ипполит.
Мсье Пьер не знал, кому отвечать, оглянул всех и улыбнулся. Улыбка у него была не такая, какая у других людей, сливающаяся с неулыбкой. У него, напротив, когда приходила улыбка, то вдруг, мгновенно исчезало серьезное и даже несколько угрюмое лицо и являлось другое – детское, доброе, даже глуповатое и как бы просящее прощения.
Виконту, который видел его в первый раз, стало ясно, что этот якобинец совсем не так страшен, как его слова. Все замолчали.
– Как вы хотите, чтобы он всем отвечал вдруг? – сказал князь Андрей. – Притом надо в поступках государственного человека различать поступки частного лица, полководца или императора. Мне так кажется.
– Да, да, разумеется, – подхватил Пьер, обрадованный выступавшею ему подмогой.
– Нельзя не сознаться, – продолжал князь Андрей, – Наполеон как человек велик на Аркольском мосту, в госпитале в Яффе, где он чумным подает руку, но… но есть другие поступки, которые трудно оправдать.
Князь Андрей, видимо желавший смягчить неловкость речи Пьера, приподнялся, сбираясь ехать и подавая знак жене.

Вдруг князь Ипполит поднялся и, знаками рук останавливая всех и прося присесть, заговорил:
– Ah! aujourd'hui on m'a raconte une anecdote moscovite, charmante: il faut que je vous en regale. Vous m'excusez, vicomte, il faut que je raconte en russe. Autrement on ne sentira pas le sel de l'histoire. [Сегодня мне рассказали прелестный московский анекдот; надо вас им поподчивать. Извините, виконт, я буду рассказывать по русски, иначе пропадет вся соль анекдота.]
И князь Ипполит начал говорить по русски таким выговором, каким говорят французы, пробывшие с год в России. Все приостановились: так оживленно, настоятельно требовал князь Ипполит внимания к своей истории.
– В Moscou есть одна барыня, une dame. И она очень скупа. Ей нужно было иметь два valets de pied [лакея] за карета. И очень большой ростом. Это было ее вкусу. И она имела une femme de chambre [горничную], еще большой росту. Она сказала…
Тут князь Ипполит задумался, видимо с трудом соображая.
– Она сказала… да, она сказала: «девушка (a la femme de chambre), надень livree [ливрею] и поедем со мной, за карета, faire des visites». [делать визиты.]
Тут князь Ипполит фыркнул и захохотал гораздо прежде своих слушателей, что произвело невыгодное для рассказчика впечатление. Однако многие, и в том числе пожилая дама и Анна Павловна, улыбнулись.
– Она поехала. Незапно сделался сильный ветер. Девушка потеряла шляпа, и длинны волоса расчесались…
Тут он не мог уже более держаться и стал отрывисто смеяться и сквозь этот смех проговорил:
– И весь свет узнал…
Тем анекдот и кончился. Хотя и непонятно было, для чего он его рассказывает и для чего его надо было рассказать непременно по русски, однако Анна Павловна и другие оценили светскую любезность князя Ипполита, так приятно закончившего неприятную и нелюбезную выходку мсье Пьера. Разговор после анекдота рассыпался на мелкие, незначительные толки о будущем и прошедшем бале, спектакле, о том, когда и где кто увидится.


Поблагодарив Анну Павловну за ее charmante soiree, [очаровательный вечер,] гости стали расходиться.
Пьер был неуклюж. Толстый, выше обыкновенного роста, широкий, с огромными красными руками, он, как говорится, не умел войти в салон и еще менее умел из него выйти, то есть перед выходом сказать что нибудь особенно приятное. Кроме того, он был рассеян. Вставая, он вместо своей шляпы захватил трехугольную шляпу с генеральским плюмажем и держал ее, дергая султан, до тех пор, пока генерал не попросил возвратить ее. Но вся его рассеянность и неуменье войти в салон и говорить в нем выкупались выражением добродушия, простоты и скромности. Анна Павловна повернулась к нему и, с христианскою кротостью выражая прощение за его выходку, кивнула ему и сказала:
– Надеюсь увидать вас еще, но надеюсь тоже, что вы перемените свои мнения, мой милый мсье Пьер, – сказала она.
Когда она сказала ему это, он ничего не ответил, только наклонился и показал всем еще раз свою улыбку, которая ничего не говорила, разве только вот что: «Мнения мнениями, а вы видите, какой я добрый и славный малый». И все, и Анна Павловна невольно почувствовали это.
Князь Андрей вышел в переднюю и, подставив плечи лакею, накидывавшему ему плащ, равнодушно прислушивался к болтовне своей жены с князем Ипполитом, вышедшим тоже в переднюю. Князь Ипполит стоял возле хорошенькой беременной княгини и упорно смотрел прямо на нее в лорнет.
– Идите, Annette, вы простудитесь, – говорила маленькая княгиня, прощаясь с Анной Павловной. – C'est arrete, [Решено,] – прибавила она тихо.
Анна Павловна уже успела переговорить с Лизой о сватовстве, которое она затевала между Анатолем и золовкой маленькой княгини.
– Я надеюсь на вас, милый друг, – сказала Анна Павловна тоже тихо, – вы напишете к ней и скажете мне, comment le pere envisagera la chose. Au revoir, [Как отец посмотрит на дело. До свидания,] – и она ушла из передней.
Князь Ипполит подошел к маленькой княгине и, близко наклоняя к ней свое лицо, стал полушопотом что то говорить ей.
Два лакея, один княгинин, другой его, дожидаясь, когда они кончат говорить, стояли с шалью и рединготом и слушали их, непонятный им, французский говор с такими лицами, как будто они понимали, что говорится, но не хотели показывать этого. Княгиня, как всегда, говорила улыбаясь и слушала смеясь.
– Я очень рад, что не поехал к посланнику, – говорил князь Ипполит: – скука… Прекрасный вечер, не правда ли, прекрасный?
– Говорят, что бал будет очень хорош, – отвечала княгиня, вздергивая с усиками губку. – Все красивые женщины общества будут там.
– Не все, потому что вас там не будет; не все, – сказал князь Ипполит, радостно смеясь, и, схватив шаль у лакея, даже толкнул его и стал надевать ее на княгиню.
От неловкости или умышленно (никто бы не мог разобрать этого) он долго не опускал рук, когда шаль уже была надета, и как будто обнимал молодую женщину.
Она грациозно, но всё улыбаясь, отстранилась, повернулась и взглянула на мужа. У князя Андрея глаза были закрыты: так он казался усталым и сонным.
– Вы готовы? – спросил он жену, обходя ее взглядом.
Князь Ипполит торопливо надел свой редингот, который у него, по новому, был длиннее пяток, и, путаясь в нем, побежал на крыльцо за княгиней, которую лакей подсаживал в карету.
– Рrincesse, au revoir, [Княгиня, до свиданья,] – кричал он, путаясь языком так же, как и ногами.
Княгиня, подбирая платье, садилась в темноте кареты; муж ее оправлял саблю; князь Ипполит, под предлогом прислуживания, мешал всем.