*великий розмір ансамблю послідовностей, що формуються на одній алгоритмічній основі;
*оптимальність кореляційних функцій в ансамблі;
*збалансованість структури;
*максимальність періоду для даної довжини регістра зрушення.
ЛРР є зсувним регістром з лінійними зворотними зв'язками (схема роботи представлена на Схемі 3), в якому вхідний сигнал утворюється в результаті складання по модулю 2 декількох фіксованих розрядів. В результаті утворюється вихідний сигнал у вигляді ПСП «0» і «1». Цей «шум» володіє цікавою властивістю: після події деякого часу, визначуваного довжиною регістра, він в точності повторюється (регістр максимальної довжини n перед повторенням проходить через 2n-1 стан). Тобто утворюються циклічні або кільцеві ПСДП.
Кожному лінійному рекурентному регістру довжиною n розрядів можна зіставити поліном зворотних зв'язків h(x) з двійковими коефіцієнтами.
Якщо поліном h(x) - примітивний, то довжина послідовності, ЛРР, що генерується, максимальна.
Така послідовність називається послідовністю максимальної довжини для зсувного регістра (Maximal Length Shift Register Sequence - MLSRS). Пітерсон і Уелдон показали, що при будь-якому цілому існує n-бітування послідовність MLSRS з періодом. Зокрема, при послідовність матиме період і не повториться років при передачі її по лінії зв'язку із швидкістю 1Мбит/с.
Слід зазначити, що для MLSRS, по-перше, розподіл
«1» і «0» близько до рівномірного, наскільки це можливо при проходженні повного
циклу (кількість «0» відрізняється від «1» на 1). По-друге, якщо розглянути в
одному циклі серії послідовних бітів, то половина серій з «1» довжину 1 ј серій
- довжину 2,1/8 - довжину 3 і так далі Ця властивість розповсюджується на серії
з «0», с обліком пропущеного. Це говорить про те, що вірогідність появи «1» і
«0» не залежить від результату попереднього досвіду. І, по-третє, якщо
послідовність повного циклу порівняти з цією ж послідовністю, але циклічно
зрушеною на будь-яке число бітів (не рівне нулю або довжині До), то число не
спів падань буде на одиницю більше, ніж число збігів. Всі ці властивості
послідовності максимальної довжини свідчать про рівномірність розподілу
випадкових чисел в цих послідовностях. [ВІТІ НТУУ «КПІ», Збірник праць №2, - Київ, ВІТІ,
2007, c 101-109]
3. Вимоги до програмного продукту
Вимоги розроблено відповідно до п. 20 статті 8 Закону України «Про державне регулювання ринку цінних паперів в Україні», з урахуванням існуючих міжнародних стандартів ISO 9000, ISO 9001, ISO 15022 та державних стандартів України класу 35.80 «Розроблення програмного забезпечення і системна документація».
Ці вимоги поширюються на програмні продукти, які створюються і/або використовуються професійними учасниками ринку цінних паперів та інститутами спільного інвестування при здійсненні професійної діяльності та визначають вимоги до таких програмних продуктів (далі - програмні продукти). Вимоги розповсюджуються на всі програмні продукти, які використовуються для формування електронних форм подання до Державної комісії з цінних паперів та фондового ринку (далі - Комісія) адміністративних даних різних видів та іншої інформації.
Вимоги:
. Розробка програмного продукту, який призначено для використання на фондовому ринку України, створюється на підставі технічного завдання. Технічне завдання на розробку програмного продукту створюється відповідно до нормативного документа Комісії, яким урегульовані питання, програмна реалізація яких потрібна.
. Програмний продукт повинен бути створений на ліцензійному програмному забезпеченні (з використанням ліцензійних засобів розробника), якщо це передбачено чинним законодавством.
. Документація до програмного продукту повинна мати опис процедури резервного копіювання та відновлення інформації баз даних.
. Механізми захисту інформації, які містить
програмний продукт, повинні реалізуватися відповідно до національних
нормативно-правових актів захисту інформації або міжнародних стандартів.
4. Схема алгоритму програми
Для правильного та якісного виконання курсової роботи потрібно перш за все скласти алгоритм. В нашому випадку це блок-схема програми шифратора (дешифратора).
Блок-схема складається також для пояснення структури програми. Кожен блок в схемі відповідає окремій дії у програмі. Для зручності в схемі використані слова з самого тексту програми.
Для використання програми необхідно виконати ряд вимог:
. У папці, в якій міститься програма необхідно створити файл, в якому має зберегтися зашифрований текст;
. Текст та ключ вводиться з клавіатури;
. Довжина повідомлення - 30 символів, ключа - 21 символ.
. Після вводу тексту та ключа, потрібно вказати
адресу файлу куди його треба зберігати, наприклад: file.txt, цей файл повинен
знаходитись в одній папці.
5. Текст програми
програма шифрування алгоритм гамування
#include<stdio.h>i, k, r, ms, u, j;char m[30], l[7];char bit[7]={0,0,0,0,0,0,0};char byte[7]={64,32,16,8,4,2,1};char reg[21], key[21];*fp1;f1 [8];()
{();
/*Ведення даних*/(«=================================»);(«\n Programma KODIROVANIA»);(«\n=================================\n\n»);(«\n Vedite message \n»);(m);(«\n Vedite key \n»);(«%s», key);(«\n Vvedite kolichestvo simvolov \n»);(«%d»,&u);(«\n Vedite name file kuda kodirovat=»);(«%s», f1);
/*===================================*/(i=0; i<21; i++)
{[i]=key[i];
}((fp1=fopen («f1.txt», «w»))==NULL)
{(«\n Nevozmozhno open file \n»);fin;
}
/*Шифратор*/(k=0; k<u; k++)
{=m[k];(i=0; i<7; i++)
{[i]= r & byte[i];(bit[i]!=0) bit[i]=1;[i]=bit[i]^reg[20];(fp1, «%c», l[i]);
/*Генератор гами*/
ms=(reg[2]+reg[5]+reg[7]+reg[13]+reg[20])%2; (j=21; j>0; j-)
{[j]=reg [j-1];=reg[0];
}
/*===========================*/
}}
/*============================*/:;();(stdout);();
}
6. Опис роботи програми
Дана програма призначена для криптографічного шифрування повідомлення методом гамування за допомогою лінійного рекурентного регістру. Для коректної роботи програми необхідно у папку, в якій міститься програма необхідно створити файл, в якому має зберегтися зашифроване повідомлення. Потім необхідно запустити програму. На екрані появиться «vvedite SOOBSHЕNIE», на наступному рядку вводимо повідомлення англійською мовою повідомлення, яке складається з 30 символів.
Потім на екрані з’явиться «vvedite kolichestvo bukv», де користувач повинен ввести кількість символів у повідомленні, враховуючи пропуски.
Потім на екрані з’явиться «vvedite kuda kodirovat». На наступному рядку вказуємо адресу файлу у який треба зберегти зашифроване повідомлення, наприклад: «file1.txt».
На цьому робота користувача закінчується. Далі працює машина.
Далі іде цикл ключа та регістру, в якому значення ключа привласнюється значенню регістра.
Далі іде умовний оператор, який перевіряє правильність адреси файлу у який потрібно зберегти зашифроване повідомлення. Якщо адреса не підходить за умовою, то програма за допомогою без умовного оператора зупиняє свою роботу.
Якщо адреса підходить за умовою, то починає працювати цикл, в якому кожний символ повідомлення, переводиться у бітову комбінацію та сумується побітово з ключем регістру по модулю 2 за допомогою лінійного рекурентного регістра. Потім просумуємо за модулем два ключа та просумовану у ЛРР комбінацію. Потім те, що вийшло запишемо у файл. Далі іде цикл зсуву регістру, який з кожним кроком регістр зсувається на одну позицію.
Це усе вищесказане іде стільки разів, скільки введено букв. Далі іде закриття усіх файлів, очистка буферу екрану та затримка екрану.
Після всього цього у вказаному вище текстовому
файлі отримаємо комбінацію одиниць та нулів. Коли цю комбінацію відправимо на
дешифратор та введемо такий же ключ, то екран виведе зашифроване повідомлення.
Висновки
При виконанні цього курсового проекту було закріплено та поглиблено знання з навчальної дисципліни «Алгоритмізація та програмування». Також під час написання програми було удосконалено навички імперативного програмування алгоритмічною мовою високого рівня, були сформовані практичні навички проектування та дослідження програмного забезпечення інформаційних систем. Під час підготовки даного проекту було відпрацьоване правильне оформлення технічної документації на програмні продукти.
Під час написання курсового проекту було вивчено
основи криптографії та криптографічні системи, а саме симетричні системи
шифрування - це шифрування, де ключ шифрування повинен бути ідентичним ключу
дешифрування, та системи з відкритим ключем або асиметричні - це системи коли
кожна сторона мала ключову пару: секретний ключ, який не повинен бути розкритий
іншому користувачеві, і загальний ключ, який може бути доступним у загальному
каталозі. Ці два ключі пов'язані жорсткої односторонньою функцією, так що в
обчислювальному відношенні нездійсненно визначити секретний ключ від загального
ключа. Вивчили різновиди крипто-аналітичних атак та засоби захисту від них.
Метод гамування, на даний момент, є одним із найпростішим та одним з
найефективнішим метод шифрування. Гамування - це процес накладення за певним
законом гами шифру на відкриті дані. Під гамою шифру розуміється
псевдовипадкова двійкова послідовність, що виробляється за заданим алгоритмом,
для зашифровування відкритих даних і розшифрування зашифрованих даних. Режим
гамування на лінійному рекурентному регістрі дозволяє гаму, яку накладаємо на
повідомлення, змінити так, що без ключа дане повідомлення не прочитати.
Список використаної літератури
1. Рябко Б.Я., Фионов А.Н. Криптографические методы защиты информации. - Москва. - Изд-во Горяч. Линия-Телеком, 2010.
. Сыпченко Р.П. - «Основы алгоритмизации задач и управления» 2009
3. Фридман «Основы Си»
. Сайт «wikipedia»
5. ВІТІ НТУУ «КПІ», Збірник праць №2, - Київ, ВІТІ, 2009.
. Сайт «kriptograf.ru»