Криптография

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

Криптиране

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

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

Математическият метод, използван за целта, се нарича алгоритъм за криптиране/декриптиране.

Оригиналното съобщение често се нарича нешифрован текст (plain text), въпреки че този термин се използва и в случая на не-текстови съобщения.

Секретната информация обикновено се нарича криптографски ключ или криптиращ ключ.

Полученото съобщение може да се нарече шифрован текст (cipher text).

Обикновено секретната информация, използвана за криптиране, може да бъде различна от тази за декриптиране на шифрования текст. Затова последната е най-добре да се нарече декриптиращ текст (decryption text).

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

Проблеми на криптирането

Има няколко проблема, свързани с криптирането.

Първо, алгоритъмът и ключът трябва да предоставят защита от атака с груба сила (brute-force attack). Този тип атака се извършва, когато атакуващият не знае декриптиращия ключ. Той може да опита да генерира произволни ключове и с всеки от тях да опита да декодира шифрования текст. Когато се получи смислен резултат, атакуващият има ключа.

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

За да се предотвратят такива атаки, ключовете трябва да се подменят редовно.

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