Често задавани въпроси

Глупави въпроси няма, има само глупави отговори…

абонаменти

За ЧЗВ.нет

Хранилище на отговори на Често Задавани Въпроси. Като начало - основно в сферата на IT ( ИТ, Информационни Технологии... абе компютрите ). Ако не можете да намерите отговора на това, което живо ви интересува - питайте на vupros@chzv.net (опашката от чакащи отговори въпроси се намира на тук ) И за да не се заяждате за транслитерацията можете да изпращате и на vapros@chzv.net, vaprosi@chzv.net, question@chzv.net, faq@chzv.net...

Криптоалгоритми: Алгоритми с публичен ключ и цифрови подписи

September 13th, 2007 от singu

Нали помните деленето на алгоритмите ? ( със секретен ключ и с публичен ключ )

    В тази статия ще разгледаме Шифровъчни алгоритми с публичен ключ (Public Key Algorithms).
    Идеята на асиметричните криптиращи алгоритми или крипто-алгоритми с публичен ключ е разработена през 1976 г. от Уитфелд Дифи (Whitfield Diffie) и Мартин Хелман (Martin Hellman) и независимо от Ралф Меркле (Ralph Merkle).
    При тези криптиращи алгоритми, за разлика от симетричните алгоритми, всеки получател на криптограми разполага с два различни ключа (двойка ключове): публичен ключ КР и секретен ключ КS, като от изчислителна гледна точка е много трудно да се определи секретния ключ, ако се знае само публичния ключ. Публичният ключ на получателя се използва за криптиране на предназначените за него съобщения, а секретният ключ - за декриптиране на приетите криптотекстове.
    Криптиращите алгоритми с публичен ключ се базират на функции, притежаващи свойството еднопосочност. Еднопосочната функция се характеризира със следните свойства:

    • изчислява се просто;
    • притежава обратна функция;
    • обратната функция се изчислява изключително трудно.

    Тъй като само легалният получател трябва да може да декриптира получените криптограми, то следва да се използват еднопосочни функции с обходни пътища, при които обратните функции са практически неизчислими, ако не е известна необходимата информация за тези пътища. При положение, че евентуалният нарушител не разполага с тази информация, то несанкционираното декриптиране на прехванатите криптотекстове ще бъде изключително трудно.
    В случая публичният ключ е общодостъпен (открит, общоизвестен), а секретният ключ се знае само от получателя на шифрограмите. При тези алгоритми не е необходимо да се засекретява ключа за криптиране, тъй като той не се използва при декриптирането, а секретният ключ Кs не може да бъде лесно изведен от публичния ключ Кр. Следователно, при използване на асиметрични шифровъчни алгоритми за обмен на съобщения се организира само даннов криптоканал, тъй като ключов криптоканал не е необходим.
    Всеки, който разполага с чужд публичен ключ, може да криптира с него произволен открит текст, но не може да го декриптира. Единствено получателят, който знае собствения си секретен ключ, е в състояние да възстанови открития текст на криптограмите, създадени с неговия публичен ключ. Аналогията е като при обикновената пощенска кутия, в която всеки може да пусне писмо, но само получателят, който притежава ключа за тази кутия може да я отвори, да вземе писмото и да го прочете.
    Използването на асиметрични крипто-алгоритми води в редица случаи до намаляване на броя на необходимите различни ключове.
    Например, ако група от N потребители обменят помежду си защитени със симетричен алгоритъм съобщения, то ще са необходими N ( N-1 )/2 различни секретни ключа (по един ключ за всяка кореспондираща двойка потребители), както и ключови криптоканали за предаване на тези ключове. При положение, че защитата се организира с асиметричен алгоритъм, тогава ще са нужни само N различни двойки от публичен и секретен ключове ( по една двойка ключове за всеки потребител или общо 2N ключа ).
    Алгоритмите с публичен ключ осигуряват ефективни възможности за решение на проблема с обмена на ключовете при алгоритмите със секретен ключ. Потребителите могат да си обменят криптирани със симетричен алгоритъм съобщения, като ключовете за този алгоритъм се защитават с помощта на асиметричен алгоритъм. Това означава, че в случая данновият криптоканал ще се организира със симетричен алгоритъм, а ключовият криптоканал - с асиметричен алгоритъм.
    Ако А и В комуникират помежду си с използване на симетричен крипто алгоритъм, например DES, и А иска да изпрати на В съобщение, криптирано със секретен ключ Кs, то този ключ трябва да стане известен и на В. За целта А може да криптира Кs с публичния ключ KPB на В и да го изпрати заедно с основното съобщение, което е закриптирано с DES и ключа Кs. Получавайки шифрограмите, В първоначално ще декриптира ключа Кs, използвайки собствения си секретен ключ KSB , след което ще възстанови и открития текст на основното съобщение с декриптирания ключ Кs.
    Някои шифровъчни алгоритми с публичен ключ притежават свойството взаимозаменяемост на операциите криптиране и декриптиране. Това свойство не е задължително за тези алгоритми, но неговото наличие позволява тяхното използване и за еднозначно удостоверяване на автентичността на източника чрез т.нар. цифрови подписи, които имат голямо приложение и значимост.

    Нека ключовете на потребител А за даден асиметричен алгоритъм са КSA и КPA, а на В – КSB и КPB .
    Ако А иска да изпрати на В съобщението М, то А може първоначално да декриптира М със собствения си секретен ключ КSA, след което да криптира получения резултат с публичния ключ КPB на В. Тези две операции се описват по следния начин:

    Е = Fе [ Fd ( М, КSA ), КPB ].

    Чрез първата операция за декриптиране с КSA по същество се реализира процедура на цифрово подписване на съобщението М с уникалния секретен ключ на А, който не е известен на никой друг. Така получената шифрограма Е се изпраща от потребител А на В. За възстановяване на открития текст М, получателят В първо ще използва своя секретен ключ КSB, а след това - общоизвестния публичен ключ КPA на А, т.е.

    М = Fe [ Fd ( Е, КSB ), КPA ].

    При това положение А ще бъде сигурен, че неговото съобщение ще се прочете единствено от В, тъй като то може да се декриптира правилно само със секретния ключ КSB на В. От своя страна В ще е сигурен, че съобщението е изпратено от А, тъй като е възстановено с неговия публичен ключ КPA, от което следва, че първоначалното декриптиране е било реализирано единствено със секретния ключ КSA на А.
    При съвместно използване на симетричен и асиметричен алгоритъм, цифровото подписване обикновено се реализира чрез декриптиране със секретния ключ на източника на уникална последователност, съответстваща на изпращаното съобщение. Тази последователност е значително по-кратка от самото съобщение, изчислява се с помощта на еднопосочни функции и се нарича цифрова сигнатура. В този случай ключът за симетричния алгоритъм ще се криптира с публичния ключ на получателя, а цифровата сигнатура се подписва със секретния ключ на източника. Получателят ще възстанови цифровата сигнатура с помощта на известния публичен ключ на източника, след което ще я сравни с изчислената от него сигнатура на полученото съобщение. По такъв начин ще се направи и проверка за цялостност на приетото съобщение. Възможно е да се използват два различни асиметрични алгоритъма: един за зашита на секретните ключове на симетричния алгоритъм и втори - за цифрово подписване на съобщенията.

    Нека да дадем елементарен пример за подобен алгоритъм:

    Нека a и n са две избрани големи цели числа, такива, че да съществува цяло число b ( b < n ) от следното съотношение:
    ( a . b ) mod n = 1
    Числата a и b могат да се приемат, съответно за публичен Кр и за секретен Кs ключове на някакъв получател на съобщения, а операциите “криптиране” и “декриптиране” - да се представят по следния прост начин:

    Кp = а, Е = ( М.Кр ) mod n

    Кs = b, М = ( Е.Кs ) mod n

    Където М < n.
    Доказателството за верността на горното съотношение за декриптиране на Е произтича от следните очевидни математически преобразования с модули:

    ( Е . Кs ) mod n = [ ( М . Кp ) mod n . Кs ] mod n =
    = [ ( М . Кp ) mod n . Кs mod n ] mod n =
    ( М . Кp . Кs ) mod n =
    [ М mod n . ( Кp . Кs ) mod n ] mod n =
    [ М . 1 ] mod n = М

    Представеният асиметричен алгоритъм е прост за реализация, високоскоростен и достатъчно показателен, но се отличава с ниска сигурност, защото при известните n и Кр лесно може да се намери секретния ключ Кs от уравнението:

    ( Кp . Кs ) mod n = 1, от където Кs = (n.q + 1) / Кp.
    За целта е достатъчно да се изпробват различните възможни стойности на частното q. Вижда се, че в случая математическата задача за определяне на неизвестния секретен ключ Кs изисква неголям брой изчислителни операции от страна на нарушителя.
    Повечето потокови шифри са разработени на базата на преместващи регистри с обратни връзки ( FSR - Feedback Shift Register ). Последователността на изхода на FSR се използва като ключов поток, който се наслагва ( например с XOR операция ) с открития текст и така се получава криптотекста.

    От своя страна, болшинството шифри на базата на FSR използват линейни ( linear ) FSR ( LFSR ). Такива регистри се прилагат широко и в теорията на кодирането, в частност, при реализацията на шумоустойчивите циклични кодове и често се наричат още линейни превключващи схеми или линейни последователностни машини. Много шифри от този тип са засекретени и се използват активно във военните криптосистеми. Известни са редица приложения, като например, на френския потоков шифър А5 в GSM ( FSR при този А5 съдържа три LFSR с размер 19, 22 и 23 бита, т.е. използва се 64-битов секретен ключ, от който се генерира ключовия поток).
    Разпространението на шифрите на основата на LFSR се дължи на простата хардуерна реализация и на добрата математическа теория.Ключовият поток в случая се генерира от LFSR на базата на кратък генераторен ключ, който се зарежда в регистъра.

    За значително по-сигурни се приемат шифрите на базата на нелинейни ( nonlinear ) FSR ( NLFSR ). Строга математическа теория за тяхното описание все още отсъства, но корелационни атаки за разкриване на такива шифри съществуват. По същество, NLFSR се изграждат на базата на LFSR и нелинейни филтри в обратните връзки. При стандартната атака за разкриване на тези филтри се търсят и анализират корелационните зависимости между ключовите потоци и последователностите на LFSR.
    В сравнение със линейните, нелинейните крипто алгоритми са по-удобни за криптиране на съобщения, тъй като не изискват допълнителен защитен канал за обмен на ключовете. Но поради ниската производителност на известните такива алгоритми, на практика те се използват основно в хибридни криптосистеми за защита на секретните ключове на линейните алгоритми, с които най-често се криптират предаваните съобщения (в хибридните криптосистеми съобщенията се криптират със симетричен (линеен) алгоритъм със случаен сесиен секретен ключ, който от своя страна се криптира с асиметричен (нелинеен) алгоритъм). Асиметричните алгоритми се прилагат и за подписване на ключове и съобщения, т.е. за полагане на цифрови подписи с цел удостоверяване от получателя на самоличността на собственика на ключа или на източника на съобщението.

    Публикувано в Сигурност, ЧЗВ |

    Един коментар

    1. Често задавани въпроси » Blog Archive » Внимание: Квантови компютри атакуват алгоритми с публичен ключ пише:

      [...] Криптоалгоритми: Алгоритми с публичен ключ и цифрови п… [...]

    Коментирайте

    Внимание: Модерирането на коментари е включено и може да доведе до забавяне на публикуването на вашият коментар. Моля за търпение.