SHABAL

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

SHABAL

Создан

2008

Опубликован

2008

Размер хеша

192,224,256,384,512

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

3

Тип

хеш-функция

SHABAL — алгоритм криптографического хеширования. Является одним из участников конкурса SHA-3, который проводится Национальным институтом стандартов и технологий, объявление окончательных результатов и победителя запланировано на 2012 год[1]. Был представлен на конкурс исследовательским проектом «Сапфир»(Saphir: Security and Analysis of Hash Primitives), спонсором которого является Французское исследовательское агентство (ANR), а главной организацией — France Telecom.

Авторы алгоритма: Эммануэль Брессон, Анна Кантеоут, Беноит Шевалье-Мамес, Кристоф Клавьер, Томас Фухр, Алина Гоуджет, Томас Икарт, Жен-Франсуа Мисарски, Мария Ная-Пласенкия, Паскаль Пайлер, Томас Порнини, Жан-Рене Рейнхард, Селина Тьюлльет, Марион Видеау.

Алгоритм, по утверждению авторов, назван в честь «Себастьяна Шабала, французского игрока регби известного за его агрессивный стиль игры а также за его бороду и длинные волосы, за которые ему дали кличку „Пещерный человек“ (Caveman)»[2].






Алгоритм

По утверждению разработчиков, SHABAL является одним из самых быстрых кандидатов конкурса SHA-3.[3]

SHABAL может принимать на вход битовые последовательности любой длины, однако криптографическая стойкость для сообщений с длиной более, чем <math>2^{73}</math> бит, не гарантируется.

Принцип работы

SHABAL называется SHABAL-512 , SHABAL-384, SHABAL-256, SHABAL-224, SHABAL-192 в зависимости от длины получаемого хэша <math>l_h</math>, соответственно равного 512, 384, 256, 224, 192 бит.

После того как на вход алгоритма приходит битовая последовательность, она разбивается на блоки по 512 бит вне зависимости от используемой вариации SHABAL (SHABAL-512, SHABAL-384 и т. д.). Отметим, что размер блока кратен 32. К последнему блоку, если его битовая длина не равна 512 битам, приписывается одна битовая единица и необходимое число нулей для достижения заданного размера блока.

При вычислении хэш-функции используется буфер, поделенный на три части <math>(A,B,C)\in\mathcal{f}0,1\mathcal{g}^{l_a}\times\mathcal{f}0,1\mathcal{g}^{l_b}\times\mathcal{f}0,1\mathcal{g}^{l_c}</math>, где <math>l_a</math> и <math>l_b</math> и <math>l_c</math> — это длины буферов <math>A</math>, <math>B</math> и <math>C</math> соответственно. Также используется вспомогательный буфер W размером в 64 бита, который является счетчиком номера блока. Длины буферов <math>l_b</math> и <math>l_c</math> равны <math>l_m</math>, где <math>l_m</math> — это длина блока на которые разбивается поданное на вход сообщение.

SHABAL обладает двумя настраиваемыми параметрами <math>r\geqslant2</math> и <math>p\geqslant2</math>. Длина буфера <math>A</math> определяется через <math>r</math>, а именно <math>l_a=32r</math>. Параметр <math>p</math> — количество раундов в преобразовании <math>P</math>, чем больше это значение, тем гарантируется большая безопасность. Заявленный на конкурс алгоритм SHABAL строго определяет <math>(p,r)=(3,12)</math>

SHABAL — итеративный алгоритм. Количество повторений равно количеству блоков исходной битовой последовательности плюс две итерации на добавляемые в начало сообщения блоки (подробнее об этих двух блоках написано в описании работы алгоритма по шагам), плюс ещё три финальные итерации. На каждой итерации происходит преобразование <math>P_{M,C}(A,B)\rightarrow(A,C)</math>. При каждом повторении кроме трех финальных число, хранимое в <math>W</math>, увеличивается на 1, то есть как уже упоминалось <math>W</math> — это счетчик.

Действие алгоритма по шагам

Отметим, что операции суммирования и вычитания далее производятся в пределах слов(то есть 4-ех байтовых блоков) и без переноса.

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

В <math>(A,B,C)</math> заносятся нули. В начало основного сообщения <math>M</math> добавляются два блока, в каждый 4-байтовый фрагмент которых записываются фиксированные числа варьирующиеся от <math>l_h</math> до <math>l_h+31</math>, где <math>l_h</math> — это длина выхода хеш-функции <math>l_h\in\mathcal{f}192,224,256,384,512\mathcal{g}</math>. Если более подробно, то в два добавленных блока, которые мы назовем <math>M_{-1}</math> и <math>M_0</math>(каждый размером по <math>l_m</math>=512 бит), записываются следующие слова(32-битные блоки): <math>M_{-1}[0]=l_h</math> , <math>M_{-1}[15]=l_h+15</math> , <math>M_0[0]=l_h+16</math> , <math>M_0[15]=l_h+31</math>. Промежуточные слова <math>M_{-1}</math> и <math>M_0</math> заполняются по аналогии.

Числу в <math>W</math> присваивается значение −1, таким образом после обработки добавленных в начало блоков, первому блоку входного сообщения будет соответствовать <math>W</math>, равная 1.

Разбиение на блоки

Входная битовая последовательность разбивается на блоки по 512 бит, если длина сообщения не кратна указанной длине, то к последней части добавляется одна битовая единица и нужное для достижения заданного размера количество нулей.

Обычные итерации

Для всех w (<math>w=2^{32}*W[1]+W[0]; W[0]</math> и <math>W[1]</math>-32 битные части W) от −1 до k (где k количество блоков изначального сообщения) сделать следующее:

  • сложить B и M по словам, результат заносим в B
<math>B\leftarrow B+M_w</math>
  • применить XOR на счетчике и A
<math>A[0]\leftarrow A[0]\oplus W[0], A[1]\leftarrow A[1] \oplus W[1]</math>
  • сделать преобразование P
<math>(A,B)\leftarrow P_{M_w,C}(A,B)</math>
  • вычесть из C M по словам
<math>C\leftarrow C-M_w</math>
  • поменять местами B и С
<math>(B,C)\leftarrow(C,B)</math>

Заключительные итерации

После выполнения обычных итераций нужно выполнить еще три финальных итерациях. Они отличаются от обычных тем, что за блок <math>M</math> принимается последний блок сообщения <math>M_k</math>, значение счетчика фиксируется и равняется k общему числу блоков.

Результат

Выходные слова(32 битные блоки) от <math>C[16-l_h/32]</math> до <math>C[15]</math> являются результатом. <math>A</math> и <math>B</math> игнорируются.

Примечание

Стоит отметить, что рассчитывать преобразования от двух первых добавленных блоков каждый раз при использовании SHABAL совершенно необязательно. С таким же успехом, значения <math>(A,B,C)</math> от этих двух блоков можно рассчитать один раз и потом использовать их как IV(initial vector).

Список IV для разных версий SHABAL

SHABAL-192:

A :

FD749ED4 B798E530 33904B6F 46BDA85E 076934B4 454B4058 77F74527 FB4CF465

62931DA9 E778C8DB 22B3998E AC15CFB9

B :

58BCBAC4 EC47A08E AEE933B2 DFCBC824 A7944804 BF65BDB0 5A9D4502 59979AF7

C5CEA54E 4B6B8150 16E71909 7D632319 930573A0 F34C63D1 CAF914B4 FDD6612C

C :

61550878 89EF2B75 A1660C46 7EF3855B 7297B58C 1BC67793 7FB1C723 B66FC640

1A48B71C F0976D17 088CE80A A454EDF3 1C096BF4 AC76224B 5215781C CD5D2669


SHABAL-224:

A :

A5201467 A9B8D94A D4CED997 68379D7B A7FC73BA F1A2546B 606782BF E0BCFD0F

2F25374E 069A149F 5E2DFF25 FAECF061

B :

EC9905D8 F21850CF C0A746C8 21DAD498 35156EEB 088C97F2 26303E40 8A2D4FB5

FEEE44B6 8A1E9573 7B81111A CBC139F0 A3513861 1D2C362E 918C580E B58E1B9C

C :

E4B573A1 4C1A0880 1E907C51 04807EFD 3AD8CDE5 16B21302 02512C53 2204CB18

99405F2D E5B648A1 70AB1D43 A10C25C2 16F1AC05 38BBEB56 9B01DC60 B1096D83


SHABAL-256:

A :

52F84552 E54B7999 2D8EE3EC B9645191 E0078B86 BB7C44C9 D2B5C1CA B0D2EB8C

14CE5A45 22AF50DC EFFDBC6B EB21B74A

B :

B555C6EE 3E710596 A72A652F 9301515F DA28C1FA 696FD868 9CB6BF72 0AFE4002

A6E03615 5138C1D4 BE216306 B38B8890 3EA8B96B 3299ACE4 30924DD4 55CB34A5

C :

B405F031 C4233EBA B3733979 C0DD9D55 C51C28AE A327B8E1 56C56167 ED614433

88B59D60 60E2CEBA 758B4B8B 83E82A7F BC968828 E6E00BF7 BA839E55 9B491C60


SHABAL-384:

A :

C8FCA331 E55C504E 003EBF26 BB6B8D83 7B0448C1 41B82789 0A7C9601 8D659CFF

B6E2673E CA54C77B 1460FD7E 3FCB8F2D

B :

527291FC 2A16455F 78E627E5 944F169F 1CA6F016 A854EA25 8DB98ABE F2C62641

30117DCB CF5C4309 93711A25 F9F671B8 B01D2116 333F4B89 B285D165 86829B36

C :

F764B11A 76172146 CEF6934D C6D28399 FE095F61 5E6018B4 5048ECF5 51353261

6E6E36DC 63130DAD A9C69BD6 1E90EA0C 7C35073B 28D95E6D AA340E0D CB3DEE70


SHABAL-512:

A :

20728DFD 46C0BD53 E782B699 55304632 71B4EF90 0EA9E82C DBB930F1 FAD06B8B

BE0CAE40 8BD14410 76D2ADAC 28ACAB7F

B :

C1099CB7 07B385F3 E7442C26 CC8AD640 EB6F56C7 1EA81AA9 73B9D314 1DE85D08

48910A5A 893B22DB C5A0DF44 BBC4324E 72D2F240 75941D99 6D8BDE82 A1A7502B

C :

D9BF68D1 58BAD750 56028CB2 8134F359 B5D469D8 941A8CC2 418B2A6E 04052780

7F07D787 5194358F 3C60D665 BE97D79A 950C3434 AED9A06D 2537DC8D 7CDB5969

Описание преобразования <math>P</math>

Входные данные: M,A,B,C

Выход: A,B

(<math>x\lll a</math> обозначает вращение бит <math>x</math> на <math>a</math> позиций влево)

Преобразование представлено для наглядности в псевдокоде:

For i from 0 to 15, do:


<math>B[i]\leftarrow B[i]\lll 17</math>


Next i;


For j from 0 to p-1, do:

  • For i from 0 to 15, do:

<math>A[i+16j\bmod r]\leftarrow U(A[i+16j\bmod r]\oplus V(A[i-1+16j\bmod r]\lll 15)\oplus C[8-i\bmod 16])</math>


<math>\oplus B[i+o_1\bmod 16]</math>


<math>\oplus (B[i+o_2\bmod 16] \cap\overline{B[i+o_3\bmod16]})</math>


<math>\oplus M[i]</math>



где <math>(o_1,o_2,o_3)=(13,9,6)</math>



<math>B[i]\leftarrow (B[i]\lll 1)\oplus \overline{A[i+16j\bmod r]}</math>

  • Next i;

Next j;


For j from 0 to 35, do:


<math>A[j\bmod r]\leftarrow A[j\bmod r] + C[j+3\bmod 16]</math>


Next j;

Где функции U и V определяются следующим образом:

<math>U(x)=3\times x\mod 2^{32}</math>

<math>V(x)=5\times x\mod 2^{32}</math>

Примеры результатов

Исходное сообщение в байтах

M1 :

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Результат и конечное состояние

SHABAL-192

A :

A38C0C63 17C2CAE8 3248572C 1C89CAD5 176ED597 B242B8AD 73298C22 7ADF1817

00D909DA 61AD8518 90266914 9DC1F617

B :

260A3D42 E9E62340 385A3EBF 2978F492 A1DE4E1A AEDBB855 49DB44CD D0B179F3

7D7FAAE0 87798FA8 9F7F5E35 4A9F52FE A0F35652 65A6D26E 320A1851 EFF9A7CD

C :

F91EEE5E 99DCC78C 82F72599 8CACD775 09544255 ED275CF3 0166F95E 2C375AFA

49AAFBE0 4D9C01C6 CB6E700F CE4DCF97 D2BBBF00 0C5364FB B40C8732 0D733948

H :

CB6E700F CE4DCF97 D2BBBF00 0C5364FB B40C8732 0D733948

SHABAL-224

A :

08FC66FC CE392D14 42C29F35 5649D86A DCD65214 9A423F72 99D2F688 5073E130

1E1F9B61 A28A416E 9C9572AB C3A9B2BC

B :

33D58779 1AD91014 D67F57EC FDADD8EC 75AB31C5 C50ECE4D B7C2CD52 3B8500C5

FCCD0F17 F7EED488 FF906EED DB95D041 965CBF04 B0E05609 1B26DB06 843B9DE7

C :

BE6AC9DC 86AFB8BB 300C6C1B 237F0C8C 6DEF5EEF 599CA070 540040F7 EEA985E4

4A5B8375 14A6DD99 E8D207F9 F7187681 326F6930 8BCAAE00 25F4855F 3120BA43

H :

14A6DD99 E8D207F9 F7187681 326F6930 8BCAAE00 25F4855F 3120BA43

SHABAL-256

A :

3DBA182A D0D6787E DAD8F4C9 CC065328 A36A08C7 902C794E 43E5A220 E2F378F1

1E35B4C3 EF6B834E 8E442A11 6922E895

B :

66DF96F1 E4D309BD 6377D5E2 48F253E3 F8E9B974 0773C11C 8B2B886F 9D7AC002

343612B3 80C441F4 F676FCAD 3D6A453A 6CBEC284 2B3DE748 57EE16DB 80DBFF08

C :

57E837B3 3B2C6ACA E0358DC2 2BD758E9 30F7A2ED DF3516C7 253CB0E0 1A1A98FC

C0088FDA 9ABA672A 79D0BD56 07AE488E 095E2114 06855B3B 1877A349 A2543F99

H :

C0088FDA 9ABA672A 79D0BD56 07AE488E 095E2114 06855B3B 1877A349 A2543F99

SHABAL-384

A :

37661E10 1BEDBBD5 B022D077 CB1781BD 23DCFA84 AF4946EC 9C681ADD 8C48B88C

6BC4D0CB 1F4A95CD 0F2C5CD4 D1BC38C6

B :

CA3AFDBC 298219E1 5E0BF2B8 8F151F6D 648A1FC9 C1F29FEE CD9F4978 F81C514A

44EB858B D33B06CF 929CBC10 60672CBB 20B3CCCA EB12DED0 5CCD8C97 240C8D1C

C :

D4163C6A 49313E63 0D1ACCBE 7AD73B3E 3312DE9D DA850D91 03785C3A C611B112

5D1BCAFC 033755D2 3B8EE05E 15251E4E 636A724F F0A8E584 4AABEAAF 122FC0C4

H :

3312DE9D DA850D91 03785C3A C611B112 5D1BCAFC 033755D2 3B8EE05E 15251E4E

636A724F F0A8E584 4AABEAAF 122FC0C4

SHABAL-512

A :

1FD517B4 18EE0662 002DA3F7 3C864C42 00BDBC17 D3A91349 84B98D58 DB0A255C

EA84933C 78858700 4E1BD28E 22E17C53

B :

D90A51B3 625DBAFC A04AE0F1 15BBA584 3D510ABB 8DF79E61 BBC7D290 442F3794

A65F93BA 7FCB1E48 60830747 B3922082 93AC0A65 FFB4D084 7900BFF4 8548658A

C :

C6168015 0A3F1FC8 688DD952 8E9E2FED 23EF9578 BCE2A7CB A5D80961 E6C9E632

9701A5A6 F037B89F 20C6C44E DC7931E7 2BB5AB82 B3ADCD32 9CE25056 22305E98

H :

C6168015 0A3F1FC8 688DD952 8E9E2FED 23EF9578 BCE2A7CB A5D80961 E6C9E632

9701A5A6 F037B89F 20C6C44E DC7931E7 2BB5AB82 B3ADCD32 9CE25056 22305E98

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

SHABAL является чем-то средним между схемой Меркле-Дамгаарда (англ.) и впитывающей функцией (sponge function). Для стойкости этих схем необходима криптостойкость преобразования <math>P</math>. И создатели SHABAL стремились к этой цели. К сожалению <math>P</math> оказалось нестойким, но криптоаналитики пришли к выводу, что безопасность SHABAL от этого не пострадала. Данный факт вызывает отдельный интерес и сейчас изучается.[3]

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

Примечания

  1. en:SHA-3#cite note-5
  2. [www.shabal.com/wp-content/uploads/Shabal.pdf Shabal, a Submission to NIST's Cryptographic Hash Algorithm Competition] (PDF). [www.webcitation.org/66oMVNTcP Архивировано из первоисточника 10 апреля 2012].
  3. 1 2 eprint.iacr.org/2009/199.pdf

Ссылки

  • [www.shabal.com/ Официальная страница хэш-функции SHABAL]
  • [www.crypto-hash.fr/modules/news/ Официальная страница проекта Saphir]

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

– Ты всем хорош, Andre, но у тебя есть какая то гордость мысли, – сказала княжна, больше следуя за своим ходом мыслей, чем за ходом разговора, – и это большой грех. Разве возможно судить об отце? Да ежели бы и возможно было, какое другое чувство, кроме veneration, [глубокого уважения,] может возбудить такой человек, как mon pere? И я так довольна и счастлива с ним. Я только желала бы, чтобы вы все были счастливы, как я.
Брат недоверчиво покачал головой.
– Одно, что тяжело для меня, – я тебе по правде скажу, Andre, – это образ мыслей отца в религиозном отношении. Я не понимаю, как человек с таким огромным умом не может видеть того, что ясно, как день, и может так заблуждаться? Вот это составляет одно мое несчастие. Но и тут в последнее время я вижу тень улучшения. В последнее время его насмешки не так язвительны, и есть один монах, которого он принимал и долго говорил с ним.
– Ну, мой друг, я боюсь, что вы с монахом даром растрачиваете свой порох, – насмешливо, но ласково сказал князь Андрей.
– Аh! mon ami. [А! Друг мой.] Я только молюсь Богу и надеюсь, что Он услышит меня. Andre, – сказала она робко после минуты молчания, – у меня к тебе есть большая просьба.
– Что, мой друг?
– Нет, обещай мне, что ты не откажешь. Это тебе не будет стоить никакого труда, и ничего недостойного тебя в этом не будет. Только ты меня утешишь. Обещай, Андрюша, – сказала она, сунув руку в ридикюль и в нем держа что то, но еще не показывая, как будто то, что она держала, и составляло предмет просьбы и будто прежде получения обещания в исполнении просьбы она не могла вынуть из ридикюля это что то.
Она робко, умоляющим взглядом смотрела на брата.
– Ежели бы это и стоило мне большого труда… – как будто догадываясь, в чем было дело, отвечал князь Андрей.
– Ты, что хочешь, думай! Я знаю, ты такой же, как и mon pere. Что хочешь думай, но для меня это сделай. Сделай, пожалуйста! Его еще отец моего отца, наш дедушка, носил во всех войнах… – Она всё еще не доставала того, что держала, из ридикюля. – Так ты обещаешь мне?
– Конечно, в чем дело?
– Andre, я тебя благословлю образом, и ты обещай мне, что никогда его не будешь снимать. Обещаешь?
– Ежели он не в два пуда и шеи не оттянет… Чтобы тебе сделать удовольствие… – сказал князь Андрей, но в ту же секунду, заметив огорченное выражение, которое приняло лицо сестры при этой шутке, он раскаялся. – Очень рад, право очень рад, мой друг, – прибавил он.
– Против твоей воли Он спасет и помилует тебя и обратит тебя к Себе, потому что в Нем одном и истина и успокоение, – сказала она дрожащим от волнения голосом, с торжественным жестом держа в обеих руках перед братом овальный старинный образок Спасителя с черным ликом в серебряной ризе на серебряной цепочке мелкой работы.
Она перекрестилась, поцеловала образок и подала его Андрею.
– Пожалуйста, Andre, для меня…
Из больших глаз ее светились лучи доброго и робкого света. Глаза эти освещали всё болезненное, худое лицо и делали его прекрасным. Брат хотел взять образок, но она остановила его. Андрей понял, перекрестился и поцеловал образок. Лицо его в одно и то же время было нежно (он был тронут) и насмешливо.
– Merci, mon ami. [Благодарю, мой друг.]
Она поцеловала его в лоб и опять села на диван. Они молчали.
– Так я тебе говорила, Andre, будь добр и великодушен, каким ты всегда был. Не суди строго Lise, – начала она. – Она так мила, так добра, и положение ее очень тяжело теперь.
– Кажется, я ничего не говорил тебе, Маша, чтоб я упрекал в чем нибудь свою жену или был недоволен ею. К чему ты всё это говоришь мне?
Княжна Марья покраснела пятнами и замолчала, как будто она чувствовала себя виноватою.
– Я ничего не говорил тебе, а тебе уж говорили . И мне это грустно.
Красные пятна еще сильнее выступили на лбу, шее и щеках княжны Марьи. Она хотела сказать что то и не могла выговорить. Брат угадал: маленькая княгиня после обеда плакала, говорила, что предчувствует несчастные роды, боится их, и жаловалась на свою судьбу, на свекра и на мужа. После слёз она заснула. Князю Андрею жалко стало сестру.
– Знай одно, Маша, я ни в чем не могу упрекнуть, не упрекал и никогда не упрекну мою жену , и сам ни в чем себя не могу упрекнуть в отношении к ней; и это всегда так будет, в каких бы я ни был обстоятельствах. Но ежели ты хочешь знать правду… хочешь знать, счастлив ли я? Нет. Счастлива ли она? Нет. Отчего это? Не знаю…
Говоря это, он встал, подошел к сестре и, нагнувшись, поцеловал ее в лоб. Прекрасные глаза его светились умным и добрым, непривычным блеском, но он смотрел не на сестру, а в темноту отворенной двери, через ее голову.
– Пойдем к ней, надо проститься. Или иди одна, разбуди ее, а я сейчас приду. Петрушка! – крикнул он камердинеру, – поди сюда, убирай. Это в сиденье, это на правую сторону.
Княжна Марья встала и направилась к двери. Она остановилась.
– Andre, si vous avez. la foi, vous vous seriez adresse a Dieu, pour qu'il vous donne l'amour, que vous ne sentez pas et votre priere aurait ete exaucee. [Если бы ты имел веру, то обратился бы к Богу с молитвою, чтоб Он даровал тебе любовь, которую ты не чувствуешь, и молитва твоя была бы услышана.]
– Да, разве это! – сказал князь Андрей. – Иди, Маша, я сейчас приду.
По дороге к комнате сестры, в галлерее, соединявшей один дом с другим, князь Андрей встретил мило улыбавшуюся m lle Bourienne, уже в третий раз в этот день с восторженною и наивною улыбкой попадавшуюся ему в уединенных переходах.
– Ah! je vous croyais chez vous, [Ах, я думала, вы у себя,] – сказала она, почему то краснея и опуская глаза.
Князь Андрей строго посмотрел на нее. На лице князя Андрея вдруг выразилось озлобление. Он ничего не сказал ей, но посмотрел на ее лоб и волосы, не глядя в глаза, так презрительно, что француженка покраснела и ушла, ничего не сказав.
Когда он подошел к комнате сестры, княгиня уже проснулась, и ее веселый голосок, торопивший одно слово за другим, послышался из отворенной двери. Она говорила, как будто после долгого воздержания ей хотелось вознаградить потерянное время.
– Non, mais figurez vous, la vieille comtesse Zouboff avec de fausses boucles et la bouche pleine de fausses dents, comme si elle voulait defier les annees… [Нет, представьте себе, старая графиня Зубова, с фальшивыми локонами, с фальшивыми зубами, как будто издеваясь над годами…] Xa, xa, xa, Marieie!
Точно ту же фразу о графине Зубовой и тот же смех уже раз пять слышал при посторонних князь Андрей от своей жены.
Он тихо вошел в комнату. Княгиня, толстенькая, румяная, с работой в руках, сидела на кресле и без умолку говорила, перебирая петербургские воспоминания и даже фразы. Князь Андрей подошел, погладил ее по голове и спросил, отдохнула ли она от дороги. Она ответила и продолжала тот же разговор.
Коляска шестериком стояла у подъезда. На дворе была темная осенняя ночь. Кучер не видел дышла коляски. На крыльце суетились люди с фонарями. Огромный дом горел огнями сквозь свои большие окна. В передней толпились дворовые, желавшие проститься с молодым князем; в зале стояли все домашние: Михаил Иванович, m lle Bourienne, княжна Марья и княгиня.
Князь Андрей был позван в кабинет к отцу, который с глазу на глаз хотел проститься с ним. Все ждали их выхода.
Когда князь Андрей вошел в кабинет, старый князь в стариковских очках и в своем белом халате, в котором он никого не принимал, кроме сына, сидел за столом и писал. Он оглянулся.
– Едешь? – И он опять стал писать.
– Пришел проститься.
– Целуй сюда, – он показал щеку, – спасибо, спасибо!
– За что вы меня благодарите?
– За то, что не просрочиваешь, за бабью юбку не держишься. Служба прежде всего. Спасибо, спасибо! – И он продолжал писать, так что брызги летели с трещавшего пера. – Ежели нужно сказать что, говори. Эти два дела могу делать вместе, – прибавил он.
– О жене… Мне и так совестно, что я вам ее на руки оставляю…
– Что врешь? Говори, что нужно.
– Когда жене будет время родить, пошлите в Москву за акушером… Чтоб он тут был.
Старый князь остановился и, как бы не понимая, уставился строгими глазами на сына.
– Я знаю, что никто помочь не может, коли натура не поможет, – говорил князь Андрей, видимо смущенный. – Я согласен, что и из миллиона случаев один бывает несчастный, но это ее и моя фантазия. Ей наговорили, она во сне видела, и она боится.
– Гм… гм… – проговорил про себя старый князь, продолжая дописывать. – Сделаю.
Он расчеркнул подпись, вдруг быстро повернулся к сыну и засмеялся.
– Плохо дело, а?
– Что плохо, батюшка?
– Жена! – коротко и значительно сказал старый князь.
– Я не понимаю, – сказал князь Андрей.
– Да нечего делать, дружок, – сказал князь, – они все такие, не разженишься. Ты не бойся; никому не скажу; а ты сам знаешь.
Он схватил его за руку своею костлявою маленькою кистью, потряс ее, взглянул прямо в лицо сына своими быстрыми глазами, которые, как казалось, насквозь видели человека, и опять засмеялся своим холодным смехом.
Сын вздохнул, признаваясь этим вздохом в том, что отец понял его. Старик, продолжая складывать и печатать письма, с своею привычною быстротой, схватывал и бросал сургуч, печать и бумагу.
– Что делать? Красива! Я всё сделаю. Ты будь покоен, – говорил он отрывисто во время печатания.
Андрей молчал: ему и приятно и неприятно было, что отец понял его. Старик встал и подал письмо сыну.