ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Шпаргалки з криптографії
         

     

    Інформатика, програмування

    I. Загальна частина.

    Q: Що таке криптографія, кріптологія, криптоаналіз?

    A: Криптология - це наука про шифри і все, що з ними пов'язано.

    Криптология прийнято поділяти на криптографію і криптоаналіз.

    Якщо криптограф займається питаннями захисту інформації за допомогою

    криптографічних методів, то криптоаналітика, навпаки, намагається

    цей захист подолати. Чия робота складніше - питання складне, але

    існує усталена думка, що тільки хороший криптоаналітика,

    який має великий досвід в "розколюванні" шифрів може розробити

    хороший (стійкий) новий шифр.

    Q: А що таке стеганогpафія?

    A: Це ще один спосіб приховування інформації. Іноді буває простіше скритої сам

    факт наявності секpетной КВАЛІФІКАЦІЙНА, ніж сподіватися на стійкість

    кpіптоалгоpітма. Використовувані методи залежать від технічних можливостей і

    фантазії автора. Пpімеpом стеганогpафіі можуть служити "випадкові" точки на

    ізобpаженіі, "шум" в звуковій КВАЛІФІКАЦІЙНА і т.д. в котоpие вкpапляется важлива

    і секpетная КВАЛІФІКАЦІЙНА. Можна комбініpовать стеганогpафію і шіфpованіе.

    Q: Що таке шифр?

    A: шифр прийнято називати оборотний спосіб перетворення інформації з метою

    захисту її від перегляду, в якому використовується якийсь секретний елемент.

    Вихідна інформація в цьому випадку буде називатися відкритим текстом, а

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

    Якщо давати строге визначення, то шифр є сукупність усіх можливих

    криптографічних перетворень (їх число дорівнює числу всіх можливих ключів),

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

    назад.

    * Алгоритм шифрування - формальний опис шифру.

    * зашифрування - процес перетворення відкритого тексту в шифртексту с

    використанням ключа.

    * розшифрування - процес відновлення відкритого тексту з шифртексту

    з використанням ключа.

    * Дешифрування - процес відновлення відкритого тексту з шифртексту

    без знання ключа.

    * Ключ - змінний елемент шифру, що дозволяє зробити сам алгоритм

    шифрування відкритим і використовувати його багато разів, змінюючи лише ключ.

    Q: Що таке "криптування"?

    A: Слівце, що використовується дилетантами замість стандартного терміну шифрування,

    що видає в них повних ламеров. Hастоящіе фахівці-криптограф ніколи

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

    "закріптованние дані", "раскріптованіе", і т.д

    Q: Що таке криптографічний протокол?

    A: Кpіптогpафіческій пpотокол - є алгоpітм обміну КВАЛІФІКАЦІЙНА (не

    обов'язково секpетной!) між учасниками, якому можуть бути як

    сопеpнікамі, так і соpатнікамі. В основі криптографічних протоколів можуть

    лежати як симетричні криптоалгоритми, так і алгоритми з відкритим ключем.

    Криптографічний протокол вважається стійким, якщо в процесі його використання

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

    Q: Що таке "інші криптографічні параметри"?

    A: У це поняття входять вузли заміни, сінхропосилкі та інші

    змінні параметри, що не є ключами.

    Q: Навіщо використовувати DES, ГОСТ, Rijndael, інші опубліковані

    алгоритми? Раз їх дозволили опублікувати, значить, у них є

    діри. Я вчора придумав свій супер-алгоритм, його-то точно ніхто

    зламати не зможе. Чому б не використати його?

    A: Придумати алгоритм - це 5% роботи. Решта 95% - переконатися

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

    час). Це складно. Це не під силу одній людині.

    Ті алгоритми, які у всіх на слуху, аналізували сотні

    (тисячі) кваліфікованих людей, у тому числі й ті, хто не

    знаходиться на державній службі. Якщо _все_ вони говорять,

    що дірок немає - з імовірністю 0.9999 вони мають рацію.

    З іншого боку, якщо хочеш винайти свій власний

    алгоритм, спочатку Зламай пару-трійку чужих.

    Q: А навіщо pазбіpаться в алгоpітме. Хіба не за тим, щоб його потім зробити?

    A: Перш за все розбиратися - для того, щоб ПОHЯТЬ, які алгоритми слід

    застосувати і як їх правильно зістикувати між собою. А знайти (при

    необхідності) в І-неті исходник, якщо точно знаєш, що шукати - не проблема.

    Ну, або тут попросити 8-))

    Q: Hу от я винайшов алгоритм, допоможіть мені перевірити, що він надійний.

    Я зашифрував їм файл, зашифрований файл помістив в лист.

    Розшифруйте його! Сам алгоритм я не покажу - секрет фірми.

    A1: Поспішаю розчарувати: нікому з присутніх у Ехе людей

    нецікаво займатися фигней. А саме ламати алгоритм

    тільки за зашифрованого тексту. Якщо комусь дуже треба

    буде подивитися зашифровані дані - він роздобуде

    алгоритм (купить екземпляр програми для себе, вкраде і т.п.).

    Так що немає ніяких підстав приховувати самі алгоритм: якщо

    він - твоя інтелектуальна власність, запатентує його.

    З цих же причин немає підстав довіряти алгоритмами,

    розробники яких тримають їх у секреті.

    A2: Криптографія завжди має слідувати правилу Керкхоффа: весь механізм

    шифрування крім значення секретного ключа, відомий криптоаналітика

    супротивника (часто це правило формулюється так: стійкість шифру повинна

    визначатися тільки секретністю ключа).

    Q: Я хочу захистити свою інформацію, зашифровану її ...

    A: Величезна кількість людей HЕ ПОHІМАЕТ, що шифрування не є єдиний і

    універсальний спосіб приховати свої секрети, а всього лише спосіб зменшити свої

    проблеми, замінивши один (великий) секрет на іншій (маленький).

    Q: Чи існує абсолютно стійкий шифр?

    A: Клод Шеннон у своїх працях ввів поняття стійкості шифру і показав, що

    існує шифр, що забезпечує абсолютну таємність. Іншими словами, знання

    шифртексту не дозволяє противнику поліпшити оцінку відповідного відкритого

    тексту. Ним може бути, наприклад, шифр Віженера за умови використання

    нескінченно довгого ключового слова і абсолютно випадкового розподілу

    символів в цьому слові. Очевидно, що практична реалізація такого шифру

    (нескінченна випадкова стрічка) неможлива (точніше, в більшості випадків -

    економічно невигідна), тому зазвичай розглядають практичну стійкість

    шифру, чисельно що вимірюється часом (або числом елементарних операцій),

    необхідним на його злом (з урахуванням поточного рівня розвитку техніки). До речі,

    першим запропонував використовувати такий шифр Верна, але обгрунтування дав саме

    Шеннон.

    Абсолютно стійкий шифр - це абстрактно-математичне поняття, з практикою не

    має майже нічого спільного. Абсолютно стійкий шифр може виявитися абсолютно

    _не_стойкім проти таких атак, як physical attack або social engineering

    attack (див. нижче) - все залежить від реалізації.

    Q: От кажуть іноді "симетричні шифри", "криптографія з відкритим ключем".

    Поясніть, що це за поділ?

    A1: Симетричні шифри (криптосистеми) - це такі шифри, в яких для

    зашифрування і розшифрування інформації використовується один і той же ключ. В

    несиметричних системах (системах з відкритим ключем) для зашифрування

    використовується відкритий (публічний) ключ, відомий всім і кожному, а для

    розшифрування - секретний (особистий, закритий) ключ, відомий тільки

    одержувачу.

    A2: Симетричні шифри (криптосистеми) - це такі шифри, в яких

    алгоритми зашифрування і розшифрування можуть бути _еффектівно_ побудовані за

    одного й того самого ключа.

    II. Симетричні шифри.

    Q: А що значить блочне/потокове шифрування?

    A: Блочна криптосистема (блочний шифр) розбиває відкритий текст M на

    послідовні блоки M1, M2, ..., Mn і застосовує криптографічне

    перетворення до кожного блоку. Потокова криптосистема (поточний шифр)

    розбиває відкритий текст M на букви або біти m1, m2 ,..., mn і застосовує

    криптографічне перетворення до кожного знаку mi відповідно зі знаком

    ключового потоку ki. Потокове шифрування часто називають гамування.

    Потоковий шифр може бути легко отримана з блокового шляхом застосування

    спеціального режиму (див. нижче).

    Q: Що таке ECB, CBC, OFB, CFB?

    A: Це режими роботи блокових шифрів. ANSI X3.106 (1983)

    ECB

    Electronic Code Book Mode (режим електронної кодової книги, режим простий

    заміни). У цьому режимі всі блоки тексту шифруються незалежно, на одному і тому ж

    ключі, відповідно до алгоритму.

    SM

    Stream Mode (поточний режим, режим гамування). У цьому режимі відкритий текст

    складається за модулем 2 з гамою шифру. Гамма отримують у такий спосіб:

    за допомогою генератора формується попередня гамма (початкове заповнення

    цього генератора - так звана сінхропосилка - не є секретом і

    передається по каналу у відкритому вигляді). Попередня гамма піддається

    зашифрованими в режимі ECB, внаслідок чого і виходить основна гама, с

    якої складається відкритий текст. Якщо останній блок неповний (його довжина

    менше стандартного для даного алгоритму розміру блоку), береться тільки

    необхідну кількість біт гами.

    CFB

    Cipher Feedback Mode (гамування зі зворотним зв'язком). У цьому режимі відкритий

    текст також складається за модулем 2 з гамою шифру. Гамма отримують у такий

    чином: спочатку шифрується (в режимі ECB) сінхропосилка (вона також передається

    по каналу в відкритому вигляді). Результат шифрування складається по модулю 2 с

    першим блоком відкритого тексту (виходить перший блок шифртексту) і знову

    піддається зашифрування. Отриманий результат складається з другим блоком

    відкритого тексту і т.д. Обробка останнього блоку - аналогічно попередньому

    режиму.

    OFB

    Output Feedback Mode (гамування зі зворотним зв'язком по виходу). Як і в

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

    складається за модулем 2 з першим блоком відкритого тексту - виходить перший

    блок шифртексту. Далі, результат шифрування з попереднього кроку (до складення!)

    шифрується ще раз і складається з наступним блоком відкритого тексту. Таким

    чином, гамма шифру виходить шляхом багаторазового шифрування сінхропосилкі в

    режимі ECB. Обробка останнього блоку - аналогічно попереднього режиму.

    Легко бачити, що наведене визначення OFB повністю збігається з

    визначенням SM. І це відповідає криптографічного практиці зокрема в

    [1.2, p 203] просто немає SM, а OFB визначається так:

    Ci = Pi ^ Si; Si = Ek (Si-1) - шифрування

    Pi = Ci ^ Si; Si = Ek (Si-1) - розшифрування

    У той же час можна зустріти інше визначення OFB, на приклад,

    http://msdn.microsoft.com/library/psdk/crypto/aboutcrypto_9omd.htm.

    Там же рекомендовано встановити розмір зсуву рівний розміром блоку

    блочного шифру з причин стійкості. Однак, така установка призводить

    до повного збігу з режимом SM. Зокрема для DES, завжди застосовують

    ofb64bit.

    CBC

    Cipher Block Chaining Mode (режим зчеплення блоків). У цьому режимі черговий

    блок відкритого тексту складається за модулем 2 з попереднім блоком шифртексту,

    після чого піддається зашифрованими в режимі ECB. Для самого першого блоку

    "попереднім блоком шифртексту" є сінхропосилка. Якщо останній блок

    відкритого тексту неповний - він доповнюється до необхідної довжини.

    Q: Що таке "гама" і "гамування"?

    A: Гамма - це псевдовипадкових числова послідовність, що виробляється за

    заданому алгоритму і використовується для зашифрування відкритих даних і

    розшифрування зашифрованих. Гамування прийнято називати процес накладення

    за певним законом гами шифру на відкриті дані для їх зашифрування.

    Q: А у поточного шифрування які бувають режими?

    A: Шифрування послідовності зі зворотним зв'язком (загортає

    кріптотекст на вхід ДСП (генератор випадкової послідовності, роль якого

    грає алгоритм шифрування) шифрування ключів зі зворотним зв'язком. Див режим CFB

    для блочних шифрів.

    Q: Що таке архітектура "Квадрат" (SQUARE)?

    A. Це архітектура побудови блокових шифрів із секретним ключем, вона має

    такі особливості:

    - вона є варіантом загальних SP-мереж (за один раунд шіфруемий блок

    перетвориться цілком), побудованих за схемою KASLT (Key Addition -

    Substitution - Linear Transformation);

    - архітектура байт-орієнтована, шіфруемий блок представляється у вигляді

    матриці байтів, заміна також виконується побайтно, на кожному раунді може

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

    - лінійне перетворення (третій крок раунду) двофазове, складається з

    перестановки байтів в матриці і незалежного лінійного комбінування

    окремих стовпців (або рядків) матриці. Сенс цієї двофазної - дифузія

    змін у двох напрямках - по рядках і по стовпцях;

    У даній архітектурі заміна призводить до дифузії змін всередині байти,

    лінійне перетворення - у двох вимірах матриці, у результаті отримуємо, що

    будь-яка зміна в даних дифундує на весь блок всього за 2 раунду.

    В архітектурі "квадрат" виконані шифри AES (Rijndael), Square ( "квадрат",

    його назва дала ім'я всій архітектурі), Crypton (один з кандидатів на

    AES). Друге місце в конкурсі AES зайняв інший KASLT-шифр, Serpent. Справа

    йде до того, що KASLT-мережі і, зокрема, архітектура SQUARE, в найближчому

    майбутньому стануть безроздільно домінувати.

    Q: А які є симетричні алгоритми шифрування?

    A: Та їх не злічити! ;) Наведемо найбільш відомі:

    Шифр Цезаря

    Великий імператор, з метою приховування змісту написаного замінював кожну

    літеру на третьому наступну за нею по рахунку букву алфавіту. Цезар застосовував

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

    довжина алфавіту. Це число і є ключем в даному шифрі:

    А Б В Г Д Е Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ъ Ю Я

    Г Д Е Е Ж 3 І И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ъ Ю Я А Б В

    Криптографія -> НУЛТХСЕУГЧЛВ

    Шифр Віженера

    є модифікацією шифру Цезаря, в якому величина зсуву є

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

    слова використовувати слово "ТАЙНА", то це буде означати, що першу літеру

    повідомлення необхідно зрушити на 20 (порядковий номер літери "Т"), друге -

    на 1 (порядковий номер літери "А"), третій - на 11, четверту - на 15,

    п'ятий - на 1, шосту - знову на 20 (ключове слово починаємо використовувати

    з початку) і т.д. Таким чином, ключове слово "накладається" на захищається

    текст.

    Шифр Вернама

    Алгоритм був винайдений в 1917 р. співробітником компанії AT & T на прізвище

    Vernam і називається одноразовим блокнотом (one-time pad).

    У цьому алгоритмі ключ являє собою послідовність бітів не менше

    довгу, ніж шіфруемое повідомлення m.

    Результат шифрування отримується в результаті побітового складання по модулю 2

    повідомлення та ключа.

    Розшифровка полягає в побітового складання шифрограми з ключем.

    Відзначимо, що даний алгоритм втрачає свою надійність, якщо два повідомлення

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

    складання шифрограму можна виключити біти ключа, а вийшла побітового

    сума осмислених повідомлень піддається методів статистичного аналізу.

    Ключ повинен бути надійним чином переданий адресату, що саме по собі не

    простіше, ніж передача повідомлення. Єдина вигода методу полягає в тому,

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

    коли це буде потрібно.

    AES.

    Переможцем конкурсу став AES алгоритм Rijndael (див. нижче).

    BlowFish.

    Блочний алгоpітм, сбалансіpованная мережа Файстеля, 16 ітеpацій пpосто

    кpіптогpафіческого пpеобpазованія. Довжина ключа 40 - 448

    біт, звідси складна фаза ініціалізації до опеpацій шіфpованія.

    Розроблений в 1993 році.

    Автор: Брюс Шнаейр (Bruce Schneier)

    Параметри:

    - Pазмер блоку 64 біта

    - Pазмер ключа 32-448 біт

    - число раундів 16

    CAST.

    У певному сенсі аналог DES.

    Автори: C.M. Adams і S. E. Tavares.

    Параметри:

    CAST-128

    - розмір блоку 64 біта

    - розмір ключа 128 біт

    - число раундів 16

    CAST-256

    - розмір блоку 128 біт

    - розмір ключа 256 біт

    DEAL.

    Базується на DES (DEA). Уувеліченіе довжини блоку зменшує ймовірність вдалої

    кріптоатакі методом порівняння криптограми, рівень стійкості шифрування

    можна порівняти з рівнем triple-DES.

    Автор: Lars R. Knudsen.

    Параметри:

    - розмір блоку 128 біт

    - розмір ключа 128/192/256 б?? т

    - число раундів: 6 (DEAL-128, DEAL-192), 8 (DEAL-256)

    DES.

    Алгоритм з ефективною довжиною ключа в 56-bits (хоча часто говорять про 8 байтах,

    але старший біт в байті не використовується).

    Автор: National Institute of Standards and Technology (NIST).

    Параметри:

    - розмір блоку 64 біта

    - розмір ключа 56 біт

    - число раундів 16

    IDEA (International Decryption-Encryption Algorithm)

    Час/місце розробки 1990-1991 роки, Цюріх, Швейцарія.

    Архітектура Загальна збалансована шифруюча SP-мережа, інваріант раунду -

    побітового сума по модулю 2 старшої та молодшої половин блоку.

    Автори: Xuejia Lai, James Massey.

    Параметри:

    - Pазмер блоку 64 біта

    - Pазмер ключа 128 біт

    - число раундів 8

    Lucifer.

    перший (опублікований у відкритій пресі) блочний алгоритм. Предтеча DES

    Автор: Horst Feisstel, Walter Tuchman (IBM)

    тип - мережа Файстеля

    Параметри:

    - розмір блоку 128 bit

    - розмір ключа 128 bit

    - число раундів 16.

    У кожному використовується з'єднання в 72 біта, породжуваний з головного

    ключа оскільки має більший розмір ключа і блоку по відношенню до DES,

    тому більш стійкий до діфф. криптоаналіз

    NewDES.

    Створений в 1985 як творча переробка DES. Це самостійний алгоритм, а

    не варіант DES. NewDES дещо простіше, ніж DES, оскільки в нього немає початковій

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

    битами як в DES. Brute-force атака на NewDES вимагає 2 ^ 119 операцій, проти

    2 ^ 111 для TripleDES.

    Автор: Robert Scott.

    Параметри:

    - розмір блоку 64 біта

    - розмір ключа 120 біт

    - число раундів 17

    RC2.

    Блочний алгоpітм шіфpованія. Довжина ключа пpеменная - від 8 до 1024 біт.

    Разpабативался під 16-ти бітне слово. Реалізyет

    16 pаyндов "пеpемешівающіх" (mixing) і 2 pаyнда "pазмазивающіх" (mashing)

    пpеобpазованій. Описано в RFC2268. Разpаботал Ron Rivest (RSA Laboratories).

    Режими: ECB, CBC, CFB 8bit, OFB, OFB counter 8bit

    ECB, CBC, OFB: шифрують дані блоками по 64 біти (8 байт)

    CFB, OFBC: шифрують дані блоками по 8 біт (1 байту)

    Автор: RSA Data Security (Ron Rivest)

    /RC - Ron's Code/

    Параметри:

    - розмір блоку 64 біта

    - розмір ключа до 1024 біт

    - число раундів 16

    RC4.

    Описувати RC4 просто. Алгоритм працює в режимі OFB: потік ключів не

    залежить від відкритого тексту.

    Використовується S-блок розміром 8 * 8: S0, S1,. . . , S255. Елементи

    представляють собою перестановку чисел від 0 до

    255, а перестановка є функцією ключа змінної довжини. В алгоритмі

    застосовуються два лічильника, i і j,

    з нульовими початковими значеннями.

    Для генерації випадкового байти виконується наступне:

    i = (i + 1) mod 256

    j = (j + Si) mod 256

    поміняти місцями Si і Sj

    t = (Si + Sj) mod 256

    K = St

    Байт K використовується в операції XOR з відкритим текстом для отримання

    шіфротекста або в операції XOR з шіфротекстом для отримання відкритого

    тексту. Шифрування виконується приблизно в 10 разів швидше, ніж DES.

    Також нескладна і ініціалізація S-блоку. Спочатку заповнимо його лінійно:

    S0 = 0, S1 = 1,. . . , S255 = 255. Потім заповнимо ключем другий 256-байтовий

    масив, при необхідності для заповнення всього масиву повторюючи ключ: K0, K1,

    . . . , K255. Встановимо значення індексу j рівним 0. Потім:

    for i = 0 to 255:

    j = (j + Si + Ki) mod 256

    поміняти місцями Si і Sj

    Автор: RSA Data Security (Ron Rivest)

    /RC - Ron's Code/

    RC5

    Блочний шифр із змінними параметрами.

    Режими: ECB, CBC, CFB 8bit, OFB, OFB counter 8bit

    Шифр RC5 "словооріентірованний"; всі найпростіші обчислювальні операції

    виробляються над w-бітними словами. RC5 блочний шифр з розмірністю вхідного і

    вихідного блоків 2 слова. Номінальний вибір для w - 32 бита, при якому

    вхідний і вихідний блоки RC5 мають розмір 64 біта. У принципі, RC5 допускає

    будь-яке значення w> 0, проте для простоти беруть допустимі значення w - 16,

    32 і 64 біта.

    Число раундів r є другим параметром RC5. Вибір більшого числа раундів

    збільшує ступінь захисту. Можливі значення для r: 0,1 ,..., 255.

    Зауважимо також, що RC5 має розширену ключову таблицю S, що отримується з

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

    залежить від числа раундів r і становить t = 2 (r +1) слів. Вибір більшого числа

    раундів, таким чином, збільшує вимоги до пам'яті.

    Для запису параметрів RC5 застосовують наступну нотацію: RC5-w/r/b. Наприклад,

    запис RC5-32/16/10 означає, що використовуються 32-бітові слова, 16 раундів і

    10-байтовий (80-бітний) секретний ключ, а також розширена ключова таблиця

    розміром 2 (16 +1) = 34 слів. "Номінальним" набором параметрів вважається

    RC5-32/12/16 (розмір слова 32 біти, число раундів - 12 і 16-байтовий ключ).

    ECB, CBC, OFB: шифрують дані блоками по 64 біти (8 байт)

    CFB, OFBC: шифрують дані блоками по 8 біт (1 байту)

    Автор: RSA Data Security (Ron Rivest)

    /RC - Ron's Code/

    Параметри:

    - розмір блоку 32/64/128 біт

    - розмір ключа до 2048 біт

    RC6

    Блочний шифр

    Автор: RSA Data Security (Ron Rivest)

    /RC - Ron's Code/

    Параметри:

    - розмір блоку 128 біт

    - розмір ключа до 2048 біт

    - число раундів 16-24

    Rijndael.

    Є нетрадиційним блоковим шифром, оскільки виконаний в архітектурі

    SQUARE. Алгоритм представляє кожен блок кодованих даних у вигляді двовимірного

    масиву байт розміром 4х4, 4х6 або 4х8 в залежності від встановленої довжини

    блоку. Далі на відповідних етапах перетворення виробляються або над

    незалежними стовпцями, або над незалежними рядками, або взагалі над

    окремими байтами в таблиці.

    Автор: Joan Daemen and Vincent Rijmen

    Параметри:

    - розмір блоку 128, 192, 256 біт, як AES допускається

    використання шифру з розміром блоку 128 біт;

    - розмір ключа 128, 192, 256 біт

    - число раундів 10, 12, 14. Залежить від розміру блоку (Nb) і ключа (Nk),

    заданих в бітах, за такою формулою: Nr = max (Nb, Nk)/32 +6;

    SAFER.

    Автор: J. L. Massey

    Параметри:

    - розмір блоку 64 біт

    - розмір ключа 64/128

    - число раундів, r:

    SAFER K64 6 (5

    SAFER SK64 8 (5

    SAFER K128 10 (9

    SAFER SK128 10 (9

    SAFER + ( "Secure And Fast Encryption Routine")

    один з кандидатів на AES

    Автор: Cylink Corporation

    Параметри:

    - розмір блоку 16 байт

    - розмір ключа 128/192/256

    - число раундів 8/12/16

    Skipjack.

    Старанно пропихається Держдепом США симетричний алгоритм шифрування з

    розділяються ключем і бекдор. Використовується в чіпах Clipper і Capstone, які

    хочуть засунути до Інтернет унітазів включно :).

    Цікавий тим, що ламається 31 раунд (за аналогією з DES запас зроблений

    мінімальний). Ще цікавий тим, що за аналогією з ГОСТ ключове розширення

    виходить простим повторенням ключа.

    Режими: ECB, CBC, CFB 8bit, OFB, OFB counter 8bit

    ECB, CBC, OFB: шифрують дані блоками по 64 біти (8 байт)

    CFB, OFBC: шифрують дані блоками по 8 біт (1 байту)

    Автор: NSA

    Параметри:

    - розмір блоку 64 біта

    - розмір ключа 80 біт

    - число раундів 32

    TEA (Tiny Encryption Algorithm).

    Автори: David Wheeler, Roger M. Needham

    Параметри алгоритму:

    - розмір блоку - 64 біта.

    - розмір ключа - 128 біт.

    TripleDES.

    Алгоритм зашифрування полягає в наступному: початковий текст зашифровується DESом

    з ключем K1, результат розшифровується DESом з ключем K2, а цей результат

    знову зашифровується DESом з ключем K1. Разом довжина ключа 112 біт.

    Іноді застосовують 3 різних ключі, але стійкість від цього не змінюється.

    DES - не група, тобто композиція двох операцій шифрування з різними

    ключами не є в загальному випадку DES-шифруванням з деякими третіми

    ключем [2.5]. Отже, можна намагатися збільшити простір ключів

    за рахунок багаторазового застосування DES.

    Подвійний DES, c = К1 (К2 (m)), не забезпечує збільшення в 2 в 56 ступені

    раз обсягу перебору, необхідного для визначення ключа, оскільки при

    атаці з відомим відкритим текстом можна підбирати паралельно вихідний

    текст m і шифрограму c, накопичувати в хеш-таблиці значення К2 (m), К1 ^ -1 (c)

    і шукати збігу між ними.

    Потрійний DES рекомендується фахівцями як заміну DES:

    У режимі ECB c = К1 (К2 (К3 (m))) або c = К1 (К2 ^ -1 (К3 (m )))

    В інших режимах c = К1 (К2 ^ -1 (К1 (m )))

    Застосування функції розшифрування на другому кроці пояснюється бажанням досягти

    сумісності з одноразовим алгоритмом DES у випадку, якщо всі ключі рівні.

    Потрійне шифрування з двома ключами все одно зводиться до одинарному при

    використанні атаки з вибором відкритого тексту [2.6].

    Автор: NIST ANSI X9.17, "American National Standard, Financial Institution

    Key Management (Wholesale) ", 1985.

    ISO/IEC 8732:1987, "Banking - Key Management (Wholesale )".

    Параметри:

    - розмір ключа 112 біт

    - інше - див DES

    ГОСТ 28147-89

    Російський федеральний стандарт шифрування. Фактично, описує кілька

    алгоритмів (режими роботи ГОСТ). Крім ключа йому необхідна ще одна таблиця

    (таблиця замін, 128 осередків 4-бітових чисел) для формування вузлів заміни. ГОСТ

    її не визначає, тому вона може розглядатися як довготривалий ключовою

    елемент. Визначено наступні режими роботи: режим простої заміни (ECB), режим

    гамування (SM) та режим гамування зі зворотним зв'язком (OFB). Кілька

    осібно стоїть режим вироблення імітовставки. У принципі, у нього таке ж

    призначення як у хеш-функції, тільки її значення ще залежить від секретного

    ключа. З отриманого в результаті 64 бітного значення вибирається l бітів, де

    l <= 32. Мінімальний розмір даних для імітозащіти - 2 64-бітових блоку.

    Автор: КДБ СРСР

    Параметри:

    - розмір блоку 64 біта

    - розмір ключа 256 біт

    - число раундів 32 (16 - для імітовставки)

    Q: Які мають бути правила побудови таблиць (вузлів) заміни в Гості?

    A: Основне завдання - зробити S-box'и (так називають ці таблиці) стійкими до

    диференціальне та лінійному криптоаналіз. Можна спробувати

    сформулювати критерії, дивлячись на ті критерії, які Тучман використовував у

    початку 70-х для DES./* Знадобилося близько 10 місяців */

    Отже, можна сформулювати такі правила:

    1. Hі один вихідний біт не повинен скільки-небудь добре наближатися лінійної

    функцією від вхідних біт.

    2. Якщо два вхідних значення відрізняються на один біт, вихідні значення

    повинні відрізнятися не менш ніж на 2 біти.

    3. Якщо два вхідних значення відрізняються у двох сусідніх бітах (як мінімум

    центральних), то вихідні значення повинні відрізнятися не менш ніж на 2 біти.

    4. Для будь-якого значення XOR між вхідними значеннями, слід мінімізувати

    кількість пар, чиї XOR на вході і на виході рівні цього значення (це

    вельми хитромудрий вимога випливає з спроби захиститися від

    диференціального

    криптоаналізу).

    5. S-box'и не повинні бути схожі один на одного. Hаприклад, кількість вхідних

    значень, що дають одне і теж значення на виході з різних S-box'ов, повинно

    бути мінімально.

    6. Вузли заміни в ідеалі повинні враховувати особливості вхідного тексту: якщо

    використовуються тільки алфавітно-цифровий діапазон ASCII-таблиці, то він повинен

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

    статистичні властивості відкритого тексту.

    A2: Запросити вузол заміни в ФАПСИ.

    III. Несиметричні шифри.

    Q: А які є несиметричні алгоритми шифрування?

    A: А ось цих небагато:) В принципі, вся несиметрична криптографія будується

    на 2 проблеми: проблеми розкладання великого числа на прості множники і

    проблеми дискретного логарифмування. Власне, для шифрування використовується

    алгоритм RSA (Rivest-Shamir-Adleman), розроблений в 1977 році математиками

    Роном Райвестом (R. Rivest), Аді Шамір (A. Shamir) та Леонардом Аделманом

    (L. Adleman). Використовується не тільки для шифрування, але і для формування ЕЦП.

    Схема приблизно така:

    Абонент А, що бажає вступити в листування, ЗАРАHЕЕ:

    - виробляє різні прості числа p, q, приблизно рівною розрядності,

    і обчислює n = p * q;

    - генерує випадкове числі e

    e * d == 1 (mod ф (n)); (ф (n) - функція Ейлера)

    - розсилає відкритий ключ (e, n);

    - зберігає в таємниці секретний ключ (p, q, d).

    Абонент B, бажаючий зашифрувати повідомлення для абонента А, виконує наступні

    дії:

    - відкритий текст розбивається на блоки, кожний з яких представляється як

    число m, 0 <= m <= (n-1), і перетвориться в блок c, 0 <= c <= (n-1),

    шифрованого тексту з = E (n, e, m) = m ^ e (mod n).

    Для РАСШІФРОВАHІЯ абонент А виконує наступні дії:

    - обчислює m '= E (n, d, c) = c ^ d (mod n).

    A2:

    Якщо приводити до фундаментальних математичним

    проблем, то всі існуючі алгоритми з відкритим ключем прагнуть

    будувати таким чином що б вони були схожі на Поліноміальні для

    власника особистого ключа і на NP-повні проблеми для всіх інших.

    В [1.2, pp. 461-482] приведено

    9 таких систем (ну, скажімо, популярні нині еліпіческіе криві це просто

    зміна кінцевого поля, ще парочку можна звести до інших, але 6 принципово

    різних алгоритмів є).

    У той же час доказів NP-повноти немає ні у більшості з них, а про RSA

    є серйозні підозри на його поліноміальною.

    Усіх їх можна використовувати для шифрування, але більшість (крім RSA) можна

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

    коректно сказати, що RSA можна використовувати тільки для шифрування (у ньому

    навіть ЕЦП є формою шифрування, так і пишуть: encrypted digest:)

    IV. Хеш-функція.

    Q: Що таке хеш-функція (hash, hash-function)?

    A: Це перетворення, яке отримує з даних довільної довжини якесь значення

    (згортку) фіксованої довжини. Найпростішими прикладами є контрольні

    суми (наприклад, crc32). Бувають криптографічні і програмістські хэши.

    Криптографічний хеш відрізняється від програмістської наступними

    двома властивостями: необоротністю і вільний від колізій.

    Позначимо m - вихідні дані, h (m) - хеш від них. Hеобратімость

    означає, що якщо відомо число h0, то важко підібрати m таке,

    що h (m) = h0. Вільний від колізій означає, що важко

    підібрати такі m1 і m2, що m1! = m2, але h (m1) = h (m2).

    Криптографічні хеш-функції поділяються на два класи:

    - хеш-функції без ключа (MDC (Modification (Manipulation) Detect Code) - коди),

    - хеш-функції c ключем (MАC (Message Authentication Code) - коди).

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

    - слабкі хеш-функції,

    - сильні хеш-функції.

    Слабкою хеш-функцією називется одностороння функція H (x), яка задовольняє

    таким умовам:

    1) аргумент х може бути рядком біт довільної довжини;

    2) значення H (x) має бути рядком біт фіксованої довжини;

    3) значення H (x) легко вирахувати;

    4) для будь-якого фіксованого x обчислювально неможливо знайти інший

    x '! = x, такий що H (x') = H (x).

    Пара x '! = x, коли H (x') = H (x) називається колізією хеш-функції.

    Сильною хеш-функцією називається одностороння функція H (x), яка задовольняє

    умовами 1-3 для слабкої хеш-функції і властивості 4 ':

    4 ') обчислювально неможливо знайти будь-яку пару x'! = x, такий що

    H (x ') = H (x).

    Оскільки з властивостей 1-2 випливає, що безліч визначення хеш-функції

    значно ширше безлічі значень, то колізії повинні існувати.

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

    неможливо. Вимога 4 'говорить про те, що у сильної хеш-функції

    обчислювально неможливо взагалі знайти будь-яку колізію.

    Хеш-функцією з ключем (MAC) називається функція H (k, x) задовольняє

    властивостями:

    1) аргумент х функції H (k, x) може бути рядком біт довільної довжини;

    2) значення H (k, x) має бути рядком біт фіксованої довжини;

    3) за будь-яких k і x легко вирахувати H (k, x);

    4) для будь-якого х повинно бути важко обчислити H (k, x) не знаючи k;

    5) повинно бути важко визначити k навіть при великому числі невідомих

    пар (x, H (k, x)) при вибраному наборі х або обчислити з цієї інформації

    H (k, x ') для x'! = x.

    Q: А навіщо вона потрібна?

    A: Справа в тому, що багато криптографічні перетворення (зокрема,

    обчислення і перевірка електронного цифрового підпису, ЕЦП) виконуються над

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

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

    від нього, а вже від цього значення вважають ЕЦП. Крім того, зручно, наприклад,

    паролі в базі зберігати не у відкритому вигляді, а в хешірованном (так зроблено

    у всіх Юнікс).

    Q: А які є алгоритми хеш-функцій?

    A: Ось деякі з них:

    MD2

    Автор: RFC 1319, "The MD2 Message Digest Algorithm", Burt Kaliski, 1992.

    Розмір: 128 біт.

    MD4

    Автор: RSA Data Security

    Розмір: 128 біт.

    MD5

    Капітально перероблений MD4.

    Кожна ітерація алгоритму складається з 64 операцій.

    Hедавно виявлена нестійкість до виявлення колізій [2.1.9, 2.1.10, 2.1.11],

    але поки не побудована настою?? а атака на цю функцію.

    Автор: RSA Data Security

    Розмір: 128 біт.

    SHA (Secure Hash Standard)

    Один з (відносно) нових алгоритмів пакунки.

    Функція запропонована як національного стандарту США.

    Кожна ітерація алгоритму складається з 80 операцій.

    Автор: NIST (National Institut of Standards and Technology)

    FIP-180 (Federal Information Processing Standards Publication 180)

    ANSI X9.30-2, "American National Standard, Public-Key Cryptography Using

    Irreversible Algorithms for the Financial Services Industry ", 1993.

    FIPS PUB 180, "Secure Hash Standard", 1993

    FIPS PUB 180-1, "Secure Hash Standard", 1994

    Розмір: 160 біт.

    ГОСТ Р34.11-94

    Російський алгоритм. Розмірність одержуваного значення дуже зручна

    для формування за паролем ключа для ГОСТ 28147-89.

    Автор: Стандарт ГОСТ Р 34.11-94 розроблений ГУБС

    ФАПСИ і ВHІІС, внесений ТК 22 "Інформаційні технології" і ФАПСИ, прийнятий і

    введений в дію Держстандартом Росії 23.05.94.

    Розмір: 256 біт.

    V. Електронний цифровий підпис.

    Q: Що таке електронний цифровий підпис (ЕЦП)?

    A: ЕЦП - це для автора документа спосіб переконати читачів у тому,

    що автор - саме він. Спосіб працює приблизно так.

    Спочатку автор документа (файла тощо) повинен згенерувати

    пару ключів, один секретний, один відкритий. Секретний ключ

    він залишає при собі, відкритий - передає всім потенційним

    читачам (під розпис, або за іншою довіреній каналу).

    Тепер при необхідності надіслати документ від обчислює

    деяке число (ЕЦП), яке залежить від самого файлу і від

    секретного ключа. Без знання секретного ключа це число підібрати

    вкрай складно.

    Одержувач обчислює інше число на основі отриманого файлу,

    отриманої ЕЦП і відкритого ключа. Якщо вийшла 1 - значить,

    документ не було спотворено, і автор відповідає передбачуваному.

    Якщо вийшов 0 - значить, це підробка.

    Hесложно зрозуміти, що цю систему правильніше було б назвати

    "Електронний цифровий друк", тому що підпис - це щось

    індивідуальне. А друк (як і секретний ключ) можна

    вкрасти, з усіма наслідками, що випливають.

    RSA.

    ПРЕДВАРІТЕЛЬHО:

    - ті ж попередні дії що і для алгоритми шифрування RSA.

    ВИЧІСЛЕHІЕ ПІДПИСИ:

    - c = H (m) ^ d (mod n) (H (m) - результат хешування повідомлення m);

    ПЕРЕВІРКА ПІДПИСИ:

    - перевірка равества H (m) == c ^ e (mod n).

    ('==' - операція порівняння (це не більше або менше :-)))

    Автори: Рональд Райвест (R. Rivest), Аді Шамір (A. Shamir)

    і Леонард Аделман (L. Adleman)

    Розміри ключів: будь-які, розмір модуля вибирається зазвичай не менше

    2048 біт (відповідно сума довжин e і d приблизно дорівнює довжині n)

    Розмір підпису: Равен довжині модуля.

    ElGamal

    ПРЕДВАРІТЕЛЬHО:

    1. У всій мережі вибираються просте число p, p = 2q +1, q - просте число і Alfa -

    утворює поля GF (p).

    При спеціальному виборі параметрів p і Alfa стає можливим підробляти

    підпису. Це доводиться в [3.4.2].

    Цей факт може бути використаний, якщо параметри системи породжуються

    централізовано. Тоді той, хто їх породжує, може підробляти підписи всіх

    обслуговуваних їм учасників.

    2. У всій мережі вибирається хеш-функція H зі значеннями в

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status