RC5

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

Рон Ривест

Создан:

1994 год

Опубликован:

1994 год

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

0-2040 битов (128 по умолчанию)

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

32, 64 или 128 битов (64 по умолчанию для 32-разрядных платформ)

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

1-255 (12 по умолчанию)

Тип:

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

RC5 (Ron’s Code 5 или Rivest’s Cipher 5) — это блочный шифр, разработанный Роном Ривестом из компании RSA Security Inc. с переменным количеством раундов, длиной блока и длиной ключа. Это расширяет сферу использования и упрощает переход на более сильный вариант алгоритма.





Описание

Существует несколько различных вариантов алгоритма, в которых преобразования в "пол-раундах" классического RC5 несколько изменены. В классическом алгоритме используются три примитивных операции и их инверсии:

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

Шифрование по алгоритму RC5 состоит из двух этапов. Процедура расширения ключа и непосредственно шифрование. Для дешифрования выполняется сначала процедура расширения ключа, а затем операции, обратные процедуре шифрования. Все операции сложения и вычитания выполняются по модулю <math>2^w</math>.

Параметры

Т.к. алгоритм RC5 имеет переменные параметры, то для спецификации алгоритма с конкретными параметрами принято обозначение RC5-W/R/b, где

  • W — половина длины блока в битах, возможные значения 16, 32 и 64. Для эффективной реализации величину W рекомендуют брать равным машинному слову. Например, для 32-битных платформ оптимальным будет выбор W=32, что соответствует размеру блока 64 бита.
  • R — число раундов, возможные значения от 0 до 255. Увеличение числа раундов обеспечивает увеличение уровня безопасности шифра. Так, при R=0 информация шифроваться не будет. Также алгоритм RC5 использует таблицу расширенных ключей размера <math>2(R+1)</math> слов, которая получается из ключа заданного пользователем.
  • b — длина ключа в байтах, возможные значения от 0 до 255.

Расширение ключа


Перед непосредственно шифрованием или дешифрованием данных выполняется процедура расширения ключа. Процедура генерации ключа состоит из четырех этапов:

  • Генерация констант
  • Разбиение ключа на слова
  • Построение таблицы расширенных ключей
  • Перемешивание

Генерация констант

Для заданного параметра <math>W</math> генерируются две псевдослучайные величины используя две математические константы: <math>e</math> (экспонента) и <math>f</math> (Золотое сечение).

<math>Q_w \leftarrow \textrm{Odd}((f-1)\cdot 2^w)</math>
<math>P_w \leftarrow \textrm{Odd}((e-2)\cdot 2^w)</math>,

где <math>\textrm{Odd}()</math> — это округление до ближайшего нечетного целого.

Для <math>w = 16, 32, 64</math> получатся следующие константы:

  • <math>P_{16} = \texttt{1011011111100001}_2 = \texttt{B7E1}_{16}</math>
  • <math>Q_{16} = \texttt{1001111000110111}_2 = \texttt{9E37}_{16}</math>
  • <math>P_{32} = \texttt{10110111111000010101000101100011}_2 = \texttt{B7E15163}_{16} </math>
  • <math>Q_{32} = \texttt{10011110001101110111100110111001}_2 = \texttt{9E3779B9}_{16} </math>
  • <math>P_{64} = \texttt{B7E151628AED2A6B}_{16}</math>
  • <math>Q_{64} = \texttt{9E3779B97F4A7C15}_{16}</math>

Разбиение ключа на слова

На этом этапе происходит копирование ключа <math>K_0 \dots K_{b-1}</math> в массив слов <math>L_0</math>…<math>L_{c-1}</math>, где <math>c=\mathcal {d}b/u\mathcal {e}</math>, где <math>u = W/8</math>, то есть, количество байт в слове.

Если <math>c</math> не кратен <math>W/8</math>, то <math>L_i</math> дополняется нулевыми битами до ближайшего большего размера <math>c</math>, кратного <math>W/8</math>.

В случае если <math>b=c=0</math>, то мы устанавливаем значение <math>c=1</math>, а <math>L_0=0</math>.

Построение таблицы расширенных ключей

На этом этапе происходит построение таблицы расширенных ключей <math>S_0 \dots S_{2 * (R+1) - 1}</math>, которое выполняется следующим образом:

<math>S_0 = P_w</math>
<math>S_{i+1} = S_{i} + Q_w</math>

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

Циклически N раз выполняются следующие действия:

<math>G = S_i = (S_i + G + H) \lll 3</math>
<math>H = L_j = (L_j + G + H) \lll (G + H)</math>
<math>i = (i + 1) \mod (2(R + 1))</math>
<math>j = (j + 1) \mod c</math>,

причем <math>G, H, i, j</math> — временные переменные, начальные значения которых равны 0. Количество итераций цикла <math>N</math> — это максимальное из двух значений <math>3*c</math> и <math>(3 \cdot 2 \cdot (R + 1))</math>.

Шифрование


Перед первым раундом выполняются операции наложения расширенного ключа на шифруемые данные:

<math>A = (A + S_0)\;\bmod\;2^w</math>
<math>B = (B + S_1)\;\bmod\;2^w</math>

В каждом раунде выполняются следующие действия:

<math>A = ((A \oplus B) \lll B) + S_{2i}</math>
<math>B = ((B \oplus A) \lll A) + S_{2i+1}</math>

Дешифрование


Для дешифрования данных используются обратные операции, т.е. для <math>i = R, R-1,...,1</math> выполняются следующие раунды:

<math>B = ((B - S_{2i+1}) \ggg A) \oplus A</math>
<math>A = ((A - S_{2i}) \ggg B) \oplus B</math>

После выполнения всех раундов, исходное сообщение находится из выражения:

<math>B = (B - S_1)\;\bmod\;2^w</math>
<math>A = (A - S_0)\;\bmod\;2^w</math>

Свойства

Алгоритм RC5 обладает следующими свойствами:[1]

  • Пригодный как для аппаратной, так и для программной реализации (алгоритм использует операции, выполняющиеся одинаково быстро на всех процессорах).
  • Каждый раунд обрабатывает весь блок целиком (типичный раунд сети Фейстеля обрабатывает только «подблок»).
  • Одинаково хорош для машин с разной длиной машинного слова (т.е. работает также хорошо и на 64-битных машинах).
  • Имеет повторяющуюся структуру с переменным числом раундов, что позволяет пользователю самому выбирать между более высокой скоростью шифрования и большей защищенностью шифра.
  • Имеет переменную длину ключа, что позволяет пользователю самому выбирать уровень безопасности, соответствующий специфике его приложения.
  • Достаточно простой в реализации и анализе.
  • Не требователен к памяти, что позволяет использовать его даже в мобильных и переносных устройствах.

Криптостойкость

RSA потратила много времени на анализ его работы с 64-битным блоком. Так в период с 1995 по 1998 г. они опубликовали ряд отчетов, в которых подробно проанализировали криптостойкость алгоритма RC5. Оценка для линейного криптоанализа показывает, что алгоритм безопасен после 6 раундов. Дифференциальный криптоанализ требует <math>2^{24}</math> выбранных открытых текстов для алгоритма с 5 раундами, <math>2^{45}</math> для 10 раундов, <math>2^{53}</math> для 12 раундов и <math>2^{68}</math> для 15 раундов. А так как существует всего лишь <math>2^{64}</math> возможных различных открытых текстов, то дифференциальный криптоанализ невозможен для алгоритма в 15 и более раундов. Так что рекомендуется использовать 18-20 раундов, или по крайней мере не меньше 15 вместо тех 12 раундов которые рекомендовал сам Ривест.

RSA Security Challenge

Для стимуляции изучения и применения шифра RC5 RSA Security Inc. 28 января 1997 года предложила взломать серию сообщений, зашифрованных алгоритмом RC5 с разными параметрами,[2] назначив за взлом каждого сообщения приз в $10 000. Шифр с самыми слабыми параметрами RC5-32/12/5 был взломан в течение нескольких часов. Тем не менее, последний осуществлённый взлом шифра RC5-32/12/8 потребовал уже 5 лет вычислений в рамках проекта распределённых вычислений RC5-64 (здесь 64=b·8, длина ключа в битах) под руководством distributed.net. По-прежнему неприступными пока остаются RC5-32/12/b для b от 9 до 16. distributed.net запустил проект RC5-72 для взлома RC5-32/12/9, в котором по состоянию на октября 2013 года удалось перебрать около 3% ключей.[3]

В мае 2007 года RSA Security Inc. объявила о прекращении поддержки соревнования и выплаты денежного вознаграждения. Чтобы не прекращать проект RC-72, distributed.net решила спонсировать для него приз в $4 000 из собственных средств.[4]

Атака по времени выполнения

На платформах, где операция циклического сдвига на переменное число битов выполняется за различное число тактов процессора, возможна атака по времени исполнения на алгоритм RC5. Два варианта подобной атаки были сформулированы криптоаналитиками Говардом Хейзом и Хеленой Хандшух (англ. Helena Handschuh). Они установили, что ключ может быть вычислен после выполнения около 220 операций шифрования с высокоточными замерами времени исполнения и затем от 228 до 240 пробных операций шифрования. Самый простой метод борьбы с подобными атаками — принудительное выполнение сдвигов за постоянное число тактов (например, за время выполнения самого медленного сдвига).

Варианты алгоритма

Т.к. одним из свойств RC5 является его простота в реализации и анализе, вполне логично, что многие криптологи[кто?] захотели усовершенствовать классический алгоритм. Общая структура алгоритма оставалось без изменений, менялись только действия выполняемые над каждым блоком в процессе непосредственно шифрования. Так появилось несколько различных вариантов этого алгоритма:

RC5XOR

В этом алгоритме сложение с ключом раунда по модулю <math>2^w</math> заменено операцией XOR:

<math>A_{i+1} = ((A_i \oplus B_i) \lll B_i) \oplus S_{2i}</math>
<math>B_{i+1} = ((B_i \oplus A_i) \lll A_i) \oplus S_{2i+1}</math>

Этот алгоритм оказался уязвим к дифференциальному и линейному криптоанализу. Бирюкову и Кушилевицу удалось найти атаку методом дифференциального криптоанализа для алгоритма RC5XOR-32/12/16, используя 228 выбранных открытых текстов.

RC5P

В этом алгоритме сложение двух обрабатываемых «подблоков» операцией XOR заменено сложением по модулю <math>2^w</math>:

<math>A_{i+1} = ((A_i + B_i) \lll B_i) + S_{2i}</math>
<math>B_{i+1} = ((B_i + A_i) \lll A_i) + S_{2i+1}</math>

Этот алгоритм оказался уязвим к дифференциальному криптоанализу.К:Википедия:Статьи без источников (тип: не указан)[источник не указан 4813 дней]

RC5PFR

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

<math>A_{i+1} = ((A_i \oplus B_i) \lll R_i) + S_{2i}</math>
<math>B_{i+1} = ((B_i \oplus A_i) \lll R_i) + S_{2i+1}</math>,

где <math>R_i</math> фиксированное число.

Этот алгоритм не достаточно хорошо изучен, однако предполагается,[кем?] что он неустойчив к дифференциальному криптоанализу.

RC5KFR

В этом алгоритме число бит сдвига зависит от ключа алгоритма и от текущего раунда:

<math>A_{i+1} = ((A_i \oplus B_i) \lll R_i(L_i)) + S_{2i}</math>
<math>B_{i+1} = ((B_i \oplus A_i) \lll R_i(L_i)) + S_{2i+1}</math>,

Этот алгоритм также не достаточно хорошо изучен.

RC5RA

В этом алгоритме число бит сдвига определяется с помощью некоторой функции от другого «подблока»:

<math>A_{i+1} = ((A_i \oplus B_i) \lll f(L_i)) + S_{2i}</math>
<math>B_{i+1} = ((B_i \oplus A_i) \lll f(L_i)) + S_{2i+1}</math>,

Предполагается,[кем?] что алгоритм RC5RA еще более стоек к известным методам криптоанализа, чем RC5.

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

Примечания

  1. Rivest, R. L. (1994). "[theory.lcs.mit.edu/~rivest/Rivest-rc5rev.pdf The RC5 Encryption Algorithm]" (pdf). Proceedings of the Second International Workshop on Fast Software Encryption (FSE) 1994e: 86–96. 
  2. [www.rsasecurity.com/rsalabs/node.asp?id=2100 The RSA Laboratories Secret-Key Challenge]
  3. [stats.distributed.net/projects.php?project_id=8 RC5-72: Overall project statistics]
  4. [n0cgi.distributed.net/cgi/planarc.cgi?user=bovine&plan=2008-09-08.02:09 distributed.net: staff blogs — 2008 — September — 08]

Ссылки

  • Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си = Applied Cryptography. Protocols, Algorithms and Source Code in C. — М.: Триумф, 2002. — 816 с. — 3000 экз. — ISBN 5-89392-055-4.
  • [www.inode.ru/articles/admin/2006-09-07/380#2 Часто задаваемые вопросы по симметричным шифрам] (рус.). — по материалам конференции fido7.ru.crypt. Проверено 11 ноября 2009. [www.webcitation.org/6184Ha0Ew Архивировано из первоисточника 22 августа 2011].
  • [www.cio-world.ru/weekly/298888/page2.html Современные методы вскрытия алгоритмов шифрования] (рус.). — Описание некоторых методов атак на алгоритмы шифрования. Проверено 4 декабря 2009.

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

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


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


Вернувшись в полк и передав командиру, в каком положении находилось дело Денисова, Ростов с письмом к государю поехал в Тильзит.
13 го июня, французский и русский императоры съехались в Тильзите. Борис Друбецкой просил важное лицо, при котором он состоял, о том, чтобы быть причислену к свите, назначенной состоять в Тильзите.
– Je voudrais voir le grand homme, [Я желал бы видеть великого человека,] – сказал он, говоря про Наполеона, которого он до сих пор всегда, как и все, называл Буонапарте.
– Vous parlez de Buonaparte? [Вы говорите про Буонапарта?] – сказал ему улыбаясь генерал.
Борис вопросительно посмотрел на своего генерала и тотчас же понял, что это было шуточное испытание.
– Mon prince, je parle de l'empereur Napoleon, [Князь, я говорю об императоре Наполеоне,] – отвечал он. Генерал с улыбкой потрепал его по плечу.
– Ты далеко пойдешь, – сказал он ему и взял с собою.
Борис в числе немногих был на Немане в день свидания императоров; он видел плоты с вензелями, проезд Наполеона по тому берегу мимо французской гвардии, видел задумчивое лицо императора Александра, в то время как он молча сидел в корчме на берегу Немана, ожидая прибытия Наполеона; видел, как оба императора сели в лодки и как Наполеон, приставши прежде к плоту, быстрыми шагами пошел вперед и, встречая Александра, подал ему руку, и как оба скрылись в павильоне. Со времени своего вступления в высшие миры, Борис сделал себе привычку внимательно наблюдать то, что происходило вокруг него и записывать. Во время свидания в Тильзите он расспрашивал об именах тех лиц, которые приехали с Наполеоном, о мундирах, которые были на них надеты, и внимательно прислушивался к словам, которые были сказаны важными лицами. В то самое время, как императоры вошли в павильон, он посмотрел на часы и не забыл посмотреть опять в то время, когда Александр вышел из павильона. Свидание продолжалось час и пятьдесят три минуты: он так и записал это в тот вечер в числе других фактов, которые, он полагал, имели историческое значение. Так как свита императора была очень небольшая, то для человека, дорожащего успехом по службе, находиться в Тильзите во время свидания императоров было делом очень важным, и Борис, попав в Тильзит, чувствовал, что с этого времени положение его совершенно утвердилось. Его не только знали, но к нему пригляделись и привыкли. Два раза он исполнял поручения к самому государю, так что государь знал его в лицо, и все приближенные не только не дичились его, как прежде, считая за новое лицо, но удивились бы, ежели бы его не было.