Twofish

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

группа специалистов во главе с Брюсом Шнайером

Создан:

1998 г.

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

128/192/256 бит

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

128 бит

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

16

Тип:

Сеть Фейстеля

Twofish — симметричный алгоритм блочного шифрования с размером блока 128 бит и длиной ключа до 256 бит. Число раундов 16. Разработан группой специалистов во главе с Брюсом Шнайером. Являлся одним из пяти финалистов второго этапа конкурса AES. Алгоритм разработан на основе алгоритмов Blowfish, SAFER и Square.

Отличительными особенностями алгоритма являются использование предварительно вычисляемых и зависящих от ключа узлов замены и сложная схема развёртки подключей шифрования. Половина n-битного ключа шифрования используется как собственно ключ шифрования, другая — для модификации алгоритма (от неё зависят узлы замены).





Общие сведения

Twofish разрабатывался специально с учетом требований и рекомендаций NIST для AES [1] :

  • 128-битный блочный симметричный шифр
  • Длина ключей 128, 192 и 256 бит
  • Отсутствие слабых ключей
  • Эффективная программная (в первую очередь на 32-битных процессорах) и аппаратная реализация
  • Гибкость (возможность использования дополнительных длин ключа, использование в поточном шифровании, хэш-функциях и т. д.)
  • Простота алгоритма — для возможности его эффективного анализа

Однако именно сложность структуры алгоритма и, соответственно, сложность его анализа на предмет слабых ключей или скрытых связей, а также достаточно медленное время выполнения по сравнению с Rijndael на большинстве платформ, сыграло не в его пользу. [2]

Алгоритм Twofish возник в результате попытки модифицировать алгоритм Blowfish для 128-битового входного блока. Новый алгоритм должен был быть легко реализуемым аппаратно (в том числе использовать таблицы меньшего размера), иметь более совершенную систему расширения ключа (key schedule) и иметь однозначную функцию F.

В результате, алгоритм был реализован в виде смешанной сети Фейстеля с четырьмя ветвями, которые модифицируют друг друга с использованием криптопреобразования Адамара (Pseudo-Hadamar Transform, PHT).

Возможность эффективной реализации на современных (для того времени) 32-битных процессорах (а также в смарт-картах и подобных устройствах) — один из ключевых принципов, которым руководствовались разработчики Twofish.
Например, в функции F при вычислении PHT и сложении с частью ключа K намеренно используется сложение, вместо традиционного xor. Это дает возможность использовать команду LEA семейства процессоров Pentium, которая за один такт позволяет вычислить преобразование Адамара <math>({T}_{0}+2{T}_{1}+{K}_{2r+9})~mod~2^{32}</math>. (Правда в таком случае код приходится компилировать под конкретное значение ключа).

Алгоритм Twofish не запатентован и может быть использован кем угодно без какой-либо платы или отчислений. Он используется во многих программах шифрования, хотя и получил меньшее распространение, чем Blowfish.

Описание алгоритма

Twofish разбивает входной 128-битный блок данных на четыре 32-битных подблока, над которыми, после процедуры входного отбеливания (input whitening), производится 16 раундов преобразований. После последнего раунда выполняется выходное отбеливание (output whitening).

Отбеливание (whitening)

Отбеливание — это процедура xor’а данных с подключами перед первым раундом и после последнего раунда. Впервые эта техника была использована в шифре Khufu/Khare и, независимо, Рональдом Ривестом (Ron Rivest) в алгоритме шифрования DESX. Joe Killian (NEC) и Phillip Rogaway(Калифорнийский университет) показали, что отбеливание действительно усложняет задачу поиска ключа полным перебором (exhaustive key-search) в DESX[3]. Разработчики Twofish утверждают[4], что в Twofish отбеливание также существенно усложняет задачу подбора ключа, поскольку криптоаналитик не может узнать, какие данные попадают на вход функции F первого раунда.

Тем не менее, обнаружились и негативные стороны. Интересное исследование провели специалисты исследовательского центра компании IBM.[5] Они выполнили реализацию алгоритма Twofish для типичной смарт-карты с CMOS-архитектурой и проанализировали возможность атаки с помощью дифференциального анализа потребляемой мощности (DPA — Differential Power Analysis). Атаке подвергалась именно процедура входного отбеливания, поскольку она напрямую использует xor подключей с входными данными. В результате исследователи показали, что можно полностью вычислить 128-битный ключ, проанализировав всего 100 операций шифрования произвольных блоков.

Функция g

Функция g — основа алгоритма Twofish. На вход функции подается 32-битное число X, которое затем разбивается на четыре байта x0, x1, x2, x3. Каждый из получившихся байтов пропускается через свой S-box. (Следует отметить, что S-box’ы в алгоритме не фиксированы, а зависят от ключа). Получившиеся 4 байта на выходах S-box’ов интерпретируются как вектор с четырьмя компонентами. Этот вектор умножается на фиксированную матрицу MDS (maximum distance separable) размером 4x4, причем вычисления проводятся в поле Галуа <math>GF(2^8)</math> по модулю неприводимого многочлена <math>x^8 + x^6 + x^5 + x^3 + 1</math>

MDS матрица — это такая матрица над конечным полем K, что если взять её в качестве матрицы линейного преобразования <math>f(x)=(MDS)x</math> из пространства <math>K^n</math> в пространство <math>K^m</math>, то любые два вектора из пространства <math>K^{n+m}</math> вида (x, f(x)) будут иметь как минимум m+1 различий в компонентах. То есть набор векторов вида (x, f(x)) образует код, обладающий свойством максимальной разнесённости (maximum distance separable code). Таким кодом, например, является код Рида-Соломона.

В Twofish свойство максимальной разнесённости матрицы MDS означает, что общее количество меняющихся байт вектора a и вектора <math>b=(MDS)a</math> не меньше пяти. Другими словами, любое изменение только одного байта в a приводит к изменению всех четырёх байтов в b.

Криптопреобразование Адамара (Pseudo-Hadamar Transform, PHT)

Криптопреобразование Адамара — обратимое преобразование битовой строки длиной 2n. Строка разбивается на две части a и b одинаковой длины в n бит. Преобразование вычисляется следующим образом:

<math>a' = a + b \, \pmod{2^n}</math>
<math>b' = a + 2b\, \pmod{2^n}</math>

Эта операция часто используется для «рассеивания» кода (например в шифре SAFER).

В Twofish это преобразование используется при смешивании результатов двух g-функций (n = 32).

Циклический сдвиг на 1 бит

В каждом раунде два правых 32-битных блока, которые xor-ятся с результатами функции F, дополнительно циклически сдвигаются на один бит. Третий блок сдвигается до операции xor, четвёртый блок — после. Эти сдвиги специально добавлены, чтобы нарушить выравнивание по байтам, которое свойственно S-box’ам и операции умножения на MDS-матрицу. Однако шифр перестаёт быть полностью симметричным, так как при шифрации и расшифровке сдвиги следует осуществлять в противоположные стороны.

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

Twofish рассчитан на работу с ключами длиной 128, 192 и 256 бит. Из исходного ключа генерируется 40 32-битных подключей, первые восемь из которых используются только в операциях входного и выходного отбеливания, а остальные 32 — в раундах шифрования, по два подключа на раунд. Особенностью Twofish является то, что исходный ключ используется также и для изменения самого алгоритма шифрования, так как используемые в функции g S-box’ы не фиксированы, а зависят от ключа.

Для формирования раундовых подключей исходный ключ M разбивается с перестановкой байт на два одинаковых блока <math>M_o</math> и <math>M_e</math>. Затем с помощью блока <math>M_o</math> и функции h шифруется значение 2*i, а с помощью блока <math>M_e</math> шифруется значение 2*i+1, где i — номер текущего раунда (0 — 15). Полученные зашифрованные блоки смешиваются криптопреобразованием Адамара, и затем используются в качестве раундовых подключей.

Технические подробности

Рассмотрим более подробно алгоритм формирования раундовых подключей, а также зависящей от ключа функции g. Как для формирования подключей, так и для формирования функции g в Twofish используется одна основная функция: h(X, L0, L1, … , Lk). Здесь X, L0, L1, … , Lk — 32 битные слова, а k = N / 64, где N — длина исходного ключа в битах. Результатом функции является одно 32-битное слово.

Функция h

Функция выполняется в k этапов. То есть для длины ключа 256 бит будет 4 этапа, для ключа в 192 бита — 3 этапа, для 128 бит — 2 этапа.

На каждом этапе входное 32-битное слово разбивается на 4 байта, и каждый байт подвергается фиксированной перестановке битов q0 или q1

Результат представляется в виде вектора из 4 байтов и умножается на MDS матрицу. Вычисления производятся в поле Галуа GF(28) по модулю неприводимого многочлена <math>x^8 + x^6 + x^5 + x^3 + 1</math>.

Матрица MDS имеет вид:

<math>\mbox{MDS} = \begin{pmatrix} 01 & EF & 5B & 5B \\ 5B & EF & EF & 01 \\ EF & 5B & 01 & EF \\ EF & 01 & EF & 5B \end{pmatrix}</math>

Перестановки q0 и q1

q0 и q1 — фиксированные перестановки 8 битов входного байта x.

Байт x разбивается на две 4-битные половинки a0 и b0, над которыми проводятся следующие преобразования:

<math>a_0 = x/16</math>            <math>b_0 = x\bmod{16}</math>
<math>a_1 = a_0 \oplus b_0</math>            <math>b_1 = a_0 \oplus \mbox{ROR}_4(b_0,1) \oplus 8a_0 \bmod{16}</math>
<math>a_2 = t_0[a_1]</math>            <math>b_2 = t_1[b_1]</math>
<math>a_3 = a_2 \oplus b_2</math>            <math>b_3 = a_2 \oplus \mbox{ROR}_4(b_2,1) \oplus 8a_2 \bmod{16}</math>
<math>a_4 = t_2[a_3]</math>            <math>b_4 = t_3[b_3]</math>
<math>y = 16b_4 + a_4</math>

Здесь <math>\mbox{ROR}_4</math> — 4-битный циклический сдвиг вправо, а t0, t1, t2, t3 — табличные замены 4-битных чисел.

Для q0 таблицы имеют вид:

t0 = [ 8 1 7 D 6 F 3 2 0 B 5 9 E C A 4 ]
t1 = [ E C B 8 1 2 3 5 F 4 A 6 7 0 9 D ]
t2 = [ B A 5 E 6 D 9 0 C 8 F 3 2 4 7 1 ]
t3 = [ D 7 F 4 1 2 6 E 9 B 3 0 8 5 C A ]

Для q1 таблицы имеют вид:

t0 = [ 2 8 B D F 7 6 E 3 1 9 4 0 A C 5 ]
t1 = [ 1 E 2 B 4 C 3 7 6 D A 5 F 9 0 8 ]
t2 = [ 4 C 7 5 1 6 9 A 0 E D 8 2 B 3 F ]
t3 = [ B 9 5 1 C 3 D E 6 4 7 F 2 0 8 A ]

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

Пусть M — исходный ключ, N — его длина в битах. Генерация подключей происходит следующим образом:

  • Исходный ключ разбивается на 8*k байтов <math>m_0,...,m_{8k-1}</math>, где k = N / 64.
  • Эти 8*k байтов разбиваются на слова по четыре байта, и в каждом слове байты переставляются в обратном порядке. В итоге получается 2*k 32-битных слова <math>M_i</math>
<math>M_i=\sum^3_{j=0}m_{(4i+j)}\cdot2^{8j}~~~~~i=0,...,2k-1</math>
  • Полученные 2*k 32-битных слов разбиваются на два вектора <math>M_e</math> и <math>M_o</math> размером в k 32-битных слов.
<math>M_e = (M_0, M_2, ... , M_{2k-2})</math>
<math>M_o = (M_1, M_3, ... , M_{2k-1})</math>

Подключи для i-го раунда вычисляются по формулам:

<math>\rho=2^{24} + 2^{16} + 2^8 + 2^0</math>
<math>A_i = h(2i\rho, M_e)</math>
<math>B_i = \mbox{ROL}(h((2i+1)\rho, M_0), 8)</math>
<math>K_{2i} = (A_i + B_i)\bmod{2^{32}}</math>
<math>K_{2i+1} = \mbox{ROL}((A_i+2B_i)\bmod{2^{32}},9)</math>

Функция g и S-box’ы

Функция g определяется через функцию h: <math>g(X) = h(X,S)</math>

Вектор S, как и вектора Me и Mo, тоже формируется из исходного ключа и состоит из k 32-битных слов. Исходные байты ключа разбиваются на k групп по восемь байт. Каждая такая группа рассматривается как вектор с 8-ю компонентами и умножается на фиксированную RS матрицу размером 4x8 байт. В результате умножения получается вектор, состоящий из четырех байт. Вычисления проводятся в поле Галуа <math>GF(2^8)</math> по модулю неприводимого многочлена <math>x^8 + x^6 + x^3 + x^2 + 1</math>.

RS-матрица имеет вид:

<math>\mbox{RS} = \begin{pmatrix} 01 & A4 & 55 & 87 & 5A & 58 & DB & 9E \\ A4 & 56 & 82 & F3 & 1E & C6 & 68 & E5 \\ 02 & A1 & FC & C1 & 47 & AE & 3D & 19 \\ A4 & 55 & 87 & 5A & 58 & DB & 9E & 03 \end{pmatrix}</math>

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

Изучение Twofish с сокращенным числом раундов показало, что алгоритм обладает большим запасом прочности, и, по сравнению с остальными финалистами конкурса AES, он оказался самым стойким. Однако его необычное строение и относительная сложность породили некоторые сомнения в качестве этой прочности.

Нарекания вызвало разделение исходного ключа на две половины при формировании раундовых подключей. Криптографы Fauzan Mirza и Sean Murphy предположили, что такое разделение дает возможность организовать атаку по принципу «разделяй и властвуй», то есть разбить задачу на две аналогичные, но более простые[6]. Однако реально подобную атаку провести не удалось.

На 2008 год лучшим вариантом криптоанализа Twofish является вариант усечённого дифференциального криптоанализа, который был опубликован Shiho Moriai и Yiqun Lisa Yin в Японии в 2000 году [7]. Они показали, что для нахождения необходимых дифференциалов требуется 251 подобранных открытых текстов. Тем не менее исследования носили теоретический характер, никакой реальной атаки проведено не было. В своём блоге создатель Twofish Брюс Шнайер утверждает, что в реальности провести такую атаку невозможно [8].

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

Примечания

  1. [csrc.nist.gov/archive/aes/pre-round1/aes_9709.htm «Announcing Request for Candidate Algorithm Nominations for the Advanced Encryption Standard (AES)»] (англ.). Department of Commerce — National Institute of Standards and Technology — Federal Register: September 12, 1997
  2. Nechvatal J., Barker E., Bassham L., Burr W., Dworkin M., Foti J., Roback E. [csrc.nist.gov/archive/aes/round2/r2report.pdf «Report on the Development of the Advanced Encryption Standard (AES)»] (англ.). — National Institute of Standards and Technology.
  3. J. Kilian and P. Rogaway [www.cs.ucdavis.edu/~rogaway/papers/desx.pdf «How to Protect DES Against Exhaustive Key Search»] (англ.) February 2, 2000
  4. N. Ferguson, J. Kelsey, B. Schneier, D. Whiting [www.schneier.com/paper-twofish-related.pdf «A Twofish Retreat: Related-Key Attacks Against Reduced-Round Twofish»] (англ.) Twofish Technical Report #6, February 14, 2000
  5. Suresh Chari, Charanjit Jutla, Josyula R. Rao, Pankaj Rohatgi [csrc.nist.gov/archive/aes/round1/conf2/papers/chari.pdf «A Cautionary Note Regarding Evaluation of AES Candidates on Smart-Cards»] (англ.), 1999
  6. Fauzan Mirza, Sean Murphy [csrc.nist.gov/archive/aes/round1/conf2/papers/mirza.pdf «An Observation on the Key Schedule of Twofish»] (англ.) — Information Security Group, Royal Holloway, University of London — January 26, 1999
  7. Shiho Moriai, Yiqun Lisa Yin [www.schneier.com/twofish-analysis-shiho.pdf «Cryptanalysis of Twofish (II)»] (англ.) — The Institute of Economics, Information and Communication Engineers
  8. Bruce Schneier [www.schneier.com/blog/archives/2005/11/twofish_cryptan.html «Twofish Cryptanalysis Rumors»] (англ.) blog

Ссылки

  • [www.schneier.com/twofish.html Twofish web page] (англ.).
  • [www.schneier.com/twofish-download.html Исходные коды Twofish] (англ.).
  • [www.schneier.com/paper-twofish-paper.pdf Twofish: A 128-Bit Block Cipher] (англ.).
  • [www.ixbt.com/soft/alg-encryption-aes.shtml Алгоритмы шифрования — финалисты конкурса AES].
  • [www.schneier.com/twofish-products.html Список продуктов, использующих Twofish].

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

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


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