Fugue (хеш-функция)

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

Fugue

Создан

2009

Опубликован

Октябрь 2009

Размер хеша

224, 256, 384 или 512 бит

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

4

Тип

хеш-функция

Fugue — алгоритм хеширования, разработанный Shai Halevi, William E. Hall и Charanjit S. Jutla из IBM для конкурса хеш-функций Национального Института стандартов и технологий (en:NIST hash function competition) в 2009 году, где прошел во второй раунд[1]. Однако алгоритм не прошёл в третий раунд конкурса из-за недостаточного количества криптографического анализа и неуверенности в криптостойкости.[2] Для входного сообщения длиной от 1 до 264−1 бит алгоритм генерирует 224, 256, 384 или 512-битное хеш-значение, называемое также дайджестом сообщения. Функции для соответствующих длин выходных данных называются соответственно Fugue-224, Fugue-256, Fugue-384 и Fugue-512. Авторы также описали параметризованную версию алгоритма Fugue. Слабозащищенная версия Fugue-256, работающая в два раза быстрее стандартной версии, также описывается через параметризованную версию.

Авторы утверждают, что большинство существующих атакующих стратегий для хеш-функций основаны на дифференциальном криптоанализе. Fugue был спроектирован таким образом, чтобы уменьшить уязвимость перед такими типами атак. Также по их заверениям алгоритм конкурентоспособен по эффективности с SHA хеш-функциями в программном и прикладном плане, достигая производительности до 36,2 циклов в байт (CPB) на шестом семействе процессоров Intel Xeon 5150, и до 25 циклов в байт (CPB) на процессоре Intel Core 2 T7700. На 45 нанометровом чипе Intel Core 2 T9400 Fugue-256 достигает всего 16 циклов в байт (CPB), используя инструкции SSE 4.1. На процессорах с архитектурой Westmere (32нм), типа Intel Core i5, Fugue-256 рассчитывается со скоростью 14 циклов в байт (CPB).





Алгоритм

Основная идея

В основу Fugue положен хеш алгоритм Grindahl, и потому использует S-блоки из AES, однако перестановочная матрица 4x4 заменена 16x16 «супер-перестановочной» («Super-Mix») операцией, значительно улучшая лавинный эффект. При этом «супер-перестановка» («Super-Mix») является лишь чуть более трудозатратной операцией, чем перестановочная стратегия AES.

Супер-перестановка (Super-Mix)

Fugue-224, Fugue-256 работают с состоянием, которое может быть представлено матрицей беззнаковых байт размера 4x30, тогда как Fugue-384 и Fugue-512 работают с байтовой матрицей 4x36. Из этого состояния операции могут быть выполнены без дополнительной подготовки данных.

В основе алгоритма, известного как «Супер перестановочное преобразование» («Super-Mix transformation»), лежит прием матрицы 4х4 в качестве входных данных и возвращение новой матрицы 4х4. На вход функции передаются просто первые четыре колонки из текущей матрицы (4x30 или 4x36) и полученная новая матрица подставляется вместо использованных входных данных. Таким образом, супер-перестановка затрагивает только первые 4 столбца матрицы состояния.

«Супер-перестановочная» («Super-Mix») функция определяется следующим образом:

<math> \text{SuperMix}(U) = \text{ROL} \left( M \cdot U + \begin{pmatrix} \sum_{j \ne 0} U_j^i & 0 & 0 & 0\\ 0 & \sum_{j \ne 1} U_j^i & 0 & 0\\ 0 & 0 & \sum_{j \ne 2} U_j^i & 0\\ 0 & 0 & 0 & \sum_{j \ne 3} U_j^i \end{pmatrix} \cdot M^T \right) </math>

где:

<math>

M = \begin{pmatrix} 1 & 4 & 7 & 1\\ 1 & 1 & 4 & 7\\ 7 & 1 & 1 & 4\\ 4 & 7 & 1 & 1 \end{pmatrix} </math>;

<math>U</math> — это матрица байт размером 4x4 (то есть матрица после S-блочной подстановки);
<math>M^T</math> — это транспонированная матрица M.

Преобразование <math>ROL</math> принимает матрицу 4x4 и сдвигает <math>i</math>-тую строку влево на <math>i</math> байт, то есть

<math>

\text{ROL}(W)_j^i = W_{j-i \pmod 4}^{i} </math>

Супер-перестановка является обратимой функцией.

Хэш функция F-256

Функция F-256 лежит в основе Fugue-256. F-256 принимает на вход 4-х-байтную строку и 32-х-байтный вектор инициализации (IV256) и выдает на выходе 32 байта хэшированного значения.

Хэш функция F-256 сохраняет состояние тридцати 4-х-байтных колонок, начиная с инициализационного состояния, полученного из вектора инициализации (IV256). Входящий поток из 4m байт (m≥0) разбивается на m четырехбайтных слова и отдается по одному слову в функцию круговой трансформации (round transformation) R, которая меняет внутреннее состояние. После всех круговых трансформаций внутреннее состояние отправляется на финальный раунд трансформации G. В итоге 8 колонок состояния возвращаются в качестве результата функции F-256.

Вектор инициализации для F-256:

<math> \text{IV256} = \begin{pmatrix} e9 & 66 & e0 & d2 & f9 & fb & 91 & 34\\ 52 & 71 & d4 & b0 & 6c & f9 & 49 & f8\\ bd & 13 & f6 & b5 & 62 & 29 & e8 & c2\\ de & 5f & 68 & 94 & 1d & de & 99 & 48 \end{pmatrix} </math>

Круговая трансформация (round transformation) R

Круговая трансформация R принимает на вход 30 колонок состояния S и одно 4-х-байтное слово I и возвращает новое состояние из 30 колонок. Трансформация R состоит из следующих шагов:

TIX(I);ROR3;CMIX;SuperMix;ROR3;CMIX;SuperMix;

где:

TIX(I) — это «уменьшение для XOR», «очистка» (Truncate), «вставка» (Insert), «исключающее или» (XOR), состоит из следующих шагов:

S10 += S0;
S0 = I;
S8 += S0;
S1 += S24.

ROR3 — это просто сдвиг состояния на 3 колонки вправо,

CMIX — это смешивание колонок (Column MIX), состоит из следующих шагов:

S0 += S4; S1 += S5; S2 += S6;
S15 += S4; S16 += S5; S17 += S6;

SuperMix (или SMIX) — это «супер-перестановка» («Super-Mix»)

Финальный раунд трансформации G

Финальный раунд трансформации G принимает на вход 30 колонок состояния S и возвращает финальное состояние из 30 колонок. Вот, как это выглядит:

Повторяется 5 раз
   {
      ROR3;CMIX; SMIX
      ROR3;CMIX; SMIX
   }
Повторяется 13 раз
   {
      S4 += S0; S15 += S0;ROR15; SMIX;
      S4 += S0; S16 += S0;ROR14; SMIX;
   }
S4 += S0; S15 += S0;

Реализация хеш-алгоритма F-256 в псевдокоде

Ниже приведена реализация хеш-алгоритма F-256 в псевдокоде, все обозначения указаны выше:

for j = 0..21, set Sj = 0;
for j = 0..7, set S(22+j) = IVj .
for i = 1..m
{ 
   TIX(Pi);
   Повторяется 2 раза 
   {
       ROR3;CMIX; SMIX; 
   }
}
Повторяется 10 раз 
   {
      ROR3;CMIX; SMIX; 
   }
Повторяется 13 раз 
   { 
      S4 += S0; S15 += S0;ROR15; SMIX;
      S4 += S0; S16 += S0;ROR14; SMIX;
   }
S4 += S0; S15 += S0;
Возвращается: S1 S2 S3 S4 S15 S16 S17 S18.

После финального раунда G, возвращаются следующие колонки: S1 S2 S3 S4 S15 S16 S17 S18, то есть, если финальное состояние выглядит следующим образом:

<math> \begin{pmatrix} 00 & 04 & 08 & 0c & 10\\ 01 & 05 & 09 & 0d & 11\\ 02 & 06 & 0a & 0e & 12 & ...\\ 03 & 07 & 0b & 0f & 13 \end{pmatrix} </math>,

то первыми 16-ю байтами выхода будут: 04 05 06 07 08 09 … 12 13

Fugue-224

Алгоритм Fugue-224 практически ничем не отличается от Fugue-256. Результатом функции F-224 являются байты S1…4S15…17 вместо S1…4S15…18 у Fugue-256, а также отличается вектор инициализации (IV224):

<math> \text{IV224} = \begin{pmatrix} f4 & 62 & ee & e0 & a1 & 9a & bd\\ c9 & 86 & 39 & 74 & 12 & 43 & 8d\\ 12 & f7 & e0 & e3 & 7c & d2 & 67\\ 0d & 57 & 1c & cb & 62 & 15 & 9a \end{pmatrix} </math>

Fugue-384

Отличия Fugue-384 от Fugue-256

Алгоритм Fugue-384 практически ничем не отличается от Fugue-256. В этом алгоритме переопределены функции TIX(I) и CMIX, а также используется другой вектор инициализации (IV384) и несколько другой порядок операций в F-384 и возвращается хеш значение длиной 48 байт.

Реализация хеш-алгоритма F-384 в псевдокоде

Ниже приведена реализация хеш-алгоритма F-384 в псевдокоде:

For j = 0..23, set Sj = 0;
For j = 0..11, set S(24+j) = IVj .
For i = 1..m
   { 
      TIX(Pi);
      Повторяется 3 раза: 
         {
            ROR3;CMIX; SMIX; 
         }
   }
Повторяется 18 раз : 
   {
      ROR3;CMIX; SMIX; 
   }
Повторяется 13 раз :
   {
      S4+ = S0; S12+ = S0; S24+ = S0; ROR12; SMIX;
      S4+ = S0; S13+ = S0; S24+ = S0; ROR12; SMIX;
      S4+ = S0; S13+ = S0; S25+ = S0; ROR11; SMIX;
   }
S4+ = S0; S12+ = S0; S24+ = S0;
Возвращается: S1..4 S12..15 S24..27.

где:

TIX(I) — это «уменьшение для XOR», «очистка» (Truncate), «вставка» (Insert), «исключающее или» (XOR), состоит из следующих шагов:

S16 += S0;
S0 = I;
S8 += S0;
S1 += S27; S4 += S30;

CMIX — это смешивание колонок (Column MIX), состоит из следующих шагов:

S0 += S4; S1 += S5; S2 += S6;
S18 += S4; S19 += S5; S20 += S6;

Fugue-512

Отличия Fugue-512 от Fugue-256

Алгоритм Fugue-512, как и Fugue-384, практически ничем не отличается от Fugue-256. В этом алгоритме также переопределены функции TIX(I) и CMIX и используется другой вектор инициализации (IV512) и несколько другой порядок операций в F-512. Fugue-512 возвращает хеш значение длиной 64 байт.

Реализация хеш-алгоритма F-512 в псевдокоде

Ниже приведена реализация хеш-алгоритма F-512 в псевдокоде:

For j = 0..19, set Sj = 0;
For j = 0..15, set S(20+j) = IVj .
For i = 1..m
   { 
      TIX(Pi);
      Повторяется 4 раза : 
         {
            ROR3;CMIX; SMIX; 
         }
   }
Повторяется 32 раза : 
   {
      ROR3;CMIX; SMIX; 
   }
Повторяется 13 раз :
   {
      S4+ = S0; S9 + = S0; S18+ = S0; S27+ = S0; ROR9; SMIX;
      S4+ = S0; S10+ = S0; S18+ = S0; S27+ = S0; ROR9; SMIX;
      S4+ = S0; S10+ = S0; S19+ = S0; S27+ = S0; ROR9; SMIX;
      S4+ = S0; S10+ = S0; S19+ = S0; S28+ = S0; ROR8; SMIX;
   }
S4+ = S0; S9+ = S0; S18+ = S0; S27+ = S0;
Возвращается: S1..4 S9..12 S18..21 S27..30

где:

TIX(I) состоит из следующих шагов:

S22 += S0;
S0 = I;
S8 += S0;
S1 += S24; S4 += S27; S7 += S30;

CMIX(Column MIX) состоит из следующих шагов:

S0 += S4; S1 += S5; S2 += S6;
S18 += S4; S19 += S5; S20 += S6;

Разновидности Fugue-256

«Псевдо-случайная» хэш функция PR-Fugue-256

PR-Fugue-256 принимает на вход двоичные данные от 0 до 264−1 бит, а также 32-х-байтный ключ. Этот ключ по сути используется в качестве вектора инициализации вместо фиксированного IV256, что является единственным отличием от Fugue-256.

«Сжатая» функция C-Fugue-256

C-Fugue-256 определена для обратной совместимости для приложений, которые должны использовать сжатие структурой Меркла — Дамгарда. Разработчики утверждают, что такое использование Fugue не является оптимальным с точки зрения производительности и безопасности, но оно позволяет использовать Fugue в приложениях, которым это нужно.

HMAC-Fugue-256

Fugue-256 может заменить собой SHA-256 во многих режимах работы, включая HMAC, без использования обратно совместимой функции C-Fugue-256.

Например, HMAC-Fugue-256 принимает на вход данные X и ключ K и вычисляет:

<math> \text{HMAC-Fugue-256}(K, X) = \text{Fugue-256}(K \oplus \text{opad } | \text{ Fugue-256}(K \oplus \text{ipad } | \text{ } X)) </math>

Быстродействие

Независимые тесты производительности алгоритма Fugue, проведенные с помощью бенчмарка eBASH, показали следующие результаты (скорость указана в циклах на байт (cpb))[3]:

Процессор Core i5 Core 2 (45 nm) Core 2 (65 nm)
Fugue 2.0 12.81 cpb 15.31 cpb 15.35 cpb
Fugue-256 16.75 cpb 18.42 cpb 21.41 cpb
Fugue-512 46.20 cpb 56.91 cpb 56.82 cpb

Функция Fugue обладает частично параллельной архитектурой, что позволяет создавать эффективные реализации алгоритма. Часть инструкций доступна на многих широко-известных архитектурах (x86, PowerPC, ARM).

Что касается требований, предъявляемых к RAM, хеш-функции Fugue необходимо достаточно много памяти для хранения внутреннего состояния.

Fugue 2.0

Fugue 2.0[4] — расширение оригинального хеш-алгоритма Fugue, подготовленное авторами для второго раунда конкурса SHA-3, которое работает в два раза быстрее для 256-битного хеша. Дизайнеры доказали улучшенную защиту от атак дифференциального криптоанализа в новой версии.

Напишите отзыв о статье "Fugue (хеш-функция)"

Примечания

  1. Кандидаты второго раунда конкурса SHA-3.
  2. csrc.nist.gov/publications/nistir/ir7764/nistir-7764.pdf Status Report on the Second Round of the SHA-3 Cryptographic Hash Algorithm Competition
  3. Официальный сайт eBASH benchmark.
  4. Официальная документация хеш-функции Fugue 2.0.

Литература

  • [researcher.watson.ibm.com/researcher/view_project.php?id=3302 The Hash Function Fugue official website] (англ.). Проверено 20 декабря 2013.
  • [csrc.nist.gov/groups/ST/hash/sha-3/ SHA-3 competition(2007-2012)] (англ.). Проверено 20 декабря 2013.
  • [researcher.watson.ibm.com/researcher/files/us-csjutla/fugue_Oct09.pdf The Hash Function Fugue official docs] (англ.). Проверено 20 декабря 2013.
  • [researcher.watson.ibm.com/researcher/files/us-csjutla/fugue_2012.pdf The Hash Function Fugue 2.0 official docs] (англ.). Проверено 20 декабря 2013.
  • [bench.cr.yp.to/results-hash.html eBASH: Encrypt benchmark official site] (англ.). Проверено 20 декабря 2013.
  • [csrc.nist.gov/groups/ST/hash/sha-3/Round2/submissions_rnd2.html SHA-3 second round candidates] (англ.). Проверено 20 декабря 2013.

Отрывок, характеризующий Fugue (хеш-функция)

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


Скоро после этого в темную храмину пришел за Пьером уже не прежний ритор, а поручитель Вилларский, которого он узнал по голосу. На новые вопросы о твердости его намерения, Пьер отвечал: «Да, да, согласен», – и с сияющею детскою улыбкой, с открытой, жирной грудью, неровно и робко шагая одной разутой и одной обутой ногой, пошел вперед с приставленной Вилларским к его обнаженной груди шпагой. Из комнаты его повели по коридорам, поворачивая взад и вперед, и наконец привели к дверям ложи. Вилларский кашлянул, ему ответили масонскими стуками молотков, дверь отворилась перед ними. Чей то басистый голос (глаза Пьера всё были завязаны) сделал ему вопросы о том, кто он, где, когда родился? и т. п. Потом его опять повели куда то, не развязывая ему глаз, и во время ходьбы его говорили ему аллегории о трудах его путешествия, о священной дружбе, о предвечном Строителе мира, о мужестве, с которым он должен переносить труды и опасности. Во время этого путешествия Пьер заметил, что его называли то ищущим, то страждущим, то требующим, и различно стучали при этом молотками и шпагами. В то время как его подводили к какому то предмету, он заметил, что произошло замешательство и смятение между его руководителями. Он слышал, как шопотом заспорили между собой окружающие люди и как один настаивал на том, чтобы он был проведен по какому то ковру. После этого взяли его правую руку, положили на что то, а левою велели ему приставить циркуль к левой груди, и заставили его, повторяя слова, которые читал другой, прочесть клятву верности законам ордена. Потом потушили свечи, зажгли спирт, как это слышал по запаху Пьер, и сказали, что он увидит малый свет. С него сняли повязку, и Пьер как во сне увидал, в слабом свете спиртового огня, несколько людей, которые в таких же фартуках, как и ритор, стояли против него и держали шпаги, направленные в его грудь. Между ними стоял человек в белой окровавленной рубашке. Увидав это, Пьер грудью надвинулся вперед на шпаги, желая, чтобы они вонзились в него. Но шпаги отстранились от него и ему тотчас же опять надели повязку. – Теперь ты видел малый свет, – сказал ему чей то голос. Потом опять зажгли свечи, сказали, что ему надо видеть полный свет, и опять сняли повязку и более десяти голосов вдруг сказали: sic transit gloria mundi. [так проходит мирская слава.]
Пьер понемногу стал приходить в себя и оглядывать комнату, где он был, и находившихся в ней людей. Вокруг длинного стола, покрытого черным, сидело человек двенадцать, всё в тех же одеяниях, как и те, которых он прежде видел. Некоторых Пьер знал по петербургскому обществу. На председательском месте сидел незнакомый молодой человек, в особом кресте на шее. По правую руку сидел итальянец аббат, которого Пьер видел два года тому назад у Анны Павловны. Еще был тут один весьма важный сановник и один швейцарец гувернер, живший прежде у Курагиных. Все торжественно молчали, слушая слова председателя, державшего в руке молоток. В стене была вделана горящая звезда; с одной стороны стола был небольшой ковер с различными изображениями, с другой было что то в роде алтаря с Евангелием и черепом. Кругом стола было 7 больших, в роде церковных, подсвечников. Двое из братьев подвели Пьера к алтарю, поставили ему ноги в прямоугольное положение и приказали ему лечь, говоря, что он повергается к вратам храма.
– Он прежде должен получить лопату, – сказал шопотом один из братьев.
– А! полноте пожалуйста, – сказал другой.
Пьер, растерянными, близорукими глазами, не повинуясь, оглянулся вокруг себя, и вдруг на него нашло сомнение. «Где я? Что я делаю? Не смеются ли надо мной? Не будет ли мне стыдно вспоминать это?» Но сомнение это продолжалось только одно мгновение. Пьер оглянулся на серьезные лица окружавших его людей, вспомнил всё, что он уже прошел, и понял, что нельзя остановиться на половине дороги. Он ужаснулся своему сомнению и, стараясь вызвать в себе прежнее чувство умиления, повергся к вратам храма. И действительно чувство умиления, еще сильнейшего, чем прежде, нашло на него. Когда он пролежал несколько времени, ему велели встать и надели на него такой же белый кожаный фартук, какие были на других, дали ему в руки лопату и три пары перчаток, и тогда великий мастер обратился к нему. Он сказал ему, чтобы он старался ничем не запятнать белизну этого фартука, представляющего крепость и непорочность; потом о невыясненной лопате сказал, чтобы он трудился ею очищать свое сердце от пороков и снисходительно заглаживать ею сердце ближнего. Потом про первые перчатки мужские сказал, что значения их он не может знать, но должен хранить их, про другие перчатки мужские сказал, что он должен надевать их в собраниях и наконец про третьи женские перчатки сказал: «Любезный брат, и сии женские перчатки вам определены суть. Отдайте их той женщине, которую вы будете почитать больше всех. Сим даром уверите в непорочности сердца вашего ту, которую изберете вы себе в достойную каменьщицу». И помолчав несколько времени, прибавил: – «Но соблюди, любезный брат, да не украшают перчатки сии рук нечистых». В то время как великий мастер произносил эти последние слова, Пьеру показалось, что председатель смутился. Пьер смутился еще больше, покраснел до слез, как краснеют дети, беспокойно стал оглядываться и произошло неловкое молчание.
Молчание это было прервано одним из братьев, который, подведя Пьера к ковру, начал из тетради читать ему объяснение всех изображенных на нем фигур: солнца, луны, молотка. отвеса, лопаты, дикого и кубического камня, столба, трех окон и т. д. Потом Пьеру назначили его место, показали ему знаки ложи, сказали входное слово и наконец позволили сесть. Великий мастер начал читать устав. Устав был очень длинен, и Пьер от радости, волнения и стыда не был в состоянии понимать того, что читали. Он вслушался только в последние слова устава, которые запомнились ему.
«В наших храмах мы не знаем других степеней, – читал „великий мастер, – кроме тех, которые находятся между добродетелью и пороком. Берегись делать какое нибудь различие, могущее нарушить равенство. Лети на помощь к брату, кто бы он ни был, настави заблуждающегося, подними упадающего и не питай никогда злобы или вражды на брата. Будь ласков и приветлив. Возбуждай во всех сердцах огнь добродетели. Дели счастье с ближним твоим, и да не возмутит никогда зависть чистого сего наслаждения. Прощай врагу твоему, не мсти ему, разве только деланием ему добра. Исполнив таким образом высший закон, ты обрящешь следы древнего, утраченного тобой величества“.
Кончил он и привстав обнял Пьера и поцеловал его. Пьер, с слезами радости на глазах, смотрел вокруг себя, не зная, что отвечать на поздравления и возобновления знакомств, с которыми окружили его. Он не признавал никаких знакомств; во всех людях этих он видел только братьев, с которыми сгорал нетерпением приняться за дело.
Великий мастер стукнул молотком, все сели по местам, и один прочел поучение о необходимости смирения.
Великий мастер предложил исполнить последнюю обязанность, и важный сановник, который носил звание собирателя милостыни, стал обходить братьев. Пьеру хотелось записать в лист милостыни все деньги, которые у него были, но он боялся этим выказать гордость, и записал столько же, сколько записывали другие.