Існує багато різних частин криптографії. Якщо ви хочете зашифрувати деякі дані, ви можете використовувати два типи алгоритмів: симетричні алгоритми шифрування та асиметричні алгоритми шифрування. Загальна концепція однакова, вони можуть шифрувати дані, але вони працюють за різними принципами та мають різні випадки використання. Однак основна відмінність описує ключі шифрування. Алгоритм симетричного шифрування використовує єдиний спільний ключ як для шифрування, так і для дешифрування даних. Алгоритм асиметричного шифрування використовує два зв’язані ключі: один для розшифровки, а інший – для розшифровки.
Властивості алгоритмів симетричного шифрування
Як зазначено вище, ключовою відмінною рисою алгоритму симетричного шифрування є той факт, що ви використовуєте один ключ як для шифрування, так і для дешифрування даних. Це не означає, що існує лише один можливий ключ шифрування, просто якщо ви шифруєте щось одним ключем, вам потрібно використовувати той самий ключ, щоб розшифрувати це. Його іноді називають шифруванням зі спільним ключем. Це пов’язано з тим, що кожен учасник повинен знати той самий ключ, тому вам потрібно поділитися ним.
Ця властивість використання одного ключа для шифрування та дешифрування може бути певною проблемою. Щоб використовувати симетричний алгоритм шифрування, ви повинні мати можливість безпечно передавати його. Але ви не можете зробити це, не маючи безпечних засобів зв’язку. На щастя, цю проблему можна вирішити за допомогою асиметричного шифрування, але це варто зрозуміти.
Ключі для алгоритмів симетричного шифрування, як правило, досить малі, принаймні в порівнянні з асиметричним шифруванням. Це робить їх відносно легкими для передачі навіть через повільне мережеве з’єднання та менш уразливими до помилок у ненадійній мережі. Симетричні алгоритми шифрування також швидкі порівняно з асиметричними алгоритмами.
Усі ці властивості роблять алгоритми симетричного шифрування особливо корисними для масового шифрування даних. Це особливо актуально, коли швидкість є проблемою.
Потокові шифри та блочні шифри
AES, ймовірно, найвідоміший алгоритм симетричного шифрування. Він використовується практично в усьому, що шифрує велику кількість даних, і є стандартною частиною пакетів шифрування, які використовуються в HTTPS. AES — це блоковий шифр із 128-бітними блоками. Блоковий шифр працює шляхом шифрування блоків даних за раз. Кожен блок повинен мати однаковий розмір. Це добре, якщо дані, що залишилися, перевищують розмір блоку, але це означає, що для завершення блоку необхідно використовувати певну форму доповнення.
Поточний шифр працює шляхом шифрування набагато менших обсягів даних за раз, як правило, по одному байту за раз. Різновидом цієї концепції є шифр підстановки, який працює з буквами. Шифри підстановки вразливі до частотного аналізу, тому зазвичай ненадійні та не використовуються. Хоча потокові шифри не мають цієї проблеми.
Симетричні алгоритми, як правило, вразливі до атак відомого відкритого тексту, атак обраного відкритого тексту, диференціального криптоаналізу та лінійного криптоаналізу. Однак сучасні алгоритми були ретельно розроблені з урахуванням цього, тому ці проблеми не є проблемою.
Висновок
Симетричне шифрування – це форма шифрування, яка використовує той самий ключ для шифрування та розшифрування даних. У деяких випадках сам алгоритм і для шифрування, і для дешифрування однаковий, хоча це не обов’язково так. Ключі шифрування, як правило, відносно короткі та їх легко передавати. Однак ключ потрібно передати по захищеному каналу, оскільки він має бути переданий між усіма залученими сторонами. Алгоритми симетричного шифрування, як правило, набагато швидші, ніж алгоритми асиметричного шифрування.