Слово логіка означає сукупність правил, яким підпорядковується процес мислення. Сам термін "логіка" походить від давньогрецького logos, що означає "слово, думка, поняття, міркування, закон". Формальна логіка - наука про форми і закони мислення. Закони логіки відображають у свідомості людини властивості, зв'язки і відносини об'єктів навколишнього світу. Логіка як наука дозволяє будувати формальні моделі навколишнього світу, відволікаючись від змістовної сторони. Основними формами мислення є поняття, судження і умовиводи.
Поняття - це форма мислення, яка виділяє істотні ознаки предмета або класу предметів, що відрізняють його від інших. Наприклад, комп'ютер, людина, учні.
Судження - це форма мислення, в якій стверджується або заперечується зв'язок між предметом і його ознакою, відносини між предметами або факт існування предмета і яка може бути або істинною, або хибною. Мовною формою вираження судження є оповідної пропозицію. Знаки запитання й спонукальні пропозиції судженнями не є.
Судження розглядаються не з точки зору їхнього змісту і змісту, а тільки з точки зору їх істинності чи хибності. Справжнім буде судження, в якому зв'язок понять правильно відображає властивості і відносини реальних об'єктів. "Двічі по два дорівнює чотирьом" - істинне судження, а ось "Процесор призначений для друку" - помилкове. Судження можуть бути простими і складними. "Весна наступила, і граки прилетіли" - складне судження, що складається з двох простих. Прості судження (висловлювання) висловлюють зв'язок двох понять. Складні - складаються з декількох простих суджень.
Умовивід - прийом мислення, що дозволяє на основі одного або кількох суджень-посилок отримати нове судження (знання або висновок).
Прикладами умовиводів є докази теорем в геометрії. Посилками умовиводи за правилами формальної логіки можуть бути тільки істинні судження. Тоді і умовивід буде істинним. Інакше можна прийти до помилкового висновку.
Математична логіка вивчає питання застосування математичних методів для вирішення логічних завдань і побудови логічних схем, які лежать в основі роботи будь-якого комп'ютера. Судження в математичній логіці називають висловлюваннями ілілогіческімі виразами. Подібно до того, як для опису дій над змінними був розроблений розділ математики алгебра, так і для обробки логічних виразів в математичній логіці була створена алгебра висловлювань, або алгебра логіки.
Криптографічні методи захисту інформації
Те, що інформація має цінність, люди усвідомили дуже давно - недарма листування сильних світу цього здавна була об'єктом пильної уваги їх недругів і друзів. Тоді-то і виникла задача захисту цієї листування від надмірно цікавих очей. Стародавні намагалися використовувати для вирішення цього завдання найрізноманітніші методи, і одним з них була тайнопис - вміння складати повідомлення таким чином, щоб його зміст був недоступний нікому крім посвячених у таємницю. Є свідчення того, що мистецтво тайнопису зародилося ще в доантичной часи. Протягом усієї своєї багатовікової історії, аж до зовсім недавнього часу, це мистецтво служило небагатьом, в основному верхівці суспільства, не виходячи за межі резиденцій глав держав, посольств і - звичайно ж - розвідувальних місій. І лише кілька десятиліть тому все змінилося докорінно - інформація набула самостійну комерційну цінність і стала широко поширеним, майже звичайним товаром. Її виробляють, зберігають, транспортують, продають і купують, а значить - крадуть і підробляють - і, отже, її необхідно захищати. Сучасне суспільство все більшою мірою стає інформаційно-обумовленим, успіх будь-якого виду діяльності все сильніше залежить від володіння певними відомостями і від відсутності їх у конкурентів. І чим сильніше проявляється зазначений ефект, тим більше потенційні збитки від зловживань в інформаційній сфері, і тим більше потреба в захисті інформації.
Серед усього спектру методів захисту даних від небажаного доступу особливе місце займають криптографічні методи. На відміну від інших методів, вони спираються лише на властивості самої інформації і не використовують властивості її матеріальних носіїв, особливості вузлів її обробки, передачі і зберігання.
Широке застосування комп'ютерних технологій і постійне збільшення обсягу інформаційних потоків викликає постійне зростання інтересу до криптографії. Останнім часом збільшується роль програмних засобів захисту інформації, просто модернізуються що не вимагають великих фінансових витрат в порівнянні з апаратними криптосистемами. Сучасні методи шифрування гарантують практично абсолютний захист даних, але завжди залишається проблема надійності їх реалізації.
Свідченням ненадійності може бути весь час з'являється в комп'ютерному світі інформація про помилки або "дірки" в тій чи іншій програмі (в т.ч. застосовує криптоалгоритми), або про те, що вона була зламана. Це створює недовіру, як до конкретних програм, так і до можливості взагалі захистити що-небудь криптографічними методами не тільки від спецслужб, але і від простих хакерів. Тому знання атак і дірок в криптосистемах, а також розуміння причин, за якими вони мали місце, є одним з необхідних умов розробки захищених систем і їх використання.
В даний час особливо актуальною стала оцінка вже використовуваних криптоалгоритмів. Завдання визначення ефективності засобів захисту найчастіше більш трудомістка, ніж їх розробка, вимагає наявності спеціальних знань і, як правило, більш високої кваліфікації, ніж задача розробки. Це обставини призводять до того, що на ринку з'являється безліч засобів криптографічного захисту інформації, про які ніхто не може сказати нічого певного. При цьому розробники тримають криптоалгоритм (як показує практика, часто нестійкий) в секреті. Однак завдання точного визначення даного криптоалгоритму не може бути гарантовано складної хоча б тому, що він відомий розробникам. Крім того, якщо порушник знайшов спосіб подолання захисту, то не в його інтересах про це заявляти. Тому суспільству має бути вигідно відкрите обговорення безпеки систем захисту інформації масового застосування, а приховування розробниками криптоалгоритму повинно бути неприпустимим.
Криптографія і шифрування
Що таке шифрування
Шифрування - це спосіб зміни повідомлення або іншого документа, що забезпечує спотворення (приховування) його вмісту. (Кодування - це перетворення звичайного, зрозумілого, тексту в код. При цьому мається на увазі, що існує взаємно однозначна відповідність між символами тексту (даних, чисел, слів) і символьного коду - в цьому принципова відмінність кодування від шифрування. Часто кодування і шифрування вважають одним і тим же, забуваючи про те, що для відновлення закодованого повідомлення, досить знати правило підстановки (заміни). для відновлення ж зашифрованого повідомлення крім знання правил шифрування, потрібно і ключ до шифру. ключ онімается нами як конкретне секретне стан параметрів алгоритмів шифрування і дешифрування. Знання ключа дає можливість прочитання секретного повідомлення. Втім, як ви побачите нижче, далеко не завжди незнання ключа гарантує те, що повідомлення не зможе прочитати стороння людина.). Шифрувати можна не тільки текст, а й різні комп'ютерні файли - від файлів баз даних і текстових процесорів до файлів зображень.
Шифрування використовується людством з того самого моменту, як з'явилася перша секретна інформація, т. Е. Така, доступ до якої повинен бути обмежений.
Один з найвідоміших методів шифрування носить ім'я Цезаря, який якщо і не сам його винайшов, то активно ним користувався. Не довіряючи своїм посильним, він шифрував листи елементарної заміною А на D, В на Е і так далі по всьому латинському алфавіту. При такому кодуванні комбінація XYZ була б записана як АВС, а слово «ключ» перетворилося б в неоковирне «ноб'» (прямий код N + 3).
Через 500 років шифрування стало повсюдно використовуватися при залишенні текстів релігійного змісту, молитов і важливих державних документів.
З доби середньовіччя і до наших днів необхідність шифрування військових, дипломатичних і державних документів стимулювало розвиток криптографії. Сьогодні потреба в коштах, які забезпечують безпеку обміну інформацією, багаторазово зросла.
Більшість з нас постійно використовують шифрування, хоча і не завжди знають про це. Якщо у вас встановлена операційна система Microsoft, то знайте, що Windows зберігає про вас (як мінімум) наступну секретну інформацію:
• паролі для доступу до мережевих ресурсів (домен, принтер, комп'ютери в мережі і т.п.);
• паролі для доступу в Інтернет за допомогою DialUр;
• кеш паролів (в браузері є така функція - кешувати паролі, і Windows зберігає всі коли-небудь вводяться вами в Інтернеті паролі);
• сертифікати для доступу до мережевих ресурсів і зашифрованих даних на самому комп'ютері.
Основні поняття і визначення криптографії
Отже, криптографія дає можливість перетворити інформацію таким чином, що її прочитання (відновлення) можливе тільки при знанні ключа.
Перерахую спочатку деякі основні поняття і визначення.
Алфавіт - кінцеве безліч використовуваних для кодування інформації знаків.
Текст - упорядкований набір з елементів алфавіту.
Як приклади алфавітів, що використовуються в сучасних ІС можна навести наступні:
· Алфавіт Z33 - 32 літери російського алфавіту і пробіл;
· Алфавіт Z256 - символи, що входять в стандартні коди ASCII і КОИ-8;
· Восьмеричний алфавіт або шістнадцятковий алфавіт;
Шифрування - перетворюючі процес: вихідний текст, який носить також назву відкритого тексту, замінюється шифрованих текстом.
Дешифрування - зворотний процес шифрування. На основі ключа шифрований текст перетвориться у вихідний.
Ключ - інформація, необхідна для безперешкодного шифрування і дешифрування текстів.
Криптографічний система являє собою сімейство T перетворень відкритого тексту. xлени цього сімейства індексуються, або позначаються символом k; параметр k є ключем. Простір ключів K - це набір можливих значень ключа. Зазвичай ключ являє собою послідовний ряд букв алфавіту.
Криптосистеми поділяються на симетричні і з відкритим ключем (або асімметрічесскіе).
У симетричних криптосистемах і для шифрування, і для дешифрування використовується один і той же ключ.
У системах з відкритим ключем використовуються два ключі - відкритий і закритий, які математично пов'язані один з одним. Інформація шифрується за допомогою відкритого ключа, що доступний усім бажаючим, а розшифровується за допомогою закритого ключа, відомого тільки одержувачу повідомлення.
Криптостойкостью називається характеристика шифру, що його стійкість до дешифрування без знання ключа (тобто криптоаналіз). Є кілька показників криптостійкості, серед яких:
· Кількість всіх можливих ключів;
· Середній час, необхідний для криптоаналізу.
Перетворення Tk визначається відповідним алгоритмом і значенням параметра k. Ефективність шифрування з метою захисту інформації залежить від збереження таємниці ключа і криптостійкості шифру.
Процес криптографічного закриття даних може здійснюватися як програмно, так і апаратно. Апаратна реалізація відрізняється істотно більшою вартістю, однак їй властиві і переваги: висока продуктивність, простота, захищеність і т.д. Програмна реалізація більш практична, допускає відому гнучкість у використанні.
Для сучасних криптографічних систем захисту інформації сформульовані наступні загальноприйняті вимоги:
· Зашифроване повідомлення повинно піддаватися читання тільки при наявності ключа;
· Число операцій, необхідних для визначення використаного ключа шифрування за фрагментом шифрованого повідомлення і відповідного йому відкритого тексту,
· Має бути не менше загального числа можливих ключів;
· Число операцій, необхідних для розшифрування інформації шляхом перебору всіляких ключів повинно мати строгу нижню оцінку і виходити за межі можливостей сучасних комп'ютерів (з урахуванням можливості використання мережевих обчислень);
· Знання алгоритму шифрування не повинно впливати на надійність захисту;
· Незначна зміна ключа повинно приводити до істотної зміни виду зашифрованого повідомлення навіть при використанні одного і того ж ключа;
· Структурні елементи алгоритму шифрування повинні бути незмінними;
· Додаткові біти, що вводяться в повідомлення в процесі шифрування, повинен бути повністю та надійно сховані в зашифрованому тексті;
· Довжина шифрованого тексту повинна бути рівною довжині вихідного тексту;
· Не повинно бути простих і легко встановлюваних залежністю між ключами, послідовно використовуваними в процесі шифрування;
· Будь-який ключ з безлічі можливих повинен забезпечувати надійний захист інформації;
· Алгоритм повинен допускати як програмну, так і апаратну реалізацію, при цьому зміна довжини ключа не повинно вести до якісного погіршення алгоритму шифрування.