Digital Signature Standard

Поделись знанием:
Перейти к: навигация, поиск
DSS, Digital Signature Standard
Размер ключа:

512—1024 бит

Размер подписи:

два числа по 160 бит

DSS (Digital Signature Standard) — американский стандарт, описывающий Digital Signature Algorithm (DSA), который может быть использован для генерации цифровой подписи. Цифровая подпись служит для установления изменений данных и для установления подлинности подписавшейся стороны. Получатель подписанных данных может использовать цифровую подпись для доказательства третьей стороне факта, что подпись действительно сделана отправляющей стороной.





Введение

Когда получено сообщение, получатель может пожелать проверить, не изменили ли это сообщение при его передаче. Получатель также может захотеть проверить подлинность подписавшейся стороны. DSA дает возможность сделать это.

Использование DSA

DSA используется одной стороной для генерации подписи данных, а другой для проверки подлинности подписчика. Подпись генерируется при помощи закрытого ключа. Любая сторона может проверить подлинность цифровой подписи при помощи открытого ключа. Открытый ключ посылается вместе с подписанными данными. Открытый и закрытый ключи не совпадают.

При генерации подписи для получения сжатой версии данных используется хэш-функция. Полученные данные обрабатываются при помощи DSA для получения цифровой подписи. Для проверки подписи используется та же хэш-функция. Хэш-функция описана в SHS (Secure Hash Standard).

Использование SHA вместе с DSA

Параметры DSA

DSA использует следующие параметры:

1. p – простое число p, где 2L-1 < p < 2L, 512 =< L =< 1024 и L кратно 64
2. q – простой делитель p-1, причем 2159 < q < 2160
3. g = h(p-1)/q mod p, где h любое целое число 1 < h < p - 1 такое, что h(p-1)/q mod p > 1
4. x – случайное или псевдослучайное целое число, где 0 < x < q
5. y = gx mod p
6. k – случайное или псевдослучайное целое число, где 0 < k < q.

Целые p, q и g могут быть открытыми и могут быть общими для группы людей. x и y являются закрытым и открытым ключами, соответственно. Параметры x и k используются только для генерации подписи и должны держаться в секрете. Параметр k разный для каждой подписи.

Генерация подписи

Подписью сообщения M является пара чисел r и s, где

r = (gk mod p) mod q 
s = (k−1(SHA(M) + xr)) mod q.

SHA(M) — 160-битная бинарная строка.

Если r = 0 или s = 0, должно быть сгенерировано новое k и вычислена новая подпись. Если подпись вычислялась правильно, вероятность того, что r = 0 или s = 0 очень мала.

Подпись вместе с сообщением пересылается получателю.

Проверка подписи

Числа p, q, g и открытый ключ находятся в открытом доступе.

Пусть M', r' и s' — полученные версии M, r и s соответственно, и пусть y — открытый ключ. При проверке подписи сначала нужно посмотреть, выполняются ли следующие неравенства:

0 < r' < q 
0 < s' < q.

Если хотя бы одно неравенство не выполнено, подпись должна быть отвергнута. Если условия неравенств выполнены, производятся следующие вычисления:

w = (s')−1 mod q 
u1 = ((SHA(M')w) mod q 
u2 = ((r')w) mod q 
v = (((g)ul (y)u2) mod p) mod q.

Если v = r', то подлинность подписи подтверждена.

Если v ≠ r', то сообщение могло быть изменено, сообщение могло быть неправильно подписано или сообщение могло быть подписано мошенником. В этом случае полученные данные следует рассматривать как поврежденные.

Генерация простых чисел для DSA

Этот раздел включает алгоритмы для генерации простых чисел p и q для DSA. В этих алгоритмах используется генератор случайных чисел.

Вероятностный тест на простоту

Для генерации простых p и q необходим тест на простоту. Есть несколько быстрых вероятностных тестов. В нашем случае будет использоваться упрощенная версия теста Миллера-Рабина. Если повторить тест n раз, он выдаст простое число с вероятностью ошибки не больше 1/4n. Для проверки целого числа на простоту нужно:

Шаг 1. Устанавливаем i = 1 и выбираем n>=50.
Шаг 2. Приравниваем w тестируемому числу и представляем его в виде w = 1 + 2am, где m – нечетное число.
Шаг 3. Генерируем случайное число b: 1 < b < w. 
Шаг 4. Устанавливаем j = 0 и z = bm mod w.
Шаг 5. Если j = 0 и z = 1, или если z = w - 1, то переходим на шаг 9. 
Шаг 6. Если j > 0 и z = 1, то переходим на шаг 8.
Шаг 7. j = j + 1. Если j < a, то устанавливаем z = z2 mod w и переходим на шаг 5.
Шаг 8. w не простое. Стоп.
Шаг 9. Если i < n, то устанавливаем i = i + 1 и переходим на шаг 3. Иначе, возможно w – простое число.

Генерация простых чисел

Для DSS нужны 2 простых числа p и q, которые должны удовлетворять следующим условиям:

2159 < q < 2160 
2L-1 < p < 2L, где L = 512 + 64j, причем 0 <= j < = 8 
p - 1 делится на q.

Для генерации простого q: 2159 < q < 2160 используется SHA-1 и начальное число SEED. После этого число SEED используется для создания числа X: 2L-1 < X < 2L. Простое p получается округлением X таким образом, чтобы полученное число было равно 1 mod 2q.

Пусть L — 1 = n*160 + b, где b и n целые и принимают значения от 0 до 160.

Шаг 1. Выбираем произвольную последовательность из как минимум 160 бит и называем её SEED. Пусть g – длина SEED в битах.
Шаг 2. Вычисляем U = SHA[SEED] XOR SHA[(SEED+1) mod 2g ].
Шаг 3. Создаем q из U устанавливая младший и старший бит равным 1:
       q = U OR 2159 OR 1.
       Заметим, что 2159 < q < 2160. 
Шаг 4. Проверяем q на простоту. 
Шаг 5. Если q непростое, переходим на шаг 1. 
Шаг 6. Пусть counter = 0 и offset = 2. 
Шаг 7. Для k = 0,...,n вычисляем Vk = SHA[(SEED + offset + k) mod 2g].
Шаг 8. Вычисляем W = V0 + V1*2160 + ... + Vn-1*2(n-1)*160 + (Vn mod 2b) * 2n*160 
       X = W + 2L-1. 
       Заметим, что 0 < = W < 2L-1  и 2L-1 < = X < 2L. 
Шаг 9. Пусть c = X mod 2q и p = X - (c - 1). Заметим, что p равно 1 mod 2q. 
Шаг 10. Если p < 2L-1, тогда переходим на шаг 13. 
Шаг 11. Проверяем p на простоту. 
Шаг 12. Если p прошло тест на 11 шаге, переходим на 15 шаг. 
Шаг 13. counter = counter + 1 и offset = offset + n + 1. 
Шаг 14. Если counter >= 212 = 4096 переходим на шаг 1, иначе переходим на шаг 7. 
Шаг 15. Сохраняем SEED и counter для  того, чтобы подтвердить правильную генерацию p и q.

Генерация случайных чисел для DSA

Для любой реализации DSA требуются случайные или псевдослучайные целые числа. Эти числа выбираются при помощи методов описанных в этом разделе или при помощи других одобреных FIPS методов.

Алгоритм в разделе 7.1 может быть использован для генерации x. Алгоритм для k и r описан в разделе 7.2. Алгоритмы изпользуют одностороннюю функцию (функцию, обратное значение которой очень трудно вычислить) G(t, c), где t имеет размер 160 бит, c имеет размер b бит (160 < b < 512) и G(t, c) — 160 бит. G может быть создана с помощью Secure Hash Algorithm (SHA-1) или с помощью Data Encryption Standard (DES), описанные в разделах 7.3 и 7.4 соответственно.

Алгоритм для вычисления m значений числа x

Пусть x — секретный ключ подписывающей стороны. Следующий алгоритм можно использовать для генерации m значений числа x:

Шаг 1. Выбираем новое значение для исходного ключа, XKEY.
Шаг 2. В шестнадцатеричной системе счисления
t = 67452301 EFCDAB89 98BADCFE 10325476 C3D2E1F0.
Это начальное значение для H0||H1||H2||H3||H4 в SHS.
Шаг 3. Для j = 0..m - 1
       a. XSEEDj = опциональное значение, введенное пользователем.
       b. XVAL = (XKEY + XSEEDj) mod 2b.
       c. xj = G(t,XVAL) mod q.
       d. XKEY = (1 + XKEY + xj) mod 2b.

Алгоритм для предварительного вычисления k и r

Этот алгоритм может быть использован для предварительного вычисления k, k−1 и r для m сообщений одновременно. Алгоритм:

Шаг 1. Выбирается секретное начальное значение для KKEY.
Шаг 2. В шестнадцатеричной системе счисления
t = EFCDAB89 98BADCFE 10325476 C3D2E1F0 67452301.
Это начальный сдвиг для H0||H1||H2||H3||H4 в SHS.
Шаг 3. Для j = 0..m - 1:
       a. k = G(t,KKEY) mod q.
       b. Вычисляем kj−1 = k−1 mod q.
       c. Вычисляем rj = (gk mod p) mod q.
       d. KKEY = (1 + KKEY + k) mod 2b. 
Шаг 4. Предположим M0, ... , Mm-1 - следующие m сообщений. Для j = 0..m - 1:
       a. Пусть h = SHA(Mj).
       b. sj = (kj−1(h + xrj)) mod q.
       c. rj,sj) - подпись для Mj. 
Шаг 5. t = h.
Шаг 6. Переходим на шаг 3.

Шаг 3 дает возможность вычислить величины, необходимые для подписи следующих m сообщений. Шаг 4 выполняться сразу после того, когда получены эти m сообщений.

Создание функции G при помощи SHA

G(t, c) может быть получена при помощи SHA-1, но перед этим {Hj} и M1 должны быть инициализированы следующим образом:

1. Инициализируем {Hj} деление 160-битного значения t на пять 32-битных сегмента:
   t = t0||t1||t2||t3||t4
   Тогда Hj = tj для j = 0..4. 
2. Блок сообщения M1 определяется следующим образом:
   M1 = c||0512-b
   (Первые b бит сообщения M1 содержат c, а оставшиеся (512-b) бит устанавливаются нулями). 

После этого выполняется SHA-1[1] и получаем 160-битную строку G(t, c), представленную в виде:

H0||H1||H2||H3||H4.

Создание функции G при помощи DES

Пусть a XOR b обозначает побитовое исключающее «ИЛИ» (сложение по модулю 2). Пусть a1, a2, b1, b2 — 32-строки. Пусть b1' — 24 младших бита числа b1. Пусть K = b1'||b2 и A = a1||a2. Обозначим

DESb1,b2(a1,a2) = DESK(A)

DESK(A) обозначает обычное DES-шифрование[2] 64-битного блока A при помощи 56-битного ключа K. Предположим, что t и c имеют размер 160 бит каждое. Для вычисления G(t, c):

Шаг 1. Записываем
       t = t1||t2||t3||t4||t5
       c = c1||c2||c3||c4||c5
       Каждое ti и ci имеет размер 32 бита. 
Шаг 2. Для i = 1..5:
       xi = ti XOR ci 
Шаг 3. Для i = 1..5:
       b1 = c((i+3) mod 5) + 1
       b2 = c((i+2) mod 5) + 1
       a1 = xi
       a2 = x(i mod 5) + 1 XOR x((i+3) mod 5) + 1
       yi,1||yi,2 = DESb1,b2(a1,a2) (yi,1, yi,2 = 32 бита)
Шаг 4. Для i = 1..5:
       zi = yi,1 XOR y((i+1) mod 5)+1,2 XOR y((i+2) mod 5)+1,1 
Шаг 5. G(t,c) = z1||z2||z3||z4||z5

Генерация других параметров

В этом разделе приведены алгоритмы для генерации g, k−1 и s−1, которые используются в DSS. Для генерации g:

Шаг 1. Генерация p и q описана выше.
Шаг 2. Пусть e = (p - 1)/q.
Шаг 3. Приравниваем h любому целому числу: 1 < h < p - 1.
Шаг 4. g = he mod p.
Шаг 5. Если g = 1, переходим на шаг 3.

Для вычисления n−1 mod q, где 0 < n < q и 0 < n−1 < q:

Шаг 1. i = q, h = n, v = 0 и d = 1.
Шаг 2. Пусть t = i DIV h, где DIV - целочисленное деление.
Шаг 3. x = h.
Шаг 4. h = i - tx.
Шаг 5. i = x.
Шаг 6. x = d.
Шаг 7. d = v - tx.
Шаг 8. v = x.
Шаг 9. Если h > 0, переходим на шаг 2.
Шаг 10. Пусть n−1 = v mod q. 

Заметим, что на шаге 10, v может быть отрицательным.

Пример DSA

Пусть L = 512 (размер p). В этом примере все величины будут в шестнадцатеричном представлении. Величины p и q были сгенерированы, как описано выше, используя следующее 160-битное значение SEED:

SEED = d5014e4b 60ef2ba8 b6211b40 62ba3224 e0427dd3

С этим SEED, алгоритм нашел p и q в момент, когда counter = 105. x было сгенерировано при помощи алгоритма, описанного в разделе 7.1, с использованием SHA-1 для генерации G (раздел 7.3) 160­-битный XKEY:

XKEY = bd029bbe 7f51960b cf9edb2b 61f06f0f eb5a38b6

t = 67452301 EFCDAB89 98BADCFE 10325476 C3D2E1F0

x = G(t,XKEY) mod q

k было сгенерировано как описано в разделе 7.2 с использованием SHA-1 для генерации G (раздел 7.3) 160­-битный KKEY:

KKEY = 687a66d9 0648f993 867e121f 4ddf9ddb 01205584

t = EFCDAB89 98BADCFE 10325476 C3D2E1F0 67452301

k = G(t,KKEY) mod q

Окончательно:

h = 2

p = 8df2a494 492276aa 3d25759b b06869cb eac0d83a fb8d0cf7 cbb8324f 0d7882e5 
    d0762fc5 b7210eaf c2e9adac 32ab7aac 49693dfb f83724c2 ec0736ee 31c80291

q = c773218c 737ec8ee 993b4f2d ed30f48e dace915f

g = 626d0278 39ea0a13 413163a5 5b4cb500 299d5522 956cefcb 3bff10f3 99ce2c2e 
    71cb9de5 fa24babf 58e5b795 21925c9c c42e9f6f 464b088c c572af53 e6d78802

x = 2070b322 3dba372f de1c0ffc 7b2e3b49 8b260614

k = 358dad57 1462710f 50e254cf 1a376b2b deaadfbf

k−1 = 0d516729 8202e49b 4116ac10 4fc3f415 ae52f917

M = слово «abc» из английского алфавита(ASCII)

(SHA-1)(M) = a9993e36 4706816a ba3e2571 7850c26c 9cd0d89d

y = 19131871 d75b1612 a819f29d 78d1b0d7 346f7aa7 7bb62a85 9bfd6c56 75da9d21 
    2d3a36ef 1672ef66 0b8c7c25 5cc0ec74 858fba33 f44c0669 9630a76b 030ee333

r = 8bac1ab6 6410435c b7181f95 b16ab97c 92b341c0

s = 41e2345f 1f56df24 58f426d1 55b4ba2d b6dcd8c8

w = 9df4ece5 826be95f ed406d41 b43edc0b 1c18841b

u1 = bf655bd0 46f0b35e c791b004 804afcbb 8ef7d69d

u2 = 821a9263 12e97ade abcc8d08 2b527897 8a2df4b0

gu1 mod p = 51b1bf86 7888e5f3 af6fb476 9dd016bc fe667a65 aafc2753 9063bd3d 2b138b4c 
            e02cc0c0 2ec62bb6 7306c63e 4db95bbf 6f96662a 1987a21b e4ec1071 010b6069

yu2 mod p = 8b510071 2957e950 50d6b8fd 376a668e 4b0d633c 1e46e665 5c611a72 e2b28483 
            be52c74d 4b30de61 a668966e dc307a67 c19441f4 22bf3c34 08aeba1f 0a4dbec7

v = 8bac1ab6 6410435c b7181f95 b16ab97c 92b341c0

Напишите отзыв о статье "Digital Signature Standard"

Примечания

  1. [www.itl.nist.gov/fipspubs/fip180-1.htm FIPS PUB 180-1] (англ.). — описание стандарта SHS. [www.webcitation.org/66kq6hVtl Архивировано из первоисточника 8 апреля 2012].
  2. [csrc.nist.gov/publications/fips/fips46-3/fips46-3.pdf FIPS PUB 46-3] (англ.). — описание стандарта DES. [www.webcitation.org/66kuhPhSB Архивировано из первоисточника 8 апреля 2012].

Ссылки

Зарубежные

  • [www.itl.nist.gov/fipspubs/fip186.htm FIPS-186] (англ.). — the first version of the official DSA specification. [www.webcitation.org/66kuhq8Pb Архивировано из первоисточника 8 апреля 2012].
  • [www.itl.nist.gov/fipspubs/186chg-1.htm FIPS-186, change notice No.1] (англ.). — the first change notice to the first version of the specification. [www.webcitation.org/66kuiFfkN Архивировано из первоисточника 8 апреля 2012].
  • [www.mozilla.org/projects/security/pki/nss/fips1861.pdf FIPS-186-1] (англ.). — the first revision to the official DSA specification. [www.webcitation.org/66kuieUsU Архивировано из первоисточника 8 апреля 2012].
  • [csrc.nist.gov/publications/fips/fips186-3/fips_186-3.pdf FIPS-186-3] (англ.). — the third and current revision to the official DSA specification. [www.webcitation.org/66kuj5Zrp Архивировано из первоисточника 8 апреля 2012].
  • [csrc.nist.gov/publications/fips/fips186-3/frn-fips_186-3.pdf FIPS-186-3 Approval] (англ.). — approval announcement of the third revision to the official DSA specification. [www.webcitation.org/66kujVMH7 Архивировано из первоисточника 8 апреля 2012].
  • [csrc.nist.gov/publications/nistpubs/800-57/SP800-57-Part1.pdf Recommendation for Key Management -- Part 1: general] (англ.)(недоступная ссылка — история). — NIST Special Publication 800-57, p. 62–63.. [web.archive.org/20050821162420/csrc.nist.gov/publications/nistpubs/800-57/SP800-57-Part1.pdf Архивировано из первоисточника 21 августа 2005].

Русские

  • [wincrypt.chat.ru/dsa.htm Алгоритм DSA] (рус.). — краткое описание алгоритма DSA. [www.webcitation.org/66kujucxS Архивировано из первоисточника 8 апреля 2012].

Реализация

  • [msdn.microsoft.com/ru-ru/library/system.security.cryptography.dsa_methods.aspx DSA-методы] (рус.). — описание методов DSA-класса из библиотеки классов платформы .NET Framework. [www.webcitation.org/66kukcMN5 Архивировано из первоисточника 8 апреля 2012].

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

В Петербурге в это время в высших кругах, с большим жаром чем когда нибудь, шла сложная борьба партий Румянцева, французов, Марии Феодоровны, цесаревича и других, заглушаемая, как всегда, трубением придворных трутней. Но спокойная, роскошная, озабоченная только призраками, отражениями жизни, петербургская жизнь шла по старому; и из за хода этой жизни надо было делать большие усилия, чтобы сознавать опасность и то трудное положение, в котором находился русский народ. Те же были выходы, балы, тот же французский театр, те же интересы дворов, те же интересы службы и интриги. Только в самых высших кругах делались усилия для того, чтобы напоминать трудность настоящего положения. Рассказывалось шепотом о том, как противоположно одна другой поступили, в столь трудных обстоятельствах, обе императрицы. Императрица Мария Феодоровна, озабоченная благосостоянием подведомственных ей богоугодных и воспитательных учреждений, сделала распоряжение об отправке всех институтов в Казань, и вещи этих заведений уже были уложены. Императрица же Елизавета Алексеевна на вопрос о том, какие ей угодно сделать распоряжения, с свойственным ей русским патриотизмом изволила ответить, что о государственных учреждениях она не может делать распоряжений, так как это касается государя; о том же, что лично зависит от нее, она изволила сказать, что она последняя выедет из Петербурга.
У Анны Павловны 26 го августа, в самый день Бородинского сражения, был вечер, цветком которого должно было быть чтение письма преосвященного, написанного при посылке государю образа преподобного угодника Сергия. Письмо это почиталось образцом патриотического духовного красноречия. Прочесть его должен был сам князь Василий, славившийся своим искусством чтения. (Он же читывал и у императрицы.) Искусство чтения считалось в том, чтобы громко, певуче, между отчаянным завыванием и нежным ропотом переливать слова, совершенно независимо от их значения, так что совершенно случайно на одно слово попадало завывание, на другие – ропот. Чтение это, как и все вечера Анны Павловны, имело политическое значение. На этом вечере должно было быть несколько важных лиц, которых надо было устыдить за их поездки во французский театр и воодушевить к патриотическому настроению. Уже довольно много собралось народа, но Анна Павловна еще не видела в гостиной всех тех, кого нужно было, и потому, не приступая еще к чтению, заводила общие разговоры.
Новостью дня в этот день в Петербурге была болезнь графини Безуховой. Графиня несколько дней тому назад неожиданно заболела, пропустила несколько собраний, которых она была украшением, и слышно было, что она никого не принимает и что вместо знаменитых петербургских докторов, обыкновенно лечивших ее, она вверилась какому то итальянскому доктору, лечившему ее каким то новым и необыкновенным способом.
Все очень хорошо знали, что болезнь прелестной графини происходила от неудобства выходить замуж сразу за двух мужей и что лечение итальянца состояло в устранении этого неудобства; но в присутствии Анны Павловны не только никто не смел думать об этом, но как будто никто и не знал этого.
– On dit que la pauvre comtesse est tres mal. Le medecin dit que c'est l'angine pectorale. [Говорят, что бедная графиня очень плоха. Доктор сказал, что это грудная болезнь.]
– L'angine? Oh, c'est une maladie terrible! [Грудная болезнь? О, это ужасная болезнь!]
– On dit que les rivaux se sont reconcilies grace a l'angine… [Говорят, что соперники примирились благодаря этой болезни.]
Слово angine повторялось с большим удовольствием.
– Le vieux comte est touchant a ce qu'on dit. Il a pleure comme un enfant quand le medecin lui a dit que le cas etait dangereux. [Старый граф очень трогателен, говорят. Он заплакал, как дитя, когда доктор сказал, что случай опасный.]
– Oh, ce serait une perte terrible. C'est une femme ravissante. [О, это была бы большая потеря. Такая прелестная женщина.]
– Vous parlez de la pauvre comtesse, – сказала, подходя, Анна Павловна. – J'ai envoye savoir de ses nouvelles. On m'a dit qu'elle allait un peu mieux. Oh, sans doute, c'est la plus charmante femme du monde, – сказала Анна Павловна с улыбкой над своей восторженностью. – Nous appartenons a des camps differents, mais cela ne m'empeche pas de l'estimer, comme elle le merite. Elle est bien malheureuse, [Вы говорите про бедную графиню… Я посылала узнавать о ее здоровье. Мне сказали, что ей немного лучше. О, без сомнения, это прелестнейшая женщина в мире. Мы принадлежим к различным лагерям, но это не мешает мне уважать ее по ее заслугам. Она так несчастна.] – прибавила Анна Павловна.
Полагая, что этими словами Анна Павловна слегка приподнимала завесу тайны над болезнью графини, один неосторожный молодой человек позволил себе выразить удивление в том, что не призваны известные врачи, а лечит графиню шарлатан, который может дать опасные средства.
– Vos informations peuvent etre meilleures que les miennes, – вдруг ядовито напустилась Анна Павловна на неопытного молодого человека. – Mais je sais de bonne source que ce medecin est un homme tres savant et tres habile. C'est le medecin intime de la Reine d'Espagne. [Ваши известия могут быть вернее моих… но я из хороших источников знаю, что этот доктор очень ученый и искусный человек. Это лейб медик королевы испанской.] – И таким образом уничтожив молодого человека, Анна Павловна обратилась к Билибину, который в другом кружке, подобрав кожу и, видимо, сбираясь распустить ее, чтобы сказать un mot, говорил об австрийцах.
– Je trouve que c'est charmant! [Я нахожу, что это прелестно!] – говорил он про дипломатическую бумагу, при которой отосланы были в Вену австрийские знамена, взятые Витгенштейном, le heros de Petropol [героем Петрополя] (как его называли в Петербурге).
– Как, как это? – обратилась к нему Анна Павловна, возбуждая молчание для услышания mot, которое она уже знала.
И Билибин повторил следующие подлинные слова дипломатической депеши, им составленной:
– L'Empereur renvoie les drapeaux Autrichiens, – сказал Билибин, – drapeaux amis et egares qu'il a trouve hors de la route, [Император отсылает австрийские знамена, дружеские и заблудшиеся знамена, которые он нашел вне настоящей дороги.] – докончил Билибин, распуская кожу.
– Charmant, charmant, [Прелестно, прелестно,] – сказал князь Василий.
– C'est la route de Varsovie peut etre, [Это варшавская дорога, может быть.] – громко и неожиданно сказал князь Ипполит. Все оглянулись на него, не понимая того, что он хотел сказать этим. Князь Ипполит тоже с веселым удивлением оглядывался вокруг себя. Он так же, как и другие, не понимал того, что значили сказанные им слова. Он во время своей дипломатической карьеры не раз замечал, что таким образом сказанные вдруг слова оказывались очень остроумны, и он на всякий случай сказал эти слова, первые пришедшие ему на язык. «Может, выйдет очень хорошо, – думал он, – а ежели не выйдет, они там сумеют это устроить». Действительно, в то время как воцарилось неловкое молчание, вошло то недостаточно патриотическое лицо, которого ждала для обращения Анна Павловна, и она, улыбаясь и погрозив пальцем Ипполиту, пригласила князя Василия к столу, и, поднося ему две свечи и рукопись, попросила его начать. Все замолкло.
– Всемилостивейший государь император! – строго провозгласил князь Василий и оглянул публику, как будто спрашивая, не имеет ли кто сказать что нибудь против этого. Но никто ничего не сказал. – «Первопрестольный град Москва, Новый Иерусалим, приемлет Христа своего, – вдруг ударил он на слове своего, – яко мать во объятия усердных сынов своих, и сквозь возникающую мглу, провидя блистательную славу твоея державы, поет в восторге: «Осанна, благословен грядый!» – Князь Василий плачущим голосом произнес эти последние слова.
Билибин рассматривал внимательно свои ногти, и многие, видимо, робели, как бы спрашивая, в чем же они виноваты? Анна Павловна шепотом повторяла уже вперед, как старушка молитву причастия: «Пусть дерзкий и наглый Голиаф…» – прошептала она.
Князь Василий продолжал:
– «Пусть дерзкий и наглый Голиаф от пределов Франции обносит на краях России смертоносные ужасы; кроткая вера, сия праща российского Давида, сразит внезапно главу кровожаждущей его гордыни. Се образ преподобного Сергия, древнего ревнителя о благе нашего отечества, приносится вашему императорскому величеству. Болезную, что слабеющие мои силы препятствуют мне насладиться любезнейшим вашим лицезрением. Теплые воссылаю к небесам молитвы, да всесильный возвеличит род правых и исполнит во благих желания вашего величества».
– Quelle force! Quel style! [Какая сила! Какой слог!] – послышались похвалы чтецу и сочинителю. Воодушевленные этой речью, гости Анны Павловны долго еще говорили о положении отечества и делали различные предположения об исходе сражения, которое на днях должно было быть дано.
– Vous verrez, [Вы увидите.] – сказала Анна Павловна, – что завтра, в день рождения государя, мы получим известие. У меня есть хорошее предчувствие.


Предчувствие Анны Павловны действительно оправдалось. На другой день, во время молебствия во дворце по случаю дня рождения государя, князь Волконский был вызван из церкви и получил конверт от князя Кутузова. Это было донесение Кутузова, писанное в день сражения из Татариновой. Кутузов писал, что русские не отступили ни на шаг, что французы потеряли гораздо более нашего, что он доносит второпях с поля сражения, не успев еще собрать последних сведений. Стало быть, это была победа. И тотчас же, не выходя из храма, была воздана творцу благодарность за его помощь и за победу.
Предчувствие Анны Павловны оправдалось, и в городе все утро царствовало радостно праздничное настроение духа. Все признавали победу совершенною, и некоторые уже говорили о пленении самого Наполеона, о низложении его и избрании новой главы для Франции.
Вдали от дела и среди условий придворной жизни весьма трудно, чтобы события отражались во всей их полноте и силе. Невольно события общие группируются около одного какого нибудь частного случая. Так теперь главная радость придворных заключалась столько же в том, что мы победили, сколько и в том, что известие об этой победе пришлось именно в день рождения государя. Это было как удавшийся сюрприз. В известии Кутузова сказано было тоже о потерях русских, и в числе их названы Тучков, Багратион, Кутайсов. Тоже и печальная сторона события невольно в здешнем, петербургском мире сгруппировалась около одного события – смерти Кутайсова. Его все знали, государь любил его, он был молод и интересен. В этот день все встречались с словами:
– Как удивительно случилось. В самый молебен. А какая потеря Кутайсов! Ах, как жаль!
– Что я вам говорил про Кутузова? – говорил теперь князь Василий с гордостью пророка. – Я говорил всегда, что он один способен победить Наполеона.
Но на другой день не получалось известия из армии, и общий голос стал тревожен. Придворные страдали за страдания неизвестности, в которой находился государь.
– Каково положение государя! – говорили придворные и уже не превозносили, как третьего дня, а теперь осуждали Кутузова, бывшего причиной беспокойства государя. Князь Василий в этот день уже не хвастался более своим protege Кутузовым, а хранил молчание, когда речь заходила о главнокомандующем. Кроме того, к вечеру этого дня как будто все соединилось для того, чтобы повергнуть в тревогу и беспокойство петербургских жителей: присоединилась еще одна страшная новость. Графиня Елена Безухова скоропостижно умерла от этой страшной болезни, которую так приятно было выговаривать. Официально в больших обществах все говорили, что графиня Безухова умерла от страшного припадка angine pectorale [грудной ангины], но в интимных кружках рассказывали подробности о том, как le medecin intime de la Reine d'Espagne [лейб медик королевы испанской] предписал Элен небольшие дозы какого то лекарства для произведения известного действия; но как Элен, мучимая тем, что старый граф подозревал ее, и тем, что муж, которому она писала (этот несчастный развратный Пьер), не отвечал ей, вдруг приняла огромную дозу выписанного ей лекарства и умерла в мучениях, прежде чем могли подать помощь. Рассказывали, что князь Василий и старый граф взялись было за итальянца; но итальянец показал такие записки от несчастной покойницы, что его тотчас же отпустили.
Общий разговор сосредоточился около трех печальных событий: неизвестности государя, погибели Кутайсова и смерти Элен.
На третий день после донесения Кутузова в Петербург приехал помещик из Москвы, и по всему городу распространилось известие о сдаче Москвы французам. Это было ужасно! Каково было положение государя! Кутузов был изменник, и князь Василий во время visites de condoleance [визитов соболезнования] по случаю смерти его дочери, которые ему делали, говорил о прежде восхваляемом им Кутузове (ему простительно было в печали забыть то, что он говорил прежде), он говорил, что нельзя было ожидать ничего другого от слепого и развратного старика.