Софтуер за криптиране
„Всичко, от което се нуждаете, за да сте сигурни, е добро криптиране.“ Това твърдение може да се чуе навсякъде. Ако информацията е криптирана, никой не може да я прочете или промени. Ако използваме криптиране, знаем с кого си имаме работа, така че криптирането може да се тълкува и като удостоверяване.
Всичко това звучи доста хубаво и обикновено се оправдава на практика при използване на криптиране. Шифроването несъмнено е най-важното средство за гарантиране на сигурността. Механизмите за криптиране помагат за защита на поверителността и целостта на информацията. Механизмите за криптиране помагат да се идентифицира източникът на информация. Самото криптиране обаче не е решението на всички проблеми. Механизмите за криптиране могат и трябва да бъдат част от напълно функционална програма за сигурност. Наистина, механизмите за криптиране са широко използвани механизми за сигурност, просто защото помагат да се гарантира поверителността, целостта и възможността за идентифициране.
Шифроването обаче е само забавящо действие. Известно е, че всяка система за криптиране може да бъде кракната. Говорим за факта, че достъпът до информация, защитена с криптиране, може да отнеме много време и голямо количество ресурси. Като се има предвид този факт, нападателят може да се опита да намери и използва други слабости в системата като цяло.
Тази лекция ще обхване основните концепции, свързани с криптирането и как да използвате криптирането, за да запазите информацията защитена. Ще разгледаме няколко примера, за да разберем как се използват различни алгоритми за криптиране в една добра програма за сигурност.
1.ОСНОВНИ КОНЦЕПЦИИ ЗА КРИПТИРАНЕ
Кодовете и шифрите са били използвани много преди появата на компютрите. От теоретична гледна точка няма ясно разграничение между кодове и шифри. В съвременната практика обаче разграничението между тях е доста ясно. Кодовете оперират с езикови елементи, разделяйки шифрования текст на семантични елементи като думи и срички. Шифърът винаги прави разлика между два елемента: алгоритъм и ключ.
Шифроването осигурява три състояния на информационна сигурност.
Термини, свързани с криптирането
Преди да навлезем в детайлите на криптирането, нека дефинираме някои от термините, които ще бъдат използвани в дискусията. Първо, ще разгледаме термините за компонентите, участващи в криптирането и декриптирането. Фигура 1 показва общия принцип, по който се извършва криптирането.
- Обикновеният текст е информация в оригиналния й вид. Нарича се още обикновен текст.
- Шифрованият текст е информация, подложена на алгоритъм за криптиране.
- Алгоритъмът е техника, използвана за преобразуване на обикновен текст в шифрован текст.
- Ключът е входната информация, чрез която алгоритъмът преобразува обикновения текст в криптиран текст или обратно.
- Шифроването е процес на преобразуване на обикновен текст в шифър.
- Дешифрирането е процес на преобразуване на шифър в обикновен текст.
- Криптографската устойчивост е характеристика на шифъра, която определя неговата устойчивост на дешифриране. Обикновено тази характеристика се определя от периода от време, необходим за дешифриране.
- Криптографията е наука за скриване на информация чрез криптиране.
- Криптографът е човек, който практикува криптография.
- Криптоанализът е изкуството да се анализират криптографските алгоритми за уязвимости.
- Криптоаналитик е лице, което използва криптоанализ за идентифициране и използване на уязвимости в криптографските алгоритми.
Атаки срещу системата за криптиране
Системите за криптиране могат да бъдат атакувани по три начина:
- Чрез слабости в алгоритъма.
- Чрез "груба сила" атака на ключа.
- Чрез уязвимости в заобикалящата система.
Когато атакува алгоритъм, криптоаналитикът търси уязвимости в метода за преобразуване на открития текст в шифър, за да разкрие открития текст без да използва ключ. Алгоритмите с такива уязвимости не могат да се нарекат достатъчно мощни. Причината е, че известна уязвимост може да се използва за бързо възстановяване на оригиналния текст. В този случай атакуващият няма да трябва да използва допълнителни ресурси.
Атаките с груба сила са опити да се отгатне всеки възможен ключ за преобразуване на шифър в обикновен текст. Средно анализатор, използващ този метод, трябва да тества 50 процента от всички ключове, преди да успее. По този начин мощността на алгоритъма се определя само от броя на ключовете, които анализаторът трябва да опита. Следователно, колкото по-дълъг е ключът, толкова по-голям е общият брой ключове и толкова повече ключове трябва да опита нападателят, преди да намери правилния ключ. Атаките с груба сила теоретично трябва винаги да са успешни, като се има предвид необходимото време и ресурси. Следователно, алгоритмите трябва да бъдат оценени според периода от време, през който информацията остава защитена, когато се извърши атака с груба сила. Алгоритъмсе счита за сигурно, ако цената за получаване на ключа чрез атака с груба сила надвишава цената на самата защитена информация.
Още по-краен пример за уязвимост е пакет за криптиране, използван от много потребители. Този пакет използва мощни алгоритми за криптиране за криптиране на имейли и файлове. Атаките срещу такава система не могат да бъдат лесно извършени с помощта на алгоритми или атаки с груба сила. Ключът на потребителя обаче е във файл на неговия компютър. Файлът е защитен с парола. Като се има предвид, че повечето потребители не използват комбинации от произволни знаци в своите пароли, много по-лесно е да отгатнете потребителска парола или да я получите чрез атаки с груба сила, отколкото да получите потребителски ключ по същия начин.
От това трябва да се заключи, че системата влияе върху цялостната сигурност на шифрите не по-малко от алгоритъма за криптиране и ключа.
Съвременните методи за криптиране трябва да отговарят на следните изисквания:
- Устойчивостта на шифъра на криптоанализа трябва да бъде такава, че да може да бъде разбита само чрез решаване на проблема с изчерпателното изброяване на ключовете.
- Криптографската сигурност се осигурява не от тайната на алгоритъма, а от тайната на ключа.
- Шифрираният текст не трябва да надвишава значително оригиналната информация по обем.
- Грешките, възникнали по време на криптирането, не трябва да водят до изкривяване и загуба на информация.
- Времето за криптиране не трябва да е голямо.
- Цената на криптирането трябва да съответства на цената на информацията, която се затваря.
2. КЛАСИФИКАЦИЯ НА МЕТОДИ ЗА КРИПТОГРАФСКО ЗАТВАРЯНЕ НА ИНФОРМАЦИЯ
Понастоящем са известни голям брой методи за криптографско затваряне на информация. Класификация на методитекриптирането (криптоалгоритми) може да се извърши в съответствие със следните характеристики:
- по вид на ключовете: симетрични и асиметрични криптографски алгоритми;
- по размера на информационния блок: поточни и блокови шифри;
- по естеството на въздействията върху данните: методът на заместване (пермутация), методът на заместване; аналитични методи, адитивни методи (gamming), комбинирани методи.
Кодирането може да бъде семантично, символно, комбинирано.
Затварянето на информация по други начини може да се постигне с помощта на стеганография, компресия/разширяване, дисекция/разширяване.
Основи на теорията на К. Шанън
Клод Шанън разглежда модел (виж Фигура 2), в който източникът на съобщението генерира обикновен текст X . Източникът на ключ генерира Z ключ.
Шифърът преобразува обикновения текст X с ключ Z в шифрован текст Y : Y= TzX .
Декодерът, след като получи криптираното съобщение Y , извършва обратната операция: X = Tz (1) Y .
Задачата на противниковия криптоаналитик е да получи открития текст и ключа въз основа на анализа на шифрования текст.
Шанън разглежда въпроси от теоретична и практическа тайна. За да определи теоретичната тайна, Шанън формулира следните въпроси:
- Колко стабилна е системата, ако криптоаналитикът на противника не е ограничен във времето и разполага с всички необходими инструменти за анализ на криптограми?
- Криптограмата има ли уникално решение?
- Колко шифрован текст трябва да бъде прихванат от криптоаналитик, за да направи решението уникално?
За да отговори на тези въпроси, Шанън въвежда концепцията за съвършена секретност, използвайки следното условие: за всички Y, последващите вероятности са равни на предходните вероятности, т.е. прихващане на криптиранисъобщението не дава никаква информация на вражеския криптоаналитик.
Според теоремата на Байс
P y ( X ) = P ( X ) P x ( Y )/ P ( Y ),
където P(X) предишна вероятност за съобщение X; Р x ( Y ) условна вероятност на криптограмата Y при условие, че е избрано съобщението X, т.е. сумата от вероятностите на всички тези ключове, които превеждат съобщение X в криптограма Y; P(Y) вероятност за получаване на криптограма Y; Р y ( Х ) апостериорна вероятност на съобщението X при условие, че криптограмата Y е прихваната. За перфектна секретност стойностите на P y ( X ) и P ( X ) трябва да бъдат равни за всички X и Y .
За да се противопостави на методите за статистически анализ на криптограми, Шанън предложи използването на два метода: разсейване и смесване.
3. ОСНОВНИ КРИПТОГРАФСКИ МОДЕЛИ И АЛГОРИТМИ ЗА КРИПТИРАНЕ
3.1. Методи за симетрично криптиране
При тези методи един и същ ключ (който се пази в тайна) се използва както за криптиране, така и за декриптиране на съобщения. Има много ефективни методи за симетрично криптиране.
Илюстрация на използването на симетрично криптиране е показано на фиг. 3. За категоричност ще говорим за защита на съобщенията, въпреки че събитията могат да се развиват не само в пространството, но и във времето, когато файловете, които не се движат никъде, се криптират и дешифрират.
Основният недостатък на симетричното криптиране е, че секретният ключ трябва да бъде известен както на подателя, така и на получателя. От една страна, това поставя нов проблем с разпределението на ключовете. От друга страна, получателят, въз основа на наличието на криптирано и декриптирано съобщение, не може да докаже, че е получил това съобщение от конкретен подател, тъй като той самият би могъл да генерира същото съобщение.
Когато се използва за криптиранеинформация за метода на пермутация, знаците в обикновен текст се пермутират според някои правила.
Пример. Прав текст: "CRYPTION_SWAP." Ключ (правило за пермутация): групи от 8 букви с поредни номера 1, 2, . 8 пренаредете в ред 3-8-1-5-2-7-6-4.
При заместващо криптиране (заместване) знаците на шифрования текст се заменят със знаци от същата или друга азбука с предварително определено правило за замяна.
Заместващото криптиране съществува от около 2500 години. Най-ранният пример е шифърът Atbash. Възниква около 600 г. пр.н.е. и трябваше да използва еврейската азбука в обратен ред.
Юлий Цезар използва заместващ шифър, наречен шифър на Цезар. Този шифър се състоеше в замяна на всяка буква с друга буква, разположена в азбуката на три букви по-далеч от шифрованата. Така буквата A беше преобразувана в D, B беше преобразувана в E, а Z беше преобразувана в C.
ВЕНИ ВИДИ ВИЦИ (ПРЕВОД НА Български "Дойдох, видях, победих"
шифровано: YHQL YLGL YLFL
Справочна таблица за шифроване на Caesar