Дослідження та порівняльний аналіз алгоритмів кодування даних

Історія створення мови С#. Аналіз алгоритмів кодування даних. Розробка системи в середовищі Visual Studio 2008 Express. Схема шифрування алгоритму DES. Дослідження алгоритму RC2. Приклади хешів RIPEMD-160. Програмна реалізація основних процедур системи.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык украинский
Дата добавления 25.10.2012
Размер файла 1,7 M

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

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

Крім того є ряд Державних стандартів, правил, норм, інструкцій та інших нормативних документів, регламентуючих питання охорони праці.

6.1 Аналіз небезпечних і шкідливих факторів в обчислювальному центрі

програмний кодування алгоритм хеш

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

Нанесення травми людині в умовах виробництва обумовлене наявністю небезпечних виробничих чинників:

- несприятливі мікрокліматичні умови;

- підвищений рівень шуму;

- недостатнє або надмірне освітлення;

- підвищений рівень рентгенівських випромінювань;

- рівня електромагнітних випромінювань;

- психофізіологічні шкідливі і небезпечні виробничі чинники.

Держстандарт 12.1.005-88 розповсюджується на повітря робочої зони підприємств, встановлює загальні санітарно-гігієнічні вимоги до показників мікроклімату й допустимому вмісту шкідливих речовин в повітрі робочої зони. Вимоги на допустимий вміст шкідливих речовин в повітрі робочої зони розповсюджуються на робочі місця незалежно від їх розташування.

Показники, якими характеризується мікроклімат є: температура повітря, відносна вологість повітря, швидкість руху повітря, інтенсивність теплового випромінювання. Низька температура повітря впливає на оператора, як на організм людини так і на обладнання ПЕОМ. Великий вплив виявляє відносна вологість. При відносній вологості повітря більш 75-80% знижується опір ізоляції, змінюються робочі характеристики елементів, зростає інтенсивність відмов елементів ПЕОМ. Швидкість руху повітря і запиленість повітряного середовища виявляють вплив на функціональну діяльність людини і роботу приладів ПЕОМ.

В холодні періоди року температура повітря, швидкість його руху і відносна вологість повітря відповідно складають: 22-24 С; 0,1 м/с; 40-60%; в теплі періоди року температура повітря - 23-25 С; відносна вологість 40-60 %; швидкість руху повітря - 0,1 м/с.

Кондиціювання - це автоматична підтримка в закритих приміщеннях всіх або окремих параметрів повітря з метою забезпечення оптимальних мікрокліматичних умов.

Згідно СНіП 2.04. 05-91 система вентиляції, кондиціювання повітря й повітряного опалення передбачена для суспільних, адміністративно-побутових і виробничих категорій.

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

Несприятливий мікроклімат в процесі роботи викликає недомагання і втому організму, порушує нервову і розумову діяльність, сприяє зниженню спостережливості і швидкості реакції.

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

При експлуатації ПЕОМ можуть виникнути негативні явища в організмі людини. Розлади, що виникають в результаті постійного виконання дій, що повторюються, стосуються працівників, що використовують в своїй роботі клавіатуру. При цьому виникає синдром тунельного зап'ястя, який викликає розпухання сухожиль, і що супроводжується постійною біллю при виконанні будь-яких дій, навіть не зв'язаних безпосередньо з професійною діяльністю.

Відповідно діючим нормативним документам (СН 512-78 та ДСанПіН 3.3.007-98) дана площа приміщення розрахована на одну людину 13,0 м2; об'єм -35,1м3. Стіна, стеля, підлога приміщення виготовляються з матеріалів, дозволених для оформлення приміщень санітарно-епідеміологічним наглядом. Підлога приміщення вкрита діелектричним килимком, випробуваним на електричну міцність.

Висота робочої поверхні столу для персонального комп'ютера (ПК) - 690 мм, ширина повинна забезпечувати можливість виконання операцій в зоні досягнення моторного ходу; висота столу 725 мм, ширина 800 мм, глибина 900 мм. Простір для ніг: висота 600 мм, ширина 500 мм, глибина на рівні колін 500 мм, на рівні витягнутої ноги 650мм.

Ширина й глибина сидіння 400 мм, висота поверхні сидіння 450 мм, кут нахилу поверхні від 15 вперед до 5 назад. Поверхня сидіння плоска, передній край закруглений.

Заземлення конструкцій, які знаходяться в приміщенні надійно захищені діелектричними щитками. В приміщенні з ПЕОМ кожен день проводиться вологе прибирання.

В доступних місцях знаходяться аптечки першої медичної допомоги.

Приміщення з ПЕОМ оснащено системою автоматичної пожежної сигналізації, а також устатковане засобами пожежегасіння. Підходи до засобів пожежегасіння вільні. Приміщення має кімнати для відпочинку, приймання їжі, психологічного розвантаження та інші побутові приміщення.

Для забезпечення безпеки життєдіяльності працівників у приміщенні варто підтримувати необхідну якість повітря, тобто оптимальні (у крайньому випадку припустимі) параметри мікроклімату, сталість газового складу й відсутність (у крайньому випадку не вище ГПК) шкідливих домішок у повітрі. Для цього необхідно подавати в ці приміщення певну кількість чистого зовнішнього повітря, потреба в якому регламентується СНіП 2.04.05-91. Для підтримки певних параметрів мікроклімату використовується опалення, вентиляція, кондиціювання, що є найважливішою частиною інженерного спорудження.

При роботі на ПЕОМ людина наражається на шумовий вплив з боку багатьох джерел, наприклад, шум викликаний роботою принтера (70 дБ).

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

При роботі в умовах шуму спостерігається підвищена втомлюваність і зниження дієздатності, погіршується увага і мовна комутація, створюються передумови до помилкових дій працюючих. Являючись причиною частих головних нездужань, нестійкого емоційного стану, шум створює передумови до погіршення психологічного стану. Шкідливий вплив шуму на організм людини, як правило, посилюється за наявності інших шкідливих або несприятливих виробничих чинників.

Джерелами випромінювання електромагнітних полів (ЕМП) в ПЕОМ є система відхилення випромінювання монітору, а також елементи блоків живлення системного модуля, монітору, принтера.

Дія електромагнітних полів на організм людини виявляється у функціональному розладі центральної нервової системи. В результаті тривалого перебування в зоні дії електромагнітних полів наступають передчасна стомлюваність, сонливість або порушення сну, з'являються часті головні болі.

Систематичний вплив на працюючого ЕМП з рівнями, що перевищують допустимі, призводить до порушення стану його здоров'я. При цьому можуть виникати зміни в нервовій, серцево-судинній та інших системах організму людини. При впливі ЕМП значної інтенсивності на організм можуть виникати поразки кришталиків ока, нервово-психічні захворювання і трофічні явища (випадення волосся, ломкість нігтів). Ступінь шкідливого впливу ЕМП на організм людини визначається напругою електромагнітного поля, довжиною хвилі і тривалістю перебування організму в зоні діяльності ЕМП.

Електронно-променеві трубки, які працюють при напрузі понад 6 кВ є джерелами „м'якого” рентгенівського випромінювання. При напрузі понад 10 кВ рентгенівське випромінювання виходить за межі скляного балону і розсіюється в навколишньому просторі виробничого приміщення.

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

Значення освітлення в процесі життєдіяльності і особливо виробничої діяльності сучасного суспільства величезне. Організація раціонального освітлення робочих місць - одне з основних питань охорони праці. Залежно від джерела світла виробниче освітлення може бути трьох видів: природне, штучне і суміщене.

Для природного освітлення характерна висока дифузна (неуважність) денного світла від небозводу, що вельми сприятливе для зорових умов роботи. Природне освітлення підрозділяють на бічне, здійснюване через світлові віконні отвори; верхнє, здійснюване через аераційні і зенітні ліхтарі, отвори в перекриттях; комбіноване - бічне з верхнім. Природне освітлення характеризується тим, що створювана освітленість змінюється в надзвичайно широких межах залежно від часу дня, року, метеорологічних чинників. Тому природне освітлення неможливе кількісно задавати величиною освітленості. Як нормована величина для природного освітлення прийнята відносна величина - коефіцієнт природної освітленості (КПО), який є вираженим у відсотках відношенням освітленості в даній крапці усередині приміщення до одночасного значення зовнішньої горизонтальної освітленості, створюваної світлом повністю відкритого небозводу, тобто

Штучне освітлення передбачається у всіх виробничих і побутових приміщеннях, де не досить природного світла, а також для освітлення приміщень в нічний час. По функціональному призначенню штучне освітлення підрозділяють на робоче, аварійне, евакуаційне, охоронне, чергове. Робоче освітлення забезпечує зорові умови нормальний роботи, проходу людей і руху транспорту. Аварійне освітлення влаштовують для продовження роботи при раптовому відключенні робочого освітлення. При цьому нормована освітленість повинна складати 5 % від робочого освітлення. Евакуаційне освітлення передбачається для евакуації людей з приміщень при аваріях в місцях, небезпечних для проходу людей, на сходових клітках (повинно бути в приміщеннях не менше 0,5, а на відкритих територіях - не менше 0,2 лк).

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

Штучне освітлення може бути загальним (рівномірним або локалізованим) і комбінованим (до загального додається місцеве). Застосування тільки місцевого освітлення забороняється.

В силу тісного взаємозв'язку зору людини з роботою мозку освітлення виявляє істотний вплив на центральну нервову систему, яка керує всією життєдіяльністю людини. Раціональне освітлення сприяє підвищенню продуктивності і безпеки праці і збереженню здоров'я працюючих. Недостатнє освітлення робочих місць - одна з причин низької продуктивності праці. В цьому випадку очі працюючого сильно напружені, важко розрізняють предмети, у людини знижується темп і якість роботи, погіршується загальний стан.

На органах зору негативно відбивається як недостатнє так і надмірне освітлення. Надмірна освітленість призводить до осліплення, що характеризується різзю в очах, при цьому очі працюючого швидко втомлюються і зорове сприймання різко погіршується.

Важливе значення для створення сприятливих умов праці має культура праці й виробнича естетика. Чистота на робочому місці, правильно підібрана колірне фарбування приміщень, інвентарю, устаткування, форма й покрій робочого одягу, спеціально підібрана музика - все це створює гарний настрій, підвищує життєвий тонус і працездатність. Естетичні умови на виробництві мають істотне значення не тільки для оздоровлення, полегшення праці, але й для підвищення його привабливості і продуктивності. У зв'язку із цим на промислових підприємствах велике значення надається промисловій естетиці.

Як самостійна галузь знань промислова естетика і теоретично і організаційно сформувалась порівняно недавно. Вона вивчає закони художньої творчості в сфері виробництва. Коло питань, розроблювальних промисловою естетикою, дуже широкий. Це раціональне колірне оформлення промислових приміщень і встаткування, розумна організація робочого місця, художнє конструювання верстатів, машин, інструментів, впровадження функціональної музики, художня розробка моделей робочого одягу, устаткування стендів наочної агітації, озеленення території цехів і підприємств.

Колір є одним з найбільш потужних засобів емоційного впливу на людину. Колір робочих приміщень, устаткування, механізмів викликає в людини певні емоції, впливає на стомлюваність, травматизм, брак у роботі, а отже, на продуктивність праці. Впливаючи на нервову систему, колір збуджує або заспокоює, створює ілюзію тепла або холоду, тяжкості або легкості, наближення або віддалення. Колірне фарбування виробничих приміщень доцільно робити з урахуванням технологічного призначення приміщень, умов роботи, температури, характеру висвітлення й вимог охорони праці. Колір устаткування повинен бути м'яким, спокійним, психологічно сприятливим. У яскраві контрастні кольори фарбують органи керування встаткування, рухливі частини.

У виробничому інтер'єрі колір також відіграє попереджуючу роль, використовується для зображення технологічних символів і всіляких сигналів. Наприклад, при будівництві промислових об'єктів трубопроводи різного призначення (для води, кислоти, газу) пофарбовані в різний колір. Усім відомі сигнально-попереджуючі кольори: червоний - стоп, небезпечно; жовтий - можлива небезпека; зелений - повна безпека. З економічної точки зору раціональне фарбування робочих приміщень і встаткування підвищує продуктивність праці на 5-20%, зменшує число нещасних випадків.

Принципам організації праці повинно відповідати і взаємне компонування робочих місць у рамках офісного приміщення, так і структура індивідуального робочого місця.

Основні принципи ергономічної організації робочого місця - комфорт і мінімізація навантажень. Зрозуміло, принципам ергономіки повинна відповідати й використовувані меблі. Наприклад, зручне крісло, у якому можна без шкоди для здоров'я працювати тривалий час, повинне бути оснащений підлокітниками й підголівником, що знімають навантаження з м'язів плечового поясу. Пружна спинка анатомічної форми зменшує навантаження на хребет. У результаті конструкція рівномірно підтримує все тіло. Також крісло повинне регулюватися по висоті й глибині сидіння, залежно від ваги й росту людини.

Серед столів найбільш ергономічною визнана криволінійна кутова форма. За рахунок увігнутості більша частина їхньої площі виявляється використовуваної, оскільки попадає в зону охоплення руками людини, рівну 35-40 см.

Самим оптимальним фахівцями вважається розташування меблів за принципом «усе під рукою», коли всі необхідні для щоденної роботи полиці, тумби, шафи перебувають на відстані витягнутої руки. Це дозволяє виключити непотрібні витрати енергії й зосередиться на виконанні прямих обов'язків.

6.2 Заходи щодо нормалізації шкідливих і небезпечних факторів

На сьогоднішній день основним засобом захисту від електромагнітних випромінювань, що застосовуються в обчислювальній техніці є екранування джерел випромінювання. Сьогодні всі монітори, що випускаються, а також блоки живлення мають корпус, виконаний зі спеціального матеріалу, що практично повністю затримує проходження електромагнітного випромінювання. Застосовуються також спеціальні екрани, що зменшують ступінь впливу електромагнітних і рентгенівських променів на оператора.

Для зниження електромагнітного впливу на людину-оператора використовуються також раціональні режими роботи, при яких час роботи на ПЕОМ не повинна перевищувати 50 % робочого часу.

Вентиляція - це організований і регульований повітрообмін у приміщеннях, у процесі якого забруднене або нагріте повітря віддаляється й на його місце подається свіже чисте повітря.

Системи опалення - це комплекс елементів, необхідних для опалення приміщень в холодний період року, нормованої температури повітря не нижче встановленої Держстандарт 12.1. 005-88 і СНіП 2.04. 05-91. У приміщеннях з електронно-обчислювальною технікою передбачають центральне опалення в сполученні із приточною вентиляцією або кондиціювання повітря при одне- і двозмінному режимах роботи, а при трьохзмінному - тільки повітряне опалення.

Гранично допустимі рівні напруги дотику і струмів при експлуатації і ремонті обладнання забезпечені:

- застосуванням малої напруги;

- ізоляцією струмоведучих мереж;

- обґрунтуванням і оптимальним вибором елементної бази, що виключає передумови поразки електричним струмом;

- правильного компонування, монтажу приладів і елементів;

- дотриманням умов безпеки при настанові і заміні приладів і інше.

Захист від небезпечних впливів електричного струму при експлуатації обчислювальних комплексів забезпечені:

- застосування захисного заземлення або обнуління;

- ізоляцією струмопровідних частин;

- дотриманням умов безпеки при настанові і заміні агрегатів;

- надійним контактним сполученням з урахуванням перепаду кліматичних параметрів.

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

На робочих місцях всі металеві та електропровідні неметалеві обладнання заземлені.

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

Зниження виробничого шуму в приміщеннях, де розміщені ПЕОМ, досягається за рахунок акустичної обробки приміщення - зменшення енергії відбитих хвиль, збільшення еквівалентної площі звукопоглинаючих поверхонь, наявність в приміщеннях штучних звукопоглиначів.

З метою зниження шуму в самих джерелах встановлюються віброгасячі і шумогасячі прокладки або амортизатори. В якості засобів звукопоглинання застосовуються не горючі або тяжко горючі спеціальні перфоровані плити, панелі, мінеральна вата з максимальним коефіцієнтом поглинання в межах частот 31.5-8000 Гц.

Для створення нормальних умов роботи програмістів і операторів ПЕОМ в машинному залі використовується система кондиціювання, що забезпечує необхідні оптимальні мікрокліматичні параметри і чистоту повітря.

Електронно-променеві трубки, магнетрони, тиратрони та інші електровакуумні прилади, що працюють при напрузі вище 6 кВ, є джерелами „м'якого” рентгенівського випромінювання. При технічній експлуатації апаратури, в якій напруга вище 15 кВ, використовують засоби захисту для відвертання рентгенівського опромінення операторів і інженерно-технічних робітників, бо при такій напрузі рентгенівське випромінювання розсіюється в навколишньому просторі виробничого приміщення.

Шкідливий вплив рентгенівських променів зв'язаний з тим, що порушення міжмолекулярних зв'язків тканинної речовини може призвести до порушення нормальної течії біохімічних процесів і обміну речовин.

Засобами захисту від „м'якого” рентгенівського випромінювання є застосування поляризаційних екранів, а також використання в роботі моніторів, що мають біо-керамічне покриття і низький рівень радіації. В якості засобів захисту від чинності м'яких рентгенівських променів застосовуються екрани з сталевого листа (0,5-1 мм) або алюмінію (3 мм), спеціальної гуми.

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

При правильно розрахованому і виконаному освітленні очі працюючого за комп'ютером протягом тривалого часу зберігають здатність добре розрізняти предмети не втомлюючись. Це сприяє зниженню професійного захворювання очей, підвищується працездатність. Раціональне освітлення відповідає ряду вимог:

- достатнє, щоб очі без напруги могли розрізняти деталі;

- постійна напруга в мережі не коливається більше ніж на 4%;

- рівномірно розподілено по робочим поверхням, щоб очам не приходилося зазнавати різкого контрасту кольорів;

- не викликає дії, яка сліпить органи зору працюючого (зменшення блищання джерел, що відбивають світло, досягається застосуванням світильників, які розсіюють світло);

- не викликає різких тіней на робочих місцях.

Задачею розрахунку є визначення необхідної потужності електричної освітлювальної установки для створення у виробничому приміщенні заданої освітленості. При проектуванні освітлювальної установки необхідно вирішити наступні основні питання:

- вибрати тип джерела світла - рекомендуються газорозрядні лампи, за винятком місць, де температура повітря може бути менш +5°С і напруга в мережі падати нижче 90 % номінального, а також місцевого освітлення (у цих випадках застосовуються лампи розжарювання);

- визначити систему освітлення (загальна локалізована або рівномірна, комбінована);

- вибрати тип світильників з урахуванням характеристик світорозподілення, умов середовища (конструктивного виконання) та інше;

- розподілити світильники і визначити їх кількість (світильники можуть матися в своєму розпорядженні рядами, в шаховому порядку, ромбоподібно);

- визначити норму освітленості на робочому місці.

Для розрахунку штучного освітлення використовують в основному три методи. Найчастіше її розраховують по світловому потоку. Для цього визначається світловий потік кожної лампи по нормуючій мінімальній горизонтальній освітленості Еmin (лк) з вираження:

F=(Emin·S·K·z) / n1·n·N,

де F - світловий потік лампи в світильнику, лм;

S - площа приміщення, м2;

K - коефіцієнт запасу;

z - коефіцієнт нерівномірного освітлення;

n1 - коефіцієнт використання світлового потоку;

n - кількість ламп в світильнику;

N - число світильників.

Якщо освітлення здійснюється рядами люмінесцентних ламп, те вираження вирішується відносно N. Значення коефіцієнта n1 визначається по довіднику в залежності від типу світильника, коефіцієнтів відбивання стін Рс, стелі Рп, робітничій поверхні і від розмірів приміщення. Показник приміщення fi визначається з виразу:

fi= А·В/Нр·(А+В),

де А і В - довжина і ширина освітленого приміщення, м;

Нр - висота підвісу світильника над робітничою поверхнею, м.

У випадку застосування люмінесцентних ламп потрібна кількість світильників N, яка визначається за формулою:

N=Emin·S·K·z/F·n1·n

Поділивши число світильників N на число вибраних рядів світильників, визначають число світильників у кожному ряду.

Нехай зал має розміри А=8м, В=5м, h=3м, стеля обладнується світильниками Л201Б з люмінесцентними лампами ЛБ80.

Рівень робітничої поверхні над полом 0,8 м, при цьому Нр=2,2 м.

Показник приміщення рівний:

fi=40/2,2 (8+5)=1,3986

По довіднику визначаємо значення коефіцієнта n1 (для значень Рс=0,5, Рп=0,3): n1=0,7. Значення коефіцієнта нерівномірного освітлення приймаємо рівним 1,1, а коефіцієнта запасу - 1,5. При загальному типі освітлення значення Emin=400 лк. Знаючи значення світлового потоку кожної лампи, можемо визначити необхідну кількість світильників:

N=400·8·5·1,5·1,1/5220·0,7·2=3(штук)

Загальна потужність освітлювальної установки рівна:

Р=2·80·3=480(Вт)

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

6.3 Пожежна безпека

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

По класифікації приміщень з ПЕОМ по пожежній небезпеці відносяться до категорії В (СНіП 2.09.02-85), що характеризуються наявністю твердих горючих і важко горючих речовин і матеріалів, а також легкозаймистих матеріалів.

Причини пожежі :

- паління за робочим місцем;

- використовувати нагрівальні прилади в приміщеннях з ПЕОМ;

- від'єднувати і приєднування кабелів за не справності і наявності напруги в мережі;

- за наявністю не визначення напруги в ланцюзі, замиканням клем.

В електронно-обчислювальній техніці пожежну небезпеку створюють прилади, що нагріваються, електро- і радіотехнічні елементи. Вони нагрівають навколишнє повітря і близько розташовані деталі і провідники. Все це може призвести до займання означених елементів, руйнування ізоляції і короткого замикання.

Технологічні об'ємні підлоги виконуються з негорючих або тяжко горючих матеріалів з межею вогнестійкості не менше 0,5 г. Підпільні простори під об'ємними підлогами відділяють негорючими перегородками з межею вогнестійкості не менше 0,75 г на ділянки площею не більш 250 м2.

Для гасіння можливих пожеж передбачена наявність первинних засобів пожежогасіння, згідно «Правил пожежної безпеки в Україні» так і пожежні крани із брезентовими рукавами, пожежні щити (1 щит на 5000м2).

В кожній кімнаті знаходяться вогнегасники. Вогнегасники діляться на хімічні, пінні, повітряно-пінні, СО2 - вогнегасники і порошкові.

Вогнегасники допускаються до експлуатації якщо їхні технічні характеристики відповідають нормативним значенням, встановленим експлуатаційно-технічною документацією. Зменшення змісту вогнегасочої речовини і тиску у вогнегасниках не повинне перевищувати 10 % від встановленого номінального значення.

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

Для успішного гасіння пожежі велике значення має швидке виявлення пожежі та своєчасний виклик пожежних підрозділів до місця пожежі. Пожежний зв'язок і сигналізація можуть бути спеціального або загального призначення, радіозв'язком, електричною пожежною сигналізацією (ЕПС), сиренами. ЕПС є найбільш швидким та надійним засобом сповіщення про виникнення пожежі. В залежності від схеми з'єднання розрізнюють променеві (радіальні) та шлейфні (кільцеві) системи ЕПС.

ЕПС складаються з таких основних частин: сповіщувачів, встановлених в приміщеннях; приймальної станції, яка знаходиться в черговій кімнаті пожежної команди; блока поживи від сіті та від акумулятора (резервний); системи переключення з одної поживи на іншу; електропровідній сіті, яка з'єднує сповіщувачі з приймальною станцією.

В кімнаті з ПЕОМ розміщений сповіщувач (датчик) тепловий легкоплавкий. При збільшенні температури легкоплавкий сплав розплавляється і пружинячі пластинки, розмикаючись, вмикають ланцюг сигналізації.

У приміщенні знаходиться розроблений і розміщений на видному місці план евакуації людей і матеріальних цінностей при пожежі з яким ознайомлені працівники підприємства.

ВИСНОВКИ

У процесі виконання дипломної роботи було дослідження та проведений аналіз алгоритмів кодування даних. В процесі дослідження було створено систему для проведення аналізу алгоритмів кодування даних. Розроблена система дозволяє:

· проаналізувати властивості алгоритмів кодування даних;

· закодувати файл одним з 6 алгоритмів;

· розкодувати файл одним з 6 алгоритмів.

Щоб реалізувати поставлену задачу потрібно було обрати оптимальну мову програмування. Для вирішення цієї задачі найбільш підходить C#. Ця мова програмування має великі можливості щодо створення прикладного програмного забезпечення та дозволяє створювати різноманітні програмні продукти. Дана програма була створена за допомогою саме цієї мови програмування, що дозволило зробити зручний інтерфейс і автоматизувати виконання дій.

В ході досліджень було з'ясовано, що найбільш захищеним алгоритмом кодування є алгоритм Rijndeal, а алгоритмом хешування є SHA2.

Середовище розробки Visual Studio 2008 Express є унікальною системою, в якій технологія високопродуктивної оптимізуючої компіляції поєднується з візуальними засобами розробки.

Для створення додатків в Visual Studio 2008 Express використовується об'єктно-орієнтований підхід, що базується на застосуванні різних компонентів (візуальних і не візуальних), що забезпечує необмежену розширюваність і масштабованість. Visual Studio 2008 Express дозволяє розробнику швидко створювати і вільно поширювати додатки, що працюють істотно швидше і надійніше за попереднє покоління програмних продуктів, які будувалися за допомогою систем розробки, заснованих на коді, що інтерпретується.

Таким чином, середовище програмування Visual Studio 2008 Express є одним з визнаних лідерів серед візуальних систем програмування і могутнім інструментом для створення прикладних програмних систем.

СПИСОК ЛІТЕРАТУРИ

1. Бишоп Дж. C# в кратком изложении. -М.: Бином. Лаборатория знаний, 2005.

2. Гарнаев А.Ю. Самоучитель Visual Studio .NET 2003. - СПб.: БХВ-Петербург, 2003.

3. Грэхем И. Объектно ориентированные методы. - М.: Издательский дом "Вильямс", 2004.

4. Гуннерсон Э. Введение в C#. - СПб.: Питер, 2001.

5. Дубовцев А. Microsoft .Net в подлинеке. - СПб.: БВХ-Петербург, 2008.

6. Кариев Ч.А. Разработка Windows-приложений на основе Visual C# . БИНОМ. Лаборатория знаний, Интернет-университет информационных технологий - ИНТУИТ.ру, 2007.

7. Кент Бек. Экстремальное программировнаие. - СПб.: Питер, 2002.

8. Мартин Ф. Архитектура корпоративных программных приложений. - М.: Издательский дом "Вильямс", 2004.

9. Лапонина О.Р. Криптографические основы безопасности. -- М.: Интернет-университет информационных технологий - ИНТУИТ.ру, 2004. -- С. 320. -- ISBN 5-9556-00020-5

10. Нейлгел К., Ивьен Б., Глинн Дж. С# 2008 для профессионалов. -М.: Издательский дом "Вильямс", 2008.

11. Нильс Фергюсон, Брюс Шнайер Практическая криптография = Practical Cryptography: Designing and Implementing Secure Cryptographic Systems. -- М.: «Диалектика», 2004. -- 432 с. -- 3 000 экз. -- ISBN 5-8459-0733-0, ISBN 0-4712-2357-3

12. Петцольд Ч. Программирование для Microsoft Windows на C#. - М.: Русская Редакция, 2009.

13. Прайс Дж., Гандерлой М. Visual C# .NET : Пер. с англ. - М.: ВЕК+, 2005.

14. Прайс Дж. Visual C# .NET Полное руководство. - М.: ВЕК+, 2004.

15. Рихтер Дж.. Программирование на платформе Microsoft .Net Framework. - М.: Русская Редакция, 2007.

16. Робинсон С., Корнес О., Глинн Дж. С# для профессионалов. - М.: Лори, 2008.

17. Семенов Ю. А. Алгоритм DES.

18. Смайли Дж. Учимся программировать на C# вместе с Джоном Смайли. - СПб.: Диасофт-ЮП, 2008.

19. Троелсен Э. Язык программирования С# 2005 и платформа .Net 2.0. - М.: Издательский дом "Вильямс", 2007.

20. Троелсен Э. С# и платформа .NET. Библиотека программиста. - СПб.: Питер, 2004.

21. Фролов А.В. Язык C#. Самоучитель. - М.: Диалог-МИФИ, 2003.

22. Чакработи А., Кранти Ю., Сандху Р. Microsoft .NET Framework: разработка профессиональных проектов: Пер. с англ. - СПб.: БХВ-Петербург, 2006.

23. http://csrc.nist.gov/CryptoToolkit/aes/pre-round1/aes_9701.txt

24. http://www.nist.gov/public_affairs/releases/g00-176.htm

25. http://csrc.nist.gov/CryptoToolkit/aes/

26. http://homes.esat.kuleuven.be/~bosselae/ripemd160.html

27. http://homes.esat.kuleuven.be/~cosicart/pdf/AB-9601/ (Исходные коды)

28. http://www.intuit.ru //Интернет-университет информационных технологий

29. http://ru.wikipedia.org // Свободная Интернет-энциклопедия

30. http://www.rsdn.ru // Russian Software Developer Network

Додаток А

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.Security.Cryptography;

using System.IO;

namespace diplom

{

public partial class des : Form

{

//des

public static string key="", IV="";

public static int keysize = 0;

DateTime tim;

public static long output = 0;

public des()

{

InitializeComponent();

}

public void Encrypt(String inName, String outName)

{

FileStream fin = new FileStream(inName, FileMode.Open, FileAccess.Read);

FileStream fout = new FileStream(outName, FileMode.OpenOrCreate, FileAccess.Write);

fout.SetLength(0);

byte[] bin = new byte[100];

long rdlen = 0;

long totlen = fin.Length;

int len;

DESCryptoServiceProvider des = new DESCryptoServiceProvider();

CryptoStream encStream = new CryptoStream(fout, des.CreateEncryptor(), CryptoStreamMode.Write);

keysize = des.KeySize;

while (rdlen < totlen)

{

len = fin.Read(bin, 0, 100);

encStream.Write(bin, 0, len);

rdlen = rdlen + len;

}

output = fout.Length + des.Key.Length + des.IV.Length;

encStream.Close();

}

//

private static void EncryptData(String inName, String outName, String desKey, String desIV)

{

byte[] key, IV;

//Create the file streams to handle the input and output files.

FileStream fin = new FileStream(inName, FileMode.Open, FileAccess.Read);

FileStream fout = new FileStream(outName, FileMode.OpenOrCreate, FileAccess.Write);

FileStream fkey = new FileStream(desKey, FileMode.Open, FileAccess.Read);

FileStream fIV = new FileStream(desIV, FileMode.Open, FileAccess.Read);

fout.SetLength(0);

key = new byte[fkey.Length];

IV = new byte[fIV.Length];

fkey.Read(key, 0, (int)fkey.Length);

fIV.Read(IV, 0, (int)fIV.Length);

byte[] bin = new byte[100];

long rdlen = 0;

long totlen = fin.Length;

int len;

DESCryptoServiceProvider des = new DESCryptoServiceProvider();

CryptoStream encStream = new CryptoStream(fout, des.CreateEncryptor(key, IV), CryptoStreamMode.Write);

keysize = des.KeySize;

while (rdlen < totlen)

{

len = fin.Read(bin, 0, 100);

encStream.Write(bin, 0, len);

rdlen = rdlen + len;

}

encStream.Close();

output = fout.Length;

}

private static void DecryptData(String inName, String outName, String desKey, String desIV)

{

byte[] key, IV;

FileStream fin = new FileStream(inName, FileMode.Open, FileAccess.Read);

FileStream fkey = new FileStream(desKey, FileMode.Open, FileAccess.Read);

FileStream fIV = new FileStream(desIV, FileMode.Open, FileAccess.Read);

FileStream fout = new FileStream(outName, FileMode.OpenOrCreate, FileAccess.Write);

fout.SetLength(0);

key = new byte[fkey.Length];

IV = new byte[fIV.Length];

fkey.Read(key,0,(int)fkey.Length);

fIV.Read(IV, 0, (int)fIV.Length);

//Create variables to help with read and write.

byte[] bin = new byte[100]; //This is intermediate storage for the encryption.

long rdlen = 0; //This is the total number of bytes written.

long totlen = fin.Length; //This is the total length of the input file.

int len; //This is the number of bytes to be written at a time.

DESCryptoServiceProvider des = new DESCryptoServiceProvider();

CryptoStream encStream = new CryptoStream(fout, des.CreateDecryptor(key, IV), CryptoStreamMode.Write);

keysize = des.KeySize;

//Read from the input file, then encrypt and write to the output file.

while (rdlen < totlen)

{

len = fin.Read(bin, 0, 100);

encStream.Write(bin, 0, len);

rdlen = rdlen + len;

}

encStream.Close();

}

private void Form1_Load(object sender, EventArgs e)

{

}

private void button1_Click(object sender, EventArgs e)

{

saveFileDialog1.FileName = "";

saveFileDialog1.Filter = "DES key file| *.deskey";

if (saveFileDialog1.ShowDialog() == DialogResult.OK)

{

DESCryptoServiceProvider des = new DESCryptoServiceProvider();

des.GenerateKey();

keysize = des.KeySize;

key = saveFileDialog1.FileName;

FileStream fkey = new FileStream(saveFileDialog1.FileName, FileMode.Create, FileAccess.Write);

fkey.Write(des.Key, 0, des.Key.Length);

fkey.Close();

}

if (key != "" & IV != "")

{

panel1.Enabled = true;

}

}

private void button4_Click(object sender, EventArgs e)

{

saveFileDialog1.FileName = "";

saveFileDialog1.Filter = "DES IV file| *.desIV";

if (saveFileDialog1.ShowDialog() == DialogResult.OK)

{

DESCryptoServiceProvider des = new DESCryptoServiceProvider();

des.GenerateIV();

FileStream fiv = new FileStream(saveFileDialog1.FileName, FileMode.Create, FileAccess.Write);

IV = saveFileDialog1.FileName;

fiv.Write(des.IV, 0, des.IV.Length);

fiv.Close();

}

if (key != "" & IV != "")

{

panel1.Enabled = true;

}

}

private void button5_Click(object sender, EventArgs e)

{

openFileDialog1.FileName = "";

openFileDialog1.Filter = "DES key file| *.deskey";

if (openFileDialog1.ShowDialog() == DialogResult.OK)

{

key = openFileDialog1.FileName;

}

if (key != "" & IV != "")

{

panel1.Enabled = true;

}

}

private void button6_Click(object sender, EventArgs e)

{

openFileDialog1.FileName = "";

openFileDialog1.Filter = "DES IV file| *.desIV";

if (openFileDialog1.ShowDialog() == DialogResult.OK)

{

IV = openFileDialog1.FileName;

}

if (key != "" & IV != "")

{

panel1.Enabled = true;

}

}

private void button2_Click(object sender, EventArgs e)

{

openFileDialog1.FileName = "";

openFileDialog1.Filter = "All file| *.*";

saveFileDialog1.FileName = "";

saveFileDialog1.Filter = "DES file| *.des";

if (openFileDialog1.ShowDialog() == DialogResult.OK)

{

if (saveFileDialog1.ShowDialog() == DialogResult.OK)

{

tim=DateTime.Now;

EncryptData(openFileDialog1.FileName, saveFileDialog1.FileName,key,IV);

label1.Text = (DateTime.Now - tim).ToString();

}

}

}

private void button3_Click(object sender, EventArgs e)

{

openFileDialog1.FileName = "";

openFileDialog1.Filter = "DES file| *.des";

saveFileDialog1.FileName = "";

saveFileDialog1.Filter = "All file| *.*";

if (openFileDialog1.ShowDialog() == DialogResult.OK)

{

if (saveFileDialog1.ShowDialog() == DialogResult.OK)

{

tim = DateTime.Now;

DecryptData(openFileDialog1.FileName, saveFileDialog1.FileName, key, IV);

label2.Text = (DateTime.Now - tim).ToString();

}

}

}

}

}

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace diplom

{

public partial class Main : Form

{

DateTime tim;

public Main()

{

InitializeComponent();

}

private void tripleDESToolStripMenuItem_Click(object sender, EventArgs e)

{

tdes fm = new tdes();

fm.ShowDialog();

}

private void dESToolStripMenuItem_Click(object sender, EventArgs e)

{

des fm = new des();

fm.ShowDialog();

}

private void encodeToolStripMenuItem_Click(object sender, EventArgs e)

{

if (openFileDialog1.ShowDialog()==DialogResult.OK)

{

progressBar1.Value = 1;

tdes tdesf = new tdes();

progressBar1.Value = 2;

tim = DateTime.Now;

tdesf.Encrypt(openFileDialog1.FileName, openFileDialog1.FileName + "tdes");

label7.Text = (DateTime.Now - tim).ToString();

progressBar1.Value = 3;

label6.Text = tdes.keysize.ToString();

progressBar1.Value = 4;

label8.Text = tdes.output.ToString();

progressBar1.Value = 5;

tdesf.Dispose();

progressBar2.Value = 1;

des desf = new des();

progressBar2.Value = 2;

tim = DateTime.Now;

desf.Encrypt(openFileDialog1.FileName, openFileDialog1.FileName + "des");

label10.Text = (DateTime.Now - tim).ToString();

progressBar2.Value = 3;

label9.Text = des.keysize.ToString();

progressBar2.Value = 4;

label11.Text = des.output.ToString();

progressBar2.Value = 5;

desf.Dispose();

progressBar3.Value = 1;

rc2 rc2f = new rc2();

progressBar3.Value = 2;

tim = DateTime.Now;

rc2f.Encrypt(openFileDialog1.FileName, openFileDialog1.FileName + "rc2");

label16.Text = (DateTime.Now - tim).ToString();

progressBar3.Value = 3;

label15.Text = rc2.keysize.ToString();

progressBar3.Value = 4;

label17.Text = rc2.output.ToString();

progressBar3.Value = 5;

rc2f.Dispose();

progressBar4.Value = 1;

Rijnder rijf = new Rijnder();

progressBar4.Value = 2;

tim = DateTime.Now;

rijf.Encrypt(openFileDialog1.FileName, openFileDialog1.FileName + "rij");

label22.Text = (DateTime.Now - tim).ToString();

progressBar4.Value = 3;

label21.Text = Rijnder.keysize.ToString();

progressBar4.Value = 4;

label23.Text = Rijnder.output.ToString();

progressBar4.Value = 5;

rijf.Dispose();

progressBar5.Value = 1;

RIPEMD160 ripf = new RIPEMD160();

progressBar5.Value = 2;

tim = DateTime.Now;

ripf.Hash(openFileDialog1.FileName, openFileDialog1.FileName + "rip");

label28.Text = (DateTime.Now - tim).ToString();

progressBar5.Value = 3;

label27.Text = RIPEMD160.keysize.ToString();

progressBar5.Value = 4;

label29.Text = RIPEMD160.output.ToString();

progressBar5.Value = 5;

ripf.Dispose();

progressBar6.Value = 1;

SHA512 shaf = new SHA512();

progressBar6.Value = 2;

tim = DateTime.Now;

shaf.Hash(openFileDialog1.FileName, openFileDialog1.FileName + "sha");

label34.Text = (DateTime.Now - tim).ToString();

progressBar6.Value = 3;

label33.Text = SHA512.keysize.ToString();

progressBar6.Value = 4;

label35.Text = SHA512.output.ToString();

progressBar6.Value = 5;

shaf.Dispose();

}

}

private void rijnderToolStripMenuItem_Click(object sender, EventArgs e)

{

Rijnder fm = new Rijnder();

fm.ShowDialog();

}

private void mD5ToolStripMenuItem_Click(object sender, EventArgs e)

{

RIPEMD160 fm = new RIPEMD160();

fm.ShowDialog();

}

private void rSAToolStripMenuItem_Click(object sender, EventArgs e)

{

SHA512 fm = new SHA512();

fm.ShowDialog();

}

private void saveFilToolStripMenuItem_Click(object sender, EventArgs e)

{

Application.Exit();

}

private void rC2ToolStripMenuItem_Click(object sender, EventArgs e)

{

rc2 fm = new rc2();

fm.ShowDialog();

}

}

}

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Security.Cryptography;

using System.IO;

namespace diplom

{

public partial class rc2 : Form

{

public static string key = "", IV = "";

public static int keysize = 0;

public static long output=0;

DateTime tim;

public rc2()

{

InitializeComponent();

}

//

public void Encrypt(String inName, String outName)

{

FileStream fin = new FileStream(inName, FileMode.Open, FileAccess.Read);

FileStream fout = new FileStream(outName, FileMode.OpenOrCreate, FileAccess.Write);

fout.SetLength(0);

byte[] bin = new byte[100];

long rdlen = 0;

long totlen = fin.Length;

int len;

RC2CryptoServiceProvider rc2 = new RC2CryptoServiceProvider();

CryptoStream encStream = new CryptoStream(fout, rc2.CreateEncryptor(), CryptoStreamMode.Write);

keysize = rc2.KeySize;

while (rdlen < totlen)

{

len = fin.Read(bin, 0, 100);

encStream.Write(bin, 0, len);

rdlen = rdlen + len;

}

output = fout.Length + rc2.Key.Length + rc2.IV.Length;

encStream.Close();

}

//

private static void EncryptData(String inName, String outName, String desKey, String desIV)

{

byte[] key, IV;

FileStream fin = new FileStream(inName, FileMode.Open, FileAccess.Read);

FileStream fout = new FileStream(outName, FileMode.OpenOrCreate, FileAccess.Write);

FileStream fkey = new FileStream(desKey, FileMode.Open, FileAccess.Read);

FileStream fIV = new FileStream(desIV, FileMode.Open, FileAccess.Read);

fout.SetLength(0);

key = new byte[fkey.Length];

IV = new byte[fIV.Length];

fkey.Read(key, 0, (int)fkey.Length);

fIV.Read(IV, 0, (int)fIV.Length);

byte[] bin = new byte[100];

long rdlen = 0;

long totlen = fin.Length;

int len;

RC2CryptoServiceProvider rc2 = new RC2CryptoServiceProvider();

CryptoStream encStream = new CryptoStream(fout, rc2.CreateEncryptor(key, IV), CryptoStreamMode.Write);

keysize = rc2.KeySize;

while (rdlen < totlen)

{

len = fin.Read(bin, 0, 100);

encStream.Write(bin, 0, len);

rdlen = rdlen + len;

}

encStream.Close();

output = fout.Length;

}

private static void DecryptData(String inName, String outName, String desKey, String desIV)

{

byte[] key, IV;

FileStream fin = new FileStream(inName, FileMode.Open, FileAccess.Read);

FileStream fkey = new FileStream(desKey, FileMode.Open, FileAccess.Read);

FileStream fIV = new FileStream(desIV, FileMode.Open, FileAccess.Read);

FileStream fout = new FileStream(outName, FileMode.OpenOrCreate, FileAccess.Write);

fout.SetLength(0);

key = new byte[fkey.Length];

IV = new byte[fIV.Length];

fkey.Read(key, 0, (int)fkey.Length);

fIV.Read(IV, 0, (int)fIV.Length);

byte[] bin = new byte[100];

long rdlen = 0;

long totlen = fin.Length;

int len;

RC2CryptoServiceProvider rc2 = new RC2CryptoServiceProvider();

CryptoStream encStream = new CryptoStream(fout, rc2.CreateDecryptor(key, IV), CryptoStreamMode.Write);

keysize = rc2.KeySize;

while (rdlen < totlen)

{

len = fin.Read(bin, 0, 100);

encStream.Write(bin, 0, len);

rdlen = rdlen + len;

}

encStream.Close();

}

private void button1_Click(object sender, EventArgs e)

{

saveFileDialog1.FileName = "";

saveFileDialog1.Filter = "RC2 key file| *.rc2key";

if (saveFileDialog1.ShowDialog() == DialogResult.OK)

{

RC2CryptoServiceProvider rc2 = new RC2CryptoServiceProvider();

rc2.GenerateKey();

keysize = rc2.KeySize;

key = saveFileDialog1.FileName;

FileStream fkey = new FileStream(saveFileDialog1.FileName, FileMode.Create, FileAccess.Write);

fkey.Write(rc2.Key, 0, rc2.Key.Length);

fkey.Close();

}

if (key != "" & IV != "")

{

panel2.Enabled = true;

}

}

private void button2_Click(object sender, EventArgs e)

{

saveFileDialog1.FileName = "";

saveFileDialog1.Filter = "RC2 IV file| *.rc2IV";

if (saveFileDialog1.ShowDialog() == DialogResult.OK)

{

RC2CryptoServiceProvider rc2 = new RC2CryptoServiceProvider();

rc2.GenerateIV();

FileStream fiv = new FileStream(saveFileDialog1.FileName, FileMode.Create, FileAccess.Write);

IV = saveFileDialog1.FileName;

fiv.Write(rc2.IV, 0, rc2.IV.Length);

fiv.Close();

}

if (key != "" & IV != "")

{

panel2.Enabled = true;

}

}

private void button3_Click(object sender, EventArgs e)

{

openFileDialog1.FileName = "";

openFileDialog1.Filter = "RC2 key file| *.rc2key";

if (openFileDialog1.ShowDialog() == DialogResult.OK)

{

key = openFileDialog1.FileName;

}

if (key != "" & IV != "")

{

panel2.Enabled = true;

}

}

private void button4_Click(object sender, EventArgs e)

{

openFileDialog1.FileName = "";

openFileDialog1.Filter = "RC2 IV file| *.rc2IV";

if (openFileDialog1.ShowDialog() == DialogResult.OK)

{

IV = openFileDialog1.FileName;

}

if (key != "" & IV != "")

{

panel2.Enabled = true;

}

}

private void button5_Click(object sender, EventArgs e)

{

openFileDialog1.FileName = "";

openFileDialog1.Filter = "All file| *.*";

saveFileDialog1.FileName = "";

saveFileDialog1.Filter = "RC2 file| *.rc2";

if (openFileDialog1.ShowDialog() == DialogResult.OK)

{

if (saveFileDialog1.ShowDialog() == DialogResult.OK)

{

tim = DateTime.Now;

EncryptData(openFileDialog1.FileName, saveFileDialog1.FileName, key, IV);

label1.Text = (DateTime.Now - tim).ToString();

}

}

}

private void button6_Click(object sender, EventArgs e)

{

openFileDialog1.FileName = "";

openFileDialog1.Filter = "RC2 file| *.rc2";

saveFileDialog1.FileName = "";

saveFileDialog1.Filter = "All file| *.*";

if (openFileDialog1.ShowDialog() == DialogResult.OK)

{

if (saveFileDialog1.ShowDialog() == DialogResult.OK)

{

tim = DateTime.Now;

DecryptData(openFileDialog1.FileName, saveFileDialog1.FileName, key, IV);

label2.Text = (DateTime.Now - tim).ToString();

}

}

}

}

}

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Security.Cryptography;

using System.IO;

namespace diplom

{

public partial class Rijnder : Form

{

//rijnder

public static string key = "", IV = "";

public static int keysize = 0;

DateTime tim;

public static long output = 0;

public Rijnder()

{

InitializeComponent();

}

//

public void Encrypt(String inName, String outName)

{

FileStream fin = new FileStream(inName, FileMode.Open, FileAccess.Read);

FileStream fout = new FileStream(outName, FileMode.OpenOrCreate, FileAccess.Write);

fout.SetLength(0);

byte[] bin = new byte[100];

long rdlen = 0;

long totlen = fin.Length;

int len;

RijndaelManaged rij = new RijndaelManaged();

CryptoStream encStream = new CryptoStream(fout, rij.CreateEncryptor(), CryptoStreamMode.Write);

keysize = rij.KeySize;

while (rdlen < totlen)

{

len = fin.Read(bin, 0, 100);

encStream.Write(bin, 0, len);

rdlen = rdlen + len;

}

output = fout.Length + rij.Key.Length + rij.IV.Length;

encStream.Close();

}

//

private static void EncryptData(String inName, String outName, String desKey, String desIV)

{

byte[] key, IV;

//Create the file streams to handle the input and output files.

FileStream fin = new FileStream(inName, FileMode.Open, FileAccess.Read);

FileStream fout = new FileStream(outName, FileMode.OpenOrCreate, FileAccess.Write);

FileStream fkey = new FileStream(desKey, FileMode.Open, FileAccess.Read);

FileStream fIV = new FileStream(desIV, FileMode.Open, FileAccess.Read);

fout.SetLength(0);

key = new byte[fkey.Length];

IV = new byte[fIV.Length];

fkey.Read(key, 0, (int)fkey.Length);

fIV.Read(IV, 0, (int)fIV.Length);

//Create variables to help with read and write.

byte[] bin = new byte[100]; //This is intermediate storage for the encryption.

long rdlen = 0; //This is the total number of bytes written.

long totlen = fin.Length; //This is the total length of the input file.

int len; //This is the number of bytes to be written at a time.

RijndaelManaged reij = new RijndaelManaged();

CryptoStream encStream = new CryptoStream(fout, reij.CreateEncryptor(key, IV), CryptoStreamMode.Write);

keysize = reij.KeySize;

//Read from the input file, then encrypt and write to the output file.

while (rdlen < totlen)

{

len = fin.Read(bin, 0, 100);

encStream.Write(bin, 0, len);

rdlen = rdlen + len;

}

encStream.Close();

output = fout.Length;

}

private static void DecryptData(String inName, String outName, String desKey, String desIV)

{

byte[] key, IV;

//Create the file streams to handle the input and output files.

FileStream fin = new FileStream(inName, FileMode.Open, FileAccess.Read);

FileStream fkey = new FileStream(desKey, FileMode.Open, FileAccess.Read);

FileStream fIV = new FileStream(desIV, FileMode.Open, FileAccess.Read);

FileStream fout = new FileStream(outName, FileMode.OpenOrCreate, FileAccess.Write);

fout.SetLength(0);

key = new byte[fkey.Length];

IV = new byte[fIV.Length];

fkey.Read(key, 0, (int)fkey.Length);

fIV.Read(IV, 0, (int)fIV.Length);

//Create variables to help with read and write.

byte[] bin = new byte[100]; //This is intermediate storage for the encryption.

long rdlen = 0; //This is the total number of bytes written.

long totlen = fin.Length; //This is the total length of the input file.

int len; //This is the number of bytes to be written at a time.

RijndaelManaged reij = new RijndaelManaged();

CryptoStream encStream = new CryptoStream(fout, reij.CreateDecryptor(key, IV), CryptoStreamMode.Write);

keysize = reij.KeySize;

//Read from the input file, then encrypt and write to the output file.

while (rdlen < totlen)

{

len = fin.Read(bin, 0, 100);

encStream.Write(bin, 0, len);

rdlen = rdlen + len;

}

encStream.Close();

}

private void button1_Click(object sender, EventArgs e)

{

saveFileDialog1.FileName = "";

saveFileDialog1.Filter = "RIJNDAEL key file| *.rijkey";

if (saveFileDialog1.ShowDialog() == DialogResult.OK)

{

RijndaelManaged rij = new RijndaelManaged();

rij.GenerateKey();


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

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