Криптоалгоритми: Алгоритми със секретен ключ
singu
Алгоритмите за криптиране на данни могат да се разделят на:
- симетрични алгоритми или алгоритми със секретен ключ (Secret Key Algorithms )
- асиметрични (несиметрични) алгоритми или алгоритми с публичен ключ (Public Key Algorithms ).
Нека да разгледаме Криптиращи алгоритми със секретен ключ
Те са по-прости, изискват по-малко ресурси и са по-несигурни, защото цялата им сигурност се базира на това, че само изпращащият и получаващият съобщението знаят секретния ключ.
При тези алгоритми процесите на криптиране и декриптиране се реализират с един и същ ключ Ks, т.е.
Ks = Ke = Kd
Е = Fe ( М, Ks )
М = Fd ( Е, Ks )
Ключът Кs е известен само на източника и на получателя на съобщенията и трябва да се пази в тайна от други лица, поради което се нарича секретен ключ.
Съществуват два основни типа криптиращи алгоритми със секретен ключ: блокови и потокови алгоритми или блокови и потокови шифри.
Блоковите алгоритми оперират върху блокове от данни с фиксиран или променлив размер, а потоковите - последователно върху поток от битове, знаци, байтове или думи. При блоковите алгоритми се извършват различни словни преобразувания на блокове от данни, обикновено с фиксиран размер, като един и същ блок от открития текст се трансформира винаги в един и същ криптоблок.
При потоковите алгоритми един и същ бит, знак, байт или дума, според това върху какви части от входните данни се оперира, се преобразува в различен бит, знак, байт или съответно дума (в общия случай, блоковите и потоковите алгоритми оперират със символи от произволна азбука).
При блоково криптиране всеки i-ти блок Mi на открития текст М се преобразува в точно определен i-ти крипто блок Еi на шифрограмата Е, Като Ei зависи само от Mi и секретния ключ Ks
В случай на потоково криптиране, всеки символ ej на шифрограмата Е се определя от съответния символ mj на открития текст М, от секретния ключ Кs и от състоянието на вътрешната памет в момент j .
Потоковите алгоритми реализират относително прости преобразувания, последователно върху малки обеми от данни, най-често един бит, един байт или една дума. Потоковите криптоалгоритми разчитат на това, че ключовите стойности, с които реално се извършва криптирането се изменят постоянно или се създават по определен алгоритъм .
При потоковите алгоритми се генерира ключов поток, който се наслагва (обединява) по някакъв начин с постъпващия даннов поток (обединението на двата потока може да се реализира с помощта на различни математически операции). Генераторът на ключовия поток възпроизвежда непрекъснат поток от битове, байтове или думи, в общия случай - поток от символи. Този ключов поток, понякога наричан работен ключ, се обединява с открития текст и така се получава изходящия криптопоток. При декриптиране, същият работен ключ се обединява (операцията е обратна на тази при криптирането) с постъпващия криптопоток, в резултат на което се възстановява открития текст. За целта работният ключ трябва да може да се възпроизвежда от страната - приемник на криптираните съобщения.
От гледна точка на зависимостта на генерирания ключов поток, потоковите алгоритми могат да бъдат класифицирани на две основни групи: потокови алгоритми с независим ключов поток и потокови алгоритми със зависим ключов поток.
В първият случай ключовият поток се генерира самостоятелно и независимо от постъпващия поток на открития текст и от шифротекста.
Ето и блоксхемата на реализация на такъв шифър
![]() |
където:
К - секретен генераторен ключ, управляващ генератора на ключов поток, kj - i-ти елемент (символ) на ключовия поток.
При самата генерация на ключовия поток могат да се използват различни методи.
Ако ключовият поток е редица от напълно случайни елементи (символи), използва се само веднъж и е дълъг толкова, колкото е дълъг самия открит текст, тогава се говори за еднократно използваема таблица за криптиране (one time pad). При това, криптирането се извършва чрез обединяваща операция (FE) между j-я символ (mj) на открития текст и j-я символ от таблицата. В теорията на секретността се доказва, че този начин на криптиране е теоретически и практически неразбиваем.
Както виждате, сигурността на информацията се гради само и единствено на секретния ключ. Ако той попадне в неподходящия човек - то цялото криптиране отива по дяволи. Следователно, за да не се случва това, ключа не бива да се предава по същия канал за комуникация, по който ще предаваме и информацията. Вариантите и двете страни да разполагат с един и същи секретен ключ е изграждането на алтернативен канал за връзка или предварителна договорка, като и в двата случая трябва да се вземат мерки за защита от подслушване









September 13th, 2007 at 7:22 pm
[...] Криптоалгоритми: Алгоритми със секретен ключ [...]