Помощь в написании студенческих работ
Антистрессовый сервис

Шифр AES. 
Криптографические методы защиты информации

РефератПомощь в написанииУзнать стоимостьмоей работы

Умножение чисел над полем Галуа GF (28) можно проводить и в двоичном виде. В этом случае можно умножать аналогично обычному умножению «в столбик», однако к результатам по столбцам применяется не суммирование с переносом в старший разряд, a XOR. Для приведения по модулю т (х) двоичная запись этого полинома 100 011 011 подписывается под результатом, начиная со старшего значащего разряда, затем… Читать ещё >

Шифр AES. Криптографические методы защиты информации (реферат, курсовая, диплом, контрольная)

История AES. В 1997 г. Национальный институт стандартов и технологий США (NIST) объявил о проведении конкурса по замене стандарта DES. На конкурс могли быть присланы алгоритмы шифрования, разработанные как организациями, так и частными лицами в любой стране. Алгоритм — победитель этого конкурса должен был стать новым стандартом блочного симметричного шифрования США.

В конкурсе, которому было присвоено название AES (Advanced Encryption Standart), приняли участие 15 алгоритмов, из которых были отобраны пять финалистов: MARS, RC6, Rijndael, Serpent и Tvvofish. Основными требованиями, предъявляемыми к шифрам-нретендентам, были практическая стойкость и эффективность реализации.

Анализ алгоритмов-иретендентов проводился как специалистами института NIST, так и различными независимыми экспертами. В результате победителем конкурса AES был выбран алгоритм Rijndael, который по большинству критериев оказался лучше остальных ал горитмов-фи нал истов.

Алгоритм Rijndael («рэндал») получил свое название, но именам авторов — В. Рэймена (Vincent Rijment) и Й. Даймена (Joan Daemon). Алгоритм позволяет шифровать данные блоками длиной 128, 192 и 256 бит, которые представляются в виде двумерных байтовых массивов размером 4×4, 4×6, 4×8. Алгоритм использует ключи грех фиксированных размеров: 128, 192 и 256 бит.

В отличие от Rijndael AES' использует для шифрования только 128-битовые блоки текста (двумерный байтовый массив размером 4X4, рис. 2.37). Запись байтов в массив производится, но столбцам. Каждый элемент представляется двузначным шестнадцатеричным числом.

Представление блока входных данных AES.

Рис. 2.37. Представление блока входных данных AES.

Структура алгоритма AES. Алгоритм AES имеет структуру «квадрат», разработанную его создателями. Входные данные представлены в виде квадратной таблицы (массива) байтов. Все операции производятся над отдельными байтами массива, а также над независимыми столбцами и строками.

Для шифрования в каждом раунде алгоритма используются следующие преобразования: SubBytes, Shift Rows, MixColumns, AddRonndKey (рис. 2.38).

Раунд шифрования алгоритма AES.

Рис. 2.38. Раунд шифрования алгоритма AES.

1 Зенлин О. С., Иванов М. Л. Стандарт криптографической защиты — AES. Конечные поля. М.: КУДИЦ-ОБРАЗ, 2002; FIPS PUB 197. Federal Information Processing Standards Publication. Advanced Encryption Standard (AES). November 26, 2001. URL: http://csrc.nist.gov/ publications/fips/fips!97/fips-197.pdf.

Операция SubBytes (рис. 2.39) представляет собой табличную замену каждого байга массива данных. Замена производится в соответствии с табл. 2.17.

Байты представляются двухразрядными шестнадцатеричными числами. Первый шестнадцатеричный разряд определяет строку, а второй — столбец таблицы замен (см. табл. 2.17), определяющие новое значение байта.

Операция SubBytes Таблица замен операции SubBytes.

Рис. 239. Операция SubBytes Таблица замен операции SubBytes

Таблица 2.17

А

В

С

D

Е

F

7С.

7 В.

F2.

6 В.

6 °F.

С5.

2 В.

ЕЕ.

D7.

АВ.

СА.

С9.

7D.

FA.

F0.

AD.

D4.

А2.

AF.

9С.

А4.

СО.

В7.

FD.

3 °F.

F7.

СС.

А5.

Е5.

F1.

D8.

С7.

СЗ.

9А.

Е2.

ЕВ.

В2.

2С.

1А.

1 В.

6Е.

5 Л.

АО.

ЗВ.

D6.

ВЗ.

ЕЗ.

2 °F.

D1.

ED.

FC.

В1.

5 В.

6А.

СВ.

BE.

4А.

4С.

CF.

D0.

EF.

АА.

FB.

4D.

F9.

7 °F.

ЗС.

9 °F.

А8.

АЗ.

8 °F.

9D.

F5.

ВС.

В6.

DA.

FF.

F3.

D2.

CD.

ОС.

ЕС.

5 °F.

С4.

А7.

7Е.

3D.

5D.

4 °F.

DC.

2А.

ЕЕ.

В8.

DE.

5Е.

0 В.

DB.

А

Е0.

ЗА.

0А.

5С.

С2.

D3.

АС.

Е4.

В

Е7.

С8.

6D.

8D.

D5.

4Е.

А9.

6С.

F4.

ЕА.

7А.

АЕ.

С

ВЛ.

2Е.

1C.

Л6.

В4.

С6.

Е8.

DD.

1 °F.

4 В.

BD.

8 В.

8Л.

D

ЗЕ.

В5.

F6.

0Е.

В9.

С1.

1D.

9Е.

Е

Е1.

F8.

D9.

8Е.

9 В.

1Е.

Е9.

СЕ.

DF.

F

8С.

А1.

0D.

BF.

Е6.

2D.

0 °F.

ВО.

ВВ.

Примеры операции SubBytes: 7С —*? 10, F4 —*• BF.

Операция ShiftRows выполняет циклический сдвиг влево последних трех строк массива данных (рис. 2.40).

Пример операции ShiftRows приведен на рис. 2.41.

Операция MixColumns использует вычисления над полем Галуа GF (28). Элементы конечного поля могут быть представлены различными способа;

Операция ShiftRows.

Рис. 2.40. Операция ShiftRows

Пример операции ShiftRows.

Рис. 2.41. Пример операции ShiftRows.

ми. Для любой степени простого числа существует единственное конечное поле, поэтому все представления GF (28) являются изоморфными. Классическим является полиномиальное представление.

Операция MixColumns производится над каждым из столбцов массива данных (рис. 2.42). Выполняется умножение столбца, который рассматривается как полином в конечном поле Галуа GF (28) на фиксированный полином g (x) = З. г! + х2 + х + 2. Умножение выполняется по модулю х4 + 1.

Операция MixColumns.

Рис. 2.42. Операция MixColumns.

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

Шифр AES. Криптографические методы защиты информации.

или.

Шифр AES. Криптографические методы защиты информации.

где «02», «03» — двухразрядные шестнадцатеричные числа; ак — коэффициенты из GF (28); операция • — умножение над полем Галуа. Каждый коэффициент ак может быть представлен восьмиразрядным двоичным числом, которому соответствует полином 7-й степени, коэффициенты которого (0 или 1) определяются значениями соответствующих битов.

Пример 2.7.

Представление числа ак в виде полинома над GF (28).

13|6 = 10 0112, полином над GT (28) — х* + х + 1 (табл. 2.18).

BFie = 10 111 1112, полином над GF ( 28) — x'+x5 + xi+xs + x2+x + 1 (табл. 2.19).

Таблица 2.18

Представление числа 13 в GF (28)

11омер бита.

Степень полинома.

д:7

хе

X5

х4

X3

X

Значения бит ак

Слагаемые полинома.

X4

X

Таблица 2.19

Представление числа BF16 в GF (28)

Номер бита.

Степень полинома.

X7

дг5

ЛТ3

X2

X

Значения бит ак

Слагаемые полинома.

X7

X5

X3

X2

X

В полиномиальном представлении сумма двух элементов является полиномом с коэффициентами, которые равны сумме по модулю 2 коэффициентов слагаемых (т.е. парные слагаемые сокращаются, поскольку 1 + 1 mod 2 = 0).

В двоичном представлении сложение (+) эквивалентно побитовому XOR. В отличие от сложения простой операции умножения на уровне байтов не существует.

В полиномиальном представлении операция умножения представляется в виде умножения полиномов по модулю т (х) — неприводимого двоичного полинома степени 8. Для Rijndael т (х) = х8 + х4 + х3 + х + 1. Приведение по модулю аналогично делению на полином т{х).

Пример 2.8

Умножение чисел BF и 13 над GF (28). Представления чисел BF и 13 в виде полиномов приведено в примере 2.7. Сократим одинаковые степени х, повторяющиеся кратное число раз (выделены полужирным написанием):

Шифр AES. Криптографические методы защиты информации.

Поскольку старшая степень х превышает 7, добавим к результату полином т (х), домноженный на соответствующую степень х:

Шифр AES. Криптографические методы защиты информации.

Сократим кратные слагаемые:

Шифр AES. Криптографические методы защиты информации.

Старшая степень х превышает 7, добавим к результату Шифр AES. Криптографические методы защиты информации.

Сократим кратные слагаемые:

Шифр AES. Криптографические методы защиты информации.

Представим результат в двоичном виде (табл. 2.20).

Таблица 2.20

Перевод полинома х7 + х6 + х* + х3 + х2 + х1 + 1 из GF ( 28) в двоичный вид.

11омер бита.

Степень полинома.

X1

xR

X5

X*

X3

X2

X

Слагаемые полинома.

X1

X6

X4

X3

X2

X

Значения бит ак

Получили BF • 13 = 11 011 1112 = DFI6.

Умножение чисел над полем Галуа GF (28) можно проводить и в двоичном виде. В этом случае можно умножать аналогично обычному умножению «в столбик», однако к результатам по столбцам применяется не суммирование с переносом в старший разряд, a XOR. Для приведения по модулю т (х) двоичная запись этого полинома 100 011 011 подписывается под результатом, начиная со старшего значащего разряда, затем проводится операция XOR. Такая операция приведения повторяется, пока не останется не более восьми значащих разрядов. На рис. 2.43 приведен пример умножения чисел BF и 13 над GF (28), произведенного в двоичном виде: BF)6 = 10 111 1112, 13]6= 10 0112.

11 011 1112 = DF16, таким образом, получили BF • 13 = DF.

Пример умножения чисел, представленных в двоичном виде.

Рис. 2.43. Пример умножения чисел, представленных в двоичном виде,.

над GF (28).

Пример 2.9.

Пример операции MixColumns представлен на рис. 2.44.

Пример операции MixColumns.

Рис. 2.44. Пример операции MixColumns.

Продемонстрируем вычисление первого элемента ft, = 04 результирующего столбца операции MixColumns. Согласно выражениям (2.3) Л, =02 • «, + 03 • а2 + + а3 + я4; ft, = 02 • D4 + 03 • BF + 5D + 30.

В полиномиальном представлении получаем.

Шифр AES. Криптографические методы защиты информации.

Сократим кратные слагаемые.

Шифр AES. Криптографические методы защиты информации.

Переведем результат в двоичный вид (табл. 2.21).

Перевод полинома х2 из GF (2s) в двоичный вид.

Таблица 2.21

Номер бита.

е.

Степень полинома.

X1

ж6

д:5

ж3

X2

X

Слагаемые полинома.

х2

Значения бит ак

Получаем.

Шифр AES. Криптографические методы защиты информации.

Операция AddRoundKey (рис. 2.45) выполняет наложение на массив данных материала ключа, а именно: для каждого байта массива данных выполняется побитовая XOR операция с соответствующим байтом ключа раунда.

Операция AddRoundKey.

Рис. 2.45. Операция AddRoundKey.

Ьш = аы © Кш> Ki — ключ раунда I

Например, если первый байт массива данных — 04, а первый байт ключа раунда — F5, то результат операции AddRoundKey составит F1.

Примеры операции AddRoundKey: 66 © D5 —? ВЗ; СВ © D2 —? 19. Количество раундов алгоритма AES определяется длиной используемого ключа (табл. 2.22).

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

Таблица 2.22

Размер ключа в битах.

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

Перед первым раундом выполняется предварительное наложение на открытый текст материала ключа с помощью операции Add Round Key. Последний раунд отличается от предыдущих гем, что в нем не выполняется операция MixColumns.

Процедура расширения ключа. Задача процедуры расширения ключа состоит в формировании нужного количество слов расширенного ключа для их использования в операции AddRoundKey. Под «словом» понимается 4-байтный фрагмент расширенного ключа, один из которых используется в первичном наложении материала ключа и по одному — в каждом раунде алгоритма. Таким образом, в процессе расширения ключа формируется 4(r + 1) слов.

Рассмотрим далее процедуру расширения ключа только для алгоритма AES с 128-битовыми ключами (AES-128). Для других значений длины ключа процедура имеет незначительные отличия.

Формируются константы раунда RCon — 4-байтовые столбцы, первый байт которых равен 2' ‘1 mod 256, i — номер раунда, а остальные байты — нулевые (табл. 2.23).

Таблица 2.23

Значения констант раунда RCon

1 В.

Ключ Ki раунда i — массив байтов размером 4X4. Обозначим столбцы этой таблицы через 7) к. Ключ К, раунда i формируется на основании ключа предыдущего раунда К,, и константы раунда RConr 7', формируется следующим образом:

Шифр AES. Криптографические методы защиты информации.

К первому столбцу 7', 4 ключа предыдущего раунда ТС,, применяется преобразование RotWord, заключающееся в циклическом сдвиге на один байт влево. К результату операции RotWord применяется операция SubBytes в соответствии с приведенной ранее табл. 2.17. К результату применяется операция побитового XOR с константой раунда и с Tt, ,.

Пример вычисления первого столбца («слова») ключа 2 раунда приведен на рис. 2.46.

/С, — ключ предыдущего раунда.

Пример вычисления первого слова раундового ключа.

Рис. 2.46. Пример вычисления первого слова раундового ключа.

Остальные (кроме первого) столбцы Ti k, k * 1 получаются применением к предыдущему столбцу ключа Tik_{ побитовой операции XOR с соответствующим столбцом Tj_lk ключа предыдущего раунда:

Шифр AES. Криптографические методы защиты информации.

В рассмотренном выше примере следующие столбцы ключа 2-го раунда вычисляются, как показано на рис. 2.47.

Пример вычисления второго—четвертого слов раундового ключа.

Рис. 2.47. Пример вычисления второго—четвертого слов раундового ключа.

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

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

Здесь стоит снова вспомнить алгоритм DES — известно, что DES с независимо задаваемыми ключами раундов оказался слабее против некоторых атак, чем исходный DES.

Процедура расшифрования AES. Структура раунда процедуры расшифрования. Для расшифрования в каждом раунде алгоритма используются следующие преобразования: InvShiftRows, InvSubBytes, AddRoundKey, InvMixColumns (рис. 2.48).

Структура раунда расшифрования алгоритма AES.

Рис. 2.48. Структура раунда расшифрования алгоритма AES.

Аналогично процедуре шифрования перед первым раундом расшифровки выполняется операция AddRoundKey, накладывающая на шифротекст значения ключа последнего (г) раунда шифрования. Последний раунд раешифровки не содержит операцию InvMixColumns.

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

Операция InvSubBytes производит побайтно обратную табличную замену в соответствие с табл. 2.24.

Таблица 2.24

Таблица замен операции InvSubBytes.

А

В

С

D

Е

F

6А.

D5.

А5.

BF.

АЗ.

9Е.

F3.

D7.

FB.

7 С.

ЕЗ.

9 В.

2 °F.

FF.

8Е.

С4.

DE.

Е9.

СВ.

7 В.

А6.

С2.

3D.

ЕЕ.

4С.

ОВ.

FA.

СЗ.

4Е.

2Е.

А1.

D9.

В2.

5 В.

А2.

6D.

8 В.

D1.

F8.

F6.

D4.

А4.

5С.

СС.

5D.

В6.

6С.

FD.

ED.

В9.

DA.

5Е.

А7.

8D.

9D.

D8.

АВ.

8С.

ВС.

D3.

0А.

F7.

Е4.

В8.

ВЗ.

D0.

2С.

1Е.

8 °F.

СА.

3 °F.

0 °F.

С1.

AF.

BD.

8А.

6 В.

ЗА.

4 °F.

DC.

ЕА.

F2.

CF.

СЕ.

F0.

В4.

Е6.

АС.

Е7.

AD.

Е2.

F9.

Е8.

1C.

DF.

6Е.

А

F1.

1А.

1D.

С5.

6 °F.

В7.

0Е.

АА.

BE.

1 В.

В

FC.

ЗЕ.

4 В.

С6.

D2.

9А.

DB.

СО.

FE.

CD.

5А.

F4.

С

1 °F.

DD.

Л8.

С7.

В1.

ЕС.

5 °F.

D

7 °F.

Л9.

В5.

4Л.

0D.

2D.

Е5.

7Л.

9 °F.

С9.

9С.

EF.

Е

АО.

Е0.

ЗВ.

4D.

АЕ.

2А.

F5.

ВО.

С8.

ЕВ.

ВВ.

ЗС.

F

2 В.

7Е.

ВА.

D6.

Е1.

ОС.

7D.

Функция Add Round Key обратна сама себе, учитывая свойства используемой в ней операции XOR. Операция AddRoundKey выполняет наложение на массив данных ключа раунда, однако использование ключей раундов при расшифровке производится в обратную сторону (от г — 1 до 0). Таким образом, в г-м раунде расшифровки используется ключ (г — г)-го раунда шифрования — Кг_{.

Операция InvMixColumns выполняет умножение каждого столбца массива данных аналогично прямой операции MixColumns на полиному''(.г) = = Вх3 + Dx2 + 9х + Е.

Если сравнить структуру раунда шифрования и расшифрования алгоритма AES, видно, что используются аналогичные операции, по в ином порядке (рис. 2.49). При этом порядок использования раундовых ключей является обратным по отношению к тому, который используется при зашифровании.

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

Два следующих свойства позволяют применить алгоритм прямого расшифрования (рис. 2.50), т. е. алгоритм с тем же порядком применения операций, что и при шифровании:

1) порядок использования операций SubBytes и ShiftRows не играет роли. То же самое верно и для операций InvSubBytes и InvShiftRows. Это про Сравнение структуры раунда шифрования и расшифрования AES.

Рис. 2.49. Сравнение структуры раунда шифрования и расшифрования AES

Раунд прямого расшифрования алгоритма AES.

Рис. 2.50. Раунд прямого расшифрования алгоритма AES.

исходит потому, что функции SubBytes и InvSubBytes работают с байтами, а операции ShiftRows и InvShiftRows сдвигают целые байты, не затрагивая их значения;

2) операция MixColumns является линейной относительно входных данных, что означает:

Шифр AES. Криптографические методы защиты информации.

где State — входной столбец данных операции.

Эти свойства функций алгоритма шифрования позволяют изменить порядок применения функций InvSubBytes и InvShiftRows. Функции AddRoundKey и InvMixColumns также могут быть применены в обратном порядке, но при условии, что столбцы (слова) раундового ключа расшифровки предварительно пропущены через функцию InvMixColumns ().

В табл. 2.25 приведены процедура шифрования, а также два эквивалентных варианта процедуры расшифрования для двухраундового варианта Rijndael. Первый вариант расшифрования представляет обычную инверсию шифрования. Второй вариант получен из первого после изменения порядка следования операций в трех парах преобразований: InvShiftRows — InvSubBytes и AddRoundKey — InvMixColumns.

Видно, что процедура зашифрования и процедура прямого расшифрования совпадают с точностью до параметров операций:

  • • значений раундовых ключей, определяемых обратным порядком использования и применением InvMixColumns при расшифровании (при выполнении операции AddRoundKey);
  • • направления сдвига (при выполнении операции ShiftRows и InvShiftRows);

Таблица 2.25

Порядок применения операций при шифровании и расшифровании данных для 2-раундового варианта AES.

Шифрование.

Обратное расшифрование.

Прямое расшифрование.

AddRoundKey.

AddRoundKey.

AddRoundKey.

SubBytes.

InvShiftRows.

InvSubBytes.

ShiftRows.

InvSubBytes.

InvShiftRows.

MixColumns.

AddRoundKey.

InvMixColumns.

AddRoundKey.

InvMixColumns.

AddRoundKey.

SubBytes.

InvShiftRows.

InvSubBytes.

ShiftRows.

InvSubBytes.

InvShiftRows.

AddRoundKey.

AddRoundKey.

AddRoundKey.

  • • таблиц замен (при выполнении операций SubBytes и InvSubBytes);
  • • матриц преобразования (при выполнении операций MixColumns и InvMixColumns).

Аспекты реализации и основные принципы конструкции AES. Шифр AES может быть аффективно реализован на широком диапазоне процессоров и специализированного оборудования.

Разработчики алгоритма Rijndael, лежащего в основе AES, руководствовались тремя критериями:

  • 1) устойчивость ко всем известным типам атак;
  • 2) скорость и компактность кода на широком диапазоне платформ;
  • 3) простота конструкции.

В большинстве шифров раундовое преобразование построено на схеме Фейстеля. При такой структуре часть разрядов промежуточного состояния обычно просто переносятся неизмененными в следующее состояние. В Rijndael раундовое преобразование имеет иную структуру. Оно образуется из трех отдельных обратимых единообразных преобразований, называемых слоями. Под «единообразностью» имеется в виду, что каждый разряд состояния преобразуется одинаковым образом.

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

  • слой линейного перемешивания (ShiftRows, MixColumns) гарантирует высокую диффузию при большом числе раундов;
  • нелинейный слой (SubBytes) — параллельное применение S-блоков, имеющих оптимальные в наихудших случаях нелинейные свойства;
  • слой наложения ключа (Add Round Key) — простое применение раундового ключа с помощью побитного XOR к промежуточному состоянию.

Для того чтобы сделать сам шифр и ему обратный более сходными по структуре, зтап линейного перемешивания последнего раунда отличается от соответствующего этапа в остальных раундах (отсутствует финальная операция MixColumns/InvMixColumns). Можно показать, что это в любом случае не увеличивает и не уменьшает безопасность шифра. Это сходно с отсутствием операции перестановки в последнем раунде DES.

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

  • • у алгоритма отсутствуют слабые ключи, а также возможности его вскрытия с помощью атак на связанных ключах;
  • • к алгоритму не применим дифференциальный криптоанализ;
  • • алгоритм не атакуем с помощью линейного криптоанализа и усеченных дифференциалов;
  • • Square-атака (специфичная атака на алгоритмы со структурой «квадрат», к которым относится и ЛЕЗ) также не применима к алгоритму Rijndael.

Впоследствии были приведены некоторые атаки на усеченные версии Rijndael, однако запас криптостойкости алгоритма был признан экспертами адекватным.

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

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

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

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

Показать весь текст
Заполнить форму текущей работой