Шифрування

Матеріал з Вікіпедії — вільної енциклопедії.
(Перенаправлено з Алгоритм шифрування)
Перейти до навігації Перейти до пошуку

Шифрува́ння — у системах обробки інформації – алгоритмічне (криптографічне) перетворення даних, яке виконується у посимвольній послідовності з метою одержання шифрованого тексту[1].

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

Розшифрування — процес санкціонованого перетворення зашифрованих даних у придатні для читання. Вивчається криптографією.

Дешифрува́ння — процес несанкціонованого отримання інформації з зашифрованих даних. При цьому ключ дешифрування зазвичай невідомий. Вивчається криптоаналізом.

Методи шифрування: симетричне та асиметричне.

Симетричне шифрування

[ред. | ред. код]

В симетричному шифруванні один і той самий ключ (що зберігається в секреті) використовується як для шифрування, так і для розшифрування. Розроблено ефективні (швидкі й надійні) методи шифрування.

Переваги

[ред. | ред. код]
  1. Шифри із симетричним ключем спроектовані так, щоб мати велику пропускну здатність
  2. Ключі для шифрів із симетричним ключем відносно короткі
  3. Шифри із симетричним ключем можна використати як примітиви для побудови різних криптографічних механізмів включно з псевдовипадковими генераторами чисел, геш-функціями, обчислювально ефективних схем підпису та ін.
  4. Шифри із симетричним ключем можна комбінувати для отримання сильніших шифрів

Недоліки

[ред. | ред. код]
  1. При зв'язку між двома особами, ключ потрібно тримати в секреті на обох кінцях
  2. У великій мережі потрібно опікуватись багатьма ключами
  3. У зв'язку між двома особами криптографічна практика вимагає частої зміни ключів

Асиметричне шифрування

[ред. | ред. код]

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

Будь хто, знаючи секретний ключ, може розшифрувати інформацію. Тоді як в асиметричному шифруванні є два пов'язаних ключа — пара ключів. Відкритий ключ (англ. public key) — публічний, до нього повинні мати доступ всі ті, хто матиме потребу зашифрувати інформацію. Тоді як закритий ключ — приватний ключ (англ. private key), повинен бути доступним лише тому хто має право розшифрувати інформацію, за своїм розміром він значно більший від секретного ключа симетричного шифрування[2].

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

Через вади в швидкодії асиметричного методу цей метод доводиться використовувати разом з симетричним (асиметричні методи на 3 — 4 порядки повільніші). Так, для розв'язання задачі ефективного шифрування з передаванням секретного ключа, використаного відправником, інформація спочатку симетрично зашифровується випадковим ключем, потім цей ключ зашифровують відкритим асиметричним ключем одержувача, після чого повідомлення і ключ відправляються по мережі.

Шифрування даних в мікроконтролерах

[ред. | ред. код]

Програмна реалізація алгоритмів шифрування є досить громіздкою й час виконання своєю чергою теж. Це особливо помітно, якщо йдеться про алгоритми несиметричного шифрування такі як RSA, ECC, де потрібні операції з числами довжиною 256 біт і більше. Для суттєвого пришвидшення операцій з такими числами застосовують апаратне втілення базових операцій з великими числами, на основі яких будують складні криптоалгоритми. У випадку алгоритму RSA, в його основі лежить підняття числа до степеню та обчислення модуля цього числа. Значення показника степеню може сягати 4096 біт. Таку операцію можливо розкласти на базові операції додавання та множення двох великих чисел. Тому в апаратному втіленні втілюють власне ці базові операції, які виконуються за лічені такти. Верхньорівневий алгоритм втілюють виключно програмно. Цей верхньорівневий алгоритм лише вказує код операції, яку потрібно виконати (наприклад додавання, віднімання, виключне АБО тощо), передає вказівники на пам'ять, звідки брати вхідні дані, та куди класти результат. Зазвичай пам'ять, де зберігаються операнди таких криптографічних операцій, є окремо виділеною ділянкою пам'яті, до якої апаратний блок шифрування має пришвидшений доступ, і для адресації використовується лише певна частина молодших біт адреси.

Див. також

[ред. | ред. код]

Примітки

[ред. | ред. код]
  1. Шифрування // Великий тлумачний словник сучасної української мови (з дод. і допов.) / уклад. і гол. ред. В. Т. Бусел. — 5-те вид. — К. ; Ірпінь : Перун, 2005. — ISBN 966-569-013-2.
  2. Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone. Handbook of applied cryptography. — CRC-Press, 1996. — С. 32. — ISBN 0849385237.

Посилання

[ред. | ред. код]