60 криптоалгоритмов. Частина перша: Бесключевые КА



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

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



Для зручності я буду використовувати поділ на групи за кількістю ключів:
  1. Бесключевые КА — не використовують в обчисленнях ніяких ключів;
  2. Одноключевые КА — працюють з одним ключовим параметром (секретним ключем);
  3. Двохключові КА — на різних стадіях роботи в них застосовуються два ключових параметри: секретний і відкритий ключі.
Термінологія:
  • Відкритий (початковий) текст — дані (не обов'язково текстові), передаються без використання криптографії.

  • Шифротекст, шифрований (закритий) текст — дані, отримані після застосування криптосистеми (зазвичай — з деяким вказаним ключем).
  • Ключ — параметр шифру, що визначає вибір конкретного перетворення даного тексту. В сучасних шифрах криптографічна стійкість шифру цілком визначається секретністю ключа (принцип Керкгоффса).
  • Шифр, криптосистема — сімейство оборотних перетворень відкритого тексту в шифрований.
  • Шифрування — процес нормального застосування криптографічного перетворення відкритого тексту на основі алгоритму і ключа, в результаті якого виникає шифрований текст.
  • Розшифрування — процес нормального застосування криптографічного перетворення шифрованого тексту у відкритий.
  • Асиметричний шифр, двухключевой шифр, шифр з відкритим ключем — шифр, в якому використовуються два ключі, що шифрує і який розшифровує. При цьому, знаючи лише ключ зашифрування, не можна розшифрувати повідомлення, і навпаки.
  • Відкритий ключ — той з двох ключів асиметричної системи, що вільно поширюється. Шифрувальний для секретної листування і який розшифровує — для електронного підпису.
  • Секретний ключ закритий ключ — той з двох ключів асиметричної системи, який зберігається в секреті.
  • Криптоаналіз — наука, що вивчає математичні методи порушення конфіденційності і цілісності інформації.
  • Криптоаналітик — вчений, створює і застосовує методи криптоаналізу.
  • Криптографічна атака — спроба криптоаналітика викликати відхилення в атакується захищеної системи обміну інформацією. Успішну криптографічну атаку називають злом або розтин.
  • Дешифрування (дешифрування) — процес вилучення відкритого тексту без знання криптографічного ключа на основі відомого шифрованого. Термін дешифрування зазвичай застосовують по відношенню до процесу криптоаналізу шіфротекста (криптоаналіз сам по собі, взагалі кажучи, може полягати і в аналізі криптосистеми, а не тільки зашифрованого нею відкритого повідомлення).
  • Криптографічна стійкість — здатність криптографічного алгоритму протистояти криптоаналізу.
  • Імитозахист — захист від нав'язування неправдивої інформації. Іншими словами, текст залишається відкритим, але з'являється можливість перевірити, що його не змінювали ні випадково, ні навмисно. Імитозахист зазвичай досягається за рахунок включення в пакет переданих даних імітовставки.
  • Имитовставка — блок інформації, який застосовується для имитозащиты, що залежить від ключа і даних.
  • Електронний цифровий підпис, або електронний підпис — асиметрична имитовставка (ключ захисту відрізняється від ключа перевірки). Іншими словами, така имитовставка, яку перевіряючий не може підробити.
  • Центр сертифікації — сторона, чия чесність незаперечна, а відкритий ключ широко відомий. Електронний підпис центру сертифікації підтверджує справжність відкритого ключа.
  • Хеш-функція — функція, яка перетворює повідомлення довільної довжини в число«згортку») фіксованої довжини. Для криптографічного хеш-функції (на відміну від хеш-функції загального призначення) складно обчислити зворотну і навіть знайти два повідомлення з загальної хеш-функцією.



Бесключевые КА
md2/4/5/6
MD2 — криптографічна хеш-функція, розроблена Рональдом Рівестом в 1989 році, і описана в RFC 1319. На вході повідомлення довільний довжини. Розмір хеш — 128 біт.
Як писав у свій час braindamagedman про MD5 і MD6:
Алгоритм MD5 мав колись велику популярність, але перші передумови злому з'явилися ще в кінці дев'яностих, і зараз його популярність стрімко падає.
Алгоритм MD6 — дуже цікавий з конструктивної точки зору алгоритм. Він висувався на конкурс SHA-3, але, на жаль, автори не встигли довести його до кондиції, і в списку кандидатів, які пройшли у другий раунд цей алгоритм, відсутня.

Tiger

Криптографічна хеш-функція, розроблена Росом Андерсоном і Елі Бихамом в 1995 році. Tiger був призначений для особливо швидкого виконання на 64-розрядних комп'ютерах. Tiger не має патентних обмежень, може вільно використовуватися як з еталонною реалізацією, так і з її модифікаціями. Розмір значення хеш — 192 біта (Tiger/192), хоча є також більш короткі версії для сумісності з SHA-1 (Tiger/160) і з MD4, MD5, RIPEMD, Snefru (Tiger/128). Швидкість роботи — 132 Мбіт/с (перевірено на одному процесорі Alpha 7000, модель 660). На сучасних процесорах значно швидше (навіть при тесті на 32-бітному AMD Sempron 3000+ швидкість близько 225 Мбіт/с).
Так само була реалізована Друга версія Tiger2 —відрізняється від основної тільки іншим алгоритмом додавання бітів, подібним з MD5/SHA-1. Для Tiger2 доступні тестові вектори.

Sha-1/2
Алгоритм криптографічного хешування. Описаний в RFC 3174. Для вхідного повідомлення довільної довжини (максимум 22^64-1 біт, що приблизно дорівнює 2 эксабайта) алгоритм генерує 160-бітове хеш-значення, зване також дайджестом повідомлення. Використовується в багатьох криптографічних додатках і протоколах. Рекомендовано в якості основного для державних установ в США. Принципи, покладені в основу SHA-1, аналогічні тим, які використовувалися Рональдом Рівестом при проектуванні MD4.

SHA-3
Алгоритм хешування змінної розрядності, розроблений групою авторів на чолі з Йоаном Дайменом, співавтором Rijndael, автором шифрів MMB, SHARK, Noekeon, SQUARE і BaseKing. 2 жовтня 2012 року Keccak став переможцем конкурсу криптографічних алгоритмів, проведеним Національним інститутом стандартів і технологій США. 5 серпня 2015 року алгоритм затверджено та опубліковано в якості стандарту FIPS 202. У програмній реалізації автори заявляють про 12,5 циклах на байт при виконанні на ПК з процесором Intel Core 2. Проте в апаратних реалізаціях Keccak виявився набагато швидше, ніж всі інші фіналісти.
Алгоритм SHA-3 побудований за принципом криптографічного губки.

Ripemd
Криптографічна хеш-функція, розроблена в Католицькому університеті Левена Хансом Доббертином (Hans Dobbertin), Антоном Босселарсом (Antoon Bosselaers) і Бартом Пренелом (Бартом Пренелем). Для довільного вхідного повідомлення функція генерує 160-розрядний хеш-значення, зване дайджестом повідомлення. RIPEMD-160 є покращеною версією RIPEMD, яка, в свою чергу, використовувала принципи MD4 і по продуктивності порівнянна з більш популярною SHA-1.
Існують так само 128-, 256 — 320-бітні версії алгоритму, що мають відповідні назви.

Haval
Криптографічна хеш-функція, розроблена Yuliang Zheng (англ.), Josef Pieprzyk (англ.) і Jennifer Seberry (англ.) у 1992 році. Для довільного вхідного повідомлення функція генерує хеш-значення, зване дайджестом повідомлення, яке може мати довжину 128, 160, 192, 224 або 256 біт. Кількість ітерацій — змінне, від 3 до 5. Кількість раундів на кожній ітерації — 32. Є модифікацією MD5.

P.S. Якщо кому цікаво, то майже за всіма алгоритмами, представленими в даній статті, є архіви, із реалізацією на С, С++ та Асемблері(на якомусь з мов), відповідно реалізації не мої, скажу більше використовувати їх навряд чи вийде, хоча хто знає.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.