Диплом: Анализ криптостойкости методов защиты информации в операционных системах Microsoft Windows 9x - текст диплома. Скачать бесплатно.
Банк рефератов, курсовых и дипломных работ. Много и бесплатно. # | Правила оформления работ | Добавить в избранное
 
 
   
Меню Меню Меню Меню Меню
   
Napishem.com Napishem.com Napishem.com

Диплом

Анализ криптостойкости методов защиты информации в операционных системах Microsoft Windows 9x

Банк рефератов / Программирование

Рубрики  Рубрики реферат банка

закрыть
Категория: Дипломная работа
Язык диплома: Русский
Дата добавления:   
 
Скачать
Архив Zip, 284 kb, скачать бесплатно
Заказать
Узнать стоимость написания уникальной дипломной работы

Узнайте стоимость написания уникальной работы

27 МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ САМАРСКИЙ ГОСУДАРСТВЕ ННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ИНЖЕНЕРНО-ЭКОНОМИЧЕСКИЙ ФАКУЛЬТЕТ КАФЕДРА “ВЫСШАЯ И ПРИКЛАДНАЯ МАТЕМАТИКА” ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА студента АЛЬПЕРТА ВЛАДИМИРА ВЛАДИМИРОВИЧА на тему : АНАЛИЗ КРИПТОСТОЙКОСТИ МЕТОДОВ ЗАЩИТЫ ИНФОРМАЦИИ В ОПЕРАЦИОННЫХ СИСТЕМАХ MICROSOFT WINDOW 9x по специальности 01.02.00 “Прикладная математика” Научный руководитель : к . т . н. ПОНОМАРЕВ ВЛАДИМИР ПЕТРОВИЧ « ___» ________2001г .__________________ Студент ___________________ « ___» ________2001г. Дипломная работ а защищена « ___» ________2001г. Оценка _______________________________________ Председатель ГЭК _____________________________ Самара 2001г. СОДЕРЖАНИЕ ВВЕДЕНИЕ 3 1.Теоретические основы криптоанализа 7 1.1 Методы криптоанализа 7 1.2 Потоковые шифры 12 1.3 Алгоритм RC4 и его криптоанализ 15 2. Защита информации в операционных системах Microsoft Windows 9x 24 2.1 Аутентификация , безо пасность и доступ к ресурсам в операционных системах семейства Microsoft Windows 9x 24 2.2 Структура PWL – файлов 27 3. Программа анализа PWL-файлов 31 3.1 Оценка надежности криптоалгоритмов в зависимости от длины ключа 31 3.2 Разработка программы 36 3.3 Функции программы 40 ЗАКЛЮЧЕНИЕ 42 БИБЛИОГРАФИЧЕСКИЙ СПИСОК 43 ПРИЛОЖЕНИЕ 4 5 ВВЕДЕНИЕ Широкое применение компьютерных технологий и постоянное увеличение объема информационных потоков вызывает постоянный ро ст интереса к криптографии . В последнее время увеличивается роль программных средств защиты информации , просто модернизируемых не требующих крупных финансовых затрат в сравнении с аппаратными криптосистемами . Современные методы шифрования гарантируют прак т ически абсолютную защиту данных , но всегда остается проблема надежности их реализации. Другой важной проблемой применения криптографии является противоречие между желанием граждан защитить свою информацию и стремлением государственных спецслужб иметь возм ожность доступа к некоторой информации для пресечения незаконной деятельности . Чрезвычайно трудно найти неоспоримо оптимальное решение этой проблемы . Как оценить соотношение потерь законопослушных граждан и организаций от незаконного использования их инфо р мации и убытков государства от невозможности получения доступа к защищенной информации отдельных групп , скрывающих свою незаконную деятельность ? Можно ли гарантированно не допустить незаконное использование криптоалгоритмов лицами , которые нарушают и друг и е законы ? Кроме того , всегда существуют способы скрытого хранения и передачи информации . Хотя сдерживание открытых исследований в области криптографии и криптоанализа является самым простым путем , но это принесет значительный отрицательный эффект . Примене ние ненадежных средств не защитит пользователей , но вызовет распространение компьютерных преступлений , напротив , обнаружение своевременное обнаружение ошибок в системах защиты информации позволит предотвратить ущерб. В настоящее время особо актуальной стал а оценка уже используемых криптоалгоритмов . Задача определения эффективности средств защиты зачастую более трудоемкая , чем их разработка , требует наличия специальных знаний и , как правило , более высокой квалификации , чем задача разработки . Это обстоятельс т ва приводят к тому , что на рынке появляется множество средств криптографической защиты информации , про которые никто не может сказать ничего определенного . При этом разработчики держат криптоалгоритм (как показывает практика , часто нестойкий ) в секрете . О д нако задача точного определения данного криптоалгоритма не может быть гарантированно сложной хотя бы потому , что он известен разработчикам . Кроме того , если нарушитель нашел способ преодоления защиты , то не в его интересах об этом заявлять . Поэтому общест в у должно быть выгодно открытое обсуждение безопасности систем защиты информации массового применения , а сокрытие разработчиками криптоалгоритма должно быть недопустимым. На сегодняшний день существуют хорошо известные и апробированные криптоалгоритмы (как с симметричными , так и несимметричными ключами ), криптостойкость которых либо доказана математически , либо основана на необходимости решения математически сложной задачи (факторизации , дискретного логарифмирования и т.п .). С другой стороны , в компьютерном и мире все время появляется информация об ошибках или "дырах " в той или иной программе (в т.ч . применяющей криптоалгоритмы ), или о том , что она была взломана . Это создает недоверие , как к конкретным программам , так и к возможности вообще защитить что-либо криптографическими методами не только от спецслужб , но и от простых хакеров . Поэтому знание атак и дыр в криптосистемах , а также понимание причин , по которым они имели место , является одним из необходимых условий разработки защищенных систем и их использо в ания . Рис . 1. Почему криптосистемы ненадежны. В настоящей работе проведен анализ криптостойкости методов защиты информации в операционных системах семе йства Microsoft Windows 9x, кроме того , было проведено исследование по поиску необходимой длины ключа и пароля , а также рассматриваются проблемы криптоанализа потокового шифра на примере популярного алгоритма RC4. Разработанная программа по исследованию P W L-файлов позволит восстанавливать забытые пароли и упорядочить имеющиеся сетевые ресурсы. 1.Теоретические основы криптоанализа 1.1 Методы криптоанализа Криптология делится на две части : криптографию и кр иптоанализ . Криптограф пытается найти методы обеспечения секретности и (или ) аутентичности сообщений . Криптоаналитик пытается выполнить обратную задачу , раскрывая шифр или , подделывая кодированные сигналы таким образом , чтобы они были приняты как подлинны е. Общепринятое допущение в криптографии состоит в том , что криптоаналитик имеет полный текст криптограммы . Кроме того , предполагается по правилу , сформулированным Керкхоффом , что стойкость шифра должна определяться только секретностью ключа . Если криптоана литику известен только текст и алгоритм шифра , то он применяет анализ на основе шифрованного текста . Если криптоаналитик сможет достать несколько отрывков открытого текста и соответствующего ему шифрованного текста , то применяется анализ на основе открыто г о текста. Важной особенностью системы и средства криптографической защиты информации (СКЗИ ) является то , что для них не существует простых и однозначных тестов проверки их надежности . Кроме того , эффективность СКЗИ и просто их наличие никак не связываются на работоспособности основной системы . Поэтому задача эффективности СКЗИ не может быть решена обычным тестированием. Криптоалгоритмом будем называть собственно алгоритм шифрования , имитозащиты , и других криптографических функций . Криптографическим протокол ом будем называть набор правил и процедур , определяющий использование криптоалгоритма . Криптосистема представляет собой совокупность криптосхемы , протоколов и процедур управления ключами , включая изготовление и распространение . Так , хэш-функция y = F(z, x ) + x , где F - криптопреобразование с известным ключом z, может рассматриваться и как самостоятельный криптоалгоритм , и как протокол , использующий преобразование F. Принято различать криптоалгоритмы по степени доказуемости их безопасности . Существуют безус ловно стойкие , доказуемо стойкие и предположительно стойкие криптоалгоритмы. Безопасность безусловно стойких криптоалгоритмов основана на доказанных теоремах о невозможности раскрытия ключа . Примером безусловно стойкого криптоалгоритма является система с р азовым использованием ключей (шифр Вернама ) или система квантовой криптографии , основанная на квантово-механическом принципе неопределенности , но стойкие криптосистемы неудобны на практике. Стойкость доказуемо стойких криптоалгоритмов определяется сложност ью решения хорошо известной математической задачи , которую пытались решить многие математики и которая является общепризнанно сложной . Примером могут служить системы Диффи-Хеллмана или Ривеста-Шамира-Адельмана , основанные на сложностях соответственно диск р етного логарифмирования и разложения целого числа на множители . Достоинством доказуемо стойких алгоритмов является хорошая изученность задач , положенных в их основу . Недостатком их является невозможность оперативной доработки криптоалгоритмов в случае поя в ления такой необходимости. Предположительно стойкие криптоалгоритмы основаны на сложности решения частной математической задачи , которая не сводится к хорошо известным задачам , и которую пытались решить один или несколько человек . Примером такой задачи мож ет служить рассматриваемый нами алгоритм RC4. Предположительно стойкие криптоалгоритмы характеризуются сравнительно малой изученностью математической задачи , но обладают большой гибкостью , что позволяет не отказываться от алгоритмов , в которых обнаружены с лабые места , а проводить их доработку. Криптографические алгоритмы обычно строятся с использованием простых и быстро выполняемых операторов нескольких типов . Множество обратимых операторов , преобразующих текст длиной n бит в текст длиной n бит , являются эл ементами группы обратимых операторов по умножению (подстановок n-разрядных слов ). Пусть f, g, h — обратимые операторы , то есть существуют f -1 , g -1 , h -1 . Поэтому hgf - последовательное выполнение операторов f, g, h - тоже обратимый оператор (операторы выполняются справа налево ) с обратным оператором к этому произведению f -1 , g -1 , h -1 . Поэтому дешифратор выполняет те же операции , что и шифратор , но в обратном порядке , и каждый оператор дешифрования является обратным к соответствующему оператору шифр ования . Некоторые операторы являются взаимно обратными , то есть выполнение подряд два раза некоторой операции над текстом дает исходный текст . В терминах теории групп это записывается уравнением f 2 = e , где e - единичный оператор . Такой оператор называет ся инволюцией . Можно сказать , что инволюция представляет собой корень из единицы . Примером инволюции является сложение по модулю два текста с ключом. Существует еще одно важное применение одноключевой криптографии . Это осуществление вычислимого в одну стор ону преобразования информации . Такое преобразование называется хэш-функцией . Особенность этого преобразования заключается в том , что прямое преобразование y=h(x) вычисляется легко , а обратное x=h -1 (y) - трудно . Вообще говоря , обратное преобразование не явл яется функцией , поэтому правильнее говорить о нахождении одного из прообразов для данного значения хэш-функции . В этом случае ключа , понимаемого как некоторая конфиденциальная информация , нет . Однако стойкие хэш-функции , для которых прообраз по данному зн а чению функции тяжело найти , реализуются криптографическими методами и требуют для обоснования стойкости проведения криптографических исследований . Типичное применение хэш-функции - создание сжатого образа для исходного текста такого , что найти другой текс т , обладающий таким же образом , вычислительно невозможно . Задача создания стойкой хэш-функции возникает , например , при цифровой подписи текстов. Способность криптосистемы противостоять атакам называется стойкостью . Количественно стойкость измеряется как сло жность наилучшего алгоритма , приводящего криптоаналитика к успеху с приемлемой вероятностью . В зависимости от целей и возможностей криптоаналитика меняется и стойкость . Различают стойкость ключа (сложность раскрытия ключа наилучшим известным алгоритмом ), с тойкость бесключевого чтения , имитостойкость (сложность навязывания ложной информации наилучшим известным алгоритмом ) и вероятность навязывания ложной информации. Уровень стойкости зависит от возможностей криптоаналитика и от пользователя . Так , различают к риптоанализ на основе только шифрованного текста , когда криптоаналитик располагает только набором шифрограмм и не знает открытых текстов , и криптоанализ на основе открытого текста , когда криптоаналитик знает открытые и соответствующие шифрованные тексты . П оскольку криптоалгоритм должен быть универсальным , естественным представляется требование , чтобы стойкость ключа не зависела от распределения вероятностей источника сообщений . В общем случае источник сообщений может вырабатывать “удобные” для нарушителя с о общения , которые могут стать ему известными . В этом случае говорят о криптоанализе на основе специально выбранных открытых текстов . Очевидно , что стойкость ключа по отношению к анализу на основе выбранных текстов не может превышать стойкости по отношению к анализу на основе открытых текстов , а она не может превышать стойкости по отношению к анализу на основе шифрованных текстов. Обычно криптоалгоритмы разрабатывают так , чтобы они были стойкими по отношению к криптоанализу на основе специально выбранных откр ытых текстов. Создание новых эффективных методов раскрытия ключа или иного метода ослабления криптоалгоритма может давать осведомленным лицам большие возможности по нанесению ущерба пользователям , применяющим данный криптоалгоритм . Публикация или замалчива ние этих сведений определяются степенью открытости общества . Рядовой пользователь системы бессилен помешать нарушителю в раскрытии его ключей . С развитием математики и средств вычислительной техники стойкость криптоалгоритма может только уменьшаться . Для у меньшения возможного ущерба , вызванного несвоевременной заменой криптоалгоритма , потерявшего свою стойкость , желательна периодическая перепроверка стойкости криптоалгоритма. Из рассмотренного выше следует , что понятие стойкости криптосистемы многогранно . С тойкость зависит не только от разработчика , но и от особенностей использования данного криптоалгоритма в системе управления или связи , от физической реализации криптоалгоритма , а также от будущих успехов математики и вычислительной техники . Ведь криптосис т ема может эксплуатироваться много лет , а необходимость сохранять в секрете в течение длительного времени переданную ранее по открытым каналам связи информацию может сделать необходимым прогнозировать развитие науки и техники на десятилетия. Последние десят илетие характеризуется резким увеличением числа открытых работ по всем вопросам криптологии , а криптоанализ становится одной из наиболее активно развивающихся областей исследований . Многие криптосистемы , стойкость которых не вызывала особых сомнений , оказ а лись успешно раскрытыми . При этом разработан большой арсенал математических методов , представляющих прямой интерес для криптоаналитика. Каждый новый метод криптоанализа приводит к пересмотру безопасности шифров , к которым он применим . Если целью криптоанал итика является раскрытие возможно большего числа шифров (независимо от того , хочет ли он этим нанести ущерб обществу , предупредить его о возможной опасности или просто получить известность ), то для него наилучшей стратегией является разработка универсальн ы х методов анализа . Но эта задача является также и наиболее сложной . Стандарты шифрования периодически меняются , а секретная информация часто имеет свойство стареть , то есть не представляет большого интереса для нарушителя спустя какое-то время после ее пе р едачи по каналам связи в зашифрованном виде. 1.2 Потоковые шифры Рассматриваемый нами криптоалгоритм RC4 относится к классу потоковых шифров , которые в последнее время стали популярными благодаря высокой скорости работы . Потоковые шифры преобразуют открытый текст в шифротекст по одному биту за операцию . Генератор потока ключей (иногда называемый генератором с бегущим ключом ) выдает поток битов : k 1 , k 2 , k 3 , ..., k i . Этот поток ключей и поток битов открытого текста , p 1 , p 2 , p 3 , ..., p i , подвергаются операции “исключающее или ", и в результате получается поток битов шифротекста. c i =p i ^ k i При дешифрировании операция XOR выполняется над битами шифротекста и тем же самым потоком клю чей для восстановления битов открытого текста. p i = c i ^ k i Безопасность системы полностью зависит от свойств генератора потока ключей . Генератор потока ключей создает битовый поток , который похож на случайный , но в действительности детерминирован и может быть безошибочно воспр оизведен при дешифрировании . Чем ближе выход генератора потока ключей к случайному , тем больше времени потребуется для взлома шифра. Рис . 2. Потоковый шифр. Для всех потоковых шифров используются ключи . Выход генератора потока ключей является функцией ключа . Теперь , если получить пару открытый текст /шифротекст , то можно читать только те сообщения , которые зашифрованы тем же ключом . Потоковые шифры особенно полезны для шифрования бесконечных потоков коммуникационного трафика , например, канала Т 1, связывающего два компьютера. Генератор потока ключей состоит из трех основных частей . Внутреннее состояние описывает текущее состояние генератора потока ключей . Два генератора потока ключей , с одинаковым ключом и одинаковым внутренним состоянием , выдают одинаковые потоки ключей . Функция выхода по внутреннему состоянию генерирует бит потока ключей . Функция следующего состояния по внутреннему состоянию генерирует новое внутреннее состояние. Рис . 3. Устройство генера тора потока ключей. Криптоалгоритм RC4 относится к так называемым самосинхронизирующимся шифрам . В самосинхронизирующихся потоковых шифрах каждый бит потока ключей является функцией фиксированного числа предыдущих битов шифротекста . Военные называют этот ш ифр автоключом шифротекста . Самосинхронизирующийся потоковый шифр показан на рисунке . Внутреннее состояние является функцией предыдущих n битов шифротекста . Криптографически сложной является выходная функция , которая использует внутреннее состояние для ген ерации бита потока ключей. Рис . 4. Самосинхронизирующийся генератор потока ключей. Так как внутреннее состояние полностью зависит от предыдущих n шифротекста , дешифрирующий генератор потока ключей автоматически синхронизиру ется с шифрующим генератором потока ключей , приняв n битов шифротекста . В интеллектуальных реализациях этого режима каждое сообщение начинается случайным заголовком длиной n битов . Этот заголовок шифруется , передается и затем расшифровывается . Расшифровка будет неправильной , но после этих n битов оба генератора потока ключей будут синхронизированы. Слабой стороной самосинхронизирующегося потокового шифра является распространение ошибки . Для каждого бита шифротекста , испорченного при передаче , дешифрирующий генератор потока ключей выдает n неправильных битов потока ключей . Следовательно , каждому неправильному биту шифротекста соответствуют n ошибок в открытом тексте , пока испорченный бит не перестанет влиять на внутреннее состояние. 1.3 Алгоритм RC4 и его криптоанализ Существенное повышение производительности микропроцессоров в 1980-е годы вызвало в криптографии усиление интереса к программным методам реализации криптоалгоритмов как возможной альтернативе аппаратным схем ам на регистрах сдвига . Одним из самых первых подобных криптоалгоритмов , получившим широкое распространение , стал RC4. Алгоритм RC4 - это потоковый шифр с переменной длиной ключа , разработанный в 1987 году Рональдом Райвистом для компании RSA Data Security . Он обладает следующими свойствами : • адаптивностью для аппаратных средств и программного обеспечения , что означает использование в нем только примитивных вычислительных операций , обычно присутствующих на типичных микропроцессорах. • алгоритм быстрый , т.е . в базисных вычислительных операциях операторы работают на полных словах данных. • адаптивностью на процессоры различных длин слова. • компактностью в терминах размера кода , и особо удобен для процессоров с побайтно-ориентированной обработкой. • низким тр ебованием к памяти , что позволяет реализовывать алгоритм на устройствах с ограниченной памятью ; • использованием циклических сдвигов , зависимых от данных , с "переменным " числом . • простотой и легкостью выполнения. В течение семи лет этот алгоритм был фирм енным секретом и детали о его конструкции предоставлялись только после подписания договора о неразглашении , но в сентябре 1994 года кто-то анонимно распространил исходный код алгоритма через Internet. Пользователи Сети , имеющие легальные криптосредства фи р мы RSA, реализующие RC4, подтвердили совместимость кода с криптопрограммой . В настоящее время алгоритм RC4 реализован в десятках коммерческих криптографических продуктов , включая Lotus Notes, Apple Computer's AOCE, Oracle Secure SQL, а также является част ь ю спецификации стандарта сотовой связи CDPD. Криптогенератор функционирует независимо от открытого текста . Генератор имеет подстановочную таблицу (S-бокс 8 х 8): S 0 , S 1 , . . ., S 255 . Входами генератора являются замененные по подстановке числа от 0 до 255, и эта подстановка является функцией от ключа изменяемой длины . Генератор имеет два счетчика i и j, инициализируемых нулевым значением. Для генерации случайного байта гаммы выполняются следующие операции : i = (i+1) mod 256 j = (j+S i ) mod 256 swap (S i , S j ) t = (S i +S j ) mod 256 K = S t Байт K складывается операцией XOR с открытым текстом для выработки шифротекста , либо с шифротекстом для получения байта открытого текста . Шифрование происходит весьма быстро - примерно в 10 раз быстрее DES-алгоритма . Инициализация S-бокса столь же проста . На первом шаге он заполняется линейно : S 0 = 0, S 1 = 1, . . ., S 255 = 255. Затем еще один 256-байтный массив полностью заполняется ключом , для чего ключ повторяется соответствующее число раз в зависимости от длины : K 0 , K 1 , . . ., K 255 . Индекс j обнуляется . Затем : for i=0 to 255 j = (j+S i +K i ) mod 256 swap (S i , S j ) Схема показывает , что RC4 может принимать примерно 2 1700 (256! * 256 2 ) возможных состояний . S-бох медленно изменяется в процессе работы : параметр i обеспечивает изменение каждого элемента , а j отвечает за то , чтобы эти элементы изменялись случайным образом . Фактически , RC4 представляет собой семейство алгоритмов , задаваемых параметром n, который является положительным целым с рекомендованным типичным значением n = 8. Внутре ннее состояние генератора RC4 в момент времени t состоит из таблицы S t =(S t (L)) t=0 n2 -1 , содержащей 2 n n-битных слов и из двух n-битных слов-указателей i t и j t . Таким образом , размер внутренней памяти составляет M = n2 n + 2n бит . Пусть выходное n-битное сл ово генератора в момент t обозначается как Z t . Пусть начальные значения i 0 = j 0 = 0. Тогда функция следующего состояния и функция выхода RC4 для каждого t
1Архитектура и строительство
2Астрономия, авиация, космонавтика
 
3Безопасность жизнедеятельности
4Биология
 
5Военная кафедра, гражданская оборона
 
6География, экономическая география
7Геология и геодезия
8Государственное регулирование и налоги
 
9Естествознание
 
10Журналистика
 
11Законодательство и право
12Адвокатура
13Административное право
14Арбитражное процессуальное право
15Банковское право
16Государство и право
17Гражданское право и процесс
18Жилищное право
19Законодательство зарубежных стран
20Земельное право
21Конституционное право
22Конституционное право зарубежных стран
23Международное право
24Муниципальное право
25Налоговое право
26Римское право
27Семейное право
28Таможенное право
29Трудовое право
30Уголовное право и процесс
31Финансовое право
32Хозяйственное право
33Экологическое право
34Юриспруденция
 
35Иностранные языки
36Информатика, информационные технологии
37Базы данных
38Компьютерные сети
39Программирование
40Искусство и культура
41Краеведение
42Культурология
43Музыка
44История
45Биографии
46Историческая личность
47Литература
 
48Маркетинг и реклама
49Математика
50Медицина и здоровье
51Менеджмент
52Антикризисное управление
53Делопроизводство и документооборот
54Логистика
 
55Педагогика
56Политология
57Правоохранительные органы
58Криминалистика и криминология
59Прочее
60Психология
61Юридическая психология
 
62Радиоэлектроника
63Религия
 
64Сельское хозяйство и землепользование
65Социология
66Страхование
 
67Технологии
68Материаловедение
69Машиностроение
70Металлургия
71Транспорт
72Туризм
 
73Физика
74Физкультура и спорт
75Философия
 
76Химия
 
77Экология, охрана природы
78Экономика и финансы
79Анализ хозяйственной деятельности
80Банковское дело и кредитование
81Биржевое дело
82Бухгалтерский учет и аудит
83История экономических учений
84Международные отношения
85Предпринимательство, бизнес, микроэкономика
86Финансы
87Ценные бумаги и фондовый рынок
88Экономика предприятия
89Экономико-математическое моделирование
90Экономическая теория

 Анекдоты - это почти как рефераты, только короткие и смешные Следующий
То, что лучшая подруга увела у вас мужа - ещё как-то можно пережить.
А вот как пережить, что бывший начал прилично зарабатывать?
Anekdot.ru

Узнайте стоимость курсовой, диплома, реферата на заказ.

Обратите внимание, диплом по программированию "Анализ криптостойкости методов защиты информации в операционных системах Microsoft Windows 9x", также как и все другие рефераты, курсовые, дипломные и другие работы вы можете скачать бесплатно.

Смотрите также:


Банк рефератов - РефератБанк.ру
© РефератБанк, 2002 - 2016
Рейтинг@Mail.ru