Історія виникнення та застосування шифрування

Електpoннa пyблiкaцiя

Черкаський деpжaвний технoлoгiчний yнiвеpситет

Кафедра iнфopмaтики, iнфopмaцiйнoї безпеки тa дoкyментознавства

Валентина Кунченко-Харченко, Ігор Огірко, Білоус Олександр

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

1. Шифрування публічним ключем

Алгоритм шифрування, що застосовується сьогодні в різних модифікаціях буквально у всіх комп'ютерних системах. Є два ключі: відкритий і секретний.Відкритий ключ - це якесь дуже велике число, що має тільки два дільника, крім одиниці і самого себе. Ці два подільника є секретним ключем, і при перемножуванні дають публічний ключ. Наприклад, публічний ключ - це 1961 а секретний - 37 і 53. Відкритий ключ використовується для того, щоб зашифрувати повідомлення, а секретний - щоб розшифрувати. Без секретного ключа розшифрувати повідомлення неможливо. Коли ви відправляєте свої особисті дані, припустимо, банку, або ваша банківська картка зчитується банкоматом, то всі дані шифруються відкритим ключем, а розшифрувати їх може тільки банк з відповідним секретним ключем. Суть в тому, що математично дуже важко знайти подільники дуже великого числа.

Рис.1 Шифрування публічним ключем

2. Шифр ​​Енігми

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

Рис. 2 Машина Енігма

3. Справжні коди

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

4. Шифр ​​Віженера

Цей шифр складніше, ніж моноалфавітні. Уявімо, що у нас є таблиця, побудована за тим же принципом, що і наведена нижче, і ключове слово, припустимо, «CHAIR». Шифр Віженера використовує той же принцип, що і шифр Цезаря, за тим винятком, що кожна буква змінюється відповідно до кодового слова. У нашому випадку перша буква послання буде зашифрована згідно шифрувального алфавіту для першої літери кодового слова (в нашому випадку «С»), друга буква - відповідно до алфавіту для другої літери кодового слова ( «H»), і так далі. У разі, якщо послання довше кодового слова, то для (k * n + 1) -ої літери (де n - це довжина кодового слова) знову буде використаний алфавіт для першої літери кодового слова, і так далі. Дуже довгий час шифр Віженера вважався незломним. Щоб його розшифрувати, для початку вгадують довжину кодового слова і застосовують частотний аналіз до кожної n-ної букві послання, де n - передбачувана довжина кодового слова. Якщо довжина була вгадана вірно, то і сам шифр розкриється з більшою або меншою часткою ймовірності. Якщо передбачувана довжина не дає вірних результатів, то пробують іншу довжину кодового слова, і так далі до переможного кінця.

Рис. 2 Квадрат Віженера

5. Моноалфавітна заміна

ROT1, азбука Морзе, шифр Цезаря відносяться до одного і того ж типу шифрів - моноалфавитної заміни. Це означає, що кожна буква замінюється на одну і тільки одну іншу букву або символ. Такі шифри дуже легко розшифрувати навіть без знання ключа. Робиться це за допомогою частотного аналізу. Наприклад, найбільш часто зустрічається буква в англійському алфавіті - «E». Таким чином, в тексті, зашифрованому моноалфавітним шифром, найбільш часто зустрічається буквою буде буква, відповідна «E». Друга найбільш часто зустрічається буква - це «T», а третя - «А». Людина, що розшифровуює моноалфавітний шифр, може дивитися на частоту буквБ що зустрічаються і майже закінчені слова. Так, «T_E» з великою часткою ймовірності виявиться «ТНЕ». На жаль, цей принцип працює тільки для довгих повідомлень. Короткі просто не містять в собі достатньо слів, щоб з достатньою достовірністю виявити відповідність символівБ що найчастіше зустрічаються - буквам зі звичайного алфавіту. Марія Стюарт використовувала неймовірно складний моноалфавітний шифр з декількома варіантами, але коли його нарешті зламали, прочитані повідомлення дали її ворогам достатньо приводів, щоб засудити її до смерті.

6. Шифр ​​Цезаря

Шифр Цезаря називається так, як не дивно, тому що його використовував сам Юлій Цезар. Насправді шифр Цезаря - це не один шифр, а цілих двадцять шість, що використовують один і той же принцип. Так, ROT1 - всього один з них. Одержувачу потрібно сказати, який з шифрів використовується. Якщо використовується шифр «G», тоді А замінюється на G, B на H, C на I і т.д. Якщо використовується шифр «Y», тоді А замінюється на Y, B на Z, C на A і т.д. На шифрі Цезаря базується величезна кількість інших, більш складних шифрів, але сам по собі він не представляє з себе інтересу через легкість дешифрування. Перебір 26 можливих ключів не займе багато часу.

y = (x + k) mod n

x = (y - k + n) mod n,

де x - символ відкритого тексту, y - символ шифрованого тексту, k - ключ.

7. Азбука Морзе

В азбуці Морзе кожна буква алфавіту, всі цифри і найбільш важливі знаки пунктуації мають свій код, що складається з низки коротких і довгих сигналів, що їх називають «точками і тире». Так, A - це «• -», B - «- •••», і т.д. На відміну від більшості шифрів, азбука Морзе використовується не для ускладнення читання повідомлень, а навпаки, для полегшення їх передачі (за допомогою телеграфу). Довгі й короткі сигнали посилаються за допомогою включення і виключення електричного струму. Телеграф і азбука Морзе назавжди змінили світ, зробивши можливою блискавичну передачу інформації між різними країнами, а також сильно вплинули на стратегію ведення війни, адже тепер можна було можна здійснювати майже миттєву комунікацію між військами.

Рис. 4 Азбука Морзе

8. Транспозиція

У перестановочних шифрах букви переставляються за заздалегідь визначеним правилом. Наприклад, якщо кожне слово пишеться задом наперед, то з «all the better to see you with» виходить «lla eht retteb ot ees joy htiw». Інший приклад - міняти місцями кожні дві букви. Таким чином, попереднє повідомлення стане «la tl eh eb tt re ot es ye uo iw ht». Подібні шифри використовувалися в Першу Світову і Американську Громадянську Війну, щоб посилати важливі повідомлення. Складні ключі можуть зробити такий шифр досить складним на перший погляд, але багато повідомлення, закодовані подібним чином, можуть бути розшифровані простим перебором ключів на комп'ютері.

9. ROT1

Цей шифр відомий багатьом дітям. Ключ простий: кожна буква замінюється на наступну за нею в алфавіті. Так, A замінюється на B, B на C, і т.д. «ROT1» означає «ROTate 1 letter forward through the alphabet» (англ. «Посуньте алфавіт на одну букву вперед»). Повідомлення «I know what you did last summer» стане «J lopx xibu zpv eje mbtu tvnnfs». Цей шифр весело використовувати, тому що його легко зрозуміти і застосовувати, але його так само легко і розшифрувати. Через це його не можна використовувати для серйозних потреб, але діти з радістю «грають» з його допомогою.

Формула для розшифрування:

y = (x + k) mod n

x = (y - k + n) mod n,

де x - символ відкритого тексту, y - символ шифрованого тексту, k - ключ.

10. Стеганографія

Стеганографія - це мистецтво прихованого листу. Цій техніці навіть більше років, ніж кодам та шифруванню. Наприклад, повідомлення може бути написано на папері, вкрите ваксою і проковтнуте з тією метою, щоб непомітно доставити його одержувачу. Інший спосіб - нанести повідомлення на голену голову кур'єра, почекати, поки волосся виросте заново і приховає послання. Найкраще для стенографії використовувати повсякденні об'єкти. Колись в Англії використовувався такий метод: під деякими буквами на першій сторінці газети стояли крихітні точки, майже невидимі неозброєним оком. Якщо читати тільки помічені букви, то вийде секретне повідомлення. Деякі писали повідомлення першими буквами, слів, з яких воно складене або використовували невидиме чорнило. Була поширена практика зменшення цілих сторінок тексту до розміру буквально одного пікселя, так що їх було легко пропустити при читанні чогось відносно нешкідливого. Стенографію найкраще використовувати в поєднанні з іншими методами шифрування, так як завжди є шанс, що ваше приховане послання виявлять і прочитають.

Висновок

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

Використана література:

  1. Александр Курилкин. Коды и шифры [Електронний ресурс] / Александр Курилкин – Режим доступу до ресурсу: https://tproger.ru/translations/10-codes-and-ciphers/.

Системи та засоби автентифікації

ВСТУП

Програма навчальної дисципліни « Системи та засоби автентифікації» складена відповідно до освітньо - професійної / освітньо – наукової програми підготовки здобувачів освітнього ступеня «бакалавр» напряму підготовки 6.170101 Безпека інформаційних і комунікаційних систем, спеціалізації «Безпека інформаційних і комунікаційних систем», спеціальності 125 «Кібербезпека».

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

Короткий зміст навчальної програми:

Основні поняття системи доступу до інформаційних ресурсів. Ідентифікація, автентифікації, авторизація, аудит. Багатофакторна автентифікація. Біометрична автентифікація. Симетричні методи захисту цілісності даних. Коди автентифікації повідомлень, що використовують геш-функції. МD2. МD5. SHA-1 SHA-3. Протоколи автентифікації. Протоколи KERBEROS, SSL/TLS. Застосування асиметричної криптографії в автентифікації. Центри сертифікації ключів.

Місце навчальної дисципліни в системі професійної підготовки фахівця.

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

Мета викладання навчальної дисципліни.

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

Завдання вивчення навчальної дисципліни

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

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

- вміти досліджувати моделі протоколів автентифікації, оцінювати їх вразливість; використовувати отримані теоретичні знання в різних сферах захисту інформації.

Інтегровані вимоги до знань та умінь з навчальної дисципліни

У результаті вивчення навчальної дисципліни студент повинен:

Знати:

  1. Канали уразливості та витоку інформації, явища, що притаманні їх прояву та існуванню.
  2. Основні методи, механізми, протоколи та алгоритми криптографічного захисту інформації.
  3. Критерії та показники оцінки якості криптографічного захисту інформації.
  4. Методи криптографічних перетворень інформації та способи їх здійснення.
  5. Методи та засоби аналізу та крипто аналізу асиметричних та симетричних крипто перетворень.
  6. Методи, механізми та протоколи безпечного встановлення, узгодження, підтвердження, розподілення і транспортування ключів та розподілення таємниці.
  7. Основні протиріччя, проблеми, тенденції та напрями розвитку теорії та практики криптографічного захисту інформації, прогнозування їх можливостей та можливостей порушників(крипто аналітиків).
  8. Функціональні можливості та порядок застосування сучасних пакетів програмної реалізації криптографічних перетворень та криптографічних бібліотек.

Вміти:

  1. Обґрунтовувати, вибирати та застосовувати критерії та показники оцінки стійкості криптографічних перетворень та безпечності криптографічних протоколів.
  2. Розробляти вимоги та обирати для застосування криптографічні перетворення та протоколи, що мінімізують впливи порушників.
  3. Розробляти моделі загроз безпеці інформації, вирішувати завдання аналізу та синтезу криптографічних алгоритмів та протоколів захисту інформації.
  4. Моделювати криптоаналітичні атаки та здійснювати криптоаналіз.
  5. Аналізувати криптографічні протоколи на їх рівень безпечності (повноту, коректність та нульове розголошення тощо).
  6. Оцінювати захищеність від несанкціонованого доступу до інформації.
  7. Обґрунтовувати вимоги до ключових даних та ключової інформації, здійснювати аналіз їх властивостей.
  8. Застосовувати стандартні пакети при розв’язанні прикладних задач моделювання криптографічних перетворень, ключових даних та протоколів.

На вивчення навчальних дисциплін відводиться 120 годин 4 кредитів ЄКТС.

1. Інформаційний обсяг навчальної дисципліни

Модуль 1. Математичні методи та симетричні криптографічні перетворення.

Розділ 1 Математичні основи криптології.

Тема 1.Теорія чисел та груп, скінченні поля Галуа, особливості застосування в криптографії.

Криптографія (від грецького kryptós – прихований і gráphein – писати) – наука про математичні методи забезпечення конфіденційності і автентичності інформації.

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

Математическая криптография возникла как наука о шифровании информации, т.е. как наука о криптосистемах. Большое влияние на разви- тие криптографии оказали появившиеся в середине двадцатого века рабо- ты американского математика Клода Шеннона. В классической шенно- новской модели системы секретной связи имеют место два полностью до- веряющих друг-другу участника, которым необходимо передавать между собой информацию, не предназначенную для третьих лиц. Такая инфор- мация называется конфиденциальной или секретной. Отсюда возникает задача обеспечения конфиденциальности, т.е. защита секретной информа- ции от противника. Эта задача, по крайней мере исторически, – первая за- дача криптографии. Она традиционно решается с помощью криптосистем.

Теорія груп — розділ математики, який вивчає властивості груп. Група — це алгебраїчна структура з двомісною операцією, і для цієї операції виконуються такі властивості: асоціативність, існування нейтрального елемента, існування оберненого елемента.

Тема 2 Еліптичні та гіпереліптичні групи, основи застосування в криптографії.

Еліптичні групи у криптографії називають еліптичною криптологією – розділ криптографії, який вивчає асиметричні криптосистеми, засновані на еліптичних кривих над кінцевими полями. На сьогодні серед найдосконаліших є методи, що базуються на математичному апараті еліптичних кривих. До розповсюджених алгоритмів цифрового підпису на основі математичного апарату еліптичних кривих можна віднести ДСТУ 4145-2002, ГОСТ Р34.10-2001, ECSS, ECDSA, EC-GDSA, EC-KCDSA.

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

Тема 3. Бінарні відображення (спарювання) точок еліптичних кривих, особливості застосування в криптографії.

Еліптична крива над полем K — це множина точок проективної площини над K, що задовольняють рівнянню

y2+a1xy+a3y=x3+a2x2+a4x+a6{\displaystyle y^{2}+a_{1}xy+a_{3}y=x^{3}+a_{2}x^{2}+a_{4}x+a_{6}~} разом з точкою на нескінченності.

Еліптичні криві є одним з основних об'єктів вивчення в сучасній теорії чисел і криптографії. Наприклад, вони були використані Ендрю Вайлзом (спільно з Річардом Тейлором) в доведенні Великої теореми Ферма. Еліптична криптографія є самостійним розділом криптографії, що присвячений вивченню криптосистем на базі еліптичних кривих. Зокрема, на еліптичних кривих заснований російський стандарт цифрового підпису . Еліптичні криві також застосовуються в деяких алгоритмах факторизації (наприклад Алгоритм Ленстри) і тестування простоти чисел.

Термін «еліптична крива» походить від терміну «еліптичний інтеграл».

У криптографії розглядається два види еліптичних кривих: над кінцевим полем Zp – кільце вирахувань по модулю простого числа. І над полем GF(2m) – бінарне кінцеве поле. У еліптичних кривих над полем GF(2m) є одна важлива перевага, елементи поля можуть бути легко представлені у вигляді n-бітових кодових слів, це дозволяє збільшити швидкість апаратної реалізації еліптичних алгоритмів. Одним з основних напрямів використання еліптичних кривих є формування алгеброгеометричних кодів по кривій (еліптичних кодів). Таким чином, основними перевагами еліптичної криптографії є: - набагато менша довжина ключа в порівнянні з «класичною» асиметричною криптографією. - висока швидкість роботи еліптичних алгоритмів. Це пояснюється як розмірами поля, так і застосуванням ближчою для комп'ютерів структури бінарного кінцевого поля. - через маленьку довжини ключа і високу швидкості роботи, алгоритми на еліптичних кривих можуть використовуватися в смарт-картах та інших пристроях з обмеженими обчислювальними ресурсами.

Розділ 2 Симетричні криптографічні системи.

Тема 4. Основи теорії секретних систем (конфіденційності).

До алгоритмів симетричного шифрування належать методи шифрування, в яких і відправник, і отримувач повідомлення мають однаковий ключ (або, що менш поширено, ключі різні, але споріднені та легко обчислюються). Ці алгоритми шифрування були єдиними загально відомими до липня 1976.Сучасні дослідження симетричних алгоритмів шифрування зосереджено, в основному, навколо блочних та потоковихалгоритмів шифрування та їхнього застосування. Блочний шифр подібний до поліалфавітного шифру Алберті : блочні шифри отримують фрагмент відкритого тексту та ключ, і видають на виході шифротекст такого самого розміру. Оскільки повідомлення зазвичай довші за один блок, потрібен деякий метод склеювання послідовних блоків. Було розроблено декілька методів, що відрізняються в різних аспектах. Вони є режимами дії блочних шифрів та мають обережно обиратись під час застосування блочного шифру в криптосистемі. Потокові шифри, на відміну від блочних, створюють ключ довільної довжини, що накладається на відкритий текст побітово або політерно, в дечому подібно до одноразової дошки. В потокових шифрах, потік шифротексту обчислюється на основі внутрішнього стану алгоритму, який змінюється протягом його дії. Зміна стану керується ключем, та, в деяких алгоритмах, ще і потоком відкритого тексту. RC4 є прикладом добре відомого, та широко розповсюдженого потокового шифру. Криптографічні гешувальні функції не обов'язково використовують ключі, але часто використовуються і є важливим класом криптографічних алгоритмів. Ці функції отримують дані (часто, ціле повідомлення), та обчислюють коротке, фіксованого розміру число (хеш). Якісні хешувальні функції створені таким чином, що дуже важко знайти колізії (два відкритих тексти, що мають однакове значення хешу).Коди аутентифікації повідомлень подібні до криптографічних хешувальних функцій, за виключенням того, що вони використовують секретний ключ для аутентифікації значення хешу при отриманні повідомлення. Ці функції пропонують захист проти атак на прості хешувальні функції.

Тема 5. Симетричні криптографічні перетворення та їх властивості.

Симетричні криптографічні перетворення та їх властивості

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

Коди аутентифікації повідомлень (англ. Message authentication code, MAC) подібні до криптографічних хешувальних функцій, за виключенням того, що вони використовують секретний ключ для аутентифікації значення хешу при отриманні повідомлення. Ці функції пропонують захист проти атак на прості хешувальні функції.


Тема 6. Джерела ключів та ключової інформації, вимоги до них.

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

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

Модуль 2. Асиметричні криптосистеми та методи автентифікації.

Розділ 3 Асиметричні криптографічні системи.

Тема 7. Вступ в теорію асиметричних крипто перетворень.

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

Асиметричні криптоалгоритми:

  • Криптосистема з відкритим ключем;
  • Для шифрування повідомлення використовується відкритий ключ, а при дешифруванні – закритий. Тобто, знаючи ключ шифрування й зашифрований текст, неможливо відновити вихідне повідомлення;
  • При порушенні конфіденційності k-ої робочої станції зловмисник довідається тільки “закритий” ключ k : це дозволяє йому читати всі повідомлення, що приходять абонентові k, але не дозволяє видавати себе за нього при відправленні листів;
  • В асиметричних системах кількість існуючих ключів пов’язане з кількістю абонентів лінійно (у системі з N користувачів використовуються 2*N ключів).

Тема 8. Асиметричні крипто перетворення в групах точок еліптичних кривих.

Тема 9. Джерела ключів асиметричних криптосистем та вимоги до них.

Ефективними системами криптографічного захисту даних є асиметричні криптосистеми, звані також криптосистемами звідкритим ключем. У таких системах для зашифровки даних використовується один ключ, а для розшифровки – інший ключ(звідси і назва – асиметричні). Перший ключ є відкритим і може бути опублікований для використання всіма користувачами системи, які зашифровують дані. Розшифровка даних за допомогою відкритого ключа неможливо.

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

Узагальнена схема асиметричної криптосистеми з відкритим ключем показана на. У цій криптосистеме застосовують два різних ключа: К - Відкритий ключ відправника А; Кс - Секретний ключ одержувача В. Генератор ключів доцільно розташовувати на стороні одержувача В (щоб не пересилати секретний ключ по незахищеному каналу). Значення ключів К і Кс залежать від початкового стану генератора ключів.

Розкриття секретного ключа К за відомим відкритому ключу Кс повинно бути обчислювально нерозв'язним завданням.

вимоги:

  • Зашифроване повідомлення повинно піддаватися читанню тільки при наявності ключа.
  • Число операцій, необхідних для визначення використаного ключа шифрування за фрагментом шифрованого повідомлення і відповідного йому відкритого тексту, повинно бути не менше загального числа можливих ключів.
  • Число операцій, необхідних для розшифрування інформації шляхом перебору всіляких ключів повинно мати строгу нижню оцінку і виходити за межі можливостей сучасних комп'ютерів (з урахуванням можливості використання мережевих обчислень).
  • Знання алгоритму шифрування не повинно впливати на надійність захисту.
  • Незначна зміна ключа повинна приводити до істотної зміни виду зашифрованого повідомлення навіть при використанні одного і того ж ключа.
  • Структурні елементи алгоритму шифрування повинні бути незмінними.
  • Додаткові біти, що вводяться в повідомлення в процесі шифрування, повинні бути повністю та надійно сховані в зашифрованому тексті.
  • Довжина шифрованого тексту повинна бути рівною довжині вихідного тексту.
  • Не повинно бути простих і легко встановлюваних залежностей між ключами, які послідовно використовуються в процесі шифрування.
  • Будь-який ключ з безлічі можливих повинен забезпечувати надійний захист інформації.
  • Алгоритм повинен допускати як програмно, так і апаратну реалізацію, при цьому зміна довжини ключа не повинно вести до якісного погіршення алгоритму шифрування.


Розділ 4 Методи автентифікації інформації.

Тема 10. Методи та механізми автентифікації в криптосистемах.

Тема 11. Методи та механізми захисту від несанкціонованого доступу.

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

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

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

Тема 12. Методи та механізми імітозахисту в радіосистемах.

Тема №

Криптовалюта

Криптовалюта (від англ. Cryptocurrency) — вид цифрової валюти, емісія та облік якої засновані на асиметричному шифруванні і застосуванні різних криптографічних методів захисту, таких як Proof-of-work та/або Proof-of-stake. Функціонування системи відбувається децентралізовано в розподіленій комп'ютерній мережі.

Люди завжди цінували корисні і незамінні речі. Корисна річ завжди має попит і ціну. Первісна вартість криптовалюти — це вартість витраченої електроенергії. Вторинну вартість визначає попит на цю криптовалюту.

Попит може бути трьох видів:

  1. Спекулятивно — інвесторський (купівля криптовалюти в надії продати її дорожче)
  2. Купівля товару (за криптовалюту)
  3. Переказ криптовалюти на інший рахунок без комісії (або менше 0,1%)

Також важливу роль у ціноутворенні відіграє кінцева або заключна емісія

2. Рекомендована література

Основна

  1. Горбенко І.Д., Горбенко Ю.І. Прикладна криптологія. Підручник. – Х.: ХНУРЕ, Форт, 2013. - 878 с.
  2. Горбенко І.Д., Горбенко Ю.І. Прикладна криптологія. Монографія. – Х.: ХНУРЕ, Форт, 2012. - 868 с.
  3. Горбенко І.Д. Гриненко Т.О. Захист інформації в інформаційно-телекомунікаційних системах: Навч. посібник. Ч.1. Криптографічний захист інформації. – Х.: ХНУРЕ, 2004. - 368 с.
  4. Горбенко Ю.І., Горбенко І.Д. Інфраструктури відкритих ключів. Системи ЕЦП. Теорія та практика. - Х.: Форт, 2010. – 593 с.
  5. Есин В. И., Кузнєцов А. А., Сорока Л. С. Безопасность информационных систем и технологий. – Х.: ООО «ЭДЭНА», 2010. – 656 с.
  6. Шостак А.В., Лысенко И.В. Программирование алгоритмов защиты информации в .NET Framework: лаб. практикум. – Х.: Нац. аэрокосм. ун-т “Харьк. авиац. ин-т”, 2011. – 74 с. [Электронное издание]

7. Столлингс В. Криптография и защита сетей. Принципы и практика: пер. с англ. – К.: Вильямс, 2001. – 669 с.

Додаткова

8. Смарт Н. Криптография: пер. с англ. – М.: Техносфера, 2005. – 528 с.

9. Романец Ю.В., Тимофеев П.А., Шаньгин В.Ф. Защита информации в копмьютерных системах и сетях / Под ред. В.Ф. Шаньгина. – 2-е изд., перераб. И доп. – М.: Радио и связь, 2001. – 376 с.

10. Шнайер Б. Прикладная криптография: протоколы, алгоритмы, исходные тексты на языке Си. – М.: Триумф, 2002. – 815 с.

User Identification and Authentication Concepts

The modern world needs people with a complex identity who are intellectually autonomous and prepared to cope with uncertainty; who are able to tolerate ambiguity and not be driven by fear into a rigid, single-solution approach to problems, who are rational, foresightful and who look for facts; who can draw inferences and can control their behavior in the light of foreseen consequences, who are altruistic and enjoy doing for others, and who understand social forces and trends.

— Robert Havighurst

Authentication, Authorization, and Accounting

Whether a security system serves the purposes of information asset protection or provides for general security outside the scope of IT, it is common to have three main security processes working together to provide access to assets in a controlled manner. These processes are:

1. Authentication: often referred to as Identification and Authentication, determining and validating user identity.

2. Authorization: providing users with the access to resources that they are allowed to have and preventing users from accessing resources that they are not allowed to access.

3. Accounting: providing an audit trail of user actions. This is sometimes referred to as auditing. The following sections discuss these three processes and the relationship between them.

Identification and Authentication

A computer system comprised of hardware, software, and processes is very often an abstraction of an actual business model that exists in the real world outside the computer system. A financial application, for example, can be considered a model of actual financial relationships between actual organizations and individuals. Every element of the actual financial relationship can be projected onto the computer model (financial application), and then the computer model can be used to determine the outcomes of financial interactions between components of the actual system projected into the computer model. Actual individuals using a computer system are typically humans (and sometimes applications or services) that exist outside the system. The user ID is a projection of an actual individual (or application or service) into the computer system. The computer system typically uses an abstract object, called a user account, that contains a set of attributes for each actual individual. The object has a name (user ID or logon ID) that is used to represent the abstract object to the system. Additional attributes of the object may include the full name of the actual user, the department for which he is working, his manager and direct reports, extension number, etc. Objects may or may not have credentials as their attributes. Apart from the user ID or logon ID, a security system will typically assign users an internal number (Security Identifier) that is used by the system to refer to the abstract object. Establishing a unique abstract object in the form of a user account for each individual who will access resources in a computer system is very important. This object is used to identify the user in the system; this object is referred to by the system when user access to information assets is defined, and the system will also trace user actions and record an audit trail referring to the actual user by his abstract object ID. The user ID is therefore the basis for access control and it also helps to implement accountability. Hence, it is essential to have a separate user ID for each user, because each individual has specific access requirements and should be individually kept accountable for his actions. The process of Authentication is often considered to consist of two distinct phases: (1) identification and (2) (actual) authentication. Identification provides user identity to the security system. This identity is typically provided in the form of a user ID. The security system will typically search through all the abstract objects that it knows about and find the specific one for the privileges of which the actual user is currently applying. Once this is complete, the user has been identified. Authentication is the process of validating user identity. The fact that the user claims to be represented by a specific abstract object (identified by its user ID) does not necessarily mean that this is true. To ascertain that an actual user can be mapped to a specific abstract user object in the system, and therefore be granted user rights and permissions specific to the abstract user object, the user must provide evidence to prove his identity to the system. Authentication is the process of ascertaining claimed user identity by verifying user-provided evidence. The evidence provided by a user in the process of user authentication is called a credential. Different systems may require different types of credentials to ascertain user identity, and may even require more than one credential. In computer systems, the credential very often takes the form of a user password, which is a secret known only to the individual and the system. Credentials may take other forms, however, including PIN numbers, certificates, tickets, etc. Once the individual has been authenticated, the system will associate an initial process to the user (a user shell), and the user will be able to launch other processes. All the processes launched by the user access resources (information assets) using the identity of the user, which has already been ascertained by the system. User identification and authentication are typically the responsibility of the operating system. Before being allowed to create even a single process on a computer, the individual must authenticate to the operating system. Applications and services may or may not honor authentication provided by the operating system, and may or may not require additional authentication upon access to them.

There are typically three components involved in the process of user authentication (Figure 1.1):

1. Supplicant: the party in the authentication process that will provide its identity, and evidence for it, and as a result will be authenticated. This party may also be referred to as the authenticating user, or the client.

2. Authenticator: the party in the authentication process that is providing resources to the client (the supplicant) and needs to ascertain user identity to authorize and audit user access to resources. The authenticator can also be referred to as the server.

3. Security authority/database: storage or mechanism to check user credentials. This can be as simple as a flat file, or a server on the network providing for centralized user authentication, or a set of distributed authentication servers that provide for user authentication within the enterprise or on the Internet.

In a simple scenario, the supplicant, authenticator, and security database may reside on the same computer. It is also possible and somewhat common for network applications to have the supplicant on one computer and the authenticator and security database collocated on another computer. It is also possible to have the three components geographically distributed on multiple computers. It is important to understand that the three parties can communicate independently with one another. Depending on the authentication mechanism used, some of the communication channels might not be used — at least not by an actual dialogue over the network. The type of communication and whether or not it is used depends on the authentication mechanism and the model of trust that it implements.

For example, authentication protocols such as Kerberos will typically involve direct communication between the supplicant and the security server and the supplicant and the authenticator; but with regard to user authentication, there is no direct communication between the authenticator and the security server. Still, messages from the supplicant to the authenticator contain information sent by the security server to the authenticator.

Authorization

Authorization is the process of determining whether an already identified and authenticated user is allowed to access information resources in a specific way. Authorization is often the responsibility of the service providing access to a resource. For example, if a user tries to access a file that resides on a file server, it will be the responsibility of the file service to determine whether the user will be allowed this type of access. Authorization can provide for granular control and may distinguish between operations such as reading or writing to a file, deleting a file, launching an executable file, etc. Before authorization takes place, the user must be identified and authenticated. Authorization relies on identification information to maintain access control lists for each service. Operating systems typically facilitate the process of authorization by providing authorization tools to applications. The operating system will typically provide for a security kernel (or an operating system Security Reference Monitor) that can be used to mediate access to resources by making sure that the operation is authorized. Alternatively, applications can implement their own authorization model, and Security Reference Monitor. A user can be authenticated using a certain identity but he can request to be authorized to access a resource under a different identity. When the user explicitly requests this upon access to an application or resource, this is typically referred to as authorization identity. When this is performed by an application or service acting on behalf of the user, this is referred to as impersonation. In the case of impersonation, a user may posses an authentication identity that has been ascertained by the authentication process. In addition, the user may temporarily or permanently use an authorization identity, if the user is authorized by the operating system or application to impersonate another user by assuming the other user’s identity. Impersonation is very useful in client/server computing where a server application running under a server account can access resources on behalf of users connecting to that server. Impersonation also allows a user to connect to a server using somebody else’s broader or more restricted access permissions.

User Logon Process

Authentication and authorization work very closely together, and it is often difficult to distinguish where authentication finishes and where authorization starts. In theory, authentication is only supposed to ascertain the identity of the user. Authorization, on the other hand, is only responsible for determining whether or not the user should be allowed access. To provide for the logical interdependence between authentication and authorization, operating systems and applications typically implement the so-called user logon process (or login process, also sign-in process). The logon process provides for user identification; it initiates an authentication dialogue between the user and the system, and generates an operating system or application-specific structure for the user, referred to as an access token. This access token is then attached to every process launched by the user, and is used in the process of authorization to determine whether the user has or has not been granted access. The access token structure sits in between user authentication and authorization. The access token contains user authorization information but this information is typically provided as part of the user identification and authentication process. The logon process can also perform non-security-related tasks. For example, the process can set up the user work environment by applying specific settings and user preferences at the time of logon.

Accounting

Users are responsible for their actions in a computer system. Users can be authorized to access a resource; and if they access it, the operating system or application needs to provide an audit trail that gives historical data on when and how a user accessed a resource. On the other hand, if a user tries to access a resource and is not allowed to do so, an audit trail is still required to determine an attempt to violate system authorization and, in some cases, authentication policies. Accounting is the process of maintaining an audit trail for user actions on the system. Accounting may be useful from a security perspective to determine authorized or unauthorized actions; it may also provide information for successful and unsuccessful authentication to the system. Accounting should be provided, regardless of whether or not successful authentication or authorization has already taken place. A user may or may not have been able to authenticate to the system, and accounting should provide an audit trail of both successful and unsuccessful attempts. Furthermore, if a user has managed to authenticate successfully and tries to access a resource, both successful and unsuccessful attempts should be monitored by the system, and access attempts and their status should appear in the audit trail files. If authorization to access a resource was successful, the user ID of the user who accessed the resource should be provided in the audit trail to allow system administrators to track access.

Threats to User Identification and Authentication

The main goal of user identification and authentication is to validate the identity of the user. Computer systems typically require authentication. At the same time, attackers try to penetrate information systems and often their goal is to compromise the authentication mechanism protecting the system from unauthorized access. Attackers can take different approaches when they attempt to compromise the user identification and authentication mechanisms of a system, some of which are described in this section.

Bypassing Authentication

If an attacker does not have a username and a password or other credentials, and is not able to authenticate to a system, he may try to bypass the authentication process. This can be accomplished in a number of ways, depending on the application, and the type of access that attackers have to the computer where the application is running. If an application is running locally on a computer, and an attacker has physical access to this computer, then the attacker can potentially obtain administrative privileges, which may well be already available or may be obtained by privilege escalation. Once the attacker has administrative access, he can typically access all files and processes on the local computer, which allows him to debug running applications or swap files on the file system. The attacker can therefore debug an application that requires authentication, and potentially modify the application to replace the command or statement that compares the user password with commands that do nothing or return successful authentication. The user can then access the application. The modification can be performed for either code that is already in memory or for executable files on the file system, and take effect the next time the executable is launched. To protect against such attacks, the operating system can implement tools that detect and potentially alert the administrator or the user if they determine that the content of the file has been changed. This includes software that scans files on the file system and saves their hashes in a hash database, as well as signed executables. The above authentication bypassing technique is more difficult to implement for network servers — unless the server is vulnerable to some attack over the network, where techniques such as smashing the application stack can be used to launch arbitrary code, or obtain administrative or local access. However, there are other approaches for bypassing authentication to network servers. One common approach is authentication to Web resources. Very often, these resources are published with anonymous authentication. Later on, system administrators may decide that they want to protect resources. A simple login form may exist on the home page, and it may require the user to enter a username and password, which may be statically configured in the code behind HTML/HTTP, or reside in a user database. Once the user has authenticated to that Web page, he can access resources. This approach is easy to implement but apparently there are problems associated with it. One of them is that if a user knows (or manages to guess) the URL behind the authentication page, he may be able to access resources without authentication. To resolve this problem, one of the best possible methods is to have the Web server impersonate requests from users using their actual user accounts, and access resources on behalf of the user; at the same time, Web pages and other files should be protected with permissions for actual users or groups of users. In this case, even if an application login page is bypassed, when a user tries to access the actual resource (a file), the operating system will request user authentication for the user, and will not allow access to the file. If the user refuses or fails to authenticate, the operating system will return a failure result. The Web server can therefore rely on the operating system to determine access to the specific file.

Default Passwords

One of the major challenges of secure user authentication is represented One of the major challenges of secure user authentication is represented by default passwords. Many software and hardware vendors assign default passwords for built-in users in their operating systems, software, and hardware. Very often, system architects and engineers implementing a solution are too busy concentrating on the business functionality and features of the system or application, and security is often left in the second place. If the system designer or implementer fails to change the default passwords, someone else knowing or guessing what the device may be, might happen to have network access to the device and authentication accordingly. System designers and engineers should always change the default passwords on all devices.

Privilege Escalation

During the logon process, a user authenticates using a set of credentials. When a user tries to access resources, this request is actually performed by processes running on behalf of the user, that use the user access token to be authorized by resource servers. In some cases, users may be able to find a security hole in an application or an operating system. Very often, a service or an application may be running with its own account on a server. This account may have limited or unrestricted access privileges. By providing invalid input, an attacker can change the authentication logic of the service or application and assume the credentials of this application. A popular attack of this type is represented by the stack overflow attack. By providing invalid parameters (typically strings longer than the buffer reserved for user input by the application), an attacker can inject code and an incorrect return address pointing to the injected code into the application stack. This may force the application to execute arbitrary code using its own privileges. The risk of privilege escalation attacks can be mitigated by strict checking of input parameters and other secure code writing techniques. Once the code has been fixed, it is important that it be applied to all affected servers and workstations in a timely fashion.

Password Authentication

Authentication based on passwords requires the supplicant and the security server to share a common secret. No one else should know the secret; so if the supplicant provides identification information and the correct shared secret during authentication, the security server can safely consider that the supplicant is genuine and client authentication should succeed. If the supplicant and the authenticator have agreed to use mutual authentication, the client can in the same way ensure that the server knows the password. Two types of password credentials can be used by today’s authentication solutions: (1) static and (2) one-time passwords. These two types of credentials are discussed in the following subsections.

Static Passwords

Static passwords are the oldest and most widespread form of user credentials. Static passwords are secrets shared between the client and the authentication server, and these secrets do not change very often. Security administrators apply security policies for an organization or departments within the organization, and define how often users need to change their passwords, and this may happen, for example, every week or every month. The model of trust for static passwords is that only the supplicant and the authentication server know the secret password; and even when it changes, still only the two of them are going to know it. The authentication server stores the static password in its authentication database, where it should be securely protected. Very often, the supplicant will not store the password anywhere and will ask the user to provide the password just before authentication. In some cases, applications running on the supplicant computer can store the password in a file or an in-memory password cache, and use it every time the user tries to access resources to authenticate automatically. Static passwords are convenient and do not require special configuration on the supplicant, the authentication server, or the authenticator. Virtually any application, platform, or operating system supports authentication with static passwords. On the client computer, no special hardware or software is required to authenticate using static passwords. This means that a user may be able to access a specific resource from the office or from a shared computer in a coffee shop with public Internet access. Static passwords are therefore very convenient for users and provide flexibility in terms of client capability and location. The major disadvantage of static passwords is that they may be an easy target for attackers. The strength of user authentication primarily depends on the strength of the authentication mechanism but, in general, authentication mechanisms that provide for static passwords may potentially be vulnerable to many types of attacks. Default passwords, password guessing, sniffing off the network, replaying, man-in-the-middle, shoulder surfing, social engineering, and dumpster diving are all attacks primarily meant to attack static user passwords. For most of the above attacks, the password can be successfully attacked if it is weak. Many authentication mechanisms based on static passwords use the actual password or a derivative of the password to encrypt authentication messages, or to authenticate the integrity of these messages. As a result, the strength of a user password must be the same as the strength of a cryptographic key, and all requirements for symmetric cryptographic keys must be met by user passwords. If the password does not meet some of the requirements for symmetric keys, it can be considered weak. Humans are not good at generating passwords. Most of the time, humans use readable passwords, comprised of letters (very often part of a meaningful word) and digits, and rarely special characters. Therefore, a password generated by a human can be relatively easy to remember but it considerably reduces the keyspace for the password (which is a symmetric key as well). Machine-generated passwords are typically generated in such a way that the entire keyspace can be used. Unfortunately, this makes the password difficult to remember for humans, which may render it unusable, or even easier to crack — in case the user who is not able to memorize it writes it down on a sticky note on the side of the computer display. Another problem with machine passwords is that they are generated using pseudo-random functions. Unfortunately, unlike humans who have feelings, emotions, senses, and many other factors that influence the decision-making process, machines always behave in exactly the same predictable way, and there is hardly any random material they can use to generate random passwords. Computers may use the current date and time, the time since the last reboot, the content of a specific memory cell, the number of running processes on the computer, etc. to generate a random password. However, none of these is necessarily random, and someone with enough knowledge of the environment may be able to guess the pseudo-random password. Static passwords are a common authentication method that is widespread, widely supported, and convenient, but at the same level provides for moderate to low levels of security.

One-Time Passwords

One-time passwords are secrets that can be used for authentication only once, or a few times. Technically, this means that the user must have a new password every time he needs to authenticate. One-time passwords require special software or hardware on both the user authentication server and the supplicant.

List of One-Time Passwords

One of the possible approaches to one-time passwords is to have a list of passwords and the stipulation that each of them will be used only once. The authentication server ticks off each password once it has been used by the user, and it cannot be used again. When all the passwords have been used, the supplicant and the authentication server must generate a new list of passwords to use. This mechanism would be simple enough but it has not found much support and is therefore not used in the real world in this very form. Still, the one-time password mechanisms described below follow a similar concept.

Asymmetric Keys and Certificate-Based Credentials

Asymmetric cryptography presents a powerful approach to protecting information. Users who want to use asymmetric cryptographic mechanisms need to possess an asymmetric keypair that can be used for encryption and data signing. The private key is secret and can be considered equivalent to a user password; the public key can be made available to all users on the Internet and is not secret. An asymmetric keypair — be it an RSA or a DSA keypair — by itself does not contain information about the user to whom it belongs. However, in many cases, it is useful to be able to identify the user to whom an asymmetric keypair belongs. It is also important to have assurance that a particular public key belongs to a specific user, rather than to an imposter. One of the approaches used by some applications, such as SSH, is to use the public key as a means to identify the user and the private key as a means to authenticate the user. The public key, which is known to everyone, can be mapped to the user’s identity. The private key is secret and the individual uses it to ascertain his identity. Because the public and the private key are mathematically bound to one another, the identity of the user (the public key) is bound to the secret key (the private key). However, using only keys does not provide for much flexibility. For example, there is no information as to when the keys were created and for how long will they be valid; nor is there information on the purposes for which these keys can be used. Certificates provide for such information. A certificate is a collection of publicly available user attributes (metadata about the user) and a public key, all signed by a trusted third party that guarantees that it has verified the information in the certificate as correct. The trusted third party is called certification authority (CA). Because each certificate contains the identity of the user, along with the user’s public key, certificates can be used for user authentication. The private key is not part of the certificate but every certificate has a corresponding private key that is mathematically bound to the public key contained in that certificate.

Biometric Credentials

Biometric credentials represent the “something you are” factor of authentication. They are based on the physical or behavioral characteristics of the user. The idea behind biometric credentials is that measurable characteristics such as the user fingerprint or the dynamics of user handwriting do not or hardly ever change, and can therefore be used to authenticate the identity of a user. Biometric credentials can be used for either authentication only (verification) or both identification and authentication (recognition). In either case, the authentication database must be populated with the biometric profiles of all the individuals who will be identified or authenticated. The process of population is known as enrollment; each user must provide specific biometric patterns to the system. Typically, the user will present the same pattern (such as a fingerprint) a number of times for calibration and to store a more accurate profile. Measurements of biometric device accuracy and effectiveness are the false acceptance rate (FAR) and the false rejection rate (FRR) parameters, which are specific for each and every type of biometric credential, and potentially for different implementations. The FAR is an expression of the number of times a user was recognized by the system as a valid user while at the same time he was not a valid user. The FRR is an expression of the number of times a user was rejected by the authentication process while in fact he was a valid user. The goal of biometric authentication systems is to keep FAR and FRR low, and at the same time provide for convenient and quick authentication. When biometric credentials are used for authentication (verification), the user must present his identity to the system in the form of a user ID. Biometric authentication will then capture the user’s biometric credentials and compare them against the patterns stored for the user in the authentication database, so there will be a one-to-one comparison with the existing enrollment credentials. This process typically takes less than a couple of seconds. When biometric credentials are used for user identification (recognition), the user does not need to present a user ID to the system. The biometric credentials will be analyzed and then a search will be carried out against the authentication database to determine whether there is a known user with the specific biometric profile. If a match is found, the user is both identified and authenticated. In this case, the biometric profile is compared against many entries in the authentication database; thus, the process can take considerable time for large databases of users. This approach is typically used at airports or by the police to identify individuals, but it is not widely adopted for user authentication in IT systems. There are two main types of biometric credentials: 1. Static (pattern-based). These credentials are based on a static pattern of a biometric characteristic, such as a fingerprint, a retina pattern, or an iris pattern. The pattern is typically stored as a raster or vector image in an authentication database. At the time of user authentication, recognition is based on the number of matching points between the stored image and the authentication image. More matching points mean better accuracy. 2. Dynamic (behavior-based). Authentication using dynamic biometric credentials is based on the recognition of user-specific behavior, such as the dynamics of user handwriting or the way the user types in a specific text, such as his password. Some of the most popular biometric authentication methods include: Fingerprint authentication. This pattern-based authentication method is, by far, the most popular. It is based on the fact that user fingerprints are virtually unique. The user needs to place his finger on a fingertip reader device that may use optical or semiconductor-generated electric field to scan the fingerprint. This type of credential is used for user identification at U.S. airports, and the technology is quickly evolving. Fingerprint readers are currently available with keyboard and mouse devices, as well as on PDAs. Retina scan. This is a pattern-based authentication method and is based on the uniqueness of the formation of blood vessels in the back of the eye. To authenticate, the user needs to look into a special receptacle in a specific way and the system will scan the individual’s retina by optical means. Iris scan. Similar to a retina scan, this method is based on the uniqueness of the colored ring of tissue around the pupil (the iris). This authentication method can use a relatively simple camera for the scan, and is based on optical scanning. Due to the relatively simple equipment required, some airports are currently experimenting with this type of credential for individual identification. Hand geometry. This method is based on the uniqueness of dimensions and proportions of the hand and fingers of the individual. The image is three-dimensional and taken by optical means, and can use conventional cameras. Face geometry. This mechanism was developed to mimic the natural, human way of identifying individuals based on their faces. The authentication process relies on the recognition of specific facial patterns, such as the dimensions and proportions of the face, the distance between face elements, as well as the shape and proportion of the nose, eyes, chin, etc. The image is taken by optical means and can use conventional cameras. Skin pattern. Based on the uniqueness of the texture of the skin, this method creates a “skinprint.” Unlike hand and face recognition, this method can distinguish between individuals who are physically similar, such as twins. The image is taken by optical means and can use conventional cameras. Voice pattern. This method is based on the uniqueness of the human voice. A conventional microphone can be used to enroll and authenticate users. Background noise can have a negative impact on the authentication process, so this method is not appropriate in noisy environments. Handwriting. This method is a behavioral approach based on user handwriting. Sensors detect the speed, direction, and pressure of individual handwriting for a predefined pattern, such as the individual’s signature. The accuracy of this method can vary. Biometric authentication methods remain rarely used. One of the reasons why they have not been widely adopted is cost. Most biometric solutions are relatively expensive (at least much more expensive than user passwords, or even certificates stored on smart cards), and are not suitable for authentication at each and every user workstation, unless very high security requirements must be met. User reluctance to use biometric authentication is another factor. This may be a due to fear (a retina scan requires the user to look into a receptacle, which may be considered intrusive), inconvenience, or privacy concerns. Another important factor is accuracy. Despite the fact that biometric devices use natural user characteristics to identify and authenticate users, the technologies used are not perfect, so recognition or authentication may require a number of attempts. The placement of the finger on the fingerprint reader, the clarity of the image which may be affected by an unclean optical surface on the fingertip reader, whether the finger is dry or wet — these are all factors that affect the effectiveness of fingerprint authentication. A user may be required to provide credentials a number of times; and due to human nature, the chances of obtaining a good pattern when the user is under pressure are likely to decrease. Biometric authentication technologies present more potential rather than actual effectiveness and wide implementation. As the technologies evolve, the accuracy and the convenience for users are likely to increase, and biometric devices may take the natural and well-deserved lead as user authentication credentials.

Cryptology, Cryptography, and Cryptanalysis

Cryptography is the science of protecting information, while cryptanalysis is the science of breaking protection, provided by cryptography. Cryptography and cryptanalysis together make cryptology.

The Goal of Cryptography

The goal of cryptography is to protect information using a mathematical approach. Cryptography is often expected to provide for the following types of protection: Nondisclosure. Cryptography allows for encryption of information and therefore protection of that information against disclosure to unauthorized individuals. For example, if Alice needs to send a secret message to Bob and no one else should be able to read this message, Alice can encrypt the message before sending it and Bob will decrypt the message to read it. Signatures and data integrity. Cryptography can be used to add a signed integrity control structure to messages so that the recipient of a message can determine if the message is genuine or has been modified. If Alice needs to send a message to Bob and wants to make sure that no one else will be able modify the contents of the message, then she needs to sign the message to protect its integrity. Signatures and non-repudiation. Cryptographic signatures can be used to determine whether a message has really been sent by a particular individual or is fake. If Alice enters into an agreement with Bob and digitally signs a contract, this certifies that Alice has agreed with all the requirements and benefits of that contract. The digital signature is proof of her identity and consent, similar to the signature on a piece of paper. Identification and authentication. Cryptography can be used to determine the identity and to authenticate users and services. In fact, most authentication methods are based on some cryptographic transformations. If Bob needs to make sure that Alice is who she says she is, he can use cryptographic algorithms to validate her identity. Timestamping. Cryptography can be used to add a timestamp to messages sent by a user or service. The timestamp is typically added by an independent party (a notary) to certify that a message has been sent at a certain time and date. If Alice sends a message to Bob at a specific date and time, a time notary service can add a signed timestamp to Alice’s message to validate the time when the message was sent. Cryptography achieves the above goals by two main cryptographic mechanisms: encryption and signing. Protection provided by cryptography is not unbreakable. Cryptography is not impossible to overcome by a determined and skilful attacker that has unlimited time and resources at his disposal. Virtually every protection method is susceptible to compromise. The goal of cryptography is to make potential attacks computationally, and as a result — financially and timewise — infeasible. For example, information about patents is worth protecting for a limited period of time. Once the patent protection period has ended, information can be considered public. If breaking the protection of a document containing information about a patent will take 30 years, then it is not computationally feasible to try and break it. Furthermore, if protected information can be worth $100,000, and computing resources to break it will cost $500,000, then it is not financially acceptable to look at breaking the protection. In a similar fashion, if breaking the encryption of an encrypted user password will take two months, and a password policy forces users to change passwords every 14 days, then decrypting the password will not be worth the effort. Similarly, if a user account has access to information that may cost $10,000, and the resources needed to break the authentication mechanism are worth $50,000, then it is not cost effective to even attempt to break the protection.

Symmetric Encryption

Symmetric encryption mechanisms use one key or set of keys to encrypt messages, and exactly the same key or set of keys to decrypt messages. They are symmetric with regard to the encryption keys being used on the encrypting and decrypting end. With symmetric encryption, the strength of protection strongly depends on the selection of a suitable secret key. Important factors to consider when using secret keys include:

Random/predictable keys. If a key is to be secret, it must only be known to the parties that want to communicate. A third party that wants to interfere with the communication process must not be able to predict what the key will be. A key should therefore not be based on publicly available information. The best keys would be those that are completely random. Unfortunately, there is nothing random in the way computers operate, so machine-generated keys are pseudo-random. Human-generated keys are likely to be even less random. A combination of the two — such as having the user generate some random input, such as mouse movements or a sequence of keystrokes, that can then be fed as input into the machine pseudo-random function — is likely to provide the best results.

Keyspace. If an attacker tries to guess a key, he will try to determine combinations that are more likely to be used and will try those first. For example, if a key is 4 bytes long, the possible key space would be 28*4 = 232 = 4,294,967,296 possible combinations. However, if the key only consists of digits (such as a PIN code), then the possible combinations are only 104 = 10,000. It is important for keys to use the entire keyspace, and not just portions of it.

Key length. In general, the longer the key, the more difficult it is to guess the key and — as a result — to decrypt a message. If the key is generated in a random (or pseudo-random) fashion, all the attacker can do is try to guess the key by trying all the possible keys, or at least the most likely keys. A key that is 2 bytes (16- bits) long will result in 65,536 possible combinations, which a modern computer will be able to generate and check in less than one second. A key that is 32 bits in length will result in more than 4,294,967,296 possible combinations, which appears to be a minor challenge. Keys of length 64 bits are virtually 4,294,967,296 times stronger than 32-bit keys, and even these keys are considered week nowadays. 128- and 256-bit keys are considered secure at the time of this writing.

Key protection. Communicating parties must provide appropriate protection for the secret keys. It is important not only to generate such a key, but also to store it in a secure fashion. Possible locations include files on the hard drive of a computer, floppy disks, and smart cards. The secret key can also be entered by a human when required, and not stored anywhere. Unfortunately, this can only be the case for weak keys, such as human-readable and memorable words, and is unlikely to be the case for random, 128-bit keys, especially if they are changed on a regular basis.

Key exchange. After generating the key, it must be delivered to the communicating parties in a secure manner. The key can be configured by an administrator for all the communicating devices and services. Alternatively, the key can be transported on physical media, such as a USB drive or memory stick, floppy disk, or smart card. Finally and most often, there may be a special key management protocol responsible for generating keys and distributing them across the network.

Asymmetric Keys

Asymmetric keys are pairs of keys such that if one of the keys is used to encrypt a message, only the other key from the pair can decrypt the message, and vice versa. Unlike symmetric cryptographic algorithms, if a key is used to encrypt a message, this same key cannot be used to decrypt the message. Therefore, asymmetric algorithms are asymmetric with regard to the protection keys being used. The pair of keys typically consists of a public key and a private key. The public key for a party is publicly known and everyone who will communicate with this party needs to know its public key. Every party is responsible for distributing its public key to other peers by publishing it in a directory, sending it in an e-mail message, or exchanging it with them in some other way. When such a party distributes its public key, there is no need to protect it by means of encryption because it is not secret. However, the party can sign the key to make sure that it is authentic and not replaced by a malicious third party that may do so to launch a man-in-the-middle attack. Public key signing is available in some key distribution approaches, such as X.509 certificates. There are different algorithms that can be used to generate asymmetric keys for data protection. All of these algorithms are based on mathematical problems that are difficult to solve. All the algorithms rely on a keypair, consisting of a public key, which is publicly known and typically made available in user directories, and a corresponding private key, which needs to be kept secret by its holder and not disclosed to any party, however trusted. There is a strong mathematical relation between the private and public keys, and each public key has one corresponding private key. The most popular asymmetric key scheme is RSA. It was inspired by the Diffie-Hellman Key Agreement algorithm, invented in the 1970s. The three researchers who invented RSA were Ron Rivest, Adi Shamir, and Leonard Adelman, and the algorithm was named after the first letters of their surnames. Rivest, Shamir, and Adelman later established their own security company — RSA Security. The RSA algorithm is based on the assumption that factoring is difficult. The RSA algorithm generates keypairs in the following way:

1. Find two large primes p and q.

2. Calculate n = p*q (n is called the modulus).

3. Find another number e < n; (n, e) is called the public key.

4. Find another number d such that (e*d−1) is divisible by (p−1) * (q−1). (n, d) is the private key.

It is straightforward to compute e by following the algorithm above. However, given only e, it is not easy to compute d. As a result, if someone only knows the public key for a user, he cannot decrypt messages sent to that user. There are other asymmetric key algorithms in use today. For example, elliptic curve problems are the basis of Elliptic Curves Cryptosystems (ECCs). The mathematical problem behind ECC is known as the elliptic curve discrete logarithm problem. Elliptic curves are an important and growing area of asymmetric cryptography, primarily due to the fact that unlike RSA keys, ECC key lengths can be considerably shorter than RSA public/private keys, and yet provide for the same level of security. The actual ECC calculation is also very simple, so this makes ECC very useful for embedded devices and other devices that have limited processing power. Another asymmetric key generation approach is the ElGamal algorithm, which is based on the discrete logarithm problem and is similar to the Diffie-Hellman algorithm (see below). Although the mathematical problem is different, key sizes and protection are similar to those provided by RSA. The ElGamal algorithm provides for both data encryption and signing. More details are available from the IEEE (see [132]). The ElGamal algorithm for asymmetric keys has been implemented by the FIPS Digital Signature Standard (DSS), and keys are sometimes referred to as DSA keys. The DSS Digital Signature Algorithm is used for signing purposes only, and not for encryption. Asymmetric keys can be used by themselves or in combination with X.509 or PGP certificates to implement a trust model or to tie additional attributes to the actual keys.

Message Authentication Code (MAC)

Message integrity codes (MICs) provide for error detection but are not suitable by themselves for message authentication or digital signatures. This is primarily due to the fact that the MIC might protect a message from modification but there is nothing that can protect the MIC itself. If an attacker is able to modify the message and the attached MIC, then data integrity is no longer guaranteed. Therefore, the industry has come up with MACs that involve symmetric or public key cryptography to protect the integrity of messages.

HMAC

HMAC (Hashed Message Authentication Code) is a NIST standard, defined in [130]. HMAC specifies how a key can be used to protect MIC functions. HMAC defines the protection of the MIC function by a stream cipher function in the secret key. HMAC is very simple to implement. If the cleartext message to be protected is b bytes long, then the HMAC specification defines the socalled inner and outer pads in the following way:

ipad = the byte 0x36 repeated b times

opad = the byte 0x5C repeated b times

There can virtually be HMAC equivalents for all MIC functions. If H is the MIC function for which the HMAC equivalent is being calculated, and K is the secret K to protect the MAC, then:

MAC(text) = HMAC(K, text)

= H((K XOR opad) || H((K XOR ipad) || text))

Similar to MICs, HMACs always have a fixed size, which is the same as the corresponding MIC. If the result from the above calculation is longer than the standard hash size, only the leftmost part of it is used so that the HMAC size is adjusted accordingly. To denote the use of a particular MIC, HMACs are typically referred to as HMAC-MD5 (denoting the use of MD5) or HMAC-SHA1 (denoting the use of SHA-1).

MD2.5

RFC 1964 (see [51]) defines a keyed MD5 variant referred to as MD2.5. This MAC algorithm only uses half (i.e., 8 bytes) of the MIC generated by MD5. Before generating the MD5 hash, the MD2.5 algorithm also prepends the cleartext to be hashed with the result from the DES-CBC encryption of a message consisting of all 0’s with a zero initial vector and the protection key in reverse order as the key. The MD2.5 algorithm is considered a MAC because the string prepended to the cleartext depends on the protection key.

DES-CBC MAC

As already discussed, block ciphers in cipher block chaining (CBC) mode are capable of using feedback between blocks, so that the encryption of each block, as well as the cryptotext for the block, depend on all previous blocks of the message. This has led researchers to use DES-CBC as a message authentication code. The last encrypted block from a message will be generated with feedback from all previous blocks, and the DES algorithm uses a key to perform encryption. Therefore, if only the last block of a message is taken, the entire message cannot be restored (so the algorithm is irreversible, which is a requirement), the block depends on all previous blocks of the message and is protected with a key (the DES key). DES-CBC MACs are not as widely used as HMAC functions but are a secure way for protecting message integrity. A variant of DES-CBC MAC is DES-CBC MD5, whereby as a final round, a 16-byte MD5 hash is calculated for the DES-CBC MAC.

RSA Signature (Asymmetric Algorithm)

The RSA Signature algorithm is based on the RSA encryption algorithm. If a message m needs to be signed, RSA Signature requires the sender of the message to sign it using his own private key (n, d) and the following formula:

  • s = md mod n

Essentially, the above formula represents RSA Encryption using the sender’s private key. Because only the sender possesses his public key, no one else can generate the signature s from the message m. A recipient can verify the signature of the message s by decrypting s using the sender’s public key (n, e). The signature algorithm described above is based on encryption and provides for assurance that the sender and the message are genuine. In RSA implementations, however, the algorithm used to generate an RSA signature is a bit different. The signature of a message in RSA implementations is not represented by the actual message, encrypted in the sender’s private key. To generate a signature, the sender first generates a hash of the message, using an MIC algorithm supported by both the sender and the recipient, such as MD5. The hash itself is then encrypted in the sender’s private key and attached to the actual message. Therefore, the message is not encrypted but it has an encrypted hash (called signature) attached to it that can validate both the sender and the message. Upon receipt of the message, the recipient needs to calculate the same hash for the cleartext message, and then decrypt the signature using the sender’s public key. If the calculated and the decrypted hash for this message match, the message and the sender are genuine. If they do not match, either the sender does not possess the private key (and therefore may be an attacker claiming to be the real sender of the message) or the message has been tampered with (an attacker has maliciously modified the message).

DSA/DSS (Asymmetric Algorithm)

The Digital Signature Algorithm (DSA) is another public key cryptographic technique used for data signing. The use of the DSA for data signing is defined as the NIST Digital Signature Standard (DSS) in [131].

DSA is very similar to RSA but does not provide for message encryption — only for message signing. Key sizes for DSA are 512 or 1024 bits. DSA uses SHA-1 as the hashing algorithm.

It is important to note that RSA signature generation is a relatively slow process, whereas RSA signature verification is a fast process. With DSA, signature generation is a fast process while signature verification is a slow, processor-intensive process. Due to the fact that the signature is generated only once and then verified many times, RSA supporters claim that the RSA signature is more efficient than DSS because it consumes less cycles. Considering the processing power of today’s computers, however, this is becoming less important.

DSA is currently considered a secure algorithm and is used in a number of applications and authentication schemes.