Криптография със секретен ключ

Секретен ключ (също познат като общ секрет или общ секретен ключ) означава, че криптиращият и декриптиращият ключ са "напълно" еднакви.

Общ секрет (Shared secret)

Забележете, че пълната еднаквост на ключовете не е необходима. За да се удовлетворят изискванията в дефиницията, двата ключа трябва само да могат бързо и лесно да бъдат извличани един от друг. Когато една от страните има един от тях, не е проблем да го използва за криптиране и декриптиране.

За да се гарантира сигурността на така криптираната комуникация, ключът трябва да бъде запазен в тайна между двете комуникиращи страни (естествено може да са повече от две, но в крайна сметка всички трябва да пазят секретната информация).

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

Обикновено процесът на криптиране може да бъде описан със следната схема:

нешифрован_текст ---> секретен_ключ (нешифрован_текст) ---> шифрован_текст ---> секретен_ключ (шифрован_текст) ---> нешифрован_текст

нешифрован_текст ---> секретен_ключ (нешифрован_текст) ---> секретен_ключ (секретен_ключ (нешифрован_текст)) ---> нешифрован_текст

Схемата използва следната проста нотация:

секретен_ключ (нешифрован_текст) - означава, че нешифрован_текст се криптира чрез секретен_ключ и по този начин се генерира шифрован_текст

секретен_ключ (секретен_ключ (нешифрован_текст)) - криптиране на шифрован_текст, използвайки секретен_ключ (или негов прост производен), за да се получи отново оригиналния нешифрован_текст.

Симетрични криптографски алгоритми

Алгоритми, които използват криптография със секретен ключ, обикновено се наричат симетрични алгоритми, понеже работят по начина, описан по-горе. Вие използвате един и същ ключ за декриптиране и криптиране, като използвате един и същ алгоритъм за двата процеса.

Пример

Като прост пример да разгледаме криптографски алгоритъм, използван в древен Рим, измислен от Гай Юлий Цезар.

Принципът е бил прост. Заменяме всяка буква в нешифрования текст с буквата, която следва в азбуката.

Нешифрован текст: Hello

Сменяме буквите: H -> I, e -> f, l -> m, o -> p

Шифрован текст: Ifmmp

Декриптиращ алгоритъм: заменяме всяка буква с предишната в азбуката

Това е много прост алгоритъм, но работи. Галите не успели да декриптират съобщенията на Цезар и загубили войната.

Освен това вие можете да смените стъпката на отместването, за да получите други криптиращи "ключове".

Да видим, каква атака с груба сила може да се извърши върху съобщението? Тя трябва да извърши декриптиращ процес, използвайки първо отместване с един знак наляво, после с два и т.н., докато се получи смислено съобщение.

Ако желаете, пробвайте да разбиете с груба сила следните съобщения:

J g n n q
G d k k n