Шифры и математика

Классификация поточных шифров. Основные принципы построения криптосистем с открытым ключом. Разновидности симметричного шифра. Режимы работы блочного шифра. Применение одного из математических методов на примере шифра Цезаря и ассиметричного шифра.

Рубрика Математика
Вид курсовая работа
Язык русский
Дата добавления 17.04.2011
Размер файла 104,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

«Шифры и Математика»

Екатеринбург

2010

Оглавление

1. Введение

2. Теоретическая часть

2.1 Шифр и типы шифров

2.2 Симметричные шифры

2.3 Ассиметричные шифры

2.4 Блочный шифр

2.5 Поточный шифр

2.6 Шифр Цезаря

3. Практическая часть

3.1 Применение одного из математических методов на примере шифра Цезаря

3.2 Применение одного из математических методов на примере Ассиметричного шифра

4. Заключение

Список литературы

1. Введение

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

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

Связь шифров и математики очень близка.

Цель: выяснить, в чем заключается связь шифров и математики.

Задачи:

1. Изучить литературу, энциклопедические сайты по шифрам.

2. Анализировать полученную информацию.

3. Попрактиковаться в шифровании.

4. Сделать вывод.

Методы исследования:

1. Изучение информации.

2. Сравнение.

3. Практическая работа.

2. Теоретическая часть

2.1 Шифр

Шифр (от араб. ????? ??, ?ifr «ноль», откуда фр. chiffre «цифра»; родственно слову цифра), код -- совокупность алгоритмов криптографических преобразований (шифрования), отображающих множество возможных открытых данных на множество возможных зашифрованных данных, и обратных им преобразований. Важным параметром любого шифра является ключ -- параметр криптографического алгоритма, обеспечивающий выбор одного преобразования из совокупности преобразований, возможных для этого алгоритма. В современной криптографии предполагается, что вся секретность криптографического алгоритма сосредоточена в ключе, но не деталях самого алгоритма (принцип Керкгоффса).

Типы шифров

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

Симметричный шифр использует один ключ для шифрования и дешифрования.

Асимметричный шифр использует два различных ключа.

Шифры могут быть сконструированы так, чтобы либо шифровать сразу весь текст, либо шифровать его по мере поступления. Таким образом существуют:

Блочный шифр шифрует сразу целый блок текста, выдавая шифротекст после получения всей информации.

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

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

Также существуют не используемые сейчас подстановочные шифры, обладающие в своём большинстве, слабой криптостойкостью.

2.2 Симметричные шифры

Симметричные шифры - способ шифрования, в котором для шифрования и расшифровывания применяется один и тот же криптографический ключ.

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

Классическим примером таких алгоритмов являются симметричные криптографические алгоритмы, перечисленные ниже:

· Простая перестановка

· Одиночная перестановка по ключу

· Двойная перестановка

Простая перестановка

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

Одиночная перестановка по ключу

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

Двойная перестановка

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

Достоинства:

· скорость (по данным Applied Cryptography -- на 3 порядка выше)

· простота реализации (за счёт более простых операций)

· меньшая требуемая длина ключа для сопоставимой стойкости

· изученность (за счёт большего возраста)

Недостатки:

Сложность обмена ключами. Для применения необходимо решить проблему надёжной передачи ключей каждому абоненту, так как нужен секретный канал для передачи каждого ключа обеим сторонам.

2.3 Асимметричное шифрование

Асимметричное шифрование - система шифрования, при которой открытый ключ передаётся по открытому (то есть незащищённому, доступному для наблюдения) каналу, и используется для проверки ЭЦП (электронной цифровой подписи) и для шифрования сообщения. Для генерации ЭЦП и для расшифровывания сообщения используется секретный ключ. Криптографические системы с открытым ключом в настоящее время широко применяются в различных сетевых протоколах, в частности, в протоколах TLS и его предшественнике SSL (лежащих в основе HTTPS).

Идея криптосистемы с открытым ключом.

Идея криптографии с открытым ключом очень тесно связана с идеей односторонних функций, то есть таких функций f(x), что по известному x довольно просто найти значение f(x), тогда как определение x из f(x) сложно в смысле теории.

Но сама односторонняя функция бесполезна в применении: ею можно зашифровать сообщение, но расшифровать нельзя. Поэтому криптография с открытым ключом использует односторонние функции с лазейкой. Лазейка -- это некий секрет, который помогает расшифровать. То есть существует такой y, что зная f(x) и y, можно вычислить x. К примеру, если разобрать часы на множество составных частей, то очень сложно собрать вновь работающие часы. Но если есть инструкция по сборке (лазейка), то можно легко решить эту проблему.

Например:

Рассматривается схема с возможностью восстановить исходное сообщение с помощью «лазейки», то есть труднодоступной информации. Для шифрования текста можно взять большой абонентский справочник, состоящий из нескольких толстых томов (по нему очень легко найти номер любого жителя города, но почти невозможно по известному номеру найти абонента). Для каждой буквы из шифруемого сообщения выбирается имя, начинающееся на ту же букву. Таким образом, букве ставится в соответствие номер телефона абонента. Отправляемое сообщение, например «КОРОБКА», будет зашифровано следующим образом:

Сообщение

Выбранное имя

Криптотекст

К

Королёв

5643452

О

Орехов

3572651

Р

Рузаева

4673956

О

Осипов

3517289

Б

Батурин

7755628

К

Кирсанова

1235267

А

Арсеньева

8492746

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

Научная основа.

Начало асимметричным шифрам было положено в работе «Новые направления в современной криптографии» Уитфилда Диффи и Мартина Хеллмана, опубликованной в 1976 году. Находясь под влиянием работы Ральфа Меркли (Ralph Merkle) о распространении открытого ключа, они предложили метод получения секретных ключей, используя открытый канал. Этот метод экспоненциального обмена ключей, который стал известен как обмен ключами Диффи-Хеллмана, был первым опубликованным практичным методом для установления разделения секретного ключа между заверенными пользователями канала. В 2002 году Хеллман предложил называть данный алгоритм «Диффи -- Хеллмана -- Меркли», признавая вклад Меркли в изобретение криптографии с открытым ключом. Эта же схема была разработана Малькольмом Вильямсоном в 1970-х, но держалась в секрете до 1997 года. Метод Меркли по распространению открытого ключа был изобретён в 1974 году и опубликован в 1978, его также называют загадкой Меркли.

Основные принципы построения криптосистем с открытым ключом

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

Можно выделить легкую подзадачу P' из P. Она должна решаться за полиномиальное время, лучше, если за линейное.

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

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

Криптосистема организована так, что алгоритмы расшифрования для легального пользователя и криптоаналитика существенно различны. В то время как второй решает P'' задачу, первый использует секретную лазейку и решает P' задачу.

Особенности системы

· Преимущество асимметричных шифров перед симметричными шифрами состоит в отсутствии необходимости предварительной передачи секретного ключа по надёжному каналу.

· В симметричной криптографии ключ держится в секрете для обеих сторон, а в асимметричной криптосистеме только один секретный.

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

· В больших сетях число ключей в асимметричной криптосистеме значительно меньше, чем в симметричной.

Недостатки

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

· Хотя сообщения надежно шифруются, но «засвечиваются» получатель и отправитель самим фактом пересылки шифрованного сообщения.

· Несимметричные алгоритмы используют более длинные ключи, чем симметричные.

2.4 Блочный шифр

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

Преобразование должно использовать следующие принципы:

· Рассеивание (diffusion) -- то есть изменение любого знака открытого текста или ключа влияет на большое число знаков шифротекста, что скрывает статистические свойства открытого текста;

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

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

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

Блочный шифр состоит из двух взаимосвязанных алгоритмов: алгоритм шифрования E и алгоритм расшифрования E?1. Входными данными служат блок размером n бит и k-битный ключ. На выходе получается n-битный зашифрованный блок. Для любого фиксированного ключа функция расшифрования является обратной к функции шифрования для любого блока M и ключа K.

Для любого ключа K, EK является биективной функцией (перестановкой) на множестве n-битных блоков.

Размер блока n -- это фиксированный параметр блочного шифра, обычно равный 64 или 128 битам, хотя некоторые шифры допускают несколько различных значений. Длина 64 бита была приемлема до середины 90-х годов, затем использовалась длина 128 бит, что примерно соответствует размеру машинного слова и позволяет эффективную реализацию на большинстве распространённых вычислительных платформах. Различные схемы шифрования позволяют зашифровывать открытый текст произвольной длины. Каждая имеет определенные характеристики: вероятность ошибки, простота доступа, уязвимость к атакам. Типичными размера ключа являются 40, 56, 64, 80, 128, 192 и 256 бит. В 2006 г. 80-битный ключ способен был предотвратить атаку грубой силой.

Режимы работы блочного шифра

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

Аналогичная проблема возникает при формировании и преобразовании «хвостового» блока данных. Так как данные могут быть любой длины, а блочный шифр требует данные кратные длине блока, то «хвостовой» блок данных зачастую приходится искусственно дополнять до требуемого размера. При этом, например, заполнение хвоста одинаковыми символами облегчает атаку по известному открытому тексту. Однако, проблема легко решается заполнением случайных содержимым (к примеру, с использованием ГПСЧ)

Принципиальным решением описанных проблем является гаммирование данных и использование контекстно-зависимых режимов шифрования.

шифр криптосистема ключ

2.5 Поточные шифры

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

Классификация поточных шифров

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

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

Синхронные поточные шифры

Синхронные поточные шифры (СПШ) -- шифры, в которых поток ключей генерируется независимо от открытого текста и шифротекста.

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

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

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

Плюсы СПШ:

· отсутствие эффекта распространения ошибок (только искажённый бит будет расшифрован неверно);

· предохраняют от любых вставок и удалений шифротекста, так как они приведут к потере синхронизации и будут обнаружены.

Минусы СПШ:

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

Самосинхронизирующиеся поточные шифры

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

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

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

Плюсы АПШ:

· Размешивание статистики открытого текста. Так как каждый знак открытого текста влияет на следующий шифротекст, статистические свойства открытого текста распространяются на весь шифротекст. Следовательно, АПШ может быть более устойчивым к атакам на основе избыточности открытого текста, чем СПШ.

Минусы АПШ:

· распространение ошибки (каждому неправильному биту шифротекста соответствуют N ошибок в открытом тексте);

· чувствительны к вскрытию повторной передачей.

2.6 Шифр Цезаря

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

Шифр назван в честь римского императора Гая Юлия Цезаря, использовавшего его для секретной переписки. Естественным развитием шифра Цезаря стал шифр Виженера. С точки зрения современного криптоанализа, шифр Цезаря не имеет приемлемой стойкости.

Математическая модель

Если сопоставить каждому символу алфавита его порядковый номер (нумеруя с 0), то шифрование и дешифрование можно выразить формулами модульной арифметики:

где -- символ открытого текста, -- символ шифрованного текста, -- мощность алфавита, а -- ключ.

С точки зрения математики шифр Цезаря является частным случаем аффинного шифра.

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

3. Практическая часть

3.1 Применение одного из математических методов на примере шифра Цезаря

Шифрование с использованием ключа k = 3. Буква «С» «сдвигается» на три буквы вперед и становится буквой «Ф». Твердый знак, перемещённый на три буквы вперед, становится буквой «Э», и так далее:

Исходный алфавит:

АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ

Шифрованный: ГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯАБВ

Оригинальный текст:

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

Шифрованный текст получается путём замены каждой буквы оригинального текста соответствующей буквой шифрованного алфавита:

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

3.2 Применение одного из математических методов на примере Ассиметричного шифра

Понять идеи и методы криптографии с открытым ключом помогает следующий пример -- хранение паролей в компьютере. Каждый пользователь в сети имеет свой пароль. При входе, он указывает имя и вводит секретный пароль. Но если хранить пароль на диске компьютера, то кто-нибудь его может считать (особенно легко это сделать администратору этого компьютера) и получить доступ к секретной информации. Для решения задачи используется односторонняя функция. При создании секретного пароля в компьютере сохраняется не сам пароль, а результат вычисления функции от этого пароля и имени пользователя. Например, пользователь Алиса придумала пароль «Гладиолус». При сохранении этих данных вычисляется результат функции f(ГЛАДИОЛУС), пусть результатом будет строка РОМАШКА, которая и будет сохранена в системе. В результате файл паролей примет следующий вид:

Имя

f(имя_пароль)

АЛИСА

РОМАШКА

БОБ

НАРЦИСС

Вход в систему теперь выглядит так:

Имя:

АЛИСА

Пароль:

ГЛАДИОЛУС

Когда Алиса вводит «секретный» пароль, компьютер проверяет, даёт или нет функция, применяемая к ГЛАДИОЛУС, правильный результат РОМАШКА, хранящийся на диске компьютера. Стоит изменить хотя бы одну букву в имени или в пароле, и результат функции будет совершенно другим. «Секретный» пароль не хранится в компьютере ни в каком виде. Файл паролей может быть теперь просмотрен другими пользователями без потери секретности, так как функция практически необратимая.

4. Заключение

Под шифром понимается совокупность обратимых преобразований множества открытых данных на множество зашифрованных данных. Самые важные составляющие любого шифра - это общее правило , по которому преобразуется исходный текст. Благодаря этой работе мы узнали о связи шифров и математики. И о том, что с помощью различных математических методов можно зашифровать информацию. Мы считаем, что шифры - это одна из самых интересных и актуальных тем. Шифры использовались, используются и будут использоваться, т.к. они необходимы во многих областях и помогают людям решить те или иные логические задачи. Шифрование постоянно открывается обществу, т.к. были созданы системы, которые прогрессивнее предыдущих и позволяют разрешать серьезные задачи.

Список источников информации:

1. http://ru.wikipedia.org

2. http://citforum.ru/security/cryptography/yaschenko/78.html

3. http://www.wikiznanie.ru/ru-wz/index.php/Шифр

4. Гатчин Ю.А., Коробейников А.Г. Основы криптографических алгоритмов. Учебное пособие. - СПб.: СПбГИТМО(ТУ), 2002.

5. Коробейников А. Г. Математические основы криптографии. Учебное пособие. СПб: СПб ГИТМО (ТУ), 2002.

Размещено на Allbest.ru


Подобные документы

  • Определение понятия модели, необходимость их применения в науке и повседневной жизни. Характеристика методов материального и идеального моделирования. Классификация математических моделей (детерминированные, стохастические), этапы процесса их построения.

    реферат [28,1 K], добавлен 20.08.2015

  • Значение понятия математика. Ее роль в науке. Математика как наука основанная на разнообразие математических моделей, задачей которых является отображение реальных событий и явлений. Особенности математического языка. Известные высказывания о математике.

    реферат [21,7 K], добавлен 07.05.2013

  • Понятие и история развития криптографии как науки, предмет и методы ее исследования. Существующие шифры и закономерности процесса шифрования. Сравнительное описание шифров Плейфера и Тритемиуса, условия и анализ примеров их применения на практике.

    курсовая работа [66,2 K], добавлен 07.05.2016

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

    контрольная работа [994,7 K], добавлен 15.09.2019

  • Как высшая математика разрешает философские парадоксы. Математика в апориях Зенона. Точная математическая формулировка интуитивного физического или метафизического понятия непрерывного движения. Попытки избавления от допущений в математических выкладках.

    реферат [320,7 K], добавлен 05.01.2013

  • Применение математических и вычислительных методов в планировании перевозок. Понятие и виды транспортных задач, способы их решения. Особенности постановки задачи по критерию времени. Решение транспортной задачи в Excel, настройка параметров решателя.

    курсовая работа [1,0 M], добавлен 12.01.2011

  • Основные теоремы и понятия дифференциального исчисления, связи между свойствами функции и её производных (или дифференциалов); применение математических методов в естествознании и технике. Решение уравнений и неравенств с помощью теорем Ролля и Лагранжа.

    курсовая работа [609,9 K], добавлен 09.12.2011

  • Методы решения одного нелинейного уравнения: половинного деления, простой итерации, Ньютона, секущих. Код программы решения перечисленных методов на языке программирования Microsoft Visual C++ 6.0. Применение методов к конкретной задаче и анализ решений.

    реферат [28,4 K], добавлен 24.11.2009

  • Роль математики в современном мире. Основные этапы развития математики. Аксиоматический метод построения научной теории. Начала Евклида как образец аксиоматического построения научной теории. История создания неевклидовой геометрии. Стили мышления.

    реферат [25,8 K], добавлен 08.02.2009

  • Особенности математических моделей и моделирования технического объекта. Применение численных математических методов в моделировании. Методика их применения в системе MathCAD. Описание решения задачи в Mathcad и Scilab, реализация базовой модели.

    курсовая работа [378,5 K], добавлен 13.01.2016

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.